pax_global_header00006660000000000000000000000064122123721210014503gustar00rootroot0000000000000052 comment=6357f9318a1d6ee463c9aa91b093976c6b0ef80f nrpe-2.15/000077500000000000000000000000001221237212100123765ustar00rootroot00000000000000nrpe-2.15/Changelog000066400000000000000000000233561221237212100142210ustar00rootroot00000000000000************** NRPE Changelog ************** 2.15 - 09/06/2013 ----------------- - Now compiles on HP-UX (Grant Byers) - Added support for IPv6 (Leo Baltus, Eric Stanley) 2.14 - 12/21/2012 ----------------- - Added configure option to allow bash command substitutions, disabled by default [bug #400] (Eric Stanley) - Patched to shutdown SSL connection completely (Jari Takkala) - Added SRC support on AIX (Thierry Bertaud) - Updated RPM SPEC file to support creating RPMs on AIX (Eric Stanley) - Updated logging to support compiling on AIX (Eric Stanley) 2.13 - 11/11/2011 ----------------- - Applied Kaspersky Labs supplied patch for extending allowed_hosts (Konstantin Malov) - Fixed bug in allowed_hosts parsing (Eric Stanley) - Updated to support compiling on Solaris 10 (thanks to Kevin Pendleton) 2.12 - 03/10/2008 ----------------- - Fix for unterminated multiline plugin (garbage) output (Krzysztof Oledzki) 2.11 - 12/26/2007 ----------------- - Added lib64 library paths to configure script for 64-bit systems (John Maag) - Added --with-ssl-lib configure script option - Added --with-log-facility option to control syslog logging (Ryan Ordway and Brian Seklecki) 2.10 - 10/19/2007 ----------------- - Moved PDF docs to docs/ subdirectory, added OpenOffice source document - A critical result is now returned for child processed that die due to a signal (Klas Lindfors) 2.9 - 08/13/2007 ---------------- - Fixed bug with --with-nrpe-group configure script option (Graham Collinson) - Fixed bug with check_disk thresholds in sample config file (Patric Wust) - Added NRPE_PROGRAMVERSION and NRPE_MULTILINESUPPORT environment variables for scripts that need to detect NRPE version and capabilities (Gerhard Lausser) - Added asprintf() support for systems that are missing it (Samba team) 2.8.1 - 05/10/2007 ----------------- - Fixed configure script error with user-specified NRPE group 2.8 - 05/08/2007 --------------- - Added support for multiline plugin output (limited to 1KB at the moment) (Matthias Flacke) 2.8b1 - 03/14/2007 ----------------- - Changes to sample config files - Added ';' as an additional prohibited metachar for command arguments - Updated documentation and added easier installation commands 2.7.1 - 03/08/2007 ------------------ - Changed C++ style comment to C style to fix compilation errors on AIX (Ryan McGarry) 2.7 - 02/18/2007 ---------------- - Patches for detection SSL header and library locations (Andrew Boyce-Lewis) - NRPE daemon will now partially ignore non-fatal configuration file errors and attempt to startup (Andrew Boyce-Lewis) 2.6 - 12/11/2006 ---------------- - Added -u option to check_nrpe to return UNKNOWN states on socket timeouts (Bjoern Beutel) - Added connection_timeout variable to NRPE daemon to catch dead client connections (Ton Voon) - Added graceful timeout to check_nrpe to ensure connection to NRPE daemon is properly closed (Mark Plaksin) 2.5.2 - 06/30/2006 ------------------ - Fixed incorrect service name in sample xinetd config file - Added note on how to restart inetd for OpenBSD users (Robert Peaslee) - Fix for nonblocking accept()s on systems that define EAGAIN differently than EWOULDBLOCK (Gerhard Lausser) - Fix to (re)allow week random seed (Gerhard Lausser) 2.5.1 - 04/09/2006 ------------------ - Patch to fix segfault if --no-ssl option is used (Sean Finney/Peter Palfrader) 2.5 - 04/06/2006 ---------------- - (Re)added allowed_hosts option for systems that don't support TCP wrappers - Fix for SSL errors under Solaris 8 (Niels Endres) - Fix for config file directory inclusion on ReiserFS (Gerhard Lausser) 2.4 - 02/22/2006 ---------------- - Added option to allow week random seed (Gerhard Lausser) - Added optional command line prefix (Sean Finney) - Added ability to reload config file with SIGHUP - Fixed bug with location of dh.h include file - Fixed bug with disconnect message in debug mode 2.3 - 01/23/2006 ---------------- - Spec file fixes - Removed errant PID file debugging code - Fixed problem with trimming command definitions 2.2 - 01/22/2006 ---------------- - Spec file fix - Patch to add Tru64 and IRIX support (Ton Voon) - Updated config.sub and config.guess - Fixed bug with config file lines with only whitespace - Fixed bug with missing getopt() command line option for -V - Removed sample FreeBSD init script (now maintained by FreeBSD port) - Added config file option for writing a PID file 2.1 - 01/19/2004 ---------------- - Replaced host access list with TCP wrapper support - Removed length restrictions for command names and command lines - Configure script patch for getopt_long on Solaris - Bug fixes for accept() on HP-UX 11.0 - Init script for SUSE Linux (Subhendu Ghosh) - SSL protocol used is now limited to TLSv1 - Any output from plugins after first line is now ignored before plugin process is closed 2.0 - 09/08/2003 ---------------- - Added support for passing arguments to command - NRPE daemon can no longer be run as root user/group - Added getopt support - Added 'include' variable to config file to allow inclusion of external config files - Added 'include_dir' variable to allow inclusion of external config files in directories (with recursion) - Added native SSL support (Derrick Bennett) - Added my_strsep(), as Solaris doesn't have strsep() - Added license exemption for use with OpenSSL 1.8 - 01/16/2003 ---------------- - Daemon now closes stdio/out/err properly (James Peterson) - Makefile changes (James Peterson) - Mode command line option bug fix in daemon - Fixed incorrect command line options in check_nrpe plugin 1.7 - 01/08/2003 ---------------- - Spec file updates and minor bug fixes (James Peterson) - Bug fix with default nrpe port definition - Added sample xinetd config file (nrpe.xinetd) - Bug fix for command_timeout variable (James Peterson) 1.6 - 12/30/2002 ---------------- - Updated sample commands to match new plugin argument format - Added sample init scripts for FreeBSD and Debian (Andrew Ryder) - Syntax changes (-H option specifies host name in check_nrpe, -c option specifies config file in nrpe) - Added command_timeout directive to config file to allow user to specify timeout for executing plugins - Added spec file and misc patches for building RPMs (James Peterson) - Added --with-nrpe-port config directive (James Peterson) 1.5 - 06/03/2002 ---------------- - Added setuid/setgid option to config file (suggested by Marek Cervenka) 1.4 - 06/01/2002 ---------------- - Changed STATE_UNKNOWN to value of 3 instead of -1 (old style) - Minor doc and sample config file changes 1.3 - 02/21/2002 ---------------- - Name and version change - Ignore SIGHUP, minor cleanup (Jon Andrews) 1.2.5 - 12/22/2001 ------------------ - Implemented Beej's sendall() to handle partial send()s - Added instructions on running under xinetd to README - Removed some old crud 1.2.4 - 02/22/2001 ------------------ - I forgot what changes I made. Go figure... 1.2.3 - 12/21/2000 ------------------ - A bit more documentation on configuring command definitions for the plugin 1.2.2 - 06/05/2000 ------------------ - Fixed error in docs for running under inetd using TCP wrappers - Replaced old email address in src/netutils.h with new one 1.2.1 - 05/07/2000 ------------------ - Removed trapping of SIGCHLD - Changed wait4() to waitpid() to allow compilation on HP-UX and AIX 1.2.0 - 04/18/2000 ------------------ - Server forks twice after accepting a client connection, so as to prevent the creation of zombies 1.1.5 - 04/07/2000 ------------------ - Fixed a small bug where one debug message was not getting logged properly 1.1.4 - 03/30/2000 ------------------ - Added option to disable/enable debug messages using the debug option in the config file 1.1.3 - 03/11/2000 ------------------ - Changed config file to use an absolute path - Changed all debug output to use syslog (Rene Klootwijk) - No convert all data to network order before sending it and convert it back to host order when receiving it. This makes it possible to mix Solaris and Linux, e.g. running check_nrpe on Linux and nrpe on Solaris. (Rene Klootwijk) 1.1.2 - 03/07/2000 ------------------ - Removed unnecessary code in signal handler routine - Unused signals are no longer trapper 1.1.1 - 02/28/2000 - RKL --------------------------- - Modified syslog code to include string describing the error code. - Changed hardcoded number in signal handler to its name. This prevented nrpe to run on Solaris. - Fixed race condition in accept loop. The result of accept should also be checked for EINTR. - Modified recv and send function calls to compile without warnings on Solaris. - Modified configure.in,configure and Makefile.in to include nsl and socket libs for Solaris. - Modified the signal handler to reestablish itself after being called. 1.1 - 02/24/2000 - Rene Klootwijk ----------------- - Added ability to bind nrpe to a specific interface by specifying the address of this interface in the nrpe.cfg file (e.g. server_address=192.168.2.3) 1.0 - 02/16/2000 ------------------ - Added ability to run as a service under inetd 1.0b6 - 02/01/2000 ------------------ - Added configure script - Netutils functions from the NetSaint plugins is now used - Reset SIGCHLD to default behavior before calling popen() to prevent race condition with pclose() (Reported by Rene Klootwijk) - Cleaned up code 1.0b5 - 01/10/2000 ------------------ - Added init script contributed by Jacob L - Incorporated syslog code and other patches contributed by Jacob L 1.0b4 - 11/04/1999 ------------------ - Changed 'allowed_ip' option in configuration file to 'allowed_hosts' and added support for multiple hosts - Minor buffer overflow protection fixes - main() returned STATE_UNKNOWN on successful launch, changed to STATE_OK (jaclu@grm.se) - Added syslog support (jaclu@grm.se) nrpe-2.15/LEGAL000066400000000000000000000006711221237212100131510ustar00rootroot00000000000000 All source code, binaries, documentation, and information contained in this distribution are provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. Nagios and the Nagios logo are registered trademarks of Nagios Enterprises. All other trademarks, servicemarks, registered trademarks, and registered servicemarks are the property of their respective owner(s). nrpe-2.15/Makefile.in000066400000000000000000000040101221237212100144360ustar00rootroot00000000000000############################### # Makefile for NRPE # # Last Modified: 03-14-2007 ############################### # Source code directories SRC_BASE=./src/ SRC_INCLUDE=./include/ CC=@CC@ CFLAGS=@CFLAGS@ @DEFS@ LDFLAGS=@LDFLAGS@ @LIBS@ prefix=@prefix@ exec_prefix=@exec_prefix@ CFGDIR=@sysconfdir@ BINDIR=@bindir@ SBINDIR=@sbindir@ LIBEXECDIR=@libexecdir@ INSTALL=@INSTALL@ NAGIOS_INSTALL_OPTS=@NAGIOS_INSTALL_OPTS@ NRPE_INSTALL_OPTS=@NRPE_INSTALL_OPTS@ INIT_DIR=@init_dir@ INIT_OPTS=-o root -g root all: cd $(SRC_BASE); $(MAKE) ; cd .. @echo "" @echo "*** Compile finished ***" @echo "" @echo "If the NRPE daemon and client compiled without any errors, you" @echo "can continue with the installation or upgrade process." @echo "" @echo "Read the PDF documentation (NRPE.pdf) for information on the next" @echo "steps you should take to complete the installation or upgrade." @echo "" nrpe: cd $(SRC_BASE); $(MAKE) ; cd .. check_nrpe: cd $(SRC_BASE); $(MAKE) ; cd .. install-plugin: cd $(SRC_BASE) && $(MAKE) $@ install-daemon: cd $(SRC_BASE) && $(MAKE) $@ install: cd $(SRC_BASE) && $(MAKE) $@ install-xinetd: $(INSTALL) -m 644 sample-config/nrpe.xinetd /etc/xinetd.d/nrpe install-daemon-config: $(INSTALL) -m 775 $(NAGIOS_INSTALL_OPTS) -d $(DESTDIR)$(CFGDIR) $(INSTALL) -m 644 $(NRPE_INSTALL_OPTS) sample-config/nrpe.cfg $(DESTDIR)$(CFGDIR) solaris-package: @if [ `uname -s` != "SunOS" ] ; then \ echo "It is recommended you be running on Solaris to build a Solaris package"; \ else \ cd package/solaris; $(MAKE) build ; $(MAKE) pkg ; cd ../..; \ fi clean: cd $(SRC_BASE); $(MAKE) $@ ; cd .. cd package/solaris; $(MAKE) $@ ; cd ../.. rm -f core rm -f *~ */*~ distclean: clean cd $(SRC_BASE); $(MAKE) $@ ; cd .. cd package/solaris; $(MAKE) $@ ; cd ../.. rm -f config.log config.status config.cache nrpe.cfg nrpe.xinetd subst $(SRC_INCLUDE)/config.h init-script init-script.debian init-script.freebsd init-script.suse rm -f sample-config/*.cfg sample-config/*.xinetd rm -f Makefile devclean: distclean nrpe-2.15/README000066400000000000000000000156201221237212100132620ustar00rootroot00000000000000----------- NRPE README ----------- ** UPDATED DOCUMENTATION! For installation instructions and information on the design overview of the NRPE addon, please read the PDF documentation that is found in this directory: NRPE.pdf Purpose ------- The purpose of this addon is to allow you to execute Nagios plugins on a remote host in as transparent a manner as possible. Contents -------- There are two pieces to this addon: 1) NRPE - This program runs as a background process on the remote host and processes command execution requests from the check_nrpe plugin on the Nagios host. Upon receiving a plugin request from an authorized host, it will execute the command line associated with the command name it received and send the program output and return code back to the check_nrpe plugin 2) check_nrpe - This is a plugin that is run on the Nagios host and is used to contact the NRPE process on remote hosts. The plugin requests that a plugin be executed on the remote host and wait for the NRPE process to execute the plugin and return the result. The plugin then uses the output and return code from the plugin execution on the remote host for its own output and return code. Compiling --------- The code is very basic and may not work on your particular system without some tweaking. I just haven't put a lot of effort into this addond. Most Linux users should be able to compile NRPE and the check_nrpe plugin with the following commands... ./configure make all The binaries will be located in the src/ directory after you run 'make all' and will have to be installed manually somewhere on your system. NOTE: Since the check_nrpe plugin and nrpe daemon run on different machines (the plugin runs on the Nagios host and the daemon runs on the remote host), you will have to compile the nrpe daemon on the target machine. Installing ---------- The check_nrpe plugin should be placed on the Nagios host along with your other plugins. In most cases, this will be in the /usr/local/nagios/libexec directory. The nrpe program and the configuration file (nrpe.cfg) should be placed somewhere on the remote host. Note that you will also have to install some plugins on the remote host if you want to make much use of this addon. Configuring ----------- Sample config files for the NRPE daemon are located in the sample-config/ subdirectory. Running Under INETD or XINETD ----------------------------- If you plan on running nrpe under inetd or xinetd and making use of TCP wrappers, you need to do the following things: 1) Add a line to your /etc/services file as follows (modify the port number as you see fit) nrpe 5666/tcp # NRPE 2) Add entries for the NRPE daemon to either your inetd or xinetd configuration files. Which one your use will depend on which superserver is installed on your system. Both methods are described below. NOTE: If you run nrpe under inetd or xinetd, the server_port and allowed_hosts variables in the nrpe configuration file are ignored. ***** INETD ***** If your system uses the inetd superserver WITH tcpwrappers, add an entry to /etc/inetd.conf as follows: nrpe stream tcp nowait /usr/sbin/tcpd -c --inetd If your system uses the inetd superserver WITHOUT tcpwrappers, add an entry to /etc/inetd.conf as follows: nrpe stream tcp nowait -c --inetd - Replace with the name of the user that the nrpe server should run as. Example: nagios - Replace with the path to the nrpe binary on your system. Example: /usr/local/nagios/nrpe - Replace with the path to the nrpe config file on your system. Example: /usr/local/nagios/nrpe.cfg ***** XINETD ***** If your system uses xinetd instead of inetd, you'll probably want to create a file called 'nrpe' in your /etc/xinetd.d directory that contains the following entries: # default: on # description: NRPE service nrpe { flags = REUSE socket_type = stream wait = no user = server = server_args = -c --inetd log_on_failure += USERID disable = no only_from = ... } - Replace with the name of the user that the nrpe server should run as. - Replace with the path to the nrpe binary on your system. - Replace with the path to the nrpe config file on your system. - Replace the fields with the IP addresses of hosts which are allowed to connect to the NRPE daemon. This only works if xinetd was compiled with support for tcpwrappers. 3) Restart inetd or xinetd will the following command (pick the on that is appropriate for your system: /etc/rc.d/init.d/inet restart /etc/rc.d/init.d/xinetd restart OpenBSD users can use the following command to restart inetd: kill -HUP `cat /var/run/inet.pid` 4) Add entries to your /etc/hosts.allow and /etc/hosts.deny file to enable TCP wrapper protection for the nrpe service. This is optional, although highly recommended. Configuring Things On The Nagios Host --------------------------------------- Examples for configuring the nrpe daemon are found in the sample nrpe.cfg file included in this distribution. That config file resides on the remote host(s) along with the nrpe daemon. The check_nrpe plugin gets installed on the Nagios host. In order to use the check_nrpe plugin from within Nagios, you'll have to define a few things in the host config file. An example command definition for the check_nrpe plugin would look like this: define command{ command_name check_nrpe command_line /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ } In any service definitions that use the nrpe plugin/daemon to get their results, you would set the service check command portion of the definition to something like this (sample service definition is simplified for this example): define service{ host_name someremotehost service_description someremoteservice check_command check_nrpe!yourcommand ... etc ... } where "yourcommand" is a name of a command that you define in your nrpe.cfg file on the remote host (see the docs in the sample nrpe.cfg file for more information). Questions? ---------- If you have questions about this addon, or problems getting things working, first try searching the nagios-users mailing list archives. Details on searching the list archives can be found at http://www.nagios.org If all else fails, you can email me and I'll try and respond as soon as I get a chance. -- Ethan Galstad (nagios@nagios.org) nrpe-2.15/README.SSL000066400000000000000000000022241221237212100137160ustar00rootroot00000000000000NRPE With SSL/TLS NRPE now has the option for Encrypting Network traffic using SSL/TLS from openssl. The Encryption is done using a set encryption routine of AES-256 Bit Encryption using SHA and Anon-DH. This encrypts all traffic using the NRPE sockets from the client to the server. Since we are using Anon-DH this allows for an encrypted SSL/TLS Connection without using pre-generated keys or certificates. The key generation information used by the program to dynaically create keys on daemon startup can be found in the dh.h file in the nrpe src directory. This file was created using the command: openssl dhparam -C 512 which outputs the C code in dh.h. For your own security you can replace that file with your own dhparam generated code. As of this time you will need to have the latest greatest version of OpenSSL (tested against version 0.9.7a) since not all versions have the AES algorythm in them. I am not aware that at this time this code is restricted under export restrictions but I leave that verification process up to you. Thoughts and suggestions are welcome and I can be reached on the Nagios and NagiosPlug Mailing Lists. - Derrick nrpe-2.15/README.Solaris000066400000000000000000000012351221237212100146720ustar00rootroot00000000000000Compiling on Solaris Several changes may be necessary in order to compile NRPE on Solaris. This information is known to apply to Solaris 10 and may apply to other verisions of Solaris. This has been tested on Solaris 10 x86. There are three things that you may need to compile NRPE on Solaris: 1. Add /usr/sfw/bin to your path $ PATH="$PATH:/usr/sfw/bin" 2. Specify the binary to be used for make-ing $ MAKE=gmake ./configure 3. Use gmake to build the code $ gmake all Thanks to Kevin Pendleton at UtahSysAdmin.com (http://www.utahsysadmin.com/2008/03/14/configuring-nagios-plugins-nrpe-on-solaris-10/) for the instructions on finding the SSL libraries. nrpe-2.15/SECURITY000066400000000000000000000067541221237212100136040ustar00rootroot00000000000000******************** NRPE SECURITY README ******************** TCP WRAPPER SUPPORT =================== NRPE 2.x includes native support for TCP wrappers. The older host access list directive was removed from the config file. Make sure your system supports TCP wrappers before running NRPE. Once you compile NRPE you can check to see if it has wrapper support built in by running the daemon from the command line without any arguments like this: ./nrpe --help COMMAND ARGUMENTS ================= NRPE 2.0 includes the ability for clients to supply arguments to commands which should be run. Please note that this feature should be considered a security risk, and you should only use it if you know what you're doing! BASH COMMAND SUBSTITUTION ------------------------- Even with the metacharacter restrictions below, if command arguments are enabled, it is still possible to send bash command substitions in the form $(...) as an agrument. This is explicity disabled by default, but can be enabled by a configure-time option and a configuration file option. Enabling this option is VERY RISKY and its use is HIGHLY DISCOURAGED. ENABLING ARGUMENTS ------------------ To enable support for command argument in the daemon, you must do two things: 1. Run the configure script with the --enable-command-args option 2. Set the 'dont_blame_nrpe' directive in the NRPE config file to 1. ENABLING BASH COMMAND SUBSTITUTION ---------------------------------- To enable support for arguments containing bash command substitions, you must do two things: 1. Enable arguments as described above 2. Include the --enable-bash-command-substitution configure option when running the configure script 3. Set the 'allow_bash_command_substitutions' directive in the NRPE config file to 1. ILLEGAL METACHARS ----------------- To help prevent some nasty things from being done by evil clients, the following metacharacters are not allowed in client command arguments: | ` & > < ' " \ [ ] { } ; ! Any client request which contains the abovementioned metachars is discarded. USER/GROUP RESTRICTIONS ----------------------- The NRPE daemon cannot be run with (effective) root user/group privileges. You must run the daemon with an account that does not have superuser rights. Use the nrpe_user and nrpe_group directives in the config file to specify which user/group the daemon should run as. ENCRYPTION ---------- If you do enable support for command arguments in the NRPE daemon, make sure that you encrypt communications either by using: 1. Stunnel (see http://www.stunnel.org for more info) 2. Native SSL support Do NOT assume that just because the daemon is behind a firewall that you are safe! Always encrypt NRPE traffic! USING ARGUMENTS --------------- How do you use command arguments? Well, lets say you define a command in the NRPE config file that looks like this: command[check_users]=/usr/local/nagios/libexec/check_users -w $ARG1$ -c $ARG2$ You could then call the check_nrpe plugin like this: ./check_nrpe -H -c check_users -a 5 10 The arguments '5' and '10' get substituted into the appropriate $ARGx$ macros in the command ($ARG1$ and $ARG2$, respectively). The command that would be executed by the NRPE daemon would look like this: /usr/local/nagios/libexec/check_users -w 5 -c 10 You can supply up to 16 arguments to be passed to the command for substitution in $ARG$ macros ($ARG1$ - $ARG16$). -- Ethan Galstad (nagios@nagios.org) nrpe-2.15/config.guess000077500000000000000000001255521221237212100147300ustar00rootroot00000000000000#! /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 Free Software Foundation, Inc. timestamp='2006-01-02' # 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 # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # 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 to . Submit a context # diff and a properly formatted ChangeLog entry. # # 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. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." 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 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." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown 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 # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerppc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; x86:Interix*:[345]*) echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' exit ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`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 exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '/^CPU/{s: ::g;p;}'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '/^CPU/{s: ::g;p;}'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${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 ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '/^LIBC/{s: ::g;p;}'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos 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 < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: nrpe-2.15/config.sub000077500000000000000000000770601221237212100143730ustar00rootroot00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. timestamp='2006-01-02' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # 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 # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # 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. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit 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 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." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -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) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | 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 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32r | m32rle | m68000 | m68k | m88k | maxq | mb | microblaze | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b \ | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m32c) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; m32c-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16c) basic_machine=cr16c-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -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* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: nrpe-2.15/configure000077500000000000000000006731161221237212100143230ustar00rootroot00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.59 for nrpe 2.15. # # Report bugs to . # # Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` exec 6>&1 # # Initializations. # ac_default_prefix=/usr/local ac_config_libobj_dir=. cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. # This variable seems obsolete. It should probably be removed, and # only ac_max_sed_lines should be used. : ${ac_max_here_lines=38} # Identity of this package. PACKAGE_NAME='nrpe' PACKAGE_TARNAME='nrpe' PACKAGE_VERSION='2.15' PACKAGE_STRING='nrpe 2.15' PACKAGE_BUGREPORT='nagios-users@lists.sourceforge.net' ac_unique_file="src/nrpe.c" ac_default_prefix=/usr/local/nagios # Factoring default headers for most tests. ac_includes_default="\ #include #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_STAT_H # include #endif #if STDC_HEADERS # include # include #else # if HAVE_STDLIB_H # include # endif #endif #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #endif #if HAVE_STRINGS_H # include #endif #if HAVE_INTTYPES_H # include #else # if HAVE_STDINT_H # include # endif #endif #if HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS PKG_NAME PKG_VERSION PKG_HOME_URL PKG_REL_DATE RPM_RELEASE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA INSTALL build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT SET_MAKE CPP EGREP SNPRINTF_O OTHERLIBS SOCKETLIBS LIBWRAPLIBS HAVE_SSL log_facility nrpe_user nrpe_group NRPE_INSTALL_OPTS nrpe_port nagios_user nagios_group NAGIOS_INSTALL_OPTS TARGET_VER TARGET_OS TARGET_ARCH TARGET_PLATFORM PERL LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' ac_prev= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval "$ac_prev=\$ac_option" ac_prev= continue fi ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_option in -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ | --da=*) datadir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval "enable_$ac_feature=no" ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "enable_$ac_feature='$ac_optarg'" ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst \ | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package| sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "with_$ac_package='$ac_optarg'" ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/-/_/g'` eval "with_$ac_package=no" ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` eval "$ac_envvar='$ac_optarg'" export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute paths. for ac_var in exec_prefix prefix do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* | NONE | '' ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then its parent. ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` srcdir=$ac_confdir if test ! -r $srcdir/$ac_unique_file; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r $srcdir/$ac_unique_file; then if test "$ac_srcdir_defaulted" = yes; then { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 { (exit 1); exit 1; }; } else { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi fi (cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 { (exit 1); exit 1; }; } srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` ac_env_build_alias_set=${build_alias+set} ac_env_build_alias_value=$build_alias ac_cv_env_build_alias_set=${build_alias+set} ac_cv_env_build_alias_value=$build_alias ac_env_host_alias_set=${host_alias+set} ac_env_host_alias_value=$host_alias ac_cv_env_host_alias_set=${host_alias+set} ac_cv_env_host_alias_value=$host_alias ac_env_target_alias_set=${target_alias+set} ac_env_target_alias_value=$target_alias ac_cv_env_target_alias_set=${target_alias+set} ac_cv_env_target_alias_value=$target_alias ac_env_CC_set=${CC+set} ac_env_CC_value=$CC ac_cv_env_CC_set=${CC+set} ac_cv_env_CC_value=$CC ac_env_CFLAGS_set=${CFLAGS+set} ac_env_CFLAGS_value=$CFLAGS ac_cv_env_CFLAGS_set=${CFLAGS+set} ac_cv_env_CFLAGS_value=$CFLAGS ac_env_LDFLAGS_set=${LDFLAGS+set} ac_env_LDFLAGS_value=$LDFLAGS ac_cv_env_LDFLAGS_set=${LDFLAGS+set} ac_cv_env_LDFLAGS_value=$LDFLAGS ac_env_CPPFLAGS_set=${CPPFLAGS+set} ac_env_CPPFLAGS_value=$CPPFLAGS ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} ac_cv_env_CPPFLAGS_value=$CPPFLAGS ac_env_CPP_set=${CPP+set} ac_env_CPP_value=$CPP ac_cv_env_CPP_set=${CPP+set} ac_cv_env_CPP_value=$CPP # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures nrpe 2.15 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] _ACEOF cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --datadir=DIR read-only architecture-independent data [PREFIX/share] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --infodir=DIR info documentation [PREFIX/info] --mandir=DIR man documentation [PREFIX/man] _ACEOF cat <<\_ACEOF System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of nrpe 2.15:";; esac cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-ssl enables native SSL support --enable-command-args allows clients to specify command arguments. *** THIS IS A SECURITY RISK! *** Read the SECURITY file before using this option! --enable-bash-command-substitution allows clients to pass bash command substitutions of the form $(command). *** THIS IS A HIGH SECURITY RISK! *** Read the SECURITY file before using this option! Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-ssl=DIR sets location of the SSL installation --with-ssl-inc=DIR sets location of the SSL include files --with-ssl-lib=DIR sets location of the SSL libraries --with-kerberos-inc=DIR sets location of the Kerberos include files --with-log-facility= sets NRPE syslog facility --with-nrpe-user= sets user name to run NRPE --with-nrpe-group= sets group name to run NRPE --with-nrpe-port= sets port number for NRPE to listen on --with-nagios-user= sets user name for file permissions --with-nagios-group= sets group name file permissions Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. ac_popdir=`pwd` for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d $ac_dir || continue ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac cd $ac_dir # Check for guested configure; otherwise get Cygnus style configure. if test -f $ac_srcdir/configure.gnu; then echo $SHELL $ac_srcdir/configure.gnu --help=recursive elif test -f $ac_srcdir/configure; then echo $SHELL $ac_srcdir/configure --help=recursive elif test -f $ac_srcdir/configure.ac || test -f $ac_srcdir/configure.in; then echo $ac_configure --help else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi cd $ac_popdir done fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF nrpe configure 2.15 generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit 0 fi exec 5>config.log cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by nrpe $as_me 2.15, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ _ACEOF { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` hostinfo = `(hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_sep= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" # Get rid of the leading space. ac_sep=" " ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Be sure not to use single quotes in there, as some shells, # such as our DU 5.0 friend, will then `close' the trap. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, { (set) 2>&1 | case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------- ## ## Output files. ## ## ------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo sed "/^$/d" confdefs.h | sort echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core && rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h # AIX cpp loses on an empty file, so make sure it contains at least a newline. echo >confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" else CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in `(set) 2>&1 | sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val="\$ac_cv_env_${ac_var}_value" eval ac_new_val="\$ac_env_${ac_var}_value" case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_headers="$ac_config_headers include/config.h" ac_config_files="$ac_config_files Makefile subst src/Makefile package/solaris/Makefile init-script init-script.debian init-script.suse nrpe.spec sample-config/nrpe.cfg sample-config/nrpe.xinetd" PKG_NAME=nrpe PKG_VERSION="2.15" PKG_HOME_URL="http://www.nagios.org/" PKG_REL_DATE="09-06-2013" RPM_RELEASE=1 ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f $ac_dir/install.sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f $ac_dir/shtool; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} { (exit 1); exit 1; }; } fi ac_config_guess="$SHELL $ac_aux_dir/config.guess" ac_config_sub="$SHELL $ac_aux_dir/config.sub" ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL=$ac_install_sh fi fi echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' # Make sure we can run config.sub. $ac_config_sub sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 echo "$as_me: error: cannot run $ac_config_sub" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6 if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_build_alias=$build_alias test -z "$ac_cv_build_alias" && ac_cv_build_alias=`$ac_config_guess` test -z "$ac_cv_build_alias" && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6 build=$ac_cv_build build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6 if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_host_alias=$host_alias test -z "$ac_cv_host_alias" && ac_cv_host_alias=$ac_cv_build_alias ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6 host=$ac_cv_host host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi CC=$ac_ct_CC else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi CC=$ac_ct_CC else CC="$ac_cv_prog_CC" fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CC" && break done CC=$ac_ct_CC fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Find the output, starting from the most likely. This scheme is # not robust to junk in `.', hence go to wildcards (a.*) only as a last # resort. # Be careful to initialize this variable, since it used to be cached. # Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. ac_cv_exeext= # b.out is created by i960 compilers. for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; conftest.$ac_ext ) # This is the source file. ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` # FIXME: I believe we export ac_cv_exeext for Libtool, # but it would be cool to find out if it's true. Does anybody # maintain Libtool? --akim. export ac_cv_exeext break;; * ) break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6 # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6 echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` export ac_cv_exeext break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6 rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6 OBJEXT=$ac_cv_objext ac_objext=$OBJEXT echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS CFLAGS="-g" echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cc_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 if test "${ac_cv_prog_cc_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_stdc=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std1 is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std1. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF # Don't try gcc -ansi; that turns off useful extensions and # breaks some systems' header files. # AIX -qlanglvl=ansi # Ultrix and OSF/1 -std1 # HP-UX 10.20 and later -Ae # HP-UX older versions -Aa -D_HPUX_SOURCE # SVR4 -Xc -D__EXTENSIONS__ for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_stdc=$ac_arg break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext done rm -f conftest.$ac_ext conftest.$ac_objext CC=$ac_save_CC fi case "x$ac_cv_prog_cc_stdc" in x|xno) echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6 ;; *) echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 CC="$CC $ac_cv_prog_cc_stdc" ;; esac # Some people use a C++ compiler to compile C. Since we use `exit', # in C++ we need to declare it. In case someone uses the same compiler # for both compiling C and C++ we need to have the C++ compiler decide # the declaration of exit, since it's the most demanding environment. cat >conftest.$ac_ext <<_ACEOF #ifndef __cplusplus choke me #endif _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF all: @echo 'ac_maketemp="$(MAKE)"' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` if test -n "$ac_maketemp"; then eval ac_cv_prog_make_${ac_make}_set=yes else eval ac_cv_prog_make_${ac_make}_set=no fi rm -f conftest.make fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6 ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6 if test "${ac_cv_prog_egrep+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | (grep -E '(a|b)') >/dev/null 2>&1 then ac_cv_prog_egrep='grep -E' else ac_cv_prog_egrep='egrep' fi fi echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 echo "${ECHO_T}$ac_cv_prog_egrep" >&6 EGREP=$ac_cv_prog_egrep echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6 if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6 if test "${ac_cv_header_time+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include int main () { if ((struct tm *) 0) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_header_time=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_time=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 echo "${ECHO_T}$ac_cv_header_time" >&6 if test $ac_cv_header_time = yes; then cat >>confdefs.h <<\_ACEOF #define TIME_WITH_SYS_TIME 1 _ACEOF fi echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5 echo $ECHO_N "checking for sys/wait.h that is POSIX.1 compatible... $ECHO_C" >&6 if test "${ac_cv_header_sys_wait_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #ifndef WEXITSTATUS # define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8) #endif #ifndef WIFEXITED # define WIFEXITED(stat_val) (((stat_val) & 255) == 0) #endif int main () { int s; wait (&s); s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_header_sys_wait_h=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_sys_wait_h=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5 echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6 if test $ac_cv_header_sys_wait_h = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_SYS_WAIT_H 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in ctype.h dirent.h errno.h fcntl.h getopt.h grp.h inttypes.h netdb.h pwd.h signal.h stdint.h strings.h string.h syslog.h tcpd.h unistd.h arpa/inet.h netinet/in.h socket.h sys/types.h sys/time.h sys/resource.h sys/wait.h sys/socket.h sys/stat.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------------------------- ## ## Report this to nagios-users@lists.sourceforge.net ## ## ------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6 if test "${ac_cv_c_const+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset x; /* SunOS 4.1.1 cc rejects this. */ char const *const *ccp; char **p; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; ccp = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++ccp; p = (char**) ccp; ccp = (char const *const *) p; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; } #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_c_const=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_c_const=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 echo "${ECHO_T}$ac_cv_c_const" >&6 if test $ac_cv_c_const = no; then cat >>confdefs.h <<\_ACEOF #define const _ACEOF fi echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5 echo $ECHO_N "checking whether struct tm is in sys/time.h or time.h... $ECHO_C" >&6 if test "${ac_cv_struct_tm+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { struct tm *tp; tp->tm_sec; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_struct_tm=time.h else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_struct_tm=sys/time.h fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5 echo "${ECHO_T}$ac_cv_struct_tm" >&6 if test $ac_cv_struct_tm = sys/time.h; then cat >>confdefs.h <<\_ACEOF #define TM_IN_SYS_TIME 1 _ACEOF fi echo "$as_me:$LINENO: checking for mode_t" >&5 echo $ECHO_N "checking for mode_t... $ECHO_C" >&6 if test "${ac_cv_type_mode_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { if ((mode_t *) 0) return 0; if (sizeof (mode_t)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_mode_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_mode_t=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5 echo "${ECHO_T}$ac_cv_type_mode_t" >&6 if test $ac_cv_type_mode_t = yes; then : else cat >>confdefs.h <<_ACEOF #define mode_t int _ACEOF fi echo "$as_me:$LINENO: checking for pid_t" >&5 echo $ECHO_N "checking for pid_t... $ECHO_C" >&6 if test "${ac_cv_type_pid_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { if ((pid_t *) 0) return 0; if (sizeof (pid_t)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_pid_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_pid_t=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 echo "${ECHO_T}$ac_cv_type_pid_t" >&6 if test $ac_cv_type_pid_t = yes; then : else cat >>confdefs.h <<_ACEOF #define pid_t int _ACEOF fi echo "$as_me:$LINENO: checking for size_t" >&5 echo $ECHO_N "checking for size_t... $ECHO_C" >&6 if test "${ac_cv_type_size_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { if ((size_t *) 0) return 0; if (sizeof (size_t)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_size_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_size_t=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 echo "${ECHO_T}$ac_cv_type_size_t" >&6 if test $ac_cv_type_size_t = yes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned _ACEOF fi echo "$as_me:$LINENO: checking return type of signal handlers" >&5 echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6 if test "${ac_cv_type_signal+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #ifdef signal # undef signal #endif #ifdef __cplusplus extern "C" void (*signal (int, void (*)(int)))(int); #else void (*signal ()) (); #endif int main () { int i; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_signal=void else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_signal=int fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 echo "${ECHO_T}$ac_cv_type_signal" >&6 cat >>confdefs.h <<_ACEOF #define RETSIGTYPE $ac_cv_type_signal _ACEOF echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5 echo $ECHO_N "checking for uid_t in sys/types.h... $ECHO_C" >&6 if test "${ac_cv_type_uid_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "uid_t" >/dev/null 2>&1; then ac_cv_type_uid_t=yes else ac_cv_type_uid_t=no fi rm -f conftest* fi echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5 echo "${ECHO_T}$ac_cv_type_uid_t" >&6 if test $ac_cv_type_uid_t = no; then cat >>confdefs.h <<\_ACEOF #define uid_t int _ACEOF cat >>confdefs.h <<\_ACEOF #define gid_t int _ACEOF fi echo "$as_me:$LINENO: checking type of array argument to getgroups" >&5 echo $ECHO_N "checking type of array argument to getgroups... $ECHO_C" >&6 if test "${ac_cv_type_getgroups+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then ac_cv_type_getgroups=cross else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Thanks to Mike Rendell for this test. */ #include #define NGID 256 #undef MAX #define MAX(x, y) ((x) > (y) ? (x) : (y)) int main () { gid_t gidset[NGID]; int i, n; union { gid_t gval; long lval; } val; val.lval = -1; for (i = 0; i < NGID; i++) gidset[i] = val.gval; n = getgroups (sizeof (gidset) / MAX (sizeof (int), sizeof (gid_t)) - 1, gidset); /* Exit non-zero if getgroups seems to require an array of ints. This happens when gid_t is short but getgroups modifies an array of ints. */ exit ((n > 0 && gidset[n] != val.gval) ? 1 : 0); } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_getgroups=gid_t else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_type_getgroups=int fi rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi if test $ac_cv_type_getgroups = cross; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "getgroups.*int.*gid_t" >/dev/null 2>&1; then ac_cv_type_getgroups=gid_t else ac_cv_type_getgroups=int fi rm -f conftest* fi fi echo "$as_me:$LINENO: result: $ac_cv_type_getgroups" >&5 echo "${ECHO_T}$ac_cv_type_getgroups" >&6 cat >>confdefs.h <<_ACEOF #define GETGROUPS_T $ac_cv_type_getgroups _ACEOF echo "$as_me:$LINENO: checking for int" >&5 echo $ECHO_N "checking for int... $ECHO_C" >&6 if test "${ac_cv_type_int+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { if ((int *) 0) return 0; if (sizeof (int)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_int=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_int=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5 echo "${ECHO_T}$ac_cv_type_int" >&6 echo "$as_me:$LINENO: checking size of int" >&5 echo $ECHO_N "checking size of int... $ECHO_C" >&6 if test "${ac_cv_sizeof_int+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$ac_cv_type_int" = yes; then # The cast to unsigned long works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !(((long) (sizeof (int))) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_hi=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid + 1` fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !(((long) (sizeof (int))) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !(((long) (sizeof (int))) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_lo=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid` fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_hi=$ac_mid else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_int=$ac_lo;; '') { { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77 See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (int), 77 See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } ;; esac else if test "$cross_compiling" = yes; then { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling See \`config.log' for more details." >&5 echo "$as_me: error: cannot run test program while cross compiling See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default long longval () { return (long) (sizeof (int)); } unsigned long ulongval () { return (long) (sizeof (int)); } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) exit (1); if (((long) (sizeof (int))) < 0) { long i = longval (); if (i != ((long) (sizeof (int)))) exit (1); fprintf (f, "%ld\n", i); } else { unsigned long i = ulongval (); if (i != ((long) (sizeof (int)))) exit (1); fprintf (f, "%lu\n", i); } exit (ferror (f) || fclose (f) != 0); ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_int=`cat conftest.val` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) { { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77 See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (int), 77 See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi rm -f conftest.val else ac_cv_sizeof_int=0 fi fi echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5 echo "${ECHO_T}$ac_cv_sizeof_int" >&6 cat >>confdefs.h <<_ACEOF #define SIZEOF_INT $ac_cv_sizeof_int _ACEOF echo "$as_me:$LINENO: checking for short" >&5 echo $ECHO_N "checking for short... $ECHO_C" >&6 if test "${ac_cv_type_short+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { if ((short *) 0) return 0; if (sizeof (short)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_short=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_short=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_short" >&5 echo "${ECHO_T}$ac_cv_type_short" >&6 echo "$as_me:$LINENO: checking size of short" >&5 echo $ECHO_N "checking size of short... $ECHO_C" >&6 if test "${ac_cv_sizeof_short+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$ac_cv_type_short" = yes; then # The cast to unsigned long works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !(((long) (sizeof (short))) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !(((long) (sizeof (short))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_hi=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid + 1` fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !(((long) (sizeof (short))) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !(((long) (sizeof (short))) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_lo=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid` fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !(((long) (sizeof (short))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_hi=$ac_mid else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_short=$ac_lo;; '') { { echo "$as_me:$LINENO: error: cannot compute sizeof (short), 77 See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (short), 77 See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } ;; esac else if test "$cross_compiling" = yes; then { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling See \`config.log' for more details." >&5 echo "$as_me: error: cannot run test program while cross compiling See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default long longval () { return (long) (sizeof (short)); } unsigned long ulongval () { return (long) (sizeof (short)); } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) exit (1); if (((long) (sizeof (short))) < 0) { long i = longval (); if (i != ((long) (sizeof (short)))) exit (1); fprintf (f, "%ld\n", i); } else { unsigned long i = ulongval (); if (i != ((long) (sizeof (short)))) exit (1); fprintf (f, "%lu\n", i); } exit (ferror (f) || fclose (f) != 0); ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_short=`cat conftest.val` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) { { echo "$as_me:$LINENO: error: cannot compute sizeof (short), 77 See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (short), 77 See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi rm -f conftest.val else ac_cv_sizeof_short=0 fi fi echo "$as_me:$LINENO: result: $ac_cv_sizeof_short" >&5 echo "${ECHO_T}$ac_cv_sizeof_short" >&6 cat >>confdefs.h <<_ACEOF #define SIZEOF_SHORT $ac_cv_sizeof_short _ACEOF echo "$as_me:$LINENO: checking for long" >&5 echo $ECHO_N "checking for long... $ECHO_C" >&6 if test "${ac_cv_type_long+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { if ((long *) 0) return 0; if (sizeof (long)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_long=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_long=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5 echo "${ECHO_T}$ac_cv_type_long" >&6 echo "$as_me:$LINENO: checking size of long" >&5 echo $ECHO_N "checking size of long... $ECHO_C" >&6 if test "${ac_cv_sizeof_long+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$ac_cv_type_long" = yes; then # The cast to unsigned long works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !(((long) (sizeof (long))) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_hi=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid + 1` fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !(((long) (sizeof (long))) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !(((long) (sizeof (long))) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_lo=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid` fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_hi=$ac_mid else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_long=$ac_lo;; '') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77 See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (long), 77 See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } ;; esac else if test "$cross_compiling" = yes; then { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling See \`config.log' for more details." >&5 echo "$as_me: error: cannot run test program while cross compiling See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default long longval () { return (long) (sizeof (long)); } unsigned long ulongval () { return (long) (sizeof (long)); } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) exit (1); if (((long) (sizeof (long))) < 0) { long i = longval (); if (i != ((long) (sizeof (long)))) exit (1); fprintf (f, "%ld\n", i); } else { unsigned long i = ulongval (); if (i != ((long) (sizeof (long)))) exit (1); fprintf (f, "%lu\n", i); } exit (ferror (f) || fclose (f) != 0); ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_long=`cat conftest.val` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) { { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77 See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (long), 77 See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi rm -f conftest.val else ac_cv_sizeof_long=0 fi fi echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5 echo "${ECHO_T}$ac_cv_sizeof_long" >&6 cat >>confdefs.h <<_ACEOF #define SIZEOF_LONG $ac_cv_sizeof_long _ACEOF echo "$as_me:$LINENO: checking for uint32_t" >&5 echo $ECHO_N "checking for uint32_t... $ECHO_C" >&6 if test "${ac_cv_type_uint32_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { if ((uint32_t *) 0) return 0; if (sizeof (uint32_t)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_uint32_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_uint32_t=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_uint32_t" >&5 echo "${ECHO_T}$ac_cv_type_uint32_t" >&6 if test $ac_cv_type_uint32_t = yes; then : else cat >>confdefs.h <<_ACEOF #define uint32_t unsigned int _ACEOF fi echo "$as_me:$LINENO: checking for u_int32_t" >&5 echo $ECHO_N "checking for u_int32_t... $ECHO_C" >&6 if test "${ac_cv_type_u_int32_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { if ((u_int32_t *) 0) return 0; if (sizeof (u_int32_t)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_u_int32_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_u_int32_t=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_u_int32_t" >&5 echo "${ECHO_T}$ac_cv_type_u_int32_t" >&6 if test $ac_cv_type_u_int32_t = yes; then : else cat >>confdefs.h <<_ACEOF #define u_int32_t unsigned int _ACEOF fi if test "$ac_cv_type_u_int32_t" = no ; then if test "$ac_cv_type_u_int32_t" = yes ; then cat >>confdefs.h <<\_ACEOF #define U_INT32_T_IS_UINT32_T 1 _ACEOF else if test "$ac_cv_sizeof_int" = 4 ; then cat >>confdefs.h <<\_ACEOF #define U_INT32_T_IS_UINT 1 _ACEOF else if test "$ac_cv_sizeof_long" = 4 ; then cat >>confdefs.h <<\_ACEOF #define U_INT32_T_IS_ULONG 1 _ACEOF else if test "$ac_cv_sizeof_short" = 4 ; then cat >>confdefs.h <<\_ACEOF #define U_INT32_T_IS_USHORT 1 _ACEOF fi fi fi fi fi echo "$as_me:$LINENO: checking for int32_t" >&5 echo $ECHO_N "checking for int32_t... $ECHO_C" >&6 if test "${ac_cv_type_int32_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { if ((int32_t *) 0) return 0; if (sizeof (int32_t)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_int32_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_int32_t=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_int32_t" >&5 echo "${ECHO_T}$ac_cv_type_int32_t" >&6 if test $ac_cv_type_int32_t = yes; then : else cat >>confdefs.h <<_ACEOF #define int32_t int _ACEOF fi if test "$ac_cv_type_int32_t" = no ; then if test "$ac_cv_sizeof_int" = 4 ; then cat >>confdefs.h <<\_ACEOF #define INT32_T_IS_UINT 1 _ACEOF else if test "$ac_cv_sizeof_long" = 4 ; then cat >>confdefs.h <<\_ACEOF #define INT32_T_IS_ULONG 1 _ACEOF else if test "$ac_cv_sizeof_short" = 4 ; then cat >>confdefs.h <<\_ACEOF #define INT32_T_IS_USHORT 1 _ACEOF fi fi fi fi echo "$as_me:$LINENO: checking for va_copy" >&5 echo $ECHO_N "checking for va_copy... $ECHO_C" >&6 if test "${ac_cv_HAVE_VA_COPY+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include va_list ap1,ap2; int main () { va_copy(ap1,ap2); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_HAVE_VA_COPY=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_HAVE_VA_COPY=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_HAVE_VA_COPY" >&5 echo "${ECHO_T}$ac_cv_HAVE_VA_COPY" >&6 if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then cat >>confdefs.h <<\_ACEOF #define HAVE_VA_COPY 1 _ACEOF else echo "$as_me:$LINENO: checking for __va_copy" >&5 echo $ECHO_N "checking for __va_copy... $ECHO_C" >&6 if test "${ac_cv_HAVE___VA_COPY+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include va_list ap1,ap2; int main () { __va_copy(ap1,ap2); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_HAVE___VA_COPY=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_HAVE___VA_COPY=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_HAVE___VA_COPY" >&5 echo "${ECHO_T}$ac_cv_HAVE___VA_COPY" >&6 if test x"$ac_cv_HAVE___VA_COPY" = x"yes"; then cat >>confdefs.h <<\_ACEOF #define HAVE___VA_COPY 1 _ACEOF fi fi echo "$as_me:$LINENO: checking for vsnprintf" >&5 echo $ECHO_N "checking for vsnprintf... $ECHO_C" >&6 if test "${ac_cv_func_vsnprintf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define vsnprintf to an innocuous variant, in case declares vsnprintf. For example, HP-UX 11i declares gettimeofday. */ #define vsnprintf innocuous_vsnprintf /* System header to define __stub macros and hopefully few prototypes, which can conflict with char vsnprintf (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef vsnprintf /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char vsnprintf (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_vsnprintf) || defined (__stub___vsnprintf) choke me #else char (*f) () = vsnprintf; #endif #ifdef __cplusplus } #endif int main () { return f != vsnprintf; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_vsnprintf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_vsnprintf=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_vsnprintf" >&5 echo "${ECHO_T}$ac_cv_func_vsnprintf" >&6 if test $ac_cv_func_vsnprintf = yes; then : else SNPRINTF_O=./snprintf.o fi echo "$as_me:$LINENO: checking for snprintf" >&5 echo $ECHO_N "checking for snprintf... $ECHO_C" >&6 if test "${ac_cv_func_snprintf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define snprintf to an innocuous variant, in case declares snprintf. For example, HP-UX 11i declares gettimeofday. */ #define snprintf innocuous_snprintf /* System header to define __stub macros and hopefully few prototypes, which can conflict with char snprintf (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef snprintf /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char snprintf (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_snprintf) || defined (__stub___snprintf) choke me #else char (*f) () = snprintf; #endif #ifdef __cplusplus } #endif int main () { return f != snprintf; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_snprintf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_snprintf=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_snprintf" >&5 echo "${ECHO_T}$ac_cv_func_snprintf" >&6 if test $ac_cv_func_snprintf = yes; then : else SNPRINTF_O=./snprintf.o fi echo "$as_me:$LINENO: checking for asprintf" >&5 echo $ECHO_N "checking for asprintf... $ECHO_C" >&6 if test "${ac_cv_func_asprintf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define asprintf to an innocuous variant, in case declares asprintf. For example, HP-UX 11i declares gettimeofday. */ #define asprintf innocuous_asprintf /* System header to define __stub macros and hopefully few prototypes, which can conflict with char asprintf (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef asprintf /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char asprintf (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_asprintf) || defined (__stub___asprintf) choke me #else char (*f) () = asprintf; #endif #ifdef __cplusplus } #endif int main () { return f != asprintf; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_asprintf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_asprintf=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_asprintf" >&5 echo "${ECHO_T}$ac_cv_func_asprintf" >&6 if test $ac_cv_func_asprintf = yes; then : else SNPRINTF_O=./snprintf.o fi echo "$as_me:$LINENO: checking for vasprintf" >&5 echo $ECHO_N "checking for vasprintf... $ECHO_C" >&6 if test "${ac_cv_func_vasprintf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define vasprintf to an innocuous variant, in case declares vasprintf. For example, HP-UX 11i declares gettimeofday. */ #define vasprintf innocuous_vasprintf /* System header to define __stub macros and hopefully few prototypes, which can conflict with char vasprintf (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef vasprintf /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char vasprintf (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_vasprintf) || defined (__stub___vasprintf) choke me #else char (*f) () = vasprintf; #endif #ifdef __cplusplus } #endif int main () { return f != vasprintf; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_vasprintf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_vasprintf=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_vasprintf" >&5 echo "${ECHO_T}$ac_cv_func_vasprintf" >&6 if test $ac_cv_func_vasprintf = yes; then : else SNPRINTF_O=./snprintf.o fi echo "$as_me:$LINENO: checking for C99 vsnprintf" >&5 echo $ECHO_N "checking for C99 vsnprintf... $ECHO_C" >&6 if test "${ac_cv_HAVE_C99_VSNPRINTF+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then ac_cv_HAVE_C99_VSNPRINTF=cross else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include void foo(const char *format, ...) { va_list ap; int len; char buf[5]; va_start(ap, format); len = vsnprintf(buf, 0, format, ap); va_end(ap); if (len != 5) exit(1); va_start(ap, format); len = vsnprintf(0, 0, format, ap); va_end(ap); if (len != 5) exit(1); if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1); exit(0); } main() { foo("hello"); } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_HAVE_C99_VSNPRINTF=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_HAVE_C99_VSNPRINTF=no fi rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi echo "$as_me:$LINENO: result: $ac_cv_HAVE_C99_VSNPRINTF" >&5 echo "${ECHO_T}$ac_cv_HAVE_C99_VSNPRINTF" >&6 if test x"$ac_cv_HAVE_C99_VSNPRINTF" = x"yes"; then cat >>confdefs.h <<\_ACEOF #define HAVE_C99_VSNPRINTF 1 _ACEOF fi for ac_func in getopt_long do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else char (*f) () = $ac_func; #endif #ifdef __cplusplus } #endif int main () { return f != $ac_func; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else echo "$as_me:$LINENO: checking for getopt_long in -liberty" >&5 echo $ECHO_N "checking for getopt_long in -liberty... $ECHO_C" >&6 if test "${ac_cv_lib_iberty_getopt_long+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-liberty $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char getopt_long (); int main () { getopt_long (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_iberty_getopt_long=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_iberty_getopt_long=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_iberty_getopt_long" >&5 echo "${ECHO_T}$ac_cv_lib_iberty_getopt_long" >&6 if test $ac_cv_lib_iberty_getopt_long = yes; then OTHERLIBS="$OTHERLIBS -liberty" fi fi done echo "$as_me:$LINENO: checking for main in -lnsl" >&5 echo $ECHO_N "checking for main in -lnsl... $ECHO_C" >&6 if test "${ac_cv_lib_nsl_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnsl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_nsl_main=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_nsl_main=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_main" >&5 echo "${ECHO_T}$ac_cv_lib_nsl_main" >&6 if test $ac_cv_lib_nsl_main = yes; then SOCKETLIBS="$SOCKETLIBS -lnsl" fi echo "$as_me:$LINENO: checking for socket in -lsocket" >&5 echo $ECHO_N "checking for socket in -lsocket... $ECHO_C" >&6 if test "${ac_cv_lib_socket_socket+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char socket (); int main () { socket (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_socket_socket=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_socket_socket=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5 echo "${ECHO_T}$ac_cv_lib_socket_socket" >&6 if test $ac_cv_lib_socket_socket = yes; then SOCKETLIBS="$SOCKETLIBS -lsocket" fi echo "$as_me:$LINENO: checking for main in -lwrap" >&5 echo $ECHO_N "checking for main in -lwrap... $ECHO_C" >&6 if test "${ac_cv_lib_wrap_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lwrap $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_wrap_main=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_wrap_main=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_wrap_main" >&5 echo "${ECHO_T}$ac_cv_lib_wrap_main" >&6 if test $ac_cv_lib_wrap_main = yes; then LIBWRAPLIBS="$LIBWRAPLIBS -lwrap" cat >>confdefs.h <<\_ACEOF #define HAVE_LIBWRAP 1 _ACEOF fi for ac_func in strdup strstr strtoul initgroups closesocket do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else char (*f) () = $ac_func; #endif #ifdef __cplusplus } #endif int main () { return f != $ac_func; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done echo "$as_me:$LINENO: checking for socklen_t" >&5 echo $ECHO_N "checking for socklen_t... $ECHO_C" >&6 if test "${ac_cv_type_socklen_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { if ((socklen_t *) 0) return 0; if (sizeof (socklen_t)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_socklen_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_socklen_t=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_socklen_t" >&5 echo "${ECHO_T}$ac_cv_type_socklen_t" >&6 if test $ac_cv_type_socklen_t = yes; then : else echo "$as_me:$LINENO: checking for socklen_t equivalent" >&5 echo $ECHO_N "checking for socklen_t equivalent... $ECHO_C" >&6 if test "${curl_cv_socklen_t_equiv+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Systems have either "struct sockaddr *" or # "void *" as the second argument to getpeername curl_cv_socklen_t_equiv= for arg2 in "struct sockaddr" void; do for t in int size_t unsigned long "unsigned long"; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef HAVE_SYS_TYPES_H #include #endif #ifdef HAVE_SYS_SOCKET_H #include #endif int getpeername (int, $arg2 *, $t *); int main () { $t len; getpeername(0,0,&len); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then curl_cv_socklen_t_equiv="$t" break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done done if test "x$curl_cv_socklen_t_equiv" = x; then { { echo "$as_me:$LINENO: error: Cannot find a type to use in place of socklen_t" >&5 echo "$as_me: error: Cannot find a type to use in place of socklen_t" >&2;} { (exit 1); exit 1; }; } fi fi echo "$as_me:$LINENO: result: $curl_cv_socklen_t_equiv" >&5 echo "${ECHO_T}$curl_cv_socklen_t_equiv" >&6 cat >>confdefs.h <<_ACEOF #define socklen_t $curl_cv_socklen_t_equiv _ACEOF fi echo "$as_me:$LINENO: checking for type of socket size" >&5 echo $ECHO_N "checking for type of socket size... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include int main () { int a = send(1, (const void *)0, (size_t *) 0, (int *) 0); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cat >>confdefs.h <<\_ACEOF #define SOCKET_SIZE_TYPE size_t _ACEOF echo "$as_me:$LINENO: result: size_t" >&5 echo "${ECHO_T}size_t" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >>confdefs.h <<\_ACEOF #define SOCKET_SIZE_TYPE int _ACEOF echo "$as_me:$LINENO: result: int" >&5 echo "${ECHO_T}int" >&6 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext #AC_CHECK_TYPE(socklen_t,int, # AC_DEFINE(socklen_t,int, # Define to `int' if does not define.),[ # #ifdef HAVE_SYS_TYPES_H # #include # #endif # #ifdef HAVE_SYS_SOCKET_H # #include # #endif # ]) # Check whether --enable-ssl or --disable-ssl was given. if test "${enable_ssl+set}" = set; then enableval="$enable_ssl" if test x$enableval = xyes; then check_for_ssl=yes else check_for_ssl=no fi else check_for_ssl=yes fi; ssl_dir= ssl_inc_dir= ssl_lib_dir= # Check whether --with-ssl or --without-ssl was given. if test "${with_ssl+set}" = set; then withval="$with_ssl" ssl_dir=$withval fi; # Check whether --with-ssl-inc or --without-ssl-inc was given. if test "${with_ssl_inc+set}" = set; then withval="$with_ssl_inc" ssl_inc_dir=$withval fi; # Check whether --with-ssl-lib or --without-ssl-lib was given. if test "${with_ssl_lib+set}" = set; then withval="$with_ssl_lib" ssl_lib_dir=$withval fi; # Check whether --with-kerberos-inc or --without-kerberos-inc was given. if test "${with_kerberos_inc+set}" = set; then withval="$with_kerberos_inc" kerberos_inc_dir=$withval fi; if test x$check_for_ssl = xyes; then echo "$as_me:$LINENO: checking for SSL headers" >&5 echo $ECHO_N "checking for SSL headers... $ECHO_C" >&6 found_ssl=no for dir in $ssl_inc_dir $ssl_dir /usr/local/openssl /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /usr /usr/freeware/lib/openssl /usr/sfw/include; do ssldir="$dir" if test -f "$dir/include/openssl/ssl.h"; then found_ssl=yes CFLAGS="$CFLAGS -I$dir/include/openssl -I$ssldir/include" sslincdir="$dir/include/openssl" break fi if test -f "$dir/include/ssl.h"; then found_ssl=yes CFLAGS="$CFLAGS -I$dir/include" sslincdir="$dir/include" break fi if test -f "$dir/ssl.h"; then found_ssl=yes CFLAGS="$CFLAGS -I$dir" sslincdir="$dir" ssldir="$dir/.." break fi if test -f "$dir/openssl/ssl.h"; then found_ssl=yes CFLAGS="$CFLAGS -I$dir/openssl" sslincdir="$dir/openssl" ssldir="$dir/.." break fi done if test x_$found_ssl != x_yes; then { { echo "$as_me:$LINENO: error: Cannot find ssl headers" >&5 echo "$as_me: error: Cannot find ssl headers" >&2;} { (exit 1); exit 1; }; } else printf "SSL headers found in $ssldir\n"; echo "$as_me:$LINENO: checking for SSL libraries" >&5 echo $ECHO_N "checking for SSL libraries... $ECHO_C" >&6 found_ssl=no for dir in $ssl_lib_dir $ssl_dir /usr/lib64 /usr/lib /usr/local/lib /usr/lib/ssl /usr/ssl/lib /usr/openssl/lib /usr/pkg/lib /usr/freeware/lib/openssl /usr/sfw/lib /opt/freeware/lib; do ssllibdir="$dir" if test "`uname -s`" = "Darwin" ; then soext="dylib" elif test "`uname -s`" = "HP-UX" ; then soext="sl" else soext="so" fi if test -f "$dir/libssl.$soext"; then found_ssl=yes break fi done if test x_$found_ssl != x_yes; then { { echo "$as_me:$LINENO: error: Cannot find ssl libraries" >&5 echo "$as_me: error: Cannot find ssl libraries" >&2;} { (exit 1); exit 1; }; } else printf "SSL libraries found in $ssllibdir\n"; LDFLAGS="$LDFLAGS -L$ssllibdir"; LIBS="$LIBS -lssl -lcrypto"; cat >>confdefs.h <<_ACEOF #define HAVE_SSL 1 _ACEOF echo "" echo "*** Generating DH Parameters for SSL/TLS ***" if test -f "$ssldir/sbin/openssl"; then sslbin=$ssldir/sbin/openssl else sslbin=$ssldir/bin/openssl fi # awk to strip off meta data at bottom of dhparam output $sslbin dhparam -C 512 | awk '/^-----/ {exit} {print}' > include/dh.h fi fi echo "$as_me:$LINENO: checking for Kerberos include files" >&5 echo $ECHO_N "checking for Kerberos include files... $ECHO_C" >&6 found_kerberos=no for dir in $kerberos_inc_dir /usr/kerberos/include; do kerbdir="$dir" if test -f "$dir/krb5.h"; then found_kerberos=yes CFLAGS="$CFLAGS -I$kerbdir" cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_H 1 _ACEOF break fi done if test x_$found_kerberos != x_yes; then printf "could not find include files\n"; else printf "found Kerberos include files in $kerbdir\n"; fi fi # Check whether --with-log_facility or --without-log_facility was given. if test "${with_log_facility+set}" = set; then withval="$with_log_facility" log_facility=$withval else log_facility=daemon fi; cat >>confdefs.h <<_ACEOF #define NRPE_LOG_FACILITY "$log_facility" _ACEOF # Check whether --with-nrpe_user or --without-nrpe_user was given. if test "${with_nrpe_user+set}" = set; then withval="$with_nrpe_user" nrpe_user=$withval else nrpe_user=nagios fi; # Check whether --with-nrpe_group or --without-nrpe_group was given. if test "${with_nrpe_group+set}" = set; then withval="$with_nrpe_group" nrpe_group=$withval else nrpe_group=nagios fi; # Check whether --with-nrpe_port or --without-nrpe_port was given. if test "${with_nrpe_port+set}" = set; then withval="$with_nrpe_port" nrpe_port=$withval else nrpe_port=5666 fi; NRPE_INSTALL_OPTS="-o $nrpe_user -g $nrpe_group" cat >>confdefs.h <<_ACEOF #define DEFAULT_SERVER_PORT $nrpe_port _ACEOF # Check whether --with-nagios_user or --without-nagios_user was given. if test "${with_nagios_user+set}" = set; then withval="$with_nagios_user" nagios_user=$withval else nagios_user=nagios fi; # Check whether --with-nagios_group or --without-nagios_group was given. if test "${with_nagios_group+set}" = set; then withval="$with_nagios_group" nagios_group=$withval else nagios_group=nagios fi; NAGIOS_INSTALL_OPTS="-o $nagios_user -g $nagios_group" # Determine target OS, version and architecture for package build macros if test "x$target_ver" = "x" ; then TARGET_VER=`uname -r` else TARGET_VER=$target_ver fi if test "x$target_os" = "x" ; then TARGET_OS=`uname -s` else TARGET_OS=$target_os fi if test "x$target_cpu" = "x" ; then TARGET_ARCH=`uname -p` else TARGET_ARCH=$target_cpu fi TARGET_PLATFORM="" if test "x$TARGET_OS" = "xSunOS" ; then if test "x$TARGET_VER" = "x5.10" ; then TARGET_PLATFORM="sol10" fi fi # Check whether --enable-command-args or --disable-command-args was given. if test "${enable_command_args+set}" = set; then enableval="$enable_command_args" cat >>confdefs.h <<_ACEOF #define ENABLE_COMMAND_ARGUMENTS 1 _ACEOF fi; # Check whether --enable-bash-command-substitution or --disable-bash-command-substitution was given. if test "${enable_bash_command_substitution+set}" = set; then enableval="$enable_bash_command_substitution" cat >>confdefs.h <<_ACEOF #define ENABLE_BASH_COMMAND_SUBSTITUTION 1 _ACEOF fi; # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_PERL+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $PERL in [\\/]* | ?:[\\/]*) ac_cv_path_PERL="$PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done ;; esac fi PERL=$ac_cv_path_PERL if test -n "$PERL"; then echo "$as_me:$LINENO: result: $PERL" >&5 echo "${ECHO_T}$PERL" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; s/^[^=]*=[ ]*$//; }' fi DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | sed 's/\$U\././;s/\.o$//;s/\.obj$//'` # 2. Add them. ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH exec 6>&1 # Open the log real soon, to keep \$[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. Logging --version etc. is OK. exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX } >&5 cat >&5 <<_CSEOF This file was extended by nrpe $as_me 2.15, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ _CSEOF echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 echo >&5 _ACEOF # Files that config.status was made for. if test -n "$ac_config_files"; then echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS fi if test -n "$ac_config_headers"; then echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS fi if test -n "$ac_config_links"; then echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS fi if test -n "$ac_config_commands"; then echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS fi cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ nrpe config.status 2.15 configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2003 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir INSTALL="$INSTALL" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "x$1" : 'x\([^=]*\)='` ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` ac_shift=: ;; -*) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; *) # This is not an option, so the user has probably given explicit # arguments. ac_option=$1 ac_need_defaults=false;; esac case $ac_option in # Handling of the options. _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --vers* | -V ) echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header { { echo "$as_me:$LINENO: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_config_target in $ac_config_targets do case "$ac_config_target" in # Handling of arguments. "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; "subst" ) CONFIG_FILES="$CONFIG_FILES subst" ;; "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "package/solaris/Makefile" ) CONFIG_FILES="$CONFIG_FILES package/solaris/Makefile" ;; "init-script" ) CONFIG_FILES="$CONFIG_FILES init-script" ;; "init-script.debian" ) CONFIG_FILES="$CONFIG_FILES init-script.debian" ;; "init-script.suse" ) CONFIG_FILES="$CONFIG_FILES init-script.suse" ;; "nrpe.spec" ) CONFIG_FILES="$CONFIG_FILES nrpe.spec" ;; "sample-config/nrpe.cfg" ) CONFIG_FILES="$CONFIG_FILES sample-config/nrpe.cfg" ;; "sample-config/nrpe.xinetd" ) CONFIG_FILES="$CONFIG_FILES sample-config/nrpe.xinetd" ;; "include/config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/config.h" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason to put it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Create a temporary directory, and hook for its removal unless debugging. $debug || { trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./confstat$$-$RANDOM (umask 077 && mkdir $tmp) } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "\$CONFIG_FILES"; then # Protect against being on the right side of a sed subst in config.status. sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF s,@SHELL@,$SHELL,;t t s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t s,@exec_prefix@,$exec_prefix,;t t s,@prefix@,$prefix,;t t s,@program_transform_name@,$program_transform_name,;t t s,@bindir@,$bindir,;t t s,@sbindir@,$sbindir,;t t s,@libexecdir@,$libexecdir,;t t s,@datadir@,$datadir,;t t s,@sysconfdir@,$sysconfdir,;t t s,@sharedstatedir@,$sharedstatedir,;t t s,@localstatedir@,$localstatedir,;t t s,@libdir@,$libdir,;t t s,@includedir@,$includedir,;t t s,@oldincludedir@,$oldincludedir,;t t s,@infodir@,$infodir,;t t s,@mandir@,$mandir,;t t s,@build_alias@,$build_alias,;t t s,@host_alias@,$host_alias,;t t s,@target_alias@,$target_alias,;t t s,@DEFS@,$DEFS,;t t s,@ECHO_C@,$ECHO_C,;t t s,@ECHO_N@,$ECHO_N,;t t s,@ECHO_T@,$ECHO_T,;t t s,@LIBS@,$LIBS,;t t s,@PKG_NAME@,$PKG_NAME,;t t s,@PKG_VERSION@,$PKG_VERSION,;t t s,@PKG_HOME_URL@,$PKG_HOME_URL,;t t s,@PKG_REL_DATE@,$PKG_REL_DATE,;t t s,@RPM_RELEASE@,$RPM_RELEASE,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t s,@INSTALL@,$INSTALL,;t t s,@build@,$build,;t t s,@build_cpu@,$build_cpu,;t t s,@build_vendor@,$build_vendor,;t t s,@build_os@,$build_os,;t t s,@host@,$host,;t t s,@host_cpu@,$host_cpu,;t t s,@host_vendor@,$host_vendor,;t t s,@host_os@,$host_os,;t t s,@CC@,$CC,;t t s,@CFLAGS@,$CFLAGS,;t t s,@LDFLAGS@,$LDFLAGS,;t t s,@CPPFLAGS@,$CPPFLAGS,;t t s,@ac_ct_CC@,$ac_ct_CC,;t t s,@EXEEXT@,$EXEEXT,;t t s,@OBJEXT@,$OBJEXT,;t t s,@SET_MAKE@,$SET_MAKE,;t t s,@CPP@,$CPP,;t t s,@EGREP@,$EGREP,;t t s,@SNPRINTF_O@,$SNPRINTF_O,;t t s,@OTHERLIBS@,$OTHERLIBS,;t t s,@SOCKETLIBS@,$SOCKETLIBS,;t t s,@LIBWRAPLIBS@,$LIBWRAPLIBS,;t t s,@HAVE_SSL@,$HAVE_SSL,;t t s,@log_facility@,$log_facility,;t t s,@nrpe_user@,$nrpe_user,;t t s,@nrpe_group@,$nrpe_group,;t t s,@NRPE_INSTALL_OPTS@,$NRPE_INSTALL_OPTS,;t t s,@nrpe_port@,$nrpe_port,;t t s,@nagios_user@,$nagios_user,;t t s,@nagios_group@,$nagios_group,;t t s,@NAGIOS_INSTALL_OPTS@,$NAGIOS_INSTALL_OPTS,;t t s,@TARGET_VER@,$TARGET_VER,;t t s,@TARGET_OS@,$TARGET_OS,;t t s,@TARGET_ARCH@,$TARGET_ARCH,;t t s,@TARGET_PLATFORM@,$TARGET_PLATFORM,;t t s,@PERL@,$PERL,;t t s,@LIBOBJS@,$LIBOBJS,;t t s,@LTLIBOBJS@,$LTLIBOBJS,;t t CEOF _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. ac_max_sed_lines=48 ac_sed_frag=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_lines # Line after last line for current file. ac_more_lines=: ac_sed_cmds= while $ac_more_lines; do if test $ac_beg -gt 1; then sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag else sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag fi if test ! -s $tmp/subs.frag; then ac_more_lines=false else # The purpose of the label and of the branching condition is to # speed up the sed processing (if there are no `@' at all, there # is no need to browse any of the substitutions). # These are the two extra sed commands mentioned above. (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end ac_end=`expr $ac_end + $ac_max_sed_lines` fi done if test -z "$ac_sed_cmds"; then ac_sed_cmds=cat fi fi # test -n "$CONFIG_FILES" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac if test x"$ac_file" != x-; then { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ if test x"$ac_file" = x-; then configure_input= else configure_input="$ac_file. " fi configure_input=$configure_input"Generated from `echo $ac_file_in | sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo "$f";; *) # Relative if test -f "$f"; then # Build tree echo "$f" elif test -f "$srcdir/$f"; then # Source tree echo "$srcdir/$f" else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s,@configure_input@,$configure_input,;t t s,@srcdir@,$ac_srcdir,;t t s,@abs_srcdir@,$ac_abs_srcdir,;t t s,@top_srcdir@,$ac_top_srcdir,;t t s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t s,@builddir@,$ac_builddir,;t t s,@abs_builddir@,$ac_abs_builddir,;t t s,@top_builddir@,$ac_top_builddir,;t t s,@abs_top_builddir@,$ac_abs_top_builddir,;t t s,@INSTALL@,$ac_INSTALL,;t t " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out rm -f $tmp/stdin if test x"$ac_file" != x-; then mv $tmp/out $ac_file else cat $tmp/out rm -f $tmp/out fi done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_HEADER section. # # These sed commands are passed to sed as "A NAME B NAME C VALUE D", where # NAME is the cpp macro being defined and VALUE is the value it is being given. # # ac_d sets the value in "#define NAME VALUE" lines. ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' ac_dB='[ ].*$,\1#\2' ac_dC=' ' ac_dD=',;t' # ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ac_uB='$,\1#\2define\3' ac_uC=' ' ac_uD=',;t' for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } # Do quote $f, to prevent DOS paths from being IFS'd. echo "$f";; *) # Relative if test -f "$f"; then # Build tree echo "$f" elif test -f "$srcdir/$f"; then # Source tree echo "$srcdir/$f" else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } # Remove the trailing spaces. sed 's/[ ]*$//' $ac_file_inputs >$tmp/in _ACEOF # Transform confdefs.h into two sed scripts, `conftest.defines' and # `conftest.undefs', that substitutes the proper values into # config.h.in to produce config.h. The first handles `#define' # templates, and the second `#undef' templates. # And first: Protect against being on the right side of a sed subst in # config.status. Protect against being in an unquoted here document # in config.status. rm -f conftest.defines conftest.undefs # Using a here document instead of a string reduces the quoting nightmare. # Putting comments in sed scripts is not portable. # # `end' is used to avoid that the second main sed command (meant for # 0-ary CPP macros) applies to n-ary macro definitions. # See the Autoconf documentation for `clear'. cat >confdef2sed.sed <<\_ACEOF s/[\\&,]/\\&/g s,[\\$`],\\&,g t clear : clear s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp t end s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp : end _ACEOF # If some macros were called several times there might be several times # the same #defines, which is useless. Nevertheless, we may not want to # sort them, since we want the *last* AC-DEFINE to be honored. uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs rm -f confdef2sed.sed # This sed command replaces #undef with comments. This is necessary, for # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. cat >>conftest.undefs <<\_ACEOF s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, _ACEOF # Break up conftest.defines because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS echo ' :' >>$CONFIG_STATUS rm -f conftest.tail while grep . conftest.defines >/dev/null do # Write a limited-size here document to $tmp/defines.sed. echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#define' lines. echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS echo 'CEOF sed -f $tmp/defines.sed $tmp/in >$tmp/out rm -f $tmp/in mv $tmp/out $tmp/in ' >>$CONFIG_STATUS sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail rm -f conftest.defines mv conftest.tail conftest.defines done rm -f conftest.defines echo ' fi # grep' >>$CONFIG_STATUS echo >>$CONFIG_STATUS # Break up conftest.undefs because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #undef templates' >>$CONFIG_STATUS rm -f conftest.tail while grep . conftest.undefs >/dev/null do # Write a limited-size here document to $tmp/undefs.sed. echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#undef' echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS echo 'CEOF sed -f $tmp/undefs.sed $tmp/in >$tmp/out rm -f $tmp/in mv $tmp/out $tmp/in ' >>$CONFIG_STATUS sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail rm -f conftest.undefs mv conftest.tail conftest.undefs done rm -f conftest.undefs cat >>$CONFIG_STATUS <<\_ACEOF # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ if test x"$ac_file" = x-; then echo "/* Generated by configure. */" >$tmp/config.h else echo "/* $ac_file. Generated by configure. */" >$tmp/config.h fi cat $tmp/in >>$tmp/config.h rm -f $tmp/in if test x"$ac_file" != x-; then if diff $ac_file $tmp/config.h >/dev/null 2>&1; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } rm -f $ac_file mv $tmp/config.h $ac_file fi else cat $tmp/config.h rm -f $tmp/config.h fi done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi perl subst init-script perl subst init-script.debian perl subst init-script.suse perl subst sample-config/nrpe.cfg perl subst sample-config/nrpe.xinetd echo "" echo "" echo "$as_me:$LINENO: result: *** Configuration summary for $PKG_NAME $PKG_VERSION $PKG_REL_DATE ***:" >&5 echo "${ECHO_T}*** Configuration summary for $PKG_NAME $PKG_VERSION $PKG_REL_DATE ***:" >&6 echo "" echo " General Options:" echo " -------------------------" echo "$as_me:$LINENO: result: NRPE port: $nrpe_port" >&5 echo "${ECHO_T} NRPE port: $nrpe_port" >&6 echo "$as_me:$LINENO: result: NRPE user: $nrpe_user" >&5 echo "${ECHO_T} NRPE user: $nrpe_user" >&6 echo "$as_me:$LINENO: result: NRPE group: $nrpe_group" >&5 echo "${ECHO_T} NRPE group: $nrpe_group" >&6 echo "$as_me:$LINENO: result: Nagios user: $nagios_user" >&5 echo "${ECHO_T} Nagios user: $nagios_user" >&6 echo "$as_me:$LINENO: result: Nagios group: $nagios_group" >&5 echo "${ECHO_T} Nagios group: $nagios_group" >&6 echo "" echo "" echo "Review the options above for accuracy. If they look okay," echo "type 'make all' to compile the NRPE daemon and client." echo "" nrpe-2.15/configure.in000066400000000000000000000335231221237212100147150ustar00rootroot00000000000000dnl Process this -*-m4-*- file with autoconf to produce a configure script. dnl Disable caching define([AC_CACHE_LOAD],) define([AC_CACHE_SAVE],) AC_INIT([nrpe],[2.15],[nagios-users@lists.sourceforge.net],[nrpe],[http://www.nagios.org]) AC_CONFIG_SRCDIR([src/nrpe.c]) AC_CONFIG_HEADERS([include/config.h]) AC_CONFIG_FILES([Makefile subst src/Makefile package/solaris/Makefile init-script init-script.debian init-script.suse nrpe.spec sample-config/nrpe.cfg sample-config/nrpe.xinetd]) AC_PREFIX_DEFAULT(/usr/local/nagios) PKG_NAME=nrpe PKG_VERSION="2.15" PKG_HOME_URL="http://www.nagios.org/" PKG_REL_DATE="09-06-2013" RPM_RELEASE=1 AC_SUBST(PKG_NAME) AC_SUBST(PKG_VERSION) AC_SUBST(PKG_HOME_URL) AC_SUBST(PKG_REL_DATE) AC_SUBST(RPM_RELEASE) dnl Figure out how to invoke "install" and what install options to use. AC_PROG_INSTALL AC_SUBST(INSTALL) dnl What OS are we running? AC_CANONICAL_HOST dnl Checks for programs. AC_PROG_CC AC_PROG_MAKE_SET dnl Checks for header files. AC_HEADER_STDC AC_HEADER_TIME AC_HEADER_SYS_WAIT AC_CHECK_HEADERS(ctype.h dirent.h errno.h fcntl.h getopt.h grp.h inttypes.h netdb.h pwd.h signal.h stdint.h strings.h string.h syslog.h tcpd.h unistd.h arpa/inet.h netinet/in.h socket.h sys/types.h sys/time.h sys/resource.h sys/wait.h sys/socket.h sys/stat.h) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_STRUCT_TM AC_TYPE_MODE_T AC_TYPE_PID_T AC_TYPE_SIZE_T AC_TYPE_SIGNAL AC_TYPE_GETGROUPS dnl Check lengths for later tests of u_int32_t and int32_t AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(short) AC_CHECK_SIZEOF(long) dnl Define u_int32_t if we don't have it already (Solaris, etc.) AC_CHECK_TYPE(uint32_t,unsigned int) AC_CHECK_TYPE(u_int32_t,unsigned int) if test "$ac_cv_type_u_int32_t" = no ; then if test "$ac_cv_type_u_int32_t" = yes ; then AC_DEFINE(U_INT32_T_IS_UINT32_T,[1],[u_int32_t is uint32_t]) else if test "$ac_cv_sizeof_int" = 4 ; then AC_DEFINE(U_INT32_T_IS_UINT,[1],[u_int32_t is uint]) else if test "$ac_cv_sizeof_long" = 4 ; then AC_DEFINE(U_INT32_T_IS_ULONG,[1],[u_int32_t is ulong]) else if test "$ac_cv_sizeof_short" = 4 ; then AC_DEFINE(U_INT32_T_IS_USHORT,[1],[u_int32_t is ushort]) fi fi fi fi fi dnl Define int32_t if we don't have it already AC_CHECK_TYPE(int32_t,int) if test "$ac_cv_type_int32_t" = no ; then if test "$ac_cv_sizeof_int" = 4 ; then AC_DEFINE(INT32_T_IS_UINT,[1],[int32_t is uint]) else if test "$ac_cv_sizeof_long" = 4 ; then AC_DEFINE(INT32_T_IS_ULONG,[1],[int32_t is ulong]) else if test "$ac_cv_sizeof_short" = 4 ; then AC_DEFINE(INT32_T_IS_USHORT,[1],[int32_t is ushort]) fi fi fi fi dnl Check for asprintf() and friends... AC_CACHE_CHECK([for va_copy],ac_cv_HAVE_VA_COPY,[ AC_TRY_LINK([#include va_list ap1,ap2;], [va_copy(ap1,ap2);], ac_cv_HAVE_VA_COPY=yes, ac_cv_HAVE_VA_COPY=no)]) if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then AC_DEFINE(HAVE_VA_COPY,1,[Whether va_copy() is available]) else AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE___VA_COPY,[ AC_TRY_LINK([#include va_list ap1,ap2;], [__va_copy(ap1,ap2);], ac_cv_HAVE___VA_COPY=yes, ac_cv_HAVE___VA_COPY=no)]) if test x"$ac_cv_HAVE___VA_COPY" = x"yes"; then AC_DEFINE(HAVE___VA_COPY,1,[Whether __va_copy() is available]) fi fi AC_CHECK_FUNC(vsnprintf,,SNPRINTF_O=./snprintf.o) AC_CHECK_FUNC(snprintf,,SNPRINTF_O=./snprintf.o) AC_CHECK_FUNC(asprintf,,SNPRINTF_O=./snprintf.o) AC_CHECK_FUNC(vasprintf,,SNPRINTF_O=./snprintf.o) AC_CACHE_CHECK([for C99 vsnprintf],ac_cv_HAVE_C99_VSNPRINTF,[ AC_TRY_RUN([ #include #include void foo(const char *format, ...) { va_list ap; int len; char buf[5]; va_start(ap, format); len = vsnprintf(buf, 0, format, ap); va_end(ap); if (len != 5) exit(1); va_start(ap, format); len = vsnprintf(0, 0, format, ap); va_end(ap); if (len != 5) exit(1); if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1); exit(0); } main() { foo("hello"); } ], ac_cv_HAVE_C99_VSNPRINTF=yes,ac_cv_HAVE_C99_VSNPRINTF=no,ac_cv_HAVE_C99_VSNPRINTF=cross)]) if test x"$ac_cv_HAVE_C99_VSNPRINTF" = x"yes"; then AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Define if system has C99 compatible vsnprintf]) fi dnl AC_CHECK_FUNC(snprintf,AC_DEFINE(HAVE_SNPRINTF),SNPRINTF_O=./snprintf.o) AC_SUBST(SNPRINTF_O) dnl Check for getopt_long (Solaris) AC_CHECK_FUNCS([getopt_long],,AC_CHECK_LIB([iberty],[getopt_long],OTHERLIBS="$OTHERLIBS -liberty")) AC_SUBST(OTHERLIBS) dnl Checks for library functions. AC_CHECK_LIB(nsl,main,SOCKETLIBS="$SOCKETLIBS -lnsl") AC_CHECK_LIB(socket,socket,SOCKETLIBS="$SOCKETLIBS -lsocket") AC_SUBST(SOCKETLIBS) AC_CHECK_LIB(wrap,main,[ LIBWRAPLIBS="$LIBWRAPLIBS -lwrap" AC_DEFINE(HAVE_LIBWRAP,[1],[Have the TCP wrappers library]) ]) AC_SUBST(LIBWRAPLIBS) AC_CHECK_FUNCS(strdup strstr strtoul initgroups closesocket) dnl socklen_t check - from curl AC_CHECK_TYPE([socklen_t], ,[ AC_MSG_CHECKING([for socklen_t equivalent]) AC_CACHE_VAL([curl_cv_socklen_t_equiv], [ # Systems have either "struct sockaddr *" or # "void *" as the second argument to getpeername curl_cv_socklen_t_equiv= for arg2 in "struct sockaddr" void; do for t in int size_t unsigned long "unsigned long"; do AC_TRY_COMPILE([ #ifdef HAVE_SYS_TYPES_H #include #endif #ifdef HAVE_SYS_SOCKET_H #include #endif int getpeername (int, $arg2 *, $t *); ],[ $t len; getpeername(0,0,&len); ],[ curl_cv_socklen_t_equiv="$t" break ]) done done if test "x$curl_cv_socklen_t_equiv" = x; then AC_MSG_ERROR([Cannot find a type to use in place of socklen_t]) fi ]) AC_MSG_RESULT($curl_cv_socklen_t_equiv) AC_DEFINE_UNQUOTED(socklen_t, $curl_cv_socklen_t_equiv, [type to use in place of socklen_t if not defined])], [#include #include ]) AC_MSG_CHECKING(for type of socket size) AC_TRY_COMPILE([#include #include #include ], [int a = send(1, (const void *)0, (size_t *) 0, (int *) 0);], [AC_DEFINE(SOCKET_SIZE_TYPE, size_t, [Socket Size Type]) AC_MSG_RESULT(size_t)], [AC_DEFINE(SOCKET_SIZE_TYPE, int, [Socket Size Type]) AC_MSG_RESULT(int)]) dnl Stolen from Python code: loewis@users.sourceforge.net #AC_CHECK_TYPE(socklen_t,int, # AC_DEFINE(socklen_t,int, # Define to `int' if does not define.),[ # #ifdef HAVE_SYS_TYPES_H # #include # #endif # #ifdef HAVE_SYS_SOCKET_H # #include # #endif # ]) dnl Does user want to check for SSL? AC_ARG_ENABLE([ssl], AS_HELP_STRING([--enable-ssl],[enables native SSL support]),[ if test x$enableval = xyes; then check_for_ssl=yes else check_for_ssl=no fi ],check_for_ssl=yes) dnl Optional SSL library and include paths ssl_dir= ssl_inc_dir= ssl_lib_dir= AC_ARG_WITH([ssl], AS_HELP_STRING([--with-ssl=DIR],[sets location of the SSL installation]), [ssl_dir=$withval]) AC_ARG_WITH([ssl-inc], AS_HELP_STRING([--with-ssl-inc=DIR], [sets location of the SSL include files]), [ ssl_inc_dir=$withval]) AC_ARG_WITH([ssl-lib], AS_HELP_STRING([--with-ssl-lib=DIR],[sets location of the SSL libraries]), [ssl_lib_dir=$withval]) AC_ARG_WITH([kerberos-inc], AS_HELP_STRING([--with-kerberos-inc=DIR], [sets location of the Kerberos include files]), [kerberos_inc_dir=$withval]) dnl Check for SSL support dnl Modified version of Mark Ethan Trostler's macro if test x$check_for_ssl = xyes; then AC_MSG_CHECKING(for SSL headers) found_ssl=no for dir in $ssl_inc_dir $ssl_dir /usr/local/openssl /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /usr /usr/freeware/lib/openssl /usr/sfw/include; do ssldir="$dir" if test -f "$dir/include/openssl/ssl.h"; then found_ssl=yes CFLAGS="$CFLAGS -I$dir/include/openssl -I$ssldir/include" sslincdir="$dir/include/openssl" break fi if test -f "$dir/include/ssl.h"; then found_ssl=yes CFLAGS="$CFLAGS -I$dir/include" sslincdir="$dir/include" break fi if test -f "$dir/ssl.h"; then found_ssl=yes CFLAGS="$CFLAGS -I$dir" sslincdir="$dir" ssldir="$dir/.." break fi if test -f "$dir/openssl/ssl.h"; then found_ssl=yes CFLAGS="$CFLAGS -I$dir/openssl" sslincdir="$dir/openssl" ssldir="$dir/.." break fi done if test x_$found_ssl != x_yes; then AC_MSG_ERROR(Cannot find ssl headers) else printf "SSL headers found in $ssldir\n"; dnl Now try and find SSL libraries AC_MSG_CHECKING(for SSL libraries) found_ssl=no for dir in $ssl_lib_dir $ssl_dir /usr/lib64 /usr/lib /usr/local/lib /usr/lib/ssl /usr/ssl/lib /usr/openssl/lib /usr/pkg/lib /usr/freeware/lib/openssl /usr/sfw/lib /opt/freeware/lib; do ssllibdir="$dir" if test "`uname -s`" = "Darwin" ; then soext="dylib" elif test "`uname -s`" = "HP-UX" ; then soext="sl" else soext="so" fi if test -f "$dir/libssl.$soext"; then found_ssl=yes break fi done if test x_$found_ssl != x_yes; then AC_MSG_ERROR(Cannot find ssl libraries) else printf "SSL libraries found in $ssllibdir\n"; LDFLAGS="$LDFLAGS -L$ssllibdir"; LIBS="$LIBS -lssl -lcrypto"; AC_DEFINE_UNQUOTED(HAVE_SSL,[1],[Have SSL support]) AC_SUBST(HAVE_SSL) dnl Generate DH parameters echo "" echo "*** Generating DH Parameters for SSL/TLS ***" if test -f "$ssldir/sbin/openssl"; then sslbin=$ssldir/sbin/openssl else sslbin=$ssldir/bin/openssl fi # awk to strip off meta data at bottom of dhparam output $sslbin dhparam -C 512 | awk '/^-----/ {exit} {print}' > include/dh.h fi fi dnl RedHat 8.0 and 9.0 include openssl compiled with kerberos, so we must include header file AC_MSG_CHECKING(for Kerberos include files) found_kerberos=no for dir in $kerberos_inc_dir /usr/kerberos/include; do kerbdir="$dir" if test -f "$dir/krb5.h"; then found_kerberos=yes CFLAGS="$CFLAGS -I$kerbdir" AC_DEFINE_UNQUOTED(HAVE_KRB5_H,[1],[Have the krb5.h header file]) dnl AC_CHECK_HEADERS(krb5.h) break fi done if test x_$found_kerberos != x_yes; then printf "could not find include files\n"; else printf "found Kerberos include files in $kerbdir\n"; fi fi AC_ARG_WITH([log_facility], AS_HELP_STRING([--with-log-facility=], [sets NRPE syslog facility]), [log_facility=$withval], [log_facility=daemon]) AC_SUBST(log_facility) AC_DEFINE_UNQUOTED(NRPE_LOG_FACILITY,["$log_facility"],[NRPE syslog facility]) AC_ARG_WITH([nrpe_user], AS_HELP_STRING([--with-nrpe-user=],[sets user name to run NRPE]), [nrpe_user=$withval], [nrpe_user=nagios]) AC_ARG_WITH([nrpe_group], AS_HELP_STRING([--with-nrpe-group=],[sets group name to run NRPE]), [nrpe_group=$withval], [nrpe_group=nagios]) AC_ARG_WITH([nrpe_port], AS_HELP_STRING([--with-nrpe-port=], [sets port number for NRPE to listen on]), [nrpe_port=$withval], [nrpe_port=5666]) AC_SUBST(nrpe_user) AC_SUBST(nrpe_group) NRPE_INSTALL_OPTS="-o $nrpe_user -g $nrpe_group" AC_SUBST(NRPE_INSTALL_OPTS) AC_SUBST(nrpe_port) AC_DEFINE_UNQUOTED(DEFAULT_SERVER_PORT,$nrpe_port,[Default port for NRPE daemon]) AC_ARG_WITH([nagios_user], AS_HELP_STRING([--with-nagios-user=], [sets user name for file permissions]), [nagios_user=$withval], [nagios_user=nagios]) AC_ARG_WITH([nagios_group], AS_HELP_STRING([--with-nagios-group=], [sets group name file permissions]), [nagios_group=$withval], [nagios_group=nagios]) AC_SUBST(nagios_user) AC_SUBST(nagios_group) NAGIOS_INSTALL_OPTS="-o $nagios_user -g $nagios_group" AC_SUBST(NAGIOS_INSTALL_OPTS) # Determine target OS, version and architecture for package build macros if test "x$target_ver" = "x" ; then TARGET_VER=`uname -r` else TARGET_VER=$target_ver fi AC_SUBST(TARGET_VER) if test "x$target_os" = "x" ; then TARGET_OS=`uname -s` else TARGET_OS=$target_os fi AC_SUBST(TARGET_OS) if test "x$target_cpu" = "x" ; then TARGET_ARCH=`uname -p` else TARGET_ARCH=$target_cpu fi AC_SUBST(TARGET_ARCH) TARGET_PLATFORM="" if test "x$TARGET_OS" = "xSunOS" ; then if test "x$TARGET_VER" = "x5.10" ; then TARGET_PLATFORM="sol10" fi fi AC_SUBST(TARGET_PLATFORM) AC_ARG_ENABLE([command-args], AS_HELP_STRING([--enable-command-args],[allows clients to specify command arguments. *** THIS IS A SECURITY RISK! *** Read the SECURITY file before using this option!]), AC_DEFINE_UNQUOTED(ENABLE_COMMAND_ARGUMENTS,[1],[Enable command-line arguments])) AC_ARG_ENABLE([bash-command-substitution], AS_HELP_STRING([--enable-bash-command-substitution],[allows clients to pass bash command substitutions of the form $(command). *** THIS IS A HIGH SECURITY RISK! *** Read the SECURITY file before using this option!]), AC_DEFINE_UNQUOTED(ENABLE_BASH_COMMAND_SUBSTITUTION,[1],[Enable bash command substitution])) AC_PATH_PROG(PERL,perl) AC_OUTPUT() perl subst init-script perl subst init-script.debian perl subst init-script.suse perl subst sample-config/nrpe.cfg perl subst sample-config/nrpe.xinetd dnl Review options echo "" echo "" AC_MSG_RESULT([*** Configuration summary for $PKG_NAME $PKG_VERSION $PKG_REL_DATE ***:]) echo "" echo " General Options:" echo " -------------------------" AC_MSG_RESULT([ NRPE port: $nrpe_port]) AC_MSG_RESULT([ NRPE user: $nrpe_user]) AC_MSG_RESULT([ NRPE group: $nrpe_group]) AC_MSG_RESULT([ Nagios user: $nagios_user]) AC_MSG_RESULT([ Nagios group: $nagios_group]) echo "" echo "" echo "Review the options above for accuracy. If they look okay," echo "type 'make all' to compile the NRPE daemon and client." echo "" nrpe-2.15/contrib/000077500000000000000000000000001221237212100140365ustar00rootroot00000000000000nrpe-2.15/contrib/README.nrpe_check_control000066400000000000000000000033751221237212100205660ustar00rootroot00000000000000NOTES: ------ The service definition below assumes you have a command called "check_tcp" already setup in your config files. The command definition below assumes that the $USER1$ macro is used to define the location of your Nagios plugins (i.e. "/usr/local/nagios/libexec") and that the nrpe_check_control service is located in that directory. SAMPLE CONFIG FILE SNIPPETS: ---------------------------- define service { host_name description NRPE ... event_handler nrpe_check_control check_command check_tcp!-p 5666 } define command { command_name nrpe_check_control command_line $USER1$/nrpe_check_control $SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$ "$HOSTNAME$" } ORIGINAL EMAIL SNIPPET: ----------------------- Date sent: Fri, 30 Mar 2001 18:51:48 -0500 From: adam.bowen@<> Subject: Event Handler To: [nagios@nagios.org] I am attaching the source code for an event handler I wrote to control checks using nrpe. I add the following check to all remote hosts using nrpe: I added this line to the commands.cfg file: When the NRPE service check listed above has 3 failed connection attempts, it will run the nrpe_check_control which will search the services file for all services for $HOSTNAME$ that use the check_nrpe. It will then request that all these services be disabled. When the NRPE check returns to the OK state, it will request that all services using check_nrpe be re-enabled. This will prevent unnecessary e-mail when there is a problem with the NRPE daemon. This does require that external commands be enabled. (See attached file: nrpe_check_control.c) I thought some other [Nagios] users might find this useful. Adam G. Bowen nrpe-2.15/contrib/nrpe_check_control.c000066400000000000000000000064271221237212100200540ustar00rootroot00000000000000#include #include #include #define MAX_CHARS 1024 #define SERVICE_COUNT 12 #define COMMAND_FILE "/usr/local/nagios/var/rw/nagios.cmd" #define SERVICES_FILE "/usr/local/nagios/etc/services.cfg" int main(int argc, char *argv[]) { char check_name[MAX_CHARS]; char ent_type[MAX_CHARS]; char input_buffer[MAX_CHARS]; char host_name[MAX_CHARS]; char service_name[MAX_CHARS]; char state[MAX_CHARS]; char state_type[MAX_CHARS]; char temp_input[MAX_CHARS]; char temp_string[MAX_CHARS]; char test_host[MAX_CHARS]; char *temp_var; FILE *command_fp; FILE *services_fp; int attempt; int i; time_t current_time; strcpy(state,argv[1]); strcpy(state_type,argv[2]); attempt=atoi(argv[3]); strcpy(host_name,argv[4]); if(strcmp(state,"OK") == 0) { services_fp=fopen(SERVICES_FILE,"r"); command_fp=fopen(COMMAND_FILE,"a"); while((fgets(input_buffer,MAX_CHARS-1,services_fp)) != NULL) { if(input_buffer[0]=='#' || input_buffer[0]=='\x0' || input_buffer[0]=='\n' || input_buffer[0]=='\r') { continue; } else { strcpy(temp_input,input_buffer); strcpy(temp_string,strtok(temp_input,"=")); strcpy(ent_type,strtok(temp_string,"[")); if(strcmp(ent_type,"service") == 0) { strcpy(test_host,strtok(NULL,"]")); if(strcmp(test_host,host_name) == 0) { temp_var=strtok(input_buffer,"="); strcpy(service_name,strtok(NULL,";")); for(i=1;i<=SERVICE_COUNT;i++) { temp_var=strtok(NULL,";"); } strcpy(check_name,strtok(temp_var,"!")); if(strcmp(check_name,"check_nrpe") == 0) { time(¤t_time); fprintf(command_fp,"[%lu] ENABLE_SVC_CHECK;%s;%s\n",current_time,host_name,service_name); } } } } } fclose(command_fp); fclose(services_fp); } else if(strcmp(state,"CRITICAL") == 0) { if(attempt == 3) { services_fp=fopen(SERVICES_FILE,"r"); command_fp=fopen(COMMAND_FILE,"a"); while((fgets(input_buffer,MAX_CHARS-1,services_fp)) != NULL) { if(input_buffer[0]=='#' || input_buffer[0]=='\x0' || input_buffer[0]=='\n' || input_buffer[0]=='\r') { continue; } else { strcpy(temp_input,input_buffer); strcpy(temp_string,strtok(temp_input,"=")); strcpy(ent_type,strtok(temp_string,"[")); if(strcmp(ent_type,"service") == 0) { strcpy(test_host,strtok(NULL,"]")); if(strcmp(test_host,host_name) == 0) { temp_var=strtok(input_buffer,"="); strcpy(service_name,strtok(NULL,";")); for(i=1;i<=SERVICE_COUNT;i++) { temp_var=strtok(NULL,";"); } strcpy(check_name,strtok(temp_var,"!")); if(strcmp(check_name,"check_nrpe") == 0) { time(¤t_time); fprintf(command_fp,"[%lu] DISABLE_SVC_CHECK;%s;%s\n",current_time,host_name,service_name); } } } } } fclose(command_fp); fclose(services_fp); } } return 0; } nrpe-2.15/docs/000077500000000000000000000000001221237212100133265ustar00rootroot00000000000000nrpe-2.15/docs/NRPE.odt000066400000000000000000003150311221237212100146050ustar00rootroot00000000000000PK¬‚C7^Æ2 ''mimetypeapplication/vnd.oasis.opendocument.textPK¬‚C7Configurations2/PK¬‚C7¹®ð@5@5-Pictures/1000000000000349000000CAE3767FBE.png‰PNG  IHDRIÊÿלüsRGB®ÎégAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<4¾IDATx^í]ÌÇyßõIÑi ¥iIVßÄ¢lGUKE²*KL#GÁr,Ú)m)ŽÍš– °ŽÉŠlœ¸.( ¥ ¸–hØ E䀅ŒEæ*-H€(H€¼è+êÒx¡KõO>è“ÉìžÝÙ³{öììü/λgv>þóÌÌoŸ™Ù½úÕW_}ã7®â@ضmÛáÇç'Éüã_üâó+%*S¹¶Ó”Úüþ÷¿ÿ«_ý*%$aJS`cc㪇ëãû?õà±gçƒ(à l»ñ½.\xgvÇÆí·~ê*æ¡€ÆìÙµÑÔ©ìó¨DJ1¬êáÕÏ_f»³§Ž¼sî@W`ã¶se» õm*æ¡@ál7J¤Ã* ¶ƒhQ ^ØnØî†ØP` Àv«P•8³V¶kP`¡°]Ö½™/DØ®Š¦˜é Àv ÀvØ d¬l—>ä²`»Œ{´BltÅÄo·FñI€í…"X9 Àv° à·ÃP c`»r…’&*ÛeÜ£%Ö1Á–V¿ÝÒÒq! Œ¦l7šÔ$”‹°l‡øí°ÈXØ.à Ÿ£)ÛeÜ£f%Å&„߮ت§à)ÛeTYdu`;ØðÛa(±°Ý8¸@*)ÛeÜ£edg™f¿]¦G¶‹R¶+ªº)lаl‡øí°ÈXØ.e°'LQ Àv÷hEYêZ ‹ßn-²“( tR¶ë$KP¶ƒíP¿6€+Û•+”±“°]Æ=Z§š&ð à·[B4.A‘€íFœä¦¯lÛ¡~;l2V¶›>jÑ€í2îÑF¶•“ÃoW`¥Säì€í²«22¼j`;ØðÛa(±°ÝªAø³S¶Ë¸GËÎÚ²Ë0~»ìªŒ ¨lW`¥Säf`;ØðÛa(±° ƒ‘°]Æ=Ö¼jðÛ­ZaâGþ Àvý5$†™)ÛÁv(€ß@Œ€ífÆ%§¿°]Æ=Zÿê'†fðÛa!(0}`»é×9YضCüvØ d¬l727Üô€í2îѦo^¹ç¿]î5HþKP¶+¡–)c'`;ØðÛa(±°]§QŸÀ%(ÛeÜ£•` ë-#~»õêOê(¢l—¢aŠR¶ƒíP¿6€+ÛE-6EØ.ã-¥‚ ÓGüv}ÔãZGØnI%#`;ØðÛa(±°]FÌAVÇQ¶Ë¸GÇDJN¿]ɵOÙsQ¶Ë¥¦Èçh Àv° à·ÃP c`»Ñˆ„rQ¶Ë¸GËÅÈòÍ'~»|뎜—£lWN]SÒD`;ØðÛa(±°]âxO°r€í2îÑÊ1Óu•¿Ýº”']HW p¶;öÌãóû¼|ìKé@Ȫ°l‡øí°ÈXÂÙîks<.×鹌mr홇í°€í°ÈXÂÙîæxÀv=é¶Ë¸GëY÷\Þªs²­Ö®l7?ºƒíz6+ضCüvØ d¬lÛõ$¡ù]ÛeÜ£ÍϧV"üvS«òƒU`;ØŽv)ÛÁv(€ß˜´Ú38¿‰%:ñܾÖa¶ƒíZ¤´°Ý¤ûôÒÌqjåÅo7µ)3?b—cÇ/ó“²î ¶ƒíÊìJ ÛÁv(€ß˜´WØåT™ØîÆCúÌìT¢”z‡ç`»IwÜèdÀo7Ùª)*c°]suã·›ÞÁv=»8üv` à·Ã&­lÛ-rÞá·ëÉ@s½¶›tŸ>W³Ë¥\øír©©y綃í`»y·ñÁKÛÁv(€ß˜´°lÛ N?󎶛tŸ>oã›~éðÛM¿ŽJÈa'¶;pࡽ{ïé¹ñB1¤G¢J´6ųgøù‹¿{éÒºf,eÝëíz®·;sæÌ›o¾i‘è‹þÕýû)<^{í5?Ù3Ñå)õ^BÛ_ºŒ°l‡øí°I+Љívï¾cçÎí]* ¯Ò#QH%ZMQ'ýüÉ“O*عsßèš±”1~öl÷öÛo¿õÖ[µ®»þëíÄjŠäÈ‘#FWú²±±¡/ú«óᡟ¢3÷ÝwŸŸTx{öìòRê}iî)áBØnÒ}z &8å2â·›r픓·¶;þaSÈLÎvò™…n3A•|øp•ðVÇv柽‰Øì»¹è^|ñE%úôÓOë»üvÆv:©Ÿþy}×ßþx—RïåôK”¶ƒíP¿60i±&Cõ“JÝCflgÃóâ*#6ûU\eDU‰³&[ÉñãO4à—Gk) ãXI˜ÇÜuîïQTö¯Òµ õ}Ñ”®âIãK`;°Jx«c;ã3c»Õª~>åÁ¦q ì.À>„—RïKO9—Àv“îÓË1Äi–¿Ý4르\Õ²<^R6ãyæÌA‡*‘œ¾™™çÌNÞ2ó¨N-ŠÄ¨Ë.o/> l®8‡Â¿±_b¸È{—2Æ—ÃvUŠílFÕDzD¶“OH§ÀÊÏ©S§úP]›Rï¥õÊ ÛÁv(€ß˜´µlgþ¶êli¸ÞNN2 ã®2ÑÇ lQ$æN3kÝ®· SÏ{NlBV1‡Kñô¯(³Ö5¨ŸZß<{9̬C‡Yu„‡ùð†b;›cÕ¡/¡£.‘íÌŽAÀ¶ë„qµa»I÷éý+˜ú(° ¿ÝùóçÏ;wñâÅpetíÉæw õùuãö[Õòû(õ«V@ô“oåÙÏþ›]w~°–íÌÝÕ‰í ¶ìcÛ`Eblgä—â·‹f„ÝŸççØN.F¥²hÚ¶µÖ²ÝŽ;Nœ81ÛU÷R,1'Ûß]ç1à·ëÙÃÀv° Œç·Û½{÷_ÈåãÀÆgÕ“ÇW!`€k¸¶ëÙo®èò×_ùæþì>¿çc·Üìû^õi-™»K³±¢1›‡­õÛiuÏÃʧ%qvá¢H¢õvÑžŒê¦Ú%ØÎ=‚áÄqµ˜)cü}æ|h/Eè±3ªÓæY•¶[QcÌ=ZزA‘ØÎˆíìÙ³ê‘vê”å®[tòŠK¶+È8ÿtÿïVçÝtæÄsûjÙηé'ƒ9}l{D-ÛùÚ;ßca ¸(g;ƒÂægÝ5ÌÉZö”9çÒ÷RØ¿æ8¬}„Šql§îÂÙ.¤:ƒÙþl§½®šKõÍ­ú>Çdß¾}ÑcMªáu¹Nè´cN¶?YÂv ýÍ¥´†“=yò䕹§ãB:uʆnµ'¶+ÍØTÞ'ÞáÝæM׿ýw—ͦv-šÈL¨$ðÒ_ß÷*‡œÏoÊߦï¾`N€%'™>¡®6[–g‰Z„ «îô«¯–‹RWÞä#´k-«öœã9¹ufÑJ;ØÎ]‘b»*Õ ÅvÃ2ÙP±¥0}]Dz‘a;ØFòÛ©/Þ»w¯ Þrà à¬w®ž„íÒ»°9…ÆÙê:??õˆ ¸ˆížK2埢½ÍYMãg?'«éW›­ýývCÑØ°ñ¤ÔûœÚþàeéÀv¯~ïZ÷+ Yï|u¯ºïþµH]ô·4MuµVİ~;ë—å´“¯ÎxîôéÓµ'§Àv/ûR‘gCŠý´X@Þ~cË{6;Û½õ¿ÿÛDØÎGgÓµöI/Ypöx”ÄkSÆøÙ³]ÃZBØ®k++$|¶{øÞíÿÔÇž¹—ÏÒ lÛ²yý‰·Þ²ã‘§?þÌ1>K+ðÞ-7¶ÖŰl§5vÚ6áÝ´¹îjONí°±fÓJaŽN£ˆ0î»]·m?{ù뚊Uüš¢µfæ·ëäSLѶÖg6…ØRê½Sû*-p7¶;{êñwÎ=Ãgi6nÙÚÊ)&¨q÷ÛuáÔ9=*ŠÏ’ 츥ý9 ò›`N_Ìo§} '=ª_í¸téÒ€ûSöÉbcÍkرG;dvúkÍ_O?Qü‚<Ø.EgØn 46lRê=e¬,6 l7*ªÂvÓÑñÙNp&J“ëN;ýÕcB ת'5i«áaÛ/†:`»þv8àØ#_À.ºëÓœ¸KøíšGhØnX®šBl¶¯2ñ¶ƒí–ô{õ×ÃZØn(8ël×ßö†{´$Qs¯ÍËpa;ØnQ“g½]™èÖZjضƒíÆÛ'ۓɆº¶›Û‰çô˜b±]k7 ÛÁv°]k3!@¨lÛÁv°]¬·[éz;Û9¡uu)’ØîرÇËü¤øG™“Â,ê°yH©÷”¶Slضƒí`;Ø®s+è3öhÏ„žcç;'Z‡Ÿ’Ÿy®;\$l7,WM!¶>í«µA•¶ƒí:jý糦ëíš;8üv+òÛÉW'=¸ŽÏ ÀvS ±aóÛõl°lÛá·Ão×¹,7ö襱Zc7ÈÌ{výsº¶–«¦ÛríkNVݳ,°l×yT›‚×­ðÛá·ëcE]Çž_ž=¡ý°z3MÏ.›Ë« ÀvS ±aóе}Ñ."`;ضÃo‡ß®s+è4ö¨Ÿ}øÞ;µlŽh ÀvÃrÕbëÔ¾VaT¹Ç ÛÁvGµ>ÞŽé\»uÛû=ùHó O·ÝøÞC‡›Ý±më–Ö²oݺ…wŸ4˜kúØ£×KtÚ9‘û 2~þ g»¯ÍñHo_ãÛ[)Âv°]¡lwÃu×}ö¾<öñ»žý{ì¹?ü茿ûM?ùØ‘ßÿŒ}ž}âÓ=ú¨þú™LÏß¿ý惿}ÙËŠpý5×ü§ÿþ·Óañ©å$qìÑ6Oyì4!›Åxi& g»æÔLÅÉݳ1Âv°]¡l·éºëþãç~çãϼõâWÃÎüð¹}vþÿÅοÿÑÞúŸÿCŸ7þâÏøÒKúkÿú'Çó|÷‡ÿþØ—­ÔayC6_wl×Óowø©GöêAvNô¥Z//œíZõ!@ Àv°]¡lwíµ×¾òì `²]Ž× Îv‹ÀN篽¿]SÓhöÛÙΉÏí+pP¿È°Ýøš“âÄ€í`»BÙN~»ÿshß"7¿ÝÌÀNÌgl×vò\â·[úùvìœy؃íFœä¦¯lWÛ}ãô¹þòü€«—¡>F8NTZo²]-èˆí~zâ{³™ŠuOžØî§_ÿ‚O=×xN¶ÖN“?ø›Köoø‰Œ!úµjÉÕVdŸ‹üvÚ9¡G§¿sbúƒÄôsÛM¿ŽÈáÈ ¬íŽüØÎÛ·êsòOzçÜ?¢Õ¹ÓŸ±óúž_ú»'4T„KçÄ/ܸe«ï_ÇK¿3@ãœúÁ;vퟶ߾Sqf‡w!Û-ò`í»ãŸë›ßœÇ»pŠvßÎ_ûÖWo^k88Û™<ôén{f:ogž8x\ÿF‡~Ýó‡Gý‹$ý‘ձݥ¿ù÷ÂÄ¡H±?Ø)†t¿ÝÙSG´{ÑÌN¢ß®:úí¾û×kv^kI®g¶kN®šE>˜NÓÍæ·k^s&¿ï“ÓnYùí´ÞîûŸäsûèÿýÏ_¬Ý-»:¶s·q­ß.r*ß󉽡§926Mã†îÀ(ÂÓÕ¨B¶ÓNXÞ9±ÆA¶[£ø$=MÖÌvj“gO=nØTë·;ÿ—Ÿ“ûÍ>šÃ ý|vÕé>a¿ÚO!Ì-b;¥èqV#ŒRé–˜“Û™Ó±–ðZÙîàKgÜçÎj9ÛižË„SZÀÂóVCo‡¦ÌÂ8}",n5ã¦õiu“X0ùc<>[g )'æ•CeCÙ¶ðaöÌG\eÆó¦«TüÖq]l§}²ÍkÎÂg Ìé1(¶—Blg6ö{¿yç·¾òÉhŠvElgÕdu—Âv²Š¶S$f$F„ka;õ¡Z`Çã¸Ö8ÂÁvkŸ¤§©ÀúÙn÷®‹ØN^={üÐ4®ØËÂë‹® ü…“°µs²á% ¬þá¿töªMq@Ï_'¿]XðˆðšÙN\åÎ ²p4µ±PglàôI1‘“ýë?¹Ef?)ŒÓaaÎv~yÊÚ&G:OË#´uWsÊ€’ö¹6Ë€e[‡1œþFyS°E~Gg>žoçlgbºÏæjß'ëtn•eîáÐü¬ÞUãæ¯»¥9ÇG~;¿‡©šw8-.òk…þÄʪútvNLa`»\¥f‡|P R`mlgPeƒŠ ¬ê·“wÍ~o)€Þû‰ C1§4  óŠÓ.1«²_¢ÀúÕÿµ xŠúW1È#h:}ö÷á-ÍvV.'¼f¶3ôññLãŸ\_‘§D“Yá&£18}9”yDŸÜWg€eheWu;¿Êl––eÒÙÎùÌÙÎÇîœðZs=zT ã4Ï·‹ØÎlÌoÏ·3¶sO›jpé½UèE6SY´—bØÍCfTÒŠPa»‰TÙ˜Žëd;ç3ÛTÍÉjFU~8£®挴ä´sò‹,b;±Zˆ’aœÊ€³ ¾ŸyéQûU´§OuÞviÈÛtýµ–‡>‡oû?»¹á]Ÿë„|SÝ'ëŽh…Vö §Ï"I§±*”»[>Ò[È*Û…ãqu®MêÉ9\Z¶£Zµ99ùwo_}õÕ}jaÞ×þë»6n¸öÚaßKá5nuÞX9Ó‡e¿oEœíd$bÄè@¿šçÏ?­+Z͵@ùÿwÿö^Þ91…Á ¶›B-‡I)°f¶sW™i‹öÉê¼ ÏÝrÆvÑô«ÁV䨋þµùVÃ8ÿ8ð)'΋L Õ®ð[ìtá–÷lÒÒ=%¡õ³ëÎÛjéaÛ–wëý€ر}El§D£=†¶E1…휱RFÊžlÒž¥e»yNlwÍÕWÿ«Û¶?ø¡[ís߯ݲóƒÛõ×ÏèË­ïy×®;>´óŽ;îûÈGü†É÷ü­ïy÷®Ûßÿþ›n¬µ±wÝp½Þ0û®¡ŸoÖ¸/ï|NÖì'šy¯º™«f6òz;^;‘Á ¶›HEé(°f¶îø7Ÿuõõm:ãÓ¬öè;µac»ÚµtÍlg3°Û9PšƒÐ‰xÑ‚¼>`§kûÌÉÕÙKÇ›çdÍqåp#7‰¸G'}Ò*t‰…Ðf£oèq‡‡ çd‰=xÌ~êB‹!ÅM²Û)Ÿ“µ‰W+ˆùü~×ßþ—ýZo·Š½îÖõý­ lç5««j—¬í´Øn×ä1ÅkÏ`»µW˜šëg;ͽN-Z-'Â3Ú38‹üv¾ÍV":ŒPOž¿*Û¹ã0ŒGÎ<gy¾c-lRP3Û…s^"CC½†9Yýê³™ æ›' õ|¾Lç}s«áTH‡æk1Žlþ,ÇvºJ‰ú®Xó)zÞD~¾¸>šË«fÆÙ®ØçÛ…ëín|× òÕ}÷?ìõݲ+e;U‡*ÈÈÒ/òÛ)Œ[²ß¨4øÝ¼«N\Û‘Ój“\æ‰s§Ø$;…! ¶›B-‡I)°~¶ 'X­¯¯’\Êz;gD!b;ŸÆ ߇áÀ§EuZf§KÂGîùŒmô ¥ ¯«ß®Ju)l§!ÊŸb’FO[ä·sO‰º!!ùùQ;ܺ?¦õ)$K°.ñy:§Õhþβ—²/’çÛÛ‰êŽì¹_¾ºèq0«f;¿—h`;³d«ÓhSv-‡-ÚK¡ËÃ'ætb¸EíôáávkÒ`»µW˜š“`;¡’1V•ílgƒÀËAÍ'UýyòÌÍÖºOÖÈÃg[k-E{ Š'¡Øì9y>_<¾ßN=>[5šÖçÛi@’¿M¾ iÑeô€_[o`úWW‰êªÑt§~R´á¬kƒM‰¶NËÖ^eSoö^Ñ( U“A€Æx塿ΘO±5i+,Ï·{åéßÕÿ¯O×z.g»ª¥™§ÍͯZïVSƪµ6’Èz£ö¯ÏêvŠÄÙΚ'/¥XãØÛ­Q|’ž¦Sa;ÁSDfB:§=ã¶ê¤jø°:#¼«kò앵¡óIßCG]ˆ˜,|ÞÒ;»0Ýo×l.)l7Ô6…xV±FžçÛÙsìMIþ|»)Ò€yˆØN VDÑN)^&;þPÛ¯9)N\5°¿"â${â‰>š]õG¼m¢+ÁŸÎGÌÞK¡¿áCLüòjx»D g,.³ó«”œ~µt«úà]9l'óUT¿tbWÁv<ß®ìVñ|»®•>ñðU¶S_/w;»+Æó`»ñ5'ʼn+°¶ëÃF~­fiÅ^B´p%\íSNIn¨HÊa;Mùsòª_ºÛ[× ÂËo§÷Éšïj‘ËÞ9öÆ_üù_zI핲þÉ÷¼½s¬ù]ºøíš­–íÔÝËo'ï|xïúç”=ØnNµIYQ W¶lù쪽—Â'dýÅCÙ€ñ”ÃvBØŠ¢ Ÿ²Èƒ%¶ûé‰ïÍ ìĦb»Ÿ~ý ÍïÒ|½ÝŠêq]Ñ.b;Û]ñù=ûÎW÷ÒGI«°]«D(MŒÙN³¥ÕÅs¾l@¤ó¨`»uÄÕty¾?î¤Ös Û-ç·ó!„Ý£¦°ÝhR“P. dÌvÑ¢:{ ì*€lÀ8a» ²]±Ï· 磫žKØ®'ÛÙî ½»‚Ý«a»U+LüÙ)=Û ^#DÛMŠí¾øÀ]z`¯ÞÄ ¿zHø±ówÝ´õà';òûŸñϳO|ú±GÕßð¤¾çuþ®›¶üí{ªå u¸þšk†}Ÿìtª~œ4ÌɆÀÞ]¡åw¼»b¥Ccál§§eÍïóò±/­Ôff9l÷ï–…íór‰dÛM7zò‘æ>qÛï=tèбÙÛ¶ni-ûû¶mmxgq.µ¼º|&²†Þ]±êq´p¶ûÚôöµjëÊ4~ضky9ØêFÇõƼã–[eýÍívã¶.\xgvÇÆííe/íŠ]­±ÓØcï®ÐD¦ãÄij]8ÛýÃNíkâö¹–ìÁv°lwù½µØ®+ñ”~‰±Gl§ý³â¼µôõ3N¶›Ý-ѾfláK ¶ƒí`;Ø®Füvý÷RT{dÞ]±Ä(Õz lÛµIi`;ضƒí`»Î­`i¿‚½»B{,JlVW^ض[ue3lÛuÕæ1ïÆz»æ> ¿Ý*üv¦¹žŠ¢g£¤¿»B{ç·2±D'žÛ×:¸Âv°]«‘”¶ƒí`;üvøí:·‚¥ýv6ÆØ»+wW(­cÇ/ó“¢3lÛ•†n­å…í`»Î£~»Ü7βO¶¿ §0Gkÿ›¸»â »œ*ó“¢3lÛµ¶µÒÀv°l‡ß¿]çVÂ)ÃIÊ»+`»f%a;Ø.¥­¶ƒí:jý}Sˆõv¬·ëc‡C±j¡ö݇ŸzÄ+¶ƒíÍÈ6æv*Ñ€í«(¤óÂÂv°l‡ß¿]çV0ìØ½»âO÷ÿ®âõ{d=5lÛÁve"ÚÒ¥îÄvwìºsûÃ÷~ÏÒ lÞt]ë»Rêò¶¼ÿÃwÿæÝ÷~œÏÒ lÚ´©µ.J~v16ÖlZòí®Ð»+¾óÕ½š¥Uä:ô"ZØ.EgædççºK©÷”±²Ø0ØNAÏž:§C=Ôêçÿë[}²ÁµR ¥.Jf;l¬¹™è1u«6¾øÉ®½æc;–ÊÒ~»Ú»÷žž›0Cz$§OyçÎíú=ºGé^¼øÝK—~Ð')c¡®6[–gf6¬º S4_ ²d[1ž“[QgRVÚYŠ)c| ~»*Õ­Âo7 œõŒ*¥Þ—ƒžB®‚í&ݧb…“-&~»ÉVMQKa»ÖM ë í¥HÏLÊ?{¶“£.ôÕ…~¾aýv=lÀËS꽨N kaa;ØðÛa“V`jl穳éZû4ÏÕÚÃVÒß]î¥hÕfÏv “¶°]«y”¶›tŸ^¦QN§Ôøí¦S%çdjl—îuë2ÅÛ è0›HT)õ^rŸÐZvضCüvØÀ¤€íšG2Øn"@6`6`»VzkÛMºOïY»\ÞSüv=äòA€í`»EÓ²ÌÉÒÄæ lÛ¡~;l`Ò Àv°l7?üZi‰`»I÷é+­{"oU¿]«DAضƒíFhhsJ¶ƒíP¿60iÄvÿÖe~RÖ]±ÞnÀ…n‰*¥Þç„bƒ—¶›tŸ>x}a'ðÛu’‹À+RàõW¾ÙúNÕ¹PÙ[U…í&df¶k5{öR@o(°¤°]Ïþ…ËQ``»¡j"QÁv=~»%Gýžºsy ÀvYT™,\Øn"@6`6`»ž¶ƒíP€õvØ d¬l7 TM$*ض˸KêYy\¾jðÛ­ZaâGþ Àv²³Ûõløí@CÀo‡  @Æ ÎvÞïü>°l—q—Ô³ò¸|Õ à·[µÂÄý(œíf¹E:etË™q øí@CÀo‡  @Æ Îv3ж´°]Æ=Úҵ΅‰ à·KŠ`(°F`»5ŠOÒÓT¶ƒíP¿6€+ÛM/ÈÕ€í2îÑÖh7…$߮Ц˜Y+Ûe]}d~ Àv° à·ÃP c`»UÀqf­l—q–µåe‘yüvYT™,\Ø®p øU`;ØðÛa(±°pƒ‘°]Æ=Ö¼jðÛ­ZaâGþ Àvý5$†™)ÛÁv(€ß@Œ€ífÆ%§¿°]Æ=Zÿê'†fðÛa!(0}`»é×9YضCüvØ d¬l727Üô€í2îѦo^¹ç¿]î5HþKP¶+¡–)c'`;ØðÛa(±°]§QŸÀ%(ÛeÜ£•` ë-#~»õêOê(¢l—¢aŠR¶ƒíP¿6€+ÛE-6EØ.ã-¥‚ ÓGüv}ÔãZGØnI%#`;ØðÛa(±°]FÌAVÇQ¶Ë¸GÇDJN¿]ɵOÙsQ¶Ë¥¦Èçh Àv° à·ÃP c`»Ñˆ„rQ¶Ë¸GËÅÈòÍ'~»|뎜—£lWN]SÒD`;ØðÛa(±°]âxO°r€í2îÑÊ1Óu•¿Ýº”']HW¶K׊…(ÛÁv(€ß@Œ€í ኙ®l—q–^Í„\NüvËéÆU(0¦°Ý˜j“V Àv° à·ÃP c`»,hƒLŽ©l—q6¦¡”™~»2ëRç¥l—W}‘Û€í`;Ào‡  @Æ Àv#°Iä¥l—q–—©å˜[üv9Öy.MØ®´§¼­ Àv° à·ÃP c`»Ö‘ž¥)ÛeÜ£•f¬ã—¿Ýøš“" tU¶ëªág¯lÛ¡~;l2V¶›=©PÀ® Àv÷h]+›ð]Ào×U1£Àø ÀvãkNŠW¶ƒíP¿6€+ÛMœ3ÈÞø Àv÷hã›Ki)â·+­Æ)oŽ Àv9Öy^©Îvíúè¯?|ÿÝ|P\Í7lºpáÂ;³;6n¿í]¦¢Q` Îvó¨DJ1¬êáÕÏ_¥ì,  À?Uàg?ûÙì¸îr~þóŸSÕ(0^ýõY¶Ó”B©ì³©G 2¬êç¯J±!        d¡l—E5‘I@@@HR¶K’‰@(€(€(€(…°]ÕD&QPPP IØ.I&¡      @ ÀvYT™D@@@$`»$™„(€(€(€Y(ÛeQMdPPP’€í’d"       d¡l—E5‘I@@@HR¶K’‰@(€(€(€(…°]ÕD&QPPP Iٲݹÿ„2\ºt©ö|’T•@Õr×V¯RTçÏŸ*6‹§6‡Ãf{Ø       @OfËv;wî¼êÊqôèQ×hïÞ½vR¿öN—+’0ž“'O?~|¹hÅ[ÊÕîÝ»—»|ÑU&B –Ð ÅïSÞa‹Il(€(€(€®ÀüÙ.&¾AàF¤¨Ã¤4j\šíä±S>80¬i®Žíz–wØbÛÚpwø€~ñµÊ2° ‡zµhê:NŸ>mÉUgÒ}íêI–˜Lè™èDjŠl4(ÎYåÕH=çaé¬úÉOšå‡gªjXTæÇÞÚf§«¦`Šsf;ó«9ƹ˪ÖqÕÚ{*ÀÅ‹ՙȬ–íÌà]¨ó­ñ¢Ë›ócùLg»†|ÚO‘e/*ïlš<Œ¬€µ¬èíùÏhùYΗl½DmK\‘C=Dý€2`w†ém¶VUk˜­½JtmÏD›ëw¹JÍf IHÖUÛHÃy­q¤PŠì³:×$‹²²„=ŒÙ°~j(…‰8?&žsgP5¹q´ê“ÊÌÙNž0ÕÊÙ³g¥‘Õ«9œB¿L-ôç…Æa¾ÎXý ]kŽáToˆ’ÖÏÚ… ã„§ïa´Ê˜Ì7 ›Óu›S0eÞb«m-)]¶.\”Ïð'k–JmyûX!×f­€³,Äñ{Ã¥}ÉÕf:VáPª[-Ú,¥Í6X‹:(e¸«¡g¢ ùYºR²n̼ ªho¡>ê5óаeihk ÙU6ŽG±»#…i¶üt¶S<Þƒé* ƒÏ­ +oÛÌÙÎ:M«#C~'0±‘ý«/^nëŽtaíº…9ÛéBiwnjúW×ZÒ~»`ÿZ3Ó_sŒ…ÒUêndŠÙÛgÛ…#®'5‰†|Úm–‰cE¨–wuJÌÓW zcí·RÞЬ­3†‘7ºÁi]5øZ_²¹Æ<îÊÕrãMk´ég ÊÂw¬V=óž(þDI§¬kŒ¼#?VóV4×Ô0õTOm[k5ã¨iûøè0gÃbÔÛT§›Bš­ÊåpÖls÷’2/çqÏù½ª½ÍœíŒ±¬ÊíK899®Eäg6tæÌ®janLÑOFB‹<Æ`)æZ¶«M×Z£ß=È@F&'?ÃA?<ÛÍù´ËeÓ64†£)s²Së»×˜ŸZ¶³Ûª°· ݽUÿwè×µ~ߢl!šáD‰~ò¥Z_²»äRÝÓ7´ t‡ºe8jòÖáX×þjÿzæõÝÇ×V̲„Ìao-ÚSQB¡¿9ÑÐ`Zµæƒ­¬gÒµlÞ±W«Ø—{+”Íð&?M…ùx¶…EÝBX^sÁXñÞÆ.4GŒðÖöºÊGR!L4ì^lg1{ ôåw‰ƒVÔœòiÛÅÝ”ÕÔñ ¶ëÔÌæØJ]¤;B·´w©úbGhK5ü[õi…7Ä¡M†Y S¬íÄ«Ñz}¥ßtµ²ât¿E¸zÝ  YËv.oôkak­8qðϸ†mÐH]VN8†žuoÈf™‘5üý´el´jð–^{[ècºsžˆ5üpMaµ‘VoZª6 A6œ6µUt–bÔ¡Y÷bY ;À>CÎ["žt?ÛùD­™ºWV½­¯øñ +Û™oYê‡;T—Þ–¬bú°Ç¬´Âe ˱]C>]7É¢È팃Î ÝÚ9K¢Ýï¦"—€M.„Gxçê¼Û…]ª}wWb”bí–ÀñÙ.\nh9ìÊvÞG¥³]ÿªµÑ†d “8ø'Þ´£úòƒ‘:j¤æD„í¬‡–ælWÛ-Dz†óoÞ^jOZQœfüU¶‹êy¢ ©K\·ÙÅl·@æ-ªí^j–þrøÃ,»Æ“nfóg;·§È½ìù}­©\]åí!«“>~ÃíOÜñ3ÑÓqtÞG¯>l§Ì„Ï@q§ñrlÆængªZ­«åM·9BÎLêͺ6ÕXÝŦK|ñJW¿óYôàƒÚæé©(ÅåöRXnUÖp³g-ÂCú3¼5ùHf ͇ ÅÞâW'‰|eåÁâId»E‰FØÊv8øso³U¬ñ)?› 43óáÏæm¬Ôél—2fh­ÝB$x8ÿæí%<é-ÂÊå.Ép?¬7‡EczDáÖ¨hºÙº‚Úí|[gÔ‡t'ÝgËv²7Íhß~ø“)¥æ·‹zÿ(¤ÅãSõѯ¶„Ü×ÍX̵'£x¼ýxê éZêÖð̰š½Uæ«Q>Ã"¨©D Nk‹–ny„œU¶ó{ÜŠläPàh3A:Ûy׬Î]éÎcS2ò%û\ŒRôeg ‹¦£[ðÐc‘Âv~+¯´Ô4,3>Œù¶!³šT2ê ; Çb›ð;ÏÈ šÂv‹­^+ÛáàϽµVÙ.¬S'-Y£MÔ˜ꥳ·N…™ûÊîÐÌðj»…HpG+oS P{Ò{ µ5Ÿn2ÔóŸ”IÛç«ØBDóD]é «Â9Y ÓнԲ_ù–ˆ'ÑgËv‰åÏ.˜ìÌH߯ƒè¡-Ù‡ Ï@*Û©P¾§Õ'I­¯º‡ÓÙNцëB?™·ë¬CÚókvàŒçÍÃû¨–Âv—vyäPGÊC£Åvá°æ'ô¤ûí%ºÛé’†‰üÓoÅU¶³Ödff£ITnöØ.„o ®O¸UÖÚ×¢na‘•zëÛxtÒo¢ ˜úÕo½tá¢n!RÃz›ÐWâ‘XŸãñ,b;÷2F.¤®ñ$l—(ÔT‚…w*Þ*¢e›SÉ+ù(FZg° {ÃZ_o¦ù_)ª& ^RÝtÕ']_a²êukÆó}±0:™âP·À– $*”-Ç6‡bí@›IPTÕÉóÙ‡ïÍ #g %ZµÊ†ê‹7xëí'üÓlô‹^¥jUᄄqum¤‹¦ÂŒ ½„­&šòªÊh¶QíI][›°í(j\µŽü0i³êÚÞÆÚxÕækçå¼3©öZKÄ“bc°]ŠJ“ cý¾­Mbr¹'C(€(€(€+S¶[™´DŒ(€(€(€£+Û.9 ¢      ÀÊ€íV&-£      Àè Àv£KN‚(€(€(€(°2þ%Âý‰wïŸIEND®B`‚PK¬‚C7‰6©//-Pictures/10000000000002AD000000CAF563C62A.png‰PNG  IHDR­ÊPî7sRGB®ÎégAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ</ IDATx^í_ì^E™Ç‹`e–»¥¨?µ­¸,»Å"k¡®U’¡ Sÿð§B°«–µUÔ%©³*°Á&¦ÉfqÓ ›MŒ¤Ü¬nŒnb³›&’CzaÊU¹Ü‹^xÙý–oöñqæü{Ï™÷¼çœùžœ¼yßóΙ™ó9ó|æ™9sÎ{å•W^{íµeÚ¤€p ¬Zµê‰'ž˜ž$?üáßxãé]—®H Hv ,---Ûö¡-}ì–íÐ.¤€)°jå%§N:;¹miÝÕOŒ8`²¨!Ž…èŸøDG`ò91³xÐ& `Œßýf“Ѐ8 {=œ>ý#G9vlŸÙQãôÇ€q–·»q$ž`Ôi×+vÄOÜžðÓŸˆïø×ñöi%×3á.\þö'¸-¦9q¬;zöÜnºé&Z}|±ƒ8|ø0ÿåAˆjf¹Ëн_$±âÝ#t¯?ÉíÓ¯_~ªÌX8?`ÿþí4ØÜé'ðgá m* °|ôè/ŒÄ8®{Dû]³uñH@ ÀgÉ81àxÙHDrÁˆ[LsâX÷í۷ôcÞlü®]»ž{î9¤óƒøù­o} ¬€Oüä_ø)ˆæ>ä!¨}–º»±œp ÉíÓ=Û6!Îm›1kl•ŸPs¬¾ÙNÚxXtrŽÃ²Ò3Xe„E?BÁ¨È6ZAdaZæŸ(䀴O<¸cK 3~Ò70?@§ŸÃ°ô°÷èúã g<úè£øI>ÀO8 Äâ€FëÞh\ K ÎsÅâ€.µ(9éÉØ>á<1ÐâÎÊôp·áü8ÚfâBµ?  p^â1¼ Õ'Ø@Fj L°æŠ•ä°Žóó9OÝzn°ñèýã P€=~XzÃà þBþ…/òLäèÒì&?W èR©’sÀÑçþöü·½-@ÇïûSÌÞ£Ëή¶Í Mývœ¶¿,’`~@<ßÐÛl?©0‰@HX}çäDN`ê6? Ì-ÁT’ëŒ 8 Ó0¶Üoœ€i€<ÿ¿=À#˜À‡ø“_l¸ëè¹ÁÖO j\ K›;sÅâ€.õ*•}zýGOÃ# ktÇ-×_·´Æ8žê|ãÓ,£˜` Ù_·)ÖɶGþ<Ðs ¡ïåFb¦Süª×à?cöøqFhY%XÄ Ç RélµÝ8À€éÜÑ0ÀÓµ~Àà šÐ¥åM{®8@Ð¥Fu´Oxh ÝP~ìøÂgØ0€°jÅE~¡÷B€)EOF–غì8b~~´IytÎ#$Âs¡íq$œFÀŒ°z–"D´öè ûœp †?Î*3«…އŽ:Ç•ÂÆ À3D˶}¨~]a¬'(€ü]šÎA+t©­íL>Kk¯À'œ¾8%pÓÆkƒÕÆÊ8 z&ÿ4þm­sYõÆ:Be‹»w?`pïŽ6{§ËÐ¥åM{.Û{ÿmÕSV­¼dïÞ½&·­ºtEíµ£ML+øÄbkaŸŒl@:°U0QxzŸÁñ…s:ë~‘ûÞj´Ð¹É’¬sZOP ¨W@0cðŽ .¸ï¦ëîÜrýãݼoûÍ~Ç¿yõå{îºsß'îåþø=wßyûíø´##=~óê+ö|øF»d»^/‚8 º®ÎdŸj  Ö7ÓƒÅf3éÜšjÇ0±Ÿóÿ1±ß&÷ ÐêÇYÒü€zÃ{ß“¼L¨’ˆæ¾*ßpìú¬99ÿüó_~üž ð0Fc_+Æe€ãâ€îð/~Ðýmãâ€&´Ô=LÅü®üofÛ¿)€+ðù@.ääA<ˆƒ\9ØÂð;ò8ðñBFÅhí;Rüƒ³ú±c@þ€Y­õüÂÃðŸ{w•yxœþ€‰Aø€PðˆˆºpúØ-x°ìÕv3-qÀLrµ\Ë| l³ùè!Àš€çî—ǹ@pÄ–ÆO{‡ ôë ÛJ‚ö""@—â‰\‹°IB…ÞùGCà€o9ñÌO&´¯ˆ{Âû‰ ó<EpÀÏ_øÞd†ÌCøù“Ÿ±áBJÎ…õÄ|ñ—gøÓïAeþkrÜêg…¿ú¥âi@|¶6HC›'¨qŽ À*ó“ƒ\=Ð^„0<Â7 ñ-ÃXGl± œË޾y<ÐäûS9¶& • 1 ”îùÀ†u—b?ôµ[}ùÄ‘{y_’ Û[B©"ìž«…sÚDTÊõ›¶&´µ«×m@œ£CÏe=ã]ëßùôSOMcN€&صá]O~Gõ܈äÀzrëÝ»­î±6â8ܳç ~þÝþÙýv #ñŽ<òÌ`„…[òúYÈx>xâ9ÿ]˜i8°#Ͻ‚·ºH:ëó6.À÷¢»Ïn=¾sò ?­¯ÏÎ=Є“ °ñ`x¼°S&4>à “ú'Ÿ1ã kÍã©Ì68 m„â€Bz;T¸Ç¯ºìRø&010˜+pÕå—ÁP=7bN€h÷>æÍvÀø NånVÿþ¯â)<`œÆÀ¾¤õ!­Ø>áé¼s’Û'¸Ò®±?¢Ø jr=Ë"D™–YS??€/°n:†8x/œ€Õ…1@ÀŽ>G hàù!ÎÀA㛈9X`Áü)àa¢:¡±r.l÷Ý×ÍÎüòa E*ªè3½_‹^áIâ²W’7|ÏPìõþ€ïüäta'‰ÇñYhõã8»s@urq6Êúv3 yÐP=F€=/0¥§àÀü€üÔmŸüÀûþçï?WøÔÀü8ÀÜQ…þ€ÀYuãGvÒð{° €¡ïf"LèôŠ£ 8–µðÑÿÞl˜ê®@CðÆÛ^ +ONÓ~yß2ÿœ=@’ Ï€@L0@¢#¡ï¡IBcš`ÝtvÖmÂBÀÉá¹cÁûh˜<óþË¿¼á/ã¤hqÆ)&1ÿIóq[»j9`ÏóG­/å=«Æðµ2€w«¢±óÇÑû^ܶ>NsÆz€×?±×v¿ ý<ˆyŒ™r‚Ö9D6m†÷ÙC0k‘ËÎÂå×Úpž¨#÷Ï NéÑAÎðüøû7>ýù»‚a‚9q‹‰eׄP+*8‘°’Â\üÐÝ)†Å*PÁ³÷ŽzØ{ûÉɃ|‰07±W qÈŸ- à,|aHüa|$MŠQ`¸óØúpÛºi ÍdÌðøøŽ¡Øi†Çœk8á€?é(ð§0ÂýŸýK³Ó…)&ô(´à^Q@Õl$3Þ¾åe»‰#ldÍ1 +ËŸö—õÃ`°ùÂ06:cìô&c±fþ--‹ãÄ4üÈ’6/3Àlc£½Çg7+óghýãŠi¾ŽàH-KÍÀHŽ…E·“¯~,w”8}N`;«iÆ|óÉx7®Þ~hÀOJ˜)Ï‘U-LÀX@Ÿ¾ëÅZÊi§Ž2-ó®÷ø 9€˜  vÌèµó_Øf°À;?²D³mpqò”2°S§ØOfÀRÄOÄO#4Réîhͼ.£j ™´¶m%ºÔA ÕØÑÊFÖ†oÙÓ¢Qç_æ 1¦æ_3A€ew¦ÅL˜-7°ð¾›èÏ¥Kâªhǵ~@À¬c¤y¬@°ú÷´ÐÞðÓ*Ã`”(ãØužÇÉÌXÆŽ>;ã`ÇÚÁïµ{ùÛÏgºl Õvų¯ž*3r]ôÁâ笃e2Ì0wï úa>NkŽqQæZ¨íu™U`Ș|Ûû{+–œ³Œ(æäЯ~Þyçu)…iŸû××/ák q¦Vâ,;ÏŽŒÇøÏ{ª ==¶ ’€'^Ä¿ô(Ø^;J5Ó…hBÀİ@°°.8:èeÏ à8€Àºûä€`€†9~ÒçO“o»ÁrblÁ`H¨pFB;àY+.^ŽĶÍk÷M¯)´4x!)F"¯Z³zN€Dƒ¹ÖœªÝ„Ì7iU;r€'¦d»Ú xÛyçýÕ5«oyÏÕÜoz×Ú ×®Æ§Á—«/þ“Mëß³aýú›®»î–?Ÿßqd¼Ç¯¾ø¢M뮼òò•…ulåÅ~õ®-óãTòìhã¬?ÁèO쾊«YÏó¿ïo&f3¿qÀb8¦Ñ†äÍóoãñ8b®~.-€r"ŽýWsG0ø “€KøÆ1˜@Ðpn—qŸK®`‡Ø !º_°‘8hŽSßÕöž¶Ù÷®¬# >ØÍ¿€ 8‘14é~µà¤bãtþóBèK°Ž#Ro2AAë}—¹íœÒå/œðP(H¸ }~m*üÿ4½e£û ’ yà°Ç  ‰ àQˆ9À>8 @'lrâB8Àïºjð~WXGšIbAŸþ5:‚ÙÄ@bùlqÜ&ùÓôz’`ŽÌQ½·ãœ…Díéú*,o ›8ø“ãÌd»~€Ÿ°zÅEð<ÿåû쩹úP( Rˆ%þ„±šlP[á—²ê;‡8Û´¶NΩàN„Kàßøô”laÎײp°µ³ãïäg»[ý&óŒ',†€l(Á¯chp€I˜€Sü’6j,}ØšfõÄЄМÙóu”4xb»Ì`=0k ½5%%ØVØ4[?¯öɽ€SÌWldø™½&óõ~9ðÌÝ‚ x„rÞ`ÜYÁ¬É,Óàá”B›]6O§û§Lg²÷eÉØ?µýÿöìçs6Ÿ“¹ö䀕ìmÅ|¯-æúƒöÆB¬€Ÿöjã„€¨Æá M¥=Ž9r˜gi3êæØ·Sà!`÷½öy Ï1`Š|tÐ’@l\‡ÀÆ,ú÷`!ˆo³ÚõÐx¡>š¿ÀI,¶Ã¹T¾±ÃOœˆ½ƒË!Zïùb [¾vh ð,º¹Î|Ä9‹õÖlsØä!ŽG諨Mš«õ^~ôã €7þá …‘ä×4öà­úÅåÎ’bka$Aí & ò§,$Db€7 cÂà<–œŒ}Ë…¤å.7ë°×q•!¾Iɸ81Æ®-˜pÀÐVæßÈ€6>vìûÅHž$â9|…EË/ÞàqÄ‚ùZ{xbs@õÓ„RµwCˆgó¿´~× (IÎC¨H ó`€[(€ù¿Ç_zrNï…¯ìÑJÀi³šðuMµ¥“–`Ë\iØ/Ìõí½~, £q[Î/°©|J;<üöØŒ4 <,1@ǃÆõñizsXB!£E`Ø{rƒŸ`‰"9üËtã]P €å¶‡»â/³6Çóà­PóX?`ÖBxxÏ00˜À‹‡€æ4@€´ò|É®:й֖w –¸Æ0úýxõ€©`ð2¡L9 ‹µs1R; sîGî Ÿ L’\ªHòá¸am‚øË¬M¼Å6ë‰ááðï.4Š\WïœØ«‡¹®põ»ä¨®l±}‚Ws¾ýÅ]LQá¹çÒ:{8Ï}¼`/*|™ù0p\àšÁæ6˜þ¸@*›j~®'hƒ¶à`ª„Æ“$4ØsŠÊ?7XÖ3à}ƒƒ¼(€÷ V¿[A0+Єý¡;ðÞa0AB$³"ª´þØr¾[È^LŒ#ö2!Z}¾qÀ‚Ù‹ˆÄXä§ÚÃcö'\8¡ù·¨Äs2ê-¢ÕúÁ‹…´ã˜ ißqËõ\ê#É.H"cm$É9 ¡9oÕ@ç ¦µ¯þå _”6“â€vzÞ§hýδ=&´æØ¼/tÓÆkS=D ¨5áIˆú[OpN&vÑÊ0oëÞ<~pÀç>xýãÝ|ç–sŸû¶ßìw¿þòK÷Üuç¾OÜkûã÷Ü}çí·ãÓÄ÷q¿þòU{>|c|½^q@€Y:õê³ð `Œ »c@ÄÌ×F"4èâ€ævzÞ!W]~ÅÞûo«~ÆiÕÊKöîÝ{`rÛªKWÔ^»8 #Ðê`Œ`ií~kÎ;wÞ¸{÷­]fž<ùÌÖ­ëFÂÀ‡Ýß%Eœ‹äóÂHÆ;O°µ'?í‰YŒ t±ÊýŸ+˜·uoÿšµW£ÇVÝEXºfÍ©S§ÎNn[ZWíâ€$ÀG á€o º¾ajá›?ýnÇç6lX ÃÜÅ*Ÿ8ñM}ÃHøàÁ{º¤ˆs‘rÞ@ä g²Áx2ý¸P`»ó纉úèâÏâ€ævzÞ!ÅÕ $HÅÔsà ¼ò½/*J¸pùÛŸxà¶ØJ•ù`†ÑG§Ü,¨qÀ‘#à_oYOŸþN|‚HÀO`ªcÀ‘ÂTŽÛ‡¬YBÌ8ˆŒõɘºQ¡ss“Ìçý°¡tÚ-h6O´EHq€8 æe?ó¶µCŽ_ èR?Ûù«AX„@€e{@œØb+sm'ŽÃðãÓÜøøi;Žïß¿–¶ÙŽãDœŽƒ…‘x`0áeÝý€|–Ì£€T|–ì8òÌüÛÞ?P¡sCCKŽ‚Ÿö½áéLþ€Áé™zöíËÐ¥åM{®8@Ð¥Fµãj“e@X‚3T`ã€ØJÅ€ÑtÏ´ëœ+€O£`¢'_˜Ux8ú`Yêm\À8 P熆c8.r|b± |ÁšÁtØâÁ\?€ ˜Û€ßýv"Žc¸!ŽŠ/)ð‘7̪üƒC q@—–7í¹âq@—Õ…¨<&À&0X°æŠ•×\y-“ßèˆ9ÀÛxo§ýüs¶ÓZÃc »[ s«%à9 ˆÍÿ„áW-ÎB64çu˜j{?_%Œýuò~ÂZã»·Ù>``ÿ/c3WAaTœ]ˆÏ)4Üä1ˆº´¼iψºÔ¨äö ®é²ˆc@Åþ‰ý•\gˆ\ö6È™8 ¡^x°ä°~ÓÆÕÛ6_«½µ.¿ v »ÚE°àš«®|ï ï¿aóí­X¾|ymYd¾ž`kms81¹}ª¸ñÎôó{÷e› KÏ:/Ül'Ï@b@£ Šö. éÉ&f¾6Ìë?zºK6t.hR9sÀ¯_~Jõ¤BèS{Ÿ¦ °phb°çFБ s@ª:­x¤ÀXÈ™ÆRF9äSÐO)k\ þ}ƒý”„R‘ÃQ@0œ²È9'â€~J_ 8÷܈v)à¨> Aq@?¥ ¤@¨€8 ŸöW©Ô>»1§Ñ÷áG«ùš Ë$©€8@z ÀnûÐÆ<÷ž9à–›7Olß¼é†w®]]]ñÖE%“?`‘öfmò+ P­‚9?»ÑçsSÕÏ—‰dà¥@KÄC°‚ʃsU@þ€–b®¥¢È¢€8` ¡lH)0?Äâ)Pª€8`~Mb–R` ˆd¥€8@u@ H|ä[öAÑ!gCþ€!—Žò&¤@Äâ) €ê€ù* È·ì“€ä´#‘?`Úå««“R ˆÄR@þÕ) òU@oÙ „k? V"R`ì ˆÄR@þÕ) òU@oÙa{È¿ü=ˆ¬$¤€X¬âq€?@u@ H|ä[ö‹%ÐQ¤.À(ŠI™”R ‹âq€?@u@ H|ä[ö]ø1“såȤ u™R gÄâ) €ê€ù* È·ìsæß†×.@C¡L Hñ* HùT¤€ÈWq@¾e?^zí-çòô&µ’R`Q ˆÄR@þÕ) òU@oÙ/Š=G”®ü#*,eU Hv ˆÄR@þÕ) òU@oÙ·#ǬΒ? «âÖÅJ<ˆ¤€üªR@ ä«€8 ߲ϓ|gºjùf’K¥€£âq€?@u@ H|ä[öcäÖžó,@Ï‚+9) úW@ ò¨H)¯â€|˾ê]ŠòŒ®È”a) fU@ ò¨H)¯â€|Ë~VfÌ0¼üº.Y 䦀8@ äPR _Äù–}nÌÛâzåh!šN‘R`\ ˆÄR@þÕ) òU@oÙ‹X’[ù"»•R OÄâ) €ê€ù* È·ìûäÍ‘¦%ÀH NÙ–R ¹âq€?@u@ H|ä[öÍi1Ûòd[ôºp)âq€?@u@ H|ä[öùÐnë+•? µt:Q H±( HùT¤€ÈWq@¾e?V]`>åX øJZ H~ˆ¤€üªR@ ä«€8 ß²ï‡4GŠü£.>e^ H& ˆÄR@þÕ) òU@oÙ7áÄÌÃÈyÐåKˆ¤€üªR@ ä«€8 ß²Ïs;^£üÔéR@ _q€8@ È : ¤@¾ ˆò-ûáSêÂs(À‹@R`Þ ˆÄR@þÕ) òUÀ8àÖMï{÷¶›oÐ.¤€)pá;–Ÿ:uêìä¶¥u×|pÓ{UÐR@ H(€ÖmÂ24vÇ´I)ðÇ ?~|r pî‚^ýuµRÀ@›°l’.J H) ¤€h¢€8 ‰J #¤€R`š ˆ¦Y®º*) ¤€M4QIa¤€R@ LSqÀ4ËUW%¤€R ‰â€&*)ŒR@ Hi* ˜f¹êª¤€R@ 4Q@ÐD%…‘R@ H)0MÄÓ,W]•R@ H& ˆš¨¤0R@ H) ¦©€8`šåª«’R@ H)ÐDq@•F H) ¤À4˜,œøÿÍ—Û™3g ·+[FÕîÜø,DuòäÉT±1žÂ¦ÍvÚ +6) ¤€èYÉrÀ† –½µíß¿ß4ݹs'âßîB#Ï¡C‡<Ø.ZØfäjëÖ­íN/;‹"xXaBI.¿Ëõ¦½LÅ&¤€­˜>xãjpÄ‚*°QzFk€'ùܽ{wë‚,}º¬¼aÅ 9€•¾ìD¯½%ÊN¯ÎóÙœ*.Ÿ—ŒY”]ïØïå’ ðÞ6ÜÆñ½]u /2¸}naž»ô@^8Z*äýœæ­Jaäl:jÛ½àÜŽ‰V_f‹Bi¨ÛX‚MœÐÃF;vìʃ7 ;²Þ€ï'@°Âãí‡# €Oße·›Ó7xì`ç‰c4€ï>ZdŒ·ºµJÕé‚Ê-?ÈQ ­z,­®È·Zó(_´f¼›´*y@Š Ï:ªc¢ùiW(óyqNœX}i¼iÒpÃx€Ù3ûGh`ߟ&Û¿¤ r1­>þ2ÃÌf…øÌVç2i¡àOÀ|²ÃíXlqºH™D¢ø×¦‚|ÛgIóŽ=j±ë00Ž#r^>/!¾ÞÖ`%-j(4¥ìø.â©õZ~¸ w]|KzÑè¬ð5Vs@ŵ7qÖJǼå}«è¯®"‡µz6Ì@s¨pmò¯@j¹6QçÚcÖ`~ñUÖ¬µ™ö€Xù`,YYƒc1ÇÑjú®£"aÆG 9 0]Ò«™jÜfñb·–Q½mvKWD·‚‘ÖùÍ%ïçëæiØ~)Ø(4Tì$xðŽ®Øóçý‚8×(1pàœ[™ƒ­Ð‹fðH °—\Í̆ÍLb£TèÂdÈ Qb“ÈfÄⱟv]øËº1qƒä ÑUÉ6‡©Pï¿dGȲğÞ%4eÕðQáÚ þ æu1‡¾& ¡Òö™‡‰s€™ÞóôlÛÍ_xƒ†ÐWŽæ›I:Xÿ¬Ÿm%s@YºqÌñmÜ<¸v‚0¶ í‹Ï5¯ ïX»-£¡´8 Ï»TiuTÀîtÞà~³âÞñ5ž$Þ&4“æô?ín­p°Å^4sFZ´fkýõÖra§fÕŒú$üío] $Ç»ÛHÈO°$*L²9Z¼Ï2ð†òtëÆ uïqŒ‹›YmçÚ´Þ RþêäÚ¤ÔÓç«^¼[r«i‰]8€÷o†ØˆÎ•*îØ2°f…£ Ʀ( èh™tzŸ ðþ 6ß l-¦ßû{ŸõßwŽãŸ¼Ëªlq‚xÌÉýÝJ‰Zp@¡+Ñ7A,E6•fq­€Øyðã¡A>ƒ q(ÓP)¸Lã†)›7`MP\ˆÌg…ò–=+A/²š²,8€•˜{V)Qç‚Êw—Ûùï½US?.à2lÎŒÙ:16] n>š;ï.›a%P†Ï#Ùƒ–ÅCƒnž>͘ÒꨀÝõ¸éØ ÇæýÏÖ…Ån¾¶¸\ñ³ÚÁæïŸ%Ÿ¢oÚq@Y“Uˤ6‰¾=áà…A|…`òÿƸc~ÇŠÙŽ†blÃÙ4y¼¨VÞ÷d/²š²,8Àl«rP)íñTAT Ûì¨õЩˆð~6ê«v!ºZ®ÌuVᇰ˜‘–Ò¡Xó‡¨O^`0Õ² rã»…Œ›­ŽM¶N—Éîz똭²!ð<û‰2v‹µàÞ&1àv RŒmá¬þ€îà½ÌvÙhB!©PLkšs@Å*µðQíÚ„`ki@ŒSdÞŽM\ÀºÅ,øø¦2e/¡ðÉÀBûí­5½[žOýÌ”±»Œ 'þ¹AßjLjÍÃ[%ïôî8|·v3¾Þäm·"”©ˆïúàñŸÀw͆ÂfÃÌê(t°Àv ›¥‚ÛÍôF·¢ Á{ÖnpzCé%¥ÎÖ)b{å/ßûN¨†7œ6ÑñÌÄF`ÌŒhEß •ç3 ŒL—?²L–è;be óñYú‚û0Éxlé®à_N>²Q4Æ\x0ˆ‡!}+P‘.S§Óž7j|‡Ø-_)  ñpþs!Lð xÞ¦ðÒR5ÜŠG $T æó{'»ÌYkÎ6\NàE£ÝÅA¤hÆ)~€™=ì±F·‚,?]Î8ÀgÀûIH¾Y3„¢ûÓúQs¥‰?Àæ ÂHL®XËÊÛRñR³‚ɵ9eH؈ **Ž\bã°í ²ªÌH(s2fsûi±&ð~7çÄSá`‹½h4BæJôÏzš·0þ ¦9˜Íc$Þ•èçí#˜ýDäÁäæ*ð¡"6ÿ8bs/?X°ÄGe"Ôr@µòv±±ÔrmŠÒLÍ ›î@ß«uá·3Dª R`ê TøÆ¼¬ÐËœ[ýBV8Øâø[¡¿ÍS 6:/ƒ÷ T¸!3Às-°½ˆÕ¥Ï’½çÂé{€ãˆ*v£Æ¯<ð¹ò+ ¹å’J¾8< ÅÇãÀÊÛ_ËÖ4‰OýžøÃõMv\`ÚEÈ;[ÎÕwÚ¥¬«“R@ ô €8 ‘•„R@ H* hÁ([R@ H) zP@ЃÈJB H) ¤À@ ´`”-) ¤€=(ð¨¨QBýA­YIEND®B`‚PK¬‚C7üúm!~!~-Pictures/100000000000028E000000A2A7154A00.png‰PNG  IHDRŽ¢@ÛÓtIME× )銣 pHYs  ÒÝ~ügAMA± üa}°IDATxÚì \eÇgvö^v9dA‘SÉ;3Q…×W‘Ò)5#>X˜7Yæ‘©e˜” ♾•&á‘æ©ô¢ **b^‰˜¢Ârî.{Íïw“ðø$Ââ.øÿ~ÏœÏ<3+ûßÌ3Ïk’W]½Äçñƒ@§IÜ.«Xòi¼···µ«Ò(>Z0ŸVJ™L&%ba U2ÕÆ¯6Y»6 ù|Ï®ïGôòî袡µÖ® ò¬ p§}ºyÁª”ÑááÖ®Kã*Ìgí_5Õ@:½ÞÚuA6…‡«“ߘ¥ÌŠÿÓÞÞþ_ý{vðv#4´µ+ƒ<3ù½žËæp8Ö®Gcqrr zNÿ ªA,Ї‹C«ù&°Lø§¡uDjø OZÛúâ)üÀy««6‚Ø8-&êǰvAù'PÕ‚ bÓ ªAĦAU#‚ ˆMôvAÁ` ™”ñüVÿ0»q ZI’,ôÞñi=èõ½Á²áÙU ˆ-B2Èk7îܺ]Ídµ*!=Më|<œ}<Ąޒç$E].¼UQ]EQ6| ËyÎ׃ÇaY»*­T5‚ 6 ‡=xꊱ¯¾ R¶î.x<ÖÎ¥çnå®'ªe–,×^0djRø¨0•Rií]|$Y\r+fX—˜1!„Ÿ n ¨jAl©"èä ÓhºÂÚUi,–ËúïÆLK7 ¢UuÚu›¶”””X{I’ßgìü£ð¿› ªAÅt_“ÉjåÀAª-uƒ–$Y,–±kzÛvŸbP4vtÒ °8‚ ȳ‚Á` (ã©Ã“ö¹mlÅF’Û…YT5‚ ­±?v.AØL4r-Ó’l‚p"{5³'žÞØ(Ì8 {D?ð¤©@®µÉã÷"8MÓMâ`h…B‘™™)—Ë­½Ï"¨jA¬ŒQŸä½FCQü­[½ñÆ ÒHc¿ÊH’:|¸ 0ðC©´Q­±jkQQ«¾ùæƒÁ3&aÓ¦CÅ{`™òréK/Íݲå] ¿Í¥™¯Ÿ‚ÃžŽŠŠš;w.wß^0 sùæMÀ¨9y›Ã´‰DòÉ'ŸÀïÝG䑨úMAÚ<$Eåž»&S¨B^ìÂær­Îhˆû—19tBJ¥u<›Å‚d̨ªªÛ¿ÿLT*Õ< ŒÒ'™j5h˜ä 2ˆR«5jµV$@Q·o׿åÝ ¯ýe¨Tj‹¢(ÆCÛ"MåË`àôégg;‚зoo/rMÏy3!bªT´““¦«ÕtnîtÁ­![öþ:ÔçJñ]…RóÂsžÅ0˜Q7ù2´ÆDÃÂûí·sçÎùùù 8¦œ:uª°°ÐÕÕ588X­VŸ8q¢ªª 溹¹iµZ|[¥UÀT ˆµaQ™¹GÌLžþù÷篔v$—ýÀ"ài¹\•–vâõ×7¿÷^F~þ ch©Õê×®Í MŽÏ$XùøñßgÌØ6ujZfæ½±Ï VVÖå)SÒ^}Óš5G`-¦©1v»v¢ŒŒ¼É“Ónݪ~h[FãîÛW«|úé^…BÃå­Ð^,gsvï>=yrê¿ÿ¸pá.¶Ù›öö|¹\ó]fæEÓ5v‹nüvOî‹ÑËÞ[µýÚ;¤Ø´ÐÊ"‘hïÞ½'N”J¥µwíÚÎŽŒŒ,--ý裎9ròäI˜ªž:ujIII+zqmU ˆõqv_ïÉ>#é­¸µw«‰v¢Þ”úÕWÇ&NL™<9H©Ô„„¬¬­-‡è«TÒÕÕŠ#º-\¸'/ïêÅ‹7ÃÃ×wíÚ!$$àwR®]+3èaÃ’ìíy±±!³f¥§§ç8:ò9*%%¬/q==ªø¾hôèõýûwòós—›ìÎZ¼xï±c×JKoFDlŒˆx~Ù²ˆœœ?*+ëL  K†† mÃâ zá $ìMûaØ <\¡œÕÛ²Bc“ß·IZ-ƒã£oö+Y…BaJJÊÌ™3“’’¢££¿þúëcÇŽ…††®[·îðáà êÞ½»£££D"Q(ÅÅŶßÚ¼­‚ÇA«a¼ÔL1£Jª0O)¯’}·ïüLyu°‹£°~ÉÚZÅÎùýúy¿ürW^鑘8N$r2''þÇ„¼dÉÞ;wj!gCøV«µ·o×Èåšìì‚‚[°•7ß ì×ÏO*]-p¶o?£Vë&LØòòËÝ×®L²{W¼ÿB«Õddœ‹…³gƒYIIYP TÖÎŽCQ 77{øýÙgûœ11;t•–Ö€Ëwì8 çÎ-Dƒªav|κe©Ò:USqôl¡yðÆíŠäô_Ö¤ÿòAôp{;^S 35çóùPCsJ®­­…ßr¹œÇãq¹\6› ìÛ·rss»uë æ¶êÿ”gT5‚ O£ ½NÿgYUîùëw=wõÏú¹lÓ×ÝyXàsûò«Ÿ2V©h>Ÿ R„áââÊž=EÄ_Ï^3HRo& h²ÙÌ Ja´gÏŽþþ®°$al'‹±ïÞ­ut˜›PÍŸ¶|yfròîY³ÂHRݰz&‡15-—ˤi}û³0‘$íΞý\ž•u%:úÛ’’ÊéÓƒµZ=¤s—ØØmÇ/!I†Á ¯·5á$úk»M;^ÜW¼™£SGç~]}Öý˜÷¤%A•<<<@À P«Õ}ûö Ïš5ëÚµkEEE‹/îÔ©Óøñ㇠–“““ ‹333KKKµZ-ˆÜÎήé{4T5‚ OðƒÍ¬“*–þwÿå?îtñr=>bèЀ¡Ce²¿4?rd·ß~ÉÍíÃuë̘FŠúJÍ3"ˆòêFžGa 4´nÏÑó08¤ÿÛÿ8áµÁ„»xÜ¢´'-‰ÉdΙ3§¼¼\gjÿêíׯ_@@ÀåË—{ôè§iòô©S§æÎ ³$ÉÉ“'ÁßQQQÁaÀÅÅÅÊÿžIPÕ‚<=À”£°ú–äµ9A9 bÂDbBE–”u÷uû<6bX`WN;!W‚~÷÷¶ñþûäRÕÒ¥û==Ûýøã4gg//§×^ëct+Å5ª§³³ÝóÏû§¦Æ˜D.›8qPÇŽÅÞ³gú‡î:~üú´iC¦M >tè2n©´fæÌ£G oܨ|@ÕPÍà`ÿÄı_~yx̘>sæ ïÕË„äîwuu™?ÿåeËWÁÙÃŒÁ`½~ý|||œ;tp;7ôêÕ²ººàïX$dúZ9!U4ê=„^o(-¯á±YDþgpoGwgãñ©­{ÒÞHàÔ±——÷^Éz™L†ööö†Y*•ñ¼G(†……Á¬ÊÊJ‹5tèP˜aì\ŽÀŸ>dpЀ-s^ñòî@h´Í/A…—8vÖ²°#¬]•FáíîZ¼/ÞØ·Ù yžeŒ×½…‡Î[¼qïÏkß yƈmúÞWªð8Dý³R|ŽSÈôª»%õµZRI3™ »¦æß:È»¦æÙÆöe,–±u7ˆM¥¢Á4¬Aáæò ÀZ° ¬¥Vkù|6ÌQ*5&§rîú ÖVÃò°‡Ã4=T y”‚…¡@6› ›€a04ÈfSPl`F«ÓÁ†˜¦Kîf\Ø‚1š+[ ImÓŽ¤jiƒd8yæÇr¶§º¼C+j‹‹‹­ýÁ>¨íÖôª+>û Š z]‡»ØÁóÕ5êÿŸÀT H‹c¶ øxÑ’-•µòÜŸjë :½¹o X€ßàé¬G†EóDp¡Pø÷#Ë0ʼ÷ÎfÓsÕFÀ‘ áVl˜qëׂ90;ûâ¼y»4 ² äã;çDµé)ê¿÷×oâ¾Ð ç÷¶"·øÑcd;{;â^(ÿ¦!õ–••)•JX’Ëåòx<ÈÄØhkU HËò×õR÷Ämþ^®+M ¤O|ñ¶…ÐëUÁÁÝNž ¼?UëhºÂ_ò؃&‹ãââvïÞ- ===ù|~bb¢‡‡¬Èf³ÕjµF£a2™`qÂÔ M_0 ‹1 •JRçp8æ>DyXæÂ€éB>ͺº:ÂxRÂnX¦yE(FmäÃmK`[>AZ=DjO—¹Ÿoíåï>kÒ+„La;7;Mí™AWÕQÕà§Ö=ÝHÌw£÷íÛ·qãÆŠŠŠ„„pvyyùöíÛ!m‹D"°é¡C‡öîÝ[]] êuuuÍËËûé§Ÿt:Œ^¹r%??ßÞÞþÌ™30–ÑÇÿùçŸ f8 €ua;;;(<##´m.óÈ‘#P&L„Y¶óù¶PÕ‚´ ƧxíW,Ûêæâ0iü¿™Ò ×cêjQÚµk×±cGHÆà×Þ½{gee?ÔÛ¿ÿªªªU«VíØ±ãèÑ£‘‘‘eeeIII±±±_~ùePPT*ûnÛ¶ÍÅÅ%%%eóæÍwïÞ}ë­·-Ztúôé1cƤ¥¥Áðüùó¯^½:nܸ³gÏB™ çäää~øá×_}óÍ7ÏŸ?OQ­õDÇfÁ à‚´æN¾ÿ>KR-O˜=V¯Ô˜^ÑXO«Ôw¥‰ÌÚûÑ,Äb.­Ñ5£Óî'ƒÉd„††^¿~}Ò¤Iqqq&Lðõõ7oˆ”,—Ë%I``àÔ©SAÉüñ¢££¿øâ .— ¹Ê¡Mh4HÉÙÙÙ'Nœ¸xñ"dîÛ·oCÔÞ°a„up¶9¸Ã*ÜAÛ111>>>Э}ÔÛ¨jAZ£§™Tnþµ9¾Y4Ðê4Šn:}g—IÑÿÕÒ­û{ŸÉ¢úøyúél¬9`À€ãÇ5ê矞={6$é;w§ …Â>}ú¸»»ƒw/]º”˜˜¸fÍGGG6ÛØ&ììì z®¿“M˜šÂCF‡´ Óœœ .ÃÇ ¶®¬¬,**‚üÍçóûöíëíí““óû￯\¹rõêÕC† A[[T5‚ -‚9=Ï]³ë§Äl× ¦Ÿìº·š>²6®´¬†Ùʯ¦ju:Ï N„´î)l T Æ--5vÖÊìÒ¥K||ü”)S>øàƒ»wïBΆ蜚š Á²2èRõÈ‘#ÃÃÃ#""<˜‘‘qêÔ)HÉ,ëäÉ“~~~`hÐWÝ|0U#byB~b¶áÏõìÛÅP#o‚¥Ú’§ŸÚî¨TªnݺVÁ¸0Ú©S'ð( ÷îÝÛÜݘ^¯<˜0]܆)L&sÈ!0D SAhhh}n˜ö…Å`Ч§§aº £½zõm›×‚2 ûh.³}v¶ªAKä.ývýHÞ•ýëãôÕ2|ÁÃSÃ,Ký½6öæžDáø›'÷ÎÌ ÇêGu&žk¦~–¹´úÅ(³þæ4zº%À?!A, |¡k”ê•i‡çD'h X­±P(ìСCóß4T5‚ ÃôvKòà‰K|.;8°+L@U·jìììÒÒÒFmî¼ ±xAË`~:«ªZ¶üÛƒ¹;–r¥Á@ ©m©T*—Ë™L¦X,†ø•J%œ]9::r¹\‰D"“ÉnÞ¼yéÒ%ìÕĺ ª±.Ž£&|¾5~"¡ÕôÍŠÔFñó8&Õ·ö¶Á¤ñ5–*›ë»´´4..®cÇŽçÎKHH€ßÙÙٞϟ?£nnn p[«ù3ªA `4«HpèÇ_;¹‹}zu6”W7óûd0Îæ_+*.g³Z÷×”šÖvõëÐ3À“ÐÙÖí^‘H „æ£GB’V(6l˜3gN~~þ±cÇ X§§§/X°æZ»²Ï:­ûoAÁ(fµféæý{§’ ô£Éeœ’0oöY…ÊÚ;×,D"Þ[ooQ]I%*¥Ö®ËßÀçUTT@QMÓÝ»woß¾½··7ŒJ$___ŸÎ;çääX»¾Ï:¨jA,“Z“z(<¸—½ ,q‹š$„ÜO>›AåÖÞ·fâº<ñ ñDª>ÊÊÊ ë)S¦xyyéõzÃ=T*ÕÀSSS÷ïß_PP€½„ZT5‚ ;Ü+$5Ùg W¼7†²ÜSÔà‚€H­¶öþ5•þÿì]\Çßr…;ŽŽtA»òˆ…LcEŒ%(ƶH5Š%ú”ØâCÉ/jT‚Ä‚åYQA£è³b‰Jçr×ÛîûvO,šˆìÿwâììÌ·3»;ß¾Ù™o>¾M!ᑵk×®OŸ>K–, äñxLj ì=z(ŠiÓ¦ …¨¨¨fÍš=ZïœAC¡j Ô ô-,1õ±½•©³‹] |ˆ2øð€§æìì¼víZxXFoRƒ‘-•J 2++kõêÕå‰E"ãʦÁP5ƒO},b¬­1‰±ë¾E4n+ŽÀqC°½u:ŽW‹E8ôOú¾48‚(ªU$à; ƒ"i BU½mÄ>8 hµZ±Xüf<˜Ôb®x–áé†s÷4>èçää9räüùóB¡¡Ý*ݼybnß¾­ßj7//þ6ta?qP½"SÁÿŽ Ü£Y R[+÷dd•ÅÏBÇ-\ºÇMËÏÒÉwI£]cáᇦ—–*Þu]Hãï¿N.W¿vÑ·–¤üÃxÝ»ÿq Ãøu{“ßzé’FCïô>‚r¿¤uX µCÕ @”””´k×.22réÒ¥¶¶¶jµzûöí={öŒ‹‹óññ™>}zZZšÝǺ°Ÿ2ô>OH±tÿékßL\³m9Šu¹b„ËFùÈ;‚f.‚°33‹ÁäEQ°z±¬¬â’%$%œ%¨•Ü Ó ^¼ Ô{bP&ŠWX(•ÉT]ºìlQNN ð1ÄkÞâý”„«äç—ÒÜÂB‰Z­EQ>½áD D"$€k¡¨‹ …%`ˆge‰ŠŠ¤u0¾biäÊí§‡n"8†ò¸™»ê§Ãf³ssscbbbccïܹÃçóß›*£Óé.^¼˜‘‘ÁXÒ˜p } Źsç@›¬X±¢´´tÏž=ƒþí·ßž>}zæÌ}2.—ÛÐ%ýÔanxäÈîr×® {ö\nÙÒjþüϺukDº÷СÆÆsçú…„ôe³)Ç[ææV³gïRßµk¬>¦"8‡ƒÓóíÖ­,8\¹rÈ!ýD²zõ'NÜú÷övݾ} ˜¬«VKtêäÀçs oßæSWî­‰>Ðûê“¿ðìݗ~Û«qãÆµhÑ—.]:{ö,tp°¡]A ²°°@èf¢R©”J¥L&366†Ãääd###gggHÙ…B!‹Å233Óç•ËåF4 ;ô›ááõzE•¯ô4 8Ôƒ¦= BÊH5·‹Ñ[`%Ômçºñ,•«‡ÏÆ“'O^»v-(#Ð&“&M²´´\µjP5hÿ7BàÔzÐ8F5“OþACý*RGTl(†‰Ÿçæ¼õõtGjá‹…cb©üÏÄÿûë¡sdÜ·Ã}fŒñC y'NçæŠ¼½7üë_ŽgÏÎéÝ{úu§wîl„$›7Λ³`AìÈ‘âãÿZ²$.%eqRÒ“ ¢¯][²qãÙ;.¦¤,Š‹»5kÖoÇlmMBBvìÝ{õÌ™9FF†òöÅH††Ü±cw>}?!aÞñãwFú%9ÙÔÍÍ:>þîÎc²³Å#Fü²x±?pö?žŒŠçäd>bÄ®7¿RS”/à!²NeÇÒÒTcI·/ÝzÒ½ƒË¶ÅAν:Tm"CÈÊÊzþü9ô_{õê5}út XÈvýúõõë×·jÕ*""’ݺu«uëÖ}ûöõòòŠûÛÐÐP¿Óå/¿üò矺¹¹íܹ3//oÙ²e)))·k×®ÇŽŽ†ìS¦LéÖ­ãÔ¬^Q•:{QT²åày¹RY‡«/PD&×îX6ÑêªÕ_AyœK)þLº¯kÒ½²»»}ÐPoDQ÷Ë< #ÿðáCÐDGŽ™?¾‹‹KPPAIIIQQQýû÷ß¶mRÿûñüôì‚M ÿ´õ”T&_4¶+'ëJ±,,ò÷„áý= ªiG¾š÷‡¢„NVµ±!µ["WÞù;g溃ð[ìoaòj‹‘H–—W²páçNN‘4¹j ‚lßÞÎѱs»vW®\y öùÑ£·ÍÍQQ—•JÍß¿ KNœ¸óÙgm:vìܱc‹ðð ­¶„ÅÂ@ÔîÝW‚ƒ{úúz!ˆø]åDQö×W­ èÜÙ½sçö§¾¹fÍØ#G¦A 55®’™Y´oß_mÛÚîajjen¾O«}øøáKþ#•תI„üë^úËû ‘ŸJ¾ç°48 §~ û»†r›6m€S}||À†âáá´ZPPâëë{õêUàݯ¿þÚÎÒ¥KOž<9tèP lGGG ðM›61a/_¾\$Ý»woÚ´i@êqqq+W®Ô/âúõ×_Áp ›ù¶]¨ª¥ç½zõ»Ñí ¸MtœÜÖ’ß{òÉŸ± Xˆ¶:N y?ESušlëÒ–$š¨÷Y©hËÞ…AƒzÔ‡p°@§ˆÅâyóæAÔ h–Aƒ­^½˜ûüùó § p9‡Ã‘Éd JøüºœéSŽûO³÷ÞAÆÏø„GŸXƒý;ÖñèYEª¦ÖR¿§e?÷ü‡Ý”—S–Ø,”Ï•‹¦ Ÿå>Í*ȧÜ}Z1e [‹ÖN6šÄ×ÛŽD¢Dþµk÷u:¢gÏ®5de$š™ñ%…‰ ÇcÔÑÖÖ”^Œrð’Ibâ ?¿6zQ;w~=uêþ±c»õë×™$ï¨Éçs¤R•~ƸB¡±±1IL¼õå—‘›6òövMHx‰š5€aM§çI$o™û­Ñêzwq+.•ÕìþCå„…¯F¼Y8ÖßË=xpσ ÷«È…ã8˜Ôúf¬ MÌb¡P0ÍC† INNV(³fÍ7nÜ… vïÞ =ÝüüüÀÀÀÇ ‚@²àà`???h>:u €ÀW_}•––bèƒÁ L‰ž®WTÅÁ(Šupµûe[Ä ‰R5â`ìºò2¨îKH<ÑÅ׿e—öć[½òq¡´XòûzÚk!44ôĉ®®®@Ã`:L˜0”EXXØéÓ§¤Á bee´a¨'PCþþþõQ%Û¶ïÔoРú½› ¹{-Gs*F·Ý~’Íç²[»Ø‘:ú¾O”%Í7@Ì2S¯ŒŠ/(–Z™¹ébo9u¸‹ƒå'qú”+¦ ž1ª¯…«ýìí‡Ê³[Y{z:……MKË =Ò«gO`n¹\ (=£›íåÕbóæó@Øåç䈹\<8¸×‚±«WGŸ8q7%åIî‰ä pÊ¿ØØ›3fHMu>®\TªOPR¢ÔjÕsæôŒÎ¤¼‡öëÚú×ðoš[›SSddŠŠ³Àr=ztú¦Mç¼±nݰÐÐ`æ‚Ýìêj ÕÃÃqäHOàÄ  /¸àþý×€Vþy4—Ë™:µ·¡!gëÖDpÿ~8Ô&  ¼\.ݺuôwßzú´ CûŠef±°aÃ<ÜÝmÁd_¼Ø¿ysó={®8;[Þ½»L 0\¸p Põ²eÇfÍê Ü aOO—øø™+VÄûú¶Ú°a-£RÒŸ2¢¨á8h¡B‘ÄÑÚü÷5“º´vä xˆF‡È”U«eh ¾¾¾ÀÁ@®FFFçÎòOHHpvv†³+W®„Ö‰¡Õ@2 æèèèììl.— ÙGŒqèÐ!èõ‚]¾ÿ~°ª-ZíÎÉÉiذa³gÏŽ‹‹ƒ2@'Ò0<]¯@ûøôøuÁ—N-lõëÖßõ[Ål_ìÃ7`5Qª¶¸uûOÚëY\VõvÅ1M\á¼×¥£W“}K‹óÏ.òüoôò·|;0âMœóï‘ß­X?–n£…ƒuzüjj€àÇùßË·–%q&.Ùò 76Ù¾à‡®…_ù•}Î`a™Ù…c–F]Žx—±¨ÿ M¤\©NJ}¼j÷Iûf¦[BGÙ·´š©4C Ã.ß|¬Òhú{w$•ÔÌêŸkÞwz±p‚ ¯>o³hÏ$Z‚­Â06œ! †Qñ¡†$(Š—!ê²UÂæxÔ´œ¢_sÏU*¥ô¸zy±·XÆÆFô‘^+btvxôý:)úr,Z‚~ý±–^¯Å¡¿ “e1å/„Çp„:m?RPR³ûÿ²<.¢R¿ÚZÔÒo¢‘—¤§§W‘HZ¡PUƒÌf³ÁÚÖ{(2†H5 „šôÎáñx¡æÓB$¤ŽS3á¥R)†aóB¤Ab8Ô{MyM@üþƒ±Ê´“?†Ž¥:¯Á¡™©ã0±Š?¯ Mud›5ÅvVf&mˆ^þ "–¾éNƒóŹE{Ž%Ÿºr×ÙÞòÈÆiÖí‘1YJ?WÌBêtÞÝÚPÖ¹\U…º§ÿ×êé³ì{°>ŒÑµ¦·‡[DØlRל,I¤ÒaC<›îÒÕZ£I( а Bwnåia¡=Éãª!Èãysì­Î\¸áÞµ»››+_R¡¸?‹ÕÞØA_òô ¥:ETÚ×ҌϢ>bEÇó G™xmEë?”È„Ju7sc.ýeb´y,¯à[K33› mhˆ¼\(îËÂ; Ð2ù…*Íå"q¿f /—/,a$hÎ%ÿ±Tž­P~îì¸!ísúx@ŒFGÍ+±43ç°ôZçÒý'[ JBרîËóÜB‰\Ù¥usý!Êe#†~#¿ØmÅÔÁ8›EV^]s¨µ‡×N‘Ê?öŸß ‚ ˆD^Çr%ò£§)”ªF1ÎÂq3hàÕZòÊ >}åÒH@ÒÖY‹¢ò¼µR·U"­Ùˆ¿£5Ô7=F †rb~QPK#þ6ËÜH`njz½¨ÄÞܬ«™1BÛaÀœ*Í}™z|ë–À©:Ȉ *‚L(ù4·wðtú-xä‰T!áh‡7·CiÖË?•_èæbÆeg£Ô08’*.µ63:GÊÆÆ‹Ôš»2ÑwW½|ˆWdb¨§½›Ÿ(“¼˜­é`kffÆcáÖ&†`ˆŸÈ+éboÁe¿” “ZÊSOŽê1¼¹?ã;^•÷¾uðb v:ùwgWž‰€T¨ ƒsç~úøeѱ맸¶ü?{×ŵõgvÊvÙ Ѝ4{…Ø5,Ä{ì1yÛ3}QãûüŒ1ÑÄ®)OÌ‹åE #hDD…Ø("¨¨°°»ì²uvfÞ™™š|?òååÛãþpvæÎïÜ™9ÿ{ι÷ž@ÖáD~žÏã%Å[.õþÕe®ÿ_ ‹¨2øü_×Ã#¿‡Ô UszYJ `Q4â ‘Úh–0,bs½èìÀǘ„±»øIô6úßj.°¸p.¿QWÔE9q‚äçfüQV—󠆱Ø}Y¦P \¸fJŸÛ¹\N{ÔkcçnÚc©bn[–ôÍÇ ˜‰cOµ`=†á9)‡ãWLrð+ñRÌ\w´cß^° d¦öÆÙq72NÆNY2|öGì³™2ÔÈÖ÷fŸ;ôU—2OìaÆK¥Ý¢{TXðñ”è ðùÙ©Ð'˜³)içŠÉf}Yóv]ÁJƒ» ™þÖš¯À¼>¼iõ‘íË´èÁg¬þ†z^Æ h3…œ*×÷ЪU¤;~ ;³õ&RLtתÏŧ­ŽL}Õ³ñé&2‰À£‚_úºÉRX?~2>ÝÍG¥y">¥7;æ©øt†¾ N?Ÿ–ˆ#žˆOƒ= <=,à1¾Çï×4(KL`˜è¾ÁŸSæíE¶oáûé?sÓïvhÕLÍ:éÑK’¦•€®hè ö^;½mPï®A[wç.ø<£usuÛPŸÓY¥ï|t.)ýþ¡¯âªË@Çòc9ßr ‘\š¿g…ÄR‰—Lì4Yý >@Ø ßìßcLo™”|¶8!F s®}¿ñýV1±SÿëÛœ´£{×ÌJÝ·uļ÷Á Ö?,½`ýÔ•»ö¬™•ub¯Í²§0ç<ØI݇Ï1çÓ”ý[oYÒcÄ; ©¿\2JÓ Éì ?8mÖs¤'Ä·éÞ‹#G–ùö¿gOY´yÐôY6sm>¢ÇÂ0ˆRÛ6äßµ'ËlxïBÂΫ)?4kã¥PßÎM³hS`óÖÂÛsŽ–ì?ú­Õûþ±tü¹#_G GbàéWÇÏ9wmÒÎoý ï˜y!í;8íO·´PÃëMx˸á„ü°åŒ c²Cc¿=Ù·ªUþ~~wÍ Úº¡˜Äþ,„f’Ëõ]ƒƒš+åˆ;‰{ÝXÍÈES›ó8\1“ÝY\Y5,¼¹ŸLR3,š½Xa ôóí¨U!¬ÃeïUÛÊi_òþi!ºI£•¢ÿ†±š’‹¦5oâŽÎ€½î ®T‡„5÷ ô"ðFjo…˜Ë#TøHÿùÔó—òßˆŠ˜Ù«Fà¼Q^wÒbh—6 øõwVn_8<õûícÇ=U é›5w;¬æ{ùW n#æ|R{èzz’­º >éGãákìäÅV‚ñÓÆÖL‰©-æÛ(dË…CYÝßhèè«é„´ÜiC»öìÅêŒÈÐRYñȸÔUóÿù÷Þ#ýxñZùîcùã…Õãtè˜þ ‡É5ó¢i××÷¦ç”eÝеŒiôáÙ.Z7?zJ\¸ÑìÎå–÷’q*R¥àÈO.ÅÁ¾Ù¸÷'àéˆ&ʃkûûûȾ>Pá¤4$Üa‘¾ªZ’Q “HªxÃTcBûrs—Ö@QZ’ä$VHï´ ø5LÜcÅQÍXhЄ=¼/Ú/l ËŠ™(ûs|0šíY|)&’ðùþžÂ‰D><ð÷øûSíf?¼r¯,þ\®JAø4}õ%߸¡Ý† KŒLܱJ¡ö}ê¨D&‡[–95<ªÏØ…›CZÒ´ûi¼–ž˜“vÌh/¥Ï˜…›Â:õ¤4Ms¬qK¶ -ßÕþ–:&`t‹“rúHOŽmäáixäw–úu€Ó û¯Õ}#ß<4ûÓó`û ;YšE1tëânf+õ]RáçJ*Œvx齤xîÙ»V»+´±rö˜6 dä rx僚“ ŸÆÅPaç×Ëz¶hª}Ž¡5‹”9Æèr5çðÑZ|#‡/ ¼Æ|1À·ý*>ã&ÎËK²'/¢™r‹­]€êVÝ_‘Ç"W#oÌÿlËü¸ä½ëŸ:Ô{Ô»¦ŽÞ0{Vêþ­û>›?cÍ~©—ûm‚SúM˜%ŒgøQ~ +Œü@zŽx§öЏ¶— *ëp¯Ò¦UËŠò´G<ò;KýR5ðn·˜FÙrÛ˶gÑÂÂýÇ*±³ÿx±,–!=ƒ%¤{êmµr‘•`³2Ï ŠÐÂ{œ}㞅̲¾Z™`sߺc\öv'o/bÇ‘¼[ÅÆ;¥æÉw:„û\N‡˜^ÌΩ#š‘Š±¤ÝKÑNàˆÞ¬‰žià—"’x÷¡ŸÎÑnxIƒç=;Êh1 YKظ~ñdÌàqÅ×37Ïѹï¯ÿõlRÚ¡;l ~ëÃ#bofæe§t2Õ¨{; ²Ó ewÛÚé=¿•oB' YÛ˜ÕÇÒWOqfߦ˜¸I> ýk'ÚÖADq;'=í`bçþ~ܵöhšb8÷Ìt>cðŒQ7/Þ¿v>±Ûiægúp¡þåHò‚±ÐµÊª¬ µ—¯Ú}X*þ8>ÁÙ¾ïÂW{I¹™{ÜívÒLšÎ íUÂp3nôm“å¦Ù2¨ ³Ð*ŠJÕÛ+åAr©°þ]қ̔«·ŸÚ½<Š–Ùç+«úûiä5~oŠO« ¼£ú1~‘ÉrÇÕà›(*Egl«”{I݈øh^6â/^ݲ/åÔ­þL$ÈOÕµmóC{žÏ½9ÿ¦ý·µè¯ å@º 螟½àèöåOþÕ?BÞþxKQnúŒ“ïê3f¦ûír=±`¥»›ÂǪï\Ï|òÖýóöÑÖy² ùȱ Kÿ±vÞȶm›!¶Îìx¤ÎR¿TÍi?+µ|zÇ݉É™Ü{½Å·_žصñ±õ±hdà°Þ;s ô@ä­C4.š­¶Råz›_ -èÉôÜGÏÁeØÖÍÕiW]ͯŒy¥1BˆÊoî•qÏ+íüïÜ­êÕ)`Ö¨V©—^¹U±öÛ\0²/g–vìÐà…Ýà¼ÏÖUnÄÅøó—Ä#0“Ñ"ðôèþ‘EìÉ©÷û:§ó9¿e·"уâ’÷ôÉ8öMÉõL]i‘Ë鈛±Ì_³Agª,ãu,b·p)ÊÖ©'°õÆ9RöÇåžM³;"²O@ðЙ«oý`ÝÛ}X†Œ=è­åRP”Ãn· qo-_9®ýÎ'ÍÙ”ô¼ÜÀ¾ãßì] \TUÛ¿wö¶a؆MAÀ…EDpǽ´pM--EKK 2-—ÔL{³7ëë3óµ>EùúD´Ô|Q+7TWLü\CEa€f¿s·÷œ{ghX”EIÑûÿ ü†Ã™çž;÷Þó?Ï9çù?F= © 1›à÷þ¤)J[u‘t¶ÖÆ\9kçìùÆífñ©À® ñi/8Ógã±?m¾T°T‹ˆ  ",õŽ=i F2ÆÃUÉS=äå5Š SV©uîUÍí)0èj4$ÅgäPö–WúIÄDN÷«Õð«EÑó5úR&¾Y¥VׯO¨¨Ž‘;I1Ó=³Ñ>¾¹¯‡kyµšb®îš°Bµ6Å]nÔiu´5~zïýJ‰8Pþ—ý‹5ú›Ð¾¢Òfß@PùåUQ.Ž–¿ì_¨Ô¨0K´DRm„” î Ló÷¤-¸Ædáñ[ÿŒð£N­UÃí`€Ge|p0û3£NcGç!&=œ¶ÆÁ{>¢­¦Óç­ûÇŒ¾Û?™Ý9a õŽbn•: A!È®ž’`_85¶lìˇV£Íw€ƒ.[éé°jvü›kŽ[‹ø¼ëw`‡¡p‘ ®ÒÒ=WöÀÌ0€ž;{0ë˜Ì‡„,¼«Ö5¢qOÔ¢iݼ¹oÖêcêî,ùvwÉ­2ý€x©X0añ/'/V|2'!óõXo7Ùç^.¯6ùxȲ B¶@·ˆYÆôYôÚÐ.Á>"™1bí$ÂÆ«S4fD§¯Ê))<¨®Kâø´ ÂÃϽ<ï3̤7ëáø nÐx¯\Ü”"1:{Ýžs‡wå猞óIé ïð•šünpTâÑÜ R'yÜàq£’,fd\æ—žþ!˜ ŽŒšºì{@½€dN®õÚ† ñƒ'øw¤NÑHtÊ(™£<*e”ÔÑåÕå[HÇŒµ­¥”áS—~·cÝü—ç­Mì.£3×î,:øài0Dè10Ý+ Çw°@Ñoªj!Ÿ§p¶À¹Yküt¡ÞÐÇ]ÎÄO#¶øfUˆƒ,ÂÙ¡6¾ù’Öp›‰oVìã§{)\üdb’QÜÕ€ ŽÒ‹‰Ïö…0~š8Y]“Z7~ú§{•ÁÒÎvö³~ËhNa6¢Ûâ§‘ŸïW&(\ü¡}šÏޏ“‹<ÑÍ£¨0¥ÛÔ^]ãBý.ãx/Wg! *ѯ4Ô ýǽ­Ó¨ôj„$hž]ø}!¸âáqýÁ®÷ ¯»*;„Ʀ8<ßÐî)s¿Ê¿]rÖdÐzù‡ŽÊX¾ÿzùB¸=" hPLÀî­S×a¡Ñ›–Ϲ|ãžS;?šüÎW dø€X S8Çš‡6GÛP5mÍ0hY¢éÙº^ªØ¶ÿ|°uØ{S£¿ÝU²ußÕÝ¿Ýr“K^H ÈÉ¿·ÑVÎäŽõë÷ý±s÷Á+9F9¸§ÿŽC7ØÞÀš(‰IüЯ‡ÏŠYqË7½±â({Ìû¾*”>~3þ¥ÌY_œ/ö_o¦wVÊiíã×µ§qÂSá¼cmÍúÜÌ©‡²8ÊÝ¿ÆÇÎô–ä™<T°`p<Ó¼@!n±X½†½’8â¸0`[îuXljx\*kú¯fºoúlΈҀ­{ ›ŒÀùv‚ÀëuH‚^ì±|CºÒÎöû¸jžÔ68,6(ã;i&…Y \í”—2RÓ3Ø`xpFàiô– ÆL÷pub– Vcį•ê±>90„…¢öW¨Cd¡N2 kÓl|ó5ƒq°§»K\z#A·¸Ÿ‡+£ë ­_§«µà칂£±\m!¨ªG)ÝÅ|;6öÿ­Rž³³Ë`.чxÕ·Ÿêîê!öQFÙûŒZ>ÒSᜇ ®’¯&¬2YöWTŽTzHûpë!Â.t´r h6Ò]“†€7&€A›g‡ÐA“ ŒJ¨20 ¼àU³IâÆ­u©‡N_Ôð°à& ‰J¯úåP…nu*FÌBÄw ÚuìÊÕ?nýϽ=)ã3P2fH… ˆ½qn[sõòN9E5qôß´R„ôpufSJóôŽ;ÁÄO3q„ý+:ÃeÆ>i³¯aô½kÎð´UŸüŒZ«#Èž vŒÛo0etZ¤[ ŒJ´>êÖjïºÑKÏðƒn†zÕd°™åÍG•F¿bÖ¨÷ÖïÌýWÖÖ-‹¼½þfYåÜñý…Rmiq„š¶J×ãï‹qš€r›”ïáѹ›Ü!cÄœ”+¤Yïô„µ 8¢·¼üb8‚SˆLØo托?obä¤!!GòJöŸ¸ª`8 ŒvöîǃÙ>`º„*7ÈEs3âàŠ+F@žf(“Öa¨€7jX§Q£#Øì H Ö<ý”C àykµA«®C"4ô‰º&> è™/@¦¯Üœr]uëÛ æ#,Oƒo¿Ô„Vk­úÞ¶õc@ÞQtýíaJ÷zúÞ1r';}ï#*5¨0ÀSÁê’Ö®O÷³Ó÷æ1ö•qwù_ö™õiÓ0¥i³o  ÜJ”‹£Ÿ¾÷ÑJ FÑ€§ÙŽÀZ™cçÕÁ8£V?ü@¥†dfÝE¥½ÀˆYÇ…ÿ¹z›ñŽJ&}ºdʧ_íž¼dóš·Fû*©öŸ­’‡§m“®î\"³í=»U³fÙ²ÎbVÛí›Õ1J…0¢ú•G~Y¸ì›"3a5w|×>1L¤PC›…hÌuŽËþ&i@ÿˆ¾yÍ}Á²"n¾þõþh˜$š˜`纕A¡3Þj‡¬6]‡ ³2<'gô½ùLàòO÷*Gøv·Ó÷þæ¿ÚÖ§©ÆÖ§«Ô€Ýj×§yUx4Ån}Zì߯ ”Jº0y>XûÀ_¿ í»Öê{Ó Ö§A5ÀÓ8E'¹¹à´u}]ƒU5)îrW›>9°¿ç~¥¿T“;åÕPÏRª·Þ&ËØAqßì<úöô¡HqÁäÁ'Ï_›¸xÓš¹cz¦FS* Š¢ÜL8OQ¾jèk±×_Œ˜444'ÿzY…”LÖÉÏß™Æîùojç¨Ý·Þä—iK¤Ø¬ÊãO£Õ~°¢z$»~Ì,·›}ïºIB¥Ò:€»®7^Ñ{¹ñ¡žœŒ1â$ Ã¾îp}gÎüü®ÖÕSáB3n1\ŸÆ,ùåU#Øyu¢#ª÷«ÔR¨KÊÚgÖ§M`(æå&¨k?ÅÝÕÃfŸFè"4/Qá‚Øìk0üßåU˽ܤ|[ ØÏ¯TC]R'Y)EÙÎõ9M÷íöÙÖ–ƒPÀGH²gdÇ#Û§ÏYßëâw¦ }¼A\ÕÔ*KûA3“èpøÀî®h»Üm§ˆª+H%‚WÇuEà”5pާÛ)ÀUûÓŒdþxì–Éæ(;K_eÝVð„¨IòZ…z߉“ÿæ^†s.ô]3á(;NS¬)ø}Çlö‹Ïðy„UäÑ⤎ ‚dÒ=¶NØ„ödg™÷ìLt%fðx"!nû …¤µG‡;ûwÍf/±è Ÿ_k_‡“5,“î³Ù^õ}qFèe{ HÛ^iÁ…Äžàèe÷]; ©·ÝúFç o©XTxéVïè„  õ¦6e~²6g⼯—ÍâÃî5{ÔÇV(;ÿ+…» ¡ÛùãÒz –ýù[ˆ¬!‡'‹ÂÂÂU«V¹»»?é†4 ’$Ÿ.ª¶‚f°màxºî–gLO¾0AÕѲ‘;Hßû|{☗{%R¶ýiBÅëŽs(L@iïXñÿ›¨[MÈ”Øñ™{†lP­Iû(SX¯š¯RÙ3!vÚ”A4Å¡Xû &ÛŒSç¯üT¡à Ï{ö “;†ø{]þ31ª#µ‚®PgÍ~áÀ/g}½«OLè왣P“™f¯[ÿü ;ž¹vsÅíÛê'}Ò„ÀEPÀ¢l™„£ê§ ·8qâ„^¯Ÿ8q"Žãn°í—äøü•+W>•TÍáY§«S¯áPè­ÞT“³ÌGáÙ»WÏ'ÝÆfÁQ"N샦®(à&ãŽ;8Ýú0¨ö 1qHÂŒU[çŽï_ë:ÃßóÀ>QQ¡þßí)HýÁæ%SB€Û]ÕZÉZ¡tèØ­c êIŸó#ÂK$ã72Ááï¸]%Idddjj*†=ÕJ>p3¬P¸yófŽª9´! /Ñ “ àÎD»‰ða2¦3Ž«§Tœå·ÊjûEuè(‹NßHˆ Ep;©R ÷T8eN7 IÒb±<ý^5Â<ÏË4úí«¦¿ºì{Φ^ [éàëþÛî•éb“§¯Ýq°¨ZkD%"TÀgvâ?NÚb¬ „×|³¶6/EðO1ÿâ׫Sû¾ÑBÚUsàÀ¡e Rì­ts¹tòD"ªÇUpéš éûUiiñ'¿{¯à⌳|²ýBI)ê­@¥0qj½À?%"ÄIÚÒ– (ÿ‡Nœ?_Š¢Í d×óó/ìÚuEE®&*æ?bL@,h½PBó…biu†àöHò<ƒÐLö¡øI·£-Μcýüë$õÆ‹Éë¶ÚÕ‘Q}Ø“Âv‘‘ùy‘·Uï}¹óÍ5ÛSº‡F†úEuò\^ZlOßtLž¼ðWG&ùº:6˜ZÏœ¹yÆ#FÌšµmË–×&MJx äر«{÷''‡9²öçŸMš´)))dÁ‚o½ÕwáÂ4À¯½{¯‰†‰¤Ðs¿ß»eÃ3|ž‘èô±CDtWûBÐmuöC•KWït öiÒìã’º[É Ö.ºö£i—/9qñƇ/PÔ¹‹×ïÖÖüàë7ì<úÁ´¡ÎŽö«×¼ÂÂ+€•7n|eúôQ99û•"¸sÀ€ˆmÛ–¬_¿uáÂ<©þôÓü®]}³³§­^½ñâÝï¾;”‡…y:µ¬¬ìþöí¿«TåÀ/+ÓžÎ̼dI:‚6˜N/*Zó믅ýú}VUeÈÍõQ^^Fddèô齋‹ïnÝ:ëöí{ ZZZ×%Kf¯^½áý÷óÖ¯¿§P8Ûo\—ID[¾ù©FÇÅU7WG3‰lÚ´Édzüß Z ê«­™ U¯[·nÖ¬Y ðw“7-Žã€×Á…BÞ”——·‚­)ŠrppàóùZ­¶uºuãàÏ£‡ÌE=§óä7Ëå3G $B¨Ó"èMó¦/¸p1^Ò'ñÄ@ è°×_|æçc¢#?^ŽšòŸe­36Ü+®[¨}Óy9G‡ùýúû•ˆ@ïfæê€ëÜ$…¨¡@DˆoDx‡×Æ÷×Uh²¾ØYt¹´¶ÚrõÕÛ‚:YvÐÒRØávë†5ãÆ¥1:³FàwéJ0ÀÜR© ÌI«5%'¯•==@ùÙ³¥€ÎÁiøø(çÏŸ‚ å µ·o«}}åþYÕ(O# U;:‚Þœ§×[ Èd"‚ ˜!I$ÓçZ…v¼¼7k{÷—õéãjOÕpÅÔd1š-‡Л`d³^¯o‹g–ªíèššÿ°w.`1fŸi¦¹uO·èêÙ\jS)¢(’. +¢² YTÛŠ¥UBrÙlD–Ýu¿[±î¹­h•ÅŸ źm*]TÓLÓÌü¾3/óo±T*á|Ÿžžóž÷œó¾Ó¼ÏùžsÞsÊ-Z4nÜ8ƒ·foÕªÕœ9sŽ9ÂçóŒŒLLLKJJê…[\]MM-33377×××E5àƒ¼ ÕZ꼩~>.Ì·©¾œ¦É^0µëibkaò¾oý=K/ÑóòtÃÔVG#Òßù}ßEsH>ôüï@‰d´‹ÕÔ%['{ö—ïdVÏÆŠX¾H½PÄa+‹_¬ÒNOsñ4O¯½8*©Nçk¥–vëÖ–Ãa¦§ß¶¶î4qb" ½víxÙï²ÿPjÆ”Édwꤘ;g9’yøðuÔªnn=23ïUU‰²³s¿üróîÝ_ŠÅ¹ÏŽÒÔœÐÏÅÅüµ7(¯á%Šz^>tý|5ïs¿Ÿèþ)¥ÑØÇßÔÔäöëgŒZ£v9€ô—ÁÃ$…eïû;l‰R2еøç°°°¦Xò_Veeå¦M›ŠŠŠ¨˜™3g.Y²$%%åæÍ›oÍ®¬¬|çÎøéuëÖ=|øpòäÉ]ºt ne;FJ$b±^Y1 Nu˜Kå‹F €S4ù£‰ôS¦L3f ‹ÅTÙt‰:÷¨¿ ÕÏ·Èùx­B“Šì0ô‰èSþ¢¥bI cÃ6:»N^ía/å ö·Á¡Òéútž<¬ÿð~´ârœÖ¿m:j¶nÝÌV®ô›>}[JÊØâÔTøc†¶¶ —ËÂyGYnm•gÌpòôL61™‘—W4gŽ«H$^¹Ò×ÒraÛ¶á\OOK33Cà54´§LqˆˆØckk*7Ðÿº Š [K‹‡‹ÅDWd³™ˆtpH(*J´·7ûé§ —„ÄD¤NN>½m[&œz\ÜH&S[*-}ùO¡D'›„¾^/þPM·£Iuuµ±±±ŸŸ_ll,MÞ]÷)ÁT˜i„á³322À{PÖÌÌlÍš5AAA(~ÝÆÆæØ±cÀ9ŒxTTÔþýûñ¡¼¼¼ºwïŽ4{öìi×®ÝÅ‹¯_¿^UUµlÙ²¾}û¢%Q—›ùD¡‰ˆˆÞ]²*¦¨lÕÜ/ŒÃGv¢W5°“ÉPŠ õÐîØšV-’>,¤ýǺfIyp°›½½ivöƒ!C̵µµ@ù Æëë«ÑhÏ\]{|þ9ì¬ÐںǕ+sÓÓsLMõ--M£¯¯ýèÑâ;.·k§iggA£ V­ò+-åÃû&$xŸ<ù—ªªºüÅ­Úª ´õõíC£UZYîߢ®ÎE³àÂ…È›7ÿa0”Z·VG$—+›Rþí·Ã,,Ú«ªr,--jjŠ˜ÌOi»–-Ü3føúú¶i#ÛL¹¾SÃÀÚüüü‘#GÂ^Ãú1ÂÃÃÃÜÜ.yذaÛ·o‡ó655…MÅgÏžíîî~õêÕÔÔTœÕÕÕuvvFAOOÏÓÓÓÄÄdÞ¼y¿üòËúõë8uêTûà ª‰ˆˆ.k:àn›”|`jÈiQYŒ5K™©ÍfÑJÊßPÊãeï6wíÚ¾k×ò‘`¡TJ³²2•Û$QëÖ­[kI¥54Z¹®®†|z>5N)¢Ó•|}©>bŒŒôä¯JWóxìaã¢Rÿ=WÁWƒÜßÛÛÀFÚÚªöö]©>í=:öèa„xÜÀ°a½Q…Þ¹sñA½½ŒëRi1át‹’ªª*PM{éú¾¯…gK__?99ÙÛÛÆûÉ“'ݺuCxíÚµÀó¡C‡úôéS\\Œ’y<<›Í Ñ@Ô722‚æp8EEE¸( þìÙ3d¹uëšò7õë:&BPMDDÔpÉZ\>7x¸ÍøEÁžö,¶2MÒ é-òqÊ7cþÅYŪàT„Œ ò¾eÙ‚á/ÒHä?µsÉ€]+Fq9Ä/X0\,Ûˆåÿ¯®¬¬D£UÕJ£{®=EÆÆz|þ÷ÊÊÀsÙ[?Qó‹0¦5ô«ªØÞ½{ÇÇÇ;ÖÉÉiÀ€—/_vtt„WNHH€í‰DÔ@5SãÐàtUUÕæÍ›FVûüùóYYY wiiiëÖ­þùgmmíáÇÖi7šOtj7QcJ"™ä¿•¦Ì”~€3QY,&—Ëâr•?uwÆh% /qÒ¥ø|¾ÝÀaš=<<?gcc“ššlÛÛÛ›››£àçç×¾}{ØÍÍÍØØx×®]¹¹¹999°ÝÎÎÎð÷@øš5k6nÜh``°téRÅd··Š¸j""¢w¬ƒ•¹Qê¾s·ï<23Ð{ß·CDÔ8*)) QSá†ýýý'NœøôéÓÅ‹3™ÌÊÊJć…… …BXçõë×SSÏÀïû÷ïç8,++ËËËCFõìÙ3¸|WWW±XŒrê>Á šˆˆè]%Ÿ«>°o—='³ÃýéԬ̂Um¥è¸þ`ÕŠÁ ý—¤€Uj8™êEW -+Ü0(„Sá'OžP ÇoEç65J Q‡Ô²ä´úü›T5†jÄ!cYþ.t”ƒ*—óîåAÊG ŸVÉÿ°WQQa ÊEäµ×®Ú“Îê8K\‘¥^o5LÕDDD Yµ¥ÌŒ™â>3qWÊ’É´²Êw-‘/,:±¬¨¤’Ñd¯Û6Äbɦ™´ÂÒ÷}#D¯57»¸¸8;;ûñãÇ;v´¶¶†]® }oݺUPP`gg×Ô7IPMDDÔ’Ù‘Š*/‡¥?ý󜞖fÒrþ»X T ­t5[éi}€ÓÔ^úÓÈW<«‘Éá-S 2›Í «©©100ˆŽŽŽŠŠ ÒÔÔ«««KJJx<žªª*µ ™X,×µ´´p677÷Þ½{666HÌáÈ:“ÊÊʇ,‹Ê‹Œ***ÔTðÚk€SiPZQQêêêÔbgT2ÅÄuJÕDDD§üâñÁÃg$ß>Ÿ®¤$}‡ŽAYÆêgUZÂé+|5 ã¹sç"""¾ûî;oooà–Ëå.\¸ðÔ©Sƒž5kÖÁƒ?î›™™M:5%%åÂ… ^^^-°½sçÎ-[¶ ל9s:wîwòäÉAƒÍž=yüñG\ÅÍÍmâĉÀ°D"ÑÖÖŽ?s挑‘Ѻuëpõ}ûö‚Ü#FŒpww/-ýׂwvÏQË‘ÌX׈µ5TÂÆ ú*f“lÏG‚'¢/€Žö›o¾Pိ­­·mÛvöìÙ¤¤¤'NìÝ»÷Áƒû÷ïwqqÑÓÓûþûïa—·nÝÚµk×+W®Ø0ÖÓ¦M†»wï¾xñâ]»v¥§§#/H„ù¾¾¾¡¡¡ùùùB¡¾~zÅŠ‡Fã ¼¼Üßߌ_»v-Z jjj111¯nÀEPMDDÔh’ÑZ"ÑߢZTsôôŸtZýV†""j~á¡}üøñСC/]º^ÂRûøø€Ð@øùóç[µj•••…4ýû÷÷ôô\u^^^`` s8€ÙÄÄ$ þ;-- VäËá’¿þúë°°06›Mí“ÁîÝ»mmmQà¨Q£222”••»téöÛðî¯Îk#¨&""jL¡Ša«rCF9&ï<-iØÊeDDÍ(à³°°àe?ûì³Þ½{ÃÑÃŽŽŽöööC† ÷­¬¬¤a‹ÝÝÝ῜œ***¨èN:ݹsç?þؼy3hmhhˆ¼Ôê(hà0%%%$$†…Pãß3 ³~úôi˜l±XŒ’ñ›Ïç×Ô¼f܇ šˆˆ¨‘%ŠÌ-ÍZužŸò+]_«)67$"j,‰D"°vÞ¼y‘‘‘...'OžD`üøñÀpPPжmÛtttX,¬0š¡ ¸³³lÓÛ‘#G",5b¬¬¬`ŽðÕ«WëêêN˜0‘ðÜ[¶l±Âccc=êêêŠB@bøf\×EQgÏžMHH(..Fü§ Ý ¡¡A“O«¬}“tG{›án Û|L38ˆZºÔ¸g,÷™7tÈ÷}+u’a{ý{ceS‘ uê çÝwšªžK|9¼Gwci•Ì«"z½Úëjvð,6_ žÏµk×Þ¸q#""—z\)GKÁ’Ëåœ8Ma‚y<,/NÌŠ”ˆ¤VÿÆ!Ò#€HĨ¨¨¼”8o\—-Å`j.®ŽË! ø ËŽÄ”MÑ©[E22iÒ$2œˆˆ¨‘õœÊ¥{–‡Ú,N[9M]'­×—Ö J*ùÂ¦ÛÆ¸y„*^M…ÓVöÖh‰¢Kƒ¡¦¦V;àT„XE¸vJ¸m* RnøÕ¼Êr½t9ˆ+°xVj‹ šˆˆ¨I$3+RéêÈÑ“b6mZ0Ça×/?‡e5i‘ã€NÕBñûþ(ï$›qþLîß§“h%åïû^ˆþShQQ†>XTăˆ„ñ}k[Ï<  ®WVV"L¹s„ß½¹IPMDDÔ$’ÍK,ºtðsî;3qçšØ@q9¿K)Ñ‹ù•[6UQQ×݇Z¦TUõè ?Ùz«¥Šê711ÙµkWyy¹¶¶6µ±4ð\UUuôèQsss±ø-­Fpº   77—Z¿ìêÕ«ýúõéßpé6mڜڮƒZSŒ´¦&šQåàÇã]¿~=44ôò分†;vì¸}û¶««k~~>ƒÁ@bjv78¤­‘ËÃÃcÉ’%ZZZÔZâ¹ÈËZDDDÍ*IeUèt¯*Aõú‡é<N#/[µq8œU«VÁ:gddÀÇÇljD¢ääd·¨¨¨ººúþýûàîµk×@P@pöìÙÃ…#ã±cÇÎ;G <½0âÔt3€y‘ÞiöíÛWYYÉf³srrÒÒҘߴiYYYÀszzúÁƒQø«ïkWMDDÔ´B}Tó°à»yã'•T™z(lº¨æ]Ö}Ub±„ÁàÉüºï8)ï~TF]M£U¼1 D- g,”J…òCÒÔøx|ž?ÞÇÇßõ£Gœœœo˜cœ›©u@Ú6mÚìܹL]¶lÙ7ºv횘˜ÐNž<ÙÖÖ¶OŸ>C‡U¼—_®¢¢réÒ% ÂÂBMMM¤‹‹›0a Aƒ¨©Ÿ>}Šô·åZ¹re@@@vv6vÏž=k›¸j""¢&“Á”$EŒÎ/.±†ÆbÒ™Œyk9¶ì¶Áé-[Îà‡vè^»öwtôfþï³)©F¸rå¯ãǯ:p “N×y—û$jf)¾©7|eà¥H. ´Ô€4¾w==½ÐÐPSSS´5ÇŒ³qãFUUÕ{÷îíÙ³ÇÐÐP__ÿï¿ÿ†VWW_°`AxxxII‰¢Ì^½zß`3ÂwïÞ…ÿד’’òòò¥sçÎ.\ÀY###jT{úôé(tG¼………¶¶öK7LPMDDÔ,‚e2M÷šâí`;6V,ª¡sXT}$‘JÅ0–l‡ºQðE2&íùڥܭ[3·l¹D£©ÈíïkÓ(Äx‘¨~{¨ªJô"þÕ:]éÌ™Û ¦q¹,‹9yòÊ+޽X…þ嵸ååå|>_±õ«iÀÚÁƒ§§§³ÙlàùÔ©S¼„ŸV¤Ï®¨¨³ —˵±±™={6˜Ý½{wx_¡\µ{‰à°}}}dšü‰ªBsOžd_²d ¬9nlùòå€7Òà,|ùîÝ»ƒƒƒqGŽ©ý~ šˆˆ¨yDUcR±Äκëñäv“–þ–~¥œ/õ+)MY´µý€¯Ž_¼ÉTÓJoÝçC,–dfÞ ß~èÐU¡°ÅÉD5yy9 ‡ïÜ) *·»w‹bc9rýŒé¹¹…HJCuX2™J8ܰáLAÁ³—ºå!P]ZZeeehmm´sçå}ûþÌÉyòôiÅÁƒ"WdäŽ3gnÕÔH°[¦W]]ÝÑ£GÿvÍN`rܸqŸþyÏž=»uë2wî\<“‘‘‘×®]ãñxL& œ5*555 Ép ‘ÔÌ2ª5 Xn î;€¹S§NfffðÍ^^^ÞÞÞ}ûöuvvæ©.]\\>::úСC~~~¸²´mÛö¥5þÈX5QóIV ª¹<Î…‘1?ýœvÁ²s‡‘,Ûëk>*,²|H?ó {WÛî]MɦvÑ¢ßæÍ;0eŠƒ›[’Ÿ_ß­[#PrVÖƒ˜˜ƒ/Þ ß-•þ”ãì¼Âǧ÷©S9+VœØ»wJy¹ÀÔ4ÄUR¢GEí‹“Y,™“þë¯|;»%½zuðô´|éZ¥¥ü={²Aâùóµ´4()áŸ;wçØ±›::*_|±ÁÖÖä³Ï ¾ývØüù>tºàµ7,… ×T¥ EïûÏß"¥©Ú¤ëئ;vÜ&ׄ üýý —¬hW©€å† ÒÒÒ€sp”ZÄ;&&dz,XÜŠD¢Õ«WºsæÌA ÅÅÅ#GŽ,((Xºti»ví¨¢`š{ôè¢TTTŠŠŠ`¬aèá·oßž‘‘Q]]ÂqxöìÙ¬¬,ܘµµ5ui\¥ÿþ øÃ‡ÝÝÝ@ùµ[ÕDDDÍ*j¯L:“±>fâÕ÷Ž\¸ýÃþ™QgûýÿðcÙÙ ÐÃNC•ûÚþù§lñâß‚ƒíøaRh¨ãƒ%4šl°ÙÐ°ÕÆ¿ÿ½ó€®¢øþø†T’ ¡—€H(Ò‚ Ò‘ÔX@A~ ŠéHшˆ4%”"M¤% ©Š„„–ÒÞÿ“½dÏó%Á à{ÏÌ÷äì¹;;3{w3÷~ïÝ·w_XØ» ¿øâ{''Gˆüøñ‹C‡.c»|ùww—Ý»_Á3®[w(9ù&œíììØ²å4x:6v’¦e˜LúÒE™2¾S§vïÒeÞc=<\CBʵiSkذÖË—ïãèØ±íÚ·;wîÊòåû_zéÿ¼½óW¸„‡Ûk#æÝHÍÿåÚ"Ÿî©™Ú˜1c zùøŸ€|‚¼pá‚ìFEE­^½ºmÛ¶¾¾¾~~~RÈ¿›:—/_†€IsQƒ|—Â2eÊTªT ® §BÆ å)Íš5£%žžž­ZµJKKâ'k÷÷÷/[¶,œMIÍš5Q€ÞoòL:%%…È€³“L³+ç%¡'‡F é‘ái‹ QT­  ðoã6[;d× ªX·z…”›·ÞŠÚôæ’ F…C¿üŸx­ ï¥Ü¼™ž’’^¹²_VVJHH`HHuMËyìPŸ–žž³,ÏyíZ9ñðá«jÖ,ããã~ôè9?¿œÉL|x—.¸ÎôŒŒ,þêׯtäÈï±±?5iR kq:’xþ ujêZÝþ†§§ê@óÛ·KL¼QUgff…×J¾–bío‹(íïýÎ’õ¡¡¡ò¡ì{ þYð(ôl”@–±±±={ö4¯&Á™…™:´œ‡ iÒ•Œ4)˜·’·¢9ê R—†Rh¨dôlh¨åF æú˜CQµ‚‚‚pÛ鹈‡·‡o‰Û+·ý½=:7¯·`l?—²~³×oÏ·m©R%Âë¯_Ñô½÷V}ûí‰Ã‡'ÓSî”fΖ\¹nÝ ÐùÖ­/=›4{övxtðà°=ìØqÌÓÓ•LzÛ¶—I²©;®G¹DÅÆ¾ £¬³ë''§\¾|AËùÕõêUX½ú»æÍ«W«VZÏ·aZzfëÇõ„dM!/*8?ÿ^§NîS÷d±“'OŽwqq D†§-Zgí+¿ (ªVPP°:®§ä$:4øt§ÀF5´KW´Ô[Å xñÚÛÛsÁ‚'ºu[ШÑÈxòäΚV¢ti/}%N¦››ó”rwwíÞ½AtôáÆßLNN4(ÌÅű[7¨ú@›63¼ºukФIptô>ääk³fõ }çûïÏ>úhM‹ÓAç*øè?šäÚ»wãñã×9:ëÚõA-Z´ë­·6:LžÜ…ð€t+ÿ—År~jQ˰ï™ß/ÜçuLÕÑ¢E‹ÈÈHI¦'wþЧ BQµ‚‚‚µ‘™õØÃ!‚+wlÝ('5>—óÑo—½“É”\eÿþ1‡ý^½z@¹rš–>î>>2g^·nyó6,X°ÓxO&33»sçzï¾;È××C?Q¶‹‹SXXuüÿÞ½'5ý-¯fÍ‚ô®OÛ(ÜÝÝÛµk§å’´¼Rem¥îŠª¬z6å …©|&‹&†lQçŽ%·w³³¯GF¶ŽŒìðç³ede]‘•õIë#"šED´Ö´TY1n‰ZA~CÂþ ¨ZAAA!úÒîtyïËy?*®;ýLM»®Ù9(Ø Ô×Êl*«VPP°Q8:‘K”дTk+òQB=ƶA¸»»ûúúÞï®ÜC888ä|z^ÿ€‚‚‚‚íÁdJ<ãѰç32îïË<÷.ÎN¦[&-Ûþ–2ý‡ááá±xñâ]»vÙþ³ìììÌÌLEÕ 6‰Ôôô}ó’n8ÚyJš••]º¤—–xí/ƒDáß©jÿþý;v옞žnûK  jEÕ ¶“frvs)WÎÏÚŠÜ“‹1å|HUqµm@ÞÚòõõµ¶"wEÕ ¶ˆœt'ó¿óy/ÛÏÞŠìñ¡V€+(((((Ø4U+(((((Ø4U+(((((Ø4U+(((((Ø4œ4Mÿ8¾>fW°cØãx³C•ìöè þu8ݸž²eß•‹OW¿¥ªðo¡„»kܱÓ]32¬­HaqåÊÕÍ;áT²Ô‡,î)*ø\MÿçÝüÇáôäÐgb9’óÙyGk+£PtÔ´}Í5¬­Fa1lĨèc‰ÎNÊFî1L§®8ÐÚZØ:²²²nݺeï™)Ø/Lú«®..š¼ãˆ™ØÅ‡ì&“ÉÉÉÉÙÙÙÚŠØ4ìòG¶ŠÔ p›†¢j›†¢j›†¢j›†¢j›†¢j›†¢j›†=QµÉdÊÒ!²JIvvößèÐhhôvWo™Óü¾•ÎÙåròªt·wæo诠   `pœ8q¢µu(,¦M›¶}ûö€€€Ò¥KSræÌ™%K–ìÚµËÑѱR¥JwÛáÂ… ?^·n]‡ÄÄÄK—.ùúú²mZZÚ¤I“¨_¶lÙ¿}E[·n]¶lYóæÍå3Xéé鯿þ:×R¥J•Âw=Ó<)))>>¾ðú+qȰ±¶ÖÔÜ¢c7¯PPÿÔ$o…·UPøLöƒC‡‰ÎÍš5“’Ñ£GK ¬)%¤¤57B```xx8ÂáÇCCCçÏŸ_xeNœ8Áy§Nz‡þó=»9"##éäüùó²{úôiv_y啼Mîp]àèÑ£\ÈŒ3î÷¿@á¿ó±* L”’ŒŒŒ{~:™™™™…T,_Ù|{OîQþ¹sçdrK E`{‡ûPxÔK–®ä>Ká­[·þö=4…"{š'Ýtrrò÷÷‡Û¤äÀ’^»»»kfêÅ‹¥¶‘‘ûóM’ÙfCøùçŸÉkvîܹwïÞ   dLKê_¿~Ýhk>M™±}à¨0lØ0£>ÝÊܵôoÌc_»vM3ûÒµÉlŽÚÓÓS®Kv¹:¶æ×rõêUinÒ­]jÞÐaôƒÓ©V­š…ª ùB†VÏž=ƒƒƒ«V­ÊÈ©\¹r¯^½V­ZÅ ü{“ BŽ—)VŒ0tñâÅÆP¿ƒb›7o®_¿>¦mžt"¯Y³ÆÛÛ›xýž$£ÒɳÏ>›0gΜ*Uª`§¢ê… Ê”)³hÑ¢;´}î¹çzè!­_°ß¶mjóÍ7:¸dœ÷oÜCüÞ‚ þùå+Øìì¿/víÚ³ÿã?Øb·d“ÆQ,¡C‡ÎÎÎXZ©R¥Ö®]˰f7$$¤qãÆ/½ônˆC'N—ѨQ£nݺýòË/cÆŒawðàÁ&L N\\Õ¼¼¼J–,IóæMêO›6·ß~ÛÍÍ­}ûöRgéÒ¥Ô¯¯cäÈ‘T 7n§þüóÏ©Œ¡öë×µ4hï/£ ‚ùµà7iîããÉ $~m+V¬XBþ…›°ÿ~"š°¬ý_R°0ÞΜ9sìØ±ºuëwb ØKÿþýW¯^Í0“)Y –;÷fÞÖü!k¹‘¨±ŒC"Î 6 ȤQÞV¦?/°øý÷ß>l‰ ðtbñ£ùvb®­E¹¹°nÝ:ÎU¯^=kÃú0RøûòåË·Ë|]‹¯¯/!N¾[Èô©©©p‹Â˜0îË\UóÛelͳpî!±xùòåefѤ–¤=ØUƒÇ{ öš7oÃ=99¹oß¾Znl‹ŒSxýõ׿þúkX&¤Õôœû»ï¾cûí·ß2ʧOŸ.y¹««+–áµnÝš]¨´sçÎiiiÐ?©-Ì;—l»U«Všþpšd}É’%Pþk¯½†ãHII¡PúǹÀÙ»wï¦CúOJJ:yòd=jÔ¨±gϬÅâãã]ôß’²@­Zµu<øàƒF!ïÞ½ &vìØñòË/GEE :TÓã‰K—.áaÏž=‹æèS»vmî ‡êÔ©Ó©S'kÿìSõêÕa,†:Û•+WR¸ÒtƒÚ¾}ûøñãÉeŠ’žÊŒñ|@zÇ ?~üøÂ… ‘á6é“`zß¾}ȇ~xôèQZÑgLL ‡ÿÒìÅé¦L™‚y"[hUPžÚ´iS”!ª@&óÆèŸÐyË–-!­~ûí·;wbÚ¢-u8l‡ÅÆÆb­¢ N@NºbÅŠGyD3›HË îöû믿~úé§(Ìõ^xá…©S§"ÿôÓOô±#Ã÷È0qÞK æ37? ‹oÚ´‰Te¸"9„>ø+n>ž„+¢0##ƒ»Ê!ˆ{5¯ `g°ö ü];Aá'N%wéÒe÷‡~`;sæL*øùùµhÑB*Ãg”CoÈpðÃ?,åÝ»w‡†÷È 6ìØ±#V§éöüæ›o"CRÈ!쒹Θ1áÕW_•rIÞÿ}dœœ*å„ Å‹Çê03*,_¾\ÊQ¬\¹rÏ™F¥éóƒt[°KÒÏ¡>}ú`Õ R“ÔkÇ%µlÙ’:d?¸K²v9JàB!Y‘I=ÊR(à0b;¨Zv CŸ~úiFÑœ9sØ]¶l™¦'²—˜a1…?þ8…D®*T@€çêׯ_±bEdI?ãÆc×ÛÛ[è$::“™OOOšP§W¯^ì’"ÝbȦ??ñ]¼x1G ,ÆÖ(—hÁßß¿Y³fò´H–w¼õÖ[ȳfÍ’úÈíÚµChß¾=24äÈ\<*&Ÿž0aˆ#4}Õª4¡“6mÚÈшˆ¹¹Û¸8 ‰¿é<,, «§"''‘éÚÙ[{ì(Xö—U‹‹!º‡«š4ib<~fKà,®),Uª¶„#R®éɱ̊ˮ4Ä̴܇Ê2Fâ.BCCÙ’=ȃdóÄ×<Ü 0úÇ1Ñ¿Iwжù‰òÎåCâxÚ’÷Ë.΂ž<Ãâ<Ž•¬}øðá†þ’+¨GY …£ôÔ©Sp-©*±æ_|ã>ÿüóšãvèЋ`º»»¿ñÆŠM=ùä“°/tKÂG’w"3,5}Í5–dÞ¤¼bïÞ½áu蟣O<ñäW_}µjÕ*q2Ñùóç“^ÿøã…IÅÄ 5} š•|õ¾üòK¬ÃËË‹ró‰+±® ó9r$WDe\uåIˆ;wî|ç“BŸšî Q®C ¡év>ØxëÖ­‰­Ét‰Å #pJµ[ôóî»ïÔAM'R¸téRB¢Ñ£GÇÇÇcÚeÊ”áQŽuó¯Y¸p!±·‹wÄ.‡¸wk+ÀþÜ:îƒÌ5))‰|š‘-¤+‘0cŽ"C–«W¯¦„èUZf¥ŒÔÁ`ØbÆRH?dÑ²š¬ Ÿbaœt%äõ²MLLüþûï /c‹ee&'•]hâú   Bþ®]»rºóçÏ©µ=ÜÛÕ@ ÿydddŽ?žÁûbV°å*Á‘±ãôéÓɆ…Ÿd˜ÉCy-Pd DÓc\yKøHò a5P#¹;å%K–tss“SÀ夭Â:0Sa´57=44h!;}r..Ä|u§y¢v8uË–-:êAêr&á{ƒ sj.Ö'u6ïYÖˆ!;¶aƱ±±:0±)¿·°Çq)%º„àØ±cle šÀñX7wosåÊì½F}ô‘¼º)3Üv#ëP(Rpúç]ük*‚ŒXØx#YÒÊiÓ¦=óÌ3ŒìöíÛÞ2ú  é™®­È©©©’‹ÓJ6‹ß™:u*6OQQQ˜_LL 0r¢fœ‘ä܆Gd7M‡Ñ?›œœAê0cÆ ü^L^S±¸"Éàr¹@Yv>eÊ”%K–¯Ž`ÒóܹsË—/‡B%ˆ¿lÙ²—/_–éG1~rÎ.Ó˜  a²¡: ‡Ù³g“nb¤’2çvñâEFTÛ¶mååS~ ¸,zÓôפD¬ƒ>Å:$Ç^¿páA¶¿¿ÿ‹/¾HÄ™W7ãánAÈkMâ Ì×”IŠ/‘·Mü´F‡q±rMêì¢{¢jŒ¼[·n’õ2"sŤ fëÕ«G!,EÈüÙgŸmÞ¼yàÀÿûßÿº)ïÑ£‡8ÍïKˆÚ½{w!éÁƒÇÅÅa½2ɶaÃX–~da/…=ô}ÈK?œºwïÞò0 ä™èرcÕªUEÉÝ»w1ìܹ÷s ŒÓ|‚'Õ§Oc²ÏÕ³gO"tM°G¾xñâµk×âSØ’LkúÃo(üã?&tèׯšSH'T&õ‘·¿ Ããžbï¿ÿþSO=%0V¡mXv̘1ĈÚ_MÛpT>DÈ‘@»»»3ÈW¬X¡é˜ ÄJйnÝ:êÈ¢H DGG˧ d’Œ¡~ç !ê%Õr¯ÈÊì—¶„¹4'3† çÏŸOøÞ´iÓýû÷wèÐAÚJ¤‹™Ë£k¬UÓ \ŽšÌ^’ÌÇ'eÇù`ì‘‘‘7n-ÔÁü‡º¦'ãÇ?}ú4Ž‚L—òì³Ïr÷>ùä*ó¿ _×r#øëׯs[d–B¡hÁÚËï \‡Œuüˆ±~ÊÈYeq I-1»ñM©`¼•©Ãhh”“v›¢ðç"²|ÁâSÔÿ¶mÛ öÑ£GK9^¬qãÆWDÒÐè“]ã,FfƒÝjˆ””D¹q[¤!úßïW(ü'!ÏhŠ/nÊW²T‚H‘,ËÊ@%‹‰‰1å.£ N5d"Eä+W® = &>LáÁƒ¥„ ™Ý.]º KR k^½zÕ\±Y³fåuSõÌ™3vìØaҩΰ,Ѫ3åR ·¼Ã)ßJÂî÷íÛ‡†„ÅT& Q–&Y’b,Ï–Õ¦ÕrײIè KØZ´h!Γ¸P™(ùwÞ1¿¹“ÆòRa\n²ìöïß_Ë} ¯éS†&}µ©¬æ“¹îˆˆ üñGYø"KóŠn?nQ¸ÀSìÙ³‡Ä6ÅÉÔÕì´‚-À¤Ï žKœ†Œ`þØfñׄ`F’OiŠª $ÝF:väׂ|Dý°¾ |8†Y5¿i1˜ƒ {·¯&Jÿ-ýWþý¥oí§ãë_Ÿÿ?à¨_´wÅ‹‹‡¿ñޝS$éÇ ÏÜ{šÿ]¿‡ðPÙ÷â>¬4}Åú<—M /àrX°P0$õ¯¶ô½VÇX´ŠöÂxî-æExäƒ++AC_â9û?~Þßþü@ÑuÅñ†¨ð¦£nó)»¸¯š¥³™9â¿ÔþÉûn¯í5ð_B®¦·Z´66ñ˾`î\F¼œœõ ÝZ(ëEÖ`¿çzæ\׋uˆôSÕ¥!RÆÎYÉ'lVaÏÔP5¿øoÈdÖµ[K’f™€:ðÄW ß~«oi`ƒ‚>Ñÿ¯à»þ gÿ—øðëâ>¯à/kwVcºžØý’áã9Ve •aÜWócsÿŒý©ÞWqãtnbÀiOŒœcÍãšÿc-7ã'Ã^U‡OñN™<¬p\ ?ƒšôK[ÛkÄYm¥ŽhØ7 ¤‘ȯñÞøUÿ¾ý¦|#¯Y__ø¯YžÞ)ѤY¯f•J†ä=+û‚ÿ‚8Áe4ïÚŠÏLð§‹5HÛZhᄉ¦c9USÃy4ýUQU¬î£¼¶†êѬˆÀä2°þ5f€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ k6ѓӒyéŠuqŸ5åðÏ„µ­mÛh±±¸˜˜+aü¨˾.þÒß ¾ YÉwã {OÓÖ5,ËquXÚ2s¹Ç¥|Usÿvý–­¦’ñžƒ¹©ÿ‰œŽ{ë_Âüþ Sñ/Wø½¯xÃ!¼²²´¾¹µÄ2 ÄnèrªãÒ¿˜éÿh¿‹ÓÊò·ŒuMÎÅŽ.gêyï%²Ÿ„?ળ?Œ5H4­?Æ:\\H± ]JK1ÀãͯÐøÓBñ®™­¡^ÁyiqÉȲ)VŽTœõ¯ðÞøoûX|dð—ŠtRjŒ`¾·b Ôã#Í^?ÖWúÁ¿j|rø-¤Áâ[é¯nmíbˆÉ4ŒìH‰:î>ôý&QEQEQEQEQEQEQEQEQEQEQEQEW?â_x[Ášdº×‹üG¡x_H‡"]OÄ:µŽ`„Û Ö¡³ý™|]§xoÅš°·Ò%žÏŸ6ØÂîU'æl+ùb­-/XÔt{”»Ón嵞' ¯²ÊAƒê(ýÄgÛGá7í ¡i×Þñuquo ´Q]Dí¹ÕIʇÎrM}•‰8 ƒÈ äyÈüëüÿà•ðTˆß³ïÅiš÷‰oeÐä¾µ…Ö{©6ÌŠ!Ÿ+ýJÿc_Ú{Âÿ´oà ĺF£owqqam$«Èì¢RÙÃzšûB¼wãäßgøSâùla¥Ü᳂?s'¯b¯—¿l f]à_Œ®á$0ÒïzuùmÜñùšÿ"Oø,†§=ïíKãó4uíH œŒ åÆ3þy¯È¡€'9Àé_¡¿ðS\xö•ñœ÷–þÙÔ_“ž·2~¼þµùè:   ×ìOüÓãž³ð¿ö”ðœ6ÚŒÐZϬX£¢ÊÁJ¼ñ«¹é_Žõö_ì~úwíàÉC”έbF:]'$ÿž”þÖ¿³¿ŠŒ>øOYgó}.Ô³ç9- m×ñ5îñoì¨Göyð\»‹ì›“×›d¯´¨¢Š(¢Šit_¼Ê¿VùšušáeŒž˜)çÓƒRd„(¦³¢Œ³ªÔ³?2j!ujNÌú £'ò @ÑHO! Š\ƒÐƒ@Q@Q@ÒáIÎxú5¦.ê€s—eQúš’Š ú®™ÃßÚ!C\Dþ…OQ±›ˆ®íå'´sFÇò @(¦«†ééœñÐÓ‰À'Ðf€ *?3ÛõÿëT”QEW‘üqÓ.5Ÿ†~*Ó­CçÓ.5_¼XÂãëÈüë×*…õ¬WËo2†ŽU(êà « ¥Žÿü›à<+ûIx³U¾Ñõ²ŸX¿•fò$eÙ$²Ù Ó‘_ˆ/g4d¬NŒ!ãu#t+_ì±ûkÁ$þ~Õk¾Õ4[¨Üc0‚=åØI+êM~øËþ {ðeÖ£4ºt!y¨èÃç¨_s@çAá_êzÞ»¦ØXÙÜO4÷¶èŠ‘;e\•}E¨ßü}ð‡Ä ø/¦j½”ö«=¼R¨• S`á…xÀŸø6‹áÿ‚¼U§kzͤs¥•ÌS…’Þ¬?˜÷–±ÿ¬¹pÓFú‚ÔbŠÎm_JC†ÔlÁ÷¸‹ÿЦÿmiô²ÿÀˆ¿øªÓ¢¨¦§§ÉÄw–ÏÓîÏëÓõq]\¬=0AþF€EPóÿ¢Ô´ßÁ\?àÞ_‰_§µ·ø#¥þÐß´g‚nuûGmCøÁñ à ´O„Ók7¤¬vò\ø­t—±’F k'‡în›lI+Wä7ímkÿ½ÿƒ£?l ¿ø&ψþø{ö‹Ñbïê°ÿÂö°¾»ð¿‰ü§ü,øýµàíKMP‰|{¨ë§G¶ÒÍëiölÇyhƒ{]¿ðSø'ןø)wì£ãÙ³âuö¥áF{Û/ü%ø—¡G$ž øOñ‹ÃÖ÷Ñx#ÇÚdpÉÝÚ[Üj76ú¢Ml׺N§}k匲Ç}mü·üÓ¿à¢ðL¿ÛÄßµWíÃÿ»ý¨ÿoïÚãá]—À=?öÛý†üY«|Z¶ø¥ð£DÒ¼¡è7>?ø §x]®n>"6›àý¿[Ô®t_9àwm6k¡öÉÀ*ÁºZ¿ˆÿm/ø)·í£ûvþݯí?ࣼ{ð;dzßÃ'á&—ðûÁ:\Ú?¯!|†Ý$<ÿ 5Í à¼>LÖ°­Î‹ vVq¼q"‰4Éc)Æñ¯ã‡Åߨöàÿ‚¼þÛš§íû4ÿÁ?>8ÿÁ!ôÏ‹^×~þÓŸµOíãïxâ/Äo‡>(ð¢|>ñ®‘¤þ̶ŸØÒnkT²¿7vw‘j‡K±¿m_J¾·Šôÿi?²ì£ðoö ý›¾~Ëô½áwÂO B‡UžÎóĽíååÖ±â/ø«QÓìíàÔüY«x‹QÕ5Nâx –óS˜ÛÛÁ• `JQEçß5¥øÄ÷¤àE¥ÜœÿÛ'?Ò¿È£þ ¹ãdñ7í?∑ÃyZÅÊp県=z|µþ¶ß÷¨ñ€BCeÜ‘ŒÿÏküxà±é:þÔÞ1ó·È{RÆìð ò㯷ó Èåè>ƒùRÒ/AôÊ–€ hPryíÚE^Òµ;*þÞúÖGŠ{iVDdb¬ 0 ‚>•ýªÿÁ¿ðT‹Ïx‹Eøaã u…œÒÛÚD·7?.–5;Wñ5´g9 ç=¿Â½¯àGÅsá´?è÷³Z½ü3G#'ʤçi|´þêþñnã?iºî™‚€¾¸ýˆàkŸÚÁˆ™Ü5[Æ{Ü¥|_f~Á@Ú/Á`Ž?µì?[¤ ö;ÿ‚zZÉkû9ø1$?Ùxç?ó쇽}Ó_þÂJöyð^?âWaÿ¤Ë_eP\мuá¯XͮꖖBŒìÓÍx ?y¸è+ÈiO^øðÿXñ~¹w´vsN¾cªslÃ’}küòÿà¨ÿð_¯ø«Ä¾!ð_ÃnâÚÎ)î­–—,£™(þ”ýƒ~Ö_ðY߀³ý½ý¼~&Ón¯­VP;¨]Ë a‰9üô|dÿƒ¢l-oï-ü7(x‘ÝcqsŒ0×ð¹ñ[ö‘øñkU»Ô|Kâ]NèÝJò2=ÔÎ0äœ|ÏîkÁ¤’I˜¼²ÊìÜ’îXóÏSõ îwßðtwˆ#¾Ý}&è·ä´0ã?íšúÇŸðt‡%²Ý¨I¶P>Ò‡œ{ŸZÿ:¢qÀ-Ç}Ï¥L Q¶YW=–FQרÐ÷ëñ;þ+ˆô'Ãa¶µ{q÷ʾ[Ñ¿àèO&¸¯spM¯œ2<éË»®Ký+ø®]K’"ž\‚3²Gë’HÎìÀ©ýhý=ÿcø8÷áÇÄËí7Fñ–¥og5ËE<× Œ¹9cÇZþžþ þÑ?~6hzß…5»åº$ Än~u ‚Ž …§†ü[®ø^ú CFÔn¬î-ÝZ0ÊC6·¨¯éÃþ ÿ”ñÿÁŸø{ÁÞ3ñÜú4×6Ö¹ººr ªcçJÿU‘(=?ÿZ¥¯—?f¾øùð÷Eñf‡}н²·™ü©VC—‰Iû§Ô×ÔtT3ϼm,¬¨ˆ¥™˜€œœÔÕù»ÿý­tŸÙ‹à߈¼A5ôv×ɧ\´ È·ˆ_n2zпµ·üGà×ìË£_ÜxƒÄZtwÖÑHÞC\Ä$Þ€ñ·+ùUý¨?àç]?HÔu ?ÁI$qI*G"O@f€í_Éÿü;þ #ñCö’ø™âLø“P?Ûî’(’ê]†?5ÀÆ1_“×7w7’¼×SË<®K3Èìä’sÜÐõïÿÁÍ_.nío±*Ìp2駦+ÐþÿÁÎÿìµ[Q®Ý´–þjoÝ,‹…ÜûÎx¯ãD¨=hÈ$¯ÿZ€?Õ[ö)ÿƒ„¾üd“KÑüU¬ZY^ÜùQ1¸¸Œ|í´Y½Oé_Ðï…ÿh¿†^-ð ñ^™â]2[²ý¤°»ˆ¨_/÷ø8͆?‚þ"x³Àš¶§áýböÊkiDòg‘0P‚1µºñ_¯ ¿à´?´'€|/ƒ‰µ9 {Cj¬×2± SgRÞ”þ?¶ÏüKàÿìáª_hVZÍÝõ«É."o™ wzŠüžOø:7Ão*dÌ"Lö”û úg®+øøåû@xßã_‰¯¼EâMjúê[ɤ”‰.%a—fl`¿©¯Yeá¼éI#’docë@ê³û3ÁÄß>*júv­jÖÖ³]Ë Ï<@n‘•zïõ5ý|$øÁá_‹Þ²ñ†5{ÛK¸Reh%Y×@Àœ7kü'üãïx7Z²Õ4}VöÒkKˆ¥S̪?vàñóqÒ¿Ò“þ ¾ý±|KñKÁ^ñ§5óÚÃo™ægb xŸJþÆk;UÔ­´›‹û¹(-âydv T9$Ö€9ú€:øöøø£7ÂÏ€^/×­¥1O"2œ²  ¡ ÎoÛkþ cð{ö_Õîô5‹Iu gxž8爰d8ççë‘_–3ÁÐ_„ΫrJî8>t]3Ž›ý ðPÚ Å¿~;øÂëPÖ/¦‚=Vólh—h{€0Ú¿?þÑty7W9<ŸßI×þú õ øKÿ+ü!ñf½e¥êš„PGsƒùRÔ6ïæ[Á'üô†'ÿ¾‘[úÔÔU+ûû}:Ö[»©V(aFww!Bª‚I$ý*Ëʱä¶’NLúWãügöïð×ìÅðwÄMµm³&Ÿt‘F·²‰ NlŽq@Ÿí9ÿ[ø û:^Üišß‰tÁ{n̹˜2’Fî¹ñFÿ ~Íw2²Kâ5@$rëÛÜWùŸþÙß¶ÄßüC­]x—R63j7M %Ô»v_h~ñZxÓÅió'ˆ5E'œ‹§Ï?«WÿàâÙÛA°’m?]°šERBÄ鸑ÏRÃÒ¾Z²ÿƒ›þK¬‹i/T[™Bî/0HÇ™õ¯ó1ºñ‡‰ï%Ö¹©L¼Œ=Ô‡úÖBêzŠ>õ½ºœîóå?Pôþ»ß ?à¾?³_Œ¬`–ûĺU¼®ªYf¹Š2 9ù±ë_Rxcþ ýû/xŠæ+hüe¡«JÊ£„åˆ'½>›ñ'Æú@ÃÄzœt s.·ß®ãHý¢~.éOkã Tóè?_ñ©Œ0àðr ë×?XÔ´ë.öâÆê6Žki^'R!”A§J®:  ×ø%§íÍâoÙƒã‡$þÖ¸·Ò$Ô-RdóÝc™TØÆ3ùWúü;ý­ü!ûDþÈZ‡ˆ4íbÖ{É|2ZeYÑœ¹³brëŸç_ã+§ÞϦÝÁym#Å4,ˆêÄ0*A ûWî7ìƒÿnø…ð/áÖ£à­Zêm>æÍí7¸“hFˆÆ p1@.ÿÁUîÒïöŸñ›£‡_íÍL‚?òñ ë_™ËÐ}ò¯{ý£~+Íñ‡â.¯ã†.ÚÌ÷'qÝ,…úŸ©¯n-}‰û ^ÇgûCx2IHUþÖ°ãµÊòs_×Ñ¿²uÄ–ß<$LCjÚr8<\§L­´_ì  ÿìïà·…ƒ/öMÈäôdkíŠüÛÿ‚^^Mwû3x1¦bÇûMnNy6ñ÷¯ÒJþu?à¿Óøâ?ÙãÄ áe»(tùƒý›Ì'i·}ÏÆ¿ÉÏâ`ÖŒ|@Úи‡R¹ó<ðáò%9ÎêÿrßÚ7à†~>øT𗈬ṆúÖXšŠÿ} ÿ÷üW~Úßðm3ø£ÄúÆ¿à;4D¼¸¸R8 ™€Ê/© óâ«$“ÈÅ;± ª¹$“ÀÀ¿©?ÿÁ·?tûÙb´Ò.Þ0Ì¢H¶Tq^©û=Á·Ÿn|w¤Iâ½"átÈîáiüÔv]‚@[ ¯<:üý™¿`OŒÿ´†§i†|5©Mks"2ZLɵÈçvÃÆ D³çü?ñ3ÅVö7¾(±–ÙfXÝÖXd,7€H!‡½n°—üOáìÁà}Ùü9¦6«ok›4¶ð†".If^¹¥~ŸÅ?ƒô–çÒ,cpZöþïNÔüRøþ yð¶’ÿÚÐï¸òÜ"üÅxûÊsÍ1¿ðW_ø&)ýŒÑi¾æ“½}hüļiûütðFžug¬6Êžc9±¸@êÉô¯—¯ôËí.y-o`–Þh™•Òd!`ãüšÿkŽðMÙûâwƒu|¥G4¶rÇ‹pCÈy¯óœÿ‚ÔÿÁ.oeßjÞ ðî’ñh’\ÜLcTÜÌ9U¥4X >½éÀ¥$¡â‘ãeÃ# ƒG¿­-F‘¼²¬h wpªs’p:{×÷ïÿº|?ñ±V–Þt³ajC²¸R9ÉãþUü%ü+Ðcñ|9¤8Ü—š•º8<‚<ÕãÕþ´ŸðBÙ×Aøkû:øk[µ³‰.®ô»9ÙÄaX™"B {Ðôƒ€õ £ò¿2àªÚÞ»û1xÎ Evì=Ipƒ'&Þ^0>µúqÒ¾cý®¼3Š>xÊÂhÖE:UàÁûÐIžµ‰íE¤\èß|gkt¬®5K¾ ágçê+çºýÿ‚Ÿx6/~Òþ4³‰5:Ö¢˜ÅËžÃýšüäÐP-ÔýOó¯ì3þ …¸Eø¯h®ÜŸ/õó¢éÍg–8õ5ýyÁ²zV§'Æ ¢ŽO :e€8•íÓü(ý>¬llÈèmmÿôRUMkW´Ñ4û­FöU†ÞÖ&–Gv ¨$òzt©ô°WM°VûÂÒܯ”¹¯ÍOø*íÀoÙûÅzª^­­ÙÒ¯<³ælmÆ Œ¹ ‚ÿoÿø-ïÂÙ¤k>±Ö-fÖ-’xV8§Œ°•—œ70¯óòÿ‚™ÿÁT¼uû_øŸQ†=ZèhÒO0Ž;˜ö3zWÃ?¶·í⯼W¬jÍåͳê—~Z‰<œÞŸÊ¾. ¿ÌÌÌO$“““õ HÍ;´²1.ä³z–äžiaŠY¤X¢BìÇj*‚YA€)JýAÿ‚k~ÅšçíUñoBÑâÓæ¸ÓšþÜNÂ&dò̪N:`ÐÌÿÿcŸŒ¿åˆxWÃ¥Ôsµâ³š@wtÆÔç­{÷?à–ÿ´Ÿ4I5½GÂÒÛGšÅ´ùÀ ±Éòý¯õ*ýƒÿà•ÿ~|>ðÿö‡…´ëTXÛ<Í-œ%üÍŠI%“=z×Þÿd/ƒ>;ðÕîƒyá (%Ŭ©°œnB£¬tþ^&ð¦¹á-F}3[±žÊêhÝ&£!”à‚z×8:cñ¯ì§þ ×ÿ ³ø-ªêÞ?ðN‹äi²I=Ã}šßj%Ÿª/+øÞ¼µ–Êê{Y”¬Hñ¸#bGá@¤¬Áqƒí_§_ðN?ÛOÆ_³GÆ ]Úë7pim©Z¬±ý¡Ö-žj-Œc5ùˆ: «“X_Aw ²Ko*ÊŒ¬AX0#€?ÛWþ åûSèß´—Á ëÖ×ñ]^¾›jÒ…;ïò—9çÖ¿D‚£±à*³ Ÿå_Áü5ûf]ßCeðóVÕÂ,1G’“ÀÚ˜ Æ¿½˜O¥ÉhXŒPñOÿ,þØZ·ƒ<1{àmS’Ûí1\E"E3'˵“¢°îJÿ8ý{Y»×5+½Jögšk™ä™äv,Å‹g'¯$þuý‰ÿÁÏòêßð²®UÌ¿fýéÝ·ýl™þ•üicpÈ?—ùé@€9œóÍ{_À„ZÇÆoi^Ò"yn/ïa¶TœdžµâÀ¥}eûük¶øñwÃþ.»Dx,µ+YÜ>6ªÌyëÓõ ë/öWÿƒjuOˆžÓ³ŠÇI³†ÒÞ% ‘Š€å:~T¹EPEPEP ŒçšøûöÔѼ¬|ñzx¹l°Òîöý«ÊÀýÄ7û×ÖzÜvW“0H­¡’WbpUÏô¯â«þ çÿb—á–™­ü,ðžªb»š)ìåO†ËŒ‚½ âþ c¥ø[Lý£|a…>Ïöí@/Ùö„ÀžP>çá_c€>‚»ÿ‰>>Õ>!xŸRñ¯;Ü]_]M;<Œ]‰‘Ù'Ü×@>£4￳¤W< È6Õ-2¬23Çž;×úœ|ý“|#ñÏþ õi¡ Î[é¼#ÆâÚ6”»X®Ò>^¹¯òçý´¹u_Žþ ·ŒdVÏÏ[„ÇJÿcÏø&ï†ÿ³f?Ù]F%Ñ,"tqÁÙû@äËÿ)ý|Uû7ügñ=¥Ösm¦¶¥tbs,{ ®FÜcùzY”@È$rþµþ±ŸðY¿ø%7‡ÿië¾*ðî‰ k°ÚÜÜ‚ÝLŒÁºªäœ×ù~Ô³WŒ?g¯kñ™uh¶—·FÒÂè ¤Œ ò½0Jùlrõ–˜IP:tÇ~¢œ9ú@T7\ñþ})À¥P_NþÇš\š·ÇÛĤ±Õlúy7(+æ*ûûþ µáÆñí+àÈoÿ‰Öž¸Æzܦ˜ õæÿ‚ièr蟳_ƒ •H?ØÚróÇKxóü«ô2¾Wý´oì_ ¶Û³U–1ÂÛ õE5Ü ÉéÉ$œqº÷Œ¼¢#wTÓ-”d2ÜK <~W5ðÿííûlxKöOøs«ëú½ü^Ci;À*«XØ€>µþy?¶çüñ“Ç0Ö¬< ¯_ZéÑÝO&ÒáÐlʤ2·° ôÔ¾ÞÍåÿkørYK`†û/\û?­`xÛãÁ‡%ν{«xrÚ+x^mÈöÊpŠ[®xéÅ‘V›ÿšý©l¯Öí¼_®0»P‡\ò¦_Z“â‡ü'ö•ø ?‡î|U¬¦ˆÂÀ]L »{0Ím?ðP?ø8sÀ_î5-À¥­Ýͱšk{…#rQ÷ŽE7??à俎:ýÕßö>«sLÎÊyN'o%Ž{Wó«Xü[ø¹©MªÏg­ksÜ»Hde¸”ç9ÉS‘R[þÍßnv"x;U%Èýš|œœ÷¥~–ü`ÿ‚Ô~Ó­n¬ŸÅZÄPÜ«£u,cž0¬=kò‹âÄï|JÕ§ÕüO©ÜßÜÏ#HÍ<Ï)ËòXúšöˆ¿bÿŽï¦¾«ÿnª-£C#1±¸ (';=+çøW\ð¥ôºv·a=•Ì.Èé4n„2œ†P;Ò£Uß*§÷ä ÿ}0Ö•˜ƒŽŸãK „–93ʺ¾1ÆCŠþüà×öNÑx¢kt2³•r °èÇé_ßì1ˆ¢Ž5àFŠ€zúWùôÁ±´¶…¦ÜÚø*îâîdhQ° HÚ„sßšÿA;”»·‚xÈ)4I*0èU€#ùÐw‰PÉ kŽ­§Üÿ~Ï¥•Ÿü…£MgñóX™Á ÷Nã?õѿ¿ÕSYÒu ser1ÿlš¿Ë«þ`…£øÕ¨±LfGçËY&ËÐ}ò¨±–#8É4ô$Œzb£`wÜŸçÒ€?«oø6çá‡ã:^§¨ÚÅ<–÷L»Ð7"TÆ zÿQÿ i6ú>‡¥Ø[F±ÃoenŠªD¼:õ«üÇÿàÙiº_ÅË ;™Ñ%‘ãŒ` "T=Ï^+ý;´›¨î4Û c!‘í-Ør0c^zt  &PÃüûjþoÿàà€ú¿g¯ëo§Â÷–Úló,¾Z– ±±'8ÍGåðHÇOþµ~ÿÁpüU¦èŸ³Š£»–$y4kµPìËDØšÿ _ˆZ@Ѽe¯éÀlÚÊÆVÆjä+Ñþ0ßG}ñÅ0‘復u‚0G¹ãó¯8€}hÙ¿g’â÷ƒËp?µmù=?×Ç_ìUÿ„–)?e¿ùlþ$:gLpDg>•þ4ÿ 5VѼ}á»ðØòuKnsŽ<å=OÒ¿×'þ=ñ)µþ}aоáÕ[púƒ‘_Þüéñ™âÕ"ðÌ“ðßg7ú§ŒóÔ~Tþ†Q Ž8Ñz"*  þIÿàåÏëZÁ­CO²šX¡š"`¥€ÛåIÁǾ+úÖ…ÄÅ èñ£ÿßJõ¯æ§þø¨üKø®jšu¬— ie<çbÆÈŸ?t{Ðù;ëwRÞjúÌÌZIo.‹rI2·\ÕÐvàWYãÿ]xgÅšÞwE5¦¡s+)‰XtÇN+“ÐP!’â8¿ç¤‘¨ç¦æ§nµþ‚ÿðlOìé ÜXZøÂî n–G‰X†[%ˆú~Uþ}ºjÿÄÊË#ƒw}0e^µþŸðlœkðŠÅÔ§™²<à€F!Œÿ^¶ÐGmpD¡4TU*€ÇÐTÅAê?-øÇÿ–ø!¤üLý›MÐ~!øÇÃR«hÚíýžÆW*§ŽWØÿ ?ࢿ´7‡‡û+Æ:ÁH¶íU¾œp¸Çý«å|ñ÷Ãë© ñ/‡õ ˜3Km*A9áÐcåÒFA‚1؃Ҁ?v|?ÿ×ý§ô¨#…üS¬7–æâF< w?ç5ú û&ÿÁÆßü-â:/kw æ$Y_–‰—p=È ð°ñ×…5øTÐ5+y ¸±¹šI©ýÜŒ§ ý?JäºWôÿ¹ý…õoÙóã_ˆ5« &[}*ïP¹™] )Ö•Øc €1_ÏÁ‚8#§4QEWêüjöÊËö¢ðkÞ2þÝӉݎŸiÖ¿/+ìïØ/Ä2xsö†ðeÚÈcÚö qÒåòŵ/ìÍsosðsÁÒ[1.ÓîãÁqÖ½æfÙ¯ýØÝ¿ï•'úWÅ¿°Gˆ‡ˆ¿gŸÝyžaþȰlç<5ºZû>ëþ=®?ë„ßú-¨üýÿàçï^%±»ŸÂ¶w÷Z0Z4™ÕHË& ‚;Wð?q<×SÉ<ŽÏ$ŒYÙ›$³IÉ<ŠþÔ¿àècÍõŸ#ë# þ*”;šP0ëõ<šú‡öKø;7Ư‹~ð„q´©}¨ÚÛº¨Éij"‘ú×Ëõúgÿ³ñžƒà¯ÚOÂ:޽$QZ®·§»<¤O'&€?Яþ ýÿ:ø£ü,ðæ»âïi÷w×–6Ó9ºµŽC—‰Y¸d9ä×ê—üOö]´1•ðf…˜ÈÇüK-ùÛßýW\×ÑŸ²_Åÿ‡Þ/ø?á´{Le].×r-ÌCÈŽ®kÝüYñsÀ~ÓçÔui–ðÀŒìZê!‚ǫqÒ€>@ºÿ‚n~ÎCÃWz> Òg·x•–ÂÙ@Ü…xù+ø¨ÿ‚çÿÁ¼ðŽÇZø‘á k[(tb‰#ŒÛœ|ª+úPý²ÿà¹~E©iúWˆ,//í–T ÔLÅÓ r¯üYÁO¿à¸z×íS¥êžÒç-¦Ü !\HX;”cÓü¾kV ¦jw¶-ÖÚâHOÕä+*µ5;翾º½—%f=ÉvÉ''Þ³$ŸRhú)ÿƒ}õÝzÏö’ðõµ„³¬©Æ®¨ÌnþrN‚¿ÖcÀRM'„øßð³ÄÚµ¥Û^Ë&™uåbG`Æ&SÎhü45Íû@ÔntÝB ¸µ•â’9«+# ‚=EgŽƒè+õ÷þ íû-Mû>|ñ=¥¦šÖz|º¥Ñ‹le#Øò¶Ü`cü~ÜÃŒ8ïþ4úÃÿ¦ý©¿áœ¾=xoU»¼6ÖS¶óXɱBTò:s_ëû~Ù¿ þ6ü2ðÞ£iâ7í¦Ú‰Q®¢,Ê]Àüü×øiºÎ™wåœÏ Ä2 #t%YJà ­~š~ÎßðT¿míìtOê«gn1w)@«€Ýþƒô öFñÏdžÞÑîõSÄúdPÛÂón¢¹þ÷µßðp/ü[Ã>=Óõ†ž Öa»‹÷ö¯öyÕԅܽ«ùðø·ÿ°ý¤þ%è’èÓxŸVŽ)¡hŸmÔÉ•e*rC{×äGþ%xŸâ6¯q«ø—S¹¾¹¸‘åvžg–rIÉ$óÉ 3T¿mKP»¾›,÷3Ë3×s±>¾•PtéŠnÅ<ŒÿŸ­?¥\Ñå0jú|ªpc¾÷óTWú‡ÿÁ³þ'»Ô~ iÖ“LÌ‘ÅI´àèDAÜG|ÿ>iKœœcºÿnxsIº×µ‹ .Ö&–k»¨aUE$î ëÚ€?©?ø6ëà•ÇŠ¾7é:ü¶lñÛ]G?˜c$ ȸÁ#Þ¿Ô¯Ãv+¦è:U’€¢ÞÆÞ<0Dkž;sšþ;¿àÛ?Øêx NñÖ­¦y® ‚dy!ÚvíWÎYzWöRŽ0ò (]‚ŒœcÜà}y®Å>ð_‰í¤´ñ%¦™u ©V[£ž¹õ¯Ëÿø(ïü£Á±Ç„µ ›ëøRH&1ÆfUrè§g®•ŸàæÿˆW:ö¥†¯;A<«Idc°1lcýïêß²ì½yt÷7Ú7†–grͺ"I'>ž´õýŒÿf½VÒKkO è7QH¥wEmhà‚=û×ù§x‹þ3ý¡5+¿2Ó[¾7îÚ!œ÷'ŒWéïü×þ2ñ&¡ã +BøŸ«1¶º¸†)%º” ÙT“¹½ÿZþƒ¿n?ø!oÁŽ«uáéöZœÎñ-bFó ±¾¸¯âwöÄÿ‚|røS­ê×>Ð5 Í:)fx¾Ïm$‹°G §°¯ôÞýœÿk†<'¦kzˆ´Éä¼µŠF‹í0’DV Þ§õ¯oñO‚þxªÒQ¯Øè—pʽæû+0999ìhü7þ-þÌŸþ ÞOmâßj6 ²³Ïm4Cå$w(¯žf 0ÀG¡î+ý'ààŸ_³‡¾ë:¦…ƒmâo#ªÛ-²Éæ`ž6 æ¿ÍïÄizÞ§¶ ÞN±A7œcÃõ  •P0yäõô¿ì—âýSÂ_|}¦ÜËo Õmy‰ÙIÛq¡ÿ9¯š‡Aôô¿ìáCÅß<aa Ë!Õ­Iû×ÐPûÿÁ-üa¨xÇöhðeö£3Í7ö&šåœ’I0EÜŸzý-¯Í¿ø%ï‚ï|û4x6Æú6Ž_ìM5 ° åmâÏ_¥~’PEPEPñÕ/|â;fä6—u‘ÿlÎ:ýkü‘¿à¾þ‡Gý¦üK$H~«+·.ù<ã¯&¿×c]²:Ž—¨ØÿÏÕ¤Ðôë¾2?ž+üì¿àáø&ÿÄÆú¿Äo h·—ÖÍ,—N`ä)fÎQOa@âôAü©k¾ñÃøZú{ [ÃÚ•¼¶ò4lÖQ‚¤Žëí\ü>ñÇFÔdbpÚÉýV€?nÿà…žðω?iŸ {È%5kr‚]½VU*>o ¯õÊøI§Øé?ü3g¦…±é–»B‚J8ü+ü¿àŒ_þ/MûGøSTÓt-VÖÅ5{$”ÛÌŠMrNÜc¯õ¶øggðÏÂÖÚˆoµÅ¦[,¡óDHsß4ìÉ:# ‚1× ðxïÅ>Šþr?à·ÿðO}7ö‰øI¯x‡GÒ"¸Ö-,ng ¥Ü‘3uUÉ9þWß´ÁŸ|ñþ»áoO¸³6W÷0¯›ÆIYF7é_î§âÏ i¾+Ñot}RÞ;‹[È$ã‘©)SÁµðYoø!´?_[øðÛDQ¨?Ún™--Ææs¹ù¼òhüÝYˆÆ§@> WÜ`¯Žÿ zÓÞ¾M^y…ºé7¦RÛB iIÎqŽ•ûÿý†>"|`øïámjã÷é¥Ûjvr¼²ÚÊ"N®Ç%qŠÿP?ø&5•å—ìÑà´¼ hºhÂ~Ï=kôRáKA2Ž­Š>¥ç^û8ü?_†ÿ ¼1᱉í4ÛXäP0C$(¼ô5ïG­üà hxšmYm%ksçဳuÇ¡¯áµÃG• ¿)r+ý‚?à²_ðO«oÚ¯áNµ>›§­Æ¯ÃŲ î\FÇ®kü»jÿØoâçìýãmoLÔü/©­µíÂÇ/Ù& ±dlìé@Ž@> WGáoê~Ö-u*âK{»IRT’6(Á†R÷u§ê6R4wVW:I ‹‚:ŽEUHæ‘‚¤,ìz‰öé@º¿³§üçö€ø!¡Zè6Þ!Ôd´µ‰"^i\ªc'Úº__ð^Ú+âv•s¥Eâ=Jî"hÉŽicá•èÞÿ¥~hŸ/xSRðψì-ï-ï­e„‰¢WÌF^„{šþ#à§_ðoþ-Öõ¯|/ÒB½Ì·+¬|ÌYø*=èüöª@7äž; _οiüsÿQý¨<1«\ØÁá-jXã•‘Y,%‘HVÆAœ×GðŸþ}ûMxË^´±½ð¶±Ì‹#Ke4J›¬|q@ŠZ7‡µ­zå-t« ‹Ù¤`¨DîI?@kѵŸ€Ÿô (k¯†õK›üÙmåUÚFs¹“Å ÇüÇþ Éðï…£Ò¼AñCI†yÐA4‘]@‘´°!Å}aÿmÿ‚mü øcû/ë7^ðæ™gy§èÓ:K¤(墄ó¹Pß­–Ī𱗠„£ÔÆ) P+»ø™¥Å£xßÄzt­µ „@0G§N•ƒè(,áÉô'§ã_Ûü÷ñ#SƒÇh¢wòÉrvü²"ôúþ'©úŸç_؇üÇÅkAßÿèø¨ý8-[}µ»ž¯,àQ©þµñoíóà‰|qû>xËL†3+"ýv’w[ÉŽ½}ŸcÿVõëoÿ¢R°‚¿¶_ø/¿ü§Å¶ž5Ö¾%xÃ×PÜOqw!´¶fs<„’‹Ö¿ßü*ñÿ†¯f²Ôü5©Ã,26meê§ò=hηØ`¿Î¿¤ø7€ÜÚGA«”:’çÆ7ûWóß¡ü:ñž»} …‡µ)gžD@Ö^¬ØÁãÔö¯íÿþ Êÿ‚}x×DñF™ñÄú%Í”*b¸ŒÜ@éÅXœºŒñ@è1àíßð‹h;²û2Û9냭lj‘ßY\ÚJGþÒžÖîôÿéðks[Ü$kP}—PñF§<v˜ÚæR1ø½t¿³ßÅ«y.<ª*¦K³L$óÖ¸)¾øÆ ¡g/‡µ$™Ÿ`Ck/Rq»@´÷w.ežWšF$³ÈÌÌIêI'­W9bN? kööÿ‚Rüdý©µ{1‡u4éÙ3,¶³ÚÄrrœŒý˜ñ·ü)ñBÇI¶¸Ó,¤’y"BÁb‘H, ‘ÂûÐñßies}4vö°¼ÒÈÁQY‹psÍ~úÁ$à˜Ÿ?hŠ^×u_Þ.…õ¬ìó[Iå”YQ‰Ë.:f¿jÿc¯ø6‡Ä1øŸNÔþ XiÌRIÑ3ªêNw¯Oð¯íGö?ý†~þËÞÓt¯hV0]Û[Ä2[Ä®]Fr®A Pý‘ÿgýàÂÏxOL²ŠÙìôûh¥ ¡Ü‘"œ€=Gé_UL ŠP:˜Ü©R9UT àSˆÈ#Ôb€?Ïãþ|ðÄk›‰õKÔ$ÒBÜò|ß/nXó·Œm5ü ÝÅ<3ÉÀu•]ƒ‡0`NrzÿmÛãöðoíeð÷VÐõ}:Þ{ém'H¤x‘Ø;FÁpHÏ~>•þtÿðPOø ïÅÿ„¾&×5ox~öïL7D-­eu ½Ù@1üèùèr§øÖÖ­_è·ßi×2Û\ÂÊèñ;#SAÖ½÷Æÿ²gÆ¿ÜO¯á Z!2»;…ÀRAÎR¼ Rðö³¤ÈÑjmå´¨~eš ‘Ô}Þ¹ ×ßÙ+þ ñßöl–Vž#Ôf°¶Ø«ÜÌê0Æþ:WêV¡ÿ2|d»ÐÚÆ;ùsxywî+Œÿ¬ëœ×òJ–—R%µÃŸD‰ÉýÕø´=bV 2úBHòœçŽ›=•~Ž~×ÿðRŒµ5åÐñ&»5ŒîÇÉyäØU‰ÈØ[Á¯Ìù¥w‘Égv,Äœ’IÉ$×Ñ? f‹?ul<9ámZáæuPRÎfÆãŽ_zýBøUÿ9ý¦¼xÖo7…ux"¸ØÙ’ÖX”Áä²ôæ€?- žêXà·‰å‘ÈUTRÌÌxÀs_ÓüƒöñgÅ_Œžñž¯ Ü*ÒþÖäK=³ìØ’+–\ú«ôcö<ÿƒgüOs¬iZ¯Ä Žå‚Y¢šÙUebºýkûSý‹?`ï†ÿ²Ÿ„ôí+@Ñ­ ¼‚Þ$yc‚5rè X/\Šû7áWƒí¼à Ãö±,Icao UP ‰W¯èÔÔPªà`qéÀ§PEPEPFx5âß~xâös£ø³F³Ô"¹‰ãcqrpàãS^¡­kÚne5þ§s­´Ï$“8E  ’rON ~h|{ÿ‚ª~Îß'¹²ÕüY¤«bêñµä%]À¡‰Ïñ‡Æø ìçñ#RºÔm¼;¦ÛËq#H|¨#–bIû½y¯ð¿ü™û>éWK5Þ‹e"««bDq€9¯q°ÿ‚ú~Ì7wg>%Ò@ÞW>j(ëŒäô¯yðçü{ö\Ö¡I‹ô5. á¯àB ëÁPª~Í_ðL_?³¤ö÷¾ðÞ—í¹VIb¶ˆ¸eäásÖ¿Kìí"²·ŠÞ H#DTp8íÒ¿,þ íû-°xÏAè?æ'oßþÛSü×ö[Ÿè?ø3·ÿãôú±E~K^ÿÁ`¿e«XšAã=•àjVç8çþz׃x×þ ·û0ømeò¼S£ÊÈ<»˜ä'é†<Ðï õ¬_CÓ5«Ilõ+8nà•J(Á ?fOZÍ·…´ˆ$‘X¤QNqÑNMu>ÿ‚ÚþËÞ+Š7“ź,Làö(ÎN20Î=E{­¯ü_öaºd_èX ÿ;Nÿ½ Èûoø6×àd> ]Dé6æÝ&)L ýÊý”ý”ÿà¿ÿfTðLJ¬!¼ £·ÌÜ s¸/\Š]þ iû4êó,1xÓEÜÄ·Q·<“ùé_Løö’øSñË_ øŸM¼’LmŽ+¨db[ š÷ˆ£HQcB¢ª0…> †t™Uãetq•e9cÿÁg‡V¶«ø{N»ž%Mæ{x¤lŒrT¯Zý"ð?üSömðZÃö?hû¡ Ý>Ø}Üwòùé_¡´P˜ø3á€üAáÍÂÁQBƒ ´Hp8þ«/âÀχŸ hŸ··ü×áì©«]èS¶—Q¶’Hž4†BAæõ«÷;ã0ºÿ…mâ£c¸]f\ye3»>L1øWùÁn5¯í5⸵«­@Z føF’I0M¦i6`ÓPö{ðþQøUã}~ßKñ£ ¤SαnštÚ “º¿ ß‚ÿ¶§À?:­íŸˆô;•»…¢–{wxã­ˆf“â-cG¹ŽëNÔn­fƒ£E<‰È âëšûÿà‡ü§öƒø(–ðèž-Ö½¾Ý¨·³p7Ðû0Âð'Å ×OðÝì²üß'ÙKO_¹ë]f‘ð‡á¦•"\i~Ò¢q‚²G'Ü„¯ò½ø+ÿþÐ^Õl·®ßÜÚÅ$~`žW ªXœôÏå_Ó÷ìWÿü7ñ®™acñU·µºò¢YZâuv9,Ôý„Ãmkd‚+x#†5^Q@°N+ùÎÿƒ€þ7h~ ýüC£I¨À—W:tðˆŒ«¼—ÍXøÇÿþý<'á«»½'ÄZmÍßÙ]£Xg›yŒàd7šþ?à®?ðV}ö¾ñ¥¥hú”ÇDóæDDŒl„¼‚6ÐàwÄ-WûgÆ:þ 2Üê72 ƒ#ýk’^ƒè?•G$,#’]سÉ$œšœÆ8þýèêNHÁäœq_Ù§üámJ_‰6·ëžJˆ²ÛN9–29Ç ý+øùð7…5Ox‹LÐôËY.n/ná…R$foÔrÖ¿Ówþ Ôýˆo¾ü7Òüg®éoksymop¦hJ6 +ŽXPõ½f¥m-Tõ[hýDJ Y ´Š6ª¨è ø RЋ|YøàOŒ=Æ‘âÝËP‚xÚ3çÁ§ ' §Ö¿~)ÿÁ¿f¯jZ‚xcK†K‡wÂ[Ç,źúWï}üìü;ÿ‚þÎ>×-õi|?§Köy–UY"Gå0àŽzWígÁ_ÙÿÀ_ô+]Â:E„VÑ$`ÛÁ|"ü*3Ò½êŠ:QES4‘Jº«@ ç×ÖŸEx7Ä_ÙÇáoÄä‘|Qá½:õ¤sËk „“œ’Y=Í|««Á/fmVG’_h™’s¦Ûž§×Êú×éù+¯Á¿eÍ^Òh?á ÐÁ•diÐ.3ž„E_ëÿðoÏìã¨øŠ=ZiÉÎ%Ø _½»qÓýQ@þÌÿ±ÂOÙ¿FµÓü-áÝ:Þh#EóRÚÙQÁÜž•ö\š^*,rÙZȪ0A8ùxâ¯Ñ@ °²µ·µ‚éJŸÈU¬Aù Z(¢Š(¬ŠÙÈÎz÷ê yߌ~x#Ç6Ò[x‹B±¿I«yÖñ9;†w-z5ù‹ñkþ cû6üM·»[¿hé5ÊÈ }‚ràó¹SÞ¿>>Á¶?|e}u{áÝ6Þ×ÍveX hÜÄð6ñÅ[´PñWàÏø5óÀÓ–ÔíÃ.ìŸÜƽøê†¾–ðçüUð?O’.´¸$Té8<ç _Õõøëû7ÿÁÿgR[Ý[xWJžâ–¶‰ÎTÔ¡ÇJý;Ð~|:ðìQE¦ø_K€Dª©‹h†6èƒÒ½>Š¥m§XY K[H P0Qªp?ÝojŽß©ÿuQEQEQEøÿÃý¯|Eû8|Ö¤ðíÄö×sZÏÉ 2͘9Sí_å£û@þ×ß¾/ø¿ZÔõê¦9ïîŠ§Úæ8VãñŠÿ[oø*7ì"¿¶/Ã}GA‰\É žXÛ»,cuû_­ àÚߌšv½¨>‹§O-¼—S<~ZH¿+;0þœþ”ü¨AñÆÑ9•X)ðÆ¯‚@Ï’ÿÒ€?åý þ-Ì¥_Æ¡ƒþ“7Oûù\µÿÅ?êD›¿ê’îÎss'«Wï~‰ÿ÷þÒ·í—úš#ï#Œgù×Ö¿àÙÿŒšÜPɪiòÂX.á$r÷þë@Éœþ Öî[|ú­ô¬NIk™y=ÿŠ¥µñ?ˆ,ˆ6º½ü$—2ýš¿¶­7þ rñSéû§‹mèmŸ\u®\ÿƒ_> Eæ}–ßv c÷2ä‡Ö€?m/ãOĽ(±ñ^©\cRöú?ùÍv0þÔ_`P±øÏTÓÔÿür¿¥ÿÁ´?4¸¥{-:Y ‚T"KÛØ§ZùÇUÿƒwÿiyÝ!Ð5¡ˆUÀÀ8~´ø¯¦~×ß4Ù’XxcÄ:€auw§ÚÉ&ðC$ ÄœS_CWœ|3ð=§Ãÿé>±@ØZà 8ýÜj½ã¥z=QEQEQEQEQEQEfêöjšmå„Ê+¨$…Ôòu+ýkø ÿƒ‰?à™ZÖ¯«|Rðމ,ã3ÝLÖöìßÞr~Eç½ -x7ÇO~øÝá-KÃ^&Ó-¯!¼·–g…$ûêËÕ”çƒúPøRx›Ã¯…õ[­+T´šÖæÖi!‘%B‡(ÅI!€ïXI8ǯès_ßïüËþ ÚºÖµ}oÅß t‚ Ò\\¬6°`’ÌîØ=ëùWøµÿžý¥¾jwVmá bXà–DVûì§i `ªr:PåQP ‘ŸÏǵli^$×4WiZ•å›)0ÌëÓ§Ý#Ҿаÿ‚z~Ñ÷÷Klž Õòï·:ãzržµöÏÁOø"?í-ñ*æÐ\ø[W·ŠvMÆ[9bPŒŸ™= ~7ê? è^6ñ¯‡n#Òm®mî—ívÌ•]_ëÏCùWúh|øS ü"ðFámÊHll­à"$Tæ8ÕOݸ?y§ìáû)|:ýž<9c¢øOF²²6ÐGx Ž6,Šr«í_X\ ŽÃ¹ÿ}Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ eWe b¬ÙôM"äæãM²˜žs%¼l2´Q@ AÑbâ=.Å?ݶŒìµþÐ.xŸHÓåÿzÚ3ÿ²ÑEdMðûÁsœËáÝ-¿íÖ?þ&«†ž iø ÿE~xF y^Ó1køVÌ>•jÛéÖpÐ$Œã´Q@D @zÐËm1­-ï[[Ÿ¬1Ÿý–Š(¤Ú6“8ÄÚm”€ökxþËY¯àï Hrú˜Äõ&Ù?Š(ƒÁ^#Ãú^G#ý?¶-46Àm²±¶¶ †%L}0(¢€4(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š)­P}þ“§jp´Ö\Äà†I£W]¼/ŲÿÁÏHÒêÞÒå‘É,ÆÎÉ9Éå?Î(¢€8»_Ø“à¤Âxü¥ï#ýØ}:-{‡> |6ðª"éÓ-ü°²ÚÂÀí„âŠ(Ò ÓìmG¥¼H¤H£œ ÎÕ<3 ë14:–—gu‚¬%‚6È<«éEæÇàŸ¶ ÿøD´¿´¿ì°õ?ܯNÒô+E-´Û(-!@VÕj(  P€yãéþú( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ÿÙPK¬‚C7 layout-cachecd`d(xÏÀÀÀÉÀÀâ d¸I &A ¹ˆ•ASœ¡W…á/TML 3ƒäbg`˜ÃÇÀ°W‘á3'\JH¾ca`(Ub`øªÊÀ Í Õ^³k"ŒqÆx cˆ2BZ0FŒQ c¬‡1nÀ?a ^&(ÃÆ‚1Ê€ PKô¦‚óPK¬‚C7 content.xmlí}ërã8’îÿóoÏDÕ„%Y’ï=å ·ËÝåØ*W…/g¦wc£"! mŠÔðbY}öœ˜w˜7œ'9™¸àU”DÙª2çÒm‘ H$2‰¿üûÓÄ6©ç3×y·ÓmïíÔ1]‹9£w;÷w?·ŽwþýìýÅ™IO-× 'Ô Z¦ëðo¾vüSñöÝNè9§.ñ™ê õOóÔRG}uª—>åm‰'~0·+Î ë_ô)¨ú1–M|KÕ[æ…õ¯-̪~Œe©úçC·êÇO¾ÝºÀõÉ”,Eœ͜‡w;ã ˜žv:³Ù¬=ë·]oÔéžœœtøÛˆ`3*7 =›—²Ìµ)6æwºínG•ЀT¥Ëê$9ád@½Ê¬!ÉŒªÿ8ª,£Ö˜câU– ^89¼}«úðö-ýÛ ÆcrÜù/ù?>}ŒeÁ›Tm Ë&XezlZ¹›¢´þ½ëº©ø˜ œÜÞÞÞ~GüÖJÏJ‹Ï<PO+n–7‰mFw'yLƒrÝ”hÑGÓHð‘~Á½Žxö­Âªÿöéã­9¦f‹ ·˜ãÄAÎH•–УgJi †ûèÁ”gkHLÚ²¨iûgÂ=6ÄoÄw;·ñnç“kï èªÔ„ÙóÔ˸”dŸ‚D<µ|ñ¶SÞÈ…zŒzÆ5å´ò'2uýµ2âA¢IQ¶5¢õ øÄµ¨ç$ŠLY`œ²'j-"èch2‹®ã»6-¤)Ylód{ŒØÆ½Ã`…¤Æ§ÛBÂÒsH“í>( jkQÓwd좀fŒ^¬^5mãjÜ@MNa§Rå*°Û“õ­LçcAêyqÓþŒùþ¢¦;E3R>'a=˜ÙâõDS•ÿ35Ï%–H;œ8)jÄÃ,Qò¹¤í ½´×eÑPzÔn¥Jt{ݽ?/MêOµ“ÚmôNNÊHíî÷{Kú%3¬Sâ‘‘G¦cõ *æ?Z‘Þv,âYªÈ õZS2Ê”ˆº à4Û=.›‰Ù0tÅCŸý»{Ó@{& ´K_j‚`é â¨oô—œrù¶ècÄX6}*üI¿¡ƒ å(ýÛñþ·ò@íµVѧâ«54jA«×Ñ*ÃÅÁæ×ÞÞ× a¶ô¿•q;Y~ÐNÖ±ü¯W®ãoq¸*Ωãòµ×ꉅæ2ÐZ†¦¹ø»Ð±¨g3‡Æ;tÉeT±©e´ ö .£'ÕÆbCݲéøº‡{Äø¡'¸­žò‚ÕÚ’EÕhh%^Ö#L½Ôso=åœÿùês½»WËàmŒù“Îwmf‘ó‚R­ÇjÙù»ì.7« qó·»’­¤Xá/- [=ðkŽíÆo=3Œ,b3?Yàcwós{û•c=&šWÌÀz¬)µ(”jüX·Ã›5)l1úLÝÍš%­ºŪGÍnfw3Ý•¬ßÃnÐøV ñ•Ì/߃ü-^B¶Rþ–]Å–“¿j‹\ò÷jÍ9«Ê_þ¢Y7øIŠM]è¨Lp–XϘT¸í5Rõš¥ª–Pž¬Tõ©zÍRUOøÒ ˆN³—\K=û^²÷BÄ­ÆÎkéÆÇl³`Ë*é ÷âEÂ[âßÀZTGÌQcZØÓBo»¬Ó߇h?/[O"ëòÕ‹ÄÖ3»âûýF`݈Àn—‡àûÊUÂ*»ŒïmYß.Á3Èãj[àÈ~7¿]>ŠïC׋ ^•<ö뉢}­ò˜N°ìyŠñê²'1–„«ÕŽjÔŠVûë¹O^»lnÃê;t¿ô·ËýÒHå+zé¯ä©¹vâˆkÍ™l4åF4å3ÅÐWaU1Sò,ÑÛWç¢x9[F³\¬¾\lÈgqð-Jð7'ª¯qyu>‹—ЫõëÐ5ÕäÆõà«s=l½²«K©m:ûÙz&üÂô°ª×+Tû:€pÔUË6Ëö_qþå¶»M€{ýøo¿1ã?¯V­QP_£ºÝlÎÝF\‰«Ž&W‘U\<ˆù0ò\ø0¦–8¾·×%Íëy Ñîq#è o• ¿:§Ð G²Ö%ͯ®.Ëûíþ þç°{|Ðßëo;Wik“Hz³É§^§Œ×«±7ý¾òÿOÛì¿:ÏÕ7716e¾Ginf/)¾5RýýE˜ï¿ºÓ8/gÄnPûV¡öƒæàO?³Žü¼:ÿßwn×Õ‘ßY<ìÁ†n!8iDüÞ¿}‡¦èƒõ<ˆ…‚ÞÝk$½‘ô­’ô y»ÝFÒIß*IuîÅ—³_4Øü¹±ù]f‹‰¼\p.´„ÝÕÎì JN  `˜ÅãPø>b“,QÞ ´«À¨ålÓWãڻ̪ý-v"£WÙº}¶ÕûñçWˆr]”U&•IzUÀ׫xå,s¿ˆñíŽò“,ñøË$vkêúÐ[wº“~áQ´ñ)2W½»ûº¦>L^¬½å_gVæ ó<£h)0m6}·ãQ3x+¡¡ýÿíŽaydvj‡æÇ„ÞíýQ>3¡ øöÈ£–ökäQêh¿v¨?"“ ÁÑjyuzï3׉–^þ’M`½m¹Sb²`žóÙĵ(‡b,1Ä¥[ç7cµÂXáT×öA‰ñâ×lÆlúHm56ád@=C¼ÄçÐôŽø©Þ5/°óÜÎ'|Åo¨¢å‡Ã!UÑÖdX¡r­ymÔyk¯do¤ÂÜkwOebWˈ_¢k½<šßæÑLªÐ Ϥ¸E‚z‹Ÿ¯Cýz!Ý¡þIÿèy;´¿Ùœìôà¸(\/0ôºòúpñ[Þ¾®Qâ˜c×kó)¼#>ŸŸ0G§r^õÚ''Ç8íðÙ˜²Ñ8à sŸ?äÿÞbŽEa®÷ö1üsã øátìÑ!ÊÌ ô¨ßéîiÿéôÅ'‡?ýÔ;>¹ìuÛ¿MG;òSA–Ï&SLùÌ»³w;t2 –zD j@I×ùèq'zÌ%BÓ ÀþÎÙõÍ—Kã½k†ê|2Vh³¿`\ËÞìœ]¸Ó¹‡Ãa¼1ßÝ“““Vooïȸ ÆÄ1~!¶«‡¥ îœ}$~`ÜO-à°ujˆ¢øCªTø“´ôo®’ÅR­Gb‡¨½¶Vw¯µ×¿ëvO{ð¿>ÑÎÙg3p1챿k`I0~YeÜŽJ‰?ÞàÛ³‹Ï×w—×w·¨<)­K¼EÝ{Êÿiˆ¿5Œ&þLÿN¾I|Ú2];œ8…¥Ûç©¶~ðSúÏ¥j ¶mÈe޵T&°,¡/SÕ .n©™œ.tݵµ¼úZ©´©NiWWì;†,A“V<ÐIõ½³+'ð\+ä 3Ú›ûOJ¢‘¼%)ýzS×§›$²­cmUi}O}6rŒÏÔ{dtV7Í%dvÒì- ±³n/Ÿ® Æ½@¸æþeû¹ªÐ¼g(ãbL͇ÍY—È\9ÖfiÝ¡¹r@Ø6Ù´¶©CÝxÔƒýó¡ìvKÎ ¸€œ>¸°"ÜÒ œÖHm]4~r¸¸€ÕOgEÁ^QêË13¼>Ûo°av'ìwì߯nè®3d£Ð[[Ò+ Á $´lLˆ÷Ђ­«(€ŽA„:p5,¹½”uèmç¬'‰Ö««²«©™£eH@¶M$¥p×Z¤•Êèú”ëøiç¬ÿr,L9`¡ŽB¶‰°@Z‹´ ­s`}xÉé¡á-˜±:¦Ù&Â2–¬­!.»ìœl­ø•£‘³îöΜ¥•kHÀ†©La õ¨œÖJV!ýIýåÝ[ðú0Ýû„ëG‡³nÛ¸º¾»ùüþþâîêóuÞ/hý¨j뾈ü>Sâdë¼ë·†ré@e)ªBn¹E¶{²sv7¦7Å˲˜oXdPË\Ô„;3ænˆ?è5CPc×dÄ\ߘÚáˆ9¾_yB¿}dNøÔ¹wØ“1!æ˜9ÔoKã·ßá-MÃÒć@ ËÅIŒ¡Yø_Ô l~O„r2þô÷Ð ~´]“ØâO¨Å‡¹oÂÚùÆfÔ¸øroØ.±v PãÍÐÙÞ5h`¶ßjDæPvË`JÔ§Æ$Ÿ™ZíÄ£†ãP]ÄÍ È|K0$ žCì¨Î]†ZuƒÓÄ;ue ¨Á„Ú…Oh¬ŒkUƶÜBŽc{ ÕŸWòˆö·”¯6@1h…ÑØ¸½ýTàÔOŒR)†=²‰¸æë`þÕ÷Ǻ8Ëö¡ˆñ÷•ÄY.— ­½{hÀ6a˜©áC_<="¸ ó®1¡ïX©ïl‚ㆄÚÄQÏx‚XzL ”Œy“xI$ŽU"9w(¹&´< ¦;¡8üÌ÷CjÌÆÔá½€1÷½ÂqèXµ€Ý´å‚”:øc˜Wý'âÌÕ(kÂið™rFˆ&»´DêÄ7ÀPè-N ä…dCÛ¨EÄjS†éÍb¥8H*ÅTµ(ÇEók¹—p"„Ùïæy‘§Ä#¼@Â|ØÞÏú‘»íƒ“?2çör~äãKñÇyïü¨{°¾·×ž:ÏïG®ÀèÔ"eºŽÏü€Ïš`æSFASŸ.×V‡©·Œ‡ ÷H[5ÕçxSš£øvAY0sŒKƒµW­|­Ó‡Ôu˜,«ÒBä¨Äª=ì’»äHÈARǨ)< «¡d© YuI6¥xë¹°¬øë{«"õh™SÆ,co˜´)´^mG¯Ê¿2„œØëìòod[37´-çOÐá|»Bäf!ңΰ¸3ª²7éÁxôT³yè/aîœ]þíüÓ——Æýíe•Ø ^¤v+o©«Qš1w’øHSl‚z cTy¬Àýñ,CÃôÉ{é>9zŠã4Gfû uä-„ŸÄB˜ÞìÀVÙ-.“ ¾Qº÷ögdªþ†]š‡cè…e‹ùꕜh¸W p[ö  öVDï½êèý / ´Û>:<>ÉïÇKÃ÷ó÷â‹óŸû‡½óï ø\a.Vœ‹iI'dRË|ü6ñ¸ÃçFœ‚©ù“Éfí¹\Oä„ã¦$9ßä"éKƒB4ù†jêa˜B×OøÄG³Óµ:LE®Ž£f¢•U7,$UýÏ0ñùá˜0ÅØ0ƒƒxCAjÉAêÔ ƒ+yb‰A6À¯hIŽÔÆŒ$ýÆ›X^Ò”áÇП·»Ü*‚5™ÒjO3D¤ J¹i=ÐZŒ¹Ÿ26êU‚æ ú‡q#ˆ=7îðEþinpó7åøt[UOÃŒ5OªžÃn®ê9YVõô÷O”ê¹ìýüÓ媞E®Í‡Ù9ë£+àöîüãÇóš\«¯…ùió4Ÿ pÁÖ ·bXnJ=ôÍ>šâ?øE–I>«øÖ®ùåÏq¾ŠÇÓZ›5W9&ß%ñfäð5>E™ƒíä¼’•z1—"ìë uã £ Ð?â ÝCº ¶Dòàgj¹1.Ð|¨uäšLð5¨˜GœóPw2A[«ÀÆ#ñPx.‹ ¹c, Dpx®ÐÕ÷×WÃÂŒ8|ë Õ— tÈ#³€Nn Ÿ¹1&TÀS :0`Ât;GŸ¥ÏPú²ÿjK|ßr£®pÂÅ&Þ{bE:„‰l|¾ípªè_xÝò§ÔdCfª¡ÞÞQˆ&¦]ãÃç¿Þ}æî `.ÔíéötÚÉâ–~䨂0Î{`È™à>)ÑB©Œƒ`zÚéÌf³¶Ãë2UUm×u°ºÎÎY•RRÉY=¢Xªµ÷kÜT”Æ-t’±™UôàÒSª cPM¨"b2–PPU¬b1V±ý¥¬b Åo\BÄä{„Òn-fhð\´%aŽ?¾qA*Üô„$#¥Ž×µ,ÈuE4…µÏ}?œp3XMr–§Æ± *–"TY¬Ìq^qUïÏ}`šøÄ§S× |ãîâ‹1¨3E”ŒŠkL„ ç ¶©…á„r}‹ÖA¯‰éL:gŸp ™¸0]ãKÝ)õ> •ÒûR¡ëóTú`nXtHB[ÇÝB›‹`\gÞ!nÎ$¿Áº¸óq({ñÛîpÏ8ìp ûŸèþ®!–cÄ¡˜B™e~&m=¢)ø@´°‹û †.¢l„!³¡¹!ß2ˆÐ©ðS%Æè Ç8ŽC˜ –@ÏÒ¹/°8ÚtS…ÎÞ·§U|«¨Uˆx:B×- ^åºåòüý§ËºÇíåÅýÍÕݯ/¬ÏÓÿ )Ø…]9PÈÀX ã¿kÐå' {NjՔ¹âJš ´ëdÏlLÓÁ&'´-îL‘KìËl>>çÞŸ”yWS0¿j‹ò «J“Vbµ?Ðꯞˆ°idmãt të\®ŠW±ò¨‡É?‰° ÎAׯÃ6ý%P6î­J%ª¿s懖k´|]ªplî@w¨á` ýk`Q[5Zv=¬¬&0Wg¹û0bÀŒxá.˜@¾š:Ò }¯ã˜ÓÁ6a$T¨?çÔ,óMyJ‚E¯{ œ R9èó⋘µI¼èáêKDȽ+îÌAËx%ZÔ$0ròmÿ¯Õ[qLkÙwÿ½¬N8…‹ÝPeÀ< üDIžJzóˆ›Õw‹|û§º’·QLˆöˆ|l°âØÛèn 4»¢þ~›Ï…†Ø„»_fCÛá®^ƒ/¡ËŠ ú=¸Úmï·ë…î‚54ÞlDƒœU´2Ç]ßrÚ–Ý# ÌÑ6ÈŽö»#Ž=”¶do[¢§ íÑï hÝÆ°¾&ýVPß/Ÿ˜AÞçL‚šæ=Ôf<ý>4w¹‚&È«¤&¸¶|-bšö•MÕÄŒv'òTìô„<,STÑ^¹}áÑ…]Û„ù\Í(H(C7âµCaµHa0Í. HoȞЎWÅÔeNÀí‘jóo甩³R”gƒ'@]J¹ZÔàK>÷$wª¯ÛQ]­›EÕul6À§g‚áz$>aæ»ö(ˆÂ³)ß…+ Ežå€ š*ŸÅ¤¥?3šUŒo&Ï<œDíUgÄÞšPúÐ-{LÁµx¿òÌ`%6E}@¥:Ñ` ï‘^û¸&e¼ ²|ÝØ¥ƒAj-çÅ*8öÏ€Pr;W•ÈëE"É9ý¢Ä¨Qt£<#qç$–xƒšç<¨€·»Q´6 _„ÎH“ Ÿ›}ëÚ˜j°IN¤W«ºÊÏÿ²%z¶!6« ‚°¾«/ø§ÇtôgLúd*ÆñºŽ=ÿŠñMÉ€`Ž’Ùc]âµ’Ùòcn¿wF·wÔÞƒÿv?ÙÁBoeÓ¯²—?Ö3$çVÚC@’râ¢*žŠ7ËŒ[M Ö)Þuñ»ƒÃÃÃN`NÅË€ :gÿfhÞk2솊#uºçOôµ¦ž©‰-+÷D{5€ä¯ƒdÀÈwÔÏ: ø®Êž×¤ô0Ñ$H›O©ˆ䡾èð›¹Þ ©ÈlÏ«9*4û už¯¢¹tÅáJ*ÜgºªÂ°c£ÿÿcäÑ©¡©»5;…;7 ¦a`ˆ¨{ 1»9å,ÂÀ8ìÅ™,©±\M»½ä<ÜÓÿ6þ|Ê{?úó韵_¯nï.«DÂUª!îmqw¼‹<&ÁsùNíœwI$ r9‰Ôã’|)ð,‚Ò?QÀ û©‹§ÐÓ0Kx<×zJ¹ÿ3’Yå˜Ñ‚Vyóë€ü—pCjËšˆˆŽVXñ³.(S‹ãȧ*ñzŽ·a3ñi+Úa»zE”hº>À©ÿEapÙAІì Õ *Øt"#¿QÉ‚r[)Š Â»ê옫ͻœ ÑaèpGwBÿk!×ÑyýÝÈ$¹HˆÊOr† µ"JmƒcLEŒº¬Ê…ÊŽv´¬õA¬¶Éh¯uF5‹\ ÐèA ‘tMž}ãñÔ¶EJ~x3mÎÑE}·ö„7ñX϶|Âyxdmãó”bL«Gg¸÷òB»R ä’C†]ˆCÖQc*ªO}xq!Šcl/T'“9ÌŒï³)÷FÈ@cvØE“éæCëgÙ“V·uuýåþ.1«Ì1hay”a¸Žâ„…:ˆ‚Oâh5‘)WÓÔ‹Xк2rza´àCsj´&ü_ÿúÇ?-‡; £õ›q~qqùå®!¹•~<Ì"¢ ¥PgHÑ#®•JR<:pÝ .v¨HÔ¼DmÞM²à5n@Ћ¢ÒoÉ ¡|Mõ!fiª’µG†*1Fn -Àð)Ì9bGèÚ¢Cæ0–¥"O£¨)Ô‘ö\ÉÐOaJ™œS4·V\¨C™è ÈÃÔc>}+ŠD_ø%^\ÄÍ U¤år¢m:‹’dPUX)?:"q³ò%Š¥”&Nt2è25z"¢ Pe Ê©{—[{pZ$NRì¢3 ¿KójãVÓBôÈr\ˆˆAq]n›Ãšl~Ÿ\ΣD¬©%œÓ˜£2ÿÈ(X(È#(EýÏœÝN¡v_¤-€|€C,°uy•¢LMÛøŸ¥ÙŠ[”»¢âSE2\?íg0JJµ‡Å”²’!â0"¾‰Å&4£²äûÄkǥѢÑ2ÎþÊO@W4q¯Ñ úã6ßÊØ"ÝÍ·¸ ³¾â9ñg`ÜïîdÀhõÖ*y“1ê„å:‰ø]T¸Ê±„¿¹&Íf0ID)šÁN9ö @†êe\¨Ø×áD1™»qSÎDnÅÈXíë²ï½dm¡w2gt¶Ûa)"W´Ã:*u(ák8:ö©ç¹Þ®–}µæH•£e6Òû{©ÙÃsóGRHìéÐ`Fi69®:ƒ”¾‰£ £91|PÕHÔ±/NS¿(u•ŠAH„…m‚$‹g|ø®D¸nÞ(wÝÛ”÷ZteêQÌEUÀ]‘Дš¶+ÎU¬›Š©t€*Ú–d 'µ©›Œ‘Ê,n56ÚPÝ¡0_*{Ãà7L™´ˆí5ËIÉ–Ya´%ƒ#,a(ÝÝó½‚t•Õ8¹ÒúÍ4RuJkò£éÑá±F:)ä5z“®×ÿS!Jþ‰·æ»4–È*¾òX‰t¼Þ1·´N+6R×Ê÷·—7ÝRkü>ßÞ¿sy{ûz-~8¿ù¥ûÄüßzì7¿J·†¨IX1„˜[õ@”²ãIPEf§(]ŠÔ‡„™³y¹óºâ<’G ¥+³·n\‘ ¥PQºWWM9O³w´eÒD½鑿8WÙ5™gà‰\®0‘·cuù]EÒdKŸ„ÿ¾PsÖåfb>tY pK1Å]2€®ç1Ä@k…Ê„þjIh…@•ÏGqžÌ†¯¬mã# Ä+¿¤n›5 ܧÚâ¥Bê–ÓA<êŸj?óÿäD·€èü×?ÂLQ>qL.û»<1°B.¤eDê1³Å: WàO¨ƒÎÏÈUÕª¨Õ$´ =æZù$ôöŸŽô7+6ÁœÔ±ó9X«Ø8xó-t×jaBž¾Š~G<ð ZÙ«UréÊoáòÐ"6«¹–šn€1‰\ýlvä-å O=n%ªwe¢ÅÜžX»^ÁT[~ˆÄÅ)_GžN š·‰­)Ò#ØtÐ"²ã?uþh¼ÿ|}gÜ\þ‚§KnŒ»W·˜ÊýîÖ87î.?}ùx~Wé X’– †wÅb…+=¯úæ×l®ã$´ÕÔ\œ¡]×Q5ê>~Ýb½>H-T’úv9º’Ns$JDUî­‰·OÈÅQ,Äœ%ÃB˜ÃùÎâÓ223íó%ÝÒÆ(Áá­XÌ ×Ï… xþâ©®­Z}EÇŽ|-ÆbRKy‚°;žw‚ø£¾{ŒÌÌ—&åiƒÅ‚¨«D–•=ç†í:x#'J ÓÊ$oÁÊ©Wc•1 ¯Ú|]jLŸj|»m¼ŠƒI’/t› h‘¡ÂÙ•5%7Œ“›ÉhpL©;¼+w'Yë}}aå±BõÓ­oµÔ=6ån¬Lx â@KéA Þˆ'L¬¥ò&,¹Õ6ò9Æ,aIÏ9i¢ÎŒ4ªª"™Å$ÁÝz5¢äaJQ­”²êM*·¥«–4}µ¨ozŒ9í-ÊÍÇêá¶àt,)X:š·~…Rqúp‘ 'ÐÆ å…O°TÛîh$„’‡>ohš7²™/›òÞ­û%¢ÎWÐe¢Ú_LB‡Åwðè e“¯8‹>v0Œ½‘Ë產í?ã ÜâplP<—8§ðrúO9hTÞ‹Gù¬’yLJá‹bþ…rùc-/&›±TŠã1p¾Œpþ§àþsHç²ç VÏ…iEA<]ØX‡1 >3W8%‘½Ÿ…ßw+ƒ\î©F¥¸ZóSº ÷¤vwJõ“•Ñ™Ln`ã^¶—<)ºùó\¢IÛ†Êãu]ßÉsv±kðQ?õœS(Ã`dV<‹“çžd.}LGz\²Í1qFïÑ}¤µÅ„üoPnÃy"&&'fcySðš™õ¹õXtj[Õ×vn[ÄéyBUð <—§Ø§“äôÇTâ.kžÕ†jWey“ܪ9ƒäÅ™äª,Û$òn3=–±‰éÛPDKEšß"(mé,qÃÞ±Ê]bC€æ: y`p2ç©dyÙªº*+ºñó«…~âP}±Ñ_Mžz¸tËðävQܨ«îËRÈf‚åHÛçŸìWr±ðÃÑˆŠƒxà'U•†'È4Ûn§­·5i4Ûww…ë†ñlk‘p:òˆ%x»ÕØËóð"ìbêÑ ˜”øsq4eØärAR÷@ÎäMkŽÆ#8ð–_ѾœFÄð2­aØö¡×ûewÇ/Xö:g÷·wŸ?]ýçÕõ/ƯŸïoŒ‹Ï×?_ýrSõj×ýò øý~2¾gyÑÊ:¹¹hGý Ô¤DG¡~gæZv?R<]9™ÚÌWýþ¾ž;s.rú…sª—‘§ôJæžÖø$mêÞÛè8&Fš¹Kœ=Ö.™Žî«ë»/r°=³INœâ"GE-qÇ Z²Ê:J6˜»¦oæJÊ ò¡ÅYùdž+&Ü14#S¾¥—¢i¢ýA-èüû€NýX±YQ\ؽVO‹ºs nqo OúëWÊ%´OΑ²RjË©9НŸWîµRÒ¢ŒzÈëDT€Ê¨Iv8²¸•_Š’‡ H]xilF]íÖ@¶D*ZqÊb´¨òEWð¶*IOù͆8^]¾‘ Ú5m«YI*´x³T®Å"ƒÚ 1‰°82£ä!qŠÇ(Ë&ÖËÓÆÍÅIdê3ŒÝωҘ`T Ï­‡Æ].kÂàŒ]ÛÒ“Z%[ CÛN6¬ŽÝà[úMó›EbÝHÝD7™ þŸUv/éÄÞ5ì•Eb‰M1f(ˆÝà=€zl~;0®Úݽ?нcÔ{ø¢¨poï)妈ȰZäëR­çüi¥5rÔ/>QÆ{Ýš!Ícý¬GZ¯yä‘LñàÈ8¤lßãàp$*Ä)WÅÐ2Œ-£\3u$«Àˆx¡¯>qG³ó° r.ôiŽ@‰È¡ûHåur“V#ãd{ÿÓûßï^JÌ„•/½ÊWˆ› šØxH>ÎË•£,,kLÌ4[5q&M,•4°:9—Tã <¬Ž’iIyˆ#í¸‰¨ct¢žÒ×'âÞð (þhÃÀ(? ’Ø\D¬Ô£ žÎ±áBÓ-º¬šÒ¡Ÿ?«a,ÇH¾cäÇðÇpƒ. =•áñÒ®JKg2:Yœ9Žíd´J¥(†$KGDÅûC ’rg×›´‚; M¢¶*Ql+âTÕ|”|ÉHBUÏá27ôù~²&..+YÝùò›27Ç|ܸ«Ý$¿_žT ©XÙü]ã¥æouQÓò;UZ:ò,U•¤£»svPf®¼WVRèÓý—_nÎß_]ÿRò\&?î.”o¦gW…ɨì0¦âT¥d¢äϤLĪ2À(„áAü)&ÇÝO‘ Ç¢a¶_‹­æ`¯’­& KÄxÐ%ÉFó2x%GœàL«â£é‚yEµ¾•W5…U8Ñ[hÌà[üRÎìòp4ùÌš|fM>³&ŸYÎìmò™UšØÂ|fN¿j…çÐκ¾„‰åë··ÙP¨ÅC”JŒ; ãKÕÄØ‹ê?ªdØÑ½]=ùõ§´G]Ùot(¤í&¹;§Wм–Õ—_; åÉ…öùvøÊài±Ô,OM‚×5€¨D Új@$œM¢º2¦âÚ¹–· Ãd=PLLvܵ-õ…2ñÈ´2†—zãÐÙ[U.œdDjA޹/JªAÖ‚W ëÁ–ëî<7ÄŽc× „ÉîîæóýO/o?|þ|W›á.²‰qó]À¦"²-—ÿÒPyD¨(˲ª£ @/Iâ.‰à¾ É@ˆd˜DÎå{Ï1ì°®’§pfü^:?5*æk­àÚÔÚ€žã£ÿ/n§’PŒ)@¯\: Î%¾XB?ò¼àz>ðLvo@'ü×S†gœ\"÷låê·QfqÝéšþLBØU§E4•Uû mÚFœt;¾>½PþåeΨݒ}‹ïÈ+Hœ>Ï}–¸+Zq U†£–±'§ïí Ï„U€Ç 5){„¾ìƒy ÒÉ-P¬:.¢\÷‰¯1Í‹À±ÄI®}íÊУ‚ñ—§ƒ\(j¹8æÒ¤·˜^2ôWÙŸ¶Þ¦Öz‰uTLªFI‰c%'v=¨§»·ìé6ÂŽÐÁ)Âsìb$1EãcÜÞ~4ƨ”Ç(øy×y膭ßT4 g¬‚ÎÆ§®¸8ñÐku„ÌX+KÊœ†‹f]Gò¢)¹B"o†•÷ÎìE:yê™xØM³Éa³y×T Žz ¢»4'SÐزóhµé™]ÓÄSþ> ~¢QÄÔ×9]µÙ£äC»;Ô…h|0Ï ‹Y\”D0>N£ÅŒFçÑ\÷'ZÔKfÖÖ´Yév—š¶xà É3]ݰƒPQm Äžº˜&7/½Zæß– ‚Óòã繄Ô)ÃÕ9µ4 Þ¢®7ÉYìjX˜ä%ÞCiC‡ï”“ÑMê(MâƒèdŒ:¸TIÍ+®%v¾êH{È—î‘>ç¬êN‹‚«c—"NkêVÕ§O ÚŽ)}C@Y_†êÔqÊ®f¹Ð3ñ²Xñ€Ä$ …BÛâr/6‚· Ç'(â»”¡A?|+’®€rGû½ÚZµ.ŠjD¦3i—yJše¶qDañÇÒb…ЏN¥–Žô"vL“uÆ4×l£6K<ÆZ–÷×”J"÷pcbUksµö.š#ê^IAb:?!bÙnIÖL^›äxjÎ5F.è QAÂ絸Ö6B¢µ‰ýë˜gîU­Džè?^Í } }: ¹·å£špT³dòfßí%¤ :uSíãnÒý¬’ƒ`˜`q˜ŒElÈÇz‘]Lß0q•#©%7Š ÇÙ®¾—EÐ*Q9¦pá¸"æ¾®Ýã]˜<\½™0³ÙâïÛL‚~„6ÿúÇ?ñ»ycjOqÄ™Ôó,ä„[Åg|G$ŽTpy¸Dk“¹Å€§ã‡Ì¤§ø>þ5p­yüKBoáðï³ÿPKhd‡¯n0™÷PK¬‚C7 styles.xmlíksÛ6òûý Ž:½ioJ‰e[ÒÅî$iÚ»'çi’ûÚHHbC´¬üú[¼Hð)ÊR7sNì¡€]ìbw±»X€zñóCY÷˜f!I®GîØY8ñI&›ëÑÇ¿ÚóÑÏ7{AÖëÐÇË€øyŒfgláÌä$[ÊÎëQN“%AY˜-ãlÉü%Iq¢‘–&ôR’-b°¡èØÄfø Eæ°\´NY›ØE»¡Èdj¢¯ÉPä‡,²×ÄöIœ"Ö¸xˆÂäÓõhËXºœLv»Ýxç ÝLÜÅb1½Ã~—æ4P?ÁæÄ²‰;v'6Æ åÚ,%y¼Ât°hC ­f÷›Áq¿é¿Et°màªz½`¸z½ÀÄÛvèd>y âÏÛÛÒh<”‡­ˆÊ§a:xšÚÄ'„¬r¹@»SÇ™Mägz× ¾£!ÃÔ÷{Á}ù…ÄIÜ&4€s'aã{n¦#K¹ŠÛºÑ>jMÀ?­‘íûQvóBÚVÑlÉÏ\F×£÷ Ñ÷ûxE¢‘v¤¡â0Ú×:ËA¸¡dþ`g²wÒOä5Éiˆ©õïZ¨ü¥$û§#*$%¬½Á ¦!È3&¦I$ ™&·ppˆ¡ÛÜd½&IF"ÜÉSì˳õ’†(²>&!Äl½}ßÉX°…5E÷(x…C¤? -‰Q Á¢ãñC‡°¹^­ßa¤¤sR5¸â¦j¼G³&äØÂnï&íÂ,;DzÒµ"U»L"4‹^£QÖÖUŽÉ•?tŒZô¶[í,ÅUY8CVS!ßÑù %ÍŸå‚‘ÄÞA7Äq˜èûXKJA¥P·!á‡{ƒàCkͶĩ/k9‚x¡þ–ôlLKì‘̵aS}r µ"ò¡opiæÖÇ-àdÂ6%»qh©ÙÏ'ŒS›‘ f[¾Gá¦}ˆ°I°È“Ñ`Ô¹´´„#”eÀØqiÕÍñ>@ÿSç ö5³4B{»„°ÌîN’ÐPlÑívvM®z}È+FÖ1H Ö´Êå¤ÚV„1ž²;cgî]@_)ÇòûFß$œm*0Šúç"6ÿrk*"R¦C‘ìJï\f|ª7hI2± ñÆe`fû˜õ{˜æä îU“†›-3äi°Ñ%‡‰ÿWBØÿÅÿÕÄÿ»&¾ÜakÅä–¶uÉs0«sŒ¶ÚÜÊ—ÒØàµ_Ìž;#Ch›| 䨹w y¸ÀÓÉô' 7IaNj˜?óŒ…ë=ÄÞdDwÔªò9FrÙŽ ï¼R/Ø,À&¨hÞan¥×£‰‚j: Ä ² eôKD Ð^äÝ bˆÁpG1¯a!ÆpÀÄ­´ÝLHË;ƒËÚ²8:Kð“q¯]ƒä´R ª%¦N™¶5rÎj ©#Ýl PRïeòÈÇ‹],WämX¦–UE–p– tŠ.êÎîlº»‹K#̨LV¬ç]À6ÜH‰g&<¸žz-bÜòˆEÒ#á53ö#ª•Êu^oœÖ ܋РHÎ=éws‡ÿ;Ö7igG„8 ~Øk «¾¬Ù¤i°­}…%^cˆ<£I ©áP­ÙV QÃYµÂ®ÞFÈÓß Á€æJ:Á»€´j`CI½Ê£³ƒt$X/‘ÁÎÉ,xWµ¸èqMerSÑ­è…¢û(€ÇXÿy N¤ôäX›è4”e‚ ’\­ 1/Ö‰ÌX&²æ%wF¢0ènCmCÛ!%yöÀŸ‡Ëá¿!d¸2Èš"¹í‰B° ÑÜž šy¥BóÌDó& †ø öHwñžQ"}Å›8Ýò³¹v*Ϊ x6x Û;-—ûMVâ,¨Ø‹pƒK ”‰]—™Üo–*<òç½~£É £YÉÒ%r6u 0’6:(/65² /1«9¾Ñ[CoH̆ä¬4îZ[„ïq¤jW2ÒòH¸Š„&m™í^øøƒ°§'a{'aÏN¾8 ûò$ì«“°ç'a/NÂv.ôI§r–ÁOÖá&§¢Fo¶J‘×*1Ri »>QÌ73ìî$ËdÆUCÈã±{åXd’¢Q“Éì²ú"Jþ&N¢s'›§O†ÏK§Ý7•÷/€c”Áú·9Í*ä3Õ¼rE”Siã¹3 —'”Í Gu5J)O¾‰P}aâSq¹‡¯7ãHVŒVžÄò c‚Ö]þ^TUfÕ_öWN[†sQk“ª®"7YÙ‘¤Ùøe+<Èã¤Æll2¥Úo®YCo׺gÎÌùÇÑ|¾:;ŸÞx±pû8õ®¼Ëéñœ¾þuWýBu=ïxV_º¼â(ªs MµŒ©Üo>­l§`CòžÃ’ð¾À’˜ŽgóÅeŸ§žçÌU ÷VÅtì¸nï²pçóéÕñ¬žY€T ¯_ª3çh_ã=£eq×àäqUûÁÕ uk©VTõÔŸÚ;ËRè옚ÃÝô¼ó=ë‰Äðu»/Õ .oQAkÊ,Wu80…^¯ú:¨ê¤û±G ¿ýUŒô›o#S<ªÒÿ´K¡R¹šE½Cê3dö4E®'¨§ß]ü½Ù£UX/P÷¯O¨Kß]>½Ta3üM‹ôê,.æqŽû‰·>4“ºÁ%øg¨²5mÌG—‹»5Vš{*ʲ£Z ŽÃ ˆšebQÎ]¡ GÆqt½¼¦$¶e5¥Ð^NŽCJ 5o”Faz=¢Øg?8ü¸üýQÝö†¤?LPÂïÖ:ß«6hP”1£‰âÀø´¡'Æç•,=Ý(Ž/#‚AØaR¼3£ªM¢3Œy¹‹ð Úlß‚&oæfzÍt(ZÔÌ"´'9«¨;ÝQ Lcë±)‚á\–atëVå=æÞ®VS£Ó¬tƃTm‘PdÈÌÓ|yÂ?ö.ºùë=òTÞ_ÕÚÕ¹¼Ñ±Bþ§ %¼uØêI&í¹<½è¹:/Ë£vŒŠyóƒ-@ƒ€ÐZá·åîQ/~¾‘—{EåµlÛ ´vc¥ ˜a}/Ni_X¸2D„Ü|l¯ø¥ €fδ­yµ<ɪ¤¹ºø&Xï~/¾/®pTï{›¯ ´Ù’ž×VÜ0•.¤2Y£±9Ða[ž>K[¾š_ͺ¬¹ÙWØs£§´hÕuºÅ¶Ø_Ú¼giß–3;Ý)y‹ùA§Tyr›¬µ)ˬ]I½‚·¯âv-vYƒéª÷`ÒüȧúbV9—6nÍô”3Pf~ ûUVÛ–º<9ã/ ãÊK%ê×ìÖHy@¦j¡âE»b„òµ­†c€~oYµñ=ç/ðéôŒöëÅÄüX²µ¯þԹLj¶Qç²hÌñà´]§œ7 íc‚ ðrå`ôX²“ÎÃFÕ¡Î^u«Ê¨ËÙ ›õë æÂ+óNR¿+ª±ù®ú®òÆY½Ú1p¹éáQtKU¹$¡,¤b‹ä¼y!O‘Ä_u¢T=·•m¦(TOUEtB_ŠCî#^‹ðºŽ@É®6Ž¢Ýò{øÁ¼ºbÄ_=U'ô©>¿/ÑïøfEì}Öô›¾%€Ø½ŠÖÊÆt>j¹Ð„2ñmò SÁ*î@[é§³yñðgñö¬8Ð̈øh‰oóXn)^£¡Ïrг‰ë?Ó O>,._½šÎo¦îøÏ‘DUBù¶]·e[^mư^݄ĻœI’[‚䎯”‰¾k’ò‡šBžDEƒ¿ûýîõ‹új ‘}m¦ZòYÝÁó!µ¹,¯¥µ ú¸¯ÓÅxG¹ïXãëb¼]Œ÷hSi«çJ %-àà‘n!žXSNƒ¥¥ÅÁbÊ~ލC b¨ EžS@ékLSȳm×±ïƒë.§ð:¾¸ÝüÇg"»åýdqŠǼ©°uŽÕøxß]ŒnxðT†.¯s‰”DÁâûLÄç둟S±£¹qçšíþ蛣ˆªJ R¶}í)ƒr^“t/ògëÿG‹”=@ÿ"álu­[oØŒï7Ⱦ z…ðhWxÕHë‹F¦U¦˜µLrÒþõe7ÿPK!¦æá: þLPK¬‚C7ža1<˜˜meta.xml OpenOffice.org/2.0$Win32 OpenOffice.org_project/680m1$Build-89902005-12-27T16:05:41Ethan Galstad2007-05-01T22:44:36Ethan Galstad2007-03-14T08:16:10205P2DT22H21M18SPK¬‚C7Thumbnails/thumbnail.pngViPH…E9"‚ˆ ¸A¹&ŒŠ ÈaäPa"™Œ‰7ᎎàA„ˆâ ‚È!WkP$áA¹‚! WH $’MínÍîLÕVMíî®zÕýÕë÷º_÷­ ž®»Ú99¹Ýð³Nec¢¬=QV”õ}SÊ rrÊp'Ÿ8ÊÒ#ÿ.5¯ïŠH¿Ò\GàðÃÌýLJ/>0ˆeæª7ƒÌœÓ‹…ÜÓF€Ý ˆ ÌïšöúµùI ZÊÖùGÚ7–Ë=Ô12^Ò¾YÛG‰D‹zñ_ÈxÒ‹Š††KYºÚmò%´ M0#h_µ*ÀO‘`šNÏs`3Ÿà‚ÿÜgWI…›ë•OƸç›ùOåÙ'ÜODÍéoËÀ¸CJêºhIb&Ï7á-ê•^‹ºhJJØJóƒewñO]Õýk¾OÅŸ y¯oœwn•7qr~¨Òï‹äkóVpw>ÜÛ›¸%ü Ž´_m Ú§H‚B‘P P­"Ÿ° È”šaæŽÜBmÙ$(Òê/“T<˜Ó™Cdwd&¬‡²¨ÆWû(÷eÝÄ‚¥™þ§®°øµAéDkliì2 ;,ž4Äoo6¨‚`o(ªû×R„+(MÔæÆrX±ÚfwúÏT\6ξҷ*WËÔ7ÎÐq¶ïQï>°êie&-E iYÊ^fTx—I¶DhQgŽN­ïñ)ÓÁ_<ˆ^O]ÈxS,o¼9‚7nór’é0y`ûálU¼æEÒlצòé2…¸mYô,ÞH]Ù}ùù„Ž›»‰`×;]U%¥¥Î´DcEÕ{…V ö½ìÍÅ/HKcnežÜÇ@–è‡ý‹Ò–¡, pÏ\‘* Ñ?´–.ùÅüêr+Ó†Y'º#ñt<[.÷¤È.ÉäÐɘ2qàÄÏOE·\y§æÑ½è[§º{vy´¡’ú©æu}£†X‹ŽMZÙEZN´%4’§J^«Dr:wƒND•ßRÜàMe>Z…H¿r\¡Mwøôðªz®*#JZî 2¸Üñ6ËyÙž z¹']t*AÐ5Í  ¸#µx>Z$X*¼Ÿ“¥–\PXè±{Å` =úä, ^ßÒ4t „pÞÝ%‰7–»S”ÜCï)Q€¡š° ¯®ŽÔN£ÖÈÙ;6+/Û`·´„[¢ºØœVÜóëþ ¡º®­jÂE ÑqøÓ°Boy²éYd·”‡š A.öï´x€r⼑ï2^MãÓ[£ÑoNSµpb¿%|yß"†û7¬¶á[sú ÙºžZ™ô…ý7f5nb‹ vzv‰Fa“´c|kÔûýë^vÑ >am!™sásï‹Dü2³@ª°ËЦ“·„áþ-Q?Îl‹7\”¿Q;ßî ѱDgsÇ›¯g¾éK둌6\G€¹g¬ÇÆN"·qr mIÚç½ibuŠºbùåᢥãqG#G“öè=…n.¯rú¥Ó MbƒÞ©xŸáçþœ &Fæ´ìˆCÙò*’­Œšµþ§Ú˜¥Ñg7tí+ ¿]^8[ÊKøjÇ ½š1ªãK>ư“}#ø?é©ÒÓŠê!kªÚÍâV?½BºX-oA,kBÌûwsѳĵû>iힸ§Ä*SÅQW éå sz/Q°í‹Åï4bl^òáØ'@}×Lx0 ;ø¼ ôæLÍ)z þ;U"ŽPÇ4Ü 2üG ëìk¾º~t"«€0ä1pÔ£•ª¬–kÊ.‰øgødÓ•Ã0Tc¬6ØÍø¹m(ÙüÝ·Ï‘ý`ÛsN”'ØUˆõYT1èÿI7Â>Ý ¢îë/{ùHCWáì פK]ž¿ÙCëн« È&ÜϽ)‡Ì m"Ñ?—=­kö.íÛáZvU˜‘}ÐÉvcÐ)èw©Ã}Kq ß\ Žhž<mZª|ù–qÑ Æ„PœSÆÁt¹Š 4@¨lÐßj#yP•"¹r*àæù„®ŽNîºÑù”üšÌJ#¯ÏÃä*î€çõ9-w±\3€ v#þ)¸(—ŒâPg6SŽœ†±"=tìâwª£ä˜ÚT_]Τ « Pw°Úå‚\^”]ŠùÊÈ(r¥RWû€DdkžA$}…©lÀH òGäÇò¥KùðC&·´­ºX3x¨/Âö$¢ÿé˜h>¬›OšwÓ‡Þ¼=FOíQ®×0ËOö§þðÛ§¦oí饄j£ûíV™Ó‘z>Zêõ}®ß‡5TAeû¡¾\X^na‘%³«ciïå^«¡ùÄF÷½ÊèC¡¬é£^õgÅ+4¦©ïÅ´Í«gU?‡õqÖ©WÉ´­ýú©ÔÐÊïï)÷Fdrñ#Ǥ£¾yÖ*v¯¹DT}ì5_¡¨ªl÷_úýš1—-–íAx¿³¸†bÇ]·?¾&ná]ÙÿŒ?ã?·G„xD)“Q‰¿¿ðLX¡µvú€FÉ›T}ššF_367Œ!‹2yÈþlx³ÚRåCŠIK©”Î%ù>Yð*–øô)ÝÔ·˜4K’~‚ñºÚ¡ÂD³fR'̤ºéãê»S*ý8q§ Ón@mDn’ƹwN|’ù]&Ü”ØTΕ¹4¸t §Ÿpûׯ;x‡VÐÀÛo;Û.à÷ïSÓï ÿ³ç§L¼ÜÏæQU¥,\ø–r±ߡë‡2vj Ý_Ké.Ô-lÁ3þÓ¸ú 0÷€ëŽÁoz8Éõˆi!9ê┦J[ø©èTem&û nÙZ5$%Šm;ðL¶ÿ¤Ž¼¦©K±ðÕ­8-,וµ®’!,Œx4™UÁÔ’ÂUüuÜ«0O$'¦!uLÃ>:÷f ¤;[i§W.î1 0)sÀ§WëÐ*©Ãß&ŽTP½ ôºw¨@ÕI¯X°‹¸mÔW‡zÎA0h‰«×!Nš=×Mëmel?Î9 èÞ>ò©Áw\Æ­rF½øtιL”=t¸J’÷þìyó»xfß ”þPK~ões PK¬‚C7META-INF/manifest.xml½•Mo£0@ïý¬ïØ i¾PHE‘*ínrH=ºf ®À <®Ê¿_Óˆ6«"UI£rððžgäÅÝk‘;/PkYª€ é€8 D™H•äa¿qgäny³øµÞFûÇ]ì\É4ú]àìV¿ï#‡¸Œm+PÛ4•hYgŒ­÷kçO—gٌʼnCºG4Á„Xøg¦Ý”Òï·1µòK®¥ö/@û(üÒº’R˜úÿçûmËçœÊ\›X7'@"¹‹MáU•KÁÑ6½¨„¾¹è©‚"¼"ùx;5yîVa„}K¦¢¶j$¥Jefê·Å~[tš¢½så²à°JeýôhjÐl88¹F·óc…ñh:™nV1m? öÂu§ÞŒ'£hâ…?¦žÅÇ ôÂép|«Ÿ+8Ï=ƒùdµòfóØÒçê\÷ÆoœÛ'©xÝôósÞ”]ÁÅÎT´CÆì,ôƒít`;ŠmÂ5¹›ôÕ± ¿ÚÛLñ¤¸Ì5Ã.¼à4~ ¿ncÑþHÞ[»`Ÿ>õËPK,Þ)ž‚PK¬‚C7^Æ2 ''mimetypePK¬‚C7MConfigurations2/PK¬‚C7¹®ð@5@5-{Pictures/1000000000000349000000CAE3767FBE.pngPK¬‚C7‰6©//-6Pictures/10000000000002AD000000CAF563C62A.pngPK¬‚C7üúm!~!~-àePictures/100000000000028E000000A2A7154A00.pngPK¬‚C7›‰Å®Ð^Ð^-LäPictures/100000000000025300000096BB289E21.jpgPK¬‚C7ô¦‚ó gClayout-cachePK¬‚C7hd‡¯n0™÷ #Dcontent.xmlPK¬‚C7!¦æá: þL Êtstyles.xmlPK¬‚C7ža1<˜˜<‚meta.xmlPK¬‚C7¥Ã„°¿Jú†Thumbnails/thumbnail.pngPK¬‚C7~ões ÿŽsettings.xmlPK¬‚C7,Þ)ž‚ž”META-INF/manifest.xmlPK „–nrpe-2.15/docs/NRPE.pdf000066400000000000000000006360671221237212100146070ustar00rootroot00000000000000%PDF-1.4 %äüöß 2 0 obj << /Length 3 0 R /Filter /FlateDecode >> stream xœí]Én#7½ð?ð`4Üz$Û rt"  2 <—ùý°-²Øâ«æ´eY–ãºÈ£«ºø¸¼®â2Z}½¾zPZ}Ð+£ZcÃg7ŒŸ_~W¿|§þ¹¾ºWÊ ýø³õ«FYÓ¬Õ¸ðAe¥}°£Ç_ú‰B«~ý|}¥ÔÇ?{uû¯ºß[¬=ñáÑŽV_þ¼¾Ú쮯L?þÜôzeÕî7õqk”õj÷‡ú¤Í÷j÷W(Ñ­\P?~ÒE.ŠFÇ£Èëf/´vÕ%a‹ª]‰¢>ŠÜÊ'Ñ€¥ÖѼɶ6¨xƒŠ·{QŸ¾ß‘–›+²ÝosM²Û]ñ¨»è=blMh9ïöøZe̾}n[ Û†ö)²,âjCï9ôo¢×ƒ$‚êB«b:‘l’„<ºIè /Ò3¨“§mç%v¶ŒÑÉr‚Ù˜RËXÐB â>¿—L:çõM’긚Ø>=µc§/[Õ É#Nl¯Ëޏj´ZøK]ÓÛqÂ1Cþ¡{†2ÔÄGvzà~:*Ý*«l³ÞM‚·ìÜKëo?%•¸]`åîPG?"gL˜Sf Ú&'§³ŒOÏèaPdO­.Qbp3P?;/!-5ì;xøK éB ½ûzäÓïë§ÓYxd\vÛ”eKLæ­XÆ6seÐéÃ)´i䣋Ãbý1ú ã]l¼rÍØ.É?»÷Ï7Mƒæ’ܦ r")‰Æ<º<=||!í«¾Fï~ú!|WŒú¬¼ †ý­~f+à} puÐŽ˜2×™373ÞM-W´}ø½âàXÉ0_y†Ñ»»Lkª-ÕŽsgÉÚ4Y§¾“'tÝD Tí†Þ‹tFg N9hó›dl§ÄçTŠ­§hb\—N%rU²Ë§…eNõ¬ãžþr– ACÐ4.Gë5ѨÒj ñ¡ Õ§ä·ª¥~¤fÎRWR¾aò2ÕPBgš¶å3Í$ôBwû}9fýö’ËÓ4 ACи\4ªÌjš1ëtȇÇ1+g)Æ”}æKbÇÄ©fÐTŠx¶+=ÈÑ)ù´¢VŽ{mŸžgl6Þ$ÅŠEã©…Ë-¸M7$N‡žÙüç,siZ2Y‚† ñ\4æóê¶ ç°òbàS²¾¬¥˜È¦•™5-êdZ± 2'TGËtÈ>åªN®oZ ›PíÀƫ砭Ëê2@ ACÐ4–kUé¯kÒÿ3³³œ%‹Ñ!„gº!ªÓìBhª ’m˜‚íb-´fÛö&Q©Á<ï9@éÉ‚† !hçF£Ê‰­ d±;A^•µ´`Kî:‚71·™@ȼ9¿ý “½‡¼)1¨Œ$ACÐ4Þ,•ôªóiËoæ-\F[Â¥œ¥% 8àNXŒKsºµ’€EæÆ »Ä®pö&Û!ç¹§ïç,siZ—>~ Aã2´÷ˆF•wÂîN‘×e,Y?‰>'Qä4$¥uR<ŒCç^0+œ@5ì?BÞÆänmT¢Ñ·Ô» ACÐ4NÊŠºÃ$DZ"gi[2&Q톎†r©ÅùJ§ 1h–¬£:C¼í+lËœWußvól+cDÐ4·F¹ÌàWpÍAÜ6Z^fTã-ÎŽÙ2œÄÜs€`"YêFÃñÆ6©ñ]íHç“ù¯q –:9ß]Z¼ù~ÇÚåÕKÐ4Þó놦íࡃI-/ÙÚ‰³1·Fˆ”"®tÓ`f.G·Ñb¦ ñØb…¥’®8;Â8„éÏ&Ùé0º›÷Ð5¥? kC-8èÄ‹®Ñ}ån"tr g¾E•™IÐ4^ Ûx G÷L‰KØ&ÀûVqÚ¬N’yëfeqë(fyNõ^º™ :ACÐ49I…ˆƒc£ŒDìâöÍɲÜ]ª â*^í(~e·ÞË)M”@¦Bú¯{këûíÒ‚† !h¯…Æ ¥ÆÛÑ™ûÈÍ"EîÆÕEŠÌ5p‹¹Ktl}52*r—,RäNV.Rd¤¤u]‘Ù»L‘Ù*”ÒUEvÍw»D‘IÃ3wâ/‹Ë± ©eÕaÞÑTñ*Ü«ÿr…#endstream endobj 3 0 obj 1606 endobj 4 0 obj << /Type /XObject /Subtype /Image /Width 595 /Height 150 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Length 13579 >> stream ÿØÿàJFIFÿÛC     ÿÛC   ÿÀ–S"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ýRÎ*)®áƒýdªŸïKÙ…µ´’žˆ¤×æ¿íŸûjê?õÙtí6bŒ‡) Ò×l#RMÜ@ö«–ñÆ ømÜꌶ+ñ*ïþ ã)ãerŒû×”øËö¡ñ‹$s.¡0VÿlÐ劉hO xŽïìöÚ„%ÉÀÅzM­Üw¬‘0taE6þ=ø—à ¶¹„¥C‚~c_¶¿±Æáñ7Áv¾|ÛçTäÐÓ´QE„â–©jׂÂÂyÛ€ŠM%ö³g¦®ngH‡ûF³´ pu¿ï¡_—?¶×홬xwÄ—^•rñìb¿#b¾:“öÆñÃ1?ÚóÿM B6Þ2ÑîÜ,WÑ3zn¯É2†F pkùôð¯í¿ã="þ9e¾™Arkô¯ö7ý²¡ø£ 67óƒs€>cÍ}ÉE2DÑ+©Ê°È4ú(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š) Å-gx‚üišMÍÉ8òКÄñĽÁ™5 ¨âûÌyÄ¿µß‚#r§Q·Èÿ¦‚¿0?oÚSY¼ñ}Ö—evñÆŽWåjøºOˆÚû¹c¨K“þÑ èsGýª<¬],jc‰zÆ‘­ZëVË=¬‹$l2 œ×ó=á¿‹"ÒuH']BSµÇñZý¬ý€¾)ÞøçÁp-ä¦GU,hìJ(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ ©©êÖ:5«\êY[¯Yn$¿™¯ý²h«¿ÙëáŒ3x~Äjþ;ñäz7†´Í¥¼ëÉ7²÷Tû±U8Ýšüþñ¦•ð“Áo¼=ûKiß>=|[KX¯/£ÑtË!4qËäÛ$wQKˆüÀ¤ð½0ª0(õÒÎþÛQµ[›9⻆VH:·ÐƒŠ±_‘ß ­ü«øƒ]Õd=GÆß ~$xnÝõ[φþ, öšÍ² C,¿>@äÊÞX~Ž~Ì?´ßÚSà·‡üu§Â,æ¼F†þÇ96—q²ÅëÃ+žJ²žôê´QEfø?Ø—˜ëåšüý¿OøY·›‰Ç˜k÷³\Ò.Çý35øAÿ E_‰wxÿž”ò0šJ(Tì`GZû{öý§ãøe«Ãg>Ër@ùñMky5œ¢Hd(Àõ€?¥¿†ÿ4ˆVËcw»(8 +Ñî¯ÀÙWö¤Õþx¢Î«ÇkbàÍ_·?¾'Ù|FðÅ­å¼Ë#²phÑ«žñóù~Ôp|³Ïá] q?/ËÀºŒ‹×Ëoå@¶EËMñOPËÍüëÀ±šõ¯ÚgS}GâV¢Ï×Ícúד”Šúö:ñÕÏ…þ%X*LÈ*‚÷¯Ÿ+Ñ>Nmþ"iÍœ~ñGŸõ_í XÜ’ÑŽ é«Î~Ü}£áæœÙÏî×ùW£PEPE„Ô@ E4:žŒãN ŠBÀHÑ*ã_΀E&AïK@Q@Q@„â¸HZu]B½eAÿ¥[ˆŸîÈ­ô4%€æƒÅ-ÝÔê(¢Š+Ç6Ïyá›èSï4gúVýEÑ¡±³QQ@àP_EPEPEPE™ ¢Š(¢Š(¢Š(¢ŠCÅ-Ýø¤3"õuS@¢¡7ÌÉÿ}R}¶ßþ{'ýõ@ÑQ ˜›¤Š~„Tƒ -Q@þÚ70迵Ç왬ëL©á¨µ½JѤ‘~H¯&Ž·,z ¾Üzl'Ö¼ âÜ_gÿ‚£|@“àíæ‡iâè<+ ƒûy C4"ÞÛtI…aæ3m »hàäŠûçö™ýŸ4/Ú_áF¡àíjYl¦g[­7S€f[ ÄÊ™}@$†Va‘œ‰|mñköeøá{㟉üSñWÅ­§.Œž7ð5Ë^‹ëEXÕ Ö2eÄI—b™ÇÝ'’ü¦òóãOí7ñâÄïÉÅÝÕ´‹¿ >ž¶Ii•ˆÍpáLmI˹M{üîËUøoñsWÒ-þÏáýWânµ{¥!´d¶ì8Q‚½?„×Ï^.ø#ñ/ö¼øÝ?‹üð§\ø­o%†¿â¯^IouylñùRªØŸ3§Êríªw)×èÇÂ…øðÛBðG…­^×DÒ ò¡YHidbK<’0vff –8q@•Q@>*¸û/‡ïdôŒÿ*ü ý»µ±©üP½Ps‰H¯ÞgþMC|³ü«ùõý±ÃŠz†ìÿ®oç@:Q@éEbŠ([K§´¸IP•e9Wèçüóö¤“FÔm´]Bë÷d…š¿7±Ít~ñeÏ„5ûkëy n Ðôç¡êÐë:t7P°t‘AÈ5ËücƒíÔWýÛ*ù³öý¤-|}ák[ ›•k„@¸-Í}Cñdþ Ô ÁS?¥;´¥©µø•¨©ýë:ò¡Ò½»ö¶#ø£¨„ÿžÍüëÄGJ+¾ø#—âœ_1p5èŸ~"éßõÕBŸ³ÔF/‡:p?óÉ•zuyßÀ‘‡šwýs_å^‰@gjºížKu:Dª3óVįÚxÃ÷…Ìj[“_“?µíû©êºÞ¤\²F \£PèÅŸÛ?¿ã•ìO*g€Â¾Lñ—ü(®$K6ʃÁÝ_™>+ø‘­x¶îI¯/%}Ç8,k—f.rÌI÷4úi¦ÿÁQîÖ|Êr¹þõwzOüÍá̧ ïWäi4åf†#ñ Õ/ÿÁR>G§žß5q_ðT-Qowù3ë_œ]ÿ…›ð¤*Tò ÚƒŸðQýÄÓÃm¨Ì±³2Í_jx'â.“ãm>;›˜å 3…jþdtÝZëKe·™ãu9ùM}¡û"þÙZ¯ƒ5ËM;Q»v·,æjýÈßšuq ü}gãï[_ÛJ¯½89í]½ÙF¥˜€zux÷íñn† »»iBJãŸjwÅ¿Ú'ÿ ¬å{»¸ÄŠ>éašøoâ‡üî+K‰bÓ\ †¯…hÚ'Zø“âkÏôÉ>ϼ€ð™ey˜³±f=É ½¯ÿা –RRR}Mkx[þ w¬AvŸj”Ï95ùàFhÆ(÷à§ü'@ñ“Ao}p‘ÈØ3WÖš_ÄmWÒ~Ý äMÝÙÜ+ù—Ñ|E¡]$Ö—)ÈÁ¯ð·í£âÍAm;í’•+·;¨õcãoíÓáÿ†÷RÚÇp’J¤•«ÂGüËíÏËŸïWå§Ž~ j^6Ô廼¹‘ÙÉ<±®\3uÜ:ýÈøgÿð!·¹Qœó__xGÆ>/Ó£¼²™dÆ~Sšþbtm~óF½Ž{yÞ6F†¯ØÏø&÷Æ+ÏèqØÝÎÒ”|Æ€?Bj«”´åíU$Ô£‘^mñóÅ á_jHÛXDÄ€<‡ãoí³áÿ…÷’Z›„iTà€kÄþ ƒ¤o ?Q_˜ÿ´'ÄÿøïPyn”HxÝï^Uæ?÷Ûó Úï ÁK4 Zþ8'”(cŽH¯¯~üRÒ¾#iqÝØN’àþfmu í&WŽWVSCýCÿ‚g|ZÔµ ¸ôÛ‰ÞHðÐêØéKM·F§ÔN ¢žt·‰¤v  d“O,¯Jùïö­øñgðÃÁ×…nUn nzPÄïÚ·Âß§xno"ó‚7W›ÛÁB¼+×q üjøÏñ£Xñÿ‰îîòO(¹À }kÎZ¾^EÜ£þ@¹ÚÿüSÂ6Šê6>Ƹˆà§ ^l2 ™ëšüe—X½˜÷20÷j®.¦S‘#çêh÷×Â߷ǃµ˜¤¼‰öf»}/ö¿ðN£* Ô`ÿ¶+ùá¶ñ.§iþªòUÿÓ³ø‹¯ÙÈ®š„¹íþ–<5ñ/BñLjÖW±I»  +©WWƒ‘ë_ÏgÁÏÛÅ>Õ-Ìײ¼*à ±¯ÖßÙgö²Ó>,i6ðÍr¿j*¹Í}QE29VTVSzO Î+ ÄÞ1Ó|/e%ÅíÊDª3óÆø¥ñËá÷‡noî¥TØ„Œšüý«n-[Å:­ÞŸ¥Ýº@®Q¨íOßðP ÁSMoc:K"ä|­_+ø‡þ ƒªIrÿg|.xæ¿>5¿ßk÷O=ÝÃÊÌrwÖOS@zÜÿÁLüDîJÊGâjÿ0ñ&ÖŸÖ¾*})0hôGÿ‚k̾t„Œúš÷Ÿ†_ðS‹BX¢Ôd œI¯È1RÃs%»Ùw€?¤…¿´W†þ$ÛFÖ—‘}ÐÕë1Ȳ¨e9¸¯ç+à7í ®ü;ñ%™[É<àX×îoìÇñe~'x&ÒéŸt…y k¢Š(Í-PEPgˆìþߣ]ÁŒîŒŠü#ý¿¼ .ñîsòœWïl‹½ ž‡Šüìÿ‚Œ~ϲø—HŸV³€»¨,vŠüm'¢®k:TÚF¡-´ÈQшÁªb€µªÖ›bÚ•ìvñŒ»œ^½©þÍ Óü(ºÙ¶snWvqÚ€<_u(õ§ÜÛ½¬Ï‚N¦”￲×Ç;߆2´>{%¹pÏûWáß‹šÄO„ÝÃp­!·äí_Îݼím2È„«)È"¾˜øAû[êÞðìÚSÎí .Ð PûVL%ø¡¨r<æþuã#¥u?üXÞ0ñúƒœ™µrÃ¥è_¦üCÓ‹p<Åþuçµ×ü&Åã<©çÌ΀?¢ÿ€W ?ý8©Èò×ùW¤WŽþ˳4ß ´âÇ?º_å^Å@#~ßòjkðîìX‡ÆÃµøKâapu›³s»Ìów}kúeøà /èsØ]Æ®²)Šüäø×ÿÒ:¦©qu¥Æv'På9»PIö¯·5?ø&çŠ-æeŽÝÈö¹ð÷þ »¯Ë¯[›ëv†È •þüñÄ‹¨ÖÊÎFF=BšúÛá÷ü?YÕcŠKØŠÉWé?ÀŸÙ§@øa¡Û¡³ˆÎª2ÅGZö¤“O°@¡¡ˆ  Îþ ya¡ó×/Jø»ö»ý˜¿áKêMå)dãŠýÛÖ¼y¢è–Ï,÷±(POÞùÿøÁ¤ø¿T{[RR¤Œ©Í~yb¬é÷²i÷qÏd ‚*µ4õ ×ßø&ÇÇ)µ›´›™Ë•Æ¿JQ· #¸¯Äø&˜¼>4‡ËÝåçŸÎ¿l¬sö8s×`  dmˆÍè3_—ðSŸ‹RÛE&•¤@5úƒ¨?—c;z!¯Ä/ø)6«%ÏŽ§Œ“€ØÅ|A4Æi]Øå˜ç4ÑI¶Œâ€dœ è¼=à-gÄÎÊÒIsÜ)5µð{áåÇÄ?ZØÃpîÀ÷¯Ú?Ù—ö6Ð<)á»K›û(Þv@Nåøµ­|ñ>‡oç\XJ¨s°×=´¶²‘J0ê G~:ýš<)â}ka§Ä©ìùûjþË’|.Ög»´€­±bAŠøÛ¢†Ê±r(  Y€I¯Õ/ø%χï"ÄìŒ#8ä׿…l£¯ÙÛžCȯÞ/Ø?áÕ¯†¾Yܤ`;Æq@W/WŒ~Õv_ü1ÔV0Iò[§Ò½¢¸¿‹ºbêžÔba‘åŸå@ÍÏÅ7³ñ¦¢Ž>aëõ®N½{öŸÑ—Gø—¨Æ æ°ýkÈGJië_ ŸðL)ñbÎkóìõ¯¾ÿà™6³7Œ"enzþ4ûS0GþèþUíäv6ï4Œd“Oµ¶ˆ»Gò¯ý¨~"¯€þßN$Ù'–ØçÚ€<»ö€ý·´/†Ÿh´ŠááA½~RþÓ_µN§ñƒS™DíörNøÂÎD¸t„È27qÖ¼Xt§Á3A:H¤†S‘@Ò?ìññNßâO‚ìî’PòÆpkÖØáI¯Ë_ø&gÆi'Hô‰ç'_¨Ìþe©aÝ •~pÿÁK~0Ï£iri–óÜ ü„¿½’úæI¤bÌÄ’M~ƒÿÁOÞøI\ìçù×ç‡Z®À~¸ñž»…º–y/ÎWyðsÆ©àÚ_ÈTšû»á_üRh0Þ]©V‘Aûµ‹ñWþ §ªhv’M§DÒm­}mðöêð¥ç‡¬í.®"†EP§$ úKBøÏàÿÛ·–ò+Ž… çÃǼKà›Ù"¹°— q¦¸˜ü/ªM.Ų”¶zm¯èÆß>øõ§[BÏ߸}'ö"ð¼ó¢†ÚNsƒ@‰þ øâêvÂ>P ŽvŸZý±ý†¾ê~ð=´z‚²>ÑÃW¬x_öwð—†v}>ËЄé6:tt"(#XÐtPª(¢€ (¢€ (¢€œWŸüj²Óo<¨ ð›<³÷þ•Þ\̶ð<Œpª &¿8¿oŸÚż3ks¡ØO¶B ¦€?5ÿi›[_ˆú‚Øíò¼Öû¿Zò1Òµ|K¯ÏâNkˇ.ò195•@WÖoiêÃ#Ìοo|ðšÃÇ?³ìv¿eF•­†ÞzWâgÁëVºñ會þzç_Чìݦý›áŽŸŒƒ‚Ò€?iOƒ×ß üi{Û²Bd88ã­x¡$ýÙý³e+O‰Õõ¥°7J¥²«Í~/|Røk¨|=×î,®áhÂ9"€8E!8¥š(¢€ í~Z›¿iÈ£Ÿ1qU꿳nœu‰zrã?½_ç@¾ÿ³M‹Xü5Ó•‡>Rÿ*õªáþ Ùý‹Àšrc»_å]Å!;k:ÿYÓ¬”ýªxz1æ¿þ6X|'ðåÅÕβ*’5ù/ñ»þ âsX¹‹Lºt„1cPìçü%>™ñö‹foªë~9ð׆ìžêIí‘Tg‚+ð6ÛöÍñ¼C¨Nyþù§x£öÄñ‰ì £ßM´Œ}ã@¤´ü;Kð|“ZéS¤Ž¹+WǾ(ÿ‚“x›P–O³Îʧ¦ |w½âë–£šå˜ç'&–?†Þ —iòóþÉ eñ‡í©ã?Äñ›é•[¼ExWˆçÿ‚nx>ÛYñ¬Lа<ŠýµÓ-ÎÆaUÅ~/ÿÁ2õhm|]nÀ1 ~µûKi(’Ú&‚ ÐÄdWÇÿðPÛknîL@ȱ“œWØâ¾hý¸µXl~_ b=hðÄ6cÖn¡éµÈ¬úØñ„âÞºô2çXôÑ|<ãÅú~ç þuý~ÈN­ð·NÁÏîWùWóÅá{£g¯ÙËŸ» þuûÝûx”k? ¬“vJÆ}KX^7€Üøbýd˜Ï…nÕ{øEŔѷFR?JþzmMm;âù‘Jƒ+G½|ï_vÁJ¼5›ãY§@,Iýká:f@=ëõkþ yàÛcÞ7ñ_”yÃgÐ×êüëÆe.…‘n¸ã4úʃj€; ø7þ ]¯\Øx2X£bªF8¯¼‘·"ŸQšøãþ à ¼Mà ™áBåž~ßJÓ^LìrKµéWõý9ôÍZæÞE*Èäb¨”¨»¤ êE~®ÿÁ1>ÚÉjD¬ürE~R[ô˜ÿÞοi?à™)ðŒDc8þ”÷äqˆÐ*Œ1NÆih l¿Áâo†·ìñu‰ˆ8ö¯À_éŸÙ>*¾·ÆÈp?þ‹i)ã‡á¾¢_ò›ùWóÑñžd›Çš‹'O1¿pôP:R ¬`_I¢|J³ˆ9 ÒŒ×ï‡.Eö…k/]ñå_ÏÏìK§K{ñJÀƯO­~ÿø.#†¬QºˆÇò Ï¿ø)?Á;J—Tµ„¹PI*+ò QÓåÓnä‚d(èÄEMÿ<eã½âÆî%H¤r+òköªýõ=;VºÔ4[VxØ–Â-~uÍ(àæ½:ÿöwñ}•ËDté²>á¦7ìûâôˆ¹ÓfÀÿ`Ð aâCM`mî¤0Õè^ý¢¼[áF_#P˜þÙ®\ðn«áùJÞZI«XŒ1í@Oiÿ·_m# o¦8ÿj½_á7üo^ÒõXWS¸wˆ‘ƾ šPÅ[ àûPôðGöÆð×ÄK[ÈÒv ·zú+NÖ-uX[i–T# ƒ_Ì·ƒ>(k~ »Ž[+É!Îýýn‹ËÝN×GÖ.K!rí@¬ æ–²ü;­E®ép]ÂÁ’E"µ(¢Š(¢Š(Åò˜|;zààˆÍ~~ܺ´×ßï‘ä,¢R0O½~øxàð½ø|³ü«ùýý´âxþ)j¿ç³:ù㥠t¢€=à†ø§gþz/ó¯èwàRø{§cþy¯ò¯ç§öy±–óâFœ"RÇÍ^ŸZþ†þ [½·€4äpCyk×é@µå¤W¶ïª`‚+óŸöþý• ÕôËkNµEŽÕ¯Ñúæ~ xNßž»²ž0áЀö æ?]Ò¥ÑuífB¯ƒT+êßÛsà\ÿ¼kws w' q_)të@Q@{gì›4püQÓŒ˜Çœ½~µâuè¿u¦üCÓ¤½_ç@Ñ¿Ã9Oéå1,*êáú óŸ€zöÃÍ9óŸÝ/ò¯E—ýSý ~SÿÁOü{y­c¬±óÀ5ùk$+–$’zšýÿ‚¡œk­ø×ç•Û|%ðsx×ÅÖšxRÂG @ú×^Ïû,ëVº/Ä› ®ˆT©ÉúÐëìÿûøf϶wWöqÉ+ 'ræ½²Ù'Á1`:?阮»á/Œ4_Áö ouXãwµu·‹´½ݦ¸»‰Fya@/ìÝáìÙ-WN„\}Á_œ_·Gì}§øF cODylŠûã/íÍ៬ÑAw’®GÊ¿9iÿÛŠç⥬ö6alŽ´ñMí¹¶º’#ü,EAS]Nn'y[«j@\Á>ﮡø“h‘32r~ïh Í£ÚûÆ1_Š?ðM]ïC3ãp9¯Û‹„VP è –e߯¨Å~VÁJ>êz­Äºµ¬ "I*+õZ¸?‹^±ñÇ…omn`YÆq‘@ÌÝõ”¶/ ªUÔàƒPŽ•ïÿµßÂÖø}ñö8áòâ2qÖ¾Î(Ýe?Šð®<{g<’l‹Ì9÷¯Ý¯ƒ¿´?xfÎhïcó c °ô¯æÖÚåí¥Y#b®Aìß¿jOx4ŠÚöQðã@ÐÆ»ãÍC³’â{Ø•Tgï ü¾ÿ‚þÕvZý½Æ¦Ü •;M|¡âßÛcÆ>%±kv½˜)?1¯ñ‰o|Gv÷“4®Ç'qÍfÝNnn$•¹,I¦ LK@Y¹KÈXvqüëöÃþ Ÿ©Éqà¸cfÈÒ¿";fSèÀ×ì/üûÄQÉ¡-¾á¸cŠý ªz½âXiÓÍ! ª„æ­ŽkÌ¿h=z]áî¡#ñö¡-Ö"Fëõ¯6 žµ÷güKY6¾6†,õ8ýká\WÙÿðNg ñ Øgøè÷BÅüË8[Õpÿü9ˆ¼ ¨Ã*[uÕÚi\é¶ßî ¡ãcwá»èÀÉ1Ÿå@ÎWí'áÄðçÄB×jù¬1ø×”WÒ¿·‡'Ò¾'ß;ÆUL¬szù¨äP£íØ×êü'âÅ­°Lš`Œp&¿+kÓ¾|^¾ø]â[{ÛyYX éV Öx•Ђ¬2©:WÂ_ÿà z±£[Aª]"J½«Ô|_ûpx;FÒ¤žèYÂäã4{öÑñ¥¦ðÖþ9&Uv‰†3í_€Þ<¾Š/§SÒã_Z~×ß¶5ÏÅ;¹ì¬ç?f$ŒÅ|]4†iØå˜äÐ iÒî«:m£ßÞE)fvŠûsþ ¹à‡Õ|oÓFHV8¯Û6mac¨~|ÿÁ6~6… C©ÏÆ`$WèpWè('šÌÕ4Í;TˆÇyN§ûø¯ý£ÿiM;àÞ“+Ë*‰€8¯ÎÏÁMõioæ[9'4ú•wðŸÁ3J^[{`Äú QðgÁ×p”ŽÊS袿õø(׋.eÊ\¸è+Úg¯ø(Í寱®µpv3KúÃã—ì-á¯XNöV‘Ç1ª+ó{ãìâo _Nö6²I$«šýŸøsñgEñö“ Í­ÜL]AÆá].«¢èú¬-ö¨ ‘Hä¶(ùŸñoÃ-sÁ³2_ÚISÕ”Šäˆ œõ¯Ø¯ø(/<§øbâ{U·K½¹ùqšü~ÔB­ìÁ>ècŠ®v u‰ôŸéòBå̽q£¥v_ô‰uiñD¥˜:}húý–õ‰uŸ†zt³1fò”äý+ÙkÇeíMáž †ò”sô¯b Š( Š(  ÏÄ'Ño÷Œ×à¿í÷¦­ŸÄë£×ï•üiµš/ï©ù!ÿ ý›õ‹ýrãW²¶yP’ÇhÍ~hŽ”V®¥áKJ¢žÒTe8åMTM.îC…·Ÿ÷héOØ[G²Ô¾&Ù}«o gë_½Þ·ŠÓÃöQÂ1Ò¿cëïñ"ÆxmeH„ªIÚ}k÷£ÀðˆlRlù‚1œý( ¤a‘ŠZ(ä/Ûƒö{‡â/„n®ííÃÜ"À濾 ø2ïÁšýÕ•ÌMÇ#‘Šþœum2VÊKyÔ:8ÁWçOí—û ¯ŠZçUÑ퇚rØE DzqJ+ÓR‘÷Mq7žÕ¬GﬥP?Ù4“]—Â8ž_iÂ<çÌ^ŸZåŸt_`÷zm5ô¯ìð/Wñ‡,n^ÒAȤ’¾ôûYû1Á$? ôá&så/_¥zäƒ1°õ¹Ÿ‡𭕞ݥ#ºŠüŠÿ‚¢h#SiÄd§<â¿3ˆ+Ç¥@¶OìúŸ¼)rÐÄáT‘_‰ßþëÿõ»˜g²”D®pvšòÑW4­Rm&ñ. r’!È"«Ko4 CÆÊG¨¦*³$û úsá×í»â¿Ø¥ª]ÈcA“W|kûxx»Äö¯ÞH¡†8$WÌö^Ôu’>}ºm+à߉õgQ/?ìÉñ7Ž5oݼחRHXç–5ϱ'“ÏÖ¾¼ø+ûx“Æó+^ZÉgŸ™j/Žß°÷ˆ~¾ë;I%@?…hä|f›Šô%øâÆr£M—?ž.’UOìéy?Ü4ôü«Ä’iŸí¡åg¿sôy¼ý.ÚOï 5ù3û~ÊÚÞ‘â+}[P¶x•X7̸¯Ö­6ßì–0ÃýÅ€,Ó%ŒK!äŠu ÍŸø(·ìá/ˆ,çÖ,m·º‚Ī×ä~µ£Üh·²Û\FѺ1"¿§oxBËÅúLÖW‘,ˆêGÌ+ógöÿ‚w¶¯}s¨h`±-„ù=KÖ¾×?bé—oXNÀd&jç„ÿaÿë7ñÅ%ŒÊ¤ó”"€>p³ÓîoåÁHÇ QZ÷¾Ötû_´Og$qc9+_«¿³Çü’ÓJX.õ¸˜`Ë]ßímû6øcà îÎÎ(äŽ"A jüG`PàŽG Ôñ5ªÙk—¯ÝW VXé@ Î ~ÿÁ/|I2k‹m¸í8â¿7Zýÿ‚`ÿÈ×ùï@´Æ‡Ô óŸš#kŸuTn>SqøW¢Áþ¢?÷GòªºÎžš¦Ÿ5³Œ¬ŠF 6ü=.ƒñ QŠD+ûÆê=ë͇Jý"ý¿?eKøµ»gL´gV%ŽÅ¯Ï=Cº®™;G5œªÊq÷Mdgšûþ Þ\|IµÀ8ó+äûj7Ó¬QZHÌÇt×éWü—ö|Ô¬uHu{ÛfFnZý]Ñóý•kž¾X«7 áxÛÖÑ-ãŒtU¥ ÏïÛkö9ÿ…Ϋ§Áºp |¢¿%þ"ü$Öü©Moyi"*1*kúa¼²†úŠdŒ0Aógíû"h´»™"´nJ’QÖ€?ŸFL€1_Q|yý¼IàMjãì–RIcŒ)é^qðŸÄ¶ìCiÒä²h›²×/´æÍ½ÃÇþé«w~2Ö/cÙ-ô¬¾…[Ÿáî½%ôù@ìšÊêË嵤¡‰Æ6š¤ó<¬Yر=Í3­}ð;öRñÅ;ÈöÚH°·r¦¾ˆÖÿà™:܈ðÆKØPçÔ0¼î³€WÔÿ²GìêüDñMÔöŽ-UÃe—Šú;àçüBíuHfÕbÄjÀ¿Fþü ѾiPÁikȪ`´·ðáý·€<-ia a Ú»‡åéJ àPy Êø)öƒ«É#OÁÎqÒ¿,¥VG!ò<濤_Ÿ´ï‹>žÚâiJ ùûA~ÁÞ ð–§s>›hòC¸‘µh⪳g{-”Ë,.Q×A®§[øMâMF[>UÛÔí5Ë\é׌VX]xP¿ü%ý°Ù_Zê4ïÛ?Á7¨ö„?íŠÜøiû1xcáÓ¤–vq,‹Ð…ì°Ä°Æ¨£ ¯µß‚ÿ¿ýü¿ð×~ÿ ¿ýüîtWƒOû`ø"$'ûFßþþ åõ¯Û»ÁZhm·Ð¶=4õ3P]ØÃ{G4bE<E|C¬ÿÁJ<3g1X§VÆ®hðQÿ j¢[„\úšú#ųτüS+Is§ÂYº’‚¼ÓŰǂõ¸˜%Œ(O¢Wt/ÛoÁ:ª‚oàR}_ÓÅûUø*Uj0ßÁ@ ükÃ)¨ ¼…ØqŠúáOìíáï† ²´dQ÷‚óKgûMx6ñ®£O£Šìô‰:ˆ°,ïcžÁ ¡T"€¥¦$À äJ}EsoÌE$PÊx ׌üNý˜¼/ñ9 Í”^cwÚ+Ú±š1@ž>3ÿ‚dhú„²=¤a2{ åôoø%ŤwªÓ  ?ݯÓz(äO~ÀðäQ›‹Häa×rƒ^áþÍ>ÑBùzt9ì õª(Fð†— ÆÎÖ8€ôQPx‡ÀºO‰­õ¬ruÍt4Pš'ìýárßÙÐÿß§_G 4è²?Øè”PF‹ám;@ˆGgn‘(þèÅkÑEAu:ÛBò1¨É5òÇ¿ÛoEøUw%¯œ­2œ }5ã0ÿðßyYßåœcé_?¶åΦ>&ß-ËÉåù­€Iõ ÑOÿÁJt=sPH.æ«|ƾ¯ð_Ư xòÁ$Žò:+ù¯´Ôn,å ÎŒ9È5êžý¥ÍþÀ¯œü}ÿØÐ5™ÞKHU2„WÞ´Pç‹ÿ¾Ò£“3&GÒ»-7þ ©á«vRð)Ǩ÷UóßÃØ÷Â>dt±‰œz­{M‡ƒ´9Ua²‰qÓå·EE´PŒ$j£ØT˜´PEPEPEPÊ¿·Å뿇 ¹6ŽÉ#)Ú¿~ |_×üa¬\Íq}.Ï~óþÔÆ? Íj£.AÅ~eø·þ ­â{ùM´,ÈX‘@ 'ˆu%mÂòPÞ«±xç\ƒ„¿”÷}‘§ÿÁ5üM8ËÀÃëU5Ÿø&ÿŠmò­Ý¾”òGü,_ÐF_ûèÑÿ Äô—þú5ô]çìã8ÎSôY`Ÿ“±MùPÏoñ ^qƒ¨Kÿ}£?е[œù—²·ü ¾¥²ÿ‚{øÊr»­%õÞx{þ ŸâÔS> stream xœí]Ûn$·} èg‘›ì;`FRàÇMð$N€ kc÷Å¿ŸæÌlñTU9==d±ÀÚK5oźœºª«?¾Vuõ§úÉT½±óßÃäþþökõËÕoŸª¯U×?ÕÐöî§æiªÌ0ÿ¾øêÇyÚý`Œ_7Õß¿<>TÕ?i«×ß«O§Ñ¤ÙæŸ> Zøï·=>¼|~|°¶Ÿºêó?ªßMeúêó?«Ÿjóçê󿌙T»þT[ljÎM󰾩ŦîÔÔÆ~=5œš¦Øm<µŒ3uÎ-|ó|¨}²¾éÅw}˺½žZº™¨ç–7ß¶êÝ/¼åWyüm&æ§Óé»?‘¾Í<ÇÐNóß{P¸ÕPx ežJ)lN/Rø©«ÍÔÃ=Í»™¥›añHp[éý|ùŸÍ’ dNâ^…NÒë™t°süõ/óNô»ê‹ÓÃéÿÿSýM¹8säŸû ”¸†VË>{«wÝ ¹¤µpäZôÙ\³]qæè.È%®…!ײÏäkgåïƒ\ÒZ8r-úì@®fž¨»r‰kaȵì³¹&g¼ï„\ÒZ8r-úì@®¶«gdsä×ÂkÙgruõðÔÓK<ã=“ª–¾¨×÷‘÷Yyîàað¢O&·ÝÜXö»Ö‰Kí ¾wÑÆãMç=­óîM_CÓ9ï°˜àÆ¥~÷…fìzöϬ'¬9ûb³ï½*S§ÝÒÍ0dDÔ¹u—³±'ó¿³µ~gÖô›³'Æz;õêÓšÉ]…«ñ±é‚‹jž½Óê%Çœ=â!z»CÚbé²¼ ü¿XΉýÇþÇ?gf7ŽÕÝWóÿ-ÈÓu~K¶šÛm©ý:ÂŽÞWûyM[¼¬Úà–7“ß¡ ØwßâG¶­Ÿ+ŒÜÂÈá¸:?{—P|±Âçôω‹^=|»Ìv13˳ßÇÀΆšûõéþ=,¾‚5Å‘øÝ"<[.vûÇÝ”ý7Z,;²`§HÙÖKÉãxI²MÚ"ít€qxîDªÚgß6«¸Ðñ.2.©gIƒKâaXâ#{DvLì’ÑÎ-<é›õc&ö9Àú`5‘}3VS&˜gj5Q‚ÈÙˆlxÖN/¯Ð)ZXvHSûÜ 29¤Š“ ÌfƒR@‘XzDž‹ñj¯îMµ9JãYã·2ò‰¢!X ~6'n·…í®ïŒi6ø‚±m Hz.nac»èÙ”ØpF¼å (Û)t%,‰Ðž ëªáB¥  ~nˆs5‘D X²-æ쉀IÀN^j9ý\ˆ¬$ÓÁŸe:ª! êÕ¨5iv䨆]Oóâ¿áχØ×á£ñÒà£æÅÏÞÇõhÄ|)ԼŠ6{ €‹Â쾤A3³œŒ‡èuPü¡#B}°s„¢òhAáØš7;hñQ´°á„Ôåž´?ˆ=ãNyLF[ÅÞ ÄŠ‚w Ìù+o,xõ¹fb­#i.×lÓYé`y’ä¡]ÑÍX€.ÄúÛ.”Ø  —O4—ˆîY©ð|$ƒŽ†¨)÷ 7†œ«Ðâ„%:XAá„l£×#|GÞ³&Ѐb„RgN’ žµ4ªø& QjU˯‡òýk p"H’›Oá5g¼jw……²_ë`¶'ß« ½ ‘!Lˆ©ÛPÕ‚)Öå‘/Š_ÂgãüÇŠË3Æ(-Vû¢´e ÿ…ÚRò¢ !Ó û~½¼ˆÂm^aeú59²Í²]1èÇ+ât‚Mhª.h–•ǰ%(Ô¨TŽÊF ¶^°Ñd ’Äle*µH7“ò"T¹U°@Jåµ€ô²@0»Tì#ÈéhâBM‰Ò)› 'jD$˜Öaœ'Nz¡wŒ‚–<Õû„÷¢H– ¡ŸïËÉ3cVµ0*$Öx+dÇ”?4@OÒ9IV)õÇK¦F5¹8 ×ôÒèèW7lTY£‰•«Â—7)Å+ί–yŸçWEm°[S‰Š•"‘£âRÉZÐ[ƣЪ¢S0p>ÂòBà㤸RÆÐ5îyÊŠ®ÛÞ~À^‚;ƒ€…7Qr¶CP; £)£ N7K1 ñ›\Œ— ë­R•šò¸b0SF„ÒxØ™ÄC ´ \RükT1xóô‹®9HÕ;oš„ ´¢„aûÀ~NtUUq‡_coå-„&@CšŠŒ¦‘2><¤)oÑì]Ù=”Š˜"]²UÙõõƒ¬[넃4’릵ëýEÎÐ+/îÀ«NM&jI¥Ÿ+èJä€Ë I¸?ä{ùº ýÓÌUèØ ˆE œx©¸ôla¤RË)Hƒ­áR«|^¿ ;cù-p«£‹ÒÓwN­_S ÔZn)2Å–·tö¸žô6çâþ.ö‚ÆqÐ~Oh¶¸¿ë©%Üßúùåû»M;=A)×÷û»Üc¢ú–, èÓí.ý¤è;%ÖV@'íÊ#uÂ%UT‰Ú‘anH}⹞× Ï6´ÕôáÙ:¦Ó`—6bZf®ã[‡‹Ù.L§Ø×Ê1*—+n›ù)ÒÜ6W,åMr¢'DN$ ' ñÛÀÞº{T(ʈæ¨:ý­jˆv„J³è®yVõvY£Bš+¥[‡°w¹\#è?.gè?³õ£¢þ‹³EýǦ›‰wò°Õ.îuOjsRmu ïò]Yæw? ÆçJ¤ÐâýꦼœÏÖwê.­“ -I1®T2.„SøªÉ{U\vjR žèí1„lX˜ûnc•šø®â‰ù©€œ›\·É‘9E™À Q5CqI”û±Uª€Š¡†Ê ê¨_aU<õ¤ÜiNÂþ{;7Û=ÝÞYõ£íà^äüœ‡#„ ?×|„€M˜}Ð\ÚENϸ7]¡E ¦†³.ûdÔ qyp‚,Nm«‚õ‰[H‡g/‹"S,–wÓŸñšÔUQùHÞµlᜦv}£dª&…[yC“(¾Q@ˆó@Ø…ï•]&†¼œÊMOüDK>سšª±]ø%!F"vÚ!ذ˜íþƒ­iîîbŽœ¾¼h Ð`Ù—¦Ü⢈g^–]„ØThacS‹DT-/ w P,@ÄŠ³bSšp*ï<ü?GuˆøáòcR.§2^ÐöŠêþ²×Eâá¾æ¦‰&$Rô¸‹ôŽN°t¯° t}×\ÑEô¢º ¼æy$Å[D”-&’º,ò`Ë\gÉ~¹uo×'½„‰$NR@Q’–Ïá~4½_xüˆö€q¶=rÔæn“ëb,Ì7ð¸`Y j!œÒD5e¡Ø }NÁ§ÒX³½ÒŠE¨Y>ø…0µèÍ\2¿AÅuRf´ÐrÅ$üîñcÕM‡¢¸ïO öÁ¶1ÌØió6‰"N÷¶£äðE I~iž š_ØÚfÌ}þ†ïSJ¿Qy×Ô[=ŠI;ñ2þ´ÐR8J‡qÍÂã!ÂS‚ ãð%Ÿ…Г ôYÙ‡pO¼t¤ý]¿ykÆî¡oS¿i[sußÝ$tñgùAñôC™¦Fæ=.¾uü¼ð¼v,$³‡^˜Wx³49×Å9¯ý.rww»éã¦S;X€tŸ„&E· œD¸åŽWýƒI‹\“™ê £´ßþßoÀK ‹Vè`Ž—¸B¼Ãäg8àÈ(>ÎûŰGdoc`t›l-ý7”y­lÌŽ5±-Û†;”ð‹™AˆÓVÏÝÔî—µDÍåÒ¦ÉÓ™élS Æp2Ô[›ÎºÀ1ÝÛG5På¾6ðäJŒ‰côÐ`.7°YÝÕ½?&ÓÆÇTdõK}ðÑhÓ2:'{ôáií¿1¹B“vèHb{&¹šd´“Ó¶S™¶žB`ªOä=¡Â7C³XwätghnAž×ÿ©úZ ÇÛ¬£{$¾íç8-eªo¿V¿üPýæöèšÇ#Ìš¿ïlTÕ?«×ß«ãxÿÎJèýendstream endobj 7 0 obj 3640 endobj 8 0 obj << /Type /XObject /Subtype /Image /Width 654 /Height 162 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter /DCTDecode /Length 27082 >> stream ÿØÿàJFIFÿÛC     ÿÛC   ÿÀ¢Ž"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?÷?ƒ? ü'¯|#ðn¥¨è^êzU¼÷3»´’ÈÈ 3Ü’I$×eÿ WÀßô-YþoÿÅTÿ䇸 þÀ¶¿ú,W{_•Ö­UT—¼÷}YúU4Ý8·²èq?ð¥| ÿBÕŸæÿüUð¥| ÿBÕŸæÿüUvÔV>ޯ󿽚û _ʾã‰ÿ…+àoú¬ÿ7ÿâ¨ÿ…+àoú¬ÿ7ÿâ«¶¢oWùßÞÃØRþU÷Oü)_еgù¿ÿGü)_еgù¿ÿ]µ{z¿Îþö—ò¯¸âáJøþ…«?Íÿøª?áJøþ…«?Íÿøªí¨£ÛÕþw÷°ö¿•}Çÿ WÀßô-YþoÿÅQÿ WÀßô-YþoÿÅWmEޯ󿽇°¥ü«î8ŸøR¾ÿ¡jÏóþ*øR¾ÿ¡jÏóþ*»j(öõýì=…/å_qÄÿ•ð7ý V›ÿñT•ð7ý V›ÿñUÛQG·«üïïaì)*ûŽ'þ¯¿èZ³üßÿŠ£þ¯¿èZ³üßÿŠ®ÚŠ=½_ç{aKùWÜq?ð¥| ÿBÕŸæÿüUð¥| ÿBÕŸæÿüUvÔQíêÿ;ûØ{ _ʾã‰ÿ…+àoú¬ÿ7ÿâ¨ÿ…+àoú¬ÿ7ÿâ«¶¢oWùßÞÃØRþU÷Oü)_еgù¿ÿGü)_еgù¿ÿ]µ{z¿Îþö—ò¯¸âáJøþ…«?Íÿøª?áJøþ…«?Íÿøªí¨£ÛÕþw÷°ö¿•}ÆÀo i~øýâ[-ÐiösxZÆg·‰ÛcIö˵݂HÎô¯¥«çß…?òqšÿýŠ6?ú[w_AWèùcrÂSmôýO€ÌŽ*iw (¢½3Ï (¢€ ð¯Ú§Kµ×[áV™Útû¿º\[–`’ªèú›¨`ȈØ=ÔÕîµâŸ´Ÿü…þØß/þ™5ZãÆ6°ÕþWùXTž"š}׿yçü)_еgù¿ÿGü)_еgù¿ÿ]µù·«üïïgè¾Â—ò¯¸âáJøþ…«?Íÿøª?áJøþ…«?Íÿøªí¨£ÛÕþw÷°ö¿•}Çÿ WÀßô-YþoÿÅQÿ WÀßô-YþoÿÅWmEޯ󿽇°¥ü«î8ŸøR¾ÿ¡jÏóþ*øR¾ÿ¡jÏóþ*»j(öõýì=…/å_qÄÿ•ð7ý V›ÿñT•ð7ý V›ÿñUÛQG·«üïïaì)*ûŽ'þ¯¿èZ³üßÿŠ£þ¯¿èZ³üßÿŠ®ÚŠ=½_ç{aKùWÜq?ð¥| ÿBÕŸæÿüUð¥| ÿBÕŸæÿüUvÔQíêÿ;ûØ{ _ʾã‰ÿ…+àoú¬ÿ7ÿâ¨ÿ…+àoú¬ÿ7ÿâ«¶®+Áž¾øâ¯ˆ’]xÏÄZ<>»›gi¥KoIÒì.CÂı’æS’{Ú‰b'¹Êm%æûØåÄJ†*R…îí²þ¯¿èZ³üßÿŠ£þ¯¿èZ³üßÿŠ®Qøe¤, ñOŶKq2[B×öq‰%s„sn2Ìx 9'¥[ÿ†x?ôQ¼kÿVŸü\¿ÚPßÚ¿Äàúîþ}þäáJøþ…«?Íÿøª?áJøþ…«?ÍÿøªêæýŸ’Þ–_‰^3Š(Ô³»ÝÚP9$“oÀ›ð*×YÓí¯ôÿŠ>.¾±º‰f‚êÚúÎH¦†Uі܆R ƒ‚ ÚQµý«üCë¸_ù÷ø#šÿ…+àoú¬ÿ7ÿâ¨ÿ…+àoú¬ÿ7ÿ⫦¿øo¥XÜ^ÞüOñ}¼m,×ÖqÇ(Ë31·ÀI=*¾™ðcLÖ¦¸‡Oø³â›ùm„fxíu)!"p[s·rÃ=AqMf1jþÑÛæ^ÂÿÏ¿Á?ð¥| ÿBÕŸæÿüUð¥| ÿBÕŸæÿüUt)ðOO“X“H_ŠÞ+mV8åì¡dgH™Š¬†?³î J° Œí\ÿŒ|}ðÇÅ¿^ׯ^"Ö-õv}2òÓV–ÞHž!¤ê#!RKmÈ=ëJxßk.HÔwùö¹QÆae%g»¶ÈOøR¾ÿ¡jÏóþ*øR¾ÿ¡jÏóþ*»j+_oWùßÞÏ_ØRþU÷Oü)_еgù¿ÿGü)_еgù¿ÿ]µy¶•áSÇž+ñü²xÏÄ=¾•¯E¦ZYé’[¤IöN›rOÏ Æ[©I$÷µw`ébqµ:s³Jú·åþg*¦ 9Â÷vÑ#Oþ¯¿èZ³üßÿŠ£þ¯¿èZ³üßÿŠ©?áO^ÿÑFñþZÿò=R¹øp–z–qñWÄðj7ÂF´´–úÍf¸€d1¡ƒ-´NÀ<ׯý‘ŽÿŸ‹ïäyÚ˜?ùöþåþeŸøR¾ÿ¡jÏóþ*øR¾ÿ¡jÏóþ*¤ÿ…={ÿEÆ?økÿÈôÙ>ÝÄŒïñÆ ª2ÄÜZð?ðìŒwüü_{ÿ þÔÁÿÏ·÷/óÿ WÀßô-YþoÿÅQÿ WÀßô-YþoÿÅU}á¸ñ“gªi|W§^D³ÛÝAsjÉ,l2¬§ìü‚jçü)ëßú(Þ1ÿÀ‹_þG£û#ÿ?ÞÿÈ?µ0óíýËüÈÿáJøþ…«?Íÿøª¯¦øÃþ ø¿ð‚ëDÒâÓn.-°ð”S^f¸¸*ÒÆÕ<Û›ÉqŸ.(Ç,@“ÑTbª ‹¼Q„ôµ¼^ÝM*ZÙØ@@–îáó²$Ï8f$ðª®í…V"‡„|Ú]Ýι¬47Þ*¿@—W‘ƒ²ò¶·Ï+ =Üí–šø¾ñ¶©ðÇÅ?’okÚݾ³®Å©Z]é†Ù¢h†—anAß2°a%´£t÷«ÅU•|?²„Ò_?y=nÏ …’4[“oîÑôGÚxkÆŸ~økM»µø Ú¬~(ð¥Î¯qâ(Ò?²Ý%ÆíB{"WÌTŒÌÇ0“Ë Y¿›ö„м?§iz,Þ,¹²°Ô¬^ ×tKm\ŸS»»ÔͲı+P¶l™˜±’ê!€:{UEÖ©^5öôÓ©­,5U8û¯uÑ÷ ÇÅ?ïø#þø¾ÿ1ñOûþÿ¾/¿Æ»Ê+³Úy#ëý÷ŸÞ|QûDY~Ò³üvðSøKhîWN”\K¥‰—H æŽ.¾Ñ˜Ëz–ÇA_KþÏ«â·øˆ1ë¾(µ´ñÖ–>!jÖ¶å5+É㸆+Rö¶ `ÀC­ÄŒnÔ°VãåùM]oÚkâêx&ËX“ì Ü:H|1t×N>Ë­[ÚJJÒ &Tg†G'ìO–:/üø©â½sÄ—öúÌ»ÔÛR˜ßAâ ©|ø.!Œ[é¾PV·eaöˆÆã÷‚åØUoüø—¬éXxZÎÆèÝ[XÙø¢ò嬔ßÇ+G#ÌçY@O,årW婼SûCüLÓ/¼Jl4­PÙð݉4¸-æ„Ar×™.¾Ó³ùQŒ©èO–À»QøùñCSÔ¼awá­ÏÑôs®ÝéÐ^xzëÌÔàµ6âÎ!’Œ¦A4 8 ¹ÉëðwÂWžøSá ê&&¾Òt»{9Ì º2éS´àddWa_,]~П-õŸXé:iñFŸ<î§Zo ^iñêl.¡­Ìnû­öÅ$Œ& ÊÅAÚU=×ìùñ[Æ>?×¼S¦ø³N’Õôò±èÓZ[a¤•v,Ò°g`IFYs’͸»¨ÿÉÄÛØ©/þ–G[z§ü•Oƒö6Ïÿ¦ b±5ù8›oû%ÿÒÈëoTÿ’©ðcþÆÙÿôÁ¬WÆb?äqUùWKþE2ùþgÓQE}™òEPEPEPEPEPÉ_ÿ䇸 þÀ¶¿ú,W{\À?ù!þÿ°-¯þ‹ßÙ†B’=@¯Ék^¬ý>ð£è„¢å?÷ò£Êî7åX›] ¢å?÷ò£Êî7å@] ¢å?÷ò£Êî7å@] ¢å?÷ò£Êî7å@] ¢å?÷ò£Êî7å@] ¢ƒÁÇz(¢•Q› 'è)|§þã~TÐÚ)ÞSÿq¿*<§þã~TÐÚ)ÞSÿq¿*<§þã~TÐÚ)ÞSÿq¿*<§þã~TÐÚ)ÞSÿq¿*<§þã~TÐÚ)ÞSÿq¿*iN úå_…?òqšÿýŠ6?ú[w_AWÏ¿ äã5ÿûlô¶î¾‚¯Ó2¿÷:~Ÿ©ùÞcþ÷S×ô (¯™¤ý»¼-^>¹>Ö$²ð„W¯tÐ\YÉqºÚím]fµùÖ»·«\$jcVrT õ8úfŠñŸ…ß´îñ;Ä:‹‹{ey¬ZjÖ×)wi{e$V’[#¼wóH’+´ÚW?uÃm#Ù¨¯ý¤ÿä/ðƒþÆùôɪ׵׊~ÒòøAÿc|¿údÕk‹þëWü/ò:ðŸïÿÄ¿2•“ɧyOýÆü«òÃô¡´S¼§þã~TyOýÆü¨ ¡´S¼§þã~TyOýÆü¨ ¡´S¼§þã~TyOýÆü¨ ¡´S¼§þã~TyOýÆü¨ ¡´Iu4¬Œ½AQ\/Å åÖaÓüe3Á{â?6)çˆá­l#ÝL?Ú!ã…?Û¸Fä#UÆ<ÎÄN\±¹ƒþÏ7Ž%bú\i-Ÿ‡â#ƒn[Þýg*6ùâªr<ÖQßÔ6–XZÃmmAo âŠ1…E@ôŠš‰Ë™é°B<«]¸ýoâÿƒ<9«Ýiz—ˆ­-uFU¸·;™¢fEuVÚ§££`ó†SÜRxƒã‚ü%ã+ ë¾$°ÑuËø>Ñio¨J YÓq_–FÂnÈÆÜäö·~ k^ºøÕ©ê—éÚu—‰ã¸¹ººG1®ƒ¥3;1à(’MMKѦêJ-öé}Rìûœ¼_°Šp³w³û›9oø_ÿèh´ÿ¾$ÿâhÿ…ñðÿþ†‹OûâOþ&¶üCûcx&ËGеMIõû[ïÙx~î5·¸‚æÈ\Ã$ÑOöv‡Í‘Y# W÷ÁS]<¿´çÃ8tYoÂtÝjnm'[y›l1IåË,À&`$"6yBª±Á ×3­V)7BZùÿö§•ý«S²<÷þÇÃÿú-?ï‰?øš?á||?ÿ¡¢Óþø“ÿ‰®ïÅ´ß|?«kº¾¬º—ˆô»[¹~ÁRˆ¦žÞØÜÉl·; ^rÄ7´a‹*œ•«ß¾;è?<c«èò*_ +½JÂ'i“OšâÝ'Í6ÕG‘Æà9\ÁIÅD±2Œ=¤¨É/^û}¼ÃûV¥ídy·ü/‡ÿô4Zßñ4ÂøøÿCE§ýñ'ÿ]ÿŒ¿há÷ÄÛ¿ ø…bÒ´{? Kâk½~æçlpÆ—+•åíÉ$¸ ƒ’p¡I"¤OÚWáôÞ“_‹X¹šÖ;ã¦Ii™t×ÑÝ̦´yÊÂ52` ùFîœÑõ‰4¤¨É§ÙßÿmíZ‘çŸð¾>ÿÐÑiÿ|IÿÄÕíâ÷ƒÈâ·ýñÿéƒE¬üvðGÃhþñF»©êöíqg&¡˜­ä ÛJ™È­Ÿïõ­o…„6½ñUO‹¢ ƒGö‹ƒ_O‘BQÄ6ÖŽ.ßz>k:œeF)=T¿Fw¹ÿ eÅÂÚÁ,îp‘¡f9€2y5‰ãŸi<5q®k2ÙÅ,0¶…¦–Yf•bŠ4E³4ŽŠõª^ñ÷‡|q£[?Ø›RšçO]'ZCey$ÑIáû<»]™pr9éÍ}Éñç‘[þÛ¾¶œØøcÄ:…Ô&V6¶d—tQÚý©¥Y-—ËWèÄîB;Œêh_µ >6ø™àýúÔÞÕõ í:ç]¾Œ$~u¾öÃI»r–Dbé´üÛIÆk{Ãÿ~ XEu6‘‡$K;s ÌÑë?hû<-‘¶Fi›byMå€Ä»BàÂø'Â? å×¼;â=NÒ´ßÜÀ÷ZU»Þ®JyD’ÇjdÁ>JlwI –9 VÉçž½i3šÇÿ„×Ãb´¼ÿ„“EûäæÖÖçûJ*â`pb÷áÜ ©$1[H#v4åúüœM·ýŠ’ÿédu·ªÉTø1ÿclÿú`Ö+Qÿ“‰¶ÿ±R_ý,޶õOù*Ÿ?ìmŸÿLÅ|f#þGõ_‘õt¿äS/Ÿæ}1EWÙŸ(QEQEQEQEQE|•ðþH€¿ì kÿ¢Åq^ømáŸxÏâEª]ǯy)-Ä’‘‹Kba°$œS]¯À?ù!þÿ°-¯þ‹ŸðÓþF_ˆÿö17þ‘ÛWâù¥IÓ§VPm;ôÓ©úmÆq¦¤¯§è'ü(_‡ßô*ÙßRñTÂ…ø}ÿB­—ýõ'ÿ]õsÞ7øƒá¿†ºÍÉßr"PÒ”ãªA?Zؤñ8¤“u%¯›F‹½¢´8øP¿¿èU²ÿ¾¤ÿâ¨ÿ… ðûþ…[/ûêOþ*»êÂð?âÝGZ°Ñµ[}FóE¹6zŒ0’ZÚaÕ#¯¥5‰Å4Úœ¬·Õƒ£E4œV§=ÿ á÷ý ¶_÷ÔŸüUð¡~Ыeÿ}IÿÅW}EGÖñ?óò_{+ØRþU÷ü(_‡ßô*ÙßRñU5ŸÀO‡­w>² ºä“Ÿ÷«¸©¬¿ãòúè¿Î‡‹ÄÛø’ûÙ2¡JÏÝ_qÆ|‘åøðÝäw‘ÛÃzqg‘‹3³GÉ'’}ÍwµÀ~ÏŸòA>ÿص¦ÿé4ußàã8àw¯Ð*ÿ^¬æ¥ü8ú#ľ xWIñ—Æù­5»%Ô­m|3i,K#„Þîè3 Š ôQéIÿ OÀŸô,Úßrñu­­ÿÉ{¿ÿ±VËÿK/+ =+ú…pôg“Дà›×§÷™ø7V« Ö´c&–_dq?ð¤ü ÿBͧý÷'ÿGü)?гiÿ}ÉÿÅ×@mâ+­æþöq?ð¤ü ÿBͧý÷'ÿGü)?гiÿ}ÉÿÅ×mŠÈðï‹4 Lé7©{ý™6™y°äÜÄvÉÈ©ôâ«a“·$~äX®ÕùßÞÌøR~ÿ¡fÓþû“ÿ‹£þŸ?èY´ÿ¾äÿâë¶¢ŸÕ0ÿóí}È_Y¯üïïgÿ OÀŸô,Úßrñt“ð'ý 6Ÿ÷ÜŸü]vÔš>©‡ÿŸkîAõšÿÎþöq?ð¤ü ÿBͧý÷'ÿ[tÛmµ·_ÇÝðlëVÌeÛ÷ïÍw>µøSÿ'¯ÿØ£cÿ¥·uô~køGQñÍÄûçƒâ²ºÝƇ—Ž+\,Bâr‰‡T’s€X“AéŸð‘üG–äZÁñOÄ$xóæ6Ö[Sý<¼};O`~//­ xXE½¿ÌûŒnY‰©‰œ’Ý÷òÛúùŸnWÏ×_±î›}¯Üë|lú„v÷vÚEâj%æ— ;¬wkžUS"¥Ä’ªÇ”Æ yx«â¦IÇÅ=~-> s;ÁeûÃ꿸û£×¹éîƒÅ?¢€ÜÏñ;Äh’°[­µ—šç¶qÔõÇ`9ïCë8?²ñ_õÿ¡ê:_ìW¦ø{ÄQx—Cñÿ‰ôO1½7zÍ”:z5Ùºû0“t?eòSÎ lEÉœ–&¾‰¶‰ ·Š7•§t@­+€Èxà“×_Iâ_‰P¤pŸŠì—òå„K–È×ÕÙóëÜôŽÿ„â<·"ÖŠ~ y#ÇŸ1¶²ÚŸìä}ãéØr{}f˜ÿ²±=—ßø_3íÊñOÚOþBÿ?ìo—ÿLš­xbx«â¦IÇÅ=~-> s;ÁeûÃ꿸û£×¹éïÃ|QÕüsx<u©|@×î¶xƒ65µŸœ²:ùw B>b¬ãià$ò>^\UhOR+ª‘цË1­ i£]|ÿ¯SÖ¿h†eø!ã=®èNžë¹©ÁÀ8#‘År£àŸ?èY´ÿ¾äÿâëÅ~/jÞ0´øm­G¨xßVÔíËÉ`Ñ[y~^áäDÞÙz{}>‡*¨¯{°ô¥B¿:RÕtòó>wåZ†"лޝŸ‘Åÿ“ð'ý 6Ÿ÷ÜŸü]ð¤ü ÿBͧý÷'ÿ]µaëþ7м-«h:f¯©Á§Þë· i¦Å1#í3(¢œ`™qœd5úd°Øh«Ê_$~j«â$ì¦þöbÿ“ð'ý 6Ÿ÷ÜŸü]ð¤ü ÿBͧý÷'ÿMñ'Æ¿øFË]»Õõèl­ô;ÈtýAÚ9ȸ•ÇI$©ŒŠÏðçíðÛÅÚ·«i-²½²Ñ`7ZPêöñ“!FPÅxê¬ýž >[Fÿ#^|[\ו¾f—ü)?гiÿ}ÉÿÅÑÿ OÀŸô,Úßrñu›àïÚ;á¯Î¤º‹¬¯åÓ­^öê²G"@ƒ/&×PYG#8ÈõªÞ ý§~üCñ-—‡ü=â»}OW½ßö{d‚e2mFvÁd…V<žÔ”0.ÖQ×mµ–1^îZo¹·ÿ OÀŸô,Úßrñt“ð'ý 6Ÿ÷ÜŸü]vÔVÿTÃÿϵ÷#¬×þw÷³ˆøaá]/Â_µ{Èiö³ørÖW·‰Ü£Iö©Ô6žqšì>¢ø§Ä:ÿŽ -o_û3H=A²·wS0>“Leu#ƒ…»ày—‹õ+Ë?‰:Í––æ=gZð펋§²ç+=ÅíÂoç÷iæLqÑasÚ½JšïÄšM¿‡ü#hÞ°‰,ÿá#P¬ó¤j˱B ‘Æ ÃƒEñÿ>qE5 ÖºŠ²÷W¢å_×Þ~åÕòÚÎï_Wï3¡ñOÄM3Ã7Ñéh“ë ™°èšZ‰nÙ À‘!bL‚7ÈȧŠÉ}/Çž.@÷º¥·ì[‘c¤*^ß‘ÿMnd_)=Ò(Û¤Ì+§ðÏ…4¯éíg¥Z-ºI!šyY‹Ís)f•‰yd ]É8g ׯæŒ~óå±õ\’–³$|±ñ‹ö Ñ>5øóÃz¾½âÍnçJÓ-Þ;¸n.L×W¬\2ªÈ~HPs‰“ž0~jö?‚¿¼1{ðßãgÂë[it¿ ÝkÙ ¬¤É 2h:Z¶×}ÇwÌNNy¯D®5¼©Ùkšî£¢x×\ðúkWiuid¶Í™m ¶Ü ³ ÇmÆA#©§Zµjô}“­kvNéô<Ì^M^ŒUÛ×kû9k·ö~O|HÔÉz/_îù³Êþ̬ú/¼µiû0^i:ß‹bÒ¼}¨é¾ ñ$úý׆¢±¼¼·òdv¸#y‰Oï X¨ÛUþ|ŸöOÐ[Jð®±ã=òÞÉ$Ò,Å¥ºÛ^Cn±Ox¦{„íÚ0[³óoü#.ÿ¢£âûõeÿÈôÂ1âïú*>'ÿ¿V_üPébe Ô‹‹µÕž¶ÚöW¿žáý™_·â;Çß³Ä?´§¨øƒ_׃.®´5ГO”ÚË,-ô7Ð]«Å$¨JË|„@95«~Ç÷ž!³Ônu_ˆW·ž"Öõ„Õ5ë¿ìèã²ÔÒ;1i»Ù«Ù*ºng`ÜÁÆ_ÿ„cÅßôT|Oÿ~¬¿ùøF<]ÿEGÄÿ÷êËÿ‘éÆž* –RK¥Ÿê¼—Ü»öewº_yÈÅûÁ§xvKñýõ†•q¥éZn¯ölR@é³ ,å [1€®!»Î} öœÐtïßü%ÒõkHï´ûÍæÛɯ·BÕ™s‚  þ—ÿÇ‹¿è¨øŸþýYò=FžÔï5Ý RÖüi­ø…t[·¾´µ½KeŒNÖ³Ûn&8UŽ#¹”c8É組q¬jÖ¨¯¶÷jÝ——ÜiO-­Å´­u×Ì¡ÿ áßý v?÷ÔŸüUð >ÿЧcÿ}IÿÅW Q]^Ú§ó?¼ú_cOùQó7ÅØáïÅ_èzÍè—KÑtÛf†]M?µÈ_pg˜±* dmUõÜ:W­~ÏþÑüÄox~Â=/FÓüWV¶p’V5þÁщ±$ä’rORk¿®÷á•á×õÍOJñž»¡.±v—×6vBÙ¢ó–Ö mëæDÌ3¬9ÆA=ëÛ˳'B¥ñn)Y}éž6?/öÐýÄRw»ûŽ‹â¿%ø•à[ïÅyggö© w:–šš¬É«#E5»²‰#p¸8eaÃ+¢¼?Aý‰"ѵ]:ñü^³C ¨ÒØ .O"Ú$¿‘A§îºf´D`ÞÓóó ôÏøW> ÿ¢™âûâÏÿ‘èÿ…sâú)ž'ÿ¾,ÿù¾‡ûo ÝýLJýŠì¾ó•Ód]OÓ~YQ<1òjŸgÓ–×âÅr±Ì¡ÎÏô‹x]›ç,—#vFF™û>›£6‘ÿ }¥Å…Ηm¦ÝÍqáØ¥¾S71,–—3}—p¹Ü@GmÈJº—&½þψ?è¦xŸþø³ÿäz?á\øƒþŠg‰ÿï‹?þG£ûo ÝýÁýŠì¾óË.ÿaæ¹Ñà†?ÚYêhÇuí¶€ëÁooíƒíewm¶RÞa’7ùŒõIåĈX¶Ð㌟~8ü«Ëÿá\øƒþŠg‰ÿï‹?þG£þψ?è¦xŸþø³ÿäz?¶ðßÜØø®Ëï¨ÿÉÄÛØ©/þ–G[z§ü•Oƒö6Ïÿ¦ b³`…ƃ%€äç¥iêŸòU> ØÛ?þ˜5Šð¾± Vi ´öm~G±*Ãå²§Sø'ÓQE}áñEPEPEPEPEPÉ_ÿ䇸 þÀ¶¿ú,VÃOù~#ÿØÄßúGmZÿ䇸 þÀ¶¿ú,VÃOù~#ÿØÄßúGm_ŠfÿÁ«ëúŸ§áö§éúí|Óû{è6¾*øWá-øÈ¶Z—Œt«9Ì,Är3£m$ ÇôµdøÂz7‹íímõ½2ÛT†Òê;Ø#¹MÂ)ã9ŽEôe= |Ž õ\D+ÿ+¹Ùˆ¥í©JŸsáoxÇXðŸí/ð›á×ÝÛQøkm¯Äu§S²ûKkö³ã“‘L¤ ýÀ2Niÿ þ(xÊÓâ·ÂfÏÄ~0×4ÝßÄG‰ï¬Äz¼q¡Á‚ÆÆÔ+íPžbxd¸o|áýKÅ$»Ñ¬®|Aa ÛÚêRÂxcpÁÑ[°!˜þÑ®oß³÷Ã?ê0ßèÞдÛÈoüSÛZ*IÀrƒ ÃjáFzWÐ<ß 8¾zZ¸ÛdÕß;mmozIõÚÖÙ¯#ê¢íé{õ½½Ô½tV> ‹âï‹àׄ¾#Œ:”¾1ñOŠ¡°Ô<0—y ‡Ìq[à¼XXÓ-Ь›XÀ×cãŽþ7ðæñ-¼C-Œkñ ×ÃñëÄŽºŒ¡ƒÎaBªå‡9滯øb½wUñm½Æ»âo ßii®E®]ê–žŠÛ[Ôš7.°ÜJ„G´±%˜.\€ÄÓèäøká4ƒ^‡þ½-à×å3êÐËj’%ü„`´ªÀ‡?ZëÄæ8I8ANîú$¬¹¢ÒÖ*öI¥uëØÊŽ$ù›Ï}¾ïvÿÈù^ñ‹¾ø»Ç¾ðÏÅßíëàåÖ­üCâ‹è&þƼûLqm{€6*¾0;YÐãç¬ý”е-Aðv‹¦é:˜Û}išº]ŽFÙwæ(ɶ@ÉÀ¥ðÁ|+šòoxOKðô÷œ\MeÙ$\çic“·<íoŠó«fXj”*Röz´¬ì“oM]´[mgê›mõSÂVHÏ›EÒîËËÏðüŽÎ¦³ÿÈ?ë¢ÿ:†¦²ÿÈ?ë¢ÿ:ù‡±ìKágÎ_—ãßü)ÏcÉð´i?Ø6?cþЋT7O›<Ý·~ÜnÛÆsŽ+Äkõý¤ÿá<øgýŽÚYñ1Kñh~¥òŸ/u¶ñwö‚SËÎÌnù~ö{WØß³çüO†¿ö-i¿úMwõúÔq~ƳŸ"v¿O‘óßSö´’ö’[u>føN>%¯|U:!ñ?ü"¶;¿±w}ϵÝãÎþ39Ï—òtÅs´Î¨tïø(x–÷Ä:oÃV²¾kËŸ=Ìrh€¿gµ¿ïäå/×8¯hÖÿä½ßÿØ«eÿ¥—•ÐWï|9¬ä´RÒ÷~_ÒÝÅsé{ Þ¯[[×á]{ŸÜx2ëÆž3³»¸ÚEmðžk‹{ËÙä³Ô¥¸K²Ð-Ì\m/vN°$á¼s¯üG»²ð¼ú¶¯­iw ÒŸE¸ŠMMõ&Oô†1ÚDâkÀnI°6’qÉÇß4W¹,¾éÚ{ÿ]Ï8Û=csãŸkŸÅ½v/j?Z¤Ÿ [x8̰\*?µùHq )—Ìyü„ü*…Ö¾-ðçǽgQ׆©ÃËïëÖ¶vú{Ü@WQ’Ux®/ ­ÝT¢d” ’xûßfT¶‰eqm#KMFÏŠÁ*êASσҩà[Ÿ?>ÎÿõïÛÒÄýsÝååéoÂÚvÿ;™ž7yâðG‰ÔÊ·K¥Ý´-"@âÚT¯;³ŒcœãòºgŒ|%¥è~¯ã+ë½sáEÕþ§%ÕõÝÃ.¤ ã( >TªÇh †ú–$ý9¢üÒ4-VÓPƒYñ\ó[H$H¯|M}q ÙãyJ¸ö`A®îµ«‡–!©IòÛ¶¿åègN¼hé{ÿ^gÅzôx,ü_øŸÇ‘i>#ÒïuOùµóÜI)°¶fózDŽNUGÈ795Ïjºßbðg‚ŸÄ—ˆ­ü ÖM•ö£s¨[]I‰ÇØîK4yÌž^Ljãkg#ºkíp鱫—ŠHžVÇÊÎ’êå6î ݺ¾Õ[Ç‘|cøŽ|*<%,2k1)]p^4ñŸìë-Ì<¢S}É®}e_OxÞDŽÑ~øª+p¦ùOpOÚ:¤õ9úåÇDñÌ×"I¾ø§È‡ýEº­ž2:3¤c>ƒ ëסÉSù¯ëî·ÃmíëOÅ¿#Ì'“ãƒCow0ø`N ³0ê¹gþ·w\ €ONãÍ?h±ñrÆúáð æi.E¥&£çB¿Ù×›ñ½¶³ÌÁê_gP¯¦Eñò.›á‡‰å¾aµ…§—žÃý#8îOSŽÜÃ|QÓ¼a¦E/€¼Kiwyâ¿j-7ÊãN¾b¨¢sÈPÄ…O$à6UáNRqÙ2á[RJ>×vºü¾ÿ-‘ñOà ~5?Ã?.¼¨|%ö0e—ÄîܮՄýòqÐIò€~™ý<î/ÐW̴߆ºÝ©ðF½¥iÉo™.®¾3¸d¹’»<ý>ƒ £Ú¾Ûƒ*ûhb'Ê•ÚÛÑþ'ç|kN4g‡§¹Ú/WëÓÈu|ÿûPü-øüëúMÞ™âé> èIq$*™!‰a{¨ÁxË&ð~îs‚+¢ñŸ…|C¦ëÿàñ¬Ú§‰üg?ƒ®-´MvA•î›Ë˜’(Ó :É·r–bpvñÉûrŠóÖZ–óoúާw×Ýþý[ü˜×àgˆeðãøßÅ^*jºo‚îôÝ'KµÑ…ˆµZáÂÈí+àíãžqžœ÷ì±ã'´—ÀZ%ç|i}2iÙ·†oü4ÐXA ¶Ûå› ±Ãç`É9çëÚ+©F3Œé»[}Ýöóòës­¹AÆj÷ôÓðü¬QEzG ó÷ij¤Ú›Â?ð‘›ááïøFn¾ÓöOõ{ü×Ç›Ëò~Õ»gÍåù¹ýßšGÖv‚kµ m‹åyòöcåÛŽ1Œcb¾yñ†™{{ñ#Z½ÒÐɬè¾²Ötõ\îiíïn`Ç?¼O2Ž«3õèZM½ß‡tË_ø.6Õü% ^ !Uhc‘C‰,X«ÁÏÙØ„9ù ][ëš›«x?Ä:ÖnÞÆÒçQŠÜDÓ-´÷%É™†c¶”çÈŒŠjÏDÓù¡¬] 4”ÑØQEް¢Š(¢Š(¢Š(¢Š(®Tÿ’©ðcþÆÙÿôÁ¬WA\þ©ÿ%SàÇý³ÿéƒX¯G.ÿ{§êyÙû¥OOÔúbŠ(¯ÓÏΊ( Šóˆ_4ÿ‡þ+²ðçü#ÚÿˆuK«Ô<½Ú)(VE.d‘%˜zÃÿ†‘ôM|uÿ€VŸü“@ÉExßü4ˆÿ¢kã¯ü´ÿäš?á¤Gý_à§ÿ$вQ^7ÿ "?èšøëÿ­?ù&øiÿD×Ç_øiÿÉ4ì”WÿÃHú&¾:ÿÀ+OþI®{Ç?¶Ÿ‡>éjž'ðWt>YŲO.ŸnÁ¥*Ì 99Â1éŽ(øÿ$?À_öµÿÑb¸¯|Gðï‚c”sTñSªÓ—K.Öü)ÿ“Œ×ÿìQ±ÿÒÛºú ½\¯ýΟ§êyyûÝO_Ð(¢Šõ8(¢Š+Å?i?ù ü ÿ±¾_ý2jµíu⟴Ÿü…þØß/þ™5ZâÆÿºÕÿ ü޼'ûÅ?ñ/ÌòïÚO‚>2Ç$¬4÷;"Bì@Á8P <ÕÉ~ ÿ àÿÀKþ7^áIè+ç2>#«‘Ó:tÔ¹šz¾ÇÐg9<æpœê8ò«hÿ…×à¯úü¸ÿãtÂëðWýþ\ñºöìAF ¯¥ÿˆ‰ÿŸûÙóßê>þKîGˆÿÂëðWýþ\ñº?áuø+þƒƒÿ.?øÝ{v £ÐQÿÿ>#÷°ÿQðÿóú_rÕ;m˨ÉÁºÿ‡²/…¼E¯ø ¯—kfÿÚšBãln˜Â=¡˜JŠ @½wصpÿíåÑáÓüie Í}áÆ’[ˆb{½=Ô ¨îÀ*LŸôÒš¾0Ì%šâêb'W;iæ’Kúó>ÏŽY……>nKëäÛoúò4|Qð÷Mñ%âêq<ú/ˆbʇ[ÓŽéS9òÜVXó“åÈrrl”š<"›oô»X/ïGxìµÿ~ÚfXd¯È{vöwjÝ[J“ÛL‹$R¡Êº‘ÀúsSW”¦Ö’Wõþ®znšzÅØùgãíé¡|ñÿ†ô}{ºÜF¥m$—“ÜZ=½Ý“‡ ¬#|,ÑžrQ¸ÆAoº}÷öYñî…ã=#â‹´‹õºðõçˆâ¼†÷c 1 KÜÅXÚÜÚ«øƒà÷‚¼[ã+k¾°ÖµÛ>Ïgs¨Eç­ºî-”²·‡Û¸v"º€¬šßÅøÙFÞ+…J‘Gö“Æ=*qÒ¡,#TâÓ²¾»ûËúý0hÆõ$šæÓîgžxÛö¸Ö.þêÞ?ðÇ‚5Í&Ð2óEÔµhmå‡Sµ¸Ô ·m©Ĥ¬’1T“iÃ#g¨[Þ&ýº|-àý>Oí k:v··}¢M¤]ÜØÄÈöEq3ùÆãÉ ÅqŹÂÔ×a§~È¿ ô½+TÓaÑïÂøA·ŸR¸•- †ån£·¶ äAìL ñÐ4|Mû3xÅ&úYìõÛÍV}fMCKÕ.,î–âx#·Ÿl±:²¤‘DˆÈÒqžkÉU2ÿ…Óv»~v²²ß½ïøXðm>æ…j/⊭4¿øKÄ^$Ó…®—w©jÖÑÁzbj0‰­|Ȥ•e|DCÉå«l >÷ s¿±íIqûFøFX¯ímGWÖ¡oCiís0†йvo%™‚ìÉÆâÛ‚úÏìÍà Ÿé^ Mͽޟœ_g·Ô.#µºŸñæ×0‡Ù;Cü $w$ŠÚìï¤|1ŽÆãá²ZxoU´²}-eÔ¢¸¾‚KF¹’è£Ä·e–YJ9bTHã7JX'JP„Z“µ›ékÞþ¾K·m_½{™¿>3ëÿ ¼uðÞÇGѤñ¦¶Ú©½ÓmŒ)q2ÛÙ4éåÉ4ˆˆ ±'î‚'ùG?nmzËNñVµá¯Ky Xø/Dñ^™=ü°£ÍöùÂm•Dù)`Œî‚NHhË}~Ïâ­OIÕ|wq¦ëš¶Œ×CLŸH±žÁ!Kˆ G¸›ydbÈǦy®~ïöJøsy¦¾žúmúX¿† ðŒ–ÑêS¬oao· ¡°e²V_¼77<šº50PQXs5»³×Þ»êºh&¤öf-çís¦é~3»Ð¯üâ;m7ZÓ|?ªê®Ö…åôP½º¸YË2î˜#º€y"÷í9¯Øx^ûá.©ª\ K ÍæÌQ›ní VQ‚NY€àwª>ý|;¤üP×|e¬jº¯ˆ^ïS°Õlln¯nDVóZZE2N¦b—R«Gæ ]wnøÍo|}þOƒ¹ó6ÜéƒW­(¬7Öiûöwõå×{õ¹µoi÷_™ÃÂÿðý Iÿ€“ÿñº?áøþ†$ÿÀIÿøÝz £ÐW¯z}Ÿßÿû{Tþe÷Á<ûþÿ€?èbOüŸÿÑÿ ÿÀô1'þOÿÆëÐp=‚‹ÓìþÿøjŸÌ¾ïø'ŸÂÿðý Iÿ€“ÿñº?áøþ†$ÿÀIÿøÝz £ÐQz}Ÿßÿ-Sù—Ýÿóïø_þÿ¡‰?ðþ7Gü/ÿÐÄŸø ?ÿ¯AÀô`z /O³ûÿàª2û¿àž}ÿ ÿÀô1'þOÿÆèÿ…ÿàú“ÿ'ÿãuè8‚ŒAEéöüµOæ_wüÏ¿áøþ†$ÿÀIÿøÝbê?¼ 'ÄŸ„·)¯£Cgâ‰ç¾Ë?ȇCÕ£îsóHƒ_­zÞ ¬ PøZŸxÿ™¶ý0kèeîŸÖ©Ù=ûÿÀ<üÁOê³»éÛþ èÿðÓŸ ÿègOü¸ÿãtÃN|3ÿ¡?ðãÿר`z 0=~”~~yü4çÃ?úÓÿî?øÝyíÿøyð+ÃF½Üø²ÖçTŽÆîÛOG†âZ9Ì‚TT‚€l,™ßÃýAè+€øÉð'ÁŸ´M+FñΖuNÔSK•£ŽY‘ÌÚAeF;s‚qœŽ(çßþÐý¤>0Ùx£Àš±Õ4Øü+-½ÂÉ Ã-´ßlŒr+†ÁŒŒA ׯ×)â é>ø÷£hú—e¢é6ž –;{ :Ý ‚ûr©ª2IÀë«  /ˆÔ¼IsáÛ_h×>!¶fI´ˆµZò6PKmà€ í\Î’c7I$GUäŠæ0õÝGÄS™DRÇ)‰ÌrÜ6Ç­ŽŒyòγðsã4Z}ý¾­j×q¼ú‡örŸM ¶sÍkb¶·rÊÌÍ4Oá6Ä·úÎ#!†1´ÏÙïã†õKÛ}7U¿ŽÂ}RÔZòÃĆÕg{‹˜%ŠíâfpQ&V‰‘Ëæ6ݹ>ï™à ¿òE4û`ÿÒkšúrR­#•RIãé_1ÿÁAäŠhÿö0Áÿ¤×4éÿ䇸 þÀ¶¿ú,W{\À?ù!þÿ°-¯þ‹Þ×䵿‹/V~ŸGøQôAEV&ÁEPEPEPEPEPEPEPEPEPEPEP_…?òqšÿýŠ6?ú[w_AWÏ¿ äã5ÿûlô¶î¾‚¯Ó2¿÷:~Ÿ©ùÞcþ÷S×ô (¢½CÎ (¢€ ñOÚOþBÿ?ìo—ÿLš­{]x§í'ÿ!„ö7Ëÿ¦MV¸±¿îµÂÿ#¯ þñOüKó)QEùaúPQEQEQEQEP#¨¢Šà<ßðø¼2ìÒåYnü=)<-¸9’Ëëì ÿž%F?tÌ{úÅño†!ñ^‘öVžK+¨e[›;øóm.;%Lñ‘’<2³£eY¡á6¥w>ƒ¬,6^+±Œ=ͤdˆî#Èæß<´,H÷F;æí/}s­úÿ™ŒvùÝ?Èêk×>øÄڵΩ«xCFÔu+’¦{»›4ye*ŠŠYˆÉ!UTÙ@èuõÅx7ÁZ§ÄÏ|Cy¼m¯è¶Ú>»›ig¥‹ADt» ƒŸ2bÆK™NKt v¬¹ý”\ܬ—ù£UjtbHÝ6Vÿ…ð×þ„?ÿàáGü(/†¿ô!øÿ#ÿ íáŸn¿è¦xÇó°ÿäZ¯ið7ûCÎû/Å_Üù´2ù2iíåÈ>ò6-xa‘y‡ö…?ùøÿÌúöþ}þ üÎKþÃ_úü?ÿ€ÿ…ð ¾ÿЇáÿüü+µÿ†}ºÿ¢™ãÎÃÿ‘j»| Ù~–-ñWÅk{$m2[tÿ1‘H á~Ë’ ²‚zG­Úßü¼ˆ}{ ÿ>ÿþg%ÿ á¯ý~ÿÀÿÂøP_ èCðÿþGþÚŸÙúè Ÿ‰¾0ëaÿȵGFø7mâ;3w¤ü]ñ.©h¢3Ù\iÓG½Nw-±Çj_…¯íâ^ÂÿÏ¿Á™Ì‚økÿB‡ÿð?ð«úÁÿxcV¶Õ4èÚn¥lXÁwmf‰,E‘‘а£²’;1 ®›þöëþŠgŒ;þE®SÆ> Õ>x·áÓCãm[¶ÖµÙôÛË=PZ˜š!¤ê .`ÂKhŽwtcšºxÈÖ—$j6Ýûö¹pÆáœ’T÷k¢ÿ3´¢Š*p(¢Š(¢Š(¢Š(¢Š+ŸÕ?äª|ÿ±¶ý0kÐW?ªÉTø1ÿclÿú`Ö+ÑË¿ÞéúžvcþéSÓõ>˜¢Š+ôó󰢊(Àþ sûKXÿØ¡'þ–Ç_ xƒö“ñïŠ.¸mbïÆ‹húÌ‘h–3"Çc, )}böé5²Ä Ÿ´$®³1À¯¾ ãþVÇ'þ y=¿Óc¯ ¾ý¬.4ZøúÿÁ¶çÀºÂê+¤Ëk©ÔäkK{™ÇÚ!0„E,æÛ±Ü¡(’(iŸ´¿¼KçE è>Ôe³Ñõ=]äY&xõ5µ¸"Ú˜¦uO38ü›YHÉ#:oÚ¯Yº»±ñ%…½Ž¬iâëL}XÈ–ÖvêÐYÃ~ªsÄNÓ6ÆPÐ|¿3ãFý«|6º¶§oâ-6ûÂöVñZKåÍœ¦i ©¼sI°,r,~v‚Â"p µüûOøÇÚæ•¢hRj:†¥¨I$"Ú=6\Û¬bg›ŒGÛ˜qã êguûakñkÑéÖzW†u|i©v³Au,j[ẓí6¯3+‹xÚÙUÇ•!æLI…BýO„ÿiO]ý¼añMÖ÷TðýÃÛ+8Ù ræ“NNdvŽWù#oºÙmSö¤ÓtŸ^ø^}28õOÙøEK,» ¬ÐÅ#]lVS!^îBç½_»ý®þéšdWš…¬w_g{HgÒæ‰îáœJaž ê7DþL€7+Ž¥AàuÚÛÅvºV¯u¦i¾Ö!Ñ-5‹éõ+ctlõx,^Ðo²!òªâéÓs’ݰH?.ü𥴌gðÁŒÿ×µÍt·Ÿµ×ô[rbËTÒ­ôíoûÚw²w[ù~ÉË2 'Ë î?!.rß·ôËqð;C•3²MzÝ×#ÚäŽ(ÒþÿÉðýmôX®ö¸/€òCüÿ`[_ý+½¯Ék^¬ý>ð£è‚Š(¬M‚Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š(  ¿ äã5ÿûlô¶î¾‚¯Ÿ~ÿÉÆkÿö(ØÿémÝ}_¦eîtý?Só¼ÇýèQEz‡œQE⟴Ÿü…þØß/þ™5ZöºñOÚOþBÿ?ìo—ÿLš­qcÝjÿ…þG^ýâŸø—æR¢Š+òÃô ¢Š(¢Š(¢Š(¢Š(¢Š(¬oøRÃÅv‘Åv%‚æÝüÛKûGò®låÁdRTàG*ÊYX2±S³E4ÚwBi5f|OûAÚ;ÃüaðÓ[¼ñ9—M‘¦YlÖ ‚n·™aî€:ˆÛµõ¿ì¢|@mþ&®š¾#ÿ„ž· ¤kA'ö&•þ¨Èãê:çµt5Åø7Æš·Ã?|CI¼âMv×Y×!Ԭﴆ°1Ó"¼’ïWûN$ŠèÈŒŠžFÜ Y# ÈwnQŽÂZÅ|F×u/I®G¯ñÄâ]âÙ-»i²KmpäǼ¹Š²o ü#ïûÏü4 çý¿å/ÿ“¨ÿ†¼ÿ¢Wãü¥ÿòuy´Þ"/f¨­­ºûÿ®§ˆðÕ[¿+û™ò炼uûA\ü,×nukß!»ÐWW¹ƒKœêÖ1<Ïý°lÖ[8÷º§—òF’¬`±Û—â4îåO/â¯üýx'ÿ/øí_Å_ùúðOþ^ÿñÚïè¯OÚy/¸úÿd»¿¼à<¿Š¿óõàŸü½ÿã´yçëÁ?ø {ÿÇk¿¢iä¾àöK»ûÎËø«ÿ?^ ÿÀKßþ;G—ñWþ~¼ÿ€—¿üv»ú(öžKîd»¿¼à<¿Š¿óõàŸü½ÿã´yçëÁ?ø {ÿÇk¿¢iä¾àöK»ûÎËø«ÿ?^ ÿÀKßþ;G—ñWþ~¼ÿ€—¿üv»ú(öžKîd»¿¼à<¿Š¿óõàŸü½ÿ㵇©Åñ@üHøJëÁÂèø¢²”´»Ø$þÃÕ³æ.Jìó:`îÛØ}n¹ýSþJ§ÁûgÿÓ±^†_RøªjË~ÇŸ˜SQÂÍÝíÜôo³üjÿŸÿà ïÿ£ìÿ¿çÿÀ_ø{ÿǫԨ¯Ò€<·ìÿ¿çÿÀ_ø{ÿÇ«ç?ÛŠÚcOø{á7ð5휞%o[­ºx*Úé.Xy’&;FÖüË Û„ô¯·¨ ‹¾MñzO‰3üi‡B·ñ‡ü"ra4&-ˆ¾Ù<ÿùf%Îs嘜 éfŸ‡óÞ]É6›}=œñ^G‘6©rúuŸÚÑÒéí­‹ùp¼«,¡ŠùhøÛ¸ç¼ø±£x’ÇãF›âM7¿‰´¦ðôšs¾‘-˜h¦ûJH-ÅÄGAåsÓµQþßñWýÿßzGÿ,(™oÙãÀÓém§Þé·:­«É ’BöYšf‹Nm57±l·ú+2žIÝÖ®øSெ<«éº­ˆÔîu->Ú{;{­KSžíÖ)|ə𼠀ôË1;?Ûþ*ÿ¢Qã_ûïHÿå…Ûþ*ÿ¢Qã_ûïHÿå…g]üð­ô·’O§¼†óÄPøªpÓ6$Ô"#ŽB3÷BF£gCzæ£ý—¾Á¤É§Ãi«E C¢ÈºÕÑ’+HÈìÕŒ‡ý|Ùˆ‚¹mÝ@#¶þßñWýÿßzGÿ,(þßñWýÿßzGÿ,(Œ¸ý˜~ˤj:T6:•†•¨ÖÝq†, %²Íy§íñgð#Ãö–±-mõËhb‰I!mnB¨ÎOÍ{÷öÿŠ¿è”x×þûÒ?ùa^?ûQü;øñÃáí†áï†$¶½·Õ#¾wÔî´¨b1¬3!–õŽìȼc¦yâ€àßÅÏxá/ƒô½K[†ËQ³Ò­íîm§GY"‘PFx ‚®Çþ§€ÿèe´üŸÿ‰¯¬ 1“‹ùQäÇÿ<×ò¯™žEFrrszúC ê¬"¢ ´õ>Oÿ…éà?úm?'ÿâhÿ…éà?úm?'ÿâkë&?ùæ¿•LóÍ*Ÿì ?Îÿÿ·*ÿ"üO“ÿázxþ†[OÉÿøš?ázxþ†[OÉÿøšúÃÉþy¯åG“üó_Êì ?ÎÿþÜ«ü‹ñ>Oÿ…éà?úm?'ÿâhÿ…éà?úm?'ÿâkë&?ùæ¿•LóÍ*?°(ÿ;üûr¯ò/Äù?þ§€ÿèe´üŸÿ‰£þ§€ÿèe´üŸÿ‰¯¬<˜ÿçšþTy1ÿÏ5ü¨þÀ£üïðíʿȿäÿø^žÿ¡–Óòþ&ø^žÿ¡–Óòþ&¾°òcÿžkùQäÇÿ<×ò£ûó¿À?·*ÿ"üO“ÿázxþ†[OÉÿøš?ázxþ†[OÉÿøšúÃÉþy¯åG“üó_Êì ?ÎÿþÜ«ü‹ñ>Oÿ…éà?úm?'ÿâhÿ…éà?úm?'ÿâkë&?ùæ¿•LóÍ*?°(ÿ;üûr¯ò/Äù?þ§€ÿèe´üŸÿ‰£þ§€ÿèe´üŸÿ‰¯¬<˜ÿçšþTy1ÿÏ5ü¨þÀ£üïðíʿȿäÿø^žÿ¡–Óòþ&ø^žÿ¡–Óòþ&¾°òcÿžkùQäÇÿ<×ò£ûó¿À?·*ÿ"üO“ÿázxþ†[OÉÿøš?ázxþ†[OÉÿøšúÃÉþy¯åG“üó_Êì ?ÎÿþÜ«ü‹ñ>Oÿ…éà?úm?'ÿâhÿ…éà?úm?'ÿâkë&?ùæ¿•LóÍ*?°(ÿ;üûr¯ò/Äù?þ§€ÿèe´üŸÿ‰£þ§€ÿèe´üŸÿ‰¯¬<˜ÿçšþTy1ÿÏ5ü¨þÀ£üïðíʿȿ毀^+Ò¼eñûÄ·º-àÔ,áðµŒO6Å“í—M·$œqèkéŠj¢§ÝP¿AN¯Aa©F”]Ò<*õz’ªÕ› (¢ºLŠ( ¼'ö¬Õ­¬zúßÉþy¯åJ±¢œ„P}@­èdÔ¨UU6Úô0¯›T¯NT¥f:Š(¯¡< ¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¯†|_ûixÃá—ÇßšGˆ^ż¡è×òxd \Jú•¥•ÓÂîÌo3Ï÷p1ßîjùâ·ì#áß‹ž!½Õ5mre7>3µñiˆZ«.;(mf²'w1Ì ™ºü b€9_€ß¶Oˆ¡øQ¡¯ÄmQñgÅ _Äz¾‡i xJÂ!4ßa8ñ$‰¤|nfq÷—ó^…í½àýBÏÁ§Gð¿‹õÝ[Å:•…¾…e§D·öw–MÕ­ÔrÌ‚)v3¸§–å\þÅ×TZn©á/]xwÆzGˆõ½{MÖ_MŠê(ãÔäÝsk%»®¸TòmÈÆksáÏì…¦|;×ü®'‰/µM_÷šÖ©©^ÝB‚MjûSUmÀŒ‚€…QŒ;d€sŸí›¦ø‡Iøyâß b]+\Ó|Gx|=6“ ¹º—NƒsC$†á~ÎêêØ²‡Î2ƒ³á‡í¼5ï… /õøYñ÷Œl潇Þ²‡Íx"¥»Q-ª[ ʨÎáœôSÎ4¼ûéѼ ¦7Š/¯m¼.¾ L›t®—UR²däì1ƒÇ=ë'Ãÿ±&»àß øøsâΕãYÜèÚoˆ± –)t¹YHµšÙ‰V)´ `wœŒ¿oûvøZ¹ðE§‡<=âßê>.±–öÂÇIÓ£3EäÎ ¸Šq$©åIo/“·± r»¨ø{ö²ҚÏL½Ó^ü øI£xïÄMâxtpÖöwh–Ì–Àþî2ªNJެNI&€=.Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( øÿñÿÄ ügðÿÂ^ðü'¾"ñ‹_‹[VÖ#ÓV!i J仯àåXú}Þù¬†¿¶/‡õï xãTøeïꉤkQ_êpÝÛ$îªÈ"¸‰wnÆÐ¡³Æ3Ñ?hÿÙž/ÚâÏÂ;íoMÓuø{û`kv7³É²}¢ÕÜÄrVDÊWŒ×†Éû|HðçÃkOè7šDšw‚|sм-5µïö}Ö§gåÈ­Ô©nÁ/#Þ\²É»`€>«¾ý¥¾éžÑüMuãý XYΨ5òyW~N|áÏÌÉ‚ ŽAã¥ðoí)ð·â‰,|?á¯hzÞµ}jom¬l¯I%ˆ.â@ÂòW¨‘^ðçöMñf…âß„Þ!Õ!Óc—IñN½âzÞmZ]BE’öÌÃÉZÊ#¹ †ÜËž¦ŸÃ¯ØëÅþÑþ ØÞM£Ú?…u?Ýës36ÍJ;¸íÚ/ݯ˜Ê'‹vvà&8îÖÿµoÂ;ûÛX|@еß Ú\_jV¶·¨òE ™\s† ÐH‚Esžý¶þø«á&ñSñV›á]/Zž[h-µ[ÈÄñʇ-Iê4nàd q“Œã? ÿdŸ‰‘Oð³ÃÞ&³ð–‹áÿ†¥žµ£\Ë5Ƽ×6²[ hLIä&$g—,åÛ 1aÇhß±‡Æ- Àÿ 84ßí¿ hz….4Ý7ÄÏf·óÌ®—‰9µp7|âH¶( Ÿ”}¡ñ‡ãÂÏ‚>"ø“knž#Ó´½0êÅkrª—‘à2ì”`A =êßĉ࿄:§¡±´¹’ÏM‚YßêQØ@ä¨!æA²!Î7°ÅyŠÿg]bØ‚ïàÞ‹- ×†WH…®nå{d›hʉY ù`ä.W!BŒ åüeà/ŸþøÛá׉|9àmGÃo§é÷šn¹s;5Ð1ª íÔ*Ã$£$€_Öi¿…¾×aÐuïxGñIošeÆ¡›³D²Ä­Ï‘”†8#kzÿã/´»/Þ]ø¯I·µðõÜV¼Ò]([ ‰8å9ùšDï ù‡â×ìyãø/ãý†œš êþ9ŸÃm¤ÜÜÎ˵,!²I–gQºÞR ÎGLšÅø±û(ü\פøÓá¯Zx^ãÃuÍ#Ä «ê¬ÐÜ[›w¶i­ü…;à$>ìlìY° Y7LJë|ÖGÆ8¼]dxxÛ}­|ѨHµÛœù¤vã8æö_µb_|`Òü‡ÌÖ¯‹5/ ÛjŸiØUìt幸”Ç´îw™‡Ü-í^s«~Ìÿãý¯døùeaá9ç·¼þÊ‹ÃåÊIq¤ý˜ÄoÉ‹å¾$à.ÜyXŒÉ“=×ìáñ+Ã~ø/⦋ª|Dð^«¨ëú¶‘ªÜ´0jêK9¼E¹El:µÃf\HÆ®iߴ׆àñĽ+ÄóYxKMðf­c¤[Q¾UŠòK«XçO¼ª#9“`lã9À•¿iŸkú…«ø'Yм]a¨x–×ÃsʺÌ6‚ÚI[ 0fI@ÁX &FßZð™ÿe/‰^>ðÿ‹5§†ì|Kâßh~%»Ñ-®¥šÖÊÂĆ1÷²˜ã9B“Ðó±âßÙSÆZÇÅ_x‚ÉôxôÛÿ‰žñ„J÷¯ö;dŽä‘æ—RUs†ÎK úLøåðûZ¿°±°ñŽy}¨\iV¶°Ý+K-Ü xg;ãR | ‚qXþ.øï§ø3ã…þj6öö°kz5î­ý±uz°¤&ÞHPE±—æ-æ“ÃzñáÿfˆÞý®5/÷þøŠîêÇRÐm‹î°°1Â]C1çºsé†0lnÏOEø½û3Y|eý¡üâè:‰<£h:…͆¯Ô²ÂÑ:DÈTà#üÄŒf€/øCö¶ðn«à¿x³Ä×Öðÿ†üW}áu¿¼¾Y#¼{veŒ…2HEÜp:šéµ/ÚWán“àm3ÆW>;ÑG†uIZJ;¡$w2)!–0¹,Wkn|¸9Æ+æ'ö8ñ¿Ã‹{[Âzg…®gðÇÄgÅš7…f¸x,ntÛ¨|˜bˆ‚x—ÆU |ÜVv«ûüD>\:v—/‹ï|aªx¶{øšçF¹Ñ ÜQİi÷Ë +±©˜ÉVä.1¹€>Õl_†ö?~øÓ\´Ôî|oj׺~¥mwZ²R»vYå”Ñ@ä«ò àû|màÏÙ·âï…üoû> stream xœí\Ûn7}7àØçUH.÷$Ù.ú˜Ö@? 7 ¨[8/ùý’ÖrÈð Gܵ¼ÖC`À‰©åsæ>¤V5_nožÕ|¯vºéµq¿‡ÉÿþüGóëwÍ¿·7Ÿšç¦ëwc3ØÞªwS£÷‹žxöƒ£#¢üc|ºm~{º½iš?=Ùæî¿æÓ‰š´šût7tf²ðïç¿no·7ÆXG|ÜuÍãï͇Ýè¾yü³ù¨ôÍãß·7Z»”ÿð£28ÔÎCŽl²8Ô†lœ×#©á44ÅiãidtèÌ#<³Ÿ Ù C‡0m #G˜vwé¨óÈ}KI=„Ûò.gâ÷ÌO'éûŸˆoëÖìä~o°­Ax„ÇuOkÖçâ‹ï:¥§þ ˜wN¥ÛÁQ|Ü43Þû×ÿ\l#!}2÷†&xKWº/Å5~þÑ=áM¿kž¼Nÿÿ§ù¥rsúE®(q/¬Ò9[ÀÕû…®.i/%¸’9ÀåâŠGW—¸—\éœ-à•ò×—´—\Éœ àjÝBÝ•À%î¥W:g ¸&¼¯.i/%¸’9Àe;å2›ë€KÜK®tÎpujØõüç|“ɪ‘~Õ¬o”· \Ÿ—µ£œ's*°íÜP`¹î¬7å~(ÑÆ—-*­™{݇J‹†”5s!ç*½P™PÈ™8 9«¦0¤ãS¡¶£ÉÂ3a UQz„åt«¬nÅÒÔª[Âr,ÛR¦ÇuL›œeŸ±Ù3ÄrÎp»ˆÝ~è“2ÜœÔðþ4«'×SX®@©}¿…£Õ‡Â˜Ìe®o[*ƒõ>T¼dv‡|¡.OFîÂ,A’PVaõ@ÙÌÏ ±ºÖ¢Y} ’Õy 5Aâd§ƒ·Ó—ŸÙ*µ³ÉÑÛ¯û_b‘ ™N4MãtÏ£ÙÒÎt¶×Žöªïò‘àTLÔKjWP+Âék }¨ÊH×éÉðÍ1-!®ÉZóæ—‰ •žadÊ×ǵ—t‹À!ö 8huŠXûè»(k{È¡EûEgâl¯h”K =•áû JgáZ4K9e/‰2e"cá(&²œâžó3,~µ81E ç? u N Ph'Õ%FwÎl =‘Q)’ ¯ä‰0h Nׂa:€J“'}èM!fLLl˜”<ß_Ur‹UHeËŒq8¯ä+2›x,ˆ³tXŽñ˜wUeòœý` œƒ$7Ls·gŽ´`ÙÐ8AéØÁ¨Ñ¸ÜÖŠásr“¹ZwÍäxÈfÕd=˜KòyPÐδiƒN)©`…T§";¬3V{Ž!––ѳֆn"õ^í!Q½ó}œ§5äv¤ÀÅ›!ŒÐ3B¯‡,«¢ÿ"õzÈ®…^O[±YKŸH½ž€–ÔëñW@ä^ÕSì‡^ÖË éѲ˵Ÿ³´õ𙉽±£BAôع&Ö4A¾µ3d4„F&ÅBj_‰¤J/ºeƵb‚ò))öI§žY0ŒP¢ #5½L†0öÁXÊ7V_í!ì¨OŒ¬*¯À¶·àª£È5j²²BwþøíØK-§ô5yeMPÊ$DzV#âL~Z6’%ÅkMÚTÕ:úâêa­RÊÔù,…‹»ç3U«Fìa]^!k¦ª@K« …î—ëý$n´,µ×Vg¥8‚åš@ùˆ‡LËâ•ÍšiÅ’† ‡ 5öQ!تƒ:¡=ˆ å#¤šÖ¹Ô~Ô­³xÜháj{‚Æ¢–"åw!  GÈûª"wÊš ŠiìZÒÞAmyø¾QðRj%áséðv)Ç‹Êm-Ø×*»iFWI9ª½°ú‚L³¡=L\>ÚÛiÀYØèƒø‡ão*0»¦Úzÿ%Ä!#XT ¬:‹\Ýâ`üN³5Uäº{—ò×q8+¶€ð}ŠÀEì×¾a%Ä€vÊ`Œ/Ø00¼6cla?5WOÞ'cd.›­õ +ë·;P‡šœ …Î.*ã°Œ5¦Å‚™LB–âŒúWxš×å¨B‘?ò1ý|&0öpõ†b!éNãÙú¥{Ç5—ÁjÎø)¼™ÁÔð)„ªu(/ªÁÑTÊ×à.)–%—.Þ–%e4Þ$ÀßàÀd]£‹@£&‰÷.ºwUs³|ƒÃ´÷u‘âmᡸ¾¿v@ *V5hÕ¸ä¢J ;¡eñ3£|K²»bdõoVà‚kEH:˜Å!î®Ýª{$x[³æ²WH«²ÊëiV˜¨!Ó_„[%羸æ¿ÿÒúæÑ,„éëÛ±¹2Å]B·*"@[<`Aj”Nì啱9 7ß—¼á‚w3øÄ,Þ•U(™ð…«8/–Ñ%i ÔMÆZþ7|ýëü÷ܶŒ%‚´_.àúoA«Ö1ˬ9þYB#+‡³ÉŒ%Nîúë—3þ–9³Üý×µ÷K Oþ%H a-¼‡þ¶ªS}“NÞ34æ&ƒ¨ƒóþÁ_´ŒÍÒäŒÇpß«öo × Ï}÷{èX°ƒm¼™eØÉ'¡œRi«&:Gí3»Çx×4é™Ì,sï;iØ‚#œ÷ï_z5ùkvð_¶íË;´Œ?âN^|å‡ç·h_ÓŒ!¾FË-ߣÕ{Ù›ÖºgíØy’Úgh)I7<“tuqF—l‰äÿiø™Fendstream endobj 11 0 obj 2266 endobj 13 0 obj << /Type /XObject /Subtype /Image /Width 841 /Height 202 /BitsPerComponent 8 /Length 14 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB >> stream xœí_lÇçiIVI±OQ,{Åg}ÚÕ{e›{+Ûƈ²“=ÅrœX1%ÃÑz#ŸÉ³“œlÀ±Í…–@ ‡Ã$° î“s >h#0 Aô£_ø ×ÙŸø(VwÕôL÷pŠÝŸ/> fjzº›=Õ]Ÿ©êîùðç!ë333Ó®cæææ½i ©,uÝO‹Dþ÷Ao~’hä8ô¯;õ½Ç§^>Æ®_¹uëÖ ÞÕgø½¯=ÿôÀ7/@% z—Xäøö‡‘#¼çEí/M´—.€1¼wO]ÕîÖ¿^øæ¨„†«ÝÀ·?$ˆáQ;€\P;€ôAí¨€jµHÔÀµÚ¤jàÚ„@íÒµð@íB véƒÚx v!P;€ôAí¨€jµHÔÀµÚ¤jàÚ„@íÒµð@íB véƒÚx v!P;€ôAí¨€jµHÔÀµÚ¤jàÚ„@íÒµð@íB véƒÚx v!P;€ôAí¨€jµHÔÀµÚ¤jàÚ„@íÒµð@íB véƒÚx v!P;€ôAíV?æ¦^x½ÚÔ v!P;€ôi¸Úý¼Ž¡7²$¨@Ô }®v7ëÔ®$¨@Ô }P»úµ+ jµHÔ®~AíJ‚Ú„@íÒµ«_P»’ v!P;H¹©~Åâ ˜yýDÇíƒÚÕ/¨]IP;€¨¤À\Lk&EšxÔ®~AíJ‚Ú„@í VÕåR3AíâAí Ô j)€ÚØ> j¹ v!P;HÔ®ÀöihP;ȵÚA  v¶OCƒÚA.¨@ÔRµ+°}ÔrAíB v]©ÝøøccK •Ì¡øLdJYhîK‹‹öxyùÝ••‹¨]µ©Dí>ýôS},ä©zÑ—Ü\½zÕ Ë¯†Ô®$¨@ÔR +µy°ÕÚ]RídÅg"SÊBs×ÄÊggOÊdKK¿BízÈíÛ·?ÿüóÜ—Ê«X™ÌdbbBŸÊƒááay ‡ÖG^òJ>l…ë-¹>Ô®$¨@ÔR ¢v7n¼#Öä*“©Ýââ„Ûi¦ýfóó/eý*;Wí¤<®d¦vîÌå–kÉää¨ü2vÜI¡<õ‘åÊÒQ»xä(´}ûö×^{-+xýS;í‹y“§n¯Ýûï¿/ÓŸ9sF{íTí¤Pžž?^Ëß’«tµ+ jµƒ©ÝØØAyI JþZÿ˜ªþuËE«TØôUѪÈLLíÆÇŸòééã»ø™X,NWC;s´³ÎúydVúT–ko ç¢v9 éÖË ^ÿÔN£jŸ^žê€¬¸ŸLl/• jWÔ j)«v³³'Í£t¸saá¬9•ˆœ‰™ö›©Ñ­¬\Ôþ4µ©ÐLTºôíïrÕN;âÌ #½vªvö]áPßj×vÔ.+xU©ÝðúØ«ÕîÌ™3ò@&–Ç—.]*¹J7Q»Ò v!P;H\µÓÞ¶ìP©{®ÝôôqÆ:ʤD0 ÍD;ÓTÀ:^ûàžkç.Ý-·5Qës{U/åoHí:þÎìijsçÎ e¢‚W•Úé«Dô v‡×R‰×ÝDíJƒÚ„è‡Úݸqciiiyy¹caÿ‚Ú¥|@W.œ~åÿé@ëþ\µÓή®ÔN]KÑ `C3QµSñ+ÒkWFíæç_ŠŒù¢vSµÛ³gÏÌÌLR²µ+Aír©\íFFFV[Ø;NOOËc‘½ íµK“ë—ßúí/ôÜè#Ã÷Ýk-¸>Î:Ê’vv-,œÒAØ\µ[^~×aWV.NNŽêC3ñεó.ǨDí¬?Ð5ÎU»ŽÛ­i²*u·oßn'v®]…AíJ‚Ú„¨VíTØå±(ÜêùE7B…«j× ~qê;ÙžÉÌë'rÕNOlÓî/51½2"WíÌ ìò U¸ÐLLíÔ ã÷¸‹¨õÎiל”ØeÖ‹èöà¡v¹1µs¥NS^í®^½*þf—µÊ÷&'Nœðîg’^žJaÉÕð‚Ú•µQ­ÚÍÎή=³kÇöJzKöÞ·çéç_;öòôÌWvìèøYT«vããã###öTûèr SP;êXœÊ›±¸#û÷É·¶ksonß¶Uæüè})µ¨]<¨äÒ•Ú-^:Ö^zzfø¾U©Ý…½ui© =³ç¾ÎzSùeCwn%1.´ƒnqq1R8999½–•••ªV£]Xí¨cªmz®_~K¼NþêÓ+NËüÅñô)jµ«_P»’ v¨]3Ùxµk¯ÚÝÈÈH«Õ’¿ ¡ÂÙÙÙ‘õÑ‹,ª jWž ›žßû™x÷‰ÌM½hQ»8¨]ý‚Ú•µCíšÉ@Ô.‘ v婪é™zùØñ£â§à¢vqP»úµ+ j‡Ú5ÔŽ:V†òMèÜs£ˆÚuœµ+°}ÔrAíP»f‚ÚQÇÊP²éÑ‹&®\8]dâ¡;?¤u¬™ vñ v j‡Ú5ÔŽ:V†2MÏõËohÝoMt¤É7;rÏ9 ÚÕ/¨]IP;Ô®™ vÔ±2ôÜô\¹púÈþ}zÃ:¨Ô®~AíJ‚Ú¡v͵£Ž•¡·¦ç§¾óÜè#•Ü· Ô®~AíJ‚Ú¡v͵£Ž•¡Û¦ç‹Å™ãGüúÕ±óëjW¿ v%AíP»f‚ÚQÇÊÐUÓ#[ûè¡Ö‡ïýlàüZ‚ÚÕ/¨]IP;Ô®™ìÜõÕs'ŸŽŸÂ½kÇWÎ;7U»ìÚ¹£ãÿ¾sçêX„âMϵ¹7»ºhº¥áj÷ó:µ+ j‡Ú5“»·nýÁᇞyìáWž:41ú¨‹”hù£»ï9ûÝg&þîûÊ+ÇŸ}ftTþZÉ&-t÷½gÿæ`öÿu7ÂÖ»îúoÿóÿ˜’¥`Ó37õâÑC­/g~¨¯1 W»_ÅÜèâ. j‡Ú5“m[·þ×>õoÓ/þþ«.RòϯŸÐòø­?ýöâçÿ÷ÿÿö¿ÿ×?ðüÕ§Æf,ÿ‡ýßúÓÔKÙÿ×eûÖ­¨]„"j÷ÚóOŸúÞã\4Ño®vßþ ¨j×L¶lÙrù•ã¯sÕ.«°ÜÔ.äuR²e ½v1âMª^41óú‰á›jàÚ¡vÍdÛÖ­ÿï܉ˆ×™Ú%âc–«ÚE¼NÊ鵋iR¹hbƒAíûHëÂìO¸åKóß×ryP‰GÙ‚ªša ÔNÚ89?ϰrµÓzòijã^m”r}züìôP&òêè'½™x¼ôμ;ÃÜT^?s›Ô+N=Ôâ—&6ÔÀc j§[‘®å^pÕNË+T»jgˆÚEšìÍ«v‘qɯuçÇ3ï%âc–ýž¯~üæ ñó û¤v’‰K‹nmôÔNžJýTì-'ߘug’@çijgÕöT_ÊS;~ibP vT;Éø³õOíV>ù©Ì*¯ëJíäã8~ô@hX§ Úe‡¢\µ{÷£å\Órù[pžåÕ.¾¸‚…—ºkVµ‹ŸovâÁ?³+dîc–Ÿh}ãOS/ýÓsOÿð‘oÿÿÿþ“\¿íŸÚÙ7‹\µó¾w|rÌ-ô*ÛÅOVÜÎ@o†}ÅmREçø¥‰‚Úx Ví$6Ï\µ»ñ»ÊôÊìO¸½|Êü;Oê«ú’ër!µ“%Ú<³3ô–8@µÓ­‘+xÕîì Ö’ºCZ¦vR¢¸ãY‚[.­ªkJÒòºó´w¹­­´°òTè¨X:ÙÉ7fmq6T§ ’5‘õ”—d5dæ:½»z2™ÍMVÆ5ù÷‹¨ÝåWŽÇÏ7so~2p«°\/£µÓ-ö·[oŸþ®·ú¤vúW?»"j'µ"¢v‚V` j'{ô‘ýû¸hb€ vW»‘{Bj7þìCCëÓz`§¨—9˜¼×}ILÌCû}×äÿÂ^Í]b…ý~=¨]®àÅÕN´Êº2ÌÇÜÆT›B)ÑvÓšB'³&¯I3KÔɆÖFÁ¬µµ·éÁs M—e3´9›“EÛjë Øôªpò×[7yê4¸¯©Æzðút_;“sû€Bj§=âëVÓLã=µ³¯0ÙêíâžàW­ÚqÑD ¡vë”Ú©SéqXJ²j'ËÒ§¢[2M<öä°'i:”Ë<ãjgo‘‰åU{ª+`K”§ò–ùwžÔš|Pí<Á‹«š5gÒü|rÌë'¹øÉJ¶­ÔÇv*”ö‡¸/YOú•š•¾Ô•×Ù»¬{M—¥+ijgzfM¶Mïš§û^T·O/îkç©+xý¸¯ª}^ò ö|…ÎÊíCÖªºŒ¢Ú“KMí¸h"†P;€õ Pí̵ôz OíV>ùéìO¨t¹b¦¢uãw?4¯ËöÈ媨š+rî[telÅ>ÕWåÿ²ƒ¶=³më–ܦ§«ˆàíþ÷FÔÎS—ìe¦vÖÎÊ·?$rB{Ñbñ±0kèCjç®dv MüÓJÌ-uµ½³³r™ýãí»îº«ügQ×üÕÃÃwoÙÒ'µÓÏnÈù:àªÛ‘ë-U;í‘ó¾è÷‹ø=R*Q»ÿòŸqÑD ¡vë¬ÚYGÙØ“áË(ä©8žuÊ©Úyc¯îœ‡j§ƒ­º\Ã|OÖÄtQ'“åžÝW†_Þvdÿ>ù¦ß‘­½¹mî®_šzùØ×÷ìî“Ú e³ôâÄ"jgеjç–xWMƒSµû˽»ÿæ^åð7îkÝ¿[þZ‰°÷ËÛ<øÍÖƒ~è¡ÇÿüÛ.R²yË÷~ùKøÚ×îÙ‘[Ƕ߽õ•§õi@V›¹eÕÎ>woØÝ«®¹‹ØàsíøqØD@í<«vmçô6r5[“cÕ;Ô™ÚåžGW;·ƒÎõFF»òôVxn3çŒW’2²*uÚ”ÄdµÛÊÜfâÒ¢4—RW;k|Ý>ëîÈÈêµö’ ¼±à5½©ÛÊk‡; kë&K/2(Ì}íÞùÁQ¯Žíؾí™ÇþÃ?žêÓeö‰Û•­µ³O6tþ@– V»ksohÝωvµð¸Ú­|òSµ©Ð™rbV®›y½vî*yrè©ÝØ“ÃYµ³nCw>óï<)Âé:ž]»1µs¥N‰«;à%Âc§6uT;Ê”§vÝ„šž –I¹]Öª6å]!;´zMkŸÔNGèìzXíQ´uñ³óê½¼ˆÚ5ö¾vî¹v;¶ßýÊS‡Þýû±¾Þ×ÎýÄåê¨vV“í{JµÊ»¯Ý¯Bµksyl vW;×Ó\sEN‰ŸkgŠR;[Š{Kó½å^Xø`TÞâž¼gõUÝ¥[µËJÒñæ'v“kéܶ/¤v¦X®GÙ”*~–ÜÖÖzc:Þ~¤·Y¤Zÿ»n¹÷R\í~_;•º‰ÑGÿð§6à¾v^šÖ¨øÍOB—cÇÕ.›Ž—Õô¦vmnj—¨€G jgŠ•U;½¨A¼Ëý ï-2¥v²u¼BÖ&˜üñ_èEµöÔ^æ¦7ijÁâïµ»~ù­\©SŠÜ²øÝ–O¾1+-Zö®Åî€iîmå]"uÙû‡Èå%™md:ÚqL6÷]:%ê-Â@šxY‡ìü¥D{ ž3Ï}í.Ÿù[‘ºÿãL®ßê7dC? «å6ô²6¤[^“ÊOQ ÔÀ#µwòÄLŒÎdOµ-;¢êÞ¤N/®vú3µÞ×y·›Î5LË@ε‹ÓómRúq÷µ‹ŸgXùe5#Û¤^¹púÈþ}Ü eãAí<6^íìÇ ¼r½Õ‰°òÉOmJñ.q6‘+q?)÷&h¯ý…üÍJ£-È^ß" §*˜ý¤D'¯êr+ù—¨vöû¹ô0·ÊÕŽûÚÅÏ3¬ü¾v5#·I½~ù-.¬ØxP;W»JXþèQ/14÷,¸ÜÛ›$EsÔîâ'+v¼,=Ï­Â5Üæ\!ê¿RµKÄÇ*,Wµ‹ŸgH¯]œP“úùïsdÿ¾+NüØÞP;MªvmçÄ9ý5 µŸ«Hæ¨]úܽ^ír=GÔîã™÷ñ± ËEí>~ó…øy†•ŸkW3"Mêí?Î>7úVl¨€ÇæU;Y™ì‰sþ(jWo¸¯]üzè~è™íÛ¶V£v_ÿÚ·öÜè1è™mÛ¶¡vÔ±ž©¼éÑ_¬øõ«cW.œZÈž¾„ÚÅAíêÔ®$ÅÕN¦”i  UÝÌê³y{àÿËf§ÈgÑdµ£ŽÅñÆO«â'ß=²å®»†Ö¢KéYíÆÇŸ;XR®dÅg2?ÿR«µ[˜œ•§ËËﮬ\Díú—jÕîÓO?]XŸlÉÕ«W­°ÂE{AíJR\íšF“Õ6žÏÿ›áûîròÜè#íj72ò XVIµSUëj‰ÓÓÇ'fgOÊ㥥_¡v%óÅ_„DÕªÝÄÄ„[ý†‡‡½ÉáÇ­px5£££®ƒµ+ jµƒ ãögìßç5£Û·mß+¨v7n¼#6媔©ˆ–àN¼¼üîüüKYïÊÎÄU;)¨š¼W—¨ÓLNŽÊšËR´ãN å,Wæ/S¢vÅ#G!ùO:•=õCíÞÿ}¯×NJ¤üÌ™3ÚkçNvþüyy,+\›¨]iP;€¨l¿ýå†ò¢—TtT ±±ƒ2™h•ü¿rÕNÿºå6lª¯ŠnEfbj7>þ„”OOtÙÙj‹ÈÙcy‹>•ùëÜä±Ì µ+U;'xýP»ìH«”H¹¼šLÜO;÷*\›¨]iP;€¨l0rþõ«cÇصãKÚ”ï¹wGGµ›=)Óèém: º°pÖ\KDÎÄLûÓÔèVV.ÊSy¬–š‰Ê˜¾=îc‘^;U;}IžêŠé»CíÚëÕμ~¨ÝðZLØrÕîÌ™3òàðáÃòøÒ¥K®ÆMÔ®4¨@ÔÈgÿòöoù£Sß{¼£Úio[v¨Ô=×nzú¸NchR"X§\h&ÚɦbÖñšˆÜ%êh¬Û¨)‹¨ÝÑC­8w¦©uŽ9’Û£+‚×µSg“\¾|YËsÕîðZ*÷º›¨]iP;€¨¤@GµÓN°®ÔN;î½64U;¿Ž£¨Õn~þ¥øØ®«v¯V¾3M­såÊ•¬× ÏÍÍ |@¶OAíJ‚Ú„@í :ªJ”v‚-,œ¹ÒAØ\ÑZ^~×aWV.NNŽêC3ñεó.ÇèJí¬ßÏî¨vŶOã ȪÔéK¨ä‚Ú„@í :ªø’]û &¦WF„DKÍÊ.¯P… ÍÄÔN0~;w‰Ú5§÷B±«*´·ÐíÁCí:ÆÔnÏž=333·oß¶—ªU»óçÏ>|øêÕ«^¹”H¹]š¬Â v%AíB vÕNÅL JÏ ³+^ggOÚ çââ„<¶“åÄ»Dð·.w&zJž;ÃÈwîõ½27½ËŠêÜÂÂY))r–jg‘£PVê4Õª]:AíJ‚Ú„@í Ѝ]âxçÚµ“Ü^MîK¨ä‚Ú„@í RS;»=K| Vï²Òïž¡vñ v jµƒHMí6Ô.ÔrAíB v¨]íÓРv jµƒ@í lŸ†µƒ\P;€¨¤jW`û44¨ä‚Ú„@í P»Û§¡Aí Ô j) ÍÜÑ¿n5Ô.ÔrAíB v×/¿ÕñwTëŠüï·jW¿ v%AíB véƒÚÕ/¨]IP;€¨@ú võ jWÔ j>¨]ý‚Ú•µÚ¤jW¿ v%AíB véÓpµ{üÑCõµ+ jµHŸ†«ÝÀ¯bԕѵڤOÃÕnàÛµÚ¤jàÚ„@íÒµð@íB véƒÚx v!P;€ôAí¨€jµHÔÀµÚ¤jàÚ„@íÒµð@íB véƒÚx v!P;€ôAí¨€jµHÔÀµÚ¤jàÚ„@íÒµð@íB véƒÚx v!P;€ôAí¨€jµHÔÀµÚ¤jàÚ„@íÒµð@íB véƒÚx v!P;€ôAí¨€jµHÔÀµÚ¤j౦vOøö¾£îcûÝÛêªvG|kà› ®vßþ r„¿óþÖ­EBÈú\»vmÐGî¾ä³Ï>ô¦%¤²\¿~}лÔÀ"ÿû 7?I4rœtõ$„B!„B!„B!„B!„B!„B!„B!„B!„B!„B!„B!„B!„B!„B!„²ù²´·pee%·¼Ì"ÊÏÇævãÆªæfóÌ®aµ«M!„²iµZC«™œœ´Â±±1-”W+Y„;ŸÙÙÙéééÞf%®%k522R~­ÜèFpENTÉ¿_æÿ%„Bé*¦v®/Ya%n3¶{,³íYunܸ!ë9>>^~­ÜôOíJþ¿¤fYÊdÐkTYúÑžìJóóóíÒ=í²ª=l|º÷kwÄjsí¤¶æn¡–ÈKV¢5ß- ͪ«ÝY¦×}s¤HZN´Ä¬&×m:Vuyuyy9ôªˆY®êh} ½QÊ;î_¡·Ç×GS\í"ë©/y;ôÿ’F+•©cöÅgÃÒ[O²%r÷Ä>u§{‘ýNV@×¼ä×1Ý1»mµéÞ¯}ä#ÈÝIÝQ­‰,±«ú™­ŠR£týÝ#ŒÖay)2+ÝwgÑ9ë Ê.Ž *z¸—Odqq±½ö±jw“[O¤¦¹½ynÝЙH‰ ¡Û±fÞèŽóº&©‡YkæLœä±;[Y1™Øm ã˵*§;¦Î-wg)rÄŽ¬§û’î:«Üÿ—46¦v#N6þ`ØsOrv7±ô©;Ý‹ìѶ%-KVUV¸Ûº÷kmþäµ=ÔZ½¸U›È¾Öñ]ÚŽ·óN¬Ò/GR¯ùÅÕNæcG0y—Š„¤ß‡Ò1jzÌÔC›~«¢FæHöñYU7ƒr?\«`&6ò’M©m™Õ4­ºh«QúT÷2ù«Ýbî‘åÊ_«còªížµYŸÜ="²žú%KWC_Êþ¿¤ÉÉÕkJÜÂŽÃ…^×q¤Ë:;ŸÜždí÷o÷ÖÜé6/Ý¡B+±¬Þ†_³¡{¿öɵu$¯0>€å4Ežrç“»¯u¬Æ^-²ÖÇ\N›E¯ºfk£»â Ín®ÜZüðRdT®Úù4!ê]ª.úqè÷ebc¶æ‰Ÿ¾º°° O³̦ô^R u{~ÕÎŒûD–«;£}wúi˜Lü¼Ø¢ãëiŠZåÜEpÄ&–\ ÐoUn¡û];ÛûíöQË{ík‹>ugkµºå 'åö$[‡¼~ }£ìAÅ»Óu…½]©µÖ®_âìU}j+¯ßòB+ãm^]v×Û¿lÓ»}øñ…Æ·Ýû5K®Ú¹_ØÛ™Øï¶¸;”4šîw|·ò„ÂÜBï4õìaÁöÀèzZÍÔ7êÌu›§{”wYKjÁ]¨{x±˜ ¸¯zÐá%;*g6¢Ȧ+r˜ÊÎ'wã4-žÑiC£Ç;då6I-绀wD*®vYóqëžõ†Ù«Yµ -7;çŽj'ÿ»7ë5¸ñõôŽÌ²ßYåDíˆÅö#­crà21s½bh}ç°+6Ö”XµûÔª«¢õU)·ã¡6Ùždë·ù„bâj7T¬;=Ûtº³µ¯`r öVÆ=Ñ.we²jgí mg¯§½ãBs·Ýû5ŽÕOkt±Ã¸}Än½R)rϸ°O_¿d+Cd Ì;É!rXpãvÊé?"oWûr›T]Š%tle´å²uÍíì¬Üî2WDez™•;Yäð’•sW¯½fÔººšOéZP‡˜ÙæZ;«­ˆÚÙy/U©{äϾÚWµ‹4ñõl¯~yqÏʰ½µ#–Ž—QxµneeÅ­áö$òÔº¡ÜZ§ Ck_ÄrGm¬CÞu/ݪ]nwz\íÚN?€þµµ~ÛrOó(¢v¶ o(Êû7C Íݹ¢N@÷þfOÇË(ì\t}ª‚äu”Ùçë>uk`Á0­!ñÂÛÓµFÉüõt¸ÖZNè8 îäî¤2±]HkU7»Dù_컉m.︔{xÉŽÊYÏ’÷¿t;ÒvìH·ªF¿°Øæ²ºáfÝzØ›Úyæíõ_+ʨÎÙv@;õ®7µ‹¬§^'n5YöôH#Kš«TR¬+ÀýömGÔéµx_ ÜZyš­Ï¡ÝÊ]%w‰¹5¶+µ í˜Õ®íôZ¸'®k÷cä]¹jg›7÷ËZÇ…ænº÷kw´Îpw´Ñí@³¹•×yZd Ìêgü°àÅötw´z›µGY§{>av'Í~gÉFYwÌTÏ|‹^r»m#¸š×Ã|ˆUû‘[÷¬Kvv5Þñ¿[µÓý¢½þbù(½q¥2jgsvÏ|èYí"ëiÛM6‹¼ËÔÎýfdÿ/ir¼Je_¦¼–suž&{´? ©]¶CÛBr“«7¯vÞ—©ø»rÕÎíº,¨v‘‹û:.”îýÍïó²¡R¯ ÚÛIÕy*Q»ì.?,xqGß¼ÿÂ+lå] •?»“z'é¹›KÞb§½Ö©8´ö (rxÉ­óº ;EÖnbÙí|HÖí=O¶)íЗ=W;»ÓŽÛÀÙnhý‰¦eÔ®½þæ'ÖcÜ›ÚÅ×3û’5ÖÙÿ—46ÙJ•{Y·;Á’s9X·jgzæÝñ w÷tOõïí2Š‚;¦î6¥Ý<Áfk ™×¤¶Ö_ÚÐÊô.ºý'í.Õ.´ÐŽ[€îýš%k5ær::©ÕÌ>býXõqqµ+2fu#~Xð⎾ÙþâzgCY…t¯„Î\媟ÞèX;3Ö9¼äÎÓ®èôŽ!Ý·谂>ö.Øw_² ´×Î;ø{Sz÷»ö^Õ³ÇmФ–™^»’Z›ï$UB6>¹£0v5«™O¨s¸¸Úµ×ßWÁk²=ÉæWC™3‹Ü¸3t§owÙî.ÎëNwʶ#<Þ‰voah}ïAqµ -4´èÞ¯q²j×^ë©Zûrá}Ž6qWj׎„¹ɶ£‡…l<¹ÒXߣ[hß¼˜^»ºÖvÕÈa!ûk#kwõqOHɬ1÷ÞÅçCj÷{Š=àLK2ØDú‡;öl{ÓÄŸ¶Ww½ñ]‘Î祵Ÿ€ŒÜ^x){µHwº»:½7÷z&¶~OÏ=ýOÇdVÙ¡í±wêÎÜ~ -4´ŠÒ½¿IúùTý”­<´su»“†ÂÚ«†cûˆ¦` ɽ'vnahÜ}GVC^íx×q]·Ü£M;px‰üšmdìj>¤®Ñþ†c&!„B!„B!„B!„B!„B!„R0ÿˆ;¦À endstream endobj 14 0 obj 10387 endobj 12 0 obj << /Type /XObject /Subtype /Image /Width 685 /Height 202 /BitsPerComponent 8 /Length 15 0 R /Filter /FlateDecode /ColorSpace /DeviceRGB >> stream xœí]ŒÕ•€;Øü Ž16Ä!žõ:;6°xp²&–Æ< Ø0±e¼³xHi,[rÐŒWÎHÑ<¬ÖZÍÊ«•P„&/Õâ•°²òC""Kó`y߆G^æ×Þã>;GwêÖ­®éªî®¾ó}juß®ºU]Ý]ç»·nU}øá‡ãA,óçÏ×cŒ‹/v{ÓQ¡}ÂÞoí>üÔàøÑ`¬ï»óÆÝNÚåÇÖû·¼þ¾®o^¨²7}‚hÀìäÉúÕI0¶nÙ«ÜøÝ/»¾y  ÈÞ H €èAB =h@4¢ @ô !Ј4 у„@ zЀhD €èAB =h@4¢ @ô !Ј4 у„@ zЀhD €èAB =h@4¢ @ô !Ј4 у„@ zЀhD €èAB =h@4¢ @ô !Ј4 у„@ zЀhD €èAB =h@4¢ @ô !Ј4 у„@ zЀhD €èAB =h@4¢ @ô !Ј4 у„@ zЀhD €èAB =h@4¢ @8ÿÆÈøÑ«“‹ã‡ØÎíÞ†h@ˆvhÀÕF$ ççç¥paa¡Üe… è-jµÚøøÕ‰|öNnç×¢‹—^zéþͳ?8¢\ DßïÄÔÔ”–ïÙ³Gö?Z8::*%gÏž•ç¾-”h@oq3Ö'W'Ö€ëÑÅþð4 eÊÕI÷’Ü¡ÏëKvvVž‹ÈŽh~~^ å  бíÜí¤]~ E(W†‡‡µ@M@³üÄÄ„ì|$ïKö¯7z ê 7@À@:¶»´Ë4 åj€$zëÿ—'ÓÓÓZ.zPk„”‹ÔÑXбíÜí¤]~”«¾÷J×G<ö:ï¼:üŧÅ®|Å9ÿÆHÓíܦ!‚’åíŠ!LLL¨LMMUA.ŽêúwTeòü~JLO]OÇh@νŸ››+^Ï¥K—Nž¨責w"UÊ=ÅãÐÝ5/TÚ§Òä·ç’î¥á/OtTÀ‘#Gä¥êÁõÆ h@Ü Õ @ŠPº\¹ø¦Ÿž´À×M¸+ÕíPìP~HÔ²{òh€š€Lcv¡I_5ÀŽbtW6mèS +˜sU´Q¯!)^ºŠ h{_½€N#…ª ú–<¡7 zЀꀠE(]¦Ïýý-_úR"={öÛõ´ƒnþ•»6´›j€•kêU’à5ô èsÿ0„<‘¤/å:.Q‡èÒíB¨S¢3TôLq ˜››;¹IFû·?¸u“ÛMý›ŸÿÀ¾ ??jkÝFZ;U4ÿj»Ûm¿§Vb™]G÷eŸ÷§÷­«Á×±ë‹Ð¥¨Wø§€hŸ¸`Û¹xÚ­Z U ¨hP„‚éé³%9Hò¾ OtˆÚ[‡÷k†Zßw»»CNÕ€zc„€ähIÄÖ`—kVK¡ÇÓ—2¥L¯3*±î«0{„€T(5Ø9ƒ:±»&Z.¹Þ_UXW5µÛ¡à € «4 (BËéI2¾4ÿ·nÞ ×>8í¾¥£úïK|;! X ”®ŸÏž]Ñ @ЀUźõwx~_öh¢õ}wž8qb<ºX¿®¯égG²i!=™¤6E5CÜ; ~zên.–¦º{q£5 4 @V·®YóìC>±{û±ïì:9ôˆ‹”hù#ï>þä'¿÷ŒrìàÓO É£•ôhù#7ÿ»þçu7ÍŠÒSShšžºÞ*ïÑ€‘‘ù?44dãúz"ЀªT‡µkÖüÃsßùóÙ£Ÿ{ÕEJ~ýƈ–ÿä¯ûÿò› Ÿýç¿ þ·ýõûïË£¾4z±ü';¾þ—ñ—ýÏë‚d“3=IÒëðþ– ¨ˆèy|v`­¤ûu ЀªT‡[n¹åÒ±ƒàj@rw‰å¦!4 ›<éé÷^(~{q4  àžÅïÞ@¯  '^_ºAp¢Ç@žK‰^.øúò›ŸjÄõÆMô¼B­J«µYr. ¨>h@uX»fÍÉpÓ€ŠäîËU2à×K©tý;ª2Ùéé³uø©ÁýƒÛC7³CzQô€’Ž­7@;Ž9róÿ29©×‘»†°¼´Û©<¸—²ëÚ½‡$­ëÕ„tF½až¡=A4àSWÏüv¾Äý¡T(t}·¼Rn]®©9Q4à“óïU$w—X.ðÉ›/f8@;zR'ná…Ë‹úÒ%uzÃÿ%û5´é÷™‘ž.Žzpë&y,1=u=£zy@}Ô´«× ´;É4Z¢7Ò[ÏÌÌH‰]#HæÕF}ªhÆwg¹Ôˆ< ê- 8{üáþû× ?{Ì-¿:õŒ–Ë“Rr®-¨¬ #ÐÙÊgÛÀž÷‡ï¿y±Óž3WBíâ‘m_9ýöÛÉÝ%–ôõôd‹(]ôwòØÓ£‰_£”ë˃ÇÏÖ¼w‡~8–¨$1ÁËg¦Ü S£ôßgjzºöÁéýƒÛ?5èö/˜žÆÇ¬Nª£š¸õ€Ò×F½Æ»ÝFPS¼†<×|m™Z CàÚ…›Üó,¨ç4@ÿ˜’ >zÑÕ-/QÊ­ ÈØ½÷®dôß{׺OοW‘Ü]bù½wßõÉ›/f‹h“ÜìMœu —òûTl–ç6áVâO ušØF¹=`“iðá{¯<ºãß_x­ôôtqüP¹×Õï!d«VJ´=®msÍד““×î副Ÿ››“†¿æwíÐ4­· ÒqR8×;R`“¹³ˆoHÒϳ ՉѧlŸ,^~IªªŽ¬Häë8¸w t òœàw‡ºðîG ©¹[Ëå1gÅ5 {q9 'Wx¼C5 ûøøÈ¶¯Ø™]ÏÝ%–ôõ/ã/ÿó÷÷=÷ð7þç”êBíÓ³ÐT H8êÎLJÝÂÄíÂåE·“!Qa[Ih€$¬ÔSþ¡‡È©nˣäwÍàv¿`KåÚ–×Û š$ ¸z5 ­D{ò,¨G5@ÂêLÕ€ùß>'Ó+?{Ìí=P¦Î<®ïê[nÞi€,Ñêô+L,±‹ [#UšjÀñ÷§m¯ëv«šH‰Nàö© n¹ìݬ*{i·N›ËÝ3ËÞX^ MÓ±N&­<[œuë‚dMd=å-Y ©\§wWO&³ÚdeÜ,#?\:v0ûø¸{Â`×sw‰å:DP4@·ØwwöŸþñ“‰íÐ& ÐGýîòh€ü*24@ЉNÐ Ðkþˆt=‹AA24`ffÆí¥—,l/uÜ Þ5Ø-±»Ùìn Z"sÍ4BçÁHLàV’gA=ª{6…4`ôékË£ÿþu’¦-_˼î[’µÝR ¸³è\c?ü¦½›ºÄûZЀTÈÖIÁÖD²Üíîxu·)%ºµÝ¦$Y˰‰Ý¯äk3 ¬¶Ôk{f›=OÏ€›ÍuYV¡ukÿ°,ÚV[WÀ¦×t/‰u“ç¡îƒë˜hXÏ@û4@¿#û‚B =N¢vöK3åKh€é®ÿóvq$”«×>8ýèŽ:Ùq í£ÆU;«šõ?+%¾Ȳô¥¤f™À&~|k"¡ëR.ufk€Í"Ë»öRWÀ–(/e–©3k…&*]Ô€„ dk€fIÛõÉ®RÔ‰ö×…Ë‹þ~UŸÛ¡[mg¹oY€æbÍÂúÖŠÀæ²f».KWÒ4ÀR¹íÞmz×RÜyMfܾ‚T¸n@B\hÇ™ªö}É7ØòA­Êí›ÒŸJhˆ`¹ƒaLt0@â¾Ð»ÔЀŽk€åe+˜Ð€ÅË/Ië^´›Ä5)Ïÿö9s¿¥Ÿª’Öݤï΢+c+6ýþ¾+ŸWð´ÆŸŽ®]sKênjE!2°ñË24 ‘]ü!‚¦¶O–·•1À¼¿?Ö’BHÜ•ô;{ÅU¬Ä8øWßp‘’Þ-ßrÇí÷ßsÏÝ}©¿±¾;nûé“»Û§“K9–Ó] °ï=qè'ñsM]D‡Ç{öÛ]Ï\P"h@W4 îŽ·nËìRbýüzÓ€ÔãþÙà6ü]ÇÐi´‹@/5àîƒ Rä € €¶>² hsØò 4¾d×*…Ù`;j·meÍ(ÿ €Ž3´·ÄdÆœã[Ó7#hCÒ=(`ë&KÏs`‚ëœyvoâ7öå¾ÛŸÙ;ðÇÓ£í Ïm„†Ø7:†åÓa Ð3Úºž¼ ,º®C(·ÎžÐ€ÅË/iæ Ù—,ìæñDo€»J ‘HhÀðã[} °î·ž©3‹œ¸>`㻢®(ÙàvºJr´C±“Í4ÀºÓå¥ T+°[)·áýšyg ÔcûÛ¤ÚKlçhO…­›H‚Kt&ghÀª½n€;6`cßí?}r÷û¯=ÛÖë¸ß¸|AM5À~Éæ´y4 –vÝ»ò@‰ ÿÄcÏ~û7?ÿA×ó”B×5 û ­EOh€›Óݬí&}%{l€éDHl)îi€æ ½8ýþÌâ6°Ce9¸R ð@iz Xg{Ew?ÒKÇnε)U,R÷ÌÖÊkzÊ^k¬£¸¶üztnyâ­l Xå× P8óô·þxz´× H´Óõ•}Â`è´”l ð£éÑÖ4@øþÐÃÿñËw=…AqJ×€ÉÉI»=±žÖ§÷)Ö‹ÚÉþGŽ‘—v/ãrסW4ÀÒ±¯:`Or´{íÁÄ,2¥6Þ›ž)`Œýð›zr½t§—Úô‚vÀ¢ó½ºôvª(y.$­xiÉÞÏ¿‚ÛiŸz‰!™KÀ?çNf”·¤ÚŒ´O¾éqÔ¹´ïW¯-ŸX„å I²~ýR¢=9ǃqÝ€KG¾+ð¿ÿôJª •®9ï)ºM€–7½A@èžvX¡,L¾øtâàÞv\<:L¹ W’ä.2`÷ Ðkþè̓dqâz¡`½Âp­qÉ ×ázOi€äÙD—ìob )ÞïÕw/ 2­zÛ‚D3Ámþ»6bÑ•±Ù¬¶; ¶ã˜/× ÈQºDFÍ¹Š ˜À£;¸rñÍ6¥§óoŒtý¢¾Ý¢Ä;4uX®7L@¯úë^*P¯ h7p{VOo€]Ä/Q®§ ‹—_²)%GK~—D,ž å‰ êKW”G_0lAîô:‹¤{ÕÿI‰,NÞÕå–{SÅÕ£vÝ¿TZ¨­t àºÙã"ЀljË/&üùìù½»úÛtt Æ­…zPôz¿Òê?uêTÆýƒV§”ÂÂG/Jš–lîµO=%°R¬ ¸pyÑ®?àÓrm%®áÚå7N͉ªÉÝ%–«d‹@²ñÓÓŸN|èáw^nGzêú Wù†[»PêýƒLFFF¤P/ l“•k@Ý9ЯW´#v™Á ²z4 úܺ\Rs¢hÀ'çß«Hî.±\4à“7_ÌdJOoÞø©AQ4`•kÀõ¥Ù ‚¯/×Íþîdvï¡#n •ñô—xá_4 n¸n@ö¸4 ›ŒôtqüÐþÁí%^` èQ ¨BÄ­&vCÀJÝS ¨8\7 {\Mvz’Ýé@ÿ}e>€ -ÇjЀÞ ¨¢?ztû±ïìzb÷ÍÇ“C¸hùö»×ò‰“ß{Æ8vðé'††äÑ-ì¹òíw¯?þw;ýÏën4 ›¦éIþéû·~j°x·€´h@Õ@ªÃú»7œx~_öÉJëûî|yiܼêØ–Kj¶r™QfUâj€¾+<§¸µ™HÈRÜU²rYœNltL2¶óŠ2ø©S§ä¹<Ú󕽫4 : h@Ф'ÙøoÞ/2°wWÿøÑâ’ŒLü$åkÀððÎFCò¸æSÉ¡šÙ5ŸJv^\¼àæVÍþR(oÉsÍø©•˜hNÈèÌw5@ÓºŽGó ±YöÈ]Êüü]Š­Rç5 u;çÌ­3332ñÈȈæqyœ››»Þ¸IvØƒÝ X§>w/`3Jù•+WüªôÆn У Õ @ŠP<=}ñé„ìuEönß´¡oË=wÕ¼Ð$åk@(oºc¬§]“µ¤`Éׂ͛Z‰Nüÿ—ai6BÀÕ€DmîKÉû"j2½Ì%³¸Ž‘}P Ü›:°;c;çO¯š¦e»mйsçäù¥K—4¿ËKí4w¥P^Ö÷Ò‹ Û»ò(ïj‚¼% 5ûUÙu†åùÉ“'Õ:Ѐ^ ¨hP„Ò[©ÿý/?õÓ“èÁùÆ…‹k€¾¥è°ül о‚ü½! Ðã²P™L{ *¨¶ókÀõÆAIÊ’å5×ëh½W ºAâè¿6äõÝëÎØ+±ð«’U9Dd¡ùW ¨h@u@Ѐ"”®‰ƒëûnçÕa½(±¯š7µ§}llHžë@¾T УóÚE¿¸xA¦×®ûÔJcBÙÙ×íð×ÚfgOªH$*Qµit‚Ć®P°íœ3·JË]2²5ɵ©îÞ@Ï Hh€v è”! ˜œœ”ýªtz™Rf×^4 GAª€¡}  V÷¢C¾Hµñ~nï}ªÔ—Ük‰5ÃS+q5@&«ežèj€(„Õ¦OÔLtÑ"ê ªõ¥ñ„:q‡ÏðÀ¶sÎÜªÝø’‘%/ko€<‘ ®}ûÚ¥ïvûë\z8À’¸½k# tFyâW¥¦!ëˆD4 wAª€¡à @H4íJ^r«{õÉÈöRž¸\rºddÁùïW²¸xÁ­D‡„4@'¶ Þ•—:A‡,Úšè"t›^ËeŤ$´”vh€/+Õ€ëf»ÝHï$¡­u+‘d-ÏÝ”­Çô¹û®Öf©UéÀB‰•€T 4 : h@JOO’•B—NÕ€UBéÛY6rèþ+ÐQ¶lè߸w×}Ð2·­]SŽÜ{Ï×wìܱk7´ÌÚµkÑ€l èúwTeJOOÙßEws±{v¿Qüâ]Ñ€ìíÜí¤]~”«2¥LE¸rñÍR~®×>8ÝõÏÒëäù.V³üéÒÛ]ÿŽªŒlŸN¦§®·Ê»P0ÊÕ€ÕÆjÖ¨h@Ƕs·“vù €*€tl;w;i—h@Шh@Ƕs·“vù €*€tl;w;i—h@Ш’žö~«uÒa |dWdìØñ4 UШ«ù¬Nž‘ëv¾öÁé쎄@ zЀhD €èAB =h@4¢ @ô !Ј4 у„@ zЀhD €èAB =h@4¢ @ô !Ј4 у„@ zЀhD €èAB =h@4¢ @ô !Ј4 у„@ zЀhD €èAB =h@4¢ @ô !Ј4 у„@ zЀhD €èAB =h@4¢ @ô !Ј4 у„@ zЀhD €èAB =h@4¢ @ô !Ј4 у„@ zЀhD €èAB =KðØÀ7ØûÈ0n»um¬ðèÀ×»¾y  ÈÞàfÓàÆY‚ –Ç•+Wº±Û×®]ëö¦%¢B!û„nï–‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚X]qu)ÜÂÅÅÅÔò"‹(^Õ6??_VmV§¿†å®6AAT0úûûk³Âááa-”wKY„[ÏÄÄÄÙ³g[«Jò²¬Õž={Н•ºܤ¯ *åãù¼AÑÖ0 ps«–’‡aÏ¥Ú–Óâüü¼¬çèèhñµr£}PðóD‡ãªÝ^£rB{8å±Ý ’?ûÔÔT½p£ìëZØøtl-D¿Zb056ýEÉ» ¡w%‰§¦Eý͇f”ò¦?ãÐìÙ룑_2>¾~„Ä‹Ðç%ˆ †þì!ÿÓøŽE }h²ò‰ŽG7¤¶üeW#+ K)ظÐ]ÇJÓ7›D ¡i_ËOevv¶¾ôÑf¬ûãs{ ä'‘¨DJLÜ»ý7Ýc ®uèÞv8–µå¹[­¬˜þÓm§”½\qr+—•×ÚRÿVyþ;V›UèNlAûU´ªÔÏK• Ó€=NhI'M µ>´ì|'{ ù,î^«!{ Û“ÌȲ+“^é8(:6‰B3”þz5‡ê_þ/îG²ž¥?uÆ*ÑwåGbïªTÔ ·lJÝ«¨<ëNFæÕEÛá })ÈyÔæ¶;AÆråQ_J¹¼k4늴zRÏjª‰’¿ªîQQÈ´þý­d‡ÍÜõ|`bÛ9Ѫ³[+F–ž±êÅ:6­1(K‘Má~::6ãˤöëª-…Ï£v¬, pÿƒþ»mÕ€Œ?lH¬~=ò芴š@ôP4"˜ø_,..ºÿAÓ錗ּ­…»×üHÍéŠ kAR;³5 ¾´«LdíúR·‰{04X z3±«´ÙM?ô14fÀvAþ—èÒÄ–·Õ³¯ŒŽÍUö/Öß°†¶ìÇ#¿ÄoÏo,·¦‰®ûúòVv Кm÷eCŠh€…°£$²AôD$ûãÈŽ%cwGUûÙË/VÛàµåÝqÖ€=»‰æ€û?Êxòjÿï®’»Dÿ?µR í:šj€ÊOmy~}éÈEh. uA¶yïú¶c½ŽM½ZëØt2Rîndve‡ý,µõ§õ؉HüWªÚ£X_>O~®‰žÃ"`5˲ÜsZÓÛûIU²žö)Üí&›Eæ2 pÛ5öy ¢Ê‘øÙ[ÓÀR•ýÝÎî ™"àwåYEb‰~*ì¼Ôœ¾­$c. «”_2.œ’³EÚò²7Ó½¥}ÀÄA öcQ†ûwèwº¹üÿ”ýýŸb~ Ю­Ä®Æ~r Á.¢õå' Ú±­Ö4 ¾ü|ɚטø¶Ûô?/AT6üŸ}ê 8îîò•j@j÷Z=°±¥\ \N¼, Ðÿ¬ýÁµ/Ôý Ö&ª9‡ÿ´N·ç$ÑVª;ƒRW)[LÀteìpF"rj@ê–×ãZ³”'Æ£‡véóÄ5|Ü·lí Hü Sj=vÁ®Ä»:îÈŽ e&ê±Úlé˵GûDàÒÔB©GG>§V¢A&Hœh“úÑ¢‚ágRkù&À‹\]~zl}%ѽV÷úÐ4íîiŒ[¶ÜäŸâê7ÐK~ °zÜ‘r¶æî ¸«­‚äþÍÍ ôƒX3*ѵ’Glˆ ähs‰Ô+"æì‚HÝòvø@–ânêÔ/… ªz QBÿ˜‰Ÿ4A~¤6¨ml¹eÉP÷]~ ¨gv¯ù}h–‹kÞ‰‡‰•÷Ckί‰Å¹‰îˆýº“u(…¿{Iô Ö–Ÿ_ÜAûu'#û¡`Ǧ}XSÓ±Iô\XgWÍéIK=Ó– ‹Œž±¦}z‰i²_Ö3»×üúešÔÞ¶ÔõtC;÷ÈîÀ´Ðymb»õjbFm;§ŽÜÓT©ÊïDõosà÷ͦ®­^I©M›ö–ßIÇ&Ñ‹¡@ ~½AAAAAAAAADjücQ>® endstream endobj 15 0 obj 9677 endobj 17 0 obj << /Length 18 0 R /Filter /FlateDecode >> stream xœí]Yoä6~7àÿ ç¶#’:`»m/öqv äì È$˜¼äï/åæWU*©Õ=A` m³Å«X÷AÕÕï_ªºúk}0Ug¬ÿìÇéó·ÿV?ü¥úåñáSõ¥j»ÃPõM7}kcezÿŸø25~zúbHO»êߟªê»|nª—_«O§Ñ¤Ùü·‡¾µc¿ûññáùýñÁÚÆ>Úêý?Õwo¦2]õþ¿êûÚü­zÿéñÁÿU=}ù}m±ÉÍM~ØÐÔ`S{jjR¿‡êOMcê6œZ¹e„gžæšƒ MÏ¡ÛZŽÐíåÔÒz Î-¯¡-ê-,¼áW9þêùétúÓO‚¯ósôÍè?oáFá rÁ`1Î̆œµÑD²Á¶Ëš’!G4 |Ç0|ÖÑÌfS0öLX”KFš-ÕÉö¨Û5ˆVÜ „­Ä ›½ Ф–°¨F n0Ký–? ¶—cº`Ú¶Q¤g‚%Ÿ=3ƒÍEƒØ<•Ϙh4wl/b®1´ô0{IÚéëÊgÌæ7µ´5œnPlàæqúèW°oÐ2#C— -¸BÓÂzÔO°B82íb#[h1ìì¸f<‹ÔÂÃg/4«a§$w-OPØ+·~)~f¬ëh¡c‹,_¶µGÄCKäoÇЖ1P‰tp² Û˸)è÷zT –è.ŽÓ•´€À—XnéMDÌÕ+ Ã]ŒuäpÈ-”A ÞF›Îa†½Ò:Ø=eaVøº)ŠòNÙÝèYíy/ó "Ø;ÈDûT2s‡Gx,Å¡!ÄÙ]9쬗Ù€ˆVÉ—2Z¾±5A›ÃÍ¢6Ç >‰ŽxA¼VA¡ªA$f’v™þïfU-êη]9ÂÂð\Ep6i<2°ómâùâ*aC€ŠLœ_¿¼‹3€G… dîBd¼¸Ô~^% æ\I"ÚS[Az%Ü‚U‰Š‹båÜ$É)Q§°Ò\½΋ð=Úˆð<§‰¤„¾Ô(èù3 Øì1ŒDÀ™4Ðøy>…Ú ¶htZ ÁQ|ױ剨 xèT êHB‹à?E5w“?‰+FW ˜AÍL€`ÍhåžbŸ„ÔÏØÏÿÏ|¬£ÞÉ“pOÚ©ÄñÏØˆ©Kt ŽZgR¹5ŸbË?£p HaÄ(ÁÇÕð’äþºà‡Æj@E‘wâk|<’Ù¸ÆÒ1 r»ÐžÝ o'7Y!ðú-ág¼ÿ<ŸÜCÚ+ž‡„@Æ¢ºR& S$,ãv“Òèû‚ó.BZ Í¢¢Û,ó›g¤‚[_°1'°õŽ…á‚@ׯƕøTЦ w~©‡²Ðo¾!@£=­£!-äXÀQa¶èUš:TÂ(H ä•„¬‚˜šp‹ä7¿”Vöæq*oêäG›ø ï.&ŽHãÀXµYÃ.r[¨ª×ÕÒ+‰½£§‰¼eq¶¸F!(±ÆqMd¥ AÁŒJ”à3Æð,ª i«a‚a…¬´íýp¤Ü$¥-Ö™vµó +úbü ‘A‡< âϘ…šZ¯aN<(!?.DäLßH–L|Ó‹ÊHp`Ú¤H¾—„†C@Zb«jHT7&”?¬@õÔ)¢zî× !Om£ ”™.ÛB¨{áçU­Èb¡Š+"V¡©éH¤#$H æày1¾N¹"¸E¹OêMߪ¶I€bÆžvNOŽõ 4!:`Ù= mž€ù ½ÔoÐÖCKä¾¥-DÙ0a[’ 3E4d¦i]¸­-åòG¹C²€ÿxùõRøRʯOëôzhpàJÎ?•‰¡a#B¬çúQÖ½ 4úÊ~ÆÔsî­pÕ]{Öèҫ‚³˜Èl-‡’9ʧˆIó×/%ÍEÆ1xŠ-B"WéVC hˆLâ …]Œ,hŠÕ;W¥y/îsM–ÕFFRN.g4 V!R±\nxE¥³´Ý4âYQÊ ÊÏiñU Á9J*¨2ìR{›ü>Ï a«ÉeÔT3™·À#y¯…ʈlBcÜ@®„Šhêw»"ÃÁR––#°¯W\—¥µw¶ÏºŠAu^U1‚ E ú—Uˆðw]…È"—Þ‹+騧 ÷çigÁB[ëXf×cwR"}d/Í‚pný”¤|^–êÎ@/MtލdSda&¡º©`ÿO±JÌ€ÅìömA¾ôc m¬+`QQ³Æù‡È)œò â2‡Rvw?Ãî•ëË\ôB%µ`×>+¤…Î[2…}®ÁKM ÊõõúÀØEF˜”Ø£º÷L“GZ-!-  ò‘mñPÙòÙÛð­YÿI­Ve°HÃVÖ¤ŒWh¶>À¥n;y_Ôë´Vá/MÀh'nÿ‡ô«¢ÔGÈ_í’5Mê®ê..M%§&špC‘*p‰”r3Ÿ–êŽ\E¶ˆ¤Ü€r°„ å£&Ò‚¦À])Ãk±R­‰Þræ6èHZˆF‹E Q3W仚+vºÌg·¤‰›ÖÈ}*_VK˜Þ@F* ËêE=B¯ë]NlŒ#é¢HõÀY%¹·Ý·!0 A^vŽ Ívræi\ì@×ô¶R6dšT*ÿW#âNÛÌä[(ŸåÛ(å“Wÿ¾•ðBrDìd¯úä9 æ¢1}úgì"ä9£D£o­ƒ^-3KNçÊõmˆ#¯ØBê”’´`6™ñª.ÂHÂKOÀ[à–7ê&ÏÆùš™ HÅ•ÒUnkÌÂ`ÝýöhA FHpDމók®õFÃ×WžóÒ+¦ë“\—j;Çó;êËõ ؉õFp3Sƒ`=ž1p¦’/¯xËçdÓ€xƒÉÛ ÜÊX@ö¢Ø§Pâ—ú%Û3¡˜10º-¶Vþ¿ö€íPÛ²MØF|¹Q]¾¥é¥<ªÕ@u“8»³«ÈÓñp¶%“Q’²~:k<ÿ&¦{=‘ƒZŸÅ N7XáõÊñÿ¦në.“ÉÞX]Þ5"êg¯Ì…h2uIFì\ì1$Bkÿ7pMëÒ[?„%Ayf.¥ŒfœRo¸ ðù€8À¢²øLÉ,»ïŒÍ 0ÂyýŸªÿ¸øÔ»endstream endobj 18 0 obj 3306 endobj 20 0 obj << /Length 21 0 R /Filter /FlateDecode >> stream xœí]Ín¹¾ Ð;ôyÌ’ì&»X,0IAŽJä²›Ázöů¿Í™!ÙïX]lÏŸÁ€lSÃb±ªXÿ䍿ëãÃçF5QÝ8m¦Ÿýè~ùµùçÍïoÍçÆºÍÐôó¿Õ›±Ñýô#~â³& ÊÿbHŸn›}z|hšÿö©kžÿhÞиզßnzkÆþþòŸÇ‡§÷Çcº ø°±Íû/ͯºÑ®yÿwó“Ò?7ïÿ}|Ðzú•ò¿üIjCØ0Ôá= uižCPýahLÓ†ÃÈ0Qç82Âg¶G@ÝÆ„¡§0m#;˜ö|±Q#/alê5 Þ•±<™ˆùvà¾ÿ“èÛNkôÝ8ý¼…; … ð°ŽÂãZ k…sö% o¬Ò£ƒ¿Íí$Òm?AÜÜ4Gzo¿ýÏÙÉéÃqoâÒÕDº¯Å5þþ×éþèÛæ“×ýáß¿5ÿ"§÷òs„bq)Ðj>çär~¡;!‡K‰\³9W ×dW¼9º r±¸È5Ÿs r Ê[ùû ‡K‰\³9W W;-dï„\,.rÍç\ƒ\£7ÞwB.—¹fs®@®ÎªÉ³¹r±¸È5ŸsrYÕoâÑßCgR4âVÍú€| Èr¸,e7x6§R€;;ÍÉø$"ó>¶V³€×Ð9ÆB.nU!¬*ÄvnØGð,¤H¶§ˆ=‹âŽ¡OŸb¦ç0‘öÚ3™mXÏAé]¾¿ ¸ Ÿ tìæc4á=˜7£Êw½çÝþÏ‘Szâ“÷ÞÿO†Mnð‰‘£Ðhµ'mÙCÈ!DšaóúFÆ06-›sÀ¤º0B]í(›¤b T€#:¦ÍQP»4¯¼^œÙz70OLcCÜ`žNHÀ-==õPB hÍ òîb‚#qÁÄdBzIS^nÌ—#Ä`›£`fÁêI,«H’”fõeŠÎ ŸA°züÌÀq @ *³mQBwa¤|¶ð<ÍÆPèLp:³ëxhŠ8« 2*­ò^Û1§¡y #?¦;GÊr‡‡^3GJbW¦=è/Ü—}r‡:T×ÙÕJ;@ÐL€5ÒU¢‚%zÊhÖ±Ö+ÊÊ¢—¶¹wh›QÐ FÚ`™c6™ ‘cµäHIXíV÷«X͈5*Á^Àü‹)ÜW§¬¦I• &@ï‘B(’õÉã‰&%ç1.R¿l„ꨕ÷kÎgJƒ‚çÔyÙpK%3Sç:ÇgIMúÄv!@ÔQ ½‚ƒâ€>£@¦·Á©ŠüBGçNÝs˜ÕÂ,«Çšœ§„ƒGò¢×,ªad#ˆ!R£Y8ï38€O¢a¬ùÅ s¨¡!ð”Ø;_RõÒÒú³j}:<)hêeˆÄW>—@Ÿðæþ=áU¡º%Ã` ^áD£†Ygë « :‡°@ǵ:Îyg\õˆOøL€–Ö, ‡”ô¼›e¬Ï‘ÌdÝ6ãIë€%uia¤ƒ #FxÕmŸt¢Îã¹Bk Ñ©'èáÈpòɸôU>Cyïu ¤|Z%ÖŸð˜Ø4cÿG-×:ÄU+‘Æ~iq;ún¨LuØjn(©elмa¤GÙÐgü=9?˜î;IX\*±b´!Ei‰ñežÛ˜Å»ÈwÆÂ1{¥ün­ä2ÇyÑÿ…JÂÿÁø³ËèžbŽcôÇ0¿)ˆKºÁff¬°–XOTôh—Á¨h4èbv¤¡¹ê—áˆ<‡e’ö.#)ZSÅý%Ží +bت›ž›ËÕ–&M—r­å^"¡±“5ëP¹\B1Hr°Ø;‚u~L“"y1Xª*e– B2?euþ²ÔÿCQPAñ#„ä3w ÂŽÓXþÌrP~ª2òiÓn4©;ˆJ.§ ü,G‡iÒЂ‘È:¨ž?EUJ7áÚœ7˜×¾Òg:÷æý´¹`ÅÎù™0º1]èÆÌ»gß•Ùy¯xÿŸR_fçÜôR>$â¸Æ¸1] uAÚƒÌQ œ²ýæ}•(Ë)PüLw„ã8÷çbì'ÖÂH,JªÓpΈV â õÈØ¹šþ9TñF 8x·ê,å‚~¢<-i)ìmÝÙqçê&¹j&Ú@&,úlíàoüž:L«Ž:Q%*uÖÞ ¿ãCéß\é£`ösU±òC|.)> »ØúG4·” Žä†9a8Vå^ÎÖ.^yµl VV ÏuŸ]ðàÀù {îh ¬•7ySˆ 1”Px˜Qè%Í£xPÁ¡Z>囂’Wlˆ»zp¿°îæbù!ƒ^î4b˜o…aôÜs zðåµW †äQ9AÄH—Ðo$añÖ$çMC„“,èÅ&¨1¹›9iøèbýüíUæ#fð5+IÍ•Šp%Ñ(Q|¼@2›I¦W=§X“­ÀØ7åJ˜MpÝ£!9Ó µŽç=ŠAt•rüf%‰-¿’ЬõèòdÂ…9·Šoªòoæ„x…Åm°Ñ™ˆ%· *i^ÒêÉOР›lkùÿklElËtaZç‚ Š/g°ü;aT;mWo]5 äÎDg“S0)ãòs|KËÿ}Är/§$jA©-~IŽÏå€5óÉqQV¹À&=ûÖÅ!?2Hõ4)üà·Ä™“³=ÆÀWøÿÐÇ"ÿ&œÞ’ÄŽ9œKŒnôz“*Ý©äûÃÃé |±Ý"~¦Ç,Y}¯;ãpŠðˆÿ[ó'´ë0endstream endobj 21 0 obj 3052 endobj 23 0 obj << /Length 24 0 R /Filter /FlateDecode >> stream xœí\Ûn7}7àØçUxß%d»è£[ý€Þ€¢i‘¼ä÷KZË‹yÈY®,)jcp"šœ%Ï ‡g†£eÃçÛ›¾e>.ÜïÑúߟ~~þføûöæqø8h³™†QÿW¾±ݯØã£oœœæÿ0¥ÞrøåÃíÍ0¼ûáƒîþÒ¨§¹¿nF-¬‚?ýq{³{º½B9áÓFO¿ïøÀÍðôûðžñ?oo8wbþï™À&979±¡Ia“>4©4Π¨ñÐdÓ°éÐ29tæ }¶³ µ¡i†M¡eÃî-Ú:·Ü‡¶\ÔC˜¸jÏr~ïÀ|.†ïíëN6‘B?l÷!ð;9è>7Ÿñã÷®‡ßúzøà}Äxøÿ_ÃO“ãÏös@‘si`•¹\Æ?èJà¢æÒ‚+s¸Ü¹â£«€‹œK®|Ì%àš˜?å¯.j.-¸²1€Kºé+‹œK®|Ì%à²þ𾸨¹´àÊÆ\.¥™c6×9—\ù˜ À¥Ù¸1õ)Î|ÉdW‹9jÔ›äKHîçÀmëhÓàlÌJVÚ) øEDæ9¶‹•U ÇØa:s$"bÜÁïCâ¦ì/â#ô™ã—(e_Ê ‘Ì‚¥²Ø—rSKfÏŽ’C|%æ>&Å`»ð,Ý–3«c Eh‰rd\Fª&­ð#Ìçæ³Ķ‚¢:2wv`,së™­r¶aZ+Mó¶ì,#õáSXi[×в…µoAËZ&°Ô»¶œhß6æXZš¨5ç>ˆwKd³ÚgòMs=SÅ%'èÚó/ŒJjâmÅá|@•2¶íP\™€Y‡†Œææ,Jƒ°õxl)}y U4ȶ+† Û¡‚áôÐ=L© nCºÈBÙ´<³üOÉK¹vBk•TQ$>T(÷ HP€˜*›h‰êç ZôP ìàC³PAEÙö¥ÚðÙi áTƲ¢Ócz—ôͲE`rc:ã Lfv‘´LŽ´p%]Çç-Ö¢tÃ8Ñ;ÀKÁÓ®x< H¸M)Yìƒ9pÖáÎÛõ|îVÙ xàÜ•Kuç§¥†öç*¥5‚šŒ©Iá+‹…må&ÙAhPnÜ] XÑ?sPªÔ¦8@TdljO)› !(N ±+Wš$·ÏJÜUi3áÎESg§K¬¢íæÐ Ö:Oüºm6ät¼°ˆëT2jw¨$;îÞÔk›9ŠJ<¸W19D¿mg• Ù:K6Ç»„€-ô!ü›ö¡Û³Óƒ}voi‚ñP’Ð}YŸ©CŒJ }öÐ2.ËIÑ+ñôex”xp‚ÐrË2-I6<ñê`ý(¾Ò 5ÔÓ‚X#$ˆ5h1òUj®GáÓq†Z@NÅîQÛŽgá { G¡Ý÷˜êëOe]ˆîy”¼ë˜!"ÖótD v\e] Aº@Û°S°OÅ6Õ¡AC¼ÝÕ!ØÒT°%5§C-ï~Åtð|‘{cöDláôD^‹Œ9о‡ßœŠ•q¼¥³“J'v#6º™½R»)Þké¢vÞ¼´Oe·3=wÇ]kUÒ‚˜íŽlck!rÒã+S…•Ê3긡©ØÌ:¸å ßḞ°zÜ-Ä{"·ARF>{1êÈ"r§xëJÀ¨_cÅЂß^!¥rë„7³hdÄíÕrÖÐ€ŽƒyW|©ó9dvýwQØæ¹B±¿ gÄQˆFOVc±êFYóõ_!ý(Ó[ˆO“mÀOãðçžÜog§Ë„ÚÄ÷E$w°È/{W2K6ô+Y+’¹T²k˜Ü‚ûÓÊ-t_¢¹5ŹmE*) ‹å •§¡l¼x¸L!”Òák_ŸCÅLb× {®’ÓNJÈM,'‡ =&‡1¥Ä›†pê£Æ*,Û¼X‡ŒëÀ*ÜPæÈyL»E“–“*I²ybÌÒÛaja! lKOT)G§íïÙk&ÑU·*¼ ΋U‘æ*9D.âN”õD¦€9NjÄM ÆÝX¾VÉp¤à Áx]uÖÉ@ÃÌQUÔNxwJâ1 ^ŽJøP7zÙyßÖÑš²ÄöI¾®&ô4 k8%|תoÆ øÓä>ʼGÆ­šµXhÙfñ……ÿÚ‰>ÏXÙhŽÄþ$¯³ARO¹^ÿbûê ΀Û`MËÃ0Ã;…lyÝ[DG,¯ ²A¼<ì(¡êéƒó©¬ë‹é µ L¸UFõ”bKó.Œšse Åìj‡št¬îîúÆÐù¾Õñí*e±æKÔ9Œ¤ÐõbÍ3ž×DmQœ NµÍpÖ]Fµçü¸TåUÔ*æÖƒ~ ç2‘¦˜¼Ad›÷ ¡&›²Uµc;¾«D¤¼6t"—$•ÿJxÍ­ ùâ¼Nr£$/+|IHNU¿óEià Ð*Ž ¢Ž–JJG> ß|w›PE«¢‡’€æRX‡X,-“r‚Š+t™}•=UçOe™…` °QOÛ­»áðĈd9mNÄLÅeúQŽ…OeéR…Ñá¦@¾ÝÁx{Êí{êJO &ËQøÈ QSªké (þžÒ¤J®ù¦`W†.>gó\åËDL¯ÈJ·ô“XÌ󌘜 Ÿã—×~ 羚­Ä<<¾Î2&L"µM”4(+KA‰‚$®R2šægH7/¿0­²,¡bÉPTßX<é®TÕú×i1é‹O—P\¸(hªjÇá,J¥jgÔ–'¸gpø¸û—I8ß/æß¦[̉·«ÆÏŠif‚šxöÂÚÒÏ[D€íØ>¾âTVöl\¬1æ!:?#mYz‰Ø¨«`ǯžkg(ëýfͨ¸b6€Êá†4¾Š%öã6KѼ÷±Y#œçÿ8ü ëe¾endstream endobj 24 0 obj 2460 endobj 26 0 obj << /Length 27 0 R /Filter /FlateDecode >> stream xœí]Ûn#7}7àèç¢ðÚÝ X²äq²ò»I€`gƒÉK~?Ý–H¶xŠÕÅ–,x€…ϘjÉb±®‡-ÕýõøðµSÝwj§»^›é÷æßþÒýü¯ïwc7¸~þTïB§‡éWzâëÜ8NDÔüÁ˜Ÿ¶Ý¿¿<>tÝ÷?~qÝóÝç5n´éÓÝàMpð=>ì_Œqñqç»×ÿtß¿èN÷Ýë¯Ý'¥ÿÙ½þþø õô‘š?ü¤ 6ÙsÓD669lò§&—ûõHj85…Üm<µŒwÎ-žy:r;›ö±Û[ÐíùÔâ'¦ž[ޱmIê%NÜÕgy&~œ˜ùù´ûóOæ¯Æ\˜~߃ÃNÂá8÷`W?ôAØÅͥƮEŸ;°k²+³9úìbçRaײÏ=Ø5ªÙÊ vqs©±kÑçì²Ó@þƒ°‹K…]Ë>÷`W˜÷a7—»}îÀ.çÕäÙ| v±s©°kÙçìòjØõôÏþ:“¢–~S¯ÿS¾e¹\—Žº¼èÓ(ÀÎO}J¾ˆÈf{Š•] ÇÔÛtô1,‘úB™‰ø²EŸ#¶>G4{ sˆ-);B6G=@9?(ã×ÇÊtÒ†ÃÌ!‡oZl¤œè8hšæs„•î¡å ‚G¤sˆ-¦º.sŽE:Et»àìq¦‚tSË‘ð'yꃚfz–î³<ó %eâ|tÁÅþA/•ä2IF Èc‹Náwyp¹ùDÉÀÝZH|ˆ´µJåáJ]BM;nªM›Ë/“²I™r<º’¹EÂ|ík̬®3Í„xä4°ºNÙâÊbe}ueÄV[xF#6ß–ckE~Œqô´V“»uŠPLO%/õ^;8žšê:òKfžQg ÷&«šzî™P5«ñ§÷*&îŽît£°µ2Ö„r1ZÞsÌ´ØsÔ³±W!„˜‰Fë±Ø~Ô²ü*´õ3x”`ç”ù6ñyPÄ;QŠ[dÆK†H4R! Ñ5mí©ÓHÊÇÍt‚¶ÄaY#òó@0lPÖ$žl|½®¢ˆbŸåY9ÎÅg™Œrº¨îäˆ SËM‹Á#"Æ_ÊÞsN1; oÎL3i34‚ɘֽW‚ýL«îhÙ}|&ÍŠÆZC œ#¬i˜÷ Ò«ó‰sf š#  Á åN9¤¾*ÍψªÄ/e‹0ÌS8£í£ˆAÊ6[rœdÙL´gÄ¡G±GþW×Á•écÊ¥A¨r§¬L"1ƒE‚npžÛªõ¢ÓÈàð§ú}Ósr[)Kjîmγ®îu%9‰6–8u¸BVtÛDeÂÛ`icñT¢9ØTS2Oc›f|,„YdmS&€É10š´žÙvÀömÒ뢜C&ÉÄ‚1*'å3 o©þHÐïiõB>KäA [¬§r˜.€'iyBß…Ë[ç[j‹B+gU£ÕªmÿlÞmrçŒÌð¹s êÖBÞÊ”Vx)7×@rX§¦bÎ ¡êd=‘•Oʪ>ºÌ GuŠ@"‚= h‰Á…a ¦cî‰KdÎY.cAF~Q1É$°[*om -ËÞ´H¡!•‘±;'᜛ÝÚ…Ž·9Ø!p"„œiåâ 5zm¸ *ÍU’¯M6xÒIÎJ-áÆbýZr>·éftŠ)žS=Üòë6Ü…¹ä}Ù ‹”„WX††5Û˜Åè«Ô–ÅØVèmI¹qqϬu[ñW"Ô*O¯5ä:‚Õ ³Ž½@°"pà6ˆW%žHLÒA¸âU :°ÒA¼ê~}†ÄÚ%+EÊXkBl,ΟAŽÁ|ÎP@Y‚À ®‚™µa™­ýnRGðP -Qw0‡Ò+H]Þ ßˆèL’""Ô»$ƒÕZ_’ðà“Ôõ›·Ræ ÎqsŒ{£‡(ƒÀØmÑÝ„<©çì°UÓêë!¤ ¾ŽÁQÀ,'À¶d0%à8ÌÌ´…óW_-jô™Œä•þ`’!Aˆö.psÉ•‡¸¹³³Æ}½€vƒ­4` XF„-£Õ3à9ðâ4ØeÃÇoÓ"lHe5æÆxô¬03OÝ!OÞ8Â?öQ®™›Þxoh§b»…–é.›õÀ8ôK9Cî&õXm!îϧÑKAÌë"èà Wìvp»òÖÓ7|Y´†_{¯ITbJ¤¥|. ¶‚ú W9ªkttwˆ-$ŒÛbyÆaìäu©<ÑÕr¼…²AÕ&ˆj´¤¬‰î†5ÞÄØë #m×ËÞ¯.qkG¦í†öÍëM0mŒšÐDD±À \\D ‹fIrQ+’pâ&ã ”¾dW¸ †³C vµ‘–!»Qky¶·—IQvw=ók{Fì˜ÖRÎÝ/ØxûRtÝlÓk 6ÆÏ•%€vrŠ·^ö"ï•i¦l)@÷HpC[!Y7¸éݱɵJ¼X=´NmzçJa¼Q2§EÌ+*ÆšùÖñBËäúásÉ¢[ jd¡â¥nŠ&}[“•œ…¤š<ÓaXèUã3x9Ö®ÒJˤ):8µz¨™_JM©x)¬†ÞK žuÜ¡!ðÀJb8Œã¼Ûõ«J"˜šfT)üåýÙâúôN¼â~qÖ H÷¦/&ˆ;pÆs‘í&Êûû ˆ¹P†9k‚P†s„™8Ykß°+(YlŒ†fH¤ö¯RÒxMIà•`ÍZ€WÅÓ+çpWv°œ“²d˜¹’¼y‡1Än­‰ˆTb‡b0D%/€"JÈ‚².QÀ–”Z±¸ˆIgXQ EÊ’b¹äER¸. t[ð08ˆä>ÌَЂ{!ØÉK´ZÞmÓ8:DÞmt‹’œ'è`aA 0§Q-¢‡§¹’iAê°…xï J¦_Ul_ößè³Èè¡:KEÏÅU7¿Q%x; ä5\hxð²ä¦lÛe *ð®çÛ8Gˇ _“ñ]®ô5™ÜȦz„°UæüˆÒq“Än.H0ÀåM ÉÍô–ó„Äœ×=!3†ˆbõÅ=NÖ_Á2µ¸G@º$Zøã{f/‡à¼Šdímõs™ßöùÝ(ç÷ãEþ”\Κ‚ÑI{¥’=Úp@—UFR©à1`½#þ}¬©Ÿ†/dšsê#^`p_*‰ŒÊb7+÷Ëø–|’3"Q7ÅÒÊ¿¹±þå6IJŒ‹Ëк\Ð!åË¿úDÙi±S[aÕHîÎÄgSr0gêW+Ö†3zR¥ÄpÇKYÀ­~Ìü͇á|‡¿ /ýí”W}Ü&½ørÁÒ°ä€ÚO&(V-qfSçb <-üok_ø2x’Ù)Ì{¯“á‚K‰£Pi§2|\0ˆåHÏ é˜egÖ©Ù"<Ïÿs÷7©<³¨endstream endobj 27 0 obj 3262 endobj 29 0 obj << /Length 30 0 R /Filter /FlateDecode >> stream xœí]ÛnÜ6}7àÐsnxÑ@PÀ^{‹>º5Ðè (šÉK~¿’wIÊ<ÃÙ¡V–·…ÀIh‘"gÎ\8ËUÕ×ۛϕª¾U;]µÚ ?;7þüò[õó7Õß·7OÕçªiw}ÕÕíø[½s•î†á‰Ïcc? ¢Æ_ôñi[ýòéö¦ª>üð©®þ©žŽ£qo~»ëãjøûË·7÷Ï·7ÆÔÃàý®©ž­>t¥Ûêù÷ê£ÒßUÏÞÞh=üJ¿ü¨ 6ÙSÓ0¬oª±©96Õ±_‹CuÇ&»õÇ–~@çÔâà™»Ó@õÎø¦{ß­÷-{èöpliPO-¾m:ÔÁO¼ÎÏò4øãæÓq÷Ç?_;¼£«Ýðs „k Â= ÜÏCØÍEX N·/"¼k”v-üí1o‘¶Ý0â à¦:á}wùŸÅ&’ ¤ê^…£¦«º¯ÙwüøýðĨúMõiäˆîøï¿ªŸ„“Ó/òs@±sÉ`5í³\íø¢+‹›K®IŸàìÊhŽ®.v.¸¦}Ö€«W£•¿¸¸¹äàšôY.;¼¨¹¸Ø¹dàšöY.7ï+‹›K®IŸàª5x6×;— \Ó>+ÀÕ¨n×ÒS<ù{èLŠZÚY½¶‘×Yîç¥#ïOú pÝ }R~‘>ö+×!S/ÓÑ>` pœb#‘ÐâáÐ-<Ó¤-Z[º@¢¬6ÄAzïߢµS°d!2н<€“@ fh>\üå6;IvqpÓ¶~aœÚ·¤‘hœ€2'À2 éóKà ڧãYóáù ­Sà O¢yÛà aúæs[ïtÀ÷;kBø\'ÀÆÝ×½ÊÂëšìë¬K·Ì ¥N7QC Žì¡®ãv¤MghQÌ‚¾˜D8¹q4 f„ÓÁÈ=ìEÈc/D¬ƒ^¦dœ.‹⬠;ßggM ÔŠ eúN€â>d®#¸\ZÜØ6À°Ü;X®óSŸjZŸJ-!çY[€¥!¨êØB¼WÌlBÏ4ÙÅJ’Ø7TZ"€Ï€¸S‚ë[RKð–*š&R)R "Ôl½œE¡B5‚b¿P¨C³'¤š<,$ÏG¸~…!`5¼5cèFÙXô$Á2wzÆ“‘³6‹l~!“åj¨ó2$NBÇ‹+C"Š}êÌI,PѰÜm´ÄEŽ#Gûײ‡ÞÄòÔ‰ëìà™ÿu„ÖN°[‘;ÚäíœeET9>é²k'zÝ§Š©‰eŒþ " ”¶NX8 ù/4É(6¿û"+ôHò¼Ã© $:I+¸Û(H8² x»Š@ é iv'xå,i3”QÆT`‚Û~à—ÄD¢hŒq‰ÒäAÔ)ÂkAã^à¥PúÒÔïëZ ƒ˜¦d¦‘`à„:P(†~nB èçmŠÚ„™º›Ä‚s^ŽÒ|²Ñ!±—ôJLÈ–1ÑŅλ¾&U–U’äHþ£‘m‰}çÈt£;Fo»Aèéå=adÂï-2¾EQ@b""Ó63‰$r"Чvg¬¨#` ÌoÓ Ì/í,7¿4Õˆa†$Õ˜Ÿµ(`]c RDMޤÁCÒýàhyݧ­ó‹(B¶„ w¼I+“?*ᬌ$Z™geJ48+có Í´2&.æé™ÐO\«@÷$ahd§|æs¥­¦@rùÅ! ¿çàq°!?›×£2 Õù9J-¦$†bôZr&i êœi´£ÓNYGM­Û´ìøêÒÓÌ®`‘¹|<»T3úz/‹m*wô©ÝñÉ´IK-=´€ýRZœ`œZê´Eã|ãà»ö‚q$øÀ ‰µãÛ`]­`¥’Uξä„};ö‚·G Jña„NÙA7_k˜>x*Ç,V>%²”ÏJĆ˜HÁXLr# _Q ×%°þ”e%Òà”ˇÇìW>n­·cùŒÉ¥Öæ²ôí+*Ï/­ÌµÈ瞸(?î •¢cD ïGˆØh]˜Cí?j1!Å(=&™<d¨È¶ã~SlY?òÀÕ¹Ml!aîáíåŸN}î1ú%\Éy<%‰dà™¥²6†g Ž‘:¼$ð@%Á„*`æ ‘9éŸE‡\¾ _™âmXÖ6Å”œçzãÆÉ%½Ô%¦N’¨Eˆò‹µ…cwY˜bæ“> bò¾w,+=ømeNtð4åí¬%ƒšJI9T 0¶ë2eñ8WØe (S´%9¡dR)nR{À•¯ˆ’`V¤¥EèsË<àca~[êÀ`úê+> y—EG%\ñPI‰õÛWIŠ•g–¹Ù_¦:pn¾žp™°¾Šrc¨£‰ÌŠÄ¿èp°¨æ‡¨=мOÞÔ£‹GYY7Ó8è5/k;¯b…;"ÈŸX®GK¢HÉ!¡6LõĨäëeVgçó ØÆ:ÿA3Ÿ€ÝR©ü E©Tœ!ŽŒ©KLâ ñAJ–Hœâ #k0)ñY(ýK$ù!m¡…èõfRG`(LªKVJÌwgÍ]–pî)²Äù8Õª¢6ŠÚ(j£¨Â]–¬1´g Éè6BÚi#¤²]&FÆ `¨ïÏR¼-d#¤6BÚIHH¸ É3T‰w¡´ ÛHöô|À¨ìF‡nt¸Ña!">ø òÊ<êÌð= ²îÇ;·Ÿ_.Õ§^“EÉ5‹].B\|€¸’s˜Q¬Ç`Nɘ²†°cÌq*s]SèPr$-ú°äˆtÕÐ]ZŽÁ¼}^=(õÁž¥>HÁ•€1ww0€¼Ç-3Kfú0WÁÁ‚ .®}¸É ï² ”#Öp0Aì!wÍTØ.x˜R.CÞ0ÒÌi]o!)LæÐŸIMYòÎN5ÞöJÙÎóõu§°—¬€3ŒÌ'°G`*ˈ7_ÓÄ]]‚ŸU Ï$WnÅ5¬S<ÄÛ†’J°k)f ¬g’ÈÌ™ÐY¢ ìõ¾.fsŠœ6Æ&3ÒŠéå /ÚYÚGß2C\áH|Ú êÑê/:¯mç¿g(†P MX”Y¥üýAl‰¹y—ÎÎÓL—›;Ia%÷1¦|ÉžÄK«áŒôÜëãW„Ù6Ö4ÓrþhæGX{ô¿„[¶Ñfêt¿2oRAW:ÜcÿÿG@ ÿÙ¯ÍÄ^Þ¹º‹ñ§ÏèÄ~1Ú"¦5Œn’¥¥ÿ/Ý`Ó+bY¦ÕÅ:8·tƒå_Ø¡ì°X|»…êdzõäî 8›Á褪,ѯ{| Qù:Üx1°f¾¿-«Fµ~›ôä+ñúTeu?xQÞšXBgCçd!m-ü¿O–É¿¦¤kH°Ãu9o¥µ½J¨t­\¸-·MôM.á™.¨YŒwFî Í5áiþOÕ¿ÞÛt¢endstream endobj 30 0 obj 2635 endobj 32 0 obj << /Length 33 0 R /Filter /FlateDecode >> stream xœí]YkG~è?Ìs ›éc.0íJ yT"ÈÈ!N°_ü÷Ó­>Ô_uMÍhwY;F [­­>¾º«kFmóéöæCÓ6ß¶;ÕôJ»ïÃä¿ü½ù囿ŸÛ›§æCÓõ»±lï«vS£÷-~âƒÝ$­ÿŘ>mš_ßßÞ4Íw?¾·Íý¿ÍÓq6n5÷ÛÝÐéÉ¿ÿ¼½Ù?ßÞhmÝäã®kžk¾{Tê›ç?šw­ú¾yþëöF)÷«Öÿò]«qÈÌCnÚ0dq¨;ÙD×ãTÃqhJdãqdtèÌ#|ænžÈîtÚ²1Œ€ìþ8Ò9P瑇0–Oõ6n뻜'p`>¹ï¿¾Æ­1ØÉ}¿ÂV‚ðÛž¶"¬—ìKïºVM=ü0ïœH›ÁÍø¸nf¼ïÞþu²©£º7‘Àkzë ûT]ã§Ü'¼êwÍ{o#†ãÿÿn~nN½ÈÏuÅUNs ¸z¿Ð•ÀÅí¥WFs¸œ_ñîè*àb÷R+§¹\cë½üuÀÅí¥WFs¸Œ[¨»¸Ø½TàÊi.×ä÷•ÀÅí¥WFs¸l×ºÈæ:àb÷R+§¹\];ìzz‹s¼‡Á¤h¤ßDõuæKÌ,ëÒQƒ3š•l;GS ð«ŒÌÇØªÍ^ý²=çCLXÔÒªJn×>¥æŠI[‘Ô¤ÉCR“Ì©I#÷ÎeqqWw!cê„0¹²a$æY]  #ú.¤u}uÛjž¹Ï½0Sš[™"ºT¯Oœâiâ'÷Ȱ=JÀà%àåkæ·rÜVÚÌý—av?úòÊ,zŽ#¯™’LÕ‡|5¦Ë3’c t¢R÷Ëóè˜?G†é@ÕÃ~"~}˜GÕ÷ó$6k˜ÇÔÏ>Ѐ³§Õ#SØcBš˜i|r¤£Àu@us;iC°u•!’ ¤ƒ”U­ì ¸%<>ÎÜ• «“ÍŒ{žg®ïØD†éúþP</RîKvè¶~Ò²ÞeS¹ æÆ³›PlJ*>O㈪®ŽÊ‘ø^—„`¥Wʪ/îgPYPzBZDÊJHÊPT€Žk!ök .šEΜ%=P¬o÷Ž£ïܺ/ŽÃ6Ó«šm…hÐ9Qò6à@¡"ÀG¨×‰°Ä­2f¹¥¬kC{ÐΡ kM}_uá&¨w‰ {f„¤ó©éZ!IDQHU<„ø k9­0ŸÞ3ȽRˆh)ö‡açþëV²°(r#|¦Ž ä¢ Ä ƒ¡A€)ª›ÄN3ò"Ì¢|IÒ²-Ì!2niÕ#¨ ÃëãKä™3œŠ3œä­Ê7ÎÈf&M ö¼Í”®ª 0NvUmÀTçy«ÑfÒ^‰õĈDœ<ò”3u'Ï)oi,4©0vUM#˜y­>Éãž²4†Pf„QÀVÒ 15†í'ºmñI:LØ9›MjŠõÕDL„z¯*ÏôUizkÑÂÔwˆR ­æÜâP=‘K ô`Q´ñÐ` ZŸ )žC’%ëú9ÎóœÅ±e#Q"‚jUE'¤AÑ7ºAÕ$%gQð@-wˆ]sÙyPn‘»’˜b›¯äNVá~¨[Fþú¹¤Ëåb‚†‡güåóð.Ö³L¯m]e8ù<õ=¿H…%1š IO*u¡ÀÜ/Ö¯nÕ$ˆ´ ýt«$V"ÃÒâvŠÏö_Iˤ™hrÃþ A)Œ¼þ•<…€aøªž ,(2g¥D™©”†3Üm Ö¹ÖoL˜j”¤ÌÁÜê®QM;L¯S*t8²‡‘ F@: Q°P)4&–çIy³ºÒ¶€íNûÇŽÐZ­cíH’tŸ_oDAߦ}géRº± ãÓ…÷äMžàRb%õŒÄ$m,ãñRr?uuª¤ {Tõc)óÍ8‚õ.¦"®_âXDØð _™Qq!’x2‘)_5 :7)eˆd$.ŠAÿ0£LÖÙÌHd¿Ö¢…:u7RumQ7)\• :×Ó˜R°â;(2a:>‘܇'’ËçÐGÿd²õ±î˵g“mWγ=§A€$xÎU‚8¤çÙ%Õ)Œ°ÏwWÉÜc£†03^iÔ"ŒÎûUŽkLhb¼z¡Ér…GâÙam|þVRy«×â¬*=‘è‰åS5…3½;øä¦Ûu_‰ZE¤ Œ9×Užq úkº´‰±æ9_ºJ͸vÉ/¢¶f,QdÚÁ<¹#‰f6E„Ø"¼.’cj¼‚æc"šBc©@†À½¼ÁZN½T8bfйá#ŒÜ—# «pä½~îŠÜ¤ž8=1ÒÂ&Ç’LsLs!VXí@*<)Ráê¸C,”Âͼ3—jB¨*E°Ø¨‹Î½lÝ­­ÔÆ&Ã~yp—w‹‡&°ø¼Á,Á‰Fñ˜wAT]ª¢&U f×ÅÑÊŸ!öX~Õ>q,mã“WªA°V%ƒå/bo;,®$yÅD#ɇ³.LÔzKêÒrÚ¿ ™Xîá5D"ÞÅ7Óû+æïò¤–á¶kûø¾æìO•7à"Ðî]¢òICèl$.έŽðç`Û䯟:ìXØ=—fØÉÛMJ¨”m§øŽ xd Üv|ÄÏ QÍR0ámg¶`çý?5ÿÅ‹& endstream endobj 33 0 obj 2926 endobj 35 0 obj << /Length 36 0 R /Filter /FlateDecode >> stream xœí]YoÜ6~7àÿ çuÄKØ]ÛEÝèèM‹ä%¿’W$µü†£¡öLpb®8ä çž¡¶®>ßß}¬êêûúAUÒÃï¶ú£úõ»êßû»—êc嚇®jm3~ªúJµÃ¯ðÄÇq°€Ôã]|ÚT¿}¸¿«ªw?}°ÕãÕË·ÚðéCëtoáßOÝßm_ïï´¶ðîÁU¯¿WïžU¥šêõÏê}­~¨^ÿ¾¿Sjø¨?|_k2ÓÐÖYrû!ç5ªÝõqZ·éêL#=<³™Ù퇶~ZçGv0íq?â¢N#O~lêÙoÜæw9ˆù²?ýñ'Ò× k´¶~_‚ÂVBá(Ü­£p¿–ÂJ@áôø"…\­úþõ4wK›v€øFp]MôÞÿs²$€Ô^Ü«0a”ôz Ýçì?ÿ8<1о«>Œ:¢ÝÿÿŸêáæÔÿܡؽdh5Ÿs r5ãB7B.n/9rÍæ\€\ƒ]ÍÑM‹ÝK†\ó9— WWVþ6ÈÅí%G®Ùœ Ë ¹!»— ¹æs.A®~4Þ7B.n/9rÍæ\€\ÖÕƒgsäb÷’!×|ÎÈåêö¡¡·8ù{èLŠFšU³¾A¾d¹œç޼<›SÈÀÖ sR>ˆÈF{ˆ•mÇêýv¦HDǸ#ŒxäUϸtDM1\cœ­…|$¦v~$~ LŒƒ²ÖDt³µ6šáH³v0¸ÇÕÞŸ`?ˆÂÁ=‡Õ5à(?Ái‰Óé`urjç!›,dÜsœ•?Aât”ßaÀBÈñ -ŒdCÊãñܳ”Ïä.IiúzØý$·“¤ø³èU•KyCï”ökÐ/3aéuÌo¤´ç¨SøÊs5űN'Íç8€Ò—Î ”Õ;Ûb^}88숪gv9DÞªÆ3Ÿ†gho3X ù…à;Уf®çš™aá­'vxÎ3l@¥#úOé– è!k!äÏtÙ=xáQ¯Ó‚lž3¸Îà(›‹n7Xê¶ÇY»PQ¨e€#È6H¨ŠòB£å”gZT3*ÒŸxÎQrFçs-´†=£û‡>ÒŒDeió”ïUØ ‹–3,z¿g³¥Ô„°ŒÖwÙýœSë&j²GMPQ°GB|'8×ðY$ꔢ!ç jQpªa ÞP0ÚÔt8Ô¦UZàÞókäEœÇ©¼™&œj@—ŽÄE¶xþ£ûÕÚh…•&Ý£FvÁ×*`ÜႃMëàABû&aÜA@–7j¨6 /K૪Úà \P§ÒDèº" Ýt±‚ÛøXy8 qÖÅbdɸT’ÐìáJî6Oå~Æ yMˆ)ªMþPÓÔkÀ…Wl$jA!¦]3æ”xª(ë¨ÈPBq;x“ÞB‘Ý_gç Î,äÒ¢V™8ÒÆlÑ&OÈphzöŒ+íáäYããÞ3f%e‘ÿq> j”ùL.Ÿ:Õ3xÈWù]¤TÖÇɽëSåTP6™Sd¼kî|t½¬-8Ç$ðž,K-Š †T˦QÙæ›qtUÿfcvÓ&ØÎFaä)©<ó #: qB|Æ,!áú‘T‡Cݨ/ÒÊÔ¸úäéð õÙ„ÞÈRÿ„lÂêËqÄÙ <`²î ¬×+Ÿ}%öÌØ¶”¿ óÃ,‰æXˆ0¸¢O:r¾\a~1^-.×–Wœ/sYû¹¶öÚÏNÚ¯æ#óVÏ'}If-F‚ ós¨ðÈŒ§t¬ ^æÄô‚Äó€œTYN#í’Ä4RƒØú|8r³þ\¾xYN”ôf Hݯ« 2ˆ|M• óÑAÌ)7ªö,Sjbr¦ˆ¥‹eÁ!⢴«Þ…»3”ÁkzçÌ[=î—2V ¥¼ÑĹ’Ï«Ky較|:Ï>çƒ<.kœŠãØ®Ø °iÄñûX£øÈ's$Ï–£Áì׫ÜÏSõª!Jc,ËøIëü.cTÝŠb!Icò8„1SšWÐDÂ]`½ËÌLXk§#9SAD®xE=*.Óø>âÕ'} ÊKÒR)Hˆ\Ç)¥JøLZ…UÕeÑÀ¹•Å^%Þy‹ò ‰$‰´¤*ÑyÛ”лE]%é•8|Dw@ï;À;Æ™-‹h6k»®Ö 2®ìÉX ™•\çŹòŒ-c¨(àqÂË•ìçäñb¾frx1_ø"ôãEBÄ·& ²Fº' ® ÓC·U~_ ([AhÒÙm#Ü3Üó"n6Á~ˆgS½jà Jî¸1÷×: †ü•múD“”u@å3öë|I<´26]§¡vØ5Ixj‚<‰ÈוTDùtE%óØ*IžäÝÎ)e ?ºÛGåõde©¢º`-Qܹ®q½¨ =œ¼Ø¡å:s™ó"â×CLru Ã% Eªê-)߈S”DU@Žø(†ùüN“•â1%мüscÝÕ$ÔÁx«B pV–}7/©NúC–U?OpËŒïÎ@ƒ½|˺´$qD#Ia³ú—s{˜h GBöhAç0mùEJr-GâTôÄu "©Éz¹ß#ûŽÁÑ! ügÿ)E\BžºÉŽÄŽÃT{² âjà˜”sá O›n  i€ƒ´`Å+‚̨P悂ĉ^åIðBJßòU(kœoï =ªÐIc²|ÿi,Lñ‡#БJÀiaĦ# ÷ƒ=³ׂþ\Ž„>°Cw\:##0˜â¤vãy!îH¼É˜bß1îp¡§í¨fgÜ5ÇB«Æ0Kl*,jAÊ»‡e÷wÏ_ã:GKŠ×§ïeôè× _7}+¡ÀYîë5½ñ wo1€šlÏ ÖDípÐò\WÛ™…ˆc Xg`¸å«Ž\—„¥À « ˜åTôQ¨×åqÖ:ÜÑ|Â¥¡z™ [÷ ÙùD:k݈¼ ø~°ÀÛcxçL^¸–ÄϼU±`é >¶ÑY ˆðt B†³°€Ž÷q‡¸:Žî"ÅÉ•P 0E,,FY^e”_ºnUùY½ˆ„¿cãõ£!¤8LNp µ4áß>—ÃJ;¾Ð‹Eµ ÇÊŠí)+ƒ Ú:zPp•gá™6ˆ],äŒÚ4 [PÓþ_ªÿúœXendstream endobj 36 0 obj 3013 endobj 38 0 obj << /Length 39 0 R /Filter /FlateDecode >> stream xœí]Ùnì¸}7àÐs€ôpÓ ´ÛvÇ›˜È rÜy™ßd‰”ÌS,ÕêÍn à;–Å¥ö…U”*~|øQ¨âj§‹J›îgÝö?ûgñËŠÿ>>|+~eµkŠÚUý_õ®-tÝýoüè6Ý$ªÿC3½m‹¿|(ŠŸþòÝÏÿ+¾ ³q«uÝÕ¥iüûÛ¿žÞŒqÝäÍ®,ÞþQüôª ]oÿ*~VúOÅÛ¯ZwRýVÙñQ7­äðQ9æèªú…®]Ü^Rèš9º:»Ò›£«@»—ºæcήFõVþ:ÐÅí%…®Ù˜3 Ëv •W‚.v/ tÍÇœ]mo¼¯]Ü^Rèš9º\©:Ïæ:ÐÅî%®ù˜3 «Tõ®¢·8ú{èLŠžT«FÝg>ÇÌr8Íi7x6&“]Ù‰øCDÖûØ]¬ìB8¦†íŒ‘ˆ q‡~ñ!ŒG®âw|àe‚´žÔ!\Ò#˜v —žüÌ!6{'Ï~”K*ãý˜ñI5EXuüDk\ °áã²ifká‰Õ.ÄÒb¢Wœ/ f®’p{†QæÉïÇÂêq”ZAl;{çY0îfÖ|ΡãðªUÿò6r¸u~ž€ cÌØø‰õAûD‹ÆïYÓ"؃\T MÏ@w|²šîc-p‚ºÃ~ÔÁóB¨1­öXÂL°î÷¨ÛÛQÀVÔb};‰›tULb“J=Í ’,* \¿‚õá‚ø@O0Ö8Ã2’ý!Ë [•±@Kð…£ò˜: ×ÄQ._%Ò\7AáÒÃy@IKćÀ3`¥‰ 쇠ª.4#c:É?“* ;ÜÛ},q^•×ÄLiú˜à;Õ“!ÚÊëàñ?SCa@" D²ÙlYo‰Ðù­6ßd–f Æ ÜëÐL)Ã]Ún:Êv£Û ¿nqÔÁ³À “œ¦‹ÝÈL)çpžü¨­W:ë4ú:ý„´—èB´ÛÁþâžqž Tž‡LD¿U:^#¯ d ¬âé\=ä9 op¡›+°K~VG×Üqžª`?OÒ*ü-‘“z ¯œÒ íÞšÜç´zåD#އgf õDV“d¡<“£|%PHÜ[hÆf”½ÛñÑfØW°ÙŒº lß"Zö$,ÛÍ n2åGL{bÂ)0Z¨ôP„çl‹ôèaæÉÜx‹(Àw$nc@›ÎÀ‡ÈÛ1&„d#l"ÊĆŒíD¦å}vùh>AnqÛøD®l†z MCè°V0„-™*í$!9’á(Ì ¢SOh:b&„ÃÄ»Î˵k—\{ó. Ÿ¹PÉMsÒ&ëÜI ª1»ŒØ^%(±œTb2#àLRbY!'­»ë  ¼ ”tU4f{ÍÎxµ˜ÃbâÊuš=mU9ÍŽCˆ|%,N匈LŠÞxPî‘ÀA4}&úÊ¢Ø'l1ô1à<Á“Ãò<ª„™kxÇÁ £ ¬öò}¨-«tÐã®_`5ÐôŠ_m(ž¡VCh%x„õõ+¼“L4p˜õó$àÊ48ò PÖ…Ynf„9 0DðRxO23!AHC£p?ˆ±äZ<ç«xq°Šøœ˜ùé*Ñí2…4ò‡„ÒZ†—„^"ß|»^‡!äÄÙ:+üIp@!ÙAµ?}ÂÉA^ʶ‰©Š|&¡1 0mPŸ¡nXEy‚Ë­@¢ è ê/äW ™á%hÄuÓ^× ,ÑðHæé2¼Óï1«@3#× Z„ ´åb0äãK³µ†q¨{Ðz£„ ìŸ“÷þÅVÞ 1¯‰G ˜¾2<­GšUæ¢:]âÇ"\ExR"-N|lí“q3‹<䡤ÏÊsUi1%Rw~› ê&¸J3H<€âúüÄý)ýç¾.¥oÁ–#}À!³³d_‡Ò)ßju™@Pì‹Cœñ¥Y#¥ ä¶$vZÄûH3A戠ÊjT%É7‰°"äèAø-’L§(6טoD5Ù¾Æãw½ ‹†žBbœ$¿ä€Ú­àß"ïcff6Àðˆù. <‹«ã̸:‘[Ã'x^ Ø‘%d®ˆ™ñÁZ¹S)A Ô1ÀÁ¤WO¯ÅK«‚\’3ì¸Ò®©ví0hªc‚âJ®œ©áZ,Oô`Y)ÔdULWP¿Ýñ¤·Ó™7Ö æ¡tñ‹€òZc.[€žU8Ý⑳h× '¦++E$­®kfB~ÁÊ¢4˜‘æpï1–Ô 8/±6Uù“D“¨¡œ c ·jò 1…(9ÕEê0é-—Üõêê¯+Ó]’J\lF ðÕº‘u$ƈ4΂…ïÀ)#¿\Ëäê²[øã¨cwºS‹ë]a(«w%ËÉt·µD“ÐÊ"¬är)Ÿ¯ì¯'›ÑÈáä¨àµgìyWz6XLjS5>µæa·¿ÖAJâb¬T4§úëû(.䪊ÎÈ@:¥¢%iº0‘˜™QÚŒŠ 8Ö J¤bê§Ã2|‰%úÒ²$7GirFÌ%gÎ+ Æyrê'lØ$~$Ýk§s ¦`Žé#D¡–¸ÈTs \ÆN×r 8¥Kô´8Dˆn™$0”X§£¥Ý&xEgAÒ‹.p %Ôt/׿ºÒîâZhL,ÎÝ1-qÂNwÛ‚È@™b®ñ8²Áyg;ÝÀulÅög½«€‘Ì» ÂÜᮂœÔEHõ0¶þT)£>IÆ"ÃþÏÁeSl9‡¡-ñ±‚{ã×{ãzs’Ëã‰ðWÒˆ‰!² É™AØ?ŠÙ¢ŽŽç¢ãêë‰F>A9TÜSbq7\3%:apÓí-…ÿ;é#Ôæ2V@÷åUo÷pdhQx©jÀÙfá>1÷=ÜçéÑ61Ên2ÚG0>I°ß´Ø=ÖçɳU¬O Ckðêa‚ƒpfÉ÷âÖ]â&°6øE;"´|S¤§zê+ç.‹ŽÏ‘f8NæXn­uLÌ)ìJ¥Û þ þeŸh´áC¬&¾5+Ýÿ>ód1Æ þîHÀŠ=ÄÊ©{8ɽ÷]c¼âñ+ÇG·b"&Ö¡oBO¥°æT©*O6í°½2Ò›s ¨'uð:N[BŠcÚ„ß_ó~÷*ZŒ“þX–’E½ ÇÊŠkKRV:Auª 7'£Ã;u»)ØkÓðØj÷ÿ­ø?Âa±³endstream endobj 39 0 obj 4044 endobj 41 0 obj << /Length 42 0 R /Filter /FlateDecode >> stream xœí]Ûnä6 }ðsÎZ²ä P˜L’¢ÛèôÝÛ—ýýÚKöê4åñ\º Het£HŠ<$5eñéþîcQ_—;SÔÆö?›nøùϯÅO_Ýß½/>¾ÞµEãêá¯fצéÄO|Û~røC;}º*~þpWï¾ÿàŠÇ¿‹÷ÇѤÙú¿îo;ÿýç÷û»‡—û;k]?x»óÅË/Å»gS˜ºxù­ø¦4ß/ÜßÓÿ©þøMi±©›úaC“Ã&lrS¿‡jŽMÝÔ­=¶´=uÆ–>³r;šB·6´ Ûã±Å÷D[žBÛ|¨ç°pǯrü©'æûãéÿ&úVýëúŸ— °ÓP¸ ·ë(Ü­¥°QP8=¾‰Â;_š®†ÿšûž¥«¦ñ•à¶é½?ýßf I2Gq/b‡AÒËžtŸØ9~ø®ÿÄ ú¾ø0èˆæøÿ?*g^ùç6%®…¡Õ¼Ï%ÈUݹ¤µpäšõ¹¹ú{e¸Žn‚\âZrÍû\‚\m9Üò·A.i-¹f}.@®ªŸÈ߹ĵ0äš÷¹¹ºáò¾rIkáÈ5ësr9_ö–ÍmK\ C®yŸ Ë—Í®¦—8Ú{hLªZêU½ÞF¾ÄÈz˜çÞ žõÉd`çû>)æ‘ 6v9lh\)_—S¾P=ù&mpaÌcÚ¶`£·Rù´%xu>zb¦ Ÿ±l ö²£oÖL+¬aœ:íü©YK\s8TÓ…õ6uÜÚ¸‘*zp¶ ÎZÇ. eyQæ*¤}…«Öp ðy‰#[ÂÙgHp†§ä+qä×Wßçs+"äe {Ÿ!/»ÇÏ€ÔzO µW¥á¡ëÒƒX5ðÊÎî°×%O%j#©#æBj¬“:•´TuÊÎ.žÆõ¦ìËpz½7H쇽GéÜÜ™½>¾ªÂ yžà‡ÎÆð{øBÞ)WMqÇzñAXŽCœ€ H(£&ˆ+Z|çBÎp |ëf[ÔØoÀÁÂy4uJ³ÿ$p@ìã |ÝÀÎÞ€ù|¶Ú;ÔÞ Ç´Ôè|…†ÿOB Þ· cþÏP•éñ…@ xg“Ã+ƒ ~Ê÷Öƒ Þv! ? \ ŒcÑ—Æà0ïé¬ M¯ _>'¬ ¢Ä…]1Ž"y·)Œ¾¿efVùç{Ø#ôš|æ†Ýµ„M8©–ÿŒõ<ØÖÌc‚€~¦ƒqÐ7Fßßò{G׃Î% eç ñ£„bˆŸ§˜ä™Ÿâç=s ó!9›¶HØQlq !=Š×¿MH£€¬’F`{ž;èçþµ:€T? W‡e׊´ŠqøIXQáñÇA(ª¬ü§ë_afÎJði&`V&¦Ý¹´—F#¢\ȰÐëªè:Ah`B[*t‹fd´Y‚³ÕýP=„ƹLªÇ, Ü”ÎFºg,Ƚpj"MQóZ½nÔÆRœ¥a飱/4îKZ!ºxWŸ¦ «‡°ûzâ_ÒU8ì5¥pÓÌX¿5CLA‰µ“jÕ>J¼úÑàU%£ºÂÔ¤ö~î’aW÷šOO µ8qMÕß…/có±×äϧ &^1 ”Ϩt*=?Àöƒš­&Ã/öªøõDñ70rÜWT>iÝòlœñ¬ëdM=V!8fÂ\\ÁtV„ýiéÂH“$"W&Fî4«Î2Ô£ êj2-»Ë æ‰×­bÔ¥¨±'‰…ùqF—ñúÍCÓ¨ˆ¢Ð&·×ÄŽ‚nÄK Œ¬À;O[âEãAßÏ9bs1¼¬p¿àŽS\̶›í~nNðV˜ÆU¢À3^"Ð@Ã!çóIOϬ<°°=x–•Ô$Ðù\àwßÚáµêÊ]ö+!ëO*µá³ª¶Âá ˜L–&ò¾ö˜Ápi²„Ãîј@‘0‘©ËIu;#ìi€K“бÔÀ|˜tˆ·—pž[\h»ñŽ$AH!Jƒj€tH#¥Y+k5«êÅT0õœ©(P¡ŒxˆNRß*<’b5,Í·úËÄ÷½&G#M¡Ð $šõë0úÂ]…æ 8à‚Âd$ã(¼‡ød—d!k,D*4 êFVŠ*A]H½|Ÿn™e«®íGxù,…ªM9D•†ˆA~G‘ F$h*‹p.EB‘©I½ãìëY¯» E’&‘(‡½ÞøçtþÁT 8 b§WÝ…$Ò—P.žUT ˆ& UˆX O¬ËÚWx G_“Q@X8kA¨›bu]ˆÄI€…æ2²ñT³=‹ö|$l²Ëðœyt¿ž& ¶Ú`=+è’ÀöUtÃc›RlWóx†¦å¯„š§3Z® ƒËÁ—ÛÉY'.ðëŠÚM±f¼ ä*ƒá¸*ìã¼BT…¿0EX¢cª)X’ Ã8NPn‚`Äè–[¬g`³zLÔ˜rɺì<¡ŒFH祉*G…ö",+E^!eUÕ\¹tmÕz$Œ²eƒ‡ ÒêM).®<Ø<ÄË'lœú~ŽðFÖ9ònNWÑÄ×H渚  ’òJó’C4Ù–y邘UŽ„þøù=kUÞÖ¨!èz>Úªp…/»ë?J]ÁË> íʤUÔŽ¡ J åžÇ$nEV\¨ä˜µ”)g-¼é3ì´nBˆPÏ@¬9Uæ(õŠÒUOV%'¼‚ûÔ$"½ÿQ®…> stream xœí]Yoä¸~7àÿ çé%)êÚm;Èã$ìÈ™³/û÷#ÙâÑüªJ%µºÝÌÁ‹ÅbÝU¤MõÛãÃ÷ÊT¿7[µÖ¿wÃôû¯¯~ù]õŸÇ‡/Õ÷ªi}Õùvú_{*Û¿Å/¾OƒýÄLÿѧ¯ëê¯ßªê§?}óÕó«/ïÐ¤ÕÆÿ=t<üùë?ž¾>>8çGàý¡©¾þ­úéÕV¶­¾þ£úÙØ?T_ÿõø`íø_fúϟázÁ†!CÍûOóZÕ½ iZÿ>ÒÔ™Gøæ8ò†žÂ´>Œœ`ÚóûH3uy c9¨×€¸ç±œ¿ŒÄüò~úÓ¯Dßz\£óÃøû-(ì5îÂý6 [)l./QøÐ;´ðg y3²tÝßÞÇËí†HȾ‹{'L’nFÒýÆ®ñç?Ž_L¢ßTß&ѽÿýßÕ_”ÈÙ7þ¹B‰¸0´ÊçÜ‚\í´ÐKÂ…#W6çäíÊdŽî‚\". ¹ò9· Wo&+ä’páȕ͹¹êq¡æNÈ%âÂ+Ÿs r “ñ¾rI¸päÊæÜ€\¾1£gsäqaȕϹ¹ÓZÅÙßCgR5Ònšõ ùõ>0ϼœÍYÉÀ¾çË1pã'q1“Á!Zÿ†bB43ïÞ¶!ÒJCfqŽƒª1á‘­íÙ¹ø•usdçâW]™BtTÇx0~£ÆÕ!@Ì‚ªyk^u¶¹wœ‰Û Ô Œ-¾©À{†‘ظ®Ä%‘ÍáP £5 Û2‚LŒ>E]¦YsöHž ž¤ØºÓßvö®»9œÀÕPÞ êBŠÙŽr-&W9s{YºM9M±éz®$ª2£*ŸåéÔ¸Ö xC¬å•PäV]V-ê¡”Âk¥ÚÞÈUÛJ†BéqUB~7yÆL$1äWU6Úäã%$d­6R=U#õ¥ö`ÍñÔgIYäåºgÓO—¸ÎgÞ"º¦š&$$>&omyˆüˆ°‹f‚øun²sg©¶6óë3Ú~Ü ËåYí)@‡×ìê\¶ݸç0‘¸a—;¨ºRì TPui#ð˜A‰*Â,C2§rÄ=™W€äaÞ8Eq‚S±|H,Nп›Ñ{ûn7µï¾ýš›umõ­²M;ý%ëÓ–©=ˆËº=!ï|"œSM¬B¹$ûµ®°Zž릻»¡ê¨W,‘Ê%|.k|lEÉ› íÌ6³Áf?ÉØõõ9v õ2òÀ¡¡¶"¢],kíÕê¢HXÜ‹CKG<{*ºƒã¸^Õw/Ï[SÌ0'¢‹Câ´UYuE‘GìNEî[Ñä…´„¦úéMx&%²—‚ëâ`sq¼ër©w·ÌYœÃóÖ¼.i>ÁSruº,f)´é¶cÂCAZ¢Kêzµ2ÕÎæ^_bzµÚ‰h°Ø”÷Ì;ÝnÙbY ëß['dj¨‚ìk¸D®±‡3!º+—¨6íñ;s‰Î:ù #á †Q´(}¡¨òi©E(%! ùWÑz-i3¾‹JI­ÓÓš7G†g}ÛŠ+˜2ëÂÃ7uYZÎHÜØØ™‚yAбADó8-zeC‰Ê:Á#^RVËηâK j]”½:{1(Ñ@<'Û Sn*U<à嬎Ì¡ìä'’ÉÍ(Š­šhœê&'lóÕ:k¤âƒÐ@”‘‰‹>lñCÀYSö¹°F{Ë+^Û3“üD…$´e¿>ÑôŠòzuÊsý:S>:â|W.’õíø)ÒSrxÍ.9H—éÂS.̵<žþ*îÈhÊݪëcŠf_ÍM¢¤Ñ^zfm+ëšCTµ²jn)*TNH¨ÐÛ%t3ñ¡÷º#Óôãµ/ESêx¬ñ¶C "Q S8ø{å5{ùò©Ê®NUŠ×RÔÜ¥<ášj6¯tØ;¢Íȼ¬ðÛs©Å¬x×–zXaU3$Y4^vÀœç7HÅ}…KxiÂ?+Äb A%ƳÚ×e.Œ¦wb!'!T¾±ëxp1 [“‰NO8Ù¹Œ*üKY?#Þ‡¶~ £ªò;  Û`×]-ÙË—õV{¬‘eÞcx§ÑÒíñ¶p3èïRÚlE?‘*u%¤…R°°jÖî°ë÷¥jì ñZˆ5~z­’´¬ËöØ78k/_¡™öJcÇ“Ô2c¶­P´Ü«QWxÅA!àqŸÇó9„mÛô0¡Jn¥;a¼býìV/É(\žŠ³D'Yse²l “:´5ƒª$"¼œ%4×(ŠÐ„&½a»Í5ã¥__èª{FSÅi³·7ú9B~€;àdÚA^žCV%àÖÄÔDÁrU€oYÒ¼y¦ºÆÄÊç.4S.“ô–ýŒïžî/DYi< ‘P ’ƒc¡†ê︹´ \ÖÈÍþ÷14ÁtÀg›»ðaijMXŒªEHB\/M½‰ÍÖ=^*ÜcPÔ†ÖݼӔnE…†HØN,¤ïýl˜ªUSÑàIÜÍCKyµûûÏÐñš"Ó¶ñ=Cu¢h¢CÝ]m!² êŠ×Ø$oTs%åzÔç+ʗʪæ‡h }|Š7xv{F󨵦çDõr Qh ,Š&¾moIš\hä¸[M.H³ É/ü‘;šKlÕà¬È›ìýH0ÛØ5‘›r–»ÜÐÁƒvl}5‰¯Õ76=û¥Y]{CH¨óOÚŸj@²ðÁÕ ¹ë~|o=T?óóˆóÕÂÞ×dˆ6þ\À ðê(Dš÷×ÿ0ýrhŒZø3*éÎJݦÖÐáü…’’‚„=FO# y|Ýó/ÐaƬd¢TvÈ_áß/œEPÓÁÚÉa#ñ ‹7À(‘uÒ‡@8ÍK%ëĨ陛Ý[+ÿ]¯Ü˜ë¦×oqcÎÇ ¤-Ø‹/ê,¬^;NÆÕcž ìã`kG‘#ƒà$š&§«Túå\MÊI¹z—Ö{ §*˜Åþ…Èx¦1m86ëÓ‡åOÞæÉœBjÈÖ„ÇÉÅcvMùo¬¬-ÐÄw“ù#dÑ.ÈÆ¥²â‡†”•QP½Im72‚êÇÖ©øMÅ.¥Õ'm‡=¨Æÿ/ÕÿÔð²Rendstream endobj 45 0 obj 3683 endobj 47 0 obj << /Length 48 0 R /Filter /FlateDecode >> stream xœí\Ûn#7 }˜çõJi.À¢€í$EÓèôM‹Ý—ýýJñˆÏ¡4”Ú.°ÝÈCŠ:¼H$5VÍ—û»Oj¾UÝtÚøßý~þ­ùù›æïû»çæSãºÍÐô¶ ŸêÍØèÞÿ¢'>…ÁÁ3Qáƒ!=Ý6¿¼Þß5͇^móðOó|àVšÍºé-üûùû»ÝËý1Ö36®yùµùð¤Ý5/¿7•þ®yùóþNkÿ‘ ~T‡ÚiȳC‡ÜaÈ&ºYõ‡¡1‘ ‡‘Á£3ŒðÌvbd7&í"ÙGö@öpqÔiä1ŽÍY=EÁm^ʉù£óù ýð“ðmý½ýïK l%€ðpÂã©kÂKõ%„7N鱃#æÎ›tÛ{Žo€›fÂ{{þÏ» ²`¤îÞAðtå¡û’ãÇïýÁõ]óbDøÿ_ÍOBáô›ýÜPEY2XÍi.W&º¸J²äàšÑ\.¿¯„íè&à*Ê’kNs ¸vùÛ€«$K®ÍàjýDîFà*Ê’kNs ¸Æ°yß\%YrpÍh.—uÊŸln®¢,¸æ4€Ë©~Óñ"Nç=ÊÈÂ[«YÂkÞÄÑSrÒS¢ǘVer»nP†—¡¤m‘Ô$æ1©™L©P›F"ÏâHªm̘ú:/ðIFg€O›_{/@Öžf'4Æd<´zœˆ÷²àbS½xG—wɘ€¢ˆúaF¶5¶Ðg%D*äœf¶æ"™¬Æ$v§àgC:ÕyäÇHç}‘"Њ†Åª=Ç $O¸¡FP´™Ó¼sY_‰]åm…®EÞ‰ö9À*$63.”´O¢]µëœ <ãmÆ‘¢q±5b3¡¨*À#hy‡e˜RIÌ å)Í~v`Ö‚À ³Yw~ÒÏ4GØãMÚûçöi<ûÂîÞwHõNû4‰ÈüF˜½ |w÷ÓüžÙÍ⃧ÚÑÎÛK®)qñ|tgô…³W,\Ÿ‚<ÄÇ-%´ÝÑ¡÷èšÌl{j]©Â¶$9L Y%òôѬðÈ*ÙJ%ŽˆîBn×fH1ÆŠ ‘ì- ¸f<Ä,GRУgv0²_磌hÕ¸1Oëòhœ 8·EÀ-¡Îö€™‘¯#ÛÈ Ž7® ‘` ¨‰0ênACe}´Ã3Ý'»¾ k5H…H?´‘îqŒÎÐq6WÆð9 ³²†Ì+»ªŸ3zD=fõ8—ÄË”@?O³¶X¶*ľEû@m UƒÔ½Ûa3äœp+V¥ÀïA"ƪÑò‘ ¬-†Ñ=>¾Éx+â1¦iúªx0Rƒ/06³[¤ºä*ÐÇ+|£l¯Z/õcÍÚÍ áÎÓËQÆ×b>%H¦¹RÓDW!)5HŠ’ÃòVoö¹ÂD7««0„d®ñLm`„c~ Ÿ*6;‚1I!ÖF|˜rñ©>© ‹Q¼éÑSÆK~çÖçÚ ‚áèºËИ½íIÓIîXn˜K-¨Ùµ»(wÍ b•³Õ³,9 Z«ýrfá ¥f’c¦&©•;¶F×ÄÍÊ´»|9aǰv.v±þšÄ'ÕVyQ>»N^”¯é•Ú5•…º2y!, ª¹¥êe~$ϺA°zŠ ³h!Y¾¢_¾tXˆ¶L‰Ë5©û’-¹†˜Y2ÇÂÜSVöþ%WÀÍP™v%uFUqɇ ƦÑ[°Õ>V²Eô¨B””J¡ìȨÅ— ¿zíÿ™1œ~éÁA?ÁvePïŠÒ™vô²¦ZŽ·ùþL]¼ÍŸZN<èU!£æ%ͺ|4+øNUÛ[…v|¯üqÉîãqØÆÅó$ÆܱöÅYéúŸuõñ|[êÿÝG­‰Ðè)çöQ—ˆ…7¦Šç*û=%жý¡ Û~7»P©$"T™äÒG¡+—ÀÇDŽkl3†î¹ÞrÖÅ7Ê u¦Ñ¿MQX.ܲ(1ë(܉#)8ްzæ ,IŸ4Äc¶6Ì %­Ä™=s)Œà’Ý #q©OŠ‹«*D] Oš7Ùõü¦T¯©ºFW3µ¢K£ÉàÕ.Äùݱ¡R¯™kã/G aÇLw©O„I¯»0ÈGÐïbjüX­G>8— kÈtA$= \;Î~Z·þº«t¢™n R}µŸóí{+  f¥W]… 2ý ô‹§Õ¥úE€ºj#›1øë:©à‚äâ#3*´|õÀ+ËÎïY/LJØB ´äó§˜xUH§kU_kˆ|¬[Ž”j»$V«^"À³FM’#¹Z_ºš¿Z_W“Ä×G$Ô% æ®ËwN}+-’—òW3—çY&û¯z3aùF—¢ªUgû÷©áÖ¸¯SS)ÝM—½>p¬eIýñÜW)jªY¥Þ@Ì*õ6 ÙVl1D ,‹¬½|¾;©íR[iºv³;Ö IÌè#aAïB.¯¥†Ö™™IQk¬Glâß ñÚ—pµí ˆ'˜œ¾Iˆ Õ^Ò¦·ÿD—jHÉ0´îf±´åßж^û®Š>”qaÆRg &à$KË¿Ë@iOŒ³Óé(ú\#Zc¬Ãe†ñ6ºI”©¨U¯Ã´¬ŸÀ:ká-†qêÉáW]ÑßV9ÕÑ+гo–N„¨ÚÓ÷MµŒñbtöþWË־ѡ•[ÆõŠoœë+vt¬¯xGµj¤KYpȆpŒGz¦'·KžMiØBhœänþ¯ëASendstream endobj 48 0 obj 2298 endobj 50 0 obj << /Length 51 0 R /Filter /FlateDecode >> stream xœí\Ûnã6}ÐsºâM”€EÇIŠ>¦ Ðè (º-v_ö÷KÆ"©ð Ç#Åk¸í"@ÓâˆsŸ3¤ÔwŸno>t}÷u¿SÝ tøí§øûã¯ÝO_uÝÞP|¸îfyïßþs¶…T„ÔÑÝ»¨ Aú;W*á’x;䊴ŒåÓ”´áK¹úI#ŒÚÈÑó ôÑ?R[TÓŽ¥4ŒqW’ ¥ó–V±|qõŒX1IšÃ“ XÑ#^|ÁuÓ1VBV™z¤Ç‘;™`Äe ׌‚{Á,¥àšŒøÓtLfï.jBÖ Âÿñ˜1øÌëø«›A—ôn‹£ÄšªôÕÎ2Â&¦¦Ødu®á2QkQ‰†6Â_/VDÐâ&'Ž%MŽ­Ò*€<ã™U;}mØ*x«vúB§ÄÔfG*êšèµOÿÄŸú„Ÿr(ŠÄ›"æ{Eb%ƒ +T63Ò0ç/Ï]¥D Lƒ €”εÕ5¦6¬|ôsaLÇFõÕõñ¯ñ¥akÉ—­¦µu ãd6É$âÇb¸}ÒEÒÕ‡²)ç ølá“Øƒbð”Ê Xzº“áX­1¥‰öi ª”&8ݲ`.·fs|Þ´mºîØÛÙ[„̉²ÌsšŽiñn:íƒá‰…tçâ$³4×W(ÛBW¹Y»m!Û1J¾Q*Iÿg骩×ug¿ÖT„ŸïÌ–èÄ!VS,ؤwóꆉo½OÏ–fdŠØðFîë‘¢œ½²åÞ¨È%ôDòÄH#Ž%#sQ$s@+ìwà,ägáÝq…УÁn Ñr@5î÷ÂJ gaËAbV¨¯ÿ„|¾P>ØnAÊØw“سäî(1ð8‚/РÆ~"PÖà)x a(œ%ÐN‚ˆ(r¸:¢ Ç¡ ã%Bøµ£KÁ²5 ‚tzÈ» ¨Sì É¡ë?ý¥c&ë˜Îÿvpáê×Éw“[½ê¦[±áƒð—@Ä)Ð  ÀM[ ×!f†Qcwp!YmïZgú0RHÈ^ð@Í¿ñA¬Q¶2Tô(CcÆrKoŒ+Xaé$(“Á3lö'÷O1<;ªèY( 3¸içO-ØŒ&…ÒãÒ`9ؾ%:„}­zROâIk6×8OÊm{(¸8OÂ…vF>÷a2F‡ƒNg®.`vèK˜<bˆ²dÓ|¹C¤%œ…Ò@'þøP¼­Ÿa2h<«qÝö€[v@&x3¸I[Õ;û#¥o<š-ÜU§Ÿ6=îGl¢ÖÿLµ=ËòÔcÕÞˆ…HO(‘©³˜c»›ºåÄayìEÃn8g®Ì •ñØÚžƒÑ´c}&Øè•T‡jåSoш/4CQýôú l½>"¿c¦Î\åÇ–m¨Z_;õÙ-<ê8}~ ÃîÝÉÅÅ$BpóüJÄóùÇÌæ>å¯2¯lìõ)ÔuÅZýy­‚µm!cÚ&F”ªM ®V±ü¥L½ “ñî9½'ßÖV*¸!AxŸœ»È´lóÔŽ#¿6¤ŸÊO¾µ*¾£• ¬˜wvæÏOôC~ZqñÔú˜Î„èïúC~q¦!¼8O®xÌÅ‘ðs*Á䯦òñ‰ ÂÕ ßx«¯ØÉ‘¾ÕöS~‚6$<––¯ñÙí æ‰Ñ4[óúŸº¹ð zendstream endobj 51 0 obj 2513 endobj 53 0 obj << /Length 54 0 R /Filter /FlateDecode >> stream xœí\Ûn7}7ààs*$—{!ÐÅ.úèÖ@> 7 hZ$/ùý’–H®y†£YYV”40àDôrHž¹g¥Õ§Û›J«ïõʨÁØð{ôñ÷ÇßÕ»ïÔ?·7êƒê‡Õ¤F7Ä¿š•Wf ¿òâàˆèø‡©<Ý©_ßßÞ(õæ§÷NíþU{jÜjᯫ±·ÞÁ¿ÿ¼½Ù<ÞÞXëñiÕ«ÇßÔ›{£Ì ÿPoµùA=þu{cLø“Ž|«-u‡¡@6 9ê÷C®ÌÔ¸òeÚ´™:‡Ϭ„Üʦ¡Mš6¥‘-LÛíGúêaä.ÍIݧ»ö.Äï˜{îÇŸ‚oÖ¿/°“ <ÂÓiûS6„kö„W½6~€æ}én Ÿ·ê€÷úå?gÛHEÈìÕ]å QÓu€îSsŸ ODÕïÕûh#ÆýÿÿV¿7gžäç:€b÷ÒÀj>çp q¡+‹ÛK ®Ùœ ÀüJtGW»—\ó9—€kÒÑË_\Ü^ZpÍæ\®.,Ô_ \ì^pÍç\.÷•ÀÅí¥×lÎàr½‘ÍuÀÅî¥×|Îàêõ¸è-â= &E#ÃI³¾Q¾ey Ü–Žv<›³P€]æÔü,#‹1¶Ñ³„×>mÇ’“1',Ƨ´ª‘Û S @ Z)› l‡”i@°gYÜXoAïÒD"ÙërÎd×i½¡IÊlÓJŠ–(™’™jJf”ÌZ§,.¯W¯fñp›úSgzI fHïåaŒòðôsྠ¼7 v/ü—aý0ÅbËA~bWç€96e¯)y¶]=Ò¥l6gÁ <›ÓÛ2b+¶Ûrè!QÎï굈‘u=R(×É|Y«œ«Ãò žTãÈt²Pf1éÛ{nŸTtŠ©Oû\O˜xaïa$Á lÀ‘ÄÙa‡6WQº&wŠld:>˜6b ×>î¤%œX%ᤳ¾O.×%­™D.Þea*cëz w@H FÌBïá$ jmݰŒœÕµÖAªŠ>3k$¯eõða¬’ ´&œ- Ÿ‡Äg»®Ýçn— ÌøÔÀÇ60ê]t²”«Åðô8 ƒÖ5 °YdÚÏ.›1§m¶¢ÀZ_ U‚h¦@¦¦|F5ô.ÌŽFŠÈ8–:+"#öC57”!‰¡˜3ÂÝ¡yEÕG&b×”q8Œ´÷ ±7‡Y[DáÛ6­61®”s@cs–È%á3¸kÄ^àþÃÉÀ2 ”ÒÍ—ƒt´ ÖõÇÃ!gAÂGŹÛÏá^$Þ‚ "4St‡ãV¯s)§î•ß½¼XN:»zDãÈF<Œô@ÙÁ3“`-˜e <³…‘ñ8”L³«Õö* üGwA‹ž{Z›CŶÌ_RwˆØ„±K’ì`íRï&jŒ¹Û&òabÛ ‹oá1Â8œTdSD¦„¡Í¢úMÛqäŒ{YÈÔaà¹({@GÊ„1X¿Y”=0<Ý¿m·êS0àá&×$úŽÊô1!,‘ #qQ( ™;`$&†˜‚#³™‘Ì~È;ÎgCyª¹¶(†‚ìѹ¶¸¦«+_^΄i_¼Rñº¾À˜bÛÅ öéC«Œíú†p2Á°~¦6ˆ Â\»Mâ`´Àœ3™À«™O¢ÄyR>U²…V„ÑG¿Êq­šôÞbhRÙG.U]h "Yõ©s¯$¢XÞ X ls¦öD\µôÜ©A<V9 嶯D­"ÒPÆœ·“gÂè2§XRᵺå_! ]¤fXïç*÷®SH 9TeXTá>SDøzu` ¢CÃh ¥÷ÞݵžaìÛhSwtÎL17¼‡‘]=B\s‘7øU¸7r z"ybDÃ&Ç’LsLs!6XïÀYxRœ…«ã¡FƒÕ¢ä€l\ ÖÂJgaÉA"Vȯ¯â\ˆ–[2ÖÝ$ò,Y#δXOÊ4Ÿ!dñÁYl®öÙDÏe]oø\"šßšæÞ¬tÇ‚ÔcäàmêêÅ9»Kªöÿ%^®~«˜É*fÿßÅØž;ߓԊ¨U7ÕŠ5§h„¿"ŽÖOºZ¸˜Ûu>¿ÇWòwS¢={gÐR`‡YÓ×Ñ/÷ùúR”}%¨¨†ÂŒá †ÞhW0,ÂÐI$&玩«c"Y4„¨¡¨Yš¼´nØMÉ„”—É!ú!‰^¾su2žérÓ¤\¶‡€‹Ó$,‚·ÛAp‡Å¡Ð½H·ì˜š•. v¨Kè< Åyɦør†poHS9ħiYà5”‡AuD—’¹¿Æ7ƒk„—´3Ž CPìÐBÀ´œ¾¬áõ p¤T‘'š¨‰ Ê¥ ×ê´.:‰é—\Q/묺€ñÕ5f¢Ë>¼§.…2ömË`·xuTíÚX¿ÚÍ:yA—å%^Þ`²|IÁïC©‚ñå¶•éf>[wê"ë(±+Tç%Z'Á‹K¤mnG—{ü7¾Æ ñ¹óCƈàÍáà´L,õ—¹ Ñ{e'ƒ®›xFÒp4žíF Í÷çzWð´‰ËŠ™‰¡œ æ:å¦e^‰0‹ðÔmu´ú3”P}ÙÌ_#ǃY—b2Çj­]ͬŰv:®qõœº'û õ«c„ f“ ¼NŠR0-q{m6äËÙŽÔ8”ò~[K v†ù®ºüÙé^‰mföõus¯GôFoóÆu„çÉÕsIUø9Ý'È¿’eŒ_jGè¢9¢/Õç{RW‚¢:í¨²QpO˜ågƬv%Í‹Ö4;0‡ý?¨ÿž…Œendstream endobj 54 0 obj 2322 endobj 56 0 obj << /Length 57 0 R /Filter /FlateDecode >> stream xœí]Yo¹~7àÿÐÏ¢m}‹ÒX òèD@~@. ˆx_öï§[’-~UÕEvÏhì5WTó*Ö]ÅbÛüúñÃצm~ßÞ™¦7vþ9LËÏ_þÑüõwÍ?~øÜ|mºþnlß/5wSc†ùGüâëÒ8΃´ËÆôµkþöå㇦ùéO_|óéÍç×Ñ¤Ùæ¿Þ <üûË¿>~xxþøÁZ?>ÞuÍóß›ŸžLcúæùŸÍÏ­ùCóüÿÔ.ü¹µØäÎMó°¡ÉcS÷ÚäS¿‡^›¦Ôm|mgèœ[&øæþ<¿³¡é!tCË º}zméf ž[CÛz¨§°pϯò<øã Ìϯ§¿ü—àëæ9?Í?¯a¯ðë <ÕBØ( œ_‚ð]ך©‡Ì»¥Ý0øpÛœá}¿ÿ¿Ã’ d^ɽ‰JogÐýÊÎñç?Î_,¤ß5_1¼þÿš¿(g^ðç6%®…ÕºÏ5ÀÕ/ݸ¤µpàZõ¹¸f¹²ˆ£›—¸\ë>×ר.Rþ6À%­…תÏÀ忉º—¸\ë>××´ï—´\«>W—ïÚY³¹ p‰kaÀµîspuíp×ÓK<ë{¨LªZúª^?F¾ÆÈz˜Ç^ ^õ)D`ßÍ}e¸ó ¹´‹À&Úø²D7Kë¼{ÓK+5E›-7â‚ácŒ9ÛY6@ÑÙ76ÙtѦòÆÙ3„ÜÆ2aF7E3Ê Ñš V“s¢]ºXmW²ß4YÉŽû¸~ÏF¿ã=ûíG0pÞàË~Û×>C4mM4[#Qœà¤o΋¶Ñf5]ø¦ƒqœbœ¸û)·ŸÙhãP9Z0íW-}h‰'àò%Í ¸@ŠØÛÁH–ßn§XQîÇpÉ#[-ìˆ~Ä¡uig#€–ضà²{˜®‡^ÃîÓö ÄÁéùSÓœÈpS -®Y¢}Ax<<¼4«IÆSâ¯@æªOáÃÃtÊ™¢t~þb§Y0¬Ð>…–°¯ÀôûÄab B>Rø=pª{€³pÊ‘wž*xL°ö®¡®óN}’ñwsì8/CvsZ±¼ç;‚˜àÑž“µÝ¢/¢¸EÝDt?ͰÉzÁ¢54V'^)Óòø’éìµS@lˆ¼?xÞ!”"â=‰Cakl–P;ñô‹TS?5#OmÔ¢ÖR%_ÍS¾{ÔóÊ 3ªŽšò ˜µLáÄÓ—e¸Bb_u½4’ ™îM`+«|øyY‘ êG·DÂßöÒ!>(v¨E)Tüöd’»EPÑþ(s§¦ÁsÊX&yZ0gx{dy4ÔKþ qvˆÌÂ#I§O ‹ C` ›Ë “8*ÈÂÑ8DxK°kÁ|u0{ÏÂÇL6¥²B[ÞëØcu9æÄ8ø [^}Ëýâ[^áUô'͗ƸÅ-üòËÊ¡ ŒÃõ«üž3ã8¯»OGÛå-!“¦˜Ä‘¥q@}I½\ ={Wr}×E1üÜùù¬(zÙGˆé›äÈӅдú ˆ» àõ‰Ã©Õzp˜Ýœ`dX‹dáÑÑ9½®É;æ WøÆÅ^–?c#Û¼W Âä¥ÁÙÝ@ !ã p^ L%p Ï )'~ãr 3J¸kÜ æÂõ<ÂN†8¬‡ÀC¤8î0Ä^ø‚³ðº°ð Ε蹡Àq䟑í…siöE´°9›fö*^G`ò:äc@ƒvK_†£Dã–ÿp¨Öm.õš'¨&o–þG–;ä)FÖPQ€F»hqÏoc—#ÏH“Ka…hÁ‰¼Šù^Lª&7R™ÉG&ò4AÁ^þ>ÿÆÃN¥”%Î[ B€Hæ ¬þDj ?y@jÒ¥\BAî L^ˆá‚ºDÄ›aQ$÷÷Kçt„¡ IçœÖ²»\X;®ëèÎrÂ+çktÎÌÂk%Œb¾†Çe8v¨eäPí¦4ì†àTJ2”R«öZx%*}]8[u”ˆÌ&SÿaI*âj1ÞGl6Ïç…E\ó(5™s7k«ðº‹$ãëøµ žvfõ­KÍô< ”Û$Ѷ8ùx‹EpÙ'„ú§Æ¯„½«P³Õ„ë¥\eá–G‘Ù„4M¶Ç íݰРru™íò:2iצqFH.B[ãAZ8ÉiͼPRnÛ‘¾‡P‚ Ú§@1¢½A˜”Žu±‹'{™*¯™D¬I¡®rÇXÌ—¾š³)©³^þ×úíB¢]ýxåÄB‹– Zp$yŸ·$Œß<*ÆÁ¹NŠqž åa{…ÄÞavÜ…Á5Rôry‹ÅõàNá,L»={‹ïó-D¯‹2CÅéÍšáb…Ø‚˜€;EÚQœ»fbd„!â`”  zXóV‚oºtk» Θ:g¼à8!ˆÆ¯PmPkÓÄ?TNrb$áú¬ 65†óʳ-ܽQh¤Òõ$MÆ}‘ÕWÁ#àzн•Å{9uM¸*†w‰…µ?¢â‚•"XV¾ò‘ÃVbÏ@ÈΛÝ;ÓöáÂQ®xB1Þ™~ áœE™JDMâ>‘ÀZ=ª‘ì ãn‘Û”hÝ6Jýd!¸)9ðV>FЄÖ59V ï©*Hø.è¸Ol©÷Uç²Ò"ŠXÞJ±÷a¶¡ÌG¯˜MŠ™Ø«¦„Ã>1^iÀ ÝDÀ7èb¼RØ©Ð-ãøppË&<šŸ ³Ú ÓMKÅÈ׃³ã\è&BsX3ò.§‡ ûÎç°'fÃU£‰¬qEàùT¹+êÆùϰów6xÖõN…U§½NÁ(*ºØNè ­Š00𒺢Ƈ*Cˆ}X"Éñ ÆŒ Ššâ2„‘z²§X–}• X¥Ÿe-_è¶´OâºqßCªLÇçÈv/‰@\ôij0]LQªL”Í¢ëÞÙ˜’ÿ…Ê_¼-p£Pø„dáü6PÇ÷9Ê£·–|”mG!Ø©Üÿ&“BÀ*!“"ŸŽõ,ŽJ‚*|vÙÕ3S2ìrIÂUNÁ™" „Â~<ÞíʧªJ8^ÕíJŒ´“ìÓÅZª¨l*·HÑ­oñ ÏT*åTò¸ów$ÿºÀ«Šò ò¯—ä冷¯Ök$©ª²¯‚â"ëX Æy@D¨bA¨g(’‰ª’Ùa`+ ÊÝUb‹¿¬-½,)¡·åz;A/b „½F–÷TKŠð­a¿mm Œ )|Å%¬´ê WµïXuëW6¾Tto@ˆsUE⤋n¼ëÜf†›¦ >QýLQjX…Óu”y˜ß/ƒþ**\â;$fVúl}xK°ªL‡FÅø” «ú67Å7-ˆ·Å·›â›¢R)MÂI*ò(,À‡Ê·™"Î~ wàå˯ªÜ¥EîÀª2Må^QĹ4¡ÖËŸ—†ÓkδLãªu»æ¥œùÀ™úÕJí2˜9×úQ“pV}ÿe0‰‘5e£ |¥y„oŠ*×ųÎ+—¹+ì…k÷þ`ùJE!J,QH`îë>ðL¬8òÐÀ]àéàÈŠòŒ¦L@Ü@8Cµ ‰Óõ,þeTqvtµjæÂ5kx‹†þ³+Ê–<\qîFVt»n©âB‰½í—®÷A¯Ž½q€E/Ah˜-Q󳨜f\M!z¤ãÄSUeWÍÄ·5E"äy6žH>Ïk0Ácú³{¨¢ºŽj¤ªÚ“F=L©ßùæUª¦ITÐÜÒ%¬p…ÏIó˜Xuª}@>oy§p‰¢©J^eæ-ÏPMuåªÊ8'ü2¸¢*f†•Ñ (|§šreÝ()?–øDåAˆ¤¬d`>Ø’ÐAxEQàP¼#B*…‡ÏkÎcä}P\,¨ˆbÝxÅÈßKi*Œ²Slû …×-)Ó7¼¦‹&à ¤@á"‰­•ÆXÓ»\íÀÂ×ì1ó®ø½ºKÜéû¾<¹YdÛµS¨å¢ÏS_uºD‘m©d“¤ÙˆE›l§ФpÅ¢MÒ-°}•3UÉgEI$EéÕ±9â]W~I“€°/L­Ñ5íƒuè²lJÂæ¤}DÅÉWŠ5×”­’¬ÈyFE™Žï{[¼$As44Z-QI1Ml,ÓȶN.™a^%e¶ƒÆv Ô,•¬]]ŠLv…”z¥bš¤.AOڇת¹ÊÝð˜Êd•ÇäèY4¹%.Mf¸ærPÙ«ÔÂ-÷*SG*°Ã»\êÔzª–>z³J´™+DÖÉTÉ—xªŠ¸`•qÕ:wå•Ô›¼d<²Y&ä[ UUBän 4MÎaª›æ|XîÅšu~þ”„ ñ9öwsuTÊ´ ¥¤‘º¤\)½KXãáiÔEdöÝ'auÄ9¥cW¥ÿ–%KÝJzzx±6ÿ&1Fáå!ÆÆgŒIÀW¸L!PæÅ*Wi=Æš¢-‚•ÊR5…6È=K^ \éh0{eÝÿ*)dé-(]…`ÅÅïİØ’T!‡{}“—kl«à^E*û>탭(7‘7àîãšùì üCZá*?AÃQ”^ôJ©æZÀ Â'Æ8Œ¦p™æ)0!ÆÂ›‡ÅX¦í¤fëÏŽ¬)Í?RšIá+¥4'‡An¬cšqN9+U‘fh`gš”ìJ¤õâ "T©¤ÄsØu‰£°fMJ3‘\ çŽk&¨@èå³s¸ˆ™îÆL7øN²/ÞÁñËÇ÷*ßH-pܧU‡I5E%yM¿òyâ·öWÝà'KÜCTZöyÏË%¯5ä®É½:,Ú¡¹Y÷>1¹÷àó;Ñb‰2»‰ßœˆÂÙšäQ…™.=”Äkýš^[ºº[Ô.JÐn'ÞÙvœ§¹–x¾HÂ"ÏÒ.—£*Õ-0ƒÈf„ëý%¶l¥Óèf‹^—ÄL®ZôZÁ/˜¹U{&h3ö!‚¦Ï\uŠ\ ,Ù¦$ŠMjÔoûŒbîèÀQH©¢t5 új ÌáÑ„‚®£ Š R]Ñf…¶*•ôÀ¡ïüv²€iÈ”ùÚ-eV¡@[Qòž yÂNS™B¾–É5Êm×F/BÅ"†8*Öif(º­™£+«—Oóp”lÝ©™!¨]Îf~ƒy<©JHaH1©Hu<êQw×] /ÁŠÀ>NßÙë˜Î†‡k ÄÔéøË3ïr)åò?åÃSØ¿êµw*+Qx õ„ªúa¿u%ípíWà=Tª±FæCZ r:éé ‰©TÊæªÌ¼²›!B( ‹Üâßhã= ¶º5¨' °ðÂY]”Bx{^³¯t‹ìÜ’Á‹•¶K5Jv*@oà"‘™¬¬ª¬žz¢.¼‹ÔvE’™ß`H$y¿={‚æäT(þ¥_W©”¼‰¯aÈ©¥ÌZÞ¨%‚f÷ª§*Þ5Nr×µfêáßH ý¼N×§ÈùÅÀ‡·GA:è¸s vD„‰9(ø„|žÃÍÔÆ<žzøý ÜeÆ,ÈHâ &ïÿÈ9rr›‡Ä•Ô/%V&T5F·ÙÖòß]áÆì0ÜybcÖÇëRñ‡l®OùaƒÕµfǼžÚm9óRj¾OIVHî9“ÐOgI'ù>D'¶žI l"'5‰Þ]F¾íÚ>›ñéÃ1'"„@û0«há"€#¨8vÎö_uTþ*Ö¨a⇥A‹fƒ6öÒŠŸ:’VfBõmºS úˆ'ËÓ ‘ì’¯eᦱÙk<¯ÿsó,ê\endstream endobj 57 0 obj 4891 endobj 59 0 obj << /Length 60 0 R /Filter /FlateDecode >> stream xœí]Ûj$7}7øú9IK}‡%`íÇM ù€Ü dv_ö÷ÓòŒ¤ªšR·<‚Ypb¹u«{•N«ëêëíÍ窮¾­w¦ê“ûùå÷ê—oªno>VŸ«®ßÕÐöî¯f7Uf˜„'>»Æq¤vãÓMõë§Û›ªúîÇOmõðoõñ0š4Ûü×ÝÐÙ©…ÿ~ùóöæþùöÆÚv|ÜuÕóoÕwO¦2}õüGõ¡6ßWÏÝÞ3ÿ©vüP[ljŽM󰾩ŦîÐÔÆ~=5š¦Øm<´Œ3uŽ- WÛÕsdsä×ÂkÙçäêêa×ÓK<Æ{LªZúU½ÞG¾ÄÈú˜—> ^ôÉà¶›û¤|’‘¹{ΕێÕ/Ë1ÇÜ«¹‰íÒŸøtxYÈ©ºwIãt|¯>mijßvÌŒüïæHÐ&$f枟»‡= l/»‡}Né3¦…¹ž ×ž â.z=øg~=8Ìnö02¬§™|Ž(vL݇8»õ-a_Ÿ+ÍÛû0Ns»@jÔ~ä~@Ã;HÈCK ü#+=‘Ë82RãÁ·ø5Û‡täøLËŽCHθŒã üšAÂ-Ò™—L~˜ÉKSû™-M?Õ3ߎvïhišV<oz¿>Ïu3ùgR®/ô8áé…¶ ©åt`ñ ÌeC¨…Ùý8¦K×cÀªIûJmMœ)çê ×ÈîÂëd5¨aßÒ°+ô¶f1;ržAjxÍ1Pó¤vÁÏŽ¼hPq…È”(¤á>Ô-kP¹(„ÀhÄ#l@N”ÎNÖz×ßœé8žv Kd • „BV‚ÛGÆáìÞìD—`ŸR÷cÁÙD÷œR’a%JiŸ!KÞš/ìg[ë„"Aè>Î:‹‚DQ£#´(´n=’•ËÒG°ÞØ+*cÁH”—fçEG6!¢â­œ5çíᕯã*ÊŸWLÎ×7h;„a˜f­Mz ,쀅‚#‡meatÛõ”’ÚÖç„n:Zø4¹ˆ²¼óZDðÝhoÑ6ìì„ÜhKy2¶í Ur¹sþu¡jWÞ9×H)–dUGÁSp¦ëjüB!¡%ìùXT”…Êòü'ähPìLV£Z4j„ö ”eÅqð á.V…$š”NÅ W4)Ò -B¤)ø˜ÜH“·|(Ÿ1Òäó`U¾ˆ¬gÙÊ:x§l¤?ôtÚëõ‚Öm&\* h ª¸DÐA`„]hì’Fg¬#¨åºcVB<ö¶ÁÁ'ïëJóDV¦9÷×”ï…Cˆ5†’sªÖ0ʯ*Êmµ^3s‘þT.–Ø&L±4GmBÒ•Uœ9F&Ä1 ÒàVÔ¢`w„,=Xa¡ö°÷¶ˆ<¼¢FÔöÞ5H \ŽJTíb¾'¥#ÚÞ+—:ĽPà’%ø:¯*–®Jm=I½Ö£8}£ƒ²+Bu#8çè] àBð¥b 1";§e„4fÈ0ësG‡¬#ÜîygÝM5‚` Ùa;B`†¼pþBä«ÐÝQŠ?¼i§ Uu¶oAØ€¬PlBñ©a[l k˜€’hŠQ mJo|0wXä)ÈDwaYŠT²u¿cÄo• ¡É"4 B+( K ñ4šœ AD }j óJÖa#‚Fã©K½­ÌN–§Î¼f4¡8‰ á)´A#ìtL³Ûòšnõ…ž€ 9ÿBë¤Ýp’¡¼ûâ^r 8"0 ?#Ñ tÊV4 n#X¨¦Rø¿ÆhPT¬YcqÄLðR@ÌðJ¨àN±; AÈæn^FÈ‹VõZ[&v_H/‹Õ5 9õbx™7©eˆRÂMEØ¡LŸAÌ`ô&¤úÆ{ÄŒÆ,"žÅËt+£>Ÿàelˆ‚—,Ä€)î|A —ò‘’}hþ‚Т/ 67 '—Ú»ö¥Ô.lDlƒw6eñ¨ßÆ#9ØŸ\é|±ÆwJ¨nªÙëÀ Yu{>9–Þ(Þ¥P@ c©IHOßúu¤«?½ã÷:5 ªBq% ëƒó‡uÓ×;UºîSþ¨\uŸ‰â‡òòÉs1ï 1ßÒÂe?„ k®FÓ”# YnÂváµàïõÙR Içîu¦<©"F0ЧTX¡(F¤(R»o#ìB°&(E°·ØKr!îÐÔ0'"îÇg 𫉲Žxë œ?©$Ts3ENeÑØB@¯Éèˆq€õ+¬Š „ÙªRÓ‰(èKw o»òK*ò n{tN¤¶bœug]ª2Ûë]aôêoˆB¥yh¸S Ê¿÷ô–¼4*ï†Ø´8Áº~÷Í.‰Ÿwü5@RTÍ·”®BÔÅ÷š­‚ô|xàŸÀªñ6ïR“e~"¾ú¡‘*©´.øULGÁl‹/oLèñ¸B8‚’à ¾(Và¼Æó\^X‘UÒ\7£ >!Ũ ¸Å•„žXu­¿êÞa¿EÅG‘œw-Ô;Q„¯z@ÝJ¥. PÔëÕÚVr~Z;8MAçP~5¯w)b}KØç¾Îä>.ܸCº£se÷ûS) 2EøU,xÌظ7ˆïâu3Y§FB?mH=Ù¾ÉÀˆð-è†Ô]Ý{¶™ÅçµÇT‰õ}½dn-“=zD•öwKþ“‡ƒûÒ¡‹æŒnlÕ•vêH]™µ­c8oAùßCÆ‹!xxfjƒ[gMCs ¦ñ¸þÕÐÛÆendstream endobj 60 0 obj 3133 endobj 89 0 obj << /Length 90 0 R /Filter /FlateDecode /Length1 13784 >> stream xœÕ{y|UÖö]j¯^ªªÓ[º;¡C$@!@ I a"K”%ŽD‘_ˆ( ‚ŠŒ(£#n(*¸à ¨¯"&¸áè 8ŒF„—ÁÉ0Î7*éâ;·º³à«óûÞ?¿NWõ­[U·Î=÷œç<çÞÊòe+ª 5#Š¢ó–Ì­ ]øú(BèBؘװ<øÛÉÇ{AùÔýkAÝÂ%ÜÛSû#DŽÁqÆÂšÆWíýÓ‡pü/„ún¸¾jîüƒZCýo‚óC®‡Š©æ•¿Ç½¯_²|åÔ´© Ÿ€ãßÕÔΛ»èÞâ»°’/™»²n)ùŠy>Ø—Î]RUöýÃ&Cˆÿ¯ºÚúå Ћ ÞÏÎ×-«ª[1ö´Ǭ=¸aøc ì˜PŽDIVT›ÝáÔtÕâöx}þÔ´ôŒ^`(3«w8»OÎe}sûõ—?pPÁàÂ!C‡ Y\uùèÒ1ecÇŸ0qÒèÿËÏÅÓ°}Û'<å3¹b®‚‹or…Rs…9µ¢£(†å虋Éÿ:)”âË/þ?~Ðmè¡détžŒv£§ÑËè ôF~ü:‰¡ó$€îÁu¨ Í#;ÉóÚ€sð(¨} G;ÑnR^@¹pïóº MBµh5:€~Π§Ð²](Eçq·ƒÜŒ&)…–Gátm@OÁ,‡¼‡ªÑV´ò¹€³_VpãÆ1åW‡BicJgöï7qêÕcJÓB¡™ý™J3z”‡ é!= ;ŒÈÑøR25¾‡GP”kföôòů¸W‚¨6:ŠØì†-#c‚J@,Æ®Ý æì½ò(#ªƒÚá5‚`¬ h°­òˆÈnK/ é¤Ü¬$Õü¶ØÇáÞ‰æ nÜ ^µ¡IÄF¯D<¾’ÀÃâð…æË8 s:®ŒÞ+ä~¿[œ†0ŒWzÓÐèhæ2ºŽË¢dÛH:…ˆœ'ÁujLÀ¤)¶L)‘Ú á’ö¶NS énfè`QLe¢Ž·ÞŸyC¬_䊜ñ›G¶)Õ«ã#¡O»aÌæ%íhr4ïß¾c¾3>Û<ðtÝP©‘ñÒ„”™Ò¬”E)¼¤×¦àdgÒxüÝV0Qâàƒo±!,A˜% †[#Y™}D—åˆZV¦¸»uó±–Q xÛ:˨lÂÐøØ3æçÿ6ÿi>û5N‹}ñÜlYU÷ˆÈ(;ê‡ E0. a˜l FŠvæ˜54݃C Üd˜¹‚”Ÿž]¾ôié{l4¼œÞšÔ7–Àƒ™ëHš<QMÓÐûèÍK¼7Þ¢5´ùàQ-=Ü·ÀÒ9¸o–ÎìTÔ÷µn8‹ [§T2ï=rÆÜ÷“çÖ,>=ºt>ž¯[:ϽGdžak'’Çd§AhØ>Ä>Æ>þ*¥Y —Ùt—]ç} }—YÈ—¾NÌ+jÈóAÇ+Ã"H ~cèî4‡˜ÎnÂ{O™_›âÐg§ÇÓ=x僯ÆÓˆí»†»sKqÛ⸠tÿy‰¹y>޳Ÿdºßp±ûH@9¨":”¦h)9Î`Ê0g~J4e•s£ó>§"MÈÌ$†Ý0d¿Ñ«H_Í7ò$Ý£É(Ø[wòc/Ó>òµ´·l‰·¼íÇ:,‰ó>õê@âL€æÞ#°åâb!˜ŒÇ@A/œ£zVÐÍŽèè½Ïo}÷û÷ª O½xtÿûOõîÊ5æüfêsñõ7ßrÏ“kwý¡²þºkwM|ôm³èº±JC{°ñÉ”k¡/Mænwò£Þ õÂ{0ö é©c4š±F—²FJ„>ç$nLðjnF°ÊSï\/h©A!US‰”:ÒÞÖÒr0žP|‰V•®¡ž‚ >´C ÆQeb= [ƒŽ¹Ÿ»G䛾yéóÝ·vE“ùãvüɺ;o¾kõ Ϙ[wNÄý[Nã´`ÝzSÇo?<>õÆOÝsê§^‡ì5WXøÊ|uB4×E'Ú‰ÇÂæ§ÈÑé¦\'Õdø{Úo—£vŠïJFÒOý¸ËO÷vùiÒKÍüÛGº¼4þ#ÙžtS̸"× 1щ‹®n0åìQxÄ󈂪Cqz„4ѯ†Q6ɦ}¥\õ2[!B‹¤j‘m*F«sÐl~šº- ó՛РR/¬’ÔFÛmhYO7ÊëÕ¶uÎlI´©»ÀsÔ‰Ó¦ò‘%+:Ö´÷dInÐRÂ&aK \É?šGﻋ¼þÚ‹tǶ?z|Èwì!ç:þEk/¢ý:Ž1ܨ„>6XÞP_g6‚éßéEÄ1Â~ž³Ä¹Æ¹ÙÉ9‘äîôâ<ï/ñ"-Q>Š¢rT©Â]hz -6uƒ…ã{µ=¢Å»e· áø’øp¯Ü½¦þî¾âõ·/˜³;µ÷5Kv§öé[ŸË0çÌ™­;;¾ ®™ÑsñÑä\ÝÄÛÄÇ@/ŽC/§ñ¼ i" 2å$ž“°MÐ削J9ùR§˜'ÉTÑOí&eñ–èSCK¥é•ƒÞ´°¢Èkq¾¼%-‚‡±8ôPÇ2aýx+~ë¸9¤šÿ6‘ÛaJê?E†Åßbú¯À•\y ¹Ñ¼è@Mw¸^¢ð»È…¡XA’º U&5#Ép ê’œŠµÌëFe†BmÖÎ+ïX\K$O=ǺQ fR v‚: Ü‚ÑÅ󆡌(ƒÍWlk¼fùÝu#ë¥ ]%¼úîGM>ŸØ3I„Ÿ–âFÑ4; º pÑ£ekƒµ[5N͇K4ÀsO·_ùiI`ЉAF{B]l• ÁMyfyÆ|¨Žãég^ßðü»~móÞ¬$@óp¿Á9õFëg£Ùó×Âó'óNàaÅÑ ¨wWÂqNѰI%Šàaˆ·iš,ò>_·G"Ì[,jÅ.tfá‚iÈ\öZÂLŽmüvù-vƧ̀7»tmS#NÝý-±ÅΞÅU–¥öO`m:‹µõÜ-Ѣܵ¶9"‚¬.hÊÄéݱָ«~>Öê¿l…\Óui¸…<,žÄ›XžÒ?šE“±ÄOæ'ƒt˜óHͩݑµzn D*£å!ÝÚŽãóΡöÛq–íAω–!¢(U£𣓑‡K6gq4FiS-Jbµ’¼²EÄ=Ù˜bÑÆÍƒBÐ,ð)ÄÐi ˜ Ð.Us•»V‹EÎ…t@g.¹§ÛÓ*#G,Ìh±À<1b÷é‘êd`6lø&þ±îØü›;·51þÝ«?óVîýõwmˆuÔ2™€L1¾@ipÔ;ƒÇ<ÂÌ ª,Âã!©PºG§ ŠQOà •Dçâ ÃzÈ}ob´ oŠqkf®:ðãã1ˆ^µŒåBV¬ ;*ö›e_lo²o²svN°2ƈC§¨j•Z¯®U9•J‚ââlyÝýCä`G¤M;ÈÂCsf°“½Æ +³t ´üD|©>ÐÚ¿¿7í¤Û:®ŠD²ƒ±š‡/~ÂÍãÿº¡ÑÁ ÅBº!I)áà©‘¢¦ºúº†&9'øç8gùë2VµZÿ?ñ]÷dö ¾!š¶tñ°¼83Õ“ûMA¬È¼™öHc8ã¹ê—Üòþžš?¾ûíEÁâªß/Ý´µqÕ–ûù}»®0šŸ¼jþŸCŸ›ãf\ƒkñþo~)öЛ{¶<ý.ŒÕÐæ°i͉\l',Üdƒ`ÄRK‚°ˆÔ¶î˜Ô.E"¢;\‰˜%Ë8ñÍ’q%Ž™KÏã~Øõ†¹ÿößæÛæû$Lüf-Þÿ:þ1~М OÙzØË Ì}(ºd£kmšªÙ‚rP ªA[¾œ¯ä«ù¶¨U,l'óŠWH‘ÝÊ`y¢>[o—+ëå[•wd» wª6A¶c§aƒÔ#!› áÖ¡ø=‚r: óõ ½ŒÛ%è…š‰Ì Â~­®BoÂZ Clñ¸£B:šåÇÖIv.Þžºê¥õàÃçÌÅÏ_ÿàK·¿ÒÈÓðo¬ß{E|?ñÄÏ’§n¿±v*ùÀFk1¾¹Ñ‘2pQ°Éb€á•ŠÒÛxeŒm¦2öˆ_¬4)+l›ERd· ª˜¯buœŽÄ2ÍÊØ®Ò"g¨Ä±$OˆÌEX’–`kT°gÝY^·`Ø@sØ</x.þiôùGͱq7^Ï9:>¤ý/ Ý|HøÀñyÀ3?ª‹–6Ðn=]ÏqîÝËQö–z§{ç{—{oõ •º€Ø 'ÕëÇþEÂ*a£@u]Pqªv²¥-Î ©Èr÷“wSÌÓN… îžMŠàÄ‚r?±êŸ3÷ßѰùðþgß=¿lÃô¯óHåî¿ýcæ‹/ݸùú=“?ýýŠ?¬™r¢u7Ä”€S“Aþ`œ}Ñ3ÑÆl³ f3Ô@Šèî”Â}g* ƒU}RW…×§n k}ƒ µç w€f2ï„`…wfÆÔ¾UÞꌚà {ƒw}½×Öó"’“aº—jh|ØàÕL—4Õžã"S]v-ëi`fžÜÑOí;öíšmÃŽÅ4,%'Ü ç<›jã‘Р2cMÈu¡ÿþ¯^ß÷¶ß{»ù£ï]Ä«_y`Í ÷}I^oªªj|“fÇîzçñ{ÿò@ÍËk_úöó}X¹zûžæ7T=rÛÙUÏ©]4óö•lÎúb ÇæÝ)r½ˆ ¾§E´Ò"ÀªÜ€cÜÑXŒÅ¢ œÎ5ÑL‹¤Em¼ÁÕŠTæ¤}/Ê‹·%'‡0l\øÂ'\§Çbx´€ÑÛàïc š©hH4Av ÊÕÜ"n·‘ã8IâÕRÄ{lÝqâ0-¹:–@Ä*Æ. [ED±ßXtÆKèMùfÖàx ØYÞÑfNe‘ÓŠWíð,í[(” „·)šÛ–ª…m}µõ¶Û4Éf ^3 RëÚX#­³Iµ®9µK§Ô‚º‚Te¶c×W_a—Ùþc'æ‰0Þ‰çƒg=fÎ60ï7gÅHY¿=¾ÑbáÐó&.Œxà¶F„N#%ü4P7ƒ«âÖA÷Åb±¶HÏI `Õ!»›˜:ãÙäcb×Nón3öÓ–1`<´Z­C ›ªeŠå1y"°AjûIË.ÊØ)òq<šoÿ}'„Î%Œ©9@‡Œ— ¦K†s¬nÞî¶)„Y±ºà4âñvX ›caÃU·h(°áÄd²ÒÉXUYÑ;v-Xõ€99\@öÅÿœoþíƒÒ®Ëÿûn<‘#‡ž6›Íï?ÇüŒ%›ëÛr¤Oß”¢ Äã2œœÃëÏèeãì¾Ôô€Ê)i˜ã%NFŽ2ûXo™)eòØ´²AIž +–yR‰SËŒ€ ñ"Õô©$RbAR^hQ$±Ç]ý©ôµwüMkkïèèôÒÎ->Y®¬¡l ¹¬Ü˜ˆY°…h–+‹BšœõdÝ—w!Ó¥÷.ùzÉ}KÏX‡f|É}pûrü—øP ‡cø€9–m1ó“˜YŒ™Å¤‡;9o1/‚ω,¥Óé|ºœn’yHÔ$YvB©,^ !øU…š‰&’ÕäµucåZ¬aïê³ÈY¹%J$Œ êÙôØKä òоø3”;fÓ‡~ŒÓ§;¦Ã8œYÖA¼f>uy4ÌsCc3µj­QÛ¤Â* F†Á–¿Ý aâlJRX³ãëP¹‹¦AÓ3ø¡Ï~uÈ|Ól¿« ßµíÙžæLÿÇ;_š~Ò„} @# pÕ–#£é¼!•IsðTÙ€çRíacî³õàüVŠÖvé¼_eމí¿Ž¥ÌäOcf ‚ÅÔŠ»‡x- %Ñq í×ÑfÊàÊÈl®5r›Ð:a+‘¬ÜŸh˜y1¸7iµ€„:«ŒpAòu<å%,²¹+jçU¶Ya±…Ñòd¢Ÿ S¡DÔ&È,~WãåϘƒ¸âŽítÁ…C“€y‚ìµæÌ}Q;š„mÔÐP3 §YË%, +ÐI fž§}¿:‰…¶¼ÄÖ—’“þÖ¤y‚ X Mlv¸cÛ·­®4KÉÍoþùN\~ÞÜòXÙš§éæXÿ«ð'¶öDóä–%)èÆh™ éñh2V™+HYAÖYæ9…“²\ HœÈVýd \Zl`ƒ[ 0´—"jCjçŒ÷ȼ6Ÿ…Â]D éœtÕŽµ° ³ pœECÔ¢6üc+þññ}Mûð±oxúc2_ÃÇI³0‚·€·»Ñ°h¯4ê(I¢Ë ˜ÓÆh34Q‰©LÏ/LeâÊŸLf2ÆÄæo9üŒùs#^Žû=yèðÓošqæ™/çŒÅµ8çá•Ã?ÛlûËóä8xÂYó„ž\”‡ÆGûdÀ¶pï°Ñ»·y ß${›­7ö¥+Ž«xWEzNèªÞýÓóÁŽ|”÷;æÚÁîFÙMòEÛ"lž„Œ`Õ¹XÙ[.Œê Ä»ZˆCS¶®R¼¶Ã­ªWYµuÊ’#vdЧfÏ>%f:ðcBnlü¬ÐˆMeþõqÿґЬñ±Øí‘‰ÏçôÙ{±OÎó#8Ȳ“×qYB)Ê@Y׎®õ¬íM<½ý9YbPQr‚~Û…^JÇœ;l84{j¯Œqà‘·s\¸Ü—bø‹Á@0/Hƒ9Å)šUÊ•k•»”ÊAåEVrÁl[€ZëlZSkɳ&7#GâEÖî'/Kð…™}À®õ>½4‡‚E{`Ìú@fÌf ܺ•µQÝÙœ—Œ}ø½ãÛÇ›çÝßûí–߯ÆÁ‡v7÷¯pÍꦦ)»þóïo}×~ÓMò°‡Çéñs9µ=pÜÓ„Ùûo¼:ˆSñ~¹aZÍð‰b°²X{o 4šëv¦ºÃξî*ç"÷ ç*·ä6¨è4d,èÕ6} Úœ˜+öõˆeíÇ*Û;3Wg–öæJ1 …ƒ ébÜß4aûÐ4Íîݹó…vîÜKÖ‚?,ä=óˆy7^‚w˜ç°Þq½aÀ|vm’+Ê€d£ýïÐ0@£nAëçR—q—9ªÓŒŽ¢å¡|Tþß*ã] s @OÈÀDÎêS¢kÀ×â[Hó¦«.»mN=w¢ã^@ë{ÍÏŸ­ýUì œí+æoW€¾ªA_~45Z¸VÄi.¿—”É2qv»Ï †O”¼ò ¨š<k‚^î¾ÖÝìÞáæÜ©‰·-ZŽÄ{Ì[Zo] +–vz©žèÖå¿Ṳ̈Ÿž.˜ò-Þ÷ö æGæ&˹¯-gýÜüÔ†§ÅâOGñ2œÃœØzûÂ(ùRÏÐNoͶܵӓ-GN¸·::ù溭­À ›¶N®yï„#$ž=û´r@’{‚¹nd#¸î¨è‰þe›FôpÝcûÁu'Œ4O±•ó5k%AõFåÉŠ„¦°µ›8ÉÍ´7ç±÷œýO}+5b¹\{rA¡pÈPÆn-±ªPkkJ,,˜¯Í³ÿçì5gqc­%À<ÈXÓø¿£ÞhV´¨—ª¨þýYÔÈâS ¿ZÖ«¢×Û½þÚ‹ë%(Š" ²à,a¦¾HhVéu1¨ éºîAa6eÕ‘+±ôYTy‰&»_JènÈÐK§¬xNgtêìÛ5ë}ã…k‹ni4euͶ'yüðgæwx˜ùÍ7¿÷”=¶þž‡ï œÜ´ðÆ+wí}ðû››Ÿ¾÷O¶>Âô…sÀsúG(š"Læ‘4¹ 5s½yòSE5Ä}LQ 5•à„žŽ/й&KAŽGú[Ý\YéD ¢£fДةBU¬ª'Oê!~V Õ•ôv›d·AbY ä $ç Äòë5{´K9H’øÿd¹˜å”˜©,6cª_ÓŽS vŸˆ˜Ÿí4O $g©çÇ8wEÇ!ÚçÂ;¬ï@6âVf“u 1ÙŒ&h4&¥;O¶k§µÓ/ÁˆI`Ι×WÇ·Þl…‘ŸÁ·[ëS¢yB×ú5RxáPuWÈ5sBÎøtNÏMðŒWR§«¸ŒÒ248` Ì5Â…vÃå7ÄÁÚGl õÛu¾FgÈ5z{gsA²981ž)rJBvÍ/HèKtevÍ® =ߎÿPÏØv¡å¾[Ÿ|òÖuO>¹nLEŘ13f?© Ƨc_‹m}õÕ­±×æ­[\³n]ÍâuMPõÚk=«ØœÚ+ÀÊÂ`á"ʈ:9ƒØ@tÌà§# L<¹Œj­¢ZY~…T›¥ì6qZì‡ã‰Ì¢ƒÇj£WÔ)"äÿx40ƒ ÐF$GÝXÙ)õÄ·A¥ìí¹®Ä»ÊQtt®:ôWÎÈwH•¬7vwé«2ºßß5çpGq±wšq² ~…r³¼ÇK¾]úÁÜQ¨zpb ª†ã£gOÄìÍÜÝhºm@Mh/´X‰Ž£ ôð„}ø8>ÎÞ†|ïa8_‰ö£è ÀW¼ µ¨;Ð`¸æ :ŠI= ¹ÿnØû¡î<ºîŠA› ÐYvÚ¼…6ÏÂv l[ÁÃÀð+,ç‡Ý„^f0þá øQüR@æûÉ·ô*ºŸ¸•Ü'ü0þþ=Á¦ 7 ¿¾½âñU‰H륋r¹ü¬2N©TV+/(ÔµBÝnóÙ®±=dû“=ӱﴷÚt¬p<çøÜ©9Ç9¯qnw~«j÷ë½õåú+†Ëh4žq鮑®Í®§S””)MnäÎt—&5:zË[²Ù$ºJâ¢ÖÙ>øã.½èŒp„“w‰h|²L1—'Ë\SŸ,ó ±›“eÙale!–bH”Xîõ¡Uæ-I>³Ê‚UÎ*‹Vý«,±2V­² -5à´d-ß’, {»“eŠÊðËÉ2‡Ò N–yä#ɲ€RIa²,¢edŠUV˜ äu«¬²ç’÷¬²ÍªÿÔ*;¬ò_­2{ÕA¾³Ê.(”Zåv u[e7k‡ZZæ2º¶®qYõÂë—w/¯^XUS{c0;8®¶fIU}püÒy‚£jj‚ÖeõÁeUõU˪昴b^õü¹ÁѵKëkkª¦V-\Q3wÙ¥•ÁdíˆàåÙã‚skꮟ;¨ðÒK*ª–ÕW×. 0$?q&y"yYu}p.> endobj 92 0 obj << /Length 560 /Filter /FlateDecode >> stream xœ]”Ënâ@E÷–ü½Ì,"ÜUeœH‰@XÌCCæŒÝ0–Û2΂¿ûÞN4š èv×ëT¹k±=ìm3ºÅ¡«Žat禭‡pëÞ‡*¸S¸4mšxquSÕµìÓd1ùï·1\í¹s«Uš8·ø9ÜÆáî6uw _pø}¨Ãд÷ðk{äÑñ½ïÿ„khG—¥Ézíêpžc~-ûoå5¸ÜõdÑŒ÷ÇÉñ“·{œðÀ³¶ª«Ã­/«0”í%¤É*ËÖnµß¯Ó$´õÿ·EA¯Ó¹ú]³µŸ¬³¬Ðõ,„"‡Pˆ¥AÅ"‡ bI±ƒ(h¶…xâ }žZ 64£x¡x†ØR¼Bì(XÎ+…‡ØS³ðC£yxCž%jó‘ç‚<òxò,ÑOžØ>òÈ£ä`+yŒ7ä1jäAR%OŽ&*y ØJcòä¨@gÉ<Äù0)y óÑÈC3òøB”<¤ä1´×Èc¸1òÚkñý ñçƒhFE‹ïØyèCa´84Äâ÷†ª<9x,ÎØFžœIã|vÜo~^ ØdŸK§z†iß`áaÏ̦iÃçRì»~ñç/Œ¾&' endstream endobj 93 0 obj << /Type /Font /Subtype /TrueType /BaseFont /FAAAAA+LucidaConsole /FirstChar 0 /LastChar 77 /Widths [ 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 ] /FontDescriptor 91 0 R /ToUnicode 92 0 R >> endobj 94 0 obj << /Length 95 0 R /Filter /FlateDecode /Length1 28304 >> stream xœí½y|TÕù0~ι÷Î;ë%™™2w2I™l$!!É@HcØÁd˜L’‘lL&@@WQ¡ÖµU\±Z «´‚V«ÖZíòöÛ]Û/.­Rm‹¶U3yŸsî$ˆíë÷ýýþùý>ÎpïyÎ9ÏÙží<Ï9Ç#È„¶!Ã=¡þŸüîg/#„~„¶‡7Ä•w²þòÀo!$,êèïì¹/þìi„ÄRÈÿ¸³{¨cv÷Þ™¡Éô#]‘Pû…·"Ty *» à®ä"€@>§«'¾é7Öãw#T%C~_w_8´å¿Ë~yŠ¿¢'´©ÿݳ¡YzÈ+½¡žÈ-8 ù|„J^êïˆß½I„:?¢õý±Hÿ}Òˆ¡.èO·Ê0|éÇ Žæ Ç :Q/Œ&³Å*ÛìgZºËíÉÈœ25Ë«ø²ý9¹yÓòÑÿ_?ÂqäaÏ~”Áç!7BcïÂóM“ѱ¿ÐºdߨÉù¨ö¨ŸgÐ ´ Fûá{ɘGíhÝßçПÑNô Úƒ ´íøiü=ÒVƒ$¹P?ú>*ÅÜØèq´›‘ÙÑ+è5´ í»;yPŠ¡îeî¿Æþ‚p/"(ÍGËÐ1î/è—˜'ç na`¬ HB?@¯‘‹`Þ6”†ªÐB´] szæú"ú ÎêÆÞD>DËaä!t zýßJ"dìã^VŽÝ3£@Oz”‡P°ÐFt¬ãClÀü~›sóßNþ-ù¯±}°òi¨ÍEõhVózý ½þ‰Wâ +¸~^à;ÇÒÇŽÀœ§¢2t!|›ÐJÔ†®@WÅîEÉCÜ®ä É€4rð-‚YW¡Ù°þÕ@«×Я± {p.ž†àå8ŠïÇŸ‘T“«É>òNàòá[É=Äå~ǽÉý•_ÀoâßÑÇòÇǺÆ6í;1ö ©壋 ÏKÑe(«Úˆ®F×¢À­oÃ÷^´=ŒŽ¡AÇÑÏЛèèoèØ‚Ëðy¸wàn¼ ?â§ðëø§¤•„ȃä5ÎÏ­†±÷ñˆŸÏ/áøŸ&QrVrWò`òÇc–±Cc/}06 ÔôÍs¢E¨E`äëÑt7Œøz Ã÷8ú ú-úPN‚¯ŒØ…sðt\„Kp%^‚—âÕ¸Çñ¾ß‚wã»ñ·ñ0> ³y¿ˆßÃá¿e€ÌÄH¬ÄK²I!)"Ådé$ÛÉnò89Jžïäçä—ä7ämòWò/ÎÆ9á›Íåq ¸ ¹K¹>n7Ä]É=ô|•{‹çV>Ÿ/ä¯ãæŸä_çßçÿ%…[„Û„»„·…·uH'ëÎ×-Ñuén×%t¿9q©Ø!^)^%^#Ó#½_ÿ8:ÚqV:éC.E ŸágÑïñ~ÎIÃKÈ#øláÜh÷-ü¡ÝHjÈ0n"éÜßñ¼¥qâ3è :FxòKàÁ÷£g@“v‘udoÅóò£8Îÿ”çÈ)´Ÿü…Ž£sòÀhÀ¼õà9u¢tq¢WÉ>àÂzô<ºO'‘ÝÀ÷[QY€fâ…”7äCô>h‡ ×¢ËAOFñCBœ<€7sïZ…GÉ›øEtÓ¦ìà »“ˆ.›Ï– /Œxô¹Âü<( ÏŸ¤QÊÀØ{|:?|Þ]AC5uvfÞ©ã݉±·‚+e[Eµá&¹43*_! Éwë3Ý9]ªÃͤY¯³æX–qN)8œ»aÒˆ·{¢Ç ;e³‚K1ÁYÒ1oеYd ±4NÕè,’?im: ól:-Ÿi=jOמ¶W—´ž’GOÍ(Å­­­ÔŠ]:?;of…=§¼,=MÌËógëHš3½¼¬’óÿÙýßý¯?üØË‡ðÀe=÷_²©¹ù|­ã¥çÞzå ¼äÉçöš"±Éw¯Ù±ãXå|˜Üya¸±3¸ñç‰Økòš‰„sõ qƒþbn»þÇ6±Sܬßl{Ôö´þi›Ž7òâ4:-„s¹ q»ýÃÞ‹%“Éo–f³ìðêD’‘9$ Ê›ÍÒ­2–e©Ä\k¾Êüº™—Í‹ÍkÌ}fÞlN­Á¢ ‰ÉínF’ÃG*E¸Õ¢Åh 0­òHÉf¹Ì®UsÜøÈ5r l^$¿5¨Á%­ÍMò_!K3ÍjÍz­F­Ø|Þ¨6P£>§· ÅËVùHÝHEKMJëÖj]_ŽË¹ÊJJh§Èù•3+(¹u"7—Œåf¾P6å ¨É.U`ºù¡ÖrG¹x®;ÞÀï÷M[wj¨táÐ*™Y»WGp J<ùo­Ì¨ÅÀª 4vò°ÓW‹¨ÌJW- šÓYîp‘‹¥‡²ìµÔ ´hŽVàK}+Õ»¢Dd4dnÕú AR©›¤»¿hÙ½Ë*_X2kÍËÕ«ù¼_mÙ0í@öÏ“§“«`ß{öš@/ò¡OƒÙõÞUüeÖÕië¬Âì´™Þz¾Éº0MÈå‹­´*¾Æ*ÈV—‚ZO¡ÊÞâÞ„‡Ü7â;Ñ?}:;Ï4 /Àr—[§÷a»pS]ÄfÓ(+Ë–©a]^‹Ñ–,’’2ÖdŒñsèN"Ùlà¤î`NªLmíEÊΧ$EÙ†W©°É5@ÕlÍ”.­ç: t¡?¢ÛÒƒï? f˜€¬[°d4šh¯`>“Ä ¸M$bßœŽ$@Û¿·HVd‚Pƒ$:Á€ ¹DŒ×ð¸Fz¦Û*ù±½úœmÜC“¿¶²ô*;NNBЊþ˜’fÚÛiè¸UÃ:§\Ú¾õÍ­J¹YÔLl—S/Õ =*+S…;Í!HhŒjHZÁ pP]Yå(Ç~œ7 ¬H;.öëçå•eN?r"ùãç“ß UZÇa·ÿõç·gäEî²O¸Åo=vëŸ_4hƒ¨ø¿€c.”–øj¦*àô^lݳe»ÝšîÎqeºÓ’àÍu¤ç¸\—ìVk–B8‹Ñn5r¹–<¯Ñî’nHÏlsûÒÓÓÒ?ÇGæ²æƒ€ô99’˵…Ù+ú£¹’·@ѕꈮ. ÿ­uª1m}ÓijRR¢Ÿ’üês1ÖPËEà)”@qJ~Û®: ªï:9Cš%ÖÔPªÒ‡:Q¾²tº¿ ”Š?—{ ßÏ9|eUs¨Džß׆ËIç±gÖý9ùÙ’é—ÎêÿM´zaY×à©bë3Õ}·,š}Ùúd¶püüÛà?¯úêɰí›Ý%£ƒ\`\tÝEÁ5ÙÔwmJß”¶¢ ô­à¬ü#Rè˜íØä¸ÑÎ[ä «C¶Èi™b˺ª¶É>`òd0:‚¡ÖgPo4;­ DW«[¢kÓõë¶étºè/Žc‚eU°¢àï3OŸŒ¾£šˆqzÖ€;?Ù›oKTcVØŸ4ªXˆ¨óû(1*+UZ4-Ú÷îíºp}|ÞÍ»“{®Ø‹ëž¾|VÇžäáøÂƒ½—<³yŽÕ7ú]ò¯¥û[\&_ «>Hc0ôBðü™ÎÍ&Aq- ÄO‚^âõf/IÚzu‚O¯EÄñlÁÉ—oDzñy¤ÃºYó” ð÷h´VðƒzPC^óš55 ¬€ÊÁòòÁ¦âZÖLªÍ«åƒsrYîpcžZj™ëƒRg>¼ì~µjj©šN)QS—†*9)êÔi,wÈãS=ÊÔ§åœó<ÍÒwʯ Pjj€EŒGëëqU¹ˆå® $çÿþèïùÓ¯½ö™ƒÏûì×Ô’wCÌø ³ä^t`M…PvM; ×Ð8Ngá§z¸¨)a>fÓ-ΩÓEÚ–‹-:§ —`Ÿ¡0m•¡Ã ÌÆe†š´F<ÏpašÎmµ‚Ûã”L(Ó+‰V‹Áé%Fó,ͦÉÖ5Ö>ëýVÞšÀ9Ç|²"ä)y#8Ñàï =vû„&LOá%•0¤ç­ªÿ—«øR·™¹ ,ô«ªÔT¤Ç)ô<åˆKzuÐm’WyjÒôO•´ž*9¥jÔÁ¨=½>u¶¯ž?ɯˆ‚<ÉV°p6@pSѨ(Ò­°õ¹§>èu—„ë¯õ]:gf•Óýé?|Ž»g×ëÛçN½Ï=3Ûõy••:ˆ™¶.à…Áól¸0(*ö>í?Qøºëÿ»Dw·ënÿéOd?Yø´KWoY¥_i¹ØÞa¹ªP'ál}¶e¦¾ÜÒ ×RV.6ËÜôB ØI‰"WÇÙIÉÔ¬,¿Wq*´@Á^¯bµÛý§ÓI œØápæzÁs0™ÔصÀ›ED ø§A³Ó*Ù›2rÈâHàuA³wªœÕ¬ÈÈ+{‰—–x‘ šÏ:y€¨*²×);èF ú]꣞C«ÇÐ*8zËŒðI±6\ðXµƒz}68qç —.‰3×—^¼L†ë~47²·5|}ÚÒÃáë¯wÝzôŽy5K´ú»Þ!Ï­hzôòì(Ÿ÷äúUÑËÚÃWÆf¬]Až]•[Q³vïã£äµ…ÞŠàÚ'L‚†Of<º7ØhŸÆ)¦CдÄt£¸CÚfzï7<…:A0¤óÓ ³`¤r½àÔëzR®žJKz==¼2€ÃÒŒô²žè8-h#ìÞï#Ìõá[Á×3ÇMdbÞZlôãVÕLÅ–úI;qDO½ hñ±ÓÊ*êY,ybøkzÅR>1z?Ÿ7úTÛ¯Öƒ\[F«@6õÌ{3x!ó8ƒÜržãÍ&Aºæ¶‹b–º ÉÀs>ˆÓé" È1Râ܆-zI —Ùô›é9ˆÑxŽÿŽ=˜8½‹ÅâãWt_ jéçˆõhNKév8ª‘E‹µUϞńª2ÓuÝ>n.ÿþUäŸW½üñ »G¥=<ï%¡OÈáÑ&ª±kp‚|—ô€u§‡·[y’»GÀO"¿ažº#Ÿ’?9…J`·qTùÄ5y$?'ŽEªýè †„ Vz±—ÏÔså\¥nŒ|¦ãi<$è†I@I1Ë4 ÂÏ™‡€À ›çeiKœ^ÿhQ †Bç\ýÈàÙÓäTë©/D†òxhÈÂB-(œö´â2nÄ?j ÁÞõùèM4â)zd´V¶d¥ d?d5ïm¶Nys ™î¹À³Ñq·ÍxƒéÇõîmwJÿËù®ôžá=‡e sí|4 Öå Ùj±ØÌàYÒÒ].§Û“‘á¢W`:ýIÑé2ÅárÚm6£Ñ1-qXÂNg†.œ;ÀqÒŽœ$NµË•ao¶Ç#ÈHÚŸ4`C&Í8#yzúÀÏ%+PË“yó.vç´¾é“õïÈ£Ÿ´&=Ÿ¸G=‹ê#óßq7ÉŸüèÃŽnTí:Í„ Ó vn–v\3éäfâEøý¨•êU:zZãHÚpôÐcKߥÂg¾èד²õ§ŽŽþë™|žLŸ•|—ÏKú“g².é艂ÑÓC?¼á/øŸýšôÍ>°îŠÑ;¨?µü©JØC¦¡™è¹àÒKŠp®!×è7åÎÆb]‰¾Z±¯ÓÇWù’ü<3gE¹Yþüç0Ê2òBƒÙi0˜ÓsèÃ2‡7CÌ3”Aéj¶¦ãôþ~0«DÑåUZ•,Ô,ûûýÄ?–´O’%gõeqYÏ€)ªByÌ -’ßi 4}Ò f›Ý¢þ¡öôhë)z¡“ÚP)ÙùUEv=Áεrµ_'©*sªØíÝX§±#_fÌéå„?ÏöÛ¢ýl¡’“/{"|Û‘¥7„ÎÇ+/L+®Šíñ=5ëï#/4{Λ’þ”õü¼‹;î»f^4´zÛuK¿»½åÆåv“eê…3jsÊ"­ò}.kè_ÙŸüç•‹Ë.«ÀïXeɸ¬ú¢µk¾švq¿N‚-ÜÌj$[1iÁ¸Ú°/4¬ ÍbÌãªÒò üYÐÂò%Á˜L˜¹FA3uKT¤å¨™ùrÇA‡èýÒ/í8¼äô$ç ­oõ9t#QØñÓïÝ‘ü({;çåçD“¯ñË7\°¯ò‰¹ùÕŸÒ_Å ‚˜¬cé7ƒ’,` ×–C0¯ ‚¥n?KƒÓœià™f{¦»‚1Å4%«¢•¢az}“À/Ó3æÜ:‚ɤË&gº%œ+j5ãÇ_”†2Ýlõalh>Œ‚­I¯Ÿ¿Æ¦é¯‚ã‘G>=MíÐÌäÅüu`‡²Q9ž:‚òÔÈxFBMËh„\Koëg8gÞ]-­Ì‹äm›)äJg’\{nZ-ªñòééi….—ÁàÉ7ç»=¿Á–É…sØ]hÎ-Árs‰×)ºó]º|¯Ù óNµºÝ’ÇÓ,xþ’ë*öºJ\Û\¯»ø5.ŒÀ¦%HîÉ.k¿œB”[a-/ÊyµŒ`w¨ÈwÉ—¡Â·fÒå „Šï€íz[ lþ1vÚ¯]¾¼Á’Ô}Œ§¹i€©ÞÅ€Gv*%6Œ„Û-ò zõú^½€u¹té.íözRd^UÎYˆ*HÚÕLeênföS$;wÆ¢} Jòí7ï}àW}°õ'ësöÿÂ{õúm#—¼›–Õ7¿e¸gϺyW¬«j³Í™cK_Y}bÕ­§uÞýƒ'>{ô{]ó®Zæ!Ë{ªš–nź×~ë‚=?¤^É6Ø?6ÀÞíxuУ÷H·‰Ç 尿í%½$]gºÁ}»x»á1îQ~š¡Ê½AÜ`ˆ›ݺB\"WÛÚø4Ûåò§{œéA¹ú*Ø3Ò=ôrVÐ;õ¥ruLAôžtI\³z‰Ñã6ùé½ »šÓ鵫ÕÝ\ëÁ²g±g§ÏÃ{dëáL©YOol§˜”R¿!¼%|$p%5^—à2 ³žÓ8¶ˆ^>6>Cø¶’Ôu‹UMV¯ÄhÁôæ ZäÔ+ZµS¦Ñ)ífúíç<'^Þrgö¶£·Ø^pÑž¨/}jÛÑß?rò—7wÔ=D"£-+Kjê.¼rUÕNü*øÎÅðül^Ç~oX4:Ì‹"[pËAƒn‹€2$ìѯ![Ф߼œ9­þZŠiœo¦Ï?ûóYÜËôá.;0ú­Ðûž±wù`7²¡ÔL»Ø¹Q¼AäDv»Í¶ }ùcï6³ß*¼,àFù:É3ÉqWë.÷EœQO§_ÈRtBºb5Ûk‘'7³VÊÈZÉŽN´ßj'ì·ƒð}ÇQa§/ÝŠé%A6©rª²<þëQ·§oÇ7n^uà‹.Ýwåÿ÷“EçoŠ®ºbëPxÁÖê¥5åøÇñ¶w®9ÿÓþþ—ä;7¯ÃÜ+Û/Š®¹ûîÛuáê«F‰Ø/vÉ;¯ÞàØ¹ÆZó±Þ£gbðPìù©?7»+¹T·MøPDÒþ&Œµç$ÑÈZûø€“?Óuô×\ ðh><—ÜÀŒ]Éò€Ï" “ïÐú±÷…—P;e3áÙÆ?ŽîiÌFßÅ!ü/ò2ù#woä_:„¤îx“>¨ZšßVé5ÃFc®ñ»Æ˜*Mß7_d)³Üc͵ÖY‡å^›b»Êö_ö&û!Ç-ÎYÎN篦£JlQê‚I-A+(ÐmI¥¥køÍˆþJ–~’ìÍ1šXŽc­LX¯Áê¦;ƒyäÆÛ4Xø. Ö¡)xXƒEôþ‘ëÁ]Ü­ÁÚIŽi°ž j°­Õ 6¡}»›uGô?Ô` ºÔzå8÷¯²þZƒ!””[4˜ |™s¨Rn×`™ä{4Xx¿ëE>¤Á"Z VD…õÈaËÖ` ÕÛfj°„l›5؈f8~3þŠåN“›¹ÕÎZ ¶ b×Ý0ÌSª[\/i02\ÿ‹Á+ÿPƒiù(ƒu”þn—ÍÝ~‹¬ü< ¦å0XÏÊ×h0-_Ç`‰ò×}­=Wk0à{nÒ`à¯çN †¶œ325ø›Q®ÁÀߌÅ üÍth0ð7³Zƒ¿™ß×`à¯r½•w5øëkÒ`à/=Ø@i’ߪÁ@“|u-F(wæ_¯ÁÓÕ¹¥1üA ¦ø*ÓYù½LËc°‡õó¢Ó~~ÂàL†ÿ' ¦øÿ`ðTŠ_`Ó`À/˜Ê`/+Ÿ©Á´|.ƒsh?- ýt2¸€•_­Á´üVQKPð¨ó)XÏè?Sü§ÌÖUð ¦åoRؤâÿKƒ¡< 2˜ñ%àÓ`àK`Z†P?Š BaHô(<+Pƒ›Pê…'®a)`ÝûP `úAy”a(PÒ í‹šÏÊCÿ{*Ÿ™‚–CM7ÄR)œ([©:Þ T ßRT¤Ae¬t.´è†t´é„9ÄY«eÐß<1´Þ퀃ú`.dsî†\øœ¹Îž„§öÑ ³é†|ŒÍd¢%ý+TÚûÀøjèlèì”ýRœÔ ÀÓí¦ŸÕóäžþ]?øE_˜óŠIuO0ÊSº¶C?=l¦ë ŒŽúÏJéÚ£0¯8›¥¡yŠ×z] üRÐÖ^Ayl¼&x/†±;oB€OÛE Wʬ%í­øKæ¤ÊAŒc‡Ûù‡aòGñ6²YuŽÕ¤»ˆq°­Õf½ˆÕt1 Ál Ççc5Q&ÉËá=Èf­rE•ºYÀ•:6“8£rŠn1˜‹X!MVU‰‹2Ú·3 ¤2ÙËÆšÌÿ°ÖWˆÍ¶ìa=ÒywÁø=¬G•ú ›uˆÖ¸¡ÖÐYhü±5ªí†ÆùÕ´¡_ã`„Ñf€I¥ºº‡BÚüÙh aò¬Rœ§´¡ù¬ï®IÒ@qûX_êØ©r•Úq"aMRÎÁ‹CŸF•(¤jßa­dQšJÔ„L÷1ÍŽ1Šv³öt¦”Ÿ=Z«ÔaÖ~ƒ6jT[©ª—¦Ù)*t0mïÖJ'èÕ¨Û§­$ÊðYn‚«LJ»Ùì¾\&R¶w`|-ö7µ´¿‰>¨ÝX§Í6¤Ñ?̬¢¢iiŠfílìNVª¶§ÕxØÅô®_“‘>xSÞ Q[íab71^©Ò¡0†µõG׺N?Ó=U{YKu%“¥;:.YTó7iœéa³¡²¹AÓ-ÕîtÏ£‡å&¤7þ…kà ë kc¬e= 2J·Ÿ%›´ÊS”¥²_a“m…ÉÀ&FÛ&wñq{¢rÎ]Õ÷¸f5TmФlÂzªµ=Œ#!´™µWgMû ³Ú ISGogÔêgZ24¾ŠÔؽÌfÒú£DLƒêJÅ8kŸšqª÷~&C=Ìn¦æVÌöÆ8Ô͆=·ú¥ßb†5ÙÂ3ëÔ]L—ºê¨—q(Ârh “•ãÅã˜ÿ‘IŒŠ™4Ê"°ô+`Ol€§$‹¡”î 𾈕×CÉrxSÙ¼v‚zø6±ÒÈ Ñ}V0iøYSÆËU=Q)Ú¯Ñ|BF¿Ú.6Á™”ENñy-«üÁñ1Ãã¶M•ç‰ýh²µT-Ç„Uõ7ªÙÌM§;Y/‘q›HµµEj÷Í–®ßÔ1ãÿ2)Û¹qÜ:E4‹ŒËtŒÙ¸¦Ïš<~½RZH)™ÔË„Ÿ;^»¶R \Ë,£:ëµgzµž¿ŒCÓØªÎ¦”j‘Ï•ŠsGNÙ6jÅBÌW Á¨Ýµ4òïÆ¦Ô_ %vvè^D4/c²Ï¥Zï›Q?£lTót¾ ÏM{'Ù¶Ô¸Ô’´3JG'í"±I¾tá8vl’ÜNìÝÿ™Rtv=¬ÿ”\õÕßFÆÿuŒ›“ýД}œÀì\ÕCd§ýw¯G×déîÑ,ªJU«ú5ù˜°¼gËÐZÑ„|,dk?—s)ß‹î9ÍCSW£ú{aÆÕÞ/ð özOô<À¼Uê‘´kûÐæmD“½«ÿ3÷SýÅ4ÿ/ªÅD_æÅËG•Zk˜õy®§8ú­;þG³ ò¹#œ½ßŸ=£ˆæÅÆaïIõ@㓹HòÁ‡¯@U‡)ðž¹"ˆ±*à)Eôôd%jÔ0K¡vÔThp*‡‡¶ªD3! íý¶×ýßº’/Po|?\1Ôé…#ʣʊ®ˆÒÔ×Û‡"¥®/Öß Å£}½Jw¸X™ЇþH%´3ey_÷ -PöB»ÕÕ¥Eð*+Vævw+Ë¢]ñeYd ÛiŸ‹†ºÆCÝÑpª×Ù¬ 0:»C1E­œ½* Ã”W—*ùMÑp¬o ¯#>]EV‘&ã°ò"­ç,w@Y µGzB±uJ_Ç\‰‹tFâ‘X¤]‰ö*q@]¹\YŠ+yÊŠ&eqGG±êmW"Ý‘]€V<ÞР¯3êïš\QæÇB£½´mÈ]¤,ë[ ]/І»úºC…´÷X4 )ËCƒ½í° ݬ²º¾Þx¤‡Î-6¤ „€ª@¸h‡Òˆvö*êúÀŠBeO_,¢t ö„zaúJ¸+ …a‰†`¡^ê†èú£À†~X`$èƒáè‚BÐÿ`¸K‰j]ÑÅöF”Ñx#CO__;mMa˜v&¢¤Êâ#½ñh°Ã ƆŠFé¾ ‘XøEBñ¨¢ ƒ t0ÊËHŒM¡c°»@6W¾§‰ö¶ÄÙRâCݑɔ Ò;@G‰Äz¢½ #Ö·º ÁüÃ0ÊÀöh¨³Öoìš+]‘î~ HŸÒÝaL BJ7Cé‰íz£a@õ÷G€Œ½á ¢’;J‰¥D6Ábz"ÝC ¬md§›öÑífäkŠ5 †k#Êàˆ£fdý ì`˜Ò_éèƒ%C°¨xœÊ ,=¾ÇA4€M@2&ží u†6G{¡ëH<\¨ š·Gú»CCtÚº7²q ?ÔS”v˜b<:@;¦èý±¾ž>Ö[qW<Þ?»¤dãÆÅ=šÀ‡ûzJºâ=Ý%=qúßÿ+éX¢ /¦…_±ÁÆH7”FX“E‹W,lXX7wÅÂÅ‹”Å ÊE ëê-¯Wæ^°¬¾¾©~Ñ ³ÁlXÑdMQ’˜ò& +ˆ3Š~‰Š±ÅPA¦k^;¤ õ Ò–a*m@g¦GªX‚p0þ‚úõz¨3‰PI,VZ YWÄ o-U#h?k2T:7RqŠã"”Ò±H8|î:NÌ‹²°¯3ÂP‹ÇÛk@zׯ¡k˜fhÔ¤MHM yœã©´)B݃¡µ a¡É­‹••½Lf‡R«€5i– Ä;¤ ôGÂQ0:ç®\*ö2i£mCííQ* •1f¥ iqŒÑ–i÷&Õí‰ÒÁ oc_lÝ€*¤LYaßF0¨ƒk»£]tèK%w*ÌXÕ?¤¨Â«Qèì=vL,ŽZ¯õƒ‘6 ؽp$Ö«­ ¦Í›!tõ v·ƒmˆF6ªæêœåS<àd,@û„‰_#L‹Öp|‚Çta!mÖ_Þ-›òxM﵎`œP|6EX¹|.lù³*ª¦+U3f•V”–JÒÊF(,1£¢ÞUåUJUåÌê™ÕfÿѺÿ¨Œ4W¢Mé!¶ƒÚq1 @&»œ]³Žå6£Óçà]³nR«s±Ôòƃ3©œ»Ÿ{š{œ;Ìp'ãœUþõÄ×W__A|}ñõÄ×W__A|}ñõÄ×W__A|}ñõÄ×W__Aüø â+ŸJL>Iècœüw' ãõ‘§*Õ_ŪuóñRÈÅÏÂI•Õi‡Ú÷Ùsœ\31cºã|ùZhÍW8‡‡˜4–ZC×ñº}ç¬p¼†Ïàëø ?—ŸÅ—MÆ:«¼ñßžüœ]óæKÇé»n2ÎYåKP1ËÐû…¹Ÿ]ÓËìKý™A“ñήùª²ôiö?êï«Êý]üØx¦¡;З|®¸j®ìGOÂsžááQ)¼óÉþC·–¬aÉáEK˶Ñô¢¦2–.PSƒYM¥ÙjZZNñö®ßDóû—ÍVó3Ô|NnÙUse²a˜¾­ð.§ž«àáað}‡Ó¦ªÍ$'möÐáŒÌ2ë ò`<íbS|(h€jûbÝb‘|8· ¿Oÿ™½¯bï5ì]ËÞ%ìmÕjÿLGgïìý${—°w-{/fï>öføø4|?€ïûðý3þsÐŽ 1òb¹Ë^,ÄA/Á6ªðîI`c°ªÂ[¬ÔyËà)W.ðBê…gKÁo<¾‚ùÞ*ŒèŸüc‚ôÈåÖØmú`?þTr»yt»I \{¨à"ï\ ÏFÇy:\%<÷ÀÃ*ˆyŸ…Ö Ë"¤Çy?+JàU‡¼Ÿzz|Èû/o‚à ÃûOï)ï?¼O{?ö^è}¥à1ï`ÝsÈ›ð&xÀº¿ A Z½7y—ÁäNy7y»½½ «êöA4zÃÐhuÁjo³’ £,RØ(x¡›cÞz¨œ_Àø˜7è½Ñ[^Äš–ѦǼ3¼1o±— W¨7][>MŽy§Á`Ùl”zïJ³d–ªvÿVÜ}@ܽ_Ü}¥¸{®¸û“þ(F€«žëoΤéØõ7·´ ô µîZû[uÃü/yµiïIÿ…÷ÙÿÁ•Æ%C#ÀåæÃ¢÷|²Ë!»›fwÓ¬{êðË›‡¿3µe¸ŒcS[‡o[®\Ú<‚ŸÀ×ÏÁߥIKóWˆŸ¨_F˹Âù--À†bÿÅ{‚&€§ÿª¥x¨Vÿ †ÇcÏÏð@ìT¼tùž?]9 / —âÐð\o¡,†—åzkÞÁãþúùýþT_ÇÎqµ¯á†âõŠÏËP@U¼ Å‹ Ci˜@)ÒPŠÇQŠÙHžÀñª8f%…c¦#¾Ò'2/¨RYYÒ|PæµÔ]ª¦érÿÆw³gÎÙÇÑO¹÷‘1Ð2lðÏ6úç¡ÚZ7û¯ÍéLÃ:(á¡ØçùÜWfç>À°MPlÖªŠæÍ¥U ½´ÊBÿ—)Z•ûÊó|™Çñ­J†bŒ1ižñø |»>:ü߀öÔÒ8j.XÞ8\»tuóAQ¬¶Ío²ÒT™ÑXŸ;©Ca -ä¸qÄñ2IÒÇâÅ^\Sh ÀT` ÉŒ€n¢ÿ g¦ØÁ endstream endobj 95 0 obj 14852 endobj 96 0 obj << /Type /FontDescriptor /FontName /DAAAAA+Arial-ItalicMT /Flags 68 /FontBBox [ -517 -324 1081 998 ] /ItalicAngle -30 /Ascent 905 /Descent 211 /CapHeight 997 /StemV 80 /FontFile2 94 0 R >> endobj 97 0 obj << /Length 402 /Filter /FlateDecode >> stream xœ]“ÍjÂ@…÷¼Ã,íB23ù³ V+¸èµ}€˜\m N¾}“sb)ݾ¹çNî'7Ñj»Þº¦WÑ›o«ôêиÚ˹½øJÔ^Ž cUÝTý ñ¨NeÑп»ž{9mÝ¡UËe(½sï¯jöP·{¹Ã᫯Å7î¨fŸ«v—®û–“¸^é0( UËa¼ó¹ì^Ê“¨íóm=$šþ:ÿD>®(ËÃÙª¶–sWVâKw”0Xj]¨åfS„¸ú5ÑìÚª¯Òi3¤µÎâbKXbB H€n+ò{À‚À«ï{<°ÂžG‚¬ ck¾‡±'cÆ0›Ñ‹Š¡Ål†>y O93ù`PCŸŒ1úXL`è“ñ6úd+Àä“è“­“+“_JË}Æè“ç#Xúd@Ÿ˜@ŸS[ú¤ø,}R(ØÉ‡·Ñ'gŒ>1&°ô‰5Wå¶ãÖ`Ñw²ºx?¬#¾¬á¸€“ßo¦k;ôM??!Ìô endstream endobj 98 0 obj << /Type /Font /Subtype /TrueType /BaseFont /DAAAAA+Arial-ItalicMT /FirstChar 0 /LastChar 40 /Widths [ 750 500 556 556 500 556 556 500 500 556 333 556 722 722 666 666 277 277 277 500 222 556 277 556 222 277 833 500 722 333 610 722 556 556 277 722 610 556 556 583 556 ] /FontDescriptor 96 0 R /ToUnicode 97 0 R >> endobj 99 0 obj << /Length 100 0 R /Filter /FlateDecode /Length1 46572 >> stream xœÔ½y€Åõ\U}÷tOwÏ}íìÌÎÎì²³¸°°°º­\"·²ÈÊ"‡"§ ²DDT4ñ¾ð#aÔHñ&xD1*‰¨hDùåGˆvæ{U3Ãaòû¾üûíÐݯ«»«ªëݯ^5 ç_?i¨qÈž<{ÒÜ÷7ù#Bè]„°kò¢…±ûþ|ÁA€!$v›6÷šÙÚÕ‹/GH6áüºk®]2 xð„œ­]×múÔIS†Í­4ZÚuô˜d~&Áù8/>{á⊢~¥-Ó În×Ι<éoVq¡›àúó'-ž;S}“‡óàÈ~ƒ–£Û¸÷à©ÛŽJÐÅhšƒîÄC²×£ èsþÔ Aס¹¸5;.{WöÞì3èY´“{3Û‰(„&Ão_ö{á£ìŸQWxâ>ôúß«lC6´Ò w>†æ£‡¹fg¯Éž„ÄÑ Ð Eûðn’†Ú§¢¯q/åúB-OgÛ²{á®jFÓÑÃh®ÃI\˜šÝ‡|ÐÆb¨õ!´m‡_zÄšp,ûLö ¢J4Þ§ýïæ2+2t a”º z¸2ý½àþ ™#hBµ` 7fßGÔÞ>O~…ÿIn†ßrîu~@öä„q¹‡Ž6úú á*<%]Èò87ÉÐbwøMA3`¼„Ú?Ãi¼hd?÷4ÿKþ”X”9”uFRèôú ÖáMcxþþAú’‰äòWîüþÒ$xë«Ðlt'ú%ú'vá^x$¾OÇKñ*|~ïÃðr1Mf‘¸éÜ<îUþøâð·+…;Ä#™q™½™?dþ™­Î®D#V@ïïCÛíDûÑÇðûý Øð‹á8ƒo‚ßÍøNü~oÀíÐÊüWü þ;þ>EüD&qR¿™On ¿ ’ýð;@¾#ÿâü\ —æê¸®‰›½ZÅ­ƒß6î/|ˆßÏgaœ«…û…'„„_ {„c¢&ýLFò»§Ÿî¬èü,ƒ2«3÷g¶dÚ³A^ÀaF¡5@ï'Áo&àû~ ¸Mè=¬ÁØ…p¾‘™ˆgâyx1Œä­øaü,ëû¯ð+0JÂ?@Ÿua}¾€Ô‘KÈpø]E¦’yd¹—´“ÉINâœÁy¹ n ×ÌMårK¸û¹6î]îSî¯Ü î4ü²¼Êó%|ŠOóù‰üõüãü×ü×ÂááKQg‹+Åñ¤ÒEÒi¤Ô,Ý-m—Þ—[€:‹¶¡çò<>Ä­àúsÛÐ]¤†’ß“ß=ODS¸¡(•¼€W“e¸” ‹Å>¤†Žñ)ë×Éäéà Ńñ(4“tÏÕ&zøáÐÀÿå_wû=Ô¼XÔðÍäQC[0"õÐæï¸n|š{ä>Çÿ$ú„W±%Ïs#€ ^å/Æ¡8÷(ú7/CÛHاäµ@ÇÃð‹ Fãjü#—ETÔ“ûÝ‚f‘ÐQàãÕè<…¿Ý…jðRô5z¸¢‹pX!zñ[d¿†¸q;"üx»z\Š9ÁƒnÅÍÜÃâäct=ÚÏ«è3î%èý~ò+n(L¸OX†V¢yÙh‰0Žÿ#¾qx,Jò‡@º-åªù8—ƒT™2m;p÷.sC¡$”3èb Hˆ‡á÷ È (hðø Å~ÚÅѤ]#81H„øw2—£ñÙçÐCÙkÐuÙ{QW«²K¡ÆЗènô¾-sš‹¢À9Ÿá!²_íJÖÉ(rÿùø…ÑNâú~¿‚“‹„—ÑþOhjÌ®Í~Ô]ö!t5º †·üZ¸”Ûj2ÃÈæìn.¼ïçhdöùl1VÑôìµh8z=+ h’”¶ûŽ}±ÝxÑ… }z×÷êYW[Sݽ[Õ]+Ó]ÊËRÉÒDI^ÄÎëºV.ê ‰Ä\3>4ÆvRSï*þxœ"øŽ] 'm­#ÇåÎcèêðdW¥›ÚH ½²»pÅ;†^i-\9óxK(¹™¿Þ69uæŸaúÜý§÷nþÿ—ËSs×J 9~\¬ÿš–üØ}ÞYîz¯3×òP›»ï8.Lò sì*å„37Ó“qZŸ„"#ê)’ TÉJpl@›ÙrinߤÆãÿåCÙcô)v8ûX¾›m½ÓçŸ÷9ïü¼îik8è0¨ÁÁ£Ç¯Y£žw H-×à ü(õmCc€3“ð¯#»»ÝšÂm6 Y_zÐ_®(zÞá<Ü”:»VA·fÍ€DlÀš–5“:²­W'bfbÍN²‡ìY3·Kp:²»î· XÛc5÷¦ è’Í ¼zäf¯5~ÜNpÎb«GÛB0éÛrIÓæR¸6ng !›•ZJ éIŒž Á^r ‘Ùýá6B­ì*Ï ØùäŒX™\(ÃhrÉ•™…2e|®Ìfeôʘ¾£ÇK=Œ%›º5ÌŒg5žbÜŠ[IØaP¨§cÜîÓ¶€N¡¿›úvÓ²_ ‹„÷PzoÛd2³ˆàŽì‘v‡Cƒ°'R(†ªõÉ Iµ¢[‹Ö¡‡…_rÏê;¹vý ý:\ô¿E–ÓUdqb¹U‰ÔÇz®ðŽ NfÝäºÃõ0÷óáÈ øò‚õÓ :=dzÌO:²Ÿm)¯‡6wÛ]ËëMa>ìŽj\8Ê+fʸ ¥bãP±?“±¬ÑÞÈÁèä ô0óxºyèÑaæ Ø?Š6µüõÝ»átº¹yjN§ñ|ìùDI)©«u•ÖTó~)•J”ˆÄëqùjª{ðí{.ÌüöË£™?=² ÷Ýóg\Ù絚=?ßðÅ„Ù_­|ú¯„tÿáÔoðuüÙ|è®ëï}*óÃ=/g¾Yó Œ1ê—=—ñïij¶{º.ŽqÓÁ£€Ao…‚ì‚KRƒÚ@ñRy¬Ø$_#ÎåZ³·«·¯.Ðßììë˜ LP.7›];˳…ÙÊs¶k¶oJàìUDA¿’-ŒV¯Ô®å¦ SÕk5Õá%+âpxJö®“1aÛá c¤Žì·¶eh©dæK1œ2€ö‡†‘4»mwi²¶›„‘dJ1‰“ºÆaZ>(š¨í°³iN¨¹håHÓ4ØGhÈÉhÆI+GšiÂÞG«E6TYŒaÀº‡j{Ò€¯táï¨9/Ý|¢ùlA:‡G@â¼f4$•­ŒF)W W+ ½=ì9=ËÆ| >m¦½u|os™9ÞüÒñ·¢Œé°œœ/%,ú"NrK¨ØTmµEmUùCaŒ¡SíÈ~e;("Õ@þüd;n¾g¸à8C¡Ji-A[]ˆÝ5¤Æ•Dh7Æëðz܆a¾7‚ïË—¶‹œN2›´JlÒú0£ÌX î8ÑNqÇnõÑʱF+Æ.ŠW,Ø3€ëþšçÍojv?lvž-,ë]À¨Ã]hžÛªñöÔùÀÄ%€»T™Åƒ½UÏô¾wúê3¯ÿü¦ñw_`=·hñ/Ÿ_¸`sf†ðêš‘#×f|:sêŽ!½;OqÏìÛûÎï¼ý'*¿â™‘Ü÷| …ð?7*í"Õc€{ .Ñ!ºm—sØZÌÐÁ4‚UéЧ¡À¾PФèhãQá­FÛ~fÏŽÔ—{Æ›TÎÖmƒ±ònµ&ÝIšâòéW™£L+Ó{h=ô:çC–£ÜUî¾Ô×äjr7yg¸f¸gx—ˆ‹ô%Öž½·ék¬µ®µîÛ=ª/8^1_¶vy¾U¿öüCï4ÿåÉF¢®Í"ëµÏ툄y£Ÿq«ÁÁ3Ýgý³\õÍvõa»§ah¦år©ˆ zÜî¤KõÀ‰¡––t¨‡Cu»\šæi(bFHU䵉tÆmŒ…íé £mG£Ëv‘‰®×\ÄÕ/ÙnàÔ?¬ÒKl´ì˜ÖM®q#´¬F4¸ck•cCÛñ¥Ói¼ÎyÇ›ç…G<0š‡ï¡€y”A(Ð`Âo•pAZ^fî…c íÁ›¬rš òÞÁmÎQƒÛ Á^FZördà^ ¿ÿ÷w"Oö³í=ëÕ’žõN ñmÞz«Ä[OI¬©y^:æ5§A(¸Ë( õ¤?\ãöù{ôt×`Q¢Òa¹§OeÃ¥~+%82³÷|š.)NÑž¹öâÒnKÇÖf®Ù`–—†gE|yçCׯXºˆÌ:õæ¦KšFQºº Düë ,ô–ݧÊM'øZ¾/?ŠŸÆ/äEÅ’YÑÝ–¢#NÆÆÔHUÊמ*‰¹±›”XIŒ¨ô4kzÔ£vb @‡@ wd6#TÅþh[”#ÏD©ÈD)0ãBŽç¸‰L–ÊLºs ÜKåèY~K7t6›Ï?œ#—úzøÇ™o­r.ÛKyp>n®É3 ¨Aà7IôZ·=uÑŒÆ+¯ºè’Kú\å‰ò©'ç]Úûù²-ó;ß§:n5 Eƒ°‹Ùûì«”´ÕuÊz¥MÙ­|®S$¤+s•Vå‰|Ñ!%«¨Å FXâ §ˆÜ͉‚È«¢”ÿ¿žoãwó‡xq7Œ'ˆñàŒç £ÀIÛOG…g£Â«´UÞC%\û– ¦Éx*ªT:<ü0yàˆóf~CgŒICãQ6tÚjž?/í®«ñrVµº½½ÿÛþý§¼|êÔAúΗ€Dù0ExŽÝâpžJGÒ3ÄÑß#*EÁ¢JGÊS™¨wôð\æà+sLwœTÿáu^¨,»(qQÙ²u•ë+¥ñ]+8ÄûwÝe†49>¹KKekåÁ²#ñï?”Y~Ÿèí ›ÛË#n wm3†º¡0µZÑn  uevµ‰jÿ’ˆ¦ú¼5É5ðcÓoû[ü­~¾ÒvÀ(U2µáwÑôSÂaV€_¤ãè÷±kÔ6pÐQ¤w‰ôü{¦úýt/£ƒé_hà$*).}ÍØo|nd ¾Øh4†ƒHŠQ!Š£„ÖfDhM†Æ¬­Æ¦+ÆkéaÇ  ¶ÙYÕ@KÌÎÃ'+G7íl>L )`²Íóû}þ7—ûR³’k]Å”}ê\e?m“£ºïÂe«N¼¨í“c×ýáÎWn|nê'ëýíCÏ-[úÂÆ¿0.42Y=e|϶;pçb¼öÁÖÓ3Ü¿ø—\Åv¿öîo_ÿ-åôU`&Ó˜½OÚ‰|ÙÝ[½þZ®#{Èf¶L’¯ãús»tžõöký²¥YNÀȈ’Ç¡jIÅÏ*x·‚}L‡ûlŠ¥œí=JGö;Û¢§0¢VBô>(=‘C‰â¡(Q¨@pÐv•ò=½¾Ž­2ÌG%‰¿¶Gm›ï˜Ìõ­÷µù²>ÞG<ÿ·”9Y2y~ÊK™I>oäŸÌ‹ÂD ɉïO9 DLƒ ‡³š?W ª¸«Ñ‘ƒ©²ï»ÄvŠN)éµ0Öe#ŒQ,ò( Â: ÈÊYVÂbh!´ªýæÝ‹~5¸ýúY#îaÓù÷{›Ÿy´s"yrÕM£îZÖù2¼Siöï¤BxùÑG;‘ 8J¤júÒÐY£é*æÏTÒ† Æç0ÌT‚uWRÃYIî¯ôo‘æJ­Ò:‰G`Û®—Ú¤ÝÒI”(ÐQ’ræþÞNGK¢‰Ñ #'å†4g5Së 1o<çì~i™‰¸Çæiç HGé>NI¿@jY55æ[”øÓ餟RxªÎJ¹÷I°<> wb††4\}må­·nݶÍ.>ù„yÑÔ§ÈäµXº6sçÚΟ­ Q:^šIZÀ“3Ñ…¶Zf`dº$Ù4;pÍVô„S†£mIO8¯BœÉÅ8Ž{Ézl-3Ç;O5O0<2>Ä)bÕ‚2­ :ÂÄøóû~?tü++–”]˜fF¾‚ÄÎïvž:дæþ—_ÍgbÐþˆìî(ÈÍŸ·ÄjËÁlp`‘Æ!ÞqHïÀN¯$³!ÖØø2?"ïªTÑñÚ÷þëÌ0÷6WÓ Ì3{ ¢áâH_w_ÿ(÷(‹»Åÿy„{XÆ|&¤ÉzPIfp3…ëµ¹z«þœ¶MÙ®nÓ4Ÿ¶Rû‚pÎ’‰Æc92&g—tC´STÒ®Cë[Ž!†ícº^êd×Y¦4èHc 4Œmf+ÛÌP¾”™Ç!fŠxK÷K¸Xj”ˆÄü!IeÔâb4Ò=\[ÐÛ`*娣y~ޅ߉0 ]<}t>{wW}•U_e6ƒf?Lø<‘MàÐR¯Çb‚Ñ—÷g½L,r ›‹~øÕÁÌ?çsûÆ?o .¿úÅgny¾Í¿c?.ÂêK˜¬ØôdxÖµ¿}ïÃ=?;Ÿf¦ÚZ9)7‰¢š¹J5êà2àšvôw•“º‰”Mœ”(›p˜q‡“J6CUA%8‹Äù’+OWôý~B[ît½,¿ô^“t®áPraÙ+^?tf$>„ÿòÊÎû׌ÿã©Îƒßgþž‘¡—ŸƒZ>%ìF*ÚdÇÀ(·jgñËÉÝä!™‰Ç X`gX#øm•‰B5î*”*Aj„`Þ1F&̃¥|dâÏdâÏdâ/¤ ¶nÔ ´.'­KÀ1Áˆtì ø6DÇ© z†Ç©„ÊŒ ?˜^ÌÊ@ÍéxÂE©®p9Õ~ñ{£økÕBþ¦‹–ÿjàÛ©µ1&û5„w£ÖƯr¾ÀGq£¤ Þí[€Š&Ú±ín9íhÀbŠ×b½¶VeÚQ¥ã?ÜÉ94È”ö^7- L>ÑK¢ÑÕÞts5ÐVóÑjf¿Q–3÷½¿ÏüôwÀh9æ=§ß2|SÀ® ƒmÓü?Z=¿­Ÿ4UunCvmïП¸ÒwEbw­ovèšÄ¡eѵ¡;¢û6„^ }ëû*v"æ¾Ð÷¸o£ëÝeŠHÊve¡¨â@<&ÆÊ£ÃæœÚ$~oÅ8™ÞN;Q¼ ×#îe[›â^'`H`]%Pu¯v´-¹À* 8fٱ֥߸#G¹Ôh9AµG0#…½`µü1^ljr÷¤òù"°RÊÄœµ‚€']–Éœ[\{–5çnô-4jÙˆ¸Ç˳·ŸÆÒëw½éÆÿyꥃäg.Þ²aé²'ñ(óÆë†,ÿh®; Ë}ŽÍ‡3_|Ùú«×¸ÚG¶ï}tí¦M”k/6“̉Ziç’¹Ї‚ˆ„„¹pCŸ{gŽDͯPÕPè7‚»ëâÞ‹Iܱm­¥„D)¿‘÷AËÔn·8F§gY øÞV¨ Óa|£4Ðà§7D£ôj4â„+QF‰Ñò²­Õï›!±bÀxÕûûè~ª:Jy¤‘î÷VŸ¡1Ö ærÖ ­)´sÈv¸ÜdLÔCËhÝ[ ê\d’²ßÙŒÿSk =X{´5֘ݣÐG|YxM|YzC~+" Òš´ÑÎYÚç®Ý·»^q}ú2|,¤½æØá&a3b™QSüuö’€Úd8*Àx¡¨jÊ¢øv$ä‰DBr$Äa"‡"œ5;È3[‡[ØêÀmô M]àF›R ~™¬ãÌ’Ô¬md"™C–žì"¥¨ß½9G{”òÒ &h‚‘À¨ÏrQ™»UÎ ˜ M¹ pJi1OàÓ45%½ñTO5=ò&²TÆÂ-4Rî°ÄK§{òé‡xá¡›~ö(Þéþñï¸ôù=OMˆnÜxqÃäÝ7ïýrÚ¬Ÿ?ºÆ½ÿão7Ž{ñ•gVOêž—QPЉŠð˜<êÔP”&j™’GTÊìcØÉ…øÂyª;¯¦\D €¯˜ÀS(ý™}låes^N3ãµPåÙ:ÛÅXÐŒ€˜ÜBbŽ_ò|°¹`3€¤®æÅUdµcµñ–SP$G€ôwñ^ìížà¼<÷¹¼Lx”¥Ü&•– h”Ä1³Þ[¿hËÂKf¾÷äûKîÙ¹aéÒ n^zY3yóøÂ—&nÍdf2™ßn|p~,óÀÇðt<óû+)—O.÷ Ï#͵{uÌÃ?"ó §#J¢ÝæM_Àq„¾ÌpF” òåoh8žˆ'®sðrh,èìÀ÷RBfOnèq§šÏ¤!? Wê0âÄó˜¼'J‰.WÏIܶµ™£ƒ{;¹ŸýïíüÉkï˸2§:>Ùˆ¿Åo8ÍbN髌˜šµ>WÎÆ3›© g3 ǧsüÈðYÁ~©±âÞx~{Š/=ý8—>ýw«°kc¦ñ¥Œ¾‘êó˲GøXÁå¨'éjW*ºRÔC]ôŠŠz½‡·g¸wÅ Šf½¹b¦>£¢¥Û}e—‡}„6èÞòÂÄKã# =|±|{ðåò½Áýåô~Z.÷óá(óíé{¸˜Y)°m™c(Tì/¤++jëùúÊAü¥•cå¦ô4yFz‘¶J{Kû—þ¯´Õ³Ö‰y³ª´Ö_÷&v™Ó…t‰T9w;ŸpfÂÎMÎ@£ky;ïÛ‚åwÜöR]àdß)RVÕËùÁ¤Þ¸¤¢ÄBV,€ú—©Õà‡u™dNB"ÃD2^ ’›UFêèÄ|ÒRjMRÙ^Je}wþl;hs¥¬¡R£—v+mg™Rf*–ê–Ú”ê.˜Ë–êÈ~¸Ýë™ùCç-êwדõõ¸žEE.f‘d ¤ªô5q¿HŠÅF‘ˆNú¦"“Sb€öGÔhgDY @d‚GìÞë“Ì„4uŠ¡¤ùèϸ¡3ýå—”Óƒê<œÓI¹ûçÁ µ„˜4§F=-V¡ÁÌ$ qÔÕöÈÅ2A†—儸E„Š0—Á˜ð'RÀPN’³+à&®aÊΙ›^¸àÒºY¯Á5ýW/_RÔ¸îÀí«_a*þ’W"þ«÷ΙP={Æô§RE·ŒðËÛ†­æqê¡Ò¤z]× ›ææÝ1ØžtÙ‹ºíÂ^øÓòˆY>´êÒ–+‡_xC>>òP´/³Ý'ºÉ f‡ù÷µûwÂ-ò”›zí?h d|Lö8=>WD 3ºª;5gi€ÅD,>â`‘‹Œ8ÎDFŒ%ìŠ,q°Èœÿ+q°ÈˆƒFN8XðÅáŸcX€b=D£$c27°>ÐØà©ñúX ä6yaðƒ#êO‚#Ö9Áž Ú„ë§Á–a~&áÓg‰ á8 ˜œWJg¸ÌêÑ8m!bâ-E•UIåD3e‰Î06TW>rR±‚j ½ÍS‹ž0ûÒZõÔõŸ¶<9ÂTÛ+f]ºày>õÀ¦þs‡V/ë\@V^7ûâ{ßí|…ÊÖÙÙ¯…àé%±Û…=a/i)ÃWÉnìâJKQÜå'I%Ìgˆ1—‹þ¨“‹GEãTY²4Æq1+kí@y•2 ¡‘Š82K(ÖÂôy2¿µ —¥b*Vç¨ÁÔä+ÏLÛ5›Oä%.ˆVÊ"Ÿ—Ž\ŽK¨"ÉP?>Ž„"Á'j)3éM§ä$ŸJ$zQù wnö¸cœ•É8Ž8üqì±`UâqTÊÁŽÍˆÒY‰3è Ã æS]Ò:o¦\ë  OI`»xÊk7„̾;s`ýG™'Ú·âŸ<ñ½©Mñ«·Ï¹mÏ ñ^«0¹çæc‘Æ—pç¡ù vâ«>ú/h¿¦ãÝæ¶yëðÕOìÍüØ:©'¶·Rz²ÈúÛV§ÞæÖž½˜×¹µ¶.wìÖ=w,Iæ¼Ñ¤×_kÅÂÂç?vÇ®X˜+´ YrT — Òš¥zkêjŸ@x7:Úé?Í@œÌÍ žGþ,ÖŽäü$D.Ð@¶ ?ów4Œ??NHCîŒöÁ`fÎü\1ûÝÒ.ì:9€Òbcö·$J7ÎoßÄ—xJz+—)ýJÇ–L-YªÜ¥ÜZúœû—•{8]ñ‡þnƒ+?ô a -bVc50Až LP'8&hô™òLe¦:Ó1S›©·§ÚËŒ²TiYi—¥ãÕ&ǔԔò…‰…¥­¥?WÕî- ò¾nϨ´§Ëž)ßšú]ÊW^p«K @¢”v}Õ’(¥ ˆNº¢õã岤¦ò¡XÊË;.( Ñ@SI°’hq°18<81¸)¸?(ÁâàœàçA¾8xw_…ñö‚éð"Ùz»‰mLL|„M̸r«ÇW˸ÓtZµ_0¡èÚ"RñJ|Na²i“¯ S#_Ùn*¶øÈŽâ•mw ¶š>^E7Èí)Ñ'ƒ1úTñkÐDz@Ùn‘J+àÑm‘ú¸‚¶BŸ¨(˜ý  OðívúPEˆ5/«¨m©Þ]M«[«Iµ‰1.E¬Í¼)Ë2ÃÚ äâ1±RƒÅ Ö=#Ʀ(±ÆØ4®“M8ä&J>G¸ òv§Ì6šWÇÔå4á0X^Q§ÓóÒCÏ*ë\´9§ó˜¢¦4{Øìd‡3rÈŸCvY×hBðT¦,ÓeºMN,Ñca¤”Ka,t…]Ô§qg"ŒJº&wQø¼LQÅ4FÅf•è9éÃv˜ÉŸôŠ+Ð9üCg§šs¡f”]2‰útLô~tžÄ%¹$ˆTããö›–.®Kþüõ‡†_Ü«âžQË^oµi f,éóU…o}í±3^_¶ÿc|adÖü©ý.L’ÕƒV ¸¤¼8}éM×.ŸpyÏD¤È­–Ö\¼tÂø'®x‰Ú²€O?eQ¿Ï~F%¼žÔkõ~ºPç©‹\AF«—{FE®!S„©ÊdOKdwñûÂîOƒ_º¿ôüàÿ[ðË¢CÅÙb_qq:Ôàk Í-^W rµT¿À×›ÔéƒI}€gPä u¬~þ¥øµï$>î4±—s:L…#ÉBªŒÈ@ EIÓ<`aÓ²­«Õâ‹™-QÌ&¾,6ñe™ø²ØÄ—ÅÈ Jÿž³%,'¥2«0ñeÑé–KX m¡«ô5i¿ô¹”•xÀ.qR”¤™=(EsjÔed'1+W Fé„×YbÞУ?™í: î0‹ùÓͪ·ò94Ã%^— úçù %ñ9S\\¯©{—pýÌ÷oi¹¿jkgì¥ë=ûÂM‹Ÿ\ùøÚSO?¹5#/&ΓˆëÝ·óúÁw÷RÙz?øP€3Ͷ5Lx.* 9Æc¾ƒÎ ûf:›ñUsÎK¢¾õŽîßCþRþ7BO‚ÅQBçÕÐǶš2Æñãä·džMcùÜÞÚZ¾<€¿L^d<'1$  ÒvQñ¤õ FÎK fÞ¼8d³yGÒóá˜o„´øæúZ}œOg¦‹þBí*{Aµð‚jáií`y4|>‰æŸì=Õ3ï©6{û4ÎMri¦æJó<öâC™Ï‚Ùi@bå!9»ÞŸÍ×ô°ø–=S2§Þÿ}æäÜ=7.ûp»°ëôæO3§Ÿ¾ ëßpÃOoymÛÕ{°‡rØ`𣠠½Àa£l1ŠxÉ®YhVÆ8¦r³„9ÊT‡ìÍEÚ¹¶/§PQ„îË\ '='B|wWï`÷ÈÅ®¡¡‹##]‚—G&¹f‡&E‹‹½'ȉ€ Æ»¡ûý#|t´8_ÄXg®7‰iòáˆ*¡]9Ýà ‚œŽ¡\Båõ}îïðÛ:øbløhŲ#zÙ1^@¢¤±ç°È«¤¡Šæ½Qv{R~òA`ãùÔ(óh¾¯ÐY–ˆÛÎ}ûöqMûö~~ß>xâA„D¸Ç$‡s·H¦sÅtÐd§n1f\XÌpüÞ.§æ¢—Cㄉ¬8œHVˆê™·Å’¾Ào:¹¹Y&Ê ¹4”‚8Ý~^°ŽFÖwï6ØMµ`:Íò+Ó¨¼+¦È·˜í9¶çÙ^`{™2p‚1,›-%L{+,p¡jùùÓ]É” ‹)”°S]µÛ ‡°Ód“s3àrr\}™ŒE.«±¶ŽXCù„™BµÓw9^ÔÄæ¢r/Óœ{ö—ÓÁa{9"†ì!a™_¤­ÔÞ„¡Ôiƒ ® ŸÔ+ã¸+ùEúbç*]vA®×{8‡“Á\?É–‡ê—8ÕÉCÜýÒýò Üó’è"†ÓÙM A 2(n‚  ¬]n\N <"Ó5” ÞœN“â©ÅÕê"®]ä¤ãî[„˜Ü»ƒ­¨1[[Îí.xI'vÀÒ¶b€7æšØì cwÄ„p8¡ƒ¼°Õ¢ò+Ôv¼¹!Rš%i:sr¸aÌs~!óèQš¬µjÙÞUèÔÔà6ǨÁmÑ‘ãÇ½Š´ì) ÁÉ~Hƒ–xp›×ÊÙ䥞ýq³S¥¥,qKϾ¿=^﬌׃|x{ÏzguOnë ¥]ësCÞ4ŸêÀf:—ÊÓÔ-×'°õ .ÅWvóëðD,¼œ»)3NØuêï÷\:âîôÉü;§êøC§(o½˜ù ß‚ö! Û¦+þRìÀ#ìæÁ*n >œ ±—Ô{8šˆæ åh=èÇõŽ:8wÃûµ!¾ŠÍqŽŸàŠAá:ıۙBE<çWàüï À ›)[Ä8=ÅØtŽÖôniEpF“«Îdîæ>j¼¶‡¹yàá‚õxˆ®ÅÃw¢Õà»’˜ÛWkÐQËS›vãRÙíÓ°Ûç‘j¥‡j|É€Ÿ†tB,^äg‘"¿‹¥1 ú™³ê?#ò{ò Mùì¿F}?} ‚¬ïöcÿ°óˆix(t,Dæ†Ö‡ÚBÙÒ’Ê™Ï)”C ¯ÜdåL¢^>{Ges´~–<£°øÂ’g”aÁóœb÷ÿ÷@PC'³ êósp/B¼éÔ ˆ’,ʂ̉&¯…‘.[aDCA+Àâ€góVcYŠ~¦ÓzP˜k\úÁUO7í뺑#ïêÓþhû¥³‡×- ÷vn½³ûÀ‘£î^MêOÝõ8؉@:  -våTk–‡ 6{®4¯ôð- ’ ù4ôŽdWJVé¨Ëf^¦çcóVf5¾é•Ç›‡t¿5s»°Ë隺}öË™ÎΗ8¼vù„[¼:µ¿V‚ýULµ,Ø_­ö#XÐŒR¡Nè/ÅmŤ¸¸$R¹$Bý±·›:1C|CBÍr³>Îhö]š)_«O7®ó]Ú]ü±vÐ0øW÷wþï‚_0Ï'ªŒ*O7¡Ñ°…!Æašp°èüIS3½N^$àáˆÇé”p`Óa;Z­>çÒ8XüÝÈ«íÌ0wRù…É2Mq`PŠ˜*"]ˆ­š|@'³¬á’„üçœðLÁî+$‡kç$‡»ÎKÿñ§Éá*ôä’ã{žg6ŸMO§šN³ÃÏúB,?<žÈe‡ZM”()ã<þ³¾îú|ûüÍWošggþþê+³Hí˜{½ôìõ‹^vuþãîáw¿½ óCæÃÇðý¯¹cß;^ß—£qa<`×@EèK»*VŒûÊ‘"JÓ–5ìOÅœk…‘.Mºƒ=q…Mw0¶™ÿµÛôÏs›¢ÿæ6È»g¦˜û÷àÂ9Æçe^ B":TMÕUNôú<>·Ü?Ž]NØähLÕŠ#Ó¬€¿8Ç>¿ÏŒá$‰d¼:?Ìxÿë—ãonZ¸`Ø÷ì»-³×ßól÷þC¸vØÆÌ»Â.oÑ«3û÷>ŸÉl˜T½±G÷þß<÷Õ?+¢týxrŸ ï#' £·í!{L'ì‡yÞä=¿#Ìoðow¾îäüþ@˜ÄŠlk¸{¸ßÆ)W˜c¬‰îñþ‰±¡+Âwø"f0Êq®¨Cñ¦bf¹sù ¼ï ùvÇ ùvßÖ­/¬[9iÇ™Éj-ÂEFŠ¢E<Çä F «ƒr˃š ?ô¼ÙWðçÜ&ŠWót¨˜×3ç$Ô 74¯Æ=ÞÁ~ÙžÙþÚþÌ®ÞÄEú‡—|sÏï3"oãÙø±=™gÿüyfý¶7ñø_gþ™Ùkqx+vü<ó%t)D³JAû©øÛüŒ¹_‘*‹XT‘ È&B)%"¡*ýé>óÓ}VM ÍÞ¦ ÞQ'`TbÕ«4²¨[õŠÏ©•éŒþo·ÂçpÇG¶×¢rر• JI²ù`gí›Ë/¨E1ØZT®¤ÔzT§^ŠªcñXÒ$S¦áid†óÃ}æûÌÑk¤Ì&&s¯„™Gä3<¸‚ˬ+­»,Ί1üQµ“OÀ?TO³•âx­)*£é¹ÇìÅ¥µ¼¨)n1¬]xÑ^©ì2‘›óH9ì(r–¢¤T!§µ¨Nê-÷qöãж4Tìèk ´.s]i\îš%M‘¯q-o”Ê;Å]Æv×?ÄSJ¹Ã*Gåz™³Ü(sUyz¡ž®ä•òƒÜÚóøò‚ã9mÚ.îr¾É(~¬á_»Ž‹'•ˆC¤=ÖØÞsÓÙ,˜Ìö…E9aÕið.dÉ’œ”Œ¤“.¬rJœŽµ$83Ú=©ÜÑú*˜‚Ô±Ç-ª+¥¦­ÑüåêëZk©µÆR-•Z¤èÈ!æìP7çãŽÃ?zn¦¿\Üþ…mΣ(I‚¢ª2ØPªiY`?Þ* W¬#;Èž¦ÎØo-IŽI–Ë•$p1%'à9©;A1;eË0ÒªìÇ‘p†SÁ’‹— Ksê¬{.°“i¾e—A­?ÕsÂÔq‹NÓi9½?o«±á*ž£.WÁ'cle¸…çXË-¸c;L·°™(ð2ðóÛð ÷‰iL‡ont6σ”Éš_ᬂó™Ëpb\g±ýª¡ç2Üù ÊUNs¯ä4èFaº n+5®]i1òJö°9³ÚQ7#æe™Rô¯ip[í(O9°Y¢}PO¶†y²röÐf)–+uå}ß´¢íFŒÖ ÒêÀ©­q êEvåZ:Sù™çüì9+{h«ãc¨×¹ëšœà»êQ%lÀà›ÝÔn*XLùXó‹©@aòÄí§B%Á•qxpæå]ùš ;Ÿ¨»pû¦Lû˺ü Ì#‡­·Éu¾³L;u,Ývz?HôÐÿ€¤1ñŸózÈk`‡ÈE$¢™_W•fDÉVІw.l”ëEªFëÇ÷ó÷Ë96v »ÅÝÒ;†bؾúçV¼zȬý+ð]¹Êuß$59Æ9Àª:víMÇÛÎw̓ÜÊôOÌ/UW¹rYF@‹R¤ÒÍI!CDDGªJD§¡$b(·ömš(r’¬(Xç8‡a€¿¤cÃÐM8mDwpš©Š1TóuôºBÌ$R<)Ñ_×±žÔ8¦qª¢pMH©Ã]Ø5H¿Y+QI¢r³­‚fØa‹#ÄV‘;H_Ûãn&%Ãa,YK÷æsô˜²]a~i?Ê¢àgé™êŠæ<µ6ç¼ÕÆ*™Qin‰­kÈE»3PTï ãí(ª×Jüõlô|K¼ÞdQmo=.‰×+v¤¾ qšXb@š.‚…S㧪§'@@&ØÀ·fúËÓD*“[ÿ”¹ßñéÁÞ™oH9Îük`·KjNe´ÎßãËš2͹ 1Å_„ø º9^ˆÄ/äà}d]žä󇕿ø¿Œ 'bÄ/ÇJ ƒÑLD#¢—æ%,&BAS=Äë’ë“$é÷‡œÉu¶x6?ÈÍb~<›ŸñäõÑÛO= ‹°Y¶~Øbi?VÁW´ ±<«7ÛZ ¹.ŒÃ¬ºð™ê¬º0‡Z´º0‹ñ‡Y>”frÁ0 „ ùDaZŸ‘šD@˜® tÁòpÄѹïü츙›·,8±4·1ïÊž³VÏÃrErS㹕ÐÁÒd^¼5>ðÜUQϨóð¹ ižë8uë?µßWà5644€÷;Ô\]åVŽ€wkÕÒ|¢¼às½²¨^‘‹Š¨¸ßRD¥þû[bì°9^Ÿ—44N Ò&Íô—˜Ý b ¸{‹>Ûb2]v¦±ÃfG!ÎKíHÚ”ëSË´æñ4°üÝæpîvºÎ¿9Íc™#˜Ê4,Y«Ûñ‹ßdfâ×>Ë<¹\ØuúÜ–YÔ9…ߘ¹’ÒåØìW¼OØ œÐ”×uŽ`€¹÷b[ij;ã. U74#ªª]¼Ñíºè ] 1U ?1)ÅÒàöT ÙWEÈUߨHq®ÉÑ×Í×]õæÞt5ݨWR.è>½¿¾Rçû[WX‹ÂÜå¾kÍ™ž)¾ëõ%ž•úÏíáguUˆ±¥„úõD^ÂÐ.¦éãôã/cúÁ;דxùÀ.ò ’évôR€nê®csb$Æ>)k•¤Xr Ó\H=>¾ƒM¬ëèÀ½¶ßûp/„hÌ÷lNre>…÷Ì:¡<ÎÂG ‹GM–w^È}ó†¥IÍk:“™@3“{žÏäsÍi²¹D÷(Q’Û^|߬回ZV3Äãr,èX9sÆZO{üÛ_-~{Ö´)?[—9òáo²ø–ÀC«Ú~¶ôIÏãdñ²É?»õÖØ¶7®Ù2eâ£D_½kwæ_A§/ÍÌà†2Q÷°ïr4©ô!ƒÉMlô6×E×G…Zwm¸1ÚÏÝ/<Ê=*<Ù=9Üm¾/~àúJüFû6`v!%ZÚ[Oê´Ad€6žÌ kŸ¾ð}ü*|š˜×=¡ˆCrŠžï@N¿³Ñœ›†m´­e‹m£Œª –s`œÉ90XÎáËçªdr1OÃGõƒQÈ’a·72_c¡õï9¥ln”­³•Ø:[É—-¹YÑ¢èù+lÿC¾A']aøÓÏ/ yØÊ¯ë‘_R{^¦AeÅc^Íü0ç½›7ï©ÎøK‹<·iÑõOgf¹Ï0|–Ögny}¹ûöýö÷?|ƒFOŸ/v#è*Á§í¸ËáÄ®‘ñÅÓäÙżÂÄ»Ìö’™OªÚͤ¿^PZp0«ÿºÕªuQÑ_RVkÑsð&ÍüÑÈáúG[‹R¹ëp¿™?Òëö ’ÎË"—ÅF9&DfGæ+‹KŒÛÔÕÆú£Ã8âü,GM‹Y†¼)ËÐW˜ÄC>UtÑ)B@Q|þP0ê§2ƒebûý(^¢á°9œr4å|T,d@‰…8 H»„å3?RlŽ•Î-m-åJKÿm„\Ì›ÿGLôyáÜø*KVχ·‚‡gu‹”§áZC}ó«r GP ¹¥¦ç-Ò¹9[•m£Þ0{[®ÞLbÏË;*ŸÙ¡`½¾€ 6'Ÿf‰¶bؼC”ÎÞXŒPw‚»€”¥ ˜g’¬Ùûîo¿7´|Ììñ=c®»¢k|ð_ð“·Ý?ì§3Ý„]Ãß\òè‡EÉÒa×gæáî·®íå:¯çjz.8­cxh­„­ øˆÚ¨»íÛ[ËsQE]¯‡\[‡, àK"#æñ’O™Pgè °ùjÌ’¹›[A_G,¿R0—:ò_àHþwùòë b:Žé#tê6ót¶yÞ9«¨Î ,MW0§¾9?«ÁT]¶ìŸÙCNîÙÓ) »:Ÿ#ãO [;‡B'd¿æÿ&¼‡º¯]6™›Ì/à‚ÁRVÇÕGúrƒ¤!Eý‹û•(Å5IŠ®(¿ÝíLÐ$Ý|Ê}H€T(+ ö²¹›s@²¤ @õ@¡r=UJJ¹²d£6Ñ/Ù¿j|llbLòZÇL}–sšgj`‰ãFýFc™y}é‚äJnãv}q§y[é-É{õûû½Ñ¼qÒ5žr…S!%Õ§êrñÕÝSh*ˆ½ë’ðíaNúô®Ñ²$N > P–5 D»*Ѩcz+M¿’’‹š4ç?˜â=–û…í®ÉR§îâ‘¢hX–D@œ,-2Qˆ†»†lŠØ»C8tÔ‡º2[åR˜8†Gà<¯Ã"îÀm¶»+m’6 =¾LI¡.¸ SSÑß…vM§Ïu UÃ;ᔋN°ÒK®¹(µLÖ¦dìžO‹nz8M?‰D—Ô°puþ£V ‰YBb.@ÌÌØÄVŸåeóîžQRSø—–¥Ør‚Ÿ$ò~ƪ  JSvèß\6çÅQ#&ôÉ\;rÆ57ÿýOÿk¥°Ëظ¡íÉú^øãq­7®<õØ™ÿ}ÿɼîÎ+.YЯÿ5 ÿ¤tϧ§ÎùÍ”ï®pÞq׊+‡×ÔÌ*ï³mÑõû,ü†ê†B¼ üª‚9“²{¸ÆiÓµ‡µ Ú[š0„¢ÿ‚ç\˜ÈH—^Pœ„4ð#ÞæxØåœŽˆ¦ó÷2yɈàõ¶ŠxnAoƒ N¦íóÜ.*®U «{ÕÜ‚±üבráIÜÓÖ%»$Q+µÆë¤uÉÍ}{j1IŒ¥±*d¯fy«d›³¯e¶Ñw4åˆâáxŽY¿bìÚho8ÑPø¸ÊªœÕmF!®£ƒíëby¶£<ø®õvuÞ‚frÖ£ÙŽz­uD½f§ÀÏÀ1ŸÑ·âu¸†­üç,Lî5<öó×_oÏÔá‰ÏrÛO_ölæI“û:gÙ”ƒö>ŸBN¼ÉÖ]ä-™¸pµËO½¨ßÛ ø¢(ó©öØ—Ð…”+Uf=®Wád€NÂA9…»Èi¥^~Vþ–h$b‡é­%•®z…¾fLDÒ[Q xQIL<¬;e‘LÒ’(ª“t”[ÛÉ"¥i§JÀij—eI_&`´#‰~â†Mñ”èë9mg‹³ÕyÌ)°õF¥ô’s!RoÆxÂÃÑ”¿œ q4Ì…q’¡ÖPÞKê¤Àá4 ”a'Mím0¿ø%›l̇ñMçÞ|"Ó¼fêÌlÙ#ÓTëÜèÉt,álÏ:Št(sËæ5áf†kpmÐAÈŽìƒ_ã _H½Õ-þz–2 úê ø;$ä;´©©Ãb"^÷b©GMÜ[NžY0.3œ›Òù›9Kfâ¿ÝËÉâ½7t^u“òHa¦`ð‘†gn—•Þß*þzkÑ_ÛNø ì8º£¡š­†õì>ðå°s¥ø.r…Zåä§ãéâtÇg"OÃg¢,)¢N®¢jtî3¦:<ªê9QáXb-åb{hLXsˆ˜#;:HÐVÀ9æA²³ƒlES.·ÕVÆÛl›â.Nî&„Ðcä)èÔÜ7ÍòKBÁXËO›’Àvݹ'ÞN.I»"Íœe‡¯h@À,o »(ë±J 4Æ–û¼”sïÞU€×½ƒÛü£·EFŽ×.kŠÆïÊG\ö8 Ð6å¬aö]9ì6žzªÁ³Xú§.'KGªÁéÓùÎw8>¢ÿ%WáÈ_;wÙÜÐÌ€¥K¬Ã›Noíü9Å’D^+èe?Öí¨GÁF°*Ø-hçÑÕ7èrH/×Û‚»ƒ|J¡òPqm‘¬sšQ±—¤=nž‘ú„{²n›÷'yÄ‘{qn!G÷üBŽt¤¸vÂA›åîÛ:(䆵œ i ‹1TæöïySÅ“7U¾-D©¾bIÔ˜ÙÁŒ—§ÁWð.G'°Š £_0X€“@+mÎ!®I®·r!(i‰Š$»‹&˜ÐÈ0¦™*+V`ÊZókè×Lêj{žýê”×KåÛ–'žp‡nY4dB¸Wõåýöïç^;oVí€+\©Z®^{zŒ)]užCQ<¶0GFHè,;!âT£^oÄE×°: ž®÷á!÷µ&ÜtŠ‹zîùåE{MÊûa»‹+·z€í‡–­)ºßý¼û·Ú‡Ú'aYqœ!Né&tsÐ?–£éV½.·ûm§áqº=NC·ÝvÓŽØÎõô#†íÅùNí0xüué;pÀŽÑîYÍ9ærón“7Áq?ÿ“Ç=°.æz×!ßj³×ç¶ÿäÀŸïÀŸuá›ÎýZÄëäœírërÙ¢c:syž+þ»;îs¹/+J4¿h̫އ®ýYûƵW¬-ßpù¸sÇð[ïÙå…w³·škîØûÔÃ[†7úÈÿ¼”Y4!sâoܳåÕýCs^a7*Bxx>Slàb<s8\Î3Öu˜]BIÔ£«Q N6[øAfFý&ûr3ÙýLPøóé¨ôÓ¿+`²™~†b²ë¬ î'ÙÞ~Á~±ñ`TÍâ¦HSä™®)±…òõ‘Ûä•‘å÷}–Ħ-Ë ³• „¡P<–Ï,8Ô^KÄâô‚E{9B'ÐÏ0~obî³¶Rè3ý‚„í¢Ÿ0"MŒL`Ex‹cŒ«Ìu•*Å\×Û¾FÿDÿÿr?^ìk[ÌUðwÒ­ùïMÐàï$æ£0,úrö“9û57a‰å.Óõü”©\ùÏ`Z죘>ì9¥Ü©­ÊA³Æ^<æjrñ+×´wÞpàÖ¿d?vû‘Ÿvö~×°ùÏO®t[ÙŒwˆ1Lª8̼ çýª#t/u›òþÔß ¹2-8V§ ŽTa©Ô(oèÜ´PôËaÍ_™,W3—5CM&º›¸3EüšLXÐ7n<ù¿T"? z“fv)xÙf—£àÛÉÍ—>Ç)$Ž‹I²G’d"qœ¬ð„(’Ìs1Q ¹‘Â7RÈåWƒãg‡X’ssÌcŽŽÇ\G«CpÈJ,çHêÐØçïóÿ§¿¯öi:7#.ÿ®ãçyl-1˜¢<³krîÔN*­vhV­Óh¨7 jÎåÓY&ÙÀâ¶ÛÔËvu¬®—@ÒOñnXii‚¶#Q/9=°¹éùñín‹r`€^ þ¸ùL8Ÿ -ÐШPPØzô ŽìzãtFØuj¿üä¾õT+ÅÊ~MêAwrhíùg[<¹Vcžú8L¸'¸Má!ºb¬K¸OåŽ rxpÃ6 É­7èz*ƒ¹ï ±é·3±/ oX—¾;ÉÖ\\Åm%7°2týNhþÇüêÊí’T—Z‡¨Jâ1Ññ½"Ëй$7¨F.ƒ„&êF­òæø‚é׈pP›÷|.4Ãb2ÌÓÏÇc:i–õ¹_L§Ý4ߟ«aûuÕûº~Ú}_7n+ö;–ù&·§ããx®áOìT”²º¸RzÔêwõ B­A®qè kœëŠ€ù ü Aòît‰CÁ´·V¨Õú ý´ÁÞÑÂhíJïaŠ6Ë»PX¨Ýä5/ͨwÉÀ”D¦q­Ÿ¤$„í(dzÔYMÓÝišÇírÑÿì'àíÈ6lP FšË¢G{¼€fÄrYA–£Þ€Çë ¸4E‰z]º,Í0b¦¶‹åR49à ËÔ. \„¿’Ká!—˲òûCæÅ ‰b`D^Øl$à‘ÛcôãÐÁ`¾cs.4Ö í :;CÁΛBû™ydX¹lƒÿ"Õ€ÎÙ6ì-@çîðàÿ§½oo«¸ž¹÷JºzØ’å÷#ÖulËvœø™Ä±°œÄ ÁMbb'ÄiB"Ë×¶ˆl=bL0„G íZØ%Àî¯Ki¡Š'°›´PXB÷Z ´Z …6%´Ûö£í=çÜ+ÉyÀÒÝïïX>3çΜ9sæÌ™ÇÍŒbv˜o¦Á|sÌiÁ+›´­ñ¥8‡¶0¼×KßHŸ !ã6Á£ïm‰oÏ©í*æî2£‰ó§¾ôü[%y‹,<ûî-.˜÷þ3SƒOM½XfÊΘzÁpôLó}÷þ¦DüùdÞÔoÿ°ûø4©-w)êÊ¿þXÏ&0¨2²r·'“DnøÀÄ›¾ÚÐÕF´W˜?à`Ã5»ÔŒòö*2Eçÿ8õ;l‘úíTÙ¬˜ÕLËÙX~a]G˜ž.¬¯ªr å…ΔB³-þ5ßaÚCYi×î™´õo:Ð EÚsÄø¥bbœJLLÄ’Lúš5“8fÒ4 3y*åìËdp½óB?–òd¡v¸DĨ ò.Í|íñ·}= qGël Äl1e&M 3©¤ÉòÅ3ƒ¼xµ.@h[Ú‚,^‘µ*k•û}Û5s ¿ž]ÏÿNŠÈ×XC¶hÊuÙ»Ùü.i—|“õVÛ®”=Ù?H{.Ý9÷’(yè)J5zó7NC ++Ìa6ã¡*>CÓácfoŸÇQ¶{˜ƒØ9³;ì‚}‚ßs¸.'ÃAXè+ g&.¥Éôd ™ûj“·\Áê?µ©ã)½l[¨pzWßÒ‚gRÙ5]]œ”´+…âßò0™y/§8s ¯ ¼ìø‡ÛnÛ3õ§“'§þtO÷®íý;ïèí»½iվޛ}üæÿE̯øêÕ½ñÖC½÷UÌ}öö§§çÇ÷~—wößzËVßm·ž™^½oí×Go~ìQìÁ‘vâÈÎöx*é–˜½&ž¸(¦$ÿ ŠUò¬Ÿãf˜s¶¥O·-ݲxóy‹îtCÌ»‰Mé[νæQñggÞb“íx3LÓã“ø6c†ùÈ*:]øŽ§Âíä¹<Ë*T8+Òñq‘¼È¼(¥)u³!ÝâLWœðÒŽN*Ø~ž¢ûfÝ—Ñ6€HH%¢3̇­¼è›Ê­sRÝÎ…R“ÜdEŽ—ÉÒy³uSj§³«ÒÕòv«?UuF¥ëd\Ÿv§ï’î4Ýi¹WšŸt>'½ ¿.ýD>™úšóWÒ¯å_§¾ïœk¤Ûóli0=ÏB×*£‹;ÂÇIîèÉÌpäXÒâ;zsÐŽÙ"çïèÙbÔöóÐn‡#ÝŽÛyŽ”4xÍJìèI·X¹Ñ!¤›-ééJb?OŠ2s3N›yäjxƒÑB±yèÞê­O*–}–ãÑ2Á'¾³U8@+‹ñÇÑîxÉ!:€ÈcQXnF¦¾ú°æ?q Ù’ó^î©-§¶BÃȹ;|Î2hƒmñÑ®µžéi£Ä³]4ÒÎ.$ŽœÑ:’'X¹¿^ÉÉotâ‚R~cºæá¶ÏÃùòì|\O:>VÐHç-]éž‚F %5+{Iº3+ûÙ ˜(FÛˆªœÀÓÙhµÍ*º„³YEK¬ÄÄléÙ–ž aˆ €õ­P%Ÿwq¼y7Å—DâC”Yh˜²ýŠ[:Šk—ñ²MN •§§öºŠj3§ö g„›º=ÚÜ~%ß9¹úÌ'‚uÞ‚öÂ)Üy8= m¡‹Þ$Ryßažjwèw‰èˆ¶Ï‡îéJžÔ.:ªvÔ8úä~ó6Çíâ>Ç †çŒÇ§VÙÐÅ7íŽ~kÌñÛRþj–lRŠ”*Z-fƒ$ÙpQÒd².m&#± Ï“ ^lð*€a™´?E‘lÊ\h0È…´lÈcf²íô1ÂQn….ÊêqÚ¦šÄuíÒKÒ[’¸O{òXÛmÇMoÙÄ}6nÃg‡Ýô’I¸Ñ4jL_±¿öºv4þsNiGòN±œæ%y§šß]‚§Ñè$^%®ká—~åMVÀšp©Ë ù`QÉ#z‡$»(›ŽNŸÆI-­wñP|r1ÇíƒEbz‘ˆu' õ¯öÍÉ>É?þÚŠÙõxl‹?=µ\ØÄ÷Þ³ûÚÝS~!‡jj…§R+¹à0+™É MÎd|B2”rfÔ¾3›…õØÙ~KþÇ~ýúOºG»î&~Ì!:Èâ´úÌÝ|Œ~Ó÷~rò^Ì©lÊÏQNÍžl ¢P 3T£ÁÀ…'$±ï–ú­‡60³o™Ø„Z¼P¼h.;ñCSá“'ùž)ÿ½Æ²{ñ·PðlüÚ}lO?Â$°°•tfUZQ¼¡¸·8l¾ÕlôçE Cæ°õÃ-VcY–YÌ)›S˜5ËlNwΙSQÁ´3$®ÂB˜œæ¸ñÍNï{êé[Gúm #©ÅHßÉrtLÆØYê¶` ©²Ñ1¤²åÍUø¿¸Ê¬òÜc&ô=ÒŒ».N{£^0‹{<´-¸slƹঠż¨N;@â.†±­®o»D|¿à~ôÅpoßνWŽ~÷®©¯ðKnZtyÛŠ›œz“\å^¶©©óÞ»¦7í:¢^õõú²§Gûn«×¥eõ®^¬øëC&Û¢í+ÖÔâY `/ÍUÍìzm,˜aBø¶Ç*/1ZÌMÒcçÕï⡹É÷›óP¬bf´X_ÍM†EÒ¶èðà'¾¼h±Xo*ÂC˜ôj@_¼ ,ÞuüÆîÕŽÉ÷Û:6Ž$hÊØ©ã„<¯„q&ü«†·æÿÓK< šyëÔSgþ<õ÷xrS˜~dê ÞD'7ìÇžVh†ÅR½a—Á- &I$C:ã)V†')Í`5áý÷V£© ;/ƒgÀèd³¥”Z,û¬Üem¶®µŠx$ÛÓ@WaiG´iåËJÓ_k!õ¢ ‘0èâ)/š™ZsÓ3?wW!}‚õN{YóêSÚGhW)i¯;õõ·9dí¼Qªì°»e‡%Ÿ›SMÚCÜ@ˆÒ¹¶³âZà®CSý³ºªo¹o•ôÁ+¯|ò¥¯¥®ú²´ù¯=»ºªoú)¿tçÔo@/yoÆ›HY®´¬…®!ßB*.(ÊtIߘòßL·›õï6,üR}•ЉçDh—8$S=ótŒ~ü£¤ÚÀç°r±ÔRm«±m³Ý!ßaÞg;n;m³*¶v› VY~ÒÌmV&Ó ®>ë(9ƒ"2àŪ^ ‚`0CV(èÇT™«‚L_–7¶Ë|TÞ'Ã3ôã)‚§¼q«À÷ê îIS í¡Æ°Í°ÏpÜpÚ`³¼}ÜŠ <} ÞŒãÐV'òrOåh+z׎=»Ögà$³[&¦?3;9zržñ×w•Y9-L¾SvÑQ¦-Ú¹“øØ,´LþûùõU®Ùóø]ÏM~Ïpô¯¯]{­Tw/Øðô ãØÞéòY«ç&e_î¾<¡_ÎËÏŸî÷Øsr3rrrsò3í¹yµ•Χ…ÌÌUfx¬b^n®ÈósrJË1ÜáU±RkÁÓÂý`BŒÕ ÷ÏþÖ#>g³Xš±W‹Î¿r“öÖ‰KÖÚJçä©Ä¬êÔdòGn#ÕÖ䀙®ãõ…•.V¯Ôºø<7`Õ%€¥vË–2]<ÍXº ØœYå.^WÎܲ*«)'•Û\<ËŽÃêt± 8‰ûvó´ûø› ^Þ¿¹z;g<Ÿ7üàþ;¿óä®yã²®MK—ˆ³¿|æþÞƒ÷AÄmÑ„­]›¤MÿøÓï;úÂsüû‘ö„#÷ßþKØhþäÏüîßĈçù³‘îŠ`„v‹aîwáSžBqvC£ln*³,0.´¬´\)î_M;,'Å“·ÙzèÈb¹á.éNÃcÒ‡²Á"ñÒk®W½í1Ç_pW渭Ñ9ó=}<Â3>‹üããÎ, ÿ¹ç’\ȳ´敹¹—àNY‹Y¶DIR´ý±fYV´=³h¬‚Ä“U††+ 0u—&„&½ÆÀ2Ä e¼m —Ëf­1qfB1“hšvy Åþ­#Þï“—w>J“­ó;5‰2âÍê`MK–h;§`°Ã—ß ‹ßÙ›dÇy 4©hRùÔ¤¤éŸ,êŠ/ JÓ§áÅõuÚ“ ˆoÝ’©ŽùfÄ,ŽÇ|݈º’wHà÷Šiô½âÜÜF æí\LÍ4K;NauÂt>£Qòd4¢š¿S hbé”"c~Mh ýÀ¶¶ˆÃ¿)mÿ÷„ŸpÓäׄ›§ÙäŸNŽNV¯O>qæ«ÂûNÁ86}†Ÿ‚¡.ôØùì…i -’μ{bI ó÷ÜCk°‚•xêÚ­ö%”óeúEÔG~Y6'þë¨8î™v^Ô¬ÿ8¥3]:µ†-Kþˆê9?•ý#žg½R˜-¸Mb¬HxŒíäϳÛáy)† ¬ïÂÿâÛɳ·ÖÞþļ† ìð/ÇtÆF6|n4Íð¼`?äõ0ømÀïˆñ1öUð8 p Âoô‚¿ è„ô>H›¸|;У|(×€ËÀ?CšÍðœqå€Wº.Ïjé—¬hþä]eÚÃrùmlÄu@Ü£@o6l˜ž„øÝeð¼ü~Ê1ýÆ›f±a ‡ç3ø[’lŒEˆŠK%Òƒ†ýÆ~ã_Œ15ÉrŸücóG§µÌf°}Ñö¯©n»ÙþŠc­³Ø9™¾4ýÕŒñŒw²vde½œ½4'-çïsoÉ+ËûnþË…W¶R]ô¥ÙýÅõ%þ’ߺ[Ü—½W>QÑ=§ï›»aîÝsQÅ«Jª«_¨][WR×U·»þÊúÇç7ÎïX²à…grôÚý[„?,ˆ¿2Ȭšm€9uŠ÷d¶B\£ÙüM‘+R: =‰”*•Ë:.²«x–ŽK0 ˆè¸åðtÜôûuÜÄžåÿ¬ã2s ý:nfw wë¸Eúž˜£ãVÖmzCÇm¬W^¢ã)ÆCò#:žÊ6Û7$ìöFû˜ŽƒÙ:ju\`&ÇBYµã—€& ãfs\£ãF ¿^ÇM¬Ûq«ŽË,ÚŸ†›Y«ã·Þ´KuÜÊjÓè¸Õ§¿¬ã)⦠QÇSYUö„K¨u[ön X#Ù÷n¤ð!ÜDáã„Ë„?C¸ë(ûG:u”óŠŽC弩ãPG9è8ÔQîJ‡:ʽBÇ¡Žrý:u”;¬ãPGy‹uê(Ï«ãPGy¿Ñq¨#×ã:u¤ØuêH‰ê8ÔQYá,WÙN­X–²{·QøÃ„§®ñt`YÊŽž¸³ìyÂ3ˆæ$á™Äç=³(ü„çbÚrNx>Ò”k²ÍBšrá.Â+ /!úÂçÞJø5lžŽÕQh ¤€¿Òô Jµø…Bl¸=@‚x/PbL䀧ÐyÒ6Í TΡm‚Þ 9†%¨ jࣰràä9CèŽ3x}ZÊ$ÅjÐCòé Ò(ê«RPþÛ! 9ÿÏu­@(–È’DH"ÔÏHѹ®‡zPX;¥W˜›ò[ îZÈ»—tîzL§WÔò0¥DnUI«ß ä‹2 íȧR©dWH7LRõ%òõëV;ê%Ⱥu©×PL?Yޤ™›=D1~²Ðp£$µVš5-ZF’DHËq½…@¨¼º j–ä'Ý÷e¡­ R^3íŧóò’l˜r€8¢ÜýÿqÔ´¯Ô^Êϧ׆ƒR‡õúðRµt#‰ú÷ëV>¤× Jº “åi¥‹×W—?J¹)”ÃL©â5ºÁçaâÝ?Ã6H¼´¼ãáš¶#ºF|º¥†Ï£‹O•´â_ãíÓC¢¤i´¨¤M©Å†H£J’b}è©â9ø(ý=W¿^R­í!‡¤z© ôФ^ýºvƒzIüD¥§d­†ÉJ$Ý…m"Þ§†eÁ¸â—ä}Ãv]Z¯®õvŠÞJã:롼û(TK-̯×a?µ»!ÝF‚àb‹Þ¡k[ãìå½TWšu(¤CŸ^~?ÕZ€h†¨íiÖ8H)µ’Ì´n²°å_«×ÌIƒ¶¹Co[Z¿HÈ1@OIëœ3…Ï)ŸOÏ£›8DIÓ=g٦ʮð¸fѶ}‰ö’m+d×’nÃdw‘D¢Õ:Ê®µ÷ˆÞkh­)¬[Y²÷Ôb¨F¼ì:J¯I|}›´4-÷ÒÖµ’‘D)âyRŸ‰ñ^ÒDHÏۦťKç>D64@ýf\¶*ó"×ci5ðÅOQÍìa«¨wŠ~jKÀ¤Ré)̶’ h5^• ü›Ã0YŒF«ÎÈe ôô0Þ¯X–‡øZÅ`¸_ ðVéms%Œ­ðYM¡,Ït’5…/`kJ"\k'šF‡t'môóbÉš‰÷Èñzî¦Ø &òô%ú6Íž“ãÑÌÞRë9’ý¨Ö~ýzŸÖÛtqQ}"¶Ö.=7lÝ;ô¾´;1iyF>C3ñ¾s8Ñ;©z‹S6¢þ#¢·ç^Ý/¤¯x+D©3¸$[ñùùõè# Z`7õŒšÔÝzÍ êœ/TCeTª³5¥õÈç[Åù9Çû6ìż4õB®]Ûa½ù´¼Qûë!$ÙÏŽœWª>˘9çÒzo/I4Dšõë3ÏSçŠn‹ƒ3ú¶x¾Ø“ô¦ý3F‘ÐŒ9òÜuh†Ý&ÇîÏÖJ7@üãv<‹ß0ÕÿvªÍ™óÐxÿ˜¤ ­6C’Æ‘¢<š\3­{@ïQ5ýk­jH·dÏ{¶ }V‰’ö±ŠÊ~~ÍÅç^8æ¨ú M+6ßóQ­žS¡sôä¦Ù*ÎHzôqh͆ÙÌÙÕ_ûq~!}þç×ßu.4‹;¿5m%g¬>ây~;Ž×˜÷]÷þMÒ&µ|~g÷gK¤ê³ØŒ=qø~Ò´7r˜ÃÏg 𮥀[ Oóà­j>½[á*ÁzÖ¦SÖ@l-ÄÌ×ñxk T Ùx@@îÛX÷?ãqÕçh/1vŽ ©½^Ÿª|CéìW•ÕÁÁ`‚”eÁÐP0äøƒƒÊPÀW¥,÷F¼ÿ Q52S:‚(†„•Uƒ®¶±±f8uUJK  ¬ó÷õGÂÊ:5¬†v¨=-!¿7°N틼¡8Û& TôЦ j(ŒÔWÕÔ(å«ý¾P0ìTÕÌH XÝIÞ£JgÈÛ£xCÛ•`ïgJ­„Ô>8¢†ÔÅ?¨D€t}‡Òî(n¥sµ²¶··Jñö(j ¬÷YU‚”7ØòõÌ R•å!ï°°ÓúAµó”uÁn`½Æïë¼á¹È=ä÷ù½J‡7:Øe5-ª[Œ¨([hD {Aƒ $¯Ò£†ý}ƒsM/> òú!r R•þè€wÄW|ýÞ×Å€¿/ åð*7‚å÷ƒÊ‡ €ªO ‡ƒÈ ü£¾~ů³ÂÂGUeØé'5 ƒ=˜q;‚ø@©áxXdXŒøU ö T)¤éà5ä…ºŽ„Tod¢0/ õÆÌ°öԉР%Y!û dâ쉆#TÔpd$ ÎÔZjsQCþA¢·[/Èï‹BFZöø½}AŒî+ýj`4Túü;T" “÷*P‡2 ‚îý> ÷ © ÆAŸ ™hêö£²õZ(Ì€Q la°òðH½½…õü|¢[U¢a0)Ò¦zM…úPÿJoŠ ¡P‘Ú =¤B½GÀ4 šÂ 22Oxðöy¯ók5⛫) ’÷øÃCïf©ÕáðwD’1â#c$ ‚Ä­ª?jª®®Ð ¶Ê¨î ª"ƒÞµz ¼Õ‹¯ÂÀÏ™`X @¨JIÖ¬í\µbÕ²–ÎUk×(kW(_Xµ¬uMG«Ò²r]këêÖ5)–Kg?¨5®5T1Ö  %ˆF/ÐĨ0hÈXæîe$Å”>´6Ð3µ#Í,Á8ÈF¡~¡ù ¹·/¤ªh‰UJ$ë÷‚»±AÊÈY u£9©Pq*j:¤ú"PϽ Ç¤\X…Á>•H¨Šé jÀz»£` b¡EÍ(PY8.rB‰ÄhmÊo êí ó†ÁBf¦®RÖ’ÍŽÄKeÒ{.0o¯R}~ètÎ/¹Z$kôޞ?ÚXeˆzä¹"ÝRë>G¨€À‚Lˆn8ÚÖŒ”쑃ÃСF»þp?æ¼4u€¡‚üPUC#Šf¼º†ÎΈô±ª7Y8ì½®‰ªaÊú=ŸÔKÒå&âp0è6´Ã¯kÝÕyÅG:¨Iz€žd—(#ˆE«/’¬c,˜W—º÷ÂlIäD½ÝëŒ o¤ Öw´À P¾h~C…ÒP»h^Íüš³y}ÖÔÖΟnC}ƒÒ°pAã‚Æ˧´ºÏlŒøT­‹Gí^Uƒô’‡“r|Eá)0ð_ €hÚë i¾$⤭G¼_<(þ«x àˆxTüÖÅ%ý‹Kúìâ’þÅ%ý‹Kú—ô/.é_\Ò¿¸¤qIÿâ’þÅ%ý‹Kú—ô/.éÿ¸¤Ö›÷ý…âÞ9'zÖš­ | ÏYøŒg©Pª•Ú¤•Ò%à6ž•öÁŸÆe µì{´Ò÷óXdÔ.>=Í…ñÄ^^6]†'Îÿ;Øio™-f³¦Dæ·`-ÀV€½ŒÌ®‡n8pšb?~ÎìÂÏX5@3ÀV€Ç>0 ?×!ü·“‹x3€ ü\‡ð&ëMp퀽!¼¢ýh¬¡±î!•Õ:â*Õ‘ì|qfÕM?û¤Â5!ür\©t=ÔR#¼Êbdö*0•)íÛ†Œ€½Økl`ÀC1#¤y Ò¼iNüà5Vàh…—Ç › á¥1÷RWK–ð„çY6(õ?„'ÿÂsä¿(|ŸüÀ/ÿ„ðÜX¡‹µX!žAøð«!Þ |w¼ÄéšnIŽz\àV4¬Ø °À(fõ¸œÀä)vBf@9Æ> ÿëì™y®vyÜËÀÆtÜM—Îå€[ð¸÷ ÑqßýeÀÐqßz`踯» 0tÜ€¡ãî¹0tÜ›¶†Ž{m'`àL>YRæjX»+-va´4 Z- 3IÆûDBÙ›3Ç…'µ*+æ¸Fòѧùè:>úUùè |ô&>º„^ÅG+ùh-ä£>ú_ªåžCg=6zrøè >ú8 óQ7-å£%|Tá ž ¡hlU=y­ä·`»ÿ’Këì ch´̺šý1p_˜¦')³5âÜBôgÏiÖž«šê‚-— Ï@Âg žaoHPAÏ€=Lp{ºÜf€­Ç>˜0õl|/¹vp«š¶Üð€‘Äù@`A]Äo“`ÕºÐkñIx>³áS$yf9 •ŽËĽÜ^È×N , '8Óä´ žrøÏ)ÿ÷Ï)ÌÜbîö²YPûtïØ'³\ü«cî§\-™ü>V(ÕñFææ¥à/baz^À dôç³á›à×l€dö1÷\×QžŠ©»>)x×õAÁ„è¯ žr½®LH|Ìõcùæa׫w¸^¨ž!äi÷ï¨B¤G ¹?A¤7AÄýc®Ð;캾`¥k{E¨ZÄUaxòØ]ëÜ›\—¿åÝ.Oxv5\åZ¢Q-À4‡]5 B¥†Îa+ (ÓâBb¸¾a‚÷{æšö›6šÖššêLsME&—i–)ß”!;e‡œ*Ûd‹,ËFY’™Éx­OWdt½¥„®D¸C@WК\Øå,–.¶ mKy[층u+±?uOpË›b†â¥<ælcmKc‹*Û&LÓëb •m1Sû7äüî. ·OpÖ¹q‚OcÐÎü˜sÞ#ÈÓvîÉG¿|çž®.–“µ£9§ÙyiZãŠåp¶éîŒCZ9gá³bûÛ:6ƛիCdzVW[ì+ÊæGøïùéÖåGøÇèum<"^ÊߺÃÅK—wuµMð DÇþ1ÐÅ|Ltr!SŽ)r¡Fw¿FW é®= 3›Y)Ñ•šÍD'q¤;.i]~°¤„h²aîI4ále&͉R )-%š¬Qv‚hNd"MìR")(’Â"áy¬€H x‘lH’Të$w$Hî œDž¤)ÐhRÞŽÓ¤¼ 4•Ÿ÷O]ZYÉÇwù6·ªÅ­ÛŠ[U€m±Ý;úsb£ÝŠrÐ×…JLtoëöõ£ïUc]Åêò˜¯x¹rpñæ DoÆèÅÅ˲ͭnö¨ËÇ{·{—w¯lŸßpV^w$òšß~fíÈl>æµ²áÑ ½ójÀ¼0¯•ž•”#oßxPfK»–mÖüqÁj{Ý–_Ôµ4Ë1t)ï⢜ò„äQf­ìŠÙŠ—ÆR0j^˼Œ‚6…Q©l×£rnX\””?ªG9 8­x)«ŒDÃQ–Óê_®ý‡á‚"QT¸æV†?íâZcïòp„±¶ØœŽ¶Xó›64™ t)Ö³Z['¦kUØ„¢˜ İ%f6ë„ç×4yÊòL4žçžBou]b¬°­S€® s”uó¦Gaº„ÃC¸ æ•<çAbë7–7‘¨Žézˆè¾– ’„ãêHü¡–عLÿî endstream endobj 100 0 obj 27306 endobj 101 0 obj << /Type /FontDescriptor /FontName /CAAAAA+ArialMT /Flags 4 /FontBBox [ -664 -324 2000 1006 ] /ItalicAngle 0 /Ascent 905 /Descent 211 /CapHeight 1005 /StemV 80 /FontFile2 99 0 R >> endobj 102 0 obj << /Length 553 /Filter /FlateDecode >> stream xœ]”Ooâ0Åï‘ò|lñØNZ !Q(‡ý£¥ûBbØH%‰B8ðí7yoZ­özñÌøý<ö,6ûí¾mF³ø9tÕ!ŽæÔ´õ¯Ým¨¢9ÆsÓ¦‰S7Õø)ñW]Ê>MSþá~ãeßž:³\¦‰1‹_SÀuîæa]wÇøˆ?†:M{6¿7~:Üúþ#^b;š,MV+SÇÓ\ó[Ù//Ñ,þ´¯§ˆf¼?M‰ÿ„¼ßûh„,½U]¯}YÅ¡lÏ1M–Y¶2ËÝn•&±­ÿ_-³Ž§êO9ÌÑvŠÎ2ïV³ˆ|á Š ÂS¼@ șÕ‚¢€x¦x†xaއXCK¿R0lÃÚÙr…¥ß œ…ØQ`Åf ÛBÇÁ›%Ã>–<Þ,y|€ OŽÒVyÞ È㙣<åQKžp–<žaä ܇<9…ò¬!Èã ʃB!¶hPMÈ@*ʃ3òxxåAƒ…ž<+^ß°=yNÇ“'àܼÞ7lêÉ#ÌÑûlOž£^y¸)yØž<žûÌ<’YÇÿù²çÇyõ5ZªÛ0LSc Ódž#M¿F_ßõÈÓŸ¿ï® × endstream endobj 103 0 obj << /Type /Font /Subtype /TrueType /BaseFont /CAAAAA+ArialMT /FirstChar 0 /LastChar 75 /Widths [ 750 722 556 556 500 333 222 556 556 277 277 333 500 333 556 556 333 556 556 556 666 556 556 777 222 500 556 556 722 556 277 833 277 277 277 556 666 556 722 777 500 722 500 833 500 556 556 722 722 666 556 500 666 277 556 556 610 722 277 354 943 190 556 610 666 666 277 277 666 277 222 556 666 889 666 556 ] /FontDescriptor 101 0 R /ToUnicode 102 0 R >> endobj 104 0 obj << /Length 105 0 R /Filter /FlateDecode /Length1 1376 >> stream xœå“ÍkAÆŸÙݤI+j$‚'Ù‹-HH«Š=J‘ÒÒ@´ ÕíºIö#ì&Ð Õ.‚ÁƒWÏõ&Ä“þ ž½yÁk{«ë³É$)’@œev~ï33ï<ÌG;ìØÈc*NZžÙ* –—€8Õp»õóWò7Èo¨]mÚæýKÓßtÆûŒ/7)l$7'åãsM¯½½“„9ÆkŒsn`™EDåYÏÜnMáZßãO÷MÏ~=¾Íx—õc+ˆÚE B˧>Å”dú×%Ó§¸#™>…#™>ÅŽdúÏ%Ó§xX˜åmŸG™_…TE>Û8ì  B—µ [Ëì·PÂ*ZÔ|Îè²g‹#]¬Si0ƒ “sǧը„Ìí0Jמcö¶cÆÎX³ú|¹\Ñ«__q¬0ˆºQÛö"}Ù·J«-Û¯v½­À]·× Gˆjv9¯Ï•ô‘úïmEzwúïåïܘò+¯O endstream endobj 105 0 obj 565 endobj 106 0 obj << /Type /FontDescriptor /FontName /EAAAAA+OpenSymbol /Flags 4 /FontBBox [ -179 -312 1083 917 ] /ItalicAngle 0 /Ascent 916 /Descent 312 /CapHeight 916 /StemV 80 /FontFile2 104 0 R >> endobj 107 0 obj << /Length 230 /Filter /FlateDecode >> stream xœ]ÁjÄ †ï‚ï0Çía1I¯!P¶,äÐÝÒ´`t’ Í(sÈÛטݥô¢øû}ò;êÔ¾¶ä"¨wö¦Ãƒ#Ë8û… B£#)Ê ¬3ñ~Ì›™tB%¿[çˆSKƒ‡º–@}$`޼ÂáÅúŸrxe‹ìh„Ãשۣn á'¤…M‡íÍ7.zBPY?¶6.®Ç$þA>×€PíA¹w3Þâ´AÖ4¢uQ4PŸÏHöÿíMêó­yƒËWEù¼ã÷|3óg½Ìœ*å™ä*[ Gø˜[ð!{·åˆo endstream endobj 108 0 obj << /Type /Font /Subtype /TrueType /BaseFont /EAAAAA+OpenSymbol /FirstChar 0 /LastChar 1 /Widths [ 500 555 ] /FontDescriptor 106 0 R /ToUnicode 107 0 R >> endobj 109 0 obj << /Length 110 0 R /Filter /FlateDecode /Length1 38904 >> stream xœÜ¼y|UÅù8<3gÎz÷}Ëronö $ Éa Kd“EF @P aÇV@E6°*àVЪ(Z {@©h­VûíWZ7´Z©EQk*µˆ¨äÞ÷™9'!Øåý}Þ÷ýëÍåœyfΜYžý™™ÃÒÅË‘­EÒg-hh¦¿ùBèÂîYË—F¿¾; ð)„äsšç.Xè;R3ß{ýª9¾çÿ!û9„FŒœ×Ø0û‰ë¶ÛšR môw¤n–!¿ò¹ó,]9<6ÿ"äw@þÂõ‹f5üP: 'BWo…üê +›ßv^šê„|taÂÆQô‹Û!_ŠPI¿æEK–¾‹ŠÓm˜Çž7/nlvŒ+ù9A†û³(±<¨(ÉŠªY¬6»Ãér{¼>  G22³²£±œxn^~AaQq¢GÏ^%¥½û”%Ëûöë_1``åèÿâQ”Á¯Ý(ƒæ# [útç•jJŸfÏXJ¾de—ù·=ÞÅ…8ŠöãïQ]À!ÜB} Üò,ê@÷"/š„¶a7ÊE~4Âê$Ðíøôòôçè ô3ôHú0¾9½žoA¯  0‚?SŒú¡±P2jDŸ Ÿ ÚôýHA DWa?j@ïÀïÃÝèô+üÓôèÕ‹n†ö*Ñ`48ýbú"*F·Ó­âIõ º =‡¥ô¬tÊB9h3I¤ßI„òQ-úzÆ”ÀÇéHCס[Ñ^è^ô(Ja+©†Š/@O£Ð´­@›Ñô:vãñâIñlú'é3HBTcjBŸãr<†füíÄÓðµÐ˼߃‰ƒÿ€¿€Y"þË!É0èuY xº™ÜMîÞß€ß ò>ùü|#ˆBŽÐWhZ…6á„ð)uÒ|Ú‹ö¦ãè4šÊôGˆÅ'ħėijR¥4[j–>“o–×)ÿÓQÜñçJÍKµ¦öï*ÀI7&~޾?4x0ú¿0âSèP!Œc¸Æ]«q ƒ¯Æ×àF|3Þ€†wàð#ø˜ÌÈ0öL&’ÒHÖ‘ är~GÉkär’´ÃÈB\H½…QÂ4aº°æ°TX-¬ÌÞ%ìÞÞΟ í@µÍ¢Ëè ô>º› ¯Àïññ¸øñ¢xQ"RXÊJ¤ùÒÒDz$÷•ÇË›ä·ä*Í8Ãȣݵ f‘=ÄK×àv(ÈÄ9`æ  ÃDŠ¢*!t±³ç06 Q{SÒi+¼¿?‡ÊñoЉ ‰é)´@NÑ_“+ÐÛ¸‡èna¡ø:‰¡§@m%Ï“çðt€T’)äAáOðèà÷•è|^‚žÂíx¾÷ÃkÐ[Ä/LÄëPeúB±ŠGá³F€n¢³Ñµÿ] â ôú<õsj£?ýÔ†¶EŸFá'Ñ÷XL ÚMmÔZævà÷[Ózu gk@C A®—Þ@˜E‘ûIƒè è,ú}.ŽšôLª‰þœþ5Ý/Ý$ ¤ =r7‰ù¸ääYît tIêñhšn­wWº5ý`ú–ôªô"ô;x÷{ÜwD´Á•è·ðÛ‚Þ÷ŽøfR³Ñqôâ<Üä¡]\.n÷ˆÄ_‰¿—z¶×¡€£?nÖ`³ÐÐè[¬mB¨JÂxûÃØ§¢ëI­p ÅaÔ 2[z|ˆ9“%ÐÊÍ€½Ažlœ=q ú:‰ ÀŒfAÿ ´Sxžµ Þ‚÷CÉlÐÚÅèo0o;îO–B:´´ ´ÖqÓèSÀvš«è…ax ´õ-º͆ú¢ñx/PàªÍ:LøÀw.v¢!8? ïÕƒ„ÚQ&ªÿŠ ê‘›îOš„c`cÒP¾ ¬W][`˜Gòáq¨¯Çír:ì6«ESY©@0ê1<^]mͯo¥ùñ‘#{²|¼ ºÔ·F¡¨úò:­Ñz^-zyMjÎùQMݨ©wÕÄÎh%ªìÙ#:<mýý°x´ O›0à;†Åk£­íÃá­¶‹Á ÑáÁyâ­¸>:¼µzù¼ÍÃë‡As{-ÚÐøÐF­g´W³h¨5oÞ‹ƒ0H`ø€½)6Tk8>lxk(>Œ UÈÞ0»uü„©Ã‡Eb±Úž=ZñÐYñ™­(>¤Õ‘àUÐPÞM«4´UæÝD›ØlÐmѽ=Žo¾½Í‰fÖ'¬³ã³®™Ú*4Ô²>\ èwXkà†ÓÁKYhÜ=tê†îO#ÂæáÁ¦(ËnÞ¼!Úz|ÂÔîOcì^[ mÀ»$¯º~s5t}; ±fbz#·ÖNmÅ·B—Q66+c~ñᬤ~~´U‰ÏÛ<¿HÞÜŠ®ZÛëGÒ§Pxxtó¤©ñXkU$^Û0,c¯m¾jÕþ ]þ¤g½N—ؽv‡ XmÝÆ®gâÕTsUf1Q|0DktVF25sêÏnýÑæYý¡üÕbx«u6P¤©UZ¿Ù9€•³÷[Åo@+öÿ—ÇÆóš‰ñš Ó¦F‡o®7q[3鲜ñ¼×3jõ *Dˆ ‘ˆÀŸS^ÓU™e¦Z[iü“8SÏn€)yŽV·:ëG÷Z-ûï´ÉJ·—ÚÒgÙ[<¹ôš9ÊÖ‰Ëó/Ë_6:ëfÆKóIͤi›7k—=«´ysu‚ÉÐú!µ{sáÙÔ#àŠè¼”t•²\”åP FßGþ(rDGh-JyÏÏjÈ—)eÍj#F™“—Á„›„_„X} 9@pJ’ÛH•îA"M H“i £"‰)"<ó‘ ÎnÎó••cç*ÇtT¢*€áÖ»4抹òà†Á¸Ž_ÔEôŠÒã,"…XWŒCœ¥âÿÕíª )!! P·B¡-ö»-Uß?½.ÉR½x⤤ÐGV¼²¬ !² RBTÈPêPžÓ>Ò"ÛÈmzH·Œ·Ô[„fËZ Ùe9n!QK©…XÕl”¥º}âĤÚœ‹R0ª‚÷k½—0—:˜L"Q9ÆYWײø¼™ƒÉUUb—»¢Áµ¡Wþ6Üøò^‰ 4õÒ§tÕ^T¢pc£>¬Ú’Š7ÄjÖö.Êk­=d)WÖZÊùÄ®÷J*á& ~¡  ´Z¸UÙªìRö)§éeá å}Eˆ %JR¨ŒS~&ìTv Ï*­Â ŠEf-¨eåI¢Ã r§t[IŸ$‰²›ì-‡’íºë•$“àÆkWgE!7…Èr¹)’2y,ÑåkÈYõ’ˆ<† —ï—Ÿ’GÞ#Ÿ‘3òwÄR@ åÑòJy£ü4‘0 eq¢ó1,ñ9¢º2 ¸‹QݵGÉTìI½Û±Wˆ?/è7W8F9®–ç[æ[÷¨»í»â‡ì'UMR$- øµ¾öj{µCVœªËk÷:¼Î¾ö¾ŽŽeöUÎ75ËJuehyæFuch}¦¤ú½ªÕaŸh_f_g¿Çþ »hÚ¬^›Íê°úlžÇéÅõÞ]^âõ¢h,$Íf·ûboÃÏëÈæ´Û[‘‚]R«t\:!QiCsGã¥qù¢œS瓜޳ºø¤ÒY×r¾®ý\];0H¥³’‰€»¢¤®RÎ-À)uö/cW‚|ïRT‡[ê¦úøÁE’d¿?à‰ ½H<îr•õéÛ·<™_o#‹þööÚ—^¬¿qþþÔÏßY<éÚ9•z{~帑¹ΈGǽ~ócïfô_ÿTêc\õTm¬ãAalîÔ!£§[E†ã{!Ò¸8v€7·BÏ“Ä#Þ#Aa„ˆçŠïˆÄíʃ©£ˆ“!ÁÁ³2f²_µ§Ûuvfif}fsæÚL1Óéè>ûŒÞ/Í~Œ³å|¢eL;—>s.ý¨®³)F|Ž’,Åã!riv÷â?aûU«÷ÌÜ>vþk/>òìò¡×Ž,ß%õÇ>|vC[“Ë×ñ.})Ußkæàñólh 6Ÿ³0 Úª_¡ˆTVò$w¶ˆKÅgE"Šª@ÙT45Ï‚ÀÓ¬ÈH Y°%µ•Út›`£j÷)X»Oa¬³ŽÉø¹Ês†c—‹Q Ì$¦ïˬAµï ód¯§‚ñ:TDg%̦鋙׽´êâçäTGT(^H=÷mªå[èóàø½e£5zY¡X¨4ÒF«X¨Œô×úçùÅŠ@ßȆÈ}â6‹˜íÊÈxÜy§úÚxÖÆp4V#1—;Š¢ÎR'q²YE/'L]eŒ9™TñÄúQÜ>/ľŒ. «e}ú "@F™{Hæáú›Úê{ö›3æ–™v¼‰ ?üi¿‘3*+¯Ÿ8è x4#ÿ¥Ô™ÿ=xË®Y5ÅÙô¥‹åv÷”ßìÙshŽÛÎøîªôgô~:Ù JÚ®ü ŸQ¾õ|룯’Ï€íBbH%µÎ)ž)þÚàv²CÚ¡l·¶©o“?‰¨o[ψg¤ÏlÎÝÊïÈÿH¿V^±ŠË”MÒ:Epµ‘¥û4KÝKeo…®4GHÄC¡ðÔÁ|ÚcÚÇ3² ·WµÃd[ê@O ª«MÎ9î9þ¦ Åu ¢Iwß²>ÈçEñœÜü<¯øfÏ‘®ÚÜñà?p2õÚ—?K}»G·-\xï½ n#9·cisêÕ¯þ‘úõºô?â‰]>ñ³d“a¾U0ßú‹>aª£Ö ¤t4¹›ü7W…¶“íÖWœ¯ßu¾ü\ú\ùÜó¹ï‚äéïéïíí¯ÖZ›¬òw?¿ °B\áØ ®wl =áÞí?â>äWíŒêÁH’¥ÝÞ¤½ÌÆJBYIž:\IÛQL‘Xq»,H‡ªH‡z¨l+Æø(Û ¢³RC%6ØbãìØŽÈ1ïeÈ;_7¦=q®=ª:ÎÕN$ I$ 5Ð)æ3$ù8Âú‰’ÏA.'*ëã§½S³Ï×tãšëÆÏñaoâÜï?Oý ûÛ_ú„|Ùg⤻ö{pú¢’_½„ó1Å2ÎÛÍpwàn"ÍG~ô ¸Ú5×µMT)$U’JW ©q!²ƒQÜE-~¤ù¼^M•<Þ|Ÿµá"Ýî×£¹Égý8íÇþp™7NnrkpW4ÏÉWAÔ,ùªÂ9 î.ŸU° TUò9ƒÕ2å ópi¯tr/†ëqÎDÀ.±r6Óüür0l^¿Ÿ+1…±Ž5]·çJʾªjäâbÚ9yæµ{¶‘]©à©Æã–ÆÇxŸÍs5BÒà‘<ð*‚ÁÔ¹´*@ŸÕ'ù­I!©$ƒÉø02\·‚µ/š¨Ö­-ÚYô¨´[~ÜzP:hm-:QtªÈŽŠJŠÆÃƒŠ>*’ŠôpF² òkùCQŽQ9œéç²"Ç沨ìt¹ "ùF’ÙïvéÓÊë]x‘ ƒTUëŽp$?3Êeàú œeò@`Àñ>„ 8£©U,Õû¸  j>®J¸r ’ú€+’%o|T 8 ² Ö¨ ZPZ. ¡Â¿¸6]„w«ÚËçëZ ”ηԱ„›À:û1ñe–Ó°–xq¢¥ÈðÄ| µþ@_~÷û€ÉÆó;ÁÕX¸íøœm¥Õ\³ì‘ÂÌԙ̂ çõJɪê;x^ÏÔšד“&Ož4ãša;:jÉŒŸ÷ªyÛ¶!ÕLëQ½î¾Ž‹ Çoͼ(ÿâr¦/èÕ–ŠûÔûmÛœOˆ»µçÔçlmaEñâ‘d„T­ËzÂvH:~Uû­õí¤õ‚ü­Í–áÈðé‘̤O·»’ß ¾7|‚#4«Š§ö¤äÜ÷x{½Øƒn …"I\æF¬Nf4ÉÓœ"#Mô4Ò`Ou‡Ý‘ÜÅb7' {†Û tßO-î £®EF1\â3¾$kFÖ¢¬Y4ËSt›#©„2› ñO0ù¯c àÓŸ`ùtoP/ôVõ,Ü"N¸e¸ª¸›WÕÁ-£5Ül0P‰§P¥û:«Ý9Ñù YÙóKZ÷«Ú ž«J07¹ötˆ^Ç»·ë€%;ëÔκ·ë€,Õ#‘vÿª ¤®Õ%0SGÑ‚ür¦ãrêaL!Kò=öýüÙÔßnmÂÞ7Û±[êÐ…›†L+VN¹¦²ã«Jîøà]b'R¯¦ŽÝxÛH|ý k†]Âä÷.ð=jüh§”=Ï4ežBÛ(ÉuS†9>wŠCw¦K¶Û$«Å‚A'ã|?â á44ò_4”ÕÎd üÔ.EeÅg­Øz¹¢âRsIW™ñVwMÕRë...0YÄGkSgr'TŒZšHÁâmoÖÝ?.›d=ÝØüº}©lšÿà¡óÖý„Í4;ý¹K|¬Ùïõ"p-p\+r °¶×:ä¿Ü/¸‰UÖdk° cÝ»­¡’ã!Іé>0Œ‘E’Ku»Õ¢–h%•à˜€~¡zaPȸ'ûª¼;½Ïz…zïZïVï ïY¯ˆ¼NoÔ[ê¥`¢VîêT!5­ý&Ö´„€ýò¦÷¯­âMðxœçB§QT‹@¡êià#W™þ‡`_ÜPÝý\•Ÿ¸âåeåy.rÃqKAFÁèàÌŸ^yC…E½é&¦ù§R“nNdDÞ/.›0¼÷½øSo>šÚâ5 ´B/à„8êƒ[ôyrXÉ3ýáÑ‘‘£òþäüÈ¥ö U‡®ÎŸš›¿>ÿg¡»Ã‡D^ ÿ6b•$›Ï/…üR‘¯6´‚¬'K¥W$ë É÷œ$3·OoW[®žè•ÌÕs áÊL.ʽ˜Kr«3_”‚˜_‘‰Q¦3³5ó»Lš™Ù—!JàT49ÆD%ÆD%¦ÃI¦ÿRÙjÓz0Á„g=Lå)ÔèÁˆ¢{-Y½ó•"µÐV›mÝi%ÙVœÞóš´†Ç%q²øâÎRð'ÊŠb3ø£˜X4•™Ú(Š£¥½Žé„‘;ÍØ³ÄØÄ5q®.qšÇE #bÞW’‰[jÛ;Ãç\˜ASNÊKêµuðPP°ƒ‡ Ž+f& pÝï÷ ^ D,à†¹<Ù·o¿¾ý ³Xƒ{(PÔ·7¦|ãù¶!’—úÂâ”…‘Ö=zlÊ?ûÍ•ãÕLÂ×öý"·ßÔaW/sZÈǽvÓáTÛí·^™Ñ/¤TWïÛ8펚Œ¼hÆ„áSt÷ TœÒ'¿_n# ün™§Á«g+&+Ž ¨TRWÇ«d­ÚªWO¨_©b¶Z¯®QwA(H2©à@XG'Ð)x³Ž€Y%™jD߈‡ô±Ü$ )¦ìw :¯ ªäA‡ÓDÊâ„äœEÜwãwˆÂ4uñ‡Ñ4\ŒÒgÄkÅ7Q½£]¯nònòïD;¤WÕ·„·,ßjžZh-´y‹üËÄeêzQ‘=r à ŠH±'Ê…â}âvõ5á7± ¡½ÊÉ>œea0‘+h˜"Í)ž¦‚=©ŠÚ´×ÌpàqìÐ}Á¤£ ê9îžšàøÊ>}…xSáRð6|»dì³åRY`±ÍþÈj3†i¹Ì"' 2mx¤ÔžY¸¤G™ÊB̀ᠺœLùÓ*œ=$õû/S¤6âpÛž˜Ý'õ§ðcËñ»ßîZ¾‡D¦ŸýoÁÓðB|ïÎk[«¯û"õ}ê‹/·±8¦0w0ÇâçGôÉÛÅíÊë;U°lWr° ¸R]á–W¸VúÖÓMÊ&ëzû­îMÞ¾Áõa«ìV¼rØç{ÃA_Xöô´©¡ž²6øašS‹j‚Æb¹hi¦nÆÙ»2¥hæÙL’é,{Τº”¯Kݾ?cõ¯»Â㺺–®0°öÏ“ìÇ„ ÌDÂ^wWPS;´Ï/çnÚ‡á[S«SÇRGR«qïO÷îý뇇Ÿ"oÚѼ/1 µ0uê¡Ô"@ȼïRétúâ…˜Eè¶ïð¸Œëñµ”–ŠãÕfu­ºU•%,’<*)j ¦kØúî©k’Å¥h ãȺûxÒLÖ’­„’Òñ´1—š S÷©pPß\‡ovÚ\Gàü]&¬œÅÕø£ÔzGj,}éÂ…Á¨F§?¥_uzàúG\m™‡ _éAy}À¼¾`¢Ql,\*­´--|ÏúNÜZ«M¶OΩϳÎqÏ5Îí±"s}涘ÕoKŸÚŸ•d©Þ ''äLˆ¿˜óbœ¶ä´Äoʹ)þ—œ¿Ä¥„VlËÍÉWØ’ñ­Æ6,gh|¾­1¾ÊvCÎ&ÛæœÇµÝ¶'r<ª¦Ú¤)ÒB6Žœ×l¦õP4¹(ˆwIð(iDsk¸";‚#=½É|>}T8š,Å:ëñV¼ ·âãàüêá 'Å´g±ü*ÀÝHjä‚üp¯ì‚]ÎVˆþkðW.cu#Ôó¦ÕLœº~ǰµ)î M,f¢ÔÂu±‘.¥¨0ð¸–øˆd|œ0Ó¿îóTäz ÜkàÁAî„îpWØ¢î _VöXx(³UhAvñe’Kµ†¦×}´¶òœrÀã(ÛМêøãÚ“9ª«í\žÈó›ñxÿ1í^¥†h3ÕðS¾¦Ää~4ކwnØr×W&ü½~Ú¯žÄà›È©“žo¼iTIþ¸õe·§Ñ ©/Rïà3îÚ¸jBrTÄÝkà”UÏ4ÿzÎׯÛZf•çT$óJæ,8vÛꮃ˜°8)5Ös;_‚Çê3WdnÈ$n«­¹÷zÛÚÞÜ"Jq)t<” ¦;j½µySЦ€szã‚ë‚Ç=ÐVæXXÖ˜Å_S8¬ÇYkG@»,«Åj³[mvÀ×Óf…ésýrŸŸëS»‹»Åû-V#-,6ôl<ÏH{' ×_õE¸yž!²˜/ÛQÀ»Ö“v‹O†¤â"K>xž.«¡P8¼¥7î ŽW›®¡²Ü˜;T:µÒŒþÏñÅÃËäBÊ´­´uZiÄÇ;ß§Z“Üa‡P-Àcµ vÉŠ³²ÛÚ‹­ÉÑämÊ›[4'ÑT"±å—€Á›iËÁ|›.{ ‚k;‰Gàžn+2«ð`%³pÊÂ~yÛêãïÜ8ã~³˃šŸÛ’úúã‹·ÔϽsã¼Æ[ª úû²bþÞñkxúà–·±‡yïÅÏ_yäN;¹åɇþùc»d=‚/G*š¢«×‘ŸÛˆ@( hÿ ¾píaE1²ªè9<x“:Ý&"šM£´•RÒŽâÝxê\j;ß¾‚˜ñÕ]pÂ%¹¼on¿2!?uæþ?,Ĥô4ožÎ}m=Ó©ÜoÀ!Pô‡X!Ÿi{&À…èÜåFÓc:PÕ˜v¾¾ÈÌ;3ðìíÛáv€{‹øêäþ>ɤhrKõ*o ‰D]/®O‰b¶X/6‹gEºV«K¤á=àòVæg¶œu̼ŠÒÞ;;=º.¿ƒ‡XŒØ@nÇ…âÑï«Ù,ÀBæÂ8Bh³Þ_VdUv¿:B¡ÊW«SœÛœÛ];|øw;ûßõ}"—,6«#"çyT«%j{bR¶]“£GÆGê#Bsdm„D#¥‘]‘ãÁ0®h¨4t<$„Øêf¸Ûæ _Ý4vf˜—Éà >LpQàÒ8Êp÷ïÆ…Ï–Ÿ®^Æ…¥7|æï­öfŠG/~z¬ÿ´s·=#$.¦RÞßVÛðÀäÕ瞇¦&lŒÒƒ¤@›KæjÛÉnò„]V'‚nç1œƒRÙÜs@ù§ø€µlÛïž?”팵wœnw‚Ê­ršãó Ê“D(ã˯D>qØ€Œ9›^ؾ{HÍÓ© û~uá£eÇOâ’wSYþðUê\ŠÛà À±ý@9Ñzáv«vá¦n'ÊÇÓBÖ‚Ù!8äª:‚3 oéxž¯ aA8ÿ}Øœ@k£šÖÄeå—íÕúô¯å2Ñ'x뙇£.¼‹ÅžC¯V_{õˆ+^UBó·_7¬ü›^ƒ÷¤þRv[êzºÏ1ݯ÷êïé!î¤Pa«ð$#ÄQ¶Qža‘ï"êiŠVëžâŸ¬Í8/QÀ}3µ'Ê,ØÔý‹ÓaÄ”psÎrÙíŽ|§óù5£µÌBfVQK‹±Üç<ݹll(½JcR˜i¯9Ò­É=Ç?'Ø”Áµ—ǘó²€± \1ÜMW݆¥²gæÁ$uñÈÔ-ã`Âþ;ç̼yý¬¹!È?;õçTGê|ê½êÉŸ Gö?õÐþÝìú–BT鄹“—ôã’KŠ+W ¾Ã½Ã»½àÞbUöV{‰û9Ûû«±Oâlçs¤"Ûd[£í^Ëv÷îœ#Vyp\Ï–?7gvþ÷ïúœ[rÕ~ùÃ¥jËhÛ8Gulø"¹ùý¬å1fyËseI]j,h+°æääÄåܽÇëJï*ßò¢eÅ}ëŠï÷Ý[| ç@ܶo ܼ¯øÉâÖR æ×cñ¤_ÏÈNfûñG~ì/Sbãó¶ä‘<=˜™Ì ³àR@4¾.íKzàY±R'v–á2רA«2lÛ! %V¶1š\-Ã#Isƒí_°ÕD;2݇r c ûq~NßXul® ÌÆMóXÃBñRè±YIaxxLÕ…–ña®öÈUuðªÎ«®%œß1Ûk3Òî æ²ü©ýÙ¹F>æy=Àu6Ü7§:g‡ížœ—sÞÊ‘b9V¥adZoTÆìøþ@Ï*l.nñ|N^’ûw™áŒ$†‡GëñZ| ;¹¿GyMjb¬AÏ g)aSðëд¿, C» èåý’¶RÐóŠàí:Ù<(§Éa='7éãñát˜˜“ç.ÿc1T] ‹¦Y¦fDÚ-ðWWÇÝÁÜôkºjqW9 áxøò­ÂêµV0pŸ•y}_ìµTðe9Ì6€[Lÿ Œ{¼·\õÚîî;Æ÷Rv/œµ _ž×7*õôôÕïòþ[…©o]3¦.*fäãk§žûê½\’¸jraFIÔçuÕ šrßæçï¼­÷ !Ùþx–/cÎèšõ?ûc+Èõ¢{øŽgzˆ­N^Ð{[*úEFDˆ›i Cg|+Kåt m §<2œÖØj<Ã#÷È÷©šÕŠu×$‹Å´NMâ,"B¾ƒ©+þ±©ÓÞQùé¿hî±0-bè‘énG)nS‰ø<ÞÀ%%²‡nÞ÷R*Õqdú^ݵªî–us׋G;ÎÞ“:“ú.u6õþôÚIñcãšw>uèᇘ…°@”6æ# Žè>±0\’”ÙMb7…Ý„¶ôÉýò†hx@ò~Š%Á¢(šÕâÃ>âÂjXËA=-¯Z¬ÀÏguf4©!ÑâE!K*¶$Ñˤbx@Ã6+oË¢’ƒ”†®|ÀßöŽèn Ò¨ESUB°°ZÁv­ô`FaÒbËæû²Ôq£S«ÒÆñp¸T·PRa¡UtèQRŠpz­î°–#±pÈúò®`"ļ€DpL{X¦ºÐXˆ?åyî®0[ë®À0ÎΉ:¶:ÌÙ;†cž[*òÄ0>œš„ ~; Ù¯ãX °×ññÁáþž=I–±k£"$õœZIÞ0«!‰h²¨FŸdQ—–½j–æ²ZÝ !!Å-B…4R)ívH|çN_Ùc ÐB©HU‹F­¦~Ñ«†4ŸÕG…´@ì©jÖÞ¨Ÿ8H­F#Èq¤‚Æoé;:Â¡Ž ÁÈ •¹“ä4N`°Ð„ß‘‹’…š†Ââz ´bÚî€E·UÀŒ/ì³UÀ„/€ª³èVVrT`$‹„-,wªSñqÍÉ\Æ_öÇצZ±ëÕÃØ±÷wØ—z*õõáÀc#I»~xŸ<Õ1¸¬ $× ÑH&®Òg  ‰¼N_ žž+C#C3†fN =@ï î¡g(R8Š ¥~á‘thphhhXÉ æ†rÂ?ŸN¡ƒFÌx0sOÆžLÅÍVŠ£™½3—g®ËÜšùN¦Â—‘ý^_2“8­ŽL'`—»þ:[e:»ýØ‘‡÷lE7Eg[KÀ‘Ô¡Üú¸GTOúýxÛÉÈvœt® ¡¬7_2‚G;žo©dž"ªêH´œ®ªìÃtv•% K’ !£«‚aŸƒ'ºÝYAg…¨¸ uU\¾L`Q#¡‰x0;KÏÖòÝl‰³e£c(’>…2àÊLŸêß¿-;OS‡]±¾nVr=*çõÍÃÃØHT’©õbs×—¿J h¬:OI}ÂÊ+ï]1¦,u~„‹©îÁêŸöV]=ùÚÆù?Éøìõ/ž™µæàsãó‘ñý”8‘>Áõ‡]4¢M Ó4ú”ø¸ü”ú¨åOø-YºÕ²ß#Ü/n—ïWï±<Ô0öÉ…8_®ÅSä[…ÍâfUMâ2 iQZ¢ £WjÓµuôví.ºSÛEߢÖlýhínú€ö*}M;Ae¨’EÉBE„PT‘ªB”¨^Éb‰"Ñ £“DQ DQU Ûðó‡%ÝãKJ5*Àû•°M8ŠŸGÜ(%5vàÉb.Y¯eªÔ ["jð¼¡c{ nÄ^ì°Û†^A–°mƒNµ¨»€Y•Sûôõê+©õ…[ç±7¾ªZÜãXç?üMjž†óA±_ê¹RÏ¥Ž’r,U„ßíèßaÇ?¤øI&†ûø ¤†Arú¤®ö«Û7ã\ayRÒ ù¸“úøX<ƒ[*¦Åb¡VbíêµÊ:Í'Âqž2WûLpŒ–0   v¨¬bE2àQ–TJ£¢äEIÑôpæ [¹pfRË#‚ Q†QÝ.ÉFŠtHMƒnÉÆüS¢µ`¦ÚH®®f«¸T]«õ(ÉEj¨Q‹!˵³:ÃûÐyðÄêZ‚\yunæiwñST‰Ä°.;++7¼l8< &ùÑB&5­ˆ¾²ø®˜NíS¨v4L]Ü+ÑþýM 1ä+àŠJÄR¿ZÛqhUê2W¿þ “Ú!ñfí8eî{J!À¼•u‹EÈWò- X£¬f€A‰ÈÌË©ýfª?šÑ Já&©ŠöWõKRUÓ<$ƒ:Õl-NzШZô<Ú¨Î×V•ôQuvP=ªW¿×ü;éVu§öŠúšö.9Iß;w†|F?g[Æðr;½E½]ÛJä©–F2ŸÎUçiËÉ**#5t˜Z£]­\­NÕä Ø‘$@“ê@­Ê. ÄJ%UÕ|$Lªlj˜lBø¢U–ûHvkˆ±QÆ+¶¤…Ýø,ív†Ó^vÏ8Õù îd€E0øèDÖÂèVÕiᯗ´;ßjg‘¶ô@½'ô¥ ™}êJ,šÖG hF°‚ùãÆOV²Ù‚¶íg_J%ýùâÎô:cQ'0qRRì#ëò+ÇÖŽY¢+i#ýu7((v±s°¨O¶[Y36¶`îi{"á¬ü»³2rv´t´T†ƒN`.(pžné2˜0Ú˹Íä,ÏD`*…»(c£:þgÄ(ÑÂÏ{bvÔdÚu~â0?ŸjO}˜úkêÏÀLAá³ï«éÍ?¬fð¸«ô1ñ$¢+ôðx™­HQ!OD ‡ŠÝéI½t?¤—b«Qc:Ì©2¾¿ý.$§Äg~õ-ãן±}zàW?Ú§'8W°%Zç<ÄõgüVeÑ/æ’©®y.câñºÜÁK0?c”)ÈÀ©^ŸæGÈ¢å+*ߺWqZÅêÚºGÞ|¿¯kÏއς'ýŸu­§ñ#.à’øö¦Ò¹Þà26ë/;ËâÂOm<Öðà¸ÌÔ™è„+ª–¥Î@ ðÉΑÍ·tÜEzïžV>lÓúŽ/aÒ0ÿM0ÿüŒä?™"øp¿ÍÅÏQë7†z&e`oT Î‘žÕ^Ð~«þN{_Ó& õ±ÉAµZºZY.‰‡Ôh;½H¿‘ıòXeŽt#½>@ï—î—ïW´lê–4!KÅr±Rb«¡5¢&I€:wQSA?ZD*±Ãä‹"ƒS¯YhY ‡Å¥"[Ær£XòñZ„³aÀ!kÕOÌåF†xÁösíŒ#»Ž6pÎTnt¾¬T^:jýÛ}à†ʱ#Z\g¬NÆEvmÂ!< OKÝ‹oMý!õÍ-ÀˆçñòÔO;®ÅnJ=ÍVø!Zl0£Å­zOw­TÛµ®´ ªÚœµ6‹ ’Ö¾dh´0Ì:Ú7,tŸªzyh ó3 Ùh"»-Ÿ/39(¼…EŒ1%”Ùµ¾n¬®³8ÑØËmï:³ÁWÉ¥¦îëL1ãÈr9Ýe}l‘©[€HR? Þ;ípê‡ÔKûnÆ¡wɰ6®›;{ÃÓkqLJî!΋Í{®\øØ£‡fkLcÒghüÌ"ôžÞgƒï5ùIÆmäqáIq·÷pT<ä}?øaHñ{ñþ;$¦Ù@Á<þX¶ÍiÕÚp®ngúm‹ØlØß†‰îÈö”xˆ‡9ˆžÇ#"Ì~ÊA'RÂ#Ã>PL/°µZƒiõ;O®ÉÞ’½3ûÙì²ÅìSòÉq¹87œðŸ ¬À'Q¨¸Ó›l7ÜI¾mÅŽáš.%»ñS¹ül˜q–Úô ùªˆÐ¥­£xŽÜÏßå"€Eðe¶oÄÎ|ŽÁNÛâ W¯X|UßšìÅ+§Ž9Ç’êˆ,øõª7nœûæêí©Oÿøjê{|klÞÂuÍóêûDhºzôÔÙõ=nÝ9}Ýõ_\yþÖSg?>šžºžÎ¤ƒ e¢‡ô~îJ’´%½•£É0Û0ïè ¥9g*¾@²V¬Õ®¶MñÔjÃS2×ϸ ž·}뵺=Â8ŠZ|ƲƒìpJA`ž,wÆ(ßåâËê'v†³ †:ßmíòÜ–.-æâe“ؤÍñ4šBs2©°KâÛ-ƉM¶ß‚“—Žs £ú=:ãà²ÍX8>ÿJ,¤ÎÞ:{Φu ?K]Oü#&n܉¤vÚô‡¾¯übç#­Ï>ð Ó:ì41×:¿ÐóT*jQµ<ê~l”€À//+Š)¢•Þ`g™ù¢¿m¼­Þ&4ÛÖÚ;¤½ËvÜFA9D/û"Ãúý»\Sv¨„G?©ÍÞ¾0O~tR»ó°v×oXa¸0u²ãyЪ/ÁßW“›:ÖÀœ‚àx~*¾ –¤MïÓ—âbuF]µtmPTè Aâó»ˆ×íwÙ=ä´{0r¯ª8,x†%m!FGMÂ.‡q8•ŸÄt®ÎBÓ’Ç«©eUÊ8p5¥ÐYâšá".vÊf÷äï ´ËÜOüì jMúC•GH“ð&ZŒóNë*ÏÕ…Œ¥xö¡\lU¯¢yÞ‰–ñ”ñSsÞç+óÅaÊñàƒ÷-[¹$è +ÊÿøÇÔ™iþøõë&æ¾ì¬˜PóáÅè®*¾Ç4‘ï1éEì\‹8^$kÅVñ¸xBüÊØXZ#î‚ 1TÕˆQç ¢ÿr‚Å<³bnh™ûHV°Zõ|íj‡~[¡ü[JvÈGðømù¬MTä0 Jñ¢þÊH\‹Š—ÉZ>NÈ}ñ¹–wX.Hd5æËÅZ’Іұگ©r¥6‰Öj³ém%¾Q»‡n“joÓ´‹šM 2,?(ªb­ŒViÕTõÑ6@«]§í¦‡!ô:OU&ÎîwYLsr?È/‹qtŸÕ•ÄT“)[Æ€DáÑ<9TÔ3™æ®ñ)ÝáÏM ù—"4óñY f €Ç–ünQ›dFmdÁ>©LeÖÒ¢4Ž³í´² 6“2 +vŸ5Žy…—ÖÂZX¼Öùà‘Û·DK§_g@;¶Š® Ì)› aV;H j[ÌB·Åe˜¯l`¶®aÅkRw᫟NíÀ›R»O¾OâDH}€sSjÇð¨ÔaÆAöÔzPÕƒ“Ü…"ö°©­Ž¤â·9’2»Iì&ú¡Œ0¦ÉHŠ’Dm»ä$È#Q¸†f"Sº¯ ?«»-[‰½E}¥¾zŸÀ.¾ÂžŸä~˜;#+éc'Q*=J2/¹ è*á9ÐC,çÆHÏè›4Ã_ïËæéÂdpg+‹F@ØZ<Æyî4ªj¯+1üdÜiyø’’lç{ÝæBR]M«°†í£Nt4 ÔJŸÝ+81ÀÌI>Óíà•yœžÜÜÁ*‘±dXºòF[µÆ2’l@cðãövœH]ÀñÔ¦¡yC¯^3~ÂØÐò™×†h~‡|}‘©›yEŽëÛ’Z†ýˆfÞì;ñ˜î×(Æmé´ÞÛ ‘9†›Œ|‹/h¤Ÿe„6Â:O%M¸‰¬q+ÑÖ¯è)+ÕJèÃòsd)Ä7ž¤«ªªH¸Äú0w–N'Ò¶Ð`é£ù½€sp‪•9æKõ<¶Ããp:¢ŽR‡îXãaÀýq÷ 7qËJZkÝʶ)ÙgsІl °NìÃø?ìYA§¸Vþ¤sŸˆ-7Õ%;ÏÍÌ+9WÙžXÌbšŽoNý¥¸¥ÓoÄéº] &±i¥j²ÂhÉ®$b!Øøî‡¤ÏꚥÂâ´Âeã+}µ¨¬÷í'Ébẏå¾e1_¾sfIïñ©MÂÂÔü-Ë2ðþ?áךKL>5Õã™Å%éöÔuôÆt TdX·âç ‹ ¯H²™œv~ŠJØ.¿mzèÖÔu‡±U|ЊÃÀ_Ó }¤WX£¶ Õ²&¬­×Y?¶Jí6,Q?Í£…¶‘¶é¶Ý¶Ã¶Wl*& ²J6YÔ,6Y­6[~F' ƒA£ª!Yk{2ÏáB 0Á!JáÔ†§·hXcžÛ)ï”_9ì¨"k!!ûQ|%É­ÑéöÁ?»Åv¸ÏâË­|•%LõPpÜ»‹tKOëÖ1Öß[?´ŠÈXÎc«óì˜.s1 …]˜¬îx‚üôËC‡RgSÏâ‚óÂ/.^ûmê=’…¿IY€·!@£Çø·£sØjÐÙƒŽ ™`·Ù…•Èl‡P¨Eã{jѶûvJ¨¶$dI‡)  0’G‰œÇBøöªÆœŒ-ƆH²ÅÄ £T,U)Ám$_w EÎS‘"‰#•f9˪aóëS -taHž“ÕLâ”{’¨\EJÍï>ÇË›ÉZm‹å9+;̵"Tg¬kƒ¹ÆìŽùüé˜L{_üP‚-Âá Ÿ^Œ ™™>#o)ŠNêÕý³j²¦ÈË•åÖ[•uÖ[ë"ª"î€;Rè* † ³”‘–ét’:Í2Ÿþ„Þ\>d?ä|ÕöŠó]ç§]È¢È0,HÌ#û3zJª›,u׌ó`;Uêa§J‹ý=Â8šÅî)$;H8šSšCrB»4ìвµRã´åþØê—.åßožkoá+nÆ)ÓÓ‰*vTv´$*;?׬«Ãà.KBRžt÷»t Mò±­o¿r¡Š¬®Kí<øijÏÓÇÜñG`䲩÷³ŸZûÒ'Ÿ=_÷ÜPù¶£mÚ¦ñÜ7?Á³gŒúäõ~×ßxþkˆâ~•< Tî`*ðµ‚~sÑô¯ôA–ò㦙ŠT 8J0x˜—D%™}\‰©,HŠL±@•"QSðð²çê‰y!HÑž#h["ƒ²¬Di#øk¹eÎ~•-L‚HC~:èì0’ÓlOo¥œ?m·‹ï¢¸Ìõ"˜Cä;ûµAq¾ÌUi¢3wÇ<œ·«ðäŽOH“0¡ãy2ìâ/;îêni^Ǥ-Ö«‘JbžUJ•”Z¢lUˆ¢ ããN6¹J'é*T™Õ}ù—Ú¿û²³®òÒç©üÃÜùrs»ÐÞ1Ìîx}µùØ…Ž»˜1s¹ø8ÊÄN½H±G­ýÜÃÝ£B÷Ù~nßî~ß®º]7¸Ôî[Ý"ÄÊ6 ô­Ûåj#»t¿ÝæµÛmnÍåþÂx¼•òÐ-@>ÌããˆÍÚF¦é¶l­D# ¥µÇ½|ÉÙëO² t¯àmÃOé^—+ÛYâ$%Î*ç8§àdU¬/Ãa§'Ô'Xà@8ÛÞ†cºÛ¶?‚4߉žÛÊzóºøÿÜiöÅ*¹Åd;6P芶ë˜X0"wûzÙø$«åòP»ÀH”O*eˆ1s§ã uù˜©7¬jXUz+9Óñ÷×Î|Ó¦-©ß¥^•9cÑ–­6\#?¤¾û®$uö½ƒw¾ô>PðjÀx1X½Š£cúÀù–eÊe{h·¸[yÒ¾ÇsÄ~ÈuÌsÜõ†Çæûº†9oð$tžðÊÏ¡7àuŠå Û‰FH„¡0 PyÜaËŽ•ÄHŒ!,öx•Šuõ„šVµ Ûÿ,ß•“MK€,:§‰OÄ'ÑŠ¬“ã¬ØÎ žt‡r»'Ì¥ c£ë°WK{¢¥ ®Î/ÖêÌåŸ7ž“çö(Q/ûÌ8RÐ,­©ª),x–-_[ÙéôXi/½×ø^õ½š{­íµµ×®^J´Wi/ÒË›EQO©‡x˜Ìõü·ß_Äÿøsj_z-é>#H÷]ö9u·oþŒ ?OíÏ7W=1¶:Ê?—7>(—;¿(\13“ßFF?óÔ†i‹f¬ßZ÷ðòÑ©OR6\øÒ/‹¯¼ºft?ìÁî]‰!õU¯‹G3¯¹oÆÜ§ϯ™}¬Å¦úJê—¢zõˆa“U±ãHj¥j­;äšbæ‘5 {…FÀ³ˆ,è:=¹AÜ`9/ž·€Æ’,b£e¹¸Ü"!QÀ’ESd#*XÎ)Š€”¨„»Š™ ü]¢Ù|£ˆmmÛo}ŒŸ¬kï¨ë`bØÊw¦e_?¶x˜g(”ñûcå¸O¯sì&ìÅ® R_w¦­î>ø5ߣ¼Kƒ³îvkD—íZŸUUSÚða=!K^YˆFEÍ+Šš¦ ‚¤ ª €ÅÙ–<&|W¡mdö>pq ÑÝ2ÿœžt­Òt~LßíCí B/-Ñ„@ïA§a6‚Ü/ì²`3*•—v7×xªQ ß‚y}ŸRБª‡ò¥u+Ý!í¢­ô8•×IOÐÏèy‘ò]¨~Wÿ³G.yÒÚRa½pŸpŸz¿¶G8*¼&h/ '„‹šp…6D ‹[ر–:#0“ÒŸ±ÿuDb§Ø=K-µùáfõVѨÅÍVÑOìw„ŒÔ0R¨ÁS¨ÄS³Þ>»§Ê<€;Ït_›¾’)øÎŽ“¤:uSjÁYñhÇ2r[Ço.ÞDZ¿I ¤¾äü¢7ö]Q/="ôÇ’ÔŸjê³`È¥|KE">«üþ)Ã^ƒ SyÞü¤ós ×ŒÏK/þÓ8;LÐЯvЯìdÅÝzÍJm£¶ï‘Ùÿ»qXý­ªLqÕúkÃS²çºæùç…çf+¤Bê«öµ"£¤ájµm·ú;òšô²ú²í=ò'é-õ-›ËŒ ß!Éí|\±e;JÄÁt©ãq$fžG1 çxOZB±éQö…מ†Ò¬Ã}~—S6Ö¾ûõ €e_óð¸¯Ë™ŸOú¼½rËÖo¿“úîeãý™ÉqeF"ßq 5#Uh…Ç??´íóÁ“¤àïE}ð¤ëÙNÓ‹ƒAN®ѹ“Ëñ Ý¿^üV$’8G\. Lv±xŽ ¡ +º…É(Á‘Æ í~ÛÎn‚yWwi4Î Oç^3š¼;ÃQùRøÿ6÷È_+»þQˆ'H;À_fgŒpçLJ<(5 ½ôôýè?¬$A‘ø*Ú×6q º—]¤±²{è_ÑUt š ér&Z ð`€ï"{P6À£ ÞÝP¯Aª@µPÞÞ é$xö{×íðün¨?TÈDàÙmð¬Ò Zà=Ò2xõ‡¤=è.xö\?ƒòMf[c ÎÆíY»Pf…ËNÊ¡KÒíçC?´7Sœ’îx;”M‡ëjöžð;Ô é}ðþkP6ŸA×ÀÜûâr|†Œ#Ïg„¸ð­ ¿7HwÈDþ™rŸò…ºA³hS,ë­K­­oÙ‚¶¶ßÛ«ìÇœõÎ?»6ºŸóÜé½Ò§úËü þ¿V¾ >Ê­KáÊHAäÓŒ_f¼š9)+3ëxöÀìMÑ!Ñb[c§r~“óu|iüQ“ƒPÈ#û#ȉJÐdÀÁXç"(c'fÐ2Ÿ§ø]àïi<'𷬘°€¦b§ SäÅóLXDAüS–¾Ç„eô2~Ú„”OšMXE›É6ÖèKBÔ„-h¦ü± [Ñe˜ ۤʶ£k×vñØÇQsV˜08TÎA&, Î!&L‘æ\hÂ"²:Wš°ð:–ÑLçVVÇùµ «h¸K4a4¸F›°õö<Õõ?—y>0a›0Íë0a;êh‚‘@c³¶›0EáÀc¡\ ¼`Âù¯qX‚r)ð‘ S0CŸpXft |kÂ@‹@šÃ ”[ƒ¦(Ìæ°ÊèìgÂ@ßP¹ C;¡*ú†F˜0´ÚiÂ@ßÐ~ú†~gÂ@ßÐ_MèÞmÂ@ßðïMè¹Ú„¾Ñ }£?1a oô/& ô-¸—ÃÃUÁ?LpU`ÌÑåî S”U˜à°•Í¥p” Ãø 'pØÎ8¿°Ñ„)Ê(\Æa'oç.fíü‚ÆóÂMp^ø*‡½l<…ï™0Œ§ð ‡}Pî-Â&LQ´ÈÇa?«_TnÂP¿h(‡C¼~ ³ú-Ž0(ºË„Šàp&OÑ^†ñæp6¯ÿš ³úor8—ñ@Ñç& fÿË8t«íª5Má­,éuôZ ¿(*„6š`l‹áɸæ@[Eÿ¶•ÿÔÆ¥º=»kR·òg8fÞfC ]Œ®ƒ2ÖÛÿsœG¡´°ÕcZÊÇÆp…<«³Ôlu2Ð#ŠÆó÷£(Ÿ÷7îã ï9÷ PŸ½×­2l¯ào²Özý›1t^ý²15CÝUÿ±V#ç/VoÕÜ®~›LîíÉ©¼Í4G=–?™Ç±Ø£éÑ5öÅüIçÔ‰p_ÆGmPÄàªþÀKCùH–r,wâm1Œ% µL^48ª‰ã~6ç0Æs y_Ýé>Ël«½¹€·ÈÆ=ú_À[4°å£nàýÍ2©aùV¨¿y·ü'Ñ®Ý~é’š·óæ73oÞìÛÝ[ñvÉ^λþKz÷<ë]Å=9¥l­\±&„Í'ã¥ÓËõègŠv%ËOzX{¾_‘á]ÅÚ8÷,Y û“8+Ý ìÇ5|‹áþ‹cÛŠ½0î¯ÚÄ]}:rŽu{šô¶¢§ÍkÇp7¨ÃìîˆÈúg;×ýïÏŒK}-eoù|Ø?‘5Fõ„Áÿœ÷ü´™1mˆø 3—5sº43<›J4óNÝÖÿ¥2ÆûÌTž$?•®õèÑH›h3§RülrlܶøYÃ2rŒ‘x.©§:ÌÔÈ’Íç…„“èù—ŒœE¦ŸkŽDøþÓÉDδÌQûÀŠÊj ! [ý¢}“÷çô#­çÎssô#ç9c,iÙFÎáÉ ·¡z®÷ê6¯çý§yÏèh3×3#ÜHYFajÍË–0fs,§gÇ'V‹ Þ™Ó ÉÌa“Ho˜Ÿ5‡aúL21n¦të YÏ%I÷éùÌ‚T‰ž03¶‘¦ØrÜÒ‘E$*9ÊG +9–9ÈKcO@KO¢3mæ >žOë„ÏãzNO`ØI&,ŒCÏpôMÐø“H{4†e™pGÒa?ŸçIÏ >Ÿ1x!i‹4¤Ms„ÐÔFØ6I ©Ö’Ì.;i@;F>7ÑÌE¦Í FNÇ|Û9C·Óè"@"9·ÈÍ£‘!ŒæS)4E¬pŸ6á$™É[¶ªeO¤ŒÕ™ jµÈ‹‘K'3B#gž‡Yñ'òpTšÀ‘¤>fRa9çãF*‹Œ˜|,yÁ ¢ìužB:xÚ@î2ÉÔõlÖ@3 NJéNR²¸ñu &m¤&8Æf¡vRd#L‰ôÚÞdyþ@ ßÒR(šÓ^Á6'Ìt˸Nµ¤mz¯_KÚúªNo&á§Œ¤†€œéé?uòÔ‰xÿ©ž3¼ç$ÿ©]gúºxüų]]§»ÎôWVTVô#­KY£Óœ PŒÀ]烡B¦1Oð 3OÈUò,Ž£RY¢8Db~qøe ®å ƒ*±™6®£ Ìa:Œ€´×CÕY r20qe:g$lÌó(ò¸M¡9f1ÅË8L ªw8oÃ4Â4qD­Pƒµ y9Ë`ª6~AOåõaT˜n¡BV£›ù¹Œ¨Ù‰¥Q`LÞÊ…òÖ¹•5I,:OŽœ#‹Qm„ÕGF’T¨ÊœX•’8'r+ŽîÇ‚J%ÓIœ½‚™;o•ŠTÔ£š,¨ùáTÒ'?°UJw…Šø1UÙ ^*^/Ck‰|œ]­^_Ë–pƒu/aä2Þr^ÜBÙ7ó©C’F¡´\=1|ÒÃLXFV–¸å1",±°&ì•9¦é^Ô£ë›!/¼ãÞ3?ºý<)œë‹ã$°ÿH[ìµ GÚ"‘òòsÝFZ[ÛÚ°=ã±Ã‡Ž:ZYñ1GÝ'Œ´×â…'ŽCÜ®ÞE]ê¬þ˜emÍòR%. >X£³"ek?ææžä¤÷¡ÇêO¦¼¡ÜS~¦ÜÇvfuÿùÆcƒÇ 6l<6Øxl°ñØ`ã±ÁÆcƒÇ 6l<6Øxl°ñØàÿñcƒåÏ’ìã>Y(õ|¼T­¦ä×è>Ùû¢X5¬5ZK²“ììŸg¿ƒþ­ýÔamßféúÊ\×âJïK¢µZ§$ù}±wA|Þ±¶mO¯wöÍ‹{?S•«µ×ë_)ócshúTßqß1ß ßaߟæû=_·ïèjíuûû×ýDgEzò‰ñ”$Ý´'µBguߊ´Û»6=ÿXÄ«äÒVöoJªdUÿ²ìÓÖͧÌͧ¶÷Iuåýyö¨ýŠ­óó׬_ùcV%Ñk©æ•?*wDµYåûŪíQ-T¾ËzA2s”Ól$3Sùv $C½Û ·Fç¨Q¬Ø BÿMÆA—A ›ÂVûˆôß,n¯&óßr«¶ Ü«n¤­Ô(k¢½ñÊ×™¤J†Õ1U¹þ x¼|XÁJAqjŪ`ô2üµC½]Ù‰eHUâJ5‹‚w*»Ù¡–w·”üäÝýÑx…rB©*UJ%Ö#U (~7ªò; ½²YSÞ(–?Eñ½áwFï)W?Û­ËÐÚ¥VÝS*X ˆFÒ_,¯ŒNÆ7+ýf?Ò¢*ôŸõoˆ­¦d\‚¿.åiV¾óJ-Û ~RyÆÝ©ÎßQ¾#Ôþ¬Àßq7ð±bå–è|¼\¡¿p”ëÈøuám²X$ÊâõÊ~ÉHê%´èÝ/AåZ×0M×05×05×Å5V†™¿Šz¡V‹ò Ë*6 º¶&wºÈàœh<»?:§|N©A&‚w; ÒÝÅò-Y»m»P«)nÞm¿§X¬$#x»¸«&jÞQÅPkö ë–oFêv•æÀjšƒ{ÊÓÊ3"µ"N\žĪ•IòßÊ ”ùå¢ù•ßÃ>ñ¿óø/=þ÷%þh^^(‹6+ÿñÅøÓò¿Ó :äa7Ð’å;òœjTùŸåYŠBþµ<ÇÚÁb|ü9ðwݽ¿PgåÙ"bÿ[YMƒ•¸M-^C y]{¼Æ¶êh<$ÿüSö4Lü üYðŸÊólø}ððyÙf¿G>ÄŽÿ•Ç&ߥš–"߯9S•‹î ÁqýÄn¹eÄ~ì²Ò^o‹zWþ±ü6Û Õ¹õ»!½Y¬V­º{’üg²íÖªÛâò¥é?¡4ÅgÛä?ucddÒ½ËÕ9yRžÔjbZH kÓJ$ G¦âaãÓ<”¯³MHXùMlq~–Q= 4)_u}1'þ_Kf—±­!l³¢Å° .÷þV´Úå+¬$ÃÆEÐ%ÐeÐk̇í+ WAß}SHlPTÀò‘" Dˆ¬@dÈ‘"+Yá="ÄC@ 1$C@ 1Ä@P¼C@ D/½@ôÑ+½@ôÑ D¯@ôÑ D¯@h@h@h@h¡¡¡¡ „„„& "@D€ˆDˆ ""DD 8‚Á‚Áà"Dˆ @"(A1?y!XbˆEXbˆE bˆE åÂŒ²ÿ9 €,² €,²È‚€,²È‚7t[$CFÙ\]]vØy`çØyQ^ya   p€p€p€pˆ) ¦€˜bJ ¦€˜b ˆ)˜…›â³ågžù5i €“«|Y: ø%ö¡àÙCÁ¿Éfÿ›üUöºà¯°˜àV/8ì n35 ¹j¬*^% ôU ºººò‹Ö{ =’iû|Uþÿ ÿ-ÿ}ÿ¦[þE¿\UÖSv£ìVÙý²M·ÊËdß#WŠuK û¶Ø^Âö#N"ض‹V»Ü¿mXgá·MnÓ¶þ†Ô(½×(Ýo”n5Jßn”âåò‹’O¬t¸Ò—¸4 m®?®>ÅêŽceº~ûÃ]ª[X•î–Ø­ üCÐ hô:(Š‚Â H²Fèhû<“wA  ½ N.Xu5®n¶m hsr¥4]üy%£/vöwÇmˆ€Íº =`?q†Õx¹t›5Ðeôfîmð[®ú>ºTbéªwÀnºjØW܆f°—݆_ªñJéS}í÷xÆMü¬«¾µ/ºê•¾v©¡ž´á(„ÞÒ{<䡞-yªsÕc`û\õ(iXM¼TÆÂ"¼M âJ}4' ø$í)õ7êwÔÿ$åñk>ë{/Dß1^¡Þ ÿ ”㪯 }œf<îG]U[Rè¶ú}µY½ž @üâ¾*\¸êë|V~[Û®^V#ª~_µÔÏ«ºzVýJrWý²z—ÂdƒÒ€üömµOa!W}14+B<©N¨šÚ åw)¿ìHÉn,|—2À¢%ï‘߯Ð,Õø¹Ø¬´UkôÿÖ?éÙßá?æ¯óïó?ã¯õïl [›@ ,à ÈØA_AÔD^¹£Œ¾ •ùhëí L[¹ô—¦²Ù癳]é–»û:¤ng>Áº‡¹ó»¾ºY©â‹_r6ÕuHζnÖÝßáiêžõ?:ëÄšºïË3’t}RG~cVbý³Ò#]Ùãl;Nvå­=sL’>wå­ÁAVS}¡½¦}Ûñ­GOv®³ò¶«^âV³ºYë|¯»oÀù‹ÚA'JGµƒÝÎk}üËsr•\ÙÕ9'o!680çËÊU]gIîËvBí}¡†jÞ5Ö@ jÆI ëI©aŽJzõ€Co/1èUT²z¡W_Q)ô|éÍ<ä]3œ c…ÎÃ[¥ƒŠ¶s¦¾^hÕqi€´¤:.; ©*TªPÁ›* ©’pæ´¬¨„<•CË*‡„/EZÑQK:;ö/éìØ¦ÿãÑÑ$[ótu]Cu]hÈyóÂxsy˜ó™‹yêàŽR?4œ'®N¾Îèt.Öuò™Öët? îÖºÎö «`æftº­ZkWÞ9Xla ¾Æ×Õe_/¬cì26@¾ÚãëtÇ©»|ÅÉWœ|µkíÂWW’ê¾w`&À:èë/ÊOU †‡öìì¨fSAÏÛ[sqÏ»>&ÝdO5 :›ë:œJu…ãá8uá8£®-Wy]5íÝó®tÓë B¼µ®cù]Œ”èmVÝÎÞ¾/ P©8š¾þœYô#ºkXW²ÿ°o ÂïjMf­ûc¯÷“Ïç-Úä›p—Üí4öu;‡é»Pü~¸ê„¬yI¦(B6S^Þ5ûhMB²Éµš$z¯£V».¿> endobj 112 0 obj << /Length 496 /Filter /FlateDecode >> stream xœ]”Íjã0…÷¿ƒ–í¢ØÒ•í‚!MÈb~˜tÀ±•Œ¡‘â,òöcŸ£–a6 G÷÷»—ël³ßî}?©ìgÚƒ›Ô©÷]p×áZ§ŽîÜû4ÑFu};}Jüµ—fL“lŽ?ܯ“»ìýiP«Uš(•ýš®S¸«‡u7Ý#„Î…ÞŸÕÃïÍO‡Û8~¸‹ó“ÊÓ¤®UçNKÎoÍø½¹8•!üißÍýtšÿqy¿N>höÖ»ŽMëBãÏ.MVy^«ÕnW§‰óÝÿÖ2FOíŸ&,ÞzöÎsûV/Â@B(rK·¢€0´”´Xˆ ¢ÜA¸Ëå"{ï¾>"ã0".þüÉÁÿ2 endstream endobj 113 0 obj << /Type /Font /Subtype /TrueType /BaseFont /BAAAAA+Arial-BoldMT /FirstChar 0 /LastChar 61 /Widths [ 750 722 722 666 666 277 722 610 556 610 889 556 610 333 556 277 722 777 610 666 610 556 277 277 722 333 389 610 556 610 556 777 556 666 722 833 610 610 556 610 556 610 722 333 277 556 556 500 556 556 610 777 666 610 556 556 722 474 722 333 556 237 ] /FontDescriptor 111 0 R /ToUnicode 112 0 R >> endobj 114 0 obj << /F1 113 0 R /F2 103 0 R /F3 98 0 R /F4 108 0 R /F5 93 0 R >> endobj 115 0 obj << /Im13 13 0 R /Im12 12 0 R /Im8 8 0 R /Im4 4 0 R >> endobj 116 0 obj << /Font 114 0 R /XObject 115 0 R /ProcSet [ /PDF /Text /ImageC /ImageI /ImageB ] >> endobj 1 0 obj << /Type /Page /Parent 88 0 R /Resources 116 0 R /MediaBox [ 0 0 612 792 ] /Annots [ 73 0 R 76 0 R 77 0 R 78 0 R 79 0 R 80 0 R 81 0 R 82 0 R 83 0 R 84 0 R 85 0 R 86 0 R 87 0 R ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 2 0 R >> endobj 5 0 obj << /Type /Page /Parent 88 0 R /Resources 116 0 R /MediaBox [ 0 0 612 792 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 6 0 R >> endobj 9 0 obj << /Type /Page /Parent 88 0 R /Resources 116 0 R /MediaBox [ 0 0 612 792 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 10 0 R >> endobj 16 0 obj << /Type /Page /Parent 88 0 R /Resources 116 0 R /MediaBox [ 0 0 612 792 ] /Annots [ 61 0 R ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 17 0 R >> endobj 19 0 obj << /Type /Page /Parent 88 0 R /Resources 116 0 R /MediaBox [ 0 0 612 792 ] /Annots [ 71 0 R 72 0 R ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 20 0 R >> endobj 22 0 obj << /Type /Page /Parent 88 0 R /Resources 116 0 R /MediaBox [ 0 0 612 792 ] /Annots [ 69 0 R 70 0 R ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 23 0 R >> endobj 25 0 obj << /Type /Page /Parent 88 0 R /Resources 116 0 R /MediaBox [ 0 0 612 792 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 26 0 R >> endobj 28 0 obj << /Type /Page /Parent 88 0 R /Resources 116 0 R /MediaBox [ 0 0 612 792 ] /Annots [ 75 0 R ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 29 0 R >> endobj 31 0 obj << /Type /Page /Parent 88 0 R /Resources 116 0 R /MediaBox [ 0 0 612 792 ] /Annots [ 67 0 R 68 0 R ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 32 0 R >> endobj 34 0 obj << /Type /Page /Parent 88 0 R /Resources 116 0 R /MediaBox [ 0 0 612 792 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 35 0 R >> endobj 37 0 obj << /Type /Page /Parent 88 0 R /Resources 116 0 R /MediaBox [ 0 0 612 792 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 38 0 R >> endobj 40 0 obj << /Type /Page /Parent 88 0 R /Resources 116 0 R /MediaBox [ 0 0 612 792 ] /Annots [ 74 0 R ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 41 0 R >> endobj 43 0 obj << /Type /Page /Parent 88 0 R /Resources 116 0 R /MediaBox [ 0 0 612 792 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 44 0 R >> endobj 46 0 obj << /Type /Page /Parent 88 0 R /Resources 116 0 R /MediaBox [ 0 0 612 792 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 47 0 R >> endobj 49 0 obj << /Type /Page /Parent 88 0 R /Resources 116 0 R /MediaBox [ 0 0 612 792 ] /Annots [ 65 0 R 66 0 R ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 50 0 R >> endobj 52 0 obj << /Type /Page /Parent 88 0 R /Resources 116 0 R /MediaBox [ 0 0 612 792 ] /Annots [ 63 0 R 64 0 R ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 53 0 R >> endobj 55 0 obj << /Type /Page /Parent 88 0 R /Resources 116 0 R /MediaBox [ 0 0 612 792 ] /Annots [ 62 0 R ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 56 0 R >> endobj 58 0 obj << /Type /Page /Parent 88 0 R /Resources 116 0 R /MediaBox [ 0 0 612 792 ] /Group << /S /Transparency /CS /DeviceRGB /I true >> /Contents 59 0 R >> endobj 88 0 obj << /Type /Pages /Resources 116 0 R /MediaBox [ 0 0 595 842 ] /Kids [ 1 0 R 5 0 R 9 0 R 16 0 R 19 0 R 22 0 R 25 0 R 28 0 R 31 0 R 34 0 R 37 0 R 40 0 R 43 0 R 46 0 R 49 0 R 52 0 R 55 0 R 58 0 R ] /Count 18 >> endobj 61 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [54 601.5 219.7 612.6] /A << /Type /Action /S /URI /URI (http://www.nagioscommunity.org/wiki/) >> >> endobj 62 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [148.1 656.6 282.2 667.7] /A << /Type /Action /S /URI /URI (http://www.nagios.org/support/) >> >> endobj 63 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [81 570.4 432.1 579.4] /A << /Type /Action /S /URI /URI (http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.6.tar.gz) >> >> endobj 64 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [315.9 601.5 459.1 612.6] /A << /Type /Action /S /URI /URI (http://www.nagios.org/download/) >> >> endobj 65 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [81 505.4 432.1 514.4] /A << /Type /Action /S /URI /URI (http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.6.tar.gz) >> >> endobj 66 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [315.9 536.5 459.1 547.6] /A << /Type /Action /S /URI /URI (http://www.nagios.org/download/) >> >> endobj 67 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [81 414.9 432.1 423.9] /A << /Type /Action /S /URI /URI (http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.6.tar.gz) >> >> endobj 68 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [315.9 446 459.1 457.1] /A << /Type /Action /S /URI /URI (http://www.nagios.org/download/) >> >> endobj 69 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [81 648 432.1 657] /A << /Type /Action /S /URI /URI (http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.6.tar.gz) >> >> endobj 70 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [315.9 688.1 459.1 699.2] /A << /Type /Action /S /URI /URI (http://www.nagios.org/download/) >> >> endobj 71 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [81 420.9 518.5 429.9] /A << /Type /Action /S /URI /URI (http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.6.tar.gz) >> >> endobj 72 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [323.1 452 466.3 463.1] /A << /Type /Action /S /URI /URI (http://www.nagios.org/download/) >> >> endobj 73 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [447.8 339.7 454.6 353.2] /Dest [5 0 R /XYZ 54 721.7 0] >> endobj 74 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [426.4 516.3 437.5 527.4] /Dest [43 0 R /XYZ 74.3 721.7 0] >> endobj 75 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [368.3 601.7 379.4 612.8] /Dest [43 0 R /XYZ 74.3 721.7 0] >> endobj 76 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [447.8 111.1 461.3 124.6] /Dest [55 0 R /XYZ 74.3 721.7 0] >> endobj 77 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [447.8 138 461.3 151.5] /Dest [49 0 R /XYZ 74.3 721.7 0] >> endobj 78 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [447.8 164.9 461.3 178.4] /Dest [43 0 R /XYZ 74.3 721.7 0] >> endobj 79 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [447.8 191.8 454.6 205.3] /Dest [31 0 R /XYZ 68.7 721.7 0] >> endobj 80 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [447.8 205.2 454.6 218.7] /Dest [19 0 R /XYZ 68.1 721.7 0] >> endobj 81 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [447.8 218.7 454.6 232.2] /Dest [16 0 R /XYZ 68.1 579.4 0] >> endobj 82 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [447.8 232.1 454.6 245.6] /Dest [16 0 R /XYZ 54 721.7 0] >> endobj 83 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [447.8 259 454.6 272.5] /Dest [9 0 R /XYZ 68.7 455.5 0] >> endobj 84 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [447.8 272.5 454.6 286] /Dest [9 0 R /XYZ 68.1 687.5 0] >> endobj 85 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [447.8 285.9 454.6 299.4] /Dest [9 0 R /XYZ 74.3 721.7 0] >> endobj 86 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [447.8 312.8 454.6 326.3] /Dest [5 0 R /XYZ 54 531.9 0] >> endobj 87 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [447.8 326.3 454.6 339.8] /Dest [5 0 R /XYZ 54 689.9 0] >> endobj 117 0 obj << /Type /Catalog /Pages 88 0 R >> endobj 118 0 obj << /Creator /Producer /CreationDate (D:20070501224448-05'00') >> endobj xref 0 119 0000000000 65535 f 0000199847 00000 n 0000000021 00000 n 0000001712 00000 n 0000001739 00000 n 0000200150 00000 n 0000015524 00000 n 0000019249 00000 n 0000019276 00000 n 0000200338 00000 n 0000046564 00000 n 0000048917 00000 n 0000059569 00000 n 0000048945 00000 n 0000059542 00000 n 0000069456 00000 n 0000200527 00000 n 0000069482 00000 n 0000072875 00000 n 0000200740 00000 n 0000072903 00000 n 0000076042 00000 n 0000200960 00000 n 0000076070 00000 n 0000078617 00000 n 0000201180 00000 n 0000078645 00000 n 0000081994 00000 n 0000201370 00000 n 0000082022 00000 n 0000084744 00000 n 0000201583 00000 n 0000084772 00000 n 0000087785 00000 n 0000201803 00000 n 0000087813 00000 n 0000090913 00000 n 0000201993 00000 n 0000090941 00000 n 0000095072 00000 n 0000202183 00000 n 0000095100 00000 n 0000098293 00000 n 0000202396 00000 n 0000098321 00000 n 0000102091 00000 n 0000202586 00000 n 0000102119 00000 n 0000104504 00000 n 0000202776 00000 n 0000104532 00000 n 0000107132 00000 n 0000202996 00000 n 0000107160 00000 n 0000109569 00000 n 0000203216 00000 n 0000109597 00000 n 0000114575 00000 n 0000203429 00000 n 0000114603 00000 n 0000117823 00000 n 0000204080 00000 n 0000204299 00000 n 0000204515 00000 n 0000204779 00000 n 0000204996 00000 n 0000205260 00000 n 0000205477 00000 n 0000205741 00000 n 0000205956 00000 n 0000206216 00000 n 0000206433 00000 n 0000206697 00000 n 0000206912 00000 n 0000207062 00000 n 0000207215 00000 n 0000207368 00000 n 0000207521 00000 n 0000207672 00000 n 0000207825 00000 n 0000207978 00000 n 0000208131 00000 n 0000208284 00000 n 0000208435 00000 n 0000208585 00000 n 0000208735 00000 n 0000208887 00000 n 0000209037 00000 n 0000203619 00000 n 0000117851 00000 n 0000127573 00000 n 0000127599 00000 n 0000127838 00000 n 0000128483 00000 n 0000129047 00000 n 0000144007 00000 n 0000144034 00000 n 0000144281 00000 n 0000144768 00000 n 0000145161 00000 n 0000172576 00000 n 0000172604 00000 n 0000172844 00000 n 0000173483 00000 n 0000174036 00000 n 0000174710 00000 n 0000174736 00000 n 0000174978 00000 n 0000175294 00000 n 0000175499 00000 n 0000198182 00000 n 0000198210 00000 n 0000198456 00000 n 0000199038 00000 n 0000199528 00000 n 0000199635 00000 n 0000199727 00000 n 0000209187 00000 n 0000209249 00000 n trailer << /Size 119 /Root 117 0 R /Info 118 0 R /ID [ ] >> startxref 209449 %%EOF nrpe-2.15/include/000077500000000000000000000000001221237212100140215ustar00rootroot00000000000000nrpe-2.15/include/acl.h000066400000000000000000000036001221237212100147300ustar00rootroot00000000000000/*- * acl.c - header file for acl.c * Copyright (c) 2011 Kaspersky Lab ZAO * Last Modified: 08-10-2011 by Konstantin Malov with Oleg Koreshkov's help * * License: GPL * * 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 * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef ACL_H_INCLUDED #define ACL_H_INCLUDED 1 #include #include #include #include #include #include #include #include #include #include #include #define CHAR_TO_NUMBER(c) ((c) - '0') struct ip_acl { int family; struct in_addr addr; struct in_addr mask; struct in6_addr addr6; struct in6_addr mask6; struct ip_acl *next; }; struct dns_acl { char domain[255]; struct dns_acl *next; }; /* Poiters to head ACL structs */ static struct ip_acl *ip_acl_head, *ip_acl_prev; static struct dns_acl *dns_acl_head, *dns_acl_prev; /* Functions */ void parse_allowed_hosts(char *allowed_hosts); int add_ipv4_to_acl(char *ipv4); int add_ipv6_to_acl(char *ipv6); int add_domain_to_acl(char *domain); //int is_an_allowed_host(struct in_addr); int is_an_allowed_host(int, void *); unsigned int prefix_from_mask(struct in_addr mask); void show_acl_lists(void); #endif /* ACL_H_INCLUDED */ nrpe-2.15/include/common.h000066400000000000000000000053421221237212100154660ustar00rootroot00000000000000/************************************************************************ * * COMMON.H - NRPE Common Include File * Copyright (c) 1999-2007 Ethan Galstad (nagios@nagios.org) * Last Modified: 09-06-2013 * * License: * * 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 * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ************************************************************************/ #include "config.h" #define PROGRAM_VERSION "2.15" #define MODIFICATION_DATE "09-06-2013" #define OK 0 #define ERROR -1 #define TRUE 1 #define FALSE 0 #define STATE_UNKNOWN 3 /* service state return codes */ #define STATE_CRITICAL 2 #define STATE_WARNING 1 #define STATE_OK 0 #define DEFAULT_SOCKET_TIMEOUT 10 /* timeout after 10 seconds */ #define DEFAULT_CONNECTION_TIMEOUT 300 /* timeout if daemon is waiting for connection more than this time */ #define MAX_INPUT_BUFFER 2048 /* max size of most buffers we use */ #define MAX_FILENAME_LENGTH 256 #define MAX_HOST_ADDRESS_LENGTH 256 /* max size of a host address */ #define NRPE_HELLO_COMMAND "_NRPE_CHECK" #define MAX_COMMAND_ARGUMENTS 16 /**************** PACKET STRUCTURE DEFINITION **********/ #define QUERY_PACKET 1 /* id code for a packet containing a query */ #define RESPONSE_PACKET 2 /* id code for a packet containing a response */ #define NRPE_PACKET_VERSION_3 3 /* packet version identifier */ #define NRPE_PACKET_VERSION_2 2 #define NRPE_PACKET_VERSION_1 1 /* older packet version identifiers (no longer supported) */ #define MAX_PACKETBUFFER_LENGTH 1024 /* max amount of data we'll send in one query/response */ typedef struct packet_struct{ int16_t packet_version; int16_t packet_type; u_int32_t crc32_value; int16_t result_code; char buffer[MAX_PACKETBUFFER_LENGTH]; }packet; /**************** OPERATING SYSTEM SPECIFIC DEFINITIONS **********/ #if defined(__sun) || defined(__hpux) # ifndef LOG_AUTHPRIV # define LOG_AUTHPRIV LOG_AUTH # endif # ifndef LOG_FTP # define LOG_FTP LOG_DAEMON # endif #elif _AIX # include # ifndef LOG_FTP # define LOG_FTP LOG_DAEMON # endif #endif nrpe-2.15/include/config.h.in000066400000000000000000000113221221237212100160430ustar00rootroot00000000000000/************************************************************************ * * NRPE Common Header File * Copyright (c) 1999-2007 Ethan Galstad (nagios@nagios.org) * Last Modified: 11-23-2007 * * License: * * 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 * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ************************************************************************/ #ifndef _CONFIG_H #define _CONFIG_H #include #include #define DEFAULT_SERVER_PORT @nrpe_port@ /* default port to use */ #define NRPE_LOG_FACILITY @log_facility@ #undef ENABLE_COMMAND_ARGUMENTS #undef ENABLE_BASH_COMMAND_SUBSTITUTION #undef socklen_t #undef HAVE_GETOPT_LONG #undef HAVE_LIBWRAP #undef STDC_HEADERS #undef HAVE_STRDUP #undef HAVE_STRSTR #undef HAVE_STRTOUL #undef HAVE_INITGROUPS #undef HAVE_CLOSESOCKET #undef SIZEOF_INT #undef SIZEOF_SHORT #undef SIZEOF_LONG /* stupid stuff for u_int32_t */ #undef U_INT32_T_IS_USHORT #undef U_INT32_T_IS_UINT #undef U_INT32_T_IS_ULONG #undef U_INT32_T_IS_UINT32_T #ifdef U_INT32_T_IS_USHORT typedef unsigned short u_int32_t; #endif #ifdef U_INT32_T_IS_ULONG typedef unsigned long u_int32_t; #endif #ifdef U_INT32_T_IS_UINT typedef unsigned int u_int32_t; #endif #ifdef U_INT32_T_IS_UINT32_t typedef uint32_t u_int32_t; #endif /* stupid stuff for int32_t */ #undef INT32_T_IS_SHORT #undef INT32_T_IS_INT #undef INT32_T_IS_LONG #ifdef INT32_T_IS_USHORT typedef short int32_t; #endif #ifdef INT32_T_IS_ULONG typedef long int32_t; #endif #ifdef INT32_T_IS_UINT typedef int int32_t; #endif /***** ASPRINTF() AND FRIENDS *****/ #undef HAVE_VSNPRINTF #undef HAVE_SNPRINTF #undef HAVE_ASPRINTF #undef HAVE_VASPRINTF #undef HAVE_C99_VSNPRINTF #undef HAVE_VA_COPY #undef HAVE___VA_COPY #define SOCKET_SIZE_TYPE "" #define GETGROUPS_T "" #define RETSIGTYPE "" #undef HAVE_GETOPT_H #ifdef HAVE_GETOPT_H #include #endif #undef HAVE_STRINGS_H #undef HAVE_STRING_H #ifdef HAVE_STRINGS_H #include #endif #ifdef HAVE_STRINGS_H #include #endif #undef HAVE_UNISTD_H #ifdef HAVE_UNISTD_H #include #endif #undef HAVE_SIGNAL_H #ifdef HAVE_SIGNAL_H #include #endif #undef HAVE_SYSLOG_H #ifdef HAVE_SYSLOG_H #include #endif #undef HAVE_SYS_STAT_H #ifdef HAVE_SYS_STAT_H #include #endif #undef HAVE_FCNTL_H #ifdef HAVE_FCNTL_H #include #endif #undef HAVE_SYS_TYPES_H #ifdef HAVE_SYS_TYPES_H #include #endif #undef HAVE_SYS_WAIT_H #ifdef HAVE_SYS_WAIT_H #include #endif #ifndef WEXITSTATUS # define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8) #endif #ifndef WIFEXITED # define WIFEXITED(stat_val) (((stat_val) & 255) == 0) #endif #undef HAVE_ERRNO_H #ifdef HAVE_ERRNO_H #include #endif /* needed for the time_t structures we use later... */ #undef TIME_WITH_SYS_TIME #undef HAVE_SYS_TIME_H #if TIME_WITH_SYS_TIME # include # include #else # if HAVE_SYS_TIME_H # include # else # include # endif #endif #undef HAVE_SYS_SOCKET_H #ifdef HAVE_SYS_SOCKET_H #include #endif /* Define to 'int' if does not define */ #undef socklen_t #undef HAVE_SOCKET_H #ifdef HAVE_SOCKET_H #include #endif #undef HAVE_TCPD_H #ifdef HAVE_TCPD_H #include #endif #undef HAVE_NETINET_IN_H #ifdef HAVE_NETINET_IN_H #include #endif #undef HAVE_ARPA_INET_H #ifdef HAVE_ARPA_INET_H #include #endif #undef HAVE_NETDB_H #ifdef HAVE_NETDB_H #include #endif #undef HAVE_CTYPE_H #ifdef HAVE_CTYPE_H #include #endif #undef HAVE_PWD_H #ifdef HAVE_PWD_H #include #endif #undef HAVE_GRP_H #ifdef HAVE_GRP_H #include #endif #undef HAVE_DIRENT_H #ifdef HAVE_DIRENT_H #include #endif #undef HAVE_SSL #ifdef HAVE_SSL #include #include #include #include #include #include #include #endif #undef HAVE_KRB5_H #ifdef HAVE_KRB5_H #include #endif #undef HAVE_INTTYPES_H #undef HAVE_STDINT_H #ifdef HAVE_INTTYPES_H #include #else #ifdef HAVE_STDINT_H #include #endif #endif #endif nrpe-2.15/include/dh.h000066400000000000000000000013341221237212100145660ustar00rootroot00000000000000#ifndef HEADER_DH_H #include #endif DH *get_dh512() { static unsigned char dh512_p[]={ 0xDA,0xD8,0xF0,0xA2,0x9A,0x64,0xC2,0x9F,0x22,0x9D,0x47,0xA1, 0xB2,0xED,0xD6,0x89,0xB5,0x46,0x6D,0x4E,0x1F,0x14,0xF4,0xF4, 0xEB,0xCA,0x4D,0x41,0x89,0x60,0x0D,0x1F,0xB3,0x50,0xC4,0x54, 0xE1,0x60,0xB5,0xDD,0x57,0x0C,0xF9,0xF5,0x19,0x73,0x6C,0x0C, 0x45,0x33,0xA9,0xC1,0xD7,0xF3,0x27,0x68,0xEE,0xDA,0x8C,0x4A, 0x1C,0x52,0xA1,0x9B, }; static unsigned char dh512_g[]={ 0x02, }; DH *dh; if ((dh=DH_new()) == NULL) return(NULL); dh->p=BN_bin2bn(dh512_p,sizeof(dh512_p),NULL); dh->g=BN_bin2bn(dh512_g,sizeof(dh512_g),NULL); if ((dh->p == NULL) || (dh->g == NULL)) { DH_free(dh); return(NULL); } return(dh); } nrpe-2.15/include/nrpe.h000066400000000000000000000042331221237212100151400ustar00rootroot00000000000000/************************************************************************ * * NRPE.H - NRPE Include File * Copyright (c) 1999-2007 Ethan Galstad (nagios@nagios.org) * Last Modified: 08-10-2011 by Konstantin Malov * * License: * * 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 * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ************************************************************************/ /* * 08-10-2011 IPv4 subnetworks support added. * Main change in nrpe.c is that is_an_allowed_host() moved to acl.c * */ /**************** COMMAND STRUCTURE DEFINITION **********/ typedef struct command_struct{ char *command_name; char *command_line; struct command_struct *next; }command; int process_arguments(int,char **); void wait_for_connections(void); void handle_connection(int); int read_config_file(char *); int read_config_dir(char *); int get_log_facility(char *); int add_command(char *,char *); command *find_command(char *); void sighandler(int); int drop_privileges(char *,char *); int check_privileges(void); int write_pid_file(void); int remove_pid_file(void); void free_memory(void); int validate_request(packet *); int contains_nasty_metachars(char *); int process_macros(char *,char *,int); int my_system(char *,int,int *,char *,int); /* executes a command via popen(), but also protects against timeouts */ void my_system_sighandler(int); /* handles timeouts when executing commands via my_system() */ void my_connection_sighandler(int); /* handles timeouts of connection */ void sighandler(int); void child_sighandler(int); nrpe-2.15/include/utils.h000066400000000000000000000033161221237212100153350ustar00rootroot00000000000000/************************************************************************************************ * * UTILS.H - NRPE Utilities Include File * * License: GPL * Copyright (c) 1999-2006 Ethan Galstad (nagios@nagios.org) * * Last Modified: 12-11-2006 * * Description: * * This file contains common include files and function definitions used in many of the plugins. * * License Information: * * 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 * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ************************************************************************************************/ #ifndef _UTILS_H #define _UTILS_H #include "../include/config.h" void generate_crc32_table(void); unsigned long calculate_crc32(char *, int); void randomize_buffer(char *,int); int my_tcp_connect(char *,int,int *); int my_connect(const char *, struct sockaddr_storage *, u_short, int, const char *); void add_listen_addr(struct addrinfo **, int, char *, int); void strip(char *); int sendall(int,char *,int *); int recvall(int,char *,int *,int); char *my_strsep(char **,const char *); void display_license(void); #endif nrpe-2.15/init-script.debian.in000066400000000000000000000017641221237212100164240ustar00rootroot00000000000000#!/bin/sh # Start/stop the nrpe daemon. # # Contributed by Andrew Ryder 06-22-02 # Slight mods by Ethan Galstad 07-09-02 NrpeBin=@bindir@/nrpe NrpeCfg=@sysconfdir@/nrpe.cfg test -f $NrpeBin || exit 0 case "$1" in start) echo -n "Starting nagios remote plugin daemon: nrpe" start-stop-daemon --start --quiet --exec $NrpeBin -- -c $NrpeCfg -d echo "." ;; stop) echo -n "Stopping nagios remote plugin daemon: nrpe" start-stop-daemon --stop --quiet --exec $NrpeBin echo "." ;; restart) echo -n "Restarting nagios remote plugin daemon: nrpe" start-stop-daemon --stop --quiet --exec $NrpeBin start-stop-daemon --start --quiet --exec $NrpeBin -- -c $NrpeCfg -d echo "." ;; reload|force-reload) echo -n "Reloading configuration files for nagios remote plugin daemon: nrpe" # nrpe reloads automatically echo "." ;; *) echo "Usage: /etc/init.d/nrpe start|stop|restart|reload|force-reload" exit 1 ;; esac exit 0 nrpe-2.15/init-script.in000066400000000000000000000022231221237212100151720ustar00rootroot00000000000000#!/bin/sh # # Created 2000-01-03 by jaclu@grm.se # # nrpe This shell script takes care of starting and stopping # nrpe. # # chkconfig: 2345 80 30 # description: nrpe is a daemon for a remote nagios server, \ # running nagios plugins on this host. # processname: nrpe # config: /usr/local/nagios/etc/nrpe.cfg # Source function library if [ -f /etc/rc.d/init.d/functions ]; then . /etc/rc.d/init.d/functions elif [ -f /etc/init.d/functions ]; then . /etc/init.d/functions elif [ -f /etc/rc.d/functions ]; then . /etc/rc.d/functions fi # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ ${NETWORKING} = "no" ] && exit 0 NrpeBin=@bindir@/nrpe NrpeCfg=@sysconfdir@/nrpe.cfg LockFile=/var/lock/subsys/nrpe # See how we were called. case "$1" in start) # Start daemons. echo -n "Starting nrpe: " daemon $NrpeBin -c $NrpeCfg -d echo touch $LockFile ;; stop) # Stop daemons. echo -n "Shutting down nrpe: " killproc nrpe echo rm -f $LockFile ;; restart) $0 stop $0 start ;; status) status nrpe ;; *) echo "Usage: nrpe {start|stop|restart|status}" exit 1 esac exit 0 nrpe-2.15/init-script.suse.in000066400000000000000000000042201221237212100161470ustar00rootroot00000000000000#! /bin/sh # Copyright (c) 1996-2002 SuSE GmbH Nuernberg, Germany. All rights reserved. # Modifications for NRPE Copyright (c) 2003 Subhendu Ghosh # Author: Christopher Mahmood , Remo Behn # Modifications for NRPE: Subhendu Ghosh # # /etc/init.d/nrpe # ### BEGIN INIT INFO # Provides: nrpe # Required-Start: $network # Required-Stop: # Default-Start: 2 3 5 # Default-Stop: 0 1 6 # Description: start nrpe ### END INIT INFO NRPEBIN=@bindir@/nrpe NRPECFG=@sysconfdir@/nrpe.cfg test -x $NRPEBIN || exit 5 # Shell functions sourced from /etc/rc.status: # rc_check check and set local and overall rc status # rc_status check and set local and overall rc status # rc_status -v ditto but be verbose in local rc status # rc_status -v -r ditto and clear the local rc status # rc_failed set local and overall rc status to failed # rc_failed set local and overall rc status to # rc_reset clear local rc status (overall remains) # rc_exit exit appropriate to overall rc status . /etc/rc.status # First reset status of this service rc_reset # Return values acc. to LSB for all commands but status: # 0 - success # 1 - generic or unspecified error # 2 - invalid or excess argument(s) # 3 - unimplemented feature (e.g. "reload") # 4 - insufficient privilege # 5 - program is not installed # 6 - program is not configured # 7 - program is not running # # Note that starting an already running service, stopping # or restarting a not-running service as well as the restart # with force-reload (in case signalling is not supported) are # considered a success. case "$1" in start) echo -n "Starting nrpe:" startproc $NRPEBIN -c $NRPECFG -d rc_status -v rc_reset ;; stop) echo -n "Shutting down nrpe:" killproc -TERM $NRPEBIN rc_status -v ; rc_reset ;; restart) $0 stop $0 start rc_status ;; status) echo -n "Checking for service nrpe:" checkproc $NRPEBIN rc_status -v rc_reset ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 ;; esac rc_exit nrpe-2.15/install-sh000077500000000000000000000127211221237212100144050ustar00rootroot00000000000000#! /bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 nrpe-2.15/nrpe.spec000066400000000000000000000160241221237212100142210ustar00rootroot00000000000000%define isaix %(test "`uname -s`" = "AIX" && echo "1" || echo "0") %define islinux %(test "`uname -s`" = "Linux" && echo "1" || echo "0") %if %{isaix} %define _prefix /opt/nagios %define _docdir %{_prefix}/doc/nrpe-2.15 %define nshome /opt/nagios %define _make gmake %endif %if %{islinux} %define _init_dir /etc/init.d %define _exec_prefix %{_prefix}/sbin %define _bindir %{_prefix}/sbin %define _sbindir %{_prefix}/lib/nagios/cgi %define _libexecdir %{_prefix}/lib/nagios/plugins %define _datadir %{_prefix}/share/nagios %define _localstatedir /var/log/nagios %define nshome /var/log/nagios %define _make make %endif %define _sysconfdir /etc/nagios %define name nrpe %define version 2.15 %define release 1 %define nsusr nagios %define nsgrp nagios %define nsport 5666 # Reserve option to override port setting with: # rpm -ba|--rebuild --define 'nsport 5666' %{?port:%define nsport %{port}} # Macro that print mesages to syslog at package (un)install time %define nnmmsg logger -t %{name}/rpm Summary: Host/service/network monitoring agent for Nagios URL: http://www.nagios.org Name: %{name} Version: %{version} Release: %{release} License: GPL Group: Application/System Source0: %{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-buildroot Prefix: %{_prefix} Prefix: /etc/init.d Prefix: /etc/nagios %if %{isaix} Requires: nagios-plugins %endif %if %{islinux} Requires: bash, grep, nagios-plugins, util-linux, chkconfig, shadow-utils, sed, initscripts, mktemp %endif %description NPRE (Nagios Remote Plugin Executor) is a system daemon that will execute various Nagios plugins locally on behalf of a remote (monitoring) host that uses the check_nrpe plugin. Various plugins that can be executed by the daemon are available at: http://sourceforge.net/projects/nagiosplug This package provides the client-side NRPE agent (daemon). %package plugin Group: Application/System Summary: Provides nrpe plugin for Nagios. Requires: nagios-plugins %description plugin NPRE (Nagios Remote Plugin Executor) is a system daemon that will execute various Nagios plugins locally on behalf of a remote (monitoring) host that uses the check_nrpe plugin. Various plugins that can be executed by the daemon are available at: http://sourceforge.net/projects/nagiosplug This package provides the server-side NRPE plugin for Nagios-related applications. %prep %setup -q %pre # Create `nagios' group on the system if necessary %if %{isaix} lsgroup %{nsgrp} > /dev/null 2> /dev/null if [ $? -eq 2 ] ; then mkgroup %{nsgrp} || %nnmmsg Unexpected error adding group "%{nsgrp}". Aborting install process. fi %endif %if %{islinux} getent group %{nsgrp} > /dev/null 2> /dev/null if [ $? -ne 0 ] ; then groupadd %{nsgrp} || %nnmmsg Unexpected error adding group "%{nsgrp}". Aborting install process. fi %endif # Create `nagios' user on the system if necessary %if %{isaix} lsuser %{nsusr} > /dev/null 2> /dev/null if [ $? -eq 2 ] ; then useradd -d %{nshome} -c "%{nsusr}" -g %{nsgrp} %{nsusr} || \ %nnmmsg Unexpected error adding user "%{nsusr}". Aborting install process. fi %endif %if %{islinux} getent passwd %{nsusr} > /dev/null 2> /dev/null if [ $? -ne 0 ] ; then useradd -r -d %{nshome} -c "%{nsusr}" -g %{nsgrp} %{nsusr} || \ %nnmmsg Unexpected error adding user "%{nsusr}". Aborting install process. fi %endif %if %{isaix} # Check to see if the nrpe service is running and, if so, stop it. /usr/bin/lssrc -s nrpe > /dev/null 2> /dev/null if [ $? -eq 0 ] ; then status=`/usr/bin/lssrc -s nrpe | /usr/bin/gawk '$1=="nrpe" {print $NF}'` if [ "$status" = "active" ] ; then /usr/bin/stopsrc -s nrpe fi fi %endif %if %{islinux} # if LSB standard /etc/init.d does not exist, # create it as a symlink to the first match we find if [ -d /etc/init.d -o -L /etc/init.d ]; then : # we're done elif [ -d /etc/rc.d/init.d ]; then ln -s /etc/rc.d/init.d /etc/init.d elif [ -d /usr/local/etc/rc.d ]; then ln -s /usr/local/etc/rc.d /etc/init.d elif [ -d /sbin/init.d ]; then ln -s /sbin/init.d /etc/init.d fi %endif %if %{isaix} %post /usr/bin/lssrc -s nrpe > /dev/null 2> /dev/null if [ $? -eq 1 ] ; then /usr/bin/mkssys -p %{_bindir}/nrpe -s nrpe -u 0 -a "-c %{_sysconfdir}/nrpe.cfg -d -s" -Q -R -S -n 15 -f 9 fi /usr/bin/startsrc -s nrpe %endif %preun %if %{isaix} status=`/usr/bin/lssrc -s nrpe | /usr/bin/gawk '$1=="nrpe" {print $NF}'` if [ "$status" = "active" ] ; then /usr/bin/stopsrc -s nrpe fi /usr/bin/rmssys -s nrpe %endif %if %{islinux} if [ "$1" = 0 ]; then /sbin/service nrpe stop > /dev/null 2>&1 /sbin/chkconfig --del nrpe fi %endif %if %{islinux} %postun if [ "$1" -ge "1" ]; then /sbin/service nrpe condrestart >/dev/null 2>&1 || : fi %endif %build export PATH=$PATH:/usr/sbin CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" \ MAKE=%{_make} ./configure \ --with-init-dir=/etc/init.d \ --with-nrpe-port=%{nsport} \ --with-nrpe-user=%{nsusr} \ --with-nrpe-group=%{nsgrp} \ --prefix=%{_prefix} \ --exec-prefix=%{_exec_prefix} \ --bindir=%{_bindir} \ --sbindir=%{_sbindir} \ --libexecdir=%{_libexecdir} \ --datadir=%{_datadir} \ --sysconfdir=%{_sysconfdir} \ --localstatedir=%{_localstatedir} \ --enable-command-args %{_make} all %install [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT %if %{islinux} install -d -m 0755 ${RPM_BUILD_ROOT}%{_init_dir} %endif DESTDIR=${RPM_BUILD_ROOT} %{_make} install install-daemon-config #install -d -m 0755 ${RPM_BUILD_ROOT}%{_sysconfdir} #install -d -m 0755 ${RPM_BUILD_ROOT}%{_bindir} #install -d -m 0755 ${RPM_BUILD_ROOT}%{_libexecdir} # install templated configuration files #cp sample-config/nrpe.cfg ${RPM_BUILD_ROOT}%{_sysconfdir}/nrpe.cfg #%if %{isaix} #cp init-script ${RPM_BUILD_ROOT}%{_init_dir}/nrpe #%endif #cp src/nrpe ${RPM_BUILD_ROOT}%{_bindir} #cp src/check_nrpe ${RPM_BUILD_ROOT}%{_libexecdir} %clean rm -rf $RPM_BUILD_ROOT %files %if %{islinux} %defattr(755,root,root) /etc/init.d/nrpe %endif %{_bindir}/nrpe %dir %{_sysconfdir} %defattr(600,%{nsusr},%{nsgrp}) %config(noreplace) %{_sysconfdir}/*.cfg %defattr(755,%{nsusr},%{nsgrp}) %doc Changelog LEGAL README %files plugin %defattr(755,%{nsusr},%{nsgrp}) %{_libexecdir} %defattr(644,%{nsusr},%{nsgrp}) %doc Changelog LEGAL README %changelog * Mon Mar 12 2012 Eric Stanley estanley<@>nagios.com - Created autoconf input file - Updated to support building on AIX - Updated install to use make install* * Mon Jan 23 2006 Andreas Kasenides ank<@>cs.ucy.ac.cy - fixed nrpe.cfg relocation to sample-config - replaced Copyright label with License - added --enable-command-args to enable remote arg passing (if desired can be disabled by commenting out) * Wed Nov 12 2003 Ingimar Robertsson - Added adding of nagios group if it does not exist. * Tue Jan 07 2003 James 'Showkilr' Peterson - Removed the lines which removed the nagios user and group from the system - changed the patch release version from 3 to 1 * Mon Jan 06 2003 James 'Showkilr' Peterson - Removed patch files required for nrpe 1.5 - Update spec file for version 1.6 (1.6-1) * Sat Dec 28 2002 James 'Showkilr' Peterson - First RPM build (1.5-1) nrpe-2.15/nrpe.spec.in000066400000000000000000000161401221237212100146250ustar00rootroot00000000000000%define isaix %(test "`uname -s`" = "AIX" && echo "1" || echo "0") %define islinux %(test "`uname -s`" = "Linux" && echo "1" || echo "0") %if %{isaix} %define _prefix /opt/nagios %define _docdir %{_prefix}/doc/@PACKAGE_NAME@-@PACKAGE_VERSION@ %define nshome /opt/nagios %define _make gmake %endif %if %{islinux} %define _init_dir /etc/init.d %define _exec_prefix %{_prefix}/sbin %define _bindir %{_prefix}/sbin %define _sbindir %{_prefix}/lib/nagios/cgi %define _libexecdir %{_prefix}/lib/nagios/plugins %define _datadir %{_prefix}/share/nagios %define _localstatedir /var/log/nagios %define nshome /var/log/nagios %define _make make %endif %define _sysconfdir /etc/nagios %define name @PACKAGE_NAME@ %define version @PACKAGE_VERSION@ %define release @RPM_RELEASE@ %define nsusr @nrpe_user@ %define nsgrp @nrpe_group@ %define nsport @nrpe_port@ # Reserve option to override port setting with: # rpm -ba|--rebuild --define 'nsport 5666' %{?port:%define nsport %{port}} # Macro that print mesages to syslog at package (un)install time %define nnmmsg logger -t %{name}/rpm Summary: Host/service/network monitoring agent for Nagios URL: http://www.nagios.org Name: %{name} Version: %{version} Release: %{release} License: GPL Group: Application/System Source0: %{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-buildroot Prefix: %{_prefix} Prefix: /etc/init.d Prefix: /etc/nagios %if %{isaix} Requires: nagios-plugins %endif %if %{islinux} Requires: bash, grep, nagios-plugins, util-linux, chkconfig, shadow-utils, sed, initscripts, mktemp %endif %description NPRE (Nagios Remote Plugin Executor) is a system daemon that will execute various Nagios plugins locally on behalf of a remote (monitoring) host that uses the check_nrpe plugin. Various plugins that can be executed by the daemon are available at: http://sourceforge.net/projects/nagiosplug This package provides the client-side NRPE agent (daemon). %package plugin Group: Application/System Summary: Provides nrpe plugin for Nagios. Requires: nagios-plugins %description plugin NPRE (Nagios Remote Plugin Executor) is a system daemon that will execute various Nagios plugins locally on behalf of a remote (monitoring) host that uses the check_nrpe plugin. Various plugins that can be executed by the daemon are available at: http://sourceforge.net/projects/nagiosplug This package provides the server-side NRPE plugin for Nagios-related applications. %prep %setup -q %pre # Create `nagios' group on the system if necessary %if %{isaix} lsgroup %{nsgrp} > /dev/null 2> /dev/null if [ $? -eq 2 ] ; then mkgroup %{nsgrp} || %nnmmsg Unexpected error adding group "%{nsgrp}". Aborting install process. fi %endif %if %{islinux} getent group %{nsgrp} > /dev/null 2> /dev/null if [ $? -ne 0 ] ; then groupadd %{nsgrp} || %nnmmsg Unexpected error adding group "%{nsgrp}". Aborting install process. fi %endif # Create `nagios' user on the system if necessary %if %{isaix} lsuser %{nsusr} > /dev/null 2> /dev/null if [ $? -eq 2 ] ; then useradd -d %{nshome} -c "%{nsusr}" -g %{nsgrp} %{nsusr} || \ %nnmmsg Unexpected error adding user "%{nsusr}". Aborting install process. fi %endif %if %{islinux} getent passwd %{nsusr} > /dev/null 2> /dev/null if [ $? -ne 0 ] ; then useradd -r -d %{nshome} -c "%{nsusr}" -g %{nsgrp} %{nsusr} || \ %nnmmsg Unexpected error adding user "%{nsusr}". Aborting install process. fi %endif %if %{isaix} # Check to see if the nrpe service is running and, if so, stop it. /usr/bin/lssrc -s nrpe > /dev/null 2> /dev/null if [ $? -eq 0 ] ; then status=`/usr/bin/lssrc -s nrpe | /usr/bin/gawk '$1=="nrpe" {print $NF}'` if [ "$status" = "active" ] ; then /usr/bin/stopsrc -s nrpe fi fi %endif %if %{islinux} # if LSB standard /etc/init.d does not exist, # create it as a symlink to the first match we find if [ -d /etc/init.d -o -L /etc/init.d ]; then : # we're done elif [ -d /etc/rc.d/init.d ]; then ln -s /etc/rc.d/init.d /etc/init.d elif [ -d /usr/local/etc/rc.d ]; then ln -s /usr/local/etc/rc.d /etc/init.d elif [ -d /sbin/init.d ]; then ln -s /sbin/init.d /etc/init.d fi %endif %if %{isaix} %post /usr/bin/lssrc -s nrpe > /dev/null 2> /dev/null if [ $? -eq 1 ] ; then /usr/bin/mkssys -p %{_bindir}/nrpe -s nrpe -u 0 -a "-c %{_sysconfdir}/nrpe.cfg -d -s" -Q -R -S -n 15 -f 9 fi /usr/bin/startsrc -s nrpe %endif %preun %if %{isaix} status=`/usr/bin/lssrc -s nrpe | /usr/bin/gawk '$1=="nrpe" {print $NF}'` if [ "$status" = "active" ] ; then /usr/bin/stopsrc -s nrpe fi /usr/bin/rmssys -s nrpe %endif %if %{islinux} if [ "$1" = 0 ]; then /sbin/service nrpe stop > /dev/null 2>&1 /sbin/chkconfig --del nrpe fi %endif %if %{islinux} %postun if [ "$1" -ge "1" ]; then /sbin/service nrpe condrestart >/dev/null 2>&1 || : fi %endif %build export PATH=$PATH:/usr/sbin CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" \ MAKE=%{_make} ./configure \ --with-init-dir=/etc/init.d \ --with-nrpe-port=%{nsport} \ --with-nrpe-user=%{nsusr} \ --with-nrpe-group=%{nsgrp} \ --prefix=%{_prefix} \ --exec-prefix=%{_exec_prefix} \ --bindir=%{_bindir} \ --sbindir=%{_sbindir} \ --libexecdir=%{_libexecdir} \ --datadir=%{_datadir} \ --sysconfdir=%{_sysconfdir} \ --localstatedir=%{_localstatedir} \ --enable-command-args %{_make} all %install [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT %if %{islinux} install -d -m 0755 ${RPM_BUILD_ROOT}%{_init_dir} %endif DESTDIR=${RPM_BUILD_ROOT} %{_make} install install-daemon-config #install -d -m 0755 ${RPM_BUILD_ROOT}%{_sysconfdir} #install -d -m 0755 ${RPM_BUILD_ROOT}%{_bindir} #install -d -m 0755 ${RPM_BUILD_ROOT}%{_libexecdir} # install templated configuration files #cp sample-config/nrpe.cfg ${RPM_BUILD_ROOT}%{_sysconfdir}/nrpe.cfg #%if %{isaix} #cp init-script ${RPM_BUILD_ROOT}%{_init_dir}/nrpe #%endif #cp src/nrpe ${RPM_BUILD_ROOT}%{_bindir} #cp src/check_nrpe ${RPM_BUILD_ROOT}%{_libexecdir} %clean rm -rf $RPM_BUILD_ROOT %files %if %{islinux} %defattr(755,root,root) /etc/init.d/nrpe %endif %{_bindir}/nrpe %dir %{_sysconfdir} %defattr(600,%{nsusr},%{nsgrp}) %config(noreplace) %{_sysconfdir}/*.cfg %defattr(755,%{nsusr},%{nsgrp}) %doc Changelog LEGAL README %files plugin %defattr(755,%{nsusr},%{nsgrp}) %{_libexecdir} %defattr(644,%{nsusr},%{nsgrp}) %doc Changelog LEGAL README %changelog * Mon Mar 12 2012 Eric Stanley estanley<@>nagios.com - Created autoconf input file - Updated to support building on AIX - Updated install to use make install* * Mon Jan 23 2006 Andreas Kasenides ank<@>cs.ucy.ac.cy - fixed nrpe.cfg relocation to sample-config - replaced Copyright label with License - added --enable-command-args to enable remote arg passing (if desired can be disabled by commenting out) * Wed Nov 12 2003 Ingimar Robertsson - Added adding of nagios group if it does not exist. * Tue Jan 07 2003 James 'Showkilr' Peterson - Removed the lines which removed the nagios user and group from the system - changed the patch release version from 3 to 1 * Mon Jan 06 2003 James 'Showkilr' Peterson - Removed patch files required for nrpe 1.5 - Update spec file for version 1.6 (1.6-1) * Sat Dec 28 2002 James 'Showkilr' Peterson - First RPM build (1.5-1) nrpe-2.15/package/000077500000000000000000000000001221237212100137715ustar00rootroot00000000000000nrpe-2.15/package/solaris/000077500000000000000000000000001221237212100154455ustar00rootroot00000000000000nrpe-2.15/package/solaris/Makefile.in000066400000000000000000000060151221237212100175140ustar00rootroot00000000000000################################### # Makefile for NRPE Solaris Package # # Last Modified: 2 Dec 2011 ################################### TARGET_OS=@TARGET_OS@ TARGET_VER=@TARGET_VER@ TARGET_ARCH=@TARGET_ARCH@ TARGET_PLATFORM=@TARGET_PLATFORM@ SOLARIS_CONFIG_OPTS=--prefix=/opt/nagios --sysconfdir=/etc/nagios --enable-command-args PKG_NAME=NGOSnrpe PKG_VERSION=@PKG_VERSION@ PKG_FILE=@PACKAGE_NAME@-$(PKG_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH)-local TOPDIR=@top_builddir@ PKGDIR=@builddir@/pkg SRCDIR=@builddir@/build/src INSTALLDIR=@builddir@/install ABSINSTALLDIR=@abs_builddir@/install build: if [ ! -d build ] ; then mkdir build ; fi if [ ! -d install ] ; then mkdir install ; fi cd build; ../../../configure $(SOLARIS_CONFIG_OPTS); $(MAKE) all; DESTDIR=$(ABSINSTALLDIR) $(MAKE) install install-daemon-config prototype: $(PKGDIR) @echo "i pkginfo" > $(PKGDIR)/prototype @echo "i copyright=../$(TOPDIR)/LEGAL" >> $(PKGDIR)/prototype @echo "i preinstall" >> $(PKGDIR)/prototype @echo "i i.config" >> $(PKGDIR)/prototype @echo "i r.config" >> $(PKGDIR)/prototype @echo "i i.manifest=/usr/sadm/install/scripts/i.manifest" >> $(PKGDIR)/prototype @echo "i r.manifest=/usr/sadm/install/scripts/r.manifest" >> $(PKGDIR)/prototype @echo "d none /etc/nagios 0755 nagios nagios" >> $(PKGDIR)/prototype @echo "f config /etc/nagios/nrpe.cfg=$(INSTALLDIR)/etc/nagios/nrpe.cfg 0600 nagios nagios" >> $(PKGDIR)/prototype @echo "d none /opt/nagios/bin 0755 nagios bin" >> $(PKGDIR)/prototype @echo "f none /opt/nagios/bin/nrpe=$(SRCDIR)/nrpe 0755 nagios bin" >> $(PKGDIR)/prototype @echo "d none /opt/nagios/libexec 0755 nagios bin" >> $(PKGDIR)/prototype @echo "f none /opt/nagios/libexec/check_nrpe=$(SRCDIR)/check_nrpe 0755 nagios bin" >> $(PKGDIR)/prototype @echo "f none /lib/svc/method/nrpe=$(PKGDIR)/nrpe 0555 root bin" >> $(PKGDIR)/prototype @echo "d none /var/svc/manifest/application/nagios 0755 root sys" >> $(PKGDIR)/prototype @echo "f manifest /var/svc/manifest/application/nagios/nrpe.xml=$(PKGDIR)/nrpe.xml 0444 root sys" >> $(PKGDIR)/prototype pkginfo: $(PKGDIR) @echo PKG="$(PKG_NAME)" > $(PKGDIR)/pkginfo @echo NAME="Nagios Remote Plugin Executor $(PKG_VERSION)" >> $(PKGDIR)/pkginfo @echo VERSION="$(PKG_VERSION)" >> $(PKGDIR)/pkginfo @echo ARCH="$(TARGET_ARCH)" >> $(PKGDIR)/pkginfo @echo CATEGORY="utility" >> $(PKGDIR)/pkginfo @echo CLASSES="none config manifest" >> $(PKGDIR)/pkginfo @echo VENDOR="www.nagios.org" >> $(PKGDIR)/pkginfo @echo EMAIL="nagios-users@lists.sourceforge.net" >> $(PKGDIR)/pkginfo @echo ISTATES="S s 1 2 3" >> $(PKGDIR)/pkginfo @echo RSTATES="S s 1 2 3" >> $(PKGDIR)/pkginfo @echo BASEDIR="/" >> $(PKGDIR)/pkginfo $(PKG_FILE): pkginfo prototype pkgmk -o -d $(PKGDIR) -f $(PKGDIR)/prototype -r . pkgtrans ./pkg $(PKG_FILE) $(PKG_NAME) pkg: $(PKG_FILE) all: pkg clean: rm -rf build install package rm -rf $(PKGDIR)/$(PKG_NAME) rm -f $(PKGDIR)/prototype $(PKGDIR)/pkginfo rm -f $(PKGDIR)/$(PKG_FILE) rm -f core rm -f *~ */*~ distclean: clean rm -f Makefile rm -f config.log devclean: distclean nrpe-2.15/package/solaris/pkg/000077500000000000000000000000001221237212100162265ustar00rootroot00000000000000nrpe-2.15/package/solaris/pkg/i.config000066400000000000000000000031241221237212100176450ustar00rootroot00000000000000#!/usr/bin/sh create_cksum_file() { srcfile=$1 destfile=$2 cksumfile=$3 echo "# DO NOT EDIT OR REMOVE THIS FILE - It is used to determine whether to" > $cksumfile echo "# overwrite $destfile on package update or to remove" >> $cksumfile echo "# it on package deletion." >> $cksumfile /usr/bin/cat $srcfile | /usr/bin/cksum >> $cksumfile /usr/bin/chmod 400 $cksumfile } compare_cksum() { destfile=$1 cksumfile=$2 installed_cksum=`/usr/bin/tail -1 $cksumfile | /usr/bin/awk '{print $1}'` current_cksum=`/usr/bin/cksum $destfile | /usr/bin/awk '{print $1}'` test $installed_cksum = $current_cksum } while read src dest ; do destpath=`echo $dest | /usr/bin/sed -e 's/\/[^/]*$//'` destbase=`/usr/bin/basename $dest` cksumfile="${destpath}/.${destbase}.cksum" if [ -f $dest ] ; then if [ -f $cksumfile ] ; then compare_cksum $dest $cksumfile if [ $? -eq 0 ] ; then /usr/bin/cp $src $dest /usr/bin/chmod 600 $dest /usr/bin/chown nagios:nagios $dest else echo "Existing $dest has been found --" echo " installing $destbase as $dest.pkgnew" /usr/bin/cp $src $dest.pkgnew /usr/bin/chmod 600 $dest.pkgnew /usr/bin/chown nagios:nagios $dest.pkgnew fi else echo "Existing $dest has been found --" echo " installing $destbase as $dest.pkgnew" /usr/bin/cp $src $dest.pkgnew /usr/bin/chmod 600 $dest.pkgnew /usr/bin/chown nagios:nagios $dest.pkgnew fi else create_cksum_file $src $dest $cksumfile /usr/bin/cp $src $dest /usr/bin/chmod 600 $dest /usr/bin/chown nagios:nagios $dest fi done if [ "$1" = "ENDOFCLASS" ] ; then exit 0 fi nrpe-2.15/package/solaris/pkg/nrpe000066400000000000000000000006431221237212100171200ustar00rootroot00000000000000#!/sbin/sh # NRPE=/opt/nagios/bin/nrpe CFGFILE=/etc/nagios/nrpe.cfg PIDFILE=/var/run/nrpe.pid case $1 in 'start') $NRPE -c $CFGFILE -d ;; 'restart') if [ -f "$PIDFILE" ]; then /usr/bin/kill -HUP `/usr/bin/cat $PIDFILE` fi ;; 'stop') if [ -f "$PIDFILE" ]; then /usr/bin/kill `/usr/bin/cat $PIDFILE` /bin/rm -f $PIDFILE fi ;; *) echo "Usage: $0 { start | restart | stop }" exit 1 ;; esac exit $? nrpe-2.15/package/solaris/pkg/nrpe.xml000066400000000000000000000056761221237212100177320ustar00rootroot00000000000000 nrpe-2.15/package/solaris/pkg/postinstall000066400000000000000000000003401221237212100205220ustar00rootroot00000000000000#!/usr/bin/sh echo "To begin using NRPE, first edit /etc/nagios/nrpe.cfg, update the" echo "allowed_hosts line and any command lines. Then start the nrpe service" echo "by running the command 'svcadm enable nrpe' as root." nrpe-2.15/package/solaris/pkg/preinstall000066400000000000000000000014551221237212100203330ustar00rootroot00000000000000#!/usr/bin/sh user="nagios" uid=-1 group="nagios" gid=-1 /usr/bin/getent group $group > /dev/null 2> /dev/null result=$? if [ $result -eq 2 ] ; then echo "Group $group does not exist. Creating..." if [ $gid -ne -1 ] ; then /usr/sbin/groupadd -g $gid $group else /usr/sbin/groupadd $group fi elif [ $result -ne 0 ] ; then echo "An error occurred determining the existence of the groug $group. Terminating." exit 1; fi /usr/bin/getent passwd $user > /dev/null 2> /dev/null result=$? if [ $result -eq 2 ] ; then echo "User $user does not exist. Creating..." if [ $uid -ne -1 ] ; then /usr/sbin/useradd -u $uid -g $group $user else /usr/sbin/useradd -g $group $user fi elif [ $result -ne 0 ] ; then echo "An error occurred determining the existence of the user $user. Terminating." exit 1; fi nrpe-2.15/package/solaris/pkg/r.config000066400000000000000000000015031221237212100176550ustar00rootroot00000000000000#!/usr/bin/sh compare_cksum() { destfile=$1 cksumfile=$2 installed_cksum=`/usr/bin/tail -1 $cksumfile | /usr/bin/awk '{print $1}'` current_cksum=`/usr/bin/cksum $destfile | /usr/bin/awk '{print $1}'` test $installed_cksum = $current_cksum } while read path ; do destpath=`echo $path | /usr/bin/sed -e 's/\/[^/]*$//'` destbase=`/usr/bin/basename $path` cksumfile="${destpath}/.${destbase}.cksum" if [ -f $path ] ; then if [ -f $cksumfile ] ; then compare_cksum $path $cksumfile if [ $? -eq 0 ] ; then /usr/bin/rm -f $path $cksumfile else echo "$path has been modified since it was installed -- " echo " leaving it in place." fi else echo "$path may have been modified since it was installed -- " echo " leaving it in place." fi fi done if [ "$1" = "ENDOFCLASS" ] ; then exit 0 fi nrpe-2.15/sample-config/000077500000000000000000000000001221237212100151225ustar00rootroot00000000000000nrpe-2.15/sample-config/nrpe.cfg.in000066400000000000000000000173311221237212100171610ustar00rootroot00000000000000############################################################################# # Sample NRPE Config File # Written by: Ethan Galstad (nagios@nagios.org) # # Last Modified: 11-23-2007 # # NOTES: # This is a sample configuration file for the NRPE daemon. It needs to be # located on the remote host that is running the NRPE daemon, not the host # from which the check_nrpe client is being executed. ############################################################################# # LOG FACILITY # The syslog facility that should be used for logging purposes. log_facility=@log_facility@ # PID FILE # The name of the file in which the NRPE daemon should write it's process ID # number. The file is only written if the NRPE daemon is started by the root # user and is running in standalone mode. pid_file=/var/run/nrpe.pid # PORT NUMBER # Port number we should wait for connections on. # NOTE: This must be a non-priviledged port (i.e. > 1024). # NOTE: This option is ignored if NRPE is running under either inetd or xinetd server_port=@nrpe_port@ # SERVER ADDRESS # Address that nrpe should bind to in case there are more than one interface # and you do not want nrpe to bind on all interfaces. # NOTE: This option is ignored if NRPE is running under either inetd or xinetd #server_address=127.0.0.1 # NRPE USER # This determines the effective user that the NRPE daemon should run as. # You can either supply a username or a UID. # # NOTE: This option is ignored if NRPE is running under either inetd or xinetd nrpe_user=@nrpe_user@ # NRPE GROUP # This determines the effective group that the NRPE daemon should run as. # You can either supply a group name or a GID. # # NOTE: This option is ignored if NRPE is running under either inetd or xinetd nrpe_group=@nrpe_group@ # ALLOWED HOST ADDRESSES # This is an optional comma-delimited list of IP address or hostnames # that are allowed to talk to the NRPE daemon. Network addresses with a bit mask # (i.e. 192.168.1.0/24) are also supported. Hostname wildcards are not currently # supported. # # Note: The daemon only does rudimentary checking of the client's IP # address. I would highly recommend adding entries in your /etc/hosts.allow # file to allow only the specified host to connect to the port # you are running this daemon on. # # NOTE: This option is ignored if NRPE is running under either inetd or xinetd allowed_hosts=127.0.0.1 # COMMAND ARGUMENT PROCESSING # This option determines whether or not the NRPE daemon will allow clients # to specify arguments to commands that are executed. This option only works # if the daemon was configured with the --enable-command-args configure script # option. # # *** ENABLING THIS OPTION IS A SECURITY RISK! *** # Read the SECURITY file for information on some of the security implications # of enabling this variable. # # Values: 0=do not allow arguments, 1=allow command arguments dont_blame_nrpe=0 # BASH COMMAND SUBTITUTION # This option determines whether or not the NRPE daemon will allow clients # to specify arguments that contain bash command substitutions of the form # $(...). This option only works if the daemon was configured with both # the --enable-command-args and --enable-bash-command-substitution configure # script options. # # *** ENABLING THIS OPTION IS A HIGH SECURITY RISK! *** # Read the SECURITY file for information on some of the security implications # of enabling this variable. # # Values: 0=do not allow bash command substitutions, # 1=allow bash command substitutions allow_bash_command_substitution=0 # COMMAND PREFIX # This option allows you to prefix all commands with a user-defined string. # A space is automatically added between the specified prefix string and the # command line from the command definition. # # *** THIS EXAMPLE MAY POSE A POTENTIAL SECURITY RISK, SO USE WITH CAUTION! *** # Usage scenario: # Execute restricted commmands using sudo. For this to work, you need to add # the nagios user to your /etc/sudoers. An example entry for alllowing # execution of the plugins from might be: # # nagios ALL=(ALL) NOPASSWD: /usr/lib/nagios/plugins/ # # This lets the nagios user run all commands in that directory (and only them) # without asking for a password. If you do this, make sure you don't give # random users write access to that directory or its contents! # command_prefix=/usr/bin/sudo # DEBUGGING OPTION # This option determines whether or not debugging messages are logged to the # syslog facility. # Values: 0=debugging off, 1=debugging on debug=0 # COMMAND TIMEOUT # This specifies the maximum number of seconds that the NRPE daemon will # allow plugins to finish executing before killing them off. command_timeout=60 # CONNECTION TIMEOUT # This specifies the maximum number of seconds that the NRPE daemon will # wait for a connection to be established before exiting. This is sometimes # seen where a network problem stops the SSL being established even though # all network sessions are connected. This causes the nrpe daemons to # accumulate, eating system resources. Do not set this too low. connection_timeout=300 # WEEK RANDOM SEED OPTION # This directive allows you to use SSL even if your system does not have # a /dev/random or /dev/urandom (on purpose or because the necessary patches # were not applied). The random number generator will be seeded from a file # which is either a file pointed to by the environment valiable $RANDFILE # or $HOME/.rnd. If neither exists, the pseudo random number generator will # be initialized and a warning will be issued. # Values: 0=only seed from /dev/[u]random, 1=also seed from weak randomness #allow_weak_random_seed=1 # INCLUDE CONFIG FILE # This directive allows you to include definitions from an external config file. #include= # INCLUDE CONFIG DIRECTORY # This directive allows you to include definitions from config files (with a # .cfg extension) in one or more directories (with recursion). #include_dir= #include_dir= # COMMAND DEFINITIONS # Command definitions that this daemon will run. Definitions # are in the following format: # # command[]= # # When the daemon receives a request to return the results of # it will execute the command specified by the argument. # # Unlike Nagios, the command line cannot contain macros - it must be # typed exactly as it should be executed. # # Note: Any plugins that are used in the command lines must reside # on the machine that this daemon is running on! The examples below # assume that you have plugins installed in a /usr/local/nagios/libexec # directory. Also note that you will have to modify the definitions below # to match the argument format the plugins expect. Remember, these are # examples only! # The following examples use hardcoded command arguments... command[check_users]=@libexecdir@/check_users -w 5 -c 10 command[check_load]=@libexecdir@/check_load -w 15,10,5 -c 30,25,20 command[check_hda1]=@libexecdir@/check_disk -w 20% -c 10% -p /dev/hda1 command[check_zombie_procs]=@libexecdir@/check_procs -w 5 -c 10 -s Z command[check_total_procs]=@libexecdir@/check_procs -w 150 -c 200 # The following examples allow user-supplied arguments and can # only be used if the NRPE daemon was compiled with support for # command arguments *AND* the dont_blame_nrpe directive in this # config file is set to '1'. This poses a potential security risk, so # make sure you read the SECURITY file before doing this. #command[check_users]=@libexecdir@/check_users -w $ARG1$ -c $ARG2$ #command[check_load]=@libexecdir@/check_load -w $ARG1$ -c $ARG2$ #command[check_disk]=@libexecdir@/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$ #command[check_procs]=@libexecdir@/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$ nrpe-2.15/sample-config/nrpe.xinetd.in000066400000000000000000000007121221237212100177100ustar00rootroot00000000000000# default: on # description: NRPE (Nagios Remote Plugin Executor) service nrpe { flags = REUSE socket_type = stream port = @nrpe_port@ wait = no user = @nrpe_user@ group = @nrpe_group@ server = @bindir@/nrpe server_args = -c @sysconfdir@/nrpe.cfg --inetd log_on_failure += USERID disable = no only_from = 127.0.0.1 } nrpe-2.15/src/000077500000000000000000000000001221237212100131655ustar00rootroot00000000000000nrpe-2.15/src/Makefile.in000066400000000000000000000033621221237212100152360ustar00rootroot00000000000000############################### # Makefile for NRPE # # Last Modified: 08-13-2007 ############################### srcdir=@srcdir@ # Source code directories SRC_INCLUDE=@srcdir@/../include CFG_INCLUDE=../include CC=@CC@ CFLAGS=@CFLAGS@ @DEFS@ -I $(CFG_INCLUDE) -I $(SRC_INCLUDE) LDFLAGS=@LDFLAGS@ @LIBS@ SOCKETLIBS=@SOCKETLIBS@ LIBWRAPLIBS=@LIBWRAPLIBS@ OTHERLIBS=@OTHERLIBS@ CP=@CP@ prefix=@prefix@ exec_prefix=@exec_prefix@ CFGDIR=@sysconfdir@ BINDIR=@bindir@ SBINDIR=@sbindir@ LIBEXECDIR=@libexecdir@ INSTALL=@INSTALL@ NAGIOS_INSTALL_OPTS=@NAGIOS_INSTALL_OPTS@ NRPE_INSTALL_OPTS=@NRPE_INSTALL_OPTS@ # Generated automatically from configure script SNPRINTF_O=@SNPRINTF_O@ all: nrpe check_nrpe nrpe: $(srcdir)/nrpe.c $(srcdir)/utils.c $(srcdir)/acl.c $(SRC_INCLUDE)/nrpe.h $(SRC_INCLUDE)/utils.h $(SRC_INCLUDE)/common.h $(CFG_INCLUDE)/config.h $(SRC_INCLUDE)/acl.h $(SNPRINTF_O) $(CC) $(CFLAGS) -o $@ $(srcdir)/nrpe.c $(srcdir)/utils.c $(srcdir)/acl.c $(LDFLAGS) $(SOCKETLIBS) $(LIBWRAPLIBS) $(SNPRINTF_O) $(OTHERLIBS) check_nrpe: $(srcdir)/check_nrpe.c $(srcdir)/utils.c $(SRC_INCLUDE)/utils.h $(SRC_INCLUDE)/common.h $(CFG_INCLUDE)/config.h $(CC) $(CFLAGS) -o $@ $(srcdir)/check_nrpe.c $(srcdir)/utils.c $(LDFLAGS) $(SOCKETLIBS) $(OTHERLIBS) install: $(MAKE) install-plugin $(MAKE) install-daemon install-plugin: $(INSTALL) -m 775 $(NAGIOS_INSTALL_OPTS) -d $(DESTDIR)$(LIBEXECDIR) $(INSTALL) -m 775 $(NAGIOS_INSTALL_OPTS) check_nrpe $(DESTDIR)$(LIBEXECDIR) install-daemon: $(INSTALL) -m 775 $(NAGIOS_INSTALL_OPTS) -d $(DESTDIR)$(BINDIR) $(INSTALL) -m 775 $(NRPE_INSTALL_OPTS) nrpe $(DESTDIR)$(BINDIR) clean: rm -f core nrpe check_nrpe $(SNPRINTF_O) rm -f *~ */*~ rm -rf nrpe.dSYM check_nrpe.dSYM distclean: clean rm -f Makefile devclean: distclean nrpe-2.15/src/acl.c000066400000000000000000000422451221237212100140770ustar00rootroot00000000000000/*- * acl.c - a small library for nrpe.c. It adds IPv4 subnets support to ACL in nrpe. * Copyright (c) 2011 Kaspersky Lab ZAO * Last Modified: 08-10-2011 by Konstantin Malov with Oleg Koreshkov's help * * Description: * acl.c creates two linked lists. One is for IPv4 hosts and networks, another is for domain names. * All connecting hosts (if allowed_hosts is defined) are checked in these two lists. * * Some notes: * 1) IPv6 isn't supported in ACL. * 2) Only ANCII names are supported in ACL. * * License: GPL * * 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 * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include #include #include #include #include #include #include #include #include #include #include "../include/acl.h" /* This function checks if a char argumnet from valid char range. * Valid range is: ASCII only, a number or a letter, a space, a dot, a slash, a dash, a comma. * * Returns: * 0 - char isn't from valid group * 1 - char is a number * 2 - char is a letter * 3 - char is a space(' ') * 4 - char is a dot('.') * 5 - char is a slash('/') * 6 - char is a dash('-') * 7 - char is a comma(',') */ int isvalidchar(int c) { if (!isascii(c)) return 0; if (isdigit(c)) return 1; if (isalpha(c)) return 2; if (isspace(c)) return 3; switch (c) { case '.': return 4; break; case '/': return 5; break; case '-': return 6; break; case ',': return 7; break; default: return 0; } } /* * Get substring from allowed_hosts from s position to e position. */ char * acl_substring(char *string, int s, int e) { char *substring; int len = e - s; if (len < 0) return NULL; if ( (substring = malloc(len + 1)) == NULL) return NULL; memmove(substring, string + s, len + 1); return substring; } /* * Add IPv4 host or network to IP ACL. IPv4 format is X.X.X.X[/X]. * Host will be added to ACL only if it has passed IPv4 format check. * * Returns: * 1 - on success * 0 - on failure * * States for IPv4 format check: * 0 - numbers(-> 1), dot(-> -1), slash(-> -1), other(-> -1) * 1 - numbers(-> 1), dot(-> 2), slash(-> -1), other(-> -1) * 2 - numbers(-> 3), dot(-> -1), slash(-> -1), other(-> -1) * 3 - numbers(-> 3), dot(-> 4), slash(-> -1), other(-> -1) * 4 - numbers(-> 5), dot(-> -1), slash(-> -1), other(-> -1) * 5 - numbers(-> 5), dot(-> 6), slash(-> -1), other(-> -1) * 6 - numbers(-> 7), dot(-> -1), slash(-> -1), other(-> -1) * 7 - numbers(-> 7), dor(-> -1), slash(-> 8), other(-> -1) * 8 - numbers(-> 9), dor(-> -1), slash(-> -1), other(-> -1) * 9 - numbers(-> 9), dot(-> -1), slash(-> -1), other(-> -1) * * Good states are 7(IPv4 host) and 9(IPv4 network) */ int add_ipv4_to_acl(char *ipv4) { int state = 0; int octet = 0; int index = 0; /* position in data array */ int data[5]; /* array to store ip octets and mask */ int len = strlen(ipv4); int i, c; unsigned long ip, mask; struct ip_acl *ip_acl_curr; /* Check for min and max IPv4 valid length */ if (len < 7 || len > 18) return 0; /* default mask for ipv4 */ data[4] = 32; /* Basic IPv4 format check */ for (i = 0; i < len; i++) { /* Return 0 on error state */ if (state == -1) return 0; c = ipv4[i]; switch (c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': octet = octet * 10 + CHAR_TO_NUMBER(c); switch (state) { case 0: case 2: case 4: case 6: case 8: state++; break; } break; case '.': switch (state) { case 1: case 3: case 5: data[index++] = octet; octet = 0; state++; break; default: state = -1; } break; case '/': switch (state) { case 7: data[index++] = octet; octet = 0; state++; break; default: state = -1; } break; default: state = -1; } } /* Exit state handling */ switch (state) { case 7: case 9: data[index] = octet; break; default: /* Bad states */ return 0; } /* * Final IPv4 format check. */ for (i=0; i < 4; i++) { if (data[i] < 0 || data[i] > 255) { syslog(LOG_ERR,"Invalid IPv4 address/network format(%s) in allowed_hosts option\n",ipv4); return 0; } } if (data[4] < 0 || data[4] > 32) { syslog(LOG_ERR,"Invalid IPv4 network mask format(%s) in allowed_hosts option\n",ipv4); return 0; } /* Conver ip and mask to unsigned long */ ip = htonl((data[0] << 24) + (data[1] << 16) + (data[2] << 8) + data[3]); mask = htonl(-1 << (32 - data[4])); /* Wrong network address */ if ( (ip & mask) != ip) { syslog(LOG_ERR,"IP address and mask do not match in %s\n",ipv4); return 0; } /* Add addr to ip_acl list */ if ( (ip_acl_curr = malloc(sizeof(*ip_acl_curr))) == NULL) { syslog(LOG_ERR,"Can't allocate memory for ACL, malloc error\n"); return 0; } /* Save result in ACL ip list */ ip_acl_curr->family = AF_INET; ip_acl_curr->addr.s_addr = ip; ip_acl_curr->mask.s_addr = mask; ip_acl_curr->next = NULL; if (ip_acl_head == NULL) { ip_acl_head = ip_acl_curr; } else { ip_acl_prev->next = ip_acl_curr; } ip_acl_prev = ip_acl_curr; return 1; } /* * Add IPv6 host or network to IP ACL. Host will be added to ACL only if * it has passed IPv6 format check. * */ int add_ipv6_to_acl(char *ipv6) { char *ipv6tmp; char *addrtok; char *addrsave; struct in6_addr addr; struct in6_addr mask; int maskval; int byte, bit; int nbytes = sizeof(mask.s6_addr) / sizeof(mask.s6_addr[0]); int x; struct ip_acl *ip_acl_curr; /* Save temporary copy of ipv6 so we can use the original in error messages if needed */ ipv6tmp = strdup(ipv6); if(NULL == ipv6tmp) { syslog(LOG_ERR, "Memory allocation failed for copy of address: %s\n", ipv6); return 0; } /* Parse the address itself */ addrtok = strtok_r(ipv6tmp, "/", &addrsave); if(inet_pton(AF_INET6, addrtok, &addr) <= 0) { syslog(LOG_ERR, "Invalid IPv6 address in ACL: %s\n", ipv6); free(ipv6tmp); return 0; } /* Check whether there is a netmask */ addrtok = strtok_r(NULL, "/", &addrsave); if(NULL != addrtok) { /* If so, build a netmask */ /* Get the number of bits in the mask */ maskval = atoi(addrtok); if(maskval < 0 || maskval > 128) { syslog(LOG_ERR, "Invalid IPv6 netmask in ACL: %s\n", ipv6); free(ipv6tmp); return 0; } /* Initialize to zero */ for(x = 0; x < nbytes; x++) { mask.s6_addr[x] = 0; } /* Set mask based on mask bits */ byte = 0; bit = 7; while(maskval > 0) { mask.s6_addr[byte] |= 1 << bit; bit -= 1; if(bit < 0) { bit = 7; byte++; } maskval--; } } else { /* Otherwise, this is a single address */ for(x = 0; x < nbytes; x++) { mask.s6_addr[x] = 0xFF; } } /* Add address to ip_acl list */ ip_acl_curr = malloc(sizeof(*ip_acl_curr)); if(NULL == ip_acl_curr) { syslog(LOG_ERR, "Memory allocation failed for ACL: %s\n", ipv6); return 0; } /* Save result in ACL ip list */ ip_acl_curr->family = AF_INET6; for(x = 0; x < nbytes; x++) { ip_acl_curr->addr6.s6_addr[x] = addr.s6_addr[x] & mask.s6_addr[x]; ip_acl_curr->mask6.s6_addr[x] = mask.s6_addr[x]; } ip_acl_curr->next = NULL; if(NULL == ip_acl_head) { ip_acl_head = ip_acl_curr; } else { ip_acl_prev->next = ip_acl_curr; } ip_acl_prev = ip_acl_curr; free(ipv6tmp); return 1; } /* * Add domain to DNS ACL list * Domain will be added only if it has passed domain name check. * * In this case domain valid format is: * 1) Domain names must use only alphanumeric characters and dashes (-). * 2) Domain names mustn't begin or end with dashes (-). * 3) Domain names mustn't have more than 63 characters. * * Return: * 1 - for success * 0 - for failure * * 0 - alpha(-> 1), number(-> 1), dot(-> -1), dash(-> -1), all other(-> -1) * 1 - alpha(-> 1), number(-> 1), dot(-> 2), dash(-> 6), all other(-> -1) * 2 - alpha(-> 3), number(-> 1), dot(-> -1), dash(-> -1), all other(-> -1) * 3 - alpha(-> 4), number(-> 1), dot(-> 2), dash(-> 6), all other(-> -1) * 4 - alpha(-> 5), number(-> 1), dot(-> 2), dash(-> 6), all other(-> -1) * 5 - alpha(-> 1), number(-> 1), dot(-> 2), dash(-> 6), all other(-> -1) * 6 - alpha(-> 1), number(-> 1), dot(-> 2), dash(-> 6), all other(-> -1) * For real FQDN only 4 and 5 states are good for exit. * I don't check if top domain exists (com, ru and etc.) * But in real life NRPE could work in LAN, * with local domain zones like .local or with names like 'mars' added to /etc/hosts. * So 1 is good state too. And maybe this check is not necessary at all... */ int add_domain_to_acl(char *domain) { int state = 0; int len = strlen(domain); int i, c; struct dns_acl *dns_acl_curr; if (len > 63) return 0; for (i = 0; i < len; i++) { c = domain[i]; switch (isvalidchar(c)) { case 1: state = 1; break; case 2: switch (state) { case 0: case 1: case 5: case 6: state = 1; break; case 2: case 3: case 4: state++; break; } break; case 4: switch (state) { case 0: case 2: state = -1; break; default: state = 2; } break; case 6: switch (state) { case 0: case 2: state = -1; break; default: state = 6; } break; default: /* Not valid chars */ return 0; } } /* Check exit code */ switch (state) { case 1: case 4: case 5: /* Add name to domain ACL list */ if ( (dns_acl_curr = malloc(sizeof(*dns_acl_curr))) == NULL) { syslog(LOG_ERR,"Can't allocate memory for ACL, malloc error\n"); return 0; } strcpy(dns_acl_curr->domain, domain); dns_acl_curr->next = NULL; if (dns_acl_head == NULL) dns_acl_head = dns_acl_curr; else dns_acl_prev->next = dns_acl_curr; dns_acl_prev = dns_acl_curr; return 1; default: return 0; } } /* Checks connectiong host in ACL * * Returns: * 1 - on success * 0 - on failure */ int is_an_allowed_host(int family, void *host) { struct ip_acl *ip_acl_curr = ip_acl_head; int nbytes; int x; struct dns_acl *dns_acl_curr = dns_acl_head; struct in_addr addr; struct in6_addr addr6; struct hostent *he; while (ip_acl_curr != NULL) { if(ip_acl_curr->family == family) { switch(ip_acl_curr->family) { case AF_INET: if((((struct in_addr *)host)->s_addr & ip_acl_curr->mask.s_addr) == ip_acl_curr->addr.s_addr) { return 1; } break; case AF_INET6: nbytes = sizeof(ip_acl_curr->mask6.s6_addr) / sizeof(ip_acl_curr->mask6.s6_addr[0]); for(x = 0; x < nbytes; x++) { if((((struct in6_addr *)host)->s6_addr[x] & ip_acl_curr->mask6.s6_addr[x]) != ip_acl_curr->addr6.s6_addr[x]) { break; } } if(x == nbytes) { /* All bytes in host's address pass the netmask mask */ return 1; } break; } } ip_acl_curr = ip_acl_curr->next; } while(dns_acl_curr != NULL) { he = gethostbyname(dns_acl_curr->domain); if (he == NULL) return 0; while (*he->h_addr_list) { switch(he->h_addrtype) { case AF_INET: memmove((char *)&addr,*he->h_addr_list++, sizeof(addr)); if (addr.s_addr == ((struct in_addr *)host)->s_addr) return 1; break; case AF_INET6: memcpy((char *)&addr6, *he->h_addr_list++, sizeof(addr6)); for(x = 0; x < nbytes; x++) { if(addr6.s6_addr[x] != ((struct in6_addr *)host)->s6_addr[x]) { break; } } if(x == nbytes) { /* All bytes in host's address match the ACL */ return 1; } break; } } dns_acl_curr = dns_acl_curr->next; } return 0; } /* The trim() function takes a source string and copies it to the destination string, * stripped of leading and training whitespace. The destination string must be * allocated at least as large as the source string. */ void trim( char *src, char *dest) { char *sptr, *dptr; for( sptr = src; isblank( *sptr) && *sptr; sptr++); /* Jump past leading spaces */ for( dptr = dest; !isblank( *sptr) && *sptr; ) { *dptr = *sptr; sptr++; dptr++; } *dptr = '\0'; return; } /* This function splits allowed_hosts to substrings with comma(,) as a delimeter. * It doesn't check validness of ACL record (add_ipv4_to_acl() and add_domain_to_acl() do), * just trims spaces from ACL records. * After this it sends ACL records to add_ipv4_to_acl() or add_domain_to_acl(). */ void parse_allowed_hosts(char *allowed_hosts) { char *hosts = strdup( allowed_hosts); /* Copy since strtok* modifes original */ char *saveptr; char *tok; const char *delim = ","; char *trimmed_tok; tok = strtok_r( hosts, delim, &saveptr); while( tok) { trimmed_tok = malloc( sizeof( char) * ( strlen( tok) + 1)); trim( tok, trimmed_tok); if( strlen( trimmed_tok) > 0) { if (!add_ipv4_to_acl(trimmed_tok) && !add_ipv6_to_acl(trimmed_tok) && !add_domain_to_acl(trimmed_tok)) { syslog(LOG_ERR,"Can't add to ACL this record (%s). Check allowed_hosts option!\n",trimmed_tok); } } free( trimmed_tok); tok = strtok_r(( char *)0, delim, &saveptr); } free( hosts); } /* * Converts mask in unsigned long format to two digit prefix */ unsigned int prefix_from_mask(struct in_addr mask) { int prefix = 0; unsigned long bit = 1; int i; for (i = 0; i < 32; i++) { if (mask.s_addr & bit) prefix++; bit = bit << 1; } return (prefix); } /* * It shows all hosts in ACL lists */ void show_acl_lists(void) { struct ip_acl *ip_acl_curr = ip_acl_head; struct dns_acl *dns_acl_curr = dns_acl_head; while (ip_acl_curr != NULL) { printf(" IP ACL: %s/%u %u\n", inet_ntoa(ip_acl_curr->addr), prefix_from_mask(ip_acl_curr->mask), ip_acl_curr->addr.s_addr); ip_acl_curr = ip_acl_curr->next; } while (dns_acl_curr != NULL) { printf("DNS ACL: %s\n", dns_acl_curr->domain); dns_acl_curr = dns_acl_curr->next; } } nrpe-2.15/src/check_nrpe.c000066400000000000000000000307441221237212100154420ustar00rootroot00000000000000/******************************************************************************************** * * CHECK_NRPE.C - NRPE Plugin For Nagios * Copyright (c) 1999-2008 Ethan Galstad (nagios@nagios.org) * License: GPL * * Last Modified: 09-06-2013 * * Command line: CHECK_NRPE -H [-p port] [-c command] [-to to_sec] * * Description: * * This plugin will attempt to connect to the NRPE daemon on the specified server and port. * The daemon will attempt to run the command defined as [command]. Program output and * return code are sent back from the daemon and displayed as this plugin's own output and * return code. * ********************************************************************************************/ #include "config.h" #include "common.h" #include "utils.h" #define DEFAULT_NRPE_COMMAND "_NRPE_CHECK" /* check version of NRPE daemon */ u_short server_port=DEFAULT_SERVER_PORT; char *server_name=NULL; char *bind_address=NULL; struct sockaddr_storage hostaddr; int address_family=AF_UNSPEC; char *command_name=NULL; int socket_timeout=DEFAULT_SOCKET_TIMEOUT; int timeout_return_code=STATE_CRITICAL; int sd; char query[MAX_INPUT_BUFFER]=""; int show_help=FALSE; int show_license=FALSE; int show_version=FALSE; #ifdef HAVE_SSL #ifdef __sun SSL_METHOD *meth; #else const SSL_METHOD *meth; #endif SSL_CTX *ctx; SSL *ssl; int use_ssl=TRUE; #else int use_ssl=FALSE; #endif int process_arguments(int,char **); void alarm_handler(int); int graceful_close(int,int); int main(int argc, char **argv){ u_int32_t packet_crc32; u_int32_t calculated_crc32; int16_t result; int rc; packet send_packet; packet receive_packet; int bytes_to_send; int bytes_to_recv; result=process_arguments(argc,argv); if(result!=OK || show_help==TRUE || show_license==TRUE || show_version==TRUE){ if(result!=OK) printf("Incorrect command line arguments supplied\n"); printf("\n"); printf("NRPE Plugin for Nagios\n"); printf("Copyright (c) 1999-2008 Ethan Galstad (nagios@nagios.org)\n"); printf("Version: %s\n",PROGRAM_VERSION); printf("Last Modified: %s\n",MODIFICATION_DATE); printf("License: GPL v2 with exemptions (-l for more info)\n"); #ifdef HAVE_SSL printf("SSL/TLS Available: Anonymous DH Mode, OpenSSL 0.9.6 or higher required\n"); #endif printf("\n"); } if(result!=OK || show_help==TRUE){ printf("Usage: check_nrpe -H [ -b ] [-4] [-6] [-n] [-u] [-p ] [-t ] [-c ] [-a ]\n"); printf("\n"); printf("Options:\n"); printf(" -n = Do no use SSL\n"); printf(" -u = Make socket timeouts return an UNKNOWN state instead of CRITICAL\n"); printf(" = The address of the host running the NRPE daemon\n"); printf(" = bind to local address\n"); printf(" -4 = user ipv4 only\n"); printf(" -6 = user ipv6 only\n"); printf(" [port] = The port on which the daemon is running (default=%d)\n",DEFAULT_SERVER_PORT); printf(" [timeout] = Number of seconds before connection times out (default=%d)\n",DEFAULT_SOCKET_TIMEOUT); printf(" [command] = The name of the command that the remote daemon should run\n"); printf(" [arglist] = Optional arguments that should be passed to the command. Multiple\n"); printf(" arguments should be separated by a space. If provided, this must be\n"); printf(" the last option supplied on the command line.\n"); printf("\n"); printf("Note:\n"); printf("This plugin requires that you have the NRPE daemon running on the remote host.\n"); printf("You must also have configured the daemon to associate a specific plugin command\n"); printf("with the [command] option you are specifying here. Upon receipt of the\n"); printf("[command] argument, the NRPE daemon will run the appropriate plugin command and\n"); printf("send the plugin output and return code back to *this* plugin. This allows you\n"); printf("to execute plugins on remote hosts and 'fake' the results to make Nagios think\n"); printf("the plugin is being run locally.\n"); printf("\n"); } if(show_license==TRUE) display_license(); if(result!=OK || show_help==TRUE || show_license==TRUE || show_version==TRUE) exit(STATE_UNKNOWN); /* generate the CRC 32 table */ generate_crc32_table(); #ifdef HAVE_SSL /* initialize SSL */ if(use_ssl==TRUE){ SSL_library_init(); SSLeay_add_ssl_algorithms(); meth=SSLv23_client_method(); SSL_load_error_strings(); if((ctx=SSL_CTX_new(meth))==NULL){ printf("CHECK_NRPE: Error - could not create SSL context.\n"); exit(STATE_CRITICAL); } /* ADDED 01/19/2004 */ /* use only TLSv1 protocol */ SSL_CTX_set_options(ctx,SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3); } #endif /* initialize alarm signal handling */ signal(SIGALRM,alarm_handler); /* set socket timeout */ alarm(socket_timeout); /* try to connect to the host at the given port number */ if((sd=my_connect(server_name, &hostaddr, server_port, address_family, bind_address)) < 0 ) { exit (255); } else { result=STATE_OK; } #ifdef HAVE_SSL /* do SSL handshake */ if(result==STATE_OK && use_ssl==TRUE){ if((ssl=SSL_new(ctx))!=NULL){ SSL_CTX_set_cipher_list(ctx,"ADH"); SSL_set_fd(ssl,sd); if((rc=SSL_connect(ssl))!=1){ printf("CHECK_NRPE: Error - Could not complete SSL handshake.\n"); #ifdef DEBUG printf("SSL_connect=%d\n",rc); /* rc=SSL_get_error(ssl,rc); printf("SSL_get_error=%d\n",rc); printf("ERR_get_error=%lu\n",ERR_get_error()); printf("%s\n",ERR_error_string(rc,NULL)); */ ERR_print_errors_fp(stdout); #endif result=STATE_CRITICAL; } } else{ printf("CHECK_NRPE: Error - Could not create SSL connection structure.\n"); result=STATE_CRITICAL; } /* bail if we had errors */ if(result!=STATE_OK){ SSL_CTX_free(ctx); close(sd); exit(result); } } #endif /* we're connected and ready to go */ if(result==STATE_OK){ /* clear the packet buffer */ bzero(&send_packet,sizeof(send_packet)); /* fill the packet with semi-random data */ randomize_buffer((char *)&send_packet,sizeof(send_packet)); /* initialize packet data */ send_packet.packet_version=(int16_t)htons(NRPE_PACKET_VERSION_2); send_packet.packet_type=(int16_t)htons(QUERY_PACKET); strncpy(&send_packet.buffer[0],query,MAX_PACKETBUFFER_LENGTH); send_packet.buffer[MAX_PACKETBUFFER_LENGTH-1]='\x0'; /* calculate the crc 32 value of the packet */ send_packet.crc32_value=(u_int32_t)0L; calculated_crc32=calculate_crc32((char *)&send_packet,sizeof(send_packet)); send_packet.crc32_value=(u_int32_t)htonl(calculated_crc32); /***** ENCRYPT REQUEST *****/ /* send the packet */ bytes_to_send=sizeof(send_packet); if(use_ssl==FALSE) rc=sendall(sd,(char *)&send_packet,&bytes_to_send); #ifdef HAVE_SSL else{ rc=SSL_write(ssl,&send_packet,bytes_to_send); if(rc<0) rc=-1; } #endif if(rc==-1){ printf("CHECK_NRPE: Error sending query to host.\n"); close(sd); return STATE_UNKNOWN; } /* wait for the response packet */ bytes_to_recv=sizeof(receive_packet); if(use_ssl==FALSE) rc=recvall(sd,(char *)&receive_packet,&bytes_to_recv,socket_timeout); #ifdef HAVE_SSL else rc=SSL_read(ssl,&receive_packet,bytes_to_recv); #endif /* reset timeout */ alarm(0); /* close the connection */ #ifdef HAVE_SSL if(use_ssl==TRUE){ SSL_shutdown(ssl); SSL_free(ssl); SSL_CTX_free(ctx); } #endif graceful_close(sd,1000); /* recv() error */ if(rc<0){ printf("CHECK_NRPE: Error receiving data from daemon.\n"); return STATE_UNKNOWN; } /* server disconnected */ else if(rc==0){ printf("CHECK_NRPE: Received 0 bytes from daemon. Check the remote server logs for error messages.\n"); return STATE_UNKNOWN; } /* receive underflow */ else if(bytes_to_recv0){ for(c=argindex-1;c=recv(sd,buf,sizeof(buf),0)) break; } #ifdef HAVE_CLOSESOCKET closesocket(sd); #else close(sd); #endif return OK; } nrpe-2.15/src/nrpe.c000066400000000000000000001512051221237212100143010ustar00rootroot00000000000000/******************************************************************************* * * NRPE.C - Nagios Remote Plugin Executor * Copyright (c) 1999-2008 Ethan Galstad (nagios@nagios.org) * License: GPL * * Last Modified: 09-06-2013 * * Command line: nrpe -c [--inetd | --daemon] * * Description: * * This program is designed to run as a background process and * handle incoming requests (from the host running Nagios) for * plugin execution. It is useful for running "local" plugins * such as check_users, check_load, check_disk, etc. without * having to use rsh or ssh. * ******************************************************************************/ /* * 08-10-2011 IPv4 subnetworks support added. * Main change in nrpe.c is that is_an_allowed_host() moved to acl.c. * now allowed_hosts is parsed by parse_allowed_hosts() from acl.c. */ #include "config.h" #include "common.h" #include "nrpe.h" #include "utils.h" #include "acl.h" #ifdef HAVE_SSL #include "../include/dh.h" #endif #ifdef HAVE_LIBWRAP int allow_severity=LOG_INFO; int deny_severity=LOG_WARNING; #endif #ifdef HAVE_SSL #ifdef __sun SSL_METHOD *meth; #else const SSL_METHOD *meth; #endif SSL_CTX *ctx; int use_ssl=TRUE; #else int use_ssl=FALSE; #endif #define DEFAULT_COMMAND_TIMEOUT 60 /* default timeout for execution of plugins */ #define MAXFD 64 #define NASTY_METACHARS "|`&><'\"\\[]{};" #define howmany(x,y) (((x)+((y)-1))/(y)) #define MAX_LISTEN_SOCKS 16 char *command_name=NULL; char *macro_argv[MAX_COMMAND_ARGUMENTS]; char config_file[MAX_INPUT_BUFFER]="nrpe.cfg"; int log_facility=LOG_DAEMON; int server_port=DEFAULT_SERVER_PORT; char server_address[NI_MAXHOST]=""; struct addrinfo *listen_addrs=NULL; int listen_socks[MAX_LISTEN_SOCKS]; int num_listen_socks = 0; int address_family=AF_UNSPEC; int socket_timeout=DEFAULT_SOCKET_TIMEOUT; int command_timeout=DEFAULT_COMMAND_TIMEOUT; int connection_timeout=DEFAULT_CONNECTION_TIMEOUT; char *command_prefix=NULL; command *command_list=NULL; char *nrpe_user=NULL; char *nrpe_group=NULL; char *allowed_hosts=NULL; char *pid_file=NULL; int wrote_pid_file=FALSE; int allow_arguments=FALSE; int allow_bash_command_substitution=FALSE; int allow_weak_random_seed=FALSE; int sigrestart=FALSE; int sigshutdown=FALSE; int show_help=FALSE; int show_license=FALSE; int show_version=FALSE; int use_inetd=TRUE; int debug=FALSE; int use_src=FALSE; /* Define parameter for SRC option */ void complete_SSL_shutdown( SSL *); int main(int argc, char **argv){ int result=OK; int x; char buffer[MAX_INPUT_BUFFER]; char *env_string=NULL; #ifdef HAVE_SSL DH *dh; char seedfile[FILENAME_MAX]; int i,c; #endif /* set some environment variables */ asprintf(&env_string,"NRPE_MULTILINESUPPORT=1"); putenv(env_string); asprintf(&env_string,"NRPE_PROGRAMVERSION=%s",PROGRAM_VERSION); putenv(env_string); /* process command-line args */ result=process_arguments(argc,argv); if(result!=OK || show_help==TRUE || show_license==TRUE || show_version==TRUE){ printf("\n"); printf("NRPE - Nagios Remote Plugin Executor\n"); printf("Copyright (c) 1999-2008 Ethan Galstad (nagios@nagios.org)\n"); printf("Version: %s\n",PROGRAM_VERSION); printf("Last Modified: %s\n",MODIFICATION_DATE); printf("License: GPL v2 with exemptions (-l for more info)\n"); #ifdef HAVE_SSL printf("SSL/TLS Available: Anonymous DH Mode, OpenSSL 0.9.6 or higher required\n"); #endif #ifdef HAVE_LIBWRAP printf("TCP Wrappers Available\n"); #endif printf("\n"); #ifdef ENABLE_COMMAND_ARGUMENTS printf("***************************************************************\n"); printf("** POSSIBLE SECURITY RISK - COMMAND ARGUMENTS ARE SUPPORTED! **\n"); printf("** Read the NRPE SECURITY file for more information **\n"); printf("***************************************************************\n"); printf("\n"); #endif #ifndef HAVE_LIBWRAP printf("***************************************************************\n"); printf("** POSSIBLE SECURITY RISK - TCP WRAPPERS ARE NOT AVAILABLE! **\n"); printf("** Read the NRPE SECURITY file for more information **\n"); printf("***************************************************************\n"); printf("\n"); #endif } if(show_license==TRUE) display_license(); else if(result!=OK || show_help==TRUE){ printf("Usage: nrpe [-n] -c [-4|-6] \n"); printf("\n"); printf("Options:\n"); printf(" -n = Do not use SSL\n"); printf(" = Name of config file to use\n"); printf(" -4 = use ipv4 only\n"); printf(" -6 = use ipv6 only\n"); printf(" = One of the following operating modes:\n"); printf(" -i = Run as a service under inetd or xinetd\n"); printf(" -d = Run as a standalone daemon\n"); /* Updates help section to indicate how to start under SRC on AIX */ printf(" -d -s = Run as a subsystem under AIX\n"); printf("\n"); printf("Notes:\n"); printf("This program is designed to process requests from the check_nrpe\n"); printf("plugin on the host(s) running Nagios. It can run as a service\n"); printf("under inetd or xinetd (read the docs for info on this), or as a\n"); printf("standalone daemon. Once a request is received from an authorized\n"); printf("host, NRPE will execute the command/plugin (as defined in the\n"); printf("config file) and return the plugin output and return code to the\n"); printf("check_nrpe plugin.\n"); printf("\n"); } if(result!=OK || show_help==TRUE || show_license==TRUE || show_version==TRUE) exit(STATE_UNKNOWN); /* open a connection to the syslog facility */ /* facility name may be overridden later */ get_log_facility(NRPE_LOG_FACILITY); openlog("nrpe",LOG_PID,log_facility); /* make sure the config file uses an absolute path */ if(config_file[0]!='/'){ /* save the name of the config file */ strncpy(buffer,config_file,sizeof(buffer)); buffer[sizeof(buffer)-1]='\x0'; /* get absolute path of current working directory */ strcpy(config_file,""); getcwd(config_file,sizeof(config_file)); /* append a forward slash */ strncat(config_file,"/",sizeof(config_file)-2); config_file[sizeof(config_file)-1]='\x0'; /* append the config file to the path */ strncat(config_file,buffer,sizeof(config_file)-strlen(config_file)-1); config_file[sizeof(config_file)-1]='\x0'; } /* read the config file */ result=read_config_file(config_file); /* exit if there are errors... */ if(result==ERROR){ syslog(LOG_ERR,"Config file '%s' contained errors, aborting...",config_file); return STATE_CRITICAL; } /* generate the CRC 32 table */ generate_crc32_table(); /* initialize macros */ for(x=0;x=0;x--){ if(isspace(input_line[x])) input_line[x]='\x0'; else break; } /* skip comments and blank lines */ if(input_line[0]=='#') continue; if(input_line[0]=='\x0') continue; if(input_line[0]=='\n') continue; /* get the variable name */ varname=strtok(input_line,"="); if(varname==NULL){ syslog(LOG_ERR,"No variable name specified in config file '%s' - Line %d\n",filename,line); return ERROR; } /* get the variable value */ varvalue=strtok(NULL,"\n"); if(varvalue==NULL){ syslog(LOG_ERR,"No variable value specified in config file '%s' - Line %d\n",filename,line); return ERROR; } /* allow users to specify directories to recurse into for config files */ else if(!strcmp(varname,"include_dir")){ strncpy(config_file,varvalue,sizeof(config_file)-1); config_file[sizeof(config_file)-1]='\x0'; /* strip trailing / if necessary */ if(config_file[strlen(config_file)-1]=='/') config_file[strlen(config_file)-1]='\x0'; /* process the config directory... */ if(read_config_dir(config_file)==ERROR) syslog(LOG_ERR,"Continuing with errors..."); } /* allow users to specify individual config files to include */ else if(!strcmp(varname,"include") || !strcmp(varname,"include_file")){ /* process the config file... */ if(read_config_file(varvalue)==ERROR) syslog(LOG_ERR,"Continuing with errors..."); } else if(!strcmp(varname,"server_port")){ server_port=atoi(varvalue); if(server_port<1024){ syslog(LOG_ERR,"Invalid port number specified in config file '%s' - Line %d\n",filename,line); return ERROR; } } else if(!strcmp(varname,"command_prefix")) command_prefix=strdup(varvalue); else if(!strcmp(varname,"server_address")){ strncpy(server_address,varvalue,sizeof(server_address) - 1); server_address[sizeof(server_address)-1]='\0'; } else if(!strcmp(varname,"allowed_hosts")) { allowed_hosts=strdup(varvalue); parse_allowed_hosts(allowed_hosts); } else if(strstr(input_line,"command[")){ temp_buffer=strtok(varname,"["); temp_buffer=strtok(NULL,"]"); if(temp_buffer==NULL){ syslog(LOG_ERR,"Invalid command specified in config file '%s' - Line %d\n",filename,line); return ERROR; } add_command(temp_buffer,varvalue); } else if(strstr(input_buffer,"debug")){ debug=atoi(varvalue); if(debug>0) debug=TRUE; else debug=FALSE; } else if(!strcmp(varname,"nrpe_user")) nrpe_user=strdup(varvalue); else if(!strcmp(varname,"nrpe_group")) nrpe_group=strdup(varvalue); else if(!strcmp(varname,"dont_blame_nrpe")) allow_arguments=(atoi(varvalue)==1)?TRUE:FALSE; else if(!strcmp(varname,"allow_bash_command_substitution")) allow_bash_command_substitution=(atoi(varvalue)==1)?TRUE:FALSE; else if(!strcmp(varname,"command_timeout")){ command_timeout=atoi(varvalue); if(command_timeout<1){ syslog(LOG_ERR,"Invalid command_timeout specified in config file '%s' - Line %d\n",filename,line); return ERROR; } } else if(!strcmp(varname,"connection_timeout")){ connection_timeout=atoi(varvalue); if(connection_timeout<1){ syslog(LOG_ERR,"Invalid connection_timeout specified in config file '%s' - Line %d\n",filename,line); return ERROR; } } else if(!strcmp(varname,"allow_weak_random_seed")) allow_weak_random_seed=(atoi(varvalue)==1)?TRUE:FALSE; else if(!strcmp(varname,"pid_file")) pid_file=strdup(varvalue); else if(!strcmp(varname,"log_facility")){ if((get_log_facility(varvalue))==OK){ /* re-open log using new facility */ closelog(); openlog("nrpe",LOG_PID,log_facility); } else syslog(LOG_WARNING,"Invalid log_facility specified in config file '%s' - Line %d\n",filename,line); } else{ syslog(LOG_WARNING,"Unknown option specified in config file '%s' - Line %d\n",filename,line); continue; } } /* close the config file */ fclose(fp); return OK; } /* process all config files in a specific config directory (with directory recursion) */ int read_config_dir(char *dirname){ char config_file[MAX_FILENAME_LENGTH]; DIR *dirp; struct dirent *dirfile; struct stat buf; int result=OK; int x; /* open the directory for reading */ dirp=opendir(dirname); if(dirp==NULL){ syslog(LOG_ERR,"Could not open config directory '%s' for reading.\n",dirname); return ERROR; } /* process all files in the directory... */ while((dirfile=readdir(dirp))!=NULL){ /* create the full path to the config file or subdirectory */ snprintf(config_file,sizeof(config_file)-1,"%s/%s",dirname,dirfile->d_name); config_file[sizeof(config_file)-1]='\x0'; stat(config_file, &buf); /* process this if it's a config file... */ x=strlen(dirfile->d_name); if(x>4 && !strcmp(dirfile->d_name+(x-4),".cfg")){ /* only process normal files */ if(!S_ISREG(buf.st_mode)) continue; /* process the config file */ result=read_config_file(config_file); /* break out if we encountered an error */ if(result==ERROR) break; } /* recurse into subdirectories... */ if(S_ISDIR(buf.st_mode)){ /* ignore current, parent and hidden directory entries */ if(dirfile->d_name[0]=='.') continue; /* process the config directory */ result=read_config_dir(config_file); /* break out if we encountered an error */ if(result==ERROR) break; } } closedir(dirp); return result; } /* determines facility to use with syslog */ int get_log_facility(char *varvalue){ if(!strcmp(varvalue,"kern")) log_facility=LOG_KERN; else if(!strcmp(varvalue,"user")) log_facility=LOG_USER; else if(!strcmp(varvalue,"mail")) log_facility=LOG_MAIL; else if(!strcmp(varvalue,"daemon")) log_facility=LOG_DAEMON; else if(!strcmp(varvalue,"auth")) log_facility=LOG_AUTH; else if(!strcmp(varvalue,"syslog")) log_facility=LOG_SYSLOG; else if(!strcmp(varvalue,"lrp")) log_facility=LOG_LPR; else if(!strcmp(varvalue,"news")) log_facility=LOG_NEWS; else if(!strcmp(varvalue,"uucp")) log_facility=LOG_UUCP; else if(!strcmp(varvalue,"cron")) log_facility=LOG_CRON; else if(!strcmp(varvalue,"authpriv")) log_facility=LOG_AUTHPRIV; else if(!strcmp(varvalue,"ftp")) log_facility=LOG_FTP; else if(!strcmp(varvalue,"local0")) log_facility=LOG_LOCAL0; else if(!strcmp(varvalue,"local1")) log_facility=LOG_LOCAL1; else if(!strcmp(varvalue,"local2")) log_facility=LOG_LOCAL2; else if(!strcmp(varvalue,"local3")) log_facility=LOG_LOCAL3; else if(!strcmp(varvalue,"local4")) log_facility=LOG_LOCAL4; else if(!strcmp(varvalue,"local5")) log_facility=LOG_LOCAL5; else if(!strcmp(varvalue,"local6")) log_facility=LOG_LOCAL6; else if(!strcmp(varvalue,"local7")) log_facility=LOG_LOCAL7; else{ log_facility=LOG_DAEMON; return ERROR; } return OK; } /* adds a new command definition from the config file to the list in memory */ int add_command(char *command_name, char *command_line){ command *new_command; if(command_name==NULL || command_line==NULL) return ERROR; /* allocate memory for the new command */ new_command=(command *)malloc(sizeof(command)); if(new_command==NULL) return ERROR; new_command->command_name=strdup(command_name); if(new_command->command_name==NULL){ free(new_command); return ERROR; } new_command->command_line=strdup(command_line); if(new_command->command_line==NULL){ free(new_command->command_name); free(new_command); return ERROR; } /* add new command to head of list in memory */ new_command->next=command_list; command_list=new_command; if(debug==TRUE) syslog(LOG_DEBUG,"Added command[%s]=%s\n",command_name,command_line); return OK; } /* given a command name, find the structure in memory */ command *find_command(char *command_name){ command *temp_command; for(temp_command=command_list;temp_command!=NULL;temp_command=temp_command->next) if(!strcmp(command_name,temp_command->command_name)) return temp_command; return NULL; } /* * Close all listening sockets */ static void close_listen_socks(void) { int i; for (i = 0; i <= num_listen_socks; i++) { close(listen_socks[i]); num_listen_socks--; } } /* Start listen on a particular port */ void create_listener(struct addrinfo *ai) { int ret; char ntop[NI_MAXHOST], strport[NI_MAXSERV]; int listen_sock; int flag=1; if(ai->ai_family != AF_INET && ai->ai_family != AF_INET6) return; if(num_listen_socks >= MAX_LISTEN_SOCKS) { syslog(LOG_ERR, "Too many listen sockets. Enlarge MAX_LISTEN_SOCKS"); exit(1); } if((ret = getnameinfo(ai->ai_addr, ai->ai_addrlen, ntop, sizeof(ntop), strport, sizeof(strport), NI_NUMERICHOST|NI_NUMERICSERV)) != 0) { syslog(LOG_ERR, "getnameinfo failed: %.100s", gai_strerror(ret)); return; } /* Create socket for listening. */ listen_sock = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol); if (listen_sock < 0) { /* kernel may not support ipv6 */ syslog(LOG_ERR, "socket: %.100s", strerror(errno)); return; } /* socket should be non-blocking */ fcntl(listen_sock,F_SETFL,O_NONBLOCK); /* set the reuse address flag so we don't get errors when restarting */ if(setsockopt(listen_sock, SOL_SOCKET,SO_REUSEADDR, &flag, sizeof(flag)) < 0) { syslog(LOG_ERR, "setsockopt SO_REUSEADDR: %s", strerror(errno)); return; } #ifdef IPV6_V6ONLY /* Only communicate in IPv6 over AF_INET6 sockets. */ if (ai->ai_family == AF_INET6) { if (setsockopt(listen_sock, IPPROTO_IPV6, IPV6_V6ONLY, &flag, sizeof(flag)) == -1) { fprintf(stderr, "setsockopt IPV6_V6ONLY: %s", strerror(errno)); } } #endif /* Bind the socket to the desired port. */ if (bind(listen_sock, ai->ai_addr, ai->ai_addrlen) < 0) { syslog(LOG_ERR, "Bind to port %s on %s failed: %.200s.", strport, ntop, strerror(errno)); close(listen_sock); return; } listen_socks[num_listen_socks] = listen_sock; num_listen_socks++; /* Start listening on the port. */ if (listen(listen_sock, 5) < 0) { syslog(LOG_ERR, "listen on [%s]:%s: %.100s", ntop, strport, strerror(errno)); exit(1); } syslog(LOG_INFO, "Server listening on %s port %s.", ntop, strport); } /* wait for incoming connection requests */ void wait_for_connections(void){ struct addrinfo *ai; fd_set *fdset=NULL; int maxfd=0; struct sockaddr_storage from; socklen_t fromlen; char ipstr[INET6_ADDRSTRLEN]; int i; int r; struct sockaddr_in myname; struct sockaddr_in *nptr; struct sockaddr_in6 *nptr6; struct sockaddr_storage addr; int rc; int sock, new_sd; socklen_t addrlen; pid_t pid; fd_set fdread; struct timeval timeout; int retval; #ifdef HAVE_LIBWRAP struct request_info req; #endif add_listen_addr(&listen_addrs, address_family, (strcmp(server_address, "") == 0) ? NULL : server_address, server_port); for(ai = listen_addrs; ai; ai = ai->ai_next) { create_listener(ai); } if (!num_listen_socks) { syslog(LOG_ERR, "Cannot bind to any address."); exit(1); } /* log warning about command arguments */ #ifdef ENABLE_COMMAND_ARGUMENTS if(allow_arguments==TRUE) syslog(LOG_NOTICE,"Warning: Daemon is configured to accept command arguments from clients!"); #ifdef ENABLE_BASH_COMMAND_SUBSTITUTION if(TRUE==allow_bash_command_substitution) { if(TRUE==allow_arguments) syslog(LOG_NOTICE,"Warning: Daemon is configured to accept command arguments with bash command substitutions!"); else syslog(LOG_NOTICE,"Warning: Daemon is configured to accept command arguments with bash command substitutions, but is not configured to accept command argements from clients. Enable command arguments if you wish to allow command arguments with bash command substitutions."); } #endif #endif syslog(LOG_INFO,"Listening for connections on port %d\n",htons(myname.sin_port)); if(allowed_hosts) syslog(LOG_INFO,"Allowing connections from: %s\n",allowed_hosts); /* listen for connection requests - fork() if we get one */ while(1){ /* bail out if necessary */ if(sigrestart==TRUE || sigshutdown==TRUE) break; for(i = 0; i < num_listen_socks; i++) { if (listen_socks[i] > maxfd) maxfd = listen_socks[i]; } if(fdset != NULL) free(fdset); fdset = (fd_set *)calloc(howmany(maxfd + 1, NFDBITS), sizeof(fd_mask)); for (i = 0; i < num_listen_socks; i++) FD_SET(listen_socks[i], fdset); /* Wait in select until there is a connection. */ retval = select(maxfd+1, fdset, NULL, NULL, NULL); /* bail out if necessary */ if(sigrestart==TRUE || sigshutdown==TRUE) break; /* error */ if(retval<0) continue; for (i = 0; i < num_listen_socks; i++) { if (!FD_ISSET(listen_socks[i], fdset)) continue; fromlen = sizeof(from); /* accept a new connection request */ new_sd = accept(listen_socks[i], (struct sockaddr *)&from, &fromlen); /* some kind of error occurred... */ if(new_sd<0){ /* bail out if necessary */ if(sigrestart==TRUE || sigshutdown==TRUE) break; /* retry */ if(errno==EWOULDBLOCK || errno==EINTR) continue; /* socket is nonblocking and we don't have a connection yet */ if(errno==EAGAIN) continue; /* fix for HP-UX 11.0 - just retry */ if(errno==ENOBUFS) continue; /* else handle the error later */ break; } /* child process should handle the connection */ pid=fork(); if(pid==0) { /* fork again so we don't create zombies */ pid=fork(); if(pid==0) { /* hey, there was an error... */ if(new_sd<0) { /* log error to syslog facility */ syslog(LOG_ERR, "Network server accept failure (%d: %s)", errno, strerror(errno)); /* close socket prioer to exiting */ close(sock); return; } /* handle signals */ signal(SIGQUIT,child_sighandler); signal(SIGTERM,child_sighandler); signal(SIGHUP,child_sighandler); /* grandchild does not need to listen for connections */ close_listen_socks(); /* find out who just connected... */ addrlen=sizeof(addr); rc=getpeername(new_sd, (struct sockaddr *)&addr, &addrlen); if(rc<0) { /* log error to syslog facility */ syslog(LOG_ERR, "Error: Network server getpeername() failure (%d: %s)", errno, strerror(errno)); /* close socket prior to exiting */ close(new_sd); return; } /* is this is a blessed machine? */ if(allowed_hosts) { switch(addr.ss_family) { case AF_INET: nptr = (struct sockaddr_in *)&addr; /* log info to syslog facility */ if(debug==TRUE) { syslog(LOG_DEBUG, "Connection from %s port %d", inet_ntoa(nptr->sin_addr), nptr->sin_port); } if(!is_an_allowed_host(AF_INET, (void *)&(nptr->sin_addr))) { /* log error to syslog facility */ syslog(LOG_ERR, "Host %s is not allowed to talk to us!", inet_ntoa(nptr->sin_addr)); /* log info to syslog facility */ if ( debug==TRUE ) { syslog(LOG_DEBUG, "Connection from %s closed.", inet_ntoa(nptr->sin_addr)); } /* close socket prior to exiting */ close(new_sd); exit(STATE_OK); } else { /* log info to syslog facility */ if(debug==TRUE) { syslog(LOG_DEBUG, "Host address is in allowed_hosts"); } } break; case AF_INET6: nptr6 = (struct sockaddr_in6 *)&addr; if(inet_ntop(AF_INET6, (const void *)&(nptr6->sin6_addr), ipstr, sizeof(ipstr)) == NULL) { strncpy(ipstr, "Unknown", sizeof(ipstr)); } /* log info to syslog facility */ if(debug==TRUE) { syslog(LOG_DEBUG, "Connection from %s port %d", ipstr, nptr6->sin6_port); } if(!is_an_allowed_host(AF_INET6, (void *)&(nptr6->sin6_addr))) { /* log error to syslog facility */ syslog(LOG_ERR, "Host %s is not allowed to talk to us!", ipstr); /* log info to syslog facility */ if ( debug==TRUE ) { syslog(LOG_DEBUG, "Connection from %s closed.", ipstr); } /* close socket prior to exiting */ close(new_sd); exit(STATE_OK); } else { /* log info to syslog facility */ if(debug==TRUE) { syslog(LOG_DEBUG, "Host address is in allowed_hosts"); } } break; } } #ifdef HAVE_LIBWRAP /* Check whether or not connections are allowed from this host */ request_init(&req,RQ_DAEMON,"nrpe",RQ_FILE,new_sd,0); fromhost(&req); if(!hosts_access(&req)){ syslog(LOG_DEBUG,"Connection refused by TCP wrapper"); /* refuse the connection */ refuse(&req); close(new_sd); /* should not be reached */ syslog(LOG_ERR,"libwrap refuse() returns!"); exit(STATE_CRITICAL); } #endif /* handle the client connection */ handle_connection(new_sd); /* log info to syslog facility */ if(debug==TRUE) { syslog(LOG_DEBUG,"Connection from %s closed.",ipstr); } /* close socket prior to exiting */ close(new_sd); exit(STATE_OK); } /* first child returns immediately, grandchild is inherited by INIT process -> no zombies... */ else exit(STATE_OK); } /* parent ... */ else { /* parent doesn't need the new connection */ close(new_sd); /* parent waits for first child to exit */ waitpid(pid,NULL,0); } } } /* close the sockets we're listening on */ close_listen_socks(); freeaddrinfo(listen_addrs); listen_addrs=NULL; return; } /* handles a client connection */ void handle_connection(int sock){ u_int32_t calculated_crc32; command *temp_command; packet receive_packet; packet send_packet; int bytes_to_send; int bytes_to_recv; char buffer[MAX_INPUT_BUFFER]; char raw_command[MAX_INPUT_BUFFER]; char processed_command[MAX_INPUT_BUFFER]; int result=STATE_OK; int early_timeout=FALSE; int rc; int x; #ifdef DEBUG FILE *errfp; #endif #ifdef HAVE_SSL SSL *ssl=NULL; #endif /* log info to syslog facility */ if(debug==TRUE) syslog(LOG_DEBUG,"Handling the connection..."); #ifdef OLDSTUFF /* socket should be non-blocking */ fcntl(sock,F_SETFL,O_NONBLOCK); #endif /* set connection handler */ signal(SIGALRM,my_connection_sighandler); alarm(connection_timeout); #ifdef HAVE_SSL /* do SSL handshake */ if(result==STATE_OK && use_ssl==TRUE){ if((ssl=SSL_new(ctx))!=NULL){ SSL_set_fd(ssl,sock); /* keep attempting the request if needed */ while(((rc=SSL_accept(ssl))!=1) && (SSL_get_error(ssl,rc)==SSL_ERROR_WANT_READ)); if(rc!=1){ syslog(LOG_ERR,"Error: Could not complete SSL handshake. %d\n",SSL_get_error(ssl,rc)); #ifdef DEBUG errfp=fopen("/tmp/err.log","w"); ERR_print_errors_fp(errfp); fclose(errfp); #endif return; } } else{ syslog(LOG_ERR,"Error: Could not create SSL connection structure.\n"); #ifdef DEBUG errfp=fopen("/tmp/err.log","w"); ERR_print_errors_fp(errfp); fclose(errfp); #endif return; } } #endif bytes_to_recv=sizeof(receive_packet); if(use_ssl==FALSE) rc=recvall(sock,(char *)&receive_packet,&bytes_to_recv,socket_timeout); #ifdef HAVE_SSL else{ while(((rc=SSL_read(ssl,&receive_packet,bytes_to_recv))<=0) && (SSL_get_error(ssl,rc)==SSL_ERROR_WANT_READ)); } #endif /* recv() error or client disconnect */ if(rc<=0){ /* log error to syslog facility */ syslog(LOG_ERR,"Could not read request from client, bailing out..."); #ifdef HAVE_SSL if(ssl){ complete_SSL_shutdown( ssl); SSL_free(ssl); syslog(LOG_INFO,"INFO: SSL Socket Shutdown.\n"); } #endif return; } /* we couldn't read the correct amount of data, so bail out */ else if(bytes_to_recv!=sizeof(receive_packet)){ /* log error to syslog facility */ syslog(LOG_ERR,"Data packet from client was too short, bailing out..."); #ifdef HAVE_SSL if(ssl){ complete_SSL_shutdown( ssl); SSL_free(ssl); } #endif return; } #ifdef DEBUG fp=fopen("/tmp/packet","w"); if(fp){ fwrite(&receive_packet,1,sizeof(receive_packet),fp); fclose(fp); } #endif /* make sure the request is valid */ if(validate_request(&receive_packet)==ERROR){ /* log an error */ syslog(LOG_ERR,"Client request was invalid, bailing out..."); /* free memory */ free(command_name); command_name=NULL; for(x=0;xcommand_line,sizeof(raw_command)-1); else snprintf(raw_command,sizeof(raw_command)-1,"%s %s",command_prefix,temp_command->command_line); raw_command[sizeof(raw_command)-1]='\x0'; process_macros(raw_command,processed_command,sizeof(processed_command)); /* log info to syslog facility */ if(debug==TRUE) syslog(LOG_DEBUG,"Running command: %s",processed_command); /* run the command */ strcpy(buffer,""); result=my_system(processed_command,command_timeout,&early_timeout,buffer,sizeof(buffer)); /* log debug info */ if(debug==TRUE) syslog(LOG_DEBUG,"Command completed with return code %d and output: %s",result,buffer); /* see if the command timed out */ if(early_timeout==TRUE) snprintf(buffer,sizeof(buffer)-1,"NRPE: Command timed out after %d seconds\n",command_timeout); else if(!strcmp(buffer,"")) snprintf(buffer,sizeof(buffer)-1,"NRPE: Unable to read output\n"); buffer[sizeof(buffer)-1]='\x0'; /* check return code bounds */ if((result<0) || (result>3)){ /* log error to syslog facility */ syslog(LOG_ERR,"Bad return code for [%s]: %d", buffer,result); result=STATE_UNKNOWN; } } } /* free memory */ free(command_name); command_name=NULL; for(x=0;xnext; if(this_command->command_name) free(this_command->command_name); if(this_command->command_line) free(this_command->command_line); free(this_command); this_command=next_command; } command_list=NULL; return; } /* executes a system command via popen(), but protects against timeouts */ int my_system(char *command,int timeout,int *early_timeout,char *output,int output_length){ pid_t pid; int status; int result; extern int errno; char buffer[MAX_INPUT_BUFFER]; int fd[2]; FILE *fp; int bytes_read=0; time_t start_time,end_time; /* initialize return variables */ if(output!=NULL) strcpy(output,""); *early_timeout=FALSE; /* if no command was passed, return with no error */ if(command==NULL) return STATE_OK; /* create a pipe */ pipe(fd); /* make the pipe non-blocking */ fcntl(fd[0],F_SETFL,O_NONBLOCK); fcntl(fd[1],F_SETFL,O_NONBLOCK); /* get the command start time */ time(&start_time); /* fork */ pid=fork(); /* return an error if we couldn't fork */ if(pid==-1){ snprintf(buffer,sizeof(buffer)-1,"NRPE: Call to fork() failed\n"); buffer[sizeof(buffer)-1]='\x0'; if(output!=NULL){ strncpy(output,buffer,output_length-1); output[output_length-1]='\x0'; } /* close both ends of the pipe */ close(fd[0]); close(fd[1]); return STATE_UNKNOWN; } /* execute the command in the child process */ if(pid==0){ /* close pipe for reading */ close(fd[0]); /* become process group leader */ setpgid(0,0); /* trap commands that timeout */ signal(SIGALRM,my_system_sighandler); alarm(timeout); /* run the command */ fp=popen(command,"r"); /* report an error if we couldn't run the command */ if(fp==NULL){ strncpy(buffer,"NRPE: Call to popen() failed\n",sizeof(buffer)-1); buffer[sizeof(buffer)-1]='\x0'; /* write the error back to the parent process */ write(fd[1],buffer,strlen(buffer)+1); result=STATE_CRITICAL; } else{ /* read all lines of output - supports Nagios 3.x multiline output */ while((bytes_read=fread(buffer,1,sizeof(buffer)-1,fp))>0){ /* write the output back to the parent process */ write(fd[1],buffer,bytes_read); } /* close the command and get termination status */ status=pclose(fp); /* report an error if we couldn't close the command */ if(status==-1) result=STATE_CRITICAL; /* report an error if child died due to signal (Klas Lindfors) */ else if(!WIFEXITED(status)) result=STATE_CRITICAL; else result=WEXITSTATUS(status); } /* close pipe for writing */ close(fd[1]); /* reset the alarm */ alarm(0); /* return plugin exit code to parent process */ exit(result); } /* parent waits for child to finish executing command */ else{ /* close pipe for writing */ close(fd[1]); /* wait for child to exit */ waitpid(pid,&status,0); /* get the end time for running the command */ time(&end_time); /* get the exit code returned from the program */ result=WEXITSTATUS(status); /* because of my idiotic idea of having UNKNOWN states be equivalent to -1, I must hack things a bit... */ if(result==255) result=STATE_UNKNOWN; /* check bounds on the return value */ if(result<0 || result>3) result=STATE_UNKNOWN; /* try and read the results from the command output (retry if we encountered a signal) */ if(output!=NULL){ do{ bytes_read=read(fd[0], output, output_length-1); }while (bytes_read==-1 && errno==EINTR); if(bytes_read==-1) *output='\0'; else output[bytes_read]='\0'; } /* if there was a critical return code and no output AND the command time exceeded the timeout thresholds, assume a timeout */ if(result==STATE_CRITICAL && bytes_read==-1 && (end_time-start_time)>=timeout){ *early_timeout=TRUE; /* send termination signal to child process group */ kill((pid_t)(-pid),SIGTERM); kill((pid_t)(-pid),SIGKILL); } /* close the pipe for reading */ close(fd[0]); } #ifdef DEBUG printf("my_system() end\n"); #endif return result; } /* handle timeouts when executing commands via my_system() */ void my_system_sighandler(int sig){ /* force the child process to exit... */ exit(STATE_CRITICAL); } /* handle errors where connection takes too long */ void my_connection_sighandler(int sig) { syslog(LOG_ERR,"Connection has taken too long to establish. Exiting..."); exit(STATE_CRITICAL); } /* drops privileges */ int drop_privileges(char *user, char *group){ uid_t uid=-1; gid_t gid=-1; struct group *grp; struct passwd *pw; /* set effective group ID */ if(group!=NULL){ /* see if this is a group name */ if(strspn(group,"0123456789")gr_gid); else syslog(LOG_ERR,"Warning: Could not get group entry for '%s'",group); endgrent(); } /* else we were passed the GID */ else gid=(gid_t)atoi(group); /* set effective group ID if other than current EGID */ if(gid!=getegid()){ if(setgid(gid)==-1) syslog(LOG_ERR,"Warning: Could not set effective GID=%d",(int)gid); } } /* set effective user ID */ if(user!=NULL){ /* see if this is a user name */ if(strspn(user,"0123456789")pw_uid); else syslog(LOG_ERR,"Warning: Could not get passwd entry for '%s'",user); endpwent(); } /* else we were passed the UID */ else uid=(uid_t)atoi(user); /* set effective user ID if other than current EUID */ if(uid!=geteuid()){ #ifdef HAVE_INITGROUPS /* initialize supplementary groups */ if(initgroups(user,gid)==-1){ if(errno==EPERM) syslog(LOG_ERR,"Warning: Unable to change supplementary groups using initgroups()"); else{ syslog(LOG_ERR,"Warning: Possibly root user failed dropping privileges with initgroups()"); return ERROR; } } #endif if(setuid(uid)==-1) syslog(LOG_ERR,"Warning: Could not set effective UID=%d",(int)uid); } } return OK; } /* write an optional pid file */ int write_pid_file(void){ int fd; int result=0; pid_t pid=0; char pbuf[16]; /* no pid file was specified */ if(pid_file==NULL) return OK; /* read existing pid file */ if((fd=open(pid_file,O_RDONLY))>=0){ result=read(fd,pbuf,(sizeof pbuf)-1); close(fd); if(result>0){ pbuf[result]='\x0'; pid=(pid_t)atoi(pbuf); /* if previous process is no longer running running, remove the old pid file */ if(pid && (pid==getpid() || kill(pid,0)<0)) unlink(pid_file); /* previous process is still running */ else{ syslog(LOG_ERR,"There's already an NRPE server running (PID %lu). Bailing out...",(unsigned long)pid); return ERROR; } } } /* write new pid file */ if((fd=open(pid_file,O_WRONLY | O_CREAT,0644))>=0){ sprintf(pbuf,"%d\n",(int)getpid()); write(fd,pbuf,strlen(pbuf)); close(fd); wrote_pid_file=TRUE; } else{ syslog(LOG_ERR,"Cannot write to pidfile '%s' - check your privileges.",pid_file); } return OK; } /* remove pid file */ int remove_pid_file(void){ /* no pid file was specified */ if(pid_file==NULL) return OK; /* pid file was not written */ if(wrote_pid_file==FALSE) return OK; /* remove existing pid file */ if(unlink(pid_file)==-1){ syslog(LOG_ERR,"Cannot remove pidfile '%s' - check your privileges.",pid_file); return ERROR; } return OK; } void complete_SSL_shutdown( SSL *ssl) { /* Thanks to Jari Takkala (jtakkala@gmail.com) for the following information. We need to call SSL_shutdown() at least twice, otherwise we'll be left with data in the socket receive buffer, and the subsequent process termination will cause TCP RST's to be sent to the client. See http://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/32219/diff for more information. */ int x; for( x = 0; x < 4; x++) { if( SSL_shutdown( ssl)) break; } } /* bail if daemon is running as root */ int check_privileges(void){ uid_t uid=-1; gid_t gid=-1; uid=geteuid(); gid=getegid(); if(uid==0 || gid==0){ syslog(LOG_ERR,"Error: NRPE daemon cannot be run as user/group root!"); exit(STATE_CRITICAL); } return OK; } /* handle signals (parent process) */ void sighandler(int sig){ static char *sigs[]={"EXIT","HUP","INT","QUIT","ILL","TRAP","ABRT","BUS","FPE","KILL","USR1","SEGV","USR2","PIPE","ALRM","TERM","STKFLT","CHLD","CONT","STOP","TSTP","TTIN","TTOU","URG","XCPU","XFSZ","VTALRM","PROF","WINCH","IO","PWR","UNUSED","ZERR","DEBUG",(char *)NULL}; int i; if(sig<0) sig=-sig; for(i=0;sigs[i]!=(char *)NULL;i++); sig%=i; /* we received a SIGHUP, so restart... */ if(sig==SIGHUP){ sigrestart=TRUE; syslog(LOG_NOTICE,"Caught SIGHUP - restarting...\n"); } /* else begin shutting down... */ if(sig==SIGTERM){ /* if shutdown is already true, we're in a signal trap loop! */ if(sigshutdown==TRUE) exit(STATE_CRITICAL); sigshutdown=TRUE; syslog(LOG_NOTICE,"Caught SIG%s - shutting down...\n",sigs[sig]); } return; } /* handle signals (child processes) */ void child_sighandler(int sig){ /* free all memory we allocated */ free_memory(); /* terminate */ exit(0); /* so the compiler doesn't complain... */ return; } /* tests whether or not a client request is valid */ int validate_request(packet *pkt){ u_int32_t packet_crc32; u_int32_t calculated_crc32; char *ptr; #ifdef ENABLE_COMMAND_ARGUMENTS int x; #endif /***** DECRYPT REQUEST ******/ /* check the crc 32 value */ packet_crc32=ntohl(pkt->crc32_value); pkt->crc32_value=0L; calculated_crc32=calculate_crc32((char *)pkt,sizeof(packet)); if(packet_crc32!=calculated_crc32){ syslog(LOG_ERR,"Error: Request packet had invalid CRC32."); return ERROR; } /* make sure this is the right type of packet */ if(ntohs(pkt->packet_type)!=QUERY_PACKET || ntohs(pkt->packet_version)!=NRPE_PACKET_VERSION_2){ syslog(LOG_ERR,"Error: Request packet type/version was invalid!"); return ERROR; } /* make sure buffer is terminated */ pkt->buffer[MAX_PACKETBUFFER_LENGTH-1]='\x0'; /* client must send some kind of request */ if(!strcmp(pkt->buffer,"")){ syslog(LOG_ERR,"Error: Request contained no query!"); return ERROR; } /* make sure request doesn't contain nasties */ if(contains_nasty_metachars(pkt->buffer)==TRUE){ syslog(LOG_ERR,"Error: Request contained illegal metachars!"); return ERROR; } /* make sure the request doesn't contain arguments */ if(strchr(pkt->buffer,'!')){ #ifdef ENABLE_COMMAND_ARGUMENTS if(allow_arguments==FALSE){ syslog(LOG_ERR,"Error: Request contained command arguments, but argument option is not enabled!"); return ERROR; } #else syslog(LOG_ERR,"Error: Request contained command arguments!"); return ERROR; #endif } /* get command name */ #ifdef ENABLE_COMMAND_ARGUMENTS ptr=strtok(pkt->buffer,"!"); #else ptr=pkt->buffer; #endif command_name=strdup(ptr); if(command_name==NULL){ syslog(LOG_ERR,"Error: Memory allocation failed"); return ERROR; } #ifdef ENABLE_COMMAND_ARGUMENTS /* get command arguments */ if(allow_arguments==TRUE){ for(x=0;x=1 && arg_index<=MAX_COMMAND_ARGUMENTS) selected_macro=macro_argv[arg_index-1]; } /* an escaped $ is done by specifying two $$ next to each other */ else if(!strcmp(temp_buffer,"")){ strncat(output_buffer,"$",buffer_length-strlen(output_buffer)-1); } /* a non-macro, just some user-defined string between two $s */ else{ strncat(output_buffer,"$",buffer_length-strlen(output_buffer)-1); output_buffer[buffer_length-1]='\x0'; strncat(output_buffer,temp_buffer,buffer_length-strlen(output_buffer)-1); output_buffer[buffer_length-1]='\x0'; strncat(output_buffer,"$",buffer_length-strlen(output_buffer)-1); } /* insert macro */ if(selected_macro!=NULL) strncat(output_buffer,(selected_macro==NULL)?"":selected_macro,buffer_length-strlen(output_buffer)-1); output_buffer[buffer_length-1]='\x0'; } in_macro=FALSE; } } return OK; } /* process command line arguments */ int process_arguments(int argc, char **argv){ char optchars[MAX_INPUT_BUFFER]; int c=1; int have_mode=FALSE; #ifdef HAVE_GETOPT_LONG int option_index=0; static struct option long_options[]={ {"config", required_argument, 0, 'c'}, {"inetd", no_argument, 0, 'i'}, /* To compatibility between short and long options but not used on AIX */ {"src", no_argument, 0, 's'}, {"4", no_argument, 0, '4'}, {"6", no_argument, 0, '4'}, {"daemon", no_argument, 0, 'd'}, {"no-ssl", no_argument, 0, 'n'}, {"help", no_argument, 0, 'h'}, {"license", no_argument, 0, 'l'}, {0, 0, 0, 0} }; #endif /* no options were supplied */ if(argc<2) return ERROR; snprintf(optchars,MAX_INPUT_BUFFER,"c:hVldi46n"); while(1){ #ifdef HAVE_GETOPT_LONG c=getopt_long(argc,argv,optchars,long_options,&option_index); #else c=getopt(argc,argv,optchars); #endif if(c==-1 || c==EOF) break; /* process all arguments */ switch(c){ case '?': case 'h': show_help=TRUE; break; case 'V': show_version=TRUE; break; case 'l': show_license=TRUE; break; case 'c': strncpy(config_file,optarg,sizeof(config_file)); config_file[sizeof(config_file)-1]='\x0'; break; case 'd': use_inetd=FALSE; have_mode=TRUE; break; case 'i': use_inetd=TRUE; have_mode=TRUE; break; case '4': address_family=AF_INET; break; case '6': address_family=AF_INET6; break; case 'n': use_ssl=FALSE; break; case 's': /* Argument s to indicate SRC option*/ use_src=TRUE; break; default: return ERROR; break; } } /* bail if we didn't get required args */ if(have_mode==FALSE) return ERROR; return OK; } nrpe-2.15/src/snprintf.c000066400000000000000000001031611221237212100151760ustar00rootroot00000000000000/* * NOTE: If you change this file, please merge it into rsync, samba, etc. */ /* * Copyright Patrick Powell 1995 * This code is based on code written by Patrick Powell (papowell@astart.com) * It may be used for any purpose as long as this notice remains intact * on all source code distributions */ /************************************************************** * Original: * Patrick Powell Tue Apr 11 09:48:21 PDT 1995 * A bombproof version of doprnt (dopr) included. * Sigh. This sort of thing is always nasty do deal with. Note that * the version here does not include floating point... * * snprintf() is used instead of sprintf() as it does limit checks * for string length. This covers a nasty loophole. * * The other functions are there to prevent NULL pointers from * causing nast effects. * * More Recently: * Brandon Long 9/15/96 for mutt 0.43 * This was ugly. It is still ugly. I opted out of floating point * numbers, but the formatter understands just about everything * from the normal C string format, at least as far as I can tell from * the Solaris 2.5 printf(3S) man page. * * Brandon Long 10/22/97 for mutt 0.87.1 * Ok, added some minimal floating point support, which means this * probably requires libm on most operating systems. Don't yet * support the exponent (e,E) and sigfig (g,G). Also, fmtint() * was pretty badly broken, it just wasn't being exercised in ways * which showed it, so that's been fixed. Also, formated the code * to mutt conventions, and removed dead code left over from the * original. Also, there is now a builtin-test, just compile with: * gcc -DTEST_SNPRINTF -o snprintf snprintf.c -lm * and run snprintf for results. * * Thomas Roessler 01/27/98 for mutt 0.89i * The PGP code was using unsigned hexadecimal formats. * Unfortunately, unsigned formats simply didn't work. * * Michael Elkins 03/05/98 for mutt 0.90.8 * The original code assumed that both snprintf() and vsnprintf() were * missing. Some systems only have snprintf() but not vsnprintf(), so * the code is now broken down under HAVE_SNPRINTF and HAVE_VSNPRINTF. * * Andrew Tridgell (tridge@samba.org) Oct 1998 * fixed handling of %.0f * added test for HAVE_LONG_DOUBLE * * tridge@samba.org, idra@samba.org, April 2001 * got rid of fcvt code (twas buggy and made testing harder) * added C99 semantics * * date: 2002/12/19 19:56:31; author: herb; state: Exp; lines: +2 -0 * actually print args for %g and %e * * date: 2002/06/03 13:37:52; author: jmcd; state: Exp; lines: +8 -0 * Since includes.h isn't included here, VA_COPY has to be defined here. I don't * see any include file that is guaranteed to be here, so I'm defining it * locally. Fixes AIX and Solaris builds. * * date: 2002/06/03 03:07:24; author: tridge; state: Exp; lines: +5 -13 * put the ifdef for HAVE_VA_COPY in one place rather than in lots of * functions * * date: 2002/05/17 14:51:22; author: jmcd; state: Exp; lines: +21 -4 * Fix usage of va_list passed as an arg. Use __va_copy before using it * when it exists. * * date: 2002/04/16 22:38:04; author: idra; state: Exp; lines: +20 -14 * Fix incorrect zpadlen handling in fmtfp. * Thanks to Ollie Oldham for spotting it. * few mods to make it easier to compile the tests. * addedd the "Ollie" test to the floating point ones. * * Martin Pool (mbp@samba.org) April 2003 * Remove NO_CONFIG_H so that the test case can be built within a source * tree with less trouble. * Remove unnecessary SAFE_FREE() definition. * * Martin Pool (mbp@samba.org) May 2003 * Put in a prototype for dummy_snprintf() to quiet compiler warnings. * * Move #endif to make sure VA_COPY, LDOUBLE, etc are defined even * if the C library has some snprintf functions already. * * Darren Tucker (dtucker@zip.com.au) 2005 * Fix bug allowing read overruns of the source string with "%.*s" * Usually harmless unless the read runs outside the process' allocation * (eg if your malloc does guard pages) in which case it will segfault. * From OpenSSH. Also added test for same. * * Simo Sorce (idra@samba.org) Jan 2006 * * Add support for position independent parameters * fix fmtstr now it conforms to sprintf wrt min.max * **************************************************************/ #ifndef NO_CONFIG_H /* 08/13/2007 EG changed path to config.h to match NRPE distro */ #include "../include/config.h" #else #define NULL 0 #endif #ifdef TEST_SNPRINTF /* need math library headers for testing */ /* In test mode, we pretend that this system doesn't have any snprintf * functions, regardless of what config.h says. */ # undef HAVE_SNPRINTF # undef HAVE_VSNPRINTF # undef HAVE_C99_VSNPRINTF # undef HAVE_ASPRINTF # undef HAVE_VASPRINTF # include #endif /* TEST_SNPRINTF */ #ifdef HAVE_STRING_H #include #endif #ifdef HAVE_STRINGS_H #include #endif #ifdef HAVE_CTYPE_H #include #endif #include #include #ifdef HAVE_STDLIB_H #include #endif #if defined(HAVE_SNPRINTF) && defined(HAVE_VSNPRINTF) && defined(HAVE_C99_VSNPRINTF) /* only include stdio.h if we are not re-defining snprintf or vsnprintf */ #include /* make the compiler happy with an empty file */ void dummy_snprintf(void); void dummy_snprintf(void) {} #endif /* HAVE_SNPRINTF, etc */ #ifdef HAVE_LONG_DOUBLE #define LDOUBLE long double #else #define LDOUBLE double #endif #ifdef HAVE_LONG_LONG #define LLONG long long #else #define LLONG long #endif #ifndef VA_COPY #ifdef HAVE_VA_COPY #define VA_COPY(dest, src) va_copy(dest, src) #else #ifdef HAVE___VA_COPY #define VA_COPY(dest, src) __va_copy(dest, src) #else #define VA_COPY(dest, src) (dest) = (src) #endif #endif /* * dopr(): poor man's version of doprintf */ /* format read states */ #define DP_S_DEFAULT 0 #define DP_S_FLAGS 1 #define DP_S_MIN 2 #define DP_S_DOT 3 #define DP_S_MAX 4 #define DP_S_MOD 5 #define DP_S_CONV 6 #define DP_S_DONE 7 /* format flags - Bits */ #define DP_F_MINUS (1 << 0) #define DP_F_PLUS (1 << 1) #define DP_F_SPACE (1 << 2) #define DP_F_NUM (1 << 3) #define DP_F_ZERO (1 << 4) #define DP_F_UP (1 << 5) #define DP_F_UNSIGNED (1 << 6) /* Conversion Flags */ #define DP_C_CHAR 1 #define DP_C_SHORT 2 #define DP_C_LONG 3 #define DP_C_LDOUBLE 4 #define DP_C_LLONG 5 /* Chunk types */ #define CNK_FMT_STR 0 #define CNK_INT 1 #define CNK_OCTAL 2 #define CNK_UINT 3 #define CNK_HEX 4 #define CNK_FLOAT 5 #define CNK_CHAR 6 #define CNK_STRING 7 #define CNK_PTR 8 #define CNK_NUM 9 #define CNK_PRCNT 10 #define char_to_int(p) ((p)- '0') #ifndef MAX #define MAX(p,q) (((p) >= (q)) ? (p) : (q)) #endif /* yes this really must be a ||. Don't muck with this (tridge) */ #if !defined(HAVE_VSNPRINTF) || !defined(HAVE_C99_VSNPRINTF) struct pr_chunk { int type; /* chunk type */ int num; /* parameter number */ int min; int max; int flags; int cflags; int start; int len; LLONG value; LDOUBLE fvalue; char *strvalue; void *pnum; struct pr_chunk *min_star; struct pr_chunk *max_star; struct pr_chunk *next; }; struct pr_chunk_x { struct pr_chunk **chunks; int num; }; static size_t dopr(char *buffer, size_t maxlen, const char *format, va_list args_in); static void fmtstr(char *buffer, size_t *currlen, size_t maxlen, char *value, int flags, int min, int max); static void fmtint(char *buffer, size_t *currlen, size_t maxlen, long value, int base, int min, int max, int flags); static void fmtfp(char *buffer, size_t *currlen, size_t maxlen, LDOUBLE fvalue, int min, int max, int flags); static void dopr_outch(char *buffer, size_t *currlen, size_t maxlen, char c); static struct pr_chunk *new_chunk(void); static int add_cnk_list_entry(struct pr_chunk_x **list, int max_num, struct pr_chunk *chunk); static size_t dopr(char *buffer, size_t maxlen, const char *format, va_list args_in) { char ch; int state; int pflag; int pnum; int pfirst; size_t currlen; va_list args; const char *base; struct pr_chunk *chunks = NULL; struct pr_chunk *cnk = NULL; struct pr_chunk_x *clist = NULL; int max_pos; size_t ret = -1; VA_COPY(args, args_in); state = DP_S_DEFAULT; pfirst = 1; pflag = 0; pnum = 0; max_pos = 0; base = format; ch = *format++; /* retrieve the string structure as chunks */ while (state != DP_S_DONE) { if (ch == '\0') state = DP_S_DONE; switch(state) { case DP_S_DEFAULT: if (cnk) { cnk->next = new_chunk(); cnk = cnk->next; } else { cnk = new_chunk(); } if (!cnk) goto done; if (!chunks) chunks = cnk; if (ch == '%') { state = DP_S_FLAGS; ch = *format++; } else { cnk->type = CNK_FMT_STR; cnk->start = format - base -1; while ((ch != '\0') && (ch != '%')) ch = *format++; cnk->len = format - base - cnk->start -1; } break; case DP_S_FLAGS: switch (ch) { case '-': cnk->flags |= DP_F_MINUS; ch = *format++; break; case '+': cnk->flags |= DP_F_PLUS; ch = *format++; break; case ' ': cnk->flags |= DP_F_SPACE; ch = *format++; break; case '#': cnk->flags |= DP_F_NUM; ch = *format++; break; case '0': cnk->flags |= DP_F_ZERO; ch = *format++; break; case 'I': /* internationalization not supported yet */ ch = *format++; break; default: state = DP_S_MIN; break; } break; case DP_S_MIN: if (isdigit((unsigned char)ch)) { cnk->min = 10 * cnk->min + char_to_int (ch); ch = *format++; } else if (ch == '$') { if (!pfirst && !pflag) { /* parameters must be all positioned or none */ goto done; } if (pfirst) { pfirst = 0; pflag = 1; } if (cnk->min == 0) /* what ?? */ goto done; cnk->num = cnk->min; cnk->min = 0; ch = *format++; } else if (ch == '*') { if (pfirst) pfirst = 0; cnk->min_star = new_chunk(); if (!cnk->min_star) /* out of memory :-( */ goto done; cnk->min_star->type = CNK_INT; if (pflag) { int num; ch = *format++; if (!isdigit((unsigned char)ch)) { /* parameters must be all positioned or none */ goto done; } for (num = 0; isdigit((unsigned char)ch); ch = *format++) { num = 10 * num + char_to_int(ch); } cnk->min_star->num = num; if (ch != '$') /* what ?? */ goto done; } else { cnk->min_star->num = ++pnum; } max_pos = add_cnk_list_entry(&clist, max_pos, cnk->min_star); if (max_pos == 0) /* out of memory :-( */ goto done; ch = *format++; state = DP_S_DOT; } else { if (pfirst) pfirst = 0; state = DP_S_DOT; } break; case DP_S_DOT: if (ch == '.') { state = DP_S_MAX; ch = *format++; } else { state = DP_S_MOD; } break; case DP_S_MAX: if (isdigit((unsigned char)ch)) { if (cnk->max < 0) cnk->max = 0; cnk->max = 10 * cnk->max + char_to_int (ch); ch = *format++; } else if (ch == '$') { if (!pfirst && !pflag) { /* parameters must be all positioned or none */ goto done; } if (cnk->max <= 0) /* what ?? */ goto done; cnk->num = cnk->max; cnk->max = -1; ch = *format++; } else if (ch == '*') { cnk->max_star = new_chunk(); if (!cnk->max_star) /* out of memory :-( */ goto done; cnk->max_star->type = CNK_INT; if (pflag) { int num; ch = *format++; if (!isdigit((unsigned char)ch)) { /* parameters must be all positioned or none */ goto done; } for (num = 0; isdigit((unsigned char)ch); ch = *format++) { num = 10 * num + char_to_int(ch); } cnk->max_star->num = num; if (ch != '$') /* what ?? */ goto done; } else { cnk->max_star->num = ++pnum; } max_pos = add_cnk_list_entry(&clist, max_pos, cnk->max_star); if (max_pos == 0) /* out of memory :-( */ goto done; ch = *format++; state = DP_S_MOD; } else { state = DP_S_MOD; } break; case DP_S_MOD: switch (ch) { case 'h': cnk->cflags = DP_C_SHORT; ch = *format++; if (ch == 'h') { cnk->cflags = DP_C_CHAR; ch = *format++; } break; case 'l': cnk->cflags = DP_C_LONG; ch = *format++; if (ch == 'l') { /* It's a long long */ cnk->cflags = DP_C_LLONG; ch = *format++; } break; case 'L': cnk->cflags = DP_C_LDOUBLE; ch = *format++; break; default: break; } state = DP_S_CONV; break; case DP_S_CONV: if (cnk->num == 0) cnk->num = ++pnum; max_pos = add_cnk_list_entry(&clist, max_pos, cnk); if (max_pos == 0) /* out of memory :-( */ goto done; switch (ch) { case 'd': case 'i': cnk->type = CNK_INT; break; case 'o': cnk->type = CNK_OCTAL; cnk->flags |= DP_F_UNSIGNED; break; case 'u': cnk->type = CNK_UINT; cnk->flags |= DP_F_UNSIGNED; break; case 'X': cnk->flags |= DP_F_UP; case 'x': cnk->type = CNK_HEX; cnk->flags |= DP_F_UNSIGNED; break; case 'A': /* hex float not supported yet */ case 'E': case 'G': case 'F': cnk->flags |= DP_F_UP; case 'a': /* hex float not supported yet */ case 'e': case 'f': case 'g': cnk->type = CNK_FLOAT; break; case 'c': cnk->type = CNK_CHAR; break; case 's': cnk->type = CNK_STRING; break; case 'p': cnk->type = CNK_PTR; break; case 'n': cnk->type = CNK_NUM; break; case '%': cnk->type = CNK_PRCNT; break; default: /* Unknown, bail out*/ goto done; } ch = *format++; state = DP_S_DEFAULT; break; case DP_S_DONE: break; default: /* hmm? */ break; /* some picky compilers need this */ } } /* retieve the format arguments */ for (pnum = 0; pnum < max_pos; pnum++) { int i; if (clist[pnum].num == 0) { /* ignoring a parameter should not be permitted * all parameters must be matched at least once * BUT seem some system ignore this rule ... * at least my glibc based system does --SSS */ #ifdef DEBUG_SNPRINTF printf("parameter at position %d not used\n", pnum+1); #endif /* eat the parameter */ va_arg (args, int); continue; } for (i = 1; i < clist[pnum].num; i++) { if (clist[pnum].chunks[0]->type != clist[pnum].chunks[i]->type) { /* nooo noo no! * all the references to a parameter * must be of the same type */ goto done; } } cnk = clist[pnum].chunks[0]; switch (cnk->type) { case CNK_INT: if (cnk->cflags == DP_C_SHORT) cnk->value = va_arg (args, int); else if (cnk->cflags == DP_C_LONG) cnk->value = va_arg (args, long int); else if (cnk->cflags == DP_C_LLONG) cnk->value = va_arg (args, LLONG); else cnk->value = va_arg (args, int); for (i = 1; i < clist[pnum].num; i++) { clist[pnum].chunks[i]->value = cnk->value; } break; case CNK_OCTAL: case CNK_UINT: case CNK_HEX: if (cnk->cflags == DP_C_SHORT) cnk->value = va_arg (args, unsigned int); else if (cnk->cflags == DP_C_LONG) cnk->value = (long)va_arg (args, unsigned long int); else if (cnk->cflags == DP_C_LLONG) cnk->value = (LLONG)va_arg (args, unsigned LLONG); else cnk->value = (long)va_arg (args, unsigned int); for (i = 1; i < clist[pnum].num; i++) { clist[pnum].chunks[i]->value = cnk->value; } break; case CNK_FLOAT: if (cnk->cflags == DP_C_LDOUBLE) cnk->fvalue = va_arg (args, LDOUBLE); else cnk->fvalue = va_arg (args, double); for (i = 1; i < clist[pnum].num; i++) { clist[pnum].chunks[i]->fvalue = cnk->fvalue; } break; case CNK_CHAR: cnk->value = va_arg (args, int); for (i = 1; i < clist[pnum].num; i++) { clist[pnum].chunks[i]->value = cnk->value; } break; case CNK_STRING: cnk->strvalue = va_arg (args, char *); if (!cnk->strvalue) cnk->strvalue = "(NULL)"; for (i = 1; i < clist[pnum].num; i++) { clist[pnum].chunks[i]->strvalue = cnk->strvalue; } break; case CNK_PTR: cnk->strvalue = va_arg (args, void *); for (i = 1; i < clist[pnum].num; i++) { clist[pnum].chunks[i]->strvalue = cnk->strvalue; } break; case CNK_NUM: if (cnk->cflags == DP_C_CHAR) cnk->pnum = va_arg (args, char *); else if (cnk->cflags == DP_C_SHORT) cnk->pnum = va_arg (args, short int *); else if (cnk->cflags == DP_C_LONG) cnk->pnum = va_arg (args, long int *); else if (cnk->cflags == DP_C_LLONG) cnk->pnum = va_arg (args, LLONG *); else cnk->pnum = va_arg (args, int *); for (i = 1; i < clist[pnum].num; i++) { clist[pnum].chunks[i]->pnum = cnk->pnum; } break; case CNK_PRCNT: break; default: /* what ?? */ goto done; } } /* print out the actual string from chunks */ currlen = 0; cnk = chunks; while (cnk) { int len, min, max; if (cnk->min_star) min = cnk->min_star->value; else min = cnk->min; if (cnk->max_star) max = cnk->max_star->value; else max = cnk->max; switch (cnk->type) { case CNK_FMT_STR: if (maxlen != 0 && maxlen > currlen) { if (maxlen > (currlen + cnk->len)) len = cnk->len; else len = maxlen - currlen; memcpy(&(buffer[currlen]), &(base[cnk->start]), len); } currlen += cnk->len; break; case CNK_INT: case CNK_UINT: fmtint (buffer, &currlen, maxlen, cnk->value, 10, min, max, cnk->flags); break; case CNK_OCTAL: fmtint (buffer, &currlen, maxlen, cnk->value, 8, min, max, cnk->flags); break; case CNK_HEX: fmtint (buffer, &currlen, maxlen, cnk->value, 16, min, max, cnk->flags); break; case CNK_FLOAT: fmtfp (buffer, &currlen, maxlen, cnk->fvalue, min, max, cnk->flags); break; case CNK_CHAR: dopr_outch (buffer, &currlen, maxlen, cnk->value); break; case CNK_STRING: if (max == -1) { max = strlen(cnk->strvalue); } fmtstr (buffer, &currlen, maxlen, cnk->strvalue, cnk->flags, min, max); break; case CNK_PTR: fmtint (buffer, &currlen, maxlen, (long)(cnk->strvalue), 16, min, max, cnk->flags); break; case CNK_NUM: if (cnk->cflags == DP_C_CHAR) *((char *)(cnk->pnum)) = (char)currlen; else if (cnk->cflags == DP_C_SHORT) *((short int *)(cnk->pnum)) = (short int)currlen; else if (cnk->cflags == DP_C_LONG) *((long int *)(cnk->pnum)) = (long int)currlen; else if (cnk->cflags == DP_C_LLONG) *((LLONG *)(cnk->pnum)) = (LLONG)currlen; else *((int *)(cnk->pnum)) = (int)currlen; break; case CNK_PRCNT: dopr_outch (buffer, &currlen, maxlen, '%'); break; default: /* what ?? */ goto done; } cnk = cnk->next; } if (maxlen != 0) { if (currlen < maxlen - 1) buffer[currlen] = '\0'; else if (maxlen > 0) buffer[maxlen - 1] = '\0'; } ret = currlen; done: while (chunks) { cnk = chunks->next; free(chunks); chunks = cnk; } if (clist) { for (pnum = 0; pnum < max_pos; pnum++) { if (clist[pnum].chunks) free(clist[pnum].chunks); } free(clist); } return ret; } static void fmtstr(char *buffer, size_t *currlen, size_t maxlen, char *value, int flags, int min, int max) { int padlen, strln; /* amount to pad */ int cnt = 0; #ifdef DEBUG_SNPRINTF printf("fmtstr min=%d max=%d s=[%s]\n", min, max, value); #endif if (value == 0) { value = ""; } for (strln = 0; strln < max && value[strln]; ++strln); /* strlen */ padlen = min - strln; if (padlen < 0) padlen = 0; if (flags & DP_F_MINUS) padlen = -padlen; /* Left Justify */ while (padlen > 0) { dopr_outch (buffer, currlen, maxlen, ' '); --padlen; } while (*value && (cnt < max)) { dopr_outch (buffer, currlen, maxlen, *value++); ++cnt; } while (padlen < 0) { dopr_outch (buffer, currlen, maxlen, ' '); ++padlen; } } /* Have to handle DP_F_NUM (ie 0x and 0 alternates) */ static void fmtint(char *buffer, size_t *currlen, size_t maxlen, long value, int base, int min, int max, int flags) { int signvalue = 0; unsigned long uvalue; char convert[20]; int place = 0; int spadlen = 0; /* amount to space pad */ int zpadlen = 0; /* amount to zero pad */ int caps = 0; if (max < 0) max = 0; uvalue = value; if(!(flags & DP_F_UNSIGNED)) { if( value < 0 ) { signvalue = '-'; uvalue = -value; } else { if (flags & DP_F_PLUS) /* Do a sign (+/i) */ signvalue = '+'; else if (flags & DP_F_SPACE) signvalue = ' '; } } if (flags & DP_F_UP) caps = 1; /* Should characters be upper case? */ do { convert[place++] = (caps? "0123456789ABCDEF":"0123456789abcdef") [uvalue % (unsigned)base ]; uvalue = (uvalue / (unsigned)base ); } while(uvalue && (place < 20)); if (place == 20) place--; convert[place] = 0; zpadlen = max - place; spadlen = min - MAX (max, place) - (signvalue ? 1 : 0); if (zpadlen < 0) zpadlen = 0; if (spadlen < 0) spadlen = 0; if (flags & DP_F_ZERO) { zpadlen = MAX(zpadlen, spadlen); spadlen = 0; } if (flags & DP_F_MINUS) spadlen = -spadlen; /* Left Justifty */ #ifdef DEBUG_SNPRINTF printf("zpad: %d, spad: %d, min: %d, max: %d, place: %d\n", zpadlen, spadlen, min, max, place); #endif /* Spaces */ while (spadlen > 0) { dopr_outch (buffer, currlen, maxlen, ' '); --spadlen; } /* Sign */ if (signvalue) dopr_outch (buffer, currlen, maxlen, signvalue); /* Zeros */ if (zpadlen > 0) { while (zpadlen > 0) { dopr_outch (buffer, currlen, maxlen, '0'); --zpadlen; } } /* Digits */ while (place > 0) dopr_outch (buffer, currlen, maxlen, convert[--place]); /* Left Justified spaces */ while (spadlen < 0) { dopr_outch (buffer, currlen, maxlen, ' '); ++spadlen; } } static LDOUBLE abs_val(LDOUBLE value) { LDOUBLE result = value; if (value < 0) result = -value; return result; } static LDOUBLE POW10(int exp) { LDOUBLE result = 1; while (exp) { result *= 10; exp--; } return result; } static LLONG ROUND(LDOUBLE value) { LLONG intpart; intpart = (LLONG)value; value = value - intpart; if (value >= 0.5) intpart++; return intpart; } /* a replacement for modf that doesn't need the math library. Should be portable, but slow */ static double my_modf(double x0, double *iptr) { int i; long l; double x = x0; double f = 1.0; for (i=0;i<100;i++) { l = (long)x; if (l <= (x+1) && l >= (x-1)) break; x *= 0.1; f *= 10.0; } if (i == 100) { /* yikes! the number is beyond what we can handle. What do we do? */ (*iptr) = 0; return 0; } if (i != 0) { double i2; double ret; ret = my_modf(x0-l*f, &i2); (*iptr) = l*f + i2; return ret; } (*iptr) = l; return x - (*iptr); } static void fmtfp (char *buffer, size_t *currlen, size_t maxlen, LDOUBLE fvalue, int min, int max, int flags) { int signvalue = 0; double ufvalue; char iconvert[311]; char fconvert[311]; int iplace = 0; int fplace = 0; int padlen = 0; /* amount to pad */ int zpadlen = 0; int caps = 0; int idx; double intpart; double fracpart; double temp; /* * AIX manpage says the default is 0, but Solaris says the default * is 6, and sprintf on AIX defaults to 6 */ if (max < 0) max = 6; ufvalue = abs_val (fvalue); if (fvalue < 0) { signvalue = '-'; } else { if (flags & DP_F_PLUS) { /* Do a sign (+/i) */ signvalue = '+'; } else { if (flags & DP_F_SPACE) signvalue = ' '; } } #if 0 if (flags & DP_F_UP) caps = 1; /* Should characters be upper case? */ #endif #if 0 if (max == 0) ufvalue += 0.5; /* if max = 0 we must round */ #endif /* * Sorry, we only support 9 digits past the decimal because of our * conversion method */ if (max > 9) max = 9; /* We "cheat" by converting the fractional part to integer by * multiplying by a factor of 10 */ temp = ufvalue; my_modf(temp, &intpart); fracpart = ROUND((POW10(max)) * (ufvalue - intpart)); if (fracpart >= POW10(max)) { intpart++; fracpart -= POW10(max); } /* Convert integer part */ do { temp = intpart*0.1; my_modf(temp, &intpart); idx = (int) ((temp -intpart +0.05)* 10.0); /* idx = (int) (((double)(temp*0.1) -intpart +0.05) *10.0); */ /* printf ("%llf, %f, %x\n", temp, intpart, idx); */ iconvert[iplace++] = (caps? "0123456789ABCDEF":"0123456789abcdef")[idx]; } while (intpart && (iplace < 311)); if (iplace == 311) iplace--; iconvert[iplace] = 0; /* Convert fractional part */ if (fracpart) { do { temp = fracpart*0.1; my_modf(temp, &fracpart); idx = (int) ((temp -fracpart +0.05)* 10.0); /* idx = (int) ((((temp/10) -fracpart) +0.05) *10); */ /* printf ("%lf, %lf, %ld\n", temp, fracpart, idx ); */ fconvert[fplace++] = (caps? "0123456789ABCDEF":"0123456789abcdef")[idx]; } while(fracpart && (fplace < 311)); if (fplace == 311) fplace--; } fconvert[fplace] = 0; /* -1 for decimal point, another -1 if we are printing a sign */ padlen = min - iplace - max - 1 - ((signvalue) ? 1 : 0); zpadlen = max - fplace; if (zpadlen < 0) zpadlen = 0; if (padlen < 0) padlen = 0; if (flags & DP_F_MINUS) padlen = -padlen; /* Left Justifty */ if ((flags & DP_F_ZERO) && (padlen > 0)) { if (signvalue) { dopr_outch (buffer, currlen, maxlen, signvalue); --padlen; signvalue = 0; } while (padlen > 0) { dopr_outch (buffer, currlen, maxlen, '0'); --padlen; } } while (padlen > 0) { dopr_outch (buffer, currlen, maxlen, ' '); --padlen; } if (signvalue) dopr_outch (buffer, currlen, maxlen, signvalue); while (iplace > 0) dopr_outch (buffer, currlen, maxlen, iconvert[--iplace]); #ifdef DEBUG_SNPRINTF printf("fmtfp: fplace=%d zpadlen=%d\n", fplace, zpadlen); #endif /* * Decimal point. This should probably use locale to find the correct * char to print out. */ if (max > 0) { dopr_outch (buffer, currlen, maxlen, '.'); while (zpadlen > 0) { dopr_outch (buffer, currlen, maxlen, '0'); --zpadlen; } while (fplace > 0) dopr_outch (buffer, currlen, maxlen, fconvert[--fplace]); } while (padlen < 0) { dopr_outch (buffer, currlen, maxlen, ' '); ++padlen; } } static void dopr_outch(char *buffer, size_t *currlen, size_t maxlen, char c) { if (*currlen < maxlen) { buffer[(*currlen)] = c; } (*currlen)++; } static struct pr_chunk *new_chunk(void) { struct pr_chunk *new_c = (struct pr_chunk *)malloc(sizeof(struct pr_chunk)); if ( !new_c ) return NULL; new_c->type = 0; new_c->num = 0; new_c->min = 0; new_c->min_star = NULL; new_c->max = -1; new_c->max_star = NULL; new_c->flags = 0; new_c->cflags = 0; new_c->start = 0; new_c->len = 0; new_c->value = 0; new_c->fvalue = 0; new_c->strvalue = NULL; new_c->pnum = NULL; new_c->next = NULL; return new_c; } static int add_cnk_list_entry(struct pr_chunk_x **list, int max_num, struct pr_chunk *chunk) { struct pr_chunk_x *l; struct pr_chunk **c; int max; int cnum; int i, pos; if (chunk->num > max_num) { max = chunk->num; if (*list == NULL) { l = (struct pr_chunk_x *)malloc(sizeof(struct pr_chunk_x) * max); pos = 0; } else { l = (struct pr_chunk_x *)realloc(*list, sizeof(struct pr_chunk_x) * max); pos = max_num; } if (l == NULL) { for (i = 0; i < max; i++) { if ((*list)[i].chunks) free((*list)[i].chunks); } return 0; } for (i = pos; i < max; i++) { l[i].chunks = NULL; l[i].num = 0; } } else { l = *list; max = max_num; } i = chunk->num - 1; cnum = l[i].num + 1; if (l[i].chunks == NULL) { c = (struct pr_chunk **)malloc(sizeof(struct pr_chunk *) * cnum); } else { c = (struct pr_chunk **)realloc(l[i].chunks, sizeof(struct pr_chunk *) * cnum); } if (c == NULL) { for (i = 0; i < max; i++) { if (l[i].chunks) free(l[i].chunks); } return 0; } c[l[i].num] = chunk; l[i].chunks = c; l[i].num = cnum; *list = l; return max; } int smb_vsnprintf (char *str, size_t count, const char *fmt, va_list args) { return dopr(str, count, fmt, args); } #define vsnprintf smb_vsnprintf #endif /* yes this really must be a ||. Don't muck with this (tridge) * * The logic for these two is that we need our own definition if the * OS *either* has no definition of *sprintf, or if it does have one * that doesn't work properly according to the autoconf test. */ #if !defined(HAVE_SNPRINTF) || !defined(HAVE_C99_VSNPRINTF) int smb_snprintf(char *str,size_t count,const char *fmt,...) { size_t ret; va_list ap; va_start(ap, fmt); ret = vsnprintf(str, count, fmt, ap); va_end(ap); return ret; } #define snprintf smb_snprintf #endif #endif #ifndef HAVE_VASPRINTF int vasprintf(char **ptr, const char *format, va_list ap) { int ret; va_list ap2; VA_COPY(ap2, ap); ret = vsnprintf(NULL, 0, format, ap2); if (ret <= 0) return ret; (*ptr) = (char *)malloc(ret+1); if (!*ptr) return -1; VA_COPY(ap2, ap); ret = vsnprintf(*ptr, ret+1, format, ap2); return ret; } #endif #ifndef HAVE_ASPRINTF int asprintf(char **ptr, const char *format, ...) { va_list ap; int ret; *ptr = NULL; va_start(ap, format); ret = vasprintf(ptr, format, ap); va_end(ap); return ret; } #endif #ifdef TEST_SNPRINTF int sprintf(char *str,const char *fmt,...); int main (void) { char buf1[1024]; char buf2[1024]; char *buf3; char *fp_fmt[] = { "%1.1f", "%-1.5f", "%1.5f", "%123.9f", "%10.5f", "% 10.5f", "%+22.9f", "%+4.9f", "%01.3f", "%4f", "%3.1f", "%3.2f", "%.0f", "%f", "%-8.8f", "%-9.9f", NULL }; double fp_nums[] = { 6442452944.1234, -1.5, 134.21, 91340.2, 341.1234, 203.9, 0.96, 0.996, 0.9996, 1.996, 4.136, 5.030201, 0.00205, /* END LIST */ 0}; char *int_fmt[] = { "%-1.5d", "%1.5d", "%123.9d", "%5.5d", "%10.5d", "% 10.5d", "%+22.33d", "%01.3d", "%4d", "%d", NULL }; long int_nums[] = { -1, 134, 91340, 341, 0203, 0, 1234567890}; char *str_fmt[] = { "%10.5s", "%-10.5s", "%5.10s", "%-5.10s", "%10.1s", "%0.10s", "%10.0s", "%1.10s", "%s", "%.1s", "%.10s", "%10s", NULL }; char *str_vals[] = {"hello", "a", "", "a longer string", NULL}; int x, y; int fail = 0; int num = 0; int l1, l2; printf ("Testing snprintf format codes against system sprintf...\n"); for (x = 0; fp_fmt[x] ; x++) { for (y = 0; fp_nums[y] != 0 ; y++) { buf1[0] = buf2[0] = '\0'; l1 = snprintf(NULL, 0, fp_fmt[x], fp_nums[y]); l2 = snprintf(buf1, sizeof(buf1), fp_fmt[x], fp_nums[y]); sprintf (buf2, fp_fmt[x], fp_nums[y]); buf1[1023] = buf1[1023] = '\0'; if (strcmp (buf1, buf2) || (l1 != l2)) { printf("snprintf doesn't match Format: %s\n\tsnprintf(%d) = [%s]\n\t sprintf(%d) = [%s]\n", fp_fmt[x], l1, buf1, l2, buf2); fail++; } num++; } } for (x = 0; int_fmt[x] ; x++) { for (y = 0; int_nums[y] != 0 ; y++) { buf1[0] = buf2[0] = '\0'; l1 = snprintf(NULL, 0, int_fmt[x], int_nums[y]); l2 = snprintf(buf1, sizeof(buf1), int_fmt[x], int_nums[y]); sprintf (buf2, int_fmt[x], int_nums[y]); buf1[1023] = buf1[1023] = '\0'; if (strcmp (buf1, buf2) || (l1 != l2)) { printf("snprintf doesn't match Format: %s\n\tsnprintf(%d) = [%s]\n\t sprintf(%d) = [%s]\n", int_fmt[x], l1, buf1, l2, buf2); fail++; } num++; } } for (x = 0; str_fmt[x] ; x++) { for (y = 0; str_vals[y] != 0 ; y++) { buf1[0] = buf2[0] = '\0'; l1 = snprintf(NULL, 0, str_fmt[x], str_vals[y]); l2 = snprintf(buf1, sizeof(buf1), str_fmt[x], str_vals[y]); sprintf (buf2, str_fmt[x], str_vals[y]); buf1[1023] = buf1[1023] = '\0'; if (strcmp (buf1, buf2) || (l1 != l2)) { printf("snprintf doesn't match Format: %s\n\tsnprintf(%d) = [%s]\n\t sprintf(%d) = [%s]\n", str_fmt[x], l1, buf1, l2, buf2); fail++; } num++; } } #define BUFSZ 2048 buf1[0] = buf2[0] = '\0'; if ((buf3 = malloc(BUFSZ)) == NULL) { fail++; } else { num++; memset(buf3, 'a', BUFSZ); snprintf(buf1, sizeof(buf1), "%.*s", 1, buf3); buf1[1023] = '\0'; if (strcmp(buf1, "a") != 0) { printf("length limit buf1 '%s' expected 'a'\n", buf1); fail++; } } buf1[0] = buf2[0] = '\0'; l1 = snprintf(buf1, sizeof(buf1), "%4$*1$d %2$s %3$*1$.*1$f", 3, "pos test", 12.3456, 9); l2 = sprintf(buf2, "%4$*1$d %2$s %3$*1$.*1$f", 3, "pos test", 12.3456, 9); buf1[1023] = buf1[1023] = '\0'; if (strcmp(buf1, buf2) || (l1 != l2)) { printf("snprintf doesn't match Format: %s\n\tsnprintf(%d) = [%s]\n\t sprintf(%d) = [%s]\n", "%4$*1$d %2$s %3$*1$.*1$f", l1, buf1, l2, buf2); fail++; } buf1[0] = buf2[0] = '\0'; l1 = snprintf(buf1, sizeof(buf1), "%4$*4$d %2$s %3$*4$.*4$f", 3, "pos test", 12.3456, 9); l2 = sprintf(buf2, "%4$*4$d %2$s %3$*4$.*4$f", 3, "pos test", 12.3456, 9); buf1[1023] = buf1[1023] = '\0'; if (strcmp(buf1, buf2)) { printf("snprintf doesn't match Format: %s\n\tsnprintf(%d) = [%s]\n\t sprintf(%d) = [%s]\n", "%4$*1$d %2$s %3$*1$.*1$f", l1, buf1, l2, buf2); fail++; } #if 0 buf1[0] = buf2[0] = '\0'; l1 = snprintf(buf1, sizeof(buf1), "%lld", (LLONG)1234567890); l2 = sprintf(buf2, "%lld", (LLONG)1234567890); buf1[1023] = buf1[1023] = '\0'; if (strcmp(buf1, buf2)) { printf("snprintf doesn't match Format: %s\n\tsnprintf(%d) = [%s]\n\t sprintf(%d) = [%s]\n", "%lld", l1, buf1, l2, buf2); fail++; } buf1[0] = buf2[0] = '\0'; l1 = snprintf(buf1, sizeof(buf1), "%Lf", (LDOUBLE)890.1234567890123); l2 = sprintf(buf2, "%Lf", (LDOUBLE)890.1234567890123); buf1[1023] = buf1[1023] = '\0'; if (strcmp(buf1, buf2)) { printf("snprintf doesn't match Format: %s\n\tsnprintf(%d) = [%s]\n\t sprintf(%d) = [%s]\n", "%Lf", l1, buf1, l2, buf2); fail++; } #endif printf ("%d tests failed out of %d.\n", fail, num); printf("seeing how many digits we support\n"); { double v0 = 0.12345678901234567890123456789012345678901; for (x=0; x<100; x++) { double p = pow(10, x); double r = v0*p; snprintf(buf1, sizeof(buf1), "%1.1f", r); sprintf(buf2, "%1.1f", r); if (strcmp(buf1, buf2)) { printf("we seem to support %d digits\n", x-1); break; } } } return 0; } #endif /* TEST_SNPRINTF */ nrpe-2.15/src/utils.c000066400000000000000000000235751221237212100145050ustar00rootroot00000000000000/**************************************************************************** * * UTILS.C - NRPE Utility Functions * * License: GPL * Copyright (c) 1999-2006 Ethan Galstad (nagios@nagios.org) * * Last Modified: 12-11-2006 * * Description: * * This file contains common network functions used in nrpe and check_nrpe. * * License Information: * * 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 * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ****************************************************************************/ #include "../include/common.h" #include "../include/utils.h" #ifndef NI_MAXSERV #define NI_MAXSERV 32 #endif #ifndef NI_MAXHOST #define NI_MAXHOST 1025 #endif static unsigned long crc32_table[256]; /* build the crc table - must be called before calculating the crc value */ void generate_crc32_table(void){ unsigned long crc, poly; int i, j; poly=0xEDB88320L; for(i=0;i<256;i++){ crc=i; for(j=8;j>0;j--){ if(crc & 1) crc=(crc>>1)^poly; else crc>>=1; } crc32_table[i]=crc; } return; } /* calculates the CRC 32 value for a buffer */ unsigned long calculate_crc32(char *buffer, int buffer_size){ register unsigned long crc; int this_char; int current_index; crc=0xFFFFFFFF; for(current_index=0;current_index>8) & 0x00FFFFFF) ^ crc32_table[(crc ^ this_char) & 0xFF]; } return (crc ^ 0xFFFFFFFF); } /* fill a buffer with semi-random data */ void randomize_buffer(char *buffer,int buffer_size){ FILE *fp; int x; int seed; /**** FILL BUFFER WITH RANDOM ALPHA-NUMERIC CHARACTERS ****/ /*************************************************************** Only use alpha-numeric characters becase plugins usually only generate numbers and letters in their output. We want the buffer to contain the same set of characters as plugins, so its harder to distinguish where the real output ends and the rest of the buffer (padded randomly) starts. ***************************************************************/ /* try to get seed value from /dev/urandom, as its a better source of entropy */ fp=fopen("/dev/urandom","r"); if(fp!=NULL){ seed=fgetc(fp); fclose(fp); } /* else fallback to using the current time as the seed */ else seed=(int)time(NULL); srand(seed); for(x=0;xai_next) { if (ai->ai_family != AF_INET && ai->ai_family != AF_INET6) continue; if (getnameinfo(ai->ai_addr, ai->ai_addrlen, ntop, sizeof(ntop), strport, sizeof(strport), NI_NUMERICHOST|NI_NUMERICSERV) != 0) { fprintf(stderr, "my_connect: getnameinfo failed\n"); continue; } /* Create a socket for connecting. */ sock = my_create_socket(ai, bind_address); if (sock < 0) { /* Any error is already output */ continue; } if (connect(sock, ai->ai_addr, ai->ai_addrlen) >= 0) { /* Successful connection. */ memcpy(hostaddr, ai->ai_addr, ai->ai_addrlen); break; } else { fprintf(stderr,"connect to address %s port %s: %s\n", ntop, strport, strerror(errno)); close(sock); sock = -1; } } freeaddrinfo(aitop); /* Return failure if we didn't get a successful connection. */ if (sock == -1) { fprintf(stderr, "connect to host %s port %s: %s", host, strport, strerror(errno)); return -1; } return sock; } /* Creates a socket for the connection. */ int my_create_socket(struct addrinfo *ai, const char *bind_address) { int sock, gaierr; struct addrinfo hints, *res; sock = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol); if (sock < 0) fprintf(stderr,"socket: %.100s\n", strerror(errno)); /* Bind the socket to an alternative local IP address */ if (bind_address == NULL) return sock; memset(&hints, 0, sizeof(hints)); hints.ai_family = ai->ai_family; hints.ai_socktype = ai->ai_socktype; hints.ai_protocol = ai->ai_protocol; hints.ai_flags = AI_PASSIVE; gaierr = getaddrinfo(bind_address, NULL, &hints, &res); if(gaierr) { fprintf(stderr, "getaddrinfo: %s: %s\n", bind_address, gai_strerror(gaierr)); close(sock); return -1; } if(bind(sock, res->ai_addr, res->ai_addrlen) < 0) { fprintf(stderr, "bind: %s: %s\n", bind_address, strerror(errno)); close(sock); freeaddrinfo(res); return -1; } freeaddrinfo(res); return sock; } void add_listen_addr(struct addrinfo **listen_addrs, int address_family, char *addr, int port) { struct addrinfo hints, *ai, *aitop; char strport[NI_MAXSERV]; int gaierr; memset(&hints, 0, sizeof(hints)); hints.ai_family = address_family; hints.ai_socktype = SOCK_STREAM; hints.ai_flags = (addr == NULL) ? AI_PASSIVE : 0; snprintf(strport, sizeof strport, "%d", port); if((gaierr = getaddrinfo(addr, strport, &hints, &aitop)) != 0) { syslog(LOG_ERR,"bad addr or host: %s (%s)\n", addr ? addr : "", gai_strerror(gaierr)); exit(1); } for(ai = aitop; ai->ai_next; ai = ai->ai_next); ai->ai_next = *listen_addrs; *listen_addrs = aitop; } void strip(char *buffer){ int x; int index; for(x=strlen(buffer);x>=1;x--){ index=x-1; if(buffer[index]==' ' || buffer[index]=='\r' || buffer[index]=='\n' || buffer[index]=='\t') buffer[index]='\x0'; else break; } return; } /* sends all data - thanks to Beej's Guide to Network Programming */ int sendall(int s, char *buf, int *len){ int total=0; int bytesleft=*len; int n=0; /* send all the data */ while(total<*len){ /* send some data */ n=send(s,buf+total,bytesleft,0); /* break on error */ if(n==-1) break; /* apply bytes we sent */ total+=n; bytesleft-=n; } /* return number of bytes actually send here */ *len=total; /* return -1 on failure, 0 on success */ return n==-1?-1:0; } /* receives all data - modelled after sendall() */ int recvall(int s, char *buf, int *len, int timeout){ int total=0; int bytesleft=*len; int n=0; time_t start_time; time_t current_time; /* clear the receive buffer */ bzero(buf,*len); time(&start_time); /* receive all data */ while(total<*len){ /* receive some data */ n=recv(s,buf+total,bytesleft,0); /* no data has arrived yet (non-blocking socket) */ if(n==-1 && errno==EAGAIN){ time(¤t_time); if(current_time-start_time>timeout) break; sleep(1); continue; } /* receive error or client disconnect */ else if(n<=0) break; /* apply bytes we received */ total+=n; bytesleft-=n; } /* return number of bytes actually received here */ *len=total; /* return <=0 on failure, bytes received on success */ return (n<=0)?n:total; } /* fixes compiler problems under Solaris, since strsep() isn't included */ /* this code is taken from the glibc source */ char *my_strsep (char **stringp, const char *delim){ char *begin, *end; begin = *stringp; if (begin == NULL) return NULL; /* A frequent case is when the delimiter string contains only one character. Here we don't need to call the expensive `strpbrk' function and instead work using `strchr'. */ if(delim[0]=='\0' || delim[1]=='\0'){ char ch = delim[0]; if(ch=='\0') end=NULL; else{ if(*begin==ch) end=begin; else end=strchr(begin+1,ch); } } else /* Find the end of the token. */ end = strpbrk (begin, delim); if(end){ /* Terminate the token and set *STRINGP past NUL character. */ *end++='\0'; *stringp=end; } else /* No more delimiters; this is the last token. */ *stringp=NULL; return begin; } /* show license */ void display_license(void){ printf("This program is released under the GPL (see below) with the additional\n"); printf("exemption that compiling, linking, and/or using OpenSSL is allowed.\n\n"); printf("This program is free software; you can redistribute it and/or modify\n"); printf("it under the terms of the GNU General Public License as published by\n"); printf("the Free Software Foundation; either version 2 of the License, or\n"); printf("(at your option) any later version.\n\n"); printf("This program is distributed in the hope that it will be useful,\n"); printf("but WITHOUT ANY WARRANTY; without even the implied warranty of\n"); printf("MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"); printf("GNU General Public License for more details.\n\n"); printf("You should have received a copy of the GNU General Public License\n"); printf("along with this program; if not, write to the Free Software\n"); printf("Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n\n"); return; } nrpe-2.15/subst.in000077500000000000000000000032511221237212100140720ustar00rootroot00000000000000#!/usr/bin/perl -w # This script finishes the job started by config.status by replacing the variables # of the form ${...} which were inserted into the file(s) by config.status. # Read all files with a single read statement $/ = undef; # List of variables to replace my %configvars = ( "prefix" => { "value" => '@prefix@'}, "exec_prefix" => { "value" => '@exec_prefix@'}, ); sub replace_var { my $filep = shift; my $cvp = shift; my $varname = shift; return if( $cvp->{ $varname}->{ "replaced"}); if( defined( $cvp->{ $varname}->{ "dependency"})) { if( !$cvp->{ $cvp->{ $varname}->{ "dependency"}}->{ "replaced"}) { # If a dependency exists and it is not already replaced, replace it replace_var( $filep, $cvp, $cvp->{ $varname}->{ "dependency"}); } } my $replacement = $cvp->{ $varname}->{ "value"}; $$filep =~ s/\${$varname}/$replacement/g; $cvp->{ $varname}->{ "replaced"} = 1; } # Figure out the dependencies. foreach my $cv ( keys %configvars ) { if( $configvars{ $cv}->{ "value"} =~ /\${([^}]+)}/) { my $dependency = $1; if( exists( $configvars{ $dependency})) { $configvars{ $dependency}->{ "dependency"} = $cv; } $configvars{ $cv}->{ "replaced"} = 0; } } # Process each file while ($f = shift @ARGV) { # Read in the file open( FILE, $f) || die "Unable to open $f for reading"; my $file = ; close( FILE) || die "Unable to close $f after reading"; # Replace each of the variables we know about foreach $cv ( keys %configvars ) { replace_var( \$file, \%configvars, $cv); } # Write out the replacements open( FILE, ">$f") || die "Unable to open $f for writing"; print FILE $file; close( FILE) || die "Unable to close $f after writing"; } nrpe-2.15/update-version000077500000000000000000000055711221237212100153010ustar00rootroot00000000000000#!/bin/sh # Make sure autoconf is installed and is the correct version min_autoconf_major=2 min_autoconf_minor=59 autoconf_error="Autoconf version $min_autoconf_major.$min_autoconf_minor or later must be installed to run this script." autoconf_version=`(autoconf -V 2> /dev/null) |\ grep "^autoconf (GNU Autoconf)" | gawk '{print $NF}'` if [ "$autoconf_version" != "" ] ; then autoconf_major=`echo $autoconf_version | gawk -F '.' '{print $1}'` autoconf_minor=`echo $autoconf_version | gawk -F '.' '{print $2}'` if [ $autoconf_major -lt $min_autoconf_major -o $autoconf_minor -lt $min_autoconf_minor ] ; then echo $autoconf_error exit 1 fi else echo $autoconf_error exit 1 fi # Get date (two formats) if [ -n "$2" ]; then LONGDATE=`date -d "$2" "+%B %d, %Y"` SHORTDATE=`date -d "$2" "+%m-%d-%Y"` else LONGDATE=`date "+%B %d, %Y"` SHORTDATE=`date "+%m-%d-%Y"` fi # Current version number CURRENTVERSION=2.15 # Last date LASTDATE=09-06-2013 if [ "x$1" = "x" ] then echo "Usage: $0 [revision date]" echo "" echo "Run this script with the name of the new version (i.e \"2.6\") to" echo "update version number and modification date in files." echo "Use the \"newdate\" argument if you want to keep the current version" echo "number and just update the modification date." echo "" echo "Current version=$CURRENTVERSION" echo "Current Modification date=$LASTDATE" echo "" exit 1 fi newversion=$1 if [ "x$newversion" = "xnewdate" ] then newversion=$CURRENTVERSION fi # Update version number and release date in common code perl -i -p -e "s/VERSION \".*\"/VERSION \"$1\"/;" include/common.h perl -i -p -e "s/MODIFICATION_DATE \".*\"/MODIFICATION_DATE \"$SHORTDATE\"/;" include/common.h perl -i -p -e "s/Last Modified: [0-9].*/Last Modified: $SHORTDATE/;" include/common.h # Update version number and release date in main code perl -i -p -e "s/Last Modified: [0-9].*/Last Modified: $SHORTDATE/;" src/nrpe.c perl -i -p -e "s/Last Modified: [0-9].*/Last Modified: $SHORTDATE/;" src/check_nrpe.c # Update version number and release date in configure.in perl -i -p -e "if( /^AC_INIT/) { s/$CURRENTVERSION/$1/; }" configure.in perl -i -p -e "s/PKG_VERSION=.*/PKG_VERSION=\"$1\"/;" configure.in perl -i -p -e "s/PKG_REL_DATE=.*\"/PKG_REL_DATE=\"$SHORTDATE\"/;" configure.in # Run autoconf to update configure (this is easier than updating every instance # of the version number in configure) autoconf # Update RPM spec file with version number perl -i -p -e "s/%define version .*/%define version $1/;" nrpe.spec perl -i -p -e "if( /\%define _docdir/) { s/$CURRENTVERSION/$1/; }" nrpe.spec # Update this file with version number and last date perl -i -p -e "s/^CURRENTVERSION=.*/CURRENTVERSION=$newversion/;" update-version perl -i -p -e "s/^LASTDATE=.*/LASTDATE=$SHORTDATE/;" update-version