From: Yuri Schaeffer Date: Fri, 13 Sep 2013 13:56:39 +0000 (+0000) Subject: some review improvements. Some corrections from merge with trunk. Some work in progress. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3ed5d74fd988920f390dba0455531a261ce17031;p=thirdparty%2Funbound.git some review improvements. Some corrections from merge with trunk. Some work in progress. git-svn-id: file:///svn/unbound/branches/edns-subnet@2954 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/aclocal.m4 b/aclocal.m4 index 45272d0ad..a3143032d 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.12.6 -*- Autoconf -*- +# generated automatically by aclocal 1.13.3 -*- Autoconf -*- -# Copyright (C) 1996-2012 Free Software Foundation, Inc. +# Copyright (C) 1996-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -11,6 +11,7 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, @@ -1329,7 +1330,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) - LD="${LD-ld} -m elf_i386" + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" @@ -1693,7 +1701,8 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len"; then + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else @@ -2517,17 +2526,6 @@ freebsd* | dragonfly*) esac ;; -gnu*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no @@ -2644,7 +2642,7 @@ linux*oldld* | linux*aout* | linux*coff*) ;; # This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no @@ -2689,6 +2687,18 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu) dynamic_linker='GNU/Linux ld.so' ;; +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + netbsd*) version_type=sunos need_lib_prefix=no @@ -3248,10 +3258,6 @@ freebsd* | dragonfly*) fi ;; -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - haiku*) lt_cv_deplibs_check_method=pass_all ;; @@ -3290,11 +3296,11 @@ irix5* | irix6* | nonstopux*) ;; # This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; -netbsd*) +netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else @@ -4042,7 +4048,7 @@ m4_if([$1], [CXX], [ ;; esac ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # KAI C++ Compiler @@ -4106,7 +4112,7 @@ m4_if([$1], [CXX], [ ;; esac ;; - netbsd*) + netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise @@ -4341,7 +4347,7 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) @@ -4583,6 +4589,9 @@ m4_if([$1], [CXX], [ ;; esac ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; @@ -4645,6 +4654,9 @@ dnl Note also adjust exclude_expsyms for C++ above. openbsd*) with_gnu_ld=no ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes @@ -4866,7 +4878,7 @@ _LT_EOF fi ;; - netbsd*) + netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= @@ -5043,6 +5055,7 @@ _LT_EOF if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi + _LT_TAGVAR(link_all_deplibs, $1)=no else # not using gcc if test "$host_cpu" = ia64; then @@ -5347,7 +5360,7 @@ _LT_EOF _LT_TAGVAR(link_all_deplibs, $1)=yes ;; - netbsd*) + netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else @@ -6223,9 +6236,6 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(ld_shlibs, $1)=yes ;; - gnu*) - ;; - haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes @@ -6387,7 +6397,7 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(inherit_rpath, $1)=yes ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler diff --git a/config.guess b/config.guess index d622a44e5..b79252d6b 100755 --- a/config.guess +++ b/config.guess @@ -1,14 +1,12 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -# 2011, 2012 Free Software Foundation, Inc. +# Copyright 1992-2013 Free Software Foundation, Inc. -timestamp='2012-02-10' +timestamp='2013-06-10' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but @@ -22,19 +20,17 @@ timestamp='2012-02-10' # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Originally written by Per Bothner. Please send patches (context -# diff format) to and include a ChangeLog -# entry. +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). # -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. +# Originally written by Per Bothner. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# +# Please send patches with a ChangeLog entry to config-patches@gnu.org. + me=`echo "$0" | sed -e 's,.*/,,'` @@ -54,9 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 -Free Software Foundation, Inc. +Copyright 1992-2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -138,6 +132,27 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown +case "${UNAME_SYSTEM}" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval $set_cc_for_build + cat <<-EOF > $dummy.c + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + ;; +esac + # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in @@ -200,6 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} @@ -302,7 +321,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; - arm:riscos:*:*|arm:RISCOS:*:*) + arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) @@ -801,6 +820,9 @@ EOF i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; + *:MINGW64*:*) + echo ${UNAME_MACHINE}-pc-mingw64 + exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; @@ -852,21 +874,21 @@ EOF exit ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in @@ -879,59 +901,54 @@ EOF EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + if test "$?" = 0 ; then LIBC="gnulibc1" ; fi + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo ${UNAME_MACHINE}-unknown-linux-gnueabi + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi else - echo ${UNAME_MACHINE}-unknown-linux-gnueabihf + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf fi fi exit ;; avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; cris:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-gnu + echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; crisv32:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-gnu + echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; frv:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; hexagon:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:Linux:*:*) - LIBC=gnu - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build @@ -950,54 +967,63 @@ EOF #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; + or1k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; or32:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) - echo sparc-unknown-linux-gnu + echo sparc-unknown-linux-${LIBC} exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu + echo hppa64-unknown-linux-${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; + PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; + PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; + *) echo hppa-unknown-linux-${LIBC} ;; esac exit ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu + echo powerpc64-unknown-linux-${LIBC} exit ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu + echo powerpc-unknown-linux-${LIBC} + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-${LIBC} + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-${LIBC} exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux + echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; tile*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-gnu + echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. @@ -1201,6 +1227,9 @@ EOF BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; @@ -1227,19 +1256,21 @@ EOF exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - case $UNAME_PROCESSOR in - i386) - eval $set_cc_for_build - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - UNAME_PROCESSOR="x86_64" - fi - fi ;; - unknown) UNAME_PROCESSOR=powerpc ;; - esac + eval $set_cc_for_build + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) @@ -1256,7 +1287,7 @@ EOF NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; - NSE-?:NONSTOP_KERNEL:*:*) + NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) @@ -1330,9 +1361,6 @@ EOF exit ;; esac -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - eval $set_cc_for_build cat >$dummy.c <. @@ -26,11 +20,12 @@ timestamp='2012-04-18' # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). -# Please send patches to . Submit a context -# diff and a properly formatted GNU ChangeLog entry. +# Please send patches with a ChangeLog entry to config-patches@gnu.org. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. @@ -73,9 +68,7 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 -Free Software Foundation, Inc. +Copyright 1992-2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -123,7 +116,7 @@ esac maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) @@ -156,7 +149,7 @@ case $os in -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze) + -apple | -axis | -knuth | -cray | -microblaze*) os= basic_machine=$1 ;; @@ -259,10 +252,12 @@ case $basic_machine in | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ - | be32 | be64 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | be32 | be64 \ | bfin \ - | c4x | clipper \ + | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ @@ -273,7 +268,7 @@ case $basic_machine in | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore | mep | metag \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ @@ -291,16 +286,17 @@ case $basic_machine in | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ - | nios | nios2 \ + | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 \ - | or32 \ + | or1k | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ @@ -370,13 +366,13 @@ case $basic_machine in | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | clipper-* | craynv-* | cydra-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ @@ -389,7 +385,8 @@ case $basic_machine in | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ @@ -407,12 +404,13 @@ case $basic_machine in | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | orion-* \ @@ -788,11 +786,15 @@ case $basic_machine in basic_machine=ns32k-utek os=-sysv ;; - microblaze) + microblaze*) basic_machine=microblaze-xilinx ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; mingw32) - basic_machine=i386-pc + basic_machine=i686-pc os=-mingw32 ;; mingw32ce) @@ -828,7 +830,7 @@ case $basic_machine in basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) - basic_machine=i386-pc + basic_machine=i686-pc os=-msys ;; mvs) @@ -1019,7 +1021,11 @@ case $basic_machine in basic_machine=i586-unknown os=-pw32 ;; - rdos) + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) basic_machine=i386-pc os=-rdos ;; @@ -1346,21 +1352,21 @@ case $os in -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ - | -sym* | -kopensolaris* \ + | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -openbsd* | -solidbsd* \ + | -bitrig* | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-android* \ - | -linux-newlib* | -linux-uclibc* \ + | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ @@ -1492,9 +1498,6 @@ case $os in -aros*) os=-aros ;; - -kaos*) - os=-kaos - ;; -zvmoe) os=-zvmoe ;; @@ -1543,6 +1546,9 @@ case $basic_machine in c4x-* | tic4x-*) os=-coff ;; + c8051-*) + os=-elf + ;; hexagon-*) os=-elf ;; @@ -1586,6 +1592,9 @@ case $basic_machine in mips*-*) os=-elf ;; + or1k-*) + os=-elf + ;; or32-*) os=-coff ;; diff --git a/configure b/configure index b9897bb00..85db2d9b2 100755 --- a/configure +++ b/configure @@ -7094,7 +7094,8 @@ else ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len"; then + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else @@ -7495,10 +7496,6 @@ freebsd* | dragonfly*) fi ;; -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - haiku*) lt_cv_deplibs_check_method=pass_all ;; @@ -7537,11 +7534,11 @@ irix5* | irix6* | nonstopux*) ;; # This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; -netbsd*) +netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else @@ -8676,7 +8673,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) - LD="${LD-ld} -m elf_i386" + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" @@ -10236,7 +10240,7 @@ lt_prog_compiler_static= lt_prog_compiler_static='-non_shared' ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) @@ -10714,6 +10718,9 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie openbsd*) with_gnu_ld=no ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs=no + ;; esac ld_shlibs=yes @@ -10935,7 +10942,7 @@ _LT_EOF fi ;; - netbsd*) + netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= @@ -11112,6 +11119,7 @@ _LT_EOF if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi + link_all_deplibs=no else # not using gcc if test "$host_cpu" = ia64; then @@ -11565,7 +11573,7 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; } link_all_deplibs=yes ;; - netbsd*) + netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else @@ -12402,17 +12410,6 @@ freebsd* | dragonfly*) esac ;; -gnu*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no @@ -12529,7 +12526,7 @@ linux*oldld* | linux*aout* | linux*coff*) ;; # This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no @@ -12593,6 +12590,18 @@ fi dynamic_linker='GNU/Linux ld.so' ;; +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + netbsd*) version_type=sunos need_lib_prefix=no @@ -16660,7 +16669,6 @@ _ACEOF fi - # Check whether --enable-sha2 was given. if test "${enable_sha2+set}" = set; then : enableval=$enable_sha2; @@ -16695,6 +16703,7 @@ $as_echo "#define CLIENT_SUBNET 1" >>confdefs.h ;; esac + # check wether gost also works # Check whether --enable-gost was given. diff --git a/configure.ac b/configure.ac index 012a9f7a2..f98565697 100644 --- a/configure.ac +++ b/configure.ac @@ -584,6 +584,20 @@ case "$enable_sha2" in ;; esac +AC_ARG_ENABLE(subnet, AC_HELP_STRING([--enable-subnet], [Enable client subnet])) +case "$enable_subnet" in + yes) + AC_DEFINE([CLIENT_SUBNET], [1], [Define this to enable client subnet option.]) + SUBNET_OBJ="edns-subnet.lo subnetmod.lo addrtree.lo subnet-whitelist.lo" + AC_SUBST(SUBNET_OBJ) + SUBNET_HEADER='$(srcdir)/edns-subnet/subnetmod.h $(srcdir)/edns-subnet/edns-subnet.h $(srcdir)/edns-subnet/subnet-whitelist.h $(srcdir)/edns-subnet/addrtree.h' + AC_SUBST(SUBNET_HEADER) + ;; + no|*) + ;; +esac + + # check wether gost also works AC_DEFUN([AC_CHECK_GOST_WORKS], [AC_REQUIRE([AC_PROG_CC]) diff --git a/daemon/daemon.c b/daemon/daemon.c index b5c8bee20..6a3b468a1 100644 --- a/daemon/daemon.c +++ b/daemon/daemon.c @@ -248,6 +248,7 @@ daemon_init(void) /* whitelist for edns subnet capable servers */ daemon->edns_subnet_upstreams = upstream_create(); if(!daemon->edns_subnet_upstreams) { + acl_list_delete(daemon->acl); free(daemon->env); free(daemon); return NULL; diff --git a/daemon/worker.c b/daemon/worker.c index 2e0a4a319..774f621df 100644 --- a/daemon/worker.c +++ b/daemon/worker.c @@ -893,8 +893,8 @@ worker_handle_request(struct comm_point* c, void* arg, int error, return 1; } #ifdef CLIENT_SUBNET - /* Do not skip cache lookup if no valid subnet data or the client - * asks to remain anonymous. */ + /* skip cache lookup if subnet is used, Do not skip cache lookup if + * no valid subnet data or the client asks to remain anonymous. */ if(!edns.edns_present || !edns.subnet_validdata || edns.subnet_source_mask == 0) { #endif diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index fde51dccc..038c3742f 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -911,9 +911,10 @@ IPv6 address and the host name. For example "192.0.2.4 www.example.com". TTL can be inserted like this: "2001:DB8::4 7200 www.example.com" .TP 5 .B send\-client\-subnet: \fI -Send client source address to this authority. Can be IP4 or IP6. Append -/num to indicate a classless delegation netblock, for example like -10.2.3.4/24 or 2001::11/64. +Send client source address to this authority. Append /num to indicate a +classless delegation netblock, for example like 10.2.3.4/24 or +2001::11/64. Can be given multiple times. Authorities not listed will +not receive edns-subnet information. .TP 5 .B client\-subnet\-opcode: \fI Specify positive integer smaller than 65536. Defaults to 8. diff --git a/edns-subnet/addrtree.c b/edns-subnet/addrtree.c index 09ee056f6..b638b2080 100644 --- a/edns-subnet/addrtree.c +++ b/edns-subnet/addrtree.c @@ -6,7 +6,7 @@ /** \file * see addrtree.h - * */ + */ #include #include @@ -22,8 +22,8 @@ * @param addr: full key to this edge. * @param addrlen: length of relevant part of key for this node * @return new addredge or NULL on failure - * */ -struct addredge* + */ +static struct addredge* edge_create(struct addrnode* node, const addrkey_t* addr, addrlen_t addrlen) { size_t n; @@ -32,7 +32,7 @@ edge_create(struct addrnode* node, const addrkey_t* addr, addrlen_t addrlen) return NULL; edge->node = node; edge->len = addrlen; - n = (addrlen / KEYWIDTH) + ((addrlen % KEYWIDTH)!=0); + n = (addrlen / KEYWIDTH) + ((addrlen % KEYWIDTH)!=0)?1:0; /*ceil()*/ edge->str = (addrkey_t*)calloc(n, sizeof(addrkey_t)); if (!edge->str) { free(edge); @@ -47,8 +47,8 @@ edge_create(struct addrnode* node, const addrkey_t* addr, addrlen_t addrlen) * @param elem: Element to store at this node * @param scope: Scopemask from server reply * @return new addrnode or NULL on failure - * */ -struct addrnode* + */ +static struct addrnode* node_create(struct reply_info* elem, addrlen_t scope) { struct addrnode* node = (struct addrnode*)malloc( sizeof(*node) ); @@ -78,10 +78,43 @@ struct addrtree* addrtree_create(addrlen_t max_depth, struct module_env* env) return tree; } +size_t tree_size(const struct addrnode* node) +{ + int i; + size_t s = 0; + + if (!node) return s; + s += sizeof(struct addrnode); + if (node->elem) { + s += sizeof(struct reply_info) - sizeof(struct rrset_ref); + s += node->elem->rrset_count * sizeof(struct rrset_ref); + s += node->elem->rrset_count * sizeof(struct ub_packed_rrset_key*); + } + + for (i = 0; i < 2; i++) { + if (!node->edge[i]) continue; + s += sizeof(struct addredge); + s += (node->edge[i]->len / KEYWIDTH) + ((node->edge[i]->len % KEYWIDTH)!=0); + s += tree_size(node->edge[i]->node); + } + return s; +} + +size_t addrtree_size(const struct addrtree* tree) +{ + size_t s = 0; + if (tree) { + s += sizeof(struct addrtree); + s += tree_size(tree->root); + } + return s; +} + void addrtree_clean_node(const struct addrtree* tree, struct addrnode* node) { if (node->elem) { - reply_info_parsedelete(node->elem, tree->env->alloc); + //~ reply_info_parsedelete(node->elem, tree->env->alloc); + reply_info_delete(node->elem, NULL); node->elem = NULL; } } @@ -90,8 +123,9 @@ void addrtree_clean_node(const struct addrtree* tree, struct addrnode* node) * Free node and all nodes below * @param tree: Tree the node lives in. * @param node: Node to be freed - * */ -void freenode_recursive(struct addrtree* tree, struct addrnode* node) + */ +static void +freenode_recursive(struct addrtree* tree, struct addrnode* node) { struct addredge* edge; int i; @@ -128,8 +162,8 @@ int getbit(const addrkey_t* addr, addrlen_t addrlen, addrlen_t n) /** Test for equality on N'th bit. * @return 0 for equal, 1 otherwise - * */ -inline int + */ +static inline int cmpbit(const addrkey_t* key1, const addrkey_t* key2, addrlen_t n) { addrkey_t c = key1[n/KEYWIDTH] ^ key2[n/KEYWIDTH]; @@ -144,8 +178,9 @@ cmpbit(const addrkey_t* key1, const addrkey_t* key2, addrlen_t n) * @param l2: Length of s2 in bits * @param skip: Nr of bits already checked. * @return Common number of bits. - * */ -addrlen_t bits_common(const addrkey_t* s1, addrlen_t l1, + */ +static addrlen_t +bits_common(const addrkey_t* s1, addrlen_t l1, const addrkey_t* s2, addrlen_t l2, addrlen_t skip) { addrlen_t len, i; @@ -165,8 +200,9 @@ addrlen_t bits_common(const addrkey_t* s1, addrlen_t l1, * @param l2: Length of s2 in bits * @param skip: Nr of bits already checked. * @return 1 for substring, 0 otherwise - * */ -int issub(const addrkey_t* s1, addrlen_t l1, + */ +static int +issub(const addrkey_t* s1, addrlen_t l1, const addrkey_t* s2, addrlen_t l2, addrlen_t skip) { return bits_common(s1, l1, s2, l2, skip) == l1; @@ -197,6 +233,7 @@ addrtree_insert(struct addrtree* tree, const addrkey_t* addr, /* update this node's scope and data */ if (node->elem) reply_info_parsedelete(node->elem, tree->env->alloc); + //~ reply_info_parsedelete(node->elem, NULL); node->elem = elem; node->scope = scope; return; diff --git a/edns-subnet/addrtree.h b/edns-subnet/addrtree.h index 752ce96a9..4685bf927 100644 --- a/edns-subnet/addrtree.h +++ b/edns-subnet/addrtree.h @@ -27,13 +27,11 @@ * * At this time the tree does not support deletion of nodes, but elem * can be set to NULL to ignore the node. - * */ + */ #ifndef ADDRTREE_H #define ADDRTREE_H -#include - typedef uint8_t addrlen_t; typedef uint8_t addrkey_t; #define KEYWIDTH 8 @@ -43,6 +41,7 @@ struct addrtree { /** Maximum prefix length we are willing to cache. */ addrlen_t max_depth; struct module_env* env; + }; struct addrnode { @@ -68,21 +67,20 @@ struct addredge { * @param max_depth: Tree will cap keys to this length. * @param env: Module environment for alloc information * @return new addrtree or NULL on failure - * */ - + */ struct addrtree* addrtree_create(addrlen_t max_depth, struct module_env* env); /** * Free tree and all nodes below * @param tree: Tree to be freed - * */ + */ void addrtree_delete(struct addrtree* tree); /** * Free data stored at node * @param tree: Tree the node lives in. * @param node: Node to be scrubbed - * */ + */ void addrtree_clean_node(const struct addrtree* tree, struct addrnode* node); /** @@ -94,7 +92,7 @@ void addrtree_clean_node(const struct addrtree* tree, struct addrnode* node); * @param sourcemask: Length of addr in bits * @param scope: Number of significant bits in addr * @param elem: data to store in the tree - * */ + */ void addrtree_insert(struct addrtree* tree, const addrkey_t* addr, addrlen_t sourcemask, addrlen_t scope, struct reply_info* elem); @@ -105,7 +103,7 @@ void addrtree_insert(struct addrtree* tree, const addrkey_t* addr, * @param addr: key for element lookup * @param sourcemask: Length of addr in bits * @return addrnode or NULL on miss - * */ + */ struct addrnode* addrtree_find(const struct addrtree* tree, const addrkey_t* addr, addrlen_t sourcemask); diff --git a/edns-subnet/edns-subnet.h b/edns-subnet/edns-subnet.h index b7084057c..1c2bd2043 100644 --- a/edns-subnet/edns-subnet.h +++ b/edns-subnet/edns-subnet.h @@ -25,7 +25,7 @@ extern uint8_t EDNSSUBNET_MAX_SUBNET_IP6; /** * copy the first n BITS from src to dst iff both src and dst * are large enough, return 0 on succes - * */ + */ int copy_clear(uint8_t* dst, size_t dstlen, uint8_t* src, size_t srclen, size_t n); diff --git a/edns-subnet/subnetmod.c b/edns-subnet/subnetmod.c index 60c826105..22847cedc 100644 --- a/edns-subnet/subnetmod.c +++ b/edns-subnet/subnetmod.c @@ -38,6 +38,20 @@ subnet_data_delete(void* d, void* ATTR_UNUSED(arg)) free(r); } +/** externally called */ +size_t +msg_cache_sizefunc(void* k, void* d) +{ + struct msgreply_entry* q = (struct msgreply_entry*)k; + struct subnet_msg_cache_data* r = (struct subnet_msg_cache_data*)d; + size_t s = sizeof(struct msgreply_entry) + + sizeof(struct subnet_msg_cache_data) + + q->key.qname_len + lock_get_mem(&q->entry.lock); + s += addrtree_size(r->tree4); + s += addrtree_size(r->tree6); + return s; +} + /** new query for sn */ static int subnet_new_qstate(struct module_qstate* qstate, int id) @@ -63,7 +77,8 @@ int subnetmod_init(struct module_env* env, int id) /* Copy msg_cache settings for now */ sn_env->subnet_msg_cache = slabhash_create(env->cfg->msg_cache_slabs, HASH_DEFAULT_STARTARRAY, env->cfg->msg_cache_size, - msgreply_sizefunc, query_info_compare, + msg_cache_sizefunc, query_info_compare, + //~ msgreply_sizefunc, query_info_compare, query_entry_delete, subnet_data_delete, NULL); if(!sn_env->subnet_msg_cache) { log_err("subnet: could not create cache"); @@ -141,7 +156,7 @@ void update_cache(struct module_qstate* qstate, int id) free(qinf.qname); /* if qname 'consumed', it is set to NULL */ lru_entry = &mrep_entry->entry; lru_entry->data = data; - slabhash_insert(subnet_msg_cache, h, lru_entry, data, env->alloc); + slabhash_insert(subnet_msg_cache, h, lru_entry, data, NULL); } else { data = lru_entry->data; acquired_lock = 1; @@ -163,6 +178,7 @@ void update_cache(struct module_qstate* qstate, int id) lock_rw_unlock(&lru_entry->lock); return; } + rep = reply_info_copy(qstate->return_msg->rep, env->alloc, NULL); /* fixup flags to be sensible for a reply based on the cache */ rep->flags |= (BIT_RA | BIT_QR); diff --git a/edns-subnet/subnetmod.h b/edns-subnet/subnetmod.h index feca02f23..1b43b11df 100644 --- a/edns-subnet/subnetmod.h +++ b/edns-subnet/subnetmod.h @@ -37,6 +37,7 @@ struct subnet_qstate { }; void subnet_data_delete(void* d, void* ATTR_UNUSED(arg)); +size_t msg_cache_sizefunc(void* k, void* d); /** * Get the module function block. diff --git a/ltmain.sh b/ltmain.sh index 16ddbf884..68c6d96ca 100644 --- a/ltmain.sh +++ b/ltmain.sh @@ -70,7 +70,7 @@ # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.4.2 +# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.3 # automake: $automake_version # autoconf: $autoconf_version # @@ -80,7 +80,7 @@ PROGRAM=libtool PACKAGE=libtool -VERSION=2.4.2 +VERSION="2.4.2 Debian-2.4.2-1.3" TIMESTAMP="" package_revision=1.3337 @@ -1375,21 +1375,6 @@ func_replace_sysroot () func_infer_tag () { $opt_debug - - # FreeBSD-specific: where we install compilers with non-standard names - tag_compilers_CC="*cc cc* *gcc gcc* clang" - tag_compilers_CXX="*c++ c++* *g++ g++* clang++" - base_compiler=`set -- "$@"; echo $1` - - # If $tagname isn't set, then try to infer if the default "CC" tag applies - if test -z "$tagname"; then - for zp in $tag_compilers_CC; do - case $base_compiler in - $zp) tagname="CC"; break;; - esac - done - fi - if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do @@ -1426,22 +1411,7 @@ func_infer_tag () break ;; esac - - # FreeBSD-specific: try compilers based on inferred tag - if test -z "$tagname"; then - eval "tag_compilers=\$tag_compilers_${z}" - if test -n "$tag_compilers"; then - for zp in $tag_compilers; do - case $base_compiler in - $zp) tagname=$z; break;; - esac - done - if test -n "$tagname"; then - break - fi - fi - fi - fi + fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command @@ -3547,9 +3517,6 @@ static const void *lt_preloaded_setup() { ;; esac ;; - *-*-freebsd*) - # FreeBSD doesn't need this... - ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; @@ -5628,7 +5595,6 @@ func_mode_link () esac ;; esac - deplibs="$deplibs $arg" continue ;; @@ -6158,7 +6124,10 @@ func_mode_link () case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; - link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; + link) + libs="$deplibs %DEPLIBS%" + test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" + ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then @@ -6201,30 +6170,13 @@ func_mode_link () finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" - fi - - case $linkmode in - lib) - deplibs="$deplib $deplibs" - test "$pass" = conv && continue - newdependency_libs="$deplib $newdependency_libs" - ;; - prog) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - continue - fi - if test "$pass" = scan; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac fi - ;; - *) - ;; - esac # linkmode - + fi continue ;; -l*) @@ -6495,19 +6447,19 @@ func_mode_link () # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps ; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" - if $opt_preserve_dup_deps ; then - case "$tmp_libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append tmp_libs " $deplib" - done continue fi # $pass = conv @@ -7400,6 +7352,9 @@ func_mode_link () revision="$number_minor" lt_irix_increment=no ;; + *) + func_fatal_configuration "$modename: unknown library version type \`$version_type'" + ;; esac ;; no) diff --git a/testcode/ldns-testpkts.c b/testcode/ldns-testpkts.c index 5f2f8c9ce..a6c60b10a 100644 --- a/testcode/ldns-testpkts.c +++ b/testcode/ldns-testpkts.c @@ -717,8 +717,8 @@ verbose_hex(int lvl, uint8_t *data, size_t datalen, char *header) static int match_ednsdata(ldns_pkt* q, struct reply_packet* p) { - size_t qdlen, pdlen; - uint8_t *qd, *pd; + size_t qdlen, pdlen = 0; + uint8_t *qd, *pd = NULL; int q_set = ldns_pkt_edns(q) && ldns_pkt_edns_data(q); int p_set = p->raw_ednsdata != NULL; diff --git a/testcode/mini_tpkg.sh b/testcode/mini_tpkg.sh index cdc334e21..60ed09a79 100755 --- a/testcode/mini_tpkg.sh +++ b/testcode/mini_tpkg.sh @@ -22,11 +22,11 @@ if test "$1" = "report" || test "$2" = "report"; then name=`basename $result .tpkg` if test -f ".done-$name"; then if test "$1" != "-q"; then - echo "** PASSED ** : $name" + echo "** PASSED ** : $name" fi else if test -f "result.$name"; then - echo "\033[01;31m!! FAILED !!\033[00m : $name" + echo "!! FAILED !! : $name" else echo ">> SKIPPED<< : $name" fi @@ -99,12 +99,12 @@ if test -f $name.test; then $shell $name.test $args >>$result 2>&1 if test $? -ne 0; then echo "$name: FAILED" >> $result - echo "\033[01;31mFAILED\033[00m" + echo "FAILED" success="no" else echo "$name: PASSED" >> $result echo "$name: PASSED" > ../.done-$name - echo "\033[01;32mPASSED\033[00m" + echo "PASSED" success="yes" fi fi diff --git a/util/configlexer.c b/util/configlexer.c index c9c2e1b47..6f42e2352 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -10,7 +10,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 36 +#define YY_FLEX_SUBMINOR_VERSION 35 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -143,7 +143,15 @@ typedef unsigned int flex_uint32_t; /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -155,12 +163,7 @@ typedef unsigned int flex_uint32_t; typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef size_t yy_size_t; -#endif - -extern yy_size_t yyleng; +extern int yyleng; extern FILE *yyin, *yyout; @@ -186,6 +189,11 @@ extern FILE *yyin, *yyout; #define unput(c) yyunput( c, (yytext_ptr) ) +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state @@ -203,7 +211,7 @@ struct yy_buffer_state /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - yy_size_t yy_n_chars; + int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -273,8 +281,8 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ /* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; -static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ -yy_size_t yyleng; +static int yy_n_chars; /* number of characters read into yy_ch_buf */ +int yyleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = (char *) 0; @@ -302,7 +310,7 @@ static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ); +YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ); void *yyalloc (yy_size_t ); void *yyrealloc (void *,yy_size_t ); @@ -363,8 +371,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 143 -#define YY_END_OF_BUFFER 144 +#define YY_NUM_RULES 147 +#define YY_END_OF_BUFFER 148 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -372,157 +380,164 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[1355] = +static yyconst flex_int16_t yy_accept[1413] = { 0, - 1, 1, 125, 125, 129, 129, 133, 133, 137, 137, - 1, 1, 144, 141, 1, 123, 123, 142, 2, 142, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 125, - 126, 126, 127, 142, 129, 130, 130, 131, 142, 136, - 133, 134, 134, 135, 142, 137, 138, 138, 139, 142, - 140, 124, 2, 128, 142, 140, 141, 0, 1, 2, - 2, 2, 2, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 125, 0, 129, 0, 136, 0, 133, 137, 0, 140, - 0, 2, 2, 140, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 140, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 140, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 62, 141, 141, 141, 141, 141, 6, 141, 141, - - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 140, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - - 141, 141, 141, 141, 141, 141, 141, 141, 141, 140, - 141, 141, 141, 141, 27, 141, 141, 141, 141, 141, - 12, 13, 141, 15, 14, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 118, 141, 141, 141, 141, 141, 3, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 140, 141, 141, 141, - - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 132, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 30, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 31, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 77, 132, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 76, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 60, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 20, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 28, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 29, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 22, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 25, 26, 141, 141, 141, 63, 141, 64, 141, - 61, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 5, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 79, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - - 141, 141, 141, 141, 141, 141, 104, 103, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 32, 141, 141, - 141, 141, 141, 141, 141, 66, 65, 141, 141, 141, - 141, 141, 141, 100, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 51, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 102, 141, 141, 141, 141, 141, 141, 141, 141, - - 141, 4, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 97, 141, 141, 141, 141, 141, 141, - 141, 112, 98, 141, 21, 141, 141, 141, 141, 68, - 141, 69, 67, 141, 141, 141, 141, 141, 141, 75, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 99, - 141, 141, 141, 141, 122, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 59, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 17, 141, 141, - - 141, 16, 141, 84, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 39, 40, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 70, 141, - 141, 141, 141, 141, 74, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 78, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 117, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 88, 141, 92, - 141, 141, 141, 141, 73, 141, 141, 110, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - - 141, 91, 141, 141, 141, 141, 41, 42, 141, 47, - 93, 141, 105, 101, 141, 141, 35, 141, 95, 141, - 141, 141, 141, 141, 7, 141, 58, 109, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 80, 141, 141, 119, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 94, 141, - 34, 36, 141, 141, 141, 141, 141, 57, 141, 141, - 141, 141, 113, 18, 19, 141, 141, 141, 141, 141, - 141, 55, 141, 141, 141, 141, 141, 141, 141, 141, - - 141, 115, 141, 141, 33, 141, 141, 141, 141, 141, - 141, 11, 141, 141, 141, 141, 141, 141, 141, 10, - 141, 141, 37, 141, 121, 114, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 87, 86, 141, 116, - 111, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 43, 141, 120, 141, 141, 141, 141, 38, 141, - 141, 141, 81, 83, 141, 141, 141, 85, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 23, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 108, 141, 141, 141, 141, - - 141, 141, 141, 24, 141, 9, 141, 141, 106, 48, - 141, 141, 141, 90, 141, 71, 141, 141, 141, 50, - 54, 49, 141, 44, 141, 8, 141, 141, 89, 141, - 141, 141, 53, 141, 45, 141, 107, 141, 141, 82, - 72, 52, 46, 141, 141, 141, 141, 56, 141, 141, - 141, 141, 96, 0 + 1, 1, 129, 129, 133, 133, 137, 137, 141, 141, + 1, 1, 148, 145, 1, 127, 127, 146, 2, 146, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 129, + 130, 130, 131, 146, 133, 134, 134, 135, 146, 140, + 137, 138, 138, 139, 146, 141, 142, 142, 143, 146, + 144, 128, 2, 132, 146, 144, 145, 0, 1, 2, + 2, 2, 2, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 129, 0, 133, 0, 140, 0, 137, 141, 0, + 144, 0, 2, 2, 144, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 144, 145, 145, 145, 145, 145, 145, 145, 145, + + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 144, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 62, 145, + + 145, 145, 145, 145, 6, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 144, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 144, 145, 145, 145, 145, 27, 145, 145, 145, 145, + 145, 145, 12, 13, 145, 15, 14, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 122, 145, 145, 145, 145, 145, + 145, 3, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 144, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 136, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 30, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 31, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 81, + + 136, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 80, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 60, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 20, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 28, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + + 145, 145, 145, 145, 145, 145, 145, 29, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 22, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 25, 26, 145, 145, 145, 63, + 145, 64, 145, 61, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 5, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + + 145, 145, 83, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 108, 107, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 32, 145, 145, 145, 145, 145, 145, 145, + 145, 66, 65, 145, 145, 145, 145, 145, 145, 104, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + + 145, 51, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 106, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 4, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 101, 145, 145, 145, 145, 145, 145, 145, + 145, 116, 102, 145, 21, 145, 145, 145, 145, 68, + 145, 69, 67, 145, 145, 145, 145, 145, 145, 79, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 103, + + 145, 145, 145, 145, 145, 126, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 59, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 17, + 145, 145, 145, 16, 145, 88, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 39, 40, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 70, 145, 145, 145, 145, 145, 78, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 82, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 121, 145, 145, 145, 145, + + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 92, 145, 96, 145, 145, 145, 145, 73, + 145, 145, 145, 114, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 95, 145, 145, + 145, 145, 41, 42, 145, 47, 97, 145, 109, 105, + 145, 145, 145, 35, 145, 99, 145, 145, 145, 145, + 145, 7, 145, 58, 113, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 84, 145, 145, 123, 145, 145, 145, 145, 145, + + 145, 145, 145, 145, 145, 145, 145, 98, 145, 145, + 34, 36, 145, 145, 145, 145, 145, 57, 145, 145, + 145, 145, 145, 117, 18, 19, 145, 145, 145, 145, + 145, 145, 55, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 119, 145, 145, 33, 145, 145, 145, + 145, 145, 145, 11, 145, 145, 145, 145, 145, 145, + 145, 145, 10, 145, 145, 37, 145, 125, 145, 118, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 91, 90, 145, 145, 120, 115, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 43, 145, 145, 124, + + 145, 145, 145, 145, 38, 145, 145, 145, 145, 85, + 87, 145, 145, 145, 89, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 23, 145, 145, 74, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 112, 145, 145, 145, + 145, 145, 145, 145, 24, 145, 145, 9, 145, 145, + 110, 48, 145, 145, 145, 94, 145, 75, 71, 145, + 145, 145, 50, 54, 49, 145, 44, 145, 145, 8, + 145, 145, 93, 145, 145, 145, 53, 145, 45, 145, + 145, 145, 111, 145, 145, 86, 72, 52, 76, 77, + + 46, 145, 145, 145, 145, 56, 145, 145, 145, 145, + 100, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -565,621 +580,648 @@ static yyconst flex_int32_t yy_meta[40] = 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[1369] = +static yyconst flex_int16_t yy_base[1427] = { 0, 0, 0, 37, 40, 44, 51, 63, 75, 56, 68, - 87, 108, 2103, 2040, 50, 2711, 2711, 2711, 129, 94, - 70, 104, 122, 90, 92, 115, 126, 95, 84, 132, - 135, 138, 50, 142, 148, 156, 169, 164, 179, 2006, - 2711, 2711, 2711, 70, 1888, 2711, 2711, 2711, 42, 1877, - 1853, 2711, 2711, 2711, 197, 1667, 2711, 2711, 2711, 154, - 1249, 2711, 201, 2711, 205, 111, 1027, 211, 120, 0, - 222, 0, 0, 103, 158, 165, 149, 155, 168, 206, - 207, 198, 217, 209, 204, 208, 215, 177, 227, 228, - 231, 219, 235, 236, 229, 241, 244, 245, 246, 247, - - 249, 250, 257, 256, 258, 264, 265, 266, 268, 271, - 277, 273, 275, 279, 282, 269, 49, 283, 280, 286, - 974, 302, 784, 308, 697, 314, 632, 362, 309, 174, - 318, 322, 0, 315, 319, 325, 317, 321, 323, 326, - 333, 330, 336, 347, 339, 334, 337, 327, 291, 343, - 341, 344, 345, 352, 349, 358, 363, 369, 365, 376, - 377, 374, 373, 380, 381, 389, 390, 388, 387, 391, - 392, 396, 397, 399, 400, 401, 402, 403, 409, 407, - 408, 412, 428, 413, 415, 430, 431, 433, 417, 434, - 436, 442, 438, 439, 440, 441, 447, 445, 455, 451, - - 457, 459, 460, 461, 468, 465, 473, 466, 480, 469, - 476, 477, 478, 481, 483, 484, 490, 492, 487, 486, - 488, 493, 500, 504, 505, 510, 512, 502, 511, 518, - 521, 523, 524, 517, 529, 535, 531, 533, 534, 536, - 539, 543, 545, 541, 542, 544, 547, 553, 548, 573, - 554, 557, 559, 565, 567, 570, 579, 571, 568, 578, - 577, 581, 594, 603, 586, 596, 598, 602, 605, 604, - 609, 610, 611, 613, 618, 615, 617, 630, 628, 631, - 629, 637, 640, 632, 639, 643, 641, 646, 644, 650, - 651, 2711, 656, 654, 658, 659, 660, 2711, 661, 662, - - 663, 664, 665, 679, 667, 670, 676, 678, 683, 684, - 686, 706, 689, 687, 696, 690, 694, 698, 715, 702, - 699, 704, 708, 713, 720, 721, 718, 724, 729, 731, - 728, 734, 736, 742, 738, 743, 744, 745, 747, 754, - 757, 751, 762, 764, 770, 758, 766, 768, 774, 773, - 775, 767, 781, 778, 782, 785, 789, 791, 792, 795, - 799, 800, 794, 804, 802, 808, 811, 810, 812, 814, - 819, 813, 821, 822, 823, 828, 837, 834, 830, 838, - 845, 846, 847, 842, 843, 850, 851, 853, 854, 852, - 855, 859, 870, 858, 875, 862, 878, 864, 868, 872, - - 879, 884, 881, 890, 891, 882, 892, 893, 894, 898, - 901, 905, 897, 906, 2711, 916, 910, 912, 913, 917, - 2711, 2711, 919, 2711, 2711, 920, 922, 923, 931, 937, - 933, 924, 925, 940, 935, 945, 946, 948, 953, 957, - 951, 958, 959, 961, 964, 965, 968, 970, 980, 981, - 982, 966, 978, 984, 987, 988, 989, 991, 994, 1000, - 997, 2711, 998, 999, 1003, 1006, 1007, 2711, 1008, 1009, - 1011, 1012, 1015, 1014, 1020, 1019, 1017, 1032, 1025, 1022, - 1026, 1033, 1043, 1040, 1042, 1045, 1048, 1049, 1050, 1059, - 1052, 1056, 1058, 1065, 1062, 1064, 1067, 1068, 1069, 1072, - - 1075, 1076, 1100, 1077, 1079, 1078, 1080, 1085, 1084, 1086, - 1101, 1107, 1097, 1110, 1114, 1087, 1112, 1119, 1118, 1120, - 1122, 1125, 2711, 1128, 1131, 1130, 1135, 1136, 1137, 1138, - 1140, 1142, 1144, 1143, 1155, 2711, 1147, 1151, 1153, 1154, - 1156, 1160, 1163, 1170, 1178, 2711, 1180, 1181, 1164, 1174, - 1176, 1183, 1177, 1187, 1188, 1089, 1184, 1195, 1191, 1197, - 1199, 1201, 1203, 1204, 1205, 1206, 1207, 1208, 1210, 1209, - 1221, 1228, 1214, 1231, 1217, 1225, 1232, 1237, 1227, 1234, - 1235, 1238, 2711, 141, 1241, 1242, 1240, 1251, 1252, 1248, - 1250, 1256, 1261, 1258, 1259, 1268, 1262, 1269, 1271, 1265, - - 1272, 1275, 1279, 1281, 1282, 1285, 1286, 1287, 1288, 1289, - 1293, 1295, 1291, 1292, 2711, 1308, 1302, 1296, 1305, 1312, - 1319, 1313, 1315, 1327, 1320, 1323, 1329, 1330, 1332, 1333, - 1335, 1336, 1342, 1344, 1340, 1343, 1346, 1348, 2711, 1352, - 1350, 1351, 1353, 1357, 1358, 1361, 1363, 1368, 1371, 1373, - 2711, 1374, 1378, 1379, 1385, 1380, 1387, 1389, 1391, 1382, - 1392, 1388, 1399, 1395, 1401, 1403, 2711, 1411, 1414, 1412, - 1420, 1416, 1405, 1408, 1422, 1418, 1423, 1431, 1427, 1428, - 1432, 1429, 1433, 1434, 1436, 1435, 2711, 1442, 1439, 1443, - 1440, 1444, 1449, 1451, 1452, 1456, 1457, 1463, 1460, 1467, - - 1466, 1476, 1464, 1468, 1474, 1480, 1483, 1485, 1492, 1493, - 1494, 2711, 1491, 1484, 1497, 1506, 1500, 1502, 1503, 1507, - 1508, 1509, 1517, 1510, 1511, 1513, 1518, 1514, 1519, 1520, - 1523, 1526, 1534, 1536, 1539, 1525, 1542, 1546, 1543, 1544, - 1555, 2711, 2711, 1552, 1553, 1561, 2711, 1559, 2711, 1563, - 2711, 1565, 1566, 1560, 1569, 1571, 1570, 1573, 1577, 1578, - 1574, 1580, 1582, 1581, 1583, 2711, 1584, 1587, 1589, 1592, - 1593, 1595, 1603, 1599, 1611, 1598, 1607, 1608, 2711, 1617, - 1609, 1616, 1625, 1623, 1610, 1626, 1627, 1630, 1629, 1631, - 1633, 1637, 1638, 1639, 1640, 1641, 1646, 1644, 1648, 1649, - - 1650, 1651, 1653, 1654, 1662, 1663, 2711, 2711, 1665, 1673, - 1675, 1666, 1677, 1678, 1681, 1683, 1689, 1688, 1685, 1691, - 1694, 1695, 1696, 1698, 1699, 1701, 1702, 2711, 1708, 1706, - 1715, 1707, 1719, 1718, 1723, 2711, 2711, 1722, 1725, 1711, - 1727, 1728, 1733, 2711, 1734, 1735, 1736, 1737, 1740, 1743, - 1747, 1748, 1750, 1753, 1756, 1757, 1760, 1759, 1758, 1766, - 1762, 1765, 1773, 1775, 1783, 1777, 1780, 1781, 1785, 1786, - 1788, 1790, 1796, 1792, 2711, 1802, 1793, 1805, 1779, 1808, - 1809, 1817, 1813, 1794, 1803, 1815, 1816, 1819, 1820, 1821, - 1824, 2711, 1829, 1831, 1826, 1833, 1834, 1828, 1847, 1836, - - 1839, 2711, 1845, 1856, 1849, 1852, 1858, 1860, 1861, 1853, - 1863, 1864, 1866, 1868, 1867, 1871, 1880, 1872, 1875, 1890, - 1892, 1899, 1900, 1884, 1902, 1901, 1903, 1904, 1886, 1910, - 1906, 1914, 1908, 2711, 1912, 1918, 1922, 1919, 1924, 1926, - 1927, 2711, 2711, 1923, 2711, 1930, 1933, 1934, 1937, 2711, - 1939, 2711, 2711, 1940, 1949, 1941, 1947, 1950, 1956, 2711, - 1953, 1945, 1961, 1957, 1959, 1963, 1964, 1966, 1967, 2711, - 1968, 1970, 1974, 1977, 2711, 1969, 1980, 1982, 1984, 1988, - 1991, 1993, 1985, 1994, 2000, 1997, 2711, 1999, 2001, 2005, - 2007, 2011, 2010, 2013, 2009, 2024, 2025, 2711, 2026, 2016, - - 2017, 2711, 2028, 2711, 2031, 2027, 2032, 2043, 2035, 2046, - 2038, 2047, 2048, 2049, 2055, 2050, 2711, 2711, 2056, 2060, - 2063, 2061, 2066, 2068, 2067, 2069, 2070, 2075, 2711, 2076, - 2078, 2077, 2079, 2080, 2711, 2084, 2085, 2086, 2089, 2092, - 2104, 2106, 2095, 2110, 2112, 2107, 2114, 2116, 2117, 2711, - 2118, 2120, 2121, 2125, 2127, 2081, 2128, 2132, 2130, 2122, - 2135, 2711, 2138, 2139, 2142, 2144, 2146, 2147, 2149, 2150, - 2151, 2154, 2155, 2157, 2160, 2161, 2164, 2711, 2162, 2711, - 2167, 2177, 2180, 2183, 2711, 2171, 2173, 2711, 2187, 2188, - 2195, 2196, 2198, 2203, 2199, 2189, 2206, 2191, 2207, 2213, - - 2214, 2711, 2181, 2216, 2215, 2217, 2711, 2711, 2224, 2711, - 2711, 2227, 2711, 2711, 2228, 2230, 2711, 2232, 2711, 2239, - 2235, 2222, 2218, 2237, 2711, 2244, 2711, 2711, 2241, 2245, - 2248, 2249, 2251, 2253, 2256, 2257, 2258, 2259, 2260, 2261, - 2263, 2265, 2266, 2179, 2267, 2268, 2270, 2274, 2277, 2279, - 2280, 2290, 2711, 2278, 2291, 2711, 2298, 2293, 2286, 2282, - 2299, 2303, 2304, 2306, 2312, 2309, 2308, 2310, 2711, 2313, - 2711, 2711, 2311, 2315, 2321, 2314, 2316, 2711, 2326, 2322, - 2336, 2338, 2711, 2711, 2711, 2339, 2328, 2333, 2343, 2344, - 2345, 2711, 2346, 2347, 2351, 2354, 2358, 2360, 2367, 2364, - - 2366, 2711, 2368, 2370, 2711, 2371, 2372, 2375, 2377, 2378, - 2380, 2711, 2376, 2381, 2388, 2383, 2391, 2393, 2394, 2711, - 2396, 2397, 2711, 2403, 2711, 2711, 2398, 2406, 2408, 2413, - 2415, 2404, 2409, 2421, 2420, 2424, 2711, 2711, 2425, 2711, - 2711, 2417, 2426, 2427, 2429, 2432, 2433, 2435, 2437, 2440, - 2439, 2711, 2441, 2711, 2442, 2451, 2443, 2445, 2711, 2452, - 2453, 2456, 2711, 2711, 2457, 2466, 2464, 2711, 2469, 2468, - 2470, 2471, 2476, 2478, 2472, 2479, 2482, 2480, 2458, 2483, - 2492, 2494, 2711, 2496, 2493, 2497, 2501, 2504, 2505, 2506, - 2507, 2509, 2510, 2512, 2514, 2711, 2515, 2516, 2526, 2531, - - 2535, 2523, 2537, 2711, 2538, 2711, 2541, 2542, 2711, 2711, - 2543, 2545, 2548, 2711, 2549, 2711, 2532, 2556, 2546, 2711, - 2711, 2711, 2558, 2711, 2559, 2711, 2561, 2562, 2711, 2564, - 2566, 2568, 2711, 2570, 2711, 2572, 2711, 2573, 2574, 2711, - 2711, 2711, 2711, 2576, 2578, 2584, 2579, 2711, 2581, 2586, - 2587, 2590, 2711, 2711, 2619, 2626, 2633, 2640, 2647, 94, - 2654, 2661, 2668, 2675, 2682, 2689, 2696, 2703 + 87, 108, 2220, 2157, 50, 2822, 2822, 2822, 129, 94, + 70, 104, 122, 90, 92, 124, 132, 95, 84, 111, + 140, 142, 50, 135, 151, 152, 161, 154, 175, 1945, + 2822, 2822, 2822, 70, 1816, 2822, 2822, 2822, 42, 1573, + 1357, 2822, 2822, 2822, 192, 1286, 2822, 2822, 2822, 186, + 1137, 2822, 196, 2822, 200, 193, 1053, 206, 120, 0, + 219, 0, 0, 103, 170, 138, 145, 199, 203, 201, + 202, 204, 206, 221, 209, 220, 224, 225, 226, 227, + 231, 233, 229, 241, 244, 235, 238, 250, 249, 255, + + 257, 258, 260, 261, 263, 267, 262, 270, 115, 269, + 273, 279, 277, 284, 275, 278, 286, 49, 290, 292, + 296, 1006, 306, 960, 308, 806, 317, 723, 332, 309, + 303, 321, 327, 0, 317, 323, 329, 322, 325, 326, + 330, 331, 339, 338, 345, 352, 346, 336, 344, 342, + 350, 348, 357, 359, 363, 358, 362, 360, 368, 369, + 381, 388, 390, 370, 377, 391, 387, 400, 401, 397, + 393, 389, 402, 403, 405, 406, 407, 410, 412, 411, + 417, 419, 418, 420, 423, 429, 426, 431, 439, 442, + 441, 428, 444, 446, 452, 448, 449, 451, 450, 458, + + 456, 461, 469, 455, 467, 472, 473, 474, 481, 478, + 479, 484, 490, 486, 487, 488, 491, 493, 495, 496, + 502, 498, 499, 500, 503, 507, 514, 518, 519, 516, + 523, 524, 525, 529, 532, 534, 535, 533, 537, 547, + 543, 550, 546, 549, 553, 554, 555, 561, 560, 558, + 562, 566, 568, 569, 588, 559, 572, 576, 577, 578, + 585, 589, 586, 592, 594, 595, 598, 599, 611, 617, + 601, 608, 619, 620, 623, 622, 627, 628, 629, 630, + 631, 633, 632, 648, 640, 644, 647, 652, 655, 654, + 656, 657, 658, 659, 661, 666, 664, 667, 2822, 672, + + 674, 676, 677, 678, 2822, 679, 680, 682, 683, 681, + 692, 691, 693, 697, 698, 701, 703, 704, 705, 725, + 707, 706, 718, 709, 714, 710, 736, 717, 728, 730, + 734, 721, 739, 738, 742, 748, 746, 754, 752, 755, + 756, 758, 765, 759, 762, 766, 767, 772, 776, 778, + 784, 783, 787, 793, 768, 790, 792, 799, 797, 798, + 780, 807, 804, 791, 808, 812, 815, 814, 818, 822, + 819, 817, 827, 825, 828, 829, 836, 833, 835, 837, + 842, 843, 845, 846, 849, 850, 858, 865, 854, 864, + 856, 871, 872, 873, 862, 869, 876, 877, 879, 881, + + 878, 884, 885, 891, 888, 898, 892, 889, 901, 903, + 905, 904, 908, 909, 910, 914, 906, 920, 912, 923, + 925, 926, 928, 931, 933, 2822, 935, 941, 939, 938, + 940, 944, 2822, 2822, 165, 2822, 2822, 946, 945, 949, + 962, 963, 961, 950, 947, 971, 977, 973, 978, 969, + 985, 987, 983, 988, 989, 991, 993, 994, 995, 999, + 996, 1009, 1010, 1011, 958, 1013, 1015, 1002, 1017, 1018, + 1027, 1016, 1033, 1019, 2822, 1029, 1030, 1034, 1031, 1036, + 1037, 2822, 1039, 1041, 1043, 1042, 1047, 1049, 1050, 1051, + 1052, 1056, 1059, 1055, 1057, 1066, 1075, 1068, 1074, 1076, + + 1078, 1079, 1081, 1089, 1087, 1085, 1086, 1096, 1092, 1095, + 1098, 1101, 1102, 1104, 1105, 1107, 1109, 1131, 1110, 1108, + 1111, 1113, 1117, 1118, 1119, 1120, 1143, 1141, 1139, 1145, + 1154, 1156, 1150, 1148, 1152, 1160, 1124, 2822, 1168, 1164, + 1165, 1122, 1170, 1172, 1166, 1173, 1174, 1176, 1177, 1187, + 2822, 1179, 1180, 1183, 1188, 1191, 1192, 1195, 1189, 1204, + 1207, 2822, 1211, 1208, 1213, 1214, 1215, 1217, 1218, 1219, + 1221, 1222, 1225, 1228, 1233, 1236, 1223, 1237, 1230, 1238, + 1242, 1243, 1244, 1246, 1247, 1250, 1252, 1259, 1260, 1258, + 1267, 1261, 1264, 1269, 1272, 1270, 1274, 1271, 1275, 2822, + + 237, 1277, 1279, 1276, 1287, 1289, 1293, 1292, 1285, 1298, + 1301, 1302, 1303, 1305, 1307, 1310, 1308, 1309, 1311, 1314, + 1320, 1321, 1322, 1323, 1315, 1326, 1329, 1331, 1334, 1332, + 1335, 1339, 2822, 1341, 1342, 1343, 1344, 1352, 1359, 1353, + 1360, 1367, 1370, 1363, 1372, 1373, 1361, 1375, 1378, 1365, + 1376, 1385, 1387, 1386, 1388, 1389, 1390, 2822, 1393, 1395, + 1396, 1399, 1400, 1404, 1402, 1406, 1408, 1409, 1418, 1422, + 2822, 1424, 1423, 1411, 1432, 1415, 1437, 1433, 1440, 1425, + 1441, 1442, 1443, 1429, 1449, 1444, 2822, 1457, 1458, 1454, + 1461, 1460, 1462, 1463, 1465, 1466, 1467, 1473, 1471, 1472, + + 1470, 1475, 1476, 1478, 1479, 1482, 1480, 2822, 1488, 1485, + 1489, 1494, 1495, 1496, 1497, 1502, 1505, 1508, 1506, 1509, + 1510, 1512, 1518, 1514, 1517, 1525, 1527, 1529, 1530, 1536, + 1539, 1537, 2822, 1541, 1542, 1543, 1549, 1552, 1545, 1547, + 1558, 1554, 1555, 1557, 1565, 1559, 1567, 1568, 1569, 1561, + 1570, 1577, 1571, 1576, 1579, 1582, 1584, 1585, 1590, 1594, + 1596, 1597, 1598, 1606, 2822, 2822, 1602, 1603, 1613, 2822, + 1610, 2822, 1612, 2822, 1616, 1614, 1620, 1621, 1622, 1623, + 1625, 1628, 1629, 1631, 1626, 1632, 1633, 1634, 2822, 1640, + 1641, 1642, 1644, 1645, 1649, 1647, 1657, 1651, 1666, 1650, + + 1660, 1662, 2822, 1671, 1663, 1669, 1678, 1679, 1675, 1677, + 1681, 1682, 1683, 1684, 1686, 1690, 1691, 1692, 1694, 1697, + 1698, 1700, 1704, 1702, 1703, 1705, 1715, 1717, 1707, 1718, + 2822, 2822, 1721, 1725, 1708, 1731, 1729, 1732, 1733, 1735, + 1737, 1743, 1740, 1742, 1748, 1749, 1750, 1751, 1753, 1754, + 1756, 1757, 2822, 1763, 1759, 1765, 1773, 1774, 1783, 1766, + 1781, 2822, 2822, 1785, 1769, 1770, 1786, 1787, 1789, 2822, + 1791, 1792, 1794, 1795, 1797, 1801, 1798, 1804, 1809, 1806, + 1812, 1813, 1814, 1822, 1815, 1818, 1823, 1831, 1833, 1826, + 1838, 1844, 1828, 1840, 1841, 1843, 1845, 1847, 1851, 1853, + + 1852, 2822, 1862, 1854, 1863, 1856, 1867, 1868, 1875, 1864, + 1860, 1871, 1873, 1874, 1885, 1877, 1886, 1879, 2822, 1888, + 1889, 1901, 1890, 1902, 1898, 1882, 1911, 1892, 1904, 2822, + 1914, 1921, 1906, 1915, 1924, 1925, 1927, 1913, 1917, 1928, + 1929, 1931, 1934, 1937, 1938, 1942, 1935, 1939, 1948, 1952, + 1960, 1962, 1958, 1966, 1963, 1964, 1965, 1967, 1974, 1971, + 1978, 1972, 2822, 1976, 1981, 1983, 1990, 1988, 1986, 1989, + 1987, 2822, 2822, 1997, 2822, 1998, 2000, 2002, 2003, 2822, + 2005, 2822, 2822, 2001, 2013, 2006, 2016, 1894, 2020, 2822, + 2007, 2021, 2024, 2022, 2026, 2027, 2028, 2029, 2030, 2822, + + 2031, 2032, 2033, 2037, 2045, 2822, 2035, 2053, 2042, 2054, + 2055, 2056, 2058, 2048, 2060, 2067, 2064, 2822, 2065, 2071, + 2073, 2070, 2074, 2075, 2076, 2078, 2079, 2088, 2089, 2822, + 2090, 2081, 2092, 2822, 2096, 2822, 2098, 2095, 2100, 2106, + 2107, 2111, 2099, 2113, 2114, 2112, 2122, 2115, 2822, 2822, + 2124, 2126, 2128, 2129, 2131, 2132, 2134, 2133, 2136, 2140, + 2142, 2822, 2144, 2145, 2146, 2147, 2149, 2822, 2151, 2152, + 2156, 2158, 2153, 2163, 2173, 2165, 2175, 2177, 2160, 2181, + 2183, 2184, 2185, 2822, 2186, 2188, 2189, 2193, 2194, 2190, + 2197, 2201, 2206, 2195, 2210, 2822, 2216, 2199, 2218, 2211, + + 2221, 2222, 2224, 2203, 2213, 2227, 2230, 2231, 2232, 2233, + 2243, 2236, 2822, 2237, 2822, 2244, 2249, 2252, 2254, 2822, + 2245, 2251, 2256, 2822, 2258, 2259, 2266, 2269, 2271, 2276, + 2272, 2262, 2279, 2270, 2280, 2286, 2278, 2822, 2287, 2288, + 2289, 2292, 2822, 2822, 2295, 2822, 2822, 2299, 2822, 2822, + 2300, 2301, 2308, 2822, 2310, 2822, 2316, 2312, 2302, 2304, + 2314, 2822, 2321, 2822, 2822, 2317, 2323, 2315, 2324, 2327, + 2331, 2334, 2336, 2328, 2337, 2339, 2341, 2342, 2343, 2345, + 2347, 2346, 2348, 2349, 2350, 2352, 2357, 2358, 2359, 2360, + 2370, 2822, 2367, 2376, 2822, 2379, 2371, 2373, 2381, 2382, + + 2386, 2384, 2390, 2392, 2383, 2391, 2393, 2822, 2394, 2396, + 2822, 2822, 2397, 2401, 2406, 2407, 2408, 2822, 2412, 2409, + 2419, 2416, 2424, 2822, 2822, 2822, 2429, 2420, 2425, 2427, + 2431, 2433, 2822, 2435, 2438, 2439, 2437, 2446, 2448, 2454, + 2440, 2457, 2459, 2822, 2460, 2451, 2822, 2461, 2453, 2462, + 2467, 2468, 2470, 2822, 2472, 2473, 2475, 2477, 2483, 2481, + 2482, 2484, 2822, 2485, 2487, 2822, 2496, 2822, 2488, 2822, + 2493, 2497, 2499, 2504, 2506, 2501, 2507, 2514, 2511, 2512, + 2822, 2822, 2517, 2518, 2822, 2822, 2515, 2520, 2524, 2525, + 2529, 2527, 2530, 2531, 2533, 2535, 2822, 2536, 2537, 2822, + + 2538, 2541, 2544, 2549, 2822, 2552, 2553, 2547, 2554, 2822, + 2822, 2560, 2563, 2561, 2822, 2566, 2567, 2568, 2569, 2572, + 2575, 2577, 2578, 2580, 2581, 2585, 2582, 2583, 2592, 2584, + 2593, 2822, 2596, 2597, 2822, 2601, 2604, 2606, 2607, 2609, + 2610, 2612, 2613, 2615, 2619, 2616, 2822, 2620, 2622, 2629, + 2632, 2637, 2633, 2640, 2822, 2624, 2641, 2822, 2644, 2645, + 2822, 2822, 2647, 2649, 2651, 2822, 2652, 2822, 2822, 2653, + 2659, 2660, 2822, 2822, 2822, 2662, 2822, 2668, 2663, 2822, + 2670, 2671, 2822, 2654, 2675, 2677, 2822, 2679, 2822, 2681, + 2683, 2685, 2822, 2687, 2688, 2822, 2822, 2822, 2822, 2822, + + 2822, 2690, 2691, 2693, 2695, 2822, 2697, 2696, 2698, 2701, + 2822, 2822, 2730, 2737, 2744, 2751, 2758, 94, 2765, 2772, + 2779, 2786, 2793, 2800, 2807, 2814 } ; -static yyconst flex_int16_t yy_def[1369] = +static yyconst flex_int16_t yy_def[1427] = { 0, - 1354, 1, 1355, 1355, 1356, 1356, 1357, 1357, 1358, 1358, - 1359, 1359, 1354, 1360, 1354, 1354, 1354, 1354, 1361, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1362, - 1354, 1354, 1354, 1362, 1363, 1354, 1354, 1354, 1363, 1364, - 1354, 1354, 1354, 1354, 1364, 1365, 1354, 1354, 1354, 1365, - 1366, 1354, 1367, 1354, 1366, 1366, 1360, 1360, 1354, 1368, - 1361, 1368, 1361, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1362, 1362, 1363, 1363, 1364, 1364, 1354, 1365, 1365, 1366, - 1366, 1367, 1367, 1366, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1366, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1366, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1354, 1360, 1360, 1360, 1360, 1360, 1354, 1360, 1360, - - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1366, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1366, - 1360, 1360, 1360, 1360, 1354, 1360, 1360, 1360, 1360, 1360, - 1354, 1354, 1360, 1354, 1354, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1354, 1360, 1360, 1360, 1360, 1360, 1354, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1366, 1360, 1360, 1360, - - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1354, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1354, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1354, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1354, 1366, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1354, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1354, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1354, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1354, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1354, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1354, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1354, 1354, 1360, 1360, 1360, 1354, 1360, 1354, 1360, - 1354, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1354, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1354, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - - 1360, 1360, 1360, 1360, 1360, 1360, 1354, 1354, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1354, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1354, 1354, 1360, 1360, 1360, - 1360, 1360, 1360, 1354, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1354, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1354, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - - 1360, 1354, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1354, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1354, 1354, 1360, 1354, 1360, 1360, 1360, 1360, 1354, - 1360, 1354, 1354, 1360, 1360, 1360, 1360, 1360, 1360, 1354, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1354, - 1360, 1360, 1360, 1360, 1354, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1354, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1354, 1360, 1360, - - 1360, 1354, 1360, 1354, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1354, 1354, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1354, 1360, - 1360, 1360, 1360, 1360, 1354, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1354, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1354, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1354, 1360, 1354, - 1360, 1360, 1360, 1360, 1354, 1360, 1360, 1354, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - - 1360, 1354, 1360, 1360, 1360, 1360, 1354, 1354, 1360, 1354, - 1354, 1360, 1354, 1354, 1360, 1360, 1354, 1360, 1354, 1360, - 1360, 1360, 1360, 1360, 1354, 1360, 1354, 1354, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1354, 1360, 1360, 1354, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1354, 1360, - 1354, 1354, 1360, 1360, 1360, 1360, 1360, 1354, 1360, 1360, - 1360, 1360, 1354, 1354, 1354, 1360, 1360, 1360, 1360, 1360, - 1360, 1354, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - - 1360, 1354, 1360, 1360, 1354, 1360, 1360, 1360, 1360, 1360, - 1360, 1354, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1354, - 1360, 1360, 1354, 1360, 1354, 1354, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1354, 1354, 1360, 1354, - 1354, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1354, 1360, 1354, 1360, 1360, 1360, 1360, 1354, 1360, - 1360, 1360, 1354, 1354, 1360, 1360, 1360, 1354, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1354, 1360, 1360, 1360, 1360, 1360, 1360, 1360, - 1360, 1360, 1360, 1360, 1360, 1354, 1360, 1360, 1360, 1360, - - 1360, 1360, 1360, 1354, 1360, 1354, 1360, 1360, 1354, 1354, - 1360, 1360, 1360, 1354, 1360, 1354, 1360, 1360, 1360, 1354, - 1354, 1354, 1360, 1354, 1360, 1354, 1360, 1360, 1354, 1360, - 1360, 1360, 1354, 1360, 1354, 1360, 1354, 1360, 1360, 1354, - 1354, 1354, 1354, 1360, 1360, 1360, 1360, 1354, 1360, 1360, - 1360, 1360, 1354, 0, 1354, 1354, 1354, 1354, 1354, 1354, - 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354 + 1412, 1, 1413, 1413, 1414, 1414, 1415, 1415, 1416, 1416, + 1417, 1417, 1412, 1418, 1412, 1412, 1412, 1412, 1419, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1420, + 1412, 1412, 1412, 1420, 1421, 1412, 1412, 1412, 1421, 1422, + 1412, 1412, 1412, 1412, 1422, 1423, 1412, 1412, 1412, 1423, + 1424, 1412, 1425, 1412, 1424, 1424, 1418, 1418, 1412, 1426, + 1419, 1426, 1419, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1420, 1420, 1421, 1421, 1422, 1422, 1412, 1423, 1423, + 1424, 1424, 1425, 1425, 1424, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1424, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1424, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1412, 1418, + + 1418, 1418, 1418, 1418, 1412, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1424, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1424, 1418, 1418, 1418, 1418, 1412, 1418, 1418, 1418, 1418, + 1418, 1418, 1412, 1412, 1418, 1412, 1412, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1412, 1418, 1418, 1418, 1418, 1418, + 1418, 1412, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1424, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1412, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1412, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1412, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1412, + + 1424, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1412, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1412, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1412, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1412, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1412, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1412, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1412, 1412, 1418, 1418, 1418, 1412, + 1418, 1412, 1418, 1412, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1412, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + + 1418, 1418, 1412, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1412, 1412, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1412, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1412, 1412, 1418, 1418, 1418, 1418, 1418, 1418, 1412, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + + 1418, 1412, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1412, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1412, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1412, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1412, 1412, 1418, 1412, 1418, 1418, 1418, 1418, 1412, + 1418, 1412, 1412, 1418, 1418, 1418, 1418, 1418, 1418, 1412, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1412, + + 1418, 1418, 1418, 1418, 1418, 1412, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1412, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1412, + 1418, 1418, 1418, 1412, 1418, 1412, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1412, 1412, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1412, 1418, 1418, 1418, 1418, 1418, 1412, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1412, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1412, 1418, 1418, 1418, 1418, + + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1412, 1418, 1412, 1418, 1418, 1418, 1418, 1412, + 1418, 1418, 1418, 1412, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1412, 1418, 1418, + 1418, 1418, 1412, 1412, 1418, 1412, 1412, 1418, 1412, 1412, + 1418, 1418, 1418, 1412, 1418, 1412, 1418, 1418, 1418, 1418, + 1418, 1412, 1418, 1412, 1412, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1412, 1418, 1418, 1412, 1418, 1418, 1418, 1418, 1418, + + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1412, 1418, 1418, + 1412, 1412, 1418, 1418, 1418, 1418, 1418, 1412, 1418, 1418, + 1418, 1418, 1418, 1412, 1412, 1412, 1418, 1418, 1418, 1418, + 1418, 1418, 1412, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1412, 1418, 1418, 1412, 1418, 1418, 1418, + 1418, 1418, 1418, 1412, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1412, 1418, 1418, 1412, 1418, 1412, 1418, 1412, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1412, 1412, 1418, 1418, 1412, 1412, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1412, 1418, 1418, 1412, + + 1418, 1418, 1418, 1418, 1412, 1418, 1418, 1418, 1418, 1412, + 1412, 1418, 1418, 1418, 1412, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1412, 1418, 1418, 1412, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1412, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1412, 1418, 1418, 1412, 1418, 1418, + 1412, 1412, 1418, 1418, 1418, 1412, 1418, 1412, 1412, 1418, + 1418, 1418, 1412, 1412, 1412, 1418, 1412, 1418, 1418, 1412, + 1418, 1418, 1412, 1418, 1418, 1418, 1412, 1418, 1412, 1418, + 1418, 1418, 1412, 1418, 1418, 1412, 1412, 1412, 1412, 1412, + + 1412, 1418, 1418, 1418, 1418, 1412, 1418, 1418, 1418, 1418, + 1412, 0, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412 } ; -static yyconst flex_int16_t yy_nxt[2751] = +static yyconst flex_int16_t yy_nxt[2862] = { 0, 14, 15, 16, 17, 18, 19, 18, 14, 14, 14, 14, 18, 20, 21, 14, 22, 23, 24, 25, 14, 26, 27, 28, 29, 30, 31, 32, 33, 34, 14, 35, 36, 37, 38, 39, 14, 14, 14, 14, 41, - 42, 43, 41, 42, 43, 123, 46, 47, 123, 44, + 42, 43, 41, 42, 43, 124, 46, 47, 124, 44, 48, 69, 44, 46, 47, 70, 49, 48, 57, 58, 59, 68, 68, 49, 51, 52, 53, 54, 60, 18, - 57, 58, 59, 121, 121, 55, 51, 52, 53, 54, - 60, 18, 68, 102, 185, 74, 75, 55, 15, 16, + 57, 58, 59, 122, 122, 55, 51, 52, 53, 54, + 60, 18, 68, 103, 188, 74, 75, 55, 15, 16, 17, 62, 63, 64, 67, 67, 68, 67, 67, 65, - 67, 93, 68, 76, 68, 67, 84, 68, 66, 15, - 16, 17, 62, 63, 64, 68, 68, 77, 135, 86, - 65, 69, 92, 131, 78, 70, 85, 68, 87, 66, - 72, 79, 72, 72, 68, 72, 88, 134, 68, 80, - 72, 73, 89, 81, 68, 90, 82, 68, 95, 83, - 68, 99, 91, 131, 68, 100, 96, 128, 128, 94, - 68, 68, 97, 103, 138, 107, 98, 68, 68, 104, - 68, 101, 105, 110, 136, 108, 68, 68, 109, 106, - 68, 68, 114, 111, 115, 139, 131, 112, 113, 68, - 117, 68, 119, 150, 140, 118, 120, 137, 125, 116, - - 125, 125, 72, 125, 72, 72, 130, 72, 130, 130, - 68, 130, 67, 133, 67, 67, 68, 67, 68, 68, - 68, 68, 67, 72, 144, 72, 72, 68, 72, 68, - 141, 68, 143, 72, 73, 146, 147, 142, 148, 68, - 68, 68, 145, 68, 151, 149, 153, 68, 68, 154, - 156, 159, 157, 68, 152, 160, 68, 68, 68, 68, - 163, 68, 68, 155, 164, 161, 166, 162, 68, 68, - 68, 165, 158, 169, 167, 171, 68, 68, 68, 172, - 68, 68, 168, 68, 178, 68, 170, 68, 180, 68, - 174, 68, 68, 175, 68, 68, 173, 179, 68, 176, - - 186, 177, 184, 68, 187, 121, 121, 208, 181, 182, - 183, 123, 128, 128, 123, 125, 188, 125, 125, 130, - 125, 130, 130, 72, 130, 72, 72, 131, 72, 68, - 189, 68, 191, 68, 133, 68, 190, 68, 68, 68, - 196, 193, 68, 198, 192, 68, 68, 197, 68, 68, - 194, 68, 204, 68, 206, 68, 68, 68, 195, 68, - 209, 68, 207, 199, 68, 205, 215, 210, 200, 212, - 68, 211, 213, 201, 129, 68, 218, 68, 219, 202, - 203, 68, 214, 220, 222, 68, 68, 225, 68, 68, - 216, 217, 68, 68, 221, 223, 227, 228, 226, 68, - - 68, 68, 68, 68, 68, 230, 224, 229, 68, 68, - 232, 68, 68, 68, 68, 68, 241, 234, 237, 68, - 68, 68, 243, 231, 68, 68, 235, 68, 247, 131, - 233, 244, 236, 239, 240, 245, 238, 248, 250, 242, - 68, 253, 68, 68, 246, 68, 68, 251, 68, 256, - 68, 68, 68, 68, 68, 257, 255, 68, 262, 68, - 249, 260, 261, 68, 252, 254, 258, 68, 263, 68, - 259, 68, 68, 68, 266, 269, 267, 68, 68, 264, - 68, 68, 268, 272, 265, 68, 271, 273, 68, 68, - 68, 270, 68, 68, 278, 68, 68, 281, 68, 68, - - 68, 274, 68, 277, 68, 68, 275, 282, 280, 286, - 276, 283, 68, 279, 68, 284, 68, 68, 285, 290, - 291, 292, 68, 68, 68, 288, 287, 293, 289, 68, - 68, 294, 298, 68, 295, 68, 68, 300, 296, 297, - 299, 68, 303, 68, 301, 68, 68, 68, 68, 306, - 305, 68, 312, 68, 68, 68, 68, 68, 313, 68, - 68, 302, 307, 304, 311, 68, 68, 308, 317, 68, - 309, 131, 310, 316, 319, 314, 315, 68, 328, 68, - 68, 327, 68, 68, 318, 68, 333, 320, 321, 68, - 68, 68, 329, 68, 331, 335, 330, 322, 68, 323, - - 324, 325, 332, 334, 326, 336, 68, 338, 68, 337, - 68, 339, 340, 341, 68, 68, 68, 68, 342, 346, - 347, 68, 68, 68, 343, 68, 344, 68, 345, 68, - 68, 354, 350, 127, 352, 353, 349, 356, 355, 348, - 68, 68, 68, 68, 68, 351, 357, 361, 358, 68, - 360, 68, 68, 68, 359, 68, 68, 365, 68, 366, - 363, 367, 68, 68, 369, 362, 68, 364, 68, 370, - 68, 68, 68, 68, 68, 68, 68, 68, 372, 68, - 373, 378, 68, 368, 374, 379, 380, 371, 68, 377, - 68, 68, 383, 375, 376, 68, 68, 381, 68, 68, - - 385, 68, 68, 395, 382, 384, 68, 398, 68, 126, - 68, 68, 386, 396, 68, 394, 68, 387, 68, 388, - 68, 393, 397, 402, 389, 68, 390, 68, 400, 401, - 68, 403, 68, 68, 391, 399, 68, 406, 411, 404, - 68, 131, 407, 68, 392, 410, 68, 405, 68, 408, - 68, 409, 412, 415, 68, 68, 68, 68, 423, 68, - 419, 414, 416, 68, 413, 421, 68, 417, 422, 68, - 68, 418, 420, 424, 68, 425, 68, 426, 68, 68, - 68, 430, 68, 428, 429, 68, 68, 68, 434, 431, - 68, 427, 432, 68, 68, 435, 124, 68, 441, 433, - - 437, 68, 440, 68, 68, 438, 68, 68, 436, 439, - 443, 68, 68, 442, 68, 444, 68, 446, 451, 447, - 68, 448, 68, 68, 68, 68, 68, 453, 452, 454, - 449, 68, 450, 68, 68, 68, 455, 445, 459, 458, - 68, 463, 68, 456, 461, 460, 68, 457, 462, 68, - 68, 464, 467, 465, 68, 68, 468, 68, 68, 68, - 469, 470, 68, 68, 68, 68, 68, 68, 466, 475, - 68, 68, 471, 472, 68, 476, 68, 480, 483, 477, - 68, 473, 68, 474, 68, 478, 479, 68, 482, 481, - 68, 68, 485, 68, 68, 484, 68, 487, 488, 486, - - 490, 489, 68, 68, 68, 68, 68, 491, 492, 68, - 131, 494, 493, 68, 495, 497, 498, 68, 68, 501, - 496, 499, 68, 503, 68, 68, 504, 502, 68, 68, - 500, 68, 68, 506, 68, 68, 68, 68, 512, 511, - 510, 509, 505, 68, 507, 68, 523, 68, 508, 68, - 519, 513, 68, 514, 520, 522, 515, 68, 68, 525, - 68, 516, 521, 68, 524, 68, 527, 517, 518, 68, - 68, 68, 528, 68, 532, 526, 68, 68, 68, 531, - 68, 536, 68, 529, 540, 535, 122, 537, 538, 530, - 68, 533, 68, 68, 68, 534, 68, 539, 541, 68, - - 68, 68, 546, 68, 542, 544, 68, 548, 545, 68, - 68, 68, 68, 550, 547, 68, 552, 543, 68, 68, - 68, 68, 554, 68, 68, 551, 68, 68, 549, 68, - 555, 68, 68, 553, 68, 561, 562, 68, 68, 68, - 567, 556, 557, 558, 68, 68, 559, 560, 564, 563, - 570, 566, 68, 565, 68, 68, 571, 68, 568, 569, - 68, 68, 68, 576, 68, 574, 577, 578, 68, 573, - 68, 68, 581, 572, 68, 583, 68, 68, 584, 131, - 68, 68, 575, 580, 68, 586, 579, 68, 68, 68, - 68, 68, 68, 595, 582, 585, 68, 68, 68, 68, - - 610, 68, 589, 587, 601, 597, 598, 649, 602, 68, - 600, 588, 68, 68, 607, 590, 596, 591, 599, 68, - 603, 592, 68, 593, 68, 604, 68, 605, 594, 611, - 68, 68, 68, 615, 68, 617, 608, 68, 609, 612, - 68, 616, 68, 68, 613, 606, 618, 68, 68, 68, - 68, 614, 68, 621, 68, 68, 68, 624, 622, 68, - 620, 619, 628, 68, 627, 68, 68, 68, 68, 623, - 626, 632, 68, 633, 625, 68, 68, 634, 629, 642, - 631, 630, 68, 636, 635, 637, 68, 638, 68, 68, - 68, 639, 68, 68, 640, 68, 68, 641, 645, 68, - - 68, 643, 650, 68, 647, 648, 651, 68, 644, 68, - 646, 68, 652, 68, 654, 68, 68, 68, 68, 68, - 68, 68, 68, 659, 660, 662, 68, 653, 664, 68, - 658, 655, 663, 68, 656, 665, 657, 68, 661, 68, - 68, 666, 667, 68, 68, 671, 68, 68, 668, 68, - 68, 669, 68, 68, 68, 673, 670, 672, 679, 680, - 68, 131, 68, 68, 68, 681, 674, 676, 68, 677, - 68, 68, 678, 68, 68, 675, 682, 68, 684, 687, - 68, 68, 683, 68, 68, 685, 686, 68, 690, 692, - 689, 68, 688, 68, 68, 694, 691, 68, 68, 68, - - 68, 68, 695, 68, 68, 68, 693, 68, 68, 696, - 698, 702, 697, 705, 68, 706, 708, 68, 699, 701, - 68, 700, 703, 704, 68, 68, 711, 68, 707, 710, - 712, 68, 68, 716, 715, 68, 714, 709, 713, 68, - 717, 68, 68, 719, 68, 68, 718, 68, 68, 724, - 721, 725, 68, 720, 68, 68, 68, 726, 68, 727, - 68, 722, 68, 68, 68, 68, 723, 728, 733, 68, - 68, 732, 729, 68, 730, 68, 731, 734, 738, 736, - 68, 735, 742, 68, 743, 68, 68, 739, 737, 744, - 68, 68, 68, 740, 68, 745, 747, 68, 749, 68, - - 68, 68, 751, 68, 68, 741, 750, 68, 754, 753, - 746, 68, 748, 68, 752, 68, 755, 68, 759, 757, - 68, 760, 758, 68, 68, 756, 68, 762, 68, 761, - 68, 765, 68, 766, 68, 68, 764, 763, 769, 68, - 68, 68, 773, 68, 68, 68, 68, 68, 68, 778, - 767, 68, 68, 779, 68, 68, 68, 782, 768, 770, - 771, 68, 772, 68, 68, 774, 776, 785, 68, 68, - 777, 775, 68, 781, 783, 68, 68, 780, 68, 68, - 68, 784, 786, 788, 791, 792, 68, 787, 68, 795, - 789, 790, 68, 793, 794, 68, 68, 68, 797, 800, - - 801, 796, 799, 68, 68, 68, 68, 802, 803, 68, - 804, 808, 68, 806, 68, 68, 798, 807, 68, 68, - 68, 68, 68, 68, 814, 68, 68, 813, 805, 68, - 68, 68, 68, 809, 810, 68, 822, 68, 68, 812, - 819, 815, 816, 823, 817, 811, 68, 821, 68, 818, - 824, 68, 820, 828, 68, 68, 68, 827, 68, 830, - 826, 825, 832, 829, 68, 68, 834, 68, 835, 833, - 836, 68, 68, 68, 837, 68, 831, 68, 68, 839, - 838, 68, 68, 68, 844, 68, 68, 840, 842, 68, - 68, 846, 68, 68, 68, 68, 68, 843, 849, 68, - - 851, 68, 854, 848, 68, 68, 841, 68, 847, 845, - 68, 68, 850, 853, 852, 68, 859, 858, 860, 68, - 68, 68, 68, 68, 855, 856, 863, 857, 68, 68, - 861, 866, 867, 862, 864, 68, 868, 68, 68, 68, - 869, 68, 68, 68, 875, 68, 865, 872, 874, 68, - 68, 68, 68, 68, 876, 883, 68, 870, 68, 871, - 68, 68, 68, 68, 873, 68, 68, 880, 877, 882, - 881, 878, 879, 888, 68, 68, 892, 68, 68, 129, - 887, 884, 885, 889, 886, 68, 890, 68, 893, 68, - 68, 891, 894, 68, 895, 68, 901, 68, 896, 902, - - 68, 68, 898, 68, 900, 899, 68, 68, 68, 897, - 68, 68, 909, 68, 68, 912, 904, 903, 68, 68, - 68, 906, 914, 68, 905, 915, 916, 68, 908, 910, - 68, 68, 911, 907, 68, 68, 913, 68, 918, 68, - 68, 922, 920, 917, 919, 68, 68, 68, 68, 68, - 921, 927, 68, 928, 929, 68, 924, 930, 923, 68, - 68, 934, 68, 925, 931, 68, 926, 938, 68, 68, - 68, 68, 68, 942, 68, 933, 943, 68, 68, 935, - 936, 937, 932, 939, 941, 68, 945, 68, 940, 68, - 946, 68, 68, 68, 944, 68, 950, 68, 68, 952, - - 68, 953, 68, 954, 68, 68, 68, 955, 68, 956, - 947, 948, 958, 949, 68, 68, 959, 68, 951, 960, - 68, 68, 961, 957, 962, 68, 966, 68, 68, 68, - 970, 68, 68, 68, 972, 967, 68, 963, 68, 964, - 68, 68, 975, 68, 965, 68, 68, 968, 68, 969, - 974, 68, 977, 976, 127, 978, 973, 68, 971, 68, - 980, 68, 983, 984, 68, 68, 979, 982, 68, 987, - 68, 986, 68, 68, 981, 68, 68, 988, 68, 68, - 68, 985, 989, 68, 68, 990, 994, 68, 995, 126, - 991, 998, 68, 993, 996, 992, 68, 1001, 68, 997, - - 124, 1000, 68, 1002, 68, 999, 1003, 1005, 1006, 1007, - 1004, 68, 68, 68, 68, 68, 68, 1012, 68, 1009, - 68, 1014, 68, 1011, 68, 1008, 68, 1016, 1010, 1017, - 68, 68, 1015, 1018, 68, 68, 68, 1019, 68, 68, - 1013, 1020, 68, 1024, 1021, 68, 68, 1023, 1022, 68, - 1029, 68, 68, 68, 1025, 1027, 1031, 68, 1028, 68, - 1033, 68, 68, 1026, 1034, 68, 1030, 1035, 68, 68, - 1032, 68, 1036, 68, 1038, 68, 68, 1037, 68, 68, - 68, 68, 68, 1040, 1046, 1045, 68, 1041, 1042, 68, - 1039, 1050, 68, 1043, 68, 1049, 68, 68, 1048, 1044, - - 68, 1052, 1053, 68, 1047, 68, 68, 1058, 1054, 68, - 1055, 68, 68, 68, 1059, 1056, 1062, 68, 122, 68, - 1051, 68, 68, 68, 1066, 68, 1057, 1061, 68, 68, - 1060, 1063, 1064, 1068, 1067, 1065, 68, 68, 68, 68, - 68, 1069, 1070, 68, 68, 1073, 1074, 68, 1072, 1075, - 68, 1071, 68, 1077, 1078, 68, 1079, 1080, 68, 68, - 68, 68, 68, 1082, 1076, 1083, 1085, 68, 68, 1081, - 1086, 1088, 68, 68, 1084, 68, 1089, 1087, 68, 68, - 68, 68, 68, 1091, 1092, 1090, 1094, 68, 68, 68, - 68, 68, 68, 68, 1093, 1102, 68, 68, 68, 1121, - - 1103, 68, 1354, 1100, 68, 1106, 1096, 68, 1095, 1098, - 1099, 1104, 1097, 1101, 1105, 1107, 68, 1108, 68, 68, - 1109, 1110, 68, 1111, 68, 1113, 68, 1114, 68, 68, - 68, 1117, 68, 68, 68, 1116, 1119, 68, 1112, 68, - 68, 1125, 68, 1122, 68, 1123, 1127, 68, 1115, 1128, - 68, 68, 1118, 1126, 68, 1130, 68, 1120, 68, 68, - 1124, 68, 68, 68, 1133, 1131, 68, 68, 1141, 68, - 1132, 1137, 68, 68, 68, 1135, 68, 1129, 1139, 68, - 1142, 1140, 1138, 68, 1136, 68, 1134, 1146, 1144, 68, - 1145, 68, 68, 68, 1143, 68, 1147, 1150, 1149, 68, - - 68, 68, 1151, 68, 1148, 1152, 1153, 68, 68, 1164, - 68, 68, 1154, 1155, 1156, 68, 1157, 1194, 68, 68, - 1162, 1158, 1159, 1160, 1161, 68, 68, 68, 68, 68, - 68, 1167, 1163, 1165, 68, 1166, 68, 1168, 1169, 68, - 68, 1171, 68, 1172, 68, 1170, 1173, 68, 1174, 68, - 1175, 68, 1176, 68, 1177, 1178, 68, 68, 1179, 1180, - 68, 68, 1183, 68, 1184, 68, 1182, 1185, 68, 68, - 68, 68, 68, 68, 1181, 68, 1192, 68, 68, 68, - 68, 1186, 68, 1188, 1189, 1190, 68, 1193, 1187, 68, - 68, 68, 68, 1196, 68, 1191, 1200, 1201, 68, 1195, - - 1198, 1202, 68, 68, 1204, 68, 1197, 1199, 1203, 1205, - 68, 68, 1208, 1207, 1206, 68, 68, 1212, 68, 1213, - 68, 68, 68, 68, 68, 68, 68, 68, 68, 1209, - 1219, 1210, 1220, 68, 68, 1211, 1214, 1223, 68, 1215, - 68, 1221, 1216, 1218, 1217, 68, 1222, 1225, 68, 1226, - 68, 68, 1227, 1224, 1229, 68, 68, 68, 68, 68, - 1230, 1231, 1228, 68, 1234, 1232, 68, 1354, 1235, 1237, - 68, 1238, 68, 1233, 1239, 1240, 68, 1241, 68, 68, - 68, 1236, 68, 68, 68, 1242, 1244, 68, 68, 68, - 68, 1248, 68, 68, 1243, 68, 1246, 1245, 1247, 1252, - - 68, 1249, 1254, 68, 1253, 68, 68, 1250, 68, 68, - 68, 1256, 1251, 1255, 1259, 68, 68, 1257, 68, 1261, - 68, 68, 1258, 1262, 1263, 68, 1264, 68, 1267, 68, - 1260, 1268, 68, 68, 1265, 1266, 68, 68, 68, 68, - 1269, 68, 1274, 1270, 68, 68, 1272, 68, 1271, 68, - 1276, 68, 68, 68, 68, 68, 1281, 68, 1273, 1284, - 1275, 1279, 1283, 68, 68, 68, 1285, 1277, 68, 68, - 68, 1280, 1282, 1286, 1289, 1278, 68, 1287, 68, 1290, - 68, 68, 68, 68, 68, 1291, 1292, 1296, 68, 1293, - 68, 68, 68, 1288, 68, 68, 1302, 1301, 1295, 1297, - - 1298, 1294, 1300, 1304, 68, 68, 68, 1306, 68, 68, - 1299, 1305, 1309, 68, 1303, 1310, 68, 68, 68, 68, - 1314, 68, 68, 1316, 68, 1307, 68, 68, 68, 1354, - 1312, 1308, 1354, 1319, 1315, 68, 1311, 1320, 68, 1313, - 1323, 1318, 1321, 68, 68, 1317, 1322, 68, 1324, 68, - 68, 1325, 1326, 68, 68, 68, 1329, 68, 68, 1327, - 68, 68, 1334, 1328, 1332, 1330, 1331, 1333, 68, 1335, - 68, 68, 1337, 68, 68, 1336, 68, 1340, 68, 1341, - 68, 1342, 68, 1343, 68, 68, 68, 1345, 68, 1338, - 68, 68, 1346, 68, 1339, 1348, 68, 1344, 68, 68, - - 1349, 1353, 68, 1354, 1354, 1354, 1354, 1354, 1350, 1354, - 1347, 1354, 1351, 1354, 1354, 1354, 1354, 1354, 1352, 40, - 40, 40, 40, 40, 40, 40, 45, 45, 45, 45, - 45, 45, 45, 50, 50, 50, 50, 50, 50, 50, - 56, 56, 56, 56, 56, 56, 56, 61, 61, 61, - 61, 61, 61, 61, 71, 71, 1354, 71, 71, 71, - 71, 121, 121, 1354, 1354, 1354, 121, 121, 123, 123, - 1354, 1354, 123, 1354, 123, 125, 1354, 1354, 1354, 1354, - 1354, 125, 128, 128, 1354, 1354, 1354, 128, 128, 130, - 1354, 1354, 1354, 1354, 1354, 130, 132, 132, 1354, 132, - - 132, 132, 132, 72, 72, 1354, 72, 72, 72, 72, - 13, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, - 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, - 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, - 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354 + 67, 94, 68, 76, 68, 67, 85, 68, 66, 15, + 16, 17, 62, 63, 64, 68, 68, 77, 136, 87, + 65, 69, 93, 68, 78, 70, 86, 68, 79, 66, + 72, 80, 72, 72, 68, 72, 68, 88, 95, 81, + 72, 73, 177, 82, 68, 89, 83, 68, 90, 84, + 68, 91, 68, 96, 68, 100, 104, 68, 92, 101, + 139, 97, 105, 68, 68, 106, 68, 98, 108, 111, + 138, 99, 107, 68, 115, 102, 116, 68, 109, 112, + 118, 110, 68, 113, 114, 119, 137, 68, 120, 129, + 129, 117, 121, 126, 523, 126, 126, 72, 126, 72, + + 72, 131, 72, 131, 131, 132, 131, 67, 134, 67, + 67, 68, 67, 68, 68, 68, 68, 67, 68, 135, + 72, 68, 72, 72, 141, 72, 143, 142, 146, 140, + 72, 73, 68, 68, 144, 148, 68, 68, 68, 68, + 145, 68, 152, 68, 153, 68, 147, 68, 155, 132, + 68, 156, 149, 68, 150, 151, 68, 154, 159, 161, + 158, 68, 68, 162, 164, 157, 165, 68, 166, 68, + 68, 163, 68, 68, 68, 68, 168, 171, 160, 68, + 167, 68, 68, 169, 173, 68, 181, 68, 174, 68, + 68, 68, 170, 172, 175, 176, 68, 183, 68, 179, + + 178, 182, 68, 180, 68, 185, 186, 189, 68, 122, + 122, 124, 129, 129, 124, 132, 190, 184, 126, 187, + 126, 126, 131, 126, 131, 131, 191, 131, 72, 132, + 72, 72, 192, 72, 68, 68, 194, 68, 68, 134, + 193, 68, 68, 68, 130, 196, 200, 198, 68, 195, + 68, 68, 202, 197, 68, 201, 68, 68, 68, 208, + 68, 210, 68, 199, 68, 213, 212, 209, 203, 68, + 68, 68, 68, 204, 68, 68, 222, 211, 205, 219, + 68, 68, 68, 214, 206, 207, 215, 216, 218, 68, + 217, 227, 220, 68, 223, 224, 221, 226, 229, 68, + + 68, 68, 68, 68, 230, 68, 225, 231, 232, 68, + 228, 234, 68, 68, 68, 68, 233, 68, 68, 68, + 236, 235, 68, 68, 68, 238, 246, 241, 242, 68, + 68, 68, 68, 239, 248, 68, 250, 237, 68, 240, + 132, 68, 249, 68, 252, 243, 253, 244, 245, 255, + 247, 68, 258, 68, 68, 256, 68, 251, 68, 261, + 68, 68, 68, 68, 68, 262, 260, 68, 68, 254, + 68, 267, 257, 68, 268, 259, 263, 264, 266, 68, + 265, 68, 269, 270, 68, 68, 68, 272, 275, 273, + 68, 68, 277, 68, 271, 274, 68, 279, 68, 68, + + 68, 278, 68, 68, 276, 68, 284, 68, 68, 287, + 68, 68, 68, 288, 68, 68, 283, 281, 280, 68, + 286, 282, 293, 289, 292, 285, 68, 299, 68, 290, + 68, 68, 291, 297, 298, 68, 68, 68, 300, 295, + 294, 68, 296, 305, 68, 68, 68, 68, 307, 68, + 304, 306, 303, 301, 310, 68, 302, 312, 68, 68, + 308, 68, 68, 313, 314, 68, 68, 68, 320, 309, + 68, 68, 68, 68, 68, 311, 319, 321, 68, 315, + 68, 68, 316, 325, 68, 317, 335, 318, 132, 68, + 68, 322, 324, 336, 323, 327, 341, 68, 68, 326, + + 68, 68, 328, 329, 68, 339, 68, 68, 338, 337, + 68, 68, 330, 68, 331, 332, 333, 340, 342, 334, + 68, 344, 345, 68, 343, 347, 349, 350, 348, 68, + 346, 68, 68, 351, 68, 68, 352, 355, 356, 68, + 68, 68, 68, 68, 68, 68, 354, 353, 362, 363, + 359, 361, 68, 364, 358, 365, 68, 357, 366, 68, + 68, 367, 370, 360, 68, 369, 68, 68, 68, 68, + 68, 68, 368, 68, 376, 375, 68, 372, 68, 68, + 379, 373, 374, 377, 68, 380, 68, 371, 68, 68, + 68, 68, 68, 68, 68, 68, 382, 378, 383, 390, + + 388, 389, 384, 68, 68, 68, 391, 381, 387, 68, + 68, 385, 386, 68, 394, 68, 68, 68, 68, 68, + 396, 68, 68, 392, 128, 406, 68, 409, 395, 68, + 68, 393, 397, 68, 405, 407, 398, 68, 399, 404, + 68, 408, 68, 400, 412, 401, 68, 410, 68, 411, + 68, 68, 413, 402, 68, 416, 417, 414, 132, 418, + 68, 422, 421, 403, 68, 415, 68, 68, 68, 426, + 68, 68, 427, 419, 68, 420, 423, 68, 68, 68, + 68, 425, 431, 428, 68, 424, 429, 433, 68, 434, + 68, 435, 68, 430, 436, 68, 68, 432, 437, 68, + + 438, 439, 68, 68, 68, 68, 442, 440, 441, 68, + 68, 68, 445, 443, 446, 444, 68, 448, 127, 68, + 68, 447, 453, 449, 68, 452, 68, 68, 450, 68, + 68, 68, 451, 455, 68, 454, 458, 68, 456, 68, + 68, 68, 459, 464, 460, 68, 461, 68, 68, 68, + 466, 465, 467, 463, 68, 68, 462, 68, 68, 468, + 457, 68, 68, 471, 472, 474, 68, 473, 68, 475, + 68, 470, 476, 469, 68, 477, 68, 68, 481, 478, + 480, 68, 482, 68, 68, 68, 483, 484, 68, 68, + 68, 68, 485, 68, 479, 489, 68, 68, 494, 486, + + 68, 68, 490, 68, 68, 491, 498, 487, 497, 488, + 68, 496, 493, 68, 492, 68, 68, 68, 68, 495, + 68, 68, 68, 502, 68, 503, 68, 505, 504, 499, + 501, 506, 68, 509, 500, 68, 507, 132, 68, 508, + 68, 512, 511, 68, 513, 68, 515, 68, 518, 510, + 68, 68, 68, 68, 516, 519, 68, 68, 68, 68, + 521, 68, 68, 525, 514, 526, 517, 524, 520, 527, + 68, 522, 125, 68, 68, 68, 556, 528, 534, 529, + 535, 68, 530, 68, 536, 68, 537, 531, 538, 68, + 68, 540, 539, 532, 533, 68, 541, 68, 542, 68, + + 68, 68, 543, 68, 547, 68, 68, 68, 68, 546, + 551, 68, 550, 552, 68, 544, 553, 554, 123, 545, + 548, 68, 68, 68, 549, 68, 555, 68, 68, 68, + 68, 68, 559, 557, 560, 558, 563, 561, 562, 68, + 564, 68, 68, 68, 566, 68, 68, 568, 68, 68, + 565, 68, 571, 68, 68, 68, 567, 570, 569, 68, + 572, 68, 68, 68, 68, 68, 579, 68, 68, 68, + 578, 68, 573, 584, 574, 575, 576, 582, 68, 577, + 68, 580, 587, 581, 588, 583, 68, 68, 68, 585, + 68, 68, 586, 68, 593, 591, 594, 68, 68, 68, + + 590, 68, 595, 598, 68, 589, 600, 68, 68, 601, + 132, 597, 592, 68, 68, 596, 68, 68, 603, 68, + 68, 68, 68, 68, 599, 68, 613, 620, 602, 68, + 68, 68, 68, 606, 68, 604, 68, 619, 615, 616, + 634, 605, 607, 68, 618, 614, 608, 638, 609, 132, + 617, 68, 610, 68, 611, 68, 621, 68, 625, 612, + 68, 622, 68, 623, 68, 626, 68, 628, 68, 627, + 630, 633, 68, 629, 631, 635, 68, 68, 68, 636, + 68, 624, 68, 632, 68, 68, 68, 639, 68, 68, + 642, 68, 68, 640, 646, 68, 637, 641, 645, 68, + + 68, 68, 644, 68, 68, 647, 643, 68, 651, 652, + 654, 648, 653, 649, 656, 650, 68, 655, 657, 68, + 68, 659, 658, 68, 660, 68, 68, 68, 661, 68, + 68, 68, 664, 68, 68, 68, 666, 68, 667, 668, + 68, 662, 68, 669, 671, 68, 670, 663, 68, 68, + 68, 665, 674, 673, 68, 68, 68, 672, 68, 68, + 675, 679, 68, 680, 68, 682, 684, 685, 678, 676, + 68, 68, 68, 68, 677, 683, 68, 681, 687, 68, + 691, 68, 68, 68, 68, 686, 68, 68, 68, 68, + 689, 68, 688, 690, 699, 693, 700, 68, 130, 68, + + 692, 68, 694, 696, 68, 68, 697, 701, 698, 702, + 68, 703, 695, 68, 68, 68, 708, 68, 705, 68, + 68, 68, 68, 68, 704, 711, 68, 68, 713, 706, + 707, 710, 68, 68, 68, 68, 715, 709, 68, 719, + 712, 68, 716, 68, 68, 714, 68, 68, 727, 717, + 718, 68, 723, 68, 68, 68, 68, 720, 128, 724, + 726, 722, 721, 729, 68, 68, 732, 725, 728, 731, + 733, 68, 68, 68, 736, 68, 730, 68, 734, 68, + 738, 735, 68, 737, 68, 68, 740, 68, 68, 739, + 68, 744, 746, 741, 747, 743, 742, 68, 68, 68, + + 68, 68, 68, 748, 749, 68, 745, 68, 68, 755, + 750, 68, 68, 754, 68, 751, 68, 752, 68, 753, + 68, 68, 756, 68, 760, 758, 757, 68, 761, 765, + 68, 759, 762, 766, 68, 68, 68, 68, 763, 767, + 768, 68, 769, 770, 68, 68, 764, 771, 772, 68, + 773, 774, 68, 68, 68, 68, 68, 775, 776, 779, + 778, 68, 777, 781, 782, 783, 68, 780, 785, 68, + 68, 784, 68, 68, 68, 68, 789, 68, 68, 68, + 792, 786, 68, 68, 68, 68, 788, 68, 68, 797, + 68, 68, 68, 787, 68, 802, 795, 68, 790, 803, + + 68, 68, 791, 793, 794, 796, 68, 68, 68, 68, + 798, 806, 800, 809, 68, 801, 799, 68, 68, 805, + 68, 68, 68, 804, 68, 807, 68, 815, 808, 68, + 68, 816, 810, 813, 812, 817, 811, 68, 819, 68, + 814, 68, 68, 824, 818, 821, 825, 823, 68, 68, + 826, 68, 820, 68, 68, 68, 830, 68, 827, 68, + 831, 68, 822, 832, 68, 835, 68, 68, 828, 68, + 68, 68, 839, 68, 829, 838, 833, 68, 834, 68, + 68, 68, 68, 68, 847, 127, 837, 844, 68, 68, + 840, 68, 836, 848, 68, 849, 68, 68, 841, 842, + + 843, 853, 68, 845, 846, 851, 68, 850, 68, 68, + 68, 854, 855, 858, 68, 68, 860, 852, 68, 859, + 861, 862, 68, 863, 68, 68, 68, 865, 68, 856, + 857, 864, 68, 68, 68, 68, 870, 68, 68, 868, + 68, 68, 872, 68, 68, 68, 68, 866, 875, 874, + 869, 877, 68, 68, 68, 880, 68, 68, 867, 68, + 871, 68, 68, 68, 876, 873, 883, 879, 886, 68, + 878, 885, 68, 887, 68, 68, 881, 882, 68, 884, + 890, 68, 888, 68, 893, 894, 889, 68, 891, 68, + 68, 68, 895, 68, 68, 68, 68, 902, 68, 899, + + 892, 901, 68, 68, 68, 896, 68, 903, 897, 68, + 68, 910, 68, 898, 68, 68, 68, 68, 900, 68, + 68, 904, 908, 907, 905, 909, 906, 68, 916, 68, + 68, 917, 919, 68, 911, 912, 915, 68, 913, 921, + 920, 68, 914, 68, 68, 68, 918, 68, 922, 68, + 929, 930, 68, 924, 68, 68, 926, 923, 928, 927, + 68, 68, 68, 68, 925, 68, 68, 937, 68, 68, + 940, 68, 942, 932, 931, 68, 934, 68, 68, 933, + 943, 68, 68, 936, 938, 68, 68, 939, 935, 941, + 945, 946, 944, 68, 950, 68, 947, 68, 68, 68, + + 951, 68, 948, 68, 68, 949, 68, 68, 956, 68, + 68, 957, 958, 68, 959, 953, 68, 952, 68, 954, + 963, 68, 960, 955, 68, 68, 68, 68, 125, 968, + 68, 962, 964, 961, 68, 68, 965, 966, 68, 969, + 68, 971, 972, 68, 973, 68, 967, 974, 970, 975, + 68, 976, 68, 68, 980, 68, 68, 68, 982, 68, + 984, 977, 983, 68, 68, 68, 68, 985, 68, 986, + 988, 978, 68, 979, 68, 68, 68, 981, 990, 68, + 68, 991, 992, 68, 987, 68, 68, 68, 993, 68, + 994, 68, 996, 989, 68, 995, 1000, 68, 68, 1002, + + 68, 68, 68, 997, 68, 998, 68, 999, 1067, 1004, + 68, 1003, 1006, 68, 68, 1001, 68, 1007, 68, 1009, + 1010, 1008, 1005, 68, 1011, 68, 68, 68, 1015, 68, + 1012, 1014, 1013, 68, 1017, 1018, 68, 68, 1016, 68, + 68, 68, 1019, 68, 1022, 1021, 68, 68, 1020, 68, + 68, 68, 1026, 1030, 68, 1033, 1024, 123, 1027, 1023, + 68, 1028, 1025, 1034, 68, 1032, 1029, 1035, 1031, 1037, + 68, 1036, 68, 1039, 68, 68, 68, 68, 68, 68, + 1041, 1044, 1038, 68, 68, 1046, 68, 1040, 68, 1042, + 68, 1048, 1049, 68, 1050, 68, 1047, 1051, 68, 68, + + 68, 68, 68, 1053, 1043, 1045, 1052, 1054, 1055, 68, + 68, 1057, 68, 68, 68, 68, 1062, 68, 68, 68, + 1064, 1056, 1058, 1060, 1061, 68, 1069, 1063, 68, 1066, + 1059, 1068, 68, 68, 68, 1065, 68, 1071, 68, 68, + 68, 68, 68, 68, 68, 68, 1079, 68, 1078, 68, + 1073, 1074, 1075, 1070, 68, 1072, 1076, 68, 1081, 1082, + 68, 1083, 1077, 1080, 1084, 68, 68, 68, 68, 1087, + 68, 1086, 68, 1088, 1092, 1089, 68, 68, 1090, 68, + 1085, 1093, 68, 68, 1096, 68, 68, 68, 68, 1100, + 68, 68, 1091, 68, 1097, 1098, 1094, 1095, 1099, 1102, + + 68, 68, 68, 1103, 68, 1104, 1105, 68, 68, 1101, + 68, 68, 68, 1107, 1109, 1106, 1110, 1113, 68, 68, + 1108, 1112, 1115, 68, 68, 68, 68, 68, 1114, 1117, + 1116, 1118, 1111, 1120, 68, 1121, 68, 1119, 68, 1124, + 68, 68, 1125, 68, 68, 68, 68, 1123, 68, 1127, + 1128, 1122, 68, 1130, 68, 1126, 68, 68, 68, 68, + 1129, 68, 1138, 68, 68, 68, 1142, 1139, 68, 68, + 68, 1136, 68, 1132, 1143, 68, 1134, 68, 1131, 1135, + 1133, 1140, 1137, 1141, 1144, 68, 1146, 68, 1147, 68, + 1145, 1148, 1149, 68, 1150, 68, 68, 68, 68, 1154, + + 68, 68, 68, 1153, 1156, 68, 68, 68, 1158, 68, + 1151, 68, 1159, 68, 1160, 68, 1152, 1162, 68, 1412, + 1155, 1164, 68, 68, 1157, 68, 1163, 1165, 68, 1161, + 68, 1167, 1168, 68, 68, 1169, 68, 1166, 1173, 68, + 1172, 1171, 68, 68, 68, 68, 1170, 1175, 68, 68, + 1179, 1412, 1180, 1177, 1178, 68, 68, 68, 1176, 1184, + 1174, 68, 1183, 68, 68, 1182, 68, 1185, 68, 1181, + 68, 68, 1187, 1190, 68, 1186, 1191, 1192, 68, 1188, + 1189, 68, 68, 68, 68, 1193, 1194, 1195, 68, 1196, + 68, 68, 68, 1201, 1197, 1198, 1202, 1200, 68, 68, + + 68, 68, 1199, 1412, 68, 1204, 1206, 68, 1207, 1205, + 1208, 68, 68, 68, 68, 1203, 68, 1209, 1210, 1211, + 68, 1212, 68, 1213, 68, 1214, 68, 68, 68, 68, + 1215, 1217, 1218, 68, 1219, 68, 68, 1220, 1216, 68, + 68, 1221, 1224, 68, 1223, 1225, 68, 1226, 68, 68, + 1222, 68, 1227, 68, 68, 68, 1233, 68, 68, 68, + 68, 68, 68, 1229, 68, 1230, 1231, 1228, 1234, 68, + 68, 68, 68, 1241, 1237, 1232, 1242, 1243, 1239, 68, + 1236, 1244, 68, 68, 1235, 68, 1238, 1240, 68, 1246, + 1247, 68, 1248, 68, 68, 68, 68, 1245, 68, 1255, + + 1249, 1254, 68, 68, 68, 68, 68, 1412, 68, 68, + 1256, 1250, 1251, 68, 1252, 1253, 1262, 1263, 68, 68, + 68, 68, 1257, 1266, 68, 1258, 1259, 1260, 68, 1261, + 1268, 68, 68, 1269, 1264, 1270, 68, 68, 1265, 68, + 1267, 68, 1271, 68, 1274, 68, 1273, 68, 1275, 68, + 68, 68, 68, 1276, 1272, 1278, 1279, 1281, 68, 1282, + 68, 1283, 1277, 68, 1280, 68, 68, 1284, 1285, 68, + 1286, 68, 68, 68, 68, 1288, 1289, 1287, 1290, 68, + 68, 1293, 68, 1291, 68, 68, 1297, 68, 1292, 68, + 1299, 1294, 1300, 68, 68, 68, 68, 68, 1298, 68, + + 68, 1302, 1301, 1295, 1296, 68, 1303, 1305, 68, 68, + 1308, 68, 1304, 68, 1309, 1310, 68, 1311, 68, 68, + 1306, 1314, 1315, 68, 68, 1307, 68, 68, 1316, 68, + 68, 1312, 68, 1313, 1318, 1317, 68, 68, 1322, 68, + 1320, 68, 68, 68, 1324, 68, 1319, 68, 68, 68, + 68, 1329, 1332, 68, 1327, 1321, 68, 1323, 1330, 68, + 1333, 68, 1325, 1335, 68, 68, 68, 1328, 1331, 1326, + 1334, 1337, 68, 68, 1336, 68, 1340, 1339, 68, 68, + 68, 68, 1341, 1342, 68, 1344, 1347, 68, 1343, 68, + 68, 1338, 68, 68, 68, 68, 68, 68, 1348, 1346, + + 1345, 1351, 1352, 1355, 68, 68, 1349, 1358, 68, 68, + 1357, 1350, 1356, 68, 1354, 1361, 68, 1362, 68, 68, + 1353, 68, 68, 1366, 68, 68, 1368, 68, 68, 1359, + 1369, 68, 68, 1364, 68, 1360, 68, 1367, 1363, 1372, + 1373, 68, 1365, 1374, 68, 68, 1371, 1370, 1375, 68, + 1376, 1377, 68, 68, 1379, 1380, 68, 68, 1378, 68, + 1383, 68, 1381, 68, 68, 68, 68, 1382, 1384, 1385, + 1387, 68, 68, 1389, 68, 68, 1388, 1390, 1391, 1392, + 68, 1393, 68, 68, 1395, 1386, 1396, 68, 1397, 68, + 1398, 68, 1399, 68, 1400, 68, 1401, 68, 1394, 68, + + 68, 1403, 68, 68, 1406, 68, 1404, 68, 68, 68, + 68, 1402, 1411, 68, 1412, 1412, 1407, 1412, 1412, 1412, + 1412, 1412, 1409, 1405, 1408, 1412, 1412, 1412, 1412, 1410, + 40, 40, 40, 40, 40, 40, 40, 45, 45, 45, + 45, 45, 45, 45, 50, 50, 50, 50, 50, 50, + 50, 56, 56, 56, 56, 56, 56, 56, 61, 61, + 61, 61, 61, 61, 61, 71, 71, 1412, 71, 71, + 71, 71, 122, 122, 1412, 1412, 1412, 122, 122, 124, + 124, 1412, 1412, 124, 1412, 124, 126, 1412, 1412, 1412, + 1412, 1412, 126, 129, 129, 1412, 1412, 1412, 129, 129, + + 131, 1412, 1412, 1412, 1412, 1412, 131, 133, 133, 1412, + 133, 133, 133, 133, 72, 72, 1412, 72, 72, 72, + 72, 13, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412 } ; -static yyconst flex_int16_t yy_chk[2751] = +static yyconst flex_int16_t yy_chk[2862] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1187,302 +1229,315 @@ static yyconst flex_int16_t yy_chk[2751] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 4, 4, 4, 49, 5, 5, 49, 3, 5, 15, 4, 6, 6, 15, 5, 6, 9, 9, - 9, 117, 33, 6, 7, 7, 7, 7, 9, 7, + 9, 118, 33, 6, 7, 7, 7, 7, 9, 7, 10, 10, 10, 44, 44, 7, 8, 8, 8, 8, - 10, 8, 21, 33, 117, 21, 21, 8, 11, 11, - 11, 11, 11, 11, 1360, 20, 29, 20, 20, 11, + 10, 8, 21, 33, 118, 21, 21, 8, 11, 11, + 11, 11, 11, 11, 1418, 20, 29, 20, 20, 11, 20, 29, 24, 21, 25, 20, 24, 28, 11, 12, 12, 12, 12, 12, 12, 74, 22, 22, 74, 25, - 12, 69, 28, 66, 22, 69, 24, 26, 26, 12, - 19, 22, 19, 19, 23, 19, 26, 66, 27, 23, - 19, 19, 27, 23, 30, 27, 23, 31, 31, 23, - 32, 32, 27, 584, 34, 32, 31, 60, 60, 30, - 35, 77, 31, 34, 77, 35, 31, 78, 36, 34, - 75, 32, 34, 36, 75, 35, 38, 76, 35, 34, - 79, 37, 37, 36, 37, 78, 130, 36, 36, 88, - 38, 39, 39, 88, 79, 38, 39, 76, 55, 37, - - 55, 55, 63, 55, 63, 63, 65, 63, 65, 65, - 82, 65, 68, 63, 68, 68, 85, 68, 80, 81, - 86, 84, 68, 71, 83, 71, 71, 87, 71, 83, - 80, 92, 82, 71, 71, 84, 85, 81, 86, 89, - 90, 95, 83, 91, 89, 87, 91, 93, 94, 91, - 92, 94, 93, 96, 90, 94, 97, 98, 99, 100, - 97, 101, 102, 91, 98, 95, 100, 96, 104, 103, - 105, 99, 93, 103, 101, 105, 106, 107, 108, 105, - 109, 116, 102, 110, 111, 112, 104, 113, 113, 111, - 107, 114, 119, 108, 115, 118, 106, 112, 120, 109, - - 118, 110, 116, 149, 119, 122, 122, 149, 113, 114, - 115, 124, 129, 129, 124, 126, 120, 126, 126, 131, - 126, 131, 131, 132, 131, 132, 132, 134, 132, 137, - 134, 135, 136, 138, 132, 139, 135, 136, 140, 148, - 141, 138, 142, 143, 137, 141, 146, 142, 143, 147, - 139, 145, 145, 151, 147, 150, 152, 153, 140, 144, - 150, 155, 148, 144, 154, 146, 155, 151, 144, 153, - 156, 152, 153, 144, 128, 157, 158, 159, 159, 144, - 144, 158, 154, 160, 161, 163, 162, 164, 160, 161, - 156, 157, 164, 165, 160, 162, 166, 167, 165, 169, - - 168, 166, 167, 170, 171, 169, 163, 168, 172, 173, - 171, 174, 175, 176, 177, 178, 179, 173, 176, 180, - 181, 179, 181, 170, 182, 184, 174, 185, 185, 189, - 172, 182, 175, 178, 178, 183, 177, 186, 187, 180, - 183, 189, 186, 187, 184, 188, 190, 188, 191, 192, - 193, 194, 195, 196, 192, 193, 191, 198, 198, 197, - 186, 196, 197, 200, 188, 190, 194, 199, 199, 201, - 195, 202, 203, 204, 202, 205, 203, 206, 208, 200, - 205, 210, 204, 208, 201, 207, 207, 209, 211, 212, - 213, 206, 209, 214, 214, 215, 216, 217, 220, 219, - - 221, 210, 217, 213, 218, 222, 211, 218, 216, 221, - 212, 219, 223, 215, 228, 220, 224, 225, 220, 225, - 225, 226, 226, 229, 227, 223, 222, 227, 224, 234, - 230, 228, 231, 231, 228, 232, 233, 233, 229, 230, - 232, 235, 236, 237, 234, 238, 239, 236, 240, 239, - 238, 241, 243, 244, 245, 242, 246, 243, 244, 247, - 249, 235, 240, 237, 242, 248, 251, 241, 248, 252, - 241, 253, 241, 247, 249, 245, 246, 254, 252, 255, - 259, 251, 256, 258, 248, 250, 257, 250, 250, 261, - 260, 257, 253, 262, 255, 259, 254, 250, 265, 250, - - 250, 250, 256, 258, 250, 260, 263, 262, 266, 261, - 267, 263, 264, 264, 268, 264, 270, 269, 265, 269, - 270, 271, 272, 273, 266, 274, 267, 276, 268, 277, - 275, 276, 273, 127, 274, 275, 272, 278, 277, 271, - 279, 281, 278, 280, 284, 273, 279, 283, 280, 282, - 282, 285, 283, 287, 281, 286, 289, 287, 288, 288, - 285, 289, 290, 291, 291, 284, 294, 286, 293, 293, - 295, 296, 297, 299, 300, 301, 302, 303, 295, 305, - 296, 302, 306, 290, 297, 303, 304, 294, 307, 301, - 308, 304, 307, 299, 300, 309, 310, 305, 311, 314, - - 309, 313, 316, 315, 306, 308, 317, 317, 315, 125, - 318, 321, 310, 315, 320, 314, 322, 311, 312, 312, - 323, 313, 316, 321, 312, 324, 312, 319, 319, 320, - 327, 322, 325, 326, 312, 318, 328, 325, 330, 323, - 331, 329, 326, 330, 312, 329, 332, 324, 333, 327, - 335, 328, 331, 334, 334, 336, 337, 338, 342, 339, - 338, 333, 335, 342, 332, 340, 340, 336, 341, 341, - 346, 337, 339, 343, 343, 344, 344, 345, 347, 352, - 348, 349, 345, 347, 348, 350, 349, 351, 353, 350, - 354, 346, 351, 353, 355, 354, 123, 356, 358, 352, - - 356, 357, 357, 358, 359, 356, 363, 360, 355, 356, - 360, 361, 362, 359, 365, 361, 364, 362, 367, 363, - 366, 364, 368, 367, 369, 372, 370, 369, 368, 370, - 365, 371, 366, 373, 374, 375, 371, 361, 375, 374, - 376, 378, 379, 372, 377, 376, 378, 373, 377, 377, - 380, 379, 381, 380, 384, 385, 381, 381, 382, 383, - 382, 383, 386, 387, 390, 388, 389, 391, 380, 388, - 394, 392, 384, 385, 396, 389, 398, 393, 396, 390, - 399, 386, 393, 387, 400, 391, 392, 395, 395, 394, - 397, 401, 398, 403, 406, 397, 402, 400, 401, 399, - - 403, 402, 404, 405, 407, 408, 409, 404, 405, 413, - 410, 407, 406, 411, 408, 410, 411, 412, 414, 414, - 409, 412, 417, 416, 418, 419, 417, 414, 416, 420, - 413, 423, 426, 419, 427, 428, 432, 433, 429, 428, - 427, 426, 418, 429, 420, 431, 435, 435, 423, 430, - 431, 430, 434, 430, 432, 434, 430, 436, 437, 437, - 438, 430, 433, 441, 436, 439, 439, 430, 430, 440, - 442, 443, 440, 444, 444, 438, 445, 446, 452, 443, - 447, 448, 448, 441, 452, 447, 121, 449, 450, 442, - 453, 445, 449, 450, 451, 446, 454, 451, 453, 455, - - 456, 457, 458, 458, 454, 456, 459, 460, 457, 461, - 463, 464, 460, 463, 459, 465, 465, 455, 466, 467, - 469, 470, 467, 471, 472, 464, 474, 473, 461, 477, - 467, 476, 475, 466, 480, 474, 475, 479, 481, 67, - 480, 469, 470, 471, 478, 482, 472, 473, 477, 476, - 483, 479, 484, 478, 485, 483, 484, 486, 481, 482, - 487, 488, 489, 489, 491, 487, 490, 491, 492, 486, - 493, 490, 494, 485, 495, 496, 496, 494, 497, 497, - 498, 499, 488, 493, 500, 499, 492, 501, 502, 504, - 506, 505, 507, 504, 495, 498, 509, 508, 510, 516, - - 516, 556, 502, 500, 510, 506, 507, 556, 511, 513, - 509, 501, 503, 511, 513, 503, 505, 503, 508, 512, - 512, 503, 514, 503, 517, 512, 515, 512, 503, 517, - 519, 518, 520, 521, 521, 524, 514, 522, 515, 518, - 524, 522, 526, 525, 519, 512, 525, 527, 528, 529, - 530, 520, 531, 528, 532, 534, 533, 531, 529, 537, - 527, 526, 535, 538, 534, 539, 540, 535, 541, 530, - 533, 540, 542, 541, 532, 543, 549, 542, 537, 549, - 539, 538, 544, 544, 543, 545, 550, 547, 551, 553, - 545, 547, 547, 548, 548, 552, 557, 548, 552, 554, - - 555, 550, 557, 559, 554, 555, 558, 558, 551, 560, - 553, 561, 559, 562, 561, 563, 564, 565, 566, 567, - 568, 570, 569, 566, 567, 569, 573, 560, 571, 575, - 565, 562, 570, 571, 563, 572, 564, 576, 568, 579, - 572, 573, 574, 574, 577, 578, 580, 581, 575, 578, - 582, 576, 587, 585, 586, 580, 577, 579, 588, 589, - 590, 61, 591, 588, 589, 590, 581, 585, 592, 586, - 594, 595, 587, 593, 597, 582, 591, 600, 593, 596, - 596, 598, 592, 599, 601, 594, 595, 602, 599, 601, - 598, 603, 597, 604, 605, 603, 600, 606, 607, 608, - - 609, 610, 604, 613, 614, 611, 602, 612, 618, 605, - 607, 611, 606, 614, 617, 616, 618, 619, 608, 610, - 616, 609, 612, 613, 620, 622, 621, 623, 617, 620, - 621, 621, 625, 625, 624, 626, 623, 619, 622, 624, - 626, 627, 628, 628, 629, 630, 627, 631, 632, 633, - 630, 634, 635, 629, 633, 636, 634, 635, 637, 636, - 638, 631, 641, 642, 640, 643, 632, 637, 640, 644, - 645, 638, 637, 646, 637, 647, 637, 641, 645, 643, - 648, 642, 649, 649, 650, 650, 652, 646, 644, 652, - 653, 654, 656, 647, 660, 653, 655, 655, 657, 657, - - 662, 658, 659, 659, 661, 648, 658, 664, 662, 661, - 654, 663, 656, 665, 660, 666, 663, 673, 668, 665, - 674, 669, 666, 668, 670, 664, 669, 671, 672, 670, - 676, 674, 671, 675, 675, 677, 673, 672, 678, 679, - 680, 682, 682, 678, 681, 683, 684, 686, 685, 688, - 676, 689, 691, 688, 688, 690, 692, 691, 677, 679, - 680, 693, 681, 694, 695, 683, 685, 694, 696, 697, - 686, 684, 699, 690, 692, 698, 703, 689, 701, 700, - 704, 693, 695, 697, 700, 701, 705, 696, 702, 704, - 698, 699, 706, 702, 703, 707, 714, 708, 706, 709, - - 710, 705, 708, 713, 709, 710, 711, 711, 713, 715, - 714, 717, 717, 716, 718, 719, 707, 716, 716, 720, - 721, 722, 724, 725, 723, 726, 728, 722, 715, 723, - 727, 729, 730, 718, 719, 731, 731, 736, 732, 721, - 728, 724, 725, 732, 726, 720, 733, 730, 734, 727, - 733, 735, 729, 737, 737, 739, 740, 736, 738, 739, - 735, 734, 741, 738, 744, 745, 745, 741, 746, 744, - 748, 748, 754, 746, 750, 750, 740, 752, 753, 753, - 752, 755, 757, 756, 758, 758, 761, 754, 756, 759, - 760, 760, 762, 764, 763, 765, 767, 757, 763, 768, - - 765, 769, 769, 762, 770, 771, 755, 772, 761, 759, - 776, 774, 764, 768, 767, 773, 774, 773, 775, 777, - 778, 781, 785, 775, 770, 771, 778, 772, 782, 780, - 776, 782, 783, 777, 780, 784, 784, 783, 786, 787, - 785, 789, 788, 790, 791, 791, 781, 788, 790, 792, - 793, 794, 795, 796, 792, 799, 798, 786, 797, 787, - 799, 800, 801, 802, 789, 803, 804, 796, 793, 798, - 797, 794, 795, 804, 805, 806, 809, 809, 812, 56, - 803, 800, 801, 805, 802, 810, 805, 811, 810, 813, - 814, 806, 811, 815, 812, 816, 817, 819, 813, 818, - - 818, 817, 815, 820, 816, 815, 821, 822, 823, 814, - 824, 825, 825, 826, 827, 829, 820, 819, 830, 832, - 829, 822, 831, 840, 821, 832, 833, 831, 824, 826, - 834, 833, 827, 823, 838, 835, 830, 839, 835, 841, - 842, 840, 838, 834, 835, 843, 845, 846, 847, 848, - 839, 846, 849, 847, 848, 850, 842, 849, 841, 851, - 852, 853, 853, 843, 850, 854, 845, 857, 855, 856, - 859, 858, 857, 861, 861, 852, 862, 862, 860, 854, - 855, 856, 851, 858, 860, 863, 864, 864, 859, 866, - 865, 879, 867, 868, 863, 865, 869, 869, 870, 871, - - 871, 872, 872, 873, 874, 877, 884, 874, 873, 876, - 866, 867, 878, 868, 876, 885, 879, 878, 870, 880, - 880, 881, 881, 877, 882, 883, 884, 886, 887, 882, - 888, 888, 889, 890, 890, 885, 891, 883, 895, 883, - 898, 893, 894, 894, 883, 896, 897, 886, 900, 887, - 893, 901, 896, 895, 51, 897, 891, 903, 889, 899, - 899, 905, 903, 904, 906, 910, 898, 901, 904, 907, - 907, 906, 908, 909, 900, 911, 912, 908, 913, 915, - 914, 905, 909, 916, 918, 910, 914, 919, 915, 50, - 911, 917, 917, 913, 916, 912, 924, 920, 929, 916, - - 45, 919, 920, 921, 921, 918, 922, 923, 924, 925, - 922, 922, 923, 926, 925, 927, 928, 930, 931, 927, - 933, 932, 930, 929, 935, 926, 932, 935, 928, 936, - 936, 938, 933, 937, 937, 944, 939, 938, 940, 941, - 931, 939, 946, 946, 940, 947, 948, 944, 941, 949, - 951, 951, 954, 956, 946, 948, 955, 962, 949, 957, - 957, 955, 958, 947, 958, 961, 954, 959, 959, 964, - 956, 965, 961, 963, 963, 966, 967, 962, 968, 969, - 971, 976, 972, 965, 972, 971, 973, 966, 967, 974, - 964, 977, 977, 968, 978, 976, 979, 983, 974, 969, - - 980, 979, 980, 981, 973, 982, 984, 985, 981, 986, - 982, 988, 985, 989, 986, 983, 990, 990, 40, 991, - 978, 995, 993, 992, 993, 994, 984, 989, 1000, 1001, - 988, 991, 992, 995, 994, 992, 996, 997, 999, 1006, - 1003, 996, 997, 1005, 1007, 1001, 1003, 1009, 1000, 1005, - 1011, 999, 14, 1007, 1008, 1008, 1009, 1010, 1010, 1012, - 1013, 1014, 1016, 1012, 1006, 1013, 1015, 1015, 1019, 1011, - 1016, 1020, 1020, 1022, 1014, 1021, 1021, 1019, 1023, 1025, - 1024, 1026, 1027, 1023, 1024, 1022, 1026, 1028, 1030, 1032, - 1031, 1033, 1034, 1056, 1025, 1036, 1036, 1037, 1038, 1056, - - 1037, 1039, 13, 1033, 1040, 1040, 1028, 1043, 1027, 1031, - 1032, 1038, 1030, 1034, 1039, 1041, 1041, 1042, 1042, 1046, - 1043, 1044, 1044, 1045, 1045, 1047, 1047, 1048, 1048, 1049, - 1051, 1052, 1052, 1053, 1060, 1051, 1054, 1054, 1046, 1055, - 1057, 1059, 1059, 1057, 1058, 1058, 1061, 1061, 1049, 1063, - 1063, 1064, 1053, 1060, 1065, 1065, 1066, 1055, 1067, 1068, - 1058, 1069, 1070, 1071, 1068, 1066, 1072, 1073, 1076, 1074, - 1067, 1072, 1075, 1076, 1079, 1070, 1077, 1064, 1074, 1081, - 1077, 1075, 1073, 1086, 1071, 1087, 1069, 1083, 1081, 1082, - 1082, 1144, 1083, 1103, 1079, 1084, 1084, 1087, 1086, 1089, - - 1090, 1096, 1089, 1098, 1084, 1090, 1091, 1091, 1092, 1103, - 1093, 1095, 1092, 1093, 1094, 1094, 1095, 1144, 1097, 1099, - 1100, 1096, 1097, 1098, 1099, 1100, 1101, 1105, 1104, 1106, - 1123, 1106, 1101, 1104, 1122, 1105, 1109, 1109, 1112, 1112, - 1115, 1116, 1116, 1118, 1118, 1115, 1120, 1121, 1121, 1124, - 1122, 1120, 1123, 1129, 1124, 1126, 1126, 1130, 1129, 1130, - 1131, 1132, 1133, 1133, 1134, 1134, 1132, 1135, 1135, 1136, - 1137, 1138, 1139, 1140, 1131, 1141, 1142, 1142, 1143, 1145, - 1146, 1136, 1147, 1138, 1139, 1140, 1148, 1143, 1137, 1149, - 1154, 1150, 1151, 1146, 1160, 1141, 1150, 1151, 1159, 1145, - - 1148, 1152, 1152, 1155, 1155, 1158, 1147, 1149, 1154, 1157, - 1157, 1161, 1160, 1159, 1158, 1162, 1163, 1164, 1164, 1165, - 1167, 1166, 1168, 1173, 1165, 1170, 1176, 1174, 1177, 1161, - 1174, 1162, 1175, 1175, 1180, 1163, 1166, 1179, 1179, 1167, - 1187, 1176, 1168, 1173, 1170, 1188, 1177, 1181, 1181, 1182, - 1182, 1186, 1186, 1180, 1188, 1189, 1190, 1191, 1193, 1194, - 1189, 1190, 1187, 1195, 1194, 1191, 1196, 0, 1195, 1197, - 1197, 1198, 1198, 1193, 1199, 1200, 1200, 1201, 1201, 1199, - 1203, 1196, 1204, 1206, 1207, 1203, 1206, 1208, 1213, 1209, - 1210, 1210, 1211, 1214, 1204, 1216, 1208, 1207, 1209, 1215, - - 1215, 1211, 1217, 1217, 1216, 1218, 1219, 1213, 1221, 1222, - 1227, 1219, 1214, 1218, 1224, 1224, 1232, 1221, 1228, 1228, - 1229, 1233, 1222, 1229, 1230, 1230, 1231, 1231, 1234, 1242, - 1227, 1235, 1235, 1234, 1232, 1233, 1236, 1239, 1243, 1244, - 1236, 1245, 1245, 1239, 1246, 1247, 1243, 1248, 1242, 1249, - 1247, 1251, 1250, 1253, 1255, 1257, 1253, 1258, 1244, 1257, - 1246, 1250, 1256, 1256, 1260, 1261, 1258, 1248, 1262, 1265, - 1279, 1251, 1255, 1260, 1265, 1249, 1267, 1261, 1266, 1266, - 1270, 1269, 1271, 1272, 1275, 1267, 1269, 1273, 1273, 1270, - 1274, 1276, 1278, 1262, 1277, 1280, 1279, 1278, 1272, 1274, - - 1275, 1271, 1277, 1281, 1281, 1285, 1282, 1284, 1284, 1286, - 1276, 1282, 1287, 1287, 1280, 1288, 1288, 1289, 1290, 1291, - 1292, 1292, 1293, 1294, 1294, 1285, 1295, 1297, 1298, 0, - 1290, 1286, 0, 1298, 1293, 1302, 1289, 1299, 1299, 1291, - 1302, 1297, 1300, 1300, 1317, 1295, 1301, 1301, 1303, 1303, - 1305, 1305, 1307, 1307, 1308, 1311, 1312, 1312, 1319, 1308, - 1313, 1315, 1319, 1311, 1317, 1313, 1315, 1318, 1318, 1323, - 1323, 1325, 1327, 1327, 1328, 1325, 1330, 1331, 1331, 1332, - 1332, 1334, 1334, 1336, 1336, 1338, 1339, 1339, 1344, 1328, - 1345, 1347, 1344, 1349, 1330, 1346, 1346, 1338, 1350, 1351, - - 1347, 1352, 1352, 0, 0, 0, 0, 0, 1349, 0, - 1345, 0, 1350, 0, 0, 0, 0, 0, 1351, 1355, - 1355, 1355, 1355, 1355, 1355, 1355, 1356, 1356, 1356, 1356, - 1356, 1356, 1356, 1357, 1357, 1357, 1357, 1357, 1357, 1357, - 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1359, 1359, 1359, - 1359, 1359, 1359, 1359, 1361, 1361, 0, 1361, 1361, 1361, - 1361, 1362, 1362, 0, 0, 0, 1362, 1362, 1363, 1363, - 0, 0, 1363, 0, 1363, 1364, 0, 0, 0, 0, - 0, 1364, 1365, 1365, 0, 0, 0, 1365, 1365, 1366, - 0, 0, 0, 0, 0, 1366, 1367, 1367, 0, 1367, - - 1367, 1367, 1367, 1368, 1368, 0, 1368, 1368, 1368, 1368, - 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, - 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, - 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, - 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354 + 12, 69, 28, 30, 22, 69, 24, 109, 22, 12, + 19, 22, 19, 19, 23, 19, 26, 26, 30, 23, + 19, 19, 109, 23, 27, 26, 23, 34, 27, 23, + 76, 27, 31, 31, 32, 32, 34, 77, 27, 32, + 77, 31, 34, 35, 36, 34, 38, 31, 35, 36, + 76, 31, 34, 37, 37, 32, 37, 435, 35, 36, + 38, 35, 75, 36, 36, 38, 75, 39, 39, 60, + 60, 37, 39, 55, 435, 55, 55, 63, 55, 63, + + 63, 65, 63, 65, 65, 66, 65, 68, 63, 68, + 68, 78, 68, 80, 81, 79, 82, 68, 83, 66, + 71, 85, 71, 71, 79, 71, 81, 80, 84, 78, + 71, 71, 86, 84, 82, 85, 87, 88, 89, 90, + 83, 93, 89, 91, 90, 92, 84, 96, 92, 601, + 97, 92, 86, 94, 87, 88, 95, 91, 94, 95, + 93, 99, 98, 95, 97, 92, 98, 100, 99, 101, + 102, 96, 103, 104, 107, 105, 101, 104, 94, 106, + 100, 110, 108, 102, 106, 111, 112, 115, 106, 113, + 116, 112, 103, 105, 107, 108, 114, 114, 117, 111, + + 110, 113, 119, 111, 120, 115, 116, 119, 121, 123, + 123, 125, 130, 130, 125, 131, 120, 114, 127, 117, + 127, 127, 132, 127, 132, 132, 121, 132, 133, 135, + 133, 133, 135, 133, 138, 136, 137, 139, 140, 133, + 136, 137, 141, 142, 129, 139, 143, 141, 148, 138, + 144, 143, 145, 140, 150, 144, 149, 145, 147, 147, + 152, 149, 151, 142, 146, 152, 151, 148, 146, 153, + 156, 154, 158, 146, 157, 155, 160, 150, 146, 157, + 159, 160, 164, 153, 146, 146, 154, 155, 156, 165, + 155, 164, 158, 161, 161, 162, 159, 163, 166, 167, + + 162, 172, 163, 166, 167, 171, 162, 168, 169, 170, + 165, 171, 168, 169, 173, 174, 170, 175, 176, 177, + 173, 172, 178, 180, 179, 175, 182, 178, 179, 181, + 183, 182, 184, 176, 184, 185, 186, 174, 187, 177, + 192, 186, 185, 188, 188, 180, 189, 181, 181, 190, + 183, 189, 192, 191, 190, 191, 193, 187, 194, 195, + 196, 197, 199, 198, 195, 196, 194, 204, 201, 189, + 200, 201, 191, 202, 202, 193, 197, 198, 200, 205, + 199, 203, 203, 204, 206, 207, 208, 206, 209, 207, + 210, 211, 211, 209, 205, 208, 212, 213, 214, 215, + + 216, 212, 213, 217, 210, 218, 218, 219, 220, 221, + 222, 223, 224, 222, 221, 225, 217, 215, 214, 226, + 220, 216, 226, 223, 225, 219, 227, 230, 230, 224, + 228, 229, 224, 229, 229, 231, 232, 233, 231, 227, + 226, 234, 228, 235, 235, 238, 236, 237, 237, 239, + 234, 236, 233, 232, 240, 241, 232, 242, 243, 240, + 238, 244, 242, 243, 244, 245, 246, 247, 248, 239, + 250, 256, 249, 248, 251, 241, 247, 249, 252, 245, + 253, 254, 246, 253, 257, 246, 256, 246, 258, 259, + 260, 250, 252, 257, 251, 254, 262, 261, 263, 253, + + 255, 262, 255, 255, 264, 260, 265, 266, 259, 258, + 267, 268, 255, 271, 255, 255, 255, 261, 263, 255, + 272, 265, 266, 269, 264, 268, 270, 270, 269, 270, + 267, 273, 274, 271, 276, 275, 272, 275, 276, 277, + 278, 279, 280, 281, 283, 282, 274, 273, 281, 282, + 279, 280, 285, 283, 278, 284, 286, 277, 285, 287, + 284, 286, 289, 279, 288, 288, 290, 289, 291, 292, + 293, 294, 287, 295, 295, 294, 297, 291, 296, 298, + 298, 292, 293, 296, 300, 300, 301, 290, 302, 303, + 304, 306, 307, 310, 308, 309, 302, 297, 303, 311, + + 309, 310, 304, 312, 311, 313, 312, 301, 308, 314, + 315, 306, 307, 316, 315, 317, 318, 319, 322, 321, + 317, 324, 326, 313, 128, 323, 325, 325, 316, 328, + 323, 314, 318, 332, 322, 323, 319, 320, 320, 321, + 329, 324, 330, 320, 328, 320, 331, 326, 327, 327, + 334, 333, 329, 320, 335, 332, 333, 330, 337, 334, + 336, 338, 337, 320, 339, 331, 338, 340, 341, 342, + 342, 344, 343, 335, 345, 336, 339, 343, 346, 347, + 355, 341, 347, 344, 348, 340, 345, 349, 349, 350, + 350, 351, 361, 346, 352, 352, 351, 348, 353, 353, + + 354, 355, 356, 364, 357, 354, 358, 356, 357, 359, + 360, 358, 361, 359, 362, 360, 363, 364, 126, 362, + 365, 363, 367, 365, 366, 366, 368, 367, 365, 372, + 369, 371, 365, 369, 370, 368, 371, 374, 370, 373, + 375, 376, 372, 377, 373, 378, 374, 379, 377, 380, + 379, 378, 380, 376, 381, 382, 375, 383, 384, 381, + 370, 385, 386, 384, 385, 387, 389, 386, 391, 387, + 387, 383, 388, 382, 395, 389, 390, 388, 392, 390, + 391, 396, 392, 392, 393, 394, 393, 394, 397, 398, + 401, 399, 395, 400, 390, 399, 402, 403, 404, 396, + + 405, 408, 400, 404, 407, 401, 408, 397, 407, 398, + 406, 406, 403, 409, 402, 410, 412, 411, 417, 405, + 413, 414, 415, 412, 419, 413, 416, 415, 414, 409, + 411, 416, 418, 419, 410, 420, 417, 421, 422, 418, + 423, 422, 421, 424, 423, 425, 425, 427, 428, 420, + 430, 429, 431, 428, 425, 429, 432, 439, 438, 445, + 431, 440, 444, 439, 424, 440, 427, 438, 430, 441, + 465, 432, 124, 443, 441, 442, 465, 442, 443, 442, + 444, 450, 442, 446, 445, 448, 446, 442, 447, 447, + 449, 449, 448, 442, 442, 453, 450, 451, 451, 452, + + 454, 455, 452, 456, 456, 457, 458, 459, 461, 455, + 460, 460, 459, 461, 468, 453, 462, 463, 122, 454, + 457, 462, 463, 464, 458, 466, 464, 467, 472, 469, + 470, 474, 468, 466, 469, 467, 472, 470, 471, 471, + 473, 476, 477, 479, 476, 473, 478, 478, 480, 481, + 474, 483, 481, 484, 486, 485, 477, 480, 479, 487, + 481, 488, 489, 490, 491, 67, 489, 494, 492, 495, + 488, 493, 483, 494, 484, 485, 486, 492, 496, 487, + 498, 490, 497, 491, 498, 493, 499, 497, 500, 495, + 501, 502, 496, 503, 503, 501, 504, 506, 507, 505, + + 500, 504, 505, 508, 509, 499, 510, 510, 508, 511, + 511, 507, 502, 512, 513, 506, 514, 515, 513, 516, + 520, 517, 519, 521, 509, 522, 519, 526, 512, 523, + 524, 525, 526, 516, 542, 514, 537, 525, 521, 522, + 537, 515, 517, 518, 524, 520, 518, 542, 518, 61, + 523, 529, 518, 528, 518, 527, 527, 530, 528, 518, + 534, 527, 533, 527, 535, 529, 531, 531, 532, 530, + 533, 536, 536, 532, 534, 539, 540, 541, 545, 540, + 539, 527, 543, 535, 544, 546, 547, 543, 548, 549, + 546, 552, 553, 544, 550, 554, 541, 545, 549, 550, + + 555, 559, 548, 556, 557, 552, 547, 558, 556, 557, + 559, 553, 558, 554, 561, 555, 560, 560, 563, 561, + 564, 564, 563, 563, 564, 565, 566, 567, 565, 568, + 569, 570, 568, 571, 572, 577, 570, 573, 571, 572, + 574, 566, 579, 573, 575, 575, 574, 567, 576, 578, + 580, 569, 578, 577, 581, 582, 583, 576, 584, 585, + 579, 583, 586, 584, 587, 586, 588, 589, 582, 580, + 590, 588, 589, 592, 581, 587, 593, 585, 591, 591, + 595, 594, 596, 598, 595, 590, 597, 599, 604, 602, + 593, 603, 592, 594, 605, 597, 606, 609, 56, 605, + + 596, 606, 598, 602, 608, 607, 603, 607, 604, 608, + 610, 609, 599, 611, 612, 613, 614, 614, 611, 615, + 617, 618, 616, 619, 610, 617, 620, 625, 619, 612, + 613, 616, 621, 622, 623, 624, 621, 615, 626, 625, + 618, 627, 622, 628, 630, 620, 629, 631, 634, 623, + 624, 632, 629, 634, 635, 636, 637, 626, 51, 630, + 632, 628, 627, 636, 638, 640, 639, 631, 635, 638, + 639, 639, 641, 647, 642, 644, 637, 650, 640, 642, + 644, 641, 643, 643, 645, 646, 646, 648, 651, 645, + 649, 650, 652, 647, 653, 649, 648, 652, 654, 653, + + 655, 656, 657, 654, 655, 659, 651, 660, 661, 659, + 656, 662, 663, 657, 665, 656, 664, 656, 666, 656, + 667, 668, 660, 674, 664, 662, 661, 676, 665, 669, + 669, 663, 666, 670, 670, 673, 672, 680, 667, 672, + 673, 684, 674, 675, 675, 678, 668, 676, 677, 677, + 678, 679, 679, 681, 682, 683, 686, 680, 681, 684, + 683, 685, 682, 686, 688, 689, 690, 685, 691, 688, + 689, 690, 692, 691, 693, 694, 695, 695, 696, 697, + 698, 692, 701, 699, 700, 698, 694, 702, 703, 703, + 704, 705, 707, 693, 706, 709, 701, 710, 696, 709, + + 709, 711, 697, 699, 700, 702, 712, 713, 714, 715, + 704, 712, 706, 715, 716, 707, 705, 717, 719, 711, + 718, 720, 721, 710, 722, 713, 724, 721, 714, 725, + 723, 722, 716, 719, 718, 723, 717, 726, 725, 727, + 720, 728, 729, 730, 724, 727, 731, 729, 730, 732, + 732, 731, 726, 734, 735, 736, 737, 739, 734, 740, + 737, 737, 728, 738, 738, 741, 742, 743, 735, 744, + 741, 746, 745, 750, 736, 744, 739, 745, 740, 747, + 748, 749, 751, 753, 753, 50, 743, 750, 754, 752, + 746, 755, 742, 754, 756, 755, 757, 758, 747, 748, + + 749, 759, 759, 751, 752, 757, 760, 756, 761, 762, + 763, 760, 761, 764, 767, 768, 768, 758, 764, 767, + 769, 771, 771, 773, 773, 769, 776, 776, 775, 762, + 763, 775, 777, 778, 779, 780, 781, 781, 785, 779, + 782, 783, 783, 784, 786, 787, 788, 777, 786, 785, + 780, 788, 790, 791, 792, 792, 793, 794, 778, 796, + 782, 795, 800, 798, 787, 784, 795, 791, 798, 797, + 790, 797, 801, 799, 802, 805, 793, 794, 799, 796, + 802, 806, 800, 804, 806, 807, 801, 809, 804, 810, + 807, 808, 808, 811, 812, 813, 814, 815, 815, 812, + + 805, 814, 816, 817, 818, 809, 819, 816, 810, 820, + 821, 823, 822, 811, 824, 825, 823, 826, 813, 829, + 835, 817, 821, 820, 818, 822, 819, 827, 829, 828, + 830, 829, 833, 833, 824, 825, 828, 834, 826, 835, + 834, 837, 827, 836, 838, 839, 830, 840, 836, 841, + 842, 843, 843, 838, 844, 842, 840, 837, 841, 840, + 845, 846, 847, 848, 839, 849, 850, 850, 851, 852, + 854, 855, 856, 845, 844, 854, 847, 856, 860, 846, + 857, 865, 866, 849, 851, 857, 858, 852, 848, 855, + 859, 860, 858, 861, 865, 859, 861, 864, 867, 868, + + 866, 869, 861, 871, 872, 864, 873, 874, 872, 875, + 877, 873, 874, 876, 875, 868, 878, 867, 880, 869, + 879, 879, 876, 871, 881, 882, 883, 885, 45, 884, + 886, 878, 880, 877, 884, 887, 881, 882, 890, 885, + 893, 887, 888, 888, 889, 889, 883, 890, 886, 891, + 891, 892, 894, 895, 896, 896, 892, 897, 898, 898, + 900, 893, 899, 899, 901, 900, 904, 901, 906, 903, + 905, 894, 911, 895, 903, 905, 910, 897, 907, 907, + 908, 908, 909, 912, 904, 913, 914, 909, 910, 916, + 910, 918, 911, 906, 926, 910, 915, 915, 917, 917, + + 920, 921, 923, 912, 928, 913, 988, 914, 988, 920, + 925, 918, 922, 922, 924, 916, 929, 923, 933, 925, + 926, 924, 921, 927, 927, 938, 931, 934, 932, 939, + 928, 931, 929, 932, 934, 935, 935, 936, 933, 937, + 940, 941, 936, 942, 939, 938, 943, 947, 937, 944, + 945, 948, 943, 946, 946, 949, 941, 40, 944, 940, + 949, 945, 942, 950, 950, 948, 945, 951, 947, 952, + 953, 951, 951, 954, 952, 955, 956, 957, 954, 958, + 956, 959, 953, 960, 962, 961, 959, 955, 964, 957, + 961, 964, 965, 965, 966, 966, 962, 967, 969, 971, + + 968, 970, 967, 969, 958, 960, 968, 970, 971, 974, + 976, 976, 977, 984, 978, 979, 981, 981, 986, 991, + 985, 974, 976, 978, 979, 985, 991, 984, 987, 987, + 977, 989, 989, 992, 994, 986, 993, 993, 995, 996, + 997, 998, 999, 1001, 1002, 1003, 1002, 1007, 1001, 1004, + 995, 996, 997, 992, 1009, 994, 998, 1005, 1004, 1005, + 1014, 1007, 999, 1003, 1008, 1008, 1010, 1011, 1012, 1011, + 1013, 1010, 1015, 1012, 1016, 1013, 1017, 1019, 1014, 1016, + 1009, 1017, 1022, 1020, 1021, 1021, 1023, 1024, 1025, 1024, + 1026, 1027, 1015, 1032, 1022, 1023, 1019, 1020, 1023, 1026, + + 1028, 1029, 1031, 1027, 1033, 1028, 1029, 1038, 1035, 1025, + 1037, 1043, 1039, 1032, 1035, 1031, 1037, 1040, 1040, 1041, + 1033, 1039, 1042, 1042, 1046, 1044, 1045, 1048, 1041, 1044, + 1043, 1045, 1038, 1047, 1047, 1048, 1051, 1046, 1052, 1053, + 1053, 1054, 1054, 1055, 1056, 1058, 1057, 1052, 1059, 1056, + 1057, 1051, 1060, 1059, 1061, 1055, 1063, 1064, 1065, 1066, + 1058, 1067, 1069, 1069, 1070, 1073, 1073, 1070, 1071, 14, + 1072, 1066, 1079, 1061, 1074, 1074, 1064, 1076, 1060, 1065, + 1063, 1071, 1067, 1072, 1075, 1075, 1077, 1077, 1078, 1078, + 1076, 1079, 1080, 1080, 1081, 1081, 1082, 1083, 1085, 1086, + + 1086, 1087, 1090, 1085, 1088, 1088, 1089, 1094, 1090, 1091, + 1082, 1098, 1091, 1092, 1092, 1104, 1083, 1093, 1093, 13, + 1087, 1095, 1095, 1100, 1089, 1105, 1094, 1097, 1097, 1092, + 1099, 1099, 1100, 1101, 1102, 1101, 1103, 1098, 1105, 1106, + 1104, 1103, 1107, 1108, 1109, 1110, 1102, 1107, 1112, 1114, + 1111, 0, 1112, 1109, 1110, 1111, 1116, 1121, 1108, 1118, + 1106, 1117, 1117, 1122, 1118, 1116, 1119, 1119, 1123, 1114, + 1125, 1126, 1121, 1125, 1132, 1119, 1126, 1127, 1127, 1122, + 1123, 1128, 1134, 1129, 1131, 1128, 1129, 1130, 1130, 1131, + 1137, 1133, 1135, 1136, 1132, 1133, 1137, 1135, 1136, 1139, + + 1140, 1141, 1134, 0, 1142, 1140, 1142, 1145, 1145, 1141, + 1148, 1148, 1151, 1152, 1159, 1139, 1160, 1151, 1152, 1153, + 1153, 1155, 1155, 1157, 1158, 1158, 1161, 1168, 1157, 1166, + 1159, 1161, 1163, 1163, 1166, 1167, 1169, 1167, 1160, 1170, + 1174, 1168, 1171, 1171, 1170, 1172, 1172, 1173, 1173, 1175, + 1169, 1176, 1174, 1177, 1178, 1179, 1180, 1180, 1182, 1181, + 1183, 1184, 1185, 1176, 1186, 1177, 1178, 1175, 1181, 1187, + 1188, 1189, 1190, 1188, 1184, 1179, 1189, 1190, 1186, 1193, + 1183, 1191, 1191, 1197, 1182, 1198, 1185, 1187, 1194, 1194, + 1196, 1196, 1197, 1199, 1200, 1205, 1202, 1193, 1201, 1204, + + 1198, 1203, 1203, 1206, 1204, 1207, 1209, 0, 1210, 1213, + 1205, 1199, 1200, 1214, 1201, 1202, 1214, 1215, 1215, 1216, + 1217, 1220, 1206, 1219, 1219, 1207, 1209, 1210, 1222, 1213, + 1221, 1221, 1228, 1222, 1216, 1223, 1223, 1229, 1217, 1230, + 1220, 1227, 1227, 1231, 1230, 1232, 1229, 1234, 1231, 1237, + 1235, 1236, 1241, 1232, 1228, 1235, 1236, 1238, 1238, 1239, + 1239, 1240, 1234, 1246, 1237, 1249, 1240, 1241, 1242, 1242, + 1243, 1243, 1245, 1248, 1250, 1246, 1248, 1245, 1249, 1251, + 1252, 1252, 1253, 1250, 1255, 1256, 1257, 1257, 1251, 1258, + 1259, 1253, 1260, 1260, 1261, 1259, 1262, 1264, 1258, 1265, + + 1269, 1262, 1261, 1255, 1256, 1271, 1264, 1267, 1267, 1272, + 1272, 1273, 1265, 1276, 1273, 1274, 1274, 1275, 1275, 1277, + 1269, 1278, 1279, 1279, 1280, 1271, 1278, 1287, 1280, 1283, + 1284, 1276, 1288, 1277, 1284, 1283, 1289, 1290, 1290, 1292, + 1288, 1291, 1293, 1294, 1292, 1295, 1287, 1296, 1298, 1299, + 1301, 1298, 1302, 1302, 1295, 1289, 1303, 1291, 1299, 1308, + 1303, 1304, 1293, 1306, 1306, 1307, 1309, 1296, 1301, 1294, + 1304, 1308, 1312, 1314, 1307, 1313, 1313, 1312, 1316, 1317, + 1318, 1319, 1314, 1316, 1320, 1318, 1321, 1321, 1317, 1322, + 1323, 1309, 1324, 1325, 1327, 1328, 1330, 1326, 1322, 1320, + + 1319, 1325, 1326, 1329, 1329, 1331, 1323, 1333, 1333, 1334, + 1331, 1324, 1330, 1336, 1328, 1337, 1337, 1338, 1338, 1339, + 1327, 1340, 1341, 1342, 1342, 1343, 1344, 1344, 1346, 1334, + 1345, 1345, 1348, 1340, 1349, 1336, 1356, 1343, 1339, 1349, + 1350, 1350, 1341, 1351, 1351, 1353, 1348, 1346, 1352, 1352, + 1353, 1354, 1354, 1357, 1357, 1359, 1359, 1360, 1356, 1363, + 1364, 1364, 1360, 1365, 1367, 1370, 1384, 1363, 1365, 1367, + 1371, 1371, 1372, 1376, 1376, 1379, 1372, 1378, 1378, 1379, + 1378, 1381, 1381, 1382, 1384, 1370, 1385, 1385, 1386, 1386, + 1388, 1388, 1390, 1390, 1391, 1391, 1392, 1392, 1382, 1394, + + 1395, 1395, 1402, 1403, 1404, 1404, 1402, 1405, 1408, 1407, + 1409, 1394, 1410, 1410, 0, 0, 1405, 0, 0, 0, + 0, 0, 1408, 1403, 1407, 0, 0, 0, 0, 1409, + 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1414, 1414, 1414, + 1414, 1414, 1414, 1414, 1415, 1415, 1415, 1415, 1415, 1415, + 1415, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1417, 1417, + 1417, 1417, 1417, 1417, 1417, 1419, 1419, 0, 1419, 1419, + 1419, 1419, 1420, 1420, 0, 0, 0, 1420, 1420, 1421, + 1421, 0, 0, 1421, 0, 1421, 1422, 0, 0, 0, + 0, 0, 1422, 1423, 1423, 0, 0, 0, 1423, 1423, + + 1424, 0, 0, 0, 0, 0, 1424, 1425, 1425, 0, + 1425, 1425, 1425, 1425, 1426, 1426, 0, 1426, 1426, 1426, + 1426, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, + 1412 } ; static yy_state_type yy_last_accepting_state; @@ -1670,7 +1725,7 @@ static void config_end_include(void) #define YY_NO_INPUT 1 #endif -#line 1672 "" +#line 1727 "" #define INITIAL 0 #define quotedstring 1 @@ -1714,7 +1769,7 @@ FILE *yyget_out (void ); void yyset_out (FILE * out_str ); -yy_size_t yyget_leng (void ); +int yyget_leng (void ); char *yyget_text (void ); @@ -1754,7 +1809,12 @@ static int input (void ); /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -1857,7 +1917,7 @@ YY_DECL #line 184 "./util/configlexer.lex" -#line 1859 "" +#line 1919 "" if ( !(yy_init) ) { @@ -1916,13 +1976,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 >= 1355 ) + if ( yy_current_state >= 1413 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 2711 ); + while ( yy_base[yy_current_state] != 2822 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -2317,284 +2377,304 @@ YY_RULE_SETUP case 74: YY_RULE_SETUP #line 261 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_IDENTITY) } +{ YDVAR(1, VAR_SEND_CLIENT_SUBNET) } YY_BREAK case 75: YY_RULE_SETUP #line 262 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_VERSION) } +{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) } YY_BREAK case 76: YY_RULE_SETUP #line 263 "./util/configlexer.lex" -{ YDVAR(1, VAR_IDENTITY) } +{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) } YY_BREAK case 77: YY_RULE_SETUP #line 264 "./util/configlexer.lex" -{ YDVAR(1, VAR_VERSION) } +{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) } YY_BREAK case 78: YY_RULE_SETUP #line 265 "./util/configlexer.lex" -{ YDVAR(1, VAR_MODULE_CONF) } +{ YDVAR(1, VAR_HIDE_IDENTITY) } YY_BREAK case 79: YY_RULE_SETUP #line 266 "./util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR) } +{ YDVAR(1, VAR_HIDE_VERSION) } YY_BREAK case 80: YY_RULE_SETUP #line 267 "./util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } +{ YDVAR(1, VAR_IDENTITY) } YY_BREAK case 81: YY_RULE_SETUP #line 268 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_VERSION) } YY_BREAK case 82: YY_RULE_SETUP #line 269 "./util/configlexer.lex" -{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_MODULE_CONF) } YY_BREAK case 83: YY_RULE_SETUP #line 270 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } +{ YDVAR(1, VAR_DLV_ANCHOR) } YY_BREAK case 84: YY_RULE_SETUP #line 271 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR) } +{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } YY_BREAK case 85: YY_RULE_SETUP #line 272 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } +{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } YY_BREAK case 86: YY_RULE_SETUP #line 273 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } +{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } YY_BREAK case 87: YY_RULE_SETUP #line 274 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } +{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } YY_BREAK case 88: YY_RULE_SETUP #line 275 "./util/configlexer.lex" -{ YDVAR(1, VAR_BOGUS_TTL) } +{ YDVAR(1, VAR_TRUST_ANCHOR) } YY_BREAK case 89: YY_RULE_SETUP #line 276 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } +{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } YY_BREAK case 90: YY_RULE_SETUP #line 277 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } YY_BREAK case 91: YY_RULE_SETUP #line 278 "./util/configlexer.lex" -{ YDVAR(1, VAR_IGNORE_CD_FLAG) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } YY_BREAK case 92: YY_RULE_SETUP #line 279 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_LOG_LEVEL) } +{ YDVAR(1, VAR_BOGUS_TTL) } YY_BREAK case 93: YY_RULE_SETUP #line 280 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SIZE) } +{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } YY_BREAK case 94: YY_RULE_SETUP #line 281 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SLABS) } +{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } YY_BREAK case 95: YY_RULE_SETUP #line 282 "./util/configlexer.lex" -{ YDVAR(1, VAR_NEG_CACHE_SIZE) } +{ YDVAR(1, VAR_IGNORE_CD_FLAG) } YY_BREAK case 96: YY_RULE_SETUP #line 283 "./util/configlexer.lex" -{ - YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } +{ YDVAR(1, VAR_VAL_LOG_LEVEL) } YY_BREAK case 97: YY_RULE_SETUP -#line 285 "./util/configlexer.lex" -{ YDVAR(1, VAR_ADD_HOLDDOWN) } +#line 284 "./util/configlexer.lex" +{ YDVAR(1, VAR_KEY_CACHE_SIZE) } YY_BREAK case 98: YY_RULE_SETUP -#line 286 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEL_HOLDDOWN) } +#line 285 "./util/configlexer.lex" +{ YDVAR(1, VAR_KEY_CACHE_SLABS) } YY_BREAK case 99: YY_RULE_SETUP -#line 287 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEEP_MISSING) } +#line 286 "./util/configlexer.lex" +{ YDVAR(1, VAR_NEG_CACHE_SIZE) } YY_BREAK case 100: YY_RULE_SETUP -#line 288 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSLOG) } +#line 287 "./util/configlexer.lex" +{ + YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } YY_BREAK case 101: YY_RULE_SETUP #line 289 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TIME_ASCII) } +{ YDVAR(1, VAR_ADD_HOLDDOWN) } YY_BREAK case 102: YY_RULE_SETUP #line 290 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_QUERIES) } +{ YDVAR(1, VAR_DEL_HOLDDOWN) } YY_BREAK case 103: YY_RULE_SETUP #line 291 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE) } +{ YDVAR(1, VAR_KEEP_MISSING) } YY_BREAK case 104: YY_RULE_SETUP #line 292 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA) } +{ YDVAR(1, VAR_USE_SYSLOG) } YY_BREAK case 105: YY_RULE_SETUP #line 293 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA_PTR) } +{ YDVAR(1, VAR_LOG_TIME_ASCII) } YY_BREAK case 106: YY_RULE_SETUP #line 294 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_INTERVAL) } +{ YDVAR(1, VAR_LOG_QUERIES) } YY_BREAK case 107: YY_RULE_SETUP #line 295 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } +{ YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 108: YY_RULE_SETUP #line 296 "./util/configlexer.lex" -{ YDVAR(1, VAR_EXTENDED_STATISTICS) } +{ YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 109: YY_RULE_SETUP #line 297 "./util/configlexer.lex" -{ YDVAR(0, VAR_REMOTE_CONTROL) } +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 110: YY_RULE_SETUP #line 298 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_ENABLE) } +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 111: YY_RULE_SETUP #line 299 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_INTERFACE) } +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 112: YY_RULE_SETUP #line 300 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_PORT) } +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 113: YY_RULE_SETUP #line 301 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_KEY_FILE) } +{ YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 114: YY_RULE_SETUP #line 302 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_CERT_FILE) } +{ YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 115: YY_RULE_SETUP #line 303 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_KEY_FILE) } +{ YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 116: YY_RULE_SETUP #line 304 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_CERT_FILE) } +{ YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 117: YY_RULE_SETUP #line 305 "./util/configlexer.lex" -{ YDVAR(1, VAR_PYTHON_SCRIPT) } +{ YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 118: YY_RULE_SETUP #line 306 "./util/configlexer.lex" -{ YDVAR(0, VAR_PYTHON) } +{ YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 119: YY_RULE_SETUP #line 307 "./util/configlexer.lex" -{ YDVAR(1, VAR_DOMAIN_INSECURE) } +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 120: YY_RULE_SETUP #line 308 "./util/configlexer.lex" -{ YDVAR(1, VAR_MINIMAL_RESPONSES) } +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } YY_BREAK case 121: YY_RULE_SETUP #line 309 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } +{ YDVAR(1, VAR_PYTHON_SCRIPT) } YY_BREAK case 122: YY_RULE_SETUP #line 310 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_UDP_SIZE) } +{ YDVAR(0, VAR_PYTHON) } YY_BREAK case 123: -/* rule 123 can match eol */ YY_RULE_SETUP #line 311 "./util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++; } +{ YDVAR(1, VAR_DOMAIN_INSECURE) } YY_BREAK -/* Quoted strings. Strip leading and ending quotes */ case 124: YY_RULE_SETUP +#line 312 "./util/configlexer.lex" +{ YDVAR(1, VAR_MINIMAL_RESPONSES) } + YY_BREAK +case 125: +YY_RULE_SETUP +#line 313 "./util/configlexer.lex" +{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } + YY_BREAK +case 126: +YY_RULE_SETUP #line 314 "./util/configlexer.lex" +{ YDVAR(1, VAR_MAX_UDP_SIZE) } + YY_BREAK +case 127: +/* rule 127 can match eol */ +YY_RULE_SETUP +#line 315 "./util/configlexer.lex" +{ LEXOUT(("NL\n")); cfg_parser->line++; } + YY_BREAK +/* Quoted strings. Strip leading and ending quotes */ +case 128: +YY_RULE_SETUP +#line 318 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 315 "./util/configlexer.lex" +#line 319 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 125: +case 129: YY_RULE_SETUP -#line 320 "./util/configlexer.lex" +#line 324 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 126: -/* rule 126 can match eol */ +case 130: +/* rule 130 can match eol */ YY_RULE_SETUP -#line 321 "./util/configlexer.lex" +#line 325 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 127: +case 131: YY_RULE_SETUP -#line 323 "./util/configlexer.lex" +#line 327 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -2607,34 +2687,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 128: +case 132: YY_RULE_SETUP -#line 335 "./util/configlexer.lex" +#line 339 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 336 "./util/configlexer.lex" +#line 340 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 129: +case 133: YY_RULE_SETUP -#line 341 "./util/configlexer.lex" +#line 345 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 130: -/* rule 130 can match eol */ +case 134: +/* rule 134 can match eol */ YY_RULE_SETUP -#line 342 "./util/configlexer.lex" +#line 346 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 131: +case 135: YY_RULE_SETUP -#line 344 "./util/configlexer.lex" +#line 348 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -2647,38 +2727,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 132: +case 136: YY_RULE_SETUP -#line 356 "./util/configlexer.lex" +#line 360 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 358 "./util/configlexer.lex" +#line 362 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 133: +case 137: YY_RULE_SETUP -#line 362 "./util/configlexer.lex" +#line 366 "./util/configlexer.lex" { LEXOUT(("ISP ")); /* ignore */ } YY_BREAK -case 134: -/* rule 134 can match eol */ +case 138: +/* rule 138 can match eol */ YY_RULE_SETUP -#line 363 "./util/configlexer.lex" +#line 367 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK -case 135: +case 139: YY_RULE_SETUP -#line 364 "./util/configlexer.lex" +#line 368 "./util/configlexer.lex" { LEXOUT(("IQS ")); BEGIN(include_quoted); } YY_BREAK -case 136: +case 140: YY_RULE_SETUP -#line 365 "./util/configlexer.lex" +#line 369 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext); @@ -2686,27 +2766,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 370 "./util/configlexer.lex" +#line 374 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 137: +case 141: YY_RULE_SETUP -#line 374 "./util/configlexer.lex" +#line 378 "./util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK -case 138: -/* rule 138 can match eol */ +case 142: +/* rule 142 can match eol */ YY_RULE_SETUP -#line 375 "./util/configlexer.lex" +#line 379 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 139: +case 143: YY_RULE_SETUP -#line 377 "./util/configlexer.lex" +#line 381 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -2716,7 +2796,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 383 "./util/configlexer.lex" +#line 387 "./util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -2728,33 +2808,33 @@ case YY_STATE_EOF(val): } } YY_BREAK -case 140: +case 144: YY_RULE_SETUP -#line 394 "./util/configlexer.lex" +#line 398 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 141: +case 145: YY_RULE_SETUP -#line 398 "./util/configlexer.lex" +#line 402 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 142: +case 146: YY_RULE_SETUP -#line 402 "./util/configlexer.lex" +#line 406 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 143: +case 147: YY_RULE_SETUP -#line 406 "./util/configlexer.lex" +#line 410 "./util/configlexer.lex" ECHO; YY_BREAK -#line 2756 "" +#line 2836 "" case YY_END_OF_BUFFER: { @@ -2938,21 +3018,21 @@ static int yy_get_next_buffer (void) else { - yy_size_t num_to_read = + int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { - yy_size_t new_size = b->yy_buf_size * 2; + int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; @@ -2983,7 +3063,7 @@ static int yy_get_next_buffer (void) /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - (yy_n_chars), num_to_read ); + (yy_n_chars), (size_t) num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } @@ -3044,7 +3124,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 >= 1355 ) + if ( yy_current_state >= 1413 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -3072,13 +3152,13 @@ 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 >= 1355 ) + if ( yy_current_state >= 1413 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 1354); + yy_is_jam = (yy_current_state == 1412); - return yy_is_jam ? 0 : yy_current_state; + return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_INPUT @@ -3105,7 +3185,7 @@ static int yy_get_next_buffer (void) else { /* need more input */ - yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); + int offset = (yy_c_buf_p) - (yytext_ptr); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -3265,6 +3345,10 @@ static void yy_load_buffer_state (void) yyfree((void *) b ); } +#ifndef __cplusplus +extern int isatty (int ); +#endif /* __cplusplus */ + /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. @@ -3377,7 +3461,7 @@ void yypop_buffer_state (void) */ static void yyensure_buffer_stack (void) { - yy_size_t num_to_alloc; + int num_to_alloc; if (!(yy_buffer_stack)) { @@ -3474,7 +3558,7 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) +YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; @@ -3561,7 +3645,7 @@ FILE *yyget_out (void) /** Get the length of the current token. * */ -yy_size_t yyget_leng (void) +int yyget_leng (void) { return yyleng; } @@ -3709,7 +3793,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 406 "./util/configlexer.lex" +#line 410 "./util/configlexer.lex" diff --git a/util/configparser.c b/util/configparser.c index 0161aa1b0..c4d9eee9e 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 2.6.1. */ +/* A Bison parser, made by GNU Bison 2.7.12-4996. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -44,7 +44,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.6.1" +#define YYBISON_VERSION "2.7.12-4996" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -62,7 +62,7 @@ /* Copy the first part of user declarations. */ -/* Line 336 of yacc.c */ +/* Line 371 of yacc.c */ #line 38 "./util/configparser.y" #include "config.h" @@ -90,7 +90,7 @@ extern struct config_parser_state* cfg_parser; #endif -/* Line 336 of yacc.c */ +/* Line 371 of yacc.c */ #line 95 "util/configparser.c" # ifndef YY_NULL @@ -111,8 +111,8 @@ extern struct config_parser_state* cfg_parser; /* In a future release of Bison, this section will be replaced by #include "configparser.h". */ -#ifndef YY_UTIL_CONFIGPARSER_H -# define YY_UTIL_CONFIGPARSER_H +#ifndef YY_YY_UTIL_CONFIGPARSER_H_INCLUDED +# define YY_YY_UTIL_CONFIGPARSER_H_INCLUDED /* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 0 @@ -254,7 +254,11 @@ extern int yydebug; VAR_STUB_FIRST = 382, VAR_MINIMAL_RESPONSES = 383, VAR_RRSET_ROUNDROBIN = 384, - VAR_MAX_UDP_SIZE = 385 + VAR_SEND_CLIENT_SUBNET = 385, + VAR_CLIENT_SUBNET_OPCODE = 386, + VAR_MAX_CLIENT_SUBNET_IPV4 = 387, + VAR_MAX_CLIENT_SUBNET_IPV6 = 388, + VAR_MAX_UDP_SIZE = 389 }; #endif /* Tokens. */ @@ -385,21 +389,25 @@ extern int yydebug; #define VAR_STUB_FIRST 382 #define VAR_MINIMAL_RESPONSES 383 #define VAR_RRSET_ROUNDROBIN 384 -#define VAR_MAX_UDP_SIZE 385 +#define VAR_SEND_CLIENT_SUBNET 385 +#define VAR_CLIENT_SUBNET_OPCODE 386 +#define VAR_MAX_CLIENT_SUBNET_IPV4 387 +#define VAR_MAX_CLIENT_SUBNET_IPV6 388 +#define VAR_MAX_UDP_SIZE 389 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE { -/* Line 350 of yacc.c */ +/* Line 387 of yacc.c */ #line 64 "./util/configparser.y" char* str; -/* Line 350 of yacc.c */ -#line 403 "util/configparser.c" +/* Line 387 of yacc.c */ +#line 411 "util/configparser.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -422,12 +430,12 @@ int yyparse (); #endif #endif /* ! YYPARSE_PARAM */ -#endif /* !YY_UTIL_CONFIGPARSER_H */ +#endif /* !YY_YY_UTIL_CONFIGPARSER_H_INCLUDED */ /* Copy the second part of user declarations. */ -/* Line 353 of yacc.c */ -#line 431 "util/configparser.c" +/* Line 390 of yacc.c */ +#line 439 "util/configparser.c" #ifdef short # undef short @@ -480,24 +488,33 @@ typedef short int yytype_int16; # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ -# define YY_(msgid) dgettext ("bison-runtime", msgid) +# define YY_(Msgid) dgettext ("bison-runtime", Msgid) # endif # endif # ifndef YY_ -# define YY_(msgid) msgid +# define YY_(Msgid) Msgid +# endif +#endif + +#ifndef __attribute__ +/* This feature is available in gcc versions 2.5 and later. */ +# if (! defined __GNUC__ || __GNUC__ < 2 \ + || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)) +# define __attribute__(Spec) /* empty */ # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(e) ((void) (e)) +# define YYUSE(E) ((void) (E)) #else -# define YYUSE(e) /* empty */ +# define YYUSE(E) /* empty */ #endif + /* Identity function, used to suppress warnings about constant conditions. */ #ifndef lint -# define YYID(n) (n) +# define YYID(N) (N) #else #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) @@ -647,20 +664,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 239 +#define YYLAST 248 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 131 +#define YYNTOKENS 135 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 134 +#define YYNNTS 138 /* YYNRULES -- Number of rules. */ -#define YYNRULES 255 +#define YYNRULES 263 /* YYNRULES -- Number of states. */ -#define YYNSTATES 374 +#define YYNSTATES 386 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 385 +#define YYMAXUTOK 389 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -706,7 +723,7 @@ static const yytype_uint8 yytranslate[] = 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, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130 + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134 }; #if YYDEBUG @@ -725,54 +742,57 @@ static const yytype_uint16 yyprhs[] = 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, - 224, 226, 228, 231, 232, 234, 236, 238, 240, 242, - 244, 247, 248, 250, 252, 254, 256, 259, 262, 265, - 268, 271, 274, 277, 280, 283, 286, 289, 292, 295, - 298, 301, 304, 307, 310, 313, 316, 319, 322, 325, - 328, 331, 334, 337, 340, 343, 346, 349, 352, 355, - 358, 361, 364, 367, 370, 373, 376, 379, 382, 385, - 388, 391, 394, 397, 400, 403, 406, 409, 412, 415, - 418, 421, 424, 427, 430, 433, 436, 439, 442, 445, - 448, 451, 454, 457, 460, 463, 466, 469, 472, 475, - 478, 482, 485, 488, 491, 494, 497, 500, 503, 506, - 509, 512, 515, 518, 521, 524, 527, 530, 533, 536, - 540, 543, 546, 549, 552, 555, 558, 561, 564, 567, - 570, 573, 576, 579, 582, 584, 587, 588, 590, 592, - 594, 596, 598, 600, 602, 605, 608, 611, 614, 617, - 620, 623, 625, 628, 629, 631 + 224, 226, 228, 230, 232, 234, 236, 239, 240, 242, + 244, 246, 248, 250, 252, 255, 256, 258, 260, 262, + 264, 267, 270, 273, 276, 279, 282, 285, 288, 291, + 294, 297, 300, 303, 306, 309, 312, 315, 318, 321, + 324, 327, 330, 333, 336, 339, 342, 345, 348, 351, + 354, 357, 360, 363, 366, 369, 372, 375, 378, 381, + 384, 387, 390, 393, 396, 399, 402, 405, 408, 411, + 414, 417, 420, 423, 426, 429, 432, 435, 438, 441, + 444, 447, 450, 453, 456, 459, 462, 465, 468, 471, + 474, 477, 480, 483, 486, 489, 492, 495, 498, 502, + 505, 508, 511, 514, 517, 520, 523, 526, 529, 532, + 535, 538, 541, 544, 547, 550, 553, 556, 560, 563, + 566, 569, 572, 575, 578, 581, 584, 587, 590, 593, + 596, 599, 602, 604, 607, 608, 610, 612, 614, 616, + 618, 620, 622, 625, 628, 631, 634, 637, 640, 643, + 645, 648, 649, 651 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 132, 0, -1, -1, 132, 133, -1, 134, 135, -1, - 137, 138, -1, 140, 141, -1, 261, 262, -1, 251, - 252, -1, 11, -1, 135, 136, -1, -1, 143, -1, - 144, -1, 148, -1, 151, -1, 157, -1, 158, -1, - 159, -1, 160, -1, 149, -1, 170, -1, 171, -1, - 172, -1, 173, -1, 174, -1, 191, -1, 192, -1, - 193, -1, 195, -1, 196, -1, 154, -1, 197, -1, - 198, -1, 201, -1, 199, -1, 200, -1, 202, -1, - 203, -1, 204, -1, 215, -1, 183, -1, 184, -1, - 185, -1, 186, -1, 205, -1, 218, -1, 179, -1, - 181, -1, 219, -1, 224, -1, 225, -1, 226, -1, - 155, -1, 190, -1, 233, -1, 234, -1, 180, -1, - 229, -1, 167, -1, 150, -1, 175, -1, 216, -1, - 222, -1, 206, -1, 217, -1, 236, -1, 237, -1, - 156, -1, 145, -1, 166, -1, 209, -1, 146, -1, - 152, -1, 153, -1, 176, -1, 177, -1, 235, -1, - 208, -1, 210, -1, 211, -1, 147, -1, 238, -1, - 194, -1, 214, -1, 168, -1, 182, -1, 220, -1, - 221, -1, 223, -1, 228, -1, 178, -1, 230, -1, - 231, -1, 232, -1, 187, -1, 189, -1, 212, -1, - 213, -1, 188, -1, 207, -1, 227, -1, 169, -1, - 161, -1, 162, -1, 163, -1, 164, -1, 165, -1, - 239, -1, 240, -1, 241, -1, 38, -1, 138, 139, - -1, -1, 242, -1, 243, -1, 244, -1, 246, -1, - 245, -1, 44, -1, 141, 142, -1, -1, 247, -1, - 248, -1, 249, -1, 250, -1, 13, 10, -1, 12, - 10, -1, 76, 10, -1, 79, 10, -1, 96, 10, - -1, 14, 10, -1, 16, 10, -1, 67, 10, -1, + 136, 0, -1, -1, 136, 137, -1, 138, 139, -1, + 141, 142, -1, 144, 145, -1, 269, 270, -1, 259, + 260, -1, 11, -1, 139, 140, -1, -1, 147, -1, + 148, -1, 152, -1, 159, -1, 165, -1, 166, -1, + 167, -1, 168, -1, 157, -1, 178, -1, 179, -1, + 180, -1, 181, -1, 182, -1, 199, -1, 200, -1, + 201, -1, 203, -1, 204, -1, 162, -1, 205, -1, + 206, -1, 209, -1, 207, -1, 208, -1, 210, -1, + 211, -1, 212, -1, 223, -1, 191, -1, 192, -1, + 193, -1, 194, -1, 213, -1, 226, -1, 187, -1, + 189, -1, 227, -1, 232, -1, 233, -1, 234, -1, + 163, -1, 198, -1, 241, -1, 242, -1, 188, -1, + 237, -1, 175, -1, 158, -1, 183, -1, 224, -1, + 230, -1, 214, -1, 225, -1, 244, -1, 245, -1, + 164, -1, 149, -1, 174, -1, 217, -1, 150, -1, + 160, -1, 161, -1, 184, -1, 185, -1, 243, -1, + 216, -1, 218, -1, 219, -1, 151, -1, 246, -1, + 202, -1, 222, -1, 176, -1, 190, -1, 228, -1, + 229, -1, 231, -1, 236, -1, 186, -1, 238, -1, + 239, -1, 240, -1, 195, -1, 197, -1, 220, -1, + 221, -1, 196, -1, 215, -1, 235, -1, 177, -1, + 169, -1, 170, -1, 171, -1, 172, -1, 173, -1, + 247, -1, 248, -1, 153, -1, 154, -1, 155, -1, + 156, -1, 249, -1, 38, -1, 142, 143, -1, -1, + 250, -1, 251, -1, 252, -1, 254, -1, 253, -1, + 44, -1, 145, 146, -1, -1, 255, -1, 256, -1, + 257, -1, 258, -1, 13, 10, -1, 12, 10, -1, + 76, 10, -1, 79, 10, -1, 96, 10, -1, 14, + 10, -1, 130, 10, -1, 131, 10, -1, 132, 10, + -1, 133, 10, -1, 16, 10, -1, 67, 10, -1, 15, 10, -1, 80, 10, -1, 81, 10, -1, 31, 10, -1, 60, 10, -1, 75, 10, -1, 17, 10, -1, 18, 10, -1, 19, 10, -1, 20, 10, -1, @@ -800,46 +820,47 @@ static const yytype_int16 yyrhs[] = -1, 112, 10, -1, 110, 10, -1, 62, 10, -1, 63, 10, -1, 84, 10, -1, 73, 10, 10, -1, 74, 10, -1, 97, 10, -1, 128, 10, -1, 129, - 10, -1, 130, 10, -1, 37, 10, -1, 39, 10, + 10, -1, 134, 10, -1, 37, 10, -1, 39, 10, -1, 40, 10, -1, 127, 10, -1, 99, 10, -1, 37, 10, -1, 45, 10, -1, 46, 10, -1, 126, - 10, -1, 88, -1, 252, 253, -1, -1, 254, -1, - 256, -1, 255, -1, 257, -1, 258, -1, 259, -1, - 260, -1, 89, 10, -1, 91, 10, -1, 90, 10, + 10, -1, 88, -1, 260, 261, -1, -1, 262, -1, + 264, -1, 263, -1, 265, -1, 266, -1, 267, -1, + 268, -1, 89, 10, -1, 91, 10, -1, 90, 10, -1, 92, 10, -1, 93, 10, -1, 94, 10, -1, - 95, 10, -1, 103, -1, 262, 263, -1, -1, 264, + 95, 10, -1, 103, -1, 270, 271, -1, -1, 272, -1, 104, 10, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 111, 111, 111, 112, 112, 113, 113, 114, 118, - 123, 124, 125, 125, 125, 126, 126, 127, 127, 127, - 128, 128, 128, 129, 129, 129, 130, 130, 131, 131, - 132, 132, 133, 133, 134, 134, 135, 135, 136, 136, - 137, 137, 138, 138, 138, 139, 139, 139, 140, 140, - 140, 141, 141, 142, 142, 143, 143, 144, 144, 145, - 145, 145, 146, 146, 147, 147, 148, 148, 148, 149, - 149, 150, 150, 151, 151, 152, 152, 152, 153, 153, - 154, 154, 155, 155, 156, 156, 157, 157, 158, 158, - 158, 159, 159, 160, 160, 160, 161, 161, 161, 162, - 162, 162, 163, 163, 163, 164, 164, 164, 165, 165, - 165, 167, 179, 180, 181, 181, 181, 181, 181, 183, - 195, 196, 197, 197, 197, 197, 199, 208, 217, 228, - 237, 246, 255, 268, 283, 292, 301, 310, 319, 328, - 337, 346, 355, 364, 373, 382, 391, 398, 405, 414, - 423, 437, 446, 455, 462, 469, 476, 484, 491, 498, - 505, 512, 520, 528, 536, 543, 550, 559, 568, 575, - 582, 590, 598, 611, 622, 630, 643, 652, 661, 669, - 682, 691, 699, 708, 716, 729, 736, 746, 756, 766, - 776, 786, 796, 806, 813, 820, 829, 838, 847, 854, - 864, 878, 885, 903, 916, 929, 938, 947, 956, 966, - 976, 985, 994, 1001, 1010, 1019, 1028, 1036, 1049, 1057, - 1079, 1086, 1101, 1111, 1121, 1127, 1137, 1144, 1151, 1160, - 1170, 1180, 1187, 1194, 1203, 1208, 1209, 1210, 1210, 1210, - 1211, 1211, 1211, 1212, 1214, 1224, 1233, 1240, 1247, 1254, - 1261, 1268, 1273, 1274, 1275, 1277 + 0, 113, 113, 113, 114, 114, 115, 115, 116, 120, + 125, 126, 127, 127, 127, 128, 128, 129, 129, 129, + 130, 130, 130, 131, 131, 131, 132, 132, 133, 133, + 134, 134, 135, 135, 136, 136, 137, 137, 138, 138, + 139, 139, 140, 140, 140, 141, 141, 141, 142, 142, + 142, 143, 143, 144, 144, 145, 145, 146, 146, 147, + 147, 147, 148, 148, 149, 149, 150, 150, 150, 151, + 151, 152, 152, 153, 153, 154, 154, 154, 155, 155, + 156, 156, 157, 157, 158, 158, 159, 159, 160, 160, + 160, 161, 161, 162, 162, 162, 163, 163, 163, 164, + 164, 164, 165, 165, 165, 166, 166, 166, 167, 167, + 168, 168, 169, 169, 170, 172, 184, 185, 186, 186, + 186, 186, 186, 188, 200, 201, 202, 202, 202, 202, + 204, 213, 222, 233, 242, 251, 260, 271, 286, 303, + 320, 333, 348, 357, 366, 375, 384, 393, 402, 411, + 420, 429, 438, 447, 456, 463, 470, 479, 488, 502, + 511, 520, 527, 534, 541, 549, 556, 563, 570, 577, + 585, 593, 601, 608, 615, 624, 633, 640, 647, 655, + 663, 676, 687, 695, 708, 717, 726, 734, 747, 756, + 764, 773, 781, 794, 801, 811, 821, 831, 841, 851, + 861, 871, 878, 885, 894, 903, 912, 919, 929, 943, + 950, 968, 981, 994, 1003, 1012, 1021, 1031, 1041, 1050, + 1059, 1066, 1075, 1084, 1093, 1101, 1114, 1122, 1144, 1151, + 1166, 1176, 1186, 1192, 1202, 1209, 1216, 1225, 1235, 1245, + 1252, 1259, 1268, 1273, 1274, 1275, 1275, 1275, 1276, 1276, + 1276, 1277, 1279, 1289, 1298, 1305, 1312, 1319, 1326, 1333, + 1338, 1339, 1340, 1342 }; #endif @@ -889,17 +910,22 @@ static const char *const yytname[] = "VAR_LOG_QUERIES", "VAR_TCP_UPSTREAM", "VAR_SSL_UPSTREAM", "VAR_SSL_SERVICE_KEY", "VAR_SSL_SERVICE_PEM", "VAR_SSL_PORT", "VAR_FORWARD_FIRST", "VAR_STUB_FIRST", "VAR_MINIMAL_RESPONSES", - "VAR_RRSET_ROUNDROBIN", "VAR_MAX_UDP_SIZE", "$accept", "toplevelvars", - "toplevelvar", "serverstart", "contents_server", "content_server", - "stubstart", "contents_stub", "content_stub", "forwardstart", - "contents_forward", "content_forward", "server_num_threads", - "server_verbosity", "server_statistics_interval", + "VAR_RRSET_ROUNDROBIN", "VAR_SEND_CLIENT_SUBNET", + "VAR_CLIENT_SUBNET_OPCODE", "VAR_MAX_CLIENT_SUBNET_IPV4", + "VAR_MAX_CLIENT_SUBNET_IPV6", "VAR_MAX_UDP_SIZE", "$accept", + "toplevelvars", "toplevelvar", "serverstart", "contents_server", + "content_server", "stubstart", "contents_stub", "content_stub", + "forwardstart", "contents_forward", "content_forward", + "server_num_threads", "server_verbosity", "server_statistics_interval", "server_statistics_cumulative", "server_extended_statistics", - "server_port", "server_interface", "server_outgoing_interface", - "server_outgoing_range", "server_outgoing_port_permit", - "server_outgoing_port_avoid", "server_outgoing_num_tcp", - "server_incoming_num_tcp", "server_interface_automatic", "server_do_ip4", - "server_do_ip6", "server_do_udp", "server_do_tcp", "server_tcp_upstream", + "server_port", "server_send_client_subnet", + "server_client_subnet_opcode", "server_max_client_subnet_ipv4", + "server_max_client_subnet_ipv6", "server_interface", + "server_outgoing_interface", "server_outgoing_range", + "server_outgoing_port_permit", "server_outgoing_port_avoid", + "server_outgoing_num_tcp", "server_incoming_num_tcp", + "server_interface_automatic", "server_do_ip4", "server_do_ip6", + "server_do_udp", "server_do_tcp", "server_tcp_upstream", "server_ssl_upstream", "server_ssl_service_key", "server_ssl_service_pem", "server_ssl_port", "server_do_daemonize", "server_use_syslog", "server_log_time_ascii", "server_log_queries", @@ -961,26 +987,26 @@ static const yytype_uint16 yytoknum[] = 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 + 385, 386, 387, 388, 389 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 0, 131, 132, 132, 133, 133, 133, 133, 133, 134, - 135, 135, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 137, 138, 138, 139, 139, 139, 139, 139, 140, - 141, 141, 142, 142, 142, 142, 143, 144, 145, 146, + 0, 135, 136, 136, 137, 137, 137, 137, 137, 138, + 139, 139, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 141, 142, 142, 143, 143, + 143, 143, 143, 144, 145, 145, 146, 146, 146, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, @@ -991,9 +1017,10 @@ static const yytype_uint16 yyr1[] = 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 252, 253, 253, 253, - 253, 253, 253, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 262, 263, 264 + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 260, 261, 261, 261, 261, 261, + 261, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 270, 271, 272 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1010,30 +1037,31 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, - 2, 0, 1, 1, 1, 1, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, + 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 3, 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, 3, + 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 1, 2, 0, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, - 2, 1, 2, 0, 1, 2 + 2, 2, 1, 2, 0, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, + 2, 0, 1, 2 }; /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. Performed when YYTABLE doesn't specify something else to do. Zero means the default is an error. */ -static const yytype_uint8 yydefact[] = +static const yytype_uint16 yydefact[] = { - 2, 0, 1, 9, 111, 119, 234, 251, 3, 11, - 113, 121, 236, 253, 4, 5, 6, 8, 7, 0, + 2, 0, 1, 9, 115, 123, 242, 259, 3, 11, + 117, 125, 244, 261, 4, 5, 6, 8, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1043,52 +1071,53 @@ static const yytype_uint8 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 10, 12, - 13, 69, 72, 81, 14, 20, 60, 15, 73, 74, - 31, 53, 68, 16, 17, 18, 19, 103, 104, 105, - 106, 107, 70, 59, 85, 102, 21, 22, 23, 24, - 25, 61, 75, 76, 91, 47, 57, 48, 86, 41, - 42, 43, 44, 95, 99, 96, 54, 26, 27, 28, - 83, 29, 30, 32, 33, 35, 36, 34, 37, 38, - 39, 45, 64, 100, 78, 71, 79, 80, 97, 98, - 84, 40, 62, 65, 46, 49, 87, 88, 63, 89, - 50, 51, 52, 101, 90, 58, 92, 93, 94, 55, - 56, 77, 66, 67, 82, 108, 109, 110, 0, 0, - 0, 0, 0, 112, 114, 115, 116, 118, 117, 0, - 0, 0, 0, 120, 122, 123, 124, 125, 0, 0, - 0, 0, 0, 0, 0, 235, 237, 239, 238, 240, - 241, 242, 243, 0, 252, 254, 127, 126, 131, 134, - 132, 140, 141, 142, 143, 153, 154, 155, 156, 157, - 174, 175, 176, 178, 179, 137, 180, 181, 184, 182, - 183, 185, 186, 187, 198, 166, 167, 168, 169, 188, - 201, 162, 164, 202, 207, 208, 209, 138, 173, 216, - 217, 163, 212, 150, 133, 158, 199, 205, 189, 0, - 0, 220, 139, 128, 149, 192, 129, 135, 136, 159, - 160, 218, 191, 193, 194, 130, 221, 177, 197, 151, - 165, 203, 204, 206, 211, 161, 215, 213, 214, 170, - 172, 195, 196, 171, 190, 210, 152, 144, 145, 146, - 147, 148, 222, 223, 224, 225, 226, 227, 229, 228, - 230, 231, 232, 233, 244, 246, 245, 247, 248, 249, - 250, 255, 200, 219 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 10, 12, 13, 69, 72, 81, 14, 110, + 111, 112, 113, 20, 60, 15, 73, 74, 31, 53, + 68, 16, 17, 18, 19, 103, 104, 105, 106, 107, + 70, 59, 85, 102, 21, 22, 23, 24, 25, 61, + 75, 76, 91, 47, 57, 48, 86, 41, 42, 43, + 44, 95, 99, 96, 54, 26, 27, 28, 83, 29, + 30, 32, 33, 35, 36, 34, 37, 38, 39, 45, + 64, 100, 78, 71, 79, 80, 97, 98, 84, 40, + 62, 65, 46, 49, 87, 88, 63, 89, 50, 51, + 52, 101, 90, 58, 92, 93, 94, 55, 56, 77, + 66, 67, 82, 108, 109, 114, 0, 0, 0, 0, + 0, 116, 118, 119, 120, 122, 121, 0, 0, 0, + 0, 124, 126, 127, 128, 129, 0, 0, 0, 0, + 0, 0, 0, 243, 245, 247, 246, 248, 249, 250, + 251, 0, 260, 262, 131, 130, 135, 142, 140, 148, + 149, 150, 151, 161, 162, 163, 164, 165, 182, 183, + 184, 186, 187, 145, 188, 189, 192, 190, 191, 193, + 194, 195, 206, 174, 175, 176, 177, 196, 209, 170, + 172, 210, 215, 216, 217, 146, 181, 224, 225, 171, + 220, 158, 141, 166, 207, 213, 197, 0, 0, 228, + 147, 132, 157, 200, 133, 143, 144, 167, 168, 226, + 199, 201, 202, 134, 229, 185, 205, 159, 173, 211, + 212, 214, 219, 169, 223, 221, 222, 178, 180, 203, + 204, 179, 198, 218, 160, 152, 153, 154, 155, 156, + 230, 231, 136, 137, 138, 139, 232, 233, 234, 235, + 237, 236, 238, 239, 240, 241, 252, 254, 253, 255, + 256, 257, 258, 263, 208, 227 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 8, 9, 14, 118, 10, 15, 223, 11, - 16, 233, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 224, 225, 226, 227, 228, 234, 235, 236, 237, - 12, 17, 245, 246, 247, 248, 249, 250, 251, 252, - 13, 18, 254, 255 + -1, 1, 8, 9, 14, 122, 10, 15, 231, 11, + 16, 241, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 232, 233, 234, 235, 236, + 242, 243, 244, 245, 12, 17, 253, 254, 255, 256, + 257, 258, 259, 260, 13, 18, 262, 263 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -1096,18 +1125,20 @@ static const yytype_int16 yydefgoto[] = #define YYPACT_NINF -80 static const yytype_int16 yypact[] = { - -80, 76, -80, -80, -80, -80, -80, -80, -80, -80, - -80, -80, -80, -80, -12, 40, 46, 32, -79, 16, - 17, 18, 22, 23, 24, 68, 71, 72, 105, 109, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 155, 156, 158, 159, 160, - 161, 163, 164, 165, 166, 167, 168, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, -80, -80, + -80, 114, -80, -80, -80, -80, -80, -80, -80, -80, + -80, -80, -80, -80, -12, 39, 46, 37, -79, 16, + 17, 18, 22, 23, 24, 67, 70, 71, 72, 77, + 105, 113, 123, 124, 125, 126, 127, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 143, 144, 145, 146, 147, 149, 150, 151, 152, 153, + 154, 155, 157, 158, 159, 160, 161, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, -80, -80, -80, -80, -80, -80, -80, -80, + -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, @@ -1116,24 +1147,23 @@ static const yytype_int16 yypact[] = -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, + -80, -80, -80, -80, -80, -80, 220, 221, 222, 223, + 224, -80, -80, -80, -80, -80, -80, 225, 226, 227, + 228, -80, -80, -80, -80, -80, 229, 230, 231, 232, + 233, 234, 235, -80, -80, -80, -80, -80, -80, -80, + -80, 236, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, - -80, -80, -80, -80, -80, -80, -80, -80, 211, 212, - 213, 214, 215, -80, -80, -80, -80, -80, -80, 216, - 217, 218, 219, -80, -80, -80, -80, -80, 220, 221, - 222, 223, 224, 225, 226, -80, -80, -80, -80, -80, - -80, -80, -80, 227, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, + -80, -80, -80, -80, -80, -80, -80, 237, 238, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, - -80, -80, -80, -80, -80, -80, -80, -80, -80, 228, - 229, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, - -80, -80, -80, -80 + -80, -80, -80, -80, -80, -80 }; /* YYPGOTO[NTERM-NUM]. */ @@ -1152,7 +1182,7 @@ static const yytype_int8 yypgoto[] = -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, - -80, -80, -80, -80 + -80, -80, -80, -80, -80, -80, -80, -80 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1163,37 +1193,38 @@ static const yytype_uint16 yytable[] = { 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, 253, 256, 257, 258, 44, - 45, 46, 259, 260, 261, 47, 48, 49, 50, 51, + 39, 40, 41, 42, 43, 261, 264, 265, 266, 44, + 45, 46, 267, 268, 269, 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, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 2, 218, 262, 219, - 220, 263, 264, 229, 88, 89, 90, 3, 91, 92, - 93, 230, 231, 94, 95, 96, 97, 98, 99, 100, + 82, 83, 84, 85, 86, 87, 226, 270, 227, 228, + 271, 272, 273, 237, 88, 89, 90, 274, 91, 92, + 93, 238, 239, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 4, 265, 115, 116, 117, 266, - 5, 238, 239, 240, 241, 242, 243, 244, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 221, - 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 6, 302, 303, 222, 304, 305, - 306, 307, 232, 308, 309, 310, 311, 312, 313, 7, - 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 + 111, 112, 113, 114, 2, 275, 115, 116, 117, 118, + 119, 120, 121, 276, 0, 3, 246, 247, 248, 249, + 250, 251, 252, 277, 278, 279, 280, 281, 229, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 4, 295, 296, 297, 298, 299, 5, 300, + 301, 302, 303, 304, 305, 306, 230, 307, 308, 309, + 310, 311, 240, 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, 6, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 7, 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 }; -#define yypact_value_is_default(yystate) \ - ((yystate) == (-80)) +#define yypact_value_is_default(Yystate) \ + (!!((Yystate) == (-80))) -#define yytable_value_is_error(yytable_value) \ +#define yytable_value_is_error(Yytable_value) \ YYID (0) -static const yytype_uint8 yycheck[] = +static const yytype_int16 yycheck[] = { 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, @@ -1202,31 +1233,32 @@ static const yytype_uint8 yycheck[] = 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 0, 37, 10, 39, - 40, 10, 10, 37, 96, 97, 98, 11, 100, 101, + 82, 83, 84, 85, 86, 87, 37, 10, 39, 40, + 10, 10, 10, 37, 96, 97, 98, 10, 100, 101, 102, 45, 46, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 38, 10, 128, 129, 130, 10, - 44, 89, 90, 91, 92, 93, 94, 95, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 99, + 122, 123, 124, 125, 0, 10, 128, 129, 130, 131, + 132, 133, 134, 10, -1, 11, 89, 90, 91, 92, + 93, 94, 95, 10, 10, 10, 10, 10, 99, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 38, 10, 10, 10, 10, 10, 44, 10, + 10, 10, 10, 10, 10, 10, 127, 10, 10, 10, + 10, 10, 126, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 88, 10, 10, 127, 10, 10, - 10, 10, 126, 10, 10, 10, 10, 10, 10, 103, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 88, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 103, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 + 10, 10, 10, 10, 10, 10, 10, 10, 10 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { - 0, 132, 0, 11, 38, 44, 88, 103, 133, 134, - 137, 140, 251, 261, 135, 138, 141, 252, 262, 12, + 0, 136, 0, 11, 38, 44, 88, 103, 137, 138, + 141, 144, 259, 269, 139, 142, 145, 260, 270, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 41, 42, 43, 47, 48, 49, @@ -1236,8 +1268,8 @@ static const yytype_uint16 yystos[] = 80, 81, 82, 83, 84, 85, 86, 87, 96, 97, 98, 100, 101, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 128, 129, 130, 136, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 121, 122, 123, 124, 125, 128, 129, 130, 131, 132, + 133, 134, 140, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, @@ -1246,11 +1278,12 @@ static const yytype_uint16 yystos[] = 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 37, 39, - 40, 99, 127, 139, 242, 243, 244, 245, 246, 37, - 45, 46, 126, 142, 247, 248, 249, 250, 89, 90, - 91, 92, 93, 94, 95, 253, 254, 255, 256, 257, - 258, 259, 260, 104, 263, 264, 10, 10, 10, 10, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 37, 39, 40, 99, + 127, 143, 250, 251, 252, 253, 254, 37, 45, 46, + 126, 146, 255, 256, 257, 258, 89, 90, 91, 92, + 93, 94, 95, 261, 262, 263, 264, 265, 266, 267, + 268, 104, 271, 272, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, @@ -1262,7 +1295,7 @@ static const yytype_uint16 yystos[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10 + 10, 10, 10, 10, 10, 10 }; #define yyerrok (yyerrstatus = 0) @@ -1309,47 +1342,18 @@ do \ } \ while (YYID (0)) - +/* Error token number */ #define YYTERROR 1 #define YYERRCODE 256 -/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. - If N is 0, then set CURRENT to the empty location which ends - the previous symbol: RHS[0] (always defined). */ - -#ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - do \ - if (YYID (N)) \ - { \ - (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ - (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ - (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ - (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ - } \ - else \ - { \ - (Current).first_line = (Current).last_line = \ - YYRHSLOC (Rhs, 0).last_line; \ - (Current).first_column = (Current).last_column = \ - YYRHSLOC (Rhs, 0).last_column; \ - } \ - while (YYID (0)) -#endif - -#define YYRHSLOC(Rhs, K) ((Rhs)[K]) - - /* This macro is provided for backward compatibility. */ - #ifndef YY_LOCATION_PRINT # define YY_LOCATION_PRINT(File, Loc) ((void) 0) #endif /* YYLEX -- calling `yylex' with the right arguments. */ - #ifdef YYLEX_PARAM # define YYLEX yylex (YYLEX_PARAM) #else @@ -1409,11 +1413,7 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep) # else YYUSE (yyoutput); # endif - switch (yytype) - { - default: - break; - } + YYUSE (yytype); } @@ -1654,7 +1654,6 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, { YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]); YYSIZE_T yysize = yysize0; - YYSIZE_T yysize1; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; /* Internationalized format string. */ const char *yyformat = YY_NULL; @@ -1717,11 +1716,13 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, break; } yyarg[yycount++] = yytname[yyx]; - yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); - if (! (yysize <= yysize1 - && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) - return 2; - yysize = yysize1; + { + YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); + if (! (yysize <= yysize1 + && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } } } } @@ -1741,10 +1742,12 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, # undef YYCASE_ } - yysize1 = yysize + yystrlen (yyformat); - if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) - return 2; - yysize = yysize1; + { + YYSIZE_T yysize1 = yysize + yystrlen (yyformat); + if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } if (*yymsg_alloc < yysize) { @@ -1800,12 +1803,7 @@ yydestruct (yymsg, yytype, yyvaluep) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - switch (yytype) - { - - default: - break; - } + YYUSE (yytype); } @@ -1814,8 +1812,17 @@ yydestruct (yymsg, yytype, yyvaluep) /* The lookahead symbol. */ int yychar; + +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ +#endif + /* The semantic value of the lookahead symbol. */ -YYSTYPE yylval; +YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); /* Number of syntax errors so far. */ int yynerrs; @@ -1873,7 +1880,7 @@ yyparse () int yyn; int yyresult; /* Lookahead token as an internal (translated) token number. */ - int yytoken; + int yytoken = 0; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; @@ -1891,9 +1898,8 @@ yyparse () Keep to zero when no symbol should be popped. */ int yylen = 0; - yytoken = 0; - yyss = yyssa; - yyvs = yyvsa; + yyssp = yyss = yyssa; + yyvsp = yyvs = yyvsa; yystacksize = YYINITDEPTH; YYDPRINTF ((stderr, "Starting parse\n")); @@ -1902,13 +1908,6 @@ yyparse () yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ - - /* Initialize stack pointers. - Waste one element of value and location stack - so that they stay on the same level as the state stack. - The wasted elements are never initialized. */ - yyssp = yyss; - yyvsp = yyvs; goto yysetstate; /*------------------------------------------------------------. @@ -2049,7 +2048,9 @@ yybackup: yychar = YYEMPTY; yystate = yyn; + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END goto yynewstate; @@ -2087,15 +2088,15 @@ yyreduce: { case 9: /* Line 1787 of yacc.c */ -#line 119 "./util/configparser.y" +#line 121 "./util/configparser.y" { OUTYY(("\nP(server:)\n")); } break; - case 111: + case 115: /* Line 1787 of yacc.c */ -#line 168 "./util/configparser.y" +#line 173 "./util/configparser.y" { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -2108,9 +2109,9 @@ yyreduce: } break; - case 119: + case 123: /* Line 1787 of yacc.c */ -#line 184 "./util/configparser.y" +#line 189 "./util/configparser.y" { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -2123,9 +2124,9 @@ yyreduce: } break; - case 126: + case 130: /* Line 1787 of yacc.c */ -#line 200 "./util/configparser.y" +#line 205 "./util/configparser.y" { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2135,9 +2136,9 @@ yyreduce: } break; - case 127: + case 131: /* Line 1787 of yacc.c */ -#line 209 "./util/configparser.y" +#line 214 "./util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2147,9 +2148,9 @@ yyreduce: } break; - case 128: + case 132: /* Line 1787 of yacc.c */ -#line 218 "./util/configparser.y" +#line 223 "./util/configparser.y" { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "") == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) @@ -2161,9 +2162,9 @@ yyreduce: } break; - case 129: + case 133: /* Line 1787 of yacc.c */ -#line 229 "./util/configparser.y" +#line 234 "./util/configparser.y" { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2173,9 +2174,9 @@ yyreduce: } break; - case 130: + case 134: /* Line 1787 of yacc.c */ -#line 238 "./util/configparser.y" +#line 243 "./util/configparser.y" { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2185,9 +2186,9 @@ yyreduce: } break; - case 131: + case 135: /* Line 1787 of yacc.c */ -#line 247 "./util/configparser.y" +#line 252 "./util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2197,9 +2198,81 @@ yyreduce: } break; - case 132: + case 136: +/* Line 1787 of yacc.c */ +#line 261 "./util/configparser.y" + { + #ifdef CLIENT_SUBNET + OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet, (yyvsp[(2) - (2)].str))) + fatal_exit("out of memory adding client-subnet"); + #else + OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); + #endif + } + break; + + case 137: +/* Line 1787 of yacc.c */ +#line 272 "./util/configparser.y" + { + #ifdef CLIENT_SUBNET + OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("option code expected"); + else if(atoi((yyvsp[(2) - (2)].str)) > 65535 || atoi((yyvsp[(2) - (2)].str)) < 0) + yyerror("option code must be in interval [0, 65535]"); + else cfg_parser->cfg->client_subnet_opcode = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); + #else + OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); + #endif + } + break; + + case 138: +/* Line 1787 of yacc.c */ +#line 287 "./util/configparser.y" + { + #ifdef CLIENT_SUBNET + OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("IPv4 subnet length expected"); + else if (atoi((yyvsp[(2) - (2)].str)) > 32) + cfg_parser->cfg->max_client_subnet_ipv4 = 32; + else if (atoi((yyvsp[(2) - (2)].str)) < 0) + cfg_parser->cfg->max_client_subnet_ipv4 = 0; + else cfg_parser->cfg->max_client_subnet_ipv4 = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); + #else + OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); + #endif + } + break; + + case 139: +/* Line 1787 of yacc.c */ +#line 304 "./util/configparser.y" + { + #ifdef CLIENT_SUBNET + OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("Ipv6 subnet length expected"); + else if (atoi((yyvsp[(2) - (2)].str)) > 128) + cfg_parser->cfg->max_client_subnet_ipv6 = 128; + else if (atoi((yyvsp[(2) - (2)].str)) < 0) + cfg_parser->cfg->max_client_subnet_ipv6 = 0; + else cfg_parser->cfg->max_client_subnet_ipv6 = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); + #else + OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); + #endif + } + break; + + case 140: /* Line 1787 of yacc.c */ -#line 256 "./util/configparser.y" +#line 321 "./util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -2213,9 +2286,9 @@ yyreduce: } break; - case 133: + case 141: /* Line 1787 of yacc.c */ -#line 269 "./util/configparser.y" +#line 334 "./util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -2231,9 +2304,9 @@ yyreduce: } break; - case 134: + case 142: /* Line 1787 of yacc.c */ -#line 284 "./util/configparser.y" +#line 349 "./util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2243,9 +2316,9 @@ yyreduce: } break; - case 135: + case 143: /* Line 1787 of yacc.c */ -#line 293 "./util/configparser.y" +#line 358 "./util/configparser.y" { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 1, @@ -2255,9 +2328,9 @@ yyreduce: } break; - case 136: + case 144: /* Line 1787 of yacc.c */ -#line 302 "./util/configparser.y" +#line 367 "./util/configparser.y" { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 0, @@ -2267,9 +2340,9 @@ yyreduce: } break; - case 137: + case 145: /* Line 1787 of yacc.c */ -#line 311 "./util/configparser.y" +#line 376 "./util/configparser.y" { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2279,9 +2352,9 @@ yyreduce: } break; - case 138: + case 146: /* Line 1787 of yacc.c */ -#line 320 "./util/configparser.y" +#line 385 "./util/configparser.y" { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2291,9 +2364,9 @@ yyreduce: } break; - case 139: + case 147: /* Line 1787 of yacc.c */ -#line 329 "./util/configparser.y" +#line 394 "./util/configparser.y" { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2303,9 +2376,9 @@ yyreduce: } break; - case 140: + case 148: /* Line 1787 of yacc.c */ -#line 338 "./util/configparser.y" +#line 403 "./util/configparser.y" { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2315,9 +2388,9 @@ yyreduce: } break; - case 141: + case 149: /* Line 1787 of yacc.c */ -#line 347 "./util/configparser.y" +#line 412 "./util/configparser.y" { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2327,9 +2400,9 @@ yyreduce: } break; - case 142: + case 150: /* Line 1787 of yacc.c */ -#line 356 "./util/configparser.y" +#line 421 "./util/configparser.y" { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2339,9 +2412,9 @@ yyreduce: } break; - case 143: + case 151: /* Line 1787 of yacc.c */ -#line 365 "./util/configparser.y" +#line 430 "./util/configparser.y" { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2351,9 +2424,9 @@ yyreduce: } break; - case 144: + case 152: /* Line 1787 of yacc.c */ -#line 374 "./util/configparser.y" +#line 439 "./util/configparser.y" { OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2363,9 +2436,9 @@ yyreduce: } break; - case 145: + case 153: /* Line 1787 of yacc.c */ -#line 383 "./util/configparser.y" +#line 448 "./util/configparser.y" { OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2375,9 +2448,9 @@ yyreduce: } break; - case 146: + case 154: /* Line 1787 of yacc.c */ -#line 392 "./util/configparser.y" +#line 457 "./util/configparser.y" { OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->ssl_service_key); @@ -2385,9 +2458,9 @@ yyreduce: } break; - case 147: + case 155: /* Line 1787 of yacc.c */ -#line 399 "./util/configparser.y" +#line 464 "./util/configparser.y" { OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->ssl_service_pem); @@ -2395,9 +2468,9 @@ yyreduce: } break; - case 148: + case 156: /* Line 1787 of yacc.c */ -#line 406 "./util/configparser.y" +#line 471 "./util/configparser.y" { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2407,9 +2480,9 @@ yyreduce: } break; - case 149: + case 157: /* Line 1787 of yacc.c */ -#line 415 "./util/configparser.y" +#line 480 "./util/configparser.y" { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2419,9 +2492,9 @@ yyreduce: } break; - case 150: + case 158: /* Line 1787 of yacc.c */ -#line 424 "./util/configparser.y" +#line 489 "./util/configparser.y" { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2436,9 +2509,9 @@ yyreduce: } break; - case 151: + case 159: /* Line 1787 of yacc.c */ -#line 438 "./util/configparser.y" +#line 503 "./util/configparser.y" { OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2448,9 +2521,9 @@ yyreduce: } break; - case 152: + case 160: /* Line 1787 of yacc.c */ -#line 447 "./util/configparser.y" +#line 512 "./util/configparser.y" { OUTYY(("P(server_log_queries:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2460,9 +2533,9 @@ yyreduce: } break; - case 153: + case 161: /* Line 1787 of yacc.c */ -#line 456 "./util/configparser.y" +#line 521 "./util/configparser.y" { OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->chrootdir); @@ -2470,9 +2543,9 @@ yyreduce: } break; - case 154: + case 162: /* Line 1787 of yacc.c */ -#line 463 "./util/configparser.y" +#line 528 "./util/configparser.y" { OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->username); @@ -2480,9 +2553,9 @@ yyreduce: } break; - case 155: + case 163: /* Line 1787 of yacc.c */ -#line 470 "./util/configparser.y" +#line 535 "./util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->directory); @@ -2490,9 +2563,9 @@ yyreduce: } break; - case 156: + case 164: /* Line 1787 of yacc.c */ -#line 477 "./util/configparser.y" +#line 542 "./util/configparser.y" { OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->logfile); @@ -2501,9 +2574,9 @@ yyreduce: } break; - case 157: + case 165: /* Line 1787 of yacc.c */ -#line 485 "./util/configparser.y" +#line 550 "./util/configparser.y" { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->pidfile); @@ -2511,9 +2584,9 @@ yyreduce: } break; - case 158: + case 166: /* Line 1787 of yacc.c */ -#line 492 "./util/configparser.y" +#line 557 "./util/configparser.y" { OUTYY(("P(server_root_hints:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[(2) - (2)].str))) @@ -2521,9 +2594,9 @@ yyreduce: } break; - case 159: + case 167: /* Line 1787 of yacc.c */ -#line 499 "./util/configparser.y" +#line 564 "./util/configparser.y" { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->dlv_anchor_file); @@ -2531,9 +2604,9 @@ yyreduce: } break; - case 160: + case 168: /* Line 1787 of yacc.c */ -#line 506 "./util/configparser.y" +#line 571 "./util/configparser.y" { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[(2) - (2)].str))) @@ -2541,9 +2614,9 @@ yyreduce: } break; - case 161: + case 169: /* Line 1787 of yacc.c */ -#line 513 "./util/configparser.y" +#line 578 "./util/configparser.y" { OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2552,9 +2625,9 @@ yyreduce: } break; - case 162: + case 170: /* Line 1787 of yacc.c */ -#line 521 "./util/configparser.y" +#line 586 "./util/configparser.y" { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2563,9 +2636,9 @@ yyreduce: } break; - case 163: + case 171: /* Line 1787 of yacc.c */ -#line 529 "./util/configparser.y" +#line 594 "./util/configparser.y" { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2574,9 +2647,9 @@ yyreduce: } break; - case 164: + case 172: /* Line 1787 of yacc.c */ -#line 537 "./util/configparser.y" +#line 602 "./util/configparser.y" { OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[(2) - (2)].str))) @@ -2584,9 +2657,9 @@ yyreduce: } break; - case 165: + case 173: /* Line 1787 of yacc.c */ -#line 544 "./util/configparser.y" +#line 609 "./util/configparser.y" { OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[(2) - (2)].str))) @@ -2594,9 +2667,9 @@ yyreduce: } break; - case 166: + case 174: /* Line 1787 of yacc.c */ -#line 551 "./util/configparser.y" +#line 616 "./util/configparser.y" { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2606,9 +2679,9 @@ yyreduce: } break; - case 167: + case 175: /* Line 1787 of yacc.c */ -#line 560 "./util/configparser.y" +#line 625 "./util/configparser.y" { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2618,9 +2691,9 @@ yyreduce: } break; - case 168: + case 176: /* Line 1787 of yacc.c */ -#line 569 "./util/configparser.y" +#line 634 "./util/configparser.y" { OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->identity); @@ -2628,9 +2701,9 @@ yyreduce: } break; - case 169: + case 177: /* Line 1787 of yacc.c */ -#line 576 "./util/configparser.y" +#line 641 "./util/configparser.y" { OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->version); @@ -2638,9 +2711,9 @@ yyreduce: } break; - case 170: + case 178: /* Line 1787 of yacc.c */ -#line 583 "./util/configparser.y" +#line 648 "./util/configparser.y" { OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_rcvbuf)) @@ -2649,9 +2722,9 @@ yyreduce: } break; - case 171: + case 179: /* Line 1787 of yacc.c */ -#line 591 "./util/configparser.y" +#line 656 "./util/configparser.y" { OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_sndbuf)) @@ -2660,9 +2733,9 @@ yyreduce: } break; - case 172: + case 180: /* Line 1787 of yacc.c */ -#line 599 "./util/configparser.y" +#line 664 "./util/configparser.y" { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2676,9 +2749,9 @@ yyreduce: } break; - case 173: + case 181: /* Line 1787 of yacc.c */ -#line 612 "./util/configparser.y" +#line 677 "./util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2690,9 +2763,9 @@ yyreduce: } break; - case 174: + case 182: /* Line 1787 of yacc.c */ -#line 623 "./util/configparser.y" +#line 688 "./util/configparser.y" { OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->msg_cache_size)) @@ -2701,9 +2774,9 @@ yyreduce: } break; - case 175: + case 183: /* Line 1787 of yacc.c */ -#line 631 "./util/configparser.y" +#line 696 "./util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2717,9 +2790,9 @@ yyreduce: } break; - case 176: + case 184: /* Line 1787 of yacc.c */ -#line 644 "./util/configparser.y" +#line 709 "./util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2729,9 +2802,9 @@ yyreduce: } break; - case 177: + case 185: /* Line 1787 of yacc.c */ -#line 653 "./util/configparser.y" +#line 718 "./util/configparser.y" { OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2741,9 +2814,9 @@ yyreduce: } break; - case 178: + case 186: /* Line 1787 of yacc.c */ -#line 662 "./util/configparser.y" +#line 727 "./util/configparser.y" { OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->rrset_cache_size)) @@ -2752,9 +2825,9 @@ yyreduce: } break; - case 179: + case 187: /* Line 1787 of yacc.c */ -#line 670 "./util/configparser.y" +#line 735 "./util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2768,9 +2841,9 @@ yyreduce: } break; - case 180: + case 188: /* Line 1787 of yacc.c */ -#line 683 "./util/configparser.y" +#line 748 "./util/configparser.y" { OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2780,9 +2853,9 @@ yyreduce: } break; - case 181: + case 189: /* Line 1787 of yacc.c */ -#line 692 "./util/configparser.y" +#line 757 "./util/configparser.y" { OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[(2) - (2)].str))); verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option " @@ -2791,9 +2864,9 @@ yyreduce: } break; - case 182: + case 190: /* Line 1787 of yacc.c */ -#line 700 "./util/configparser.y" +#line 765 "./util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2803,9 +2876,9 @@ yyreduce: } break; - case 183: + case 191: /* Line 1787 of yacc.c */ -#line 709 "./util/configparser.y" +#line 774 "./util/configparser.y" { OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[(2) - (2)].str))); verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s " @@ -2814,9 +2887,9 @@ yyreduce: } break; - case 184: + case 192: /* Line 1787 of yacc.c */ -#line 717 "./util/configparser.y" +#line 782 "./util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2830,9 +2903,9 @@ yyreduce: } break; - case 185: + case 193: /* Line 1787 of yacc.c */ -#line 730 "./util/configparser.y" +#line 795 "./util/configparser.y" { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->target_fetch_policy); @@ -2840,9 +2913,9 @@ yyreduce: } break; - case 186: + case 194: /* Line 1787 of yacc.c */ -#line 737 "./util/configparser.y" +#line 802 "./util/configparser.y" { OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2853,9 +2926,9 @@ yyreduce: } break; - case 187: + case 195: /* Line 1787 of yacc.c */ -#line 747 "./util/configparser.y" +#line 812 "./util/configparser.y" { OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2866,9 +2939,9 @@ yyreduce: } break; - case 188: + case 196: /* Line 1787 of yacc.c */ -#line 757 "./util/configparser.y" +#line 822 "./util/configparser.y" { OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2879,9 +2952,9 @@ yyreduce: } break; - case 189: + case 197: /* Line 1787 of yacc.c */ -#line 767 "./util/configparser.y" +#line 832 "./util/configparser.y" { OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2892,9 +2965,9 @@ yyreduce: } break; - case 190: + case 198: /* Line 1787 of yacc.c */ -#line 777 "./util/configparser.y" +#line 842 "./util/configparser.y" { OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2905,9 +2978,9 @@ yyreduce: } break; - case 191: + case 199: /* Line 1787 of yacc.c */ -#line 787 "./util/configparser.y" +#line 852 "./util/configparser.y" { OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2918,9 +2991,9 @@ yyreduce: } break; - case 192: + case 200: /* Line 1787 of yacc.c */ -#line 797 "./util/configparser.y" +#line 862 "./util/configparser.y" { OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2931,9 +3004,9 @@ yyreduce: } break; - case 193: + case 201: /* Line 1787 of yacc.c */ -#line 807 "./util/configparser.y" +#line 872 "./util/configparser.y" { OUTYY(("P(server_private_address:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[(2) - (2)].str))) @@ -2941,9 +3014,9 @@ yyreduce: } break; - case 194: + case 202: /* Line 1787 of yacc.c */ -#line 814 "./util/configparser.y" +#line 879 "./util/configparser.y" { OUTYY(("P(server_private_domain:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[(2) - (2)].str))) @@ -2951,9 +3024,9 @@ yyreduce: } break; - case 195: + case 203: /* Line 1787 of yacc.c */ -#line 821 "./util/configparser.y" +#line 886 "./util/configparser.y" { OUTYY(("P(server_prefetch:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2963,9 +3036,9 @@ yyreduce: } break; - case 196: + case 204: /* Line 1787 of yacc.c */ -#line 830 "./util/configparser.y" +#line 895 "./util/configparser.y" { OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2975,9 +3048,9 @@ yyreduce: } break; - case 197: + case 205: /* Line 1787 of yacc.c */ -#line 839 "./util/configparser.y" +#line 904 "./util/configparser.y" { OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2987,9 +3060,9 @@ yyreduce: } break; - case 198: + case 206: /* Line 1787 of yacc.c */ -#line 848 "./util/configparser.y" +#line 913 "./util/configparser.y" { OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[(2) - (2)].str))) @@ -2997,9 +3070,9 @@ yyreduce: } break; - case 199: + case 207: /* Line 1787 of yacc.c */ -#line 855 "./util/configparser.y" +#line 920 "./util/configparser.y" { OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3010,9 +3083,9 @@ yyreduce: } break; - case 200: + case 208: /* Line 1787 of yacc.c */ -#line 865 "./util/configparser.y" +#line 930 "./util/configparser.y" { OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); if(strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 && @@ -3027,9 +3100,9 @@ yyreduce: } break; - case 201: + case 209: /* Line 1787 of yacc.c */ -#line 879 "./util/configparser.y" +#line 944 "./util/configparser.y" { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->module_conf); @@ -3037,9 +3110,9 @@ yyreduce: } break; - case 202: + case 210: /* Line 1787 of yacc.c */ -#line 886 "./util/configparser.y" +#line 951 "./util/configparser.y" { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[(2) - (2)].str))); if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { @@ -3058,9 +3131,9 @@ yyreduce: } break; - case 203: + case 211: /* Line 1787 of yacc.c */ -#line 904 "./util/configparser.y" +#line 969 "./util/configparser.y" { OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[(2) - (2)].str))); if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { @@ -3074,9 +3147,9 @@ yyreduce: } break; - case 204: + case 212: /* Line 1787 of yacc.c */ -#line 917 "./util/configparser.y" +#line 982 "./util/configparser.y" { OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[(2) - (2)].str))); if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { @@ -3090,9 +3163,9 @@ yyreduce: } break; - case 205: + case 213: /* Line 1787 of yacc.c */ -#line 930 "./util/configparser.y" +#line 995 "./util/configparser.y" { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3102,9 +3175,9 @@ yyreduce: } break; - case 206: + case 214: /* Line 1787 of yacc.c */ -#line 939 "./util/configparser.y" +#line 1004 "./util/configparser.y" { OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3114,9 +3187,9 @@ yyreduce: } break; - case 207: + case 215: /* Line 1787 of yacc.c */ -#line 948 "./util/configparser.y" +#line 1013 "./util/configparser.y" { OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3126,9 +3199,9 @@ yyreduce: } break; - case 208: + case 216: /* Line 1787 of yacc.c */ -#line 957 "./util/configparser.y" +#line 1022 "./util/configparser.y" { OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3139,9 +3212,9 @@ yyreduce: } break; - case 209: + case 217: /* Line 1787 of yacc.c */ -#line 967 "./util/configparser.y" +#line 1032 "./util/configparser.y" { OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3152,9 +3225,9 @@ yyreduce: } break; - case 210: + case 218: /* Line 1787 of yacc.c */ -#line 977 "./util/configparser.y" +#line 1042 "./util/configparser.y" { OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3164,9 +3237,9 @@ yyreduce: } break; - case 211: + case 219: /* Line 1787 of yacc.c */ -#line 986 "./util/configparser.y" +#line 1051 "./util/configparser.y" { OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3176,9 +3249,9 @@ yyreduce: } break; - case 212: + case 220: /* Line 1787 of yacc.c */ -#line 995 "./util/configparser.y" +#line 1060 "./util/configparser.y" { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); @@ -3186,9 +3259,9 @@ yyreduce: } break; - case 213: + case 221: /* Line 1787 of yacc.c */ -#line 1002 "./util/configparser.y" +#line 1067 "./util/configparser.y" { OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3198,9 +3271,9 @@ yyreduce: } break; - case 214: + case 222: /* Line 1787 of yacc.c */ -#line 1011 "./util/configparser.y" +#line 1076 "./util/configparser.y" { OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3210,9 +3283,9 @@ yyreduce: } break; - case 215: + case 223: /* Line 1787 of yacc.c */ -#line 1020 "./util/configparser.y" +#line 1085 "./util/configparser.y" { OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3222,9 +3295,9 @@ yyreduce: } break; - case 216: + case 224: /* Line 1787 of yacc.c */ -#line 1029 "./util/configparser.y" +#line 1094 "./util/configparser.y" { OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->key_cache_size)) @@ -3233,9 +3306,9 @@ yyreduce: } break; - case 217: + case 225: /* Line 1787 of yacc.c */ -#line 1037 "./util/configparser.y" +#line 1102 "./util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -3249,9 +3322,9 @@ yyreduce: } break; - case 218: + case 226: /* Line 1787 of yacc.c */ -#line 1050 "./util/configparser.y" +#line 1115 "./util/configparser.y" { OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->neg_cache_size)) @@ -3260,9 +3333,9 @@ yyreduce: } break; - case 219: + case 227: /* Line 1787 of yacc.c */ -#line 1058 "./util/configparser.y" +#line 1123 "./util/configparser.y" { OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); if(strcmp((yyvsp[(3) - (3)].str), "static")!=0 && strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && @@ -3285,9 +3358,9 @@ yyreduce: } break; - case 220: + case 228: /* Line 1787 of yacc.c */ -#line 1080 "./util/configparser.y" +#line 1145 "./util/configparser.y" { OUTYY(("P(server_local_data:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[(2) - (2)].str))) @@ -3295,9 +3368,9 @@ yyreduce: } break; - case 221: + case 229: /* Line 1787 of yacc.c */ -#line 1087 "./util/configparser.y" +#line 1152 "./util/configparser.y" { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str))); @@ -3313,9 +3386,9 @@ yyreduce: } break; - case 222: + case 230: /* Line 1787 of yacc.c */ -#line 1102 "./util/configparser.y" +#line 1167 "./util/configparser.y" { OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3326,9 +3399,9 @@ yyreduce: } break; - case 223: + case 231: /* Line 1787 of yacc.c */ -#line 1112 "./util/configparser.y" +#line 1177 "./util/configparser.y" { OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3339,18 +3412,18 @@ yyreduce: } break; - case 224: + case 232: /* Line 1787 of yacc.c */ -#line 1122 "./util/configparser.y" +#line 1187 "./util/configparser.y" { OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[(2) - (2)].str))); cfg_parser->cfg->max_udp_size = atoi((yyvsp[(2) - (2)].str)); } break; - case 225: + case 233: /* Line 1787 of yacc.c */ -#line 1128 "./util/configparser.y" +#line 1193 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->stubs->name) @@ -3361,9 +3434,9 @@ yyreduce: } break; - case 226: + case 234: /* Line 1787 of yacc.c */ -#line 1138 "./util/configparser.y" +#line 1203 "./util/configparser.y" { OUTYY(("P(stub-host:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[(2) - (2)].str))) @@ -3371,9 +3444,9 @@ yyreduce: } break; - case 227: + case 235: /* Line 1787 of yacc.c */ -#line 1145 "./util/configparser.y" +#line 1210 "./util/configparser.y" { OUTYY(("P(stub-addr:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[(2) - (2)].str))) @@ -3381,9 +3454,9 @@ yyreduce: } break; - case 228: + case 236: /* Line 1787 of yacc.c */ -#line 1152 "./util/configparser.y" +#line 1217 "./util/configparser.y" { OUTYY(("P(stub-first:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3393,9 +3466,9 @@ yyreduce: } break; - case 229: + case 237: /* Line 1787 of yacc.c */ -#line 1161 "./util/configparser.y" +#line 1226 "./util/configparser.y" { OUTYY(("P(stub-prime:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3406,9 +3479,9 @@ yyreduce: } break; - case 230: + case 238: /* Line 1787 of yacc.c */ -#line 1171 "./util/configparser.y" +#line 1236 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->forwards->name) @@ -3419,9 +3492,9 @@ yyreduce: } break; - case 231: + case 239: /* Line 1787 of yacc.c */ -#line 1181 "./util/configparser.y" +#line 1246 "./util/configparser.y" { OUTYY(("P(forward-host:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[(2) - (2)].str))) @@ -3429,9 +3502,9 @@ yyreduce: } break; - case 232: + case 240: /* Line 1787 of yacc.c */ -#line 1188 "./util/configparser.y" +#line 1253 "./util/configparser.y" { OUTYY(("P(forward-addr:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[(2) - (2)].str))) @@ -3439,9 +3512,9 @@ yyreduce: } break; - case 233: + case 241: /* Line 1787 of yacc.c */ -#line 1195 "./util/configparser.y" +#line 1260 "./util/configparser.y" { OUTYY(("P(forward-first:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3451,17 +3524,17 @@ yyreduce: } break; - case 234: + case 242: /* Line 1787 of yacc.c */ -#line 1204 "./util/configparser.y" +#line 1269 "./util/configparser.y" { OUTYY(("\nP(remote-control:)\n")); } break; - case 244: + case 252: /* Line 1787 of yacc.c */ -#line 1215 "./util/configparser.y" +#line 1280 "./util/configparser.y" { OUTYY(("P(control_enable:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3472,9 +3545,9 @@ yyreduce: } break; - case 245: + case 253: /* Line 1787 of yacc.c */ -#line 1225 "./util/configparser.y" +#line 1290 "./util/configparser.y" { OUTYY(("P(control_port:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -3484,9 +3557,9 @@ yyreduce: } break; - case 246: + case 254: /* Line 1787 of yacc.c */ -#line 1234 "./util/configparser.y" +#line 1299 "./util/configparser.y" { OUTYY(("P(control_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[(2) - (2)].str))) @@ -3494,9 +3567,9 @@ yyreduce: } break; - case 247: + case 255: /* Line 1787 of yacc.c */ -#line 1241 "./util/configparser.y" +#line 1306 "./util/configparser.y" { OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->server_key_file); @@ -3504,9 +3577,9 @@ yyreduce: } break; - case 248: + case 256: /* Line 1787 of yacc.c */ -#line 1248 "./util/configparser.y" +#line 1313 "./util/configparser.y" { OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->server_cert_file); @@ -3514,9 +3587,9 @@ yyreduce: } break; - case 249: + case 257: /* Line 1787 of yacc.c */ -#line 1255 "./util/configparser.y" +#line 1320 "./util/configparser.y" { OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->control_key_file); @@ -3524,9 +3597,9 @@ yyreduce: } break; - case 250: + case 258: /* Line 1787 of yacc.c */ -#line 1262 "./util/configparser.y" +#line 1327 "./util/configparser.y" { OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->control_cert_file); @@ -3534,17 +3607,17 @@ yyreduce: } break; - case 251: + case 259: /* Line 1787 of yacc.c */ -#line 1269 "./util/configparser.y" +#line 1334 "./util/configparser.y" { OUTYY(("\nP(python:)\n")); } break; - case 255: + case 263: /* Line 1787 of yacc.c */ -#line 1278 "./util/configparser.y" +#line 1343 "./util/configparser.y" { OUTYY(("P(python-script:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->python_script); @@ -3554,7 +3627,7 @@ yyreduce: /* Line 1787 of yacc.c */ -#line 3558 "util/configparser.c" +#line 3631 "util/configparser.c" default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -3717,7 +3790,9 @@ yyerrlab1: YY_STACK_PRINT (yyss, yyssp); } + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END /* Shift the error token. */ @@ -3783,9 +3858,8 @@ yyreturn: } -/* Line 2048 of yacc.c */ -#line 1283 "./util/configparser.y" +/* Line 2050 of yacc.c */ +#line 1348 "./util/configparser.y" /* parse helper routines could be here */ - diff --git a/util/configparser.h b/util/configparser.h index a862769de..c41efc4c7 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 2.6.1. */ +/* A Bison parser, made by GNU Bison 2.7.12-4996. */ /* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -30,8 +30,8 @@ This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -#ifndef YY_UTIL_CONFIGPARSER_H -# define YY_UTIL_CONFIGPARSER_H +#ifndef YY_YY_UTIL_CONFIGPARSER_H_INCLUDED +# define YY_YY_UTIL_CONFIGPARSER_H_INCLUDED /* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 0 @@ -173,7 +173,11 @@ extern int yydebug; VAR_STUB_FIRST = 382, VAR_MINIMAL_RESPONSES = 383, VAR_RRSET_ROUNDROBIN = 384, - VAR_MAX_UDP_SIZE = 385 + VAR_SEND_CLIENT_SUBNET = 385, + VAR_CLIENT_SUBNET_OPCODE = 386, + VAR_MAX_CLIENT_SUBNET_IPV4 = 387, + VAR_MAX_CLIENT_SUBNET_IPV6 = 388, + VAR_MAX_UDP_SIZE = 389 }; #endif /* Tokens. */ @@ -304,21 +308,25 @@ extern int yydebug; #define VAR_STUB_FIRST 382 #define VAR_MINIMAL_RESPONSES 383 #define VAR_RRSET_ROUNDROBIN 384 -#define VAR_MAX_UDP_SIZE 385 +#define VAR_SEND_CLIENT_SUBNET 385 +#define VAR_CLIENT_SUBNET_OPCODE 386 +#define VAR_MAX_CLIENT_SUBNET_IPV4 387 +#define VAR_MAX_CLIENT_SUBNET_IPV6 388 +#define VAR_MAX_UDP_SIZE 389 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE { -/* Line 2049 of yacc.c */ +/* Line 2053 of yacc.c */ #line 64 "./util/configparser.y" char* str; -/* Line 2049 of yacc.c */ -#line 322 "util/configparser.h" +/* Line 2053 of yacc.c */ +#line 330 "util/configparser.h" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -341,4 +349,4 @@ int yyparse (); #endif #endif /* ! YYPARSE_PARAM */ -#endif /* !YY_UTIL_CONFIGPARSER_H */ +#endif /* !YY_YY_UTIL_CONFIGPARSER_H_INCLUDED */ diff --git a/util/configparser.y b/util/configparser.y index 10823124d..7c8178b5d 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -166,8 +166,8 @@ content_server: server_num_threads | server_verbosity | server_port | server_ssl_service_key | server_ssl_service_pem | server_ssl_port | server_minimal_responses | server_rrset_roundrobin | server_send_client_subnet | server_client_subnet_opcode | - server_max_client_subnet_ipv4 | server_max_client_subnet_ipv6 - server_minimal_responses | server_rrset_roundrobin | server_max_udp_size + server_max_client_subnet_ipv4 | server_max_client_subnet_ipv6 | + server_max_udp_size ; stubstart: VAR_STUB_ZONE { diff --git a/util/fptr_wlist.c b/util/fptr_wlist.c index bfe3d0892..b41d476f0 100644 --- a/util/fptr_wlist.c +++ b/util/fptr_wlist.c @@ -213,6 +213,9 @@ fptr_whitelist_hash_sizefunc(lruhash_sizefunc_t fptr) else if(fptr == &infra_sizefunc) return 1; else if(fptr == &key_entry_sizefunc) return 1; else if(fptr == &test_slabhash_sizefunc) return 1; +#ifdef CLIENT_SUBNET + else if(fptr == &msg_cache_sizefunc) return 1; +#endif return 0; }