diff --git a/Makefile.in b/Makefile.in index 99943a650..6809881b6 100644 --- a/Makefile.in +++ b/Makefile.in @@ -248,6 +248,7 @@ DNSTAP_SOCKET_SRC=dnstap/unbound-dnstap-socket.c DNSTAP_SOCKET_OBJ=unbound-dnstap-socket.lo DNSTAP_SOCKET_OBJ_LINK=$(DNSTAP_SOCKET_OBJ) $(COMMON_OBJ) \ $(COMPAT_OBJ) $(SLDNS_OBJ) +DNSTAP_SOCKET_TESTBIN=@DNSTAP_SOCKET_TESTBIN@ LIBUNBOUND_SRC=libunbound/context.c libunbound/libunbound.c \ libunbound/libworker.c LIBUNBOUND_OBJ=context.lo libunbound.lo libworker.lo ub_event_pluggable.lo @@ -323,7 +324,7 @@ rsrc_unbound_checkconf.o: $(srcdir)/winrc/rsrc_unbound_checkconf.rc config.h TEST_BIN=asynclook$(EXEEXT) delayer$(EXEEXT) \ lock-verify$(EXEEXT) memstats$(EXEEXT) perf$(EXEEXT) \ petal$(EXEEXT) pktview$(EXEEXT) streamtcp$(EXEEXT) \ - unbound-dnstap-socket$(EXEEXT) dohclient$(EXEEXT) \ + $(DNSTAP_SOCKET_TESTBIN) dohclient$(EXEEXT) \ testbound$(EXEEXT) unittest$(EXEEXT) tests: all $(TEST_BIN) diff --git a/cachedb/cachedb.c b/cachedb/cachedb.c index eed4d5fd9..e948a6b0d 100644 --- a/cachedb/cachedb.c +++ b/cachedb/cachedb.c @@ -465,6 +465,7 @@ packed_rrset_ttl_subtract(struct packed_rrset_data* data, time_t subtract) data->rr_ttl[i] -= subtract; else data->rr_ttl[i] = 0; } + data->ttl_add = (subtract < data->ttl_add) ? (data->ttl_add - subtract) : 0; } /* Adjust the TTL of a DNS message and its RRs by 'adjust'. If 'adjust' is diff --git a/configure b/configure index 7957f0dd6..b067e48fe 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for unbound 1.13.1. +# Generated by GNU Autoconf 2.69 for unbound 1.13.2. # # Report bugs to . # @@ -591,8 +591,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='unbound' PACKAGE_TARNAME='unbound' -PACKAGE_VERSION='1.13.1' -PACKAGE_STRING='unbound 1.13.1' +PACKAGE_VERSION='1.13.2' +PACKAGE_STRING='unbound 1.13.2' PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues' PACKAGE_URL='' @@ -649,6 +649,7 @@ ENABLE_DNSCRYPT ENABLE_DNSCRYPT_XCHACHA20 DNSTAP_OBJ DNSTAP_SRC +DNSTAP_SOCKET_TESTBIN DNSTAP_SOCKET_PATH opt_dnstap_socket_path ENABLE_DNSTAP @@ -1459,7 +1460,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures unbound 1.13.1 to adapt to many kinds of systems. +\`configure' configures unbound 1.13.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1524,7 +1525,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of unbound 1.13.1:";; + short | recursive ) echo "Configuration of unbound 1.13.2:";; esac cat <<\_ACEOF @@ -1752,7 +1753,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -unbound configure 1.13.1 +unbound configure 1.13.2 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2461,7 +2462,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by unbound $as_me 1.13.1, which was +It was created by unbound $as_me 1.13.2, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2813,11 +2814,11 @@ UNBOUND_VERSION_MAJOR=1 UNBOUND_VERSION_MINOR=13 -UNBOUND_VERSION_MICRO=1 +UNBOUND_VERSION_MICRO=2 LIBUNBOUND_CURRENT=9 -LIBUNBOUND_REVISION=12 +LIBUNBOUND_REVISION=13 LIBUNBOUND_AGE=1 # 1.0.0 had 0:12:0 # 1.0.1 had 0:13:0 @@ -2897,6 +2898,7 @@ LIBUNBOUND_AGE=1 # 1.12.0 had 9:10:1 # 1.13.0 had 9:11:1 # 1.13.1 had 9:12:1 +# 1.13.2 had 9:13:1 # Current -- the number of the binary API that we're implementing # Revision -- which iteration of the implementation of the binary @@ -17235,7 +17237,66 @@ $as_echo "#define WITH_DYNLIBMODULE 1" >>confdefs.h DYNLIBMOD_HEADER='$(srcdir)/dynlibmod/dynlibmod.h' if test $on_mingw = "no"; then - DYNLIBMOD_EXTRALIBS="-ldl -export-dynamic" + # link with -ldl if not already there, for all executables because + # dlopen call is in the dynlib module. For unbound executable, also + # export symbols. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 +$as_echo_n "checking for library containing dlopen... " >&6; } +if ${ac_cv_search_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dlopen+:} false; then : + break +fi +done +if ${ac_cv_search_dlopen+:} false; then : + +else + ac_cv_search_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 +$as_echo "$ac_cv_search_dlopen" >&6; } +ac_res=$ac_cv_search_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + + DYNLIBMOD_EXTRALIBS="-export-dynamic" else DYNLIBMOD_EXTRALIBS="-Wl,--export-all-symbols,--out-implib,libunbound.dll.a" fi @@ -19765,6 +19826,7 @@ if test x_$enable_static_exe = x_yes; then LIBS="$LIBS -lgdi32" fi LIBS="$LIBS -lz" + LIBS="$LIBS -l:libssp.a" fi fi @@ -19784,6 +19846,7 @@ if test x_$enable_fully_static = x_yes; then LIBS="$LIBS -lgdi32" fi LIBS="$LIBS -lz" + LIBS="$LIBS -l:libssp.a" fi fi @@ -21191,6 +21254,7 @@ _ACEOF DNSTAP_SOCKET_PATH="$hdr_dnstap_socket_path" + DNSTAP_SOCKET_TESTBIN='unbound-dnstap-socket$(EXEEXT)' DNSTAP_SRC="dnstap/dnstap.c dnstap/dnstap.pb-c.c dnstap/dnstap_fstrm.c dnstap/dtstream.c" @@ -21697,7 +21761,7 @@ _ACEOF -version=1.13.1 +version=1.13.2 date=`date +'%b %e, %Y'` @@ -22216,7 +22280,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by unbound $as_me 1.13.1, which was +This file was extended by unbound $as_me 1.13.2, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -22282,7 +22346,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -unbound config.status 1.13.1 +unbound config.status 1.13.2 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 3e872bca9..cba6ca018 100644 --- a/configure.ac +++ b/configure.ac @@ -11,14 +11,14 @@ sinclude(dnscrypt/dnscrypt.m4) # must be numbers. ac_defun because of later processing m4_define([VERSION_MAJOR],[1]) m4_define([VERSION_MINOR],[13]) -m4_define([VERSION_MICRO],[1]) +m4_define([VERSION_MICRO],[2]) AC_INIT([unbound],m4_defn([VERSION_MAJOR]).m4_defn([VERSION_MINOR]).m4_defn([VERSION_MICRO]),[unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues],[unbound]) AC_SUBST(UNBOUND_VERSION_MAJOR, [VERSION_MAJOR]) AC_SUBST(UNBOUND_VERSION_MINOR, [VERSION_MINOR]) AC_SUBST(UNBOUND_VERSION_MICRO, [VERSION_MICRO]) LIBUNBOUND_CURRENT=9 -LIBUNBOUND_REVISION=12 +LIBUNBOUND_REVISION=13 LIBUNBOUND_AGE=1 # 1.0.0 had 0:12:0 # 1.0.1 had 0:13:0 @@ -98,6 +98,7 @@ LIBUNBOUND_AGE=1 # 1.12.0 had 9:10:1 # 1.13.0 had 9:11:1 # 1.13.1 had 9:12:1 +# 1.13.2 had 9:13:1 # Current -- the number of the binary API that we're implementing # Revision -- which iteration of the implementation of the binary @@ -642,7 +643,11 @@ if test x_$withval != x_no; then DYNLIBMOD_HEADER='$(srcdir)/dynlibmod/dynlibmod.h' AC_SUBST(DYNLIBMOD_HEADER) if test $on_mingw = "no"; then - DYNLIBMOD_EXTRALIBS="-ldl -export-dynamic" + # link with -ldl if not already there, for all executables because + # dlopen call is in the dynlib module. For unbound executable, also + # export symbols. + AC_SEARCH_LIBS([dlopen], [dl]) + DYNLIBMOD_EXTRALIBS="-export-dynamic" else DYNLIBMOD_EXTRALIBS="-Wl,--export-all-symbols,--out-implib,libunbound.dll.a" fi @@ -1438,6 +1443,7 @@ if test x_$enable_static_exe = x_yes; then LIBS="$LIBS -lgdi32" fi LIBS="$LIBS -lz" + LIBS="$LIBS -l:libssp.a" fi fi @@ -1454,6 +1460,7 @@ if test x_$enable_fully_static = x_yes; then LIBS="$LIBS -lgdi32" fi LIBS="$LIBS -lz" + LIBS="$LIBS -l:libssp.a" fi fi @@ -1743,7 +1750,7 @@ dt_DNSTAP([$UNBOUND_RUN_DIR/dnstap.sock], AC_DEFINE_UNQUOTED(DNSTAP_SOCKET_PATH, ["$hdr_dnstap_socket_path"], [default dnstap socket path]) AC_SUBST(DNSTAP_SOCKET_PATH,["$hdr_dnstap_socket_path"]) - + AC_SUBST(DNSTAP_SOCKET_TESTBIN,['unbound-dnstap-socket$(EXEEXT)']) AC_SUBST([DNSTAP_SRC], ["dnstap/dnstap.c dnstap/dnstap.pb-c.c dnstap/dnstap_fstrm.c dnstap/dtstream.c"]) AC_SUBST([DNSTAP_OBJ], ["dnstap.lo dnstap.pb-c.lo dnstap_fstrm.lo dtstream.lo"]) ], diff --git a/daemon/worker.c b/daemon/worker.c index 37a8e1fe0..57d58a90d 100644 --- a/daemon/worker.c +++ b/daemon/worker.c @@ -1289,6 +1289,7 @@ worker_handle_request(struct comm_point* c, void* arg, int error, edns.udp_size = EDNS_ADVERTISED_SIZE; edns.bits &= EDNS_DO; edns.opt_list = NULL; + edns.padding_block_size = 0; verbose(VERB_ALGO, "query with bad edns version."); log_addr(VERB_CLIENT,"from",&repinfo->addr, repinfo->addrlen); error_encode(c->buffer, EDNS_RCODE_BADVERS&0xf, &qinfo, diff --git a/dns64/dns64.c b/dns64/dns64.c index 0a40fd49e..c79bc9c65 100644 --- a/dns64/dns64.c +++ b/dns64/dns64.c @@ -727,7 +727,7 @@ dns64_synth_aaaa_data(const struct ub_packed_rrset_key* fk, *dd_out = NULL; return; /* integer overflow protection in alloc */ } - if (!(dd = *dd_out = regional_alloc(region, + if (!(dd = *dd_out = regional_alloc_zero(region, sizeof(struct packed_rrset_data) + fd->count * (sizeof(size_t) + sizeof(time_t) + sizeof(uint8_t*) + 2 + 16)))) { diff --git a/doc/Changelog b/doc/Changelog index b9774cf32..aa45145df 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,58 @@ +9 February 2021: Wouter + - Fix for Python 3.9, no longer use deprecated functions of + PyEval_CallObject (now PyObject_Call), PyEval_InitThreads (now + none), PyParser_SimpleParseFile (now Py_CompileString). + +4 February 2021: Wouter + - release 1.13.1rc2 tag on branch-1.13.1 with added changes of 2 feb. + This became 1.13.1 release tag on 9 feb. The main branch is set + to version 1.13.2. + +2 February 2021: Wouter + - branch-1.13.1 is created, with release-1.13.1rc1 tag. + - Fix dynlibmod link on rhel8 for -ldl inclusion. + - Fix windows dependency on libssp.dll because of default stack + protector in mingw. + - Fix indentation of root anchor for use by windows install script. + +1 February 2021: George + - Attempt to fix NULL keys in the reuse_tcp tree; relates to #411. + +29 January 2021: Wouter + - Fix for doxygen 1.8.20 compatibility. + +28 January 2021: Wouter + - Annotate that we ignore the return value of if_indextoname. + - Fix to use correct type for label count in rpz routine. + - Fix empty clause warning in config_file nsid parse. + - Fix to use correct type for label count in ipdnametoaddr rpz routine. + - Fix empty clause warning in edns pass for padding. + - Fix fwd ancil test post script when not supported. + +26 January 2021: George + - Merge PR #408 from fobser: Prevent a few more yacc clashes. + - Merge PR #275 from Roland van Rijswijk-Deij: Add feature to return the + original instead of a decrementing TTL ('serve-original-ttl') + - Merge PR #355 from noloader: Make ICANN Update CA and DS Trust Anchor + static data. + - Ignore cache blacklisting when trying to reply with expired data from + cache (#394). + +26 January 2021: Wouter + - Fix compile of unbound-dnstap-socket without dnstap installed. + +22 January 2021: Willem + - Padding of queries and responses with DNS over TLS as specified in + RFC7830 and RFC8467. + +22 January 2021: George + - Fix TTL of SOA record for negative answers (localzone and + authzone data) to be the minimum of the SOA TTL and the SOA.MINIMUM. + +19 January 2021: Willem + - Support for RFC5001: DNS Name Server Identifier (NSID) Option + with the nsid: option in unbound.conf + 18 January 2021: Wouter - Fix #404: DNS query with small edns bufsize fail. - Fix declaration before statement and signed comparison warning in @@ -75,10 +130,6 @@ - Fix for #283: fix stream reuse and tcp fast open. - Fix update, with write event check with streamreuse and fastopen. -2 December 2020: Willem - - Support for RFC5001: DNS Name Server Identifier (NSID) Option - with the nsid: option in unbound.conf - 1 December 2020: Wouter - Fix #358: Squelch udp connect 'no route to host' errors on low verbosity. diff --git a/doc/example.conf.in b/doc/example.conf.in index 08d1620cf..9db622a47 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -598,6 +598,13 @@ server: # A recommended value is 1800. # serve-expired-client-timeout: 0 + # Return the original TTL as received from the upstream name server rather + # than the decrementing TTL as stored in the cache. Enabling this feature + # does not impact cache expiry, it only changes the TTL unbound embeds in + # responses to queries. Note that enabling this feature implicitly disables + # enforcement of the configured minimum and maximum TTL. + # serve-original-ttl: no + # Have the validator log failed validations for your diagnosis. # 0: off. 1: A line per failed user query. 2: With reason and bad IP. # val-log-level: 0 @@ -758,6 +765,12 @@ server: # cipher setting for TLSv1.3 # tls-ciphersuites: "TLS_AES_128_GCM_SHA256:TLS_AES_128_CCM_8_SHA256:TLS_AES_128_CCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256" + # Pad responses to padded queries received over TLS + # pad-responses: yes + + # Padded responses will be padded to the closest multiple of this size. + # pad-responses-block-size: 468 + # Use the SNI extension for TLS connections. Default is yes. # Changing the value requires a reload. # tls-use-sni: yes @@ -780,6 +793,12 @@ server: # Add system certs to the cert bundle, from the Windows Cert Store # tls-win-cert: no + # Pad queries over TLS upstreams + # pad-queries: yes + + # Padded queries will be padded to the closest multiple of this size. + # pad-queries-block-size: 128 + # Also serve tls on these port numbers (eg. 443, ...), by listing # tls-additional-port: portno for each of the port numbers. diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index cfbe11c06..d2a865d08 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -564,6 +564,25 @@ and that is the default. Set the list of ciphersuites to allow when serving TLS. This is for newer TLS 1.3 connections. Use "" for defaults, and that is the default. .TP +.B pad\-responses: \fI +If enabled, TLS serviced queries that contained an EDNS Padding option will +cause responses padded to the closest multiple of the size specified in +\fBpad\-responses\-block\-size\fR. +Default is yes. +.TP +.B pad\-responses\-block\-size: \fI +The block size with which to pad responses serviced over TLS. Only responses +to padded queries will be padded. +Default is 468. +.TP +.B pad\-queries: \fI +If enabled, all queries sent over TLS upstreams will be padded to the closest +multiple of the size specified in \fBpad\-queries\-block\-size\fR. +Default is yes. +.TP +.B pad\-queries\-block\-size: \fI +The block size with which to pad queries sent over TLS upstreams. +Default is 128. .B tls\-use\-sni: \fI Enable or disable sending the SNI extension on TLS connections. Default is yes. @@ -1167,6 +1186,19 @@ responding with expired data. A recommended value per RFC 8767 is 1800. Setting this to 0 will disable this behavior. Default is 0. .TP +.B serve\-original\-ttl: \fI +If enabled, unbound will always return the original TTL as received from +the upstream name server rather than the decrementing TTL as +stored in the cache. This feature may be useful if unbound serves as a +front-end to a hidden authoritative name server. Enabling this feature does +not impact cache expiry, it only changes the TTL unbound embeds in responses to +queries. Note that enabling this feature implicitly disables enforcement of +the configured minimum and maximum TTL, as it is assumed users who enable this +feature do not want unbound to change the TTL obtained from an upstream server. +Thus, the values set using \fBcache\-min\-ttl\fR and \fBcache\-max\-ttl\fR are +ignored. +Default is "no". +.TP .B val\-nsec3\-keysize\-iterations: \fI<"list of values"> List of keysize and iteration count values, separated by spaces, surrounded by quotes. Default is "1024 150 2048 500 4096 2500". This determines the diff --git a/doc/unbound.doxygen b/doc/unbound.doxygen index 45f49b367..4c32d8943 100644 --- a/doc/unbound.doxygen +++ b/doc/unbound.doxygen @@ -1143,7 +1143,7 @@ COMPACT_LATEX = NO # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. -PAPER_TYPE = a4wide +#PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. @@ -1451,7 +1451,7 @@ EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). -PERL_PATH = /usr/bin/perl +#PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool @@ -1473,7 +1473,7 @@ CLASS_DIAGRAMS = YES # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. -MSCGEN_PATH = +#MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented diff --git a/libunbound/libworker.c b/libunbound/libworker.c index 03bbaf768..7f46df386 100644 --- a/libunbound/libworker.c +++ b/libunbound/libworker.c @@ -577,6 +577,7 @@ setup_qinfo_edns(struct libworker* w, struct ctx_query* q, edns->edns_version = 0; edns->bits = EDNS_DO; edns->opt_list = NULL; + edns->padding_block_size = 0; if(sldns_buffer_capacity(w->back->udp_buff) < 65535) edns->udp_size = (uint16_t)sldns_buffer_capacity( w->back->udp_buff); diff --git a/libunbound/python/libunbound.i b/libunbound/python/libunbound.i index a23c45b9c..ab244a6fb 100644 --- a/libunbound/python/libunbound.i +++ b/libunbound/python/libunbound.i @@ -916,7 +916,13 @@ int _ub_resolve_async(struct ub_ctx* ctx, char* name, int rrtype, int rrclass, v struct cb_data* id; id = (struct cb_data*) iddata; arglist = Py_BuildValue("(OiO)",id->data,status, SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ub_result, 0 | 0 )); // Build argument list +#if PY_MAJOR_VERSION <= 2 || (PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION < 9) + /* for python before 3.9 */ fresult = PyEval_CallObject(id->func,arglist); // Call Python +#else + /* for python 3.9 and newer */ + fresult = PyObject_Call(id->func,arglist,NULL); +#endif Py_DECREF(id->func); Py_DECREF(id->data); free(id); diff --git a/makedist.sh b/makedist.sh index c3bfcaad3..25cabe136 100755 --- a/makedist.sh +++ b/makedist.sh @@ -412,6 +412,11 @@ if [ "$DOWIN" = "yes" ]; then cp ../unbound.exe ../unbound-anchor.exe ../unbound-host.exe ../unbound-control.exe ../unbound-checkconf.exe ../unbound-service-install.exe ../unbound-service-remove.exe ../LICENSE ../winrc/unbound-control-setup.cmd ../winrc/unbound-website.url ../winrc/service.conf ../winrc/README.txt ../contrib/create_unbound_ad_servers.cmd ../contrib/warmup.cmd ../contrib/unbound_cache.cmd . mkdir libunbound cp ../../unbound_shared/unbound.h ../../unbound_shared/.libs/libunbound*.dll ../../unbound_shared/.libs/libunbound.dll.a ../../unbound_shared/.libs/libunbound.a ../../unbound_shared/.libs/libunbound*.def ../../sslsharedinstall/lib/libcrypto.dll.a ../../sslsharedinstall/lib/libssl.dll.a ../../sslsharedinstall/bin/libcrypto*.dll ../../sslsharedinstall/bin/libssl*.dll ../../wxpinstall/bin/libexpat*.dll ../../wxpinstall/lib/libexpat.dll.a libunbound/. + if test "$W64" = "no"; then + cp /usr/i686-w64-mingw32/sys-root/mingw/bin/libssp-0.dll libunbound/. + else + cp /usr/x86_64-w64-mingw32/sys-root/mingw/bin/libssp-0.dll libunbound/. + fi # zipfile zip -r ../$file LICENSE README.txt unbound.exe unbound-anchor.exe unbound-host.exe unbound-control.exe unbound-checkconf.exe unbound-service-install.exe unbound-service-remove.exe unbound-control-setup.cmd example.conf service.conf root.key unbound-website.url create_unbound_ad_servers.cmd warmup.cmd unbound_cache.cmd Changelog libunbound info "Testing $file" diff --git a/pythonmod/pythonmod.c b/pythonmod/pythonmod.c index 9006429ef..040ff7051 100644 --- a/pythonmod/pythonmod.c +++ b/pythonmod/pythonmod.c @@ -299,7 +299,10 @@ int pythonmod_init(struct module_env* env, int id) PyImport_AppendInittab(SWIG_name, (void*)SWIG_init); #endif Py_Initialize(); +#if PY_MAJOR_VERSION <= 2 || (PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION <= 6) + /* initthreads only for python 3.6 and older */ PyEval_InitThreads(); +#endif SWIG_init(); mainthr = PyEval_SaveThread(); } @@ -354,6 +357,8 @@ int pythonmod_init(struct module_env* env, int id) /* TODO: deallocation of pe->... if an error occurs */ if (PyRun_SimpleFile(script_py, pe->fname) < 0) { +#if PY_MAJOR_VERSION <= 2 || (PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION < 9) + /* for python before 3.9 */ log_err("pythonmod: can't parse Python script %s", pe->fname); /* print the error to logs too, run it again */ fseek(script_py, 0, SEEK_SET); @@ -369,9 +374,45 @@ int pythonmod_init(struct module_env* env, int id) /* ignore the NULL return of _node, it is NULL due to the parse failure * that we are expecting */ (void)PyParser_SimpleParseFile(script_py, pe->fname, Py_file_input); +#else + /* for python 3.9 and newer */ + char* fstr = NULL; + size_t flen = 0; + log_err("pythonmod: can't parse Python script %s", pe->fname); + /* print the error to logs too, run it again */ + fseek(script_py, 0, SEEK_END); + flen = (size_t)ftell(script_py); + fstr = malloc(flen+1); + if(!fstr) { + log_err("malloc failure to print parse error"); + PyGILState_Release(gil); + fclose(script_py); + return 0; + } + fseek(script_py, 0, SEEK_SET); + if(fread(fstr, flen, 1, script_py) < 1) { + log_err("file read failed to print parse error: %s: %s", + pe->fname, strerror(errno)); + PyGILState_Release(gil); + fclose(script_py); + free(fstr); + return 0; + } + fstr[flen] = 0; + /* we compile the string, but do not run it, to stop side-effects */ + /* ignore the NULL return of _node, it is NULL due to the parse failure + * that we are expecting */ + (void)Py_CompileString(fstr, pe->fname, Py_file_input); +#endif log_py_err(); PyGILState_Release(gil); fclose(script_py); +#if PY_MAJOR_VERSION <= 2 || (PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION < 9) + /* no cleanup needed for python before 3.9 */ +#else + /* cleanup for python 3.9 and newer */ + free(fstr); +#endif return 0; } #if PY_MAJOR_VERSION < 3 diff --git a/respip/respip.c b/respip/respip.c index 9ee098def..8fe82cdee 100644 --- a/respip/respip.c +++ b/respip/respip.c @@ -523,7 +523,7 @@ copy_rrset(const struct ub_packed_rrset_key* key, struct regional* region) return NULL; /* guard against integer overflow */ dsize += data->rr_len[i]; } - d = regional_alloc(region, dsize); + d = regional_alloc_zero(region, dsize); if(!d) return NULL; *d = *data; diff --git a/services/authzone.c b/services/authzone.c index 3ad38865e..2ef782c1f 100644 --- a/services/authzone.c +++ b/services/authzone.c @@ -2331,7 +2331,8 @@ static int az_add_negative_soa(struct auth_zone* z, struct regional* region, struct dns_msg* msg) { - uint32_t minimum; + time_t minimum; + size_t i; struct packed_rrset_data* d; struct auth_rrset* soa; struct auth_data* apex = az_find_name(z, z->name, z->namelen); @@ -2348,9 +2349,11 @@ az_add_negative_soa(struct auth_zone* z, struct regional* region, /* last 4 bytes are minimum ttl in network format */ if(d->count == 0) return 0; if(d->rr_len[0] < 2+4) return 0; - minimum = sldns_read_uint32(d->rr_data[0]+(d->rr_len[0]-4)); - d->ttl = (time_t)minimum; - d->rr_ttl[0] = (time_t)minimum; + minimum = (time_t)sldns_read_uint32(d->rr_data[0]+(d->rr_len[0]-4)); + minimum = d->ttlttl:minimum; + d->ttl = minimum; + for(i=0; i < d->count + d->rrsig_count; i++) + d->rr_ttl[i] = minimum; msg->rep->ttl = get_rrset_ttl(msg->rep->rrsets[0]); msg->rep->prefetch_ttl = PREFETCH_TTL_CALC(msg->rep->ttl); msg->rep->serve_expired_ttl = msg->rep->ttl + SERVE_EXPIRED_TTL; @@ -5107,6 +5110,7 @@ xfr_transfer_lookup_host(struct auth_xfer* xfr, struct module_env* env) edns.edns_version = 0; edns.bits = EDNS_DO; edns.opt_list = NULL; + edns.padding_block_size = 0; if(sldns_buffer_capacity(buf) < 65535) edns.udp_size = (uint16_t)sldns_buffer_capacity(buf); else edns.udp_size = 65535; @@ -6295,6 +6299,7 @@ xfr_probe_lookup_host(struct auth_xfer* xfr, struct module_env* env) edns.edns_version = 0; edns.bits = EDNS_DO; edns.opt_list = NULL; + edns.padding_block_size = 0; if(sldns_buffer_capacity(buf) < 65535) edns.udp_size = (uint16_t)sldns_buffer_capacity(buf); else edns.udp_size = 65535; diff --git a/services/cache/rrset.c b/services/cache/rrset.c index 8c0251bcb..4e3d08bda 100644 --- a/services/cache/rrset.c +++ b/services/cache/rrset.c @@ -45,6 +45,7 @@ #include "util/config_file.h" #include "util/data/packed_rrset.h" #include "util/data/msgreply.h" +#include "util/data/msgparse.h" #include "util/regional.h" #include "util/alloc.h" #include "util/net_help.h" @@ -396,6 +397,7 @@ rrset_update_sec_status(struct rrset_cache* r, cachedata->ttl = updata->ttl + now; for(i=0; icount+cachedata->rrsig_count; i++) cachedata->rr_ttl[i] = updata->rr_ttl[i]+now; + cachedata->ttl_add = now; } } lock_rw_unlock(&e->lock); diff --git a/services/listen_dnsport.c b/services/listen_dnsport.c index 629d4de72..b790660f2 100644 --- a/services/listen_dnsport.c +++ b/services/listen_dnsport.c @@ -1456,7 +1456,7 @@ resolve_ifa_name(struct ifaddrs *ifas, const char *search_ifa, char ***ip_addres log_err("inet_ntop failed"); return 0; } - if_indextoname(in6->sin6_scope_id, + (void)if_indextoname(in6->sin6_scope_id, (char *)if_index_name); if (strlen(if_index_name) != 0) { snprintf(addr_buf, sizeof(addr_buf), diff --git a/services/localzone.c b/services/localzone.c index ed0d2c565..fd2ff2bb6 100644 --- a/services/localzone.c +++ b/services/localzone.c @@ -463,6 +463,48 @@ lz_find_create_node(struct local_zone* z, uint8_t* nm, size_t nmlen, return 1; } +/* Mark the SOA record for the zone. This only marks the SOA rrset; the data + * for the RR is entered later on local_zone_enter_rr() as with the other + * records. An artifical soa_negative record with a modified TTL (minimum of + * the TTL and the SOA.MINIMUM) is also created and marked for usage with + * negative answers and to avoid allocations during those answers. */ +static int +lz_mark_soa_for_zone(struct local_zone* z, struct ub_packed_rrset_key* soa_rrset, + uint8_t* rdata, size_t rdata_len, time_t ttl, const char* rrstr) +{ + struct packed_rrset_data* pd = (struct packed_rrset_data*) + regional_alloc_zero(z->region, sizeof(*pd)); + struct ub_packed_rrset_key* rrset_negative = (struct ub_packed_rrset_key*) + regional_alloc_zero(z->region, sizeof(*rrset_negative)); + time_t minimum; + if(!rrset_negative||!pd) { + log_err("out of memory"); + return 0; + } + /* Mark the original SOA record and then continue with the negative one. */ + z->soa = soa_rrset; + rrset_negative->entry.key = rrset_negative; + pd->trust = rrset_trust_prim_noglue; + pd->security = sec_status_insecure; + rrset_negative->entry.data = pd; + rrset_negative->rk.dname = soa_rrset->rk.dname; + rrset_negative->rk.dname_len = soa_rrset->rk.dname_len; + rrset_negative->rk.type = soa_rrset->rk.type; + rrset_negative->rk.rrset_class = soa_rrset->rk.rrset_class; + if(!rrset_insert_rr(z->region, pd, rdata, rdata_len, ttl, rrstr)) + return 0; + /* last 4 bytes are minimum ttl in network format */ + if(pd->count == 0 || pd->rr_len[0] < 2+4) + return 0; + minimum = (time_t)sldns_read_uint32(pd->rr_data[0]+(pd->rr_len[0]-4)); + minimum = ttlttl = minimum; + pd->rr_ttl[0] = minimum; + + z->soa_negative = rrset_negative; + return 1; +} + int local_zone_enter_rr(struct local_zone* z, uint8_t* nm, size_t nmlen, int nmlabs, uint16_t rrtype, uint16_t rrclass, time_t ttl, @@ -502,8 +544,10 @@ local_zone_enter_rr(struct local_zone* z, uint8_t* nm, size_t nmlen, if(query_dname_compare(node->name, z->name) == 0) { if(rrtype == LDNS_RR_TYPE_NSEC) rrset->rrset->rk.flags = PACKED_RRSET_NSEC_AT_APEX; - if(rrtype == LDNS_RR_TYPE_SOA) - z->soa = rrset->rrset; + if(rrtype == LDNS_RR_TYPE_SOA && + !lz_mark_soa_for_zone(z, rrset->rrset, rdata, rdata_len, ttl, + rrstr)) + return 0; } } pd = (struct packed_rrset_data*)rrset->rrset->entry.data; @@ -1548,9 +1592,9 @@ local_zones_zone_answer(struct local_zone* z, struct module_env* env, lz_type == local_zone_inform_redirect || lz_type == local_zone_always_nodata)? LDNS_RCODE_NOERROR:LDNS_RCODE_NXDOMAIN; - if(z->soa) + if(z->soa && z->soa_negative) return local_encode(qinfo, env, edns, repinfo, buf, temp, - z->soa, 0, rcode); + z->soa_negative, 0, rcode); local_error_encode(qinfo, env, edns, repinfo, buf, temp, rcode, (rcode|BIT_AA)); return 1; @@ -1605,9 +1649,9 @@ local_zones_zone_answer(struct local_zone* z, struct module_env* env, * does not, then we should make this noerror/nodata */ if(ld && ld->rrsets) { int rcode = LDNS_RCODE_NOERROR; - if(z->soa) + if(z->soa && z->soa_negative) return local_encode(qinfo, env, edns, repinfo, buf, temp, - z->soa, 0, rcode); + z->soa_negative, 0, rcode); local_error_encode(qinfo, env, edns, repinfo, buf, temp, rcode, (rcode|BIT_AA)); return 1; @@ -2043,8 +2087,10 @@ void local_zones_del_data(struct local_zones* zones, /* no memory recycling for zone deletions ... */ d->rrsets = NULL; /* did we delete the soa record ? */ - if(query_dname_compare(d->name, z->name) == 0) + if(query_dname_compare(d->name, z->name) == 0) { z->soa = NULL; + z->soa_negative = NULL; + } /* cleanup the empty nonterminals for this name */ del_empty_term(z, d, name, len, labs); diff --git a/services/localzone.h b/services/localzone.h index 492629936..3da5c8754 100644 --- a/services/localzone.h +++ b/services/localzone.h @@ -158,6 +158,10 @@ struct local_zone { rbtree_type data; /** if data contains zone apex SOA data, this is a ptr to it. */ struct ub_packed_rrset_key* soa; + /** if data contains zone apex SOA data, this is a prt to an + * artificial negative SOA rrset (TTL is the minimum of the TTL and the + * SOA.MINIMUM). */ + struct ub_packed_rrset_key* soa_negative; }; /** diff --git a/services/mesh.c b/services/mesh.c index 69f4d75e3..91d23debf 100644 --- a/services/mesh.c +++ b/services/mesh.c @@ -1929,7 +1929,9 @@ mesh_serve_expired_callback(void* arg) verbose(VERB_ALGO, "Serve expired: Trying to reply with expired data"); comm_timer_delete(qstate->serve_expired_data->timer); qstate->serve_expired_data->timer = NULL; - if(qstate->blacklist || qstate->no_cache_lookup || qstate->is_drop) { + /* If is_drop or no_cache_lookup (modules that handle their own cache e.g., + * subnetmod) ignore stale data from the main cache. */ + if(qstate->no_cache_lookup || qstate->is_drop) { verbose(VERB_ALGO, "Serve expired: Not allowed to look into cache for stale"); return; diff --git a/services/outside_network.c b/services/outside_network.c index d8f9874e6..6c6b42ccb 100644 --- a/services/outside_network.c +++ b/services/outside_network.c @@ -90,6 +90,10 @@ static int randomize_and_send_udp(struct pending* pend, sldns_buffer* packet, static void waiting_list_remove(struct outside_network* outnet, struct waiting_tcp* w); +/** remove reused element from tree and lru list */ +static void reuse_tcp_remove_tree_list(struct outside_network* outnet, + struct reuse_tcp* reuse); + int pending_cmp(const void* key1, const void* key2) { @@ -424,8 +428,11 @@ static int reuse_tcp_insert(struct outside_network* outnet, struct pending_tcp* pend_tcp) { log_reuse_tcp(VERB_CLIENT, "reuse_tcp_insert", &pend_tcp->reuse); - if(pend_tcp->reuse.item_on_lru_list) + if(pend_tcp->reuse.item_on_lru_list) { + if(!pend_tcp->reuse.node.key) + log_err("internal error: reuse_tcp_insert: on lru list without key"); return 1; + } pend_tcp->reuse.node.key = &pend_tcp->reuse; pend_tcp->reuse.pending = pend_tcp; if(!rbtree_insert(&outnet->tcp_reuse, &pend_tcp->reuse.node)) { @@ -477,7 +484,7 @@ reuse_tcp_find(struct outside_network* outnet, struct sockaddr_storage* addr, if(outnet->tcp_reuse.root == NULL || outnet->tcp_reuse.root == RBTREE_NULL) return NULL; - if(rbtree_find_less_equal(&outnet->tcp_reuse, &key_p.reuse.node, + if(rbtree_find_less_equal(&outnet->tcp_reuse, &key_p.reuse, &result)) { /* exact match */ /* but the key is on stack, and ptr is compared, impossible */ @@ -661,6 +668,14 @@ outnet_tcp_take_into_use(struct waiting_tcp* w) pend->reuse.cp_more_write_again = 0; memcpy(&pend->c->repinfo.addr, &w->addr, w->addrlen); pend->reuse.pending = pend; + + /* Remove from tree in case the is_ssl will be different and causes the + * identity of the reuse_tcp to change; could result in nodes not being + * deleted from the tree (because the new identity does not match the + * previous node) but their ->key would be changed to NULL. */ + if(pend->reuse.node.key) + reuse_tcp_remove_tree_list(w->outnet, &pend->reuse); + if(pend->c->ssl) pend->reuse.is_ssl = 1; else pend->reuse.is_ssl = 0; @@ -677,8 +692,10 @@ outnet_tcp_take_into_use(struct waiting_tcp* w) static void reuse_tcp_lru_touch(struct outside_network* outnet, struct reuse_tcp* reuse) { - if(!reuse->item_on_lru_list) + if(!reuse->item_on_lru_list) { + log_err("internal error: we need to touch the lru_list but item not in list"); return; /* not on the list, no lru to modify */ + } if(!reuse->lru_prev) return; /* already first in the list */ /* remove at current position */ @@ -847,7 +864,7 @@ reuse_tcp_remove_tree_list(struct outside_network* outnet, verbose(VERB_CLIENT, "reuse_tcp_remove_tree_list"); if(reuse->node.key) { /* delete it from reuse tree */ - (void)rbtree_delete(&outnet->tcp_reuse, &reuse->node); + (void)rbtree_delete(&outnet->tcp_reuse, reuse); reuse->node.key = NULL; } /* delete from reuse list */ @@ -2242,7 +2259,8 @@ static struct serviced_query* serviced_create(struct outside_network* outnet, sldns_buffer* buff, int dnssec, int want_dnssec, int nocaps, int tcp_upstream, int ssl_upstream, char* tls_auth_name, struct sockaddr_storage* addr, socklen_t addrlen, - uint8_t* zone, size_t zonelen, int qtype, struct edns_option* opt_list) + uint8_t* zone, size_t zonelen, int qtype, struct edns_option* opt_list, + size_t pad_queries_block_size) { struct serviced_query* sq = (struct serviced_query*)malloc(sizeof(*sq)); #ifdef UNBOUND_DEBUG @@ -2300,6 +2318,7 @@ serviced_create(struct outside_network* outnet, sldns_buffer* buff, int dnssec, sq->status = serviced_initial; sq->retry = 0; sq->to_be_deleted = 0; + sq->padding_block_size = pad_queries_block_size; #ifdef UNBOUND_DEBUG ins = #else @@ -2481,6 +2500,7 @@ serviced_encode(struct serviced_query* sq, sldns_buffer* buff, int with_edns) if(with_edns) { /* add edns section */ struct edns_data edns; + struct edns_option padding_option; edns.edns_present = 1; edns.ext_rcode = 0; edns.edns_version = EDNS_ADVERTISED_VERSION; @@ -2503,6 +2523,14 @@ serviced_encode(struct serviced_query* sq, sldns_buffer* buff, int with_edns) edns.bits = EDNS_DO; if(sq->dnssec & BIT_CD) LDNS_CD_SET(sldns_buffer_begin(buff)); + if (sq->ssl_upstream && sq->padding_block_size) { + padding_option.opt_code = LDNS_EDNS_PADDING; + padding_option.opt_len = 0; + padding_option.opt_data = NULL; + padding_option.next = edns.opt_list; + edns.opt_list = &padding_option; + edns.padding_block_size = sq->padding_block_size; + } attach_edns_record(buff, &edns); } } @@ -3026,7 +3054,9 @@ outnet_serviced_query(struct outside_network* outnet, sq = serviced_create(outnet, buff, dnssec, want_dnssec, nocaps, tcp_upstream, ssl_upstream, tls_auth_name, addr, addrlen, zone, zonelen, (int)qinfo->qtype, - qstate->edns_opts_back_out); + qstate->edns_opts_back_out, + ( ssl_upstream && env->cfg->pad_queries + ? env->cfg->pad_queries_block_size : 0 )); if(!sq) { free(cb); return NULL; diff --git a/services/outside_network.h b/services/outside_network.h index 2fe97fa6c..fe287af4f 100644 --- a/services/outside_network.h +++ b/services/outside_network.h @@ -502,6 +502,8 @@ struct serviced_query { struct service_callback* cblist; /** the UDP or TCP query that is pending, see status which */ void* pending; + /** block size with which to pad encrypted queries (default: 128) */ + size_t padding_block_size; }; /** diff --git a/services/rpz.c b/services/rpz.c index d7dd17f7e..2b6b0ac3f 100644 --- a/services/rpz.c +++ b/services/rpz.c @@ -668,7 +668,8 @@ rpz_find_zone(struct rpz* r, uint8_t* qname, size_t qname_len, uint16_t qclass, int only_exact, int wr, int zones_keep_lock) { uint8_t* ce; - size_t ce_len, ce_labs; + size_t ce_len; + int ce_labs; uint8_t wc[LDNS_MAX_DOMAINLEN+1]; int exact; struct local_zone* z = NULL; diff --git a/smallapp/unbound-anchor.c b/smallapp/unbound-anchor.c index a30523c76..3e6fc6e6f 100644 --- a/smallapp/unbound-anchor.c +++ b/smallapp/unbound-anchor.c @@ -155,6 +155,36 @@ char* wsa_strerror(int err); #endif +static const char ICANN_UPDATE_CA[] = + /* The ICANN CA fetched at 24 Sep 2010. Valid to 2028 */ + "-----BEGIN CERTIFICATE-----\n" + "MIIDdzCCAl+gAwIBAgIBATANBgkqhkiG9w0BAQsFADBdMQ4wDAYDVQQKEwVJQ0FO\n" + "TjEmMCQGA1UECxMdSUNBTk4gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxFjAUBgNV\n" + "BAMTDUlDQU5OIFJvb3QgQ0ExCzAJBgNVBAYTAlVTMB4XDTA5MTIyMzA0MTkxMloX\n" + "DTI5MTIxODA0MTkxMlowXTEOMAwGA1UEChMFSUNBTk4xJjAkBgNVBAsTHUlDQU5O\n" + "IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRYwFAYDVQQDEw1JQ0FOTiBSb290IENB\n" + "MQswCQYDVQQGEwJVUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKDb\n" + "cLhPNNqc1NB+u+oVvOnJESofYS9qub0/PXagmgr37pNublVThIzyLPGCJ8gPms9S\n" + "G1TaKNIsMI7d+5IgMy3WyPEOECGIcfqEIktdR1YWfJufXcMReZwU4v/AdKzdOdfg\n" + "ONiwc6r70duEr1IiqPbVm5T05l1e6D+HkAvHGnf1LtOPGs4CHQdpIUcy2kauAEy2\n" + "paKcOcHASvbTHK7TbbvHGPB+7faAztABLoneErruEcumetcNfPMIjXKdv1V1E3C7\n" + "MSJKy+jAqqQJqjZoQGB0necZgUMiUv7JK1IPQRM2CXJllcyJrm9WFxY0c1KjBO29\n" + "iIKK69fcglKcBuFShUECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B\n" + "Af8EBAMCAf4wHQYDVR0OBBYEFLpS6UmDJIZSL8eZzfyNa2kITcBQMA0GCSqGSIb3\n" + "DQEBCwUAA4IBAQAP8emCogqHny2UYFqywEuhLys7R9UKmYY4suzGO4nkbgfPFMfH\n" + "6M+Zj6owwxlwueZt1j/IaCayoKU3QsrYYoDRolpILh+FPwx7wseUEV8ZKpWsoDoD\n" + "2JFbLg2cfB8u/OlE4RYmcxxFSmXBg0yQ8/IoQt/bxOcEEhhiQ168H2yE5rxJMt9h\n" + "15nu5JBSewrCkYqYYmaxyOC3WrVGfHZxVI7MpIFcGdvSb2a1uyuua8l0BKgk3ujF\n" + "0/wsHNeP22qNyVO+XVBzrM8fk8BSUFuiT/6tZTYXRtEt5aKQZgXbKU5dUF3jT9qg\n" + "j/Br5BZw3X/zd325TvnswzMC1+ljLzHnQGGk\n" + "-----END CERTIFICATE-----\n"; + +static const char DS_TRUST_ANCHOR[] = + /* The anchors must start on a new line with ". IN DS and end with \n"[;] + * because the makedist script greps on the source here */ + /* anchor 20326 is from 2017 */ +". IN DS 20326 8 2 E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D\n"; + /** verbosity for this application */ static int verb = 0; @@ -213,48 +243,21 @@ usage(void) static const char* get_builtin_cert(void) { - return -/* The ICANN CA fetched at 24 Sep 2010. Valid to 2028 */ -"-----BEGIN CERTIFICATE-----\n" -"MIIDdzCCAl+gAwIBAgIBATANBgkqhkiG9w0BAQsFADBdMQ4wDAYDVQQKEwVJQ0FO\n" -"TjEmMCQGA1UECxMdSUNBTk4gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxFjAUBgNV\n" -"BAMTDUlDQU5OIFJvb3QgQ0ExCzAJBgNVBAYTAlVTMB4XDTA5MTIyMzA0MTkxMloX\n" -"DTI5MTIxODA0MTkxMlowXTEOMAwGA1UEChMFSUNBTk4xJjAkBgNVBAsTHUlDQU5O\n" -"IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRYwFAYDVQQDEw1JQ0FOTiBSb290IENB\n" -"MQswCQYDVQQGEwJVUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKDb\n" -"cLhPNNqc1NB+u+oVvOnJESofYS9qub0/PXagmgr37pNublVThIzyLPGCJ8gPms9S\n" -"G1TaKNIsMI7d+5IgMy3WyPEOECGIcfqEIktdR1YWfJufXcMReZwU4v/AdKzdOdfg\n" -"ONiwc6r70duEr1IiqPbVm5T05l1e6D+HkAvHGnf1LtOPGs4CHQdpIUcy2kauAEy2\n" -"paKcOcHASvbTHK7TbbvHGPB+7faAztABLoneErruEcumetcNfPMIjXKdv1V1E3C7\n" -"MSJKy+jAqqQJqjZoQGB0necZgUMiUv7JK1IPQRM2CXJllcyJrm9WFxY0c1KjBO29\n" -"iIKK69fcglKcBuFShUECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B\n" -"Af8EBAMCAf4wHQYDVR0OBBYEFLpS6UmDJIZSL8eZzfyNa2kITcBQMA0GCSqGSIb3\n" -"DQEBCwUAA4IBAQAP8emCogqHny2UYFqywEuhLys7R9UKmYY4suzGO4nkbgfPFMfH\n" -"6M+Zj6owwxlwueZt1j/IaCayoKU3QsrYYoDRolpILh+FPwx7wseUEV8ZKpWsoDoD\n" -"2JFbLg2cfB8u/OlE4RYmcxxFSmXBg0yQ8/IoQt/bxOcEEhhiQ168H2yE5rxJMt9h\n" -"15nu5JBSewrCkYqYYmaxyOC3WrVGfHZxVI7MpIFcGdvSb2a1uyuua8l0BKgk3ujF\n" -"0/wsHNeP22qNyVO+XVBzrM8fk8BSUFuiT/6tZTYXRtEt5aKQZgXbKU5dUF3jT9qg\n" -"j/Br5BZw3X/zd325TvnswzMC1+ljLzHnQGGk\n" -"-----END CERTIFICATE-----\n" - ; + return ICANN_UPDATE_CA; } /** return the built in root DS trust anchor */ static const char* get_builtin_ds(void) { - return -/* The anchors must start on a new line with ". IN DS and end with \n"[;] - * because the makedist script greps on the source here */ -/* anchor 20326 is from 2017 */ -". IN DS 20326 8 2 E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D\n"; + return DS_TRUST_ANCHOR; } /** print hex data */ static void -print_data(const char* msg, const char* data, int len) +print_data(const char* msg, const char* data, size_t len) { - int i; + size_t i; printf("%s: ", msg); for(i=0; i= 4) print_data("read data", data, (int)len); + if(verb >= 4) print_data("read data", data, len); m = BIO_new(BIO_s_mem()); if(!m) { if(verb) printf("out of memory\n"); diff --git a/testcode/fake_event.c b/testcode/fake_event.c index 5164332c0..b8166c45c 100644 --- a/testcode/fake_event.c +++ b/testcode/fake_event.c @@ -1229,6 +1229,7 @@ struct serviced_query* outnet_serviced_query(struct outside_network* outnet, edns.bits = 0; if(dnssec) edns.bits = EDNS_DO; + edns.padding_block_size = 0; if((client_string_addr = edns_string_addr_lookup( &env->edns_strings->client_strings, addr, addrlen))) { diff --git a/testdata/auth_zonefile_down.rpl b/testdata/auth_zonefile_down.rpl index 09e7fd061..9c5ecbb1c 100644 --- a/testdata/auth_zonefile_down.rpl +++ b/testdata/auth_zonefile_down.rpl @@ -1,6 +1,12 @@ ; config options server: target-fetch-policy: "0 0 0 0 0" + ; Options for signed zone. The zone is partially copied from val_negcache_nxdomain.rpl + trust-anchor: "testzone.nlnetlabs.nl. IN DS 2926 8 2 6f8512d1e82eecbd684fc4a76f39f8c5b411af385494873bdead663ddb78a88b" + val-override-date: "20180213111425" + qname-minimisation: "no" + trust-anchor-signaling: no + aggressive-nsec: yes auth-zone: name: "example.com." @@ -41,6 +47,50 @@ ns1 3600 IN A 1.2.3.4 ns2 3600 IN AAAA ::2 TEMPFILE_END +auth-zone: + name: "soa.high.com." + for-downstream: yes + for-upstream: no + zonefile: +TEMPFILE_NAME soa.high.com +TEMPFILE_CONTENTS soa.high.com +$ORIGIN high.com. +soa 500 IN SOA dns.example.de. hostmaster.dns.example.de. ( + 1379078166 28800 7200 604800 200 ) + 3600 IN NS ns1.example.com. + 3600 IN NS ns2.example.com. +TEMPFILE_END + +auth-zone: + name: "soa.low.com." + for-downstream: yes + for-upstream: no + zonefile: +TEMPFILE_NAME soa.low.com +TEMPFILE_CONTENTS soa.low.com +$ORIGIN low.com. +soa 200 IN SOA dns.example.de. hostmaster.dns.example.de. ( + 1379078166 28800 7200 604800 500 ) + 3600 IN NS ns1.example.com. + 3600 IN NS ns2.example.com. +TEMPFILE_END + +auth-zone: + name: "testzone.nlnetlabs.nl." + for-downstream: yes + for-upstream: no + zonefile: +TEMPFILE_NAME testzone.nlnetlabs.nl +TEMPFILE_CONTENTS testzone.nlnetlabs.nl +$ORIGIN testzone.nlnetlabs.nl. +testzone.nlnetlabs.nl. 3600 IN NSEC alligator.testzone.nlnetlabs.nl. NS SOA RRSIG NSEC DNSKEY +testzone.nlnetlabs.nl. 3600 IN RRSIG NSEC 8 3 3600 20180313102201 20180213102201 44940 testzone.nlnetlabs.nl. gTKn6U1nal9oA79IRxLa/7zexl6A0yJZzeEGBbZ5rh5feyAr2X4LTR9bPCgcHeMVggf4FP+kD1L/sxzj/YLwB1ZKGKlwnzsHtPFTlmvDClaqQ76DRZq5Vejr2ZfnclBUb2vtxaXywTRW8oueaaq9flcShEQ/cQ+KRU8sc344qd0= +alligator.testzone.nlnetlabs.nl. 3600 IN NSEC cheetah.testzone.nlnetlabs.nl. TXT RRSIG NSEC +alligator.testzone.nlnetlabs.nl. 3600 IN RRSIG NSEC 8 4 3600 20180313102201 20180213102201 44940 testzone.nlnetlabs.nl. QAgQ0AsMoYG02+VPfoOctSPlTHdQOkQt5fFkSkzIbVhUzNOqa+dB/Qkc81AwFeJosA+PvYjt6utcVkIWmK2Djy9eXC49gILtVF79vUe4G7ZrybO5NXjqNa5ANoUGM+yew4wkjeNOMVAsvs+1kvFY7S8RAa/0AIYlZHQ8vNBPNaI= +testzone.nlnetlabs.nl. 4600 IN SOA ns.nlnetlabs.nl. ralph.nlnetlabs.nl. 1 14400 3600 604800 3600 +testzone.nlnetlabs.nl. 4600 IN RRSIG SOA 8 3 3600 20180313102201 20180213102201 44940 testzone.nlnetlabs.nl. GhmXNFQktZIgaBpGKwj9Q2mfq5+jcbRPK+PPgtRVicUPZga/d/iGEL8PV/8DzGwkaZbM14pamSUMgdJibW4zNhLz/ukjPilbjoj6giH1jtbdZLAQ6iK9pZ/4jKUEq4txviTczZNnDeolgPEEl4xo4NclQmi7zj1XBlQRbjvG0/0= +TEMPFILE_END + stub-zone: name: "." stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET. @@ -50,7 +100,7 @@ SCENARIO_BEGIN Test authority zone with zonefile for downstream responses ; K.ROOT-SERVERS.NET. RANGE_BEGIN 0 100 - ADDRESS 193.0.14.129 + ADDRESS 193.0.14.129 ENTRY_BEGIN MATCH opcode qtype qname ADJUST copy_id @@ -182,4 +232,109 @@ SECTION ANSWER www.example.com. IN A 1.2.3.4 ENTRY_END +; check SOA TTL to be the minimum of the SOA.minimum and the SOA TTL +STEP 30 QUERY +ENTRY_BEGIN +REPLY RD +SECTION QUESTION +nonexistent.soa.high.com. IN A +ENTRY_END +STEP 31 CHECK_ANSWER +ENTRY_BEGIN +MATCH all ttl +REPLY QR RD RA AA NXDOMAIN +SECTION QUESTION +nonexistent.soa.high.com IN A +SECTION AUTHORITY +soa.high.com. 200 IN SOA dns.example.de. hostmaster.dns.example.de. 1379078166 28800 7200 604800 200 +ENTRY_END +; check that the original SOA is also returned +STEP 32 QUERY +ENTRY_BEGIN +REPLY RD +SECTION QUESTION +soa.high.com. IN SOA +ENTRY_END +STEP 33 CHECK_ANSWER +ENTRY_BEGIN +MATCH all ttl +REPLY QR RD RA AA NOERROR +SECTION QUESTION +soa.high.com. IN SOA +SECTION ANSWER +soa.high.com. 500 IN SOA dns.example.de. hostmaster.dns.example.de. 1379078166 28800 7200 604800 200 +ENTRY_END + +; check SOA TTL to be the minimum of the SOA.minimum and the SOA TTL +STEP 40 QUERY +ENTRY_BEGIN +REPLY RD +SECTION QUESTION +nonexistent.soa.low.com. IN A +ENTRY_END +STEP 41 CHECK_ANSWER +ENTRY_BEGIN +MATCH all ttl +REPLY QR RD RA AA NXDOMAIN +SECTION QUESTION +nonexistent.soa.low.com. IN A +SECTION AUTHORITY +soa.low.com. 200 IN SOA dns.example.de. hostmaster.dns.example.de. 1379078166 28800 7200 604800 500 +ENTRY_END +; check that the original SOA is also returned +STEP 42 QUERY +ENTRY_BEGIN +REPLY RD +SECTION QUESTION +soa.low.com. IN SOA +ENTRY_END +STEP 43 CHECK_ANSWER +ENTRY_BEGIN +MATCH all ttl +REPLY QR RD RA AA NOERROR +SECTION QUESTION +soa.low.com. IN SOA +SECTION ANSWER +soa.low.com. 200 IN SOA dns.example.de. hostmaster.dns.example.de. 1379078166 28800 7200 604800 500 +ENTRY_END + +; check SOA TTL to be minimum of the SOA.minimum and the SOA TTL for DNSSEC +STEP 50 QUERY +ENTRY_BEGIN +REPLY RD DO +SECTION QUESTION +ant.testzone.nlnetlabs.nl. IN A +ENTRY_END +STEP 51 CHECK_ANSWER +ENTRY_BEGIN +MATCH all ttl +REPLY QR RD DO RA AA NXDOMAIN +SECTION QUESTION +ant.testzone.nlnetlabs.nl. IN A +SECTION AUTHORITY +testzone.nlnetlabs.nl. 3600 IN SOA ns.nlnetlabs.nl. ralph.nlnetlabs.nl. 1 14400 3600 604800 3600 +testzone.nlnetlabs.nl. 3600 IN RRSIG SOA 8 3 3600 20180313102201 20180213102201 44940 testzone.nlnetlabs.nl. GhmXNFQktZIgaBpGKwj9Q2mfq5+jcbRPK+PPgtRVicUPZga/d/iGEL8PV/8DzGwkaZbM14pamSUMgdJibW4zNhLz/ukjPilbjoj6giH1jtbdZLAQ6iK9pZ/4jKUEq4txviTczZNnDeolgPEEl4xo4NclQmi7zj1XBlQRbjvG0/0= +alligator.testzone.nlnetlabs.nl. 3600 IN NSEC cheetah.testzone.nlnetlabs.nl. TXT RRSIG NSEC +alligator.testzone.nlnetlabs.nl. 3600 IN RRSIG NSEC 8 4 3600 20180313102201 20180213102201 44940 testzone.nlnetlabs.nl. QAgQ0AsMoYG02+VPfoOctSPlTHdQOkQt5fFkSkzIbVhUzNOqa+dB/Qkc81AwFeJosA+PvYjt6utcVkIWmK2Djy9eXC49gILtVF79vUe4G7ZrybO5NXjqNa5ANoUGM+yew4wkjeNOMVAsvs+1kvFY7S8RAa/0AIYlZHQ8vNBPNaI= +testzone.nlnetlabs.nl. 3600 IN NSEC alligator.testzone.nlnetlabs.nl. NS SOA RRSIG NSEC DNSKEY +testzone.nlnetlabs.nl. 3600 IN RRSIG NSEC 8 3 3600 20180313102201 20180213102201 44940 testzone.nlnetlabs.nl. gTKn6U1nal9oA79IRxLa/7zexl6A0yJZzeEGBbZ5rh5feyAr2X4LTR9bPCgcHeMVggf4FP+kD1L/sxzj/YLwB1ZKGKlwnzsHtPFTlmvDClaqQ76DRZq5Vejr2ZfnclBUb2vtxaXywTRW8oueaaq9flcShEQ/cQ+KRU8sc344qd0= +ENTRY_END +; check that the original SOA is also returned +STEP 52 QUERY +ENTRY_BEGIN +REPLY RD DO +SECTION QUESTION +testzone.nlnetlabs.nl. IN SOA +ENTRY_END +STEP 53 CHECK_ANSWER +ENTRY_BEGIN +MATCH all ttl +REPLY QR RD DO RA AA NOERROR +SECTION QUESTION +testzone.nlnetlabs.nl. IN SOA +SECTION ANSWER +testzone.nlnetlabs.nl. 4600 IN SOA ns.nlnetlabs.nl. ralph.nlnetlabs.nl. 1 14400 3600 604800 3600 +testzone.nlnetlabs.nl. 4600 IN RRSIG SOA 8 3 3600 20180313102201 20180213102201 44940 testzone.nlnetlabs.nl. GhmXNFQktZIgaBpGKwj9Q2mfq5+jcbRPK+PPgtRVicUPZga/d/iGEL8PV/8DzGwkaZbM14pamSUMgdJibW4zNhLz/ukjPilbjoj6giH1jtbdZLAQ6iK9pZ/4jKUEq4txviTczZNnDeolgPEEl4xo4NclQmi7zj1XBlQRbjvG0/0= +ENTRY_END + SCENARIO_END diff --git a/testdata/fwd_ancil.tdir/fwd_ancil.post b/testdata/fwd_ancil.tdir/fwd_ancil.post index a74ba856e..6578151af 100644 --- a/testdata/fwd_ancil.tdir/fwd_ancil.post +++ b/testdata/fwd_ancil.tdir/fwd_ancil.post @@ -14,5 +14,9 @@ fi kill_pid $FWD_PID if fgrep "service stopped" unbound.log; then exit 0 -fi +fi +if fgrep "disable interface-automatic" unbound.log; then + echo "skip test" + exit 0 +fi kill_pid $UNBOUND_PID diff --git a/testdata/localdata.rpl b/testdata/localdata.rpl index eb25ef573..047fbeeba 100644 --- a/testdata/localdata.rpl +++ b/testdata/localdata.rpl @@ -88,12 +88,12 @@ local. IN A ENTRY_END STEP 6 CHECK_ANSWER ENTRY_BEGIN -MATCH all +MATCH all ttl REPLY QR RA AA SECTION QUESTION local. IN A SECTION AUTHORITY -local. 3600 IN SOA nobody nobody 1 2 3 4 5 +local. 5 IN SOA nobody nobody 1 2 3 4 5 ENTRY_END ; positive SOA @@ -104,7 +104,7 @@ local. IN SOA ENTRY_END STEP 8 CHECK_ANSWER ENTRY_BEGIN -MATCH all +MATCH all ttl REPLY QR RA AA SECTION QUESTION local. IN SOA @@ -136,12 +136,12 @@ serv.local. IN MX ENTRY_END STEP 12 CHECK_ANSWER ENTRY_BEGIN -MATCH all +MATCH all ttl REPLY QR RA AA SECTION QUESTION serv.local. IN MX SECTION AUTHORITY -local. 3600 IN SOA nobody nobody 1 2 3 4 5 +local. 5 IN SOA nobody nobody 1 2 3 4 5 ENTRY_END ; no such type, empty nonterminal @@ -152,12 +152,12 @@ bla.local. IN MX ENTRY_END STEP 14 CHECK_ANSWER ENTRY_BEGIN -MATCH all +MATCH all ttl REPLY QR RA AA SECTION QUESTION bla.local. IN MX SECTION AUTHORITY -local. 3600 IN SOA nobody nobody 1 2 3 4 5 +local. 5 IN SOA nobody nobody 1 2 3 4 5 ENTRY_END ; nxdomain with SOA @@ -168,12 +168,12 @@ doing.local. IN MX ENTRY_END STEP 16 CHECK_ANSWER ENTRY_BEGIN -MATCH all +MATCH all ttl REPLY QR RA AA NXDOMAIN SECTION QUESTION doing.local. IN MX SECTION AUTHORITY -local. 3600 IN SOA nobody nobody 1 2 3 4 5 +local. 5 IN SOA nobody nobody 1 2 3 4 5 ENTRY_END ; nxdomain without SOA diff --git a/testdata/padding.tdir/padding.conf b/testdata/padding.tdir/padding.conf new file mode 100644 index 000000000..c310d355d --- /dev/null +++ b/testdata/padding.tdir/padding.conf @@ -0,0 +1,27 @@ +server: + interface: 127.0.0.1 + port: @PORT@ + use-syslog: no + directory: . + pidfile: "unbound.pid" + chroot: "" + username: "" + do-not-query-localhost: no + + tls-cert-bundle: "unbound_server.pem" + tls-upstream: yes + +remote-control: + control-enable: yes + control-interface: 127.0.0.1 + control-port: @CONTROL_PORT@ + server-key-file: "unbound_server.key" + server-cert-file: "unbound_server.pem" + control-key-file: "unbound_control.key" + control-cert-file: "unbound_control.pem" + +forward-zone: + name: "." + forward-addr: "127.0.0.1@@TOPORT@#unbound" + + diff --git a/testdata/padding.tdir/padding.conf2 b/testdata/padding.tdir/padding.conf2 new file mode 100644 index 000000000..98be8fec7 --- /dev/null +++ b/testdata/padding.tdir/padding.conf2 @@ -0,0 +1,47 @@ +# this is the upstream server that has pipelining and responds to queries. +server: + verbosity: 1 + # num-threads: 1 + interface: 127.0.0.1@@PORT@ + port: @PORT@ + use-syslog: no + directory: . + pidfile: "unbound2.pid" + chroot: "" + username: "" + do-not-query-localhost: no + tls-port: @PORT@ + tls-service-key: "unbound_server.key" + tls-service-pem: "unbound_server.pem" + tcp-idle-timeout: 10000 + log-queries: yes + log-replies: yes + log-identity: "upstream" + +remote-control: + control-enable: yes + control-interface: 127.0.0.1 + # control-interface: ::1 + control-port: @CONTROL_PORT2@ + server-key-file: "unbound_server.key" + server-cert-file: "unbound_server.pem" + control-key-file: "unbound_control.key" + control-cert-file: "unbound_control.pem" + +forward-zone: + name: "." + forward-addr: "127.0.0.1@@TOPORT@" + +dnstap: + dnstap-enable: yes + dnstap-socket-path: "dnstap.socket" + dnstap-send-identity: yes + dnstap-send-version: yes + #dnstap-identity + #dnstap-version + dnstap-log-resolver-query-messages: no + dnstap-log-resolver-response-messages: no + dnstap-log-client-query-messages: yes + dnstap-log-client-response-messages: yes + dnstap-log-forwarder-query-messages: no + dnstap-log-forwarder-response-messages: no diff --git a/testdata/padding.tdir/padding.dsc b/testdata/padding.tdir/padding.dsc new file mode 100644 index 000000000..37aceb353 --- /dev/null +++ b/testdata/padding.tdir/padding.dsc @@ -0,0 +1,16 @@ +BaseName: padding +Version: 1.0 +Description: Test EDNS0 padding option (RFC7830 and RFC8467). +CreationDate: Sun Jan 24 16:41:42 CET 2021 +Maintainer: Willem Toorop +Category: +Component: +CmdDepends: +Depends: +Help: +Pre: padding.pre +Post: padding.post +Test: padding.test +AuxFiles: +Passed: +Failure: diff --git a/testdata/padding.tdir/padding.msgsizes b/testdata/padding.tdir/padding.msgsizes new file mode 100644 index 000000000..f0d4a496d --- /dev/null +++ b/testdata/padding.tdir/padding.msgsizes @@ -0,0 +1,20 @@ +;; MSG SIZE rcvd: 128 +;; MSG SIZE rcvd: 468 +;; MSG SIZE rcvd: 128 +;; MSG SIZE rcvd: 936 +;; MSG SIZE rcvd: 128 +;; MSG SIZE rcvd: 60 +;; MSG SIZE rcvd: 128 +;; MSG SIZE rcvd: 502 +;; MSG SIZE rcvd: 44 +;; MSG SIZE rcvd: 60 +;; MSG SIZE rcvd: 44 +;; MSG SIZE rcvd: 502 +;; MSG SIZE rcvd: 48 +;; MSG SIZE rcvd: 64 +;; MSG SIZE rcvd: 48 +;; MSG SIZE rcvd: 512 +;; MSG SIZE rcvd: 48 +;; MSG SIZE rcvd: 512 +;; MSG SIZE rcvd: 48 +;; MSG SIZE rcvd: 512 diff --git a/testdata/padding.tdir/padding.post b/testdata/padding.tdir/padding.post new file mode 100644 index 000000000..826798a8f --- /dev/null +++ b/testdata/padding.tdir/padding.post @@ -0,0 +1,23 @@ +# #-- padding.post --# +# source the master var file when it's there +[ -f ../.tpkg.var.master ] && source ../.tpkg.var.master +# source the test var file when it's there +[ -f .tpkg.var.test ] && source .tpkg.var.test +# +# do your teardown here +. ../common.sh +PRE="../.." +if grep "define USE_DNSTAP 1" $PRE/config.h; then echo test enabled; else echo test skipped; exit 0; fi +kill_pid $DNSTAP_SOCKET_PID +kill_pid $FWD_PID +kill_pid `cat unbound2.pid` +if test -f unbound2.log; then + echo ">>> upstream log" + cat unbound2.log +fi +#kill_pid $UNBOUND_PID +kill_pid `cat unbound.pid` +if test -f unbound.log; then + echo ">>> unbound log" + cat unbound.log +fi diff --git a/testdata/padding.tdir/padding.pre b/testdata/padding.tdir/padding.pre new file mode 100644 index 000000000..4a13d0229 --- /dev/null +++ b/testdata/padding.tdir/padding.pre @@ -0,0 +1,69 @@ +# #-- padding.pre--# +# source the master var file when it's there +[ -f ../.tpkg.var.master ] && source ../.tpkg.var.master +# use .tpkg.var.test for in test variable passing +[ -f .tpkg.var.test ] && source .tpkg.var.test + +PRE="../.." +. ../common.sh +if grep "define USE_DNSTAP 1" $PRE/config.h; then echo test enabled; else echo test skipped; exit 0; fi + +get_random_port 5 +UNBOUND_PORT=$RND_PORT +UPSTREAM_PORT=$(($RND_PORT + 1)) +FWD_PORT=$(($RND_PORT + 2)) +CONTROL_PORT=$(($RND_PORT + 3)) +CONTROL_PORT2=$(($RND_PORT + 4)) +echo "UNBOUND_PORT=$UNBOUND_PORT" >> .tpkg.var.test +echo "UPSTREAM_PORT=$UPSTREAM_PORT" >> .tpkg.var.test +echo "FWD_PORT=$FWD_PORT" >> .tpkg.var.test +echo "CONTROL_PORT=$CONTROL_PORT" >> .tpkg.var.test +echo "CONTROL_PORT2=$CONTROL_PORT2" >> .tpkg.var.test + +# start ldns-testnd +get_ldns_testns +$LDNS_TESTNS -p $FWD_PORT padding.testns >fwd.log 2>&1 & +FWD_PID=$! +echo "FWD_PID=$FWD_PID" >> .tpkg.var.test + +# start the dnstap log server +# the -vvvv flag prints protocol and connection information from the +# unbound-dnstap-socket server. +# the -l flag prints the DNS info in the DNSTAP packet in multiline output. +# stderr is the '-vvvv' server logs and errors. +# stdout is the one-line packet logs (or with -l, multiline). +$PRE/unbound-dnstap-socket -u dnstap.socket -l -vvvv 2>tap.errlog >tap.log & +if test $? -ne 0; then + echo "could not start unbound-dnstap-socket server" + exit 1 +fi +DNSTAP_SOCKET_PID=$! +echo "DNSTAP_SOCKET_PID=$DNSTAP_SOCKET_PID" >> .tpkg.var.test +# wait for the server to go up and make the dnstap.socket file +wait_server_up "tap.errlog" "creating unix socket" +if test ! -S dnstap.socket; then + echo "the dnstap.socket file does not exist!" +fi + +# make config file +sed -e 's/@PORT\@/'$UNBOUND_PORT'/' -e 's/@TOPORT\@/'$UPSTREAM_PORT'/' -e 's/@CONTROL_PORT\@/'$CONTROL_PORT'/' < padding.conf > ub.conf +# start unbound in the background +$PRE/unbound -d -c ub.conf >unbound.log 2>&1 & +#$PRE/unbound -d -c ub.conf 2>&1 | tee unbound.log & +UNBOUND_PID=$! +echo "UNBOUND_PID=$UNBOUND_PID" >> .tpkg.var.test + +# make upstream config file +sed -e 's/@PORT\@/'$UPSTREAM_PORT'/' -e 's/@TOPORT\@/'$FWD_PORT'/' -e 's/@CONTROL_PORT2\@/'$CONTROL_PORT2'/' < padding.conf2 > ub2.conf +# start upstream unbound in the background +$PRE/unbound -d -c ub2.conf >unbound2.log 2>&1 & +#$PRE/unbound -d -c ub2.conf 2>&1 | tee unbound2.log & +UPSTREAM_PID=$! +echo "UPSTREAM_PID=$UPSTREAM_PID" >> .tpkg.var.test + +wait_ldns_testns_up fwd.log +wait_unbound_up unbound.log +wait_unbound_up unbound2.log + +cat .tpkg.var.test + diff --git a/testdata/padding.tdir/padding.test b/testdata/padding.tdir/padding.test new file mode 100644 index 000000000..5111d8139 --- /dev/null +++ b/testdata/padding.tdir/padding.test @@ -0,0 +1,170 @@ +echo There we go... + +# #-- padding.test --# +# source the master var file when it's there +[ -f ../.tpkg.var.master ] && source ../.tpkg.var.master +# use .tpkg.var.test for in test variable passing +[ -f .tpkg.var.test ] && source .tpkg.var.test + +PRE="../.." +. ../common.sh +if grep "define USE_DNSTAP 1" $PRE/config.h; then echo test enabled; else echo test skipped; exit 0; fi + +echo "> query www.example.com. A" +dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile +echo "> check answer" +if grep "10.20.30.40" outfile; then + echo "OK" +else + echo "> cat logfiles" + cat tap.log + cat tap.errlog + cat fwd.log + cat unbound2.log + cat unbound.log + echo "Not OK" + exit 1 +fi + +echo "> wait for log to happen on timer" +sleep 3 +echo "> check tap.log for dnstap info" +# see if it logged the information in tap.log +# wait for a moment for filesystem to catch up. +if grep "www.example.com" tap.log >/dev/null; then :; else sleep 1; fi +if grep "www.example.com" tap.log >/dev/null; then :; else sleep 1; fi +if grep "www.example.com" tap.log >/dev/null; then :; else sleep 1; fi +if grep "www.example.com" tap.log >/dev/null; then :; else sleep 1; fi +if grep "www.example.com" tap.log >/dev/null; then :; else sleep 1; fi +if grep "www.example.com" tap.log >/dev/null; then :; else sleep 10; fi +if grep "www.example.com" tap.log; then echo "yes it is in tap.log"; +else + echo "information not in tap.log" + echo "failed" + echo "> cat logfiles" + cat tap.log + cat tap.errlog + cat fwd.log + cat unbound.log + echo "Not OK" + exit 1 +fi + +echo "> query txt.example.com. TXT" +dig @127.0.0.1 -p $UNBOUND_PORT txt.example.com. TXT | tee outfile +echo "> check answer" +if grep "Lorem ipsum" outfile; then + echo "OK" +else + echo "> cat logfiles" + cat tap.log + cat tap.errlog + cat fwd.log + cat unbound2.log + cat unbound.log + echo "Not OK" + exit 1 +fi +echo "> check tap.log for dnstap info" +# see if it logged the information in tap.log +# wait for a moment for filesystem to catch up. +if grep "txt.example.com" tap.log >/dev/null; then :; else sleep 1; fi +if grep "txt.example.com" tap.log >/dev/null; then :; else sleep 1; fi +if grep "txt.example.com" tap.log >/dev/null; then :; else sleep 1; fi +if grep "txt.example.com" tap.log >/dev/null; then :; else sleep 1; fi +if grep "txt.example.com" tap.log >/dev/null; then :; else sleep 1; fi +if grep "txt.example.com" tap.log >/dev/null; then :; else sleep 10; fi +if grep "txt.example.com" tap.log; then echo "yes it is in tap.log"; +else + echo "information not in tap.log" + echo "failed" + echo "> cat logfiles" + cat tap.log + cat tap.errlog + cat fwd.log + cat unbound.log + echo "Not OK" + exit 1 +fi + +echo "> flush cache entries." +$PRE/unbound-control -c ub.conf flush_type www.example.com A +$PRE/unbound-control -c ub.conf flush_type txt.example.com TXT +echo "> disable padding of responses." +$PRE/unbound-control -c ub2.conf set_option pad-responses: no +echo "> query www.example.com. A" +dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. A | tee outfile +echo "> query txt.example.com. TXT" +dig @127.0.0.1 -p $UNBOUND_PORT txt.example.com. TXT | tee outfile +echo "> flush cache entries." +$PRE/unbound-control -c ub.conf flush_type www.example.com A +$PRE/unbound-control -c ub.conf flush_type txt.example.com TXT +echo "> enable padding of responses." +$PRE/unbound-control -c ub2.conf set_option pad-responses: yes +echo "> set pad responses block size to 64" +$PRE/unbound-control -c ub2.conf set_option pad-responses-block-size: 64 +echo "> disable padding of queries." +$PRE/unbound-control -c ub.conf set_option pad-queries: no +echo "> query www.example.com. A" +dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. A | tee outfile +echo "> query txt.example.com. TXT" +dig @127.0.0.1 -p $UNBOUND_PORT txt.example.com. TXT | tee outfile +echo "> flush cache entries." +$PRE/unbound-control -c ub.conf flush_type www.example.com A +$PRE/unbound-control -c ub.conf flush_type txt.example.com TXT +echo "> enable padding of queries." +$PRE/unbound-control -c ub.conf set_option pad-queries: yes +echo "> set pad queries block size to 48" +$PRE/unbound-control -c ub.conf set_option pad-queries-block-size: 48 +echo "> query www.example.com. A" +dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. A | tee outfile +echo "> query txt.example.com. TXT" +dig @127.0.0.1 -p $UNBOUND_PORT txt.example.com. TXT | tee outfile +echo "> flush cache entries." +$PRE/unbound-control -c ub.conf flush_type www.example.com A +$PRE/unbound-control -c ub.conf flush_type txt.example.com TXT +echo "> set pad responses block size to 512" +$PRE/unbound-control -c ub2.conf set_option pad-responses-block-size: 512 +echo "> query www.example.com. A" +dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. A | tee outfile +echo "> query fin.example.com. TXT" +dig @127.0.0.1 -p $UNBOUND_PORT fin.example.com. TXT | tee outfile +echo "> check tap.log for dnstap info" +# see if it logged the information in tap.log +# wait for a moment for filesystem to catch up. +if grep "fini" tap.log >/dev/null; then :; else sleep 1; fi +if grep "fini" tap.log >/dev/null; then :; else sleep 1; fi +if grep "fini" tap.log >/dev/null; then :; else sleep 1; fi +if grep "fini" tap.log >/dev/null; then :; else sleep 1; fi +if grep "fini" tap.log >/dev/null; then :; else sleep 1; fi +if grep "fini" tap.log >/dev/null; then :; else sleep 10; fi +if grep "fini" tap.log; then echo "yes it is in tap.log"; +else + echo "information not in tap.log" + echo "failed" + echo "> cat logfiles" + cat tap.log + cat tap.errlog + cat fwd.log + cat unbound.log + echo "Not OK" + exit 1 +fi + +grep '^;; MSG SIZE rcvd: ' tap.log > message.sizes + +if diff message.sizes padding.msgsizes +then + echo "OK - Message sizes matched expected sizes" + exit 0 +else + echo "unexpected message sizes" + echo "failed" + echo "> cat logfiles" + cat tap.log + cat tap.errlog + cat fwd.log + cat unbound.log + echo "Not OK" + exit 1 +fi diff --git a/testdata/padding.tdir/padding.testns b/testdata/padding.tdir/padding.testns new file mode 100644 index 000000000..bd3718ff6 --- /dev/null +++ b/testdata/padding.tdir/padding.testns @@ -0,0 +1,34 @@ +; nameserver test file +$ORIGIN example.com. +$TTL 3600 + +ENTRY_BEGIN +MATCH opcode qtype qname +REPLY QR AA NOERROR +ADJUST copy_id +SECTION QUESTION +www IN A +SECTION ANSWER +www IN A 10.20.30.40 +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +REPLY QR AA NOERROR +ADJUST copy_id +SECTION QUESTION +txt IN TXT +SECTION ANSWER +txt IN TXT "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." "Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +REPLY QR AA NOERROR +ADJUST copy_id +SECTION QUESTION +fin IN TXT +SECTION ANSWER +fin IN TXT "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." "Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." "fini" +ENTRY_END + diff --git a/testdata/padding.tdir/unbound_control.key b/testdata/padding.tdir/unbound_control.key new file mode 100644 index 000000000..753a4ef61 --- /dev/null +++ b/testdata/padding.tdir/unbound_control.key @@ -0,0 +1,39 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIG4gIBAAKCAYEAstEp+Pyh8XGrtZ77A4FhYjvbeB3dMa7Q2rGWxobzlA9przhA +1aChAvUtCOAuM+rB6NTNB8YWfZJbQHawyMNpmC77cg6vXLYCGUQHZyAqidN049RJ +F5T7j4N8Vniv17LiRdr0S6swy4PRvEnIPPV43EQHZqC5jVvHsKkhIfmBF/Dj5TXR +ypeawWV/m5jeU6/4HRYMfytBZdO1mPXuWLh0lgbQ4SCbgrOUVD3rniMk1yZIbQOm +vlDHYqekjDb/vOW2KxUQLG04aZMJ1mWfdbwG0CKQkSjISEDZ1l76vhM6mTM0fwXb +IvyFZ9yPPCle1mF5aSlxS2cmGuGVSRQaw8XF9fe3a9ACJJTr33HdSpyaZkKRAUzL +cKqLCl323daKv3NwwAT03Tj4iQM416ASMoiyfFa/2GWTKQVjddu8Crar7tGaf5xr +lig4DBmrBvdYA3njy72/RD71hLwmlRoCGU7dRuDr9O6KASUm1Ri91ONZ/qdjMvov +15l2vj4GV+KXR00dAgMBAAECggGAHepIL1N0dEQkCdpy+/8lH54L9WhpnOo2HqAf +LU9eaKK7d4jdr9+TkD8cLaPzltPrZNxVALvu/0sA4SP6J1wpyj/x6P7z73qzly5+ +Xo5PD4fEwmi9YaiW/UduAblnEZrnp/AddptJKoL/D5T4XtpiQddPtael4zQ7kB57 +YIexRSQTvEDovA/o3/nvA0TrzOxfgd4ycQP3iOWGN/TMzyLsvjydrUwbOB567iz9 +whL3Etdgvnwh5Sz2blbFfH+nAR8ctvFFz+osPvuIVR21VMEI6wm7kTpSNnQ6sh/c +lrLb/bTADn4g7z/LpIZJ+MrLvyEcoqValrLYeFBhM9CV8woPxvkO2P3pU47HVGax +tC7GV6a/kt5RoKFd/TNdiA3OC7NGZtaeXv9VkPf4fVwBtSO9d5ZZXTGEynDD/rUQ +U4KFJe6OD23APjse08HiiKqTPhsOneOONU67iqoaTdIkT2R4EdlkVEDpXVtWb+G9 +Q+IqYzVljlzuyHrhWXLJw/FMa2aBAoHBAOnZbi4gGpH+P6886WDWVgIlTccuXoyc +Mg9QQYk9UDeXxL0AizR5bZy49Sduegz9vkHpAiZARQsUnizHjZ8YlRcrmn4t6tx3 +ahTIKAjdprnxJfYINM580j8CGbXvX5LhIlm3O267D0Op+co3+7Ujy+cjsIuFQrP+ +1MqMgXSeBjzC1APivmps7HeFE+4w0k2PfN5wSMDNCzLo99PZuUG5XZ93OVOS5dpN +b+WskdcD8NOoJy/X/5A08veEI/jYO/DyqQKBwQDDwUQCOWf41ecvJLtBHKmEnHDz +ftzHino9DRKG8a9XaN4rmetnoWEaM2vHGX3pf3mwH+dAe8vJdAQueDhBKYeEpm6C +TYNOpou1+Zs5s99BilCTNYo8fkMOAyqwRwmz9zgHS6QxXuPwsghKefLJGt6o6RFF +tfWVTfLlYJ+I3GQe3ySsk3wjVz4oUTKiyiq5+KzD+HhEkS7u+RQ7Z0ZI2xd2cF8Y +aN2hjKDpcOiFf3CDoqka5D1qMNLgIHO52AHww1UCgcA1h7o7AMpURRka6hyaODY0 +A4oMYEbwdQjYjIyT998W+rzkbu1us6UtzQEBZ760npkgyU/epbOoV63lnkCC/MOU +LD0PST+L/CHiY/cWIHb79YG1EifUZKpUFg0Aoq0EGFkepF0MefGCkbRGYA5UZr9U +R80wAu9D+L+JJiS0J0BSRF74DL196zUuHt5zFeXuLzxsRtPAnq9DliS08BACRYZy +7H3I7cWD9Vn5/0jbKWHFcaaWwyETR6uekTcSzZzbCRECgcBeoE3/xUA9SSk34Mmj +7/cB4522Ft0imA3+9RK/qJTZ7Bd5fC4PKjOGNtUiqW/0L2rjeIiQ40bfWvWqgPKw +jSK1PL6uvkl6+4cNsFsYyZpiVDoe7wKju2UuoNlB3RUTqa2r2STFuNj2wRjA57I1 +BIgdnox65jqQsd14g/yaa+75/WP9CE45xzKEyrtvdcqxm0Pod3OrsYK+gikFjiar +kT0GQ8u0QPzh2tjt/2ZnIfOBrl+QYERP0MofDZDjhUdq2wECgcB0Lu841+yP5cdR +qbJhXO4zJNh7oWNcJlOuQp3ZMNFrA1oHpe9pmLukiROOy01k9WxIMQDzU5GSqRv3 +VLkYOIcbhJ3kClKAcM3j95SkKbU2H5/RENb3Ck52xtl4pNU1x/3PnVFZfDVuuHO9 +MZ9YBcIeK98MyP2jr5JtFKnOyPE7xKq0IHIhXadpbc2wjje5FtZ1cUtMyEECCXNa +C1TpXebHGyXGpY9WdWXhjdE/1jPvfS+uO5WyuDpYPr339gsdq1g= +-----END RSA PRIVATE KEY----- diff --git a/testdata/padding.tdir/unbound_control.pem b/testdata/padding.tdir/unbound_control.pem new file mode 100644 index 000000000..a1edf7017 --- /dev/null +++ b/testdata/padding.tdir/unbound_control.pem @@ -0,0 +1,22 @@ +-----BEGIN CERTIFICATE----- +MIIDszCCAhsCFGD5193whHQ2bVdzbaQfdf1gc4SkMA0GCSqGSIb3DQEBCwUAMBIx +EDAOBgNVBAMMB3VuYm91bmQwHhcNMjAwNzA4MTMzMjMwWhcNNDAwMzI1MTMzMjMw +WjAaMRgwFgYDVQQDDA91bmJvdW5kLWNvbnRyb2wwggGiMA0GCSqGSIb3DQEBAQUA +A4IBjwAwggGKAoIBgQCy0Sn4/KHxcau1nvsDgWFiO9t4Hd0xrtDasZbGhvOUD2mv +OEDVoKEC9S0I4C4z6sHo1M0HxhZ9kltAdrDIw2mYLvtyDq9ctgIZRAdnICqJ03Tj +1EkXlPuPg3xWeK/XsuJF2vRLqzDLg9G8Scg89XjcRAdmoLmNW8ewqSEh+YEX8OPl +NdHKl5rBZX+bmN5Tr/gdFgx/K0Fl07WY9e5YuHSWBtDhIJuCs5RUPeueIyTXJkht +A6a+UMdip6SMNv+85bYrFRAsbThpkwnWZZ91vAbQIpCRKMhIQNnWXvq+EzqZMzR/ +Bdsi/IVn3I88KV7WYXlpKXFLZyYa4ZVJFBrDxcX197dr0AIklOvfcd1KnJpmQpEB +TMtwqosKXfbd1oq/c3DABPTdOPiJAzjXoBIyiLJ8Vr/YZZMpBWN127wKtqvu0Zp/ +nGuWKDgMGasG91gDeePLvb9EPvWEvCaVGgIZTt1G4Ov07ooBJSbVGL3U41n+p2My ++i/XmXa+PgZX4pdHTR0CAwEAATANBgkqhkiG9w0BAQsFAAOCAYEAd++Wen6l8Ifj +4h3p/y16PhSsWJWuJ4wdNYy3/GM84S26wGjzlEEwiW76HpH6VJzPOiBAeWnFKE83 +hFyetEIxgJeIPbcs9ZP/Uoh8GZH9tRISBSN9Hgk2Slr9llo4t1H0g/XTgA5HqMQU +9YydlBh43G7Vw3FVwh09OM6poNOGQKNc/tq2/QdKeUMtyBbLWpRmjH5XcCT35fbn +ZiVOUldqSHD4kKrFO4nJYXZyipRbcXybsLiX9GP0GLemc3IgIvOXyJ2RPp06o/SJ +pzlMlkcAfLJaSuEW57xRakhuNK7m051TKKzJzIEX+NFYOVdafFHS8VwGrYsdrFvD +72tMfu+Fu55y3awdWWGc6YlaGogZiuMnJkvQphwgn+5qE/7CGEckoKEsH601rqIZ +muaIc85+nEcHJeijd/ZlBN9zeltjFoMuqTUENgmv8+tUAdVm/UMY9Vjme6b43ydP +uv6DS02+k9z8toxXworLiPr94BGaiGV1NxgwZKLZigYJt/Fi2Qte +-----END CERTIFICATE----- diff --git a/testdata/padding.tdir/unbound_server.key b/testdata/padding.tdir/unbound_server.key new file mode 100644 index 000000000..370a7bbb2 --- /dev/null +++ b/testdata/padding.tdir/unbound_server.key @@ -0,0 +1,39 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIG5AIBAAKCAYEAvjSVSN2QMXudpzukdLCqgg/IOhCX8KYkD0FFFfWcQjgKq5wI +0x41iG32a6wbGanre4IX7VxaSPu9kkHfnGgynCk5nwDRedE/FLFhAU78PoT0+Nqq +GRS7XVQ24vLmIz9Hqc2Ozx1um1BXBTmIT0UfN2e22I0LWQ6a3seZlEDRj45gnk7Z +uh9MDgotaBdm+v1JAbupSf6Zis4VEH3JNdvVGE3O1DHEIeuuz/3BDhpf6WBDH+8K +WaBe1ca4TZHr9ThL2gEMEfAQl0wXDwRWRoi3NjNMH+mw0L1rjwThI5GXqNIee7o5 +FzUReSXZuTdFMyGe3Owcx+XoYnwi6cplSNoGsDBu4B9bKKglR9YleJVw4L4Xi8xP +q6O9UPj4+nypHk/DOoC7DIM3ufN0yxPBsFo5TVowxfhdjZXJbbftd2TZv7AH8+XL +A5UoZgRzXgzECelXSCTBFlMTnT48LfA9pMLydyjAz2UdPHs5Iv+TK5nnI+aJoeaP +7kFZSngxdy1+A/bNAgMBAAECggGBALpTOIqQwVg4CFBylL/a8K1IWJTI/I65sklf +XxYL7G7SB2HlEJ//z+E+F0+S4Vlao1vyLQ5QkgE82pAUB8FoMWvY1qF0Y8A5wtm6 +iZSGk4OLK488ZbT8Ii9i+AGKgPe2XbVxsJwj8N4k7Zooqec9hz73Up8ATEWJkRz7 +2u7oMGG4z91E0PULA64dOi3l/vOQe5w/Aa+CwVbAWtI05o7kMvQEBMDJn6C7CByo +MB5op9wueJMnz7PM7hns+U7Dy6oE4ljuolJUy51bDzFWwoM54cRoQqLFNHd8JVQj +WxldCkbfF43iyprlsEcUrTyUjtdA+ZeiG39vg/mtdmgNpGmdupHJZQvSuG8IcVlz +O+eMSeQS1QXPD6Ik8UK4SU0h+zOl8xIWtRrsxQuh4fnTN40udm/YUWl/6gOebsBI +IrVLlKGqJSfB3tMjpCRqdTzJ0dA9keVpkqm2ugZkxEf1+/efq/rFIQ2pUBLCqNTN +qpNqruK8y8FphP30I2uI4Ej2UIB8AQKBwQDd2Yptj2FyDyaXCycsyde0wYkNyzGU +dRnzdibfHnMZwjgTjwAwgIUBVIS8H0/z7ZJQKN7osJfddMrtjJtYYUk9g/dCpHXs +bNh2QSoWah3FdzNGuWd0iRf9+LFxhjAAMo/FS8zFJAJKrFsBdCGTfFUMdsLC0bjr +YjiWBuvV72uKf8XIZX5KIZruKdWBBcWukcb21R1UDyFYyXRBsly5XHaIYKZql3km +7pV7MKWO0IYgHbHIqGUqPQlzZ/lkunS1jKECgcEA23wHffD6Ou9/x3okPx2AWpTr +gh8rgqbyo6hQkBW5Y90Wz824cqaYebZDaBR/xlVx/YwjKkohv8Bde2lpH/ZxRZ1Z +5Sk2s6GJ/vU0L9RsJZgCgj4L6Coal1NMxuZtCXAlnOpiCdxSZgfqbshbTVz30KsG +ZJG361Cua1ScdAHxlZBxT52/1Sm0zRC2hnxL7h4qo7Idmtzs40LAJvYOKekR0pPN +oWeJfra7vgx/jVNvMFWoOoSLpidVO4g+ot4ery6tAoHAdW3rCic1C2zdnmH28Iw+ +s50l8Lk3mz+I5wgJd1zkzCO0DxZIoWPGA3g7cmCYr6N3KRsZMs4W9NAXgjpFGDkW +zYsG3K21BdpvkdjYcFjnPVjlOXB2RIc0vehf9Jl02wXoeCSxVUDEPcaRvWk9RJYx +ZpGOchUU7vNkxHURbIJ4yCzuAi9G8/Jp0dsu+kaV5tufF5SjG5WOrzKjaQsCbdN1 +oqaWMCHRrTvov/Z2C+xwsptFOdN5CSyZzg6hQiI4GMlBAoHAXyb6KINcOEi0YMp3 +BFXJ23tMTnEs78tozcKeipigcsbaqORK3omS+NEnj+uzKUzJyl4CsMbKstK2tFYS +mSTCHqgE3PBtIpsZtEqhgUraR8IK9GPpzZDTTl9ynZgwFTNlWw3RyuyVXF56J+T8 +kCGJ3hEHCHqT/ZRQyX85BKIDFhA0z4tYKxWVqIFiYBNq56R0X9tMMmMs36mEnF93 +7Ht6mowxTZQRa7nU0qOgeKh/P7ki4Zus3y+WJ+T9IqahLtlRAoHBAIhqMrcxSAB8 +RpB9jukJlAnidw2jCMPgrFE8tP0khhVvGrXMldxAUsMKntDIo8dGCnG1KTcWDI0O +jepvSPHSsxVLFugL79h0eVIS5z4huW48i9xgU8VlHdgAcgEPIAOFcOw2BCu/s0Vp +O+MM/EyUOdo3NsibB3qc/GJI6iNBYS7AljYEVo6rXo5V/MZvZUF4vClen6Obzsre +MTTb+4sJjfqleWuvr1XNMeu2mBfXBQkWGZP1byBK0MvD/aQ2PWq92A== +-----END RSA PRIVATE KEY----- diff --git a/testdata/padding.tdir/unbound_server.pem b/testdata/padding.tdir/unbound_server.pem new file mode 100644 index 000000000..986807310 --- /dev/null +++ b/testdata/padding.tdir/unbound_server.pem @@ -0,0 +1,22 @@ +-----BEGIN CERTIFICATE----- +MIIDqzCCAhMCFBHWXeQ6ZIa9QcQbXLFfC6tj+KA+MA0GCSqGSIb3DQEBCwUAMBIx +EDAOBgNVBAMMB3VuYm91bmQwHhcNMjAwNzA4MTMzMjI5WhcNNDAwMzI1MTMzMjI5 +WjASMRAwDgYDVQQDDAd1bmJvdW5kMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIB +igKCAYEAvjSVSN2QMXudpzukdLCqgg/IOhCX8KYkD0FFFfWcQjgKq5wI0x41iG32 +a6wbGanre4IX7VxaSPu9kkHfnGgynCk5nwDRedE/FLFhAU78PoT0+NqqGRS7XVQ2 +4vLmIz9Hqc2Ozx1um1BXBTmIT0UfN2e22I0LWQ6a3seZlEDRj45gnk7Zuh9MDgot +aBdm+v1JAbupSf6Zis4VEH3JNdvVGE3O1DHEIeuuz/3BDhpf6WBDH+8KWaBe1ca4 +TZHr9ThL2gEMEfAQl0wXDwRWRoi3NjNMH+mw0L1rjwThI5GXqNIee7o5FzUReSXZ +uTdFMyGe3Owcx+XoYnwi6cplSNoGsDBu4B9bKKglR9YleJVw4L4Xi8xPq6O9UPj4 ++nypHk/DOoC7DIM3ufN0yxPBsFo5TVowxfhdjZXJbbftd2TZv7AH8+XLA5UoZgRz +XgzECelXSCTBFlMTnT48LfA9pMLydyjAz2UdPHs5Iv+TK5nnI+aJoeaP7kFZSngx +dy1+A/bNAgMBAAEwDQYJKoZIhvcNAQELBQADggGBABunf93MKaCUHiZgnoOTinsW +84/EgInrgtKzAyH+BhnKkJOhhR0kkIAx5d9BpDlaSiRTACFon9moWCgDIIsK/Ar7 +JE0Kln9cV//wiiNoFU0O4mnzyGUIMvlaEX6QHMJJQYvL05+w/3AAcf5XmMJtR5ca +fJ8FqvGC34b2WxX9lTQoyT52sRt+1KnQikiMEnEyAdKktMG+MwKsFDdOwDXyZhZg +XZhRrfX3/NVJolqB6EahjWIGXDeKuSSKZVtCyib6LskyeMzN5lcRfvubKDdlqFVF +qlD7rHBsKhQUWK/IO64mGf7y/de+CgHtED5vDvr/p2uj/9sABATfbrOQR3W/Of25 +sLBj4OEfrJ7lX8hQgFaxkMI3x6VFT3W8dTCp7xnQgb6bgROWB5fNEZ9jk/gjSRmD +yIU+r0UbKe5kBk/CmZVFXL2TyJ92V5NYEQh8V4DGy19qZ6u/XKYyNJL4ocs35GGe +CA8SBuyrmdhx38h1RHErR2Skzadi1S7MwGf1y431fQ== +-----END CERTIFICATE----- diff --git a/testdata/serve_original_ttl.rpl b/testdata/serve_original_ttl.rpl new file mode 100644 index 000000000..630fb39a4 --- /dev/null +++ b/testdata/serve_original_ttl.rpl @@ -0,0 +1,136 @@ +; config options +server: + access-control: 127.0.0.1 allow_snoop + module-config: "validator iterator" + qname-minimisation: "no" + minimal-responses: no + serve-original-ttl: yes + cache-max-ttl: 1000 + cache-min-ttl: 20 + serve-expired: yes + serve-expired-reply-ttl: 123 + +stub-zone: + name: "example.com" + stub-addr: 1.2.3.4 +CONFIG_END + +SCENARIO_BEGIN Test serve-original-ttl +; Scenario overview: +; - query for example.com. IN A +; - check that we get an answer for example.com. IN A with the correct TTL +; - query again after a couple seconds and check that we get the original TTL +; (next steps are combination with serve-expired) +; - query again after the TTL expired +; - check that we get the expired cached answer with the original TTL + +; ns.example.com. +RANGE_BEGIN 0 100 + ADDRESS 1.2.3.4 + ENTRY_BEGIN + MATCH opcode qtype qname + ADJUST copy_id + REPLY QR NOERROR + SECTION QUESTION + example.com. IN NS + SECTION ANSWER + example.com. IN NS ns.example.com. + SECTION ADDITIONAL + ns.example.com. IN A 1.2.3.4 + ENTRY_END + + ENTRY_BEGIN + MATCH opcode qtype qname + ADJUST copy_id + REPLY QR NOERROR + SECTION QUESTION + example.com. IN A + SECTION ANSWER + example.com. 10 IN A 5.6.7.8 + SECTION AUTHORITY + example.com. IN NS ns.example.com. + SECTION ADDITIONAL + ns.example.com. IN A 1.2.3.4 + ENTRY_END +RANGE_END + +; Query with RD flag +STEP 1 QUERY +ENTRY_BEGIN + REPLY RD + SECTION QUESTION + example.com. IN A +ENTRY_END + +; Check that we got the correct answer (should be cached) +STEP 10 CHECK_ANSWER +ENTRY_BEGIN + MATCH all ttl + REPLY QR RD RA NOERROR + SECTION QUESTION + example.com. IN A + SECTION ANSWER + example.com. 10 IN A 5.6.7.8 + SECTION AUTHORITY + example.com. IN NS ns.example.com. + SECTION ADDITIONAL + ns.example.com. IN A 1.2.3.4 +ENTRY_END + +; Wait a couple of seconds (< 10) +STEP 11 TIME_PASSES ELAPSE 5 + +; Query again +STEP 20 QUERY +ENTRY_BEGIN + REPLY + SECTION QUESTION + example.com. IN A +ENTRY_END + +; Check that we got the cached answer with the original TTL +; (Passively checks that minimum and maximum TTLs are ignored) +STEP 30 CHECK_ANSWER +ENTRY_BEGIN + MATCH all ttl + REPLY QR RA NOERROR + SECTION QUESTION + example.com. IN A + SECTION ANSWER + example.com. 10 A 5.6.7.8 + SECTION AUTHORITY + example.com. 3600 NS ns.example.com. + SECTION ADDITIONAL + ns.example.com. 3600 A 1.2.3.4 +ENTRY_END + +; Wait for the TTL to expire +STEP 31 TIME_PASSES ELAPSE 3601 + +; Query again +STEP 40 QUERY +ENTRY_BEGIN + REPLY + SECTION QUESTION + example.com. IN A +ENTRY_END + +; Check that we got a stale answer with the original TTL +STEP 50 CHECK_ANSWER +ENTRY_BEGIN + MATCH all ttl + REPLY QR RA NOERROR + SECTION QUESTION + example.com. IN A + SECTION ANSWER + example.com. 10 A 5.6.7.8 + SECTION AUTHORITY + example.com. NS ns.example.com. + SECTION ADDITIONAL + ns.example.com. A 1.2.3.4 +ENTRY_END + +; Give time for the pending query to get answered +STEP 51 TRAFFIC + +SCENARIO_END diff --git a/util/config_file.c b/util/config_file.c index df274f9d0..4d87dee9b 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -261,6 +261,7 @@ config_create(void) cfg->serve_expired_ttl_reset = 0; cfg->serve_expired_reply_ttl = 30; cfg->serve_expired_client_timeout = 0; + cfg->serve_original_ttl = 0; cfg->add_holddown = 30*24*3600; cfg->del_holddown = 30*24*3600; cfg->keep_missing = 366*24*3600; /* one year plus a little leeway */ @@ -338,6 +339,10 @@ config_create(void) cfg->dnscrypt_shared_secret_cache_slabs = 4; cfg->dnscrypt_nonce_cache_size = 4*1024*1024; cfg->dnscrypt_nonce_cache_slabs = 4; + cfg->pad_responses = 1; + cfg->pad_responses_block_size = 468; /* from RFC8467 */ + cfg->pad_queries = 1; + cfg->pad_queries_block_size = 128; /* from RFC8467 */ #ifdef USE_IPSECMOD cfg->ipsecmod_enabled = 1; cfg->ipsecmod_ignore_bogus = 0; @@ -642,6 +647,7 @@ int config_set_option(struct config_file* cfg, const char* opt, else if(strcmp(opt, "serve-expired-reply-ttl:") == 0) { IS_NUMBER_OR_ZERO; cfg->serve_expired_reply_ttl = atoi(val); SERVE_EXPIRED_REPLY_TTL=(time_t)cfg->serve_expired_reply_ttl;} else S_NUMBER_OR_ZERO("serve-expired-client-timeout:", serve_expired_client_timeout) + else S_YNO("serve-original-ttl:", serve_original_ttl) else S_STR("val-nsec3-keysize-iterations:", val_nsec3_key_iterations) else S_UNSIGNED_OR_ZERO("add-holddown:", add_holddown) else S_UNSIGNED_OR_ZERO("del-holddown:", del_holddown) @@ -737,6 +743,10 @@ int config_set_option(struct config_file* cfg, const char* opt, else S_NUMBER_OR_ZERO("fast-server-permil:", fast_server_permil) else S_YNO("qname-minimisation:", qname_minimisation) else S_YNO("qname-minimisation-strict:", qname_minimisation_strict) + else S_YNO("pad-responses:", pad_responses) + else S_SIZET_NONZERO("pad-responses-block-size:", pad_responses_block_size) + else S_YNO("pad-queries:", pad_queries) + else S_SIZET_NONZERO("pad-queries-block-size:", pad_queries_block_size) #ifdef USE_IPSECMOD else S_YNO("ipsecmod-enabled:", ipsecmod_enabled) else S_YNO("ipsecmod-ignore-bogus:", ipsecmod_ignore_bogus) @@ -1058,6 +1068,7 @@ config_get_option(struct config_file* cfg, const char* opt, else O_YNO(opt, "serve-expired-ttl-reset", serve_expired_ttl_reset) else O_DEC(opt, "serve-expired-reply-ttl", serve_expired_reply_ttl) else O_DEC(opt, "serve-expired-client-timeout", serve_expired_client_timeout) + else O_YNO(opt, "serve-original-ttl", serve_original_ttl) else O_STR(opt, "val-nsec3-keysize-iterations",val_nsec3_key_iterations) else O_UNS(opt, "add-holddown", add_holddown) else O_UNS(opt, "del-holddown", del_holddown) @@ -1177,6 +1188,10 @@ config_get_option(struct config_file* cfg, const char* opt, else O_LS3(opt, "access-control-tag-action", acl_tag_actions) else O_LS3(opt, "access-control-tag-data", acl_tag_datas) else O_LS2(opt, "access-control-view", acl_view) + else O_YNO(opt, "pad-responses", pad_responses) + else O_DEC(opt, "pad-responses-block-size", pad_responses_block_size) + else O_YNO(opt, "pad-queries", pad_queries) + else O_DEC(opt, "pad-queries-block-size", pad_queries_block_size) else O_LS2(opt, "edns-client-strings", edns_client_strings) #ifdef USE_IPSECMOD else O_YNO(opt, "ipsecmod-enabled", ipsecmod_enabled) @@ -2049,8 +2064,9 @@ uint8_t* cfg_parse_nsid(const char* str, uint16_t* nsid_len) if ((nsid = (uint8_t *)strdup(str + 6))) *nsid_len = strlen(str + 6); - } else if (strlen(str) % 2) + } else if (strlen(str) % 2) { ; /* hex string has even number of characters */ + } else if (*str && (nsid = calloc(1, strlen(str) / 2))) { const char *ch; @@ -2114,6 +2130,7 @@ config_apply(struct config_file* config) SERVE_EXPIRED = config->serve_expired; SERVE_EXPIRED_TTL = (time_t)config->serve_expired_ttl; SERVE_EXPIRED_REPLY_TTL = (time_t)config->serve_expired_reply_ttl; + SERVE_ORIGINAL_TTL = config->serve_original_ttl; MAX_NEG_TTL = (time_t)config->max_negative_ttl; RTT_MIN_TIMEOUT = config->infra_cache_min_rtt; EDNS_ADVERTISED_SIZE = (uint16_t)config->edns_buffer_size; diff --git a/util/config_file.h b/util/config_file.h index 05b12fbaa..7cf27cc2c 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -392,6 +392,8 @@ struct config_file { /** serve expired entries only after trying to update the entries and this * timeout (in milliseconds) is reached */ int serve_expired_client_timeout; + /** serve original TTLs rather than decrementing ones */ + int serve_original_ttl; /** nsec3 maximum iterations per key size, string */ char* val_nsec3_key_iterations; /** autotrust add holddown time, in seconds */ @@ -600,6 +602,17 @@ struct config_file { size_t dnscrypt_nonce_cache_size; /** number of slabs for dnscrypt nonces cache */ size_t dnscrypt_nonce_cache_slabs; + + /** EDNS padding according to RFC7830 and RFC8467 */ + /** true to enable padding of responses (default: on) */ + int pad_responses; + /** block size with which to pad encrypted responses (default: 468) */ + size_t pad_responses_block_size; + /** true to enable padding of queries (default: on) */ + int pad_queries; + /** block size with which to pad encrypted queries (default: 128) */ + size_t pad_queries_block_size; + /** IPsec module */ #ifdef USE_IPSECMOD /** false to bypass the IPsec module */ diff --git a/util/configlexer.c b/util/configlexer.c index 4235cd04a..7febaa53d 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -1,7 +1,7 @@ #include "config.h" #include "util/configyyrename.h" -#line 3 "" +#line 2 "" #define YY_INT_ALIGNED short int @@ -354,8 +354,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 338 -#define YY_END_OF_BUFFER 339 +#define YY_NUM_RULES 343 +#define YY_END_OF_BUFFER 344 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -363,371 +363,377 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[3296] = +static const flex_int16_t yy_accept[3354] = { 0, - 1, 1, 312, 312, 316, 316, 320, 320, 324, 324, - 1, 1, 328, 328, 332, 332, 339, 336, 1, 310, - 310, 337, 2, 337, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 312, 313, 313, 314, - 337, 316, 317, 317, 318, 337, 323, 320, 321, 321, - 322, 337, 324, 325, 325, 326, 337, 335, 311, 2, - 315, 337, 335, 331, 328, 329, 329, 330, 337, 332, - 333, 333, 334, 337, 336, 0, 1, 2, 2, 2, - 2, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 1, 1, 317, 317, 321, 321, 325, 325, 329, 329, + 1, 1, 333, 333, 337, 337, 344, 341, 1, 315, + 315, 342, 2, 342, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 317, 318, 318, 319, + 342, 321, 322, 322, 323, 342, 328, 325, 326, 326, + 327, 342, 329, 330, 330, 331, 342, 340, 316, 2, + 320, 342, 340, 336, 333, 334, 334, 335, 342, 337, + 338, 338, 339, 342, 341, 0, 1, 2, 2, 2, + 2, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 312, 0, - 316, 0, 323, 0, 320, 324, 0, 335, 0, 2, - 2, 335, 331, 0, 328, 332, 0, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 317, + 0, 321, 0, 328, 0, 325, 329, 0, 340, 0, + 2, 2, 340, 336, 0, 333, 337, 0, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 335, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 340, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 125, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 134, 336, 336, 336, - 336, 336, 336, 336, 335, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 125, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 134, + 341, 341, 341, 341, 341, 341, 341, 340, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 109, 336, 309, 336, 336, 336, 336, - 336, 8, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 109, 341, 314, 341, + 341, 341, 341, 341, 341, 341, 8, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 336, 126, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 139, 336, 335, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 341, 341, 341, 341, 341, 341, 126, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 139, 341, 340, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 336, 336, 302, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 341, 341, 341, 341, 341, 341, 341, 307, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 336, 336, 336, 336, 336, 335, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 64, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 238, 336, 14, 15, 336, 19, 18, - 336, 336, 222, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 132, 336, 336, 336, 336, 336, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 340, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 64, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 239, 341, 14, 15, 341, 19, 18, 341, 341, 223, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 220, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 3, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 335, 336, 336, 336, 336, 336, 336, 336, 296, 336, + 341, 132, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 221, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 3, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 336, 295, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 319, - 336, 336, 336, 336, 336, 336, 336, 336, 63, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 67, 336, 269, 336, 336, - 336, 336, 336, 336, 336, 336, 303, 304, 336, 336, + 340, 341, 341, 341, 341, 341, 341, 341, 301, 341, + 341, 300, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 324, + 341, 341, 341, 341, 341, 341, 341, 341, 63, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 67, 341, 270, 341, 341, - 336, 336, 336, 68, 336, 336, 133, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 129, 336, 336, 336, 336, 336, 336, 336, 336, - 209, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 21, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 158, 336, 336, 335, 319, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 341, 341, 341, 341, 341, 341, 308, 309, 341, 341, + 341, 341, 341, 341, 341, 68, 341, 341, 133, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 129, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 210, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 21, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 158, 341, 341, 340, 324, 341, - 336, 336, 336, 336, 336, 336, 336, 107, 336, 336, - 336, 336, 336, 336, 336, 277, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 181, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 157, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 107, 341, 341, 341, 341, 341, 341, 341, 278, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 182, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 157, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 336, 336, 336, 336, 336, 336, 106, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 32, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 33, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 65, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 131, 335, 336, 336, 336, 336, 336, 124, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 106, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 32, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 33, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 65, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 131, 340, 341, 341, - 336, 336, 336, 66, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 242, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 182, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 54, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 341, 341, 341, 124, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 66, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 243, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 183, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 54, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 260, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 58, 336, - 59, 336, 336, 336, 336, 336, 110, 336, 111, 336, - 336, 336, 336, 108, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 7, 336, 335, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 261, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 58, 341, 59, + 341, 341, 341, 341, 341, 110, 341, 111, 341, 341, + 341, 341, 108, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 336, 336, 336, 336, 231, 336, 336, 336, 336, 160, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 243, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 45, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 55, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 201, 336, - 200, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 341, 341, 7, 341, 340, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 232, 341, 341, 341, 341, 160, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 244, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 45, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 55, 341, 341, 341, 341, 341, 341, 341, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 16, 17, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 69, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 208, 336, 336, 336, 336, 336, - 336, 113, 336, 112, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 192, 336, 336, 336, - 336, 336, 336, 336, 336, 140, 335, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 101, 336, 336, + 341, 341, 341, 341, 341, 341, 341, 202, 341, 201, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 16, 17, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 69, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 209, 341, 341, 341, + 341, 341, 341, 113, 341, 112, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 193, 341, - 336, 336, 336, 336, 336, 336, 336, 89, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 221, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 94, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 62, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 195, 196, 336, 336, 336, 271, 336, + 341, 341, 341, 341, 341, 341, 341, 140, 340, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 101, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 89, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 222, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 94, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 62, 341, 341, 341, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 6, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 275, 336, 336, 336, 336, 336, 336, - 297, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 42, 336, 336, 336, 336, 44, 336, 336, 336, - 90, 336, 336, 336, 336, 336, 52, 336, 336, 336, - 336, 336, 336, 336, 335, 336, 188, 336, 336, 336, - 135, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 196, 197, 341, 341, 341, + 272, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 6, 341, 341, 341, 341, 341, 341, + 291, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 276, 341, + 341, 341, 341, 341, 341, 302, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 42, 341, 341, + 341, 341, 44, 341, 341, 341, 90, 341, 341, 341, - 336, 213, 336, 189, 336, 336, 336, 228, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 53, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 137, - 118, 336, 119, 336, 336, 336, 117, 336, 336, 336, - 336, 336, 336, 336, 336, 155, 336, 336, 50, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 259, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 190, 336, 336, 336, 336, - 336, 193, 336, 199, 336, 336, 336, 336, 336, 227, + 341, 341, 52, 341, 341, 341, 341, 341, 341, 341, + 340, 341, 189, 341, 341, 341, 135, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 214, 341, 190, + 341, 341, 341, 229, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 53, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 137, 118, 341, 119, 341, + 341, 341, 117, 341, 341, 341, 341, 341, 341, 341, + 341, 155, 341, 341, 50, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 105, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 130, 336, 336, 336, 336, 336, 336, - 60, 336, 336, 336, 26, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 20, 336, 336, 336, 336, 336, - 336, 27, 36, 336, 165, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 335, 336, - 336, 336, 336, 336, 336, 77, 79, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 341, 260, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 191, 341, 341, 341, 341, 341, 194, 341, 200, + 341, 341, 341, 341, 341, 228, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 105, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 130, 341, 341, 341, 341, 341, 341, 341, 60, + 341, 341, 341, 26, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 20, 341, 341, 341, 341, 341, 341, + 27, 36, 341, 165, 341, 341, 341, 341, 341, 341, - 279, 336, 336, 336, 336, 239, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 120, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 154, 336, - 46, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 290, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 159, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 219, 336, 336, 336, 336, + 341, 341, 341, 341, 341, 341, 341, 340, 341, 341, + 341, 341, 341, 341, 77, 79, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 280, + 341, 341, 341, 341, 240, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 120, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 154, 341, 46, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 295, 341, 341, 341, 341, 341, 341, 341, 341, - 336, 336, 336, 336, 336, 300, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 176, 336, 336, - 336, 336, 336, 336, 336, 336, 114, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 171, 336, 183, 336, - 336, 336, 336, 335, 336, 143, 336, 336, 336, 336, - 336, 100, 336, 336, 336, 336, 211, 336, 336, 336, - 336, 336, 336, 229, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 251, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 159, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 289, 341, 341, 341, 220, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 305, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 176, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 114, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 171, + 341, 184, 341, 341, 341, 341, 340, 341, 143, 341, + 341, 341, 341, 341, 100, 341, 341, 341, 341, 212, - 336, 136, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 175, 336, 336, 336, - 336, 336, 336, 80, 336, 81, 336, 336, 336, 336, - 336, 61, 293, 336, 336, 336, 336, 336, 88, 184, - 336, 202, 336, 232, 336, 336, 194, 272, 336, 336, - 336, 336, 336, 73, 336, 186, 336, 336, 336, 336, - 336, 9, 336, 336, 336, 104, 336, 336, 336, 336, - 264, 336, 336, 336, 336, 210, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 341, 341, 341, 341, 341, 341, 230, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 252, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 136, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 175, + 341, 341, 341, 341, 341, 341, 80, 341, 81, 341, + 341, 341, 341, 341, 61, 298, 341, 341, 341, 341, + 341, 88, 185, 341, 203, 341, 233, 341, 341, 195, + 273, 341, 341, 341, 341, 341, 73, 341, 187, 341, + 341, 341, 341, 341, 9, 341, 341, 341, 341, 341, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 335, 336, 336, 336, 336, 174, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 161, 336, 278, - 336, 336, 336, 336, 336, 250, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 223, 336, 336, - 336, 336, 336, 270, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 294, 336, 185, 336, 336, 336, + 104, 341, 341, 341, 341, 265, 341, 341, 341, 341, + 211, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 340, 341, 341, + 341, 341, 174, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 161, 341, 279, 341, 341, 341, 341, + 341, 251, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 224, 341, 341, 341, 341, 341, 271, - 336, 336, 336, 336, 72, 74, 336, 336, 336, 336, - 336, 336, 336, 103, 336, 336, 336, 336, 262, 336, - 336, 336, 336, 274, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 215, 34, 28, 30, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 35, 336, - 29, 31, 336, 336, 336, 336, 336, 336, 336, 336, - 99, 336, 336, 336, 336, 336, 336, 335, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 217, - 214, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 71, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 299, 341, 186, 341, 341, 341, 341, 341, 341, 341, + 72, 74, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 103, 341, 341, 341, 341, 263, 341, 341, 341, + 341, 275, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 216, 34, 28, 30, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 35, 341, 29, + 31, 341, 341, 341, 341, 341, 341, 341, 341, 99, - 336, 336, 336, 138, 336, 121, 336, 336, 336, 336, - 336, 336, 336, 336, 156, 47, 336, 336, 336, 327, - 13, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 288, 336, 291, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 12, 336, 336, 22, 336, 336, - 336, 268, 336, 336, 336, 336, 276, 336, 336, 336, - 75, 336, 225, 336, 336, 336, 336, 216, 336, 336, - 70, 336, 336, 336, 336, 23, 336, 43, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 170, 169, 327, 336, 336, 336, 336, 336, 336, 336, + 341, 341, 341, 341, 341, 341, 340, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 218, 215, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 71, 341, + 341, 341, 138, 341, 121, 341, 341, 341, 341, 341, + 341, 341, 341, 156, 47, 341, 341, 341, 332, 13, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 293, 341, 296, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 12, 341, 341, 22, 341, 341, 341, + 341, 341, 269, 341, 341, 341, 341, 277, 341, 341, - 336, 336, 218, 212, 336, 230, 336, 336, 280, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 82, 336, 336, 336, 336, 263, 336, 336, 336, - 336, 198, 336, 336, 336, 336, 224, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 298, 299, 167, 336, - 336, 76, 336, 336, 336, 336, 177, 336, 336, 115, - 116, 336, 336, 336, 336, 162, 336, 164, 336, 203, - 336, 336, 336, 336, 168, 336, 336, 233, 336, 336, + 341, 75, 341, 226, 341, 341, 341, 341, 341, 217, + 341, 341, 70, 341, 341, 341, 341, 23, 341, 43, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 170, 169, 332, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 219, 213, 341, 231, 341, 341, + 281, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 82, 341, 341, 341, 341, 264, 341, + 341, 341, 341, 199, 341, 341, 341, 341, 225, 341, - 336, 336, 336, 336, 336, 145, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 241, 336, - 336, 336, 336, 336, 336, 336, 307, 336, 24, 336, - 273, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 86, 204, 336, 336, 261, - 336, 292, 336, 197, 336, 336, 336, 336, 56, 336, - 336, 336, 336, 4, 336, 336, 336, 336, 128, 144, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 236, 37, - 38, 336, 336, 336, 336, 336, 336, 336, 281, 336, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 303, 304, 167, 341, 341, 76, 341, 341, 341, 341, + 177, 341, 341, 341, 115, 116, 341, 341, 341, 341, + 162, 341, 164, 341, 204, 341, 341, 341, 341, 168, + 341, 341, 234, 341, 341, 341, 341, 341, 341, 341, + 145, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 242, 341, 341, 341, 341, 341, 341, + 341, 312, 341, 24, 341, 274, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 86, 205, 341, 341, 262, 341, 297, 341, 198, 341, - 336, 336, 336, 336, 336, 336, 249, 336, 336, 336, - 336, 336, 336, 336, 336, 207, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 85, 336, - 57, 267, 336, 237, 336, 336, 336, 336, 11, 336, - 336, 336, 336, 336, 336, 127, 336, 336, 336, 336, - 205, 91, 336, 40, 336, 336, 336, 336, 336, 336, - 336, 336, 173, 336, 336, 336, 336, 336, 147, 336, - 336, 336, 336, 240, 336, 336, 336, 336, 336, 248, - 336, 336, 336, 336, 141, 336, 336, 336, 122, 123, - 336, 336, 336, 93, 97, 92, 336, 336, 336, 336, + 341, 341, 341, 56, 341, 341, 341, 341, 341, 341, + 4, 341, 341, 341, 341, 128, 144, 341, 341, 341, + 181, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 237, 37, 38, 341, + 341, 341, 341, 341, 341, 341, 282, 341, 341, 341, + 341, 341, 341, 341, 250, 341, 341, 341, 341, 341, + 341, 341, 341, 208, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 85, 341, 57, 268, + 341, 238, 341, 341, 341, 341, 11, 341, 341, 341, + 341, 341, 341, 341, 341, 127, 341, 341, 341, 341, - 83, 336, 336, 336, 336, 336, 10, 336, 336, 336, - 265, 301, 336, 336, 336, 336, 306, 39, 336, 336, - 336, 336, 336, 172, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 98, 96, 336, - 51, 336, 336, 84, 289, 336, 336, 336, 336, 336, - 336, 336, 191, 336, 336, 336, 336, 336, 206, 336, - 336, 336, 336, 336, 336, 336, 336, 163, 78, 336, - 336, 336, 336, 336, 282, 336, 336, 336, 336, 336, - 336, 336, 245, 336, 336, 244, 142, 336, 336, 95, + 206, 91, 341, 40, 341, 341, 341, 341, 341, 341, + 341, 341, 173, 341, 341, 341, 341, 341, 147, 341, + 341, 341, 341, 241, 341, 341, 341, 341, 341, 249, + 341, 341, 341, 341, 141, 341, 341, 341, 122, 123, + 341, 341, 341, 93, 97, 92, 341, 341, 341, 341, + 83, 341, 341, 341, 341, 341, 10, 341, 341, 341, + 341, 341, 266, 306, 341, 341, 341, 341, 311, 39, + 341, 341, 341, 341, 341, 172, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 98, - 48, 336, 148, 149, 152, 153, 150, 151, 87, 336, - 266, 336, 336, 336, 336, 166, 336, 336, 336, 336, - 336, 235, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 179, 178, 41, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 102, 336, 234, 336, 258, 286, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 308, 336, 49, - 5, 336, 336, 226, 336, 336, 287, 336, 336, 336, + 96, 341, 51, 341, 341, 84, 294, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 192, 341, 341, 341, + 341, 341, 207, 341, 341, 341, 341, 341, 341, 341, + 341, 163, 78, 341, 341, 341, 341, 341, 283, 341, + 341, 341, 341, 341, 341, 341, 246, 341, 341, 245, + 142, 341, 341, 95, 48, 341, 148, 149, 152, 153, + 150, 151, 87, 292, 341, 341, 267, 341, 341, 341, + 341, 166, 341, 341, 341, 341, 341, 236, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 179, 178, - 336, 336, 336, 336, 336, 336, 246, 25, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 247, 336, 336, 336, 146, 336, 336, 336, 336, 336, - 336, 336, 336, 180, 336, 187, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 283, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 305, 336, 336, 254, 336, 336, 336, - 336, 336, 284, 336, 336, 336, 336, 336, 336, 285, - 336, 336, 336, 252, 336, 255, 256, 336, 336, 336, - 336, 336, 253, 257, 0 + 41, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 290, 341, 341, 341, 341, 102, 341, + 235, 341, 259, 287, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 313, 341, 49, 5, 341, + 341, 227, 341, 341, 288, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 247, 25, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 248, 341, + 341, 341, 146, 341, 341, 341, 341, 341, 341, 341, + 341, 180, 341, 188, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 284, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 310, 341, 341, 255, 341, 341, 341, 341, 341, + 285, 341, 341, 341, 341, 341, 341, 286, 341, 341, + 341, 253, 341, 256, 257, 341, 341, 341, 341, 341, + 254, 258, 0 } ; static const YY_CHAR yy_ec[256] = @@ -770,745 +776,757 @@ static const YY_CHAR yy_meta[41] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static const flex_int16_t yy_base[3314] = +static const flex_int16_t yy_base[3372] = { 0, 0, 0, 38, 41, 44, 46, 59, 65, 71, 77, - 90, 112, 96, 118, 124, 136, 2992, 2881, 81, 6437, - 6437, 6437, 129, 52, 130, 63, 131, 152, 70, 140, - 149, 156, 57, 88, 76, 173, 175, 95, 184, 145, - 185, 205, 211, 217, 178, 123, 2560, 6437, 6437, 6437, - 107, 2496, 6437, 6437, 6437, 154, 2163, 1764, 6437, 6437, - 6437, 249, 1649, 6437, 6437, 6437, 163, 1451, 6437, 253, - 6437, 257, 148, 1354, 1226, 6437, 6437, 6437, 261, 1170, - 6437, 6437, 6437, 207, 1091, 267, 203, 0, 271, 0, - 0, 165, 204, 215, 206, 207, 216, 265, 92, 263, + 90, 112, 96, 118, 124, 136, 4327, 4282, 81, 6547, + 6547, 6547, 129, 52, 130, 63, 131, 152, 70, 140, + 149, 156, 57, 88, 76, 173, 175, 95, 197, 145, + 185, 199, 208, 213, 178, 123, 4186, 6547, 6547, 6547, + 107, 4109, 6547, 6547, 6547, 154, 4045, 3722, 6547, 6547, + 6547, 245, 3578, 6547, 6547, 6547, 163, 3220, 6547, 249, + 6547, 253, 148, 2696, 2594, 6547, 6547, 6547, 257, 2157, + 6547, 6547, 6547, 233, 1707, 263, 201, 0, 267, 0, + 0, 165, 191, 221, 252, 205, 181, 265, 92, 261, - 269, 273, 256, 267, 276, 284, 277, 280, 282, 288, - 286, 290, 226, 292, 228, 296, 303, 311, 298, 313, - 321, 301, 315, 234, 319, 314, 332, 331, 333, 316, - 334, 337, 335, 342, 343, 348, 345, 354, 355, 350, - 356, 366, 359, 368, 371, 360, 379, 374, 377, 364, - 382, 389, 387, 388, 392, 395, 401, 394, 962, 412, - 919, 417, 872, 426, 749, 518, 430, 357, 434, 438, - 0, 415, 293, 442, 244, 181, 446, 434, 446, 405, - 441, 442, 443, 444, 445, 447, 448, 449, 451, 465, - 458, 463, 470, 467, 474, 475, 480, 473, 478, 482, + 216, 263, 271, 272, 210, 279, 274, 282, 278, 291, + 283, 286, 276, 285, 295, 293, 306, 314, 297, 313, + 317, 311, 315, 319, 321, 331, 327, 332, 336, 322, + 339, 337, 346, 345, 347, 348, 353, 351, 357, 284, + 358, 359, 369, 360, 380, 365, 381, 379, 375, 366, + 367, 389, 390, 394, 393, 395, 396, 403, 404, 1665, + 419, 1172, 422, 924, 429, 854, 832, 433, 781, 437, + 441, 0, 433, 705, 447, 479, 287, 452, 411, 445, + 426, 446, 447, 448, 449, 450, 451, 453, 452, 456, + 470, 234, 463, 473, 481, 479, 476, 483, 486, 487, - 486, 476, 490, 498, 499, 500, 493, 501, 502, 504, - 506, 507, 508, 522, 520, 511, 514, 533, 534, 538, - 543, 529, 545, 547, 536, 552, 548, 560, 551, 564, - 559, 550, 561, 562, 565, 568, 569, 570, 573, 575, - 572, 576, 574, 586, 588, 579, 591, 589, 602, 598, - 605, 600, 601, 409, 603, 607, 610, 615, 608, 618, - 613, 619, 623, 629, 632, 636, 635, 621, 634, 631, - 638, 640, 641, 642, 645, 652, 655, 651, 653, 665, - 660, 662, 663, 664, 666, 667, 677, 669, 680, 683, - 673, 679, 685, 687, 689, 691, 690, 694, 695, 699, + 488, 489, 491, 492, 501, 500, 502, 505, 508, 510, + 511, 460, 509, 513, 527, 515, 516, 519, 538, 529, + 540, 543, 539, 548, 555, 400, 550, 551, 558, 553, + 560, 561, 569, 562, 565, 566, 567, 570, 572, 574, + 576, 579, 578, 582, 577, 590, 591, 585, 595, 594, + 606, 601, 608, 604, 605, 362, 607, 611, 615, 623, + 612, 627, 613, 614, 629, 633, 640, 641, 636, 622, + 637, 639, 643, 644, 646, 648, 647, 656, 660, 659, + 663, 667, 657, 665, 669, 671, 673, 649, 682, 675, + 684, 688, 680, 683, 690, 692, 694, 696, 695, 699, - 702, 700, 707, 709, 716, 713, 718, 715, 727, 728, - 703, 712, 724, 725, 731, 726, 733, 735, 736, 740, - 741, 743, 746, 744, 754, 750, 752, 767, 759, 757, - 760, 769, 770, 778, 771, 792, 799, 777, 763, 788, - 781, 797, 800, 802, 807, 803, 810, 813, 814, 815, - 816, 817, 818, 826, 822, 6437, 821, 824, 836, 838, - 839, 842, 832, 848, 831, 852, 855, 857, 854, 862, - 884, 858, 860, 861, 873, 866, 6437, 874, 868, 908, - 879, 886, 897, 892, 904, 870, 899, 906, 890, 918, - 902, 901, 916, 932, 929, 913, 917, 931, 935, 938, + 697, 700, 708, 704, 713, 712, 721, 716, 722, 719, + 731, 732, 727, 717, 728, 729, 733, 736, 730, 740, + 738, 741, 745, 743, 750, 752, 760, 755, 756, 771, + 763, 766, 762, 773, 774, 769, 775, 793, 798, 799, + 786, 800, 801, 804, 803, 805, 807, 808, 809, 818, + 811, 823, 815, 824, 825, 829, 836, 834, 6547, 831, + 833, 847, 848, 849, 852, 765, 856, 858, 839, 868, + 864, 861, 870, 892, 865, 878, 869, 871, 874, 6547, + 887, 880, 916, 882, 889, 902, 903, 900, 904, 905, + 917, 910, 933, 850, 914, 922, 943, 939, 925, 938, - 945, 941, 943, 944, 947, 954, 949, 950, 955, 967, - 951, 957, 959, 958, 968, 976, 977, 980, 982, 969, - 985, 986, 987, 989, 992, 993, 997, 995, 1008, 990, - 1009, 1021, 1016, 1017, 1020, 1019, 1025, 1026, 1027, 1029, - 1032, 1033, 1034, 1035, 1045, 1040, 1041, 1043, 1048, 1049, - 1050, 1055, 1052, 1057, 1058, 1060, 1061, 1062, 1068, 1066, - 1073, 1076, 1078, 6437, 1079, 6437, 1081, 1082, 1083, 1084, - 1085, 6437, 1087, 1088, 1089, 1096, 1099, 1086, 1114, 1098, - 1101, 1111, 1113, 1112, 1117, 1124, 1120, 1125, 1127, 1123, - 1129, 1130, 1133, 1131, 1136, 1138, 1139, 1142, 1143, 1146, + 940, 907, 941, 948, 949, 946, 951, 953, 960, 952, + 957, 959, 971, 961, 970, 972, 965, 974, 980, 985, + 987, 992, 975, 984, 995, 978, 990, 998, 1008, 1003, + 1001, 1009, 1012, 1015, 1023, 1019, 1027, 1028, 1002, 1029, + 1030, 1035, 1031, 1038, 1041, 1039, 1042, 1051, 1049, 1047, + 1048, 1054, 1055, 1056, 1058, 1061, 1064, 1063, 1068, 1072, + 1066, 1073, 1079, 1067, 1085, 1077, 6547, 1089, 6547, 1080, + 1083, 1087, 1092, 1093, 1094, 1095, 6547, 1097, 1100, 1102, + 1105, 1109, 1111, 1110, 1116, 1112, 1123, 1124, 1125, 1128, + 1135, 1130, 1133, 1138, 1137, 1140, 1141, 1144, 1142, 1147, - 1163, 6437, 1147, 1150, 1151, 1149, 1156, 1157, 1175, 1166, - 1173, 1174, 1176, 1192, 1187, 1188, 1191, 1195, 1196, 1198, - 1200, 1205, 1207, 1148, 1208, 1201, 1209, 1210, 1203, 1211, - 1213, 1221, 6437, 1217, 1229, 1238, 1224, 1219, 1235, 1237, - 1240, 1239, 1241, 1243, 1242, 1246, 1250, 1248, 1259, 1249, - 1266, 1252, 1262, 1263, 1267, 1268, 1269, 1271, 1275, 1284, - 1276, 1286, 1293, 1294, 1296, 1298, 1305, 1307, 1279, 1302, - 1308, 1304, 1303, 1310, 1312, 1316, 1313, 1319, 1320, 1323, - 1325, 1326, 1327, 1328, 1330, 1333, 1334, 1335, 1337, 1339, - 1347, 1345, 1343, 1358, 1346, 1351, 1349, 1356, 1360, 1363, + 1149, 1148, 1154, 1155, 1158, 1175, 6547, 1157, 1167, 1162, + 1159, 1168, 1169, 1187, 1185, 1188, 1186, 1190, 1203, 1198, + 1204, 1206, 1207, 1160, 1210, 1212, 1214, 1216, 1217, 1218, + 1219, 1221, 1222, 1223, 1225, 1224, 1228, 6547, 1226, 1236, + 1247, 1242, 1245, 1246, 1248, 1249, 1161, 1251, 1250, 1106, + 517, 1253, 1257, 1258, 1259, 1272, 1267, 1270, 1268, 1269, + 1275, 1274, 1276, 1278, 1287, 1283, 1289, 1291, 1299, 1298, + 1301, 1308, 1310, 1303, 1305, 1311, 1307, 1306, 1313, 1315, + 1322, 1316, 1319, 1326, 1329, 1328, 1331, 1335, 1320, 1336, + 1333, 1341, 1342, 1343, 1344, 1351, 1350, 1346, 1358, 1353, - 1362, 1371, 6437, 1379, 1374, 1375, 1377, 1380, 1384, 1388, - 1382, 1389, 782, 1391, 1390, 1392, 1397, 1399, 1394, 1400, - 1401, 1402, 1411, 1409, 1417, 1421, 1422, 1423, 1406, 1426, - 1433, 1429, 1436, 1432, 1431, 1437, 1444, 1439, 1441, 1445, - 1453, 1448, 1446, 1457, 1449, 1458, 1274, 1460, 1472, 1461, - 1470, 1477, 1479, 1468, 1481, 1482, 1484, 1474, 1485, 1487, - 1488, 1489, 1496, 1491, 1497, 1498, 1499, 1494, 1500, 1504, - 1502, 1521, 1508, 1511, 1510, 1518, 1520, 1525, 1526, 1527, - 1528, 1530, 1531, 1534, 1532, 1535, 1538, 1540, 1544, 1550, - 1551, 1541, 1553, 1554, 1558, 1561, 1562, 1563, 1570, 1560, + 1356, 1354, 1352, 1373, 1374, 1363, 1365, 6547, 1381, 1367, + 1382, 1383, 1384, 1388, 1390, 1386, 1392, 1393, 1394, 1396, + 1397, 1399, 1403, 1404, 1405, 1406, 1408, 1419, 1416, 1411, + 1427, 1426, 1428, 1418, 1430, 1432, 1431, 1440, 1438, 1441, + 1439, 1445, 1446, 1453, 1448, 1449, 1454, 1463, 1456, 1455, + 1460, 1458, 1466, 1469, 1468, 1483, 1472, 1480, 1488, 1489, + 1479, 1491, 1481, 1492, 1496, 1497, 1498, 1499, 1501, 1508, + 1503, 1510, 1505, 1509, 1511, 1506, 1522, 1512, 1523, 1526, + 1530, 1513, 1528, 1531, 1533, 1536, 1537, 1538, 1539, 1541, + 1545, 1543, 1549, 1548, 1550, 1554, 1560, 1561, 1563, 1564, - 1573, 1574, 1571, 1577, 1576, 1579, 1587, 1589, 1581, 1582, - 1592, 1594, 1596, 1598, 1600, 1603, 1599, 1605, 6437, 1606, - 1616, 1611, 1615, 1612, 1613, 1618, 1626, 1621, 1623, 1622, - 1627, 1628, 1653, 6437, 1632, 6437, 6437, 1633, 6437, 6437, - 1634, 1635, 6437, 1639, 1637, 1644, 1657, 1663, 1666, 1659, - 1651, 1642, 1654, 1677, 1678, 1676, 1668, 1683, 1684, 1686, - 1687, 1693, 1692, 1694, 1695, 1699, 1706, 1708, 1703, 1712, - 1713, 1716, 1714, 1721, 1723, 1726, 1729, 1722, 1730, 1732, - 1733, 1735, 1737, 1738, 1740, 1742, 1743, 1741, 1746, 1747, - 1757, 1760, 1762, 1772, 6437, 1763, 1770, 1773, 1774, 1781, + 1567, 1568, 1571, 1570, 1573, 1581, 1572, 1582, 1584, 1585, + 1587, 1588, 1592, 1591, 1598, 1595, 1601, 1603, 1605, 1604, + 1607, 1611, 1614, 1616, 1608, 6547, 1615, 1628, 1623, 1626, + 1624, 1627, 1629, 1637, 1632, 1635, 1633, 1638, 1639, 1664, + 6547, 1641, 6547, 6547, 1644, 6547, 6547, 1645, 1649, 6547, + 1662, 1648, 1658, 1646, 1670, 1677, 1679, 1667, 1675, 1660, + 1687, 1691, 1694, 1696, 1682, 1697, 1688, 1702, 1708, 1653, + 1704, 1705, 1711, 1721, 1716, 1724, 1718, 1726, 1727, 1729, + 1732, 1736, 1738, 1740, 1739, 1743, 1744, 1745, 1747, 1746, + 1749, 1752, 1755, 1756, 1753, 1758, 1759, 1774, 1772, 1761, - 1777, 1776, 1778, 1784, 1788, 1785, 1789, 1790, 1791, 1792, - 1797, 1794, 1800, 1802, 1805, 1804, 6437, 1806, 1809, 1810, - 1812, 1813, 1816, 1820, 1814, 1821, 1824, 1826, 1836, 1831, - 1827, 1829, 1838, 1837, 1840, 6437, 1748, 1845, 1841, 1849, - 1850, 1852, 1853, 1855, 1856, 1857, 1858, 1859, 1860, 1864, - 1874, 1870, 1875, 1865, 1880, 1882, 1885, 1886, 1890, 1892, - 1893, 1895, 1896, 1897, 1898, 1900, 1901, 1909, 1911, 1908, - 1913, 1910, 1906, 1929, 1931, 1914, 1916, 1927, 1928, 1930, - 1936, 1938, 1940, 1934, 1941, 1948, 1944, 1946, 1949, 1950, - 1959, 1956, 1957, 1962, 1960, 1965, 1968, 1969, 6437, 1966, + 1779, 6547, 1775, 1782, 1789, 1785, 1792, 1784, 1788, 1791, + 1764, 1796, 1793, 1797, 1798, 1800, 1802, 1805, 1804, 1809, + 1810, 1806, 1812, 1822, 1813, 6547, 1817, 1818, 1824, 1825, + 1828, 1831, 1833, 1829, 1835, 1836, 1839, 1847, 1849, 1840, + 1842, 1844, 1851, 1854, 1856, 6547, 1862, 1858, 1863, 1865, + 1866, 1868, 1869, 1871, 1874, 1873, 1876, 1877, 1878, 1879, + 1886, 1883, 1885, 1890, 1891, 1895, 1900, 1902, 1904, 1906, + 1908, 1910, 1911, 1912, 1913, 1915, 1916, 1924, 1927, 1923, + 1928, 1925, 1920, 1944, 1947, 1929, 1931, 1942, 1943, 1945, + 1951, 1955, 1953, 1946, 1957, 1965, 1958, 1961, 1963, 1967, - 1970, 6437, 1974, 1972, 1975, 1997, 1976, 1979, 1978, 1981, - 1986, 1991, 1989, 1998, 1994, 2001, 2020, 2007, 2003, 2005, - 2010, 2022, 2023, 2024, 2026, 2028, 2030, 2032, 2033, 2031, - 2048, 2051, 2047, 2043, 2056, 2052, 2034, 2054, 2075, 2055, - 2057, 2059, 2058, 2060, 2063, 2069, 2064, 2065, 2066, 2071, - 2086, 2088, 2079, 2082, 2090, 2092, 2097, 2098, 2099, 6437, - 2109, 2104, 2105, 2108, 2112, 2117, 2115, 2114, 6437, 2118, - 2121, 2116, 2128, 2126, 2123, 2129, 2131, 2136, 2137, 2140, - 2138, 2139, 2143, 2141, 2159, 6437, 2144, 6437, 2154, 2145, - 2155, 2156, 2146, 2161, 2162, 2166, 6437, 6437, 2172, 2169, + 1974, 1969, 1971, 1976, 1979, 1980, 1982, 1983, 6547, 1985, + 1989, 6547, 1986, 1988, 1990, 2012, 1991, 1993, 1995, 2005, + 1994, 2014, 1998, 2006, 2022, 2016, 2032, 2025, 2024, 2035, + 2029, 2037, 2036, 2040, 2041, 2043, 2046, 2047, 2053, 2049, + 2063, 2067, 2066, 2073, 2075, 2050, 2058, 2062, 2081, 2071, + 2074, 2070, 2076, 2085, 2091, 2090, 2078, 2093, 2094, 2099, + 2103, 2104, 2102, 2105, 2106, 2108, 2111, 2116, 2117, 6547, + 2124, 2125, 2119, 2127, 2121, 2135, 2131, 2130, 6547, 2133, + 2139, 2140, 2147, 2143, 2144, 2145, 2146, 2151, 2153, 2155, + 2159, 2160, 2158, 2154, 2176, 6547, 2161, 6547, 2172, 2162, - 2179, 2181, 2173, 6437, 2182, 2189, 6437, 2190, 2184, 2185, - 2192, 2193, 2195, 2197, 2196, 2206, 2201, 2208, 2203, 2214, - 2215, 6437, 2204, 2205, 2217, 2220, 2216, 2223, 2230, 2224, - 6437, 2227, 2231, 2234, 2243, 2239, 2241, 2242, 2245, 2251, - 2244, 2246, 2249, 2253, 2254, 2261, 2263, 2259, 2266, 2268, - 2276, 6437, 2272, 2258, 2280, 2277, 2284, 2279, 2285, 2275, - 2281, 2286, 2292, 2287, 2291, 2297, 2299, 2301, 2308, 2309, - 2304, 2305, 2307, 2312, 2313, 2314, 2321, 2316, 2323, 2318, - 2322, 6437, 2324, 2329, 2325, 171, 2330, 2333, 2338, 2335, - 2342, 2353, 2336, 2355, 2360, 2341, 2358, 1867, 2359, 2361, + 2174, 2175, 2178, 2179, 2180, 2183, 6547, 6547, 2187, 2181, + 2197, 2201, 2191, 2184, 2202, 6547, 2203, 2210, 6547, 2207, + 2213, 2206, 2205, 2212, 2214, 2217, 2218, 2227, 2222, 2229, + 2224, 2226, 2234, 6547, 2235, 2236, 2240, 2241, 2237, 2243, + 2244, 2250, 2247, 6547, 2254, 2251, 2256, 2264, 2266, 2261, + 2263, 2268, 2272, 2269, 2274, 2275, 2276, 2277, 2284, 2286, + 2283, 2289, 2291, 2298, 6547, 2282, 2285, 2303, 2299, 2302, + 2306, 2307, 2308, 2309, 2310, 2311, 1996, 2312, 2318, 2319, + 2320, 2327, 2329, 2322, 2325, 2333, 2324, 2334, 2335, 2342, + 2340, 2341, 2344, 2345, 6547, 2346, 2352, 2349, 171, 2353, - 2362, 2365, 2366, 2367, 2339, 2368, 2369, 6437, 2372, 2373, - 2374, 2378, 2379, 2377, 2384, 6437, 2390, 2395, 2399, 2402, - 2405, 2406, 2407, 2408, 2391, 2413, 2411, 2414, 2417, 2418, - 2421, 2415, 2419, 6437, 2425, 2431, 2432, 2428, 2434, 2440, - 2441, 2430, 2442, 2443, 2446, 2449, 2447, 2451, 2452, 2453, - 2455, 2459, 2460, 2456, 2461, 2468, 2467, 2466, 2472, 2469, - 2470, 2478, 2479, 6437, 2486, 2483, 2487, 2489, 2490, 2491, - 2500, 2492, 2509, 2494, 2502, 2506, 2511, 2520, 2514, 2515, - 2523, 2530, 2532, 2526, 2540, 2536, 2542, 2544, 2538, 2548, - 2550, 2546, 2551, 2552, 2554, 2557, 2556, 2558, 2571, 2573, + 2356, 2354, 2355, 2359, 2362, 2357, 2378, 2379, 2364, 2376, + 2382, 2383, 2375, 2385, 2386, 2387, 2374, 2390, 2392, 2394, + 6547, 2396, 2398, 2400, 2401, 2403, 2404, 2406, 6547, 2410, + 2426, 2423, 2430, 2408, 2405, 2431, 2417, 2421, 2432, 2433, + 2435, 2437, 2440, 2442, 2444, 2443, 6547, 2447, 2448, 2452, + 2450, 2458, 2460, 2459, 2451, 2461, 2465, 2467, 2471, 2473, + 2469, 2472, 2474, 2475, 2477, 2482, 2478, 2485, 2487, 2488, + 2489, 2490, 2492, 2494, 2499, 2500, 6547, 2507, 2506, 2504, + 2509, 2510, 2512, 2522, 2513, 2532, 2515, 2523, 2516, 2535, + 2538, 2540, 2524, 2548, 2544, 2549, 2541, 2558, 2555, 2559, - 2563, 2518, 2572, 2577, 2582, 2564, 6437, 2583, 2584, 2585, - 2589, 2597, 2593, 2594, 2595, 2601, 2604, 2605, 2606, 2607, - 2614, 2609, 2611, 2612, 2617, 2618, 2620, 2623, 2627, 2628, - 2631, 2634, 2636, 2380, 6437, 2637, 2638, 2639, 2642, 2645, - 2646, 2648, 2653, 2650, 2656, 2657, 2660, 2661, 2662, 2663, - 2664, 2667, 2668, 2671, 6437, 2672, 2673, 2674, 2680, 2682, - 2684, 2685, 2693, 2686, 2697, 2695, 2699, 2701, 2702, 2703, - 6437, 2710, 2711, 2708, 2712, 2714, 2715, 2718, 2720, 2721, - 6437, 2722, 2724, 2725, 2732, 2733, 2730, 6437, 2745, 2735, - 2731, 2738, 2728, 2742, 2743, 2746, 2750, 2752, 2753, 2754, + 2562, 2556, 2565, 2567, 2568, 2569, 2571, 2573, 2574, 2575, + 2576, 2584, 2591, 2581, 2592, 2590, 2595, 2583, 2601, 2614, + 2598, 6547, 2603, 2605, 2613, 2615, 2622, 2617, 2618, 2623, + 2619, 2625, 2627, 2629, 2630, 2638, 2635, 2637, 2639, 2642, + 2641, 2643, 2649, 2650, 2651, 2654, 2658, 2660, 2662, 2663, + 6547, 2664, 2666, 2669, 2670, 2673, 2674, 2678, 2680, 2682, + 2683, 2684, 2686, 2689, 2690, 2691, 2692, 2698, 2699, 2695, + 6547, 2700, 2702, 2710, 2706, 2714, 2708, 2718, 2721, 2722, + 2725, 2728, 2712, 2729, 2731, 2732, 6547, 2740, 2742, 2739, + 2743, 2741, 2746, 2747, 2749, 2751, 6547, 2752, 2753, 2754, - 2763, 2757, 2760, 6437, 2764, 2773, 2766, 2769, 2768, 2774, - 2775, 2779, 2781, 2782, 2785, 2792, 6437, 2799, 2796, 2798, - 2808, 2795, 2801, 2803, 2805, 2811, 2804, 2812, 2813, 2815, - 6437, 2817, 2819, 2820, 2823, 2825, 2826, 2828, 2836, 2833, - 2834, 2840, 2841, 2842, 2839, 2843, 2852, 2846, 2849, 2855, - 2860, 2850, 2862, 2863, 2868, 2872, 2876, 2873, 2875, 2878, - 2877, 2879, 2880, 2888, 2892, 2895, 2890, 2896, 6437, 2899, - 2901, 2894, 2902, 2904, 2907, 2908, 2906, 2909, 2911, 2914, - 2912, 2915, 2918, 2925, 2933, 2926, 2934, 2928, 2930, 2936, - 2938, 2939, 2940, 2941, 2948, 2950, 2944, 2957, 2952, 2956, + 2761, 2762, 2757, 6547, 2766, 2764, 2759, 2768, 2769, 2772, + 2774, 2775, 2770, 2780, 2782, 2789, 2796, 2783, 2793, 6547, + 2785, 2803, 2791, 2799, 2807, 2787, 2810, 2811, 2812, 2813, + 2814, 2818, 6547, 2827, 2819, 2824, 2834, 2830, 2831, 2836, + 2837, 2838, 2840, 2839, 2841, 2844, 6547, 2847, 2845, 2848, + 2850, 2852, 2853, 2855, 2868, 2860, 2865, 2867, 2870, 2873, + 2875, 2877, 2869, 2878, 2879, 2880, 2886, 2890, 2891, 2892, + 2895, 2899, 2904, 2901, 2903, 2907, 2906, 2908, 2909, 2916, + 2917, 2924, 2919, 2925, 6547, 2928, 2930, 2923, 2921, 2931, + 2933, 2935, 2937, 2940, 2936, 2938, 2948, 2945, 2942, 2955, - 2967, 2953, 2954, 2963, 2964, 2965, 2966, 2969, 2974, 2977, - 2976, 2986, 2990, 2991, 2993, 2968, 2992, 2994, 2998, 6437, - 2995, 3003, 2999, 3002, 3005, 3010, 3006, 3018, 3015, 3016, - 3019, 3023, 3028, 3020, 3025, 3026, 3037, 3034, 6437, 3035, - 6437, 3036, 3039, 3041, 3051, 3038, 6437, 3048, 6437, 3049, - 3055, 3050, 3056, 6437, 3059, 3060, 3061, 3063, 3067, 3065, - 3068, 3069, 3071, 3075, 3079, 3073, 3077, 3078, 3081, 3083, - 3090, 3089, 3093, 3094, 3096, 3102, 3097, 3099, 3105, 3108, - 3110, 3111, 3113, 6437, 3116, 3112, 3120, 3121, 3122, 3123, - 3124, 3125, 3129, 3131, 3132, 3140, 3136, 3143, 3133, 3144, + 2958, 2951, 2962, 2960, 2964, 2965, 2967, 2966, 2968, 2969, + 2976, 2973, 2975, 2986, 2977, 2984, 2995, 2981, 2991, 2992, + 2993, 2994, 2982, 2998, 3004, 2999, 2997, 3006, 3007, 3015, + 3018, 3021, 3020, 3009, 3023, 3027, 3028, 6547, 3031, 3033, + 3029, 3035, 3036, 3042, 3043, 3045, 3046, 3037, 3051, 3053, + 3054, 3059, 3060, 3062, 3063, 3070, 3066, 6547, 3067, 6547, + 3068, 3069, 3072, 3081, 3076, 6547, 3087, 6547, 3077, 3091, + 3082, 3084, 6547, 3092, 3088, 3093, 3103, 3094, 3097, 3101, + 3105, 3099, 3106, 3112, 3111, 3115, 3114, 3116, 3122, 3117, + 3119, 3127, 3125, 3134, 3124, 3126, 3141, 3135, 3138, 3143, - 3150, 3160, 3147, 3162, 6437, 3157, 3159, 3161, 3163, 6437, - 3165, 3164, 3172, 3174, 3168, 3166, 3176, 3178, 3185, 3177, - 3187, 3183, 3190, 3198, 3189, 3197, 6437, 3201, 3202, 3179, - 3206, 3212, 3219, 3220, 3217, 3223, 3225, 3221, 3227, 3205, - 3228, 3229, 3230, 3231, 3239, 3241, 3237, 3244, 3236, 3240, - 3252, 3249, 3243, 3247, 3253, 3255, 3256, 3257, 3258, 3260, - 3262, 3263, 3264, 6437, 3268, 3272, 3274, 3281, 3277, 3278, - 3279, 3282, 3286, 6437, 3289, 3290, 3293, 3291, 3300, 3302, - 3292, 3295, 3304, 3305, 3308, 3309, 3312, 3311, 6437, 3313, - 6437, 3315, 3326, 3331, 3335, 3320, 3318, 3338, 3343, 3337, + 3144, 3145, 6547, 3152, 3148, 3153, 3154, 3155, 3156, 3158, + 3159, 3161, 3162, 3165, 3173, 3167, 3179, 3169, 3178, 3181, + 3193, 3177, 3194, 6547, 3190, 3192, 3195, 3196, 6547, 3198, + 3199, 3200, 3205, 3207, 3208, 3209, 3210, 3211, 3215, 3216, + 3217, 3229, 3225, 3222, 3231, 6547, 3230, 3236, 3218, 3242, + 3249, 3244, 3246, 3251, 3252, 3254, 3263, 3259, 3258, 3260, + 3261, 3262, 3265, 3272, 3273, 3269, 3276, 3275, 3279, 3286, + 3283, 3277, 3281, 3287, 3289, 3290, 3291, 3292, 3293, 3296, + 3297, 3294, 6547, 3302, 3308, 3306, 3315, 3311, 3312, 3316, + 3321, 3317, 6547, 3323, 3324, 3325, 3327, 3332, 3326, 3329, - 3325, 3346, 3347, 3339, 3345, 3348, 3349, 3353, 3354, 3366, - 3356, 3359, 3364, 3367, 3369, 3370, 3372, 6437, 6437, 3371, - 3373, 3374, 3376, 3378, 3388, 3380, 3389, 3394, 3382, 3390, - 3397, 3408, 6437, 3403, 3404, 3405, 3409, 3412, 3410, 3421, - 3422, 3413, 3429, 3424, 6437, 3425, 3426, 3437, 3433, 3432, - 3442, 6437, 3439, 6437, 3434, 3438, 3443, 3449, 3448, 3450, - 3452, 3454, 3456, 3465, 3470, 3460, 3472, 3462, 3467, 3469, - 3475, 3476, 3484, 3479, 3480, 3481, 6437, 3487, 3483, 3490, - 3492, 3493, 3495, 3502, 3491, 6437, 3504, 3505, 3507, 3508, - 3509, 3510, 3513, 3517, 3515, 3518, 3523, 6437, 3519, 3524, + 3334, 3337, 3340, 3342, 3345, 3347, 3346, 6547, 3348, 6547, + 3350, 3351, 3361, 3365, 3366, 3353, 3367, 3373, 3369, 3374, + 3376, 3379, 3377, 3383, 3380, 3385, 3386, 3388, 3400, 3391, + 3387, 3392, 3401, 3402, 3406, 3409, 3410, 3411, 6547, 6547, + 3412, 3413, 3417, 3414, 3420, 3421, 3424, 3432, 3428, 3427, + 3434, 3435, 3448, 6547, 3436, 3443, 3438, 3446, 3462, 3449, + 3464, 3465, 3452, 3440, 3472, 3468, 6547, 3461, 3469, 3476, + 3471, 3477, 3479, 6547, 3482, 6547, 3475, 3478, 3485, 3487, + 3488, 3489, 3491, 3492, 3499, 3509, 3510, 3495, 3512, 3507, + 3500, 3513, 3515, 3516, 3523, 3519, 3521, 3522, 6547, 3525, - 3532, 3525, 3528, 3533, 3541, 3542, 3548, 6437, 3549, 3534, - 3556, 3552, 3553, 3555, 3558, 3559, 3560, 3562, 3563, 3564, - 3566, 3567, 3572, 3568, 3570, 3577, 3573, 3585, 3587, 3574, - 3595, 3602, 3588, 6437, 3591, 3598, 3600, 3601, 3603, 3604, - 3606, 3612, 3614, 3608, 3623, 3624, 3615, 3619, 3627, 3629, - 3637, 3632, 6437, 3644, 3630, 3645, 3634, 3643, 3642, 3647, - 3649, 3651, 3653, 3652, 3655, 3656, 3658, 3670, 3662, 3665, - 3661, 3666, 3677, 3669, 6437, 3684, 3680, 3672, 3688, 3682, - 3691, 3698, 3695, 3696, 3697, 3700, 3701, 3702, 3705, 3707, - 3708, 3711, 3712, 6437, 6437, 3714, 3715, 3717, 6437, 3719, + 3526, 3530, 3528, 3531, 3538, 3535, 3539, 6547, 3542, 3545, + 3548, 3549, 3551, 3550, 3553, 3556, 3557, 3555, 3559, 6547, + 3558, 3561, 3572, 3573, 3565, 3574, 3576, 3579, 3587, 6547, + 3584, 3588, 3596, 3592, 3593, 3598, 3599, 3594, 3595, 3601, + 3603, 3604, 3606, 3607, 3608, 3610, 3613, 3615, 3612, 3622, + 3623, 3626, 3630, 3639, 3631, 6547, 3635, 3636, 3640, 3638, + 3642, 3643, 3645, 3648, 3650, 3651, 3661, 3662, 3653, 3664, + 3666, 3668, 3673, 3675, 6547, 3676, 3669, 3683, 3679, 3681, + 3689, 3680, 3686, 3693, 3682, 3690, 3694, 3695, 3698, 3707, + 3702, 3705, 3706, 3708, 3718, 3709, 6547, 3723, 3713, 3719, - 3720, 3730, 3722, 3723, 3731, 3735, 3734, 3733, 3736, 3738, - 3739, 6437, 3745, 3753, 3748, 3749, 3757, 3758, 3761, 3762, - 3754, 3765, 3769, 3766, 3770, 3771, 3772, 3774, 3782, 3783, - 3779, 3780, 3786, 6437, 3781, 3787, 3791, 3793, 3784, 3797, - 6437, 3794, 3800, 3802, 3805, 3811, 3815, 3807, 3817, 3820, - 3821, 3824, 3822, 3825, 3826, 3834, 3829, 3831, 3833, 3837, - 3847, 6437, 3830, 3842, 3840, 3849, 6437, 3855, 3862, 3863, - 6437, 3865, 3850, 3864, 3866, 3873, 6437, 3868, 3870, 3871, - 3852, 3881, 3872, 3885, 3882, 3884, 6437, 3886, 3888, 3890, - 6437, 3889, 3899, 3902, 3904, 3891, 3912, 3908, 3905, 3909, + 3730, 3720, 3726, 3739, 3735, 3736, 3737, 3743, 3738, 3745, + 3740, 3747, 3748, 3751, 3752, 6547, 6547, 3754, 3755, 3757, + 6547, 3759, 3761, 3771, 3763, 3767, 3770, 3774, 3775, 3773, + 3776, 3778, 3779, 6547, 3786, 3789, 3787, 3790, 3798, 3794, + 6547, 3793, 3806, 3802, 3803, 3805, 3809, 3811, 3810, 3813, + 3815, 3817, 3818, 3826, 3827, 3824, 3823, 3828, 6547, 3825, + 3831, 3834, 3836, 3837, 3840, 6547, 3841, 3842, 3849, 3851, + 3852, 3859, 3862, 3854, 3864, 3847, 3867, 3869, 3871, 3872, + 3873, 3880, 3875, 3877, 3879, 3883, 3885, 6547, 3886, 3887, + 3891, 3897, 6547, 3900, 3907, 3908, 6547, 3910, 3894, 3909, - 3913, 6437, 3916, 6437, 3917, 3918, 3923, 6437, 3919, 3925, - 3927, 3929, 3926, 3933, 3934, 3940, 3942, 3936, 3944, 3945, - 3946, 3893, 3947, 3954, 3949, 3950, 3951, 3957, 6437, 3960, - 3955, 3966, 3958, 3976, 3970, 3962, 3964, 3981, 3980, 6437, - 6437, 3983, 6437, 3984, 3988, 3989, 6437, 3991, 3994, 3996, - 3992, 3997, 3999, 4003, 4007, 6437, 4011, 4012, 6437, 3995, - 4014, 4022, 4017, 4019, 4023, 4025, 4021, 4027, 4028, 4032, - 4031, 4033, 4029, 4034, 4047, 6437, 4036, 4035, 4038, 4052, - 4039, 4042, 4060, 4054, 4061, 6437, 4064, 4065, 4068, 4070, - 4071, 6437, 4073, 6437, 4072, 4074, 4076, 4077, 4080, 6437, + 3905, 3918, 6547, 3913, 3915, 3916, 3921, 3929, 3922, 3930, + 3926, 3927, 6547, 3933, 3932, 3935, 6547, 3934, 3941, 3948, + 3950, 3936, 3958, 3953, 3938, 3954, 3955, 6547, 3957, 6547, + 3963, 3961, 3967, 6547, 3965, 3969, 3970, 3972, 3974, 3979, + 3980, 3986, 3988, 3976, 3982, 3990, 3978, 3994, 3995, 3999, + 3992, 4002, 4001, 4003, 6547, 4004, 4006, 4009, 4007, 4012, + 4014, 4020, 4015, 4021, 4022, 6547, 6547, 4029, 6547, 4030, + 4025, 4031, 6547, 4034, 4037, 4044, 4039, 4042, 4046, 4053, + 4050, 6547, 4055, 4059, 6547, 4040, 4061, 4068, 4057, 4065, + 4066, 4069, 4071, 4072, 4073, 4076, 4074, 4078, 4075, 4077, - 4085, 4084, 4092, 4089, 4095, 4094, 4097, 4101, 4093, 4103, - 4110, 4107, 4105, 4108, 6437, 4109, 4113, 4120, 4121, 4114, - 4117, 4130, 4126, 4132, 4125, 4133, 4136, 4138, 4139, 4144, - 4142, 4147, 4146, 6437, 4148, 4153, 4154, 4162, 4158, 4159, - 6437, 4165, 4163, 4169, 6437, 4166, 4170, 4172, 4183, 4173, - 4176, 4180, 4178, 4184, 6437, 4185, 4186, 4187, 4188, 4195, - 4201, 6437, 6437, 4202, 6437, 4203, 4189, 4204, 4205, 4206, - 4211, 4214, 4215, 4217, 4218, 4222, 4225, 4227, 4228, 4235, - 4238, 4239, 4241, 4243, 4236, 6437, 6437, 4246, 4247, 4249, - 4253, 4254, 4257, 4242, 4265, 4261, 4263, 4268, 4270, 4277, + 4091, 6547, 4079, 4081, 4082, 4084, 4095, 4096, 4100, 4102, + 4098, 6547, 4106, 4112, 4105, 4115, 4117, 6547, 4119, 6547, + 4108, 4121, 4122, 4125, 4129, 6547, 4131, 4132, 4136, 4137, + 4138, 4139, 4140, 4142, 4144, 4149, 4156, 4152, 4151, 4153, + 4160, 4158, 6547, 4155, 4161, 4168, 4170, 4172, 4173, 4182, + 4178, 4177, 4180, 4181, 4185, 4188, 4190, 4194, 4192, 4199, + 4196, 6547, 4203, 4205, 4202, 4217, 4206, 4210, 4208, 6547, + 4209, 4222, 4224, 6547, 4213, 4225, 4228, 4231, 4232, 4233, + 4236, 4234, 4238, 6547, 4235, 4242, 4239, 4241, 4244, 4255, + 6547, 6547, 4256, 6547, 4257, 4243, 4258, 4260, 4240, 4261, - 6437, 4272, 4274, 4278, 4279, 6437, 4280, 4281, 4283, 4285, - 4284, 4290, 4287, 4291, 4288, 4292, 4296, 4297, 4298, 4302, - 4304, 4309, 4310, 4312, 4315, 4316, 4317, 4319, 6437, 4324, - 4321, 4323, 4325, 4326, 4328, 4333, 4334, 4336, 6437, 4337, - 6437, 4338, 4339, 4343, 4356, 4345, 4355, 4359, 4361, 4363, - 4365, 4366, 4369, 4370, 4376, 4364, 4371, 4380, 4373, 4387, - 4389, 4390, 6437, 4391, 4383, 4392, 4393, 4398, 4400, 4394, - 4402, 4404, 4407, 4408, 4409, 4411, 4416, 4417, 4418, 4419, - 4420, 6437, 4421, 4425, 4428, 4430, 4432, 4434, 4435, 4436, - 4442, 4443, 4444, 4445, 4449, 6437, 4446, 4451, 4453, 4454, + 4268, 4271, 4277, 4269, 4279, 4281, 4272, 4274, 4290, 4293, + 4297, 4292, 4294, 4298, 6547, 6547, 4300, 4304, 4301, 4307, + 4308, 4303, 4311, 4320, 4312, 4321, 4324, 4326, 4333, 6547, + 4328, 4316, 4334, 4325, 6547, 4335, 4337, 4339, 4340, 4341, + 4343, 4347, 4344, 4348, 4349, 4351, 4352, 4354, 4365, 4357, + 4358, 4366, 4367, 4368, 4359, 4374, 4380, 6547, 4377, 4375, + 4381, 4382, 4384, 4387, 4388, 4389, 4390, 6547, 4395, 6547, + 4391, 4393, 4396, 4397, 4413, 4398, 4414, 4415, 4416, 4418, + 4419, 4422, 4423, 4427, 4424, 4429, 4432, 4434, 4436, 4438, + 4440, 6547, 4444, 4441, 4447, 4448, 4451, 4453, 4454, 4456, - 4456, 4457, 4460, 4463, 4467, 6437, 4470, 4461, 4472, 4471, - 4473, 4475, 4477, 4483, 4480, 4486, 4487, 6437, 4492, 4494, - 4495, 4496, 4497, 4498, 4501, 4502, 6437, 4508, 4509, 4511, - 4518, 4515, 4522, 4520, 4524, 4517, 4527, 4530, 4523, 4534, - 4535, 4537, 4531, 4547, 4554, 4549, 6437, 4538, 6437, 4550, - 4551, 4561, 4556, 4562, 4560, 6437, 4563, 4568, 4570, 4566, - 4564, 6437, 4571, 4572, 4574, 4575, 6437, 4590, 4586, 4576, - 4585, 4578, 4594, 6437, 4599, 4600, 4601, 4608, 4610, 4605, - 4612, 4607, 4615, 4613, 4609, 4617, 4618, 4626, 4624, 4622, - 6437, 4628, 4630, 4635, 4637, 4631, 4639, 4629, 4641, 4644, + 4457, 4459, 4462, 4463, 4465, 4470, 4466, 4472, 4471, 4474, + 6547, 4478, 4487, 4476, 4489, 4479, 4484, 4491, 4498, 4501, + 4492, 4502, 4503, 6547, 4504, 4496, 4507, 6547, 4508, 4509, + 4510, 4512, 4521, 4518, 4522, 4523, 4524, 6547, 4530, 4513, + 4534, 4526, 4531, 4535, 4536, 4542, 4545, 4544, 4547, 6547, + 4557, 4548, 4556, 4558, 4552, 4555, 4559, 4564, 4566, 6547, + 4570, 4571, 4572, 4579, 4574, 4584, 4581, 4583, 4582, 4585, + 4590, 4591, 4594, 4596, 4597, 4599, 4608, 4610, 4611, 6547, + 4589, 6547, 4612, 4616, 4620, 4618, 4623, 4622, 6547, 4624, + 4625, 4630, 4631, 4626, 6547, 4633, 4632, 4634, 4638, 6547, - 4646, 6437, 4647, 4650, 4651, 4653, 4654, 4655, 4656, 4663, - 4660, 4662, 4664, 4665, 4668, 4669, 6437, 4674, 4672, 4676, - 4685, 4687, 4689, 6437, 4692, 6437, 4682, 4677, 4694, 4693, - 4698, 6437, 6437, 4700, 4708, 4703, 4706, 4707, 6437, 6437, - 4710, 6437, 4711, 6437, 4712, 4714, 6437, 6437, 4713, 4717, - 4720, 4722, 4724, 6437, 4732, 6437, 4734, 4735, 4721, 4733, - 4739, 6437, 4738, 4740, 4742, 6437, 4745, 4753, 4746, 4748, - 6437, 4750, 4756, 4751, 4758, 6437, 4760, 4766, 4762, 4768, - 4769, 4772, 4771, 4774, 4775, 4779, 4780, 4781, 4782, 4784, - 4793, 4795, 4797, 4790, 4798, 4799, 4805, 4807, 4800, 4803, + 4636, 4647, 4637, 4643, 4654, 4658, 6547, 4661, 4662, 4651, + 4669, 4670, 4666, 4668, 4671, 4672, 4674, 4676, 4677, 4678, + 4687, 4680, 4683, 6547, 4689, 4692, 4698, 4699, 4682, 4700, + 4701, 4702, 4708, 4703, 6547, 4705, 4711, 4712, 4713, 4714, + 4715, 4717, 4725, 4720, 4723, 4724, 4728, 4729, 4730, 6547, + 4733, 4736, 4737, 4744, 4740, 4753, 6547, 4749, 6547, 4746, + 4756, 4759, 4739, 4763, 6547, 6547, 4750, 4767, 4766, 4769, + 4770, 6547, 6547, 4772, 6547, 4773, 6547, 4774, 4776, 6547, + 6547, 4775, 4777, 4781, 4782, 4784, 6547, 4790, 6547, 4799, + 4794, 4785, 4796, 4797, 6547, 4798, 4804, 4800, 4808, 4806, - 4809, 4810, 4814, 4811, 4818, 4820, 4821, 4822, 4824, 4823, - 4825, 4828, 4827, 4836, 4838, 4839, 4840, 4841, 4842, 4843, - 4844, 4850, 4851, 4854, 4849, 4853, 6437, 4857, 4859, 4846, - 4870, 4860, 4871, 4872, 4879, 4883, 4884, 6437, 4886, 6437, - 4888, 4880, 4890, 4891, 4892, 6437, 4893, 4894, 4895, 4896, - 4897, 4899, 4900, 4903, 4904, 4908, 4914, 6437, 4921, 4911, - 4905, 4909, 4929, 6437, 4924, 4931, 4932, 4934, 4935, 4936, - 4937, 4938, 4941, 4939, 4944, 4946, 4940, 4947, 4948, 4962, - 4964, 4959, 4949, 4966, 4968, 4969, 4970, 4971, 4972, 4973, - 4974, 4980, 4982, 4986, 6437, 4977, 6437, 4988, 4989, 4990, + 6547, 4810, 4815, 4811, 4813, 6547, 4822, 4823, 4814, 4816, + 6547, 4824, 4831, 4827, 4835, 4836, 4837, 4838, 4841, 4843, + 4839, 4844, 4846, 4847, 4854, 4861, 4863, 4865, 4869, 4858, + 4856, 4871, 4872, 4877, 4875, 4879, 4880, 4881, 4883, 4884, + 4886, 4889, 4890, 4892, 4895, 4893, 4894, 4906, 4896, 4898, + 4908, 4910, 4899, 4909, 4913, 4912, 4917, 4915, 4920, 4923, + 4922, 4924, 6547, 4928, 4930, 4933, 4935, 4934, 4940, 4942, + 4944, 4950, 4953, 6547, 4957, 6547, 4959, 4951, 4955, 4961, + 4962, 6547, 4963, 4964, 4965, 4968, 4967, 4970, 4848, 4971, + 4974, 4975, 4972, 6547, 4979, 4981, 4984, 4985, 4997, 6547, - 4993, 4994, 4995, 4998, 6437, 6437, 5000, 5001, 5006, 5003, - 5007, 5010, 5012, 6437, 5011, 5019, 5022, 5014, 6437, 5024, - 5028, 5029, 5031, 6437, 5032, 5033, 5034, 5036, 5037, 5041, - 5045, 5043, 5046, 5047, 5054, 6437, 6437, 6437, 6437, 5057, - 5051, 5061, 5055, 5063, 5065, 5066, 5070, 5064, 6437, 5072, - 6437, 6437, 5077, 5078, 5067, 5080, 5084, 5086, 5087, 5089, - 6437, 5088, 5090, 5093, 5091, 5100, 5102, 5108, 5104, 5109, - 5094, 5110, 5119, 5115, 5116, 5118, 5121, 5123, 5125, 6437, - 6437, 5127, 5130, 5131, 5138, 5136, 5139, 5135, 5148, 5143, - 5145, 5146, 5151, 5152, 5153, 5162, 5163, 5154, 5158, 6437, + 4989, 5000, 4986, 5001, 5002, 5003, 5005, 5007, 5008, 5010, + 5012, 5014, 5015, 5016, 5020, 5022, 5028, 5036, 5031, 5017, + 5033, 5037, 5038, 5039, 5040, 5041, 5042, 5048, 5053, 5057, + 6547, 5045, 6547, 5054, 5050, 5058, 5061, 5062, 5065, 5068, + 6547, 6547, 5066, 5071, 5073, 5075, 5076, 5078, 5080, 5082, + 5079, 6547, 5084, 5088, 5096, 5089, 6547, 5093, 5098, 5100, + 5104, 6547, 5101, 5105, 5106, 5112, 5107, 5116, 5117, 5119, + 5109, 5121, 5123, 5130, 6547, 6547, 6547, 6547, 5131, 5124, + 5135, 5127, 5136, 5138, 5139, 5142, 5137, 6547, 5145, 6547, + 6547, 5150, 5151, 5153, 5154, 5157, 5158, 5160, 5162, 6547, - 5161, 5164, 5172, 6437, 5165, 6437, 5171, 5173, 5167, 5179, - 5180, 5181, 5182, 5184, 6437, 6437, 5186, 5194, 5191, 6437, - 6437, 5187, 5195, 5198, 5200, 5196, 5201, 5202, 5207, 5209, - 5205, 6437, 5210, 6437, 5212, 5214, 5227, 5213, 5229, 5234, - 5236, 5240, 5233, 5216, 6437, 5235, 5237, 6437, 5242, 5231, - 5243, 6437, 5247, 5249, 5252, 5254, 6437, 5256, 5257, 5259, - 6437, 5263, 6437, 5260, 5265, 5266, 5274, 6437, 5269, 5271, - 6437, 5276, 5282, 5283, 5277, 6437, 5279, 6437, 5284, 5288, - 5291, 5294, 5285, 5296, 5298, 5299, 5301, 5308, 5306, 5303, - 6437, 6437, 135, 5319, 5309, 5310, 5314, 5316, 5326, 5312, + 5161, 5163, 5166, 5164, 5173, 5175, 5181, 5178, 5182, 5183, + 5184, 5192, 5188, 5189, 5191, 5194, 5196, 5198, 6547, 6547, + 5200, 5204, 5205, 5215, 5207, 5211, 5210, 5223, 5218, 5220, + 5219, 5221, 5226, 5227, 5235, 5237, 5233, 5230, 6547, 5232, + 5240, 5241, 6547, 5243, 6547, 5246, 5247, 5249, 5250, 5253, + 5256, 5257, 5259, 6547, 6547, 5254, 5266, 5264, 6547, 6547, + 5261, 5269, 5271, 5274, 5275, 5276, 5277, 5278, 5284, 5279, + 6547, 5281, 6547, 5285, 5287, 5300, 5288, 5303, 5307, 5308, + 5310, 5304, 5306, 6547, 5314, 5315, 6547, 5322, 5317, 5321, + 5318, 5319, 6547, 5326, 5324, 5330, 5336, 6547, 5338, 5339, - 5321, 5324, 6437, 6437, 5328, 6437, 5327, 5336, 6437, 5329, - 5338, 5342, 5331, 5340, 5344, 5346, 5347, 5351, 5353, 5352, - 5356, 5357, 5360, 5365, 5375, 5358, 5372, 5378, 5380, 5382, - 5384, 5373, 5386, 5387, 5388, 5390, 5392, 5393, 5394, 5396, - 5397, 6437, 5400, 5402, 5405, 5404, 6437, 5410, 5406, 5419, - 5415, 6437, 5424, 5412, 5425, 5426, 6437, 5427, 5429, 5432, - 5430, 5431, 5443, 5438, 5440, 5444, 6437, 6437, 6437, 5447, - 5454, 6437, 5456, 5450, 5433, 5441, 6437, 5457, 5460, 6437, - 6437, 5461, 5462, 5463, 5473, 6437, 5465, 6437, 5468, 6437, - 5469, 5470, 5478, 5476, 6437, 5482, 5480, 6437, 5491, 5493, + 5340, 6547, 5347, 6547, 5331, 5344, 5341, 5356, 5348, 6547, + 5352, 5357, 6547, 5362, 5364, 5365, 5354, 6547, 5359, 6547, + 5366, 5370, 5373, 5376, 5378, 5380, 5371, 5381, 5382, 5389, + 5388, 5390, 6547, 6547, 135, 5398, 5385, 5391, 5395, 5400, + 5407, 5402, 5405, 5404, 6547, 6547, 5412, 6547, 5410, 5413, + 6547, 5414, 5419, 5420, 5423, 5424, 5425, 5426, 5428, 5431, + 5433, 5434, 5435, 5432, 5436, 5454, 5456, 5438, 5459, 5460, + 5462, 5464, 5466, 5452, 5469, 5470, 5471, 5472, 5473, 5475, + 5476, 5478, 5479, 6547, 5482, 5484, 5486, 5487, 6547, 5494, + 5488, 5501, 5491, 6547, 5503, 5504, 5506, 5507, 6547, 5508, - 5495, 5488, 5496, 5498, 5499, 6437, 5506, 5502, 5503, 5510, - 5501, 5511, 5505, 5513, 5512, 5520, 5515, 5522, 6437, 5524, - 5527, 5529, 5535, 5525, 5531, 5533, 6437, 5537, 6437, 5539, - 6437, 5541, 5542, 5543, 5549, 5545, 5550, 5551, 5560, 5552, - 5562, 5556, 5563, 5567, 5564, 6437, 6437, 5573, 5576, 6437, - 5570, 6437, 5578, 6437, 5568, 5579, 5580, 5581, 6437, 5588, - 5582, 5585, 5590, 6437, 5592, 5597, 5594, 5599, 6437, 6437, - 5600, 5607, 5605, 5603, 5615, 5617, 5604, 5619, 5612, 5621, - 5606, 5628, 5627, 5629, 5631, 5633, 5634, 5635, 6437, 6437, - 6437, 5640, 5639, 5648, 5644, 5647, 5655, 5645, 6437, 5653, + 5510, 5514, 5511, 5512, 5517, 5519, 5530, 5522, 5523, 5521, + 6547, 6547, 6547, 5533, 5537, 6547, 5540, 5527, 5542, 5543, + 6547, 5545, 5546, 5547, 6547, 6547, 5548, 5549, 5550, 5557, + 6547, 5552, 6547, 5553, 6547, 5560, 5563, 5571, 5566, 6547, + 5576, 5578, 6547, 5584, 5586, 5588, 5580, 5577, 5590, 5591, + 6547, 5562, 5593, 5594, 5601, 5592, 5595, 5602, 5603, 5604, + 5611, 5606, 5613, 6547, 5614, 5615, 5616, 5624, 5617, 5554, + 5619, 6547, 5626, 6547, 5628, 6547, 5629, 5630, 5633, 5632, + 5635, 5638, 5639, 5640, 5648, 5644, 5650, 5652, 5655, 5656, + 6547, 6547, 5659, 5661, 6547, 5662, 6547, 5664, 6547, 5665, - 5657, 5660, 5654, 5667, 5662, 5669, 6437, 5664, 5666, 5670, - 5672, 5675, 5671, 5677, 5678, 6437, 5682, 5689, 5686, 5683, - 5694, 5701, 5703, 5705, 5696, 5692, 5712, 5708, 6437, 5711, - 6437, 6437, 5698, 6437, 5707, 5714, 5715, 5719, 6437, 5722, - 5716, 5723, 5724, 5726, 5728, 6437, 5738, 5731, 5734, 5735, - 6437, 6437, 5742, 6437, 5745, 5747, 5746, 5754, 5749, 5750, - 5756, 5757, 6437, 5739, 5763, 5764, 5765, 5766, 6437, 5767, - 5768, 5770, 5771, 6437, 5774, 5773, 5776, 5778, 5779, 6437, - 5780, 5781, 5788, 5795, 6437, 5786, 5802, 5796, 6437, 6437, - 5798, 5804, 5807, 6437, 6437, 6437, 5813, 5810, 5808, 5817, + 5666, 5669, 5667, 6547, 5671, 5673, 5677, 5680, 5676, 5679, + 6547, 5687, 5689, 5690, 5692, 6547, 6547, 5684, 5700, 5696, + 6547, 5695, 5706, 5708, 5702, 5711, 5712, 5715, 5713, 5720, + 5697, 5719, 5718, 5726, 5729, 5727, 6547, 6547, 6547, 5734, + 5721, 5742, 5740, 5744, 5743, 5735, 6547, 5745, 5749, 5751, + 5752, 5760, 5755, 5758, 6547, 5762, 5759, 5761, 5763, 5765, + 5766, 5767, 5769, 6547, 5780, 5782, 5770, 5784, 5787, 5789, + 5791, 5794, 5795, 5796, 5803, 5799, 6547, 5801, 6547, 6547, + 5802, 6547, 5805, 5806, 5807, 5809, 6547, 5812, 5813, 5814, + 5816, 5815, 5817, 5819, 5824, 6547, 5831, 5820, 5832, 5836, - 6437, 5819, 5823, 5828, 5832, 5831, 6437, 5834, 5822, 5824, - 6437, 6437, 5836, 5837, 5839, 5842, 6437, 6437, 5843, 5845, - 5846, 5849, 5847, 6437, 5848, 5851, 5853, 5864, 5870, 5859, - 5867, 5871, 5879, 5861, 5865, 5876, 5875, 5877, 5881, 5884, - 5888, 5895, 5892, 5894, 5900, 5897, 5901, 6437, 6437, 5905, - 6437, 5908, 5902, 6437, 6437, 5910, 5914, 5916, 5918, 5920, - 5922, 5924, 6437, 5925, 5927, 5928, 5929, 5930, 6437, 5932, - 5936, 5931, 5939, 5933, 5942, 5938, 5948, 6437, 6437, 5940, - 5954, 5944, 5955, 5949, 6437, 5959, 5966, 5961, 5963, 5964, - 5969, 5965, 6437, 5971, 5973, 6437, 6437, 5972, 5974, 6437, + 6547, 6547, 5838, 6547, 5843, 5844, 5834, 5852, 5845, 5847, + 5854, 5856, 6547, 5850, 5858, 5859, 5860, 5862, 6547, 5863, + 5865, 5866, 5867, 6547, 5873, 5869, 5875, 5874, 5876, 6547, + 5877, 5879, 5889, 5896, 6547, 5880, 5894, 5890, 6547, 6547, + 5905, 5907, 5898, 6547, 6547, 6547, 5909, 5910, 5911, 5913, + 6547, 5917, 5921, 5925, 5929, 5920, 6547, 5928, 5931, 5935, + 5914, 5936, 6547, 6547, 5937, 5938, 5939, 5942, 6547, 6547, + 5943, 5945, 5947, 5946, 5948, 6547, 5949, 5953, 5959, 5965, + 5970, 5956, 5961, 5972, 5979, 5980, 5975, 5976, 5977, 5982, + 5983, 5985, 5990, 5992, 5993, 5995, 5997, 6001, 6002, 6547, - 6437, 5978, 6437, 6437, 6437, 6437, 6437, 6437, 6437, 5985, - 6437, 5979, 5991, 5994, 5996, 6437, 5980, 5997, 5998, 5999, - 5986, 6437, 5984, 6001, 6005, 6009, 6008, 6013, 6015, 6016, - 6018, 6017, 6020, 6022, 6021, 6026, 6024, 6025, 6027, 6031, - 6034, 6437, 6437, 6437, 6040, 6041, 6043, 6044, 6048, 6049, - 6056, 6058, 6052, 6059, 6060, 6062, 6064, 6065, 6066, 6074, - 6070, 6073, 6072, 6076, 6078, 6083, 6087, 6080, 6088, 6092, - 6437, 6089, 6437, 6093, 6437, 6437, 6097, 6099, 6094, 6101, - 6109, 6112, 6105, 6108, 6110, 6113, 6115, 6437, 6117, 6437, - 6437, 6122, 6124, 6437, 6123, 6126, 6437, 6125, 6127, 6128, + 6547, 6006, 6547, 6009, 6003, 6547, 6547, 6011, 6014, 6018, + 6020, 6022, 6024, 6026, 6028, 6015, 6547, 6029, 6031, 6033, + 6032, 6034, 6547, 6036, 6040, 6035, 6043, 6037, 6045, 6047, + 6052, 6547, 6547, 6048, 6057, 6053, 6058, 6063, 6547, 6061, + 6071, 6068, 6067, 6069, 6073, 6070, 6547, 6074, 6075, 6547, + 6547, 6083, 6077, 6547, 6547, 6076, 6547, 6547, 6547, 6547, + 6547, 6547, 6547, 6547, 6085, 6093, 6547, 6094, 6098, 6100, + 6104, 6547, 6078, 6105, 6106, 6089, 6108, 6547, 6095, 6112, + 6111, 5292, 6113, 6119, 6117, 6115, 6121, 6124, 6125, 6126, + 6127, 6131, 6132, 6133, 6142, 6145, 6129, 6146, 6547, 6547, - 6133, 6135, 6131, 6134, 6136, 6152, 6437, 6437, 6138, 6142, - 6140, 6154, 6156, 6155, 6162, 6164, 6165, 6166, 6157, 6173, - 6437, 6175, 6172, 6179, 6437, 6180, 6168, 6181, 6182, 6183, - 6191, 6186, 6190, 6437, 6192, 6437, 6195, 6197, 6199, 6189, - 6196, 6198, 6212, 6214, 6207, 6437, 6200, 6216, 6210, 6221, - 6223, 6225, 6227, 6218, 6232, 6228, 6236, 6240, 6235, 6241, - 6243, 6244, 6245, 6437, 6247, 6250, 6437, 6251, 6252, 6253, - 6254, 6258, 6437, 6261, 6255, 6263, 6265, 6268, 6270, 6437, - 6276, 6279, 6280, 6437, 6281, 6437, 6437, 6283, 6271, 6284, - 6292, 6294, 6437, 6437, 6437, 6317, 6324, 6331, 6338, 6345, + 6547, 6138, 6135, 6157, 6153, 6159, 6160, 6164, 6166, 6148, + 6168, 6169, 6170, 6171, 6173, 6174, 6183, 6178, 6179, 6180, + 6182, 6184, 6187, 6547, 6194, 6190, 6195, 6197, 6547, 6200, + 6547, 6199, 6547, 6547, 6202, 6206, 6203, 6208, 6216, 6218, + 6209, 6213, 6219, 6220, 6222, 6547, 6229, 6547, 6547, 6224, + 6230, 6547, 6232, 6231, 6547, 6233, 6234, 6236, 6241, 6243, + 6240, 6237, 6244, 6248, 6547, 6547, 6251, 6252, 6257, 6261, + 6258, 6268, 6264, 6267, 6269, 6273, 6266, 6281, 6547, 6280, + 6277, 6284, 6547, 6286, 6287, 6288, 6289, 6291, 6298, 6293, + 6294, 6547, 6296, 6547, 6300, 6302, 6304, 6301, 6303, 6305, - 6352, 6359, 88, 6366, 6373, 6380, 6387, 6394, 6401, 6408, - 6415, 6422, 6429 + 6315, 6319, 6313, 6547, 6317, 6327, 6321, 6329, 6331, 6333, + 6334, 6323, 6336, 6339, 6345, 6349, 6346, 6350, 6337, 6354, + 6351, 6547, 6361, 6352, 6547, 6358, 6362, 6355, 6364, 6365, + 6547, 6369, 6372, 6373, 6375, 6378, 6379, 6547, 6381, 6385, + 6382, 6547, 6388, 6547, 6547, 6390, 6387, 6394, 6397, 6399, + 6547, 6547, 6547, 6427, 6434, 6441, 6448, 6455, 6462, 6469, + 88, 6476, 6483, 6490, 6497, 6504, 6511, 6518, 6525, 6532, + 6539 } ; -static const flex_int16_t yy_def[3314] = +static const flex_int16_t yy_def[3372] = { 0, - 3295, 1, 3296, 3296, 3297, 3297, 3298, 3298, 3299, 3299, - 3300, 3300, 3301, 3301, 3302, 3302, 3295, 3303, 3295, 3295, - 3295, 3295, 3304, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3305, 3295, 3295, 3295, - 3305, 3306, 3295, 3295, 3295, 3306, 3307, 3295, 3295, 3295, - 3295, 3307, 3308, 3295, 3295, 3295, 3308, 3309, 3295, 3310, - 3295, 3309, 3309, 3311, 3295, 3295, 3295, 3295, 3311, 3312, - 3295, 3295, 3295, 3312, 3303, 3303, 3295, 3313, 3304, 3313, - 3304, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3353, 1, 3354, 3354, 3355, 3355, 3356, 3356, 3357, 3357, + 3358, 3358, 3359, 3359, 3360, 3360, 3353, 3361, 3353, 3353, + 3353, 3353, 3362, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3363, 3353, 3353, 3353, + 3363, 3364, 3353, 3353, 3353, 3364, 3365, 3353, 3353, 3353, + 3353, 3365, 3366, 3353, 3353, 3353, 3366, 3367, 3353, 3368, + 3353, 3367, 3367, 3369, 3353, 3353, 3353, 3353, 3369, 3370, + 3353, 3353, 3353, 3370, 3361, 3361, 3353, 3371, 3362, 3371, + 3362, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3305, 3305, - 3306, 3306, 3307, 3307, 3295, 3308, 3308, 3309, 3309, 3310, - 3310, 3309, 3311, 3311, 3295, 3312, 3312, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3363, + 3363, 3364, 3364, 3365, 3365, 3353, 3366, 3366, 3367, 3367, + 3368, 3368, 3367, 3369, 3369, 3353, 3370, 3370, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3309, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3367, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3309, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3367, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3295, 3303, 3309, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3367, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3303, 3303, 3303, 3303, 3303, 3309, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3295, 3295, 3303, 3295, 3295, - 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3367, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3353, 3361, 3353, 3353, 3361, 3353, 3353, 3361, 3361, 3353, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3309, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, + 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3295, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3295, 3303, 3303, + 3367, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, + 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3361, 3361, - 3303, 3303, 3303, 3295, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3303, 3309, 3309, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3353, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3367, 3367, 3361, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3295, 3309, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3367, 3361, 3361, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3295, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3295, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3309, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, + 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3361, 3361, + 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3295, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3361, 3361, 3353, 3361, 3367, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3295, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3309, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3353, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, + 3361, 3361, 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3295, 3303, 3303, 3303, 3295, 3303, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3367, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3295, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3309, 3303, 3295, 3303, 3303, 3303, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, + 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, + 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, + 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, + 3361, 3361, 3353, 3361, 3361, 3361, 3353, 3361, 3361, 3361, - 3303, 3295, 3303, 3295, 3303, 3303, 3303, 3295, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, - 3295, 3303, 3295, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3295, + 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3367, 3361, 3353, 3361, 3361, 3361, 3353, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, + 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3353, 3361, + 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3353, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3295, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, - 3303, 3295, 3295, 3303, 3295, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3309, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, + 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, + 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, + 3353, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, - 3295, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3367, 3361, 3361, + 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, + 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3295, 3303, - 3303, 3303, 3303, 3309, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3353, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, + 3361, 3353, 3361, 3361, 3361, 3361, 3367, 3361, 3353, 3361, + 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, - 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3295, 3295, 3303, 3303, 3303, 3303, 3303, 3295, 3295, - 3303, 3295, 3303, 3295, 3303, 3303, 3295, 3295, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3295, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, + 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3361, + 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, 3361, + 3361, 3353, 3353, 3361, 3353, 3361, 3353, 3361, 3361, 3353, + 3353, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3361, + 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3309, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3295, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3295, 3303, 3295, 3303, 3303, 3303, + 3353, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, + 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3367, 3361, 3361, + 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361, + 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3353, - 3303, 3303, 3303, 3303, 3295, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3295, 3295, 3295, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3295, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3309, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3353, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, + 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3353, 3353, 3353, 3353, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, + 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, - 3303, 3303, 3303, 3295, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3295, 3295, 3303, 3303, 3303, 3295, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3295, 3303, 3303, - 3303, 3295, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3295, 3303, 3295, 3303, 3303, 3303, 3303, 3295, 3303, 3303, - 3295, 3303, 3303, 3303, 3303, 3295, 3303, 3295, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3295, 3295, 3309, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3361, 3361, 3361, 3361, 3361, 3361, 3367, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3353, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, + 3361, 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, 3353, 3353, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3353, 3361, 3361, 3353, 3361, 3361, 3361, + 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, 3361, - 3303, 3303, 3295, 3295, 3303, 3295, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3295, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3295, 3295, 3303, - 3303, 3295, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3295, - 3295, 3303, 3303, 3303, 3303, 3295, 3303, 3295, 3303, 3295, - 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3295, 3303, 3303, + 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3353, + 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, 3353, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3353, 3353, 3367, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3353, 3361, 3361, + 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, + 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3295, 3303, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3295, 3303, 3303, 3295, - 3303, 3295, 3303, 3295, 3303, 3303, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3295, 3295, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3295, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3353, 3353, 3353, 3361, 3361, 3353, 3361, 3361, 3361, 3361, + 3353, 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, 3361, + 3353, 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3353, + 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3353, 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3353, 3353, 3361, 3361, 3353, 3361, 3353, 3361, 3353, 3361, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3295, 3295, 3303, 3295, 3303, 3303, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3295, 3295, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3295, - 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3295, 3295, - 3303, 3303, 3303, 3295, 3295, 3295, 3303, 3303, 3303, 3303, + 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, + 3353, 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, + 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3353, 3353, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3353, + 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, - 3295, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3295, 3295, 3303, 3303, 3303, 3303, 3295, 3295, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3295, 3303, - 3295, 3303, 3303, 3295, 3295, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3295, 3303, - 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3295, 3303, 3303, 3295, 3295, 3303, 3303, 3295, + 3353, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3353, 3361, + 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3353, + 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3353, 3353, + 3361, 3361, 3361, 3353, 3353, 3353, 3361, 3361, 3361, 3361, + 3353, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, + 3361, 3361, 3353, 3353, 3361, 3361, 3361, 3361, 3353, 3353, + 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, - 3295, 3303, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3303, - 3295, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3295, 3295, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3295, 3303, 3295, 3303, 3295, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3295, - 3295, 3303, 3303, 3295, 3303, 3303, 3295, 3303, 3303, 3303, + 3353, 3361, 3353, 3361, 3361, 3353, 3353, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3361, + 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3353, 3353, 3361, 3361, 3361, 3361, 3361, 3353, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, 3353, + 3353, 3361, 3361, 3353, 3353, 3361, 3353, 3353, 3353, 3353, + 3353, 3353, 3353, 3353, 3361, 3361, 3353, 3361, 3361, 3361, + 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3353, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3295, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3295, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3295, - 3303, 3303, 3303, 3295, 3303, 3295, 3295, 3303, 3303, 3303, - 3303, 3303, 3295, 3295, 0, 3295, 3295, 3295, 3295, 3295, + 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3353, 3361, + 3353, 3361, 3353, 3353, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3353, 3353, 3361, + 3361, 3353, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3353, 3353, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, + 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3353, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, - 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, - 3295, 3295, 3295 + 3361, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, 3361, + 3361, 3353, 3361, 3361, 3353, 3361, 3361, 3361, 3361, 3361, + 3353, 3361, 3361, 3361, 3361, 3361, 3361, 3353, 3361, 3361, + 3361, 3353, 3361, 3353, 3353, 3361, 3361, 3361, 3361, 3361, + 3353, 3353, 0, 3353, 3353, 3353, 3353, 3353, 3353, 3353, + 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, + 3353 } ; -static const flex_int16_t yy_nxt[6478] = +static const flex_int16_t yy_nxt[6588] = { 0, 18, 19, 20, 21, 22, 23, 22, 18, 18, 18, 18, 18, 22, 24, 25, 26, 27, 28, 29, 30, @@ -1522,709 +1540,721 @@ static const flex_int16_t yy_nxt[6478] = 67, 19, 20, 21, 69, 70, 71, 75, 76, 77, 78, 86, 22, 72, 121, 86, 120, 109, 86, 79, - 159, 159, 73, 19, 20, 21, 69, 70, 71, 75, - 76, 77, 78, 186, 22, 72, 81, 82, 83, 130, + 160, 160, 73, 19, 20, 21, 69, 70, 71, 75, + 76, 77, 78, 187, 22, 72, 81, 82, 83, 130, 90, 79, 90, 90, 73, 90, 86, 84, 81, 82, - 83, 90, 91, 86, 86, 98, 92, 93, 169, 84, - 94, 158, 99, 86, 110, 95, 100, 161, 86, 101, - 161, 169, 86, 112, 96, 86, 166, 166, 111, 86, - 102, 113, 136, 115, 103, 172, 116, 104, 86, 105, - 106, 178, 114, 117, 169, 118, 86, 122, 86, 126, - 107, 86, 155, 127, 177, 123, 156, 86, 86, 137, + 83, 90, 91, 86, 86, 98, 92, 93, 170, 84, + 94, 159, 99, 86, 110, 95, 100, 162, 86, 101, + 162, 170, 86, 112, 96, 86, 167, 167, 111, 86, + 102, 113, 137, 115, 103, 173, 116, 104, 86, 105, + 106, 179, 114, 117, 170, 118, 86, 122, 86, 126, + 107, 86, 156, 127, 86, 123, 157, 184, 86, 138, - 157, 124, 131, 138, 87, 125, 132, 128, 88, 129, - 176, 176, 133, 139, 140, 134, 141, 86, 86, 86, - 86, 179, 135, 142, 86, 147, 143, 148, 86, 86, - 86, 181, 183, 144, 151, 180, 149, 145, 146, 86, - 182, 86, 150, 206, 152, 175, 208, 86, 153, 154, - 163, 225, 163, 163, 90, 163, 90, 90, 168, 90, - 168, 168, 173, 168, 173, 173, 171, 173, 85, 86, - 85, 85, 90, 85, 90, 90, 86, 90, 86, 85, - 86, 184, 86, 90, 91, 187, 86, 192, 193, 86, - 86, 196, 189, 86, 185, 86, 188, 86, 190, 86, + 158, 124, 87, 139, 86, 125, 88, 128, 180, 129, + 86, 131, 86, 140, 141, 132, 142, 143, 86, 133, + 144, 86, 148, 86, 149, 134, 86, 145, 135, 86, + 152, 146, 147, 150, 86, 136, 177, 177, 183, 151, + 153, 181, 196, 189, 154, 155, 164, 86, 164, 164, + 90, 164, 90, 90, 169, 90, 169, 169, 174, 169, + 174, 174, 172, 174, 85, 86, 85, 85, 90, 85, + 90, 90, 289, 90, 86, 85, 86, 182, 86, 90, + 91, 185, 190, 188, 86, 86, 197, 86, 191, 86, + 192, 86, 86, 207, 186, 86, 86, 86, 86, 86, - 191, 86, 194, 86, 198, 86, 174, 199, 195, 86, - 197, 86, 201, 202, 86, 200, 86, 204, 214, 210, - 203, 205, 211, 209, 86, 207, 86, 86, 86, 86, - 216, 217, 86, 222, 86, 212, 213, 219, 223, 226, - 227, 220, 224, 215, 86, 86, 86, 86, 86, 231, - 86, 218, 228, 229, 233, 86, 86, 221, 86, 230, - 235, 86, 238, 86, 236, 232, 234, 86, 86, 86, - 169, 240, 86, 86, 252, 250, 237, 86, 239, 86, - 241, 86, 246, 243, 86, 249, 242, 86, 245, 244, - 86, 253, 86, 247, 254, 86, 251, 248, 259, 255, + 178, 199, 193, 194, 86, 198, 86, 195, 86, 200, + 86, 201, 245, 209, 205, 202, 203, 206, 208, 86, + 210, 215, 211, 204, 86, 212, 86, 86, 86, 217, + 86, 218, 86, 220, 86, 86, 226, 221, 213, 214, + 86, 227, 225, 223, 86, 86, 216, 229, 224, 86, + 86, 219, 86, 222, 230, 232, 233, 228, 86, 86, + 86, 86, 231, 235, 86, 237, 86, 240, 234, 238, + 86, 86, 86, 86, 242, 86, 236, 370, 86, 86, + 86, 239, 86, 243, 241, 248, 251, 252, 86, 244, + 253, 247, 86, 86, 86, 254, 249, 246, 260, 257, - 86, 86, 86, 257, 261, 86, 265, 86, 86, 258, - 256, 260, 264, 262, 86, 159, 159, 266, 86, 268, - 161, 269, 86, 161, 367, 263, 267, 163, 169, 163, - 163, 270, 163, 166, 166, 168, 274, 168, 168, 90, - 168, 90, 90, 173, 90, 173, 173, 86, 173, 176, - 176, 171, 271, 272, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 276, 86, 279, 282, 278, 273, 275, - 277, 86, 285, 284, 290, 281, 86, 280, 86, 286, - 86, 288, 283, 86, 289, 291, 86, 86, 86, 86, - 292, 86, 294, 86, 299, 86, 287, 295, 300, 86, + 250, 261, 86, 86, 259, 263, 86, 86, 86, 86, + 258, 267, 255, 86, 264, 256, 86, 86, 262, 266, + 268, 270, 160, 160, 86, 162, 265, 269, 162, 273, + 164, 271, 164, 164, 337, 164, 167, 167, 169, 86, + 169, 169, 90, 169, 90, 90, 170, 90, 174, 272, + 174, 174, 274, 174, 172, 177, 177, 276, 86, 86, + 86, 86, 86, 86, 86, 86, 86, 275, 278, 86, + 281, 284, 280, 86, 277, 279, 86, 287, 286, 283, + 176, 290, 282, 86, 288, 285, 86, 291, 292, 86, + 293, 317, 86, 296, 86, 294, 86, 301, 297, 86, - 302, 304, 296, 86, 303, 306, 86, 293, 297, 298, - 301, 86, 86, 86, 86, 86, 308, 86, 309, 86, - 86, 86, 310, 305, 86, 316, 317, 86, 311, 313, - 312, 167, 314, 86, 307, 86, 318, 315, 323, 319, - 326, 320, 86, 325, 324, 328, 86, 86, 327, 86, - 330, 86, 332, 321, 333, 322, 86, 329, 86, 336, - 86, 86, 331, 86, 86, 86, 337, 338, 339, 334, - 335, 340, 86, 86, 86, 86, 342, 86, 86, 341, - 343, 86, 86, 86, 345, 86, 86, 86, 86, 86, - 348, 350, 86, 355, 346, 344, 349, 351, 356, 86, + 86, 86, 86, 298, 86, 86, 304, 305, 308, 299, + 300, 302, 295, 86, 86, 86, 306, 310, 86, 303, + 311, 86, 86, 86, 86, 307, 86, 318, 86, 86, + 86, 319, 86, 325, 312, 313, 315, 309, 314, 316, + 86, 320, 86, 329, 321, 328, 322, 330, 327, 326, + 332, 86, 86, 86, 724, 334, 86, 338, 323, 331, + 324, 86, 335, 86, 86, 340, 86, 342, 86, 339, + 341, 86, 333, 86, 86, 86, 344, 336, 86, 86, + 86, 343, 86, 86, 346, 86, 348, 86, 345, 86, + 86, 86, 86, 351, 353, 86, 349, 358, 86, 347, - 352, 86, 86, 347, 86, 353, 357, 354, 359, 361, - 358, 86, 364, 86, 86, 86, 86, 370, 86, 366, - 86, 86, 371, 86, 360, 373, 86, 369, 86, 362, - 363, 86, 86, 365, 86, 368, 86, 376, 374, 378, - 372, 377, 86, 380, 169, 86, 375, 86, 86, 86, - 381, 86, 384, 86, 86, 86, 385, 383, 86, 391, - 389, 387, 392, 379, 86, 86, 86, 382, 86, 393, - 386, 394, 395, 86, 388, 86, 86, 86, 86, 86, - 86, 390, 86, 406, 402, 403, 86, 400, 396, 397, - 86, 399, 86, 86, 398, 404, 86, 405, 86, 408, + 352, 354, 359, 86, 86, 350, 355, 86, 86, 360, + 357, 356, 362, 364, 86, 367, 361, 86, 86, 86, + 86, 86, 373, 369, 86, 86, 86, 86, 86, 363, + 374, 372, 365, 366, 376, 86, 86, 368, 377, 371, + 86, 378, 86, 379, 375, 380, 86, 381, 383, 86, + 86, 384, 170, 86, 86, 387, 86, 86, 386, 86, + 86, 86, 86, 394, 388, 390, 392, 395, 385, 86, + 86, 382, 86, 86, 398, 389, 86, 396, 86, 391, + 86, 397, 86, 393, 86, 399, 86, 404, 86, 405, + 409, 406, 400, 86, 403, 86, 86, 86, 402, 407, - 86, 409, 86, 86, 86, 401, 412, 86, 86, 416, - 407, 413, 86, 86, 418, 86, 86, 414, 410, 411, - 86, 415, 86, 420, 419, 86, 86, 417, 86, 86, - 421, 86, 423, 424, 425, 426, 428, 86, 86, 86, - 86, 86, 433, 429, 86, 432, 86, 422, 86, 86, - 165, 431, 435, 86, 86, 438, 86, 86, 430, 86, - 427, 443, 440, 86, 434, 86, 444, 86, 436, 442, - 86, 437, 86, 86, 439, 466, 86, 445, 454, 441, - 86, 452, 86, 86, 86, 455, 458, 456, 453, 446, - 86, 86, 447, 465, 86, 86, 460, 448, 449, 450, + 401, 86, 408, 86, 411, 86, 412, 86, 86, 86, + 86, 415, 86, 86, 410, 419, 416, 86, 175, 417, + 421, 86, 418, 413, 414, 86, 86, 422, 423, 86, + 86, 420, 86, 424, 86, 86, 426, 427, 428, 429, + 86, 86, 86, 86, 86, 86, 86, 435, 432, 86, + 425, 86, 436, 86, 86, 434, 86, 438, 86, 441, + 431, 437, 433, 86, 430, 86, 443, 446, 86, 86, + 439, 447, 440, 86, 442, 86, 86, 445, 86, 86, + 457, 448, 86, 444, 86, 455, 86, 86, 86, 458, + 461, 459, 499, 449, 170, 462, 450, 456, 469, 86, - 451, 86, 791, 457, 459, 86, 463, 461, 462, 469, - 86, 464, 86, 86, 472, 86, 86, 474, 467, 470, - 86, 468, 471, 86, 475, 473, 86, 86, 86, 86, - 86, 86, 477, 482, 86, 86, 483, 86, 484, 86, - 478, 476, 487, 488, 86, 86, 481, 485, 479, 86, - 480, 86, 86, 499, 486, 86, 489, 490, 492, 494, - 493, 86, 501, 491, 495, 86, 500, 86, 86, 502, - 86, 86, 503, 86, 86, 86, 515, 496, 504, 86, - 497, 86, 498, 86, 505, 164, 86, 86, 506, 517, - 520, 514, 86, 519, 516, 522, 507, 86, 508, 86, + 463, 451, 452, 453, 454, 466, 86, 460, 464, 465, + 467, 86, 86, 86, 86, 468, 86, 86, 86, 477, + 86, 86, 86, 479, 86, 475, 478, 476, 86, 472, + 470, 86, 480, 471, 473, 474, 86, 86, 86, 481, + 483, 482, 86, 487, 86, 168, 86, 86, 488, 86, + 489, 492, 86, 505, 493, 166, 484, 486, 485, 490, + 86, 86, 86, 86, 491, 86, 494, 495, 497, 86, + 498, 86, 500, 496, 86, 506, 507, 86, 86, 508, + 504, 86, 86, 86, 86, 501, 509, 86, 502, 546, + 503, 86, 510, 86, 520, 86, 511, 522, 519, 523, - 509, 518, 536, 86, 532, 86, 521, 530, 531, 533, - 86, 534, 86, 510, 86, 86, 511, 169, 512, 86, - 513, 86, 539, 523, 524, 540, 86, 537, 538, 86, - 86, 86, 162, 525, 542, 526, 527, 528, 535, 544, - 529, 541, 86, 543, 86, 86, 548, 546, 86, 545, - 549, 86, 553, 551, 86, 554, 86, 86, 86, 550, - 86, 558, 86, 86, 86, 547, 552, 86, 86, 556, - 86, 86, 86, 561, 557, 160, 555, 562, 563, 560, - 86, 86, 86, 568, 564, 567, 565, 559, 566, 86, - 86, 569, 570, 86, 572, 86, 575, 573, 86, 86, + 86, 524, 86, 525, 512, 86, 513, 527, 514, 537, + 535, 536, 521, 170, 538, 86, 86, 86, 86, 526, + 86, 515, 539, 86, 516, 556, 517, 86, 518, 86, + 86, 528, 529, 542, 540, 86, 541, 165, 86, 543, + 545, 530, 544, 531, 532, 533, 86, 547, 534, 548, + 549, 86, 86, 86, 86, 558, 86, 551, 553, 86, + 550, 86, 86, 559, 86, 86, 86, 563, 555, 557, + 86, 554, 86, 86, 86, 552, 561, 566, 86, 560, + 562, 567, 568, 86, 86, 86, 565, 86, 86, 573, + 564, 86, 572, 86, 569, 574, 575, 86, 86, 570, - 86, 576, 86, 86, 589, 86, 86, 592, 86, 571, - 86, 584, 574, 577, 581, 578, 580, 590, 579, 585, - 586, 86, 86, 587, 588, 582, 591, 583, 594, 86, - 86, 593, 86, 86, 86, 598, 596, 597, 86, 86, - 86, 601, 86, 599, 603, 86, 86, 86, 86, 606, - 595, 604, 607, 86, 86, 602, 86, 608, 86, 600, - 605, 86, 86, 86, 613, 86, 611, 612, 86, 609, - 86, 86, 614, 86, 86, 86, 619, 610, 620, 86, - 615, 86, 622, 618, 623, 616, 86, 621, 617, 86, - 625, 86, 86, 627, 86, 86, 86, 86, 86, 86, + 86, 571, 577, 86, 578, 86, 580, 581, 86, 584, + 594, 86, 582, 576, 86, 86, 86, 585, 603, 579, + 586, 86, 86, 595, 583, 86, 589, 596, 86, 597, + 599, 587, 86, 588, 590, 591, 86, 598, 592, 593, + 86, 86, 86, 86, 86, 602, 601, 604, 86, 606, + 608, 86, 86, 600, 86, 86, 611, 607, 612, 609, + 86, 86, 86, 605, 86, 610, 613, 86, 86, 86, + 618, 86, 616, 617, 86, 614, 86, 86, 619, 86, + 86, 86, 615, 620, 624, 86, 86, 627, 623, 625, + 86, 626, 86, 86, 621, 622, 86, 628, 86, 630, - 86, 86, 86, 629, 86, 630, 638, 624, 639, 86, - 632, 86, 86, 626, 86, 628, 641, 631, 633, 635, - 634, 640, 636, 637, 86, 86, 86, 86, 642, 645, - 86, 648, 643, 86, 651, 644, 86, 86, 86, 646, - 86, 650, 86, 86, 86, 647, 86, 654, 657, 86, - 653, 86, 86, 649, 658, 86, 86, 660, 652, 86, - 86, 86, 86, 86, 86, 655, 659, 656, 674, 86, - 86, 661, 663, 696, 677, 662, 86, 664, 673, 86, - 672, 675, 665, 177, 666, 676, 86, 86, 86, 86, - 667, 681, 668, 678, 680, 669, 670, 679, 684, 685, + 86, 629, 86, 632, 634, 86, 86, 86, 86, 635, + 86, 637, 631, 86, 633, 86, 645, 647, 86, 86, + 639, 723, 86, 86, 86, 86, 636, 638, 640, 86, + 641, 642, 644, 646, 648, 643, 86, 86, 86, 649, + 652, 86, 655, 86, 650, 658, 86, 651, 86, 657, + 86, 86, 653, 86, 86, 86, 654, 86, 661, 664, + 86, 86, 86, 656, 660, 665, 667, 86, 86, 659, + 86, 86, 86, 86, 86, 86, 662, 666, 663, 681, + 86, 86, 86, 668, 670, 163, 684, 669, 86, 671, + 679, 682, 720, 698, 672, 680, 673, 683, 86, 86, - 86, 86, 671, 682, 86, 86, 683, 689, 86, 86, - 686, 86, 692, 86, 86, 687, 86, 688, 86, 694, - 86, 86, 86, 86, 86, 701, 86, 175, 700, 691, - 86, 690, 86, 698, 86, 695, 697, 86, 693, 705, - 704, 703, 169, 702, 699, 707, 706, 709, 86, 708, - 86, 86, 86, 86, 86, 86, 86, 716, 714, 86, - 719, 86, 86, 86, 711, 86, 720, 710, 712, 715, - 713, 718, 86, 722, 721, 86, 86, 723, 724, 86, - 86, 86, 86, 717, 86, 728, 727, 86, 86, 86, - 725, 733, 86, 729, 829, 726, 734, 86, 736, 86, + 86, 86, 674, 86, 675, 685, 688, 676, 677, 686, + 692, 86, 691, 687, 678, 689, 86, 86, 690, 86, + 86, 693, 696, 86, 699, 86, 694, 86, 701, 86, + 86, 86, 86, 695, 86, 86, 86, 86, 86, 86, + 707, 86, 703, 697, 702, 708, 704, 711, 712, 170, + 700, 705, 710, 713, 714, 86, 706, 709, 86, 86, + 86, 86, 86, 86, 86, 727, 86, 715, 721, 726, + 86, 86, 86, 716, 725, 718, 722, 719, 717, 729, + 86, 86, 86, 86, 728, 86, 731, 86, 86, 86, + 735, 86, 730, 734, 740, 732, 86, 733, 736, 741, - 730, 738, 735, 731, 732, 737, 86, 86, 739, 86, - 740, 86, 741, 744, 742, 86, 86, 86, 86, 743, - 86, 86, 747, 86, 746, 86, 86, 745, 750, 86, - 755, 749, 86, 86, 751, 748, 86, 754, 86, 86, - 86, 86, 756, 86, 760, 758, 86, 86, 86, 752, - 86, 753, 86, 763, 766, 759, 86, 757, 86, 86, - 86, 761, 86, 767, 86, 774, 764, 174, 762, 86, - 768, 86, 765, 86, 769, 86, 86, 773, 777, 770, - 775, 778, 771, 772, 86, 776, 781, 86, 86, 779, - 86, 783, 86, 86, 784, 86, 782, 86, 786, 780, + 86, 743, 86, 744, 86, 737, 745, 739, 738, 742, + 746, 86, 86, 747, 86, 748, 86, 749, 86, 86, + 86, 86, 750, 86, 86, 754, 86, 753, 86, 86, + 752, 757, 86, 86, 756, 86, 762, 751, 755, 86, + 758, 86, 86, 761, 86, 763, 86, 766, 86, 86, + 767, 760, 759, 765, 86, 86, 86, 86, 773, 86, + 770, 768, 764, 86, 86, 86, 86, 86, 774, 86, + 781, 86, 771, 775, 776, 769, 86, 772, 86, 777, + 86, 783, 778, 779, 780, 782, 86, 86, 788, 789, + 786, 784, 785, 787, 86, 86, 86, 86, 790, 86, - 787, 86, 86, 86, 86, 86, 788, 86, 793, 795, - 86, 789, 86, 86, 86, 86, 785, 792, 801, 86, - 790, 796, 86, 799, 86, 794, 797, 800, 802, 798, - 86, 804, 805, 803, 86, 86, 86, 808, 806, 86, - 810, 807, 86, 812, 86, 86, 86, 811, 813, 86, - 86, 816, 86, 809, 86, 815, 817, 86, 86, 86, - 823, 86, 86, 820, 169, 818, 86, 819, 825, 814, - 86, 86, 828, 86, 86, 826, 830, 821, 822, 832, - 824, 86, 827, 86, 835, 86, 833, 86, 834, 836, - 86, 831, 86, 837, 86, 86, 839, 86, 86, 841, + 791, 86, 793, 86, 794, 86, 86, 86, 795, 86, + 86, 802, 86, 798, 800, 796, 86, 86, 86, 86, + 799, 86, 792, 797, 86, 803, 808, 810, 806, 86, + 801, 86, 86, 807, 805, 809, 804, 811, 812, 86, + 86, 86, 813, 86, 86, 86, 814, 819, 821, 815, + 817, 86, 86, 86, 86, 822, 820, 816, 86, 86, + 825, 86, 86, 818, 824, 826, 86, 86, 86, 86, + 832, 86, 829, 86, 827, 828, 86, 834, 835, 86, + 837, 86, 86, 823, 839, 86, 830, 831, 833, 838, + 841, 836, 86, 86, 86, 845, 86, 842, 843, 840, - 86, 86, 86, 847, 86, 842, 838, 86, 848, 86, - 86, 86, 86, 86, 840, 86, 843, 86, 844, 849, - 845, 86, 846, 86, 86, 852, 850, 851, 856, 854, - 855, 86, 853, 86, 86, 857, 858, 861, 86, 86, - 86, 86, 859, 86, 86, 86, 870, 86, 86, 868, - 860, 86, 871, 86, 86, 863, 862, 86, 864, 865, - 866, 869, 867, 86, 86, 872, 86, 86, 874, 876, - 877, 86, 873, 86, 86, 86, 86, 875, 880, 881, - 879, 883, 882, 86, 86, 878, 86, 86, 884, 86, - 86, 885, 169, 886, 86, 86, 887, 891, 888, 889, + 846, 86, 86, 847, 86, 86, 849, 851, 844, 86, + 86, 86, 86, 850, 86, 857, 86, 848, 86, 86, + 858, 86, 86, 86, 86, 86, 86, 852, 853, 854, + 866, 855, 859, 860, 856, 86, 86, 861, 863, 86, + 865, 86, 862, 86, 86, 869, 86, 864, 871, 86, + 86, 86, 86, 867, 86, 868, 86, 880, 86, 878, + 870, 86, 86, 86, 872, 873, 881, 86, 874, 875, + 876, 877, 879, 86, 86, 882, 86, 86, 884, 886, + 86, 86, 883, 86, 86, 86, 86, 885, 890, 891, + 892, 893, 887, 889, 86, 86, 888, 86, 86, 894, - 86, 890, 86, 892, 895, 86, 893, 86, 894, 86, - 899, 86, 86, 86, 900, 902, 86, 903, 86, 86, - 896, 897, 901, 906, 86, 86, 86, 904, 86, 86, - 898, 86, 908, 912, 86, 86, 86, 909, 905, 86, - 86, 86, 913, 914, 907, 86, 86, 86, 86, 911, - 86, 910, 86, 915, 928, 86, 927, 86, 929, 930, - 925, 917, 167, 926, 86, 916, 86, 86, 918, 937, - 86, 919, 86, 931, 932, 920, 86, 933, 921, 86, - 934, 86, 936, 935, 939, 922, 923, 938, 924, 86, - 86, 86, 940, 941, 947, 942, 86, 86, 943, 86, + 86, 86, 896, 895, 86, 170, 897, 902, 86, 899, + 901, 86, 898, 900, 86, 903, 86, 86, 86, 909, + 86, 86, 904, 905, 86, 910, 912, 86, 86, 86, + 914, 906, 907, 911, 913, 916, 86, 86, 908, 86, + 86, 86, 86, 918, 922, 86, 86, 915, 86, 919, + 86, 86, 86, 923, 86, 924, 917, 86, 86, 86, + 921, 86, 86, 942, 925, 920, 86, 937, 938, 935, + 940, 86, 927, 86, 936, 86, 926, 86, 161, 928, + 86, 939, 929, 86, 943, 965, 930, 941, 86, 931, + 86, 944, 86, 948, 949, 86, 932, 933, 946, 934, - 86, 950, 948, 944, 952, 86, 86, 86, 86, 945, - 946, 954, 86, 959, 949, 958, 86, 962, 960, 86, - 953, 86, 956, 951, 955, 86, 86, 86, 961, 86, - 965, 964, 966, 957, 86, 86, 86, 967, 969, 86, - 963, 968, 86, 86, 970, 86, 86, 971, 86, 973, - 86, 86, 977, 86, 86, 86, 86, 980, 976, 86, - 86, 86, 972, 1030, 984, 165, 974, 975, 978, 979, - 86, 982, 981, 86, 986, 86, 86, 990, 985, 987, - 991, 989, 983, 86, 988, 86, 86, 86, 993, 86, - 86, 86, 992, 994, 86, 995, 997, 86, 86, 996, + 86, 86, 947, 945, 86, 950, 951, 86, 952, 86, + 86, 953, 957, 959, 960, 86, 954, 86, 86, 962, + 86, 86, 955, 956, 86, 961, 964, 968, 969, 86, + 958, 86, 966, 970, 86, 963, 971, 86, 972, 86, + 86, 975, 86, 967, 974, 86, 973, 976, 977, 86, + 979, 86, 86, 86, 978, 980, 86, 86, 86, 86, + 86, 983, 86, 987, 981, 86, 86, 986, 86, 86, + 990, 86, 86, 996, 86, 982, 1007, 86, 984, 985, + 988, 994, 989, 992, 991, 86, 997, 86, 86, 1000, + 995, 998, 86, 999, 993, 86, 1001, 86, 86, 1003, - 998, 86, 86, 86, 86, 86, 999, 86, 1001, 1004, - 86, 1002, 1008, 86, 1007, 86, 1005, 86, 86, 86, - 1000, 1006, 86, 86, 1003, 86, 86, 86, 1010, 86, - 1013, 1011, 1015, 86, 86, 1014, 1009, 86, 1016, 86, - 86, 1017, 86, 1021, 86, 1023, 1019, 1012, 1022, 86, - 86, 86, 1020, 86, 86, 1024, 1028, 1031, 86, 1018, - 1026, 1025, 86, 86, 1029, 86, 86, 1033, 86, 86, - 86, 86, 86, 86, 1027, 1032, 1041, 86, 86, 1039, - 86, 1044, 1294, 86, 1034, 1035, 1036, 86, 86, 1038, - 1037, 1042, 1045, 86, 1040, 86, 1043, 1047, 86, 86, + 1004, 86, 86, 1002, 86, 86, 86, 1005, 1008, 86, + 86, 86, 1006, 86, 1009, 86, 1011, 86, 86, 86, + 1012, 1016, 86, 86, 1019, 86, 86, 1018, 1010, 1020, + 86, 86, 1017, 1013, 1014, 86, 1015, 86, 86, 1022, + 1023, 86, 86, 1025, 86, 1021, 86, 1027, 86, 86, + 1026, 1028, 86, 86, 1033, 86, 1029, 86, 1031, 1034, + 86, 1024, 86, 1035, 86, 1032, 1038, 86, 1036, 86, + 1044, 86, 1041, 1030, 1037, 86, 86, 1043, 86, 86, + 1042, 86, 86, 1046, 86, 1040, 86, 86, 1039, 86, + 86, 86, 86, 1057, 1054, 1052, 86, 1045, 86, 86, - 1046, 1049, 1052, 86, 1051, 86, 86, 1048, 86, 86, - 86, 86, 1050, 86, 86, 1054, 1061, 1056, 1062, 86, - 1064, 86, 86, 86, 86, 1053, 86, 86, 1055, 86, - 1057, 1069, 1059, 1058, 1060, 1063, 1067, 1065, 1068, 1066, - 86, 86, 86, 86, 86, 1076, 1073, 86, 1070, 86, - 1075, 86, 1071, 86, 86, 1080, 1077, 86, 1082, 86, - 1072, 86, 86, 86, 1074, 1078, 1085, 1079, 1084, 86, - 86, 1086, 169, 86, 1088, 86, 1089, 1081, 86, 86, - 1083, 86, 86, 86, 1087, 86, 1092, 86, 86, 86, - 1105, 86, 86, 1108, 86, 1090, 1106, 1095, 1091, 86, + 1047, 1048, 1049, 86, 86, 1058, 1050, 1051, 86, 1055, + 1059, 1056, 1053, 86, 1062, 86, 1065, 86, 1061, 86, + 1064, 86, 1060, 86, 86, 86, 86, 1063, 86, 86, + 1067, 1074, 1069, 86, 1075, 1077, 86, 86, 86, 1066, + 86, 86, 86, 1068, 86, 1070, 1082, 1072, 1071, 1073, + 1076, 1080, 1078, 1079, 1081, 86, 86, 86, 86, 86, + 86, 1086, 1089, 1083, 86, 1088, 86, 1084, 86, 1090, + 86, 86, 1093, 1095, 86, 1085, 86, 1091, 86, 1087, + 86, 1098, 86, 1092, 86, 1097, 1099, 170, 1101, 86, + 1102, 1094, 86, 86, 1096, 86, 86, 1100, 86, 86, - 1096, 1093, 86, 1094, 86, 1097, 1107, 86, 1110, 1098, - 86, 86, 1113, 1099, 86, 1100, 86, 1111, 86, 1101, - 86, 1102, 1119, 86, 1109, 1112, 1103, 1115, 1114, 1117, - 1118, 1104, 1116, 86, 1120, 86, 86, 86, 1121, 86, - 1122, 86, 1125, 86, 86, 86, 86, 86, 1124, 1131, - 1123, 1135, 1130, 1126, 1129, 1132, 86, 1128, 1133, 1134, - 86, 86, 1127, 1136, 86, 86, 1138, 86, 86, 86, - 86, 86, 86, 86, 1151, 1148, 86, 86, 86, 86, - 1147, 1152, 86, 1150, 86, 1139, 1149, 1137, 86, 1140, - 1153, 1154, 86, 1158, 1141, 86, 1142, 1155, 1156, 86, + 1105, 86, 86, 86, 86, 1118, 86, 86, 86, 86, + 1119, 86, 1109, 1104, 1103, 1106, 1108, 1121, 86, 86, + 1278, 1110, 1107, 1120, 1111, 86, 1124, 86, 1112, 86, + 1113, 1123, 1122, 1125, 1114, 86, 1115, 86, 86, 1128, + 1126, 1116, 86, 1127, 1129, 86, 1117, 1130, 86, 86, + 86, 1131, 1132, 86, 86, 1135, 86, 1134, 1138, 86, + 86, 1137, 86, 86, 1133, 1136, 86, 1144, 1139, 1142, + 1145, 86, 1143, 1141, 1146, 86, 86, 1140, 1147, 86, + 86, 1148, 1149, 86, 86, 1150, 86, 86, 86, 86, + 1151, 86, 1161, 1152, 86, 1153, 1160, 1162, 86, 1164, - 1157, 86, 1143, 86, 1160, 86, 1159, 1144, 1145, 1164, - 86, 86, 86, 1161, 1146, 1165, 1167, 86, 86, 1162, - 1168, 86, 86, 1163, 1172, 86, 1170, 86, 86, 86, - 86, 86, 1166, 1173, 86, 1178, 86, 1169, 1171, 86, - 1175, 86, 86, 1176, 86, 1177, 1174, 1181, 1179, 86, - 86, 86, 86, 86, 86, 1180, 86, 86, 86, 86, - 1186, 1187, 1188, 1183, 1182, 1185, 1190, 86, 86, 86, - 1184, 1189, 86, 1191, 86, 86, 164, 1196, 1193, 86, - 1198, 1192, 86, 1195, 1199, 86, 86, 1194, 1203, 1197, - 1200, 1201, 86, 1202, 86, 86, 1206, 86, 86, 1204, + 1154, 1163, 1155, 86, 86, 1167, 86, 86, 1156, 1165, + 1171, 1166, 86, 1157, 1158, 86, 86, 86, 86, 86, + 1159, 86, 1172, 1177, 86, 1168, 1169, 1173, 1170, 86, + 86, 1180, 86, 1178, 86, 1175, 1174, 86, 86, 1176, + 86, 1181, 1185, 86, 86, 1183, 86, 1184, 86, 1186, + 1179, 1182, 86, 86, 1191, 1188, 86, 86, 86, 86, + 86, 1189, 1187, 1194, 86, 1192, 86, 86, 86, 1190, + 178, 86, 86, 86, 86, 86, 1193, 1201, 1196, 1195, + 1198, 1199, 1200, 1203, 1202, 86, 1197, 86, 86, 86, + 1204, 86, 86, 86, 86, 1206, 86, 86, 1211, 1205, - 1210, 1207, 86, 86, 1208, 86, 86, 1209, 86, 86, - 86, 1205, 1211, 1217, 86, 1219, 86, 86, 86, 86, - 1223, 86, 1213, 1215, 1216, 1212, 1214, 86, 86, 86, - 86, 1220, 1221, 86, 1218, 1225, 86, 86, 1226, 1224, - 86, 1228, 1222, 86, 86, 1227, 1231, 86, 1229, 1230, - 1234, 1235, 86, 1233, 86, 86, 86, 86, 86, 86, - 1232, 1238, 86, 1236, 86, 1239, 86, 86, 1245, 1243, - 1246, 86, 86, 1237, 86, 1240, 86, 1247, 1241, 86, - 1244, 86, 1242, 1250, 1248, 86, 1249, 1253, 86, 86, - 86, 1252, 86, 86, 86, 1254, 1255, 86, 86, 86, + 86, 1212, 1208, 1214, 86, 1213, 1207, 1210, 1216, 1209, + 86, 1215, 1218, 1217, 86, 86, 86, 1221, 86, 86, + 86, 1223, 1222, 86, 1224, 86, 86, 86, 1219, 1225, + 86, 86, 1220, 1226, 1232, 86, 1234, 86, 1227, 86, + 86, 1228, 86, 1230, 1236, 1229, 1231, 86, 86, 86, + 86, 1238, 1235, 86, 86, 1233, 86, 86, 1240, 1241, + 86, 1237, 1244, 86, 86, 1243, 1242, 86, 1245, 86, + 1239, 1250, 1246, 1247, 86, 1249, 86, 86, 1251, 86, + 1248, 86, 86, 1252, 1254, 86, 1255, 86, 86, 86, + 86, 1261, 1259, 1262, 1253, 86, 86, 86, 86, 86, - 86, 1256, 1260, 1251, 86, 86, 1258, 1257, 1261, 1263, - 86, 1262, 86, 1259, 86, 1267, 1268, 86, 86, 1271, - 86, 86, 86, 1270, 1265, 86, 86, 86, 1264, 86, - 1275, 86, 1269, 1266, 86, 86, 86, 86, 169, 1274, - 1273, 1281, 86, 86, 1272, 1277, 86, 1276, 86, 86, - 1278, 86, 86, 1286, 86, 86, 1280, 1283, 1282, 1301, - 1279, 1284, 1290, 1285, 1287, 1288, 86, 1291, 86, 1289, - 1292, 86, 86, 86, 86, 86, 1293, 1295, 86, 86, - 86, 86, 86, 1298, 1304, 86, 86, 86, 1296, 1297, - 86, 86, 86, 86, 1299, 1442, 1302, 86, 1308, 1300, + 1256, 1263, 86, 1260, 86, 1266, 1257, 1264, 1258, 1265, + 1269, 86, 86, 1267, 1271, 86, 86, 1270, 1268, 86, + 86, 86, 86, 86, 86, 86, 1276, 1277, 1272, 1273, + 1279, 86, 86, 86, 1283, 86, 1284, 86, 86, 1274, + 86, 1275, 86, 1286, 1281, 1287, 86, 86, 86, 1280, + 1285, 1291, 1282, 86, 86, 86, 1288, 86, 86, 86, + 1290, 1289, 170, 1293, 1297, 86, 86, 86, 86, 86, + 86, 1292, 86, 1302, 1304, 86, 1294, 86, 1296, 1301, + 1299, 1303, 1298, 1295, 1300, 1306, 1307, 86, 86, 86, + 1305, 86, 86, 1308, 1309, 86, 86, 1310, 86, 86, - 1305, 1303, 1310, 86, 86, 1306, 1307, 1314, 86, 1315, - 1309, 1311, 86, 1312, 1317, 86, 1313, 1316, 86, 86, - 86, 86, 1322, 1320, 86, 1318, 86, 86, 86, 1324, - 86, 86, 86, 1319, 86, 1323, 1327, 1331, 86, 1329, - 1321, 86, 1326, 86, 86, 86, 1325, 86, 1328, 1332, - 1333, 1330, 1335, 86, 86, 86, 86, 1336, 1338, 86, - 86, 1334, 86, 1337, 86, 86, 86, 1343, 86, 86, - 1339, 1341, 86, 86, 86, 1340, 1344, 1342, 1348, 86, - 86, 86, 86, 86, 1345, 86, 1347, 1346, 1349, 1350, - 1352, 86, 86, 1360, 1351, 1353, 86, 1355, 1354, 86, + 86, 1311, 1312, 86, 1314, 86, 1316, 86, 1320, 86, + 1317, 86, 1313, 86, 86, 1315, 86, 86, 86, 86, + 1318, 86, 1324, 86, 1326, 1321, 1319, 1330, 1334, 1323, + 86, 1322, 1335, 1327, 86, 1328, 86, 1325, 1329, 86, + 1331, 1332, 1333, 86, 86, 86, 86, 1336, 86, 1337, + 86, 1340, 1338, 86, 1339, 86, 86, 86, 1343, 1347, + 86, 86, 1342, 86, 86, 86, 1348, 1341, 1345, 1344, + 1349, 86, 86, 86, 86, 1346, 1351, 1352, 86, 1354, + 86, 1353, 86, 1350, 86, 86, 86, 86, 86, 1355, + 86, 86, 1357, 1359, 1360, 86, 1364, 1356, 86, 1358, - 86, 1356, 86, 86, 86, 86, 1358, 86, 1357, 162, - 1363, 1361, 1359, 86, 1362, 86, 1368, 1367, 1366, 86, - 1365, 1369, 86, 1364, 86, 1373, 1370, 86, 86, 1371, - 1383, 86, 1372, 86, 1374, 1405, 86, 1382, 1375, 86, - 1381, 1376, 1377, 86, 1384, 86, 1378, 1387, 1386, 86, - 1385, 86, 1379, 86, 1388, 86, 1380, 86, 1390, 86, - 1389, 86, 1392, 86, 86, 86, 1393, 86, 1394, 86, - 86, 86, 1391, 160, 1397, 1399, 86, 86, 1402, 1395, - 1403, 1404, 1396, 1400, 86, 86, 86, 1398, 1414, 1401, - 86, 1411, 1412, 1413, 1406, 86, 86, 86, 86, 1407, + 86, 86, 86, 86, 1361, 86, 1363, 86, 1362, 1368, + 1365, 1366, 86, 86, 1376, 1371, 1369, 86, 1367, 86, + 86, 1370, 86, 86, 1372, 86, 86, 1374, 86, 86, + 1379, 1378, 1373, 1375, 1377, 86, 86, 86, 1383, 1384, + 1382, 1381, 1388, 1380, 1385, 86, 1398, 1386, 86, 1389, + 1387, 86, 1390, 86, 86, 1399, 1391, 86, 1400, 1392, + 1393, 86, 86, 1402, 1394, 1403, 1397, 1401, 86, 86, + 1395, 86, 86, 1404, 1396, 86, 1406, 1405, 86, 1408, + 86, 86, 86, 1409, 86, 1410, 86, 86, 86, 86, + 1407, 1418, 1415, 1413, 86, 176, 86, 86, 1419, 1420, - 1415, 1408, 86, 1409, 1419, 1410, 86, 86, 86, 1420, - 86, 1418, 1416, 1423, 86, 1421, 1417, 86, 86, 86, - 86, 1429, 86, 1430, 86, 86, 1425, 86, 1424, 1422, - 86, 86, 1431, 86, 1428, 1433, 86, 1426, 1427, 1432, - 86, 86, 1435, 1439, 86, 1434, 1438, 86, 1441, 86, - 86, 86, 86, 1443, 1436, 86, 1444, 1447, 86, 86, - 1449, 86, 1440, 86, 1446, 1437, 86, 1450, 1451, 86, - 86, 1445, 1454, 86, 86, 86, 86, 86, 1456, 1448, - 86, 86, 1458, 1460, 86, 86, 86, 86, 1462, 1459, - 1452, 1453, 1464, 86, 1455, 86, 1457, 86, 86, 86, + 1412, 1411, 1416, 86, 86, 86, 1414, 1417, 86, 1421, + 1428, 86, 1422, 1427, 86, 1429, 86, 1423, 86, 1424, + 1433, 1425, 1432, 1426, 1430, 1431, 86, 86, 86, 1437, + 86, 86, 86, 1434, 1438, 86, 86, 1436, 86, 1439, + 86, 1441, 86, 86, 1435, 1447, 1442, 1443, 86, 1448, + 86, 86, 86, 1440, 86, 86, 86, 1446, 1449, 1444, + 1451, 1445, 86, 86, 86, 1453, 1450, 86, 1452, 1454, + 1458, 86, 1457, 86, 1460, 86, 86, 86, 1461, 86, + 1462, 1455, 86, 86, 1463, 1466, 86, 86, 1459, 1456, + 1468, 86, 1465, 86, 1469, 86, 86, 86, 1473, 86, - 1466, 1463, 1461, 1468, 1470, 1467, 86, 1465, 86, 1469, - 86, 1471, 86, 1472, 86, 86, 86, 1477, 1478, 1480, - 1474, 86, 1475, 86, 86, 86, 1479, 86, 86, 1476, - 1473, 86, 1484, 86, 86, 169, 1481, 86, 86, 1489, - 1490, 86, 1483, 86, 86, 86, 86, 1482, 86, 1491, - 1486, 86, 1492, 1497, 1485, 86, 86, 1487, 86, 86, - 1500, 1488, 1493, 86, 1495, 86, 86, 86, 1494, 1498, - 86, 1496, 1504, 86, 1499, 1505, 86, 86, 1507, 86, - 1509, 86, 86, 1501, 1503, 1510, 86, 86, 86, 1513, - 1502, 1512, 86, 1506, 86, 86, 1508, 1511, 86, 1518, + 1470, 1464, 86, 86, 86, 86, 1475, 1467, 86, 175, + 1477, 86, 86, 86, 1479, 86, 1481, 1471, 1472, 86, + 1478, 86, 1474, 86, 1476, 86, 1480, 86, 1483, 1486, + 1482, 86, 1485, 1484, 86, 86, 1487, 1488, 86, 1490, + 1489, 86, 86, 1492, 86, 86, 1491, 1496, 1493, 1497, + 1499, 1494, 86, 86, 86, 86, 86, 1498, 1495, 86, + 86, 1503, 86, 1500, 86, 170, 86, 86, 1508, 1509, + 86, 1502, 86, 1511, 86, 86, 1510, 86, 1501, 86, + 1505, 86, 86, 86, 1504, 86, 1506, 86, 86, 1519, + 1507, 1512, 1514, 86, 1516, 86, 86, 1513, 86, 1517, - 1521, 1514, 1519, 1515, 1520, 86, 1523, 1516, 86, 86, - 1517, 86, 86, 1524, 86, 1526, 86, 86, 86, 1522, - 1527, 86, 1525, 1531, 86, 86, 86, 1528, 86, 1532, - 86, 1535, 86, 86, 1530, 1533, 86, 1540, 86, 86, - 1529, 86, 1541, 1544, 1537, 1534, 86, 86, 1536, 86, - 1538, 1539, 86, 86, 86, 86, 86, 1542, 1545, 86, - 1543, 1551, 86, 86, 1553, 86, 1546, 1547, 86, 1548, - 1549, 1550, 1552, 86, 1556, 86, 86, 1555, 1557, 1561, - 1554, 86, 1560, 1562, 1558, 86, 86, 1564, 86, 86, - 86, 86, 86, 86, 86, 1569, 1559, 1565, 1568, 1570, + 86, 1515, 86, 1520, 86, 1518, 86, 1523, 1524, 86, + 1528, 1526, 86, 1522, 1533, 1529, 86, 1527, 1521, 1525, + 86, 1531, 1530, 86, 86, 86, 86, 86, 1532, 1540, + 1537, 86, 86, 1538, 1542, 1539, 1543, 86, 1534, 1535, + 86, 1545, 1536, 86, 86, 1541, 1546, 86, 1544, 86, + 86, 86, 86, 86, 86, 1550, 1551, 86, 86, 1554, + 86, 86, 1547, 86, 1559, 86, 86, 1549, 86, 1560, + 1548, 1552, 1553, 86, 1556, 1563, 1557, 1555, 86, 1558, + 86, 86, 86, 86, 1561, 1564, 86, 1562, 86, 1571, + 86, 86, 86, 86, 1566, 1570, 1572, 1565, 1567, 86, - 1563, 86, 1571, 86, 1572, 86, 1566, 86, 86, 86, - 1573, 1574, 86, 1567, 86, 86, 1576, 86, 1575, 86, - 86, 86, 86, 1582, 86, 86, 1581, 86, 86, 1578, - 1585, 86, 1588, 1577, 1579, 1584, 1580, 1589, 86, 86, - 1590, 86, 1586, 86, 1583, 1591, 86, 86, 1593, 86, - 1587, 86, 86, 86, 86, 1601, 1597, 86, 1596, 1592, - 1594, 86, 1595, 86, 1604, 86, 86, 86, 1602, 86, - 86, 1598, 1600, 1599, 1607, 1606, 86, 86, 86, 86, - 86, 86, 86, 1603, 1605, 1608, 1609, 86, 1615, 86, - 86, 3295, 1612, 1616, 1622, 1610, 1611, 1614, 1618, 86, + 1575, 1568, 1574, 86, 86, 86, 1580, 1569, 86, 1579, + 1573, 1581, 86, 1577, 86, 1583, 86, 86, 1576, 86, + 86, 86, 86, 1588, 1589, 1578, 1584, 1587, 1582, 86, + 86, 1590, 86, 1591, 86, 1585, 86, 86, 86, 1592, + 1593, 86, 1586, 86, 86, 1595, 86, 1594, 86, 86, + 86, 86, 1596, 86, 1601, 86, 1597, 1600, 86, 1603, + 1598, 86, 1607, 1599, 86, 1609, 1604, 1608, 86, 1602, + 1610, 86, 1605, 86, 1606, 86, 1612, 86, 86, 86, + 86, 86, 86, 1620, 1611, 1616, 86, 1615, 86, 86, + 86, 1621, 1613, 1623, 86, 86, 1614, 86, 1617, 86, - 1613, 1617, 1619, 86, 86, 86, 86, 86, 86, 1620, - 1621, 86, 86, 1625, 1623, 86, 86, 1626, 86, 86, - 1624, 1629, 1633, 86, 1634, 1635, 1628, 1630, 86, 86, - 1627, 86, 86, 86, 1632, 1631, 86, 1638, 86, 86, - 1639, 86, 1637, 1636, 1644, 1640, 1645, 86, 86, 86, - 86, 86, 86, 1641, 86, 1649, 1642, 1648, 1650, 1643, - 1652, 86, 86, 86, 86, 1653, 1646, 1654, 86, 86, - 1647, 1651, 86, 86, 86, 1657, 86, 1660, 86, 1655, - 86, 86, 86, 1659, 86, 1656, 86, 1664, 86, 1666, - 86, 86, 86, 1658, 86, 1661, 86, 1672, 1665, 1662, + 1619, 1618, 1626, 1625, 86, 86, 86, 86, 86, 1624, + 86, 86, 86, 1627, 1622, 1635, 1632, 86, 1634, 86, + 86, 1631, 86, 1628, 1629, 1630, 1633, 1639, 86, 1636, + 1640, 86, 1638, 86, 86, 1643, 86, 1642, 1637, 1641, + 86, 86, 86, 1646, 86, 1644, 86, 1647, 86, 86, + 86, 1650, 1656, 1645, 1654, 86, 86, 1651, 86, 86, + 1648, 1655, 1649, 1658, 86, 1653, 86, 86, 1652, 1659, + 1660, 1661, 86, 86, 1657, 86, 86, 1666, 1667, 86, + 86, 86, 86, 86, 1664, 86, 1671, 1670, 1672, 86, + 86, 1663, 1662, 1675, 86, 86, 1665, 86, 1668, 1674, - 1663, 1667, 86, 86, 1668, 1669, 86, 86, 1677, 86, - 86, 1675, 86, 1680, 1671, 86, 1670, 1673, 86, 1678, - 1674, 86, 1676, 86, 86, 169, 86, 1683, 1686, 86, - 1679, 1685, 1682, 86, 86, 86, 86, 86, 86, 1694, - 1681, 1687, 86, 1684, 86, 86, 86, 1695, 1689, 86, - 1692, 1688, 1698, 86, 1690, 1691, 86, 86, 1699, 1702, - 86, 1700, 1693, 86, 1696, 1697, 1701, 1704, 1703, 1706, - 86, 1708, 86, 86, 86, 86, 86, 86, 86, 86, - 1705, 86, 1710, 1711, 1707, 86, 1713, 86, 1714, 86, - 86, 86, 86, 1709, 1718, 1715, 86, 1716, 86, 1719, + 86, 86, 1669, 1676, 86, 86, 86, 86, 1679, 1673, + 86, 1677, 86, 1678, 86, 1681, 86, 1682, 86, 86, + 1688, 1680, 1683, 1686, 86, 86, 1687, 86, 86, 86, + 86, 1684, 86, 1685, 1689, 86, 1694, 86, 86, 86, + 86, 1700, 1690, 1691, 1695, 1697, 1699, 86, 86, 1693, + 1696, 86, 1692, 1698, 86, 1702, 86, 86, 86, 1701, + 1705, 170, 1704, 1707, 1708, 86, 86, 86, 86, 86, + 1703, 86, 86, 1716, 86, 86, 1706, 1709, 86, 1717, + 86, 1711, 86, 1714, 1710, 1720, 86, 1712, 1713, 1721, + 86, 86, 86, 1724, 86, 1718, 1715, 1722, 1719, 1725, - 86, 1712, 86, 86, 1717, 1726, 1723, 1727, 1720, 1724, - 86, 86, 1721, 1728, 86, 86, 1722, 1732, 86, 86, - 1731, 1725, 1733, 1730, 1734, 86, 1735, 1736, 1740, 1729, - 86, 1742, 86, 86, 86, 1737, 86, 1738, 86, 1739, - 86, 86, 86, 86, 86, 1741, 1747, 1746, 1748, 86, - 86, 1750, 86, 86, 86, 1749, 86, 86, 1752, 1743, - 86, 1744, 86, 1745, 1753, 86, 86, 1754, 86, 86, - 86, 86, 1751, 86, 1755, 86, 86, 86, 1764, 1763, - 1756, 86, 1758, 1759, 1760, 86, 1757, 86, 1769, 1761, - 86, 86, 86, 1766, 86, 86, 1765, 1767, 1762, 86, + 1726, 1728, 1723, 86, 1730, 86, 86, 86, 86, 86, + 1727, 86, 86, 86, 1735, 1732, 1733, 1729, 86, 1736, + 86, 86, 86, 86, 86, 1741, 1740, 1731, 86, 86, + 86, 86, 1748, 170, 1737, 86, 1734, 1739, 86, 1738, + 1749, 1743, 86, 86, 86, 1745, 1742, 1750, 1746, 86, + 1744, 1757, 1752, 1758, 1753, 86, 1754, 86, 1755, 86, + 1747, 1756, 86, 1751, 86, 86, 1760, 86, 1761, 1759, + 1762, 86, 86, 86, 86, 86, 86, 1763, 86, 1769, + 1770, 1768, 86, 1772, 1764, 86, 86, 1771, 86, 86, + 86, 1765, 86, 1766, 86, 1767, 86, 1774, 1775, 86, - 1768, 1775, 86, 86, 86, 86, 86, 1771, 86, 1773, - 1770, 1777, 1772, 86, 1779, 86, 1778, 86, 86, 1781, - 1774, 86, 86, 1776, 86, 86, 86, 1784, 86, 1786, - 1780, 86, 1782, 86, 1787, 1783, 1785, 1788, 86, 86, - 1789, 1790, 1793, 1794, 86, 1796, 1791, 1795, 86, 1797, - 86, 86, 86, 1792, 1798, 1799, 86, 1801, 86, 86, - 86, 86, 86, 1800, 1802, 1803, 86, 86, 1812, 86, - 1806, 1804, 86, 1811, 1805, 1808, 1810, 86, 1809, 86, - 86, 1807, 86, 86, 86, 86, 86, 86, 1821, 86, - 1814, 86, 1813, 86, 1825, 86, 1816, 1818, 1815, 1817, + 86, 1776, 86, 86, 86, 86, 86, 86, 1777, 86, + 86, 1773, 1786, 1785, 1778, 86, 1780, 1781, 1782, 86, + 1779, 86, 1791, 1783, 86, 86, 1787, 1788, 86, 86, + 86, 1784, 1790, 1789, 86, 1797, 86, 86, 86, 86, + 86, 1793, 86, 1799, 1792, 86, 1801, 86, 1795, 1794, + 86, 1796, 1800, 86, 1802, 86, 1803, 1798, 86, 86, + 86, 86, 1806, 86, 86, 1808, 86, 1815, 1805, 1809, + 1807, 1804, 1810, 1816, 86, 1811, 1812, 1817, 86, 86, + 86, 1813, 86, 1820, 1819, 1821, 86, 86, 1814, 86, + 86, 1818, 86, 86, 1824, 1822, 86, 1825, 86, 86, - 1823, 86, 86, 86, 1820, 1822, 1824, 86, 1826, 1819, - 86, 1827, 1829, 1830, 1828, 1833, 86, 86, 86, 1839, - 1834, 86, 86, 86, 1831, 86, 86, 1838, 1832, 1842, - 1835, 1843, 1836, 1841, 86, 86, 1844, 86, 86, 86, - 1837, 1840, 86, 1845, 1848, 86, 86, 86, 1850, 1852, - 86, 86, 86, 1847, 1851, 86, 86, 3295, 1846, 1849, - 1853, 86, 86, 86, 1856, 86, 1854, 86, 1862, 86, - 1855, 1857, 1864, 86, 1858, 86, 1859, 1865, 86, 1860, - 86, 1861, 86, 86, 1867, 86, 1866, 1871, 86, 86, - 1863, 1873, 86, 86, 86, 1868, 86, 86, 1869, 1877, + 86, 86, 1828, 1834, 86, 86, 1823, 1833, 1830, 1826, + 1832, 1831, 1827, 86, 86, 86, 1840, 1829, 1836, 86, + 1835, 1841, 86, 86, 86, 86, 86, 86, 1842, 1838, + 86, 1846, 1837, 86, 86, 1839, 1843, 86, 1850, 1849, + 86, 86, 1848, 1847, 1845, 86, 1854, 86, 86, 86, + 1844, 86, 1851, 86, 1852, 1858, 86, 1853, 1855, 86, + 1859, 86, 86, 1860, 1863, 86, 1857, 1869, 1856, 1864, + 1868, 1861, 1867, 1862, 86, 86, 1866, 86, 86, 1870, + 1865, 86, 86, 1874, 86, 86, 1878, 1871, 86, 86, + 86, 86, 86, 1876, 1872, 86, 1873, 1875, 86, 1877, - 86, 1870, 1872, 86, 86, 86, 86, 1879, 86, 1875, - 1880, 1881, 1876, 1882, 1874, 86, 1878, 169, 86, 1887, - 86, 86, 86, 86, 1883, 1891, 86, 1884, 86, 1885, - 86, 86, 86, 1886, 1889, 1893, 86, 86, 86, 1898, - 1888, 86, 1890, 1894, 1892, 86, 86, 86, 1895, 3295, - 1899, 1896, 1901, 1902, 86, 86, 1906, 1897, 1903, 1900, - 1904, 86, 86, 1907, 1908, 86, 86, 1905, 86, 86, - 1910, 86, 86, 86, 1911, 86, 86, 86, 1909, 86, - 86, 86, 1916, 86, 1917, 86, 86, 86, 1921, 1918, - 86, 3295, 1912, 1914, 1915, 1913, 1920, 1919, 86, 1922, + 86, 86, 86, 1879, 86, 86, 1882, 1880, 86, 1883, + 1881, 1888, 86, 86, 1884, 1885, 1890, 1891, 1886, 1887, + 86, 1892, 86, 86, 1893, 86, 86, 1897, 86, 86, + 1899, 1895, 86, 1889, 86, 86, 86, 1903, 86, 86, + 1894, 86, 1898, 86, 86, 1896, 1906, 1905, 86, 1907, + 1901, 86, 86, 1902, 1900, 170, 1908, 1909, 86, 1904, + 1913, 86, 86, 86, 86, 1917, 86, 1911, 86, 86, + 86, 86, 86, 1912, 86, 1910, 1915, 1919, 86, 1924, + 1920, 1914, 1916, 1918, 1921, 86, 86, 86, 1928, 86, + 1922, 168, 86, 1927, 1923, 1929, 1926, 86, 1925, 1930, - 86, 86, 1928, 1925, 86, 1927, 1924, 1929, 86, 1930, - 1926, 86, 1923, 86, 86, 86, 86, 86, 1936, 86, - 1939, 86, 1931, 1932, 1940, 86, 1941, 86, 86, 1934, - 1933, 1937, 86, 1938, 1935, 1943, 86, 86, 1944, 1947, - 86, 1942, 86, 86, 1949, 86, 1948, 86, 1950, 1945, - 86, 1951, 1953, 1946, 1956, 86, 86, 86, 86, 1955, - 86, 1952, 86, 1959, 86, 86, 86, 1958, 86, 86, - 1963, 86, 1954, 1962, 86, 86, 1964, 1965, 86, 86, - 1957, 1960, 86, 86, 1973, 86, 1961, 1966, 1967, 1968, - 86, 1975, 1971, 86, 1969, 86, 1976, 86, 1970, 1972, + 86, 86, 1931, 1933, 1934, 86, 86, 86, 86, 86, + 1932, 86, 86, 1936, 86, 1937, 86, 86, 1935, 86, + 86, 86, 1942, 86, 1943, 86, 86, 1938, 86, 1944, + 1939, 1947, 1940, 1945, 1941, 86, 86, 1948, 1946, 86, + 1951, 1953, 1955, 86, 86, 1950, 1956, 1952, 86, 86, + 1949, 86, 86, 86, 1954, 86, 86, 1962, 86, 1965, + 1966, 86, 1967, 86, 86, 1957, 86, 1958, 1959, 1960, + 1963, 1961, 1964, 1969, 86, 86, 1970, 86, 1973, 86, + 1975, 86, 86, 1977, 1968, 1974, 86, 1971, 86, 86, + 1979, 1976, 86, 86, 86, 86, 86, 1981, 1972, 86, - 1978, 86, 1974, 1979, 86, 1982, 1980, 1977, 86, 86, - 86, 86, 1986, 86, 86, 86, 1988, 1983, 86, 1981, - 86, 86, 1991, 1992, 86, 86, 1994, 86, 86, 1984, - 86, 1985, 86, 86, 2000, 86, 86, 1999, 1989, 1996, - 1987, 1997, 1990, 86, 86, 1993, 86, 86, 86, 86, - 2006, 86, 86, 1995, 1998, 2003, 2004, 2001, 86, 2002, - 2010, 86, 86, 2009, 2013, 2014, 86, 86, 2008, 2012, - 86, 86, 2005, 2015, 86, 86, 2017, 2007, 86, 86, - 2016, 2011, 86, 86, 86, 86, 2021, 86, 2024, 2025, - 2026, 2020, 86, 86, 86, 86, 86, 86, 2018, 86, + 1978, 1982, 86, 86, 1984, 1985, 86, 86, 86, 1989, + 1986, 86, 1988, 1983, 1991, 86, 1990, 1980, 86, 86, + 86, 86, 86, 166, 1987, 1999, 86, 1992, 1993, 1994, + 2001, 86, 86, 86, 1995, 2002, 86, 1997, 1996, 86, + 2003, 1998, 2000, 86, 2006, 2005, 2008, 2004, 86, 86, + 86, 86, 86, 86, 2007, 2012, 86, 2009, 86, 2014, + 86, 86, 2017, 2018, 86, 86, 2020, 86, 86, 2010, + 86, 2011, 86, 2015, 86, 2026, 86, 2013, 2025, 2022, + 86, 2023, 2016, 86, 86, 2019, 86, 86, 86, 86, + 2032, 86, 86, 2021, 2029, 2024, 2036, 2030, 2028, 86, - 86, 2019, 2022, 2029, 86, 2034, 86, 86, 2028, 2033, - 86, 2023, 2027, 86, 2031, 86, 2035, 2038, 86, 2030, - 86, 2039, 2032, 2041, 86, 2036, 2037, 2040, 86, 2045, - 86, 2043, 2042, 86, 86, 86, 2044, 86, 86, 86, - 2049, 2052, 86, 86, 86, 2055, 86, 86, 2047, 2054, - 86, 2056, 2058, 86, 2046, 86, 2048, 2053, 2050, 2051, - 86, 2062, 86, 86, 2057, 86, 2059, 2063, 86, 2064, - 2066, 2060, 2067, 2061, 2065, 86, 86, 86, 86, 86, - 2071, 86, 2069, 86, 86, 86, 86, 2073, 2076, 2068, - 2075, 2070, 2078, 2072, 86, 169, 2074, 86, 86, 86, + 86, 2027, 86, 86, 2035, 2039, 86, 86, 2034, 2040, + 2038, 86, 2031, 2042, 2043, 86, 86, 2033, 86, 86, + 2037, 2044, 86, 86, 86, 2041, 86, 2045, 86, 2049, + 86, 86, 2052, 2053, 2054, 2048, 86, 86, 86, 86, + 86, 86, 2046, 2047, 86, 2057, 2050, 86, 2062, 86, + 86, 2056, 2061, 86, 86, 86, 2051, 2055, 2059, 2066, + 86, 2058, 86, 2067, 86, 86, 2060, 86, 2064, 2063, + 2068, 2070, 86, 2065, 2069, 86, 2074, 86, 2072, 2071, + 86, 2075, 86, 2073, 86, 86, 86, 2081, 86, 2078, + 86, 2084, 86, 86, 2076, 2083, 86, 2085, 86, 86, - 2079, 86, 86, 86, 86, 2084, 86, 2077, 2083, 2080, - 2111, 2081, 86, 2085, 2086, 86, 2087, 86, 86, 2089, - 2082, 86, 86, 2091, 2088, 86, 86, 2090, 2092, 86, - 86, 86, 86, 2095, 2094, 2093, 86, 2097, 86, 86, - 86, 2101, 86, 2096, 2098, 2100, 86, 86, 2102, 86, - 2099, 2103, 2104, 86, 2106, 86, 2105, 86, 86, 86, - 86, 2113, 86, 86, 86, 2112, 2108, 86, 86, 2107, - 86, 86, 2115, 86, 2118, 86, 2109, 86, 2110, 86, - 2114, 3295, 2116, 86, 2117, 2119, 2120, 2125, 2121, 86, - 2123, 2122, 2124, 86, 86, 2129, 86, 86, 2126, 2127, + 86, 2077, 2086, 2082, 86, 2079, 2080, 86, 2087, 2091, + 86, 2088, 2092, 86, 2093, 2095, 2089, 2096, 86, 2094, + 86, 86, 86, 86, 2090, 2100, 86, 2098, 86, 86, + 2099, 86, 2102, 2097, 86, 86, 2105, 2107, 2101, 170, + 86, 2103, 86, 86, 2108, 86, 86, 86, 86, 86, + 2113, 86, 2109, 2112, 86, 2114, 2120, 2106, 2110, 2104, + 2115, 86, 2116, 86, 2111, 2118, 86, 86, 86, 2117, + 86, 86, 2119, 2121, 86, 2123, 86, 2122, 86, 2124, + 86, 2126, 86, 86, 2130, 86, 2125, 86, 2129, 86, + 2127, 86, 86, 86, 2128, 86, 2131, 2132, 2133, 86, - 2130, 86, 86, 2135, 86, 86, 2128, 86, 86, 86, - 86, 2137, 86, 3295, 2138, 2139, 86, 2131, 2132, 2133, - 86, 2134, 2136, 2141, 86, 86, 2142, 86, 2140, 2145, - 86, 2143, 86, 2144, 86, 86, 86, 2146, 86, 2149, - 86, 86, 86, 2150, 86, 86, 86, 86, 86, 86, - 3295, 86, 86, 2152, 2147, 86, 2148, 2153, 2155, 2154, - 86, 2151, 2157, 2162, 2163, 86, 2158, 86, 2156, 2160, - 2164, 2161, 2167, 86, 86, 2165, 2166, 86, 86, 2159, - 2170, 86, 2169, 86, 86, 86, 86, 86, 2172, 86, - 86, 2173, 2178, 86, 2168, 2174, 2176, 86, 86, 2171, + 2135, 86, 2134, 86, 2137, 86, 2142, 86, 86, 2136, + 2139, 2140, 86, 2141, 86, 86, 86, 86, 2147, 86, + 86, 2138, 86, 2143, 2144, 86, 2152, 86, 86, 2148, + 2146, 2150, 2145, 86, 86, 86, 2153, 2149, 86, 2156, + 2151, 2158, 86, 86, 86, 2154, 2159, 86, 2157, 2155, + 86, 2164, 86, 86, 2160, 86, 2166, 86, 165, 86, + 2161, 2167, 2162, 86, 2163, 2168, 86, 2170, 86, 2165, + 86, 2169, 86, 2171, 86, 2174, 2172, 2175, 86, 86, + 2173, 86, 86, 2178, 86, 86, 86, 86, 86, 86, + 86, 86, 86, 2179, 86, 86, 2192, 86, 2181, 2177, - 2180, 2177, 86, 2175, 2182, 86, 86, 86, 86, 2185, - 86, 2181, 2179, 2184, 86, 2186, 86, 2190, 86, 2187, - 86, 86, 86, 86, 2188, 2191, 86, 86, 2183, 2193, - 86, 2192, 2196, 86, 86, 2197, 2189, 2200, 86, 86, - 2195, 2194, 2198, 86, 2201, 86, 86, 2202, 2206, 86, - 2199, 86, 86, 2208, 2204, 86, 2203, 86, 2209, 86, - 86, 86, 2205, 2207, 2210, 2211, 86, 86, 2215, 2217, - 2213, 86, 86, 2214, 2218, 86, 86, 2212, 86, 86, - 2219, 2222, 86, 86, 2220, 86, 86, 2223, 2216, 86, - 2221, 86, 2224, 86, 2226, 2227, 86, 86, 86, 86, + 2176, 2182, 2183, 2184, 86, 2186, 2180, 2191, 86, 86, + 2187, 86, 2189, 86, 2185, 86, 2195, 2190, 86, 86, + 2196, 86, 163, 2188, 2198, 86, 2193, 2199, 86, 2194, + 86, 2197, 86, 2201, 86, 86, 2200, 2202, 86, 2204, + 2207, 2203, 86, 2205, 86, 86, 2209, 2206, 2211, 86, + 86, 86, 86, 86, 2214, 86, 2213, 86, 2215, 2210, + 2216, 2208, 86, 2219, 86, 86, 86, 2223, 86, 86, + 2220, 86, 2224, 86, 86, 2217, 2212, 2221, 2222, 2225, + 2228, 86, 2218, 86, 2229, 86, 86, 2226, 2227, 2232, + 86, 86, 2234, 86, 86, 86, 2233, 2238, 86, 161, - 86, 86, 86, 2225, 2228, 2231, 2236, 2229, 86, 2230, - 2233, 2234, 2232, 2237, 86, 86, 86, 86, 86, 86, - 2235, 2239, 2241, 2238, 86, 2242, 2247, 86, 86, 2249, - 86, 86, 2243, 2246, 2240, 86, 2244, 2248, 86, 2251, - 86, 169, 2255, 2252, 2245, 2257, 2258, 2256, 86, 86, - 2250, 86, 86, 2253, 86, 86, 86, 2259, 2262, 86, - 86, 2263, 86, 2254, 2260, 2267, 86, 86, 2268, 2261, - 86, 2266, 2271, 2270, 86, 2264, 86, 2273, 86, 2272, - 2274, 86, 2269, 86, 2276, 86, 2265, 86, 2275, 2277, - 86, 86, 86, 86, 86, 2279, 86, 86, 86, 2282, + 2230, 86, 2236, 86, 2240, 86, 2231, 86, 2241, 86, + 2237, 2235, 86, 2239, 2242, 86, 86, 2243, 86, 86, + 2247, 86, 86, 86, 2249, 2245, 86, 2244, 2246, 2250, + 86, 2251, 2252, 2253, 2254, 86, 2248, 86, 86, 2257, + 2255, 86, 2256, 2260, 86, 86, 86, 86, 86, 86, + 2259, 86, 86, 86, 86, 86, 86, 86, 2258, 2269, + 2266, 2264, 2270, 2261, 2262, 2263, 2265, 2267, 86, 86, + 86, 86, 2268, 86, 86, 2272, 2274, 2271, 2278, 2275, + 2280, 86, 86, 2279, 86, 86, 2276, 170, 2273, 2282, + 86, 2277, 86, 2281, 86, 86, 2284, 2288, 2286, 2285, - 86, 86, 2285, 86, 86, 86, 2289, 2278, 2291, 86, - 86, 86, 2280, 2284, 2292, 86, 2287, 86, 2281, 2283, - 2294, 2286, 86, 86, 2288, 86, 2293, 2290, 86, 86, - 86, 2302, 86, 2299, 86, 2297, 86, 86, 86, 86, - 2296, 86, 2300, 2295, 2298, 2303, 86, 86, 2301, 86, - 86, 86, 86, 2304, 3295, 2305, 86, 2317, 86, 2310, - 2308, 2306, 2315, 2307, 2313, 2312, 2314, 2309, 86, 86, - 2311, 2316, 86, 2318, 86, 2319, 86, 86, 86, 86, - 2323, 2324, 86, 86, 86, 2325, 86, 2320, 2326, 86, - 2321, 2322, 2327, 86, 2329, 2330, 86, 2328, 2331, 2332, + 2290, 2283, 2289, 86, 2291, 86, 86, 86, 2292, 2287, + 86, 86, 2295, 86, 86, 2293, 86, 86, 2296, 2300, + 86, 86, 2301, 2299, 86, 86, 3353, 2304, 2302, 86, + 2305, 2294, 2297, 86, 86, 2306, 2307, 86, 86, 86, + 2309, 86, 2303, 2298, 2308, 2310, 86, 86, 86, 2311, + 86, 2312, 86, 86, 86, 2315, 86, 86, 2313, 2318, + 86, 86, 86, 2324, 86, 86, 2322, 86, 2317, 2325, + 86, 86, 86, 2314, 2319, 2316, 2320, 2321, 86, 86, + 86, 86, 2326, 2327, 2323, 2333, 2332, 86, 86, 2329, + 86, 2330, 2335, 86, 86, 86, 2328, 86, 2336, 2331, - 86, 2333, 86, 86, 86, 86, 86, 86, 2334, 2335, - 2339, 86, 2340, 86, 2342, 86, 2336, 86, 2338, 2344, - 86, 86, 86, 2347, 86, 2337, 2341, 2346, 2348, 86, - 86, 86, 86, 86, 86, 2343, 2345, 2354, 86, 2353, - 2350, 86, 2356, 86, 2349, 86, 2351, 86, 86, 86, - 2360, 2359, 2352, 2358, 2362, 86, 86, 86, 86, 86, - 2355, 2366, 86, 2357, 86, 2361, 86, 86, 2371, 86, - 86, 2370, 2364, 86, 86, 2363, 86, 2365, 2373, 2367, - 86, 2369, 2376, 86, 86, 86, 86, 2368, 86, 2372, - 86, 2374, 2378, 86, 2377, 2375, 86, 2383, 2379, 86, + 86, 86, 86, 86, 86, 2334, 86, 2337, 86, 86, + 86, 86, 2349, 2338, 2343, 2348, 2351, 2346, 2339, 2341, + 2347, 2340, 2342, 2345, 2344, 2350, 86, 86, 86, 86, + 2352, 86, 86, 2356, 2357, 86, 86, 86, 2358, 2359, + 86, 2353, 86, 2354, 2355, 86, 2362, 86, 2365, 86, + 2366, 86, 2360, 86, 86, 2361, 2363, 86, 2367, 2364, + 86, 86, 2368, 2372, 86, 2373, 86, 86, 2375, 86, + 86, 2377, 86, 2371, 2369, 86, 86, 2380, 86, 86, + 2370, 2379, 2381, 86, 86, 86, 2374, 86, 2376, 86, + 2378, 86, 86, 2382, 2383, 3353, 2386, 86, 2384, 2387, - 86, 2385, 2384, 2386, 2380, 86, 2381, 86, 86, 86, - 86, 86, 2390, 2391, 86, 86, 2382, 2389, 2387, 2395, - 2388, 86, 86, 2393, 86, 2400, 2397, 2398, 86, 2402, - 86, 86, 2394, 86, 2392, 86, 86, 86, 2403, 2399, - 86, 2396, 2404, 86, 86, 2408, 2407, 86, 86, 2401, - 86, 86, 3295, 2406, 2413, 2405, 2409, 2410, 2412, 2411, - 86, 2414, 86, 86, 86, 2418, 2415, 86, 2419, 86, - 2420, 2416, 2417, 86, 86, 169, 86, 86, 2421, 86, - 2422, 86, 2427, 86, 86, 86, 2429, 86, 86, 86, - 2438, 86, 2425, 2423, 2428, 2424, 2430, 2426, 86, 86, + 86, 2389, 86, 2391, 86, 86, 2385, 2392, 2388, 86, + 2390, 86, 2393, 2395, 86, 86, 86, 86, 2398, 2401, + 86, 86, 86, 86, 2396, 86, 86, 2394, 2400, 2405, + 2397, 86, 2399, 2406, 86, 86, 86, 86, 2404, 86, + 2408, 2402, 2411, 86, 86, 2403, 2412, 86, 86, 86, + 2407, 2409, 2410, 2414, 2413, 86, 2418, 86, 86, 2420, + 86, 86, 2415, 2421, 2424, 86, 2416, 2419, 86, 86, + 86, 86, 86, 2425, 2426, 2417, 2427, 86, 2422, 86, + 2423, 2429, 2431, 86, 86, 86, 2436, 86, 2433, 2434, + 2428, 2438, 86, 2430, 86, 86, 86, 86, 86, 2439, - 2433, 2431, 2432, 86, 2435, 3295, 2434, 86, 2439, 2436, - 2437, 2440, 86, 86, 86, 2443, 2441, 2444, 86, 2442, - 86, 86, 86, 86, 2446, 86, 86, 2445, 86, 2448, - 86, 86, 2452, 2453, 2447, 86, 2450, 86, 2449, 86, - 2455, 86, 86, 86, 86, 2456, 2457, 2458, 86, 2451, - 86, 2454, 86, 2460, 86, 2459, 2464, 86, 2463, 86, - 86, 2461, 2462, 86, 86, 2466, 86, 86, 86, 86, - 2473, 2470, 2465, 86, 2472, 86, 86, 86, 86, 2474, - 2469, 86, 86, 2467, 2468, 86, 2478, 86, 2471, 86, - 86, 2488, 2483, 2475, 2482, 86, 2476, 2477, 86, 2480, + 2435, 2440, 86, 86, 86, 2432, 2443, 86, 2437, 86, + 86, 2442, 86, 2444, 3353, 2449, 2445, 2450, 2446, 2447, + 2441, 86, 2452, 86, 86, 86, 2448, 2455, 2451, 86, + 2454, 86, 2456, 86, 2453, 86, 170, 86, 86, 86, + 2457, 2458, 2463, 86, 86, 86, 86, 86, 2465, 86, + 86, 86, 2470, 2461, 2462, 2459, 86, 2460, 2466, 2464, + 86, 2467, 2468, 2469, 86, 2471, 2474, 86, 2473, 2478, + 2472, 86, 2475, 2476, 86, 86, 2479, 2480, 2477, 86, + 2482, 86, 86, 86, 86, 86, 2484, 86, 2481, 86, + 86, 86, 2488, 86, 2489, 86, 86, 3353, 2483, 2485, - 86, 2481, 86, 2479, 2485, 86, 86, 86, 2484, 2487, - 2489, 86, 2491, 86, 2486, 2493, 86, 2492, 2495, 86, - 86, 86, 2497, 86, 86, 86, 86, 86, 2494, 2496, - 86, 2501, 2490, 86, 86, 86, 2505, 86, 2503, 2499, - 2504, 2507, 2498, 2500, 2506, 86, 86, 86, 86, 2508, - 2509, 86, 86, 86, 2514, 86, 2502, 2511, 86, 86, - 2516, 86, 2519, 86, 86, 2513, 86, 2515, 2510, 86, - 2512, 86, 2520, 86, 2523, 86, 2518, 2517, 2524, 86, - 2525, 86, 86, 2521, 86, 86, 2529, 86, 86, 2522, - 2528, 2527, 86, 86, 86, 86, 2536, 86, 2533, 2526, + 86, 2491, 86, 2486, 2496, 86, 2492, 2490, 2493, 2487, + 2494, 86, 86, 86, 86, 86, 86, 2495, 86, 2499, + 2500, 86, 2497, 2502, 86, 86, 86, 86, 86, 2501, + 86, 2506, 2509, 86, 2498, 2508, 86, 86, 86, 2510, + 2505, 86, 86, 86, 2503, 2504, 86, 2514, 2507, 86, + 86, 2519, 86, 86, 2511, 2518, 2512, 86, 2516, 86, + 2513, 2520, 86, 86, 2515, 2517, 86, 2528, 2521, 86, + 2524, 2522, 86, 2523, 2529, 2525, 86, 2527, 2526, 86, + 86, 2531, 86, 86, 2533, 86, 86, 86, 86, 86, + 86, 2530, 2532, 2537, 86, 86, 2541, 86, 86, 2539, - 2535, 2530, 2531, 86, 2532, 2537, 86, 2538, 86, 2539, - 86, 86, 86, 86, 2534, 2540, 86, 2542, 86, 2543, - 86, 2544, 86, 86, 86, 2545, 2549, 86, 2546, 2541, - 2551, 86, 2552, 86, 86, 86, 86, 86, 86, 2548, - 86, 86, 2547, 2550, 2555, 2553, 2558, 2554, 2556, 86, - 2561, 86, 86, 86, 86, 86, 86, 86, 2557, 86, - 2559, 2562, 86, 169, 86, 2569, 86, 86, 2565, 2560, - 86, 2567, 86, 86, 2564, 2568, 2570, 2571, 3295, 2563, - 2566, 2572, 2575, 86, 86, 86, 2576, 2577, 2573, 2578, - 2579, 2580, 86, 86, 2574, 2581, 86, 86, 2582, 86, + 2540, 2535, 2542, 86, 2534, 2536, 2543, 86, 2544, 86, + 86, 86, 86, 86, 2545, 2547, 2538, 86, 2552, 86, + 2549, 86, 2554, 86, 86, 2550, 86, 86, 86, 86, + 2548, 2546, 2553, 2551, 2557, 86, 86, 86, 2561, 2558, + 86, 2556, 2555, 2562, 86, 2563, 2559, 2560, 86, 86, + 86, 86, 86, 2567, 86, 2566, 86, 86, 2565, 86, + 86, 86, 2571, 2634, 2570, 3353, 2564, 86, 2568, 86, + 2569, 86, 2574, 2575, 86, 2576, 86, 2577, 86, 2572, + 2573, 2578, 86, 2579, 86, 86, 2582, 2580, 86, 2581, + 86, 2583, 86, 86, 86, 2588, 86, 86, 2590, 86, - 2583, 86, 2584, 86, 86, 86, 86, 86, 86, 86, - 86, 2585, 86, 86, 2586, 2595, 86, 86, 86, 2593, - 2588, 86, 86, 2587, 86, 2590, 2589, 86, 2599, 2592, - 2591, 2603, 2594, 2600, 86, 2597, 2596, 86, 2601, 2598, - 2602, 2604, 86, 2606, 86, 86, 2605, 86, 86, 86, - 86, 86, 86, 86, 86, 2609, 2615, 86, 2616, 86, - 86, 86, 86, 2607, 2610, 2608, 2622, 2619, 2611, 2612, - 2613, 2614, 86, 2617, 2620, 86, 2621, 86, 2618, 86, - 2623, 86, 86, 86, 86, 86, 86, 86, 2627, 2631, - 86, 2630, 2632, 86, 2624, 86, 2626, 2633, 2634, 86, + 2584, 2591, 86, 86, 2585, 86, 86, 86, 86, 86, + 2587, 86, 86, 2586, 2592, 2594, 2589, 2593, 2595, 86, + 2600, 86, 86, 86, 2597, 86, 86, 2596, 170, 2598, + 86, 2599, 2601, 86, 2608, 86, 86, 86, 2602, 2604, + 2607, 86, 2603, 86, 2606, 2609, 86, 86, 86, 2605, + 2610, 2615, 2611, 86, 3353, 86, 2619, 86, 2617, 2612, + 2618, 2616, 2620, 86, 86, 2613, 86, 2621, 86, 2614, + 86, 2622, 86, 2623, 86, 86, 86, 86, 86, 2625, + 86, 86, 2624, 86, 86, 86, 2638, 86, 86, 2632, + 2627, 2639, 86, 2626, 86, 2629, 2628, 86, 86, 86, - 2625, 86, 86, 86, 2628, 2629, 86, 86, 86, 2635, - 2636, 86, 2640, 86, 86, 2638, 86, 2644, 2645, 86, - 86, 2637, 2648, 86, 86, 86, 2639, 86, 2641, 2649, - 2642, 2646, 86, 2643, 2652, 86, 2651, 86, 2647, 2650, - 2653, 86, 86, 2657, 86, 86, 86, 86, 2661, 86, - 86, 2660, 2654, 2663, 86, 2659, 86, 2658, 86, 86, - 86, 2655, 2656, 2664, 86, 2665, 2668, 86, 86, 2662, - 86, 2669, 2667, 2671, 86, 2666, 86, 86, 86, 86, - 86, 2672, 2676, 86, 2678, 86, 2670, 2674, 2675, 2673, - 86, 86, 2677, 86, 2681, 2679, 2680, 86, 2682, 86, + 2630, 2631, 86, 2633, 2635, 2636, 2637, 2642, 2640, 2643, + 86, 2644, 2645, 86, 86, 86, 86, 2646, 86, 2641, + 86, 86, 2648, 86, 2654, 86, 2655, 86, 86, 86, + 86, 2649, 2647, 86, 2659, 86, 2650, 2652, 2651, 2658, + 2660, 86, 2653, 2661, 86, 2663, 86, 2657, 2656, 86, + 86, 86, 86, 86, 86, 86, 2666, 2670, 86, 2669, + 2671, 86, 2662, 86, 2665, 2664, 86, 86, 2672, 2673, + 86, 86, 2667, 2668, 86, 86, 2675, 2674, 86, 86, + 2679, 86, 2676, 2677, 86, 2684, 86, 2683, 86, 86, + 2687, 86, 86, 86, 2678, 86, 2690, 86, 2680, 2682, - 86, 86, 86, 86, 86, 2683, 86, 86, 2688, 2685, - 2686, 2689, 2691, 86, 2692, 86, 2687, 86, 2684, 2690, - 2693, 169, 86, 86, 2694, 2696, 2698, 2695, 86, 86, - 2700, 86, 86, 2699, 86, 2703, 86, 2704, 86, 2702, - 86, 2697, 2706, 86, 86, 2708, 2701, 2707, 86, 86, - 2709, 86, 86, 2705, 2710, 2713, 86, 2711, 86, 86, - 2714, 86, 2712, 2715, 86, 86, 86, 86, 2716, 2720, - 2721, 86, 2722, 2718, 86, 86, 86, 86, 86, 2717, - 86, 2724, 2725, 2723, 86, 86, 86, 2719, 2726, 2728, - 2727, 2729, 86, 86, 86, 86, 2734, 86, 2730, 86, + 2681, 86, 86, 2685, 2688, 2692, 86, 2686, 2693, 86, + 2689, 86, 2691, 86, 86, 2694, 2698, 86, 86, 86, + 86, 2695, 86, 2701, 2702, 86, 2699, 2700, 2704, 86, + 86, 2696, 86, 2697, 86, 2705, 86, 86, 2707, 2703, + 86, 2706, 2710, 86, 86, 2711, 2708, 2713, 86, 86, + 86, 86, 86, 2714, 2718, 86, 2709, 2720, 86, 2712, + 2716, 2717, 2715, 86, 86, 2719, 86, 86, 2721, 2722, + 86, 86, 2724, 86, 86, 86, 86, 86, 2725, 86, + 2723, 2730, 2727, 2728, 2731, 2733, 86, 2734, 86, 2729, + 2726, 86, 2732, 2735, 170, 86, 86, 86, 2736, 2740, - 86, 2737, 2732, 2733, 86, 2731, 2735, 86, 86, 86, - 2738, 86, 2742, 86, 86, 86, 2743, 2736, 86, 2739, - 86, 2747, 86, 86, 2745, 86, 86, 86, 2740, 86, - 2741, 2751, 3295, 2744, 2759, 2746, 2754, 2748, 2749, 2752, - 86, 2755, 86, 2756, 86, 2750, 86, 86, 86, 86, - 86, 2753, 2757, 86, 2758, 86, 86, 2760, 2763, 2762, - 86, 2765, 86, 2761, 2767, 86, 2768, 86, 2769, 86, - 86, 2764, 86, 86, 2770, 2772, 86, 2771, 86, 86, - 2766, 2776, 86, 2774, 86, 2779, 2777, 86, 2780, 86, - 86, 2775, 86, 2773, 2781, 86, 86, 86, 86, 2782, + 2737, 86, 86, 2742, 86, 86, 2741, 86, 2745, 86, + 2746, 86, 2744, 86, 2738, 2739, 2748, 86, 86, 2743, + 86, 2749, 2750, 86, 86, 2752, 2747, 2751, 86, 2753, + 2755, 86, 86, 86, 86, 2756, 86, 2754, 2757, 86, + 86, 2758, 2762, 86, 2763, 86, 86, 2760, 86, 2759, + 86, 2764, 2766, 86, 86, 2765, 86, 2768, 2767, 86, + 86, 2761, 86, 86, 2770, 2771, 86, 86, 2769, 86, + 86, 2776, 86, 2779, 86, 2774, 2773, 86, 2775, 86, + 2772, 2777, 86, 2780, 86, 2778, 2784, 86, 86, 86, + 86, 86, 86, 2781, 86, 2785, 2789, 86, 86, 2787, - 2786, 86, 2778, 2783, 86, 2787, 2788, 86, 2790, 86, - 2784, 86, 86, 2789, 86, 2794, 86, 2785, 2795, 86, - 2796, 86, 86, 86, 2791, 86, 2797, 86, 2793, 86, - 2792, 2798, 86, 2803, 86, 2802, 2806, 86, 2805, 86, - 86, 86, 86, 2800, 86, 2799, 2807, 2801, 2808, 86, - 2804, 86, 2809, 86, 2811, 86, 2812, 86, 2815, 86, - 86, 2813, 2814, 2819, 86, 86, 86, 2810, 2821, 86, - 86, 86, 2826, 86, 2818, 2816, 2822, 2827, 86, 2817, - 2820, 2825, 2828, 2823, 2831, 86, 86, 2829, 86, 2824, - 2830, 86, 2832, 86, 2833, 86, 2834, 86, 2835, 86, + 86, 86, 2782, 2783, 2793, 86, 2788, 3210, 2786, 2791, + 2796, 2790, 2794, 86, 2797, 2798, 86, 86, 2792, 86, + 86, 86, 2799, 86, 2801, 2800, 2795, 86, 86, 2804, + 86, 86, 86, 2805, 86, 86, 2802, 86, 2806, 86, + 2809, 2803, 2811, 86, 86, 2807, 3353, 2808, 2812, 86, + 2813, 86, 86, 86, 86, 2810, 2814, 86, 2815, 2816, + 86, 86, 2818, 2820, 2817, 86, 2819, 86, 2821, 86, + 86, 2824, 86, 2822, 2825, 86, 2826, 86, 86, 86, + 2828, 2827, 2831, 86, 86, 2823, 86, 2832, 2833, 86, + 2829, 86, 2835, 86, 86, 86, 2839, 2836, 86, 2830, - 86, 86, 2836, 86, 2837, 86, 86, 86, 2840, 86, - 86, 2842, 2846, 86, 2847, 86, 2843, 86, 86, 86, - 2838, 2848, 2850, 86, 2841, 86, 2851, 2839, 86, 2844, - 2845, 2852, 86, 2853, 2855, 2849, 2854, 86, 86, 86, - 86, 2859, 86, 86, 86, 86, 86, 2856, 2857, 2860, - 2863, 86, 2861, 86, 86, 2864, 86, 86, 2858, 2862, - 86, 2867, 2866, 86, 2865, 2868, 2869, 86, 2870, 86, - 86, 2872, 2873, 86, 86, 86, 86, 2871, 86, 2874, - 2879, 86, 86, 86, 2877, 2875, 86, 2882, 2883, 86, - 2880, 86, 2884, 86, 2887, 86, 2878, 2888, 2885, 2876, + 2840, 86, 86, 86, 86, 2842, 2834, 2841, 86, 2838, + 2843, 86, 2837, 86, 2848, 86, 2851, 86, 86, 2847, + 86, 2844, 2850, 86, 2845, 86, 86, 86, 2846, 2854, + 2852, 2853, 86, 86, 2857, 2856, 86, 86, 86, 86, + 2849, 86, 2860, 2864, 86, 86, 86, 86, 86, 86, + 2866, 86, 2855, 2858, 2859, 2863, 2861, 2870, 2867, 2862, + 2865, 2871, 2868, 2873, 2869, 86, 2872, 86, 2874, 86, + 2875, 2876, 86, 86, 2877, 86, 2878, 86, 2879, 86, + 2880, 2881, 86, 86, 86, 86, 86, 2882, 86, 86, + 2885, 86, 86, 2887, 2891, 86, 2892, 86, 2888, 86, - 2886, 86, 2881, 2889, 86, 2890, 86, 2891, 86, 86, - 2892, 86, 86, 2896, 86, 86, 86, 2895, 86, 86, - 2897, 2898, 2899, 86, 86, 86, 86, 2905, 86, 2893, - 2894, 2903, 2900, 86, 2907, 86, 2901, 86, 86, 2902, - 86, 2908, 86, 2904, 86, 2909, 86, 2910, 86, 2911, - 86, 2916, 86, 2906, 86, 86, 86, 2912, 86, 2913, - 2919, 2914, 86, 86, 86, 86, 2925, 2917, 2918, 86, - 2915, 2920, 2923, 86, 2921, 86, 86, 86, 2924, 2929, - 86, 86, 2922, 86, 2926, 2931, 86, 2927, 2932, 86, - 2934, 86, 86, 86, 86, 86, 2930, 2935, 86, 2938, + 86, 86, 2893, 2883, 86, 2886, 2895, 86, 2896, 2898, + 2884, 2889, 2890, 2897, 86, 2899, 86, 86, 2894, 86, + 86, 86, 2904, 86, 86, 86, 2900, 86, 2901, 2902, + 86, 2905, 86, 2906, 86, 86, 86, 2910, 2914, 2903, + 86, 2908, 2911, 86, 2907, 2913, 86, 2909, 2912, 2916, + 86, 2915, 2917, 86, 2918, 86, 86, 2921, 86, 86, + 86, 86, 86, 86, 2927, 86, 86, 86, 2922, 2944, + 86, 2925, 2923, 86, 2920, 86, 86, 2928, 2930, 86, + 2919, 2931, 2961, 2926, 86, 2932, 2924, 2929, 2933, 86, + 86, 86, 2935, 86, 2934, 2936, 2937, 86, 2938, 86, - 2939, 86, 2928, 86, 2933, 86, 2943, 86, 2936, 2937, - 86, 2946, 86, 86, 2948, 2940, 86, 86, 86, 86, - 86, 2941, 2942, 2949, 2944, 86, 2945, 2951, 86, 2952, - 86, 2954, 86, 2947, 86, 2959, 2956, 2953, 2950, 2958, - 86, 86, 86, 2957, 86, 2963, 86, 86, 86, 2965, - 2964, 2955, 86, 86, 2961, 2968, 2969, 86, 86, 2960, - 86, 86, 2971, 2970, 2962, 2966, 86, 86, 86, 2974, - 86, 2973, 2967, 86, 2977, 86, 2972, 86, 2975, 86, - 86, 2980, 86, 86, 86, 86, 2976, 2985, 86, 2981, - 86, 86, 2978, 2979, 2989, 86, 86, 2982, 2984, 86, + 2939, 86, 2940, 86, 86, 86, 86, 86, 86, 2943, + 2941, 2945, 2946, 2947, 86, 86, 86, 86, 2953, 86, + 2949, 2951, 2942, 2948, 86, 2955, 86, 86, 86, 86, + 86, 2956, 86, 2957, 2958, 2952, 2950, 86, 2959, 86, + 2964, 86, 86, 86, 2954, 86, 86, 2962, 86, 2960, + 2967, 86, 86, 86, 2968, 2965, 2966, 86, 2972, 2963, + 2971, 86, 2973, 86, 2969, 86, 2974, 2977, 86, 86, + 2970, 2979, 86, 2980, 86, 86, 2982, 86, 86, 86, + 86, 2975, 86, 2987, 86, 2986, 86, 2990, 2978, 86, + 86, 2976, 86, 86, 2983, 2984, 2981, 86, 2985, 2989, - 2988, 2990, 86, 2986, 2991, 86, 2987, 86, 2983, 86, - 2992, 86, 2993, 2994, 86, 2995, 86, 2996, 86, 2999, - 86, 86, 2997, 3001, 86, 86, 3000, 86, 86, 86, - 3002, 2998, 86, 3006, 3007, 86, 86, 86, 3011, 86, - 3012, 86, 3003, 3008, 86, 3013, 3010, 86, 86, 3004, - 3005, 86, 86, 3016, 3017, 86, 3009, 3018, 86, 86, - 86, 3021, 86, 86, 3014, 3019, 3015, 86, 3024, 86, - 86, 3023, 3026, 3020, 3022, 3025, 86, 86, 86, 86, - 86, 86, 3028, 86, 86, 3030, 86, 86, 3031, 86, - 3029, 86, 86, 86, 86, 3043, 3027, 3040, 3041, 86, + 86, 2993, 86, 86, 2996, 86, 2988, 2998, 86, 86, + 86, 2992, 2991, 86, 2999, 86, 2994, 2997, 3001, 86, + 3002, 86, 2995, 3004, 86, 86, 86, 3009, 86, 3010, + 3000, 86, 86, 86, 86, 3003, 3006, 3007, 3013, 86, + 86, 3015, 86, 3005, 3011, 3014, 3008, 86, 86, 3018, + 3021, 3012, 3019, 86, 3017, 86, 86, 86, 86, 3016, + 3020, 3024, 86, 3023, 86, 86, 3022, 3027, 86, 3025, + 3030, 86, 86, 86, 86, 86, 86, 3035, 86, 86, + 86, 3353, 86, 86, 3026, 3028, 3029, 3031, 3041, 3034, + 3032, 3038, 3039, 86, 3040, 86, 3037, 86, 3036, 3033, - 3032, 86, 3036, 3033, 3034, 3035, 3037, 3038, 86, 86, - 3048, 86, 3039, 3044, 3042, 86, 3049, 86, 3046, 3045, - 86, 86, 3047, 86, 3050, 3051, 86, 3295, 3052, 3054, - 86, 3055, 86, 3056, 3057, 86, 86, 86, 3058, 3059, - 3053, 86, 3060, 3061, 86, 86, 3063, 86, 3062, 86, - 86, 3065, 86, 3064, 3069, 86, 86, 3068, 86, 86, - 86, 86, 86, 3072, 86, 3071, 86, 3077, 3086, 3066, - 3067, 3073, 86, 3076, 86, 3074, 3078, 86, 86, 3075, - 86, 3070, 3079, 86, 86, 3081, 3084, 3080, 86, 86, - 86, 3085, 86, 3082, 86, 3090, 3083, 86, 3295, 3091, + 86, 3044, 86, 3045, 86, 3043, 3046, 86, 86, 86, + 3049, 3042, 86, 3051, 86, 86, 86, 3050, 86, 86, + 86, 3047, 86, 3056, 3057, 86, 86, 86, 86, 86, + 86, 3063, 86, 86, 3052, 3048, 3064, 86, 3065, 3062, + 3053, 3054, 3055, 3060, 86, 86, 3059, 86, 3061, 86, + 3069, 86, 3058, 3066, 3068, 3070, 86, 86, 86, 3073, + 86, 3072, 3071, 86, 3067, 86, 3076, 86, 3075, 86, + 3074, 86, 86, 86, 3077, 86, 86, 3080, 86, 86, + 86, 3082, 86, 3078, 3083, 3081, 86, 86, 86, 86, + 86, 3079, 86, 86, 3092, 3093, 3095, 3084, 3088, 3085, - 3093, 86, 3094, 3087, 3088, 86, 3096, 86, 86, 3089, - 86, 3095, 3097, 86, 86, 86, 3092, 3100, 86, 3099, - 3101, 86, 3103, 86, 3102, 3098, 3104, 86, 3105, 86, - 3106, 86, 3107, 86, 3108, 86, 3109, 86, 86, 3111, - 86, 86, 86, 86, 86, 86, 86, 3110, 3116, 86, - 3112, 86, 86, 86, 3113, 86, 3120, 86, 3119, 3117, - 3122, 86, 86, 3114, 3115, 3118, 3121, 86, 86, 3126, - 3124, 3123, 86, 3129, 86, 3128, 86, 86, 86, 86, - 3127, 3131, 86, 3125, 86, 86, 86, 86, 3130, 3137, - 3135, 86, 86, 86, 3134, 3136, 3132, 86, 86, 86, + 3086, 3353, 86, 86, 3087, 3089, 3090, 86, 3091, 86, + 3098, 86, 3094, 3097, 3096, 3102, 3099, 3100, 86, 3101, + 86, 3103, 86, 86, 86, 3106, 86, 86, 3104, 3107, + 86, 3108, 3109, 86, 86, 3110, 3111, 3114, 86, 3112, + 3113, 86, 86, 3105, 86, 3118, 3115, 3117, 86, 86, + 86, 86, 86, 3116, 3123, 86, 86, 3122, 86, 86, + 86, 86, 86, 3119, 3126, 3125, 86, 3353, 3127, 86, + 3120, 3121, 86, 3131, 86, 3130, 3128, 3132, 86, 3135, + 3129, 3124, 3133, 86, 3134, 86, 3138, 3140, 86, 86, + 86, 3139, 86, 86, 3136, 86, 86, 3137, 86, 3148, - 3133, 3140, 3138, 3142, 86, 3141, 3143, 86, 3144, 86, - 86, 86, 86, 3149, 86, 3147, 3145, 3139, 86, 3146, - 3150, 86, 86, 3152, 3153, 3151, 86, 3155, 86, 86, - 86, 86, 3148, 86, 86, 86, 3154, 86, 86, 86, - 86, 3156, 3164, 3162, 86, 3166, 3159, 86, 3157, 3158, - 3161, 3163, 3168, 86, 86, 3171, 86, 86, 3160, 3165, - 3173, 86, 86, 3174, 3167, 86, 3172, 3169, 3175, 86, - 3176, 86, 86, 86, 3170, 86, 3179, 86, 86, 86, - 3180, 3184, 3181, 86, 3177, 86, 86, 86, 3188, 86, - 3187, 86, 3178, 86, 3183, 3190, 86, 3185, 3186, 3191, + 3144, 3145, 3147, 86, 3142, 86, 86, 3150, 86, 3151, + 86, 3143, 3149, 3141, 86, 86, 86, 3146, 3154, 86, + 3153, 3155, 86, 3157, 86, 3156, 3158, 86, 86, 3152, + 3159, 86, 3160, 86, 3161, 86, 3162, 86, 3163, 86, + 3164, 86, 86, 3167, 86, 86, 86, 86, 86, 86, + 86, 3166, 3172, 86, 3165, 3168, 86, 3169, 86, 3176, + 86, 86, 3175, 3173, 3178, 86, 86, 3170, 3171, 3174, + 86, 86, 3182, 3180, 86, 3177, 86, 3184, 3185, 3179, + 86, 86, 86, 86, 86, 3187, 86, 86, 86, 86, + 86, 86, 3181, 3191, 3183, 3186, 86, 3192, 86, 3190, - 86, 86, 86, 3182, 3194, 86, 86, 86, 3192, 3197, - 86, 3189, 86, 3198, 86, 3199, 3201, 3195, 86, 3202, - 3193, 86, 86, 86, 3196, 86, 86, 3207, 86, 3208, - 86, 3206, 3203, 3200, 3204, 86, 86, 86, 86, 86, - 86, 86, 3205, 3212, 86, 3214, 86, 86, 86, 86, - 3211, 86, 3219, 86, 3220, 86, 3209, 3210, 3213, 3216, - 3215, 3217, 3227, 3218, 3221, 86, 3225, 86, 86, 86, - 86, 3222, 3224, 3223, 3226, 86, 3228, 86, 86, 86, - 3233, 86, 3229, 3230, 3231, 86, 86, 3234, 86, 3232, - 3235, 3236, 86, 86, 86, 86, 86, 3237, 3242, 86, + 3193, 3188, 86, 3196, 3189, 3194, 86, 86, 86, 3197, + 3199, 86, 3200, 86, 3202, 3195, 3201, 86, 86, 86, + 3198, 86, 3205, 3204, 86, 86, 86, 3203, 86, 3209, + 86, 3207, 86, 3212, 86, 3206, 3208, 86, 86, 86, + 86, 3211, 86, 3213, 86, 86, 86, 3214, 86, 3219, + 3221, 86, 3215, 3216, 3218, 86, 3220, 3224, 86, 86, + 3223, 86, 3225, 3217, 3226, 3227, 86, 3222, 3228, 3229, + 86, 3231, 86, 86, 3232, 3230, 3233, 86, 3234, 86, + 3235, 86, 86, 86, 86, 3237, 86, 86, 3238, 3239, + 3242, 86, 86, 86, 3246, 86, 86, 86, 3245, 3248, - 3238, 3239, 86, 86, 86, 86, 3245, 3246, 86, 86, - 86, 86, 86, 86, 3240, 3241, 3244, 3249, 3243, 3247, - 86, 3250, 3248, 86, 3252, 86, 3253, 86, 3251, 86, - 3257, 86, 3254, 3255, 86, 3259, 86, 3260, 86, 3256, - 86, 86, 3258, 3261, 3264, 86, 3265, 3262, 86, 86, - 3263, 3266, 3267, 86, 86, 3268, 86, 86, 86, 3273, - 86, 3269, 3271, 86, 86, 86, 86, 86, 86, 3275, - 3276, 86, 3279, 3280, 86, 3270, 86, 3272, 86, 3283, - 3284, 86, 3274, 86, 86, 3277, 3278, 3281, 3286, 86, - 3285, 3287, 86, 86, 86, 3282, 86, 86, 3295, 3289, + 86, 3236, 3241, 86, 3244, 3243, 3249, 86, 86, 3252, + 86, 3240, 86, 86, 3255, 86, 86, 3247, 3250, 86, + 3256, 86, 86, 3259, 3257, 3260, 86, 3251, 3253, 86, + 3254, 86, 86, 86, 3265, 86, 3261, 86, 3264, 3262, + 3258, 3266, 86, 86, 86, 86, 86, 86, 3270, 86, + 86, 3263, 3272, 86, 86, 3277, 86, 86, 3267, 3269, + 3279, 86, 3278, 3268, 86, 86, 3271, 3274, 3273, 3275, + 86, 86, 3276, 3283, 86, 3285, 3284, 86, 3286, 86, + 86, 86, 86, 3281, 3280, 3287, 86, 3288, 3291, 3282, + 86, 3289, 3292, 86, 86, 3293, 3294, 86, 3290, 86, - 3288, 3290, 3295, 3291, 3293, 86, 3294, 86, 3295, 3295, - 3295, 3295, 3295, 3295, 3295, 3295, 3292, 47, 47, 47, + 86, 86, 86, 3295, 86, 3300, 86, 86, 3297, 86, + 3303, 86, 3304, 86, 86, 86, 86, 86, 86, 3296, + 3302, 3298, 3307, 3299, 3305, 3301, 86, 3306, 86, 3311, + 86, 3310, 86, 3308, 86, 3309, 86, 3312, 3353, 3313, + 86, 3315, 86, 3317, 86, 3318, 86, 86, 3322, 86, + 86, 3319, 86, 3316, 3320, 3321, 3314, 3323, 86, 86, + 3324, 3325, 86, 86, 86, 86, 3326, 86, 86, 3328, + 3327, 86, 3329, 3331, 86, 86, 3333, 86, 86, 3337, + 3334, 3338, 86, 3330, 3332, 86, 86, 3335, 86, 3341, + 3342, 86, 86, 3344, 86, 86, 3336, 3345, 86, 3343, + + 86, 86, 3346, 86, 3339, 3340, 3347, 86, 3348, 3351, + 86, 3352, 86, 3353, 3353, 3353, 3353, 3353, 3353, 3349, + 3353, 3353, 3353, 3353, 3353, 3353, 3350, 47, 47, 47, 47, 47, 47, 47, 52, 52, 52, 52, 52, 52, 52, 57, 57, 57, 57, 57, 57, 57, 63, 63, 63, 63, 63, 63, 63, 68, 68, 68, 68, 68, 68, 68, 74, 74, 74, 74, 74, 74, 74, 80, - 80, 80, 80, 80, 80, 80, 89, 89, 3295, 89, - 89, 89, 89, 159, 159, 3295, 3295, 3295, 159, 159, - 161, 161, 3295, 3295, 161, 3295, 161, 163, 3295, 3295, - 3295, 3295, 3295, 163, 166, 166, 3295, 3295, 3295, 166, + 80, 80, 80, 80, 80, 80, 89, 89, 3353, 89, + 89, 89, 89, 160, 160, 3353, 3353, 3353, 160, 160, + 162, 162, 3353, 3353, 162, 3353, 162, 164, 3353, 3353, - 166, 168, 3295, 3295, 3295, 3295, 3295, 168, 170, 170, - 3295, 170, 170, 170, 170, 173, 3295, 3295, 3295, 3295, - 3295, 173, 176, 176, 3295, 3295, 3295, 176, 176, 90, - 90, 3295, 90, 90, 90, 90, 17, 3295, 3295, 3295, - 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, - 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, - 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, - 3295, 3295, 3295, 3295, 3295, 3295, 3295 + 3353, 3353, 3353, 164, 167, 167, 3353, 3353, 3353, 167, + 167, 169, 3353, 3353, 3353, 3353, 3353, 169, 171, 171, + 3353, 171, 171, 171, 171, 174, 3353, 3353, 3353, 3353, + 3353, 174, 177, 177, 3353, 3353, 3353, 177, 177, 90, + 90, 3353, 90, 90, 90, 90, 17, 3353, 3353, 3353, + 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, + 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, + 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, + 3353, 3353, 3353, 3353, 3353, 3353, 3353 } ; -static const flex_int16_t yy_chk[6478] = +static const flex_int16_t yy_chk[6588] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -2234,710 +2264,722 @@ static const flex_int16_t yy_chk[6478] = 5, 3, 6, 24, 4, 24, 24, 5, 24, 6, 7, 7, 7, 7, 24, 7, 8, 8, 8, 8, 33, 8, 7, 9, 9, 9, 26, 26, 8, 10, - 10, 10, 19, 29, 9, 33, 19, 29, 3303, 35, + 10, 10, 19, 29, 9, 33, 19, 29, 3361, 35, 10, 11, 11, 11, 11, 11, 11, 13, 13, 13, 13, 34, 13, 11, 35, 99, 34, 29, 38, 13, 51, 51, 11, 12, 12, 12, 12, 12, 12, 14, 14, 14, 14, 99, 14, 12, 15, 15, 15, 38, 23, 14, 23, 23, 12, 23, 46, 15, 16, 16, - 16, 23, 23, 25, 27, 27, 25, 25, 2693, 16, + 16, 23, 23, 25, 27, 27, 25, 25, 2735, 16, 25, 46, 27, 30, 30, 25, 27, 56, 40, 27, 56, 73, 31, 31, 25, 28, 67, 67, 30, 32, 28, 31, 40, 32, 28, 73, 32, 28, 92, 28, - 28, 92, 31, 32, 1086, 32, 36, 36, 37, 37, - 28, 45, 45, 37, 176, 36, 45, 39, 41, 41, + 28, 92, 31, 32, 1099, 32, 36, 36, 37, 37, + 28, 45, 45, 37, 97, 36, 45, 97, 41, 41, - 45, 36, 39, 41, 87, 36, 39, 37, 87, 37, - 84, 84, 39, 41, 41, 39, 41, 93, 42, 95, - 96, 93, 39, 42, 43, 43, 42, 43, 94, 97, - 44, 95, 97, 42, 44, 94, 43, 42, 42, 113, - 96, 115, 43, 113, 44, 175, 115, 124, 44, 44, - 62, 124, 62, 62, 70, 62, 70, 70, 72, 70, - 72, 72, 79, 72, 79, 79, 70, 79, 86, 103, - 86, 86, 89, 86, 89, 89, 100, 89, 98, 86, - 104, 98, 101, 89, 89, 100, 102, 103, 103, 105, - 107, 106, 102, 108, 98, 109, 101, 106, 102, 111, + 45, 36, 87, 41, 93, 36, 87, 37, 93, 37, + 39, 39, 42, 41, 41, 39, 41, 42, 96, 39, + 42, 43, 43, 105, 43, 39, 44, 42, 39, 101, + 44, 42, 42, 43, 94, 39, 84, 84, 96, 43, + 44, 94, 105, 101, 44, 44, 62, 192, 62, 62, + 70, 62, 70, 70, 72, 70, 72, 72, 79, 72, + 79, 79, 70, 79, 86, 95, 86, 86, 89, 86, + 89, 89, 192, 89, 100, 86, 102, 95, 98, 89, + 89, 98, 102, 100, 103, 104, 106, 107, 102, 113, + 102, 109, 106, 113, 98, 108, 111, 140, 114, 112, - 102, 110, 104, 112, 107, 114, 173, 108, 105, 116, - 106, 119, 110, 110, 122, 109, 117, 111, 118, 117, - 110, 112, 117, 116, 118, 114, 120, 126, 123, 130, - 119, 120, 125, 122, 121, 117, 117, 121, 122, 125, - 126, 121, 123, 118, 128, 127, 129, 131, 133, 130, - 132, 120, 127, 128, 132, 134, 135, 121, 137, 129, - 134, 136, 136, 140, 134, 131, 133, 138, 139, 141, - 168, 138, 143, 146, 146, 144, 135, 150, 137, 142, - 138, 144, 142, 139, 145, 143, 138, 148, 141, 140, - 149, 146, 147, 142, 146, 151, 145, 142, 150, 147, + 177, 107, 103, 103, 110, 106, 116, 104, 115, 108, + 119, 109, 140, 115, 111, 110, 110, 112, 114, 117, + 116, 118, 117, 110, 122, 117, 120, 118, 123, 119, + 121, 120, 124, 121, 125, 130, 124, 121, 117, 117, + 127, 125, 123, 122, 126, 128, 118, 127, 122, 129, + 132, 120, 131, 121, 128, 130, 131, 126, 134, 133, + 135, 136, 129, 133, 138, 135, 137, 137, 132, 135, + 139, 141, 142, 144, 139, 256, 134, 256, 146, 150, + 151, 136, 143, 139, 138, 143, 144, 145, 149, 139, + 146, 142, 148, 145, 147, 147, 143, 141, 150, 148, - 153, 154, 152, 148, 152, 155, 154, 158, 156, 149, - 147, 151, 153, 152, 157, 160, 160, 155, 180, 157, - 162, 158, 254, 162, 254, 152, 156, 164, 172, 164, - 164, 172, 164, 167, 167, 169, 180, 169, 169, 170, - 169, 170, 170, 174, 170, 174, 174, 178, 174, 177, - 177, 170, 178, 179, 181, 182, 183, 184, 185, 179, - 186, 187, 188, 182, 189, 184, 187, 183, 179, 181, - 182, 191, 190, 189, 194, 186, 192, 185, 190, 190, - 194, 192, 188, 193, 193, 195, 198, 195, 196, 202, - 195, 199, 196, 197, 197, 200, 191, 196, 198, 201, + 143, 151, 152, 153, 149, 153, 155, 154, 156, 157, + 148, 155, 147, 226, 153, 147, 158, 159, 152, 154, + 156, 158, 161, 161, 179, 163, 153, 157, 163, 179, + 165, 159, 165, 165, 226, 165, 168, 168, 170, 181, + 170, 170, 171, 170, 171, 171, 173, 171, 175, 173, + 175, 175, 180, 175, 171, 178, 178, 181, 180, 182, + 183, 184, 185, 186, 187, 189, 188, 180, 183, 190, + 185, 188, 184, 212, 182, 183, 193, 191, 190, 187, + 176, 193, 186, 191, 191, 189, 194, 194, 195, 197, + 196, 212, 196, 197, 195, 196, 198, 198, 197, 199, - 200, 202, 196, 203, 201, 204, 207, 195, 196, 196, - 199, 204, 205, 206, 208, 209, 205, 210, 206, 211, - 212, 213, 207, 203, 216, 212, 213, 217, 208, 210, - 209, 166, 210, 215, 204, 214, 214, 211, 215, 214, - 218, 214, 222, 217, 216, 220, 218, 219, 219, 225, - 221, 220, 223, 214, 224, 214, 221, 220, 223, 226, - 224, 227, 222, 232, 229, 226, 227, 228, 229, 224, - 225, 230, 231, 228, 233, 234, 232, 230, 235, 231, - 233, 236, 237, 238, 235, 241, 239, 243, 240, 242, - 237, 239, 246, 244, 236, 234, 238, 240, 244, 244, + 200, 201, 202, 197, 203, 204, 201, 202, 205, 197, + 197, 199, 196, 206, 205, 207, 203, 206, 208, 200, + 207, 209, 213, 210, 211, 204, 214, 213, 216, 217, + 551, 214, 218, 216, 208, 209, 211, 205, 210, 211, + 215, 215, 220, 220, 215, 219, 215, 221, 218, 217, + 222, 219, 223, 221, 551, 224, 222, 227, 215, 221, + 215, 224, 225, 227, 228, 229, 230, 231, 225, 228, + 230, 229, 223, 231, 232, 234, 233, 225, 235, 236, + 237, 232, 233, 238, 235, 239, 237, 240, 234, 241, + 245, 243, 242, 239, 241, 244, 238, 246, 248, 236, - 241, 245, 248, 236, 247, 242, 245, 243, 247, 249, - 246, 250, 251, 252, 253, 249, 255, 257, 251, 253, - 256, 259, 258, 257, 248, 260, 261, 256, 258, 250, - 250, 260, 262, 252, 268, 255, 263, 263, 261, 265, - 259, 264, 264, 266, 270, 265, 262, 269, 267, 266, - 267, 271, 269, 272, 273, 274, 270, 268, 275, 276, - 274, 272, 277, 265, 278, 276, 279, 267, 277, 278, - 271, 279, 280, 281, 273, 282, 283, 284, 280, 285, - 286, 275, 288, 291, 287, 288, 291, 285, 281, 282, - 287, 284, 292, 289, 283, 289, 290, 290, 293, 293, + 240, 242, 246, 246, 247, 238, 243, 250, 249, 247, + 245, 244, 249, 251, 252, 253, 248, 254, 255, 251, + 257, 253, 259, 255, 258, 261, 263, 264, 259, 250, + 260, 258, 252, 252, 262, 270, 260, 254, 263, 257, + 262, 264, 265, 265, 261, 266, 266, 267, 268, 269, + 271, 269, 272, 267, 268, 271, 273, 274, 270, 275, + 277, 276, 288, 278, 272, 274, 276, 279, 269, 278, + 283, 267, 280, 279, 282, 273, 281, 280, 284, 275, + 282, 281, 285, 277, 286, 283, 287, 288, 290, 289, + 293, 290, 284, 293, 287, 289, 294, 291, 286, 291, - 294, 294, 295, 297, 296, 286, 297, 298, 299, 301, - 292, 298, 300, 302, 303, 301, 311, 299, 295, 296, - 303, 300, 304, 305, 304, 312, 306, 302, 308, 305, - 306, 307, 307, 308, 309, 310, 311, 313, 314, 316, - 309, 310, 316, 312, 315, 315, 317, 306, 318, 319, - 165, 314, 318, 320, 321, 321, 322, 324, 313, 323, - 310, 325, 323, 326, 317, 327, 326, 325, 319, 324, - 330, 320, 329, 331, 322, 339, 339, 327, 331, 323, - 328, 329, 332, 333, 335, 332, 333, 332, 330, 328, - 338, 334, 328, 338, 341, 613, 335, 328, 328, 328, + 285, 292, 292, 295, 295, 296, 296, 297, 299, 298, + 301, 299, 300, 302, 294, 303, 300, 304, 174, 301, + 305, 303, 302, 297, 298, 306, 305, 306, 307, 308, + 314, 304, 310, 308, 307, 309, 309, 310, 311, 312, + 313, 315, 316, 319, 311, 312, 317, 317, 314, 318, + 308, 321, 318, 320, 322, 316, 324, 320, 323, 323, + 313, 319, 315, 325, 312, 326, 325, 327, 328, 329, + 321, 328, 322, 327, 324, 333, 331, 326, 366, 332, + 333, 329, 336, 325, 330, 331, 334, 335, 337, 334, + 335, 334, 366, 330, 169, 336, 330, 332, 341, 341, - 328, 340, 613, 332, 334, 336, 337, 336, 336, 341, - 342, 337, 337, 343, 344, 344, 346, 346, 340, 342, - 345, 340, 343, 347, 347, 345, 348, 349, 350, 351, - 352, 353, 349, 354, 357, 355, 355, 358, 355, 354, - 350, 348, 358, 359, 365, 363, 353, 355, 351, 359, - 352, 360, 361, 365, 357, 362, 360, 361, 362, 363, - 362, 364, 367, 361, 364, 366, 366, 369, 367, 368, - 368, 372, 369, 373, 374, 370, 373, 364, 370, 376, - 364, 379, 364, 386, 370, 163, 375, 378, 370, 374, - 378, 372, 381, 376, 373, 379, 370, 371, 371, 382, + 337, 330, 330, 330, 330, 339, 338, 334, 338, 338, + 339, 339, 340, 342, 343, 340, 345, 344, 346, 347, + 347, 348, 349, 349, 351, 345, 348, 346, 353, 343, + 342, 350, 350, 342, 344, 344, 352, 354, 355, 351, + 353, 352, 356, 357, 360, 167, 361, 358, 358, 357, + 358, 361, 369, 369, 362, 166, 354, 356, 355, 358, + 362, 363, 364, 394, 360, 365, 363, 364, 365, 367, + 365, 368, 367, 364, 372, 370, 371, 371, 375, 372, + 368, 370, 377, 373, 378, 367, 373, 379, 367, 394, + 367, 376, 373, 382, 376, 384, 373, 377, 375, 378, - 371, 375, 386, 389, 383, 384, 378, 381, 382, 383, - 383, 384, 387, 371, 392, 391, 371, 385, 371, 388, - 371, 380, 389, 380, 380, 390, 396, 387, 388, 393, - 397, 390, 161, 380, 392, 380, 380, 380, 385, 394, - 380, 391, 395, 393, 398, 394, 396, 395, 399, 394, - 397, 400, 401, 399, 402, 402, 403, 404, 401, 398, - 405, 406, 407, 408, 411, 395, 400, 406, 409, 404, - 412, 414, 413, 409, 405, 159, 403, 410, 410, 408, - 410, 415, 420, 415, 411, 414, 412, 407, 413, 416, - 417, 416, 416, 418, 417, 419, 419, 418, 421, 422, + 381, 379, 385, 381, 373, 374, 374, 382, 374, 386, + 384, 385, 376, 388, 386, 386, 387, 389, 390, 381, + 402, 374, 387, 392, 374, 402, 374, 395, 374, 383, + 391, 383, 383, 390, 388, 396, 389, 164, 399, 391, + 393, 383, 392, 383, 383, 383, 393, 395, 383, 396, + 397, 400, 398, 401, 403, 404, 397, 398, 399, 406, + 397, 404, 405, 405, 407, 410, 408, 409, 401, 403, + 411, 400, 412, 409, 414, 398, 407, 412, 417, 406, + 408, 413, 413, 415, 413, 416, 411, 418, 423, 418, + 410, 426, 417, 419, 414, 419, 419, 424, 420, 415, - 423, 420, 424, 430, 427, 425, 426, 430, 428, 416, - 427, 426, 418, 421, 425, 422, 424, 428, 423, 426, - 426, 429, 431, 426, 426, 425, 429, 425, 432, 433, - 434, 431, 436, 435, 432, 436, 434, 435, 437, 438, - 439, 439, 440, 437, 441, 441, 442, 443, 444, 444, - 433, 442, 445, 446, 447, 440, 448, 446, 445, 438, - 443, 449, 450, 451, 451, 453, 449, 450, 452, 447, - 454, 455, 451, 456, 457, 458, 456, 448, 457, 460, - 452, 459, 459, 455, 460, 453, 461, 458, 454, 462, - 462, 463, 465, 465, 467, 468, 469, 470, 471, 478, + 421, 416, 420, 427, 421, 422, 422, 423, 425, 426, + 430, 428, 424, 419, 431, 439, 430, 427, 439, 421, + 428, 429, 432, 431, 425, 433, 429, 432, 434, 433, + 435, 428, 436, 428, 429, 429, 435, 434, 429, 429, + 437, 438, 440, 441, 443, 438, 437, 440, 442, 442, + 444, 444, 446, 436, 445, 447, 447, 443, 448, 445, + 450, 451, 449, 441, 448, 446, 449, 452, 453, 454, + 454, 455, 452, 453, 456, 450, 458, 457, 454, 461, + 464, 459, 451, 455, 459, 460, 462, 462, 458, 460, + 466, 461, 463, 470, 456, 457, 471, 463, 465, 465, - 473, 474, 475, 468, 85, 469, 477, 461, 478, 476, - 471, 480, 477, 463, 481, 467, 480, 470, 473, 474, - 473, 479, 475, 476, 482, 484, 483, 479, 481, 483, - 485, 486, 482, 487, 489, 482, 490, 486, 488, 484, - 489, 488, 491, 492, 494, 485, 493, 491, 494, 495, - 490, 496, 497, 487, 495, 498, 499, 497, 489, 500, - 503, 524, 506, 504, 505, 492, 496, 493, 505, 507, - 508, 498, 500, 524, 508, 499, 501, 501, 504, 510, - 503, 506, 501, 80, 501, 507, 511, 512, 509, 513, - 501, 511, 501, 509, 510, 501, 501, 509, 513, 514, + 472, 464, 468, 468, 471, 473, 474, 475, 476, 472, + 478, 474, 466, 479, 470, 480, 482, 484, 481, 550, + 476, 550, 482, 484, 483, 486, 473, 475, 478, 485, + 478, 479, 481, 483, 485, 480, 487, 488, 489, 486, + 488, 490, 491, 492, 487, 494, 493, 487, 491, 493, + 495, 494, 489, 496, 497, 499, 490, 498, 496, 499, + 500, 502, 501, 492, 495, 500, 502, 503, 504, 494, + 508, 505, 511, 524, 547, 510, 497, 501, 498, 510, + 509, 512, 513, 503, 505, 162, 513, 504, 506, 506, + 508, 511, 547, 524, 506, 509, 506, 512, 515, 517, - 515, 516, 501, 512, 517, 514, 512, 517, 518, 519, - 514, 520, 520, 521, 526, 515, 529, 516, 522, 522, - 523, 525, 527, 528, 530, 529, 531, 75, 528, 519, - 534, 518, 538, 526, 532, 523, 525, 537, 521, 534, - 532, 531, 535, 530, 527, 536, 535, 538, 539, 537, - 540, 536, 542, 541, 543, 545, 544, 545, 543, 546, - 548, 548, 550, 547, 540, 552, 549, 539, 541, 544, - 542, 547, 549, 551, 550, 553, 554, 552, 553, 551, - 555, 556, 557, 546, 558, 557, 556, 647, 559, 561, - 554, 560, 569, 558, 647, 555, 560, 560, 562, 562, + 514, 516, 506, 518, 506, 514, 516, 506, 506, 514, + 519, 520, 518, 515, 506, 517, 519, 521, 517, 522, + 523, 519, 522, 525, 525, 526, 520, 527, 527, 528, + 529, 530, 531, 521, 532, 533, 534, 536, 535, 539, + 533, 537, 529, 523, 528, 534, 530, 537, 539, 540, + 526, 531, 536, 540, 541, 542, 532, 535, 543, 544, + 541, 545, 546, 549, 548, 554, 552, 542, 548, 553, + 553, 554, 555, 543, 552, 545, 549, 546, 544, 556, + 557, 559, 560, 558, 555, 556, 558, 562, 561, 563, + 562, 564, 557, 561, 565, 559, 566, 560, 563, 565, - 558, 564, 561, 558, 559, 563, 563, 564, 565, 565, - 566, 566, 567, 569, 568, 570, 573, 572, 567, 568, - 568, 571, 572, 574, 571, 575, 577, 570, 575, 576, - 580, 574, 578, 579, 576, 573, 580, 579, 581, 582, - 583, 584, 581, 585, 585, 583, 586, 587, 588, 577, - 589, 578, 590, 588, 591, 584, 593, 582, 592, 595, - 591, 586, 597, 592, 596, 596, 589, 74, 587, 598, - 593, 594, 590, 599, 594, 601, 600, 595, 599, 594, - 597, 600, 594, 594, 602, 598, 604, 605, 606, 601, - 607, 606, 604, 608, 607, 611, 605, 609, 608, 602, + 565, 567, 567, 568, 568, 563, 569, 564, 563, 566, + 570, 570, 569, 571, 571, 572, 574, 573, 575, 578, + 577, 572, 573, 573, 576, 577, 579, 576, 580, 582, + 575, 580, 583, 589, 579, 581, 585, 574, 578, 584, + 581, 586, 585, 584, 587, 586, 591, 589, 588, 590, + 590, 583, 582, 588, 592, 593, 594, 595, 596, 598, + 593, 591, 587, 597, 596, 603, 600, 602, 597, 601, + 601, 599, 594, 598, 599, 592, 606, 595, 607, 599, + 610, 603, 599, 599, 600, 602, 604, 605, 609, 610, + 606, 604, 605, 607, 609, 611, 612, 613, 611, 616, - 609, 610, 612, 615, 614, 616, 610, 619, 615, 617, - 617, 611, 618, 620, 621, 622, 607, 614, 623, 629, - 612, 618, 624, 621, 623, 616, 619, 622, 624, 620, - 625, 626, 626, 625, 626, 627, 628, 629, 627, 630, - 631, 628, 632, 633, 635, 634, 631, 632, 634, 633, - 636, 637, 638, 630, 639, 636, 637, 637, 640, 643, - 641, 642, 645, 640, 68, 638, 641, 639, 643, 635, - 644, 646, 646, 648, 650, 644, 648, 640, 640, 649, - 642, 654, 645, 651, 652, 649, 650, 658, 651, 652, - 652, 648, 653, 653, 655, 656, 655, 657, 659, 657, + 612, 614, 613, 615, 614, 617, 618, 619, 615, 620, + 621, 622, 622, 618, 620, 616, 623, 624, 625, 626, + 619, 627, 612, 617, 630, 623, 628, 630, 626, 629, + 621, 634, 628, 627, 625, 629, 624, 631, 631, 632, + 631, 633, 632, 635, 637, 636, 633, 638, 640, 634, + 636, 639, 641, 638, 640, 641, 639, 635, 642, 643, + 644, 645, 646, 637, 643, 644, 644, 647, 650, 649, + 648, 652, 647, 651, 645, 646, 648, 650, 651, 653, + 653, 655, 654, 642, 655, 657, 647, 647, 649, 654, + 656, 652, 661, 658, 663, 659, 656, 657, 658, 655, - 660, 661, 662, 663, 664, 658, 654, 668, 664, 663, - 665, 666, 667, 669, 656, 671, 659, 670, 660, 665, - 661, 673, 662, 675, 674, 668, 666, 667, 672, 670, - 671, 676, 669, 677, 672, 673, 674, 677, 678, 679, - 680, 681, 675, 682, 683, 685, 685, 684, 686, 683, - 676, 687, 686, 688, 692, 679, 678, 689, 680, 681, - 681, 684, 682, 690, 691, 687, 693, 694, 689, 691, - 692, 695, 688, 700, 696, 697, 698, 690, 695, 696, - 694, 698, 697, 699, 703, 693, 701, 702, 699, 705, - 704, 700, 706, 701, 709, 710, 702, 706, 703, 704, + 659, 659, 660, 660, 662, 664, 662, 664, 658, 665, + 666, 667, 668, 663, 669, 670, 671, 661, 673, 676, + 671, 670, 674, 672, 675, 678, 682, 665, 666, 667, + 679, 668, 672, 673, 669, 677, 679, 674, 676, 680, + 678, 683, 675, 681, 684, 682, 685, 677, 684, 686, + 687, 688, 689, 680, 690, 681, 692, 692, 691, 690, + 683, 694, 693, 695, 685, 686, 693, 696, 687, 688, + 688, 689, 691, 697, 698, 694, 699, 700, 696, 698, + 701, 702, 695, 704, 703, 707, 705, 697, 702, 703, + 704, 705, 699, 701, 706, 708, 700, 709, 710, 706, - 707, 705, 708, 707, 710, 711, 708, 712, 709, 713, - 714, 714, 717, 715, 715, 716, 716, 717, 718, 720, - 711, 712, 715, 721, 722, 724, 725, 718, 723, 721, - 713, 726, 723, 727, 728, 730, 729, 724, 720, 727, - 731, 732, 728, 729, 722, 735, 738, 741, 742, 726, - 745, 725, 744, 730, 742, 752, 741, 746, 744, 745, - 735, 732, 63, 738, 751, 731, 733, 753, 733, 752, - 747, 733, 750, 746, 747, 733, 748, 748, 733, 749, - 749, 757, 751, 750, 754, 733, 733, 753, 733, 756, - 754, 755, 755, 755, 756, 755, 758, 759, 755, 760, + 711, 712, 708, 707, 714, 713, 709, 714, 716, 711, + 713, 715, 710, 712, 717, 715, 718, 720, 719, 721, + 721, 725, 716, 717, 722, 722, 723, 723, 727, 724, + 725, 718, 719, 722, 724, 728, 729, 731, 720, 730, + 732, 728, 733, 730, 734, 735, 737, 727, 736, 731, + 734, 738, 739, 735, 742, 736, 729, 745, 748, 754, + 733, 752, 749, 754, 737, 732, 770, 748, 749, 742, + 752, 753, 739, 760, 745, 751, 738, 740, 160, 740, + 758, 751, 740, 755, 755, 770, 740, 753, 759, 740, + 756, 756, 757, 760, 761, 765, 740, 740, 758, 740, - 761, 759, 757, 755, 761, 763, 762, 764, 765, 755, - 755, 762, 766, 767, 758, 766, 769, 769, 767, 767, - 761, 768, 764, 760, 763, 770, 771, 773, 768, 772, - 772, 771, 773, 765, 774, 778, 775, 774, 776, 776, - 770, 775, 777, 779, 777, 780, 781, 778, 782, 780, - 783, 784, 784, 785, 788, 786, 787, 787, 783, 789, - 790, 837, 779, 837, 791, 58, 781, 782, 785, 786, - 791, 789, 788, 792, 793, 793, 796, 797, 792, 794, - 798, 796, 790, 797, 794, 794, 798, 799, 800, 802, - 801, 803, 799, 801, 800, 802, 804, 804, 806, 803, + 761, 767, 759, 757, 762, 762, 762, 763, 762, 764, + 766, 762, 763, 765, 766, 768, 762, 771, 772, 768, + 85, 769, 762, 762, 773, 767, 769, 773, 774, 775, + 764, 777, 771, 774, 774, 768, 775, 776, 776, 778, + 779, 779, 780, 772, 778, 781, 777, 780, 781, 782, + 783, 783, 785, 784, 782, 784, 786, 787, 788, 790, + 789, 787, 791, 791, 785, 792, 795, 790, 793, 794, + 794, 796, 797, 800, 800, 786, 811, 811, 788, 789, + 792, 798, 793, 796, 795, 799, 801, 798, 803, 804, + 799, 801, 801, 803, 797, 804, 805, 808, 806, 807, - 805, 805, 807, 808, 809, 810, 806, 812, 808, 811, - 811, 809, 815, 813, 814, 814, 812, 816, 815, 818, - 807, 813, 819, 820, 810, 821, 822, 825, 818, 823, - 821, 819, 823, 824, 826, 822, 816, 827, 824, 828, - 831, 825, 832, 829, 830, 830, 827, 820, 829, 829, - 834, 833, 828, 835, 839, 831, 835, 838, 838, 826, - 833, 832, 840, 841, 835, 842, 843, 840, 844, 845, - 846, 847, 848, 849, 834, 839, 848, 850, 854, 846, - 1098, 851, 1098, 852, 841, 842, 843, 851, 853, 845, - 844, 849, 852, 855, 847, 856, 850, 854, 857, 858, + 808, 809, 805, 806, 810, 807, 813, 809, 812, 812, + 814, 815, 810, 816, 813, 817, 815, 819, 818, 822, + 816, 820, 820, 821, 823, 823, 825, 822, 814, 824, + 827, 828, 821, 817, 818, 824, 819, 829, 830, 827, + 828, 831, 834, 830, 832, 825, 833, 832, 835, 836, + 831, 833, 837, 840, 838, 841, 834, 842, 836, 838, + 838, 829, 839, 839, 843, 837, 842, 844, 840, 845, + 848, 848, 845, 835, 841, 847, 849, 847, 850, 851, + 845, 852, 853, 850, 854, 844, 856, 855, 843, 857, + 858, 859, 860, 861, 858, 856, 862, 849, 863, 861, - 853, 856, 859, 859, 858, 860, 861, 855, 862, 863, - 864, 865, 857, 866, 867, 861, 868, 863, 869, 873, - 871, 870, 868, 872, 869, 860, 871, 876, 862, 877, - 864, 876, 866, 865, 867, 870, 874, 872, 875, 873, - 878, 879, 874, 880, 875, 882, 879, 884, 877, 881, - 881, 882, 878, 883, 885, 886, 883, 887, 888, 888, - 878, 886, 889, 890, 880, 884, 891, 885, 890, 892, - 893, 891, 891, 895, 893, 894, 894, 887, 896, 900, - 889, 897, 898, 901, 892, 904, 897, 903, 905, 907, - 907, 909, 908, 910, 910, 895, 908, 901, 896, 911, + 851, 852, 853, 864, 865, 862, 854, 855, 866, 859, + 863, 860, 857, 867, 866, 868, 869, 869, 865, 870, + 868, 871, 864, 872, 873, 874, 875, 867, 876, 877, + 871, 878, 873, 883, 879, 881, 880, 878, 882, 870, + 879, 881, 886, 872, 887, 874, 886, 876, 875, 877, + 880, 884, 882, 883, 885, 888, 889, 884, 890, 894, + 885, 889, 892, 887, 891, 891, 893, 888, 892, 893, + 895, 897, 896, 898, 898, 888, 899, 894, 896, 890, + 900, 901, 902, 895, 903, 900, 901, 901, 903, 904, + 904, 897, 905, 906, 899, 907, 908, 902, 910, 913, - 903, 898, 913, 900, 912, 904, 909, 915, 912, 905, - 906, 914, 915, 906, 916, 906, 919, 913, 920, 906, - 918, 906, 920, 921, 911, 914, 906, 917, 916, 918, - 919, 906, 917, 917, 920, 922, 923, 924, 921, 925, - 922, 926, 924, 927, 930, 928, 929, 937, 923, 930, - 922, 934, 929, 925, 928, 931, 934, 927, 932, 933, - 933, 931, 926, 935, 932, 936, 937, 938, 940, 935, - 941, 943, 942, 944, 944, 941, 945, 947, 948, 949, - 940, 945, 946, 943, 950, 938, 942, 936, 939, 939, - 946, 947, 953, 951, 939, 954, 939, 948, 949, 951, + 907, 914, 911, 915, 917, 917, 918, 921, 919, 1077, + 918, 923, 913, 906, 905, 908, 911, 920, 920, 924, + 1077, 914, 910, 919, 915, 916, 923, 922, 916, 926, + 916, 922, 921, 924, 916, 925, 916, 929, 928, 927, + 925, 916, 931, 926, 927, 927, 916, 928, 930, 933, + 932, 929, 930, 934, 935, 932, 936, 931, 934, 937, + 938, 933, 940, 946, 930, 932, 939, 940, 935, 938, + 941, 947, 939, 937, 942, 948, 941, 936, 943, 943, + 942, 944, 945, 952, 950, 946, 944, 951, 945, 953, + 947, 957, 951, 948, 949, 949, 950, 952, 954, 954, - 950, 952, 939, 955, 953, 956, 952, 939, 939, 957, - 957, 958, 959, 954, 939, 958, 961, 962, 963, 955, - 962, 964, 961, 956, 966, 965, 964, 968, 967, 972, - 966, 970, 959, 967, 971, 973, 975, 963, 965, 974, - 970, 973, 976, 971, 977, 972, 968, 976, 974, 978, - 979, 981, 982, 980, 984, 975, 983, 987, 990, 993, - 981, 982, 983, 978, 977, 980, 985, 989, 991, 992, - 979, 984, 985, 987, 994, 995, 57, 993, 990, 996, - 995, 989, 1000, 992, 996, 999, 1003, 991, 1002, 994, - 999, 1000, 1001, 1001, 1002, 1005, 1006, 1009, 1010, 1003, + 949, 953, 949, 956, 955, 957, 958, 959, 949, 955, + 961, 956, 960, 949, 949, 963, 961, 962, 964, 965, + 949, 966, 962, 967, 967, 958, 959, 963, 960, 968, + 969, 971, 973, 968, 975, 965, 964, 971, 972, 966, + 974, 972, 976, 978, 977, 974, 980, 975, 976, 977, + 969, 973, 981, 982, 983, 980, 984, 985, 986, 987, + 983, 981, 978, 986, 988, 984, 989, 994, 990, 982, + 80, 993, 991, 992, 997, 1000, 985, 993, 988, 987, + 990, 991, 992, 995, 994, 999, 989, 1001, 1002, 995, + 997, 1003, 1004, 1005, 1010, 1000, 1006, 1014, 1005, 999, - 1009, 1006, 1006, 1008, 1008, 1011, 1012, 1008, 1013, 1015, - 1014, 1005, 1010, 1016, 1017, 1018, 1019, 1023, 1024, 1016, - 1023, 1018, 1012, 1014, 1015, 1011, 1013, 1020, 1021, 1027, - 1025, 1019, 1020, 1026, 1017, 1025, 1028, 1030, 1026, 1024, - 1032, 1028, 1021, 1029, 1033, 1027, 1032, 1034, 1029, 1030, - 1035, 1036, 1036, 1034, 1037, 1038, 1035, 1041, 1039, 1042, - 1033, 1039, 1043, 1037, 1040, 1040, 1044, 1045, 1046, 1044, - 1047, 1054, 1048, 1038, 1046, 1041, 1047, 1048, 1042, 1049, - 1045, 1050, 1043, 1051, 1049, 1053, 1050, 1055, 1060, 1051, - 1056, 1054, 1058, 1055, 1061, 1056, 1057, 1057, 1059, 1062, + 1009, 1006, 1002, 1010, 1013, 1009, 1001, 1004, 1012, 1003, + 1011, 1011, 1014, 1013, 1012, 1015, 1017, 1018, 1023, 1022, + 1020, 1020, 1018, 1018, 1020, 1024, 1021, 1025, 1015, 1021, + 1026, 1027, 1017, 1022, 1028, 1029, 1030, 1031, 1023, 1032, + 1028, 1024, 1030, 1026, 1032, 1025, 1027, 1033, 1035, 1036, + 1039, 1035, 1031, 1037, 1038, 1029, 1040, 1041, 1037, 1038, + 1043, 1033, 1041, 1042, 1046, 1040, 1039, 1045, 1042, 1047, + 1036, 1048, 1043, 1045, 1050, 1047, 1051, 1048, 1049, 1049, + 1046, 1052, 1054, 1050, 1052, 1053, 1053, 1055, 1056, 1057, + 1058, 1059, 1057, 1060, 1051, 1066, 1061, 1059, 1067, 1060, - 1064, 1058, 1062, 1053, 1065, 1063, 1060, 1059, 1063, 1065, - 1066, 1064, 1067, 1061, 1068, 1069, 1070, 1071, 1072, 1073, - 1073, 1069, 1070, 1072, 1067, 1074, 1075, 1076, 1066, 1078, - 1077, 1080, 1071, 1068, 1077, 1081, 1079, 1083, 1085, 1076, - 1075, 1084, 1084, 1087, 1074, 1079, 1088, 1078, 1090, 1093, - 1080, 1089, 1105, 1090, 1096, 1091, 1083, 1087, 1085, 1105, - 1081, 1088, 1094, 1089, 1091, 1092, 1092, 1095, 1094, 1093, - 1096, 1097, 1099, 1095, 1100, 1101, 1097, 1099, 1102, 1103, - 1104, 1106, 1107, 1102, 1109, 1109, 1110, 1111, 1100, 1101, - 1114, 1112, 1113, 1234, 1103, 1234, 1106, 1115, 1113, 1104, + 1054, 1061, 1062, 1058, 1063, 1064, 1055, 1062, 1056, 1063, + 1068, 1064, 1069, 1066, 1070, 1070, 1068, 1069, 1067, 1071, + 1072, 1073, 1074, 1075, 1076, 1078, 1075, 1076, 1071, 1072, + 1078, 1079, 1080, 1081, 1082, 1084, 1083, 1087, 1085, 1073, + 1082, 1074, 1083, 1085, 1080, 1086, 1086, 1088, 1089, 1079, + 1084, 1090, 1081, 1091, 1092, 1090, 1087, 1093, 1094, 1096, + 1089, 1088, 1098, 1092, 1097, 1097, 1100, 1102, 1103, 1101, + 1106, 1091, 1104, 1103, 1105, 1105, 1093, 1109, 1096, 1102, + 1100, 1104, 1098, 1094, 1101, 1107, 1108, 1117, 1113, 1110, + 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1111, 1114, 1115, - 1110, 1107, 1115, 1117, 1125, 1111, 1112, 1117, 1118, 1118, - 1114, 1115, 1119, 1115, 1120, 1120, 1115, 1119, 1121, 1122, - 1123, 1124, 1125, 1123, 1127, 1121, 1126, 1128, 1132, 1127, - 1129, 1130, 1133, 1122, 1131, 1126, 1130, 1135, 1135, 1132, - 1124, 1138, 1129, 1142, 1136, 1137, 1128, 1139, 1131, 1136, - 1137, 1133, 1139, 1140, 1141, 1143, 1144, 1140, 1142, 1145, - 1147, 1138, 1146, 1141, 1148, 1149, 1150, 1147, 1151, 1154, - 1143, 1145, 1152, 1153, 1155, 1144, 1148, 1146, 1152, 1158, - 1157, 1156, 1160, 1161, 1149, 1159, 1151, 1150, 1153, 1154, - 1156, 1162, 1163, 1165, 1155, 1157, 1166, 1159, 1158, 1165, + 1116, 1112, 1113, 1118, 1115, 1119, 1117, 1120, 1122, 1122, + 1118, 1123, 1114, 1124, 1125, 1116, 1126, 1127, 1135, 1128, + 1119, 1134, 1126, 1130, 1128, 1123, 1120, 1130, 1134, 1125, + 1137, 1124, 1135, 1128, 1138, 1128, 1132, 1127, 1128, 1131, + 1131, 1132, 1133, 1133, 1136, 1139, 1140, 1136, 1141, 1137, + 1142, 1140, 1138, 1143, 1139, 1144, 1146, 1145, 1143, 1148, + 1148, 1149, 1142, 1151, 1155, 1150, 1149, 1141, 1145, 1144, + 1150, 1152, 1154, 1153, 1156, 1146, 1152, 1153, 1157, 1155, + 1158, 1154, 1161, 1151, 1159, 1162, 1160, 1163, 1164, 1156, + 1165, 1167, 1158, 1160, 1161, 1166, 1165, 1157, 1168, 1159, - 1167, 1160, 1168, 1169, 1170, 1172, 1162, 1174, 1161, 52, - 1168, 1166, 1163, 1171, 1167, 1175, 1173, 1172, 1171, 1176, - 1170, 1173, 1173, 1169, 1177, 1177, 1174, 1179, 1180, 1175, - 1181, 1202, 1176, 1178, 1178, 1202, 1181, 1180, 1178, 1184, - 1179, 1178, 1178, 1182, 1182, 1183, 1178, 1185, 1184, 1186, - 1183, 1189, 1178, 1185, 1186, 1187, 1178, 1188, 1188, 1192, - 1187, 1190, 1190, 1191, 1193, 1194, 1191, 1195, 1191, 1197, - 1196, 1198, 1189, 47, 1194, 1196, 1201, 1206, 1199, 1192, - 1200, 1201, 1193, 1197, 1199, 1203, 1200, 1195, 1206, 1198, - 1204, 1204, 1205, 1205, 1203, 1205, 1208, 1209, 1210, 1203, + 1169, 1170, 1171, 1172, 1162, 1173, 1164, 1174, 1163, 1169, + 1166, 1167, 1175, 1176, 1178, 1172, 1170, 1180, 1168, 1179, + 1178, 1171, 1181, 1182, 1173, 1183, 1185, 1175, 1187, 1189, + 1181, 1180, 1174, 1176, 1179, 1184, 1188, 1193, 1185, 1186, + 1184, 1183, 1189, 1182, 1186, 1186, 1193, 1187, 1190, 1190, + 1188, 1191, 1191, 1192, 1197, 1194, 1191, 1195, 1195, 1191, + 1191, 1194, 1196, 1197, 1191, 1198, 1192, 1196, 1199, 1202, + 1191, 1198, 1200, 1199, 1191, 1201, 1201, 1200, 1203, 1203, + 1204, 1205, 1206, 1204, 1207, 1204, 1208, 1209, 1210, 1211, + 1202, 1212, 1209, 1207, 1214, 75, 1218, 1212, 1213, 1214, - 1208, 1203, 1211, 1203, 1212, 1203, 1213, 1214, 1215, 1212, - 1212, 1211, 1209, 1215, 1216, 1213, 1210, 1217, 1218, 1219, - 1220, 1221, 1222, 1222, 1223, 1224, 1217, 1221, 1216, 1214, - 1225, 1226, 1223, 1227, 1220, 1225, 1228, 1218, 1219, 1224, - 1229, 1230, 1227, 1231, 1231, 1226, 1230, 1232, 1233, 1233, - 1236, 1237, 1238, 1236, 1228, 1239, 1237, 1240, 1240, 1241, - 1242, 1242, 1232, 1244, 1239, 1229, 1243, 1243, 1244, 1245, - 1246, 1238, 1247, 1247, 1248, 1249, 1250, 1251, 1249, 1241, - 1252, 1253, 1251, 1253, 1254, 1256, 1257, 1258, 1256, 1252, - 1245, 1246, 1258, 1259, 1248, 1260, 1250, 1261, 1262, 1264, + 1206, 1205, 1210, 1216, 1213, 1215, 1208, 1211, 1217, 1215, + 1218, 1221, 1216, 1217, 1219, 1219, 1223, 1216, 1224, 1216, + 1223, 1216, 1221, 1216, 1220, 1220, 1225, 1220, 1226, 1227, + 1228, 1229, 1231, 1224, 1227, 1227, 1230, 1226, 1232, 1228, + 1233, 1230, 1234, 1235, 1225, 1236, 1231, 1232, 1237, 1237, + 1238, 1236, 1239, 1229, 1241, 1240, 1242, 1235, 1238, 1233, + 1240, 1234, 1243, 1244, 1245, 1242, 1239, 1246, 1241, 1243, + 1247, 1247, 1246, 1248, 1249, 1249, 1250, 1252, 1250, 1253, + 1252, 1244, 1254, 1255, 1253, 1256, 1256, 1257, 1248, 1245, + 1258, 1258, 1255, 1259, 1259, 1260, 1261, 1262, 1263, 1263, - 1260, 1257, 1254, 1262, 1264, 1261, 1263, 1259, 1266, 1263, - 1265, 1265, 1267, 1266, 1268, 1269, 1270, 1272, 1273, 1275, - 1268, 1274, 1269, 1272, 1273, 1275, 1274, 1276, 1277, 1270, - 1267, 1278, 1279, 1279, 1280, 1282, 1276, 1283, 1284, 1285, - 1286, 1293, 1278, 1287, 1291, 1285, 1286, 1277, 1290, 1287, - 1282, 1292, 1289, 1293, 1280, 1294, 1295, 1283, 1289, 1296, - 1296, 1284, 1290, 1297, 1291, 1298, 1299, 1300, 1290, 1294, - 1302, 1292, 1300, 1303, 1295, 1301, 1301, 1305, 1303, 1307, - 1306, 1309, 1308, 1297, 1299, 1306, 1306, 1310, 1311, 1309, - 1298, 1308, 1312, 1302, 1313, 1314, 1305, 1307, 1315, 1313, + 1260, 1254, 1264, 1265, 1266, 1267, 1265, 1257, 1270, 74, + 1267, 1268, 1269, 1272, 1269, 1273, 1272, 1261, 1262, 1275, + 1268, 1277, 1264, 1274, 1266, 1283, 1270, 1276, 1274, 1277, + 1273, 1278, 1276, 1275, 1279, 1280, 1278, 1279, 1281, 1281, + 1280, 1282, 1284, 1283, 1285, 1286, 1282, 1288, 1284, 1289, + 1291, 1285, 1290, 1288, 1292, 1289, 1291, 1290, 1286, 1293, + 1294, 1295, 1295, 1292, 1296, 1298, 1299, 1300, 1301, 1302, + 1303, 1294, 1307, 1305, 1301, 1302, 1303, 1306, 1293, 1305, + 1298, 1308, 1309, 1313, 1296, 1310, 1299, 1311, 1312, 1312, + 1300, 1306, 1307, 1314, 1309, 1315, 1318, 1306, 1321, 1310, - 1315, 1310, 1313, 1311, 1314, 1316, 1318, 1312, 1322, 1319, - 1312, 1320, 1318, 1319, 1323, 1321, 1324, 1327, 1325, 1316, - 1321, 1321, 1320, 1325, 1326, 1328, 1329, 1322, 1330, 1326, - 1332, 1329, 1333, 1334, 1324, 1327, 1335, 1335, 1336, 1337, - 1323, 1338, 1336, 1339, 1332, 1328, 1340, 1341, 1330, 1339, - 1333, 1334, 1345, 1342, 1343, 1344, 1346, 1337, 1340, 1348, - 1338, 1346, 1349, 1352, 1348, 1347, 1341, 1342, 1350, 1343, - 1344, 1345, 1347, 1351, 1351, 1353, 1354, 1350, 1352, 1356, - 1349, 1355, 1355, 1357, 1353, 1356, 1358, 1359, 1359, 1357, - 1361, 1360, 1362, 1363, 18, 1364, 1354, 1360, 1363, 1365, + 1326, 1308, 1316, 1313, 1323, 1311, 1319, 1316, 1317, 1317, + 1322, 1319, 1324, 1315, 1326, 1322, 1322, 1321, 1314, 1318, + 1325, 1324, 1323, 1327, 1328, 1329, 1330, 1331, 1325, 1331, + 1329, 1332, 1335, 1329, 1334, 1330, 1335, 1336, 1327, 1328, + 1334, 1337, 1328, 1338, 1339, 1332, 1337, 1337, 1336, 1340, + 1341, 1342, 1344, 1343, 1345, 1341, 1342, 1346, 1349, 1345, + 1348, 1350, 1338, 1351, 1351, 1352, 1353, 1340, 1354, 1352, + 1339, 1343, 1344, 1356, 1348, 1355, 1349, 1346, 1357, 1350, + 1358, 1355, 1363, 1359, 1353, 1356, 1360, 1354, 1361, 1363, + 1362, 1364, 1365, 1366, 1358, 1362, 1364, 1357, 1359, 1367, - 1358, 1364, 1366, 1367, 1367, 1365, 1361, 1372, 1366, 1368, - 1368, 1370, 1370, 1362, 1371, 1373, 1372, 1374, 1371, 1377, - 1375, 1376, 1378, 1378, 1379, 1381, 1377, 1380, 1382, 1374, - 1381, 1383, 1384, 1373, 1375, 1380, 1376, 1384, 1384, 1386, - 1385, 1388, 1382, 1389, 1379, 1385, 1385, 1387, 1387, 1390, - 1383, 1391, 1392, 1393, 1394, 1395, 1391, 1397, 1390, 1386, - 1388, 1395, 1389, 1396, 1398, 1399, 1402, 1403, 1396, 1400, - 1398, 1392, 1394, 1393, 1401, 1400, 1404, 1405, 1406, 1407, - 1401, 1416, 1408, 1397, 1399, 1402, 1403, 1409, 1409, 1411, - 1410, 17, 1406, 1410, 1416, 1404, 1405, 1408, 1412, 1412, + 1367, 1360, 1366, 1368, 1369, 1370, 1372, 1361, 1371, 1371, + 1365, 1373, 1372, 1369, 1374, 1375, 1375, 1373, 1368, 1377, + 1376, 1378, 1379, 1380, 1381, 1370, 1376, 1379, 1374, 1380, + 1381, 1382, 1383, 1383, 1389, 1377, 1388, 1382, 1384, 1384, + 1386, 1386, 1378, 1387, 1390, 1388, 1391, 1387, 1392, 1395, + 1393, 1396, 1389, 1394, 1394, 1399, 1390, 1393, 1398, 1396, + 1391, 1397, 1400, 1392, 1402, 1401, 1397, 1400, 1400, 1395, + 1401, 1401, 1398, 1404, 1399, 1403, 1403, 1405, 1406, 1408, + 1407, 1409, 1410, 1411, 1402, 1407, 1412, 1406, 1413, 1411, + 1415, 1412, 1404, 1414, 1418, 1423, 1405, 1416, 1408, 1414, - 1407, 1411, 1413, 1413, 1414, 1417, 1415, 1418, 1421, 1414, - 1415, 1419, 1423, 1419, 1417, 1424, 1422, 1419, 1425, 1427, - 1418, 1422, 1426, 1426, 1427, 1428, 1421, 1423, 1429, 1430, - 1419, 1428, 1431, 1434, 1425, 1424, 1432, 1431, 1435, 1436, - 1432, 1433, 1430, 1429, 1437, 1433, 1438, 1438, 1440, 1442, - 1437, 1446, 1443, 1434, 1444, 1444, 1435, 1443, 1445, 1436, - 1448, 1448, 1450, 1452, 1445, 1450, 1440, 1451, 1451, 1453, - 1442, 1446, 1455, 1456, 1457, 1455, 1458, 1458, 1460, 1452, - 1459, 1461, 1462, 1457, 1463, 1453, 1466, 1462, 1464, 1464, - 1467, 1468, 1465, 1456, 1469, 1459, 1470, 1470, 1463, 1460, + 1410, 1409, 1417, 1416, 1419, 1420, 1421, 1422, 1417, 1415, + 1427, 1424, 1426, 1418, 1413, 1426, 1423, 1425, 1425, 1428, + 1429, 1422, 1434, 1419, 1420, 1421, 1424, 1430, 1430, 1427, + 1431, 1431, 1429, 1433, 1432, 1434, 1435, 1433, 1428, 1432, + 1436, 1437, 1441, 1437, 1439, 1435, 1440, 1437, 1442, 1443, + 1448, 1440, 1446, 1436, 1444, 1444, 1445, 1441, 1446, 1447, + 1437, 1445, 1439, 1448, 1449, 1443, 1450, 1451, 1442, 1449, + 1450, 1451, 1452, 1453, 1447, 1454, 1455, 1456, 1457, 1457, + 1459, 1461, 1462, 1456, 1454, 1463, 1463, 1462, 1464, 1465, + 1469, 1453, 1452, 1469, 1464, 1471, 1455, 1472, 1459, 1467, - 1461, 1465, 1472, 1471, 1466, 1467, 1473, 1474, 1475, 1475, - 1477, 1473, 1478, 1478, 1469, 1476, 1468, 1471, 1479, 1476, - 1472, 1480, 1474, 1481, 1482, 1486, 1483, 1481, 1485, 1485, - 1477, 1483, 1480, 1487, 1488, 1489, 1490, 1491, 1492, 1492, - 1479, 1486, 1493, 1482, 1494, 1495, 1499, 1493, 1488, 1497, - 1490, 1487, 1496, 1496, 1489, 1489, 1498, 1500, 1497, 1500, - 1503, 1498, 1491, 1501, 1494, 1495, 1499, 1502, 1501, 1504, - 1506, 1507, 1507, 1502, 1508, 1504, 1509, 1512, 1511, 1516, - 1503, 1515, 1509, 1511, 1506, 1513, 1513, 1514, 1514, 1517, - 1520, 1518, 1530, 1508, 1518, 1515, 1522, 1516, 1519, 1519, + 1467, 1475, 1461, 1470, 1470, 1474, 1476, 1478, 1474, 1465, + 1479, 1471, 1482, 1472, 1480, 1476, 1477, 1477, 1481, 1483, + 1483, 1475, 1478, 1481, 1485, 1484, 1482, 1487, 1486, 1488, + 1490, 1479, 1491, 1480, 1484, 1489, 1489, 1495, 1493, 1496, + 1492, 1495, 1485, 1486, 1490, 1492, 1494, 1494, 1498, 1488, + 1491, 1499, 1487, 1493, 1497, 1497, 1500, 1501, 1502, 1496, + 1500, 1505, 1499, 1502, 1504, 1504, 1506, 1507, 1508, 1509, + 1498, 1510, 1511, 1511, 1512, 1513, 1501, 1505, 1514, 1512, + 1516, 1507, 1518, 1509, 1506, 1515, 1515, 1508, 1508, 1516, + 1522, 1519, 1517, 1519, 1520, 1513, 1510, 1517, 1514, 1520, - 1521, 1512, 1525, 1523, 1517, 1524, 1523, 1525, 1520, 1523, - 1526, 1524, 1521, 1526, 1528, 1529, 1522, 1530, 1540, 1531, - 1529, 1523, 1531, 1528, 1532, 1532, 1533, 1534, 1538, 1526, - 1535, 1540, 1533, 1534, 1538, 1535, 1536, 1536, 1537, 1537, - 1539, 1541, 1542, 1543, 1544, 1539, 1545, 1544, 1546, 1549, - 1547, 1548, 1545, 1550, 1546, 1547, 1553, 1548, 1550, 1541, - 1554, 1542, 1552, 1543, 1551, 1551, 1555, 1552, 1556, 1557, - 1558, 1559, 1549, 1560, 1553, 1561, 1562, 1563, 1562, 1561, - 1554, 1565, 1556, 1557, 1558, 1566, 1555, 1567, 1568, 1559, - 1569, 1570, 1571, 1565, 1568, 1572, 1563, 1566, 1560, 1573, + 1521, 1523, 1518, 1525, 1526, 1526, 1521, 1523, 1527, 1528, + 1522, 1530, 1531, 1532, 1532, 1528, 1530, 1525, 1533, 1533, + 1534, 1535, 1536, 1537, 1538, 1538, 1537, 1527, 1539, 1540, + 1541, 1549, 1543, 68, 1534, 1544, 1531, 1536, 1543, 1535, + 1544, 1540, 1542, 1547, 1545, 1542, 1539, 1545, 1542, 1548, + 1541, 1552, 1547, 1553, 1548, 1550, 1549, 1552, 1550, 1553, + 1542, 1551, 1551, 1545, 1554, 1555, 1555, 1556, 1556, 1554, + 1557, 1559, 1558, 1560, 1561, 1562, 1557, 1558, 1563, 1564, + 1565, 1563, 1566, 1567, 1559, 1564, 1565, 1566, 1568, 1567, + 1572, 1560, 1569, 1561, 1573, 1562, 1571, 1569, 1570, 1570, - 1567, 1575, 1575, 1576, 1578, 1581, 1577, 1570, 1582, 1572, - 1569, 1577, 1571, 1579, 1579, 1580, 1578, 1583, 1584, 1581, - 1573, 1585, 1586, 1576, 1588, 1587, 1590, 1584, 1592, 1586, - 1580, 1597, 1582, 1596, 1587, 1583, 1585, 1587, 1601, 1593, - 1588, 1590, 1593, 1594, 1594, 1596, 1590, 1595, 1595, 1597, - 1600, 1598, 1604, 1592, 1598, 1599, 1599, 1601, 1605, 1602, - 1603, 1606, 1607, 1600, 1602, 1603, 1608, 1609, 1611, 1611, - 1606, 1604, 1612, 1610, 1605, 1608, 1609, 1613, 1608, 1610, - 1614, 1607, 1615, 1616, 1620, 1617, 1621, 1622, 1622, 1623, - 1613, 1624, 1612, 1626, 1626, 1629, 1615, 1617, 1614, 1616, + 1574, 1571, 1575, 1576, 1577, 1578, 1579, 1582, 1572, 1580, + 1581, 1568, 1581, 1580, 1573, 1584, 1575, 1576, 1577, 1586, + 1574, 1585, 1587, 1578, 1588, 1589, 1582, 1584, 1587, 1590, + 1592, 1579, 1586, 1585, 1591, 1594, 1594, 1595, 1596, 1599, + 1597, 1589, 1600, 1596, 1588, 1598, 1598, 1601, 1591, 1590, + 1602, 1592, 1597, 1603, 1599, 1604, 1600, 1595, 1605, 1607, + 1606, 1609, 1603, 1611, 1612, 1605, 1616, 1612, 1602, 1606, + 1604, 1601, 1606, 1613, 1613, 1607, 1609, 1614, 1614, 1615, + 1617, 1609, 1619, 1617, 1616, 1618, 1618, 1620, 1611, 1621, + 1623, 1615, 1622, 1625, 1621, 1619, 1624, 1622, 1626, 1627, - 1624, 1625, 1627, 1630, 1621, 1623, 1625, 1628, 1626, 1620, - 1631, 1627, 1628, 1629, 1627, 1632, 1634, 1635, 1636, 1638, - 1632, 1632, 1637, 1639, 1630, 1638, 1642, 1637, 1631, 1641, - 1634, 1642, 1635, 1640, 1640, 1641, 1643, 1644, 1646, 1647, - 1636, 1639, 1643, 1644, 1648, 1650, 1649, 1655, 1650, 1651, - 1648, 1656, 1653, 1647, 1650, 1651, 1657, 0, 1646, 1649, - 1653, 1659, 1658, 1660, 1657, 1661, 1655, 1662, 1663, 1663, - 1656, 1658, 1664, 1666, 1659, 1668, 1660, 1665, 1664, 1661, - 1669, 1662, 1670, 1665, 1667, 1667, 1666, 1671, 1671, 1672, - 1663, 1673, 1674, 1675, 1676, 1668, 1679, 1673, 1669, 1678, + 1631, 1628, 1625, 1630, 1630, 1632, 1620, 1629, 1627, 1623, + 1628, 1627, 1624, 1629, 1633, 1634, 1636, 1626, 1632, 1635, + 1631, 1636, 1636, 1637, 1638, 1641, 1642, 1644, 1637, 1634, + 1643, 1643, 1633, 1645, 1646, 1635, 1638, 1647, 1647, 1646, + 1650, 1649, 1645, 1644, 1642, 1648, 1649, 1651, 1652, 1655, + 1641, 1657, 1647, 1664, 1648, 1653, 1656, 1648, 1650, 1658, + 1653, 1653, 1660, 1655, 1658, 1663, 1652, 1664, 1651, 1659, + 1663, 1656, 1662, 1657, 1668, 1659, 1661, 1661, 1662, 1665, + 1660, 1666, 1669, 1670, 1671, 1665, 1673, 1666, 1677, 1670, + 1672, 1678, 1673, 1672, 1668, 1675, 1669, 1671, 1679, 1672, - 1678, 1670, 1672, 1680, 1685, 1681, 1682, 1680, 1683, 1675, - 1681, 1682, 1676, 1683, 1674, 1684, 1679, 1687, 1688, 1689, - 1689, 1690, 1691, 1692, 1684, 1693, 1693, 1685, 1695, 1687, - 1694, 1696, 1699, 1688, 1691, 1695, 1697, 1700, 1702, 1701, - 1690, 1703, 1692, 1696, 1694, 1701, 1704, 1710, 1697, 0, - 1702, 1699, 1704, 1705, 1705, 1706, 1710, 1700, 1706, 1703, - 1707, 1707, 1709, 1711, 1712, 1712, 1713, 1709, 1714, 1711, - 1714, 1715, 1716, 1717, 1715, 1718, 1719, 1720, 1713, 1721, - 1722, 1724, 1720, 1725, 1721, 1723, 1727, 1730, 1725, 1722, - 1726, 0, 1716, 1718, 1719, 1717, 1724, 1723, 1728, 1726, + 1680, 1681, 1682, 1675, 1683, 1684, 1679, 1677, 1688, 1680, + 1678, 1685, 1685, 1691, 1681, 1682, 1686, 1687, 1683, 1684, + 1690, 1688, 1686, 1687, 1689, 1689, 1692, 1693, 1693, 1694, + 1695, 1691, 1696, 1685, 1697, 1698, 1695, 1700, 1700, 1701, + 1690, 1703, 1694, 1702, 1704, 1692, 1703, 1702, 1706, 1704, + 1697, 1705, 1707, 1698, 1696, 1709, 1705, 1706, 1710, 1701, + 1711, 1711, 1712, 1714, 1713, 1715, 1715, 1709, 1718, 1716, + 1717, 1721, 1719, 1710, 1722, 1707, 1713, 1717, 1725, 1723, + 1718, 1712, 1714, 1716, 1719, 1723, 1724, 1726, 1727, 1727, + 1721, 63, 1728, 1726, 1722, 1728, 1725, 1731, 1724, 1729, - 1729, 1733, 1730, 1728, 1735, 1729, 1727, 1731, 1731, 1732, - 1728, 1736, 1726, 1737, 1738, 1732, 1739, 1740, 1739, 1741, - 1741, 1744, 1733, 1735, 1742, 1742, 1743, 1743, 1747, 1737, - 1736, 1740, 1748, 1740, 1738, 1745, 1745, 1746, 1746, 1749, - 1749, 1744, 1750, 1755, 1751, 1752, 1750, 1757, 1752, 1747, - 1751, 1754, 1756, 1748, 1759, 1759, 1758, 1754, 1756, 1758, - 1760, 1755, 1761, 1762, 1762, 1764, 1763, 1761, 1765, 1766, - 1766, 1767, 1757, 1765, 1771, 1769, 1767, 1768, 1770, 1772, - 1760, 1763, 1774, 1768, 1773, 1778, 1764, 1769, 1769, 1769, - 1773, 1776, 1771, 1777, 1769, 1780, 1776, 1776, 1770, 1772, + 1729, 1732, 1731, 1733, 1734, 1734, 1735, 1738, 1739, 1733, + 1732, 1736, 1737, 1736, 1740, 1737, 1741, 1742, 1735, 1743, + 1744, 1745, 1742, 1746, 1743, 1749, 1747, 1738, 1748, 1744, + 1739, 1747, 1740, 1745, 1741, 1750, 1751, 1748, 1746, 1752, + 1750, 1751, 1753, 1753, 1755, 1749, 1754, 1750, 1757, 1758, + 1748, 1760, 1754, 1759, 1752, 1761, 1762, 1761, 1763, 1763, + 1764, 1764, 1765, 1765, 1766, 1755, 1769, 1757, 1758, 1759, + 1762, 1760, 1762, 1767, 1767, 1768, 1768, 1770, 1771, 1771, + 1773, 1772, 1777, 1776, 1766, 1772, 1773, 1769, 1774, 1776, + 1778, 1774, 1779, 1782, 1780, 1785, 1778, 1780, 1770, 1783, - 1778, 1779, 1774, 1779, 1781, 1782, 1780, 1777, 1783, 1784, - 1785, 1782, 1786, 1786, 1787, 1788, 1788, 1783, 1789, 1781, - 1790, 1791, 1791, 1792, 1792, 1793, 1796, 1796, 1797, 1784, - 1798, 1785, 1800, 1801, 1803, 1803, 1804, 1802, 1789, 1798, - 1787, 1800, 1790, 1802, 1805, 1793, 1808, 1807, 1806, 1809, - 1809, 1810, 1811, 1797, 1801, 1806, 1807, 1804, 1813, 1805, - 1814, 1815, 1816, 1813, 1817, 1818, 1814, 1821, 1811, 1816, - 1817, 1818, 1808, 1819, 1819, 1820, 1821, 1810, 1822, 1824, - 1820, 1815, 1823, 1825, 1826, 1827, 1825, 1828, 1828, 1829, - 1830, 1824, 1831, 1832, 1835, 1829, 1830, 1839, 1822, 1833, + 1777, 1781, 1781, 1786, 1783, 1784, 1784, 1787, 1788, 1788, + 1785, 1789, 1787, 1782, 1790, 1791, 1789, 1779, 1792, 1793, + 1790, 1794, 1796, 58, 1786, 1795, 1799, 1791, 1791, 1791, + 1798, 1795, 1800, 1802, 1791, 1798, 1798, 1793, 1792, 1803, + 1799, 1794, 1796, 1801, 1802, 1801, 1804, 1800, 1805, 1806, + 1807, 1809, 1804, 1811, 1803, 1808, 1808, 1805, 1810, 1810, + 1812, 1813, 1813, 1814, 1814, 1815, 1818, 1818, 1819, 1806, + 1820, 1807, 1822, 1811, 1823, 1825, 1825, 1809, 1824, 1820, + 1826, 1822, 1812, 1827, 1824, 1815, 1830, 1828, 1829, 1831, + 1831, 1832, 1833, 1819, 1828, 1823, 1836, 1829, 1827, 1835, - 1836, 1823, 1826, 1833, 1837, 1838, 1838, 1842, 1832, 1837, - 1840, 1827, 1831, 1843, 1835, 1844, 1839, 1843, 1845, 1833, - 1848, 1844, 1836, 1846, 1846, 1840, 1842, 1845, 1847, 1849, - 1849, 1848, 1847, 1850, 1851, 1853, 1848, 1852, 1854, 1855, - 1853, 1856, 1857, 1863, 1858, 1859, 1859, 1856, 1851, 1858, - 1860, 1860, 1863, 1865, 1850, 1864, 1852, 1857, 1854, 1855, - 1861, 1866, 1866, 1873, 1861, 1881, 1864, 1868, 1868, 1869, - 1870, 1864, 1872, 1865, 1869, 1869, 1870, 1874, 1872, 1875, - 1876, 1878, 1874, 1879, 1880, 1883, 1876, 1879, 1882, 1873, - 1881, 1875, 1884, 1878, 1882, 1885, 1880, 1886, 1884, 1888, + 1837, 1826, 1836, 1838, 1835, 1839, 1842, 1840, 1833, 1840, + 1838, 1839, 1830, 1843, 1844, 1844, 1845, 1832, 1846, 1843, + 1837, 1845, 1847, 1849, 1848, 1842, 1850, 1846, 1851, 1850, + 1852, 1853, 1853, 1854, 1855, 1849, 1857, 1856, 1860, 1854, + 1855, 1858, 1847, 1848, 1861, 1858, 1851, 1862, 1863, 1863, + 1864, 1857, 1862, 1865, 1867, 1868, 1852, 1856, 1860, 1868, + 1876, 1858, 1869, 1869, 1870, 1871, 1861, 1874, 1865, 1864, + 1870, 1872, 1872, 1867, 1871, 1873, 1875, 1875, 1874, 1873, + 1877, 1876, 1878, 1874, 1879, 1880, 1881, 1882, 1883, 1879, + 1884, 1885, 1885, 1882, 1877, 1884, 1886, 1886, 1887, 1889, - 1885, 1889, 1892, 1890, 1896, 1892, 1922, 1883, 1890, 1886, - 1922, 1888, 1893, 1893, 1894, 1894, 1895, 1895, 1899, 1897, - 1889, 1898, 1900, 1899, 1896, 1897, 1901, 1898, 1900, 1903, - 1905, 1906, 1909, 1905, 1903, 1901, 1907, 1907, 1910, 1913, - 1911, 1912, 1912, 1906, 1909, 1911, 1914, 1915, 1913, 1918, - 1910, 1914, 1915, 1916, 1917, 1917, 1916, 1919, 1920, 1921, - 1923, 1924, 1925, 1926, 1927, 1923, 1919, 1924, 1931, 1918, - 1928, 1933, 1926, 1930, 1930, 1936, 1920, 1937, 1921, 1932, - 1925, 0, 1927, 1935, 1928, 1930, 1931, 1936, 1932, 1934, - 1934, 1933, 1935, 1939, 1938, 1942, 1942, 1944, 1937, 1938, + 1890, 1878, 1887, 1883, 1891, 1880, 1881, 1899, 1889, 1892, + 1892, 1890, 1894, 1894, 1895, 1896, 1890, 1898, 1901, 1895, + 1895, 1896, 1900, 1898, 1891, 1902, 1904, 1900, 1905, 1906, + 1901, 1902, 1905, 1899, 1907, 1909, 1908, 1910, 1904, 1911, + 1912, 1906, 1908, 1910, 1911, 1915, 1914, 1918, 1916, 1922, + 1918, 1925, 1912, 1916, 1919, 1919, 1925, 1909, 1914, 1907, + 1920, 1920, 1921, 1921, 1915, 1923, 1924, 1926, 1927, 1922, + 1929, 1923, 1924, 1926, 1932, 1929, 1931, 1927, 1935, 1931, + 1933, 1933, 1936, 1937, 1938, 1938, 1932, 1939, 1937, 1944, + 1935, 1947, 1940, 1941, 1936, 1945, 1939, 1940, 1941, 1942, - 1944, 1945, 1946, 1950, 1948, 1951, 1939, 1949, 1960, 1950, - 1952, 1952, 1953, 0, 1953, 1954, 1954, 1945, 1946, 1948, - 1955, 1949, 1951, 1957, 1957, 1958, 1958, 1961, 1955, 1962, - 1963, 1960, 1964, 1961, 1967, 1962, 1965, 1963, 1966, 1966, - 1968, 1969, 1973, 1967, 1971, 1970, 1972, 1974, 1978, 1977, - 0, 1979, 1981, 1969, 1964, 1982, 1965, 1970, 1972, 1971, - 1975, 1968, 1974, 1979, 1980, 1980, 1975, 1984, 1973, 1977, - 1981, 1978, 1984, 1983, 1985, 1982, 1983, 1987, 1988, 1975, - 1988, 1989, 1987, 1990, 1991, 1995, 1993, 1996, 1990, 1997, - 1998, 1991, 1998, 1999, 1985, 1993, 1996, 2002, 2001, 1989, + 1943, 1943, 1942, 1946, 1945, 1951, 1950, 1948, 1949, 1944, + 1947, 1948, 1950, 1949, 1953, 1952, 1954, 1956, 1956, 1957, + 1959, 1946, 1958, 1951, 1952, 1960, 1960, 1961, 1963, 1956, + 1954, 1958, 1953, 1962, 1964, 1965, 1961, 1957, 1971, 1964, + 1959, 1968, 1968, 1970, 1972, 1962, 1970, 1974, 1965, 1963, + 1975, 1976, 1977, 1986, 1971, 1978, 1978, 1976, 57, 1979, + 1972, 1979, 1974, 1981, 1975, 1980, 1980, 1983, 1983, 1977, + 1989, 1981, 1984, 1984, 1987, 1988, 1986, 1989, 1990, 1991, + 1987, 1988, 1992, 1992, 1993, 1994, 1995, 1997, 1999, 1996, + 2000, 1998, 2003, 1993, 2004, 2005, 2006, 2006, 1995, 1991, - 2001, 1997, 2004, 1995, 2003, 2003, 2009, 2006, 2005, 2006, - 2007, 2002, 1999, 2005, 2008, 2007, 2010, 2011, 2013, 2008, - 2012, 2014, 2016, 2011, 2009, 2012, 2017, 2020, 2004, 2014, - 2021, 2013, 2018, 2018, 2019, 2019, 2010, 2022, 2025, 2023, - 2017, 2016, 2020, 2022, 2023, 2024, 2026, 2024, 2027, 2027, - 2021, 2028, 2029, 2029, 2026, 2031, 2025, 2030, 2030, 2033, - 2032, 2035, 2026, 2028, 2031, 2032, 2036, 2037, 2036, 2038, - 2035, 2039, 2040, 2035, 2038, 2038, 2043, 2033, 2042, 2046, - 2039, 2043, 2044, 2047, 2040, 2048, 2050, 2044, 2037, 2051, - 2042, 2053, 2046, 2052, 2048, 2049, 2049, 2054, 2056, 2057, + 1990, 1996, 1997, 1998, 2001, 2000, 1994, 2005, 2007, 2008, + 2001, 2011, 2003, 2009, 1999, 2010, 2009, 2004, 2015, 2013, + 2010, 2021, 52, 2001, 2013, 2014, 2007, 2014, 2016, 2008, + 2017, 2011, 2019, 2016, 2022, 2023, 2015, 2017, 2024, 2021, + 2024, 2019, 2025, 2022, 2027, 2028, 2027, 2023, 2029, 2029, + 2030, 2031, 2032, 2033, 2032, 2034, 2031, 2035, 2033, 2028, + 2034, 2025, 2036, 2037, 2039, 2038, 2040, 2041, 2044, 2037, + 2038, 2042, 2041, 2041, 2045, 2035, 2030, 2039, 2040, 2042, + 2046, 2046, 2036, 2047, 2047, 2048, 2049, 2044, 2045, 2050, + 2052, 2051, 2052, 2053, 2054, 2050, 2051, 2055, 2055, 47, - 2058, 2059, 2067, 2047, 2050, 2053, 2059, 2051, 2060, 2052, - 2056, 2057, 2054, 2060, 2061, 2064, 2066, 2068, 2069, 2070, - 2058, 2064, 2066, 2061, 2071, 2067, 2072, 2072, 2073, 2074, - 2074, 2075, 2068, 2071, 2064, 2076, 2069, 2073, 2077, 2076, - 2078, 2079, 2080, 2077, 2070, 2081, 2082, 2080, 2080, 2085, - 2075, 2081, 2082, 2078, 2083, 2094, 2084, 2083, 2088, 2088, - 2089, 2089, 2090, 2079, 2084, 2091, 2091, 2092, 2092, 2085, - 2093, 2090, 2095, 2094, 2096, 2089, 2097, 2097, 2095, 2096, - 2098, 2098, 2093, 2099, 2100, 2102, 2089, 2103, 2099, 2102, - 2100, 2104, 2105, 2107, 2108, 2104, 2109, 2111, 2110, 2108, + 2048, 2056, 2054, 2057, 2057, 2059, 2049, 2058, 2058, 2061, + 2054, 2053, 2060, 2056, 2059, 2065, 2063, 2060, 2064, 2067, + 2064, 2069, 2071, 2068, 2066, 2063, 2075, 2061, 2063, 2066, + 2066, 2067, 2068, 2069, 2071, 2072, 2065, 2073, 2076, 2075, + 2072, 2077, 2073, 2078, 2078, 2079, 2080, 2082, 2085, 2081, + 2077, 2083, 2087, 2099, 2088, 2086, 2096, 2089, 2076, 2088, + 2085, 2082, 2089, 2079, 2080, 2081, 2083, 2086, 2090, 2093, + 2095, 2097, 2087, 2098, 2100, 2093, 2095, 2090, 2099, 2096, + 2101, 2101, 2104, 2100, 2102, 2107, 2097, 2108, 2093, 2103, + 2103, 2098, 2105, 2102, 2106, 18, 2105, 2109, 2107, 2106, - 2113, 2115, 2111, 2112, 2114, 2116, 2115, 2103, 2117, 2117, - 2118, 2119, 2105, 2110, 2118, 2120, 2113, 2121, 2107, 2109, - 2120, 2112, 2122, 2123, 2114, 2124, 2119, 2116, 2125, 2126, - 2127, 2128, 2128, 2125, 2131, 2123, 2132, 2130, 2133, 2134, - 2122, 2135, 2126, 2121, 2124, 2130, 2136, 2137, 2127, 2138, - 2140, 2142, 2143, 2131, 0, 2132, 2144, 2146, 2146, 2137, - 2135, 2133, 2144, 2134, 2142, 2140, 2143, 2136, 2147, 2145, - 2138, 2145, 2148, 2147, 2149, 2148, 2150, 2156, 2151, 2152, - 2152, 2153, 2153, 2154, 2157, 2154, 2159, 2149, 2155, 2155, - 2150, 2151, 2156, 2158, 2158, 2159, 2165, 2157, 2159, 2160, + 2110, 2104, 2109, 2109, 2111, 2112, 2110, 2113, 2112, 2108, + 2111, 2114, 2117, 2117, 2119, 2113, 2122, 2118, 2118, 2120, + 2120, 2121, 2121, 2119, 2123, 2125, 17, 2124, 2122, 2132, + 2125, 2114, 2118, 2124, 2126, 2126, 2127, 2127, 2134, 2128, + 2129, 2131, 2123, 2118, 2128, 2131, 2129, 2133, 2136, 2132, + 2137, 2133, 2138, 2139, 2140, 2137, 2141, 2143, 2134, 2140, + 2142, 2144, 2145, 2146, 2146, 2147, 2144, 2148, 2139, 2147, + 2150, 2151, 2155, 2136, 2141, 2138, 2142, 2143, 2149, 2152, + 2153, 2154, 2148, 2149, 2145, 2155, 2154, 2156, 2160, 2151, + 2159, 2152, 2157, 2157, 2161, 2162, 2150, 2163, 2159, 2153, - 2160, 2161, 2161, 2162, 2164, 2166, 2167, 2170, 2162, 2164, - 2168, 2168, 2169, 2169, 2171, 2171, 2165, 2172, 2167, 2173, - 2173, 2174, 2175, 2176, 2176, 2166, 2170, 2175, 2177, 2177, - 2178, 2179, 2180, 2181, 2183, 2172, 2174, 2184, 2184, 2183, - 2179, 2185, 2186, 2186, 2178, 2187, 2180, 2188, 2189, 2190, - 2190, 2189, 2181, 2188, 2191, 2191, 2192, 2193, 2194, 2197, - 2185, 2195, 2195, 2187, 2198, 2190, 2199, 2200, 2201, 2201, - 2202, 2200, 2193, 2203, 2208, 2192, 2204, 2194, 2203, 2197, - 2205, 2199, 2207, 2207, 2210, 2209, 2211, 2198, 2212, 2202, - 2213, 2204, 2209, 2215, 2208, 2205, 2214, 2214, 2210, 2216, + 2164, 2165, 2166, 2167, 2171, 2156, 2172, 2160, 2169, 2173, + 2174, 2176, 2174, 2161, 2166, 2173, 2176, 2171, 2162, 2164, + 2172, 2163, 2165, 2169, 2167, 2175, 2175, 2177, 2178, 2179, + 2177, 2180, 2181, 2181, 2182, 2182, 2183, 2185, 2183, 2184, + 2184, 2178, 2186, 2179, 2180, 2187, 2187, 2188, 2189, 2189, + 2190, 2190, 2185, 2191, 2194, 2186, 2188, 2193, 2191, 2188, + 2195, 2196, 2193, 2197, 2197, 2198, 2198, 2199, 2200, 2200, + 2201, 2202, 2202, 2196, 2194, 2203, 2204, 2205, 2205, 2207, + 2195, 2204, 2206, 2206, 2209, 2208, 2199, 2210, 2201, 2214, + 2203, 2212, 2216, 2207, 2208, 0, 2212, 2217, 2209, 2213, - 2217, 2216, 2215, 2217, 2211, 2219, 2212, 2220, 2221, 2222, - 2223, 2224, 2220, 2221, 2225, 2226, 2213, 2219, 2217, 2225, - 2217, 2228, 2229, 2223, 2230, 2231, 2228, 2229, 2232, 2233, - 2236, 2231, 2224, 2234, 2222, 2233, 2239, 2235, 2234, 2230, - 2237, 2226, 2235, 2238, 2243, 2239, 2238, 2240, 2241, 2232, - 2242, 2248, 0, 2237, 2244, 2236, 2240, 2241, 2243, 2242, - 2244, 2245, 2246, 2250, 2251, 2251, 2246, 2245, 2252, 2253, - 2253, 2248, 2250, 2255, 2252, 2254, 2257, 2261, 2253, 2260, - 2254, 2258, 2259, 2259, 2263, 2264, 2261, 2265, 2266, 2270, - 2272, 2272, 2257, 2255, 2260, 2255, 2263, 2258, 2271, 2269, + 2213, 2215, 2215, 2217, 2218, 2221, 2210, 2218, 2214, 2226, + 2216, 2219, 2219, 2220, 2220, 2222, 2223, 2225, 2223, 2227, + 2227, 2229, 2230, 2231, 2221, 2232, 2240, 2219, 2226, 2232, + 2222, 2234, 2225, 2233, 2233, 2235, 2236, 2237, 2231, 2242, + 2235, 2229, 2239, 2239, 2243, 2230, 2240, 2241, 2244, 2245, + 2234, 2236, 2237, 2242, 2241, 2246, 2246, 2248, 2247, 2248, + 2249, 2252, 2243, 2249, 2251, 2255, 2244, 2247, 2256, 2253, + 2251, 2254, 2257, 2252, 2253, 2245, 2254, 2258, 2249, 2259, + 2249, 2256, 2258, 2261, 2262, 2263, 2264, 2265, 2261, 2262, + 2255, 2266, 2264, 2257, 2267, 2269, 2268, 2266, 2270, 2267, - 2266, 2264, 2265, 2268, 2269, 0, 2268, 2273, 2273, 2270, - 2271, 2275, 2275, 2276, 2277, 2278, 2276, 2279, 2280, 2277, - 2282, 2278, 2285, 2279, 2281, 2281, 2284, 2280, 2283, 2283, - 2286, 2287, 2287, 2288, 2282, 2290, 2285, 2289, 2284, 2288, - 2290, 2292, 2298, 2293, 2296, 2292, 2293, 2294, 2294, 2286, - 2295, 2289, 2297, 2296, 2299, 2295, 2300, 2300, 2299, 2301, - 2303, 2297, 2298, 2304, 2305, 2303, 2306, 2307, 2308, 2309, - 2310, 2307, 2301, 2311, 2309, 2312, 2310, 2313, 2314, 2311, - 2306, 2315, 2316, 2304, 2305, 2319, 2315, 2318, 2308, 2320, - 2328, 2328, 2321, 2312, 2320, 2327, 2313, 2314, 2321, 2318, + 2263, 2268, 2281, 2271, 2272, 2259, 2271, 2273, 2265, 2274, + 2275, 2270, 2276, 2272, 0, 2277, 2273, 2278, 2274, 2275, + 2269, 2277, 2281, 2278, 2279, 2283, 2276, 2285, 2279, 2284, + 2284, 2286, 2286, 2285, 2283, 2288, 2287, 2290, 2291, 2294, + 2286, 2287, 2292, 2292, 2293, 2297, 2296, 2298, 2294, 2301, + 2303, 2299, 2301, 2290, 2291, 2288, 2304, 2288, 2296, 2293, + 2302, 2297, 2298, 2299, 2310, 2302, 2305, 2305, 2304, 2310, + 2303, 2306, 2306, 2308, 2308, 2309, 2311, 2312, 2309, 2313, + 2314, 2314, 2311, 2312, 2315, 2316, 2316, 2317, 2313, 2318, + 2319, 2320, 2320, 2322, 2321, 2329, 2323, 0, 2315, 2317, - 2322, 2319, 2323, 2316, 2323, 2325, 2330, 2329, 2322, 2327, - 2329, 2331, 2331, 2334, 2325, 2335, 2336, 2334, 2337, 2337, - 2338, 2335, 2341, 2341, 2343, 2345, 2349, 2346, 2336, 2338, - 2350, 2349, 2330, 2351, 2359, 2352, 2353, 2353, 2351, 2345, - 2352, 2357, 2343, 2346, 2355, 2355, 2360, 2357, 2358, 2358, - 2359, 2363, 2361, 2364, 2365, 2365, 2350, 2361, 2367, 2369, - 2368, 2370, 2372, 2372, 2374, 2364, 2368, 2367, 2360, 2373, - 2363, 2375, 2373, 2377, 2377, 2379, 2370, 2369, 2378, 2378, - 2379, 2380, 2381, 2374, 2383, 2382, 2383, 2384, 2385, 2375, - 2382, 2381, 2386, 2387, 2388, 2389, 2390, 2390, 2387, 2380, + 2321, 2323, 2325, 2318, 2329, 2326, 2325, 2322, 2326, 2319, + 2327, 2327, 2328, 2330, 2331, 2332, 2334, 2328, 2336, 2332, + 2333, 2333, 2330, 2336, 2337, 2338, 2339, 2340, 2341, 2334, + 2342, 2340, 2343, 2344, 2331, 2342, 2345, 2346, 2343, 2344, + 2339, 2347, 2348, 2349, 2337, 2338, 2351, 2348, 2341, 2352, + 2353, 2354, 2363, 2355, 2345, 2353, 2346, 2354, 2351, 2360, + 2347, 2355, 2358, 2367, 2349, 2352, 2356, 2367, 2356, 2361, + 2361, 2358, 2362, 2360, 2368, 2362, 2364, 2364, 2363, 2369, + 2368, 2370, 2370, 2371, 2374, 2374, 2376, 2378, 2382, 2379, + 2383, 2369, 2371, 2382, 2384, 2385, 2386, 2386, 2392, 2384, - 2389, 2384, 2385, 2394, 2386, 2391, 2391, 2392, 2392, 2393, - 2393, 2395, 2396, 2399, 2388, 2394, 2400, 2396, 2397, 2397, - 2398, 2398, 2401, 2402, 2404, 2399, 2403, 2403, 2400, 2395, - 2405, 2405, 2406, 2406, 2407, 2408, 2410, 2409, 2411, 2402, - 2413, 2412, 2401, 2404, 2409, 2407, 2412, 2408, 2410, 2414, - 2415, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2411, 2430, - 2413, 2416, 2425, 2422, 2423, 2423, 2426, 2424, 2419, 2414, - 2428, 2421, 2429, 2432, 2418, 2422, 2424, 2425, 0, 2417, - 2420, 2426, 2430, 2431, 2433, 2434, 2431, 2432, 2428, 2433, - 2434, 2435, 2435, 2442, 2429, 2436, 2436, 2437, 2437, 2439, + 2385, 2378, 2388, 2388, 2376, 2379, 2390, 2391, 2391, 2393, + 2394, 2396, 2390, 2398, 2392, 2394, 2383, 2397, 2400, 2400, + 2397, 2399, 2403, 2402, 2404, 2398, 2405, 2409, 2403, 2410, + 2396, 2393, 2402, 2399, 2407, 2407, 2408, 2412, 2412, 2408, + 2414, 2405, 2404, 2413, 2413, 2414, 2409, 2410, 2415, 2416, + 2417, 2418, 2421, 2418, 2419, 2417, 2420, 2422, 2416, 2423, + 2424, 2489, 2422, 2489, 2421, 0, 2415, 2425, 2419, 2431, + 2420, 2430, 2425, 2426, 2426, 2427, 2427, 2428, 2428, 2423, + 2424, 2429, 2429, 2430, 2432, 2433, 2433, 2431, 2435, 2432, + 2434, 2434, 2436, 2437, 2438, 2439, 2439, 2440, 2441, 2441, - 2439, 2441, 2441, 2443, 2444, 2445, 2447, 2448, 2449, 2450, - 2451, 2442, 2452, 2453, 2443, 2453, 2454, 2455, 2461, 2451, - 2445, 2456, 2462, 2444, 2460, 2448, 2447, 2457, 2457, 2450, - 2449, 2462, 2452, 2459, 2459, 2455, 2454, 2465, 2460, 2456, - 2461, 2463, 2463, 2466, 2466, 2467, 2465, 2468, 2469, 2470, - 2471, 2472, 2474, 2477, 2473, 2469, 2475, 2475, 2476, 2476, - 2478, 2479, 2483, 2467, 2470, 2468, 2482, 2479, 2471, 2472, - 2473, 2474, 2482, 2477, 2480, 2480, 2481, 2481, 2478, 2484, - 2483, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2487, 2491, - 2496, 2490, 2492, 2492, 2484, 2493, 2486, 2493, 2494, 2494, + 2435, 2442, 2442, 2443, 2436, 2444, 2446, 2447, 2445, 2449, + 2438, 2450, 2453, 2437, 2443, 2445, 2440, 2444, 2446, 2448, + 2451, 2451, 2454, 2452, 2448, 2456, 2455, 2447, 2458, 2449, + 2457, 2450, 2452, 2459, 2459, 2461, 2460, 2462, 2453, 2455, + 2458, 2464, 2454, 2465, 2457, 2460, 2466, 2468, 2467, 2456, + 2461, 2467, 2462, 2469, 0, 2470, 2471, 2471, 2469, 2464, + 2470, 2468, 2472, 2472, 2478, 2465, 2473, 2473, 2479, 2466, + 2475, 2475, 2477, 2477, 2480, 2481, 2483, 2484, 2485, 2479, + 2487, 2486, 2478, 2488, 2490, 2493, 2493, 2491, 2492, 2487, + 2481, 2495, 2495, 2480, 2496, 2484, 2483, 2497, 2498, 2503, - 2485, 2498, 2499, 2500, 2488, 2489, 2501, 2502, 2503, 2496, - 2498, 2504, 2502, 2507, 2508, 2500, 2510, 2508, 2509, 2509, - 2511, 2499, 2512, 2512, 2515, 2513, 2501, 2518, 2503, 2513, - 2504, 2510, 2516, 2507, 2517, 2517, 2516, 2520, 2511, 2515, - 2518, 2521, 2522, 2523, 2523, 2525, 2526, 2527, 2528, 2528, - 2529, 2527, 2520, 2530, 2530, 2526, 2532, 2525, 2531, 2533, - 2534, 2521, 2522, 2531, 2541, 2532, 2535, 2535, 2543, 2529, - 2540, 2540, 2534, 2542, 2542, 2533, 2544, 2548, 2545, 2546, - 2555, 2543, 2547, 2547, 2550, 2550, 2541, 2545, 2546, 2544, - 2553, 2554, 2548, 2556, 2555, 2553, 2554, 2557, 2556, 2558, + 2485, 2486, 2501, 2488, 2490, 2491, 2492, 2498, 2496, 2499, + 2499, 2501, 2502, 2502, 2504, 2505, 2506, 2503, 2507, 2497, + 2508, 2509, 2505, 2510, 2511, 2511, 2512, 2512, 2513, 2514, + 2520, 2506, 2504, 2515, 2516, 2516, 2507, 2509, 2508, 2515, + 2517, 2517, 2510, 2518, 2519, 2520, 2521, 2514, 2513, 2518, + 2522, 2523, 2524, 2525, 2526, 2527, 2523, 2527, 2532, 2526, + 2528, 2528, 2519, 2535, 2522, 2521, 2529, 2534, 2529, 2530, + 2530, 2536, 2524, 2525, 2537, 2538, 2534, 2532, 2539, 2543, + 2538, 2540, 2535, 2536, 2544, 2545, 2545, 2544, 2546, 2547, + 2548, 2548, 2551, 2549, 2537, 2550, 2551, 2553, 2539, 2543, - 2559, 2562, 2560, 2563, 2565, 2557, 2564, 2571, 2563, 2559, - 2560, 2564, 2566, 2566, 2567, 2567, 2562, 2569, 2558, 2565, - 2568, 2568, 2570, 2572, 2569, 2571, 2573, 2570, 2574, 2575, - 2575, 2576, 2573, 2574, 2577, 2578, 2578, 2579, 2579, 2577, - 2582, 2572, 2583, 2583, 2584, 2585, 2576, 2584, 2588, 2586, - 2585, 2585, 2587, 2582, 2586, 2589, 2590, 2587, 2591, 2592, - 2590, 2589, 2588, 2591, 2593, 2594, 2595, 2598, 2592, 2596, - 2597, 2599, 2598, 2594, 2601, 2596, 2597, 2602, 2605, 2593, - 2609, 2601, 2602, 2599, 2607, 2603, 2608, 2595, 2603, 2607, - 2605, 2608, 2610, 2611, 2612, 2613, 2613, 2614, 2609, 2617, + 2540, 2554, 2556, 2546, 2549, 2554, 2558, 2547, 2555, 2555, + 2550, 2559, 2553, 2560, 2563, 2556, 2561, 2561, 2564, 2565, + 2567, 2558, 2571, 2565, 2566, 2566, 2563, 2564, 2568, 2568, + 2569, 2559, 2570, 2560, 2572, 2569, 2573, 2580, 2571, 2567, + 2582, 2570, 2574, 2574, 2579, 2579, 2572, 2581, 2581, 2583, + 2587, 2584, 2585, 2582, 2586, 2586, 2573, 2589, 2589, 2580, + 2584, 2585, 2583, 2592, 2593, 2587, 2594, 2595, 2592, 2593, + 2596, 2597, 2595, 2598, 2601, 2599, 2602, 2604, 2596, 2603, + 2594, 2602, 2598, 2599, 2603, 2605, 2605, 2606, 2606, 2601, + 2597, 2608, 2604, 2607, 2607, 2609, 2610, 2611, 2608, 2612, - 2622, 2618, 2611, 2612, 2619, 2610, 2614, 2618, 2623, 2626, - 2619, 2624, 2625, 2625, 2627, 2628, 2626, 2617, 2631, 2622, - 2629, 2630, 2630, 2633, 2628, 2635, 2638, 2636, 2623, 2644, - 2624, 2636, 0, 2627, 2644, 2629, 2639, 2631, 2633, 2637, - 2637, 2640, 2639, 2641, 2650, 2635, 2643, 2640, 2646, 2641, - 2647, 2638, 2642, 2642, 2643, 2649, 2651, 2646, 2650, 2649, - 2653, 2653, 2654, 2647, 2655, 2655, 2656, 2656, 2658, 2658, - 2659, 2651, 2660, 2664, 2659, 2662, 2662, 2660, 2665, 2666, - 2654, 2667, 2669, 2665, 2670, 2670, 2667, 2667, 2672, 2672, - 2675, 2666, 2677, 2664, 2673, 2673, 2674, 2679, 2683, 2674, + 2609, 2613, 2614, 2614, 2615, 2612, 2613, 2616, 2617, 2617, + 2618, 2618, 2616, 2621, 2610, 2611, 2622, 2622, 2623, 2615, + 2625, 2623, 2624, 2627, 2626, 2625, 2621, 2624, 2624, 2626, + 2628, 2629, 2631, 2630, 2632, 2629, 2628, 2627, 2630, 2633, + 2634, 2631, 2635, 2638, 2636, 2640, 2637, 2633, 2635, 2632, + 2636, 2637, 2640, 2641, 2642, 2638, 2644, 2642, 2641, 2646, + 2647, 2634, 2648, 2649, 2646, 2647, 2650, 2656, 2644, 2651, + 2652, 2652, 2653, 2657, 2661, 2650, 2649, 2658, 2651, 2657, + 2648, 2653, 2662, 2658, 2663, 2656, 2664, 2664, 2665, 2666, + 2667, 2668, 2670, 2661, 2672, 2665, 2669, 2669, 2674, 2667, - 2680, 2680, 2669, 2675, 2681, 2681, 2682, 2682, 2684, 2684, - 2677, 2685, 2686, 2683, 2687, 2688, 2690, 2679, 2689, 2689, - 2690, 2688, 2695, 2696, 2685, 2700, 2694, 2697, 2687, 2698, - 2686, 2694, 2694, 2699, 2701, 2698, 2702, 2702, 2701, 2699, - 2707, 2705, 2710, 2696, 2713, 2695, 2705, 2697, 2707, 2708, - 2700, 2711, 2708, 2714, 2711, 2712, 2712, 2715, 2714, 2716, - 2717, 2713, 2713, 2718, 2718, 2720, 2719, 2710, 2720, 2721, - 2722, 2726, 2724, 2723, 2717, 2715, 2720, 2724, 2724, 2716, - 2719, 2723, 2725, 2721, 2727, 2727, 2732, 2725, 2725, 2722, - 2726, 2728, 2728, 2729, 2729, 2730, 2730, 2731, 2731, 2733, + 2675, 2677, 2662, 2663, 2675, 3182, 2668, 3182, 2666, 2672, + 2678, 2670, 2676, 2676, 2679, 2680, 2678, 2682, 2674, 2683, + 2679, 2680, 2681, 2681, 2683, 2682, 2677, 2685, 2686, 2688, + 2689, 2691, 2692, 2689, 2690, 2688, 2685, 2695, 2690, 2694, + 2694, 2686, 2696, 2696, 2705, 2691, 0, 2692, 2697, 2697, + 2699, 2699, 2700, 2701, 2707, 2695, 2700, 2706, 2701, 2703, + 2703, 2709, 2706, 2708, 2705, 2711, 2707, 2717, 2708, 2708, + 2712, 2712, 2719, 2709, 2714, 2714, 2715, 2715, 2716, 2721, + 2717, 2716, 2722, 2722, 2727, 2711, 2723, 2723, 2724, 2724, + 2719, 2725, 2726, 2726, 2728, 2729, 2730, 2727, 2737, 2721, - 2734, 2735, 2732, 2736, 2733, 2737, 2738, 2739, 2736, 2740, - 2741, 2738, 2743, 2743, 2744, 2744, 2739, 2746, 2745, 2749, - 2734, 2745, 2748, 2748, 2737, 2754, 2749, 2735, 2751, 2740, - 2741, 2750, 2750, 2751, 2754, 2746, 2753, 2753, 2755, 2756, - 2758, 2759, 2759, 2761, 2762, 2760, 2775, 2755, 2756, 2760, - 2763, 2764, 2761, 2765, 2776, 2763, 2763, 2766, 2758, 2762, - 2770, 2766, 2765, 2774, 2764, 2770, 2771, 2771, 2773, 2773, - 2778, 2775, 2776, 2779, 2782, 2783, 2784, 2774, 2787, 2778, - 2785, 2789, 2791, 2792, 2783, 2779, 2785, 2791, 2792, 2794, - 2787, 2793, 2793, 2797, 2797, 2796, 2784, 2797, 2794, 2782, + 2731, 2731, 2730, 2732, 2738, 2736, 2725, 2732, 2739, 2729, + 2736, 2736, 2728, 2740, 2741, 2742, 2744, 2744, 2743, 2740, + 2741, 2737, 2743, 2749, 2738, 2747, 2750, 2752, 2739, 2750, + 2747, 2749, 2753, 2754, 2754, 2753, 2755, 2756, 2757, 2758, + 2742, 2759, 2756, 2760, 2760, 2764, 2761, 2762, 2763, 2765, + 2762, 2768, 2752, 2755, 2755, 2759, 2757, 2765, 2762, 2758, + 2761, 2766, 2763, 2767, 2764, 2774, 2766, 2766, 2767, 2767, + 2768, 2769, 2769, 2770, 2770, 2771, 2771, 2772, 2772, 2773, + 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2775, 2780, 2781, + 2778, 2782, 2783, 2780, 2785, 2785, 2786, 2786, 2781, 2787, - 2796, 2802, 2789, 2799, 2799, 2800, 2800, 2801, 2801, 2803, - 2802, 2804, 2805, 2807, 2811, 2808, 2809, 2805, 2813, 2807, - 2808, 2809, 2810, 2810, 2812, 2815, 2814, 2816, 2817, 2803, - 2804, 2814, 2811, 2816, 2818, 2818, 2812, 2820, 2824, 2813, - 2821, 2820, 2822, 2815, 2825, 2821, 2826, 2822, 2823, 2823, - 2828, 2830, 2830, 2817, 2832, 2833, 2834, 2824, 2836, 2825, - 2834, 2826, 2835, 2837, 2838, 2840, 2840, 2832, 2833, 2842, - 2828, 2835, 2838, 2839, 2836, 2841, 2843, 2845, 2839, 2844, - 2844, 2855, 2837, 2851, 2841, 2848, 2848, 2842, 2849, 2849, - 2853, 2853, 2856, 2857, 2858, 2861, 2845, 2855, 2862, 2858, + 2788, 2791, 2787, 2776, 2793, 2779, 2790, 2790, 2791, 2793, + 2777, 2782, 2783, 2792, 2792, 2795, 2795, 2796, 2788, 2797, + 2798, 2800, 2801, 2801, 2803, 2804, 2796, 2802, 2797, 2798, + 2805, 2802, 2806, 2803, 2810, 2808, 2809, 2807, 2810, 2800, + 2818, 2805, 2807, 2807, 2804, 2809, 2814, 2806, 2808, 2815, + 2815, 2814, 2817, 2817, 2818, 2819, 2820, 2822, 2822, 2823, + 2824, 2827, 2828, 2829, 2830, 2832, 2834, 2870, 2823, 2852, + 2830, 2828, 2824, 2836, 2820, 2852, 2837, 2832, 2836, 2839, + 2819, 2837, 2870, 2829, 2838, 2838, 2827, 2834, 2839, 2841, + 2848, 2842, 2842, 2847, 2841, 2842, 2844, 2844, 2845, 2845, - 2860, 2860, 2843, 2863, 2851, 2865, 2865, 2867, 2856, 2857, - 2866, 2868, 2868, 2871, 2872, 2861, 2874, 2877, 2873, 2881, - 2872, 2862, 2863, 2873, 2866, 2879, 2867, 2875, 2875, 2876, - 2876, 2878, 2878, 2871, 2880, 2882, 2879, 2877, 2874, 2881, - 2883, 2882, 2884, 2880, 2885, 2886, 2886, 2887, 2888, 2888, - 2887, 2878, 2893, 2892, 2884, 2894, 2895, 2895, 2898, 2883, - 2896, 2894, 2897, 2896, 2885, 2892, 2900, 2903, 2897, 2901, - 2901, 2900, 2893, 2902, 2904, 2905, 2898, 2908, 2902, 2909, - 2904, 2906, 2906, 2910, 2913, 2911, 2903, 2912, 2912, 2908, - 2914, 2915, 2905, 2905, 2917, 2917, 2920, 2909, 2911, 2919, + 2846, 2846, 2847, 2849, 2850, 2856, 2853, 2854, 2857, 2850, + 2848, 2853, 2854, 2855, 2855, 2858, 2859, 2860, 2861, 2862, + 2857, 2859, 2849, 2856, 2861, 2863, 2863, 2865, 2866, 2867, + 2869, 2865, 2871, 2866, 2867, 2860, 2858, 2868, 2868, 2873, + 2875, 2875, 2877, 2878, 2862, 2880, 2879, 2871, 2881, 2869, + 2879, 2882, 2883, 2884, 2880, 2877, 2878, 2886, 2884, 2873, + 2883, 2885, 2885, 2887, 2881, 2888, 2886, 2889, 2889, 2890, + 2882, 2893, 2893, 2894, 2894, 2896, 2898, 2898, 2900, 2901, + 2903, 2887, 2902, 2905, 2905, 2903, 2906, 2908, 2890, 2909, + 2907, 2888, 2910, 2908, 2900, 2901, 2896, 2918, 2902, 2907, - 2915, 2918, 2918, 2913, 2919, 2926, 2914, 2921, 2910, 2925, - 2920, 2933, 2921, 2922, 2922, 2923, 2923, 2924, 2924, 2927, - 2935, 2928, 2925, 2930, 2930, 2927, 2928, 2936, 2937, 2941, - 2933, 2926, 2938, 2938, 2940, 2940, 2942, 2943, 2944, 2944, - 2945, 2945, 2935, 2941, 2948, 2947, 2943, 2949, 2950, 2936, - 2937, 2947, 2964, 2950, 2953, 2953, 2942, 2955, 2955, 2957, - 2956, 2958, 2959, 2960, 2948, 2956, 2949, 2958, 2961, 2961, - 2962, 2960, 2964, 2957, 2959, 2962, 2965, 2966, 2967, 2968, - 2970, 2971, 2966, 2972, 2973, 2968, 2976, 2975, 2970, 2977, - 2967, 2978, 2979, 2981, 2982, 2983, 2965, 2979, 2981, 2986, + 2912, 2912, 2913, 2914, 2915, 2915, 2906, 2919, 2922, 2920, + 2931, 2910, 2909, 2919, 2920, 2925, 2913, 2918, 2923, 2923, + 2924, 2924, 2914, 2926, 2926, 2927, 2929, 2930, 2928, 2931, + 2922, 2933, 2932, 2930, 2941, 2925, 2927, 2928, 2934, 2934, + 2936, 2936, 2935, 2926, 2932, 2935, 2929, 2940, 2946, 2942, + 2945, 2933, 2943, 2943, 2941, 2942, 2945, 2944, 2948, 2940, + 2944, 2949, 2949, 2948, 2950, 2951, 2946, 2952, 2953, 2950, + 2954, 2954, 2957, 2952, 2958, 2956, 2959, 2960, 2960, 2961, + 2962, 0, 2963, 2967, 2951, 2953, 2953, 2956, 2967, 2959, + 2957, 2963, 2965, 2965, 2966, 2966, 2962, 2968, 2961, 2958, - 2971, 2983, 2976, 2972, 2973, 2975, 2977, 2977, 2984, 2988, - 2991, 2991, 2978, 2984, 2982, 2987, 2992, 2992, 2987, 2986, - 2993, 2999, 2988, 2998, 2993, 2997, 2997, 0, 2998, 3000, - 3000, 3002, 3002, 3003, 3003, 3009, 3003, 3010, 3004, 3004, - 2999, 3004, 3005, 3005, 3006, 3005, 3008, 3008, 3006, 3013, - 3014, 3010, 3015, 3009, 3016, 3016, 3019, 3015, 3020, 3021, - 3023, 3025, 3022, 3021, 3026, 3020, 3027, 3027, 3034, 3013, - 3014, 3022, 3030, 3026, 3034, 3023, 3028, 3028, 3035, 3025, - 3031, 3019, 3029, 3029, 3032, 3031, 3033, 3030, 3037, 3036, - 3038, 3033, 3033, 3032, 3039, 3038, 3032, 3040, 0, 3039, + 2969, 2970, 2970, 2971, 2971, 2969, 2972, 2972, 2973, 2974, + 2975, 2968, 2976, 2978, 2978, 2981, 2975, 2976, 2983, 2984, + 2985, 2973, 2986, 2986, 2988, 2988, 2989, 2990, 2992, 2991, + 2993, 2994, 2994, 2998, 2981, 2974, 2995, 2995, 2997, 2993, + 2983, 2984, 2985, 2991, 2997, 2999, 2990, 3007, 2992, 3000, + 3003, 3003, 2989, 2998, 3000, 3005, 3005, 3006, 3009, 3008, + 3010, 3007, 3006, 3014, 2999, 3008, 3011, 3011, 3010, 3012, + 3009, 3015, 3016, 3017, 3012, 3018, 3020, 3016, 3021, 3022, + 3023, 3018, 3026, 3014, 3020, 3017, 3025, 3028, 3027, 3029, + 3031, 3015, 3032, 3036, 3029, 3031, 3033, 3021, 3026, 3022, - 3041, 3041, 3042, 3035, 3036, 3043, 3044, 3044, 3042, 3037, - 3046, 3043, 3045, 3045, 3047, 3053, 3040, 3050, 3050, 3047, - 3052, 3052, 3056, 3056, 3053, 3046, 3057, 3057, 3058, 3058, - 3059, 3059, 3060, 3060, 3061, 3061, 3062, 3062, 3064, 3065, - 3065, 3066, 3067, 3068, 3072, 3070, 3074, 3064, 3071, 3071, - 3066, 3076, 3073, 3080, 3067, 3075, 3075, 3082, 3074, 3072, - 3077, 3077, 3084, 3068, 3070, 3073, 3076, 3081, 3083, 3083, - 3081, 3080, 3086, 3087, 3088, 3086, 3089, 3090, 3092, 3087, - 3084, 3089, 3091, 3082, 3094, 3098, 3095, 3099, 3088, 3098, - 3094, 3102, 3112, 3117, 3092, 3095, 3090, 3123, 3110, 3121, + 3023, 0, 3033, 3038, 3025, 3027, 3027, 3037, 3028, 3034, + 3037, 3043, 3032, 3036, 3034, 3043, 3038, 3041, 3041, 3042, + 3042, 3047, 3047, 3048, 3049, 3050, 3050, 3061, 3048, 3052, + 3052, 3053, 3053, 3056, 3053, 3054, 3054, 3056, 3054, 3055, + 3055, 3058, 3055, 3049, 3059, 3061, 3058, 3060, 3060, 3062, + 3065, 3066, 3067, 3059, 3068, 3068, 3071, 3067, 3072, 3074, + 3073, 3075, 3077, 3062, 3073, 3072, 3078, 0, 3074, 3082, + 3065, 3066, 3079, 3079, 3083, 3078, 3075, 3080, 3080, 3083, + 3077, 3071, 3081, 3081, 3082, 3084, 3085, 3086, 3087, 3088, + 3089, 3085, 3085, 3086, 3084, 3090, 3091, 3084, 3092, 3094, - 3091, 3110, 3099, 3113, 3113, 3112, 3114, 3114, 3115, 3115, - 3118, 3119, 3120, 3121, 3124, 3119, 3117, 3102, 3125, 3118, - 3123, 3127, 3126, 3125, 3126, 3124, 3128, 3128, 3129, 3130, - 3132, 3131, 3120, 3133, 3135, 3134, 3127, 3137, 3138, 3136, - 3139, 3129, 3137, 3135, 3140, 3139, 3132, 3141, 3130, 3131, - 3134, 3136, 3141, 3145, 3146, 3147, 3147, 3148, 3133, 3138, - 3149, 3149, 3150, 3150, 3140, 3153, 3148, 3145, 3151, 3151, - 3152, 3152, 3154, 3155, 3146, 3156, 3155, 3157, 3158, 3159, - 3156, 3160, 3157, 3161, 3153, 3163, 3162, 3160, 3164, 3164, - 3163, 3165, 3154, 3168, 3159, 3166, 3166, 3161, 3162, 3167, + 3090, 3091, 3093, 3093, 3088, 3094, 3095, 3096, 3096, 3097, + 3097, 3089, 3095, 3087, 3098, 3099, 3105, 3092, 3102, 3102, + 3099, 3104, 3104, 3108, 3108, 3105, 3109, 3109, 3116, 3098, + 3110, 3110, 3111, 3111, 3112, 3112, 3113, 3113, 3114, 3114, + 3115, 3115, 3118, 3119, 3119, 3121, 3120, 3122, 3126, 3124, + 3128, 3118, 3125, 3125, 3116, 3120, 3127, 3121, 3129, 3129, + 3130, 3134, 3128, 3126, 3131, 3131, 3136, 3122, 3124, 3127, + 3135, 3137, 3137, 3135, 3140, 3130, 3138, 3140, 3141, 3134, + 3143, 3142, 3144, 3146, 3141, 3143, 3145, 3148, 3149, 3156, + 3153, 3173, 3136, 3148, 3138, 3142, 3152, 3149, 3165, 3146, - 3167, 3169, 3172, 3158, 3170, 3170, 3174, 3179, 3168, 3177, - 3177, 3165, 3178, 3178, 3180, 3179, 3181, 3172, 3183, 3182, - 3169, 3184, 3181, 3185, 3174, 3182, 3186, 3187, 3187, 3189, - 3189, 3186, 3183, 3180, 3184, 3192, 3195, 3193, 3198, 3196, - 3199, 3200, 3185, 3196, 3203, 3199, 3201, 3204, 3202, 3205, - 3195, 3209, 3204, 3211, 3205, 3210, 3192, 3193, 3198, 3201, - 3200, 3202, 3214, 3203, 3206, 3206, 3212, 3212, 3214, 3213, - 3219, 3209, 3211, 3210, 3213, 3215, 3215, 3216, 3217, 3218, - 3220, 3227, 3216, 3217, 3218, 3223, 3220, 3222, 3222, 3219, - 3223, 3224, 3224, 3226, 3228, 3229, 3230, 3226, 3231, 3232, + 3152, 3144, 3176, 3165, 3145, 3153, 3166, 3168, 3179, 3166, + 3169, 3169, 3170, 3170, 3173, 3156, 3171, 3171, 3174, 3175, + 3168, 3177, 3176, 3175, 3181, 3180, 3183, 3174, 3186, 3181, + 3185, 3179, 3184, 3184, 3187, 3177, 3180, 3188, 3189, 3190, + 3191, 3183, 3197, 3185, 3192, 3193, 3194, 3186, 3203, 3191, + 3193, 3202, 3187, 3188, 3190, 3195, 3192, 3196, 3196, 3198, + 3195, 3210, 3197, 3189, 3198, 3202, 3205, 3194, 3203, 3204, + 3204, 3206, 3206, 3207, 3207, 3205, 3208, 3208, 3209, 3209, + 3210, 3211, 3212, 3213, 3214, 3212, 3215, 3216, 3213, 3214, + 3217, 3218, 3219, 3220, 3221, 3221, 3217, 3222, 3220, 3223, - 3227, 3228, 3240, 3233, 3231, 3235, 3235, 3237, 3237, 3241, - 3238, 3242, 3239, 3247, 3229, 3230, 3233, 3239, 3232, 3238, - 3245, 3240, 3238, 3249, 3242, 3243, 3243, 3244, 3241, 3248, - 3248, 3254, 3244, 3245, 3250, 3250, 3251, 3251, 3252, 3247, - 3253, 3256, 3249, 3252, 3255, 3255, 3256, 3253, 3259, 3257, - 3254, 3257, 3258, 3258, 3260, 3259, 3261, 3262, 3263, 3265, - 3265, 3260, 3262, 3266, 3268, 3269, 3270, 3271, 3275, 3268, - 3269, 3272, 3272, 3274, 3274, 3261, 3276, 3263, 3277, 3277, - 3278, 3278, 3266, 3279, 3289, 3270, 3271, 3275, 3281, 3281, - 3279, 3282, 3282, 3283, 3285, 3276, 3288, 3290, 0, 3285, + 3223, 3211, 3216, 3226, 3219, 3218, 3225, 3225, 3227, 3228, + 3228, 3215, 3232, 3230, 3235, 3235, 3237, 3222, 3226, 3236, + 3236, 3238, 3241, 3239, 3237, 3240, 3242, 3227, 3230, 3239, + 3232, 3240, 3243, 3244, 3245, 3245, 3241, 3250, 3244, 3242, + 3238, 3247, 3247, 3251, 3254, 3253, 3256, 3257, 3254, 3258, + 3262, 3243, 3257, 3261, 3259, 3262, 3260, 3263, 3250, 3253, + 3264, 3264, 3263, 3251, 3267, 3268, 3256, 3259, 3258, 3260, + 3269, 3271, 3261, 3270, 3270, 3272, 3271, 3273, 3273, 3277, + 3274, 3272, 3275, 3268, 3267, 3274, 3276, 3275, 3278, 3269, + 3281, 3276, 3280, 3280, 3278, 3281, 3282, 3282, 3277, 3284, - 3283, 3288, 0, 3289, 3291, 3291, 3292, 3292, 0, 0, - 0, 0, 0, 0, 0, 0, 3290, 3296, 3296, 3296, - 3296, 3296, 3296, 3296, 3297, 3297, 3297, 3297, 3297, 3297, - 3297, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3299, 3299, - 3299, 3299, 3299, 3299, 3299, 3300, 3300, 3300, 3300, 3300, - 3300, 3300, 3301, 3301, 3301, 3301, 3301, 3301, 3301, 3302, - 3302, 3302, 3302, 3302, 3302, 3302, 3304, 3304, 0, 3304, - 3304, 3304, 3304, 3305, 3305, 0, 0, 0, 3305, 3305, - 3306, 3306, 0, 0, 3306, 0, 3306, 3307, 0, 0, - 0, 0, 0, 3307, 3308, 3308, 0, 0, 0, 3308, + 3285, 3286, 3287, 3284, 3288, 3289, 3290, 3291, 3286, 3293, + 3293, 3289, 3295, 3295, 3298, 3296, 3299, 3297, 3300, 3285, + 3291, 3287, 3297, 3288, 3296, 3290, 3303, 3296, 3301, 3301, + 3305, 3300, 3302, 3298, 3307, 3299, 3312, 3302, 0, 3303, + 3306, 3306, 3308, 3308, 3309, 3309, 3310, 3311, 3313, 3313, + 3319, 3310, 3314, 3307, 3311, 3312, 3305, 3314, 3315, 3317, + 3315, 3316, 3316, 3318, 3321, 3324, 3317, 3320, 3328, 3319, + 3318, 3326, 3320, 3323, 3323, 3327, 3326, 3329, 3330, 3330, + 3327, 3332, 3332, 3321, 3324, 3333, 3334, 3328, 3335, 3335, + 3336, 3336, 3337, 3339, 3339, 3341, 3329, 3340, 3340, 3337, - 3308, 3309, 0, 0, 0, 0, 0, 3309, 3310, 3310, - 0, 3310, 3310, 3310, 3310, 3311, 0, 0, 0, 0, - 0, 3311, 3312, 3312, 0, 0, 0, 3312, 3312, 3313, - 3313, 0, 3313, 3313, 3313, 3313, 3295, 3295, 3295, 3295, - 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, - 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, - 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, - 3295, 3295, 3295, 3295, 3295, 3295, 3295 + 3347, 3343, 3341, 3346, 3333, 3334, 3343, 3348, 3346, 3349, + 3349, 3350, 3350, 0, 0, 0, 0, 0, 0, 3347, + 0, 0, 0, 0, 0, 0, 3348, 3354, 3354, 3354, + 3354, 3354, 3354, 3354, 3355, 3355, 3355, 3355, 3355, 3355, + 3355, 3356, 3356, 3356, 3356, 3356, 3356, 3356, 3357, 3357, + 3357, 3357, 3357, 3357, 3357, 3358, 3358, 3358, 3358, 3358, + 3358, 3358, 3359, 3359, 3359, 3359, 3359, 3359, 3359, 3360, + 3360, 3360, 3360, 3360, 3360, 3360, 3362, 3362, 0, 3362, + 3362, 3362, 3362, 3363, 3363, 0, 0, 0, 3363, 3363, + 3364, 3364, 0, 0, 3364, 0, 3364, 3365, 0, 0, + + 0, 0, 0, 3365, 3366, 3366, 0, 0, 0, 3366, + 3366, 3367, 0, 0, 0, 0, 0, 3367, 3368, 3368, + 0, 3368, 3368, 3368, 3368, 3369, 0, 0, 0, 0, + 0, 3369, 3370, 3370, 0, 0, 0, 3370, 3370, 3371, + 3371, 0, 3371, 3371, 3371, 3371, 3353, 3353, 3353, 3353, + 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, + 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, + 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, + 3353, 3353, 3353, 3353, 3353, 3353, 3353 } ; static yy_state_type yy_last_accepting_state; @@ -3143,7 +3185,7 @@ static void config_end_include(void) } #endif -#line 3145 "" +#line 3186 "" #define YY_NO_INPUT 1 #line 191 "./util/configlexer.lex" #ifndef YY_NO_UNPUT @@ -3152,9 +3194,9 @@ static void config_end_include(void) #ifndef YY_NO_INPUT #define YY_NO_INPUT 1 #endif -#line 3154 "" +#line 3195 "" -#line 3156 "" +#line 3197 "" #define INITIAL 0 #define quotedstring 1 @@ -3378,7 +3420,7 @@ YY_DECL { #line 211 "./util/configlexer.lex" -#line 3380 "" +#line 3421 "" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -3411,13 +3453,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 >= 3296 ) + if ( yy_current_state >= 3354 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 6437 ); + while ( yy_base[yy_current_state] != 6547 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -4347,466 +4389,466 @@ YY_RULE_SETUP case 181: YY_RULE_SETUP #line 395 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_DSA) } +{ YDVAR(1, VAR_SERVE_ORIGINAL_TTL) } YY_BREAK case 182: YY_RULE_SETUP #line 396 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_SHA1) } +{ YDVAR(1, VAR_FAKE_DSA) } YY_BREAK case 183: YY_RULE_SETUP #line 397 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_LOG_LEVEL) } +{ YDVAR(1, VAR_FAKE_SHA1) } YY_BREAK case 184: YY_RULE_SETUP #line 398 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SIZE) } +{ YDVAR(1, VAR_VAL_LOG_LEVEL) } YY_BREAK case 185: YY_RULE_SETUP #line 399 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SLABS) } +{ YDVAR(1, VAR_KEY_CACHE_SIZE) } YY_BREAK case 186: YY_RULE_SETUP #line 400 "./util/configlexer.lex" -{ YDVAR(1, VAR_NEG_CACHE_SIZE) } +{ YDVAR(1, VAR_KEY_CACHE_SLABS) } YY_BREAK case 187: YY_RULE_SETUP #line 401 "./util/configlexer.lex" -{ - YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } +{ YDVAR(1, VAR_NEG_CACHE_SIZE) } YY_BREAK case 188: YY_RULE_SETUP -#line 403 "./util/configlexer.lex" -{ YDVAR(1, VAR_ADD_HOLDDOWN) } +#line 402 "./util/configlexer.lex" +{ + YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } YY_BREAK case 189: YY_RULE_SETUP #line 404 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEL_HOLDDOWN) } +{ YDVAR(1, VAR_ADD_HOLDDOWN) } YY_BREAK case 190: YY_RULE_SETUP #line 405 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEEP_MISSING) } +{ YDVAR(1, VAR_DEL_HOLDDOWN) } YY_BREAK case 191: YY_RULE_SETUP #line 406 "./util/configlexer.lex" -{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } +{ YDVAR(1, VAR_KEEP_MISSING) } YY_BREAK case 192: YY_RULE_SETUP #line 407 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSLOG) } +{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } YY_BREAK case 193: YY_RULE_SETUP #line 408 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_IDENTITY) } +{ YDVAR(1, VAR_USE_SYSLOG) } YY_BREAK case 194: YY_RULE_SETUP #line 409 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TIME_ASCII) } +{ YDVAR(1, VAR_LOG_IDENTITY) } YY_BREAK case 195: YY_RULE_SETUP #line 410 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_QUERIES) } +{ YDVAR(1, VAR_LOG_TIME_ASCII) } YY_BREAK case 196: YY_RULE_SETUP #line 411 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_REPLIES) } +{ YDVAR(1, VAR_LOG_QUERIES) } YY_BREAK case 197: YY_RULE_SETUP #line 412 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TAG_QUERYREPLY) } +{ YDVAR(1, VAR_LOG_REPLIES) } YY_BREAK case 198: YY_RULE_SETUP #line 413 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_LOCAL_ACTIONS) } +{ YDVAR(1, VAR_LOG_TAG_QUERYREPLY) } YY_BREAK case 199: YY_RULE_SETUP #line 414 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_SERVFAIL) } +{ YDVAR(1, VAR_LOG_LOCAL_ACTIONS) } YY_BREAK case 200: YY_RULE_SETUP #line 415 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE) } +{ YDVAR(1, VAR_LOG_SERVFAIL) } YY_BREAK case 201: YY_RULE_SETUP #line 416 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA) } +{ YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 202: YY_RULE_SETUP #line 417 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA_PTR) } +{ YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 203: YY_RULE_SETUP #line 418 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 204: YY_RULE_SETUP #line 419 "./util/configlexer.lex" -{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } +{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } YY_BREAK case 205: YY_RULE_SETUP #line 420 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_INTERVAL) } +{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } YY_BREAK case 206: YY_RULE_SETUP #line 421 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 207: YY_RULE_SETUP #line 422 "./util/configlexer.lex" -{ YDVAR(1, VAR_EXTENDED_STATISTICS) } +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 208: YY_RULE_SETUP #line 423 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_ENABLE) } +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 209: YY_RULE_SETUP #line 424 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_KEY) } +{ YDVAR(1, VAR_SHM_ENABLE) } YY_BREAK case 210: YY_RULE_SETUP #line 425 "./util/configlexer.lex" -{ YDVAR(0, VAR_REMOTE_CONTROL) } +{ YDVAR(1, VAR_SHM_KEY) } YY_BREAK case 211: YY_RULE_SETUP #line 426 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_ENABLE) } +{ YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 212: YY_RULE_SETUP #line 427 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_INTERFACE) } +{ YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 213: YY_RULE_SETUP #line 428 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_PORT) } +{ YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 214: YY_RULE_SETUP #line 429 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_USE_CERT) } +{ YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 215: YY_RULE_SETUP #line 430 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_KEY_FILE) } +{ YDVAR(1, VAR_CONTROL_USE_CERT) } YY_BREAK case 216: YY_RULE_SETUP #line 431 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_CERT_FILE) } +{ YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 217: YY_RULE_SETUP #line 432 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_KEY_FILE) } +{ YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 218: YY_RULE_SETUP #line 433 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_CERT_FILE) } +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 219: YY_RULE_SETUP #line 434 "./util/configlexer.lex" -{ YDVAR(1, VAR_PYTHON_SCRIPT) } +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } YY_BREAK case 220: YY_RULE_SETUP #line 435 "./util/configlexer.lex" -{ YDVAR(0, VAR_PYTHON) } +{ YDVAR(1, VAR_PYTHON_SCRIPT) } YY_BREAK case 221: YY_RULE_SETUP #line 436 "./util/configlexer.lex" -{ YDVAR(1, VAR_DYNLIB_FILE) } +{ YDVAR(0, VAR_PYTHON) } YY_BREAK case 222: YY_RULE_SETUP #line 437 "./util/configlexer.lex" -{ YDVAR(0, VAR_DYNLIB) } +{ YDVAR(1, VAR_DYNLIB_FILE) } YY_BREAK case 223: YY_RULE_SETUP #line 438 "./util/configlexer.lex" -{ YDVAR(1, VAR_DOMAIN_INSECURE) } +{ YDVAR(0, VAR_DYNLIB) } YY_BREAK case 224: YY_RULE_SETUP #line 439 "./util/configlexer.lex" -{ YDVAR(1, VAR_MINIMAL_RESPONSES) } +{ YDVAR(1, VAR_DOMAIN_INSECURE) } YY_BREAK case 225: YY_RULE_SETUP #line 440 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } +{ YDVAR(1, VAR_MINIMAL_RESPONSES) } YY_BREAK case 226: YY_RULE_SETUP #line 441 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) } +{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } YY_BREAK case 227: YY_RULE_SETUP #line 442 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_UDP_SIZE) } +{ YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) } YY_BREAK case 228: YY_RULE_SETUP #line 443 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_PREFIX) } +{ YDVAR(1, VAR_MAX_UDP_SIZE) } YY_BREAK case 229: YY_RULE_SETUP #line 444 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_SYNTHALL) } +{ YDVAR(1, VAR_DNS64_PREFIX) } YY_BREAK case 230: YY_RULE_SETUP #line 445 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) } +{ YDVAR(1, VAR_DNS64_SYNTHALL) } YY_BREAK case 231: YY_RULE_SETUP #line 446 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEFINE_TAG) } +{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) } YY_BREAK case 232: YY_RULE_SETUP #line 447 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } +{ YDVAR(1, VAR_DEFINE_TAG) } YY_BREAK case 233: YY_RULE_SETUP #line 448 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } +{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } YY_BREAK case 234: YY_RULE_SETUP #line 449 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } +{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } YY_BREAK case 235: YY_RULE_SETUP #line 450 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } YY_BREAK case 236: YY_RULE_SETUP #line 451 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } YY_BREAK case 237: YY_RULE_SETUP #line 452 "./util/configlexer.lex" -{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } +{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } YY_BREAK case 238: YY_RULE_SETUP #line 453 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSTAP) } +{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } YY_BREAK case 239: YY_RULE_SETUP #line 454 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_ENABLE) } +{ YDVAR(0, VAR_DNSTAP) } YY_BREAK case 240: YY_RULE_SETUP #line 455 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_BIDIRECTIONAL) } +{ YDVAR(1, VAR_DNSTAP_ENABLE) } YY_BREAK case 241: YY_RULE_SETUP #line 456 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } +{ YDVAR(1, VAR_DNSTAP_BIDIRECTIONAL) } YY_BREAK case 242: YY_RULE_SETUP #line 457 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IP) } +{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } YY_BREAK case 243: YY_RULE_SETUP #line 458 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS) } +{ YDVAR(1, VAR_DNSTAP_IP) } YY_BREAK case 244: YY_RULE_SETUP #line 459 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS_SERVER_NAME) } +{ YDVAR(1, VAR_DNSTAP_TLS) } YY_BREAK case 245: YY_RULE_SETUP #line 460 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS_CERT_BUNDLE) } +{ YDVAR(1, VAR_DNSTAP_TLS_SERVER_NAME) } YY_BREAK case 246: YY_RULE_SETUP #line 461 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_TLS_CLIENT_KEY_FILE) } +{ YDVAR(1, VAR_DNSTAP_TLS_CERT_BUNDLE) } YY_BREAK case 247: YY_RULE_SETUP -#line 463 "./util/configlexer.lex" +#line 462 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_TLS_CLIENT_CERT_FILE) } + YDVAR(1, VAR_DNSTAP_TLS_CLIENT_KEY_FILE) } YY_BREAK case 248: YY_RULE_SETUP -#line 465 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } +#line 464 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_TLS_CLIENT_CERT_FILE) } YY_BREAK case 249: YY_RULE_SETUP #line 466 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } +{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } YY_BREAK case 250: YY_RULE_SETUP #line 467 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } YY_BREAK case 251: YY_RULE_SETUP #line 468 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_VERSION) } +{ YDVAR(1, VAR_DNSTAP_IDENTITY) } YY_BREAK case 252: YY_RULE_SETUP #line 469 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } +{ YDVAR(1, VAR_DNSTAP_VERSION) } YY_BREAK case 253: YY_RULE_SETUP -#line 471 "./util/configlexer.lex" +#line 470 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } YY_BREAK case 254: YY_RULE_SETUP -#line 473 "./util/configlexer.lex" +#line 472 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } YY_BREAK case 255: YY_RULE_SETUP -#line 475 "./util/configlexer.lex" +#line 474 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } YY_BREAK case 256: YY_RULE_SETUP -#line 477 "./util/configlexer.lex" +#line 476 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } YY_BREAK case 257: YY_RULE_SETUP -#line 479 "./util/configlexer.lex" +#line 478 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } YY_BREAK case 258: YY_RULE_SETUP -#line 481 "./util/configlexer.lex" -{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } +#line 480 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } YY_BREAK case 259: YY_RULE_SETUP #line 482 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT) } +{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } YY_BREAK case 260: YY_RULE_SETUP #line 483 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT) } +{ YDVAR(1, VAR_IP_RATELIMIT) } YY_BREAK case 261: YY_RULE_SETUP #line 484 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_RATELIMIT) } YY_BREAK case 262: YY_RULE_SETUP #line 485 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } YY_BREAK case 263: YY_RULE_SETUP #line 486 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_RATELIMIT_SLABS) } YY_BREAK case 264: YY_RULE_SETUP #line 487 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } YY_BREAK case 265: YY_RULE_SETUP #line 488 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } +{ YDVAR(1, VAR_RATELIMIT_SIZE) } YY_BREAK case 266: YY_RULE_SETUP #line 489 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } +{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } YY_BREAK case 267: YY_RULE_SETUP #line 490 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } +{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } YY_BREAK case 268: YY_RULE_SETUP #line 491 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_FACTOR) } +{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } YY_BREAK case 269: YY_RULE_SETUP #line 492 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOW_RTT) } +{ YDVAR(1, VAR_RATELIMIT_FACTOR) } YY_BREAK case 270: YY_RULE_SETUP #line 493 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_NUM) } +{ YDVAR(1, VAR_LOW_RTT) } YY_BREAK case 271: YY_RULE_SETUP #line 494 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } +{ YDVAR(1, VAR_FAST_SERVER_NUM) } YY_BREAK case 272: YY_RULE_SETUP @@ -4821,220 +4863,245 @@ YY_RULE_SETUP case 274: YY_RULE_SETUP #line 497 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_TAG) } +{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } YY_BREAK case 275: YY_RULE_SETUP #line 498 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP) } +{ YDVAR(2, VAR_RESPONSE_IP_TAG) } YY_BREAK case 276: YY_RULE_SETUP #line 499 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_DATA) } +{ YDVAR(2, VAR_RESPONSE_IP) } YY_BREAK case 277: YY_RULE_SETUP #line 500 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSCRYPT) } +{ YDVAR(2, VAR_RESPONSE_IP_DATA) } YY_BREAK case 278: YY_RULE_SETUP #line 501 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } +{ YDVAR(0, VAR_DNSCRYPT) } YY_BREAK case 279: YY_RULE_SETUP #line 502 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PORT) } +{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } YY_BREAK case 280: YY_RULE_SETUP #line 503 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } +{ YDVAR(1, VAR_DNSCRYPT_PORT) } YY_BREAK case 281: YY_RULE_SETUP #line 504 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } YY_BREAK case 282: YY_RULE_SETUP #line 505 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } +{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } YY_BREAK case 283: YY_RULE_SETUP #line 506 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } YY_BREAK case 284: YY_RULE_SETUP #line 507 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } YY_BREAK case 285: YY_RULE_SETUP -#line 509 "./util/configlexer.lex" +#line 508 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } YY_BREAK case 286: YY_RULE_SETUP -#line 511 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } +#line 510 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } YY_BREAK case 287: YY_RULE_SETUP #line 512 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } YY_BREAK case 288: YY_RULE_SETUP #line 513 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_ENABLED) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } YY_BREAK case 289: YY_RULE_SETUP #line 514 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } +{ YDVAR(1, VAR_PAD_RESPONSES) } YY_BREAK case 290: YY_RULE_SETUP #line 515 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_HOOK) } +{ YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) } YY_BREAK case 291: YY_RULE_SETUP #line 516 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } +{ YDVAR(1, VAR_PAD_QUERIES) } YY_BREAK case 292: YY_RULE_SETUP #line 517 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } +{ YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) } YY_BREAK case 293: YY_RULE_SETUP #line 518 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } +{ YDVAR(1, VAR_IPSECMOD_ENABLED) } YY_BREAK case 294: YY_RULE_SETUP #line 519 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_STRICT) } +{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } YY_BREAK case 295: YY_RULE_SETUP #line 520 "./util/configlexer.lex" -{ YDVAR(0, VAR_CACHEDB) } +{ YDVAR(1, VAR_IPSECMOD_HOOK) } YY_BREAK case 296: YY_RULE_SETUP #line 521 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_BACKEND) } +{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } YY_BREAK case 297: YY_RULE_SETUP #line 522 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } YY_BREAK case 298: YY_RULE_SETUP #line 523 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISHOST) } +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } YY_BREAK case 299: YY_RULE_SETUP #line 524 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISPORT) } +{ YDVAR(1, VAR_IPSECMOD_STRICT) } YY_BREAK case 300: YY_RULE_SETUP #line 525 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } +{ YDVAR(0, VAR_CACHEDB) } YY_BREAK case 301: YY_RULE_SETUP #line 526 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) } +{ YDVAR(1, VAR_CACHEDB_BACKEND) } YY_BREAK case 302: YY_RULE_SETUP #line 527 "./util/configlexer.lex" -{ YDVAR(0, VAR_IPSET) } +{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } YY_BREAK case 303: YY_RULE_SETUP #line 528 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSET_NAME_V4) } +{ YDVAR(1, VAR_CACHEDB_REDISHOST) } YY_BREAK case 304: YY_RULE_SETUP #line 529 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSET_NAME_V6) } +{ YDVAR(1, VAR_CACHEDB_REDISPORT) } YY_BREAK case 305: YY_RULE_SETUP #line 530 "./util/configlexer.lex" -{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } +{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } YY_BREAK case 306: YY_RULE_SETUP #line 531 "./util/configlexer.lex" -{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } +{ YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) } YY_BREAK case 307: YY_RULE_SETUP #line 532 "./util/configlexer.lex" -{ YDVAR(2, VAR_EDNS_CLIENT_STRING) } +{ YDVAR(0, VAR_IPSET) } YY_BREAK case 308: YY_RULE_SETUP #line 533 "./util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) } +{ YDVAR(1, VAR_IPSET_NAME_V4) } YY_BREAK case 309: YY_RULE_SETUP #line 534 "./util/configlexer.lex" -{ YDVAR(1, VAR_NSID ) } +{ YDVAR(1, VAR_IPSET_NAME_V6) } YY_BREAK case 310: -/* rule 310 can match eol */ YY_RULE_SETUP #line 535 "./util/configlexer.lex" +{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } + YY_BREAK +case 311: +YY_RULE_SETUP +#line 536 "./util/configlexer.lex" +{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } + YY_BREAK +case 312: +YY_RULE_SETUP +#line 537 "./util/configlexer.lex" +{ YDVAR(2, VAR_EDNS_CLIENT_STRING) } + YY_BREAK +case 313: +YY_RULE_SETUP +#line 538 "./util/configlexer.lex" +{ YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) } + YY_BREAK +case 314: +YY_RULE_SETUP +#line 539 "./util/configlexer.lex" +{ YDVAR(1, VAR_NSID ) } + YY_BREAK +case 315: +/* rule 315 can match eol */ +YY_RULE_SETUP +#line 540 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 311: +case 316: YY_RULE_SETUP -#line 538 "./util/configlexer.lex" +#line 543 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 539 "./util/configlexer.lex" +#line 544 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 312: +case 317: YY_RULE_SETUP -#line 544 "./util/configlexer.lex" +#line 549 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 313: -/* rule 313 can match eol */ +case 318: +/* rule 318 can match eol */ YY_RULE_SETUP -#line 545 "./util/configlexer.lex" +#line 550 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 314: +case 319: YY_RULE_SETUP -#line 547 "./util/configlexer.lex" +#line 552 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -5047,34 +5114,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 315: +case 320: YY_RULE_SETUP -#line 559 "./util/configlexer.lex" +#line 564 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 560 "./util/configlexer.lex" +#line 565 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 316: +case 321: YY_RULE_SETUP -#line 565 "./util/configlexer.lex" +#line 570 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 317: -/* rule 317 can match eol */ +case 322: +/* rule 322 can match eol */ YY_RULE_SETUP -#line 566 "./util/configlexer.lex" +#line 571 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 318: +case 323: YY_RULE_SETUP -#line 568 "./util/configlexer.lex" +#line 573 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -5087,38 +5154,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 319: +case 324: YY_RULE_SETUP -#line 580 "./util/configlexer.lex" +#line 585 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 582 "./util/configlexer.lex" +#line 587 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 320: +case 325: YY_RULE_SETUP -#line 586 "./util/configlexer.lex" +#line 591 "./util/configlexer.lex" { LEXOUT(("ISP ")); /* ignore */ } YY_BREAK -case 321: -/* rule 321 can match eol */ +case 326: +/* rule 326 can match eol */ YY_RULE_SETUP -#line 587 "./util/configlexer.lex" +#line 592 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK -case 322: +case 327: YY_RULE_SETUP -#line 588 "./util/configlexer.lex" +#line 593 "./util/configlexer.lex" { LEXOUT(("IQS ")); BEGIN(include_quoted); } YY_BREAK -case 323: +case 328: YY_RULE_SETUP -#line 589 "./util/configlexer.lex" +#line 594 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext, 0); @@ -5126,27 +5193,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 594 "./util/configlexer.lex" +#line 599 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 324: +case 329: YY_RULE_SETUP -#line 598 "./util/configlexer.lex" +#line 603 "./util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK -case 325: -/* rule 325 can match eol */ +case 330: +/* rule 330 can match eol */ YY_RULE_SETUP -#line 599 "./util/configlexer.lex" +#line 604 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 326: +case 331: YY_RULE_SETUP -#line 601 "./util/configlexer.lex" +#line 606 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -5156,7 +5223,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 607 "./util/configlexer.lex" +#line 612 "./util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -5171,39 +5238,39 @@ case YY_STATE_EOF(val): } YY_BREAK /* include-toplevel: directive */ -case 327: +case 332: YY_RULE_SETUP -#line 621 "./util/configlexer.lex" +#line 626 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include_toplevel); } YY_BREAK case YY_STATE_EOF(include_toplevel): -#line 624 "./util/configlexer.lex" +#line 629 "./util/configlexer.lex" { yyerror("EOF inside include_toplevel directive"); BEGIN(inc_prev); } YY_BREAK -case 328: +case 333: YY_RULE_SETUP -#line 628 "./util/configlexer.lex" +#line 633 "./util/configlexer.lex" { LEXOUT(("ITSP ")); /* ignore */ } YY_BREAK -case 329: -/* rule 329 can match eol */ +case 334: +/* rule 334 can match eol */ YY_RULE_SETUP -#line 629 "./util/configlexer.lex" +#line 634 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK -case 330: +case 335: YY_RULE_SETUP -#line 630 "./util/configlexer.lex" +#line 635 "./util/configlexer.lex" { LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); } YY_BREAK -case 331: +case 336: YY_RULE_SETUP -#line 631 "./util/configlexer.lex" +#line 636 "./util/configlexer.lex" { LEXOUT(("ITunquotedstr(%s) ", yytext)); config_start_include_glob(yytext, 1); @@ -5212,29 +5279,29 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_toplevel_quoted): -#line 637 "./util/configlexer.lex" +#line 642 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 332: +case 337: YY_RULE_SETUP -#line 641 "./util/configlexer.lex" +#line 646 "./util/configlexer.lex" { LEXOUT(("ITSTR(%s) ", yytext)); yymore(); } YY_BREAK -case 333: -/* rule 333 can match eol */ +case 338: +/* rule 338 can match eol */ YY_RULE_SETUP -#line 642 "./util/configlexer.lex" +#line 647 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 334: +case 339: YY_RULE_SETUP -#line 646 "./util/configlexer.lex" +#line 651 "./util/configlexer.lex" { LEXOUT(("ITQE ")); yytext[yyleng - 1] = '\0'; @@ -5243,33 +5310,33 @@ YY_RULE_SETUP return (VAR_FORCE_TOPLEVEL); } YY_BREAK -case 335: +case 340: YY_RULE_SETUP -#line 654 "./util/configlexer.lex" +#line 659 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 336: +case 341: YY_RULE_SETUP -#line 658 "./util/configlexer.lex" +#line 663 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 337: +case 342: YY_RULE_SETUP -#line 662 "./util/configlexer.lex" +#line 667 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 338: +case 343: YY_RULE_SETUP -#line 666 "./util/configlexer.lex" +#line 671 "./util/configlexer.lex" ECHO; YY_BREAK -#line 5271 "" +#line 5337 "" case YY_END_OF_BUFFER: { @@ -5564,7 +5631,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 >= 3296 ) + if ( yy_current_state >= 3354 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5592,11 +5659,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 >= 3296 ) + if ( yy_current_state >= 3354 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 3295); + yy_is_jam = (yy_current_state == 3353); return yy_is_jam ? 0 : yy_current_state; } @@ -6235,6 +6302,6 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 666 "./util/configlexer.lex" +#line 671 "./util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index c23e6db8f..bc4e92c7f 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -392,6 +392,7 @@ serve-expired-ttl{COLON} { YDVAR(1, VAR_SERVE_EXPIRED_TTL) } serve-expired-ttl-reset{COLON} { YDVAR(1, VAR_SERVE_EXPIRED_TTL_RESET) } serve-expired-reply-ttl{COLON} { YDVAR(1, VAR_SERVE_EXPIRED_REPLY_TTL) } serve-expired-client-timeout{COLON} { YDVAR(1, VAR_SERVE_EXPIRED_CLIENT_TIMEOUT) } +serve-original-ttl{COLON} { YDVAR(1, VAR_SERVE_ORIGINAL_TTL) } fake-dsa{COLON} { YDVAR(1, VAR_FAKE_DSA) } fake-sha1{COLON} { YDVAR(1, VAR_FAKE_SHA1) } val-log-level{COLON} { YDVAR(1, VAR_VAL_LOG_LEVEL) } @@ -510,6 +511,10 @@ dnscrypt-shared-secret-cache-slabs{COLON} { YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } dnscrypt-nonce-cache-size{COLON} { YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } dnscrypt-nonce-cache-slabs{COLON} { YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } +pad-responses{COLON} { YDVAR(1, VAR_PAD_RESPONSES) } +pad-responses-block-size{COLON} { YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) } +pad-queries{COLON} { YDVAR(1, VAR_PAD_QUERIES) } +pad-queries-block-size{COLON} { YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) } ipsecmod-enabled{COLON} { YDVAR(1, VAR_IPSECMOD_ENABLED) } ipsecmod-ignore-bogus{COLON} { YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } ipsecmod-hook{COLON} { YDVAR(1, VAR_IPSECMOD_HOOK) } diff --git a/util/configparser.c b/util/configparser.c index f1d96b0eb..c0b9ae011 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 3.7. */ +/* A Bison parser, made by GNU Bison 3.6.4. */ /* Bison implementation for Yacc-like parsers in C @@ -49,7 +49,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "3.7" +#define YYBISON_VERSION "3.6.4" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -119,7 +119,669 @@ extern struct config_parser_state* cfg_parser; # endif # endif -#include "configparser.h" +/* Use api.header.include to #include this header + instead of duplicating it here. */ +#ifndef YY_YY_UTIL_CONFIGPARSER_H_INCLUDED +# define YY_YY_UTIL_CONFIGPARSER_H_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int yydebug; +#endif + +/* Token kinds. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + enum yytokentype + { + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + SPACE = 258, /* SPACE */ + LETTER = 259, /* LETTER */ + NEWLINE = 260, /* NEWLINE */ + COMMENT = 261, /* COMMENT */ + COLON = 262, /* COLON */ + ANY = 263, /* ANY */ + ZONESTR = 264, /* ZONESTR */ + STRING_ARG = 265, /* STRING_ARG */ + VAR_FORCE_TOPLEVEL = 266, /* VAR_FORCE_TOPLEVEL */ + VAR_SERVER = 267, /* VAR_SERVER */ + VAR_VERBOSITY = 268, /* VAR_VERBOSITY */ + VAR_NUM_THREADS = 269, /* VAR_NUM_THREADS */ + VAR_PORT = 270, /* VAR_PORT */ + VAR_OUTGOING_RANGE = 271, /* VAR_OUTGOING_RANGE */ + VAR_INTERFACE = 272, /* VAR_INTERFACE */ + VAR_PREFER_IP4 = 273, /* VAR_PREFER_IP4 */ + VAR_DO_IP4 = 274, /* VAR_DO_IP4 */ + VAR_DO_IP6 = 275, /* VAR_DO_IP6 */ + VAR_PREFER_IP6 = 276, /* VAR_PREFER_IP6 */ + VAR_DO_UDP = 277, /* VAR_DO_UDP */ + VAR_DO_TCP = 278, /* VAR_DO_TCP */ + VAR_TCP_MSS = 279, /* VAR_TCP_MSS */ + VAR_OUTGOING_TCP_MSS = 280, /* VAR_OUTGOING_TCP_MSS */ + VAR_TCP_IDLE_TIMEOUT = 281, /* VAR_TCP_IDLE_TIMEOUT */ + VAR_EDNS_TCP_KEEPALIVE = 282, /* VAR_EDNS_TCP_KEEPALIVE */ + VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 283, /* VAR_EDNS_TCP_KEEPALIVE_TIMEOUT */ + VAR_CHROOT = 284, /* VAR_CHROOT */ + VAR_USERNAME = 285, /* VAR_USERNAME */ + VAR_DIRECTORY = 286, /* VAR_DIRECTORY */ + VAR_LOGFILE = 287, /* VAR_LOGFILE */ + VAR_PIDFILE = 288, /* VAR_PIDFILE */ + VAR_MSG_CACHE_SIZE = 289, /* VAR_MSG_CACHE_SIZE */ + VAR_MSG_CACHE_SLABS = 290, /* VAR_MSG_CACHE_SLABS */ + VAR_NUM_QUERIES_PER_THREAD = 291, /* VAR_NUM_QUERIES_PER_THREAD */ + VAR_RRSET_CACHE_SIZE = 292, /* VAR_RRSET_CACHE_SIZE */ + VAR_RRSET_CACHE_SLABS = 293, /* VAR_RRSET_CACHE_SLABS */ + VAR_OUTGOING_NUM_TCP = 294, /* VAR_OUTGOING_NUM_TCP */ + VAR_INFRA_HOST_TTL = 295, /* VAR_INFRA_HOST_TTL */ + VAR_INFRA_LAME_TTL = 296, /* VAR_INFRA_LAME_TTL */ + VAR_INFRA_CACHE_SLABS = 297, /* VAR_INFRA_CACHE_SLABS */ + VAR_INFRA_CACHE_NUMHOSTS = 298, /* VAR_INFRA_CACHE_NUMHOSTS */ + VAR_INFRA_CACHE_LAME_SIZE = 299, /* VAR_INFRA_CACHE_LAME_SIZE */ + VAR_NAME = 300, /* VAR_NAME */ + VAR_STUB_ZONE = 301, /* VAR_STUB_ZONE */ + VAR_STUB_HOST = 302, /* VAR_STUB_HOST */ + VAR_STUB_ADDR = 303, /* VAR_STUB_ADDR */ + VAR_TARGET_FETCH_POLICY = 304, /* VAR_TARGET_FETCH_POLICY */ + VAR_HARDEN_SHORT_BUFSIZE = 305, /* VAR_HARDEN_SHORT_BUFSIZE */ + VAR_HARDEN_LARGE_QUERIES = 306, /* VAR_HARDEN_LARGE_QUERIES */ + VAR_FORWARD_ZONE = 307, /* VAR_FORWARD_ZONE */ + VAR_FORWARD_HOST = 308, /* VAR_FORWARD_HOST */ + VAR_FORWARD_ADDR = 309, /* VAR_FORWARD_ADDR */ + VAR_DO_NOT_QUERY_ADDRESS = 310, /* VAR_DO_NOT_QUERY_ADDRESS */ + VAR_HIDE_IDENTITY = 311, /* VAR_HIDE_IDENTITY */ + VAR_HIDE_VERSION = 312, /* VAR_HIDE_VERSION */ + VAR_IDENTITY = 313, /* VAR_IDENTITY */ + VAR_VERSION = 314, /* VAR_VERSION */ + VAR_HARDEN_GLUE = 315, /* VAR_HARDEN_GLUE */ + VAR_MODULE_CONF = 316, /* VAR_MODULE_CONF */ + VAR_TRUST_ANCHOR_FILE = 317, /* VAR_TRUST_ANCHOR_FILE */ + VAR_TRUST_ANCHOR = 318, /* VAR_TRUST_ANCHOR */ + VAR_VAL_OVERRIDE_DATE = 319, /* VAR_VAL_OVERRIDE_DATE */ + VAR_BOGUS_TTL = 320, /* VAR_BOGUS_TTL */ + VAR_VAL_CLEAN_ADDITIONAL = 321, /* VAR_VAL_CLEAN_ADDITIONAL */ + VAR_VAL_PERMISSIVE_MODE = 322, /* VAR_VAL_PERMISSIVE_MODE */ + VAR_INCOMING_NUM_TCP = 323, /* VAR_INCOMING_NUM_TCP */ + VAR_MSG_BUFFER_SIZE = 324, /* VAR_MSG_BUFFER_SIZE */ + VAR_KEY_CACHE_SIZE = 325, /* VAR_KEY_CACHE_SIZE */ + VAR_KEY_CACHE_SLABS = 326, /* VAR_KEY_CACHE_SLABS */ + VAR_TRUSTED_KEYS_FILE = 327, /* VAR_TRUSTED_KEYS_FILE */ + VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 328, /* VAR_VAL_NSEC3_KEYSIZE_ITERATIONS */ + VAR_USE_SYSLOG = 329, /* VAR_USE_SYSLOG */ + VAR_OUTGOING_INTERFACE = 330, /* VAR_OUTGOING_INTERFACE */ + VAR_ROOT_HINTS = 331, /* VAR_ROOT_HINTS */ + VAR_DO_NOT_QUERY_LOCALHOST = 332, /* VAR_DO_NOT_QUERY_LOCALHOST */ + VAR_CACHE_MAX_TTL = 333, /* VAR_CACHE_MAX_TTL */ + VAR_HARDEN_DNSSEC_STRIPPED = 334, /* VAR_HARDEN_DNSSEC_STRIPPED */ + VAR_ACCESS_CONTROL = 335, /* VAR_ACCESS_CONTROL */ + VAR_LOCAL_ZONE = 336, /* VAR_LOCAL_ZONE */ + VAR_LOCAL_DATA = 337, /* VAR_LOCAL_DATA */ + VAR_INTERFACE_AUTOMATIC = 338, /* VAR_INTERFACE_AUTOMATIC */ + VAR_STATISTICS_INTERVAL = 339, /* VAR_STATISTICS_INTERVAL */ + VAR_DO_DAEMONIZE = 340, /* VAR_DO_DAEMONIZE */ + VAR_USE_CAPS_FOR_ID = 341, /* VAR_USE_CAPS_FOR_ID */ + VAR_STATISTICS_CUMULATIVE = 342, /* VAR_STATISTICS_CUMULATIVE */ + VAR_OUTGOING_PORT_PERMIT = 343, /* VAR_OUTGOING_PORT_PERMIT */ + VAR_OUTGOING_PORT_AVOID = 344, /* VAR_OUTGOING_PORT_AVOID */ + VAR_DLV_ANCHOR_FILE = 345, /* VAR_DLV_ANCHOR_FILE */ + VAR_DLV_ANCHOR = 346, /* VAR_DLV_ANCHOR */ + VAR_NEG_CACHE_SIZE = 347, /* VAR_NEG_CACHE_SIZE */ + VAR_HARDEN_REFERRAL_PATH = 348, /* VAR_HARDEN_REFERRAL_PATH */ + VAR_PRIVATE_ADDRESS = 349, /* VAR_PRIVATE_ADDRESS */ + VAR_PRIVATE_DOMAIN = 350, /* VAR_PRIVATE_DOMAIN */ + VAR_REMOTE_CONTROL = 351, /* VAR_REMOTE_CONTROL */ + VAR_CONTROL_ENABLE = 352, /* VAR_CONTROL_ENABLE */ + VAR_CONTROL_INTERFACE = 353, /* VAR_CONTROL_INTERFACE */ + VAR_CONTROL_PORT = 354, /* VAR_CONTROL_PORT */ + VAR_SERVER_KEY_FILE = 355, /* VAR_SERVER_KEY_FILE */ + VAR_SERVER_CERT_FILE = 356, /* VAR_SERVER_CERT_FILE */ + VAR_CONTROL_KEY_FILE = 357, /* VAR_CONTROL_KEY_FILE */ + VAR_CONTROL_CERT_FILE = 358, /* VAR_CONTROL_CERT_FILE */ + VAR_CONTROL_USE_CERT = 359, /* VAR_CONTROL_USE_CERT */ + VAR_EXTENDED_STATISTICS = 360, /* VAR_EXTENDED_STATISTICS */ + VAR_LOCAL_DATA_PTR = 361, /* VAR_LOCAL_DATA_PTR */ + VAR_JOSTLE_TIMEOUT = 362, /* VAR_JOSTLE_TIMEOUT */ + VAR_STUB_PRIME = 363, /* VAR_STUB_PRIME */ + VAR_UNWANTED_REPLY_THRESHOLD = 364, /* VAR_UNWANTED_REPLY_THRESHOLD */ + VAR_LOG_TIME_ASCII = 365, /* VAR_LOG_TIME_ASCII */ + VAR_DOMAIN_INSECURE = 366, /* VAR_DOMAIN_INSECURE */ + VAR_PYTHON = 367, /* VAR_PYTHON */ + VAR_PYTHON_SCRIPT = 368, /* VAR_PYTHON_SCRIPT */ + VAR_VAL_SIG_SKEW_MIN = 369, /* VAR_VAL_SIG_SKEW_MIN */ + VAR_VAL_SIG_SKEW_MAX = 370, /* VAR_VAL_SIG_SKEW_MAX */ + VAR_CACHE_MIN_TTL = 371, /* VAR_CACHE_MIN_TTL */ + VAR_VAL_LOG_LEVEL = 372, /* VAR_VAL_LOG_LEVEL */ + VAR_AUTO_TRUST_ANCHOR_FILE = 373, /* VAR_AUTO_TRUST_ANCHOR_FILE */ + VAR_KEEP_MISSING = 374, /* VAR_KEEP_MISSING */ + VAR_ADD_HOLDDOWN = 375, /* VAR_ADD_HOLDDOWN */ + VAR_DEL_HOLDDOWN = 376, /* VAR_DEL_HOLDDOWN */ + VAR_SO_RCVBUF = 377, /* VAR_SO_RCVBUF */ + VAR_EDNS_BUFFER_SIZE = 378, /* VAR_EDNS_BUFFER_SIZE */ + VAR_PREFETCH = 379, /* VAR_PREFETCH */ + VAR_PREFETCH_KEY = 380, /* VAR_PREFETCH_KEY */ + VAR_SO_SNDBUF = 381, /* VAR_SO_SNDBUF */ + VAR_SO_REUSEPORT = 382, /* VAR_SO_REUSEPORT */ + VAR_HARDEN_BELOW_NXDOMAIN = 383, /* VAR_HARDEN_BELOW_NXDOMAIN */ + VAR_IGNORE_CD_FLAG = 384, /* VAR_IGNORE_CD_FLAG */ + VAR_LOG_QUERIES = 385, /* VAR_LOG_QUERIES */ + VAR_LOG_REPLIES = 386, /* VAR_LOG_REPLIES */ + VAR_LOG_LOCAL_ACTIONS = 387, /* VAR_LOG_LOCAL_ACTIONS */ + VAR_TCP_UPSTREAM = 388, /* VAR_TCP_UPSTREAM */ + VAR_SSL_UPSTREAM = 389, /* VAR_SSL_UPSTREAM */ + VAR_SSL_SERVICE_KEY = 390, /* VAR_SSL_SERVICE_KEY */ + VAR_SSL_SERVICE_PEM = 391, /* VAR_SSL_SERVICE_PEM */ + VAR_SSL_PORT = 392, /* VAR_SSL_PORT */ + VAR_FORWARD_FIRST = 393, /* VAR_FORWARD_FIRST */ + VAR_STUB_SSL_UPSTREAM = 394, /* VAR_STUB_SSL_UPSTREAM */ + VAR_FORWARD_SSL_UPSTREAM = 395, /* VAR_FORWARD_SSL_UPSTREAM */ + VAR_TLS_CERT_BUNDLE = 396, /* VAR_TLS_CERT_BUNDLE */ + VAR_HTTPS_PORT = 397, /* VAR_HTTPS_PORT */ + VAR_HTTP_ENDPOINT = 398, /* VAR_HTTP_ENDPOINT */ + VAR_HTTP_MAX_STREAMS = 399, /* VAR_HTTP_MAX_STREAMS */ + VAR_HTTP_QUERY_BUFFER_SIZE = 400, /* VAR_HTTP_QUERY_BUFFER_SIZE */ + VAR_HTTP_RESPONSE_BUFFER_SIZE = 401, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ + VAR_HTTP_NODELAY = 402, /* VAR_HTTP_NODELAY */ + VAR_HTTP_NOTLS_DOWNSTREAM = 403, /* VAR_HTTP_NOTLS_DOWNSTREAM */ + VAR_STUB_FIRST = 404, /* VAR_STUB_FIRST */ + VAR_MINIMAL_RESPONSES = 405, /* VAR_MINIMAL_RESPONSES */ + VAR_RRSET_ROUNDROBIN = 406, /* VAR_RRSET_ROUNDROBIN */ + VAR_MAX_UDP_SIZE = 407, /* VAR_MAX_UDP_SIZE */ + VAR_DELAY_CLOSE = 408, /* VAR_DELAY_CLOSE */ + VAR_UDP_CONNECT = 409, /* VAR_UDP_CONNECT */ + VAR_UNBLOCK_LAN_ZONES = 410, /* VAR_UNBLOCK_LAN_ZONES */ + VAR_INSECURE_LAN_ZONES = 411, /* VAR_INSECURE_LAN_ZONES */ + VAR_INFRA_CACHE_MIN_RTT = 412, /* VAR_INFRA_CACHE_MIN_RTT */ + VAR_INFRA_KEEP_PROBING = 413, /* VAR_INFRA_KEEP_PROBING */ + VAR_DNS64_PREFIX = 414, /* VAR_DNS64_PREFIX */ + VAR_DNS64_SYNTHALL = 415, /* VAR_DNS64_SYNTHALL */ + VAR_DNS64_IGNORE_AAAA = 416, /* VAR_DNS64_IGNORE_AAAA */ + VAR_DNSTAP = 417, /* VAR_DNSTAP */ + VAR_DNSTAP_ENABLE = 418, /* VAR_DNSTAP_ENABLE */ + VAR_DNSTAP_SOCKET_PATH = 419, /* VAR_DNSTAP_SOCKET_PATH */ + VAR_DNSTAP_IP = 420, /* VAR_DNSTAP_IP */ + VAR_DNSTAP_TLS = 421, /* VAR_DNSTAP_TLS */ + VAR_DNSTAP_TLS_SERVER_NAME = 422, /* VAR_DNSTAP_TLS_SERVER_NAME */ + VAR_DNSTAP_TLS_CERT_BUNDLE = 423, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ + VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 424, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ + VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 425, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ + VAR_DNSTAP_SEND_IDENTITY = 426, /* VAR_DNSTAP_SEND_IDENTITY */ + VAR_DNSTAP_SEND_VERSION = 427, /* VAR_DNSTAP_SEND_VERSION */ + VAR_DNSTAP_BIDIRECTIONAL = 428, /* VAR_DNSTAP_BIDIRECTIONAL */ + VAR_DNSTAP_IDENTITY = 429, /* VAR_DNSTAP_IDENTITY */ + VAR_DNSTAP_VERSION = 430, /* VAR_DNSTAP_VERSION */ + VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 431, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 432, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ + VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 433, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 434, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ + VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 435, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 436, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ + VAR_RESPONSE_IP_TAG = 437, /* VAR_RESPONSE_IP_TAG */ + VAR_RESPONSE_IP = 438, /* VAR_RESPONSE_IP */ + VAR_RESPONSE_IP_DATA = 439, /* VAR_RESPONSE_IP_DATA */ + VAR_HARDEN_ALGO_DOWNGRADE = 440, /* VAR_HARDEN_ALGO_DOWNGRADE */ + VAR_IP_TRANSPARENT = 441, /* VAR_IP_TRANSPARENT */ + VAR_IP_DSCP = 442, /* VAR_IP_DSCP */ + VAR_DISABLE_DNSSEC_LAME_CHECK = 443, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ + VAR_IP_RATELIMIT = 444, /* VAR_IP_RATELIMIT */ + VAR_IP_RATELIMIT_SLABS = 445, /* VAR_IP_RATELIMIT_SLABS */ + VAR_IP_RATELIMIT_SIZE = 446, /* VAR_IP_RATELIMIT_SIZE */ + VAR_RATELIMIT = 447, /* VAR_RATELIMIT */ + VAR_RATELIMIT_SLABS = 448, /* VAR_RATELIMIT_SLABS */ + VAR_RATELIMIT_SIZE = 449, /* VAR_RATELIMIT_SIZE */ + VAR_RATELIMIT_FOR_DOMAIN = 450, /* VAR_RATELIMIT_FOR_DOMAIN */ + VAR_RATELIMIT_BELOW_DOMAIN = 451, /* VAR_RATELIMIT_BELOW_DOMAIN */ + VAR_IP_RATELIMIT_FACTOR = 452, /* VAR_IP_RATELIMIT_FACTOR */ + VAR_RATELIMIT_FACTOR = 453, /* VAR_RATELIMIT_FACTOR */ + VAR_SEND_CLIENT_SUBNET = 454, /* VAR_SEND_CLIENT_SUBNET */ + VAR_CLIENT_SUBNET_ZONE = 455, /* VAR_CLIENT_SUBNET_ZONE */ + VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 456, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ + VAR_CLIENT_SUBNET_OPCODE = 457, /* VAR_CLIENT_SUBNET_OPCODE */ + VAR_MAX_CLIENT_SUBNET_IPV4 = 458, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ + VAR_MAX_CLIENT_SUBNET_IPV6 = 459, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ + VAR_MIN_CLIENT_SUBNET_IPV4 = 460, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ + VAR_MIN_CLIENT_SUBNET_IPV6 = 461, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ + VAR_MAX_ECS_TREE_SIZE_IPV4 = 462, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ + VAR_MAX_ECS_TREE_SIZE_IPV6 = 463, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ + VAR_CAPS_WHITELIST = 464, /* VAR_CAPS_WHITELIST */ + VAR_CACHE_MAX_NEGATIVE_TTL = 465, /* VAR_CACHE_MAX_NEGATIVE_TTL */ + VAR_PERMIT_SMALL_HOLDDOWN = 466, /* VAR_PERMIT_SMALL_HOLDDOWN */ + VAR_QNAME_MINIMISATION = 467, /* VAR_QNAME_MINIMISATION */ + VAR_QNAME_MINIMISATION_STRICT = 468, /* VAR_QNAME_MINIMISATION_STRICT */ + VAR_IP_FREEBIND = 469, /* VAR_IP_FREEBIND */ + VAR_DEFINE_TAG = 470, /* VAR_DEFINE_TAG */ + VAR_LOCAL_ZONE_TAG = 471, /* VAR_LOCAL_ZONE_TAG */ + VAR_ACCESS_CONTROL_TAG = 472, /* VAR_ACCESS_CONTROL_TAG */ + VAR_LOCAL_ZONE_OVERRIDE = 473, /* VAR_LOCAL_ZONE_OVERRIDE */ + VAR_ACCESS_CONTROL_TAG_ACTION = 474, /* VAR_ACCESS_CONTROL_TAG_ACTION */ + VAR_ACCESS_CONTROL_TAG_DATA = 475, /* VAR_ACCESS_CONTROL_TAG_DATA */ + VAR_VIEW = 476, /* VAR_VIEW */ + VAR_ACCESS_CONTROL_VIEW = 477, /* VAR_ACCESS_CONTROL_VIEW */ + VAR_VIEW_FIRST = 478, /* VAR_VIEW_FIRST */ + VAR_SERVE_EXPIRED = 479, /* VAR_SERVE_EXPIRED */ + VAR_SERVE_EXPIRED_TTL = 480, /* VAR_SERVE_EXPIRED_TTL */ + VAR_SERVE_EXPIRED_TTL_RESET = 481, /* VAR_SERVE_EXPIRED_TTL_RESET */ + VAR_SERVE_EXPIRED_REPLY_TTL = 482, /* VAR_SERVE_EXPIRED_REPLY_TTL */ + VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 483, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ + VAR_SERVE_ORIGINAL_TTL = 484, /* VAR_SERVE_ORIGINAL_TTL */ + VAR_FAKE_DSA = 485, /* VAR_FAKE_DSA */ + VAR_FAKE_SHA1 = 486, /* VAR_FAKE_SHA1 */ + VAR_LOG_IDENTITY = 487, /* VAR_LOG_IDENTITY */ + VAR_HIDE_TRUSTANCHOR = 488, /* VAR_HIDE_TRUSTANCHOR */ + VAR_TRUST_ANCHOR_SIGNALING = 489, /* VAR_TRUST_ANCHOR_SIGNALING */ + VAR_AGGRESSIVE_NSEC = 490, /* VAR_AGGRESSIVE_NSEC */ + VAR_USE_SYSTEMD = 491, /* VAR_USE_SYSTEMD */ + VAR_SHM_ENABLE = 492, /* VAR_SHM_ENABLE */ + VAR_SHM_KEY = 493, /* VAR_SHM_KEY */ + VAR_ROOT_KEY_SENTINEL = 494, /* VAR_ROOT_KEY_SENTINEL */ + VAR_DNSCRYPT = 495, /* VAR_DNSCRYPT */ + VAR_DNSCRYPT_ENABLE = 496, /* VAR_DNSCRYPT_ENABLE */ + VAR_DNSCRYPT_PORT = 497, /* VAR_DNSCRYPT_PORT */ + VAR_DNSCRYPT_PROVIDER = 498, /* VAR_DNSCRYPT_PROVIDER */ + VAR_DNSCRYPT_SECRET_KEY = 499, /* VAR_DNSCRYPT_SECRET_KEY */ + VAR_DNSCRYPT_PROVIDER_CERT = 500, /* VAR_DNSCRYPT_PROVIDER_CERT */ + VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 501, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 502, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 503, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ + VAR_DNSCRYPT_NONCE_CACHE_SIZE = 504, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ + VAR_DNSCRYPT_NONCE_CACHE_SLABS = 505, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ + VAR_PAD_RESPONSES = 506, /* VAR_PAD_RESPONSES */ + VAR_PAD_RESPONSES_BLOCK_SIZE = 507, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ + VAR_PAD_QUERIES = 508, /* VAR_PAD_QUERIES */ + VAR_PAD_QUERIES_BLOCK_SIZE = 509, /* VAR_PAD_QUERIES_BLOCK_SIZE */ + VAR_IPSECMOD_ENABLED = 510, /* VAR_IPSECMOD_ENABLED */ + VAR_IPSECMOD_HOOK = 511, /* VAR_IPSECMOD_HOOK */ + VAR_IPSECMOD_IGNORE_BOGUS = 512, /* VAR_IPSECMOD_IGNORE_BOGUS */ + VAR_IPSECMOD_MAX_TTL = 513, /* VAR_IPSECMOD_MAX_TTL */ + VAR_IPSECMOD_WHITELIST = 514, /* VAR_IPSECMOD_WHITELIST */ + VAR_IPSECMOD_STRICT = 515, /* VAR_IPSECMOD_STRICT */ + VAR_CACHEDB = 516, /* VAR_CACHEDB */ + VAR_CACHEDB_BACKEND = 517, /* VAR_CACHEDB_BACKEND */ + VAR_CACHEDB_SECRETSEED = 518, /* VAR_CACHEDB_SECRETSEED */ + VAR_CACHEDB_REDISHOST = 519, /* VAR_CACHEDB_REDISHOST */ + VAR_CACHEDB_REDISPORT = 520, /* VAR_CACHEDB_REDISPORT */ + VAR_CACHEDB_REDISTIMEOUT = 521, /* VAR_CACHEDB_REDISTIMEOUT */ + VAR_CACHEDB_REDISEXPIRERECORDS = 522, /* VAR_CACHEDB_REDISEXPIRERECORDS */ + VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 523, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ + VAR_FOR_UPSTREAM = 524, /* VAR_FOR_UPSTREAM */ + VAR_AUTH_ZONE = 525, /* VAR_AUTH_ZONE */ + VAR_ZONEFILE = 526, /* VAR_ZONEFILE */ + VAR_MASTER = 527, /* VAR_MASTER */ + VAR_URL = 528, /* VAR_URL */ + VAR_FOR_DOWNSTREAM = 529, /* VAR_FOR_DOWNSTREAM */ + VAR_FALLBACK_ENABLED = 530, /* VAR_FALLBACK_ENABLED */ + VAR_TLS_ADDITIONAL_PORT = 531, /* VAR_TLS_ADDITIONAL_PORT */ + VAR_LOW_RTT = 532, /* VAR_LOW_RTT */ + VAR_LOW_RTT_PERMIL = 533, /* VAR_LOW_RTT_PERMIL */ + VAR_FAST_SERVER_PERMIL = 534, /* VAR_FAST_SERVER_PERMIL */ + VAR_FAST_SERVER_NUM = 535, /* VAR_FAST_SERVER_NUM */ + VAR_ALLOW_NOTIFY = 536, /* VAR_ALLOW_NOTIFY */ + VAR_TLS_WIN_CERT = 537, /* VAR_TLS_WIN_CERT */ + VAR_TCP_CONNECTION_LIMIT = 538, /* VAR_TCP_CONNECTION_LIMIT */ + VAR_FORWARD_NO_CACHE = 539, /* VAR_FORWARD_NO_CACHE */ + VAR_STUB_NO_CACHE = 540, /* VAR_STUB_NO_CACHE */ + VAR_LOG_SERVFAIL = 541, /* VAR_LOG_SERVFAIL */ + VAR_DENY_ANY = 542, /* VAR_DENY_ANY */ + VAR_UNKNOWN_SERVER_TIME_LIMIT = 543, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ + VAR_LOG_TAG_QUERYREPLY = 544, /* VAR_LOG_TAG_QUERYREPLY */ + VAR_STREAM_WAIT_SIZE = 545, /* VAR_STREAM_WAIT_SIZE */ + VAR_TLS_CIPHERS = 546, /* VAR_TLS_CIPHERS */ + VAR_TLS_CIPHERSUITES = 547, /* VAR_TLS_CIPHERSUITES */ + VAR_TLS_USE_SNI = 548, /* VAR_TLS_USE_SNI */ + VAR_IPSET = 549, /* VAR_IPSET */ + VAR_IPSET_NAME_V4 = 550, /* VAR_IPSET_NAME_V4 */ + VAR_IPSET_NAME_V6 = 551, /* VAR_IPSET_NAME_V6 */ + VAR_TLS_SESSION_TICKET_KEYS = 552, /* VAR_TLS_SESSION_TICKET_KEYS */ + VAR_RPZ = 553, /* VAR_RPZ */ + VAR_TAGS = 554, /* VAR_TAGS */ + VAR_RPZ_ACTION_OVERRIDE = 555, /* VAR_RPZ_ACTION_OVERRIDE */ + VAR_RPZ_CNAME_OVERRIDE = 556, /* VAR_RPZ_CNAME_OVERRIDE */ + VAR_RPZ_LOG = 557, /* VAR_RPZ_LOG */ + VAR_RPZ_LOG_NAME = 558, /* VAR_RPZ_LOG_NAME */ + VAR_DYNLIB = 559, /* VAR_DYNLIB */ + VAR_DYNLIB_FILE = 560, /* VAR_DYNLIB_FILE */ + VAR_EDNS_CLIENT_STRING = 561, /* VAR_EDNS_CLIENT_STRING */ + VAR_EDNS_CLIENT_STRING_OPCODE = 562, /* VAR_EDNS_CLIENT_STRING_OPCODE */ + VAR_NSID = 563 /* VAR_NSID */ + }; + typedef enum yytokentype yytoken_kind_t; +#endif +/* Token kinds. */ +#define YYEOF 0 +#define YYerror 256 +#define YYUNDEF 257 +#define SPACE 258 +#define LETTER 259 +#define NEWLINE 260 +#define COMMENT 261 +#define COLON 262 +#define ANY 263 +#define ZONESTR 264 +#define STRING_ARG 265 +#define VAR_FORCE_TOPLEVEL 266 +#define VAR_SERVER 267 +#define VAR_VERBOSITY 268 +#define VAR_NUM_THREADS 269 +#define VAR_PORT 270 +#define VAR_OUTGOING_RANGE 271 +#define VAR_INTERFACE 272 +#define VAR_PREFER_IP4 273 +#define VAR_DO_IP4 274 +#define VAR_DO_IP6 275 +#define VAR_PREFER_IP6 276 +#define VAR_DO_UDP 277 +#define VAR_DO_TCP 278 +#define VAR_TCP_MSS 279 +#define VAR_OUTGOING_TCP_MSS 280 +#define VAR_TCP_IDLE_TIMEOUT 281 +#define VAR_EDNS_TCP_KEEPALIVE 282 +#define VAR_EDNS_TCP_KEEPALIVE_TIMEOUT 283 +#define VAR_CHROOT 284 +#define VAR_USERNAME 285 +#define VAR_DIRECTORY 286 +#define VAR_LOGFILE 287 +#define VAR_PIDFILE 288 +#define VAR_MSG_CACHE_SIZE 289 +#define VAR_MSG_CACHE_SLABS 290 +#define VAR_NUM_QUERIES_PER_THREAD 291 +#define VAR_RRSET_CACHE_SIZE 292 +#define VAR_RRSET_CACHE_SLABS 293 +#define VAR_OUTGOING_NUM_TCP 294 +#define VAR_INFRA_HOST_TTL 295 +#define VAR_INFRA_LAME_TTL 296 +#define VAR_INFRA_CACHE_SLABS 297 +#define VAR_INFRA_CACHE_NUMHOSTS 298 +#define VAR_INFRA_CACHE_LAME_SIZE 299 +#define VAR_NAME 300 +#define VAR_STUB_ZONE 301 +#define VAR_STUB_HOST 302 +#define VAR_STUB_ADDR 303 +#define VAR_TARGET_FETCH_POLICY 304 +#define VAR_HARDEN_SHORT_BUFSIZE 305 +#define VAR_HARDEN_LARGE_QUERIES 306 +#define VAR_FORWARD_ZONE 307 +#define VAR_FORWARD_HOST 308 +#define VAR_FORWARD_ADDR 309 +#define VAR_DO_NOT_QUERY_ADDRESS 310 +#define VAR_HIDE_IDENTITY 311 +#define VAR_HIDE_VERSION 312 +#define VAR_IDENTITY 313 +#define VAR_VERSION 314 +#define VAR_HARDEN_GLUE 315 +#define VAR_MODULE_CONF 316 +#define VAR_TRUST_ANCHOR_FILE 317 +#define VAR_TRUST_ANCHOR 318 +#define VAR_VAL_OVERRIDE_DATE 319 +#define VAR_BOGUS_TTL 320 +#define VAR_VAL_CLEAN_ADDITIONAL 321 +#define VAR_VAL_PERMISSIVE_MODE 322 +#define VAR_INCOMING_NUM_TCP 323 +#define VAR_MSG_BUFFER_SIZE 324 +#define VAR_KEY_CACHE_SIZE 325 +#define VAR_KEY_CACHE_SLABS 326 +#define VAR_TRUSTED_KEYS_FILE 327 +#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 328 +#define VAR_USE_SYSLOG 329 +#define VAR_OUTGOING_INTERFACE 330 +#define VAR_ROOT_HINTS 331 +#define VAR_DO_NOT_QUERY_LOCALHOST 332 +#define VAR_CACHE_MAX_TTL 333 +#define VAR_HARDEN_DNSSEC_STRIPPED 334 +#define VAR_ACCESS_CONTROL 335 +#define VAR_LOCAL_ZONE 336 +#define VAR_LOCAL_DATA 337 +#define VAR_INTERFACE_AUTOMATIC 338 +#define VAR_STATISTICS_INTERVAL 339 +#define VAR_DO_DAEMONIZE 340 +#define VAR_USE_CAPS_FOR_ID 341 +#define VAR_STATISTICS_CUMULATIVE 342 +#define VAR_OUTGOING_PORT_PERMIT 343 +#define VAR_OUTGOING_PORT_AVOID 344 +#define VAR_DLV_ANCHOR_FILE 345 +#define VAR_DLV_ANCHOR 346 +#define VAR_NEG_CACHE_SIZE 347 +#define VAR_HARDEN_REFERRAL_PATH 348 +#define VAR_PRIVATE_ADDRESS 349 +#define VAR_PRIVATE_DOMAIN 350 +#define VAR_REMOTE_CONTROL 351 +#define VAR_CONTROL_ENABLE 352 +#define VAR_CONTROL_INTERFACE 353 +#define VAR_CONTROL_PORT 354 +#define VAR_SERVER_KEY_FILE 355 +#define VAR_SERVER_CERT_FILE 356 +#define VAR_CONTROL_KEY_FILE 357 +#define VAR_CONTROL_CERT_FILE 358 +#define VAR_CONTROL_USE_CERT 359 +#define VAR_EXTENDED_STATISTICS 360 +#define VAR_LOCAL_DATA_PTR 361 +#define VAR_JOSTLE_TIMEOUT 362 +#define VAR_STUB_PRIME 363 +#define VAR_UNWANTED_REPLY_THRESHOLD 364 +#define VAR_LOG_TIME_ASCII 365 +#define VAR_DOMAIN_INSECURE 366 +#define VAR_PYTHON 367 +#define VAR_PYTHON_SCRIPT 368 +#define VAR_VAL_SIG_SKEW_MIN 369 +#define VAR_VAL_SIG_SKEW_MAX 370 +#define VAR_CACHE_MIN_TTL 371 +#define VAR_VAL_LOG_LEVEL 372 +#define VAR_AUTO_TRUST_ANCHOR_FILE 373 +#define VAR_KEEP_MISSING 374 +#define VAR_ADD_HOLDDOWN 375 +#define VAR_DEL_HOLDDOWN 376 +#define VAR_SO_RCVBUF 377 +#define VAR_EDNS_BUFFER_SIZE 378 +#define VAR_PREFETCH 379 +#define VAR_PREFETCH_KEY 380 +#define VAR_SO_SNDBUF 381 +#define VAR_SO_REUSEPORT 382 +#define VAR_HARDEN_BELOW_NXDOMAIN 383 +#define VAR_IGNORE_CD_FLAG 384 +#define VAR_LOG_QUERIES 385 +#define VAR_LOG_REPLIES 386 +#define VAR_LOG_LOCAL_ACTIONS 387 +#define VAR_TCP_UPSTREAM 388 +#define VAR_SSL_UPSTREAM 389 +#define VAR_SSL_SERVICE_KEY 390 +#define VAR_SSL_SERVICE_PEM 391 +#define VAR_SSL_PORT 392 +#define VAR_FORWARD_FIRST 393 +#define VAR_STUB_SSL_UPSTREAM 394 +#define VAR_FORWARD_SSL_UPSTREAM 395 +#define VAR_TLS_CERT_BUNDLE 396 +#define VAR_HTTPS_PORT 397 +#define VAR_HTTP_ENDPOINT 398 +#define VAR_HTTP_MAX_STREAMS 399 +#define VAR_HTTP_QUERY_BUFFER_SIZE 400 +#define VAR_HTTP_RESPONSE_BUFFER_SIZE 401 +#define VAR_HTTP_NODELAY 402 +#define VAR_HTTP_NOTLS_DOWNSTREAM 403 +#define VAR_STUB_FIRST 404 +#define VAR_MINIMAL_RESPONSES 405 +#define VAR_RRSET_ROUNDROBIN 406 +#define VAR_MAX_UDP_SIZE 407 +#define VAR_DELAY_CLOSE 408 +#define VAR_UDP_CONNECT 409 +#define VAR_UNBLOCK_LAN_ZONES 410 +#define VAR_INSECURE_LAN_ZONES 411 +#define VAR_INFRA_CACHE_MIN_RTT 412 +#define VAR_INFRA_KEEP_PROBING 413 +#define VAR_DNS64_PREFIX 414 +#define VAR_DNS64_SYNTHALL 415 +#define VAR_DNS64_IGNORE_AAAA 416 +#define VAR_DNSTAP 417 +#define VAR_DNSTAP_ENABLE 418 +#define VAR_DNSTAP_SOCKET_PATH 419 +#define VAR_DNSTAP_IP 420 +#define VAR_DNSTAP_TLS 421 +#define VAR_DNSTAP_TLS_SERVER_NAME 422 +#define VAR_DNSTAP_TLS_CERT_BUNDLE 423 +#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 424 +#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 425 +#define VAR_DNSTAP_SEND_IDENTITY 426 +#define VAR_DNSTAP_SEND_VERSION 427 +#define VAR_DNSTAP_BIDIRECTIONAL 428 +#define VAR_DNSTAP_IDENTITY 429 +#define VAR_DNSTAP_VERSION 430 +#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 431 +#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 432 +#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 433 +#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 434 +#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 435 +#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 436 +#define VAR_RESPONSE_IP_TAG 437 +#define VAR_RESPONSE_IP 438 +#define VAR_RESPONSE_IP_DATA 439 +#define VAR_HARDEN_ALGO_DOWNGRADE 440 +#define VAR_IP_TRANSPARENT 441 +#define VAR_IP_DSCP 442 +#define VAR_DISABLE_DNSSEC_LAME_CHECK 443 +#define VAR_IP_RATELIMIT 444 +#define VAR_IP_RATELIMIT_SLABS 445 +#define VAR_IP_RATELIMIT_SIZE 446 +#define VAR_RATELIMIT 447 +#define VAR_RATELIMIT_SLABS 448 +#define VAR_RATELIMIT_SIZE 449 +#define VAR_RATELIMIT_FOR_DOMAIN 450 +#define VAR_RATELIMIT_BELOW_DOMAIN 451 +#define VAR_IP_RATELIMIT_FACTOR 452 +#define VAR_RATELIMIT_FACTOR 453 +#define VAR_SEND_CLIENT_SUBNET 454 +#define VAR_CLIENT_SUBNET_ZONE 455 +#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 456 +#define VAR_CLIENT_SUBNET_OPCODE 457 +#define VAR_MAX_CLIENT_SUBNET_IPV4 458 +#define VAR_MAX_CLIENT_SUBNET_IPV6 459 +#define VAR_MIN_CLIENT_SUBNET_IPV4 460 +#define VAR_MIN_CLIENT_SUBNET_IPV6 461 +#define VAR_MAX_ECS_TREE_SIZE_IPV4 462 +#define VAR_MAX_ECS_TREE_SIZE_IPV6 463 +#define VAR_CAPS_WHITELIST 464 +#define VAR_CACHE_MAX_NEGATIVE_TTL 465 +#define VAR_PERMIT_SMALL_HOLDDOWN 466 +#define VAR_QNAME_MINIMISATION 467 +#define VAR_QNAME_MINIMISATION_STRICT 468 +#define VAR_IP_FREEBIND 469 +#define VAR_DEFINE_TAG 470 +#define VAR_LOCAL_ZONE_TAG 471 +#define VAR_ACCESS_CONTROL_TAG 472 +#define VAR_LOCAL_ZONE_OVERRIDE 473 +#define VAR_ACCESS_CONTROL_TAG_ACTION 474 +#define VAR_ACCESS_CONTROL_TAG_DATA 475 +#define VAR_VIEW 476 +#define VAR_ACCESS_CONTROL_VIEW 477 +#define VAR_VIEW_FIRST 478 +#define VAR_SERVE_EXPIRED 479 +#define VAR_SERVE_EXPIRED_TTL 480 +#define VAR_SERVE_EXPIRED_TTL_RESET 481 +#define VAR_SERVE_EXPIRED_REPLY_TTL 482 +#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 483 +#define VAR_SERVE_ORIGINAL_TTL 484 +#define VAR_FAKE_DSA 485 +#define VAR_FAKE_SHA1 486 +#define VAR_LOG_IDENTITY 487 +#define VAR_HIDE_TRUSTANCHOR 488 +#define VAR_TRUST_ANCHOR_SIGNALING 489 +#define VAR_AGGRESSIVE_NSEC 490 +#define VAR_USE_SYSTEMD 491 +#define VAR_SHM_ENABLE 492 +#define VAR_SHM_KEY 493 +#define VAR_ROOT_KEY_SENTINEL 494 +#define VAR_DNSCRYPT 495 +#define VAR_DNSCRYPT_ENABLE 496 +#define VAR_DNSCRYPT_PORT 497 +#define VAR_DNSCRYPT_PROVIDER 498 +#define VAR_DNSCRYPT_SECRET_KEY 499 +#define VAR_DNSCRYPT_PROVIDER_CERT 500 +#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 501 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 502 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 503 +#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 504 +#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 505 +#define VAR_PAD_RESPONSES 506 +#define VAR_PAD_RESPONSES_BLOCK_SIZE 507 +#define VAR_PAD_QUERIES 508 +#define VAR_PAD_QUERIES_BLOCK_SIZE 509 +#define VAR_IPSECMOD_ENABLED 510 +#define VAR_IPSECMOD_HOOK 511 +#define VAR_IPSECMOD_IGNORE_BOGUS 512 +#define VAR_IPSECMOD_MAX_TTL 513 +#define VAR_IPSECMOD_WHITELIST 514 +#define VAR_IPSECMOD_STRICT 515 +#define VAR_CACHEDB 516 +#define VAR_CACHEDB_BACKEND 517 +#define VAR_CACHEDB_SECRETSEED 518 +#define VAR_CACHEDB_REDISHOST 519 +#define VAR_CACHEDB_REDISPORT 520 +#define VAR_CACHEDB_REDISTIMEOUT 521 +#define VAR_CACHEDB_REDISEXPIRERECORDS 522 +#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 523 +#define VAR_FOR_UPSTREAM 524 +#define VAR_AUTH_ZONE 525 +#define VAR_ZONEFILE 526 +#define VAR_MASTER 527 +#define VAR_URL 528 +#define VAR_FOR_DOWNSTREAM 529 +#define VAR_FALLBACK_ENABLED 530 +#define VAR_TLS_ADDITIONAL_PORT 531 +#define VAR_LOW_RTT 532 +#define VAR_LOW_RTT_PERMIL 533 +#define VAR_FAST_SERVER_PERMIL 534 +#define VAR_FAST_SERVER_NUM 535 +#define VAR_ALLOW_NOTIFY 536 +#define VAR_TLS_WIN_CERT 537 +#define VAR_TCP_CONNECTION_LIMIT 538 +#define VAR_FORWARD_NO_CACHE 539 +#define VAR_STUB_NO_CACHE 540 +#define VAR_LOG_SERVFAIL 541 +#define VAR_DENY_ANY 542 +#define VAR_UNKNOWN_SERVER_TIME_LIMIT 543 +#define VAR_LOG_TAG_QUERYREPLY 544 +#define VAR_STREAM_WAIT_SIZE 545 +#define VAR_TLS_CIPHERS 546 +#define VAR_TLS_CIPHERSUITES 547 +#define VAR_TLS_USE_SNI 548 +#define VAR_IPSET 549 +#define VAR_IPSET_NAME_V4 550 +#define VAR_IPSET_NAME_V6 551 +#define VAR_TLS_SESSION_TICKET_KEYS 552 +#define VAR_RPZ 553 +#define VAR_TAGS 554 +#define VAR_RPZ_ACTION_OVERRIDE 555 +#define VAR_RPZ_CNAME_OVERRIDE 556 +#define VAR_RPZ_LOG 557 +#define VAR_RPZ_LOG_NAME 558 +#define VAR_DYNLIB 559 +#define VAR_DYNLIB_FILE 560 +#define VAR_EDNS_CLIENT_STRING 561 +#define VAR_EDNS_CLIENT_STRING_OPCODE 562 +#define VAR_NSID 563 + +/* Value type. */ +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +union YYSTYPE +{ +#line 66 "./util/configparser.y" + + char* str; + +#line 772 "util/configparser.c" + +}; +typedef union YYSTYPE YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 +#endif + + +extern YYSTYPE yylval; + +int yyparse (void); + +#endif /* !YY_YY_UTIL_CONFIGPARSER_H_INCLUDED */ /* Symbol kind. */ enum yysymbol_kind_t { @@ -353,410 +1015,420 @@ enum yysymbol_kind_t YYSYMBOL_VAR_SERVE_EXPIRED_TTL_RESET = 226, /* VAR_SERVE_EXPIRED_TTL_RESET */ YYSYMBOL_VAR_SERVE_EXPIRED_REPLY_TTL = 227, /* VAR_SERVE_EXPIRED_REPLY_TTL */ YYSYMBOL_VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 228, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ - YYSYMBOL_VAR_FAKE_DSA = 229, /* VAR_FAKE_DSA */ - YYSYMBOL_VAR_FAKE_SHA1 = 230, /* VAR_FAKE_SHA1 */ - YYSYMBOL_VAR_LOG_IDENTITY = 231, /* VAR_LOG_IDENTITY */ - YYSYMBOL_VAR_HIDE_TRUSTANCHOR = 232, /* VAR_HIDE_TRUSTANCHOR */ - YYSYMBOL_VAR_TRUST_ANCHOR_SIGNALING = 233, /* VAR_TRUST_ANCHOR_SIGNALING */ - YYSYMBOL_VAR_AGGRESSIVE_NSEC = 234, /* VAR_AGGRESSIVE_NSEC */ - YYSYMBOL_VAR_USE_SYSTEMD = 235, /* VAR_USE_SYSTEMD */ - YYSYMBOL_VAR_SHM_ENABLE = 236, /* VAR_SHM_ENABLE */ - YYSYMBOL_VAR_SHM_KEY = 237, /* VAR_SHM_KEY */ - YYSYMBOL_VAR_ROOT_KEY_SENTINEL = 238, /* VAR_ROOT_KEY_SENTINEL */ - YYSYMBOL_VAR_DNSCRYPT = 239, /* VAR_DNSCRYPT */ - YYSYMBOL_VAR_DNSCRYPT_ENABLE = 240, /* VAR_DNSCRYPT_ENABLE */ - YYSYMBOL_VAR_DNSCRYPT_PORT = 241, /* VAR_DNSCRYPT_PORT */ - YYSYMBOL_VAR_DNSCRYPT_PROVIDER = 242, /* VAR_DNSCRYPT_PROVIDER */ - YYSYMBOL_VAR_DNSCRYPT_SECRET_KEY = 243, /* VAR_DNSCRYPT_SECRET_KEY */ - YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT = 244, /* VAR_DNSCRYPT_PROVIDER_CERT */ - YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 245, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ - YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 246, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ - YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 247, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ - YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SIZE = 248, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ - YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SLABS = 249, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ - YYSYMBOL_VAR_IPSECMOD_ENABLED = 250, /* VAR_IPSECMOD_ENABLED */ - YYSYMBOL_VAR_IPSECMOD_HOOK = 251, /* VAR_IPSECMOD_HOOK */ - YYSYMBOL_VAR_IPSECMOD_IGNORE_BOGUS = 252, /* VAR_IPSECMOD_IGNORE_BOGUS */ - YYSYMBOL_VAR_IPSECMOD_MAX_TTL = 253, /* VAR_IPSECMOD_MAX_TTL */ - YYSYMBOL_VAR_IPSECMOD_WHITELIST = 254, /* VAR_IPSECMOD_WHITELIST */ - YYSYMBOL_VAR_IPSECMOD_STRICT = 255, /* VAR_IPSECMOD_STRICT */ - YYSYMBOL_VAR_CACHEDB = 256, /* VAR_CACHEDB */ - YYSYMBOL_VAR_CACHEDB_BACKEND = 257, /* VAR_CACHEDB_BACKEND */ - YYSYMBOL_VAR_CACHEDB_SECRETSEED = 258, /* VAR_CACHEDB_SECRETSEED */ - YYSYMBOL_VAR_CACHEDB_REDISHOST = 259, /* VAR_CACHEDB_REDISHOST */ - YYSYMBOL_VAR_CACHEDB_REDISPORT = 260, /* VAR_CACHEDB_REDISPORT */ - YYSYMBOL_VAR_CACHEDB_REDISTIMEOUT = 261, /* VAR_CACHEDB_REDISTIMEOUT */ - YYSYMBOL_VAR_CACHEDB_REDISEXPIRERECORDS = 262, /* VAR_CACHEDB_REDISEXPIRERECORDS */ - YYSYMBOL_VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 263, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ - YYSYMBOL_VAR_FOR_UPSTREAM = 264, /* VAR_FOR_UPSTREAM */ - YYSYMBOL_VAR_AUTH_ZONE = 265, /* VAR_AUTH_ZONE */ - YYSYMBOL_VAR_ZONEFILE = 266, /* VAR_ZONEFILE */ - YYSYMBOL_VAR_MASTER = 267, /* VAR_MASTER */ - YYSYMBOL_VAR_URL = 268, /* VAR_URL */ - YYSYMBOL_VAR_FOR_DOWNSTREAM = 269, /* VAR_FOR_DOWNSTREAM */ - YYSYMBOL_VAR_FALLBACK_ENABLED = 270, /* VAR_FALLBACK_ENABLED */ - YYSYMBOL_VAR_TLS_ADDITIONAL_PORT = 271, /* VAR_TLS_ADDITIONAL_PORT */ - YYSYMBOL_VAR_LOW_RTT = 272, /* VAR_LOW_RTT */ - YYSYMBOL_VAR_LOW_RTT_PERMIL = 273, /* VAR_LOW_RTT_PERMIL */ - YYSYMBOL_VAR_FAST_SERVER_PERMIL = 274, /* VAR_FAST_SERVER_PERMIL */ - YYSYMBOL_VAR_FAST_SERVER_NUM = 275, /* VAR_FAST_SERVER_NUM */ - YYSYMBOL_VAR_ALLOW_NOTIFY = 276, /* VAR_ALLOW_NOTIFY */ - YYSYMBOL_VAR_TLS_WIN_CERT = 277, /* VAR_TLS_WIN_CERT */ - YYSYMBOL_VAR_TCP_CONNECTION_LIMIT = 278, /* VAR_TCP_CONNECTION_LIMIT */ - YYSYMBOL_VAR_FORWARD_NO_CACHE = 279, /* VAR_FORWARD_NO_CACHE */ - YYSYMBOL_VAR_STUB_NO_CACHE = 280, /* VAR_STUB_NO_CACHE */ - YYSYMBOL_VAR_LOG_SERVFAIL = 281, /* VAR_LOG_SERVFAIL */ - YYSYMBOL_VAR_DENY_ANY = 282, /* VAR_DENY_ANY */ - YYSYMBOL_VAR_UNKNOWN_SERVER_TIME_LIMIT = 283, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ - YYSYMBOL_VAR_LOG_TAG_QUERYREPLY = 284, /* VAR_LOG_TAG_QUERYREPLY */ - YYSYMBOL_VAR_STREAM_WAIT_SIZE = 285, /* VAR_STREAM_WAIT_SIZE */ - YYSYMBOL_VAR_TLS_CIPHERS = 286, /* VAR_TLS_CIPHERS */ - YYSYMBOL_VAR_TLS_CIPHERSUITES = 287, /* VAR_TLS_CIPHERSUITES */ - YYSYMBOL_VAR_TLS_USE_SNI = 288, /* VAR_TLS_USE_SNI */ - YYSYMBOL_VAR_IPSET = 289, /* VAR_IPSET */ - YYSYMBOL_VAR_IPSET_NAME_V4 = 290, /* VAR_IPSET_NAME_V4 */ - YYSYMBOL_VAR_IPSET_NAME_V6 = 291, /* VAR_IPSET_NAME_V6 */ - YYSYMBOL_VAR_TLS_SESSION_TICKET_KEYS = 292, /* VAR_TLS_SESSION_TICKET_KEYS */ - YYSYMBOL_VAR_RPZ = 293, /* VAR_RPZ */ - YYSYMBOL_VAR_TAGS = 294, /* VAR_TAGS */ - YYSYMBOL_VAR_RPZ_ACTION_OVERRIDE = 295, /* VAR_RPZ_ACTION_OVERRIDE */ - YYSYMBOL_VAR_RPZ_CNAME_OVERRIDE = 296, /* VAR_RPZ_CNAME_OVERRIDE */ - YYSYMBOL_VAR_RPZ_LOG = 297, /* VAR_RPZ_LOG */ - YYSYMBOL_VAR_RPZ_LOG_NAME = 298, /* VAR_RPZ_LOG_NAME */ - YYSYMBOL_VAR_DYNLIB = 299, /* VAR_DYNLIB */ - YYSYMBOL_VAR_DYNLIB_FILE = 300, /* VAR_DYNLIB_FILE */ - YYSYMBOL_VAR_EDNS_CLIENT_STRING = 301, /* VAR_EDNS_CLIENT_STRING */ - YYSYMBOL_VAR_EDNS_CLIENT_STRING_OPCODE = 302, /* VAR_EDNS_CLIENT_STRING_OPCODE */ - YYSYMBOL_VAR_NSID = 303, /* VAR_NSID */ - YYSYMBOL_YYACCEPT = 304, /* $accept */ - YYSYMBOL_toplevelvars = 305, /* toplevelvars */ - YYSYMBOL_toplevelvar = 306, /* toplevelvar */ - YYSYMBOL_force_toplevel = 307, /* force_toplevel */ - YYSYMBOL_serverstart = 308, /* serverstart */ - YYSYMBOL_contents_server = 309, /* contents_server */ - YYSYMBOL_content_server = 310, /* content_server */ - YYSYMBOL_stubstart = 311, /* stubstart */ - YYSYMBOL_contents_stub = 312, /* contents_stub */ - YYSYMBOL_content_stub = 313, /* content_stub */ - YYSYMBOL_forwardstart = 314, /* forwardstart */ - YYSYMBOL_contents_forward = 315, /* contents_forward */ - YYSYMBOL_content_forward = 316, /* content_forward */ - YYSYMBOL_viewstart = 317, /* viewstart */ - YYSYMBOL_contents_view = 318, /* contents_view */ - YYSYMBOL_content_view = 319, /* content_view */ - YYSYMBOL_authstart = 320, /* authstart */ - YYSYMBOL_contents_auth = 321, /* contents_auth */ - YYSYMBOL_content_auth = 322, /* content_auth */ - YYSYMBOL_rpz_tag = 323, /* rpz_tag */ - YYSYMBOL_rpz_action_override = 324, /* rpz_action_override */ - YYSYMBOL_rpz_cname_override = 325, /* rpz_cname_override */ - YYSYMBOL_rpz_log = 326, /* rpz_log */ - YYSYMBOL_rpz_log_name = 327, /* rpz_log_name */ - YYSYMBOL_rpzstart = 328, /* rpzstart */ - YYSYMBOL_contents_rpz = 329, /* contents_rpz */ - YYSYMBOL_content_rpz = 330, /* content_rpz */ - YYSYMBOL_server_num_threads = 331, /* server_num_threads */ - YYSYMBOL_server_verbosity = 332, /* server_verbosity */ - YYSYMBOL_server_statistics_interval = 333, /* server_statistics_interval */ - YYSYMBOL_server_statistics_cumulative = 334, /* server_statistics_cumulative */ - YYSYMBOL_server_extended_statistics = 335, /* server_extended_statistics */ - YYSYMBOL_server_shm_enable = 336, /* server_shm_enable */ - YYSYMBOL_server_shm_key = 337, /* server_shm_key */ - YYSYMBOL_server_port = 338, /* server_port */ - YYSYMBOL_server_send_client_subnet = 339, /* server_send_client_subnet */ - YYSYMBOL_server_client_subnet_zone = 340, /* server_client_subnet_zone */ - YYSYMBOL_server_client_subnet_always_forward = 341, /* server_client_subnet_always_forward */ - YYSYMBOL_server_client_subnet_opcode = 342, /* server_client_subnet_opcode */ - YYSYMBOL_server_max_client_subnet_ipv4 = 343, /* server_max_client_subnet_ipv4 */ - YYSYMBOL_server_max_client_subnet_ipv6 = 344, /* server_max_client_subnet_ipv6 */ - YYSYMBOL_server_min_client_subnet_ipv4 = 345, /* server_min_client_subnet_ipv4 */ - YYSYMBOL_server_min_client_subnet_ipv6 = 346, /* server_min_client_subnet_ipv6 */ - YYSYMBOL_server_max_ecs_tree_size_ipv4 = 347, /* server_max_ecs_tree_size_ipv4 */ - YYSYMBOL_server_max_ecs_tree_size_ipv6 = 348, /* server_max_ecs_tree_size_ipv6 */ - YYSYMBOL_server_interface = 349, /* server_interface */ - YYSYMBOL_server_outgoing_interface = 350, /* server_outgoing_interface */ - YYSYMBOL_server_outgoing_range = 351, /* server_outgoing_range */ - YYSYMBOL_server_outgoing_port_permit = 352, /* server_outgoing_port_permit */ - YYSYMBOL_server_outgoing_port_avoid = 353, /* server_outgoing_port_avoid */ - YYSYMBOL_server_outgoing_num_tcp = 354, /* server_outgoing_num_tcp */ - YYSYMBOL_server_incoming_num_tcp = 355, /* server_incoming_num_tcp */ - YYSYMBOL_server_interface_automatic = 356, /* server_interface_automatic */ - YYSYMBOL_server_do_ip4 = 357, /* server_do_ip4 */ - YYSYMBOL_server_do_ip6 = 358, /* server_do_ip6 */ - YYSYMBOL_server_do_udp = 359, /* server_do_udp */ - YYSYMBOL_server_do_tcp = 360, /* server_do_tcp */ - YYSYMBOL_server_prefer_ip4 = 361, /* server_prefer_ip4 */ - YYSYMBOL_server_prefer_ip6 = 362, /* server_prefer_ip6 */ - YYSYMBOL_server_tcp_mss = 363, /* server_tcp_mss */ - YYSYMBOL_server_outgoing_tcp_mss = 364, /* server_outgoing_tcp_mss */ - YYSYMBOL_server_tcp_idle_timeout = 365, /* server_tcp_idle_timeout */ - YYSYMBOL_server_tcp_keepalive = 366, /* server_tcp_keepalive */ - YYSYMBOL_server_tcp_keepalive_timeout = 367, /* server_tcp_keepalive_timeout */ - YYSYMBOL_server_tcp_upstream = 368, /* server_tcp_upstream */ - YYSYMBOL_server_udp_upstream_without_downstream = 369, /* server_udp_upstream_without_downstream */ - YYSYMBOL_server_ssl_upstream = 370, /* server_ssl_upstream */ - YYSYMBOL_server_ssl_service_key = 371, /* server_ssl_service_key */ - YYSYMBOL_server_ssl_service_pem = 372, /* server_ssl_service_pem */ - YYSYMBOL_server_ssl_port = 373, /* server_ssl_port */ - YYSYMBOL_server_tls_cert_bundle = 374, /* server_tls_cert_bundle */ - YYSYMBOL_server_tls_win_cert = 375, /* server_tls_win_cert */ - YYSYMBOL_server_tls_additional_port = 376, /* server_tls_additional_port */ - YYSYMBOL_server_tls_ciphers = 377, /* server_tls_ciphers */ - YYSYMBOL_server_tls_ciphersuites = 378, /* server_tls_ciphersuites */ - YYSYMBOL_server_tls_session_ticket_keys = 379, /* server_tls_session_ticket_keys */ - YYSYMBOL_server_tls_use_sni = 380, /* server_tls_use_sni */ - YYSYMBOL_server_https_port = 381, /* server_https_port */ - YYSYMBOL_server_http_endpoint = 382, /* server_http_endpoint */ - YYSYMBOL_server_http_max_streams = 383, /* server_http_max_streams */ - YYSYMBOL_server_http_query_buffer_size = 384, /* server_http_query_buffer_size */ - YYSYMBOL_server_http_response_buffer_size = 385, /* server_http_response_buffer_size */ - YYSYMBOL_server_http_nodelay = 386, /* server_http_nodelay */ - YYSYMBOL_server_http_notls_downstream = 387, /* server_http_notls_downstream */ - YYSYMBOL_server_use_systemd = 388, /* server_use_systemd */ - YYSYMBOL_server_do_daemonize = 389, /* server_do_daemonize */ - YYSYMBOL_server_use_syslog = 390, /* server_use_syslog */ - YYSYMBOL_server_log_time_ascii = 391, /* server_log_time_ascii */ - YYSYMBOL_server_log_queries = 392, /* server_log_queries */ - YYSYMBOL_server_log_replies = 393, /* server_log_replies */ - YYSYMBOL_server_log_tag_queryreply = 394, /* server_log_tag_queryreply */ - YYSYMBOL_server_log_servfail = 395, /* server_log_servfail */ - YYSYMBOL_server_log_local_actions = 396, /* server_log_local_actions */ - YYSYMBOL_server_chroot = 397, /* server_chroot */ - YYSYMBOL_server_username = 398, /* server_username */ - YYSYMBOL_server_directory = 399, /* server_directory */ - YYSYMBOL_server_logfile = 400, /* server_logfile */ - YYSYMBOL_server_pidfile = 401, /* server_pidfile */ - YYSYMBOL_server_root_hints = 402, /* server_root_hints */ - YYSYMBOL_server_dlv_anchor_file = 403, /* server_dlv_anchor_file */ - YYSYMBOL_server_dlv_anchor = 404, /* server_dlv_anchor */ - YYSYMBOL_server_auto_trust_anchor_file = 405, /* server_auto_trust_anchor_file */ - YYSYMBOL_server_trust_anchor_file = 406, /* server_trust_anchor_file */ - YYSYMBOL_server_trusted_keys_file = 407, /* server_trusted_keys_file */ - YYSYMBOL_server_trust_anchor = 408, /* server_trust_anchor */ - YYSYMBOL_server_trust_anchor_signaling = 409, /* server_trust_anchor_signaling */ - YYSYMBOL_server_root_key_sentinel = 410, /* server_root_key_sentinel */ - YYSYMBOL_server_domain_insecure = 411, /* server_domain_insecure */ - YYSYMBOL_server_hide_identity = 412, /* server_hide_identity */ - YYSYMBOL_server_hide_version = 413, /* server_hide_version */ - YYSYMBOL_server_hide_trustanchor = 414, /* server_hide_trustanchor */ - YYSYMBOL_server_identity = 415, /* server_identity */ - YYSYMBOL_server_version = 416, /* server_version */ - YYSYMBOL_server_nsid = 417, /* server_nsid */ - YYSYMBOL_server_so_rcvbuf = 418, /* server_so_rcvbuf */ - YYSYMBOL_server_so_sndbuf = 419, /* server_so_sndbuf */ - YYSYMBOL_server_so_reuseport = 420, /* server_so_reuseport */ - YYSYMBOL_server_ip_transparent = 421, /* server_ip_transparent */ - YYSYMBOL_server_ip_freebind = 422, /* server_ip_freebind */ - YYSYMBOL_server_ip_dscp = 423, /* server_ip_dscp */ - YYSYMBOL_server_stream_wait_size = 424, /* server_stream_wait_size */ - YYSYMBOL_server_edns_buffer_size = 425, /* server_edns_buffer_size */ - YYSYMBOL_server_msg_buffer_size = 426, /* server_msg_buffer_size */ - YYSYMBOL_server_msg_cache_size = 427, /* server_msg_cache_size */ - YYSYMBOL_server_msg_cache_slabs = 428, /* server_msg_cache_slabs */ - YYSYMBOL_server_num_queries_per_thread = 429, /* server_num_queries_per_thread */ - YYSYMBOL_server_jostle_timeout = 430, /* server_jostle_timeout */ - YYSYMBOL_server_delay_close = 431, /* server_delay_close */ - YYSYMBOL_server_udp_connect = 432, /* server_udp_connect */ - YYSYMBOL_server_unblock_lan_zones = 433, /* server_unblock_lan_zones */ - YYSYMBOL_server_insecure_lan_zones = 434, /* server_insecure_lan_zones */ - YYSYMBOL_server_rrset_cache_size = 435, /* server_rrset_cache_size */ - YYSYMBOL_server_rrset_cache_slabs = 436, /* server_rrset_cache_slabs */ - YYSYMBOL_server_infra_host_ttl = 437, /* server_infra_host_ttl */ - YYSYMBOL_server_infra_lame_ttl = 438, /* server_infra_lame_ttl */ - YYSYMBOL_server_infra_cache_numhosts = 439, /* server_infra_cache_numhosts */ - YYSYMBOL_server_infra_cache_lame_size = 440, /* server_infra_cache_lame_size */ - YYSYMBOL_server_infra_cache_slabs = 441, /* server_infra_cache_slabs */ - YYSYMBOL_server_infra_cache_min_rtt = 442, /* server_infra_cache_min_rtt */ - YYSYMBOL_server_infra_keep_probing = 443, /* server_infra_keep_probing */ - YYSYMBOL_server_target_fetch_policy = 444, /* server_target_fetch_policy */ - YYSYMBOL_server_harden_short_bufsize = 445, /* server_harden_short_bufsize */ - YYSYMBOL_server_harden_large_queries = 446, /* server_harden_large_queries */ - YYSYMBOL_server_harden_glue = 447, /* server_harden_glue */ - YYSYMBOL_server_harden_dnssec_stripped = 448, /* server_harden_dnssec_stripped */ - YYSYMBOL_server_harden_below_nxdomain = 449, /* server_harden_below_nxdomain */ - YYSYMBOL_server_harden_referral_path = 450, /* server_harden_referral_path */ - YYSYMBOL_server_harden_algo_downgrade = 451, /* server_harden_algo_downgrade */ - YYSYMBOL_server_use_caps_for_id = 452, /* server_use_caps_for_id */ - YYSYMBOL_server_caps_whitelist = 453, /* server_caps_whitelist */ - YYSYMBOL_server_private_address = 454, /* server_private_address */ - YYSYMBOL_server_private_domain = 455, /* server_private_domain */ - YYSYMBOL_server_prefetch = 456, /* server_prefetch */ - YYSYMBOL_server_prefetch_key = 457, /* server_prefetch_key */ - YYSYMBOL_server_deny_any = 458, /* server_deny_any */ - YYSYMBOL_server_unwanted_reply_threshold = 459, /* server_unwanted_reply_threshold */ - YYSYMBOL_server_do_not_query_address = 460, /* server_do_not_query_address */ - YYSYMBOL_server_do_not_query_localhost = 461, /* server_do_not_query_localhost */ - YYSYMBOL_server_access_control = 462, /* server_access_control */ - YYSYMBOL_server_module_conf = 463, /* server_module_conf */ - YYSYMBOL_server_val_override_date = 464, /* server_val_override_date */ - YYSYMBOL_server_val_sig_skew_min = 465, /* server_val_sig_skew_min */ - YYSYMBOL_server_val_sig_skew_max = 466, /* server_val_sig_skew_max */ - YYSYMBOL_server_cache_max_ttl = 467, /* server_cache_max_ttl */ - YYSYMBOL_server_cache_max_negative_ttl = 468, /* server_cache_max_negative_ttl */ - YYSYMBOL_server_cache_min_ttl = 469, /* server_cache_min_ttl */ - YYSYMBOL_server_bogus_ttl = 470, /* server_bogus_ttl */ - YYSYMBOL_server_val_clean_additional = 471, /* server_val_clean_additional */ - YYSYMBOL_server_val_permissive_mode = 472, /* server_val_permissive_mode */ - YYSYMBOL_server_aggressive_nsec = 473, /* server_aggressive_nsec */ - YYSYMBOL_server_ignore_cd_flag = 474, /* server_ignore_cd_flag */ - YYSYMBOL_server_serve_expired = 475, /* server_serve_expired */ - YYSYMBOL_server_serve_expired_ttl = 476, /* server_serve_expired_ttl */ - YYSYMBOL_server_serve_expired_ttl_reset = 477, /* server_serve_expired_ttl_reset */ - YYSYMBOL_server_serve_expired_reply_ttl = 478, /* server_serve_expired_reply_ttl */ - YYSYMBOL_server_serve_expired_client_timeout = 479, /* server_serve_expired_client_timeout */ - YYSYMBOL_server_fake_dsa = 480, /* server_fake_dsa */ - YYSYMBOL_server_fake_sha1 = 481, /* server_fake_sha1 */ - YYSYMBOL_server_val_log_level = 482, /* server_val_log_level */ - YYSYMBOL_server_val_nsec3_keysize_iterations = 483, /* server_val_nsec3_keysize_iterations */ - YYSYMBOL_server_add_holddown = 484, /* server_add_holddown */ - YYSYMBOL_server_del_holddown = 485, /* server_del_holddown */ - YYSYMBOL_server_keep_missing = 486, /* server_keep_missing */ - YYSYMBOL_server_permit_small_holddown = 487, /* server_permit_small_holddown */ - YYSYMBOL_server_key_cache_size = 488, /* server_key_cache_size */ - YYSYMBOL_server_key_cache_slabs = 489, /* server_key_cache_slabs */ - YYSYMBOL_server_neg_cache_size = 490, /* server_neg_cache_size */ - YYSYMBOL_server_local_zone = 491, /* server_local_zone */ - YYSYMBOL_server_local_data = 492, /* server_local_data */ - YYSYMBOL_server_local_data_ptr = 493, /* server_local_data_ptr */ - YYSYMBOL_server_minimal_responses = 494, /* server_minimal_responses */ - YYSYMBOL_server_rrset_roundrobin = 495, /* server_rrset_roundrobin */ - YYSYMBOL_server_unknown_server_time_limit = 496, /* server_unknown_server_time_limit */ - YYSYMBOL_server_max_udp_size = 497, /* server_max_udp_size */ - YYSYMBOL_server_dns64_prefix = 498, /* server_dns64_prefix */ - YYSYMBOL_server_dns64_synthall = 499, /* server_dns64_synthall */ - YYSYMBOL_server_dns64_ignore_aaaa = 500, /* server_dns64_ignore_aaaa */ - YYSYMBOL_server_define_tag = 501, /* server_define_tag */ - YYSYMBOL_server_local_zone_tag = 502, /* server_local_zone_tag */ - YYSYMBOL_server_access_control_tag = 503, /* server_access_control_tag */ - YYSYMBOL_server_access_control_tag_action = 504, /* server_access_control_tag_action */ - YYSYMBOL_server_access_control_tag_data = 505, /* server_access_control_tag_data */ - YYSYMBOL_server_local_zone_override = 506, /* server_local_zone_override */ - YYSYMBOL_server_access_control_view = 507, /* server_access_control_view */ - YYSYMBOL_server_response_ip_tag = 508, /* server_response_ip_tag */ - YYSYMBOL_server_ip_ratelimit = 509, /* server_ip_ratelimit */ - YYSYMBOL_server_ratelimit = 510, /* server_ratelimit */ - YYSYMBOL_server_ip_ratelimit_size = 511, /* server_ip_ratelimit_size */ - YYSYMBOL_server_ratelimit_size = 512, /* server_ratelimit_size */ - YYSYMBOL_server_ip_ratelimit_slabs = 513, /* server_ip_ratelimit_slabs */ - YYSYMBOL_server_ratelimit_slabs = 514, /* server_ratelimit_slabs */ - YYSYMBOL_server_ratelimit_for_domain = 515, /* server_ratelimit_for_domain */ - YYSYMBOL_server_ratelimit_below_domain = 516, /* server_ratelimit_below_domain */ - YYSYMBOL_server_ip_ratelimit_factor = 517, /* server_ip_ratelimit_factor */ - YYSYMBOL_server_ratelimit_factor = 518, /* server_ratelimit_factor */ - YYSYMBOL_server_low_rtt = 519, /* server_low_rtt */ - YYSYMBOL_server_fast_server_num = 520, /* server_fast_server_num */ - YYSYMBOL_server_fast_server_permil = 521, /* server_fast_server_permil */ - YYSYMBOL_server_qname_minimisation = 522, /* server_qname_minimisation */ - YYSYMBOL_server_qname_minimisation_strict = 523, /* server_qname_minimisation_strict */ - YYSYMBOL_server_ipsecmod_enabled = 524, /* server_ipsecmod_enabled */ - YYSYMBOL_server_ipsecmod_ignore_bogus = 525, /* server_ipsecmod_ignore_bogus */ - YYSYMBOL_server_ipsecmod_hook = 526, /* server_ipsecmod_hook */ - YYSYMBOL_server_ipsecmod_max_ttl = 527, /* server_ipsecmod_max_ttl */ - YYSYMBOL_server_ipsecmod_whitelist = 528, /* server_ipsecmod_whitelist */ - YYSYMBOL_server_ipsecmod_strict = 529, /* server_ipsecmod_strict */ - YYSYMBOL_server_edns_client_string = 530, /* server_edns_client_string */ - YYSYMBOL_server_edns_client_string_opcode = 531, /* server_edns_client_string_opcode */ - YYSYMBOL_stub_name = 532, /* stub_name */ - YYSYMBOL_stub_host = 533, /* stub_host */ - YYSYMBOL_stub_addr = 534, /* stub_addr */ - YYSYMBOL_stub_first = 535, /* stub_first */ - YYSYMBOL_stub_no_cache = 536, /* stub_no_cache */ - YYSYMBOL_stub_ssl_upstream = 537, /* stub_ssl_upstream */ - YYSYMBOL_stub_prime = 538, /* stub_prime */ - YYSYMBOL_forward_name = 539, /* forward_name */ - YYSYMBOL_forward_host = 540, /* forward_host */ - YYSYMBOL_forward_addr = 541, /* forward_addr */ - YYSYMBOL_forward_first = 542, /* forward_first */ - YYSYMBOL_forward_no_cache = 543, /* forward_no_cache */ - YYSYMBOL_forward_ssl_upstream = 544, /* forward_ssl_upstream */ - YYSYMBOL_auth_name = 545, /* auth_name */ - YYSYMBOL_auth_zonefile = 546, /* auth_zonefile */ - YYSYMBOL_auth_master = 547, /* auth_master */ - YYSYMBOL_auth_url = 548, /* auth_url */ - YYSYMBOL_auth_allow_notify = 549, /* auth_allow_notify */ - YYSYMBOL_auth_for_downstream = 550, /* auth_for_downstream */ - YYSYMBOL_auth_for_upstream = 551, /* auth_for_upstream */ - YYSYMBOL_auth_fallback_enabled = 552, /* auth_fallback_enabled */ - YYSYMBOL_view_name = 553, /* view_name */ - YYSYMBOL_view_local_zone = 554, /* view_local_zone */ - YYSYMBOL_view_response_ip = 555, /* view_response_ip */ - YYSYMBOL_view_response_ip_data = 556, /* view_response_ip_data */ - YYSYMBOL_view_local_data = 557, /* view_local_data */ - YYSYMBOL_view_local_data_ptr = 558, /* view_local_data_ptr */ - YYSYMBOL_view_first = 559, /* view_first */ - YYSYMBOL_rcstart = 560, /* rcstart */ - YYSYMBOL_contents_rc = 561, /* contents_rc */ - YYSYMBOL_content_rc = 562, /* content_rc */ - YYSYMBOL_rc_control_enable = 563, /* rc_control_enable */ - YYSYMBOL_rc_control_port = 564, /* rc_control_port */ - YYSYMBOL_rc_control_interface = 565, /* rc_control_interface */ - YYSYMBOL_rc_control_use_cert = 566, /* rc_control_use_cert */ - YYSYMBOL_rc_server_key_file = 567, /* rc_server_key_file */ - YYSYMBOL_rc_server_cert_file = 568, /* rc_server_cert_file */ - YYSYMBOL_rc_control_key_file = 569, /* rc_control_key_file */ - YYSYMBOL_rc_control_cert_file = 570, /* rc_control_cert_file */ - YYSYMBOL_dtstart = 571, /* dtstart */ - YYSYMBOL_contents_dt = 572, /* contents_dt */ - YYSYMBOL_content_dt = 573, /* content_dt */ - YYSYMBOL_dt_dnstap_enable = 574, /* dt_dnstap_enable */ - YYSYMBOL_dt_dnstap_bidirectional = 575, /* dt_dnstap_bidirectional */ - YYSYMBOL_dt_dnstap_socket_path = 576, /* dt_dnstap_socket_path */ - YYSYMBOL_dt_dnstap_ip = 577, /* dt_dnstap_ip */ - YYSYMBOL_dt_dnstap_tls = 578, /* dt_dnstap_tls */ - YYSYMBOL_dt_dnstap_tls_server_name = 579, /* dt_dnstap_tls_server_name */ - YYSYMBOL_dt_dnstap_tls_cert_bundle = 580, /* dt_dnstap_tls_cert_bundle */ - YYSYMBOL_dt_dnstap_tls_client_key_file = 581, /* dt_dnstap_tls_client_key_file */ - YYSYMBOL_dt_dnstap_tls_client_cert_file = 582, /* dt_dnstap_tls_client_cert_file */ - YYSYMBOL_dt_dnstap_send_identity = 583, /* dt_dnstap_send_identity */ - YYSYMBOL_dt_dnstap_send_version = 584, /* dt_dnstap_send_version */ - YYSYMBOL_dt_dnstap_identity = 585, /* dt_dnstap_identity */ - YYSYMBOL_dt_dnstap_version = 586, /* dt_dnstap_version */ - YYSYMBOL_dt_dnstap_log_resolver_query_messages = 587, /* dt_dnstap_log_resolver_query_messages */ - YYSYMBOL_dt_dnstap_log_resolver_response_messages = 588, /* dt_dnstap_log_resolver_response_messages */ - YYSYMBOL_dt_dnstap_log_client_query_messages = 589, /* dt_dnstap_log_client_query_messages */ - YYSYMBOL_dt_dnstap_log_client_response_messages = 590, /* dt_dnstap_log_client_response_messages */ - YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 591, /* dt_dnstap_log_forwarder_query_messages */ - YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 592, /* dt_dnstap_log_forwarder_response_messages */ - YYSYMBOL_pythonstart = 593, /* pythonstart */ - YYSYMBOL_contents_py = 594, /* contents_py */ - YYSYMBOL_content_py = 595, /* content_py */ - YYSYMBOL_py_script = 596, /* py_script */ - YYSYMBOL_dynlibstart = 597, /* dynlibstart */ - YYSYMBOL_contents_dl = 598, /* contents_dl */ - YYSYMBOL_content_dl = 599, /* content_dl */ - YYSYMBOL_dl_file = 600, /* dl_file */ - YYSYMBOL_server_disable_dnssec_lame_check = 601, /* server_disable_dnssec_lame_check */ - YYSYMBOL_server_log_identity = 602, /* server_log_identity */ - YYSYMBOL_server_response_ip = 603, /* server_response_ip */ - YYSYMBOL_server_response_ip_data = 604, /* server_response_ip_data */ - YYSYMBOL_dnscstart = 605, /* dnscstart */ - YYSYMBOL_contents_dnsc = 606, /* contents_dnsc */ - YYSYMBOL_content_dnsc = 607, /* content_dnsc */ - YYSYMBOL_dnsc_dnscrypt_enable = 608, /* dnsc_dnscrypt_enable */ - YYSYMBOL_dnsc_dnscrypt_port = 609, /* dnsc_dnscrypt_port */ - YYSYMBOL_dnsc_dnscrypt_provider = 610, /* dnsc_dnscrypt_provider */ - YYSYMBOL_dnsc_dnscrypt_provider_cert = 611, /* dnsc_dnscrypt_provider_cert */ - YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 612, /* dnsc_dnscrypt_provider_cert_rotated */ - YYSYMBOL_dnsc_dnscrypt_secret_key = 613, /* dnsc_dnscrypt_secret_key */ - YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 614, /* dnsc_dnscrypt_shared_secret_cache_size */ - YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 615, /* dnsc_dnscrypt_shared_secret_cache_slabs */ - YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 616, /* dnsc_dnscrypt_nonce_cache_size */ - YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 617, /* dnsc_dnscrypt_nonce_cache_slabs */ - YYSYMBOL_cachedbstart = 618, /* cachedbstart */ - YYSYMBOL_contents_cachedb = 619, /* contents_cachedb */ - YYSYMBOL_content_cachedb = 620, /* content_cachedb */ - YYSYMBOL_cachedb_backend_name = 621, /* cachedb_backend_name */ - YYSYMBOL_cachedb_secret_seed = 622, /* cachedb_secret_seed */ - YYSYMBOL_redis_server_host = 623, /* redis_server_host */ - YYSYMBOL_redis_server_port = 624, /* redis_server_port */ - YYSYMBOL_redis_timeout = 625, /* redis_timeout */ - YYSYMBOL_redis_expire_records = 626, /* redis_expire_records */ - YYSYMBOL_server_tcp_connection_limit = 627, /* server_tcp_connection_limit */ - YYSYMBOL_ipsetstart = 628, /* ipsetstart */ - YYSYMBOL_contents_ipset = 629, /* contents_ipset */ - YYSYMBOL_content_ipset = 630, /* content_ipset */ - YYSYMBOL_ipset_name_v4 = 631, /* ipset_name_v4 */ - YYSYMBOL_ipset_name_v6 = 632 /* ipset_name_v6 */ + YYSYMBOL_VAR_SERVE_ORIGINAL_TTL = 229, /* VAR_SERVE_ORIGINAL_TTL */ + YYSYMBOL_VAR_FAKE_DSA = 230, /* VAR_FAKE_DSA */ + YYSYMBOL_VAR_FAKE_SHA1 = 231, /* VAR_FAKE_SHA1 */ + YYSYMBOL_VAR_LOG_IDENTITY = 232, /* VAR_LOG_IDENTITY */ + YYSYMBOL_VAR_HIDE_TRUSTANCHOR = 233, /* VAR_HIDE_TRUSTANCHOR */ + YYSYMBOL_VAR_TRUST_ANCHOR_SIGNALING = 234, /* VAR_TRUST_ANCHOR_SIGNALING */ + YYSYMBOL_VAR_AGGRESSIVE_NSEC = 235, /* VAR_AGGRESSIVE_NSEC */ + YYSYMBOL_VAR_USE_SYSTEMD = 236, /* VAR_USE_SYSTEMD */ + YYSYMBOL_VAR_SHM_ENABLE = 237, /* VAR_SHM_ENABLE */ + YYSYMBOL_VAR_SHM_KEY = 238, /* VAR_SHM_KEY */ + YYSYMBOL_VAR_ROOT_KEY_SENTINEL = 239, /* VAR_ROOT_KEY_SENTINEL */ + YYSYMBOL_VAR_DNSCRYPT = 240, /* VAR_DNSCRYPT */ + YYSYMBOL_VAR_DNSCRYPT_ENABLE = 241, /* VAR_DNSCRYPT_ENABLE */ + YYSYMBOL_VAR_DNSCRYPT_PORT = 242, /* VAR_DNSCRYPT_PORT */ + YYSYMBOL_VAR_DNSCRYPT_PROVIDER = 243, /* VAR_DNSCRYPT_PROVIDER */ + YYSYMBOL_VAR_DNSCRYPT_SECRET_KEY = 244, /* VAR_DNSCRYPT_SECRET_KEY */ + YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT = 245, /* VAR_DNSCRYPT_PROVIDER_CERT */ + YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 246, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ + YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 247, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ + YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 248, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ + YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SIZE = 249, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ + YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SLABS = 250, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ + YYSYMBOL_VAR_PAD_RESPONSES = 251, /* VAR_PAD_RESPONSES */ + YYSYMBOL_VAR_PAD_RESPONSES_BLOCK_SIZE = 252, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ + YYSYMBOL_VAR_PAD_QUERIES = 253, /* VAR_PAD_QUERIES */ + YYSYMBOL_VAR_PAD_QUERIES_BLOCK_SIZE = 254, /* VAR_PAD_QUERIES_BLOCK_SIZE */ + YYSYMBOL_VAR_IPSECMOD_ENABLED = 255, /* VAR_IPSECMOD_ENABLED */ + YYSYMBOL_VAR_IPSECMOD_HOOK = 256, /* VAR_IPSECMOD_HOOK */ + YYSYMBOL_VAR_IPSECMOD_IGNORE_BOGUS = 257, /* VAR_IPSECMOD_IGNORE_BOGUS */ + YYSYMBOL_VAR_IPSECMOD_MAX_TTL = 258, /* VAR_IPSECMOD_MAX_TTL */ + YYSYMBOL_VAR_IPSECMOD_WHITELIST = 259, /* VAR_IPSECMOD_WHITELIST */ + YYSYMBOL_VAR_IPSECMOD_STRICT = 260, /* VAR_IPSECMOD_STRICT */ + YYSYMBOL_VAR_CACHEDB = 261, /* VAR_CACHEDB */ + YYSYMBOL_VAR_CACHEDB_BACKEND = 262, /* VAR_CACHEDB_BACKEND */ + YYSYMBOL_VAR_CACHEDB_SECRETSEED = 263, /* VAR_CACHEDB_SECRETSEED */ + YYSYMBOL_VAR_CACHEDB_REDISHOST = 264, /* VAR_CACHEDB_REDISHOST */ + YYSYMBOL_VAR_CACHEDB_REDISPORT = 265, /* VAR_CACHEDB_REDISPORT */ + YYSYMBOL_VAR_CACHEDB_REDISTIMEOUT = 266, /* VAR_CACHEDB_REDISTIMEOUT */ + YYSYMBOL_VAR_CACHEDB_REDISEXPIRERECORDS = 267, /* VAR_CACHEDB_REDISEXPIRERECORDS */ + YYSYMBOL_VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 268, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ + YYSYMBOL_VAR_FOR_UPSTREAM = 269, /* VAR_FOR_UPSTREAM */ + YYSYMBOL_VAR_AUTH_ZONE = 270, /* VAR_AUTH_ZONE */ + YYSYMBOL_VAR_ZONEFILE = 271, /* VAR_ZONEFILE */ + YYSYMBOL_VAR_MASTER = 272, /* VAR_MASTER */ + YYSYMBOL_VAR_URL = 273, /* VAR_URL */ + YYSYMBOL_VAR_FOR_DOWNSTREAM = 274, /* VAR_FOR_DOWNSTREAM */ + YYSYMBOL_VAR_FALLBACK_ENABLED = 275, /* VAR_FALLBACK_ENABLED */ + YYSYMBOL_VAR_TLS_ADDITIONAL_PORT = 276, /* VAR_TLS_ADDITIONAL_PORT */ + YYSYMBOL_VAR_LOW_RTT = 277, /* VAR_LOW_RTT */ + YYSYMBOL_VAR_LOW_RTT_PERMIL = 278, /* VAR_LOW_RTT_PERMIL */ + YYSYMBOL_VAR_FAST_SERVER_PERMIL = 279, /* VAR_FAST_SERVER_PERMIL */ + YYSYMBOL_VAR_FAST_SERVER_NUM = 280, /* VAR_FAST_SERVER_NUM */ + YYSYMBOL_VAR_ALLOW_NOTIFY = 281, /* VAR_ALLOW_NOTIFY */ + YYSYMBOL_VAR_TLS_WIN_CERT = 282, /* VAR_TLS_WIN_CERT */ + YYSYMBOL_VAR_TCP_CONNECTION_LIMIT = 283, /* VAR_TCP_CONNECTION_LIMIT */ + YYSYMBOL_VAR_FORWARD_NO_CACHE = 284, /* VAR_FORWARD_NO_CACHE */ + YYSYMBOL_VAR_STUB_NO_CACHE = 285, /* VAR_STUB_NO_CACHE */ + YYSYMBOL_VAR_LOG_SERVFAIL = 286, /* VAR_LOG_SERVFAIL */ + YYSYMBOL_VAR_DENY_ANY = 287, /* VAR_DENY_ANY */ + YYSYMBOL_VAR_UNKNOWN_SERVER_TIME_LIMIT = 288, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ + YYSYMBOL_VAR_LOG_TAG_QUERYREPLY = 289, /* VAR_LOG_TAG_QUERYREPLY */ + YYSYMBOL_VAR_STREAM_WAIT_SIZE = 290, /* VAR_STREAM_WAIT_SIZE */ + YYSYMBOL_VAR_TLS_CIPHERS = 291, /* VAR_TLS_CIPHERS */ + YYSYMBOL_VAR_TLS_CIPHERSUITES = 292, /* VAR_TLS_CIPHERSUITES */ + YYSYMBOL_VAR_TLS_USE_SNI = 293, /* VAR_TLS_USE_SNI */ + YYSYMBOL_VAR_IPSET = 294, /* VAR_IPSET */ + YYSYMBOL_VAR_IPSET_NAME_V4 = 295, /* VAR_IPSET_NAME_V4 */ + YYSYMBOL_VAR_IPSET_NAME_V6 = 296, /* VAR_IPSET_NAME_V6 */ + YYSYMBOL_VAR_TLS_SESSION_TICKET_KEYS = 297, /* VAR_TLS_SESSION_TICKET_KEYS */ + YYSYMBOL_VAR_RPZ = 298, /* VAR_RPZ */ + YYSYMBOL_VAR_TAGS = 299, /* VAR_TAGS */ + YYSYMBOL_VAR_RPZ_ACTION_OVERRIDE = 300, /* VAR_RPZ_ACTION_OVERRIDE */ + YYSYMBOL_VAR_RPZ_CNAME_OVERRIDE = 301, /* VAR_RPZ_CNAME_OVERRIDE */ + YYSYMBOL_VAR_RPZ_LOG = 302, /* VAR_RPZ_LOG */ + YYSYMBOL_VAR_RPZ_LOG_NAME = 303, /* VAR_RPZ_LOG_NAME */ + YYSYMBOL_VAR_DYNLIB = 304, /* VAR_DYNLIB */ + YYSYMBOL_VAR_DYNLIB_FILE = 305, /* VAR_DYNLIB_FILE */ + YYSYMBOL_VAR_EDNS_CLIENT_STRING = 306, /* VAR_EDNS_CLIENT_STRING */ + YYSYMBOL_VAR_EDNS_CLIENT_STRING_OPCODE = 307, /* VAR_EDNS_CLIENT_STRING_OPCODE */ + YYSYMBOL_VAR_NSID = 308, /* VAR_NSID */ + YYSYMBOL_YYACCEPT = 309, /* $accept */ + YYSYMBOL_toplevelvars = 310, /* toplevelvars */ + YYSYMBOL_toplevelvar = 311, /* toplevelvar */ + YYSYMBOL_force_toplevel = 312, /* force_toplevel */ + YYSYMBOL_serverstart = 313, /* serverstart */ + YYSYMBOL_contents_server = 314, /* contents_server */ + YYSYMBOL_content_server = 315, /* content_server */ + YYSYMBOL_stubstart = 316, /* stubstart */ + YYSYMBOL_contents_stub = 317, /* contents_stub */ + YYSYMBOL_content_stub = 318, /* content_stub */ + YYSYMBOL_forwardstart = 319, /* forwardstart */ + YYSYMBOL_contents_forward = 320, /* contents_forward */ + YYSYMBOL_content_forward = 321, /* content_forward */ + YYSYMBOL_viewstart = 322, /* viewstart */ + YYSYMBOL_contents_view = 323, /* contents_view */ + YYSYMBOL_content_view = 324, /* content_view */ + YYSYMBOL_authstart = 325, /* authstart */ + YYSYMBOL_contents_auth = 326, /* contents_auth */ + YYSYMBOL_content_auth = 327, /* content_auth */ + YYSYMBOL_rpz_tag = 328, /* rpz_tag */ + YYSYMBOL_rpz_action_override = 329, /* rpz_action_override */ + YYSYMBOL_rpz_cname_override = 330, /* rpz_cname_override */ + YYSYMBOL_rpz_log = 331, /* rpz_log */ + YYSYMBOL_rpz_log_name = 332, /* rpz_log_name */ + YYSYMBOL_rpzstart = 333, /* rpzstart */ + YYSYMBOL_contents_rpz = 334, /* contents_rpz */ + YYSYMBOL_content_rpz = 335, /* content_rpz */ + YYSYMBOL_server_num_threads = 336, /* server_num_threads */ + YYSYMBOL_server_verbosity = 337, /* server_verbosity */ + YYSYMBOL_server_statistics_interval = 338, /* server_statistics_interval */ + YYSYMBOL_server_statistics_cumulative = 339, /* server_statistics_cumulative */ + YYSYMBOL_server_extended_statistics = 340, /* server_extended_statistics */ + YYSYMBOL_server_shm_enable = 341, /* server_shm_enable */ + YYSYMBOL_server_shm_key = 342, /* server_shm_key */ + YYSYMBOL_server_port = 343, /* server_port */ + YYSYMBOL_server_send_client_subnet = 344, /* server_send_client_subnet */ + YYSYMBOL_server_client_subnet_zone = 345, /* server_client_subnet_zone */ + YYSYMBOL_server_client_subnet_always_forward = 346, /* server_client_subnet_always_forward */ + YYSYMBOL_server_client_subnet_opcode = 347, /* server_client_subnet_opcode */ + YYSYMBOL_server_max_client_subnet_ipv4 = 348, /* server_max_client_subnet_ipv4 */ + YYSYMBOL_server_max_client_subnet_ipv6 = 349, /* server_max_client_subnet_ipv6 */ + YYSYMBOL_server_min_client_subnet_ipv4 = 350, /* server_min_client_subnet_ipv4 */ + YYSYMBOL_server_min_client_subnet_ipv6 = 351, /* server_min_client_subnet_ipv6 */ + YYSYMBOL_server_max_ecs_tree_size_ipv4 = 352, /* server_max_ecs_tree_size_ipv4 */ + YYSYMBOL_server_max_ecs_tree_size_ipv6 = 353, /* server_max_ecs_tree_size_ipv6 */ + YYSYMBOL_server_interface = 354, /* server_interface */ + YYSYMBOL_server_outgoing_interface = 355, /* server_outgoing_interface */ + YYSYMBOL_server_outgoing_range = 356, /* server_outgoing_range */ + YYSYMBOL_server_outgoing_port_permit = 357, /* server_outgoing_port_permit */ + YYSYMBOL_server_outgoing_port_avoid = 358, /* server_outgoing_port_avoid */ + YYSYMBOL_server_outgoing_num_tcp = 359, /* server_outgoing_num_tcp */ + YYSYMBOL_server_incoming_num_tcp = 360, /* server_incoming_num_tcp */ + YYSYMBOL_server_interface_automatic = 361, /* server_interface_automatic */ + YYSYMBOL_server_do_ip4 = 362, /* server_do_ip4 */ + YYSYMBOL_server_do_ip6 = 363, /* server_do_ip6 */ + YYSYMBOL_server_do_udp = 364, /* server_do_udp */ + YYSYMBOL_server_do_tcp = 365, /* server_do_tcp */ + YYSYMBOL_server_prefer_ip4 = 366, /* server_prefer_ip4 */ + YYSYMBOL_server_prefer_ip6 = 367, /* server_prefer_ip6 */ + YYSYMBOL_server_tcp_mss = 368, /* server_tcp_mss */ + YYSYMBOL_server_outgoing_tcp_mss = 369, /* server_outgoing_tcp_mss */ + YYSYMBOL_server_tcp_idle_timeout = 370, /* server_tcp_idle_timeout */ + YYSYMBOL_server_tcp_keepalive = 371, /* server_tcp_keepalive */ + YYSYMBOL_server_tcp_keepalive_timeout = 372, /* server_tcp_keepalive_timeout */ + YYSYMBOL_server_tcp_upstream = 373, /* server_tcp_upstream */ + YYSYMBOL_server_udp_upstream_without_downstream = 374, /* server_udp_upstream_without_downstream */ + YYSYMBOL_server_ssl_upstream = 375, /* server_ssl_upstream */ + YYSYMBOL_server_ssl_service_key = 376, /* server_ssl_service_key */ + YYSYMBOL_server_ssl_service_pem = 377, /* server_ssl_service_pem */ + YYSYMBOL_server_ssl_port = 378, /* server_ssl_port */ + YYSYMBOL_server_tls_cert_bundle = 379, /* server_tls_cert_bundle */ + YYSYMBOL_server_tls_win_cert = 380, /* server_tls_win_cert */ + YYSYMBOL_server_tls_additional_port = 381, /* server_tls_additional_port */ + YYSYMBOL_server_tls_ciphers = 382, /* server_tls_ciphers */ + YYSYMBOL_server_tls_ciphersuites = 383, /* server_tls_ciphersuites */ + YYSYMBOL_server_tls_session_ticket_keys = 384, /* server_tls_session_ticket_keys */ + YYSYMBOL_server_tls_use_sni = 385, /* server_tls_use_sni */ + YYSYMBOL_server_https_port = 386, /* server_https_port */ + YYSYMBOL_server_http_endpoint = 387, /* server_http_endpoint */ + YYSYMBOL_server_http_max_streams = 388, /* server_http_max_streams */ + YYSYMBOL_server_http_query_buffer_size = 389, /* server_http_query_buffer_size */ + YYSYMBOL_server_http_response_buffer_size = 390, /* server_http_response_buffer_size */ + YYSYMBOL_server_http_nodelay = 391, /* server_http_nodelay */ + YYSYMBOL_server_http_notls_downstream = 392, /* server_http_notls_downstream */ + YYSYMBOL_server_use_systemd = 393, /* server_use_systemd */ + YYSYMBOL_server_do_daemonize = 394, /* server_do_daemonize */ + YYSYMBOL_server_use_syslog = 395, /* server_use_syslog */ + YYSYMBOL_server_log_time_ascii = 396, /* server_log_time_ascii */ + YYSYMBOL_server_log_queries = 397, /* server_log_queries */ + YYSYMBOL_server_log_replies = 398, /* server_log_replies */ + YYSYMBOL_server_log_tag_queryreply = 399, /* server_log_tag_queryreply */ + YYSYMBOL_server_log_servfail = 400, /* server_log_servfail */ + YYSYMBOL_server_log_local_actions = 401, /* server_log_local_actions */ + YYSYMBOL_server_chroot = 402, /* server_chroot */ + YYSYMBOL_server_username = 403, /* server_username */ + YYSYMBOL_server_directory = 404, /* server_directory */ + YYSYMBOL_server_logfile = 405, /* server_logfile */ + YYSYMBOL_server_pidfile = 406, /* server_pidfile */ + YYSYMBOL_server_root_hints = 407, /* server_root_hints */ + YYSYMBOL_server_dlv_anchor_file = 408, /* server_dlv_anchor_file */ + YYSYMBOL_server_dlv_anchor = 409, /* server_dlv_anchor */ + YYSYMBOL_server_auto_trust_anchor_file = 410, /* server_auto_trust_anchor_file */ + YYSYMBOL_server_trust_anchor_file = 411, /* server_trust_anchor_file */ + YYSYMBOL_server_trusted_keys_file = 412, /* server_trusted_keys_file */ + YYSYMBOL_server_trust_anchor = 413, /* server_trust_anchor */ + YYSYMBOL_server_trust_anchor_signaling = 414, /* server_trust_anchor_signaling */ + YYSYMBOL_server_root_key_sentinel = 415, /* server_root_key_sentinel */ + YYSYMBOL_server_domain_insecure = 416, /* server_domain_insecure */ + YYSYMBOL_server_hide_identity = 417, /* server_hide_identity */ + YYSYMBOL_server_hide_version = 418, /* server_hide_version */ + YYSYMBOL_server_hide_trustanchor = 419, /* server_hide_trustanchor */ + YYSYMBOL_server_identity = 420, /* server_identity */ + YYSYMBOL_server_version = 421, /* server_version */ + YYSYMBOL_server_nsid = 422, /* server_nsid */ + YYSYMBOL_server_so_rcvbuf = 423, /* server_so_rcvbuf */ + YYSYMBOL_server_so_sndbuf = 424, /* server_so_sndbuf */ + YYSYMBOL_server_so_reuseport = 425, /* server_so_reuseport */ + YYSYMBOL_server_ip_transparent = 426, /* server_ip_transparent */ + YYSYMBOL_server_ip_freebind = 427, /* server_ip_freebind */ + YYSYMBOL_server_ip_dscp = 428, /* server_ip_dscp */ + YYSYMBOL_server_stream_wait_size = 429, /* server_stream_wait_size */ + YYSYMBOL_server_edns_buffer_size = 430, /* server_edns_buffer_size */ + YYSYMBOL_server_msg_buffer_size = 431, /* server_msg_buffer_size */ + YYSYMBOL_server_msg_cache_size = 432, /* server_msg_cache_size */ + YYSYMBOL_server_msg_cache_slabs = 433, /* server_msg_cache_slabs */ + YYSYMBOL_server_num_queries_per_thread = 434, /* server_num_queries_per_thread */ + YYSYMBOL_server_jostle_timeout = 435, /* server_jostle_timeout */ + YYSYMBOL_server_delay_close = 436, /* server_delay_close */ + YYSYMBOL_server_udp_connect = 437, /* server_udp_connect */ + YYSYMBOL_server_unblock_lan_zones = 438, /* server_unblock_lan_zones */ + YYSYMBOL_server_insecure_lan_zones = 439, /* server_insecure_lan_zones */ + YYSYMBOL_server_rrset_cache_size = 440, /* server_rrset_cache_size */ + YYSYMBOL_server_rrset_cache_slabs = 441, /* server_rrset_cache_slabs */ + YYSYMBOL_server_infra_host_ttl = 442, /* server_infra_host_ttl */ + YYSYMBOL_server_infra_lame_ttl = 443, /* server_infra_lame_ttl */ + YYSYMBOL_server_infra_cache_numhosts = 444, /* server_infra_cache_numhosts */ + YYSYMBOL_server_infra_cache_lame_size = 445, /* server_infra_cache_lame_size */ + YYSYMBOL_server_infra_cache_slabs = 446, /* server_infra_cache_slabs */ + YYSYMBOL_server_infra_cache_min_rtt = 447, /* server_infra_cache_min_rtt */ + YYSYMBOL_server_infra_keep_probing = 448, /* server_infra_keep_probing */ + YYSYMBOL_server_target_fetch_policy = 449, /* server_target_fetch_policy */ + YYSYMBOL_server_harden_short_bufsize = 450, /* server_harden_short_bufsize */ + YYSYMBOL_server_harden_large_queries = 451, /* server_harden_large_queries */ + YYSYMBOL_server_harden_glue = 452, /* server_harden_glue */ + YYSYMBOL_server_harden_dnssec_stripped = 453, /* server_harden_dnssec_stripped */ + YYSYMBOL_server_harden_below_nxdomain = 454, /* server_harden_below_nxdomain */ + YYSYMBOL_server_harden_referral_path = 455, /* server_harden_referral_path */ + YYSYMBOL_server_harden_algo_downgrade = 456, /* server_harden_algo_downgrade */ + YYSYMBOL_server_use_caps_for_id = 457, /* server_use_caps_for_id */ + YYSYMBOL_server_caps_whitelist = 458, /* server_caps_whitelist */ + YYSYMBOL_server_private_address = 459, /* server_private_address */ + YYSYMBOL_server_private_domain = 460, /* server_private_domain */ + YYSYMBOL_server_prefetch = 461, /* server_prefetch */ + YYSYMBOL_server_prefetch_key = 462, /* server_prefetch_key */ + YYSYMBOL_server_deny_any = 463, /* server_deny_any */ + YYSYMBOL_server_unwanted_reply_threshold = 464, /* server_unwanted_reply_threshold */ + YYSYMBOL_server_do_not_query_address = 465, /* server_do_not_query_address */ + YYSYMBOL_server_do_not_query_localhost = 466, /* server_do_not_query_localhost */ + YYSYMBOL_server_access_control = 467, /* server_access_control */ + YYSYMBOL_server_module_conf = 468, /* server_module_conf */ + YYSYMBOL_server_val_override_date = 469, /* server_val_override_date */ + YYSYMBOL_server_val_sig_skew_min = 470, /* server_val_sig_skew_min */ + YYSYMBOL_server_val_sig_skew_max = 471, /* server_val_sig_skew_max */ + YYSYMBOL_server_cache_max_ttl = 472, /* server_cache_max_ttl */ + YYSYMBOL_server_cache_max_negative_ttl = 473, /* server_cache_max_negative_ttl */ + YYSYMBOL_server_cache_min_ttl = 474, /* server_cache_min_ttl */ + YYSYMBOL_server_bogus_ttl = 475, /* server_bogus_ttl */ + YYSYMBOL_server_val_clean_additional = 476, /* server_val_clean_additional */ + YYSYMBOL_server_val_permissive_mode = 477, /* server_val_permissive_mode */ + YYSYMBOL_server_aggressive_nsec = 478, /* server_aggressive_nsec */ + YYSYMBOL_server_ignore_cd_flag = 479, /* server_ignore_cd_flag */ + YYSYMBOL_server_serve_expired = 480, /* server_serve_expired */ + YYSYMBOL_server_serve_expired_ttl = 481, /* server_serve_expired_ttl */ + YYSYMBOL_server_serve_expired_ttl_reset = 482, /* server_serve_expired_ttl_reset */ + YYSYMBOL_server_serve_expired_reply_ttl = 483, /* server_serve_expired_reply_ttl */ + YYSYMBOL_server_serve_expired_client_timeout = 484, /* server_serve_expired_client_timeout */ + YYSYMBOL_server_serve_original_ttl = 485, /* server_serve_original_ttl */ + YYSYMBOL_server_fake_dsa = 486, /* server_fake_dsa */ + YYSYMBOL_server_fake_sha1 = 487, /* server_fake_sha1 */ + YYSYMBOL_server_val_log_level = 488, /* server_val_log_level */ + YYSYMBOL_server_val_nsec3_keysize_iterations = 489, /* server_val_nsec3_keysize_iterations */ + YYSYMBOL_server_add_holddown = 490, /* server_add_holddown */ + YYSYMBOL_server_del_holddown = 491, /* server_del_holddown */ + YYSYMBOL_server_keep_missing = 492, /* server_keep_missing */ + YYSYMBOL_server_permit_small_holddown = 493, /* server_permit_small_holddown */ + YYSYMBOL_server_key_cache_size = 494, /* server_key_cache_size */ + YYSYMBOL_server_key_cache_slabs = 495, /* server_key_cache_slabs */ + YYSYMBOL_server_neg_cache_size = 496, /* server_neg_cache_size */ + YYSYMBOL_server_local_zone = 497, /* server_local_zone */ + YYSYMBOL_server_local_data = 498, /* server_local_data */ + YYSYMBOL_server_local_data_ptr = 499, /* server_local_data_ptr */ + YYSYMBOL_server_minimal_responses = 500, /* server_minimal_responses */ + YYSYMBOL_server_rrset_roundrobin = 501, /* server_rrset_roundrobin */ + YYSYMBOL_server_unknown_server_time_limit = 502, /* server_unknown_server_time_limit */ + YYSYMBOL_server_max_udp_size = 503, /* server_max_udp_size */ + YYSYMBOL_server_dns64_prefix = 504, /* server_dns64_prefix */ + YYSYMBOL_server_dns64_synthall = 505, /* server_dns64_synthall */ + YYSYMBOL_server_dns64_ignore_aaaa = 506, /* server_dns64_ignore_aaaa */ + YYSYMBOL_server_define_tag = 507, /* server_define_tag */ + YYSYMBOL_server_local_zone_tag = 508, /* server_local_zone_tag */ + YYSYMBOL_server_access_control_tag = 509, /* server_access_control_tag */ + YYSYMBOL_server_access_control_tag_action = 510, /* server_access_control_tag_action */ + YYSYMBOL_server_access_control_tag_data = 511, /* server_access_control_tag_data */ + YYSYMBOL_server_local_zone_override = 512, /* server_local_zone_override */ + YYSYMBOL_server_access_control_view = 513, /* server_access_control_view */ + YYSYMBOL_server_response_ip_tag = 514, /* server_response_ip_tag */ + YYSYMBOL_server_ip_ratelimit = 515, /* server_ip_ratelimit */ + YYSYMBOL_server_ratelimit = 516, /* server_ratelimit */ + YYSYMBOL_server_ip_ratelimit_size = 517, /* server_ip_ratelimit_size */ + YYSYMBOL_server_ratelimit_size = 518, /* server_ratelimit_size */ + YYSYMBOL_server_ip_ratelimit_slabs = 519, /* server_ip_ratelimit_slabs */ + YYSYMBOL_server_ratelimit_slabs = 520, /* server_ratelimit_slabs */ + YYSYMBOL_server_ratelimit_for_domain = 521, /* server_ratelimit_for_domain */ + YYSYMBOL_server_ratelimit_below_domain = 522, /* server_ratelimit_below_domain */ + YYSYMBOL_server_ip_ratelimit_factor = 523, /* server_ip_ratelimit_factor */ + YYSYMBOL_server_ratelimit_factor = 524, /* server_ratelimit_factor */ + YYSYMBOL_server_low_rtt = 525, /* server_low_rtt */ + YYSYMBOL_server_fast_server_num = 526, /* server_fast_server_num */ + YYSYMBOL_server_fast_server_permil = 527, /* server_fast_server_permil */ + YYSYMBOL_server_qname_minimisation = 528, /* server_qname_minimisation */ + YYSYMBOL_server_qname_minimisation_strict = 529, /* server_qname_minimisation_strict */ + YYSYMBOL_server_pad_responses = 530, /* server_pad_responses */ + YYSYMBOL_server_pad_responses_block_size = 531, /* server_pad_responses_block_size */ + YYSYMBOL_server_pad_queries = 532, /* server_pad_queries */ + YYSYMBOL_server_pad_queries_block_size = 533, /* server_pad_queries_block_size */ + YYSYMBOL_server_ipsecmod_enabled = 534, /* server_ipsecmod_enabled */ + YYSYMBOL_server_ipsecmod_ignore_bogus = 535, /* server_ipsecmod_ignore_bogus */ + YYSYMBOL_server_ipsecmod_hook = 536, /* server_ipsecmod_hook */ + YYSYMBOL_server_ipsecmod_max_ttl = 537, /* server_ipsecmod_max_ttl */ + YYSYMBOL_server_ipsecmod_whitelist = 538, /* server_ipsecmod_whitelist */ + YYSYMBOL_server_ipsecmod_strict = 539, /* server_ipsecmod_strict */ + YYSYMBOL_server_edns_client_string = 540, /* server_edns_client_string */ + YYSYMBOL_server_edns_client_string_opcode = 541, /* server_edns_client_string_opcode */ + YYSYMBOL_stub_name = 542, /* stub_name */ + YYSYMBOL_stub_host = 543, /* stub_host */ + YYSYMBOL_stub_addr = 544, /* stub_addr */ + YYSYMBOL_stub_first = 545, /* stub_first */ + YYSYMBOL_stub_no_cache = 546, /* stub_no_cache */ + YYSYMBOL_stub_ssl_upstream = 547, /* stub_ssl_upstream */ + YYSYMBOL_stub_prime = 548, /* stub_prime */ + YYSYMBOL_forward_name = 549, /* forward_name */ + YYSYMBOL_forward_host = 550, /* forward_host */ + YYSYMBOL_forward_addr = 551, /* forward_addr */ + YYSYMBOL_forward_first = 552, /* forward_first */ + YYSYMBOL_forward_no_cache = 553, /* forward_no_cache */ + YYSYMBOL_forward_ssl_upstream = 554, /* forward_ssl_upstream */ + YYSYMBOL_auth_name = 555, /* auth_name */ + YYSYMBOL_auth_zonefile = 556, /* auth_zonefile */ + YYSYMBOL_auth_master = 557, /* auth_master */ + YYSYMBOL_auth_url = 558, /* auth_url */ + YYSYMBOL_auth_allow_notify = 559, /* auth_allow_notify */ + YYSYMBOL_auth_for_downstream = 560, /* auth_for_downstream */ + YYSYMBOL_auth_for_upstream = 561, /* auth_for_upstream */ + YYSYMBOL_auth_fallback_enabled = 562, /* auth_fallback_enabled */ + YYSYMBOL_view_name = 563, /* view_name */ + YYSYMBOL_view_local_zone = 564, /* view_local_zone */ + YYSYMBOL_view_response_ip = 565, /* view_response_ip */ + YYSYMBOL_view_response_ip_data = 566, /* view_response_ip_data */ + YYSYMBOL_view_local_data = 567, /* view_local_data */ + YYSYMBOL_view_local_data_ptr = 568, /* view_local_data_ptr */ + YYSYMBOL_view_first = 569, /* view_first */ + YYSYMBOL_rcstart = 570, /* rcstart */ + YYSYMBOL_contents_rc = 571, /* contents_rc */ + YYSYMBOL_content_rc = 572, /* content_rc */ + YYSYMBOL_rc_control_enable = 573, /* rc_control_enable */ + YYSYMBOL_rc_control_port = 574, /* rc_control_port */ + YYSYMBOL_rc_control_interface = 575, /* rc_control_interface */ + YYSYMBOL_rc_control_use_cert = 576, /* rc_control_use_cert */ + YYSYMBOL_rc_server_key_file = 577, /* rc_server_key_file */ + YYSYMBOL_rc_server_cert_file = 578, /* rc_server_cert_file */ + YYSYMBOL_rc_control_key_file = 579, /* rc_control_key_file */ + YYSYMBOL_rc_control_cert_file = 580, /* rc_control_cert_file */ + YYSYMBOL_dtstart = 581, /* dtstart */ + YYSYMBOL_contents_dt = 582, /* contents_dt */ + YYSYMBOL_content_dt = 583, /* content_dt */ + YYSYMBOL_dt_dnstap_enable = 584, /* dt_dnstap_enable */ + YYSYMBOL_dt_dnstap_bidirectional = 585, /* dt_dnstap_bidirectional */ + YYSYMBOL_dt_dnstap_socket_path = 586, /* dt_dnstap_socket_path */ + YYSYMBOL_dt_dnstap_ip = 587, /* dt_dnstap_ip */ + YYSYMBOL_dt_dnstap_tls = 588, /* dt_dnstap_tls */ + YYSYMBOL_dt_dnstap_tls_server_name = 589, /* dt_dnstap_tls_server_name */ + YYSYMBOL_dt_dnstap_tls_cert_bundle = 590, /* dt_dnstap_tls_cert_bundle */ + YYSYMBOL_dt_dnstap_tls_client_key_file = 591, /* dt_dnstap_tls_client_key_file */ + YYSYMBOL_dt_dnstap_tls_client_cert_file = 592, /* dt_dnstap_tls_client_cert_file */ + YYSYMBOL_dt_dnstap_send_identity = 593, /* dt_dnstap_send_identity */ + YYSYMBOL_dt_dnstap_send_version = 594, /* dt_dnstap_send_version */ + YYSYMBOL_dt_dnstap_identity = 595, /* dt_dnstap_identity */ + YYSYMBOL_dt_dnstap_version = 596, /* dt_dnstap_version */ + YYSYMBOL_dt_dnstap_log_resolver_query_messages = 597, /* dt_dnstap_log_resolver_query_messages */ + YYSYMBOL_dt_dnstap_log_resolver_response_messages = 598, /* dt_dnstap_log_resolver_response_messages */ + YYSYMBOL_dt_dnstap_log_client_query_messages = 599, /* dt_dnstap_log_client_query_messages */ + YYSYMBOL_dt_dnstap_log_client_response_messages = 600, /* dt_dnstap_log_client_response_messages */ + YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 601, /* dt_dnstap_log_forwarder_query_messages */ + YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 602, /* dt_dnstap_log_forwarder_response_messages */ + YYSYMBOL_pythonstart = 603, /* pythonstart */ + YYSYMBOL_contents_py = 604, /* contents_py */ + YYSYMBOL_content_py = 605, /* content_py */ + YYSYMBOL_py_script = 606, /* py_script */ + YYSYMBOL_dynlibstart = 607, /* dynlibstart */ + YYSYMBOL_contents_dl = 608, /* contents_dl */ + YYSYMBOL_content_dl = 609, /* content_dl */ + YYSYMBOL_dl_file = 610, /* dl_file */ + YYSYMBOL_server_disable_dnssec_lame_check = 611, /* server_disable_dnssec_lame_check */ + YYSYMBOL_server_log_identity = 612, /* server_log_identity */ + YYSYMBOL_server_response_ip = 613, /* server_response_ip */ + YYSYMBOL_server_response_ip_data = 614, /* server_response_ip_data */ + YYSYMBOL_dnscstart = 615, /* dnscstart */ + YYSYMBOL_contents_dnsc = 616, /* contents_dnsc */ + YYSYMBOL_content_dnsc = 617, /* content_dnsc */ + YYSYMBOL_dnsc_dnscrypt_enable = 618, /* dnsc_dnscrypt_enable */ + YYSYMBOL_dnsc_dnscrypt_port = 619, /* dnsc_dnscrypt_port */ + YYSYMBOL_dnsc_dnscrypt_provider = 620, /* dnsc_dnscrypt_provider */ + YYSYMBOL_dnsc_dnscrypt_provider_cert = 621, /* dnsc_dnscrypt_provider_cert */ + YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 622, /* dnsc_dnscrypt_provider_cert_rotated */ + YYSYMBOL_dnsc_dnscrypt_secret_key = 623, /* dnsc_dnscrypt_secret_key */ + YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 624, /* dnsc_dnscrypt_shared_secret_cache_size */ + YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 625, /* dnsc_dnscrypt_shared_secret_cache_slabs */ + YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 626, /* dnsc_dnscrypt_nonce_cache_size */ + YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 627, /* dnsc_dnscrypt_nonce_cache_slabs */ + YYSYMBOL_cachedbstart = 628, /* cachedbstart */ + YYSYMBOL_contents_cachedb = 629, /* contents_cachedb */ + YYSYMBOL_content_cachedb = 630, /* content_cachedb */ + YYSYMBOL_cachedb_backend_name = 631, /* cachedb_backend_name */ + YYSYMBOL_cachedb_secret_seed = 632, /* cachedb_secret_seed */ + YYSYMBOL_redis_server_host = 633, /* redis_server_host */ + YYSYMBOL_redis_server_port = 634, /* redis_server_port */ + YYSYMBOL_redis_timeout = 635, /* redis_timeout */ + YYSYMBOL_redis_expire_records = 636, /* redis_expire_records */ + YYSYMBOL_server_tcp_connection_limit = 637, /* server_tcp_connection_limit */ + YYSYMBOL_ipsetstart = 638, /* ipsetstart */ + YYSYMBOL_contents_ipset = 639, /* contents_ipset */ + YYSYMBOL_content_ipset = 640, /* content_ipset */ + YYSYMBOL_ipset_name_v4 = 641, /* ipset_name_v4 */ + YYSYMBOL_ipset_name_v6 = 642 /* ipset_name_v6 */ }; typedef enum yysymbol_kind_t yysymbol_kind_t; @@ -1066,19 +1738,18 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 642 +#define YYLAST 652 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 304 +#define YYNTOKENS 309 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 329 +#define YYNNTS 334 /* YYNRULES -- Number of rules. */ -#define YYNRULES 634 +#define YYNRULES 644 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 942 +#define YYNSTATES 957 -/* YYMAXUTOK -- Last valid token kind. */ -#define YYMAXUTOK 558 +#define YYMAXUTOK 563 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM @@ -1147,77 +1818,79 @@ static const yytype_int16 yytranslate[] = 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303 + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { - 0, 185, 185, 185, 186, 186, 187, 187, 188, 188, - 188, 189, 189, 190, 190, 191, 191, 192, 194, 200, - 205, 206, 207, 207, 207, 208, 208, 209, 209, 209, - 210, 210, 211, 211, 211, 212, 212, 213, 213, 213, - 214, 214, 214, 215, 215, 216, 216, 217, 217, 218, - 218, 219, 219, 220, 220, 221, 221, 222, 222, 223, - 223, 223, 224, 224, 224, 225, 225, 225, 226, 226, - 227, 227, 228, 228, 229, 229, 230, 230, 230, 231, - 231, 232, 232, 233, 233, 233, 234, 234, 235, 235, - 236, 236, 237, 237, 237, 238, 238, 239, 239, 240, - 240, 241, 241, 242, 242, 243, 243, 243, 244, 244, - 245, 245, 245, 246, 246, 246, 247, 247, 247, 248, - 248, 248, 248, 249, 250, 250, 250, 251, 251, 251, - 252, 252, 253, 253, 254, 254, 254, 255, 255, 255, - 256, 256, 257, 257, 257, 258, 258, 259, 259, 259, - 260, 260, 261, 261, 262, 262, 263, 264, 264, 265, - 265, 266, 266, 267, 268, 268, 269, 269, 270, 270, - 271, 271, 272, 272, 273, 273, 273, 274, 274, 275, - 275, 276, 276, 277, 277, 278, 278, 279, 279, 280, - 280, 280, 281, 281, 281, 282, 282, 282, 283, 283, - 284, 285, 285, 286, 286, 287, 287, 288, 288, 289, - 289, 289, 290, 290, 290, 291, 291, 291, 292, 292, - 293, 293, 294, 294, 295, 295, 296, 296, 298, 310, - 311, 312, 312, 312, 312, 312, 313, 313, 315, 327, - 328, 329, 329, 329, 329, 330, 330, 332, 346, 347, - 348, 348, 348, 348, 349, 349, 349, 351, 368, 369, - 370, 370, 370, 370, 371, 371, 371, 372, 375, 394, - 411, 419, 429, 437, 454, 455, 456, 456, 456, 456, - 456, 457, 457, 457, 458, 458, 460, 469, 478, 489, - 498, 507, 516, 527, 536, 548, 562, 577, 588, 605, - 622, 639, 656, 671, 686, 699, 714, 723, 732, 741, - 750, 759, 768, 777, 786, 795, 804, 813, 822, 831, - 840, 853, 862, 875, 884, 893, 902, 909, 916, 925, - 932, 941, 949, 956, 963, 971, 980, 988, 1004, 1012, - 1020, 1028, 1036, 1044, 1053, 1062, 1076, 1085, 1094, 1103, - 1112, 1121, 1130, 1137, 1144, 1170, 1178, 1185, 1192, 1199, - 1206, 1214, 1222, 1230, 1237, 1248, 1259, 1266, 1275, 1284, - 1293, 1300, 1307, 1323, 1331, 1339, 1349, 1359, 1369, 1383, - 1391, 1404, 1415, 1423, 1436, 1445, 1454, 1463, 1472, 1482, - 1492, 1500, 1513, 1522, 1530, 1539, 1547, 1560, 1569, 1579, - 1586, 1596, 1606, 1616, 1626, 1636, 1646, 1656, 1666, 1673, - 1680, 1687, 1696, 1705, 1714, 1723, 1730, 1740, 1760, 1767, - 1785, 1798, 1811, 1820, 1829, 1838, 1847, 1857, 1867, 1878, - 1887, 1896, 1905, 1914, 1923, 1932, 1945, 1958, 1967, 1974, - 1983, 1992, 2001, 2010, 2018, 2031, 2039, 2084, 2091, 2106, - 2116, 2126, 2133, 2140, 2147, 2156, 2164, 2178, 2199, 2220, - 2232, 2244, 2256, 2265, 2286, 2296, 2305, 2313, 2321, 2334, - 2347, 2362, 2377, 2386, 2395, 2401, 2410, 2419, 2429, 2439, - 2452, 2465, 2477, 2491, 2503, 2517, 2526, 2538, 2548, 2555, - 2562, 2571, 2580, 2590, 2600, 2610, 2617, 2624, 2633, 2642, - 2652, 2662, 2669, 2676, 2683, 2691, 2701, 2711, 2721, 2731, - 2770, 2780, 2788, 2796, 2811, 2820, 2825, 2826, 2827, 2827, - 2827, 2828, 2828, 2828, 2829, 2829, 2831, 2841, 2850, 2857, - 2864, 2871, 2878, 2885, 2892, 2897, 2898, 2899, 2899, 2899, - 2900, 2900, 2900, 2901, 2902, 2902, 2903, 2903, 2904, 2904, - 2905, 2906, 2907, 2908, 2909, 2910, 2912, 2921, 2931, 2938, - 2945, 2954, 2961, 2968, 2975, 2982, 2991, 3000, 3007, 3014, - 3024, 3034, 3044, 3054, 3064, 3074, 3079, 3080, 3081, 3083, - 3089, 3094, 3095, 3096, 3098, 3104, 3114, 3121, 3130, 3138, - 3143, 3144, 3146, 3146, 3146, 3147, 3147, 3148, 3149, 3150, - 3151, 3152, 3154, 3164, 3173, 3180, 3189, 3196, 3205, 3213, - 3226, 3234, 3247, 3252, 3253, 3254, 3254, 3255, 3255, 3255, - 3256, 3258, 3270, 3282, 3294, 3309, 3322, 3335, 3346, 3351, - 3352, 3353, 3353, 3355, 3370 + 0, 187, 187, 187, 188, 188, 189, 189, 190, 190, + 190, 191, 191, 192, 192, 193, 193, 194, 196, 202, + 207, 208, 209, 209, 209, 210, 210, 211, 211, 211, + 212, 212, 213, 213, 213, 214, 214, 215, 215, 215, + 216, 216, 216, 217, 217, 218, 218, 219, 219, 220, + 220, 221, 221, 222, 222, 223, 223, 224, 224, 225, + 225, 225, 226, 226, 226, 227, 227, 227, 228, 228, + 229, 229, 230, 230, 231, 231, 232, 232, 232, 233, + 233, 234, 234, 235, 235, 235, 236, 236, 237, 237, + 238, 238, 239, 239, 239, 240, 240, 241, 241, 242, + 242, 243, 243, 244, 244, 245, 245, 245, 246, 246, + 247, 247, 247, 248, 248, 248, 249, 249, 249, 250, + 250, 250, 250, 251, 252, 252, 252, 253, 253, 253, + 254, 254, 255, 255, 256, 256, 256, 257, 257, 257, + 258, 258, 259, 259, 259, 260, 260, 261, 261, 261, + 262, 262, 263, 263, 264, 264, 265, 266, 266, 267, + 267, 268, 268, 269, 270, 270, 271, 271, 272, 272, + 273, 273, 274, 274, 275, 275, 275, 276, 276, 277, + 277, 278, 278, 279, 280, 280, 281, 281, 282, 283, + 283, 284, 284, 285, 285, 286, 286, 287, 287, 287, + 288, 288, 288, 289, 289, 290, 291, 291, 292, 292, + 293, 293, 294, 294, 295, 295, 295, 296, 296, 296, + 297, 297, 297, 298, 298, 299, 299, 300, 300, 301, + 301, 302, 302, 304, 316, 317, 318, 318, 318, 318, + 318, 319, 319, 321, 333, 334, 335, 335, 335, 335, + 336, 336, 338, 352, 353, 354, 354, 354, 354, 355, + 355, 355, 357, 374, 375, 376, 376, 376, 376, 377, + 377, 377, 378, 381, 400, 417, 425, 435, 443, 460, + 461, 462, 462, 462, 462, 462, 463, 463, 463, 464, + 464, 466, 475, 484, 495, 504, 513, 522, 533, 542, + 554, 568, 583, 594, 611, 628, 645, 662, 677, 692, + 705, 720, 729, 738, 747, 756, 765, 774, 783, 792, + 801, 810, 819, 828, 837, 846, 859, 868, 881, 890, + 899, 908, 915, 922, 931, 938, 947, 955, 962, 969, + 977, 986, 994, 1010, 1018, 1026, 1034, 1042, 1050, 1059, + 1068, 1082, 1091, 1100, 1109, 1118, 1127, 1136, 1143, 1150, + 1176, 1184, 1191, 1198, 1205, 1212, 1220, 1228, 1236, 1243, + 1254, 1265, 1272, 1281, 1290, 1299, 1306, 1313, 1329, 1337, + 1345, 1355, 1365, 1375, 1389, 1397, 1410, 1421, 1429, 1442, + 1451, 1460, 1469, 1478, 1488, 1498, 1506, 1519, 1528, 1536, + 1545, 1553, 1566, 1575, 1585, 1592, 1602, 1612, 1622, 1632, + 1642, 1652, 1662, 1672, 1679, 1686, 1693, 1702, 1711, 1720, + 1729, 1736, 1746, 1766, 1773, 1791, 1804, 1817, 1826, 1835, + 1844, 1853, 1863, 1873, 1884, 1893, 1902, 1911, 1920, 1929, + 1938, 1947, 1960, 1973, 1982, 1989, 1998, 2007, 2016, 2025, + 2033, 2046, 2054, 2099, 2106, 2121, 2131, 2141, 2148, 2155, + 2162, 2171, 2179, 2193, 2214, 2235, 2247, 2259, 2271, 2280, + 2301, 2311, 2320, 2328, 2336, 2349, 2362, 2377, 2392, 2401, + 2410, 2416, 2425, 2434, 2444, 2454, 2464, 2473, 2483, 2492, + 2505, 2518, 2530, 2544, 2556, 2570, 2579, 2591, 2601, 2608, + 2615, 2624, 2633, 2643, 2653, 2663, 2670, 2677, 2686, 2695, + 2705, 2715, 2722, 2729, 2736, 2744, 2754, 2764, 2774, 2784, + 2823, 2833, 2841, 2849, 2864, 2873, 2878, 2879, 2880, 2880, + 2880, 2881, 2881, 2881, 2882, 2882, 2884, 2894, 2903, 2910, + 2917, 2924, 2931, 2938, 2945, 2950, 2951, 2952, 2952, 2952, + 2953, 2953, 2953, 2954, 2955, 2955, 2956, 2956, 2957, 2957, + 2958, 2959, 2960, 2961, 2962, 2963, 2965, 2974, 2984, 2991, + 2998, 3007, 3014, 3021, 3028, 3035, 3044, 3053, 3060, 3067, + 3077, 3087, 3097, 3107, 3117, 3127, 3132, 3133, 3134, 3136, + 3142, 3147, 3148, 3149, 3151, 3157, 3167, 3174, 3183, 3191, + 3196, 3197, 3199, 3199, 3199, 3200, 3200, 3201, 3202, 3203, + 3204, 3205, 3207, 3217, 3226, 3233, 3242, 3249, 3258, 3266, + 3279, 3287, 3300, 3305, 3306, 3307, 3307, 3308, 3308, 3308, + 3309, 3311, 3323, 3335, 3347, 3362, 3375, 3388, 3399, 3404, + 3405, 3406, 3406, 3408, 3423 }; #endif @@ -1317,8 +1990,9 @@ static const char *const yytname[] = "VAR_ACCESS_CONTROL_TAG_DATA", "VAR_VIEW", "VAR_ACCESS_CONTROL_VIEW", "VAR_VIEW_FIRST", "VAR_SERVE_EXPIRED", "VAR_SERVE_EXPIRED_TTL", "VAR_SERVE_EXPIRED_TTL_RESET", "VAR_SERVE_EXPIRED_REPLY_TTL", - "VAR_SERVE_EXPIRED_CLIENT_TIMEOUT", "VAR_FAKE_DSA", "VAR_FAKE_SHA1", - "VAR_LOG_IDENTITY", "VAR_HIDE_TRUSTANCHOR", "VAR_TRUST_ANCHOR_SIGNALING", + "VAR_SERVE_EXPIRED_CLIENT_TIMEOUT", "VAR_SERVE_ORIGINAL_TTL", + "VAR_FAKE_DSA", "VAR_FAKE_SHA1", "VAR_LOG_IDENTITY", + "VAR_HIDE_TRUSTANCHOR", "VAR_TRUST_ANCHOR_SIGNALING", "VAR_AGGRESSIVE_NSEC", "VAR_USE_SYSTEMD", "VAR_SHM_ENABLE", "VAR_SHM_KEY", "VAR_ROOT_KEY_SENTINEL", "VAR_DNSCRYPT", "VAR_DNSCRYPT_ENABLE", "VAR_DNSCRYPT_PORT", "VAR_DNSCRYPT_PROVIDER", @@ -1327,32 +2001,34 @@ static const char *const yytname[] = "VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE", "VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS", "VAR_DNSCRYPT_NONCE_CACHE_SIZE", "VAR_DNSCRYPT_NONCE_CACHE_SLABS", - "VAR_IPSECMOD_ENABLED", "VAR_IPSECMOD_HOOK", "VAR_IPSECMOD_IGNORE_BOGUS", - "VAR_IPSECMOD_MAX_TTL", "VAR_IPSECMOD_WHITELIST", "VAR_IPSECMOD_STRICT", - "VAR_CACHEDB", "VAR_CACHEDB_BACKEND", "VAR_CACHEDB_SECRETSEED", - "VAR_CACHEDB_REDISHOST", "VAR_CACHEDB_REDISPORT", - "VAR_CACHEDB_REDISTIMEOUT", "VAR_CACHEDB_REDISEXPIRERECORDS", - "VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM", "VAR_FOR_UPSTREAM", - "VAR_AUTH_ZONE", "VAR_ZONEFILE", "VAR_MASTER", "VAR_URL", - "VAR_FOR_DOWNSTREAM", "VAR_FALLBACK_ENABLED", "VAR_TLS_ADDITIONAL_PORT", - "VAR_LOW_RTT", "VAR_LOW_RTT_PERMIL", "VAR_FAST_SERVER_PERMIL", - "VAR_FAST_SERVER_NUM", "VAR_ALLOW_NOTIFY", "VAR_TLS_WIN_CERT", - "VAR_TCP_CONNECTION_LIMIT", "VAR_FORWARD_NO_CACHE", "VAR_STUB_NO_CACHE", - "VAR_LOG_SERVFAIL", "VAR_DENY_ANY", "VAR_UNKNOWN_SERVER_TIME_LIMIT", - "VAR_LOG_TAG_QUERYREPLY", "VAR_STREAM_WAIT_SIZE", "VAR_TLS_CIPHERS", - "VAR_TLS_CIPHERSUITES", "VAR_TLS_USE_SNI", "VAR_IPSET", - "VAR_IPSET_NAME_V4", "VAR_IPSET_NAME_V6", "VAR_TLS_SESSION_TICKET_KEYS", - "VAR_RPZ", "VAR_TAGS", "VAR_RPZ_ACTION_OVERRIDE", - "VAR_RPZ_CNAME_OVERRIDE", "VAR_RPZ_LOG", "VAR_RPZ_LOG_NAME", - "VAR_DYNLIB", "VAR_DYNLIB_FILE", "VAR_EDNS_CLIENT_STRING", - "VAR_EDNS_CLIENT_STRING_OPCODE", "VAR_NSID", "$accept", "toplevelvars", - "toplevelvar", "force_toplevel", "serverstart", "contents_server", - "content_server", "stubstart", "contents_stub", "content_stub", - "forwardstart", "contents_forward", "content_forward", "viewstart", - "contents_view", "content_view", "authstart", "contents_auth", - "content_auth", "rpz_tag", "rpz_action_override", "rpz_cname_override", - "rpz_log", "rpz_log_name", "rpzstart", "contents_rpz", "content_rpz", - "server_num_threads", "server_verbosity", "server_statistics_interval", + "VAR_PAD_RESPONSES", "VAR_PAD_RESPONSES_BLOCK_SIZE", "VAR_PAD_QUERIES", + "VAR_PAD_QUERIES_BLOCK_SIZE", "VAR_IPSECMOD_ENABLED", + "VAR_IPSECMOD_HOOK", "VAR_IPSECMOD_IGNORE_BOGUS", "VAR_IPSECMOD_MAX_TTL", + "VAR_IPSECMOD_WHITELIST", "VAR_IPSECMOD_STRICT", "VAR_CACHEDB", + "VAR_CACHEDB_BACKEND", "VAR_CACHEDB_SECRETSEED", "VAR_CACHEDB_REDISHOST", + "VAR_CACHEDB_REDISPORT", "VAR_CACHEDB_REDISTIMEOUT", + "VAR_CACHEDB_REDISEXPIRERECORDS", "VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM", + "VAR_FOR_UPSTREAM", "VAR_AUTH_ZONE", "VAR_ZONEFILE", "VAR_MASTER", + "VAR_URL", "VAR_FOR_DOWNSTREAM", "VAR_FALLBACK_ENABLED", + "VAR_TLS_ADDITIONAL_PORT", "VAR_LOW_RTT", "VAR_LOW_RTT_PERMIL", + "VAR_FAST_SERVER_PERMIL", "VAR_FAST_SERVER_NUM", "VAR_ALLOW_NOTIFY", + "VAR_TLS_WIN_CERT", "VAR_TCP_CONNECTION_LIMIT", "VAR_FORWARD_NO_CACHE", + "VAR_STUB_NO_CACHE", "VAR_LOG_SERVFAIL", "VAR_DENY_ANY", + "VAR_UNKNOWN_SERVER_TIME_LIMIT", "VAR_LOG_TAG_QUERYREPLY", + "VAR_STREAM_WAIT_SIZE", "VAR_TLS_CIPHERS", "VAR_TLS_CIPHERSUITES", + "VAR_TLS_USE_SNI", "VAR_IPSET", "VAR_IPSET_NAME_V4", "VAR_IPSET_NAME_V6", + "VAR_TLS_SESSION_TICKET_KEYS", "VAR_RPZ", "VAR_TAGS", + "VAR_RPZ_ACTION_OVERRIDE", "VAR_RPZ_CNAME_OVERRIDE", "VAR_RPZ_LOG", + "VAR_RPZ_LOG_NAME", "VAR_DYNLIB", "VAR_DYNLIB_FILE", + "VAR_EDNS_CLIENT_STRING", "VAR_EDNS_CLIENT_STRING_OPCODE", "VAR_NSID", + "$accept", "toplevelvars", "toplevelvar", "force_toplevel", + "serverstart", "contents_server", "content_server", "stubstart", + "contents_stub", "content_stub", "forwardstart", "contents_forward", + "content_forward", "viewstart", "contents_view", "content_view", + "authstart", "contents_auth", "content_auth", "rpz_tag", + "rpz_action_override", "rpz_cname_override", "rpz_log", "rpz_log_name", + "rpzstart", "contents_rpz", "content_rpz", "server_num_threads", + "server_verbosity", "server_statistics_interval", "server_statistics_cumulative", "server_extended_statistics", "server_shm_enable", "server_shm_key", "server_port", "server_send_client_subnet", "server_client_subnet_zone", @@ -1416,8 +2092,8 @@ static const char *const yytname[] = "server_aggressive_nsec", "server_ignore_cd_flag", "server_serve_expired", "server_serve_expired_ttl", "server_serve_expired_ttl_reset", "server_serve_expired_reply_ttl", - "server_serve_expired_client_timeout", "server_fake_dsa", - "server_fake_sha1", "server_val_log_level", + "server_serve_expired_client_timeout", "server_serve_original_ttl", + "server_fake_dsa", "server_fake_sha1", "server_val_log_level", "server_val_nsec3_keysize_iterations", "server_add_holddown", "server_del_holddown", "server_keep_missing", "server_permit_small_holddown", "server_key_cache_size", @@ -1435,7 +2111,9 @@ static const char *const yytname[] = "server_ratelimit_below_domain", "server_ip_ratelimit_factor", "server_ratelimit_factor", "server_low_rtt", "server_fast_server_num", "server_fast_server_permil", "server_qname_minimisation", - "server_qname_minimisation_strict", "server_ipsecmod_enabled", + "server_qname_minimisation_strict", "server_pad_responses", + "server_pad_responses_block_size", "server_pad_queries", + "server_pad_queries_block_size", "server_ipsecmod_enabled", "server_ipsecmod_ignore_bogus", "server_ipsecmod_hook", "server_ipsecmod_max_ttl", "server_ipsecmod_whitelist", "server_ipsecmod_strict", "server_edns_client_string", @@ -1521,11 +2199,11 @@ static const yytype_int16 yytoknum[] = 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, 550, 551, 552, 553, 554, - 555, 556, 557, 558 + 555, 556, 557, 558, 559, 560, 561, 562, 563 }; #endif -#define YYPACT_NINF (-291) +#define YYPACT_NINF (-296) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) @@ -1539,11 +2217,11 @@ static const yytype_int16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -291, 0, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, 287, -42, -38, -43, -21, -44, -11, -96, - -109, -290, -215, -240, -282, 3, 4, 13, 25, 26, + -296, 0, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, 292, -42, -38, -43, -21, -44, -11, -96, + -109, -295, -216, -245, -287, 3, 4, 13, 25, 26, 27, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 84, 85, 88, 89, 91, 93, @@ -1558,82 +2236,83 @@ static const yytype_int16 yypact[] = 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, 215, 216, 217, 218, 219, 220, 221, 223, 224, - 225, 226, 227, 230, 232, 234, 247, 248, 249, 250, - 251, 252, 253, 254, 256, 257, 258, 259, 260, 261, + 210, 212, 213, 214, 215, 216, 220, 221, 222, 223, + 224, 225, 226, 228, 229, 231, 232, 234, 235, 237, + 239, 252, 253, 254, 255, 256, 257, 258, 259, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 280, 281, 282, - 284, 285, 286, 288, 322, 323, 324, 325, 329, 330, - 331, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, 373, 374, - 375, 376, 377, 378, 379, -291, -291, -291, -291, -291, - -291, -291, -291, 380, 381, 385, 389, 390, 415, -291, - -291, -291, -291, -291, -291, -291, 416, 417, 426, 439, - 440, 441, 442, -291, -291, -291, -291, -291, -291, -291, - -291, 443, 444, 445, 446, 447, 448, 449, 450, -291, - -291, -291, -291, -291, -291, -291, -291, -291, 451, 452, - 453, 454, 455, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, 456, 457, 458, 498, 500, 516, - 517, 518, -291, -291, -291, -291, -291, -291, -291, -291, - -291, 519, 520, 521, 522, 523, 524, 525, 526, 533, - 534, 535, 536, 537, 538, 539, 541, 542, 543, 544, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - 545, -291, -291, 546, -291, -291, 547, 550, 553, 556, - 557, 566, 567, 568, 570, 571, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, 572, 573, 574, - 575, 576, 577, -291, -291, -291, -291, -291, -291, -291, - 581, 582, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, 583, 584, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, 585, 586, 587, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, 588, 589, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, 590, 591, 592, 593, 594, - 595, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, 596, -291, - -291, -291, -291, -291, -291, -291, -291, -291, 597, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, 598, -291, -291, 599, 600, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - 601, 602, 603, -291, -291, -291, -291, -291, -291, -291, - -291, -291 + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 285, 286, 287, 289, 290, 291, 293, 327, + 328, 329, 330, 334, 335, 336, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, 378, 379, + 380, 381, 382, 383, 384, -296, -296, -296, -296, -296, + -296, -296, -296, 385, 386, 390, 394, 395, 420, -296, + -296, -296, -296, -296, -296, -296, 421, 422, 431, 444, + 445, 446, 447, -296, -296, -296, -296, -296, -296, -296, + -296, 448, 449, 450, 451, 452, 453, 454, 455, -296, + -296, -296, -296, -296, -296, -296, -296, -296, 456, 457, + 458, 459, 460, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, 461, 462, 463, 503, 505, 522, + 523, 524, -296, -296, -296, -296, -296, -296, -296, -296, + -296, 525, 526, 527, 528, 529, 530, 531, 532, 543, + 544, 545, 546, 547, 548, 549, 551, 552, 553, 554, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + 555, -296, -296, 556, -296, -296, 557, 560, 563, 566, + 567, 576, 577, 578, 580, 581, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, 582, 583, 584, + 585, 586, 587, -296, -296, -296, -296, -296, -296, -296, + 591, 592, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, 593, 594, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, 595, 596, 597, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, 598, 599, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, 600, 601, 602, 603, 604, + 605, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, 606, -296, -296, -296, -296, -296, -296, + -296, -296, -296, 607, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + 608, -296, -296, 609, 610, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, 611, 612, 613, -296, -296, + -296, -296, -296, -296, -296, -296, -296 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1641,10 +2320,10 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_int16 yydefact[] = { - 2, 0, 1, 18, 19, 228, 238, 515, 575, 534, - 247, 589, 612, 257, 628, 273, 580, 3, 17, 21, - 230, 240, 249, 259, 275, 517, 536, 577, 582, 591, - 614, 630, 4, 5, 6, 10, 14, 15, 8, 9, + 2, 0, 1, 18, 19, 233, 243, 525, 585, 544, + 252, 599, 622, 262, 638, 278, 590, 3, 17, 21, + 235, 245, 254, 264, 280, 527, 546, 587, 592, 601, + 624, 640, 4, 5, 6, 10, 14, 15, 8, 9, 7, 16, 11, 12, 13, 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, @@ -1666,152 +2345,155 @@ static const yytype_int16 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, 20, 22, 23, 86, 89, 98, 195, 196, 24, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 37, 77, 25, 90, 91, 48, 70, 85, 26, 27, - 30, 31, 28, 29, 32, 33, 34, 35, 36, 121, - 207, 122, 124, 125, 126, 209, 214, 210, 221, 222, - 223, 224, 127, 128, 129, 130, 131, 132, 133, 191, - 87, 76, 102, 119, 120, 219, 216, 123, 38, 39, - 40, 41, 42, 78, 92, 93, 108, 64, 74, 65, - 199, 200, 103, 58, 59, 198, 60, 61, 227, 112, - 116, 137, 147, 174, 150, 220, 113, 71, 43, 44, - 45, 100, 138, 139, 140, 141, 46, 47, 49, 50, - 52, 53, 51, 145, 151, 54, 55, 56, 62, 81, - 117, 95, 146, 88, 170, 96, 97, 114, 115, 217, - 101, 57, 79, 82, 63, 66, 104, 105, 80, 171, - 106, 67, 68, 69, 208, 118, 184, 185, 186, 187, - 188, 189, 197, 107, 75, 109, 110, 111, 172, 72, - 73, 94, 83, 84, 99, 134, 135, 218, 136, 142, - 143, 144, 175, 176, 178, 180, 181, 179, 182, 192, - 148, 149, 154, 155, 152, 153, 156, 157, 159, 158, - 211, 213, 212, 173, 183, 201, 203, 202, 204, 205, - 206, 225, 226, 177, 190, 193, 194, 215, 0, 0, - 0, 0, 0, 0, 0, 229, 231, 232, 233, 235, - 236, 237, 234, 0, 0, 0, 0, 0, 0, 239, - 241, 242, 243, 244, 245, 246, 0, 0, 0, 0, - 0, 0, 0, 248, 250, 251, 254, 255, 252, 256, - 253, 0, 0, 0, 0, 0, 0, 0, 0, 258, - 260, 261, 262, 263, 267, 264, 265, 266, 0, 0, - 0, 0, 0, 278, 282, 283, 284, 285, 274, 276, - 277, 279, 280, 281, 0, 0, 0, 0, 0, 0, - 0, 0, 516, 518, 520, 519, 525, 521, 522, 523, - 524, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 20, 22, 23, 86, + 89, 98, 200, 201, 24, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 37, 77, 25, 90, 91, + 48, 70, 85, 26, 27, 30, 31, 28, 29, 32, + 33, 34, 35, 36, 121, 212, 122, 124, 125, 126, + 214, 219, 215, 226, 227, 228, 229, 127, 128, 129, + 130, 131, 132, 133, 196, 87, 76, 102, 119, 120, + 224, 221, 123, 38, 39, 40, 41, 42, 78, 92, + 93, 108, 64, 74, 65, 204, 205, 103, 58, 59, + 203, 60, 61, 232, 112, 116, 137, 147, 174, 150, + 225, 113, 71, 43, 44, 45, 100, 138, 139, 140, + 141, 46, 47, 49, 50, 52, 53, 51, 145, 151, + 54, 55, 56, 62, 81, 117, 95, 146, 88, 170, + 96, 97, 114, 115, 222, 101, 57, 79, 82, 63, + 66, 104, 105, 80, 171, 106, 67, 68, 69, 213, + 118, 188, 189, 190, 191, 192, 193, 194, 202, 107, + 75, 109, 110, 111, 172, 72, 73, 94, 83, 84, + 99, 134, 135, 223, 136, 142, 143, 144, 175, 176, + 178, 180, 181, 179, 182, 197, 148, 149, 154, 155, + 152, 153, 156, 157, 159, 158, 216, 218, 217, 173, + 183, 184, 185, 186, 187, 206, 208, 207, 209, 210, + 211, 230, 231, 177, 195, 198, 199, 220, 0, 0, + 0, 0, 0, 0, 0, 234, 236, 237, 238, 240, + 241, 242, 239, 0, 0, 0, 0, 0, 0, 244, + 246, 247, 248, 249, 250, 251, 0, 0, 0, 0, + 0, 0, 0, 253, 255, 256, 259, 260, 257, 261, + 258, 0, 0, 0, 0, 0, 0, 0, 0, 263, + 265, 266, 267, 268, 272, 269, 270, 271, 0, 0, + 0, 0, 0, 283, 287, 288, 289, 290, 279, 281, + 282, 284, 285, 286, 0, 0, 0, 0, 0, 0, + 0, 0, 526, 528, 530, 529, 535, 531, 532, 533, + 534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 535, 537, 539, 538, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 0, 576, 578, 0, 581, 583, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 590, 592, 593, 594, - 596, 597, 595, 598, 599, 600, 601, 0, 0, 0, - 0, 0, 0, 613, 615, 616, 617, 618, 619, 620, - 0, 0, 629, 631, 632, 287, 286, 293, 306, 304, - 316, 312, 313, 317, 314, 315, 318, 319, 320, 321, - 322, 352, 353, 354, 355, 356, 382, 383, 384, 390, - 391, 309, 392, 393, 396, 394, 395, 399, 400, 401, - 415, 367, 368, 370, 371, 402, 418, 361, 363, 419, - 425, 426, 427, 310, 381, 443, 444, 362, 438, 345, - 305, 357, 416, 422, 403, 0, 0, 447, 311, 288, - 344, 407, 289, 307, 308, 358, 359, 445, 405, 409, - 410, 290, 448, 385, 414, 346, 366, 420, 421, 424, - 437, 360, 441, 439, 440, 373, 380, 411, 412, 374, - 375, 404, 429, 347, 348, 351, 323, 325, 326, 327, - 328, 329, 336, 337, 338, 339, 340, 341, 342, 449, - 450, 452, 386, 387, 388, 389, 397, 398, 453, 454, - 455, 0, 0, 0, 406, 376, 378, 585, 464, 468, - 466, 465, 469, 467, 0, 0, 472, 473, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 408, 423, - 442, 477, 478, 377, 456, 0, 0, 0, 0, 0, - 0, 430, 431, 432, 433, 434, 435, 436, 586, 369, - 364, 428, 343, 291, 292, 365, 479, 481, 480, 482, - 483, 484, 324, 331, 474, 476, 475, 330, 0, 350, - 413, 451, 349, 379, 332, 333, 335, 334, 0, 486, - 372, 487, 488, 489, 493, 492, 490, 491, 494, 495, - 496, 497, 499, 498, 508, 0, 512, 513, 0, 0, - 514, 500, 506, 501, 502, 503, 505, 507, 504, 268, - 269, 270, 271, 272, 526, 528, 527, 530, 531, 532, - 533, 529, 556, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 557, 567, 568, 569, 570, 571, 572, 573, - 574, 579, 584, 602, 603, 604, 607, 605, 606, 608, - 609, 610, 611, 621, 622, 623, 624, 625, 626, 633, - 634, 417, 446, 463, 587, 588, 470, 471, 457, 458, - 0, 0, 0, 462, 627, 485, 509, 510, 511, 461, - 459, 460 + 545, 547, 549, 548, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 0, 586, 588, 0, 591, 593, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 600, 602, 603, 604, + 606, 607, 605, 608, 609, 610, 611, 0, 0, 0, + 0, 0, 0, 623, 625, 626, 627, 628, 629, 630, + 0, 0, 639, 641, 642, 292, 291, 298, 311, 309, + 321, 317, 318, 322, 319, 320, 323, 324, 325, 326, + 327, 357, 358, 359, 360, 361, 387, 388, 389, 395, + 396, 314, 397, 398, 401, 399, 400, 404, 405, 406, + 420, 372, 373, 375, 376, 407, 423, 366, 368, 424, + 430, 431, 432, 315, 386, 449, 450, 367, 444, 350, + 310, 362, 421, 427, 408, 0, 0, 453, 316, 293, + 349, 412, 294, 312, 313, 363, 364, 451, 410, 414, + 415, 295, 454, 390, 419, 351, 371, 425, 426, 429, + 443, 365, 447, 445, 446, 378, 385, 416, 417, 379, + 380, 409, 434, 352, 353, 356, 328, 330, 331, 332, + 333, 334, 341, 342, 343, 344, 345, 346, 347, 455, + 456, 458, 391, 392, 393, 394, 402, 403, 459, 460, + 461, 0, 0, 0, 411, 381, 383, 595, 470, 474, + 472, 471, 475, 473, 0, 0, 478, 479, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 413, 428, + 448, 483, 484, 382, 462, 0, 0, 0, 0, 0, + 0, 435, 436, 437, 438, 439, 440, 441, 442, 596, + 374, 369, 433, 348, 296, 297, 370, 485, 486, 487, + 488, 489, 491, 490, 492, 493, 494, 329, 336, 480, + 482, 481, 335, 0, 355, 418, 457, 354, 384, 337, + 338, 340, 339, 0, 496, 377, 497, 498, 499, 503, + 502, 500, 501, 504, 505, 506, 507, 509, 508, 518, + 0, 522, 523, 0, 0, 524, 510, 516, 511, 512, + 513, 515, 517, 514, 273, 274, 275, 276, 277, 536, + 538, 537, 540, 541, 542, 543, 539, 566, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 567, 577, 578, + 579, 580, 581, 582, 583, 584, 589, 594, 612, 613, + 614, 617, 615, 616, 618, 619, 620, 621, 631, 632, + 633, 634, 635, 636, 643, 644, 422, 452, 469, 597, + 598, 476, 477, 463, 464, 0, 0, 0, 468, 637, + 495, 519, 520, 521, 467, 465, 466 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, 578, 579, 580, 604, 605, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291 + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, 588, 589, 590, 614, + 615, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, + -296, -296, -296, -296 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 17, 18, 19, 32, 251, 20, 33, 465, - 21, 34, 479, 22, 35, 493, 23, 36, 509, 523, - 524, 525, 526, 527, 24, 37, 528, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 466, 467, - 468, 469, 470, 471, 472, 480, 481, 482, 483, 484, - 485, 510, 511, 512, 513, 514, 515, 516, 517, 494, - 495, 496, 497, 498, 499, 500, 25, 38, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 26, 39, 570, - 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, - 581, 582, 583, 584, 585, 586, 587, 588, 589, 27, - 40, 591, 592, 28, 41, 594, 595, 453, 454, 455, - 456, 29, 42, 606, 607, 608, 609, 610, 611, 612, - 613, 614, 615, 616, 30, 43, 623, 624, 625, 626, - 627, 628, 629, 457, 31, 44, 632, 633, 634 + -1, 1, 17, 18, 19, 32, 256, 20, 33, 475, + 21, 34, 489, 22, 35, 503, 23, 36, 519, 533, + 534, 535, 536, 537, 24, 37, 538, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 476, 477, 478, 479, 480, 481, 482, + 490, 491, 492, 493, 494, 495, 520, 521, 522, 523, + 524, 525, 526, 527, 504, 505, 506, 507, 508, 509, + 510, 25, 38, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 26, 39, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 27, 40, 601, 602, 28, 41, + 604, 605, 463, 464, 465, 466, 29, 42, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 30, + 43, 633, 634, 635, 636, 637, 638, 639, 467, 31, + 44, 642, 643, 644 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1819,79 +2501,80 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 2, 501, 486, 458, 590, 459, 460, 473, 630, 631, - 593, 3, 4, 635, 636, 474, 475, 617, 618, 619, - 620, 621, 622, 637, 501, 596, 597, 598, 599, 600, - 601, 602, 603, 604, 605, 638, 639, 640, 487, 488, - 641, 642, 643, 644, 645, 646, 5, 647, 648, 649, - 650, 651, 6, 652, 653, 654, 655, 656, 657, 658, - 659, 660, 661, 489, 662, 663, 461, 551, 552, 553, - 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, - 564, 565, 566, 567, 568, 569, 534, 535, 536, 537, - 538, 539, 540, 541, 664, 665, 7, 462, 666, 667, - 476, 668, 477, 669, 670, 671, 672, 463, 673, 674, - 675, 676, 8, 677, 678, 679, 680, 681, 682, 683, - 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 2, 511, 496, 468, 600, 469, 470, 483, 640, 641, + 603, 3, 4, 645, 646, 484, 485, 627, 628, 629, + 630, 631, 632, 647, 511, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 648, 649, 650, 497, 498, + 651, 652, 653, 654, 655, 656, 5, 657, 658, 659, + 660, 661, 6, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 499, 672, 673, 471, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 544, 545, 546, 547, + 548, 549, 550, 551, 674, 675, 7, 472, 676, 677, + 486, 678, 487, 679, 680, 681, 682, 473, 683, 684, + 685, 686, 8, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, - 490, 491, 704, 705, 706, 707, 708, 709, 710, 711, - 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, - 722, 723, 9, 724, 725, 726, 727, 728, 729, 730, - 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, - 492, 741, 742, 743, 744, 745, 746, 747, 748, 749, - 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 500, 501, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 9, 734, 735, 736, 737, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, + 502, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, - 780, 10, 503, 504, 505, 781, 782, 783, 784, 785, - 786, 787, 508, 788, 789, 790, 791, 792, 464, 11, - 793, 478, 794, 502, 795, 503, 504, 505, 506, 507, - 518, 519, 520, 521, 522, 508, 12, 796, 797, 798, - 799, 800, 801, 802, 803, 13, 804, 805, 806, 807, - 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, - 818, 819, 820, 821, 822, 823, 824, 825, 826, 14, - 827, 828, 829, 15, 830, 831, 832, 0, 833, 16, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 834, 835, 836, 837, 77, 78, 79, 838, - 839, 840, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 841, 842, 843, 844, 845, 846, 847, - 848, 849, 121, 122, 123, 850, 124, 125, 126, 851, - 852, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 853, 854, 855, 151, 152, - 153, 154, 155, 156, 157, 158, 856, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 857, - 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, - 868, 869, 870, 871, 872, 873, 874, 875, 876, 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, 877, 210, - 878, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 879, 880, 881, 882, - 883, 884, 885, 886, 887, 888, 889, 226, 227, 228, - 229, 230, 231, 890, 891, 892, 893, 894, 895, 896, - 232, 897, 898, 899, 900, 901, 902, 903, 233, 234, - 904, 235, 236, 905, 237, 238, 906, 907, 239, 240, - 241, 242, 243, 244, 245, 246, 908, 909, 910, 247, - 911, 912, 913, 914, 915, 916, 917, 918, 248, 249, - 250, 919, 920, 921, 922, 923, 924, 925, 926, 927, - 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, - 938, 939, 940, 941, 0, 529, 530, 531, 0, 0, + 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, + 790, 10, 791, 792, 793, 794, 795, 513, 514, 515, + 796, 797, 798, 799, 800, 801, 802, 518, 803, 804, + 11, 805, 806, 474, 807, 808, 488, 809, 512, 810, + 513, 514, 515, 516, 517, 528, 529, 530, 531, 532, + 518, 12, 811, 812, 813, 814, 815, 816, 817, 818, + 13, 819, 820, 821, 822, 823, 824, 825, 826, 827, + 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, + 838, 839, 840, 841, 14, 842, 843, 844, 15, 845, + 846, 847, 0, 848, 16, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 849, 850, 851, + 852, 77, 78, 79, 853, 854, 855, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 856, 857, + 858, 859, 860, 861, 862, 863, 864, 121, 122, 123, + 865, 124, 125, 126, 866, 867, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 868, 869, 870, 151, 152, 153, 154, 155, 156, 157, + 158, 871, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 872, 873, 874, 875, 876, 877, + 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, + 888, 889, 890, 891, 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, 892, 210, 893, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 894, 895, 896, 897, 898, 899, 900, 901, + 902, 903, 904, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 905, 906, 907, 908, 909, 910, 911, + 237, 912, 913, 914, 915, 916, 917, 918, 238, 239, + 919, 240, 241, 920, 242, 243, 921, 922, 244, 245, + 246, 247, 248, 249, 250, 251, 923, 924, 925, 252, + 926, 927, 928, 929, 930, 931, 932, 933, 253, 254, + 255, 934, 935, 936, 937, 938, 939, 940, 941, 942, + 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, + 953, 954, 955, 956, 0, 539, 540, 541, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 532, 533 + 0, 542, 543 }; static const yytype_int16 yycheck[] = { - 0, 45, 45, 45, 113, 47, 48, 45, 290, 291, - 300, 11, 12, 10, 10, 53, 54, 257, 258, 259, - 260, 261, 262, 10, 45, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 10, 10, 10, 81, 82, + 0, 45, 45, 45, 113, 47, 48, 45, 295, 296, + 305, 11, 12, 10, 10, 53, 54, 262, 263, 264, + 265, 266, 267, 10, 45, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 10, 10, 10, 81, 82, 10, 10, 10, 10, 10, 10, 46, 10, 10, 10, 10, 10, 52, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 106, 10, 10, 108, 163, 164, 165, @@ -1910,44 +2593,45 @@ static const yytype_int16 yycheck[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 221, 266, 267, 268, 10, 10, 10, 10, 10, - 10, 10, 276, 10, 10, 10, 10, 10, 280, 239, - 10, 279, 10, 264, 10, 266, 267, 268, 269, 270, - 294, 295, 296, 297, 298, 276, 256, 10, 10, 10, - 10, 10, 10, 10, 10, 265, 10, 10, 10, 10, + 10, 221, 10, 10, 10, 10, 10, 271, 272, 273, + 10, 10, 10, 10, 10, 10, 10, 281, 10, 10, + 240, 10, 10, 285, 10, 10, 284, 10, 269, 10, + 271, 272, 273, 274, 275, 299, 300, 301, 302, 303, + 281, 261, 10, 10, 10, 10, 10, 10, 10, 10, + 270, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 289, - 10, 10, 10, 293, 10, 10, 10, -1, 10, 299, - 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, 40, 41, 42, - 43, 44, 10, 10, 10, 10, 49, 50, 51, 10, - 10, 10, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 105, 106, 107, 10, 109, 110, 111, 10, - 10, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 10, 10, 10, 141, 142, - 143, 144, 145, 146, 147, 148, 10, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 10, + 10, 10, 10, 10, 294, 10, 10, 10, 298, 10, + 10, 10, -1, 10, 304, 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, 40, 41, 42, 43, 44, 10, 10, 10, + 10, 49, 50, 51, 10, 10, 10, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 105, 106, 107, + 10, 109, 110, 111, 10, 10, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 10, 10, 10, 141, 142, 143, 144, 145, 146, 147, + 148, 10, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 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, 10, 222, - 10, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 250, 251, 252, - 253, 254, 255, 10, 10, 10, 10, 10, 10, 10, - 263, 10, 10, 10, 10, 10, 10, 10, 271, 272, - 10, 274, 275, 10, 277, 278, 10, 10, 281, 282, - 283, 284, 285, 286, 287, 288, 10, 10, 10, 292, - 10, 10, 10, 10, 10, 10, 10, 10, 301, 302, - 303, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 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, 10, 222, 10, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 10, 10, 10, 10, 10, 10, 10, + 268, 10, 10, 10, 10, 10, 10, 10, 276, 277, + 10, 279, 280, 10, 282, 283, 10, 10, 286, 287, + 288, 289, 290, 291, 292, 293, 10, 10, 10, 297, + 10, 10, 10, 10, 10, 10, 10, 10, 306, 307, + 308, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, -1, 37, 37, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -1959,11 +2643,11 @@ static const yytype_int16 yycheck[] = symbol of state STATE-NUM. */ static const yytype_int16 yystos[] = { - 0, 305, 0, 11, 12, 46, 52, 96, 112, 162, - 221, 239, 256, 265, 289, 293, 299, 306, 307, 308, - 311, 314, 317, 320, 328, 560, 571, 593, 597, 605, - 618, 628, 309, 312, 315, 318, 321, 329, 561, 572, - 594, 598, 606, 619, 629, 13, 14, 15, 16, 17, + 0, 310, 0, 11, 12, 46, 52, 96, 112, 162, + 221, 240, 261, 270, 294, 298, 304, 311, 312, 313, + 316, 319, 322, 325, 333, 570, 581, 603, 607, 615, + 628, 638, 314, 317, 320, 323, 326, 334, 571, 582, + 604, 608, 616, 629, 639, 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, 40, 41, 42, 43, 44, 49, 50, 51, @@ -1981,10 +2665,10 @@ static const yytype_int16 yystos[] = 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 222, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 250, 251, 252, 253, - 254, 255, 263, 271, 272, 274, 275, 277, 278, 281, - 282, 283, 284, 285, 286, 287, 288, 292, 301, 302, - 303, 310, 331, 332, 333, 334, 335, 336, 337, 338, + 233, 234, 235, 236, 237, 238, 239, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 268, 276, 277, + 279, 280, 282, 283, 286, 287, 288, 289, 290, 291, + 292, 293, 297, 306, 307, 308, 315, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, @@ -2004,25 +2688,26 @@ static const yytype_int16 yystos[] = 499, 500, 501, 502, 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, 601, 602, 603, 604, 627, 45, 47, - 48, 108, 139, 149, 280, 313, 532, 533, 534, 535, - 536, 537, 538, 45, 53, 54, 138, 140, 279, 316, - 539, 540, 541, 542, 543, 544, 45, 81, 82, 106, - 183, 184, 223, 319, 553, 554, 555, 556, 557, 558, - 559, 45, 264, 266, 267, 268, 269, 270, 276, 322, - 545, 546, 547, 548, 549, 550, 551, 552, 294, 295, - 296, 297, 298, 323, 324, 325, 326, 327, 330, 545, - 546, 547, 548, 549, 97, 98, 99, 100, 101, 102, - 103, 104, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 611, 612, 613, 614, 637, 45, 47, + 48, 108, 139, 149, 285, 318, 542, 543, 544, 545, + 546, 547, 548, 45, 53, 54, 138, 140, 284, 321, + 549, 550, 551, 552, 553, 554, 45, 81, 82, 106, + 183, 184, 223, 324, 563, 564, 565, 566, 567, 568, + 569, 45, 269, 271, 272, 273, 274, 275, 281, 327, + 555, 556, 557, 558, 559, 560, 561, 562, 299, 300, + 301, 302, 303, 328, 329, 330, 331, 332, 335, 555, + 556, 557, 558, 559, 97, 98, 99, 100, 101, 102, + 103, 104, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, - 113, 595, 596, 300, 599, 600, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 607, 608, 609, 610, - 611, 612, 613, 614, 615, 616, 617, 257, 258, 259, - 260, 261, 262, 620, 621, 622, 623, 624, 625, 626, - 290, 291, 630, 631, 632, 10, 10, 10, 10, 10, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 113, 605, 606, 305, 609, 610, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 262, 263, 264, + 265, 266, 267, 630, 631, 632, 633, 634, 635, 636, + 295, 296, 640, 641, 642, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, @@ -2053,41 +2738,41 @@ static const yytype_int16 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 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_int16 yyr1[] = { - 0, 304, 305, 305, 306, 306, 306, 306, 306, 306, - 306, 306, 306, 306, 306, 306, 306, 306, 307, 308, - 309, 309, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 311, 312, - 312, 313, 313, 313, 313, 313, 313, 313, 314, 315, - 315, 316, 316, 316, 316, 316, 316, 317, 318, 318, - 319, 319, 319, 319, 319, 319, 319, 320, 321, 321, - 322, 322, 322, 322, 322, 322, 322, 322, 323, 324, - 325, 326, 327, 328, 329, 329, 330, 330, 330, 330, - 330, 330, 330, 330, 330, 330, 331, 332, 333, 334, + 0, 309, 310, 310, 311, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 311, 312, 313, + 314, 314, 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 316, 317, 317, 318, 318, 318, 318, + 318, 318, 318, 319, 320, 320, 321, 321, 321, 321, + 321, 321, 322, 323, 323, 324, 324, 324, 324, 324, + 324, 324, 325, 326, 326, 327, 327, 327, 327, 327, + 327, 327, 327, 328, 329, 330, 331, 332, 333, 334, + 334, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, @@ -2110,19 +2795,20 @@ static const yytype_int16 yyr1[] = 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, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 561, 562, 562, - 562, 562, 562, 562, 562, 562, 563, 564, 565, 566, - 567, 568, 569, 570, 571, 572, 572, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 574, 575, 576, 577, - 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, - 588, 589, 590, 591, 592, 593, 594, 594, 595, 596, - 597, 598, 598, 599, 600, 601, 602, 603, 604, 605, - 606, 606, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 608, 609, 610, 611, 612, 613, 614, 615, - 616, 617, 618, 619, 619, 620, 620, 620, 620, 620, - 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, - 629, 630, 630, 631, 632 + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 571, 572, 572, + 572, 572, 572, 572, 572, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 582, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 604, 605, 606, + 607, 608, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 616, 617, 617, 617, 617, 617, 617, 617, 617, + 617, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 629, 630, 630, 630, 630, 630, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 639, 640, 640, 641, 642 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -2150,13 +2836,14 @@ static const yytype_int8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 0, 1, 1, 1, 1, 1, 1, 1, 2, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 2, 2, 2, 1, 2, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, + 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -2169,13 +2856,13 @@ static const yytype_int8 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, 2, 2, 3, 2, 2, + 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 3, 3, 4, - 4, 4, 3, 3, 2, 2, 2, 2, 2, 2, - 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 3, 4, 4, 4, 3, 3, + 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, @@ -2403,7 +3090,7 @@ yydestruct (const char *yymsg, } -/* Lookahead token kind. */ +/* The lookahead symbol. */ int yychar; /* The semantic value of the lookahead symbol. */ @@ -2421,30 +3108,34 @@ int yynerrs; int yyparse (void) { - yy_state_fast_t yystate = 0; + yy_state_fast_t yystate; /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus = 0; + int yyerrstatus; - /* Refer to the stacks through separate pointers, to allow yyoverflow + /* The stacks and their tools: + 'yyss': related to states. + 'yyvs': related to semantic values. + + Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* Their size. */ - YYPTRDIFF_T yystacksize = YYINITDEPTH; + YYPTRDIFF_T yystacksize; - /* The state stack: array, bottom, top. */ + /* The state stack. */ yy_state_t yyssa[YYINITDEPTH]; - yy_state_t *yyss = yyssa; - yy_state_t *yyssp = yyss; + yy_state_t *yyss; + yy_state_t *yyssp; - /* The semantic value stack: array, bottom, top. */ + /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp = yyvs; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; int yyn; /* The return value of yyparse. */ int yyresult; - /* Lookahead symbol kind. */ + /* Lookahead token as an internal (translated) token number. */ yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ @@ -2458,6 +3149,15 @@ yyparse (void) Keep to zero when no symbol should be popped. */ int yylen = 0; + yynerrs = 0; + yystate = 0; + yyerrstatus = 0; + + yystacksize = YYINITDEPTH; + yyssp = yyss = yyssa; + yyvsp = yyvs = yyvsa; + + YYDPRINTF ((stderr, "Starting parse\n")); yychar = YYEMPTY; /* Cause a token to be read. */ @@ -2658,24 +3358,24 @@ yyreduce: YY_REDUCE_PRINT (yyn); switch (yyn) { - case 18: /* force_toplevel: VAR_FORCE_TOPLEVEL */ -#line 195 "./util/configparser.y" + case 18: +#line 197 "./util/configparser.y" { OUTYY(("\nP(force-toplevel)\n")); } -#line 2667 "util/configparser.c" +#line 3367 "util/configparser.c" break; - case 19: /* serverstart: VAR_SERVER */ -#line 201 "./util/configparser.y" + case 19: +#line 203 "./util/configparser.y" { OUTYY(("\nP(server:)\n")); } -#line 2675 "util/configparser.c" +#line 3375 "util/configparser.c" break; - case 228: /* stubstart: VAR_STUB_ZONE */ -#line 299 "./util/configparser.y" + case 233: +#line 305 "./util/configparser.y" { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -2686,11 +3386,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2690 "util/configparser.c" +#line 3390 "util/configparser.c" break; - case 238: /* forwardstart: VAR_FORWARD_ZONE */ -#line 316 "./util/configparser.y" + case 243: +#line 322 "./util/configparser.y" { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -2701,11 +3401,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2705 "util/configparser.c" +#line 3405 "util/configparser.c" break; - case 247: /* viewstart: VAR_VIEW */ -#line 333 "./util/configparser.y" + case 252: +#line 339 "./util/configparser.y" { struct config_view* s; OUTYY(("\nP(view:)\n")); @@ -2718,11 +3418,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2722 "util/configparser.c" +#line 3422 "util/configparser.c" break; - case 257: /* authstart: VAR_AUTH_ZONE */ -#line 352 "./util/configparser.y" + case 262: +#line 358 "./util/configparser.y" { struct config_auth* s; OUTYY(("\nP(auth_zone:)\n")); @@ -2738,11 +3438,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2742 "util/configparser.c" +#line 3442 "util/configparser.c" break; - case 268: /* rpz_tag: VAR_TAGS STRING_ARG */ -#line 376 "./util/configparser.y" + case 273: +#line 382 "./util/configparser.y" { uint8_t* bitlist; size_t len = 0; @@ -2759,11 +3459,11 @@ yyreduce: } } -#line 2763 "util/configparser.c" +#line 3463 "util/configparser.c" break; - case 269: /* rpz_action_override: VAR_RPZ_ACTION_OVERRIDE STRING_ARG */ -#line 395 "./util/configparser.y" + case 274: +#line 401 "./util/configparser.y" { OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "nxdomain")!=0 && strcmp((yyvsp[0].str), "nodata")!=0 && @@ -2778,21 +3478,21 @@ yyreduce: cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str); } } -#line 2782 "util/configparser.c" +#line 3482 "util/configparser.c" break; - case 270: /* rpz_cname_override: VAR_RPZ_CNAME_OVERRIDE STRING_ARG */ -#line 412 "./util/configparser.y" + case 275: +#line 418 "./util/configparser.y" { OUTYY(("P(rpz_cname_override:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->rpz_cname); cfg_parser->cfg->auths->rpz_cname = (yyvsp[0].str); } -#line 2792 "util/configparser.c" +#line 3492 "util/configparser.c" break; - case 271: /* rpz_log: VAR_RPZ_LOG STRING_ARG */ -#line 420 "./util/configparser.y" + case 276: +#line 426 "./util/configparser.y" { OUTYY(("P(rpz_log:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2800,21 +3500,21 @@ yyreduce: else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2804 "util/configparser.c" +#line 3504 "util/configparser.c" break; - case 272: /* rpz_log_name: VAR_RPZ_LOG_NAME STRING_ARG */ -#line 430 "./util/configparser.y" + case 277: +#line 436 "./util/configparser.y" { OUTYY(("P(rpz_log_name:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->rpz_log_name); cfg_parser->cfg->auths->rpz_log_name = (yyvsp[0].str); } -#line 2814 "util/configparser.c" +#line 3514 "util/configparser.c" break; - case 273: /* rpzstart: VAR_RPZ */ -#line 438 "./util/configparser.y" + case 278: +#line 444 "./util/configparser.y" { struct config_auth* s; OUTYY(("\nP(rpz:)\n")); @@ -2830,11 +3530,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2834 "util/configparser.c" +#line 3534 "util/configparser.c" break; - case 286: /* server_num_threads: VAR_NUM_THREADS STRING_ARG */ -#line 461 "./util/configparser.y" + case 291: +#line 467 "./util/configparser.y" { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2842,11 +3542,11 @@ yyreduce: else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2846 "util/configparser.c" +#line 3546 "util/configparser.c" break; - case 287: /* server_verbosity: VAR_VERBOSITY STRING_ARG */ -#line 470 "./util/configparser.y" + case 292: +#line 476 "./util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2854,11 +3554,11 @@ yyreduce: else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2858 "util/configparser.c" +#line 3558 "util/configparser.c" break; - case 288: /* server_statistics_interval: VAR_STATISTICS_INTERVAL STRING_ARG */ -#line 479 "./util/configparser.y" + case 293: +#line 485 "./util/configparser.y" { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) @@ -2868,11 +3568,11 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2872 "util/configparser.c" +#line 3572 "util/configparser.c" break; - case 289: /* server_statistics_cumulative: VAR_STATISTICS_CUMULATIVE STRING_ARG */ -#line 490 "./util/configparser.y" + case 294: +#line 496 "./util/configparser.y" { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2880,11 +3580,11 @@ yyreduce: else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2884 "util/configparser.c" +#line 3584 "util/configparser.c" break; - case 290: /* server_extended_statistics: VAR_EXTENDED_STATISTICS STRING_ARG */ -#line 499 "./util/configparser.y" + case 295: +#line 505 "./util/configparser.y" { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2892,11 +3592,11 @@ yyreduce: else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2896 "util/configparser.c" +#line 3596 "util/configparser.c" break; - case 291: /* server_shm_enable: VAR_SHM_ENABLE STRING_ARG */ -#line 508 "./util/configparser.y" + case 296: +#line 514 "./util/configparser.y" { OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2904,11 +3604,11 @@ yyreduce: else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2908 "util/configparser.c" +#line 3608 "util/configparser.c" break; - case 292: /* server_shm_key: VAR_SHM_KEY STRING_ARG */ -#line 517 "./util/configparser.y" + case 297: +#line 523 "./util/configparser.y" { OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) @@ -2918,11 +3618,11 @@ yyreduce: else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2922 "util/configparser.c" +#line 3622 "util/configparser.c" break; - case 293: /* server_port: VAR_PORT STRING_ARG */ -#line 528 "./util/configparser.y" + case 298: +#line 534 "./util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2930,11 +3630,11 @@ yyreduce: else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2934 "util/configparser.c" +#line 3634 "util/configparser.c" break; - case 294: /* server_send_client_subnet: VAR_SEND_CLIENT_SUBNET STRING_ARG */ -#line 537 "./util/configparser.y" + case 299: +#line 543 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str))); @@ -2945,11 +3645,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 2949 "util/configparser.c" +#line 3649 "util/configparser.c" break; - case 295: /* server_client_subnet_zone: VAR_CLIENT_SUBNET_ZONE STRING_ARG */ -#line 549 "./util/configparser.y" + case 300: +#line 555 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str))); @@ -2961,11 +3661,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 2965 "util/configparser.c" +#line 3665 "util/configparser.c" break; - case 296: /* server_client_subnet_always_forward: VAR_CLIENT_SUBNET_ALWAYS_FORWARD STRING_ARG */ -#line 563 "./util/configparser.y" + case 301: +#line 569 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str))); @@ -2979,11 +3679,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2983 "util/configparser.c" +#line 3683 "util/configparser.c" break; - case 297: /* server_client_subnet_opcode: VAR_CLIENT_SUBNET_OPCODE STRING_ARG */ -#line 578 "./util/configparser.y" + case 302: +#line 584 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str))); @@ -2993,11 +3693,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2997 "util/configparser.c" +#line 3697 "util/configparser.c" break; - case 298: /* server_max_client_subnet_ipv4: VAR_MAX_CLIENT_SUBNET_IPV4 STRING_ARG */ -#line 589 "./util/configparser.y" + case 303: +#line 595 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -3013,11 +3713,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3017 "util/configparser.c" +#line 3717 "util/configparser.c" break; - case 299: /* server_max_client_subnet_ipv6: VAR_MAX_CLIENT_SUBNET_IPV6 STRING_ARG */ -#line 606 "./util/configparser.y" + case 304: +#line 612 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -3033,11 +3733,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3037 "util/configparser.c" +#line 3737 "util/configparser.c" break; - case 300: /* server_min_client_subnet_ipv4: VAR_MIN_CLIENT_SUBNET_IPV4 STRING_ARG */ -#line 623 "./util/configparser.y" + case 305: +#line 629 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -3053,11 +3753,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3057 "util/configparser.c" +#line 3757 "util/configparser.c" break; - case 301: /* server_min_client_subnet_ipv6: VAR_MIN_CLIENT_SUBNET_IPV6 STRING_ARG */ -#line 640 "./util/configparser.y" + case 306: +#line 646 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -3073,11 +3773,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3077 "util/configparser.c" +#line 3777 "util/configparser.c" break; - case 302: /* server_max_ecs_tree_size_ipv4: VAR_MAX_ECS_TREE_SIZE_IPV4 STRING_ARG */ -#line 657 "./util/configparser.y" + case 307: +#line 663 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str))); @@ -3091,11 +3791,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3095 "util/configparser.c" +#line 3795 "util/configparser.c" break; - case 303: /* server_max_ecs_tree_size_ipv6: VAR_MAX_ECS_TREE_SIZE_IPV6 STRING_ARG */ -#line 672 "./util/configparser.y" + case 308: +#line 678 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str))); @@ -3109,11 +3809,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3113 "util/configparser.c" +#line 3813 "util/configparser.c" break; - case 304: /* server_interface: VAR_INTERFACE STRING_ARG */ -#line 687 "./util/configparser.y" + case 309: +#line 693 "./util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -3125,11 +3825,11 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 3129 "util/configparser.c" +#line 3829 "util/configparser.c" break; - case 305: /* server_outgoing_interface: VAR_OUTGOING_INTERFACE STRING_ARG */ -#line 700 "./util/configparser.y" + case 310: +#line 706 "./util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -3143,11 +3843,11 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 3147 "util/configparser.c" +#line 3847 "util/configparser.c" break; - case 306: /* server_outgoing_range: VAR_OUTGOING_RANGE STRING_ARG */ -#line 715 "./util/configparser.y" + case 311: +#line 721 "./util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3155,11 +3855,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3159 "util/configparser.c" +#line 3859 "util/configparser.c" break; - case 307: /* server_outgoing_port_permit: VAR_OUTGOING_PORT_PERMIT STRING_ARG */ -#line 724 "./util/configparser.y" + case 312: +#line 730 "./util/configparser.y" { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 1, @@ -3167,11 +3867,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3171 "util/configparser.c" +#line 3871 "util/configparser.c" break; - case 308: /* server_outgoing_port_avoid: VAR_OUTGOING_PORT_AVOID STRING_ARG */ -#line 733 "./util/configparser.y" + case 313: +#line 739 "./util/configparser.y" { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 0, @@ -3179,11 +3879,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3183 "util/configparser.c" +#line 3883 "util/configparser.c" break; - case 309: /* server_outgoing_num_tcp: VAR_OUTGOING_NUM_TCP STRING_ARG */ -#line 742 "./util/configparser.y" + case 314: +#line 748 "./util/configparser.y" { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3191,11 +3891,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3195 "util/configparser.c" +#line 3895 "util/configparser.c" break; - case 310: /* server_incoming_num_tcp: VAR_INCOMING_NUM_TCP STRING_ARG */ -#line 751 "./util/configparser.y" + case 315: +#line 757 "./util/configparser.y" { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3203,11 +3903,11 @@ yyreduce: else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3207 "util/configparser.c" +#line 3907 "util/configparser.c" break; - case 311: /* server_interface_automatic: VAR_INTERFACE_AUTOMATIC STRING_ARG */ -#line 760 "./util/configparser.y" + case 316: +#line 766 "./util/configparser.y" { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3215,11 +3915,11 @@ yyreduce: else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3219 "util/configparser.c" +#line 3919 "util/configparser.c" break; - case 312: /* server_do_ip4: VAR_DO_IP4 STRING_ARG */ -#line 769 "./util/configparser.y" + case 317: +#line 775 "./util/configparser.y" { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3227,11 +3927,11 @@ yyreduce: else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3231 "util/configparser.c" +#line 3931 "util/configparser.c" break; - case 313: /* server_do_ip6: VAR_DO_IP6 STRING_ARG */ -#line 778 "./util/configparser.y" + case 318: +#line 784 "./util/configparser.y" { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3239,11 +3939,11 @@ yyreduce: else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3243 "util/configparser.c" +#line 3943 "util/configparser.c" break; - case 314: /* server_do_udp: VAR_DO_UDP STRING_ARG */ -#line 787 "./util/configparser.y" + case 319: +#line 793 "./util/configparser.y" { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3251,11 +3951,11 @@ yyreduce: else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3255 "util/configparser.c" +#line 3955 "util/configparser.c" break; - case 315: /* server_do_tcp: VAR_DO_TCP STRING_ARG */ -#line 796 "./util/configparser.y" + case 320: +#line 802 "./util/configparser.y" { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3263,11 +3963,11 @@ yyreduce: else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3267 "util/configparser.c" +#line 3967 "util/configparser.c" break; - case 316: /* server_prefer_ip4: VAR_PREFER_IP4 STRING_ARG */ -#line 805 "./util/configparser.y" + case 321: +#line 811 "./util/configparser.y" { OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3275,11 +3975,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3279 "util/configparser.c" +#line 3979 "util/configparser.c" break; - case 317: /* server_prefer_ip6: VAR_PREFER_IP6 STRING_ARG */ -#line 814 "./util/configparser.y" + case 322: +#line 820 "./util/configparser.y" { OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3287,11 +3987,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3291 "util/configparser.c" +#line 3991 "util/configparser.c" break; - case 318: /* server_tcp_mss: VAR_TCP_MSS STRING_ARG */ -#line 823 "./util/configparser.y" + case 323: +#line 829 "./util/configparser.y" { OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3299,11 +3999,11 @@ yyreduce: else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3303 "util/configparser.c" +#line 4003 "util/configparser.c" break; - case 319: /* server_outgoing_tcp_mss: VAR_OUTGOING_TCP_MSS STRING_ARG */ -#line 832 "./util/configparser.y" + case 324: +#line 838 "./util/configparser.y" { OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3311,11 +4011,11 @@ yyreduce: else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3315 "util/configparser.c" +#line 4015 "util/configparser.c" break; - case 320: /* server_tcp_idle_timeout: VAR_TCP_IDLE_TIMEOUT STRING_ARG */ -#line 841 "./util/configparser.y" + case 325: +#line 847 "./util/configparser.y" { OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3327,11 +4027,11 @@ yyreduce: else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3331 "util/configparser.c" +#line 4031 "util/configparser.c" break; - case 321: /* server_tcp_keepalive: VAR_EDNS_TCP_KEEPALIVE STRING_ARG */ -#line 854 "./util/configparser.y" + case 326: +#line 860 "./util/configparser.y" { OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3339,11 +4039,11 @@ yyreduce: else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3343 "util/configparser.c" +#line 4043 "util/configparser.c" break; - case 322: /* server_tcp_keepalive_timeout: VAR_EDNS_TCP_KEEPALIVE_TIMEOUT STRING_ARG */ -#line 863 "./util/configparser.y" + case 327: +#line 869 "./util/configparser.y" { OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3355,11 +4055,11 @@ yyreduce: else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3359 "util/configparser.c" +#line 4059 "util/configparser.c" break; - case 323: /* server_tcp_upstream: VAR_TCP_UPSTREAM STRING_ARG */ -#line 876 "./util/configparser.y" + case 328: +#line 882 "./util/configparser.y" { OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3367,11 +4067,11 @@ yyreduce: else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3371 "util/configparser.c" +#line 4071 "util/configparser.c" break; - case 324: /* server_udp_upstream_without_downstream: VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM STRING_ARG */ -#line 885 "./util/configparser.y" + case 329: +#line 891 "./util/configparser.y" { OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3379,11 +4079,11 @@ yyreduce: else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3383 "util/configparser.c" +#line 4083 "util/configparser.c" break; - case 325: /* server_ssl_upstream: VAR_SSL_UPSTREAM STRING_ARG */ -#line 894 "./util/configparser.y" + case 330: +#line 900 "./util/configparser.y" { OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3391,31 +4091,31 @@ yyreduce: else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3395 "util/configparser.c" +#line 4095 "util/configparser.c" break; - case 326: /* server_ssl_service_key: VAR_SSL_SERVICE_KEY STRING_ARG */ -#line 903 "./util/configparser.y" + case 331: +#line 909 "./util/configparser.y" { 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 3405 "util/configparser.c" +#line 4105 "util/configparser.c" break; - case 327: /* server_ssl_service_pem: VAR_SSL_SERVICE_PEM STRING_ARG */ -#line 910 "./util/configparser.y" + case 332: +#line 916 "./util/configparser.y" { 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 3415 "util/configparser.c" +#line 4115 "util/configparser.c" break; - case 328: /* server_ssl_port: VAR_SSL_PORT STRING_ARG */ -#line 917 "./util/configparser.y" + case 333: +#line 923 "./util/configparser.y" { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3423,21 +4123,21 @@ yyreduce: else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3427 "util/configparser.c" +#line 4127 "util/configparser.c" break; - case 329: /* server_tls_cert_bundle: VAR_TLS_CERT_BUNDLE STRING_ARG */ -#line 926 "./util/configparser.y" + case 334: +#line 932 "./util/configparser.y" { OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_cert_bundle); cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str); } -#line 3437 "util/configparser.c" +#line 4137 "util/configparser.c" break; - case 330: /* server_tls_win_cert: VAR_TLS_WIN_CERT STRING_ARG */ -#line 933 "./util/configparser.y" + case 335: +#line 939 "./util/configparser.y" { OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3445,53 +4145,53 @@ yyreduce: else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3449 "util/configparser.c" +#line 4149 "util/configparser.c" break; - case 331: /* server_tls_additional_port: VAR_TLS_ADDITIONAL_PORT STRING_ARG */ -#line 942 "./util/configparser.y" + case 336: +#line 948 "./util/configparser.y" { OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3460 "util/configparser.c" +#line 4160 "util/configparser.c" break; - case 332: /* server_tls_ciphers: VAR_TLS_CIPHERS STRING_ARG */ -#line 950 "./util/configparser.y" + case 337: +#line 956 "./util/configparser.y" { OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphers); cfg_parser->cfg->tls_ciphers = (yyvsp[0].str); } -#line 3470 "util/configparser.c" +#line 4170 "util/configparser.c" break; - case 333: /* server_tls_ciphersuites: VAR_TLS_CIPHERSUITES STRING_ARG */ -#line 957 "./util/configparser.y" + case 338: +#line 963 "./util/configparser.y" { OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphersuites); cfg_parser->cfg->tls_ciphersuites = (yyvsp[0].str); } -#line 3480 "util/configparser.c" +#line 4180 "util/configparser.c" break; - case 334: /* server_tls_session_ticket_keys: VAR_TLS_SESSION_TICKET_KEYS STRING_ARG */ -#line 964 "./util/configparser.y" + case 339: +#line 970 "./util/configparser.y" { OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3491 "util/configparser.c" +#line 4191 "util/configparser.c" break; - case 335: /* server_tls_use_sni: VAR_TLS_USE_SNI STRING_ARG */ -#line 972 "./util/configparser.y" + case 340: +#line 978 "./util/configparser.y" { OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3499,11 +4199,11 @@ yyreduce: else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3503 "util/configparser.c" +#line 4203 "util/configparser.c" break; - case 336: /* server_https_port: VAR_HTTPS_PORT STRING_ARG */ -#line 981 "./util/configparser.y" + case 341: +#line 987 "./util/configparser.y" { OUTYY(("P(server_https_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3511,11 +4211,11 @@ yyreduce: else cfg_parser->cfg->https_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3515 "util/configparser.c" +#line 4215 "util/configparser.c" break; - case 337: /* server_http_endpoint: VAR_HTTP_ENDPOINT STRING_ARG */ -#line 989 "./util/configparser.y" + case 342: +#line 995 "./util/configparser.y" { OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->http_endpoint); @@ -3531,11 +4231,11 @@ yyreduce: cfg_parser->cfg->http_endpoint = (yyvsp[0].str); } } -#line 3535 "util/configparser.c" +#line 4235 "util/configparser.c" break; - case 338: /* server_http_max_streams: VAR_HTTP_MAX_STREAMS STRING_ARG */ -#line 1005 "./util/configparser.y" + case 343: +#line 1011 "./util/configparser.y" { OUTYY(("P(server_http_max_streams:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3543,11 +4243,11 @@ yyreduce: else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3547 "util/configparser.c" +#line 4247 "util/configparser.c" break; - case 339: /* server_http_query_buffer_size: VAR_HTTP_QUERY_BUFFER_SIZE STRING_ARG */ -#line 1013 "./util/configparser.y" + case 344: +#line 1019 "./util/configparser.y" { OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), @@ -3555,11 +4255,11 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 3559 "util/configparser.c" +#line 4259 "util/configparser.c" break; - case 340: /* server_http_response_buffer_size: VAR_HTTP_RESPONSE_BUFFER_SIZE STRING_ARG */ -#line 1021 "./util/configparser.y" + case 345: +#line 1027 "./util/configparser.y" { OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), @@ -3567,11 +4267,11 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 3571 "util/configparser.c" +#line 4271 "util/configparser.c" break; - case 341: /* server_http_nodelay: VAR_HTTP_NODELAY STRING_ARG */ -#line 1029 "./util/configparser.y" + case 346: +#line 1035 "./util/configparser.y" { OUTYY(("P(server_http_nodelay:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3579,11 +4279,11 @@ yyreduce: else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3583 "util/configparser.c" +#line 4283 "util/configparser.c" break; - case 342: /* server_http_notls_downstream: VAR_HTTP_NOTLS_DOWNSTREAM STRING_ARG */ -#line 1037 "./util/configparser.y" + case 347: +#line 1043 "./util/configparser.y" { OUTYY(("P(server_http_notls_downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3591,11 +4291,11 @@ yyreduce: else cfg_parser->cfg->http_notls_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3595 "util/configparser.c" +#line 4295 "util/configparser.c" break; - case 343: /* server_use_systemd: VAR_USE_SYSTEMD STRING_ARG */ -#line 1045 "./util/configparser.y" + case 348: +#line 1051 "./util/configparser.y" { OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3603,11 +4303,11 @@ yyreduce: else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3607 "util/configparser.c" +#line 4307 "util/configparser.c" break; - case 344: /* server_do_daemonize: VAR_DO_DAEMONIZE STRING_ARG */ -#line 1054 "./util/configparser.y" + case 349: +#line 1060 "./util/configparser.y" { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3615,11 +4315,11 @@ yyreduce: else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3619 "util/configparser.c" +#line 4319 "util/configparser.c" break; - case 345: /* server_use_syslog: VAR_USE_SYSLOG STRING_ARG */ -#line 1063 "./util/configparser.y" + case 350: +#line 1069 "./util/configparser.y" { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3632,11 +4332,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3636 "util/configparser.c" +#line 4336 "util/configparser.c" break; - case 346: /* server_log_time_ascii: VAR_LOG_TIME_ASCII STRING_ARG */ -#line 1077 "./util/configparser.y" + case 351: +#line 1083 "./util/configparser.y" { OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3644,11 +4344,11 @@ yyreduce: else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3648 "util/configparser.c" +#line 4348 "util/configparser.c" break; - case 347: /* server_log_queries: VAR_LOG_QUERIES STRING_ARG */ -#line 1086 "./util/configparser.y" + case 352: +#line 1092 "./util/configparser.y" { OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3656,11 +4356,11 @@ yyreduce: else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3660 "util/configparser.c" +#line 4360 "util/configparser.c" break; - case 348: /* server_log_replies: VAR_LOG_REPLIES STRING_ARG */ -#line 1095 "./util/configparser.y" + case 353: +#line 1101 "./util/configparser.y" { OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3668,11 +4368,11 @@ yyreduce: else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3672 "util/configparser.c" +#line 4372 "util/configparser.c" break; - case 349: /* server_log_tag_queryreply: VAR_LOG_TAG_QUERYREPLY STRING_ARG */ -#line 1104 "./util/configparser.y" + case 354: +#line 1110 "./util/configparser.y" { OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3680,11 +4380,11 @@ yyreduce: else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3684 "util/configparser.c" +#line 4384 "util/configparser.c" break; - case 350: /* server_log_servfail: VAR_LOG_SERVFAIL STRING_ARG */ -#line 1113 "./util/configparser.y" + case 355: +#line 1119 "./util/configparser.y" { OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3692,11 +4392,11 @@ yyreduce: else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3696 "util/configparser.c" +#line 4396 "util/configparser.c" break; - case 351: /* server_log_local_actions: VAR_LOG_LOCAL_ACTIONS STRING_ARG */ -#line 1122 "./util/configparser.y" + case 356: +#line 1128 "./util/configparser.y" { OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3704,31 +4404,31 @@ yyreduce: else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3708 "util/configparser.c" +#line 4408 "util/configparser.c" break; - case 352: /* server_chroot: VAR_CHROOT STRING_ARG */ -#line 1131 "./util/configparser.y" + case 357: +#line 1137 "./util/configparser.y" { OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->chrootdir); cfg_parser->cfg->chrootdir = (yyvsp[0].str); } -#line 3718 "util/configparser.c" +#line 4418 "util/configparser.c" break; - case 353: /* server_username: VAR_USERNAME STRING_ARG */ -#line 1138 "./util/configparser.y" + case 358: +#line 1144 "./util/configparser.y" { OUTYY(("P(server_username:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->username); cfg_parser->cfg->username = (yyvsp[0].str); } -#line 3728 "util/configparser.c" +#line 4428 "util/configparser.c" break; - case 354: /* server_directory: VAR_DIRECTORY STRING_ARG */ -#line 1145 "./util/configparser.y" + case 359: +#line 1151 "./util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); @@ -3753,105 +4453,105 @@ yyreduce: } } } -#line 3757 "util/configparser.c" +#line 4457 "util/configparser.c" break; - case 355: /* server_logfile: VAR_LOGFILE STRING_ARG */ -#line 1171 "./util/configparser.y" + case 360: +#line 1177 "./util/configparser.y" { 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 3768 "util/configparser.c" +#line 4468 "util/configparser.c" break; - case 356: /* server_pidfile: VAR_PIDFILE STRING_ARG */ -#line 1179 "./util/configparser.y" + case 361: +#line 1185 "./util/configparser.y" { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->pidfile); cfg_parser->cfg->pidfile = (yyvsp[0].str); } -#line 3778 "util/configparser.c" +#line 4478 "util/configparser.c" break; - case 357: /* server_root_hints: VAR_ROOT_HINTS STRING_ARG */ -#line 1186 "./util/configparser.y" + case 362: +#line 1192 "./util/configparser.y" { 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 3788 "util/configparser.c" +#line 4488 "util/configparser.c" break; - case 358: /* server_dlv_anchor_file: VAR_DLV_ANCHOR_FILE STRING_ARG */ -#line 1193 "./util/configparser.y" + case 363: +#line 1199 "./util/configparser.y" { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str))); log_warn("option dlv-anchor-file ignored: DLV is decommissioned"); free((yyvsp[0].str)); } -#line 3798 "util/configparser.c" +#line 4498 "util/configparser.c" break; - case 359: /* server_dlv_anchor: VAR_DLV_ANCHOR STRING_ARG */ -#line 1200 "./util/configparser.y" + case 364: +#line 1206 "./util/configparser.y" { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str))); log_warn("option dlv-anchor ignored: DLV is decommissioned"); free((yyvsp[0].str)); } -#line 3808 "util/configparser.c" +#line 4508 "util/configparser.c" break; - case 360: /* server_auto_trust_anchor_file: VAR_AUTO_TRUST_ANCHOR_FILE STRING_ARG */ -#line 1207 "./util/configparser.y" + case 365: +#line 1213 "./util/configparser.y" { 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 3819 "util/configparser.c" +#line 4519 "util/configparser.c" break; - case 361: /* server_trust_anchor_file: VAR_TRUST_ANCHOR_FILE STRING_ARG */ -#line 1215 "./util/configparser.y" + case 366: +#line 1221 "./util/configparser.y" { 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 3830 "util/configparser.c" +#line 4530 "util/configparser.c" break; - case 362: /* server_trusted_keys_file: VAR_TRUSTED_KEYS_FILE STRING_ARG */ -#line 1223 "./util/configparser.y" + case 367: +#line 1229 "./util/configparser.y" { 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 3841 "util/configparser.c" +#line 4541 "util/configparser.c" break; - case 363: /* server_trust_anchor: VAR_TRUST_ANCHOR STRING_ARG */ -#line 1231 "./util/configparser.y" + case 368: +#line 1237 "./util/configparser.y" { 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 3851 "util/configparser.c" +#line 4551 "util/configparser.c" break; - case 364: /* server_trust_anchor_signaling: VAR_TRUST_ANCHOR_SIGNALING STRING_ARG */ -#line 1238 "./util/configparser.y" + case 369: +#line 1244 "./util/configparser.y" { OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3861,11 +4561,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3865 "util/configparser.c" +#line 4565 "util/configparser.c" break; - case 365: /* server_root_key_sentinel: VAR_ROOT_KEY_SENTINEL STRING_ARG */ -#line 1249 "./util/configparser.y" + case 370: +#line 1255 "./util/configparser.y" { OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3875,21 +4575,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3879 "util/configparser.c" +#line 4579 "util/configparser.c" break; - case 366: /* server_domain_insecure: VAR_DOMAIN_INSECURE STRING_ARG */ -#line 1260 "./util/configparser.y" + case 371: +#line 1266 "./util/configparser.y" { 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 3889 "util/configparser.c" +#line 4589 "util/configparser.c" break; - case 367: /* server_hide_identity: VAR_HIDE_IDENTITY STRING_ARG */ -#line 1267 "./util/configparser.y" + case 372: +#line 1273 "./util/configparser.y" { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3897,11 +4597,11 @@ yyreduce: else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3901 "util/configparser.c" +#line 4601 "util/configparser.c" break; - case 368: /* server_hide_version: VAR_HIDE_VERSION STRING_ARG */ -#line 1276 "./util/configparser.y" + case 373: +#line 1282 "./util/configparser.y" { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3909,11 +4609,11 @@ yyreduce: else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3913 "util/configparser.c" +#line 4613 "util/configparser.c" break; - case 369: /* server_hide_trustanchor: VAR_HIDE_TRUSTANCHOR STRING_ARG */ -#line 1285 "./util/configparser.y" + case 374: +#line 1291 "./util/configparser.y" { OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3921,31 +4621,31 @@ yyreduce: else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3925 "util/configparser.c" +#line 4625 "util/configparser.c" break; - case 370: /* server_identity: VAR_IDENTITY STRING_ARG */ -#line 1294 "./util/configparser.y" + case 375: +#line 1300 "./util/configparser.y" { OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->identity); cfg_parser->cfg->identity = (yyvsp[0].str); } -#line 3935 "util/configparser.c" +#line 4635 "util/configparser.c" break; - case 371: /* server_version: VAR_VERSION STRING_ARG */ -#line 1301 "./util/configparser.y" + case 376: +#line 1307 "./util/configparser.y" { OUTYY(("P(server_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->version); cfg_parser->cfg->version = (yyvsp[0].str); } -#line 3945 "util/configparser.c" +#line 4645 "util/configparser.c" break; - case 372: /* server_nsid: VAR_NSID STRING_ARG */ -#line 1308 "./util/configparser.y" + case 377: +#line 1314 "./util/configparser.y" { OUTYY(("P(server_nsid:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->nsid_cfg_str); @@ -3960,33 +4660,33 @@ yyreduce: yyerror("the NSID must be either a hex string or an " "ascii character string prepended with ascii_."); } -#line 3964 "util/configparser.c" +#line 4664 "util/configparser.c" break; - case 373: /* server_so_rcvbuf: VAR_SO_RCVBUF STRING_ARG */ -#line 1324 "./util/configparser.y" + case 378: +#line 1330 "./util/configparser.y" { 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 3975 "util/configparser.c" +#line 4675 "util/configparser.c" break; - case 374: /* server_so_sndbuf: VAR_SO_SNDBUF STRING_ARG */ -#line 1332 "./util/configparser.y" + case 379: +#line 1338 "./util/configparser.y" { 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 3986 "util/configparser.c" +#line 4686 "util/configparser.c" break; - case 375: /* server_so_reuseport: VAR_SO_REUSEPORT STRING_ARG */ -#line 1340 "./util/configparser.y" + case 380: +#line 1346 "./util/configparser.y" { OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3995,11 +4695,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3999 "util/configparser.c" +#line 4699 "util/configparser.c" break; - case 376: /* server_ip_transparent: VAR_IP_TRANSPARENT STRING_ARG */ -#line 1350 "./util/configparser.y" + case 381: +#line 1356 "./util/configparser.y" { OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4008,11 +4708,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4012 "util/configparser.c" +#line 4712 "util/configparser.c" break; - case 377: /* server_ip_freebind: VAR_IP_FREEBIND STRING_ARG */ -#line 1360 "./util/configparser.y" + case 382: +#line 1366 "./util/configparser.y" { OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4021,11 +4721,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4025 "util/configparser.c" +#line 4725 "util/configparser.c" break; - case 378: /* server_ip_dscp: VAR_IP_DSCP STRING_ARG */ -#line 1370 "./util/configparser.y" + case 383: +#line 1376 "./util/configparser.y" { OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4038,22 +4738,22 @@ yyreduce: cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4042 "util/configparser.c" +#line 4742 "util/configparser.c" break; - case 379: /* server_stream_wait_size: VAR_STREAM_WAIT_SIZE STRING_ARG */ -#line 1384 "./util/configparser.y" + case 384: +#line 1390 "./util/configparser.y" { OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->stream_wait_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4053 "util/configparser.c" +#line 4753 "util/configparser.c" break; - case 380: /* server_edns_buffer_size: VAR_EDNS_BUFFER_SIZE STRING_ARG */ -#line 1392 "./util/configparser.y" + case 385: +#line 1398 "./util/configparser.y" { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4065,11 +4765,11 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4069 "util/configparser.c" +#line 4769 "util/configparser.c" break; - case 381: /* server_msg_buffer_size: VAR_MSG_BUFFER_SIZE STRING_ARG */ -#line 1405 "./util/configparser.y" + case 386: +#line 1411 "./util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4079,22 +4779,22 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4083 "util/configparser.c" +#line 4783 "util/configparser.c" break; - case 382: /* server_msg_cache_size: VAR_MSG_CACHE_SIZE STRING_ARG */ -#line 1416 "./util/configparser.y" + case 387: +#line 1422 "./util/configparser.y" { 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 4094 "util/configparser.c" +#line 4794 "util/configparser.c" break; - case 383: /* server_msg_cache_slabs: VAR_MSG_CACHE_SLABS STRING_ARG */ -#line 1424 "./util/configparser.y" + case 388: +#line 1430 "./util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4106,11 +4806,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4110 "util/configparser.c" +#line 4810 "util/configparser.c" break; - case 384: /* server_num_queries_per_thread: VAR_NUM_QUERIES_PER_THREAD STRING_ARG */ -#line 1437 "./util/configparser.y" + case 389: +#line 1443 "./util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4118,11 +4818,11 @@ yyreduce: else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4122 "util/configparser.c" +#line 4822 "util/configparser.c" break; - case 385: /* server_jostle_timeout: VAR_JOSTLE_TIMEOUT STRING_ARG */ -#line 1446 "./util/configparser.y" + case 390: +#line 1452 "./util/configparser.y" { OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4130,11 +4830,11 @@ yyreduce: else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4134 "util/configparser.c" +#line 4834 "util/configparser.c" break; - case 386: /* server_delay_close: VAR_DELAY_CLOSE STRING_ARG */ -#line 1455 "./util/configparser.y" + case 391: +#line 1461 "./util/configparser.y" { OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4142,11 +4842,11 @@ yyreduce: else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4146 "util/configparser.c" +#line 4846 "util/configparser.c" break; - case 387: /* server_udp_connect: VAR_UDP_CONNECT STRING_ARG */ -#line 1464 "./util/configparser.y" + case 392: +#line 1470 "./util/configparser.y" { OUTYY(("P(server_udp_connect:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4154,11 +4854,11 @@ yyreduce: else cfg_parser->cfg->udp_connect = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4158 "util/configparser.c" +#line 4858 "util/configparser.c" break; - case 388: /* server_unblock_lan_zones: VAR_UNBLOCK_LAN_ZONES STRING_ARG */ -#line 1473 "./util/configparser.y" + case 393: +#line 1479 "./util/configparser.y" { OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4167,11 +4867,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4171 "util/configparser.c" +#line 4871 "util/configparser.c" break; - case 389: /* server_insecure_lan_zones: VAR_INSECURE_LAN_ZONES STRING_ARG */ -#line 1483 "./util/configparser.y" + case 394: +#line 1489 "./util/configparser.y" { OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4180,22 +4880,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4184 "util/configparser.c" +#line 4884 "util/configparser.c" break; - case 390: /* server_rrset_cache_size: VAR_RRSET_CACHE_SIZE STRING_ARG */ -#line 1493 "./util/configparser.y" + case 395: +#line 1499 "./util/configparser.y" { 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 4195 "util/configparser.c" +#line 4895 "util/configparser.c" break; - case 391: /* server_rrset_cache_slabs: VAR_RRSET_CACHE_SLABS STRING_ARG */ -#line 1501 "./util/configparser.y" + case 396: +#line 1507 "./util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4207,11 +4907,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4211 "util/configparser.c" +#line 4911 "util/configparser.c" break; - case 392: /* server_infra_host_ttl: VAR_INFRA_HOST_TTL STRING_ARG */ -#line 1514 "./util/configparser.y" + case 397: +#line 1520 "./util/configparser.y" { OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4219,22 +4919,22 @@ yyreduce: else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4223 "util/configparser.c" +#line 4923 "util/configparser.c" break; - case 393: /* server_infra_lame_ttl: VAR_INFRA_LAME_TTL STRING_ARG */ -#line 1523 "./util/configparser.y" + case 398: +#line 1529 "./util/configparser.y" { 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 4234 "util/configparser.c" +#line 4934 "util/configparser.c" break; - case 394: /* server_infra_cache_numhosts: VAR_INFRA_CACHE_NUMHOSTS STRING_ARG */ -#line 1531 "./util/configparser.y" + case 399: +#line 1537 "./util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4242,22 +4942,22 @@ yyreduce: else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4246 "util/configparser.c" +#line 4946 "util/configparser.c" break; - case 395: /* server_infra_cache_lame_size: VAR_INFRA_CACHE_LAME_SIZE STRING_ARG */ -#line 1540 "./util/configparser.y" + case 400: +#line 1546 "./util/configparser.y" { 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 4257 "util/configparser.c" +#line 4957 "util/configparser.c" break; - case 396: /* server_infra_cache_slabs: VAR_INFRA_CACHE_SLABS STRING_ARG */ -#line 1548 "./util/configparser.y" + case 401: +#line 1554 "./util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4269,11 +4969,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4273 "util/configparser.c" +#line 4973 "util/configparser.c" break; - case 397: /* server_infra_cache_min_rtt: VAR_INFRA_CACHE_MIN_RTT STRING_ARG */ -#line 1561 "./util/configparser.y" + case 402: +#line 1567 "./util/configparser.y" { OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4281,11 +4981,11 @@ yyreduce: else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4285 "util/configparser.c" +#line 4985 "util/configparser.c" break; - case 398: /* server_infra_keep_probing: VAR_INFRA_KEEP_PROBING STRING_ARG */ -#line 1570 "./util/configparser.y" + case 403: +#line 1576 "./util/configparser.y" { OUTYY(("P(server_infra_keep_probing:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4294,21 +4994,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4298 "util/configparser.c" +#line 4998 "util/configparser.c" break; - case 399: /* server_target_fetch_policy: VAR_TARGET_FETCH_POLICY STRING_ARG */ -#line 1580 "./util/configparser.y" + case 404: +#line 1586 "./util/configparser.y" { 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 4308 "util/configparser.c" +#line 5008 "util/configparser.c" break; - case 400: /* server_harden_short_bufsize: VAR_HARDEN_SHORT_BUFSIZE STRING_ARG */ -#line 1587 "./util/configparser.y" + case 405: +#line 1593 "./util/configparser.y" { OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4317,11 +5017,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4321 "util/configparser.c" +#line 5021 "util/configparser.c" break; - case 401: /* server_harden_large_queries: VAR_HARDEN_LARGE_QUERIES STRING_ARG */ -#line 1597 "./util/configparser.y" + case 406: +#line 1603 "./util/configparser.y" { OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4330,11 +5030,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4334 "util/configparser.c" +#line 5034 "util/configparser.c" break; - case 402: /* server_harden_glue: VAR_HARDEN_GLUE STRING_ARG */ -#line 1607 "./util/configparser.y" + case 407: +#line 1613 "./util/configparser.y" { OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4343,11 +5043,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4347 "util/configparser.c" +#line 5047 "util/configparser.c" break; - case 403: /* server_harden_dnssec_stripped: VAR_HARDEN_DNSSEC_STRIPPED STRING_ARG */ -#line 1617 "./util/configparser.y" + case 408: +#line 1623 "./util/configparser.y" { OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4356,11 +5056,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4360 "util/configparser.c" +#line 5060 "util/configparser.c" break; - case 404: /* server_harden_below_nxdomain: VAR_HARDEN_BELOW_NXDOMAIN STRING_ARG */ -#line 1627 "./util/configparser.y" + case 409: +#line 1633 "./util/configparser.y" { OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4369,11 +5069,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4373 "util/configparser.c" +#line 5073 "util/configparser.c" break; - case 405: /* server_harden_referral_path: VAR_HARDEN_REFERRAL_PATH STRING_ARG */ -#line 1637 "./util/configparser.y" + case 410: +#line 1643 "./util/configparser.y" { OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4382,11 +5082,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4386 "util/configparser.c" +#line 5086 "util/configparser.c" break; - case 406: /* server_harden_algo_downgrade: VAR_HARDEN_ALGO_DOWNGRADE STRING_ARG */ -#line 1647 "./util/configparser.y" + case 411: +#line 1653 "./util/configparser.y" { OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4395,11 +5095,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4399 "util/configparser.c" +#line 5099 "util/configparser.c" break; - case 407: /* server_use_caps_for_id: VAR_USE_CAPS_FOR_ID STRING_ARG */ -#line 1657 "./util/configparser.y" + case 412: +#line 1663 "./util/configparser.y" { 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) @@ -4408,41 +5108,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4412 "util/configparser.c" +#line 5112 "util/configparser.c" break; - case 408: /* server_caps_whitelist: VAR_CAPS_WHITELIST STRING_ARG */ -#line 1667 "./util/configparser.y" + case 413: +#line 1673 "./util/configparser.y" { 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 4422 "util/configparser.c" +#line 5122 "util/configparser.c" break; - case 409: /* server_private_address: VAR_PRIVATE_ADDRESS STRING_ARG */ -#line 1674 "./util/configparser.y" + case 414: +#line 1680 "./util/configparser.y" { 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 4432 "util/configparser.c" +#line 5132 "util/configparser.c" break; - case 410: /* server_private_domain: VAR_PRIVATE_DOMAIN STRING_ARG */ -#line 1681 "./util/configparser.y" + case 415: +#line 1687 "./util/configparser.y" { 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 4442 "util/configparser.c" +#line 5142 "util/configparser.c" break; - case 411: /* server_prefetch: VAR_PREFETCH STRING_ARG */ -#line 1688 "./util/configparser.y" + case 416: +#line 1694 "./util/configparser.y" { OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4450,11 +5150,11 @@ yyreduce: else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4454 "util/configparser.c" +#line 5154 "util/configparser.c" break; - case 412: /* server_prefetch_key: VAR_PREFETCH_KEY STRING_ARG */ -#line 1697 "./util/configparser.y" + case 417: +#line 1703 "./util/configparser.y" { OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4462,11 +5162,11 @@ yyreduce: else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4466 "util/configparser.c" +#line 5166 "util/configparser.c" break; - case 413: /* server_deny_any: VAR_DENY_ANY STRING_ARG */ -#line 1706 "./util/configparser.y" + case 418: +#line 1712 "./util/configparser.y" { OUTYY(("P(server_deny_any:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4474,11 +5174,11 @@ yyreduce: else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4478 "util/configparser.c" +#line 5178 "util/configparser.c" break; - case 414: /* server_unwanted_reply_threshold: VAR_UNWANTED_REPLY_THRESHOLD STRING_ARG */ -#line 1715 "./util/configparser.y" + case 419: +#line 1721 "./util/configparser.y" { OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4486,21 +5186,21 @@ yyreduce: else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4490 "util/configparser.c" +#line 5190 "util/configparser.c" break; - case 415: /* server_do_not_query_address: VAR_DO_NOT_QUERY_ADDRESS STRING_ARG */ -#line 1724 "./util/configparser.y" + case 420: +#line 1730 "./util/configparser.y" { 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 4500 "util/configparser.c" +#line 5200 "util/configparser.c" break; - case 416: /* server_do_not_query_localhost: VAR_DO_NOT_QUERY_LOCALHOST STRING_ARG */ -#line 1731 "./util/configparser.y" + case 421: +#line 1737 "./util/configparser.y" { 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) @@ -4509,11 +5209,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4513 "util/configparser.c" +#line 5213 "util/configparser.c" break; - case 417: /* server_access_control: VAR_ACCESS_CONTROL STRING_ARG STRING_ARG */ -#line 1741 "./util/configparser.y" + case 422: +#line 1747 "./util/configparser.y" { 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 && @@ -4532,21 +5232,21 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 4536 "util/configparser.c" +#line 5236 "util/configparser.c" break; - case 418: /* server_module_conf: VAR_MODULE_CONF STRING_ARG */ -#line 1761 "./util/configparser.y" + case 423: +#line 1767 "./util/configparser.y" { 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 4546 "util/configparser.c" +#line 5246 "util/configparser.c" break; - case 419: /* server_val_override_date: VAR_VAL_OVERRIDE_DATE STRING_ARG */ -#line 1768 "./util/configparser.y" + case 424: +#line 1774 "./util/configparser.y" { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -4563,11 +5263,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4567 "util/configparser.c" +#line 5267 "util/configparser.c" break; - case 420: /* server_val_sig_skew_min: VAR_VAL_SIG_SKEW_MIN STRING_ARG */ -#line 1786 "./util/configparser.y" + case 425: +#line 1792 "./util/configparser.y" { OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -4579,11 +5279,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4583 "util/configparser.c" +#line 5283 "util/configparser.c" break; - case 421: /* server_val_sig_skew_max: VAR_VAL_SIG_SKEW_MAX STRING_ARG */ -#line 1799 "./util/configparser.y" + case 426: +#line 1805 "./util/configparser.y" { OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -4595,11 +5295,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4599 "util/configparser.c" +#line 5299 "util/configparser.c" break; - case 422: /* server_cache_max_ttl: VAR_CACHE_MAX_TTL STRING_ARG */ -#line 1812 "./util/configparser.y" + case 427: +#line 1818 "./util/configparser.y" { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4607,11 +5307,11 @@ yyreduce: else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4611 "util/configparser.c" +#line 5311 "util/configparser.c" break; - case 423: /* server_cache_max_negative_ttl: VAR_CACHE_MAX_NEGATIVE_TTL STRING_ARG */ -#line 1821 "./util/configparser.y" + case 428: +#line 1827 "./util/configparser.y" { OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4619,11 +5319,11 @@ yyreduce: else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4623 "util/configparser.c" +#line 5323 "util/configparser.c" break; - case 424: /* server_cache_min_ttl: VAR_CACHE_MIN_TTL STRING_ARG */ -#line 1830 "./util/configparser.y" + case 429: +#line 1836 "./util/configparser.y" { OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4631,11 +5331,11 @@ yyreduce: else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4635 "util/configparser.c" +#line 5335 "util/configparser.c" break; - case 425: /* server_bogus_ttl: VAR_BOGUS_TTL STRING_ARG */ -#line 1839 "./util/configparser.y" + case 430: +#line 1845 "./util/configparser.y" { OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4643,11 +5343,11 @@ yyreduce: else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4647 "util/configparser.c" +#line 5347 "util/configparser.c" break; - case 426: /* server_val_clean_additional: VAR_VAL_CLEAN_ADDITIONAL STRING_ARG */ -#line 1848 "./util/configparser.y" + case 431: +#line 1854 "./util/configparser.y" { OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4656,11 +5356,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4660 "util/configparser.c" +#line 5360 "util/configparser.c" break; - case 427: /* server_val_permissive_mode: VAR_VAL_PERMISSIVE_MODE STRING_ARG */ -#line 1858 "./util/configparser.y" + case 432: +#line 1864 "./util/configparser.y" { OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4669,11 +5369,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4673 "util/configparser.c" +#line 5373 "util/configparser.c" break; - case 428: /* server_aggressive_nsec: VAR_AGGRESSIVE_NSEC STRING_ARG */ -#line 1868 "./util/configparser.y" + case 433: +#line 1874 "./util/configparser.y" { OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4683,11 +5383,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4687 "util/configparser.c" +#line 5387 "util/configparser.c" break; - case 429: /* server_ignore_cd_flag: VAR_IGNORE_CD_FLAG STRING_ARG */ -#line 1879 "./util/configparser.y" + case 434: +#line 1885 "./util/configparser.y" { OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4695,11 +5395,11 @@ yyreduce: else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4699 "util/configparser.c" +#line 5399 "util/configparser.c" break; - case 430: /* server_serve_expired: VAR_SERVE_EXPIRED STRING_ARG */ -#line 1888 "./util/configparser.y" + case 435: +#line 1894 "./util/configparser.y" { OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4707,11 +5407,11 @@ yyreduce: else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4711 "util/configparser.c" +#line 5411 "util/configparser.c" break; - case 431: /* server_serve_expired_ttl: VAR_SERVE_EXPIRED_TTL STRING_ARG */ -#line 1897 "./util/configparser.y" + case 436: +#line 1903 "./util/configparser.y" { OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4719,11 +5419,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4723 "util/configparser.c" +#line 5423 "util/configparser.c" break; - case 432: /* server_serve_expired_ttl_reset: VAR_SERVE_EXPIRED_TTL_RESET STRING_ARG */ -#line 1906 "./util/configparser.y" + case 437: +#line 1912 "./util/configparser.y" { OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4731,11 +5431,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4735 "util/configparser.c" +#line 5435 "util/configparser.c" break; - case 433: /* server_serve_expired_reply_ttl: VAR_SERVE_EXPIRED_REPLY_TTL STRING_ARG */ -#line 1915 "./util/configparser.y" + case 438: +#line 1921 "./util/configparser.y" { OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4743,11 +5443,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4747 "util/configparser.c" +#line 5447 "util/configparser.c" break; - case 434: /* server_serve_expired_client_timeout: VAR_SERVE_EXPIRED_CLIENT_TIMEOUT STRING_ARG */ -#line 1924 "./util/configparser.y" + case 439: +#line 1930 "./util/configparser.y" { OUTYY(("P(server_serve_expired_client_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4755,11 +5455,23 @@ yyreduce: else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4759 "util/configparser.c" +#line 5459 "util/configparser.c" break; - case 435: /* server_fake_dsa: VAR_FAKE_DSA STRING_ARG */ -#line 1933 "./util/configparser.y" + case 440: +#line 1939 "./util/configparser.y" + { + OUTYY(("P(server_serve_original_ttl:%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->serve_original_ttl = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } +#line 5471 "util/configparser.c" + break; + + case 441: +#line 1948 "./util/configparser.y" { OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4771,11 +5483,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4775 "util/configparser.c" +#line 5487 "util/configparser.c" break; - case 436: /* server_fake_sha1: VAR_FAKE_SHA1 STRING_ARG */ -#line 1946 "./util/configparser.y" + case 442: +#line 1961 "./util/configparser.y" { OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4787,11 +5499,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4791 "util/configparser.c" +#line 5503 "util/configparser.c" break; - case 437: /* server_val_log_level: VAR_VAL_LOG_LEVEL STRING_ARG */ -#line 1959 "./util/configparser.y" + case 443: +#line 1974 "./util/configparser.y" { OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4799,21 +5511,21 @@ yyreduce: else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4803 "util/configparser.c" +#line 5515 "util/configparser.c" break; - case 438: /* server_val_nsec3_keysize_iterations: VAR_VAL_NSEC3_KEYSIZE_ITERATIONS STRING_ARG */ -#line 1968 "./util/configparser.y" + case 444: +#line 1983 "./util/configparser.y" { 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 4813 "util/configparser.c" +#line 5525 "util/configparser.c" break; - case 439: /* server_add_holddown: VAR_ADD_HOLDDOWN STRING_ARG */ -#line 1975 "./util/configparser.y" + case 445: +#line 1990 "./util/configparser.y" { OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4821,11 +5533,11 @@ yyreduce: else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4825 "util/configparser.c" +#line 5537 "util/configparser.c" break; - case 440: /* server_del_holddown: VAR_DEL_HOLDDOWN STRING_ARG */ -#line 1984 "./util/configparser.y" + case 446: +#line 1999 "./util/configparser.y" { OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4833,11 +5545,11 @@ yyreduce: else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4837 "util/configparser.c" +#line 5549 "util/configparser.c" break; - case 441: /* server_keep_missing: VAR_KEEP_MISSING STRING_ARG */ -#line 1993 "./util/configparser.y" + case 447: +#line 2008 "./util/configparser.y" { OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4845,11 +5557,11 @@ yyreduce: else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4849 "util/configparser.c" +#line 5561 "util/configparser.c" break; - case 442: /* server_permit_small_holddown: VAR_PERMIT_SMALL_HOLDDOWN STRING_ARG */ -#line 2002 "./util/configparser.y" + case 448: +#line 2017 "./util/configparser.y" { OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4858,22 +5570,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4862 "util/configparser.c" +#line 5574 "util/configparser.c" break; - case 443: /* server_key_cache_size: VAR_KEY_CACHE_SIZE STRING_ARG */ -#line 2011 "./util/configparser.y" + case 449: +#line 2026 "./util/configparser.y" { 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 4873 "util/configparser.c" +#line 5585 "util/configparser.c" break; - case 444: /* server_key_cache_slabs: VAR_KEY_CACHE_SLABS STRING_ARG */ -#line 2019 "./util/configparser.y" + case 450: +#line 2034 "./util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4885,22 +5597,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4889 "util/configparser.c" +#line 5601 "util/configparser.c" break; - case 445: /* server_neg_cache_size: VAR_NEG_CACHE_SIZE STRING_ARG */ -#line 2032 "./util/configparser.y" + case 451: +#line 2047 "./util/configparser.y" { 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 4900 "util/configparser.c" +#line 5612 "util/configparser.c" break; - case 446: /* server_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */ -#line 2040 "./util/configparser.y" + case 452: +#line 2055 "./util/configparser.y" { 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 && @@ -4944,21 +5656,21 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 4948 "util/configparser.c" +#line 5660 "util/configparser.c" break; - case 447: /* server_local_data: VAR_LOCAL_DATA STRING_ARG */ -#line 2085 "./util/configparser.y" + case 453: +#line 2100 "./util/configparser.y" { 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 4958 "util/configparser.c" +#line 5670 "util/configparser.c" break; - case 448: /* server_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */ -#line 2092 "./util/configparser.y" + case 454: +#line 2107 "./util/configparser.y" { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -4972,11 +5684,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 4976 "util/configparser.c" +#line 5688 "util/configparser.c" break; - case 449: /* server_minimal_responses: VAR_MINIMAL_RESPONSES STRING_ARG */ -#line 2107 "./util/configparser.y" + case 455: +#line 2122 "./util/configparser.y" { OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4985,11 +5697,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4989 "util/configparser.c" +#line 5701 "util/configparser.c" break; - case 450: /* server_rrset_roundrobin: VAR_RRSET_ROUNDROBIN STRING_ARG */ -#line 2117 "./util/configparser.y" + case 456: +#line 2132 "./util/configparser.y" { OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4998,41 +5710,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5002 "util/configparser.c" +#line 5714 "util/configparser.c" break; - case 451: /* server_unknown_server_time_limit: VAR_UNKNOWN_SERVER_TIME_LIMIT STRING_ARG */ -#line 2127 "./util/configparser.y" + case 457: +#line 2142 "./util/configparser.y" { OUTYY(("P(server_unknown_server_time_limit:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5012 "util/configparser.c" +#line 5724 "util/configparser.c" break; - case 452: /* server_max_udp_size: VAR_MAX_UDP_SIZE STRING_ARG */ -#line 2134 "./util/configparser.y" + case 458: +#line 2149 "./util/configparser.y" { 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 5022 "util/configparser.c" +#line 5734 "util/configparser.c" break; - case 453: /* server_dns64_prefix: VAR_DNS64_PREFIX STRING_ARG */ -#line 2141 "./util/configparser.y" + case 459: +#line 2156 "./util/configparser.y" { OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dns64_prefix); cfg_parser->cfg->dns64_prefix = (yyvsp[0].str); } -#line 5032 "util/configparser.c" +#line 5744 "util/configparser.c" break; - case 454: /* server_dns64_synthall: VAR_DNS64_SYNTHALL STRING_ARG */ -#line 2148 "./util/configparser.y" + case 460: +#line 2163 "./util/configparser.y" { OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5040,22 +5752,22 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5044 "util/configparser.c" +#line 5756 "util/configparser.c" break; - case 455: /* server_dns64_ignore_aaaa: VAR_DNS64_IGNORE_AAAA STRING_ARG */ -#line 2157 "./util/configparser.y" + case 461: +#line 2172 "./util/configparser.y" { OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa, (yyvsp[0].str))) fatal_exit("out of memory adding dns64-ignore-aaaa"); } -#line 5055 "util/configparser.c" +#line 5767 "util/configparser.c" break; - case 456: /* server_define_tag: VAR_DEFINE_TAG STRING_ARG */ -#line 2165 "./util/configparser.y" + case 462: +#line 2180 "./util/configparser.y" { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); @@ -5068,11 +5780,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5072 "util/configparser.c" +#line 5784 "util/configparser.c" break; - case 457: /* server_local_zone_tag: VAR_LOCAL_ZONE_TAG STRING_ARG STRING_ARG */ -#line 2179 "./util/configparser.y" + case 463: +#line 2194 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5092,11 +5804,11 @@ yyreduce: } } } -#line 5096 "util/configparser.c" +#line 5808 "util/configparser.c" break; - case 458: /* server_access_control_tag: VAR_ACCESS_CONTROL_TAG STRING_ARG STRING_ARG */ -#line 2200 "./util/configparser.y" + case 464: +#line 2215 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5116,11 +5828,11 @@ yyreduce: } } } -#line 5120 "util/configparser.c" +#line 5832 "util/configparser.c" break; - case 459: /* server_access_control_tag_action: VAR_ACCESS_CONTROL_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG */ -#line 2221 "./util/configparser.y" + case 465: +#line 2236 "./util/configparser.y" { 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, @@ -5131,11 +5843,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5135 "util/configparser.c" +#line 5847 "util/configparser.c" break; - case 460: /* server_access_control_tag_data: VAR_ACCESS_CONTROL_TAG_DATA STRING_ARG STRING_ARG STRING_ARG */ -#line 2233 "./util/configparser.y" + case 466: +#line 2248 "./util/configparser.y" { 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, @@ -5146,11 +5858,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5150 "util/configparser.c" +#line 5862 "util/configparser.c" break; - case 461: /* server_local_zone_override: VAR_LOCAL_ZONE_OVERRIDE STRING_ARG STRING_ARG STRING_ARG */ -#line 2245 "./util/configparser.y" + case 467: +#line 2260 "./util/configparser.y" { 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, @@ -5161,11 +5873,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5165 "util/configparser.c" +#line 5877 "util/configparser.c" break; - case 462: /* server_access_control_view: VAR_ACCESS_CONTROL_VIEW STRING_ARG STRING_ARG */ -#line 2257 "./util/configparser.y" + case 468: +#line 2272 "./util/configparser.y" { OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view, @@ -5173,11 +5885,11 @@ yyreduce: yyerror("out of memory"); } } -#line 5177 "util/configparser.c" +#line 5889 "util/configparser.c" break; - case 463: /* server_response_ip_tag: VAR_RESPONSE_IP_TAG STRING_ARG STRING_ARG */ -#line 2266 "./util/configparser.y" + case 469: +#line 2281 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5197,11 +5909,11 @@ yyreduce: } } } -#line 5201 "util/configparser.c" +#line 5913 "util/configparser.c" break; - case 464: /* server_ip_ratelimit: VAR_IP_RATELIMIT STRING_ARG */ -#line 2287 "./util/configparser.y" + case 470: +#line 2302 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5209,11 +5921,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5213 "util/configparser.c" +#line 5925 "util/configparser.c" break; - case 465: /* server_ratelimit: VAR_RATELIMIT STRING_ARG */ -#line 2297 "./util/configparser.y" + case 471: +#line 2312 "./util/configparser.y" { OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5221,33 +5933,33 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5225 "util/configparser.c" +#line 5937 "util/configparser.c" break; - case 466: /* server_ip_ratelimit_size: VAR_IP_RATELIMIT_SIZE STRING_ARG */ -#line 2306 "./util/configparser.y" + case 472: +#line 2321 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5236 "util/configparser.c" +#line 5948 "util/configparser.c" break; - case 467: /* server_ratelimit_size: VAR_RATELIMIT_SIZE STRING_ARG */ -#line 2314 "./util/configparser.y" + case 473: +#line 2329 "./util/configparser.y" { 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 5247 "util/configparser.c" +#line 5959 "util/configparser.c" break; - case 468: /* server_ip_ratelimit_slabs: VAR_IP_RATELIMIT_SLABS STRING_ARG */ -#line 2322 "./util/configparser.y" + case 474: +#line 2337 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5259,11 +5971,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5263 "util/configparser.c" +#line 5975 "util/configparser.c" break; - case 469: /* server_ratelimit_slabs: VAR_RATELIMIT_SLABS STRING_ARG */ -#line 2335 "./util/configparser.y" + case 475: +#line 2350 "./util/configparser.y" { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5275,11 +5987,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5279 "util/configparser.c" +#line 5991 "util/configparser.c" break; - case 470: /* server_ratelimit_for_domain: VAR_RATELIMIT_FOR_DOMAIN STRING_ARG STRING_ARG */ -#line 2348 "./util/configparser.y" + case 476: +#line 2363 "./util/configparser.y" { 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) { @@ -5293,11 +6005,11 @@ yyreduce: "ratelimit-for-domain"); } } -#line 5297 "util/configparser.c" +#line 6009 "util/configparser.c" break; - case 471: /* server_ratelimit_below_domain: VAR_RATELIMIT_BELOW_DOMAIN STRING_ARG STRING_ARG */ -#line 2363 "./util/configparser.y" + case 477: +#line 2378 "./util/configparser.y" { 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) { @@ -5311,11 +6023,11 @@ yyreduce: "ratelimit-below-domain"); } } -#line 5315 "util/configparser.c" +#line 6027 "util/configparser.c" break; - case 472: /* server_ip_ratelimit_factor: VAR_IP_RATELIMIT_FACTOR STRING_ARG */ -#line 2378 "./util/configparser.y" + case 478: +#line 2393 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5323,11 +6035,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5327 "util/configparser.c" +#line 6039 "util/configparser.c" break; - case 473: /* server_ratelimit_factor: VAR_RATELIMIT_FACTOR STRING_ARG */ -#line 2387 "./util/configparser.y" + case 479: +#line 2402 "./util/configparser.y" { OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5335,20 +6047,20 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5339 "util/configparser.c" +#line 6051 "util/configparser.c" break; - case 474: /* server_low_rtt: VAR_LOW_RTT STRING_ARG */ -#line 2396 "./util/configparser.y" + case 480: +#line 2411 "./util/configparser.y" { OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); free((yyvsp[0].str)); } -#line 5348 "util/configparser.c" +#line 6060 "util/configparser.c" break; - case 475: /* server_fast_server_num: VAR_FAST_SERVER_NUM STRING_ARG */ -#line 2402 "./util/configparser.y" + case 481: +#line 2417 "./util/configparser.y" { OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) <= 0) @@ -5356,11 +6068,11 @@ yyreduce: else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5360 "util/configparser.c" +#line 6072 "util/configparser.c" break; - case 476: /* server_fast_server_permil: VAR_FAST_SERVER_PERMIL STRING_ARG */ -#line 2411 "./util/configparser.y" + case 482: +#line 2426 "./util/configparser.y" { OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5368,11 +6080,11 @@ yyreduce: else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5372 "util/configparser.c" +#line 6084 "util/configparser.c" break; - case 477: /* server_qname_minimisation: VAR_QNAME_MINIMISATION STRING_ARG */ -#line 2420 "./util/configparser.y" + case 483: +#line 2435 "./util/configparser.y" { OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5381,11 +6093,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5385 "util/configparser.c" +#line 6097 "util/configparser.c" break; - case 478: /* server_qname_minimisation_strict: VAR_QNAME_MINIMISATION_STRICT STRING_ARG */ -#line 2430 "./util/configparser.y" + case 484: +#line 2445 "./util/configparser.y" { OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5394,11 +6106,61 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5398 "util/configparser.c" +#line 6110 "util/configparser.c" break; - case 479: /* server_ipsecmod_enabled: VAR_IPSECMOD_ENABLED STRING_ARG */ -#line 2440 "./util/configparser.y" + case 485: +#line 2455 "./util/configparser.y" + { + OUTYY(("P(server_pad_responses:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->pad_responses = + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } +#line 6123 "util/configparser.c" + break; + + case 486: +#line 2465 "./util/configparser.y" + { + OUTYY(("P(server_pad_responses_block_size:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) + yyerror("number expected"); + else cfg_parser->cfg->pad_responses_block_size = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); + } +#line 6135 "util/configparser.c" + break; + + case 487: +#line 2474 "./util/configparser.y" + { + OUTYY(("P(server_pad_queries:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->pad_queries = + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } +#line 6148 "util/configparser.c" + break; + + case 488: +#line 2484 "./util/configparser.y" + { + OUTYY(("P(server_pad_queries_block_size:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) + yyerror("number expected"); + else cfg_parser->cfg->pad_queries_block_size = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); + } +#line 6160 "util/configparser.c" + break; + + case 489: +#line 2493 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); @@ -5410,11 +6172,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5414 "util/configparser.c" +#line 6176 "util/configparser.c" break; - case 480: /* server_ipsecmod_ignore_bogus: VAR_IPSECMOD_IGNORE_BOGUS STRING_ARG */ -#line 2453 "./util/configparser.y" + case 490: +#line 2506 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); @@ -5426,11 +6188,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5430 "util/configparser.c" +#line 6192 "util/configparser.c" break; - case 481: /* server_ipsecmod_hook: VAR_IPSECMOD_HOOK STRING_ARG */ -#line 2466 "./util/configparser.y" + case 491: +#line 2519 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); @@ -5441,11 +6203,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5445 "util/configparser.c" +#line 6207 "util/configparser.c" break; - case 482: /* server_ipsecmod_max_ttl: VAR_IPSECMOD_MAX_TTL STRING_ARG */ -#line 2478 "./util/configparser.y" + case 492: +#line 2531 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); @@ -5458,11 +6220,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5462 "util/configparser.c" +#line 6224 "util/configparser.c" break; - case 483: /* server_ipsecmod_whitelist: VAR_IPSECMOD_WHITELIST STRING_ARG */ -#line 2492 "./util/configparser.y" + case 493: +#line 2545 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); @@ -5473,11 +6235,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5477 "util/configparser.c" +#line 6239 "util/configparser.c" break; - case 484: /* server_ipsecmod_strict: VAR_IPSECMOD_STRICT STRING_ARG */ -#line 2504 "./util/configparser.y" + case 494: +#line 2557 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); @@ -5490,11 +6252,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5494 "util/configparser.c" +#line 6256 "util/configparser.c" break; - case 485: /* server_edns_client_string: VAR_EDNS_CLIENT_STRING STRING_ARG STRING_ARG */ -#line 2518 "./util/configparser.y" + case 495: +#line 2571 "./util/configparser.y" { OUTYY(("P(server_edns_client_string:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert( @@ -5502,11 +6264,11 @@ yyreduce: fatal_exit("out of memory adding " "edns-client-string"); } -#line 5506 "util/configparser.c" +#line 6268 "util/configparser.c" break; - case 486: /* server_edns_client_string_opcode: VAR_EDNS_CLIENT_STRING_OPCODE STRING_ARG */ -#line 2527 "./util/configparser.y" + case 496: +#line 2580 "./util/configparser.y" { OUTYY(("P(edns_client_string_opcode:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5517,11 +6279,11 @@ yyreduce: free((yyvsp[0].str)); } -#line 5521 "util/configparser.c" +#line 6283 "util/configparser.c" break; - case 487: /* stub_name: VAR_NAME STRING_ARG */ -#line 2539 "./util/configparser.y" + case 497: +#line 2592 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -5530,31 +6292,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 5534 "util/configparser.c" +#line 6296 "util/configparser.c" break; - case 488: /* stub_host: VAR_STUB_HOST STRING_ARG */ -#line 2549 "./util/configparser.y" + case 498: +#line 2602 "./util/configparser.y" { 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 5544 "util/configparser.c" +#line 6306 "util/configparser.c" break; - case 489: /* stub_addr: VAR_STUB_ADDR STRING_ARG */ -#line 2556 "./util/configparser.y" + case 499: +#line 2609 "./util/configparser.y" { 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 5554 "util/configparser.c" +#line 6316 "util/configparser.c" break; - case 490: /* stub_first: VAR_STUB_FIRST STRING_ARG */ -#line 2563 "./util/configparser.y" + case 500: +#line 2616 "./util/configparser.y" { OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5562,11 +6324,11 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5566 "util/configparser.c" +#line 6328 "util/configparser.c" break; - case 491: /* stub_no_cache: VAR_STUB_NO_CACHE STRING_ARG */ -#line 2572 "./util/configparser.y" + case 501: +#line 2625 "./util/configparser.y" { OUTYY(("P(stub-no-cache:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5574,11 +6336,11 @@ yyreduce: else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5578 "util/configparser.c" +#line 6340 "util/configparser.c" break; - case 492: /* stub_ssl_upstream: VAR_STUB_SSL_UPSTREAM STRING_ARG */ -#line 2581 "./util/configparser.y" + case 502: +#line 2634 "./util/configparser.y" { OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5587,11 +6349,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5591 "util/configparser.c" +#line 6353 "util/configparser.c" break; - case 493: /* stub_prime: VAR_STUB_PRIME STRING_ARG */ -#line 2591 "./util/configparser.y" + case 503: +#line 2644 "./util/configparser.y" { OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5600,11 +6362,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5604 "util/configparser.c" +#line 6366 "util/configparser.c" break; - case 494: /* forward_name: VAR_NAME STRING_ARG */ -#line 2601 "./util/configparser.y" + case 504: +#line 2654 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -5613,31 +6375,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 5617 "util/configparser.c" +#line 6379 "util/configparser.c" break; - case 495: /* forward_host: VAR_FORWARD_HOST STRING_ARG */ -#line 2611 "./util/configparser.y" + case 505: +#line 2664 "./util/configparser.y" { 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 5627 "util/configparser.c" +#line 6389 "util/configparser.c" break; - case 496: /* forward_addr: VAR_FORWARD_ADDR STRING_ARG */ -#line 2618 "./util/configparser.y" + case 506: +#line 2671 "./util/configparser.y" { 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 5637 "util/configparser.c" +#line 6399 "util/configparser.c" break; - case 497: /* forward_first: VAR_FORWARD_FIRST STRING_ARG */ -#line 2625 "./util/configparser.y" + case 507: +#line 2678 "./util/configparser.y" { OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5645,11 +6407,11 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5649 "util/configparser.c" +#line 6411 "util/configparser.c" break; - case 498: /* forward_no_cache: VAR_FORWARD_NO_CACHE STRING_ARG */ -#line 2634 "./util/configparser.y" + case 508: +#line 2687 "./util/configparser.y" { OUTYY(("P(forward-no-cache:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5657,11 +6419,11 @@ yyreduce: else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5661 "util/configparser.c" +#line 6423 "util/configparser.c" break; - case 499: /* forward_ssl_upstream: VAR_FORWARD_SSL_UPSTREAM STRING_ARG */ -#line 2643 "./util/configparser.y" + case 509: +#line 2696 "./util/configparser.y" { OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5670,11 +6432,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5674 "util/configparser.c" +#line 6436 "util/configparser.c" break; - case 500: /* auth_name: VAR_NAME STRING_ARG */ -#line 2653 "./util/configparser.y" + case 510: +#line 2706 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->auths->name) @@ -5683,52 +6445,52 @@ yyreduce: free(cfg_parser->cfg->auths->name); cfg_parser->cfg->auths->name = (yyvsp[0].str); } -#line 5687 "util/configparser.c" +#line 6449 "util/configparser.c" break; - case 501: /* auth_zonefile: VAR_ZONEFILE STRING_ARG */ -#line 2663 "./util/configparser.y" + case 511: +#line 2716 "./util/configparser.y" { OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->zonefile); cfg_parser->cfg->auths->zonefile = (yyvsp[0].str); } -#line 5697 "util/configparser.c" +#line 6459 "util/configparser.c" break; - case 502: /* auth_master: VAR_MASTER STRING_ARG */ -#line 2670 "./util/configparser.y" + case 512: +#line 2723 "./util/configparser.y" { OUTYY(("P(master:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5707 "util/configparser.c" +#line 6469 "util/configparser.c" break; - case 503: /* auth_url: VAR_URL STRING_ARG */ -#line 2677 "./util/configparser.y" + case 513: +#line 2730 "./util/configparser.y" { OUTYY(("P(url:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5717 "util/configparser.c" +#line 6479 "util/configparser.c" break; - case 504: /* auth_allow_notify: VAR_ALLOW_NOTIFY STRING_ARG */ -#line 2684 "./util/configparser.y" + case 514: +#line 2737 "./util/configparser.y" { OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5728 "util/configparser.c" +#line 6490 "util/configparser.c" break; - case 505: /* auth_for_downstream: VAR_FOR_DOWNSTREAM STRING_ARG */ -#line 2692 "./util/configparser.y" + case 515: +#line 2745 "./util/configparser.y" { OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5737,11 +6499,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5741 "util/configparser.c" +#line 6503 "util/configparser.c" break; - case 506: /* auth_for_upstream: VAR_FOR_UPSTREAM STRING_ARG */ -#line 2702 "./util/configparser.y" + case 516: +#line 2755 "./util/configparser.y" { OUTYY(("P(for-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5750,11 +6512,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5754 "util/configparser.c" +#line 6516 "util/configparser.c" break; - case 507: /* auth_fallback_enabled: VAR_FALLBACK_ENABLED STRING_ARG */ -#line 2712 "./util/configparser.y" + case 517: +#line 2765 "./util/configparser.y" { OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5763,11 +6525,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5767 "util/configparser.c" +#line 6529 "util/configparser.c" break; - case 508: /* view_name: VAR_NAME STRING_ARG */ -#line 2722 "./util/configparser.y" + case 518: +#line 2775 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) @@ -5776,11 +6538,11 @@ yyreduce: free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } -#line 5780 "util/configparser.c" +#line 6542 "util/configparser.c" break; - case 509: /* view_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */ -#line 2732 "./util/configparser.y" + case 519: +#line 2785 "./util/configparser.y" { 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 && @@ -5818,11 +6580,11 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 5822 "util/configparser.c" +#line 6584 "util/configparser.c" break; - case 510: /* view_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */ -#line 2771 "./util/configparser.y" + case 520: +#line 2824 "./util/configparser.y" { OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -5831,33 +6593,33 @@ yyreduce: fatal_exit("out of memory adding per-view " "response-ip action"); } -#line 5835 "util/configparser.c" +#line 6597 "util/configparser.c" break; - case 511: /* view_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */ -#line 2781 "./util/configparser.y" + case 521: +#line 2834 "./util/configparser.y" { OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert( &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 5846 "util/configparser.c" +#line 6608 "util/configparser.c" break; - case 512: /* view_local_data: VAR_LOCAL_DATA STRING_ARG */ -#line 2789 "./util/configparser.y" + case 522: +#line 2842 "./util/configparser.y" { OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) { fatal_exit("out of memory adding local-data"); } } -#line 5857 "util/configparser.c" +#line 6619 "util/configparser.c" break; - case 513: /* view_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */ -#line 2797 "./util/configparser.y" + case 523: +#line 2850 "./util/configparser.y" { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -5871,11 +6633,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 5875 "util/configparser.c" +#line 6637 "util/configparser.c" break; - case 514: /* view_first: VAR_VIEW_FIRST STRING_ARG */ -#line 2812 "./util/configparser.y" + case 524: +#line 2865 "./util/configparser.y" { OUTYY(("P(view-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5883,19 +6645,19 @@ yyreduce: else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5887 "util/configparser.c" +#line 6649 "util/configparser.c" break; - case 515: /* rcstart: VAR_REMOTE_CONTROL */ -#line 2821 "./util/configparser.y" + case 525: +#line 2874 "./util/configparser.y" { OUTYY(("\nP(remote-control:)\n")); } -#line 5895 "util/configparser.c" +#line 6657 "util/configparser.c" break; - case 526: /* rc_control_enable: VAR_CONTROL_ENABLE STRING_ARG */ -#line 2832 "./util/configparser.y" + case 536: +#line 2885 "./util/configparser.y" { OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5904,11 +6666,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5908 "util/configparser.c" +#line 6670 "util/configparser.c" break; - case 527: /* rc_control_port: VAR_CONTROL_PORT STRING_ARG */ -#line 2842 "./util/configparser.y" + case 537: +#line 2895 "./util/configparser.y" { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5916,79 +6678,79 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5920 "util/configparser.c" +#line 6682 "util/configparser.c" break; - case 528: /* rc_control_interface: VAR_CONTROL_INTERFACE STRING_ARG */ -#line 2851 "./util/configparser.y" + case 538: +#line 2904 "./util/configparser.y" { OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5930 "util/configparser.c" +#line 6692 "util/configparser.c" break; - case 529: /* rc_control_use_cert: VAR_CONTROL_USE_CERT STRING_ARG */ -#line 2858 "./util/configparser.y" + case 539: +#line 2911 "./util/configparser.y" { OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5940 "util/configparser.c" +#line 6702 "util/configparser.c" break; - case 530: /* rc_server_key_file: VAR_SERVER_KEY_FILE STRING_ARG */ -#line 2865 "./util/configparser.y" + case 540: +#line 2918 "./util/configparser.y" { 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 5950 "util/configparser.c" +#line 6712 "util/configparser.c" break; - case 531: /* rc_server_cert_file: VAR_SERVER_CERT_FILE STRING_ARG */ -#line 2872 "./util/configparser.y" + case 541: +#line 2925 "./util/configparser.y" { 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 5960 "util/configparser.c" +#line 6722 "util/configparser.c" break; - case 532: /* rc_control_key_file: VAR_CONTROL_KEY_FILE STRING_ARG */ -#line 2879 "./util/configparser.y" + case 542: +#line 2932 "./util/configparser.y" { 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 5970 "util/configparser.c" +#line 6732 "util/configparser.c" break; - case 533: /* rc_control_cert_file: VAR_CONTROL_CERT_FILE STRING_ARG */ -#line 2886 "./util/configparser.y" + case 543: +#line 2939 "./util/configparser.y" { 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 5980 "util/configparser.c" +#line 6742 "util/configparser.c" break; - case 534: /* dtstart: VAR_DNSTAP */ -#line 2893 "./util/configparser.y" + case 544: +#line 2946 "./util/configparser.y" { OUTYY(("\nP(dnstap:)\n")); } -#line 5988 "util/configparser.c" +#line 6750 "util/configparser.c" break; - case 556: /* dt_dnstap_enable: VAR_DNSTAP_ENABLE STRING_ARG */ -#line 2913 "./util/configparser.y" + case 566: +#line 2966 "./util/configparser.y" { OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5996,11 +6758,11 @@ yyreduce: else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6000 "util/configparser.c" +#line 6762 "util/configparser.c" break; - case 557: /* dt_dnstap_bidirectional: VAR_DNSTAP_BIDIRECTIONAL STRING_ARG */ -#line 2922 "./util/configparser.y" + case 567: +#line 2975 "./util/configparser.y" { OUTYY(("P(dt_dnstap_bidirectional:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6009,31 +6771,31 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6013 "util/configparser.c" +#line 6775 "util/configparser.c" break; - case 558: /* dt_dnstap_socket_path: VAR_DNSTAP_SOCKET_PATH STRING_ARG */ -#line 2932 "./util/configparser.y" + case 568: +#line 2985 "./util/configparser.y" { 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 6023 "util/configparser.c" +#line 6785 "util/configparser.c" break; - case 559: /* dt_dnstap_ip: VAR_DNSTAP_IP STRING_ARG */ -#line 2939 "./util/configparser.y" + case 569: +#line 2992 "./util/configparser.y" { OUTYY(("P(dt_dnstap_ip:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_ip); cfg_parser->cfg->dnstap_ip = (yyvsp[0].str); } -#line 6033 "util/configparser.c" +#line 6795 "util/configparser.c" break; - case 560: /* dt_dnstap_tls: VAR_DNSTAP_TLS STRING_ARG */ -#line 2946 "./util/configparser.y" + case 570: +#line 2999 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6041,51 +6803,51 @@ yyreduce: else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6045 "util/configparser.c" +#line 6807 "util/configparser.c" break; - case 561: /* dt_dnstap_tls_server_name: VAR_DNSTAP_TLS_SERVER_NAME STRING_ARG */ -#line 2955 "./util/configparser.y" + case 571: +#line 3008 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_server_name:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_server_name); cfg_parser->cfg->dnstap_tls_server_name = (yyvsp[0].str); } -#line 6055 "util/configparser.c" +#line 6817 "util/configparser.c" break; - case 562: /* dt_dnstap_tls_cert_bundle: VAR_DNSTAP_TLS_CERT_BUNDLE STRING_ARG */ -#line 2962 "./util/configparser.y" + case 572: +#line 3015 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_cert_bundle); cfg_parser->cfg->dnstap_tls_cert_bundle = (yyvsp[0].str); } -#line 6065 "util/configparser.c" +#line 6827 "util/configparser.c" break; - case 563: /* dt_dnstap_tls_client_key_file: VAR_DNSTAP_TLS_CLIENT_KEY_FILE STRING_ARG */ -#line 2969 "./util/configparser.y" + case 573: +#line 3022 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_client_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_client_key_file); cfg_parser->cfg->dnstap_tls_client_key_file = (yyvsp[0].str); } -#line 6075 "util/configparser.c" +#line 6837 "util/configparser.c" break; - case 564: /* dt_dnstap_tls_client_cert_file: VAR_DNSTAP_TLS_CLIENT_CERT_FILE STRING_ARG */ -#line 2976 "./util/configparser.y" + case 574: +#line 3029 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_client_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_client_cert_file); cfg_parser->cfg->dnstap_tls_client_cert_file = (yyvsp[0].str); } -#line 6085 "util/configparser.c" +#line 6847 "util/configparser.c" break; - case 565: /* dt_dnstap_send_identity: VAR_DNSTAP_SEND_IDENTITY STRING_ARG */ -#line 2983 "./util/configparser.y" + case 575: +#line 3036 "./util/configparser.y" { OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6093,11 +6855,11 @@ yyreduce: else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6097 "util/configparser.c" +#line 6859 "util/configparser.c" break; - case 566: /* dt_dnstap_send_version: VAR_DNSTAP_SEND_VERSION STRING_ARG */ -#line 2992 "./util/configparser.y" + case 576: +#line 3045 "./util/configparser.y" { OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6105,31 +6867,31 @@ yyreduce: else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6109 "util/configparser.c" +#line 6871 "util/configparser.c" break; - case 567: /* dt_dnstap_identity: VAR_DNSTAP_IDENTITY STRING_ARG */ -#line 3001 "./util/configparser.y" + case 577: +#line 3054 "./util/configparser.y" { 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 6119 "util/configparser.c" +#line 6881 "util/configparser.c" break; - case 568: /* dt_dnstap_version: VAR_DNSTAP_VERSION STRING_ARG */ -#line 3008 "./util/configparser.y" + case 578: +#line 3061 "./util/configparser.y" { 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 6129 "util/configparser.c" +#line 6891 "util/configparser.c" break; - case 569: /* dt_dnstap_log_resolver_query_messages: VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES STRING_ARG */ -#line 3015 "./util/configparser.y" + case 579: +#line 3068 "./util/configparser.y" { 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) @@ -6138,11 +6900,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6142 "util/configparser.c" +#line 6904 "util/configparser.c" break; - case 570: /* dt_dnstap_log_resolver_response_messages: VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES STRING_ARG */ -#line 3025 "./util/configparser.y" + case 580: +#line 3078 "./util/configparser.y" { 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) @@ -6151,11 +6913,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6155 "util/configparser.c" +#line 6917 "util/configparser.c" break; - case 571: /* dt_dnstap_log_client_query_messages: VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES STRING_ARG */ -#line 3035 "./util/configparser.y" + case 581: +#line 3088 "./util/configparser.y" { 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) @@ -6164,11 +6926,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6168 "util/configparser.c" +#line 6930 "util/configparser.c" break; - case 572: /* dt_dnstap_log_client_response_messages: VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES STRING_ARG */ -#line 3045 "./util/configparser.y" + case 582: +#line 3098 "./util/configparser.y" { 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) @@ -6177,11 +6939,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6181 "util/configparser.c" +#line 6943 "util/configparser.c" break; - case 573: /* dt_dnstap_log_forwarder_query_messages: VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES STRING_ARG */ -#line 3055 "./util/configparser.y" + case 583: +#line 3108 "./util/configparser.y" { 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) @@ -6190,11 +6952,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6194 "util/configparser.c" +#line 6956 "util/configparser.c" break; - case 574: /* dt_dnstap_log_forwarder_response_messages: VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES STRING_ARG */ -#line 3065 "./util/configparser.y" + case 584: +#line 3118 "./util/configparser.y" { 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) @@ -6203,47 +6965,47 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6207 "util/configparser.c" +#line 6969 "util/configparser.c" break; - case 575: /* pythonstart: VAR_PYTHON */ -#line 3075 "./util/configparser.y" + case 585: +#line 3128 "./util/configparser.y" { OUTYY(("\nP(python:)\n")); } -#line 6215 "util/configparser.c" +#line 6977 "util/configparser.c" break; - case 579: /* py_script: VAR_PYTHON_SCRIPT STRING_ARG */ -#line 3084 "./util/configparser.y" + case 589: +#line 3137 "./util/configparser.y" { OUTYY(("P(python-script:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6225 "util/configparser.c" +#line 6987 "util/configparser.c" break; - case 580: /* dynlibstart: VAR_DYNLIB */ -#line 3090 "./util/configparser.y" + case 590: +#line 3143 "./util/configparser.y" { OUTYY(("\nP(dynlib:)\n")); } -#line 6233 "util/configparser.c" +#line 6995 "util/configparser.c" break; - case 584: /* dl_file: VAR_DYNLIB_FILE STRING_ARG */ -#line 3099 "./util/configparser.y" + case 594: +#line 3152 "./util/configparser.y" { OUTYY(("P(dynlib-file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6243 "util/configparser.c" +#line 7005 "util/configparser.c" break; - case 585: /* server_disable_dnssec_lame_check: VAR_DISABLE_DNSSEC_LAME_CHECK STRING_ARG */ -#line 3105 "./util/configparser.y" + case 595: +#line 3158 "./util/configparser.y" { OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str))); if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6252,21 +7014,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6256 "util/configparser.c" +#line 7018 "util/configparser.c" break; - case 586: /* server_log_identity: VAR_LOG_IDENTITY STRING_ARG */ -#line 3115 "./util/configparser.y" + case 596: +#line 3168 "./util/configparser.y" { 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 6266 "util/configparser.c" +#line 7028 "util/configparser.c" break; - case 587: /* server_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */ -#line 3122 "./util/configparser.y" + case 597: +#line 3175 "./util/configparser.y" { OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -6274,30 +7036,30 @@ yyreduce: (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } -#line 6278 "util/configparser.c" +#line 7040 "util/configparser.c" break; - case 588: /* server_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */ -#line 3131 "./util/configparser.y" + case 598: +#line 3184 "./util/configparser.y" { OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 6289 "util/configparser.c" +#line 7051 "util/configparser.c" break; - case 589: /* dnscstart: VAR_DNSCRYPT */ -#line 3139 "./util/configparser.y" + case 599: +#line 3192 "./util/configparser.y" { OUTYY(("\nP(dnscrypt:)\n")); } -#line 6297 "util/configparser.c" +#line 7059 "util/configparser.c" break; - case 602: /* dnsc_dnscrypt_enable: VAR_DNSCRYPT_ENABLE STRING_ARG */ -#line 3155 "./util/configparser.y" + case 612: +#line 3208 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6305,11 +7067,11 @@ yyreduce: else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6309 "util/configparser.c" +#line 7071 "util/configparser.c" break; - case 603: /* dnsc_dnscrypt_port: VAR_DNSCRYPT_PORT STRING_ARG */ -#line 3165 "./util/configparser.y" + case 613: +#line 3218 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6317,21 +7079,21 @@ yyreduce: else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6321 "util/configparser.c" +#line 7083 "util/configparser.c" break; - case 604: /* dnsc_dnscrypt_provider: VAR_DNSCRYPT_PROVIDER STRING_ARG */ -#line 3174 "./util/configparser.y" + case 614: +#line 3227 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnscrypt_provider); cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str); } -#line 6331 "util/configparser.c" +#line 7093 "util/configparser.c" break; - case 605: /* dnsc_dnscrypt_provider_cert: VAR_DNSCRYPT_PROVIDER_CERT STRING_ARG */ -#line 3181 "./util/configparser.y" + case 615: +#line 3234 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) @@ -6339,21 +7101,21 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert"); } -#line 6343 "util/configparser.c" +#line 7105 "util/configparser.c" break; - case 606: /* dnsc_dnscrypt_provider_cert_rotated: VAR_DNSCRYPT_PROVIDER_CERT_ROTATED STRING_ARG */ -#line 3190 "./util/configparser.y" + case 616: +#line 3243 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert-rotated"); } -#line 6353 "util/configparser.c" +#line 7115 "util/configparser.c" break; - case 607: /* dnsc_dnscrypt_secret_key: VAR_DNSCRYPT_SECRET_KEY STRING_ARG */ -#line 3197 "./util/configparser.y" + case 617: +#line 3250 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) @@ -6361,22 +7123,22 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-secret-key"); } -#line 6365 "util/configparser.c" +#line 7127 "util/configparser.c" break; - case 608: /* dnsc_dnscrypt_shared_secret_cache_size: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE STRING_ARG */ -#line 3206 "./util/configparser.y" + case 618: +#line 3259 "./util/configparser.y" { OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 6376 "util/configparser.c" +#line 7138 "util/configparser.c" break; - case 609: /* dnsc_dnscrypt_shared_secret_cache_slabs: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS STRING_ARG */ -#line 3214 "./util/configparser.y" + case 619: +#line 3267 "./util/configparser.y" { OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6388,22 +7150,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6392 "util/configparser.c" +#line 7154 "util/configparser.c" break; - case 610: /* dnsc_dnscrypt_nonce_cache_size: VAR_DNSCRYPT_NONCE_CACHE_SIZE STRING_ARG */ -#line 3227 "./util/configparser.y" + case 620: +#line 3280 "./util/configparser.y" { OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 6403 "util/configparser.c" +#line 7165 "util/configparser.c" break; - case 611: /* dnsc_dnscrypt_nonce_cache_slabs: VAR_DNSCRYPT_NONCE_CACHE_SLABS STRING_ARG */ -#line 3235 "./util/configparser.y" + case 621: +#line 3288 "./util/configparser.y" { OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6415,19 +7177,19 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6419 "util/configparser.c" +#line 7181 "util/configparser.c" break; - case 612: /* cachedbstart: VAR_CACHEDB */ -#line 3248 "./util/configparser.y" + case 622: +#line 3301 "./util/configparser.y" { OUTYY(("\nP(cachedb:)\n")); } -#line 6427 "util/configparser.c" +#line 7189 "util/configparser.c" break; - case 621: /* cachedb_backend_name: VAR_CACHEDB_BACKEND STRING_ARG */ -#line 3259 "./util/configparser.y" + case 631: +#line 3312 "./util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); @@ -6438,11 +7200,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6442 "util/configparser.c" +#line 7204 "util/configparser.c" break; - case 622: /* cachedb_secret_seed: VAR_CACHEDB_SECRETSEED STRING_ARG */ -#line 3271 "./util/configparser.y" + case 632: +#line 3324 "./util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); @@ -6453,11 +7215,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6457 "util/configparser.c" +#line 7219 "util/configparser.c" break; - case 623: /* redis_server_host: VAR_CACHEDB_REDISHOST STRING_ARG */ -#line 3283 "./util/configparser.y" + case 633: +#line 3336 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str))); @@ -6468,11 +7230,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6472 "util/configparser.c" +#line 7234 "util/configparser.c" break; - case 624: /* redis_server_port: VAR_CACHEDB_REDISPORT STRING_ARG */ -#line 3295 "./util/configparser.y" + case 634: +#line 3348 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) int port; @@ -6486,11 +7248,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6490 "util/configparser.c" +#line 7252 "util/configparser.c" break; - case 625: /* redis_timeout: VAR_CACHEDB_REDISTIMEOUT STRING_ARG */ -#line 3310 "./util/configparser.y" + case 635: +#line 3363 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str))); @@ -6502,11 +7264,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6506 "util/configparser.c" +#line 7268 "util/configparser.c" break; - case 626: /* redis_expire_records: VAR_CACHEDB_REDISEXPIRERECORDS STRING_ARG */ -#line 3323 "./util/configparser.y" + case 636: +#line 3376 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[0].str))); @@ -6518,11 +7280,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6522 "util/configparser.c" +#line 7284 "util/configparser.c" break; - case 627: /* server_tcp_connection_limit: VAR_TCP_CONNECTION_LIMIT STRING_ARG STRING_ARG */ -#line 3336 "./util/configparser.y" + case 637: +#line 3389 "./util/configparser.y" { OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if (atoi((yyvsp[0].str)) < 0) @@ -6532,19 +7294,19 @@ yyreduce: fatal_exit("out of memory adding tcp connection limit"); } } -#line 6536 "util/configparser.c" +#line 7298 "util/configparser.c" break; - case 628: /* ipsetstart: VAR_IPSET */ -#line 3347 "./util/configparser.y" + case 638: +#line 3400 "./util/configparser.y" { OUTYY(("\nP(ipset:)\n")); } -#line 6544 "util/configparser.c" +#line 7306 "util/configparser.c" break; - case 633: /* ipset_name_v4: VAR_IPSET_NAME_V4 STRING_ARG */ -#line 3356 "./util/configparser.y" + case 643: +#line 3409 "./util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str))); @@ -6558,11 +7320,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6562 "util/configparser.c" +#line 7324 "util/configparser.c" break; - case 634: /* ipset_name_v6: VAR_IPSET_NAME_V6 STRING_ARG */ -#line 3371 "./util/configparser.y" + case 644: +#line 3424 "./util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str))); @@ -6576,11 +7338,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6580 "util/configparser.c" +#line 7342 "util/configparser.c" break; -#line 6584 "util/configparser.c" +#line 7346 "util/configparser.c" default: break; } @@ -6740,13 +7502,13 @@ yyabortlab: yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; - goto yyreturn; + /* Fall through. */ #endif -/*-------------------------------------------------------. -| yyreturn -- parsing is finished, clean up and return. | -`-------------------------------------------------------*/ +/*-----------------------------------------------------. +| yyreturn -- parsing is finished, return the result. | +`-----------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { @@ -6774,7 +7536,7 @@ yyreturn: return yyresult; } -#line 3385 "./util/configparser.y" +#line 3438 "./util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index 0e82fd03d..2ca046ba0 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 3.7. */ +/* A Bison parser, made by GNU Bison 3.6.4. */ /* Bison interface for Yacc-like parsers in C @@ -280,81 +280,86 @@ extern int yydebug; VAR_SERVE_EXPIRED_TTL_RESET = 481, /* VAR_SERVE_EXPIRED_TTL_RESET */ VAR_SERVE_EXPIRED_REPLY_TTL = 482, /* VAR_SERVE_EXPIRED_REPLY_TTL */ VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 483, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ - VAR_FAKE_DSA = 484, /* VAR_FAKE_DSA */ - VAR_FAKE_SHA1 = 485, /* VAR_FAKE_SHA1 */ - VAR_LOG_IDENTITY = 486, /* VAR_LOG_IDENTITY */ - VAR_HIDE_TRUSTANCHOR = 487, /* VAR_HIDE_TRUSTANCHOR */ - VAR_TRUST_ANCHOR_SIGNALING = 488, /* VAR_TRUST_ANCHOR_SIGNALING */ - VAR_AGGRESSIVE_NSEC = 489, /* VAR_AGGRESSIVE_NSEC */ - VAR_USE_SYSTEMD = 490, /* VAR_USE_SYSTEMD */ - VAR_SHM_ENABLE = 491, /* VAR_SHM_ENABLE */ - VAR_SHM_KEY = 492, /* VAR_SHM_KEY */ - VAR_ROOT_KEY_SENTINEL = 493, /* VAR_ROOT_KEY_SENTINEL */ - VAR_DNSCRYPT = 494, /* VAR_DNSCRYPT */ - VAR_DNSCRYPT_ENABLE = 495, /* VAR_DNSCRYPT_ENABLE */ - VAR_DNSCRYPT_PORT = 496, /* VAR_DNSCRYPT_PORT */ - VAR_DNSCRYPT_PROVIDER = 497, /* VAR_DNSCRYPT_PROVIDER */ - VAR_DNSCRYPT_SECRET_KEY = 498, /* VAR_DNSCRYPT_SECRET_KEY */ - VAR_DNSCRYPT_PROVIDER_CERT = 499, /* VAR_DNSCRYPT_PROVIDER_CERT */ - VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 500, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 501, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 502, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 503, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 504, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ - VAR_IPSECMOD_ENABLED = 505, /* VAR_IPSECMOD_ENABLED */ - VAR_IPSECMOD_HOOK = 506, /* VAR_IPSECMOD_HOOK */ - VAR_IPSECMOD_IGNORE_BOGUS = 507, /* VAR_IPSECMOD_IGNORE_BOGUS */ - VAR_IPSECMOD_MAX_TTL = 508, /* VAR_IPSECMOD_MAX_TTL */ - VAR_IPSECMOD_WHITELIST = 509, /* VAR_IPSECMOD_WHITELIST */ - VAR_IPSECMOD_STRICT = 510, /* VAR_IPSECMOD_STRICT */ - VAR_CACHEDB = 511, /* VAR_CACHEDB */ - VAR_CACHEDB_BACKEND = 512, /* VAR_CACHEDB_BACKEND */ - VAR_CACHEDB_SECRETSEED = 513, /* VAR_CACHEDB_SECRETSEED */ - VAR_CACHEDB_REDISHOST = 514, /* VAR_CACHEDB_REDISHOST */ - VAR_CACHEDB_REDISPORT = 515, /* VAR_CACHEDB_REDISPORT */ - VAR_CACHEDB_REDISTIMEOUT = 516, /* VAR_CACHEDB_REDISTIMEOUT */ - VAR_CACHEDB_REDISEXPIRERECORDS = 517, /* VAR_CACHEDB_REDISEXPIRERECORDS */ - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 518, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ - VAR_FOR_UPSTREAM = 519, /* VAR_FOR_UPSTREAM */ - VAR_AUTH_ZONE = 520, /* VAR_AUTH_ZONE */ - VAR_ZONEFILE = 521, /* VAR_ZONEFILE */ - VAR_MASTER = 522, /* VAR_MASTER */ - VAR_URL = 523, /* VAR_URL */ - VAR_FOR_DOWNSTREAM = 524, /* VAR_FOR_DOWNSTREAM */ - VAR_FALLBACK_ENABLED = 525, /* VAR_FALLBACK_ENABLED */ - VAR_TLS_ADDITIONAL_PORT = 526, /* VAR_TLS_ADDITIONAL_PORT */ - VAR_LOW_RTT = 527, /* VAR_LOW_RTT */ - VAR_LOW_RTT_PERMIL = 528, /* VAR_LOW_RTT_PERMIL */ - VAR_FAST_SERVER_PERMIL = 529, /* VAR_FAST_SERVER_PERMIL */ - VAR_FAST_SERVER_NUM = 530, /* VAR_FAST_SERVER_NUM */ - VAR_ALLOW_NOTIFY = 531, /* VAR_ALLOW_NOTIFY */ - VAR_TLS_WIN_CERT = 532, /* VAR_TLS_WIN_CERT */ - VAR_TCP_CONNECTION_LIMIT = 533, /* VAR_TCP_CONNECTION_LIMIT */ - VAR_FORWARD_NO_CACHE = 534, /* VAR_FORWARD_NO_CACHE */ - VAR_STUB_NO_CACHE = 535, /* VAR_STUB_NO_CACHE */ - VAR_LOG_SERVFAIL = 536, /* VAR_LOG_SERVFAIL */ - VAR_DENY_ANY = 537, /* VAR_DENY_ANY */ - VAR_UNKNOWN_SERVER_TIME_LIMIT = 538, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ - VAR_LOG_TAG_QUERYREPLY = 539, /* VAR_LOG_TAG_QUERYREPLY */ - VAR_STREAM_WAIT_SIZE = 540, /* VAR_STREAM_WAIT_SIZE */ - VAR_TLS_CIPHERS = 541, /* VAR_TLS_CIPHERS */ - VAR_TLS_CIPHERSUITES = 542, /* VAR_TLS_CIPHERSUITES */ - VAR_TLS_USE_SNI = 543, /* VAR_TLS_USE_SNI */ - VAR_IPSET = 544, /* VAR_IPSET */ - VAR_IPSET_NAME_V4 = 545, /* VAR_IPSET_NAME_V4 */ - VAR_IPSET_NAME_V6 = 546, /* VAR_IPSET_NAME_V6 */ - VAR_TLS_SESSION_TICKET_KEYS = 547, /* VAR_TLS_SESSION_TICKET_KEYS */ - VAR_RPZ = 548, /* VAR_RPZ */ - VAR_TAGS = 549, /* VAR_TAGS */ - VAR_RPZ_ACTION_OVERRIDE = 550, /* VAR_RPZ_ACTION_OVERRIDE */ - VAR_RPZ_CNAME_OVERRIDE = 551, /* VAR_RPZ_CNAME_OVERRIDE */ - VAR_RPZ_LOG = 552, /* VAR_RPZ_LOG */ - VAR_RPZ_LOG_NAME = 553, /* VAR_RPZ_LOG_NAME */ - VAR_DYNLIB = 554, /* VAR_DYNLIB */ - VAR_DYNLIB_FILE = 555, /* VAR_DYNLIB_FILE */ - VAR_EDNS_CLIENT_STRING = 556, /* VAR_EDNS_CLIENT_STRING */ - VAR_EDNS_CLIENT_STRING_OPCODE = 557, /* VAR_EDNS_CLIENT_STRING_OPCODE */ - VAR_NSID = 558 /* VAR_NSID */ + VAR_SERVE_ORIGINAL_TTL = 484, /* VAR_SERVE_ORIGINAL_TTL */ + VAR_FAKE_DSA = 485, /* VAR_FAKE_DSA */ + VAR_FAKE_SHA1 = 486, /* VAR_FAKE_SHA1 */ + VAR_LOG_IDENTITY = 487, /* VAR_LOG_IDENTITY */ + VAR_HIDE_TRUSTANCHOR = 488, /* VAR_HIDE_TRUSTANCHOR */ + VAR_TRUST_ANCHOR_SIGNALING = 489, /* VAR_TRUST_ANCHOR_SIGNALING */ + VAR_AGGRESSIVE_NSEC = 490, /* VAR_AGGRESSIVE_NSEC */ + VAR_USE_SYSTEMD = 491, /* VAR_USE_SYSTEMD */ + VAR_SHM_ENABLE = 492, /* VAR_SHM_ENABLE */ + VAR_SHM_KEY = 493, /* VAR_SHM_KEY */ + VAR_ROOT_KEY_SENTINEL = 494, /* VAR_ROOT_KEY_SENTINEL */ + VAR_DNSCRYPT = 495, /* VAR_DNSCRYPT */ + VAR_DNSCRYPT_ENABLE = 496, /* VAR_DNSCRYPT_ENABLE */ + VAR_DNSCRYPT_PORT = 497, /* VAR_DNSCRYPT_PORT */ + VAR_DNSCRYPT_PROVIDER = 498, /* VAR_DNSCRYPT_PROVIDER */ + VAR_DNSCRYPT_SECRET_KEY = 499, /* VAR_DNSCRYPT_SECRET_KEY */ + VAR_DNSCRYPT_PROVIDER_CERT = 500, /* VAR_DNSCRYPT_PROVIDER_CERT */ + VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 501, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 502, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 503, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ + VAR_DNSCRYPT_NONCE_CACHE_SIZE = 504, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ + VAR_DNSCRYPT_NONCE_CACHE_SLABS = 505, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ + VAR_PAD_RESPONSES = 506, /* VAR_PAD_RESPONSES */ + VAR_PAD_RESPONSES_BLOCK_SIZE = 507, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ + VAR_PAD_QUERIES = 508, /* VAR_PAD_QUERIES */ + VAR_PAD_QUERIES_BLOCK_SIZE = 509, /* VAR_PAD_QUERIES_BLOCK_SIZE */ + VAR_IPSECMOD_ENABLED = 510, /* VAR_IPSECMOD_ENABLED */ + VAR_IPSECMOD_HOOK = 511, /* VAR_IPSECMOD_HOOK */ + VAR_IPSECMOD_IGNORE_BOGUS = 512, /* VAR_IPSECMOD_IGNORE_BOGUS */ + VAR_IPSECMOD_MAX_TTL = 513, /* VAR_IPSECMOD_MAX_TTL */ + VAR_IPSECMOD_WHITELIST = 514, /* VAR_IPSECMOD_WHITELIST */ + VAR_IPSECMOD_STRICT = 515, /* VAR_IPSECMOD_STRICT */ + VAR_CACHEDB = 516, /* VAR_CACHEDB */ + VAR_CACHEDB_BACKEND = 517, /* VAR_CACHEDB_BACKEND */ + VAR_CACHEDB_SECRETSEED = 518, /* VAR_CACHEDB_SECRETSEED */ + VAR_CACHEDB_REDISHOST = 519, /* VAR_CACHEDB_REDISHOST */ + VAR_CACHEDB_REDISPORT = 520, /* VAR_CACHEDB_REDISPORT */ + VAR_CACHEDB_REDISTIMEOUT = 521, /* VAR_CACHEDB_REDISTIMEOUT */ + VAR_CACHEDB_REDISEXPIRERECORDS = 522, /* VAR_CACHEDB_REDISEXPIRERECORDS */ + VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 523, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ + VAR_FOR_UPSTREAM = 524, /* VAR_FOR_UPSTREAM */ + VAR_AUTH_ZONE = 525, /* VAR_AUTH_ZONE */ + VAR_ZONEFILE = 526, /* VAR_ZONEFILE */ + VAR_MASTER = 527, /* VAR_MASTER */ + VAR_URL = 528, /* VAR_URL */ + VAR_FOR_DOWNSTREAM = 529, /* VAR_FOR_DOWNSTREAM */ + VAR_FALLBACK_ENABLED = 530, /* VAR_FALLBACK_ENABLED */ + VAR_TLS_ADDITIONAL_PORT = 531, /* VAR_TLS_ADDITIONAL_PORT */ + VAR_LOW_RTT = 532, /* VAR_LOW_RTT */ + VAR_LOW_RTT_PERMIL = 533, /* VAR_LOW_RTT_PERMIL */ + VAR_FAST_SERVER_PERMIL = 534, /* VAR_FAST_SERVER_PERMIL */ + VAR_FAST_SERVER_NUM = 535, /* VAR_FAST_SERVER_NUM */ + VAR_ALLOW_NOTIFY = 536, /* VAR_ALLOW_NOTIFY */ + VAR_TLS_WIN_CERT = 537, /* VAR_TLS_WIN_CERT */ + VAR_TCP_CONNECTION_LIMIT = 538, /* VAR_TCP_CONNECTION_LIMIT */ + VAR_FORWARD_NO_CACHE = 539, /* VAR_FORWARD_NO_CACHE */ + VAR_STUB_NO_CACHE = 540, /* VAR_STUB_NO_CACHE */ + VAR_LOG_SERVFAIL = 541, /* VAR_LOG_SERVFAIL */ + VAR_DENY_ANY = 542, /* VAR_DENY_ANY */ + VAR_UNKNOWN_SERVER_TIME_LIMIT = 543, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ + VAR_LOG_TAG_QUERYREPLY = 544, /* VAR_LOG_TAG_QUERYREPLY */ + VAR_STREAM_WAIT_SIZE = 545, /* VAR_STREAM_WAIT_SIZE */ + VAR_TLS_CIPHERS = 546, /* VAR_TLS_CIPHERS */ + VAR_TLS_CIPHERSUITES = 547, /* VAR_TLS_CIPHERSUITES */ + VAR_TLS_USE_SNI = 548, /* VAR_TLS_USE_SNI */ + VAR_IPSET = 549, /* VAR_IPSET */ + VAR_IPSET_NAME_V4 = 550, /* VAR_IPSET_NAME_V4 */ + VAR_IPSET_NAME_V6 = 551, /* VAR_IPSET_NAME_V6 */ + VAR_TLS_SESSION_TICKET_KEYS = 552, /* VAR_TLS_SESSION_TICKET_KEYS */ + VAR_RPZ = 553, /* VAR_RPZ */ + VAR_TAGS = 554, /* VAR_TAGS */ + VAR_RPZ_ACTION_OVERRIDE = 555, /* VAR_RPZ_ACTION_OVERRIDE */ + VAR_RPZ_CNAME_OVERRIDE = 556, /* VAR_RPZ_CNAME_OVERRIDE */ + VAR_RPZ_LOG = 557, /* VAR_RPZ_LOG */ + VAR_RPZ_LOG_NAME = 558, /* VAR_RPZ_LOG_NAME */ + VAR_DYNLIB = 559, /* VAR_DYNLIB */ + VAR_DYNLIB_FILE = 560, /* VAR_DYNLIB_FILE */ + VAR_EDNS_CLIENT_STRING = 561, /* VAR_EDNS_CLIENT_STRING */ + VAR_EDNS_CLIENT_STRING_OPCODE = 562, /* VAR_EDNS_CLIENT_STRING_OPCODE */ + VAR_NSID = 563 /* VAR_NSID */ }; typedef enum yytokentype yytoken_kind_t; #endif @@ -588,81 +593,86 @@ extern int yydebug; #define VAR_SERVE_EXPIRED_TTL_RESET 481 #define VAR_SERVE_EXPIRED_REPLY_TTL 482 #define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 483 -#define VAR_FAKE_DSA 484 -#define VAR_FAKE_SHA1 485 -#define VAR_LOG_IDENTITY 486 -#define VAR_HIDE_TRUSTANCHOR 487 -#define VAR_TRUST_ANCHOR_SIGNALING 488 -#define VAR_AGGRESSIVE_NSEC 489 -#define VAR_USE_SYSTEMD 490 -#define VAR_SHM_ENABLE 491 -#define VAR_SHM_KEY 492 -#define VAR_ROOT_KEY_SENTINEL 493 -#define VAR_DNSCRYPT 494 -#define VAR_DNSCRYPT_ENABLE 495 -#define VAR_DNSCRYPT_PORT 496 -#define VAR_DNSCRYPT_PROVIDER 497 -#define VAR_DNSCRYPT_SECRET_KEY 498 -#define VAR_DNSCRYPT_PROVIDER_CERT 499 -#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 500 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 501 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 502 -#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 503 -#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 504 -#define VAR_IPSECMOD_ENABLED 505 -#define VAR_IPSECMOD_HOOK 506 -#define VAR_IPSECMOD_IGNORE_BOGUS 507 -#define VAR_IPSECMOD_MAX_TTL 508 -#define VAR_IPSECMOD_WHITELIST 509 -#define VAR_IPSECMOD_STRICT 510 -#define VAR_CACHEDB 511 -#define VAR_CACHEDB_BACKEND 512 -#define VAR_CACHEDB_SECRETSEED 513 -#define VAR_CACHEDB_REDISHOST 514 -#define VAR_CACHEDB_REDISPORT 515 -#define VAR_CACHEDB_REDISTIMEOUT 516 -#define VAR_CACHEDB_REDISEXPIRERECORDS 517 -#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 518 -#define VAR_FOR_UPSTREAM 519 -#define VAR_AUTH_ZONE 520 -#define VAR_ZONEFILE 521 -#define VAR_MASTER 522 -#define VAR_URL 523 -#define VAR_FOR_DOWNSTREAM 524 -#define VAR_FALLBACK_ENABLED 525 -#define VAR_TLS_ADDITIONAL_PORT 526 -#define VAR_LOW_RTT 527 -#define VAR_LOW_RTT_PERMIL 528 -#define VAR_FAST_SERVER_PERMIL 529 -#define VAR_FAST_SERVER_NUM 530 -#define VAR_ALLOW_NOTIFY 531 -#define VAR_TLS_WIN_CERT 532 -#define VAR_TCP_CONNECTION_LIMIT 533 -#define VAR_FORWARD_NO_CACHE 534 -#define VAR_STUB_NO_CACHE 535 -#define VAR_LOG_SERVFAIL 536 -#define VAR_DENY_ANY 537 -#define VAR_UNKNOWN_SERVER_TIME_LIMIT 538 -#define VAR_LOG_TAG_QUERYREPLY 539 -#define VAR_STREAM_WAIT_SIZE 540 -#define VAR_TLS_CIPHERS 541 -#define VAR_TLS_CIPHERSUITES 542 -#define VAR_TLS_USE_SNI 543 -#define VAR_IPSET 544 -#define VAR_IPSET_NAME_V4 545 -#define VAR_IPSET_NAME_V6 546 -#define VAR_TLS_SESSION_TICKET_KEYS 547 -#define VAR_RPZ 548 -#define VAR_TAGS 549 -#define VAR_RPZ_ACTION_OVERRIDE 550 -#define VAR_RPZ_CNAME_OVERRIDE 551 -#define VAR_RPZ_LOG 552 -#define VAR_RPZ_LOG_NAME 553 -#define VAR_DYNLIB 554 -#define VAR_DYNLIB_FILE 555 -#define VAR_EDNS_CLIENT_STRING 556 -#define VAR_EDNS_CLIENT_STRING_OPCODE 557 -#define VAR_NSID 558 +#define VAR_SERVE_ORIGINAL_TTL 484 +#define VAR_FAKE_DSA 485 +#define VAR_FAKE_SHA1 486 +#define VAR_LOG_IDENTITY 487 +#define VAR_HIDE_TRUSTANCHOR 488 +#define VAR_TRUST_ANCHOR_SIGNALING 489 +#define VAR_AGGRESSIVE_NSEC 490 +#define VAR_USE_SYSTEMD 491 +#define VAR_SHM_ENABLE 492 +#define VAR_SHM_KEY 493 +#define VAR_ROOT_KEY_SENTINEL 494 +#define VAR_DNSCRYPT 495 +#define VAR_DNSCRYPT_ENABLE 496 +#define VAR_DNSCRYPT_PORT 497 +#define VAR_DNSCRYPT_PROVIDER 498 +#define VAR_DNSCRYPT_SECRET_KEY 499 +#define VAR_DNSCRYPT_PROVIDER_CERT 500 +#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 501 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 502 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 503 +#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 504 +#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 505 +#define VAR_PAD_RESPONSES 506 +#define VAR_PAD_RESPONSES_BLOCK_SIZE 507 +#define VAR_PAD_QUERIES 508 +#define VAR_PAD_QUERIES_BLOCK_SIZE 509 +#define VAR_IPSECMOD_ENABLED 510 +#define VAR_IPSECMOD_HOOK 511 +#define VAR_IPSECMOD_IGNORE_BOGUS 512 +#define VAR_IPSECMOD_MAX_TTL 513 +#define VAR_IPSECMOD_WHITELIST 514 +#define VAR_IPSECMOD_STRICT 515 +#define VAR_CACHEDB 516 +#define VAR_CACHEDB_BACKEND 517 +#define VAR_CACHEDB_SECRETSEED 518 +#define VAR_CACHEDB_REDISHOST 519 +#define VAR_CACHEDB_REDISPORT 520 +#define VAR_CACHEDB_REDISTIMEOUT 521 +#define VAR_CACHEDB_REDISEXPIRERECORDS 522 +#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 523 +#define VAR_FOR_UPSTREAM 524 +#define VAR_AUTH_ZONE 525 +#define VAR_ZONEFILE 526 +#define VAR_MASTER 527 +#define VAR_URL 528 +#define VAR_FOR_DOWNSTREAM 529 +#define VAR_FALLBACK_ENABLED 530 +#define VAR_TLS_ADDITIONAL_PORT 531 +#define VAR_LOW_RTT 532 +#define VAR_LOW_RTT_PERMIL 533 +#define VAR_FAST_SERVER_PERMIL 534 +#define VAR_FAST_SERVER_NUM 535 +#define VAR_ALLOW_NOTIFY 536 +#define VAR_TLS_WIN_CERT 537 +#define VAR_TCP_CONNECTION_LIMIT 538 +#define VAR_FORWARD_NO_CACHE 539 +#define VAR_STUB_NO_CACHE 540 +#define VAR_LOG_SERVFAIL 541 +#define VAR_DENY_ANY 542 +#define VAR_UNKNOWN_SERVER_TIME_LIMIT 543 +#define VAR_LOG_TAG_QUERYREPLY 544 +#define VAR_STREAM_WAIT_SIZE 545 +#define VAR_TLS_CIPHERS 546 +#define VAR_TLS_CIPHERSUITES 547 +#define VAR_TLS_USE_SNI 548 +#define VAR_IPSET 549 +#define VAR_IPSET_NAME_V4 550 +#define VAR_IPSET_NAME_V6 551 +#define VAR_TLS_SESSION_TICKET_KEYS 552 +#define VAR_RPZ 553 +#define VAR_TAGS 554 +#define VAR_RPZ_ACTION_OVERRIDE 555 +#define VAR_RPZ_CNAME_OVERRIDE 556 +#define VAR_RPZ_LOG 557 +#define VAR_RPZ_LOG_NAME 558 +#define VAR_DYNLIB 559 +#define VAR_DYNLIB_FILE 560 +#define VAR_EDNS_CLIENT_STRING 561 +#define VAR_EDNS_CLIENT_STRING_OPCODE 562 +#define VAR_NSID 563 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -672,7 +682,7 @@ union YYSTYPE char* str; -#line 676 "util/configparser.h" +#line 686 "util/configparser.h" }; typedef union YYSTYPE YYSTYPE; diff --git a/util/configparser.y b/util/configparser.y index e2388f0f5..272a97969 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -151,7 +151,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_ACCESS_CONTROL_TAG_DATA VAR_VIEW VAR_ACCESS_CONTROL_VIEW %token VAR_VIEW_FIRST VAR_SERVE_EXPIRED VAR_SERVE_EXPIRED_TTL %token VAR_SERVE_EXPIRED_TTL_RESET VAR_SERVE_EXPIRED_REPLY_TTL -%token VAR_SERVE_EXPIRED_CLIENT_TIMEOUT VAR_FAKE_DSA +%token VAR_SERVE_EXPIRED_CLIENT_TIMEOUT VAR_SERVE_ORIGINAL_TTL VAR_FAKE_DSA %token VAR_FAKE_SHA1 VAR_LOG_IDENTITY VAR_HIDE_TRUSTANCHOR %token VAR_TRUST_ANCHOR_SIGNALING VAR_AGGRESSIVE_NSEC VAR_USE_SYSTEMD %token VAR_SHM_ENABLE VAR_SHM_KEY VAR_ROOT_KEY_SENTINEL @@ -162,6 +162,8 @@ extern struct config_parser_state* cfg_parser; %token VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS %token VAR_DNSCRYPT_NONCE_CACHE_SIZE %token VAR_DNSCRYPT_NONCE_CACHE_SLABS +%token VAR_PAD_RESPONSES VAR_PAD_RESPONSES_BLOCK_SIZE +%token VAR_PAD_QUERIES VAR_PAD_QUERIES_BLOCK_SIZE %token VAR_IPSECMOD_ENABLED VAR_IPSECMOD_HOOK VAR_IPSECMOD_IGNORE_BOGUS %token VAR_IPSECMOD_MAX_TTL VAR_IPSECMOD_WHITELIST VAR_IPSECMOD_STRICT %token VAR_CACHEDB VAR_CACHEDB_BACKEND VAR_CACHEDB_SECRETSEED @@ -274,10 +276,14 @@ content_server: server_num_threads | server_verbosity | server_port | server_disable_dnssec_lame_check | server_access_control_tag | 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_qname_minimisation_strict | + server_pad_responses | server_pad_responses_block_size | + server_pad_queries | server_pad_queries_block_size | + server_serve_expired | server_serve_expired_ttl | server_serve_expired_ttl_reset | server_serve_expired_reply_ttl | server_serve_expired_client_timeout | - server_fake_dsa | server_log_identity | server_use_systemd | + server_serve_original_ttl | server_fake_dsa | + server_log_identity | server_use_systemd | server_response_ip_tag | server_response_ip | server_response_ip_data | server_shm_enable | server_shm_key | server_fake_sha1 | server_hide_trustanchor | server_trust_anchor_signaling | @@ -1929,6 +1935,15 @@ server_serve_expired_client_timeout: VAR_SERVE_EXPIRED_CLIENT_TIMEOUT STRING_ARG free($2); } ; +server_serve_original_ttl: VAR_SERVE_ORIGINAL_TTL STRING_ARG + { + OUTYY(("P(server_serve_original_ttl:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->serve_original_ttl = (strcmp($2, "yes")==0); + free($2); + } + ; server_fake_dsa: VAR_FAKE_DSA STRING_ARG { OUTYY(("P(server_fake_dsa:%s)\n", $2)); @@ -2436,6 +2451,44 @@ server_qname_minimisation_strict: VAR_QNAME_MINIMISATION_STRICT STRING_ARG free($2); } ; +server_pad_responses: VAR_PAD_RESPONSES STRING_ARG + { + OUTYY(("P(server_pad_responses:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->pad_responses = + (strcmp($2, "yes")==0); + free($2); + } + ; +server_pad_responses_block_size: VAR_PAD_RESPONSES_BLOCK_SIZE STRING_ARG + { + OUTYY(("P(server_pad_responses_block_size:%s)\n", $2)); + if(atoi($2) == 0) + yyerror("number expected"); + else cfg_parser->cfg->pad_responses_block_size = atoi($2); + free($2); + } + ; +server_pad_queries: VAR_PAD_QUERIES STRING_ARG + { + OUTYY(("P(server_pad_queries:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->pad_queries = + (strcmp($2, "yes")==0); + free($2); + } + ; +server_pad_queries_block_size: VAR_PAD_QUERIES_BLOCK_SIZE STRING_ARG + { + OUTYY(("P(server_pad_queries_block_size:%s)\n", $2)); + if(atoi($2) == 0) + yyerror("number expected"); + else cfg_parser->cfg->pad_queries_block_size = atoi($2); + free($2); + } + ; server_ipsecmod_enabled: VAR_IPSECMOD_ENABLED STRING_ARG { #ifdef USE_IPSECMOD diff --git a/util/configyyrename.h b/util/configyyrename.h index f529be577..8c7ff5b5c 100644 --- a/util/configyyrename.h +++ b/util/configyyrename.h @@ -84,5 +84,11 @@ #define yyget_leng ub_c_get_leng #define yylineno ub_c_lineno #define yyget_text ub_c_get_text +#define yyss ub_c_ss +#define yysslim ub_c_sslim +#define yyssp ub_c_ssp +#define yystacksize ub_c_stacksize +#define yyvs ub_c_vs +#define yyvsp ub_c_vsp #endif /* UTIL_CONFIGYYRENAME_H */ diff --git a/util/data/msgencode.c b/util/data/msgencode.c index 1746cfbb8..5f297b551 100644 --- a/util/data/msgencode.c +++ b/util/data/msgencode.c @@ -454,6 +454,7 @@ packed_rrset_encode(struct ub_packed_rrset_key* key, sldns_buffer* pkt, size_t i, j, owner_pos; int r, owner_labs; uint16_t owner_ptr = 0; + time_t adjust = 0; struct packed_rrset_data* data = (struct packed_rrset_data*) key->entry.data; @@ -464,9 +465,12 @@ packed_rrset_encode(struct ub_packed_rrset_key* key, sldns_buffer* pkt, owner_labs = dname_count_labels(key->rk.dname); owner_pos = sldns_buffer_position(pkt); - /* For an rrset with a fixed TTL, use the rrset's TTL as given */ + /** Determine relative time adjustment for TTL values. + * For an rrset with a fixed TTL, use the rrset's TTL as given. */ if((key->rk.flags & PACKED_RRSET_FIXEDTTL) != 0) - timenow = 0; + adjust = 0; + else + adjust = SERVE_ORIGINAL_TTL ? data->ttl_add : timenow; if(do_data) { const sldns_rr_descriptor* c = type_rdata_compressable(key); @@ -479,11 +483,10 @@ packed_rrset_encode(struct ub_packed_rrset_key* key, sldns_buffer* pkt, return r; sldns_buffer_write(pkt, &key->rk.type, 2); sldns_buffer_write(pkt, &key->rk.rrset_class, 2); - if(data->rr_ttl[j] < timenow) + if(data->rr_ttl[j] < adjust) sldns_buffer_write_u32(pkt, SERVE_EXPIRED?SERVE_EXPIRED_REPLY_TTL:0); - else sldns_buffer_write_u32(pkt, - data->rr_ttl[j]-timenow); + else sldns_buffer_write_u32(pkt, data->rr_ttl[j]-adjust); if(c) { if((r=compress_rdata(pkt, data->rr_data[j], data->rr_len[j], region, tree, c)) @@ -517,11 +520,10 @@ packed_rrset_encode(struct ub_packed_rrset_key* key, sldns_buffer* pkt, } sldns_buffer_write_u16(pkt, LDNS_RR_TYPE_RRSIG); sldns_buffer_write(pkt, &key->rk.rrset_class, 2); - if(data->rr_ttl[i] < timenow) + if(data->rr_ttl[i] < adjust) sldns_buffer_write_u32(pkt, SERVE_EXPIRED?SERVE_EXPIRED_REPLY_TTL:0); - else sldns_buffer_write_u32(pkt, - data->rr_ttl[i]-timenow); + else sldns_buffer_write_u32(pkt, data->rr_ttl[i]-adjust); /* rrsig rdata cannot be compressed, perform 100+ byte * memcopy. */ sldns_buffer_write(pkt, data->rr_data[i], @@ -801,14 +803,14 @@ calc_edns_field_size(struct edns_data* edns) return 1 + 2 + 2 + 4 + 2 + rdatalen; } -void -attach_edns_record(sldns_buffer* pkt, struct edns_data* edns) +static void +attach_edns_record_max_msg_sz(sldns_buffer* pkt, struct edns_data* edns, + uint16_t max_msg_sz) { size_t len; size_t rdatapos; struct edns_option* opt; - if(!edns || !edns->edns_present) - return; + struct edns_option* padding_option = NULL; /* inc additional count */ sldns_buffer_write_u16_at(pkt, 10, sldns_buffer_read_u16_at(pkt, 10) + 1); @@ -826,17 +828,52 @@ attach_edns_record(sldns_buffer* pkt, struct edns_data* edns) sldns_buffer_write_u16(pkt, 0); /* rdatalen */ /* write rdata */ for(opt=edns->opt_list; opt; opt=opt->next) { + if (opt->opt_code == LDNS_EDNS_PADDING) { + padding_option = opt; + continue; + } sldns_buffer_write_u16(pkt, opt->opt_code); sldns_buffer_write_u16(pkt, opt->opt_len); if(opt->opt_len != 0) sldns_buffer_write(pkt, opt->opt_data, opt->opt_len); } + if (padding_option && edns->padding_block_size ) { + size_t pad_pos = sldns_buffer_position(pkt); + size_t msg_sz = ((pad_pos + 3) / edns->padding_block_size + 1) + * edns->padding_block_size; + size_t pad_sz; + + if (msg_sz > max_msg_sz) + msg_sz = max_msg_sz; + + /* By use of calc_edns_field_size, calling functions should + * have made sure that there is enough space for at least a + * zero sized padding option. + */ + log_assert(pad_pos + 4 <= msg_sz); + + pad_sz = msg_sz - pad_pos - 4; + sldns_buffer_write_u16(pkt, LDNS_EDNS_PADDING); + sldns_buffer_write_u16(pkt, pad_sz); + if (pad_sz) { + memset(sldns_buffer_current(pkt), 0, pad_sz); + sldns_buffer_skip(pkt, pad_sz); + } + } if(edns->opt_list) sldns_buffer_write_u16_at(pkt, rdatapos, sldns_buffer_position(pkt)-rdatapos-2); sldns_buffer_flip(pkt); } +void +attach_edns_record(sldns_buffer* pkt, struct edns_data* edns) +{ + if(!edns || !edns->edns_present) + return; + attach_edns_record_max_msg_sz(pkt, edns, edns->udp_size); +} + int reply_info_answer_encode(struct query_info* qinf, struct reply_info* rep, uint16_t id, uint16_t qflags, sldns_buffer* pkt, time_t timenow, @@ -885,7 +922,7 @@ reply_info_answer_encode(struct query_info* qinf, struct reply_info* rep, } if(attach_edns && sldns_buffer_capacity(pkt) >= sldns_buffer_limit(pkt)+attach_edns) - attach_edns_record(pkt, edns); + attach_edns_record_max_msg_sz(pkt, edns, udpsize+attach_edns); return 1; } diff --git a/util/data/msgparse.c b/util/data/msgparse.c index 7c32618a3..6ee5559db 100644 --- a/util/data/msgparse.c +++ b/util/data/msgparse.c @@ -1020,6 +1020,7 @@ parse_extract_edns(struct msg_parse* msg, struct edns_data* edns, edns->bits = sldns_read_uint16(&found->rr_last->ttl_data[2]); edns->udp_size = ntohs(found->rrset_class); edns->opt_list = NULL; + edns->padding_block_size = 0; /* take the options */ rdata_len = found->rr_first->size-2; @@ -1093,6 +1094,7 @@ parse_edns_from_pkt(sldns_buffer* pkt, struct edns_data* edns, edns->edns_version = sldns_buffer_read_u8(pkt); edns->bits = sldns_buffer_read_u16(pkt); edns->opt_list = NULL; + edns->padding_block_size = 0; /* take the options */ rdata_len = sldns_buffer_read_u16(pkt); diff --git a/util/data/msgparse.h b/util/data/msgparse.h index fd04f9f6f..d2fd9c806 100644 --- a/util/data/msgparse.h +++ b/util/data/msgparse.h @@ -87,6 +87,8 @@ extern time_t SERVE_EXPIRED_TTL; extern time_t SERVE_EXPIRED_REPLY_TTL; /** Negative cache time (for entries without any RRs.) */ #define NORR_TTL 5 /* seconds */ +/** If we serve the original TTL or decrementing TTLs */ +extern int SERVE_ORIGINAL_TTL; /** * Data stored in scratch pad memory during parsing. @@ -225,6 +227,8 @@ struct edns_data { uint16_t udp_size; /** rdata element list, or NULL if none */ struct edns_option* opt_list; + /** block size to pad */ + uint16_t padding_block_size; }; /** diff --git a/util/data/msgreply.c b/util/data/msgreply.c index 35cd8b93e..4830b343f 100644 --- a/util/data/msgreply.c +++ b/util/data/msgreply.c @@ -67,6 +67,8 @@ int SERVE_EXPIRED = 0; time_t SERVE_EXPIRED_TTL = 0; /** TTL to use for expired records */ time_t SERVE_EXPIRED_REPLY_TTL = 30; +/** If we serve the original TTL or decrementing TTLs */ +int SERVE_ORIGINAL_TTL = 0; /** allocate qinfo, return 0 on error */ static int @@ -197,9 +199,9 @@ rdata_copy(sldns_buffer* pkt, struct packed_rrset_data* data, uint8_t* to, if(*rr_ttl > MAX_NEG_TTL) *rr_ttl = MAX_NEG_TTL; } - if(*rr_ttl < MIN_TTL) + if(!SERVE_ORIGINAL_TTL && (*rr_ttl < MIN_TTL)) *rr_ttl = MIN_TTL; - if(*rr_ttl > MAX_TTL) + if(!SERVE_ORIGINAL_TTL && (*rr_ttl > MAX_TTL)) *rr_ttl = MAX_TTL; if(*rr_ttl < data->ttl) data->ttl = *rr_ttl; @@ -321,8 +323,8 @@ parse_create_rrset(sldns_buffer* pkt, struct rrset_parse* pset, (sizeof(size_t)+sizeof(uint8_t*)+sizeof(time_t)) + pset->size; if(region) - *data = regional_alloc(region, s); - else *data = malloc(s); + *data = regional_alloc_zero(region, s); + else *data = calloc(1, s); if(!*data) return 0; /* copy & decompress */ @@ -526,6 +528,7 @@ reply_info_set_ttls(struct reply_info* rep, time_t timenow) for(j=0; jcount + data->rrsig_count; j++) { data->rr_ttl[j] += timenow; } + data->ttl_add = timenow; } } diff --git a/util/data/packed_rrset.c b/util/data/packed_rrset.c index 4b0294f97..e1a0833a2 100644 --- a/util/data/packed_rrset.c +++ b/util/data/packed_rrset.c @@ -220,6 +220,7 @@ packed_rrset_ttl_add(struct packed_rrset_data* data, time_t add) { size_t i; size_t total = data->count + data->rrsig_count; + data->ttl_add = add; data->ttl += add; for(i=0; irr_ttl[i] += add; @@ -275,6 +276,7 @@ int packed_rr_to_string(struct ub_packed_rrset_key* rrset, size_t i, entry.data; uint8_t rr[65535]; size_t rlen = rrset->rk.dname_len + 2 + 2 + 4 + d->rr_len[i]; + time_t adjust = 0; log_assert(dest_len > 0 && dest); if(rlen > dest_len) { dest[0] = 0; @@ -285,8 +287,10 @@ int packed_rr_to_string(struct ub_packed_rrset_key* rrset, size_t i, memmove(rr+rrset->rk.dname_len, &rrset->rk.type, 2); else sldns_write_uint16(rr+rrset->rk.dname_len, LDNS_RR_TYPE_RRSIG); memmove(rr+rrset->rk.dname_len+2, &rrset->rk.rrset_class, 2); + adjust = SERVE_ORIGINAL_TTL ? d->ttl_add : now; + if (d->rr_ttl[i] < adjust) adjust = d->rr_ttl[i]; /* Prevent negative TTL overflow */ sldns_write_uint32(rr+rrset->rk.dname_len+4, - (uint32_t)(d->rr_ttl[i]-now)); + (uint32_t)(d->rr_ttl[i]-adjust)); memmove(rr+rrset->rk.dname_len+8, d->rr_data[i], d->rr_len[i]); if(sldns_wire2str_rr_buf(rr, rlen, dest, dest_len) == -1) { log_info("rrbuf failure %d %s", (int)d->rr_len[i], dest); @@ -332,6 +336,7 @@ packed_rrset_copy_region(struct ub_packed_rrset_key* key, struct packed_rrset_data* data = (struct packed_rrset_data*) key->entry.data; size_t dsize, i; + time_t adjust = 0; if(!ck) return NULL; ck->id = key->id; @@ -350,14 +355,16 @@ packed_rrset_copy_region(struct ub_packed_rrset_key* key, ck->entry.data = d; packed_rrset_ptr_fixup(d); /* make TTLs relative - once per rrset */ + adjust = SERVE_ORIGINAL_TTL ? data->ttl_add : now; for(i=0; icount + d->rrsig_count; i++) { - if(d->rr_ttl[i] < now) + if(d->rr_ttl[i] < adjust) d->rr_ttl[i] = SERVE_EXPIRED?SERVE_EXPIRED_REPLY_TTL:0; - else d->rr_ttl[i] -= now; + else d->rr_ttl[i] -= adjust; } - if(d->ttl < now) + if(d->ttl < adjust) d->ttl = SERVE_EXPIRED?SERVE_EXPIRED_REPLY_TTL:0; - else d->ttl -= now; + else d->ttl -= adjust; + d->ttl_add = 0; /* TTLs have been made relative */ return ck; } diff --git a/util/data/packed_rrset.h b/util/data/packed_rrset.h index 729877bab..ff95c0af0 100644 --- a/util/data/packed_rrset.h +++ b/util/data/packed_rrset.h @@ -233,6 +233,9 @@ enum sec_status { * the ttl value to send changes due to time. */ struct packed_rrset_data { + /** Timestamp added to TTLs in the packed data. + * Needed to support serving original TTLs. */ + time_t ttl_add; /** TTL (in seconds like time()) of the rrset. * Same for all RRs see rfc2181(5.2). */ time_t ttl; diff --git a/util/edns.c b/util/edns.c index bfb6d65ca..84308449c 100644 --- a/util/edns.c +++ b/util/edns.c @@ -165,5 +165,16 @@ int apply_edns_options(struct edns_data* edns_out, struct edns_data* edns_in, LDNS_EDNS_NSID, cfg->nsid_len, cfg->nsid, region)) return 0; + if(!cfg->pad_responses || c->type != comm_tcp || !c->ssl + || !edns_opt_list_find(edns_in->opt_list, LDNS_EDNS_PADDING)) { + ; /* pass */ + } + + else if(!edns_opt_list_append(&edns_out->opt_list, LDNS_EDNS_PADDING + , 0, NULL, region)) + return 0; + else + edns_out->padding_block_size = cfg->pad_responses_block_size; + return 1; } diff --git a/util/net_help.c b/util/net_help.c index c5216bc2d..3b5527adf 100644 --- a/util/net_help.c +++ b/util/net_help.c @@ -321,7 +321,7 @@ static int ipdnametoaddr(uint8_t* dname, size_t dnamelen, struct sockaddr_storage* addr, socklen_t* addrlen, int* af) { uint8_t* ia; - size_t dnamelabs = dname_count_labels(dname); + int dnamelabs = dname_count_labels(dname); uint8_t lablen; char* e = NULL; int z = 0; diff --git a/validator/autotrust.c b/validator/autotrust.c index fd9fb3cf1..7ce07e0d8 100644 --- a/validator/autotrust.c +++ b/validator/autotrust.c @@ -2365,6 +2365,7 @@ probe_anchor(struct module_env* env, struct trust_anchor* tp) edns.edns_version = 0; edns.bits = EDNS_DO; edns.opt_list = NULL; + edns.padding_block_size = 0; if(sldns_buffer_capacity(buf) < 65535) edns.udp_size = (uint16_t)sldns_buffer_capacity(buf); else edns.udp_size = 65535;