rsyslog-module-gcrypt-8.33.1-lp150.2.6.1 4>$  Ap\K(/=„&)s\fB)gPnd9EP^GϪ/2n\\棔gD]}ɻvAkXpQEv̭#h$8;գ% g&@XWof\Р,ɲ,C S5(-2{>^iĹ.Wes : fA>p>?d + d (,?Hj     R T\fp(89t:FGHIXY\]^bcdOeTfWlYulvtwxyz(8<BCrsyslog-module-gcrypt8.33.1lp150.2.6.1Libgcrypt log file encryption support module for rsyslogRsyslog is an enhanced multi-threaded syslog daemon. See rsyslog package. This module provides log file encryption support using libgcrypt and a rsgtutil utility to manage the files.\K(build70XopenSUSE Leap 15.0openSUSE(GPL-3.0-or-later AND Apache-2.0)http://bugs.opensuse.orgSystem/Daemonshttp://www.rsyslog.com/linuxx86_64kȁ\K(\K(9412b9a2640d9290755b24e5e385225189b3a1e210fec7aa60fc3d768bce58e71e5bc293c81ad7691c4e33895aa7fbee84c3e03a64a4335c24096d6ac21dc363rootrootrootrootrsyslog-8.33.1-lp150.2.6.1.src.rpmrsyslog-module-gcryptrsyslog-module-gcrypt(x86-64)@@@@@@@@@@@@    libc.so.6()(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.17)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.3)(64bit)libc.so.6(GLIBC_2.3.2)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libc.so.6(GLIBC_2.7)(64bit)libc.so.6(GLIBC_2.8)(64bit)libgcrypt.so.20()(64bit)libgcrypt.so.20(GCRYPT_1.6)(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)rsyslog3.0.4-14.6.0-14.0-15.2-18.33.14.14.1[O+[+@Z=Z@Z@Zk@ZaZ)-@Z@Z@Z YY}@Y5GYX-XO@XX@X{d@XN@XD@W@WRWVV@VHVVVV=VUݪ@U@U[%UB@U>$U4@U+U#T@T@TLTG@TBV@T/@T+T*@T @TwS0S@S@Si@S @Sy@SwO@SsZSsZSsZS4S*@S*@RRUR=RSRz/@Rw@RrF@RnQR1Q{Qֵ@QQőQQQQ@Q@Q@Qq1Qq1Qm=@Qj@QU@Q#i@PDP@P[PPe@Pe@PPPpP6@PP@PPoP@P~P~P`K@P\VP[@P[@PWPE@P@@P;a@OO;O@OOB5OB5Ng\NTNNP@NNP@N7NN7@N7@N7@N7@NM@Mߒ@M@M@M@MMMMM2@MIG@M8#LLL@L K#@KKŮ@K\JJ^@J IcIcThomas.Blume@suse.comThomas.Blume@suse.comastieger@suse.comkukuk@suse.deThomas.Blume@suse.comastieger@suse.comrgerhards@adiscon.comkukuk@suse.derbrown@suse.comastieger@suse.comastieger@suse.comastieger@suse.commichael@stroeder.comtchvatal@suse.comdziolkowski@suse.comastieger@suse.comastieger@suse.comastieger@suse.comndas@suse.comastieger@suse.comdimstar@opensuse.orgastieger@suse.comastieger@suse.comastieger@suse.comastieger@suse.comastieger@suse.comastieger@suse.commrueckert@suse.deastieger@suse.comastieger@suse.comastieger@suse.comastieger@suse.comastieger@suse.comastieger@suse.comastieger@suse.comjengelh@inai.dejsegitz@novell.comjsegitz@novell.comastieger@suse.comastieger@suse.comastieger@suse.comastieger@suse.comandreas.stieger@gmx.deheinemannj66@gmail.comLed andreas.stieger@gmx.demt@suse.demt@suse.deandreas.stieger@gmx.dewagner-thomas@gmx.atmt@suse.demrueckert@suse.demrueckert@suse.dejsegitz@suse.comandreas.stieger@gmx.demt@suse.comheinemannj66@gmail.comheinemannj66@gmail.comheinemannj66@gmail.comheinemannj66@gmail.comandreas.stieger@gmx.deandreas.stieger@gmx.deandreas.stieger@gmx.deandreas.stieger@gmx.demt@suse.deandreas.stieger@gmx.deandreas.stieger@gmx.demt@suse.deandreas.stieger@gmx.deandreas.stieger@gmx.deandreas.stieger@gmx.deandreas.stieger@gmx.deandreas.stieger@gmx.demt@suse.demt@suse.deandreas.stieger@gmx.decrrodriguez@opensuse.orgmt@suse.demt@suse.demt@suse.demt@suse.demt@suse.deandreas.stieger@gmx.demt@suse.demt@suse.decrrodriguez@opensuse.orgvcizek@suse.commt@suse.demt@suse.deandreas.stieger@gmx.demt@suse.commt@suse.commrueckert@suse.demrueckert@suse.demrueckert@suse.demt@suse.commt@suse.commt@suse.commt@suse.commt@suse.comtittiatcoke@gmail.commt@suse.commt@suse.comfcrozat@suse.commt@suse.comandreas.stieger@gmx.demt@suse.comandreas.stieger@gmx.deandreas.stieger@gmx.demt@suse.comandreas.stieger@gmx.deandreas.stieger@gmx.deandreas.stieger@gmx.deandreas.stieger@gmx.deandreas.stieger@gmx.demt@suse.commt@suse.commt@suse.commt@suse.commrueckert@suse.demt@suse.demrueckert@suse.decrrodriguez@opensuse.orgaj@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demt@suse.deaj@suse.demt@suse.demrueckert@suse.deidoenmez@novell.commrueckert@suse.demt@suse.demrueckert@suse.demrueckert@suse.demt@suse.demt@suse.demt@suse.demt@suse.demt@suse.demt@suse.decoolo@novell.comchris@computersalat.demt@suse.demt@suse.demrueckert@suse.demt@suse.demt@suse.demt@suse.demt@suse.demt@suse.demt@suse.de- remove references to obsolete SYSLOG_REQUIRES_NETWORK variable (bsc#1101642)- fix CVE-2015-3243 rsyslog: some log files are created world-readable (bsc#935393)- rsyslog 8.33.1: * devcontainer: use some more sensible defaults * auto-detect if running inside a container (as pid 1) * config: add include() script object * template: add option to generate json "container" * core/template: add format jsonf to constant template entries * config: add ability to disable config parameter ("config.enable") * script: permit to use environment variables during configuration * new global config parameter "shutdown.enable.ctlc" * config optimizer: detect totally empty "if" statements and optimize them out * template: constant entry can now also be formatted as json field * omstdout: support for new-style configuration parameters added * core: set TZ on startup if not already set * imjournal bugfix: file handle leak during journal rotation * lmsig_ksils12 bugfix: dirOwner and dirGroup config was not respected * script bugfix: replace() function worked incorrectly in some cases * core bugfix: misadressing in external command parser * core bugfix: small memory leak in external command parser * core bugfix: string not properly terminated when RFC5424 MSGID is used * bugfix: strndup() compatibility layer func copies too much - the upstream systemd unit file was changed to no longer write the rsyslog pid, as it is no longer required for tracking under systemd (-iNONE). Adjust rsyslog-unit.patch to match.- Use %license instead of %doc [bsc#1082318]- fix includes for apparmor profile (bsc#1080238)- rsyslog 8.32.0 * libfastjson 0.99.8 required * libczmq >= 3.0.2 is now required for omczmq * libcurl is now needed for rsyslog core * rsyslogd: add capability to specify that no pid file shall be written * core improvements and bug fixes * RainerScript improvements and bug fixes * build fixes, including gcc7 fixes drop 0001-imgssapi-fix-compiler-warnings.patch * various bug fixes in multiple modules- remove build dependency on libee- Disable news by default, we don't need to clobber all systems with this for the very few remaining news servers- Replace references to /var/adm/fillup-templates with new %_fillupdir macro (boo#1069468)- Ensure user "news" exists - bsc#1068678- rsyslog 8.30.0 * changed behaviour: all variables are now case-insensitive by default * core: handle (JSON) variables in case-insensitive way * imjournal: made switching to persistent journal in runtime possible * mmanon: complete refactor and enhancements * imfile: add "fileoffset" metadata * RainerScript: add ltrim and rtrim functions * core: report module name when suspending action * core: add ability to limit number of error messages going to stderr * tcpsrv subsystem: improvate clarity of some error messages * imptcp: include module name in error msg * imtcp: include module name in error msg * tls improvement: better error message if certificate file cannot be read * omfwd: slightly improved error messages during config parsing * ommysql improvements * ommysql bugfix: do not duplicate entries on failed transaction * imtcp bugfix: parameter priorityString was ignored * template/bugfix: invalid template option conflict detection * core/actions: fix handling of data-induced errors * core/action bugfix: no "action suspended" message during retry processing * core/ratelimit bugfix: race can lead to segfault * core bugfix: rsyslog aborts if errmsg is generated in early startup * core bugfix: informational messages was logged with error severity * core bugfix: --enable-debugless build was broken * queue bugfix: file write error message was incorrect * omrelp bugfix: segfault when rebindinterval parameter is used * omkafka bugfix: invalid load of failedmsg file on startup if disabled * kafka bugfix: problem on invalid kafka configuration values * imudp bugfix: UDP oversize message not properly handled * core bugfix: memory corruption during configuration parsing * core bugfix: race on worker thread termination during shutdown * omelasticsearch: avoid ES5 warnings while sending json in bulkmode * omelasticsearch bugfix: incompatibility with newer ElasticSearch version * imptcp bugfix: invalid mutex addressing on some platforms * imptcp bugfix: do not accept missing port in legacy listener definition - build requirements: * libfastjson 0.99.7 is now mandatory * libsystemd-journal >= 234 is now recommended - packaging: * add upstream build fix 0001-imgssapi-fix-compiler-warnings.patch- rsyslog 8.29.0: * imptcp: add experimental parameter "multiline" * imptcp: framing-related error messages now also indicate remote peer * imtcp: framing-related error messages now also indicate remote peer * imptcp: add session statistics conunter * imtcp: add ability to specify GnuTLS priority string * impstats: add new ressoure counter "openfiles" * pmnormalize: new parser module * core/queue: provide informational messages on thread startup and shutdown * omfwd/udp: improve error reporting, depricate maxerrormessages parameter * core: add parameters debug.file and debug.whitelist * core/net.c: improve UDP socket creation error messages * omfwd/udp: add "udp.sendbuf" parameter * core: make rsyslog internal message rate-limiter configurable * omelasticsearch bugfixes and changed ES5 API support + avoid 404 during health check + avoid ES5 warnings while sending json + bugfix for memomry leak while writing error file * imfile bugfix: wildcard detection issue on path wildcards * omfwd bugfix: always give reason for suspension * omfwd bugfix: configured compression level was not properly used * imptcp bugfix: potential socket leak on session shutdown * omfwd/omudpspoof bugfix: switch udp client sockets to nonblocking mode * imklog: fix permitnonkernelfacility not working * impstats bugfix: impstats does not handle HUP * core bugfix: segfault after configuration errors * core/queue bugfixes * lmsig_ksi: removed pre-KSI_LS12 componentsVersion 8.28.0 [v8-stable] 2017-06-27 * omfwd: add parameter "tcp_frameDelimiter" * omkafka: large refactor of kafka subsystem * imfile: improved handling of atomically renamed file (w/ wildcards) * imfile: add capability to truncate oversize messages or split into multiple * mmdblookup fixes and extensions * bugfix: fixed multiple memory leaks * imptcp: add new parameter "flowControl" * imrelp: add "maxDataSize" config parameter * multiple modules: gtls: improve error if certificate file can't be opened * omsnare: allow different tab escapes * omelasticsearch: converted to use libfastjson instead of json-c * imjournal: _PID fallback * added fallback for _PID proprety when SYSLOG_PID is not available * introduced new option "usepid" which sets which property should rsyslog use, it has 3 states system|syslog|both, default is both * deprecated "usepidfromsystem" option, still can be used and override the "usepid" * it is possible to revert previous default with usepid="syslog" * multiple modules: add better error messages when regcomp is failing * omhiredis: fix build warnings * imfile bugfix: files mv-ed in into directory were not handled * omprog bugfix: execve() incorrectly called * imfile bugfix: multiline timeout did not work if state file exists * lmsig_ksi-ls12 bugfix: build problems on some platforms * core bugfix: invalid object type assertion * regression fix: local hostname was not always detected properly... * bugfix: format security issues in zmq3 modules (bsc#1051798) * bugfix build system: add libksi only to those binaries that need it * bugfix KSI ls12 components: invalid tree height calculation- Drop module-guardtime package * Upstream libgt died and it does not work with new opensslVersion 8.27.0 [v8-stable] 2017-05-16 - imkafka: add module - imptcp enhancements: * optionally emit an error message if incoming messages are truncated * optionally emit connection tracking message (on connection create and close) * add "maxFrameSize" parameter to specify the maximum size permitted in octet-counted mode * add parameter "discardTruncatedMsg" to permit truncation of oversize messages * improve octect-counted mode detection: if the octet count is larger then the set frame size (or overly large in general), it is now assumed that octet-stuffing mode is used. This probably solves a number of issues seen in real deployments. - imtcp enhancements: * add parameter "discardTruncatedMsg" to permit truncation of oversize messages * add "maxFrameSize" parameter to specify the maximum size permitted in octet-counted mode - imfile bugfix: "file not found error" repeatedly being reported for configured non-existing file. In polling mode, this message appeared once in each polling cycle, causing a potentially very large amout of error messages. Note that they were usually emitted too infrequently to trigger the error message rate limiter, albeit often enough to be a major annoance. - imfile: in inotify mode, add error message if configured file cannot be found - imfile: add parameter "fileNotFoundError" to optinally disable "file not found" error messages - core: replaced gethostbyname() with getaddrinfo() call Gethostbyname() is generally considered obsolete, is not reentrant and cannot really work with IPv6. Changed the only place in rsyslog where this call remained. Thanks to github user jvymazal for the patch - omkafka: add "origin" field to stats output See also https://github.com/rsyslog/rsyslog/issues/1508 Thanks to Yury Bushmelev for providing the patch. - imuxsock: rate-limiting also uses process name both for the actual limit procesing as well as warning messages emitted see also https://github.com/rsyslog/rsyslog/pull/1520 Thanks to github user jvymazal for the patch - Added new module: KSI log signing ver. 1.2 (lmsig_ksi_ls12) - rsylsog base functionality now builds on osx (Mac) Thanks to github user hdatma for his help in getting this done. - build now works on solaris again - imfile: fix cross-platform build issue see also https://github.com/rsyslog/rsyslog/issues/1494 Thanks to Felix Janda for bug report and solution suggestion. - bugfix core: segfault when no parser could parse message- rsyslog 8.26.0: * liblognorm 2.0.3 is required for mmnormalize * enable internal error messages at all times * core: added logging name of source of rate-limited messages * omfwd: omfwd: add support for network namespaces * imrelp: honor input name if provided when submitting to impstats * imptcp: add ability to set owner/group/access perms for uds * mmnormalize: add ability to load a rulebase from action() parameter * pmrfc3164 improvements + permit to ignore leading space in MSG + permit to use at-sign in host names + permit to require tag to end in colon * add new global parameter "umask" * core: make use of -T command line option more secure * omfile: add error if both file and dynafile are set * bugfix: build problem on MacOS (not a supported platform) * regression fix: in 8.25, str2num() returned error on empty string * bugfix omsnmp: improper handling of new-style configuration parameters * bugfix: rsyslog identifies itself as "liblogging-stdlog" in internal messages * bugfix imfile: wrong files were monitored when using multiple imfile inputs * bugfix: setting net.aclResolveHostname/net.acladdhostnameonfail segfaults * bugfix: immark emitted error messages with text "imuxsock" * bugfix tcpflood: build failed if RELP was disabled * fix gcc6 compiler warnings * the output module array passing interface has been removed- use 8.25.0 documentation tarball- rsyslog 8.25.0: * imfile: add support for wildcards in directory names * add new global option "parser.PermitSlashInProgramname" * mmdblookup: fix build issues, code cleanup * improved debug output for queue corruption cases * an error message is now displayed when a directory owner cannot be set * rainerscript: add new function ipv42num * rainerscript: add new function num2ipv4 * bugfix: ratelimiter does not work correctly is time is set back * core: fix potential message loss in old-style transactional interface * bugfix queue subsystem: queue corrupted if certain msg props are used * bugfix imjournal: fixed situation when time goes backwards * bugfix: bFlushOnTxEnd == 0 not honored when writing w/o async writer * bugfix core: str2num mishandling empty strings * bugfix rainerscript: set/unset statement do not check variable name validity * bugfix mmrm1stspace: last character of rawmsg property was doubled * bugfix imtcp: fix very small (cosmetic) memory leak * However, the leak breaks memleak checks in the testbench.- sync bug and fate numbers from IBS changes.- rsyslog 8.24.0(fate#320546): * mmrm1stspace: new module; removes first space in MSG if present * KSI signature provider: file permissions can now be specified * omzmq: new features * when the hostname is empty, we now use "localhost-empty-hostname" * omelasticsearch: remove "asyncrepl" config parameter * omfwd: Add support for bind-to-device (see below on same for imudp) * imudp: Add support for bind-to-device * imudp: limit rcvbufsize parameter to max 1GiB * rainerscript: implement new "call_indirect" statement * bugfix imjournal: make state file handling more robust * bugfix core: lookup table reload was not properly integrated * bugfix core: potential dealock on shutdown * bugfix ommongodb: did not work in v8 due to invalid indirection * bugfix ommongodb: fix tryResume handling * bugfix omfwd: retry processing was not done correctly, could stall * bugfix imuxsock: segfault non shutdown when $OmitLocalLogging is on - contributed modules not enabled due to build issues: * mmdblookup: new maxminddb lookup message modify plugin- Replace pkgconfig(libsystemd-journal) BuildRequires with pkgconfig(libsystemd): the sub-libraries have been merged into libsystemd since 209 and have ultimately been removed since 230.- rsyslog 8.23.0: * requiring libfastjson 0.99.3 * KSI signatures: removed SHA2-224 hash algorithm * imfile: new timeout feature for multi-line reads * omfile: improve robustness against network file system failures * pmaixforwardedfrom: support for AIX syslogd -s option * omelasticsearch: add ability to specify max http request size * omelasticsearch: high availability addressing of ElasticSearch cluster * omelasticsearch: make compatible with ElasticSearch 2.x and 5.x * omhiredis: add dynakey attribute. * omtcl: new contributed module * RainerScript: provide a capability to set environment variables * lookup tables: improved error checking * queue subsystem: add configuration parameter "queue.samplinginterval" * various bug fixes * rsgtutil: option to specify KSI publications file certificate constraints - includes changes from 8.22.0: * ompgsql: add template support * generate somewhat better error message on config file syntax error - includes changes from 8.21.0: * CHANGE OF BEHAVIOUR: by default, internal messages are no longer logged via the internal bridge to rsyslog but via the syslog() API call [either directly or via liblogging). For the typical single-rsyslogd-instance installation this is mostly unnoticable (except for some additional latency). If multiple instances are run, only the "main" (the one processing system log messages) will see all messages. To return to the old behaviour, do either of those two: 1) add in rsyslog.conf: global(processInternalMessages="on") 2) export the environment variable RSYSLOG_DFLT_LOG_INTERNAL=1 This will set a new default - the value can still be overwritten via rsyslog.conf (method 1). Note that the environment variable must be set in your **startup script**. For more information, please visit http://www.rsyslog.com/rsyslog-error-reporting-improved/ * slightly improved TLS syslog error messages * queue subsystem: improved robustness- rsyslog 8.20.0: * omrelp: add configurable connection timeout * pmrfc3164: add support for slashes in hostname * bugfix omfile: handle chown() failure correctly * omfile now better conveys status of unwritable files back to core * config files recursively including themselfes are now detected * refactored code to not emit compiler warnings in "strict mode" * bugfix: fix some issues with action CommitTransaction() handling * bugfix omqmqp1: connecting to the message bus fails on nonstandard port * testbench/CI enhancements - Build requirements: * librelp 1.2.12- rsyslog 8.19.0: * omelasticsearch: add option to permit unsigned certs * imrelp: better error codes on unvailablity of TLS options * default stack size for inputs has been explicitely set to 4MiB * performance improvements * miscellaneous minor cleanup * fix: potential misadressing in template config processing * bugfix omfile: async output file writing does not respect flushing * bugfix imfile: corrupted multi-line message when state data was persisted * bugfix imfile: missing newline after first line of multiline message * bugfix: dynstats unusedMetricTtl bug * bugfix build system: build was broken on SunOS * bugfix: afterRun entry point not correctly called * bugfix dynstats: do not leak file handles * bugfix omelasticsearch: disable libCURL signal handling * bugfix omelasticsearc: some regressions were fixed * improved wording: gnutls error message points to potential cause- rsyslog 8.18.0(bnc#958728): * templates: add option to convert timestamps to UTC * omjournal: fix segfault (regression in 8.17.0) * imptcp: added AF_UNIX support * new template options * compressSpace * date-utc * redis: support for authentication * omkafka: makes kafka-producer on-HUP restart optional * imfile: new "FreshStartTail" input parameter * omjournal: fix libfastjson API issues * ommongodb: fix json API issues * dynamic stats subsystem: a couple of smaller changes * foreach loop: now also iterates over objects (not just arrays) * enhancement: queue subsystem is more robst in regard to some corruptions * enhancement: Allow rsyslog to bind UDP ports even w/out specific interface being up at the moment. * new External plugin for sending metrics to SPM Monitoring SaaS * bugfix imfile: fix memory corruption bug when appending @cee * bugfix: memory misallocation if position.from and position.to is used a negative amount of memory is tried to be allocated if position.from is smaller than the buffer size (at least with json variables). This usually leads to a segfault. * bugfix: fix potential memleak in TCP allowed sender definition * bugfix: $PrivDropToGroupID actually did a name lookup * bugfix: small memory leak in imfile * bugfix: double free in jsonmesg template * bugfix: incorrect formatting of stats when CEE/Json format is used * bugfix omfwd: new-style keepalive action parameters did not work due to being inconsistently spelled inside the code. Note that legacy parameters $keepalive... always worked * bugfix: memory leaks in logctl utility * bugfix omrelp: fix segfault if no port action parameter was given * bugfix imtcp: Messages not terminated by a NL were discarded- rsyslog 8.17.0: * improve json variable performance * new experimental feature: lookup table suport * new feature: dynamic statistics counters * new contributed plugin: omampq1 for AMQP 1.0-compliant brokers * new set of UTC-based $now family of variables ($now-utc, $year-utc, ...) * simplified locking when accessing message and local variables * new global parameter "debug.unloadModules" * timestamp handling: guard against invalid dates * imfile: add "trimlineoverbytes" input paramter * ommongodb: add support for extended json format for dates * omjournal: add support for templates * imuxsock: add "ruleset" input parameter(fate#320667) * imptcp: performance improvements * improve interface definition in some modules, e.g. mmanon, mmsequence * rsgtutil: dump mode improvements + auto-detect signature file type + ability to dump hash chains for log extraction files * bugfix: unixtimestamp date format was incorrectly computed (leap year) * bugfix: date-ordinal date format was incorrectly computed (leap year) * bugfix: some race when shutting down input module threads * bugfix tcpflood: did not handle connection drops correct in TLS case * bugfix: abort if global parameter value was wrong * bugfix omkafka: fix potential NULL pointer addressing * bugfix impstats: @cee cookie was prefixed to wrong fromat (json vs. cee) * bugfix imfile: fix race during startup that could lead to some duplication * bugfix: potential loss of single message at queue shutdown * bugfix: potential deadlock with heavy variable access * bugfix ommysql: on some platforms, serverport parameter had no effect * bugfix omelasticsearch: invalid pointer dereference * bugfix omhiredis: serverport config parameter did not reliably work * bugfix rsgtutil: -h command line option did not work * bugfix lexer: hex numbers were not properly represented * bugfix TLS syslog: intermittent errors while sending data * bugfix imfile: abort on startup if no slash was present in file name param * bugfix rsgtutil: fixed abort when using short command line options * bugfix rsgtutil: invalid computation of log record extraction file * bugfix build system: KSI components could only be build if in default path- rsyslog 8.16.0: * rsgtutil: Added extraction support including loglines and hash chains. * new system properties for $NOW properties based on UTC * various bug fixes and improvements- fix build on sle11: use package name buildrequires instead of pkgconfig- build with libfastjson (mandatory from 8.16.0)- rsyslog 8.15.0: * KSI (incompatible changes): + KSI utilities: Added option to set publication url via - -publications-server. Required for signature verification. + UserID and UserKey can be set by parameter + Fixed wrong TLV container for KSI signatures from 0905 to 0906. + somewhat improved error messages + Update for and use libksi 3.4.0.x * New contributed modules: + pmpanngfw: for translating Palo Alto Networks logs * pmciscoios: support for asterisk before timestamp added * solr external output plugin much enhanced * omrabbitmq: improvements * add support for libfastjson (as a replacement for json-c) * pmciscoios: support for some format variations * improvments for 0mq modules: + omczmq - suspend / Retry handling + omczmq - improved efficiency + omczmq - added ability to set a timeout for sends + omczmq - set topics can be in separate frame (default) or part of message frame (configurable) + imczmq - ZMQ_ROUTER support * Note the upstream supported modules not enabled in SUSE package: + grok (mmgrok) + omkafka * add support for building with libfastjson * bugfix: invalid mutex handling in omfile async write mode could lead to segfault, even though highly unlikely (caught by testbench on a single platform) (bsc#1000488)- rsyslog 8.14.0: * add property "rawmsg-after-pri" * bugfix: potential misadresseing in imfile * bugfix: re_extract RainerScript function did not work- rsyslog 8.13.0: * ZeroMQ enhancements * Redis enhancements * mmnormalize: liblognorm error messages are now emitted via regular rsyslog error reporting mechanism (aka "are now logged") * networking improvements - drop rsyslog-8.12.0-parallel-build.patch, is upstream - drop rsyslog-8.12.0-gnutls.patch, same- rsyslog 8.12.0: * Harmonize resetConfigVariables values and defaults * GT/KSI: fix some issues in signature file format and add conversion tool * bugfix: ommysql did not work when gnutls was enabled * bugfix omfile: potential memory leak on file close * bugfix omfile: potential race in dynafile detection/creation * bugfix omfile: Fix race-condition detection in path-creation code * bugfix parser subsystem: potential misadressing in SanitizeMsg() * imfile: files moved outside of directory are now (properly) handled * bugfix: imfile: segfault when using startmsg.regex * bugfix imfile: file table was corrupted when on file deletion * bugfix ompgsql: transaction were improperly handled * bugfix mmjsonparse: memory leak if non-cee-json message is processed * testbench: remove raciness from UDP based tests * testbench: added bash into all scripts makign it mandatory * bugfix testbench: Fixed problem building syslog_caller util when liblogging-stdlog is not available. - add upstream patches: * rsyslog-8.12.0-gnutls.patch to fix build with gnutls * rsyslog-8.12.0-parallel-build.patch to fix parallel build- rsyslog 8.11.0 - new features: * signature provider for Keyless Signature Infrastructure (KSI) - bug fixes: * imfile: regex multiline mode ignored escapeLF option * omkafka: fixed several concurrency issues, most of them related to dynamic topics. * execonlywhenpreviousissuspended did not work correctly * core engine: ensured global variable atomicity * imfile: segfault when using startmsg.regex because of empty log line- rsyslog 8.10.0: * imfile: add capability to process multi-line messages based on regex * pmrfc3164: add new parameter "detect.yearAfterTimestamp" * pmrfc3164: add new parameter "permit.squareBracesInHostname" * supplementary groups are now set when dropping privileges * imfile: added brace glob expansion to wildcard * zmq: add the ability for zeromq input and outputs to advertise their presence on UDP via the zbeacon API. * added omhttpfs: contributed module for writing to HDFS via HTTP * bug fixes - packaging changes: * build with GnuTLS support again as 3.4.0 is now supported- Documentation does not depend on the presence of anything- Adjusted apparmor profile based on the suggestions by Christian Boltz * Removed empty files: module-pgsql, module-relp, module-gssapi, module-gtls * Moved profiles to /usr/share/apparmor/extra-profiles/ * Blocked capability block_suspend plus some other small fixes- Adjusted apparmor profile to prevent aa-genprof failures (bnc#925512)- disable GnuTLS support, does not build with GnuTLS 3.4.0- rsyslog 8.9.0: - omprog: add option "hup.forward" to forwards HUP to external plugins - imuxsock: added capability to use regular parser chain - new sysSock.useSpecialParser module parameter - new sysSock.parseHostname module parameter - new useSpecialParser input parameter - new parseHostname input parameter - 0mq: improvements in input and output modules - imtcp: add support for ip based bind for imtcp -> param "address" - bugfix: MsgDeserialize out of sync with MsgSerialize for StrucData - bugfix imfile: partial data loss, especially in readMode != 0 - bugfix: potential large memory consumption with failed actions - bugfix: omudpspoof: invalid default send template in RainerScript format - bugfix: size-based legacy config statements did not work properly on some platforms, they were incorrectly handled, resulting in all sorts of "interesting" effects (up to segfault on startup) - build system: added option --without-valgrind-testbench ... which provides the capability to either enforce or turn off valgrind use inside the testbench. Thanks to whissi for the patch. - rsyslogd: fix misleading typos in error messa - remove upstreamed rsyslog-8.8.0-nonvoid-function-return.patch- rsyslog 8.8.0: - omkafka: add support for dynamic topics and auto partitioning - imtcp/imptcp: support for broken Cisco ASA TCP syslog framing - omfwd: more detailled error messages in case of UDP send error - TLS syslog: enable capability to turn on GnuTLS debug logging - bugfix: $AbortOnUncleanConfig did not work - improve rsyslogd -v output and error message with meta information - bugfix imtcp: octet-counted framing cannot be turned off - bugfix: build problems on Illuminos - bugfix: invalid data size for iMaxLine global property - bugfix: negative values for maxMessageSize global parameter were permitted - add upstream patch rsyslog-8.8.0-nonvoid-function-return.patch to fix compiler warnings/errors- rsyslog 8.7.0: - add message metadata "system" to msg object this permits to store metadata alongside the message - imfile: add support for "filename" metadata this is useful in cases where wildcards are used - imptcp: make stats counter names consistent with what imudp, imtcp uses - added new module "omkafka" to support writing to Apache Kafka - omfwd: add new "udp.senddelay" parameter - mmnormalize enhancements - RainerScript "foreach" iterator and array reading support Thanks to Janmejay Singh for the patch. - now requires liblognorm >= 1.0.2 - add support for systemd >= 209 library names - BSD "ntp" facility (value 12) is now also supported in filter Note: this patch was released under ASL 2.0 (see email-conversation). - bugfix: global(localHostName="xxx") was not respected in all modules - bugfix: emit correct error message on config-file-not-found - bugfix: impstats emitted invalid JSON format (if JSON was selected) - bugfix: (small) memory leak in omfile's outchannel code - bugfix: imuxsock did not deactivate some code not supported by platform - includes changes from 8.6.0: - configuration-setting rsyslogd command line options deprecated - new and enhanced plugins for 0mq. These are currently experimantal. - empty rulesets have been permitted. They no longer raise a syntax error. - add parameter -N3 to enable config check of partial config file Use for config include files. Disables checking if any action exists at all. - rsyslogd -e option has finally been removed It is deprectated since many years. - testbench improvements - testbench is now by default disabled - add new RainerScript functions warp() and replace() - mmnormalize can now also work on a variable - new property date options for day ordinal and week number - remove --enable-zlib configure option, we always require it - slight source-tree restructuring: contributed modules are now in their own ./contrib directory. The idea is to make it clearer to the end user which plugins are supported by the rsyslog project (those in ./plugins). - bugfix: imudp makes rsyslog hang on shutdown when more than 1 thread used - bugfix: not all files closed on auto-backgrounding startup - bugfix: typo in queue configuration parameter - bugfix: unitialized buffer off-by-one error in hostname generation - bugfix imuxsock: possible segfault when SysSock.Use="off" - bugfix: RainerScript: invalid ruleset names were accepted - bugfix: some module entry points were not called for all modules - bugfix omlibdbi: connection was taken down in wrong thread - imttcp was removed because it was an incompleted experimental module - pmrfc3164sd because it was a custom module nobody used - omoracle was removed because it was orphaned and did not build/work for quite some years and nobody was interested in fixing it - includes changes from 8.5.0: - imfile greatly refactored and support for wildcards added - PRI-handling code refactored for more clarity and robustness - ommail: add support for RainerScript config system [action() object] - refactored the auto-backgrounding method - make gntls tcp syslog driver emit more error messages - bugfix: imfile did not complain if configured file did not exist - bugfix: build failure on systems which don't have json_tokener_errors - imgssapi: log remote peer address in some error messages - includes changes from 8.4.3: - ommail: minor bugfixes & improvements - bugfix imkmsg: infinite loop on OpenVZ VMs - bugfix: typo in queue configuration parameter made parameter unusable - bugfix: unitialized buffer off-by-one error in hostname generation - bugfix imfile: segfault on startup in "inotify" mode - bugfix imfile: could make rsyslog exit in inotify mode - bugfix: rsgtutil sometimes crashed in verify mode if file did not exist - bugfix imklog: pri was miscalculated - bugfix: imjournal did not build properly - bugfix: mmcount did no longer build - bugfix imuxsock: possible segfault when SysSock.Use="off" - rsyslog Version 8.5.0 fixed bsc#992146- set file permissions only on first install [boo#899316]- Changed BuildRequires dependencies for SLES11SP3 - BuildRequires: libjson-c-devel - BuildRequires: libestr-devel - BuildRequires: liblogging-devel - BuildRequires: librelp-devel - BuildRequires: libee-devel - BuildRequires: liblognorm-devel - BuildRequires: libuuid-devel- fix shebang of rsyslog-service-prepare script- rsyslog Version 8.4.2 [v8-stable] 2014-10-02 [bnc#899756] This release primarily contains a correction for the previous fix for the PRI vulnerability which was incomplete. - bugfix: the fix for CVE-2014-3634 did not handle all cases This is corrected now. see also: CVE-2014-3683 - fixed a build problem on some platforms - behaviour change: "msg" of messages with invalid PRI set to "rawmsg"- Removed broken zpipe utility from diag-tools package (bnc#890228)- update to rsyslog 8.4.1 [v8-stable] 2014-09-30 (bnc#897262) - imudp: add for bracketing mode, which makes parsing stats easier - permit at-sign in variable names closes: https://github.com/rsyslog/rsyslog/issues/110 - bugfix: fix syntax error in anon_cc_numbers.py script Thanks to github user anthcourtney for the patch. closes: https://github.com/rsyslog/rsyslog/issues/109 - bugfix: ompgsql: don't loose uncomitted data on retry Thanks to Jared Johnson and Axel Rau for the patch. - bugfix: imfile: if a state file for a different file name was set, that different file (name) was monitored instead of the configured one. Now, the state file is deleted and the correct file monitored. closes: https://github.com/rsyslog/rsyslog/issues/103 - bugfix: omudpspoof: source port was invalid Thanks to Pavel Levshin for the patch - bugfix: build failure on systems which don't have json_tokener_errors Older versions of json-c need to use a different API (which don't exists on newer versions, unfortunately...) Thanks to Thomas D. for reporting this problem. - bugfix: omelasticsearch does not work with broken/changed ES 1.0+ API closes: https://github.com/rsyslog/rsyslog/issues/104 - bugfix: mmanon did not properly anonymize IP addresses starting with '9' Thanks to defa-at-so36.net for reporting this problem. closes: http://bugzilla.adiscon.com/show_bug.cgi?id=529 - bugfix: build problems on SuSe Linux Thanks Andreas Stieger for the patch - bugfix: omelasticsearch error file did not work correctly on ES 1.0+ due to a breaking change in the ElasticSearch API. see also: https://github.com/rsyslog/rsyslog/issues/104 - bugfix: potential abort when a message with PRI > 191 was processed if the "pri-text" property was used in active templates, this could be abused to a remote denial of service from permitted senders see also: CVE-2014-3634 - removed patches obsoleted by this version: [- rsyslog-8.4.0_implicit_declaration.patch, - rsyslog-8.4.0-json-c-0.12-configure.patch, - rsyslog-8.4.0-json-c-0.12.patch] - adopted patch for modified rsyslog.service: [* rsyslog-unit.patch]- fix build with json-c 0.12 with upstream patch rsyslog-8.4.0-json-c-0.12.patch - json-c provides a compatibility pkg-config for "json". Add rsyslog-8.4.0-json-c-0.12-configure.patch to check for the required function directly.- added firewall template file- Stop syslog.socket in %preun to avoid the daemon we uninstall gets started by a log message due to dependencies (bnc#840815).- reenable gssapi module- rsyslog 8.4.0 [v8-stable] - this is the new stable branch, which incorporates all enhancements of rsyslog 8.3. - rsyslog 8.3.5 [v8-devel] 2014-08-05 - mmjsonparse: support selectable cookie and target containers This permits to put different meanings into a json formatted syslog message, e.g. the "traditional" cee or cim data. - bugfix: mmjsonparse did not build with json-c < 0.10 This was a regression introduced some time in the past in order to support API changes in json-c. Now we check for the - rsyslog and use proper code. - omprog: emit error message via syslog() if loading binary fails This happens after forking, so omprog has no longer access to rsyslog's regular error reporting functions. Previously, this meant any error message was lost. Now it is emitted via regular syslog (which may end up in a different instance, if multiple instances run...) - couple of patches imported from v7-stable (7.6.4) - rsyslog 8.3.4 [v8-devel] 2014-07-11 - new pmciscoios parser supporting various Cisco IOS formats - RFC3164 timestamp parser now accepts timezones and subsecond resolution ... at least for some common formats and where we could do so without running risk of breaking proper formats (or introducing regressions) - new parser config object -- permits to define custom parser definitions - new tzinfo config object -- permits to define time zone offsets This is a utility object that currently is being used by some parsers. - bugfix: mishandling of input modules not supporting new input instances If they did not support this, accidently the output module part of the module union was written, leading to unpredictable results. Note: all core modules do support this interface, but some contributed or very old ones do not. - bugfix: double-free when ruleset() parser parameters were used While unlikely, this could cause stability issues even after the config phase. - rsyslog 8.3.3 [v8-devel] 2014-06-26 - unify input object naming imudp now supports "name" paramter, as other inputs do. "inputname" has been deprecated, but can still be used. Same applies to "appendport" subparamter". Thanks to "Nick Syslog" for the suggestion. - made the missing (contributed) modules build under v8 [import from 8.2.2] Modules: * mmrfc5424addhmac omrabbitmq omgssapi omhdfs omzmq3 - added a cleanup process (janitor); permits to close omfile files after a timeout - make omgssapi build under v8.3 [import vom v8.2] note that we could do this to the stable, because there is NO regression chance at all: only omgssapi was changed, and this module did NOT work previously. - removed obsolete --disable-fsstnd configure option Thanks to Thomas D. for alerting us. Closes: https://github.com/rsyslog/rsyslog/issues/72 - rsyslog 8.3.2 [v8-devel] 2014-05-02 - new template options for date extraction: - year - month - day - wday - hour - minute - second - tzoffshour - tzoffsmin - tzoffsdirection - wdayname For string templates, these are property options and they are prefixed with "date-" (e.g. "date-year", "date-month", ...) see also: https://github.com/rsyslog/rsyslog/issues/65 - bugfix: mmexternal remove framing char before processing JSON reply This did not have any real bad effects, but caused unnecessary processing, as empty replies were not properly detected. Otherwise, the bug was not noticible from the user's PoV. - bugfix: mmexternal segfault due to invalid free in non-json input mode closes: https://github.com/rsyslog/rsyslog/issues/70 - bugfix: mmexternal segfault when external plugin sent invalid reply ... or no reply at all. This happened if the reply was imporper JSON. Now, we emit an error message in those cases. see also: https://github.com/rsyslog/rsyslog/issues/69 - bugfix: mmexternal did potentially pass incomplete data to restarted external plugin This could happen if EPIPE was returned "too late", in which case the beginning of the data could be lost. - bugfix: mmexternal did not properly process messages over 4KiB The data to be passed to the external plugin was truncated after 4KiB. see: https://github.com/rsyslog/rsyslog/issues/64 - imrelp: added support for per-listener ruleset and inputname see: https://github.com/rsyslog/rsyslog/pull/63 Thanks to bobthesecurityguy github user for the patch - rsyslog 8.3.1 [v8-devel] 2014-04-24 - external message modification interface now support modifying message PRI - "jsonmesg" property will include uuid only if one was previously generated This is primarily a performance optimization. Whenever the message uuid is gotten, it is generated when not already present. As we used the regular setter, this means that always the uuid was generated, which is quite time-consuming. This has now been changed so that it only is generated if it already exists. That also matches more closly the semantics, as "jsonmesg" should not make modifications to the message. Note that the same applies to "fulljson" passing mode for external plugins. - added plugin to rewrite message facility and/or severity Name: fac-sever-rewrite.py - permits to build against json-c 0.12 Unfortunately, json-c had an ABI breakage, so this is necessary. Note that - rsyslogs prior to 0.12 had security issues (CVE-2013-6370, CVE-2013-6371) and so it is desirable to link against the new - rsyslog. Thanks to Thomas D. for the patch. Note that at least some distros have fixed the security issue in older - rsyslogs of json-c, so this seems to apply mostly when building from sources. - bugfix: using UUID property could cause segfault - bugfix/mmexternal: memory leak - bugfix: memory leak when using "jsonmesg" property - bugfix: mmutf8fix did not detect two invalid sequences Thanks to Axel Rau for the patch. - bugfix: build problems with lexer.l on some platforms For some reason, the strdup() prototype and others are missing. I admit that I don't know why, as this happens only in 8.3.0+ and there is no indication of changes to the affected files. In any case, we need to fix this, and the current solution works at least as an interim one. - rsyslog 8.3.0 [v8-devel] 2014-04-10 - new plugin for anonymizing credit card numbers Thanks to Peter Slavov for providing the code. - external message modification modules are now supported They are bound via the new native module "mmexternal". Also, a sample skeleton for an external python message modification module has been added. - new $jsonmesg property with JSON representation of whole message object closes: https://github.com/rsyslog/rsyslog/issues/19 - improved error message for invalid field extraction in string template see also: http://kb.monitorware.com/problem-with-field-based-extraction-t12299.html - fix build problems on Solaris - NOTE: a json-c API that we begun to use requires the compiler to be in c99 mode. By default, we select it automatically. If you modify this and use gcc, be sure to include "-std=c99" in your compiler flags. This seems to be necessary only for older - rsyslogs of gcc. - rsyslog 8.2.3 [v8-stable] 2014-??-?? - bugfix: ommysql: handle/mem leak upon termination of worker thread This could become bad if the (instance) worker threads are often started and terminated. But it takes quite a while to show effect. - added documentation tarball and also install the html documentation new subpackage rsyslog-doc - drop rsyslog-pid-file.patch: patch is included in update - added rsyslog-8.4.0_implicit_declaration.patch: include sys/time.h for gettimeofday- Preliminary AppArmor support. Since those profiles need to be tested properly they'll live in /etc/apparmor/profiles/extras. - Added rsyslog-pid-file.patch to fix a regression that causes the pid file to be created in /etc- rsyslog 8.2.2 [v8-stable] * made contributed modules build under v8 - add mmrfc5424addhmac, was removed in upgrade to v8-stable series - fix warning about missing symlink /usr/sbin/rcrsyslog -> /usr/sbin/service- rpm: use _rundir rpm macro if defined (bnc#873857)- adjust default configuration to address warning: "rsyslogd-2307: warning: ~ action is deprecated, consider using the 'stop' statement instead"- rsyslog 8.2.1 [v8-stable] * permits to build against json-c 0.12 Unfortunately, json-c had an ABI breakage, so this is necessary. Note that versions prior to 0.12 had security issues (CVE-2013-6370, CVE-2013-6371) and so it is desirable to link against the new version. Thanks to Thomas D. for the patch. Note that at least some distros have fixed the security issue in older versions of json-c, so this seems to apply mostly when building from sources. * doc is no longer shipped as part of the rsyslog tarball Instead, the rsyslog-doc project creates its own tarball. This is the result of a mailing list discussion after the 8.2.0 release with a tarball-in-tarball approach, which was disliked by almost all distro maintainers. This move also has the advantage of de-coupling the release cycles of both projects a bit (which turned out to be a bit problematic in practice). * bugfix: mmutf8fix did not detect two invalid sequences- rsyslog 8.2.0 [v8-stable] This starts a new stable branch based on 8.1.6 plus the following changes: * we now use doc from the rsyslog-doc project As such, the ./doc subtree has been removed. Instead, a cache of the rsyslog-doc project's files has been included in ./rsyslog-doc.tar.gz. Note that the exact distribution mode for the doc is still under discussion and may change in future releases. This was agreed upon on the rsyslog mailing list. For doc issues and corrections, be sure to work with the rsyslog-doc project. It is currently hosted at https://github.com/rsyslog/rsyslog-doc * add support for specifying the liblogging-stdlog channel spec new global parameter "stdlog.channelspec" * add "defaultnetstreamdrivercertfile" global variable to set a default for the certfile. * omelasticsearch: add new "usehttps" parameter for secured connections * "action resumed" message now also specifies module type which makes troubleshooting a bit easier. Note that we cannot output all the config details (like destination etc) as this would require much more elaborate code changes, which we at least do not like to do in the stable version. * add capability to override GnuTLS path in build process * better and more consistent action naming, action queues now always contain the word "queue" after the action name * bugfix: ompipe did resume itself even when it was still in error- rsyslog 7.6.4 [v7-stable] * removed obsolete --disable-fsstnd configure option * permits to build against json-c 0.12 * new omfile default module parameters: filecreatemode fileowner fileownernum filegroup filegroupnum dirowner dirownernum dirgroup dirgroupnum * bugfix: using UUID property could cause segfault * bugfix: mmutf8fix did not detect two invalid sequences- rsyslog 7.6.3 [v7-stable] * add capability to override GnuTLS path in build process * support (and require) librelp 1.2.5 * bugfix: ompipe used invalid default template * bugfix: ompipe did emit many suspension messages for /dev/xconsole- rsyslog 7.6.2 [v7.6-stable] major updates of the 7.6 series: * imrelp/omrelp now support TLS & (zip) compression * impstats is now emitting resource usage counters, can directly emit delta values and can now be bound to a ruleset * mmpstrucdata is a new module to parse RFC5424 structured data into JSON message properties * mmutf8fix is a new module to fix invalid UTF-8 sequences * mmsequence is a new module that helps with action load balancing * new defaults for main/ruleset queues to be more enterprise-like - For specific version changelogs, see * http://www.rsyslog.com/changelog-for-7-6-0-v7-stable/ * http://www.rsyslog.com/changelog-for-7-6-1-v7-stable/ * http://www.rsyslog.com/changelog-for-7-6-2-v7-stable/ - packaging changes: * drop rsyslog-7.4.6-omelasticsearch-atomic-instructions-ppc.patch committed upstream * build with rfc3195 support- rsyslog 7.4.10: - bugfix: json templates are improperly created - ompgsql bugfix: improper handling of auto-backgrounding mode - contains changes from 7.4.9: - added ProcessInternalMessages global system parameter - bugfix: imuxsock input parameters were not accepted - bugfix: potential double-free in RainerScript equal comparison - bugfix: some RainerScript Json(Variable)/string comparisons were wrong- use liblognorm0 transitional package in Factory to fix build until rsyslog is updated to support liblognorm >= 1.0.0- Added Restart=on-abort to rsyslog.service (fate#315133)- update to 7.4.8 [v7.4-stable] - rsgtutil provides better error messages on unfinished signature blocks - bugfix: guard against control characters in internal (error) messages - bugfix: immark did emit messages under kern.=info instead of syslog.=info Note that his can potentially break exisiting configurations that rely on immark sending as kern.=info.- update to 7.4.7 [v7.4-stable] [bnc#855058] - bugfix: limiting queue disk space did not work properly - bugfix: linux kernel-like ratelimiter did not work properly with all inputs (for example, it did not work with imdup). - bugfix: disk queues created files in wrong working directory - bugfix: legacy directive $ActionQueueWorkerThreads was not honored - bugfix: segfault on startup when certain script constructs are used e.g. "if not $msg ..." - bugfix: imuxsock: UseSysTimeStamp config parameter did not work correctly - bugfix: $SystemLogUseSysTimeStamp/$SystemLogUsePIDFromSystem did not work - improved checking of queue config parameters on startup - bugfix: call to ruleset with async queue did not use the queue - bugfix: if imtcp is loaded and no listeners are configured (which is uncommon), rsyslog crashes during shutdown.- Fixed to avoid rebuild rscryutil.1 rsgtutil.1 on SLE-11.- fix ppc build, add patch from upstream to fix build on platforms without atomic instructions rsyslog-7.4.6-omelasticsearch-atomic-instructions-ppc.patch- update to 7.4.6 [v7.4-stable] [bnc#848574] - bugfix: potential abort during HUP - bugfix: imtcp flowControl parameter incorrectly defaulted to "off" - now requires libestr 0.1.9 for number handling in RainerScript - bugfix: memory leak in strlen() RainerScript function - bugfix: buffer overrun if re_extract function was called for submatch 50 - bugfix: memleak in re_extract() function - bugfix: potential abort in RainerScript optimizer - bugfix: memory leak in omhiredis - bugfix: segfault if variable was assigned to non-container subtree- update to 7.4.5 [v7.4-stable] - mmanon: removed the check for specific "terminator characters" - now requires libestr 0.1.8 - omelasticsearch: add failed.httprequests stats counter - bugfix: invalid property filter was not properly disabled in ruleset - bugfix: segfault if re_extract() function was used and no match found - bugfix: potential misadressing on startup if property-filter was used - bugfix: omelasticsearch: correct failed.http stats counter - bugfix: omelasticsearch: did not correctly initialize stats counters - bugfix: omelasticsearch: failed.es counter was only maintained in bulk mode - bugfix: mmanon did not detect all IP addresses in rewrite mode - bugfix: mmanon sometimes used invalid replacement char in simple mode - bugfix: memory leak in mmnormalize - bugfix: array-based ==/!= comparisions lead to invalid results - bugfix: omprog blocked signals to executed programs - bugfix: doc: imuxsock legacy param $SystemLogSocketParseTrusted was misspelled - bugfix: imfile "facility" input parameter improperly handled - bugfix: small memory leak in imfile when $ResetConfigVariables was used - bugfix: segfault on startup if TLS was used but no CA cert set - bugfix: segfault on startup if TCP TLS was used but no cert or key set - bugfix: some more build problems with newer json-c versions - bugfix: build system: libgcrypt.h needed even if libgrcypt was disabled- update to 7.4.4 [v7.4-stable] - better error messages in GuardTime signature provider - make rsyslog use the new json-c pkgconfig file if available - bugfix: imfile parameter "persistStateInterval" was unusable due to a case typo in imfile; work-around was to use legacy config - bugfix: TLV16 flag encoding error in signature files from GT provider This fixes a problem where the TLV16 flag was improperly encoded. Unfortunately, existing files already have the bug and may not properly be processed. The fix uses constants from the GuardTime API lib to prevent such problems in the future. - bugfix: slightly malformed SMTP handling in ommail - bugfix: segfault in omprog if no template was provided (now dflt is used) - bugfix: segfault in ompipe if no template was provided (now dflt is used) - bugfix: segfault in omsnmp if no template was provided (now dflt is used) - bugfix: some omsnmp optional config params were flagged as mandatory - bugfix: segfault in omelasticsearch when resuming queued messages after restarting Elasticsearch - bugfix: imtcp addtlframedelimiter could not be set to zero - doc bugfix: remove no-longer existing omtemplate from developer doc was specifically mentioned as a sample for creating new plugins- update to 7.4.3 [v7.4-stable] - bugfix: memory leak if disk queues were used and json data rresent - bugfix: CEE/json data was lost during disk queue operation - bugfix: potential segfault during startup on invalid config - bugfix: 100% CPU utilization when DA queue became full - bugfix: omlibdbi did not properly close connection on some errors - cosmetic bugfix: file name buffer was not freed on disk queue destruction- Update to 7.4.2 [v7.4-stable] (bnc#828140,CVE-2013-4758): - bugfix: in RFC5425 TLS, multiple wildcards in auth could cause segfault - bugfix: RainerScript object required parameters were not properly checked - this clould result to segfaults on startup if parameters were missing. - bugfix: double-free in omelasticsearch closes: http://bugzilla.adiscon.com/show_bug.cgi?id=461 a security advisory for this bug is available at: http://www.lsexperts.de/advisories/lse-2013-07-03.txt PLEASE NOTE: This issue only existed if omelasticsearch was used in a non-default configuration, where the "errorfile" parameter was specified. Without that parameter set, the bug could not be triggered. Thanks to Markus Vervier and Marius Ionescu for providing a detailled bug report. Special thanks to Markus for coordinating his security advisory with us. - bugfix: omrelp potential segfault at startup on invalid config parameters - bugfix: small memory leak when $uptime property was used - bugfix: potential segfault on rsyslog termination in imudp closes: http://bugzilla.adiscon.com/show_bug.cgi?id=456 - bugfix: lmsig_gt abort on invalid configuration parameters closes: http://bugzilla.adiscon.com/show_bug.cgi?id=448 Thanks to Risto Laanoja for the patch. - imtcp: fix typo in "listner" parameter, which is "listener" Currently, both names are accepted. - solved build problems on FreeBSD closes: http://bugzilla.adiscon.com/show_bug.cgi?id=457 closes: http://bugzilla.adiscon.com/show_bug.cgi?id=458 Thanks to Christiano for reproting and suggesting patches - solved build problems on CENTOS5- Use --enable-cached-man-pages configure option on SLES-11, where rst2man is not available and removed prebuilt man pages.- update to 7.4.1 [v7.4-stable]: - imjournal: add ratelimiting capability - bugfix imzmq3: potential segfault on startup - includes changes from 7.4.0 [v7.4-stable]: - doc bugfix: ReadMode wrong in imfile doc, two values were swapped - imjournal: no longer do periodic wakeup - bugfix: potential hang *in debug mode* on rsyslogd termination - bugfix: $template statement with multiple spaces lead to invalid tpl name - 0mq fixes - includes changes from version 7.3.15 - bugfix: problem in build system (especially when cross-compiling) - bugfix: imjournal had problem with systemd journal API change - imjournal: now obtain and include PID - bugfix: .logsig files had tlv16 indicator bit at wrong offset - bugfix: omrelp legacy config parameters set a timeout of zero which lead the legacy config to be unusable. - bugfix: segfault on startup if a disk queue was configure without file name - bugfix: invalid addressing in string class (recent regression) - packaging changes: - rebase rsyslog-unit.patch - move libee/liblognorm dependencies to mmnormalize conditional- Required version of pkgconfig(relp) is >= 1.0.3 - Requires version of libsystemd-journal is >= 197 - Notify systemd on sucessful startup of the daemon to avoid confusing behaviour such as : http://lists.opensuse.org/opensuse/2013-06/msg00603.html- Fixed SLES-11 build that does not have rst2man/python-docutils; added pre-built rscryutil.1 and rsgtutil.1 as sources because v7.3.14 does not ship them pre-built any more.- update to 7.3.14 [beta] 2013-05-06: - bugfix: some man pages were not properly installed either rscryutil or rsgtutil man was installed, but not both. Thanks to Marius Tomaschewski for the patch. - bugfix: potential segfault on startup when builtin module was specified in module() statement. Thanks to Marius Tomaschewski for reporting the bug. - bugfix: segfault due to invalid dynafile cache handling Accidently, the old-style cache size parameter was used when the dynafile cache was created in a RainerScript action. If the old-style size was lower than the one actually set, this lead to misadressing when the size was overrun, and that could lead to all kinds of “interesting things”, often in segfaults. closes: http://bugzilla.adiscon.com/show_bug.cgi?id=440- Adopted config file to stop instead of deprecated "~" action.- Enabled log file signing module lmsig_gt using GuardTime as separate rsyslog-module-guardtime package. - Moved previously enabled log file encryption module lmcry_gcry and its utility into a separate rsyslog-module-gcrypt package.- update to 7.3.13 [beta] 2013-04-29: - added omrabbitmq module (contributed, untested) Note: this is unsupported and as such was moved immediately into the beta version. Thanks to Vaclav Tomec for providing this module. - bugfix: build problem when –enable-encryption was not selected Thanks to Michael Biebl for fixing this. - doc bugfix: omfile parameter “VeryRobustZip” was documentas as “VeryReliableZip” closes: http://bugzilla.adiscon.com/show_bug.cgi?id=437 Thanks to Thomas Doll for reporting this. - update to 7.3.12 [devel] 2013-04-25: - added doc for omelasticsearch Thanks to Radu Gheorghe for the doc contribution. - omelasticsearch: _id field support for bulk operations closes: http://bugzilla.adiscon.com/show_bug.cgi?id=392 Thanks to Jérôme Renard for the idea and patches. - max number of templates for plugin use has been increased to five - platform compatibility enhancement: solve compile issue with libgcrypt do not use GCRY_CIPHER_MODE_AESWRAP where not available fix compile on Solaris Thanks to Martin Carpenter for the patch. - bugfix: off-by-one error in handling local FQDN name (regression) A remporary buffer was allocated one byte too small. Did only affect startup, not actual operations. Came up during routine tests, and can have no effect once the engine runs. Introduced in 7.3.11. - bugfix: build problems on Solaris closes: http://bugzilla.adiscon.com/show_bug.cgi?id=436 - bugfix: block size limit was not properly honored - bugfix: potential segfault in guardtime signature provider it could segfault if an error was reported by the GuardTime API, because an invalid free could happen then - update to 7.3.11 [devel] 2013-04-23 - added support for encrypting log files (lmcry_gcry plugin) - omhiredis: added support for redis pipeline support Thanks to Brian Knox for the patch. - bugfix: $PreserveFQDN is not properly working Thanks to Louis Bouchard for the patch closes: http://bugzilla.adiscon.com/show_bug.cgi?id=426 - bugfix: imuxsock aborted due to problem in ratelimiting code Thanks to Tomas Heinrich for the patch. - bugfix: imuxsock aborted under some conditions regression from ratelimiting enhancements – this was a different one to the one Tomas Heinrich patched. - bugfix: timestamp problems in imkmsg - Enabled systemd imjournal,omjournal modules on > 12.3. - Enabled mmanon, providing anonymization support - Enabled lmcry_gcry.so, providing log file encryption support and the rscryutil utility to manage the encrypted log files. - Removed obsolete --enable-pthreads configure option.- rsyslogd.conf removed from upstream tarball, no longer install as documentation. - build requirement for libestr is >= 0.1.5- update to 7.2.7 [v7-stable] 2013-04-17: - rsyslogd startup information is now properly conveyed back to init when privileges are beging dropped. Actually, we have moved termination of the parent in front of the priv drop. So it shall work now in all cases. See code comments in commit for more details. - If forking, the parent now waits for a maximum of 60 seconds for termination by the child - improved debugging support in forked (auto-backgrounding) mode. The rsyslog debug log file is now continued to be written across the fork. - updated systemd files to match current systemd source - bugfix: failover/action suspend did not work correctly This was experienced if the retry action took more than one second to complete. For suspending, a cached timestamp was used, and if the retry took longer, that timestamp was already in the past. As a result, the action never was kept in suspended state, and as such no failover happened. The suspend functionalit now does no longer use the cached timestamp (should not have any performance implication, as action suspend occurs very infrequently). - bugfix: nested if/prifilt conditions did not work properly closes: http://bugzilla.adiscon.com/show_bug.cgi?id=415 - bugfix: script == comparison did not work properly on JSON objects [backport from 7.3 branch] - bugfix: imudp scheduling parameters did affect main thread, not imudp closes: http://bugzilla.adiscon.com/show_bug.cgi?id=409 - bugfix: imuxsock rate-limiting could not be configured via legacy conf Rate-limiting for the system socket could not be configured via legacy configuration directives. However, the new-style RainerScript config options worked. Thanks to Milan Bartos for the patch. closes: http://bugzilla.adiscon.com/show_bug.cgi?id=390 - bugfix: using group resolution could lead to endless loop Thanks to Tomas Heinrich for the patch. closes: http://bugzilla.adiscon.com/show_bug.cgi?id=310 - bugfix: $mmnormalizeuseramsg paramter was specified with wrong type Thank to Renzhong Zhang for alerting us of the problem. closes: http://bugzilla.adiscon.com/show_bug.cgi?id=420 - bugfix: RainerScript getenv() function caused segfault when var was not found. Thanks to Philippe Muller for the patch. - bugfix: several issues in imkmsg see bug tracker: http://bugzilla.adiscon.com/show_bug.cgi?id=421#c8 - bugfix: imuxsock was missing SysSock.ParseTrusted module parameter To use that functionality, legacy rsyslog.conf syntax had to be used. Also, the doc was missing information on the "ParseTrusted" set of config directives. - bugfix: parameter action.execOnlyWhenPreviousIsSuspended was accidently of integer-type. For obvious reasons, it needs to be boolean. Note that this change can break existing configurations if they circumvented the problem by using 0/1 values. - doc bugfix: rsyslog.conf man page had invalid file format info closes: http://bugzilla.adiscon.com/show_bug.cgi?id=418 - update to 7.2.6 [v7-stable] 2013-03-05: - slightly improved config parser error messages when invalid escapes happen - bugfix: include files got included in the wrong order closes: http://bugzilla.adiscon.com/show_bug.cgi?id=411 This happens if an $IncludeConfig directive was done on multiple files (e.g. the distro default of $IncludeConfig /etc/rsyslog.d/*.conf). In that case, the order of include file processing is reversed, which could lead to all sorts of problems. Thanks to Nathan Stratton Treadway for his great analysis of the problem, which made bug fixing really easy. - bugfix: omelasticsearch failed when authentication data was provided ... at least in most cases it emitted an error message: "snprintf failed when trying to build auth string" Thanks to Joerg Heinemann for alerting us. closes: http://bugzilla.adiscon.com/show_bug.cgi?id=404 - bugfix: some property-based filter were incorrectly parsed This usually lead to a syntax error on startup and rsyslogd not actually starting up. The problem was the regex, which did not care for double quote characters to follow in the action part - unfortunately something that can frequently happen with v6+ format. An example: :programname, isequal, "as" {action(type="omfile" ...) } Here, the part :programname, isequal, "as" {action(type="omfile" was treated as the property filter, and the rest as action part. Obviously, this did not work out. Unfortunately, such situations usually resulted in very hard to understand error messages.- Fixed service file to pass $RSYSLOGD_PARAMS to rsyslogd again.- Fix systemd units to do exactly what is documented as required --> http://www.freedesktop.org/wiki/Software/systemd/syslog In particular, it must not mess with the ordering of syslog.target this is done by removing the custom unit and adapting the upstream one with openSUSE additions (rsyslog-unit.patch)- restore SELinux label when creating xconsole (bnc#812447)- Fixed rsyslog.service file to support reload (bnc#803994)- Fixed relp build requires change, which broke SLE-11 build.- update to 7.2.5 [v7-stable]: - build system cleanup - bugfix: omelasticsearch did not properly compile on some platforms due to missing libmath - bugfix: on termination, actions were incorrectly called - bugfix: very large memory consumption (and probably out of memory) when FromPos was specified in template, but ToPos not. - bugfix: timeval2syslogTime cause problems on some platforms due to invalid assumption on structure data types. - bugfix: compile errors in im3195 - bugfix: doGetFileCreateMode() had invalid validity check - bugfix: mmjsonparse errornously returned action error when no CEE cookie was present.- Enable rsyslog.service and create the syslog.service alias link in post install -- regardless of a preset config (bnc#790805). - Check the existence of /etc/init.d/syslog script before calling the restart_on_update and stop_on_removal macros to avoid errors on update. Since openSUSE 12.3, no syslog init script is shipped (bnc#790298,bnc#750478).- Update to 7.2.4 [v7-stable] with following changes: - enhance: permit RFC3339 timestamp in local log socket messages Thanks to Sebastien Ponce for the patch. - imklog: added ParseKernelTimestamp parameter (import from 5.10.2) Thanks to Marius Tomaschewski for the patch. - fix missing functionality: ruleset(){} could not specify ruleset queue The "queue.xxx" parameter set was not supported, and legacy ruleset config statements did not work (by intention). The fix introduces the "queue.xxx" parameter set. It has some regression potential, but only for the new functionality. Note that using that interface it is possible to specify duplicate queue file names, which will cause trouble. This will be solved in v7.3, because there is a too-large regression potential for the v7.2 stable branch. - imklog: added KeepKernelTimestamp parameter (import from 5.10.2) Thanks to Marius Tomaschewski for the patch. - bugfix: imklog mistakenly took kernel timestamp subseconds as nanoseconds ... actually, they are microseconds. So the fractional part of the timestamp was not properly formatted. (import from 5.10.2) Thanks to Marius Tomaschewski for the bug report and the patch idea. - bugfix: supportoctetcountedframing parameter did not work in imptcp - bugfix: modules not (yet) supporting new conf format were not properly registered. This lead to a "module not found" error message instead of the to-be-expected "module does not support new style" error message. That invalid error message could be quite misleading and actually stop people from addressing the real problem (aka "go nuts" ;)) - bugfix: template "type" parameter is mandatory (but was not) - bugfix: some message properties could be garbled due to race condition This happened only on very high volume systems, if the same message was being processed by two different actions. This was a regression caused by the new config processor, which did no longer properly enable msg locking in multithreaded cases. The bugfix is actually a refactoring of the msg locking code - we no longer do unlocked operations, as the use case for it has mostly gone away. It is potentially possible only at very low-end systems, and there the small additional overhead of doing the locking does not really hurt. Instead, the removal of that capability can actually slightly improve performance in common cases, as the code path is smaller and requires slightly less memory writes. That probably outperforms the extra locking overhead (which in the low-end case always happens in user space, without need for kernel support as we can always directly aquire the lock - there is no contention at all). - Removed imklog-kernel-timestamp-parsing (bnc#783967) patch obsoleted by this version.- fix zeromq support- fix hiredis support- enabled elastic search support (build enabled by default): - > new buildrequires curl devel - > new subpackage rsyslog-module-elasticsearch - added --enable-unlimited-select - added --enable-imttcp: - > this module is packaged in the main package as it has no new dependencies - added --enable-imdiag - > this module is packaged in the diag package - prepared adding support for hiredis, hdfs, mongodb and zeromq- Update to 7.2.3 (v7-stable) a release providing following fixes: - regression fix: rsyslogd terminated when wild-card $IncludeConfig did not find actual include files. For example, if this directive is present: $IncludeConfig /etc/rsyslog.d/*.conf and there are no *.conf files in /etc/rsyslog.d (but rsyslog.d exists), rsyslogd will emit an error message and terminate. Previous (and expected) behaviour is that an empty file set is no problem. HOWEVER, if the directory itself does not exist, this is flagged as an error and will load to termination (no startup). Unfortunately, this is often the case by default in many distros, so this actually prevents rsyslog startup. - doc improvements - enabled to build without libuuid, at loss of uuid functionality this enables smoother builds on older systems that do not support libuuid. Loss of functionality should usually not matter too much as uuid support has only recently been added and is very seldom used. - bugfix: omfwd did not properly support "template" parameter - bugfix: potential segfault when re_match() function was used Thanks to oxpa for the patch. closes: http://bugzilla.adiscon.com/show_bug.cgi?id=371 - bugfix: potential abort of imtcp on rsyslogd shutdown - bugfix: imzmq3 segfault with PULL subscription Thanks to Martin Nilsson for the patch. - bugfix: improper handling of backslash in string-type template()s - bugfix: leading quote (") in string-type template() lead to thight loop on startup - bugfix: no error msg on invalid field option in legacy/string template - bugfix: potential segfault due to invalid param handling in comparisons This could happen in RainerScript comparisons (like contains); in some cases an unitialized variable was accessed, which could lead to an invalid free and in turn to a segfault. closes: http://bugzilla.adiscon.com/show_bug.cgi?id=372 Thanks to Georgi Georgiev for reporting this bug and his great help in solving it. - bugfix: no error msg on unreadable $IncludeConfig path - bugfix: $IncludeConfig did not correctly process directories closes: http://bugzilla.adiscon.com/show_bug.cgi?id=376 The testbench was also enhanced to check for these cases. Thanks to Georgi Georgiev for the bug report. - bugfix: make rsyslog compile on kfreebsd again closes: http://bugzilla.adiscon.com/show_bug.cgi?id=380 Thanks to Guillem Jover for the patch. - bugfix: garbled message if field name was used with jsonf property option The length for the field name was invalidly computed, resulting in either truncated field names or including extra random data. If the random data contained NULs, the rest of the message became unreadable. closes: http://bugzilla.adiscon.com/show_bug.cgi?id=374 - bugfix: potential segfault at startup with property-based filter If the property name was followed by a space before the comma, rsyslogd aborted on startup. Note that no segfault could happen if the initial startup went well (this was a problem with the config parser). closes: http://bugzilla.adiscon.com/show_bug.cgi?id=381 - bugfix: imfile discarded some file parts File lines that were incomplete (LF missing) *at the time imfile polled the file* were partially discarded. That part of the line that was read without the LF was discarded, and the rest of the line was submitted in the next polling cycle. This is now changed so that the partial content is saved until the complete line is read. Note that the patch affects only read mode 0. Thanks to Milan Bartos for providing the base idea for the solution. - Merged also fixes for unreliable kernel timestamp regression (bnc#783967), which will be picked up in a later v7-stable release: - imklog: added $klogParseKernelTimestamp option (default off), wich reverts to the 5.8.x behavior to use receive time for the kernel messages instead to try parse and convert the kernel timestamp, what is not reliable on some hardware (intel i7/Xeon). - imklog: added $klogKeepKernelTimestamp option (default off), causing to not remove the kernel timestamp from the message after a successful conversion. - imklog: fixed a conversion bug causing a <1sec incorrectness of the message time when the kernel timestamp is parsed. - Removed {} arround RSYSLOG_PARAMS variable in service file. systemd seems sometimes to not like it any more (bnc#788330).- Require syslog-service >= 2.0 on 12.3, otherwise < 2.0, which contain the /etc/init.d/syslog init script.- imuxsock: do not log EAGAIN in nonblocking recvfrom (bnc#734672)- Removed handling of the -c option which is obsolete in rsyslog-7.x. - Fixed build requires / deps to work on 12.x and SLE-11-SP2. - Initialized RSYSLOG_PARAMS env variable in service file. - Marked additional log socket config as ghost.- Readded things removed in previous change, that is compat version and params variable use, generation of additional (chroot) log sockets include file, xconsole handling in rsyslog.service. - Fixed liblognorm conditional build flag dependencies, removed all suse version dependencies. - Changed to install in /usr/sbin, compatibility link in /sbin. - Added klogd to build conflicts to resolve build service deps- Enabled rsyslog own systemd service file. This to resolve the current issue with a non starting system logger with systemd 185. (see also bnc#788330)- Update to 7.2.1 (v7-stable), a pure bug-fixing release: - bugfix: ruleset()-object did only support a single statement - added -D rsyslogd option to enable config parser debug mode - improved syntax error messages by outputting the error token - the rsyslog core now suspeneds actions after 10 failures in a row. This was former the case after 1,000 failures and could cause rsyslog to be spammed/ressources misused. See the v6 compatibility doc for more details. - ommongodb rate-limits error messages to prevent spamming the syslog closes (for v7.2): http://bugzilla.adiscon.com/show_bug.cgi?id=366 - Enabled compilation of kmsg, the kernel’s new structured logging system modile, mmaudit the message modification module supporting Linux audit format and mmjsonparse providing the cee-enhanced syslog format support message modification module.- Update to 7.2.0 (v7-stable) a full structured-logging/CEE enabled version which provides following features compared to v5-stable: * greatly improved configuration language – the new language is much more intuitive than the legacy format. It will also prevent some typical mistakes simply be not permitting these invalid constructs. Note that legacy format is still fully supported (and you can of course do the same mistakes if you use legacy format). * greatly improved execution engine – with nested if/then/else constructs as well as the capability to modify variables during processing. * full support for structured logging and project lumberjack/CEE. this includes everything from being able to create, interpret and handle JSON-based structured log messages, including the ability to normalize legacy text log messages. * more plugins – like support for MongoDB, HDFS, and ElasticSearch as well as for the kernel’s new structured logging system. * higher performance – many optimizations all over the code, like 5 to 10 times faster execution time for script-based filters, enhanced multithreaded TCP input plugin, DNS cache and many more.- Fix build with new systemd location.- Use RFC-5424 conform log format with RFC-3339 high-precision timestamps by default, removed obsolete rsyslog.early.conf.- prevent installation with other providers of syslog (bnc#780608)- Changed default /etc/rsyslog.conf we install to not use multiple facilities with the same priority pattern in one statement using the comma operator. This started to cause a start failure with rsyslog-6.4.x (bnc#780607) and seems to be a bug in rsyslog. Upstream report http://bugzilla.adiscon.com/show_bug.cgi?id=358, switched to use alternative syntax using semicolon separator.- update to 6.4.2 [V6-STABLE] 2012-09-20: - bugfix: potential abort, if action queue could not be properly started - bugfix: remove invalid socket option call from imuxsock - bugfix: missing support for escape sequences in RainerScript - bugfix: config validation run did not always return correct return state- add rsyslog-6.4.1-CheckConnection-no-return-in-nonvoid-function.patch to fix rsyslog no-return-in-nonvoid-function netstrm.c:258 in CheckConnection()- Update to 6.4.1 [V6-STABLE] 2012-09-06: - bugfix: multiple main queues with same queue file name were not detected. This lead to queue file corruption. While the root cause is a config error, it is a bug that this important and hard to find config error was not detected by rsyslog. - bugfix: “jsonf” property replacer option did generate invalid JSON in JSON, we have “fieldname”:”value”, but the option emitted “fieldname”=”value”. Interestingly, this was accepted by a couple of sinks, most importantly elasticsearch. Now the correct format is emitted, which causes a remote chance that some things that relied on the wrong format will break. Thanks to Miloslav Trmač for the patch - change $!all-json did emit an empty (thus non-JSON) string if no libee data was present. It now emits {} and thus valid JSON. There is a small risk that this may break some things that relied on the previous inconsistency. Thanks to Miloslav Trmač for the patch - bugfix: omusrsmsg incorrect return state & config warning handling. During config file processing, Omusrmsg often incorrectly returned a warning status, even when no warning was present (caused by uninitialized variable). Also, the core handled warning messages incorrectly, and treated them as errors. As a result, omusrmsg (most often) could not properly be loaded. Note that this only occurs with legacy config action syntax. This was a regression caused by an incorrect merge in to the 6.3.x codebase. Thanks to Stefano Mason for alerting us of this bug. - bugfix: Fixed TCP CheckConnection handling in omfwd.c. Interface needed to be changed in lower stream classes. Syslog TCP Sending is now resumed properly. Unfixed, that lead to non-detection of downstate of remote hosts.- License is (GPL-3.0+ and Apache-2.0), [bnc#778591] - The template subpackage was never published, remove obsoletes- update to 6.4.0 [BETA] 2012-08-20 This is the first version of the 6.4.0 stable branch. http://www.rsyslog.com/changelog/ - add rsyslog-6.3.11-glblCheckCnf-no-return-in-nonvoid-function.patch to fix compiler warning - rsyslog-6.2.2-link-libestr.patch no longer required - template functionality was removed upstream- add support for mmnormalize (via liblognorm) and template modules- update to 6.2.2 [V6-stable] 2012-06-13 http://www.rsyslog.com/changelog-for-6-2-2-v6-stable/ - add rsyslog-6.2.2-link-libestr.patch to correctly link against libestr- updated to 5.8.12 [V5-stable] 2012-06-06 - add small delay (50ms) after sending shutdown message - support for resolving huge groups - bugfix: delayble source could block action queue, even if there was - bugfix: disk queue was not persisted on shutdown, regression of fix to - bugfix/omudpspoof: problems, including abort, happend when run on - bugfix: if debug message could end up in log file when forking - bugfix/tcpflood: sending small test files did not work correctly - bugfix: potential hang due to mutex deadlock - bugfix: property PROCID empty instead of proper nilvalue if not present- Updated to 5.8.11 [V5-stable] 2012-05-03: - bugfix: ommysql did not properly init/exit the mysql runtime library this could lead to segfaults. Triggering condition: multiple action instances using ommysql. Thanks to Tomas Heinrich for reporting this problem and providing an initial patch (which my solution is based on, I need to add more code to clean the mess up). - bugfix: rsyslog did not terminate when delayable inputs were blocked due to unvailable sources. Fixes: http://bugzilla.adiscon.com/show_bug.cgi?id=299 Thanks to Marcin M for bringing up this problem and Andre Lorbach for helping to reproduce and fix it. - bugfix: active input in “light delay state” could block rsyslog termination, at least for prolonged period of time - bugfix: imptcp input name could not be set. Config directive was accepted, but had no effect bugfix: assigned ruleset was lost when using disk queues This looked quite hard to diagnose for disk-assisted queues, as the pure memory part worked well, but ruleset info was lost for messages stored inside the disk queue. - bugfix: hostname was not requeried on HUP Thanks to Per Jessen for reporting this bug and Marius Tomaschewski for his help in testing the fix. - bugfix: inside queue.c, some thread cancel states were not correctly reset. While this is a bug, we assume it did have no practical effect because the reset as it was done was set to the state the code actually had at this point. But better fix this… - Removed obsolete requery hostname patch- Added upstream patchset to requery hostname on HUP (bnc#755857) - Removed obsolete rsyslog-5.8.7-systemd-log-socket.patch - Updated to 5.8.10 [V5-stable] 2012-04-05: - bugfix: segfault on startup if $actionqueuefilename was missing for disk queue config. Thanks to Tomas Heinrich for the patch. - bugfix: segfault if disk-queue was started up with old queue file Thanks to Tomas Heinrich for the patch. - bugfix: memory leak in array passing output module mode by 5.8.9 [V5-stable] 2012-03-15: - added tool to recover disk queue if .qi file is missing (recover_qi.pl) Thanks to Kaiwang Chen for contributing this tool - bugfix: stopped DA queue was never processed after a restart due to a regression from statistics module. - added better doc for statsobj interface. Thanks to Kaiwang Chen for his suggestions and analysis in regard to the stats subsystem. by 5.8.8 [V5-stable] 2012-03-05: - bugfix: omprog made rsyslog abort on startup if not binary to execute was configured - bugfix: imklog invalidly computed facility and severity closes: http://bugzilla.adiscon.com/show_bug.cgi?id=313 improves interop with systemd journal- Detect if we have to use the new /run/systemd/journal/syslog socket instead of the /dev/log under newer systemd versions. Obsoletes listen.conf installed by systemd (bnc#747871). - updated to 5.8.7 [V5-stable]: - bugfix: instabilities when using RFC5424 header fields Thanks to Kaiwang Chen for the patch - bugfix: imuxsock did truncate part of received message if it did not contain a proper date. The truncation occured because we removed that part of the messages that was expected to be the date. closes: http://bugzilla.adiscon.com/show_bug.cgi?id=295 - bugfix: potential abort after reading invalid X.509 certificate closes: http://bugzilla.adiscon.com/show_bug.cgi?id=290 Thanks to Tomas Heinrich for the patch - bugfix: stats counter were not properly initialized on creation - FQDN hostname for multihomed host was not always set to the correct name if multiple aliases existed. Thanks to Tomas Heinreich for the patch. - updated to 5.8.6 [V5-stable]: - bugfix: missing whitespace after property-based filter was not detected - bugfix: $OMFileFlushInterval period was doubled - now using correct value - bugfix: ActionQueue could malfunction due to index error Thanks to Vlad Grigorescu for the patch - bugfix: $ActionExecOnlyOnce interval did not work properly Thanks to Tomas Heinrich for the patch - bugfix: race condition when extracting program name, APPNAME, structured data and PROCID (RFC5424 fields) could lead to invalid characters e.g. in dynamic file names or during forwarding (general malfunction ofthese fields in templates, mostly under heavy load) - bugfix: imuxsock did no longer ignore message-provided timestamp, if so configured (the *default*). Lead to no longer sub-second timestamps. closes: http://bugzilla.adiscon.com/show_bug.cgi?id=281 - bugfix: omfile returns fatal error code for things that go really wrong previously, RS_RET_RESUME was returned, which lead to a loop inside the rule engine as omfile could not really recover. - bugfix: imfile did invalid system call under some circumstances when a file that was to be monitored did not exist BUT the state file actually existed. Mostly a cosmetic issue. Root cause was incomplete error checking in stream.c; so patch may affect other code areas. - bugfix: rsyslogd -v always said 64 atomics were not present thanks to mono_matsuko for the patch - Changed /etc/rsyslog.early.conf to just include rsyslog.conf, fixed spec to use sd-daemon.[ch] from docs on 11.4 only.- Cleaned up the config files a bit, updated comments in config file, marked the /etc/rsyslog.early.conf obsolete. Note: rsyslog will be started early/before network using its normal /etc/rsyslog.conf config file (adopted scripts in syslog-service package). When any kind of remote logging is in use, then on-disk queues should be enabled. To start it after the network, please set the SYSLOG_REQUIRES_NETWORK=yes variable in /etc/sysconfig/syslog (bnc#728565).- update to 5.8.5 [V5-stable] - bugfix/security: off-by-two bug in legacy syslog parser, CVE-2011-3200 bnc#714658 - bugfix: mark message processing did not work correctly - bugfix: potential hang condition during tag emulation - bugfix: too-early string termination during tag emulation - bugfix: The NUL-Byte for the syslogtag was not copied in MsgDup (msg.c) - bugfix: fixed incorrect state handling for Discard Action (transactions) Note: This caused all messages in a batch to be set to COMMITTED, even if they were discarded.- Adopted to require new syslog-service package on 12.x, that provides the /etc/init.d/syslog LSB init script and systemd syslog.service service file. Removed rsyslog.service file installation from spec file. (fate#311316).- Update to 5.8.4 [V5-stable] - bugfix: potential misadressing in property replacer - bugfix: memcpy overflow can occur in allowed sender checkig if a name is resolved to IPv4-mapped-on-IPv6 address Found by Ismail Dönmez at suse - bugfix: potential misadressing in property replacer - bugfix: MSGID corruption in RFC5424 parser under some circumstances closes: http://bugzilla.adiscon.com/show_bug.cgi?id=275 - remove rsyslog-5.8.0-memcpy.patch: applied upstream - fix build for older distros: only buildrequire systemd-devel for newer than 11.4, use systemd for the others- Fix build with new gnutls- Require systemd-devel to follow package split.- drop modules imtemplate and omtemplate, the 2 modules are base templates for people who want to develop their own modules.- enabled a few more modules which dont pull extra dependencies: impstats, pmcisconames, pmaixforwardedfrom, pmsnare, pmrfc3164sd, omruleset, mmsnmptrapd- guard the file list entry for rsyslog.service with if {with systemd}. Please keep the package working on older distros.- upstream asked to change the syntax in the default config files to the new syntax: old: *.* * # (write to all) new: *.* :omusrmsg:* old: *.* $channel new: *.* :omfile:$channel from what i can see we are only affected with: old: *.emerg * new: *.emerg :omusrmsg:*- Updated to 5.8.3 [V5-stable] - systemd support: set stdout/stderr to null - thx to Lennart for the patch - added support for the ":omusrmsg:" syntax in configuring user messages - added support for the ":omfile:" syntax in configuring user messages Note: previous outchannel syntax will generate a warning message. This may be surprising to some users, but it is quite urgent to alert them of the new syntax as v6 can no longer support the previous one.- Updated to 5.8.2 [V5-stable] (bnc#701282) a maintenance release, containing only stability fixes: - bugfix: problems in failover action handling closes: http://bugzilla.adiscon.com/show_bug.cgi?id=270 closes: http://bugzilla.adiscon.com/show_bug.cgi?id=254 - bugfix: mutex was invalidly left unlocked during action processing At least one case where this can occur is during thread shutdown, which may be initiated by lower activity. In most cases, this is quite unlikely to happen. However, if it does, data structures may be corrupted which could lead to fatal failure and segfault. I detected this via a testbench test, not a user report. But I assume that some users may have had unreproducable aborts that were cause by this bug. - bugfix: memory leak in imtcp & subsystems under some circumstances This leak is tied to error conditions which lead to incorrect cleanup of some data structures. [backport from v6] - bugfix/improvement:$WorkDirectory now gracefully handles trailing slashes- Add systemd service file back (bnc#696963).- Removed touch of obsolete /var/log/boot.log from spec post.- update to 5.8.1 - bugfix: invalid processing in QUEUE_FULL condition If the the multi-submit interface was used and a QUEUE_FULL condition occured, the failed message was properly destructed. However, the rest of the input batch, if it existed, was not processed. So this lead to potential loss of messages and a memory leak. The potential loss of messages was IMHO minor, because they would have been dropped in most cases due to the queue remaining full, but very few lucky ones from the batch may have made it. Anyhow, this has now been changed so that the rest of the batch is properly tried to be enqueued and, if not possible, destructed. - new module mmsnmptrapd, a sample message modification module This can be useful to reformat snmptrapd messages and also serves as a sample for how to write message modification modules using the output module interface. Note that we introduced this new functionality directly into the stable release, as it does not modify the core and as such cannot have any side-effects if it is not used (and thus the risk is solely on users requiring that functionality). - bugfix: rate-limiting inside imuxsock did not work 100% correct reason was that a global config variable was invalidly accessed where a listener variable should have been used. Also performance-improved the case when rate limiting is turned off (this is a very unintrusive change, thus done directly to the stable version). - bugfix: $myhostname not available in RainerScript (and no error message) closes: http://bugzilla.adiscon.com/show_bug.cgi?id=233 - bugfix: memory and file descriptor leak in stream processing Leaks could occur under some circumstances if the file stream handler errored out during the open call. Among others, this could cause very big memory leaks if there were a problem with unreadable disk queue files. In regard to the memory leak, this closes: http://bugzilla.adiscon.com/show_bug.cgi?id=256 - bugfix: doc for impstats had wrong config statements also, config statements were named a bit inconsistent, resolved that problem by introducing an alias and only documenting the consistent statements Thanks to Marcin for bringing up this problem. - bugfix: IPv6-address could not be specified in omrelp this was due to improper parsing of ":" closes: http://bugzilla.adiscon.com/show_bug.cgi?id=250 - bugfix: TCP connection invalidly aborted when messages needed to be discarded (due to QUEUE_FULL or similar problem) - bugfix: $LocalHostName was not honored under all circumstances closes: http://bugzilla.adiscon.com/show_bug.cgi?id=258 - bugfix(minor): improper template function call in syslogd.c- Add rsyslog-5.6.5-memcpy.patch: fix overflowing memcpy call in runtime/net.c- move most of the additional requirements and subpackages into conditionals so we can switch them on and off by more easily.- Dropped obsolete rsyslog-systemd-integration.bnc656104.diff- dont ship the systemd service file for now.- update to 5.8.0 (v5-tsable) This is the new v5-stable branch, importing all feature from the 5.7.x versions. To see what has changed in regard to the previous v5-stable, check the entries for 5.7.x in /usr/share/doc/packages/rsyslog/ChangeLog. - bugfix: race condition in deferred name resolution closes: http://bugzilla.adiscon.com/show_bug.cgi?id=238 Special thanks to Marcin for his persistence in helping to solve this bug. - bugfix: DA queue was never shutdown once it was started closes: http://bugzilla.adiscon.com/show_bug.cgi?id=241 - dropped patch rsyslog-deferred-dns-query-race.diff included in the release - refreshed rsyslog-systemd-integration.bnc656104.diff: most of the patch went upstream just a small chunk left - fixed the with_dbi conditional, it was using the build_with_relp. - added a new conditional with_systemd and moved all the systemd specific things from suse_version >= 1140 to the with_systemd conditional. the patch line in the preamble should be unconditional.- bugfix: race condition in deferred name resolution (id=238) from v5.8.0 candidate.- Updated to 5.6.5 (v5-stable) with following bugfixes: * bugfix: failover did not work correctly if repeated msg reduction was on. affected directive: $ActionExecOnlyWhenPreviousIsSuspended on * bugfix: omlibdbi did not use password from rsyslog.conf closes: http://bugzilla.adiscon.com/show_bug.cgi?id=203 * bugfix(kind of): tell users that config graph can currently not be generated closes: http://bugzilla.adiscon.com/show_bug.cgi?id=232 * bugfix: discard action did not work under some circumstances fixes: http://bugzilla.adiscon.com/show_bug.cgi?id=217 (bnc#676041) * bugfix: potential abort condition when $RepeatedMsgReduction were set to on as well as potentially in a number of other places where MsgDup() was used. This only happened when the imudp input module was used and it depended on name resolution not yet had taken place. (bnc#679030) * bugfix: fixed a memory leak and potential abort condition this could happen if multiple rulesets were used and some output batches contained messages belonging to more than one ruleset. fixes: http://bugzilla.adiscon.com/show_bug.cgi?id=226 fixes: http://bugzilla.adiscon.com/show_bug.cgi?id=218 * bugfix: memory leak when $RepeatedMsgReduction on was used bug tracker: http://bugzilla.adiscon.com/show_bug.cgi?id=225 (bnc#681568) - Merged systemd socket activation support- update to 5.6.3 (v5-stable) with following bugfixes (digest): * action processor released mememory too early, resulting in potential issue in retry cases (very unlikely). * batch processing flagged invalid message as "bad" under some circumstances * unitialized variable could cause issues under extreme conditions plus some minor nits. * batches which had actions in error were not properly retried in all cases * imfile did duplicate messages under some circumstances - enabled plain tcp input, unix socket output, last message parser and the libdbi module as separate package. - disabled systemd patch for openSUSE <= 11.3- Improved systemd socket activation support to allow multiple unix sockets and activation in forking mode (bnc#656197).- update to 5.6.2 (v5-stable) with following bugfixes: * compile failed on systems without epoll_create1() Thanks to David Hill for providing a fix. * atomic increment for msg object may not work correct on all platforms. Thanks to Chris Metcalf for the patch * replacements for atomic operations for non-int sized types had problems. At least one instance of that problem could potentially lead to abort (inside omfile). - Increased mark frequency in rsyslog.conf to 1 hour - Enabled duplicate message reduction in rsyslog.conf to catch at least buggy programs running amok and writting same message zillion times until the disk gets out of space (bnc#656197). - Merged rsyslog-systemd-integration.bnc656104.diff (fuzz=0).- update to 5.6.1 This release addresses a TLS bug, that has been bothering a lot of users lately. It stops rsyslog from looping, thus disabling functionality and bearing the risk of unresponsiveness of the whole system. Other issues have been fixed for imptcp, failing testbench, segfault on empty templates and failed compile. For more detailed information, please review the ChangeLog and http://bugzilla.adiscon.com/show_bug.cgi?id=194, http://bugzilla.adiscon.com/show_bug.cgi?id=204, http://bugzilla.adiscon.com/show_bug.cgi?id=206. - applied systemd integration base patch (without the service and socket unit files, because we'll use same for all syslog damons) extracted from git master (bnc#656104).- build with libnet-devel on 11.4- update to 5.6.0 This release brings all changes and enhancements of the 5.5.x series to the v5-stable branch. - bugfix: a couple of problems that imfile had on some platforms, namely Ubuntu (not their fault, but occured there) - bugfix: imfile utilizes 32 bit to track offset. Most importantly, this problem can not experienced on Fedora 64 bit OS (which has 64 bit long's!) - removed obsolete patch - xconsole-pipe-loop - rpmlint - name-repeated-in-summary C Rsyslog- Added $klogConsoleLogLevel 1 to the config, to use same default [KERNEL_LOGLEVEL in /etc/sysconfig/syslog] as klogd (bnc#593699). - Improved filter to discard iptables msgs higher err on console, changed to set default file template instead per file, removed duplicate filters (bnc#593699).- Applied fix to avoid a tight send-retry loop in case there is nobody receiving the messages sent to the xconsole pipe (bnc#597293, http://bugzilla.adiscon.com/show_bug.cgi?id=186). - Disabled relp support for < 11.3 (librelp is new) - Fixed to create /var/run/rsyslog in post-install (rpmlint)- dropped install_all_modules_in_lib conditional and all related code - new subpackages - enable RELP support. new depdendency librelp - enable diagnotic tools. - enable UDP spoof support. new dependency libnet - moved module paths to 2 variables defined on top of the spec- Updated to rsyslog version 5.4.0 (v5-stable). This version begins a new stable series based on the 5.3.x series, which has been proven rather well in practice. The new 5.4.0 contains fixes for all known problems. See ChangeLog file for a detailed history. The main new feature is speed: several optimizations were done, including support for epoll in tcp listeners. - Added new lmzlibw.so and omruleset.so to the file list. - Recompressed original tar.gz source archive using bzip2.- Added read-only RSYSLOGD_NATIVE_VERSION sysconfig/syslog variable, that is set to the native mode version number for the -c parameter while every installation and used in the /etc/init.d/syslog script, except the user overrides this default in RSYSLOGD_COMPAT_VERSION.- Updated to rsyslog version 4.4.1 (v4-stable), a bug-fixing release, providing some important fixes for issues that have only been detected after the beta phase. Some of them are serious (like a segfault when UDP messageforwarding is activated), so users of 4.4.0 are urged to upgrade to this release. Changelog for 4.4.1: * features requiring Java are automatically disabled if Java is not present (thanks to Michael Biebl for his help!) * bugfix: invalid double-quoted PRI, among others in outgoing messages. This causes grief with all receivers. Bug tracker: http://bugzilla.adiscon.com/show_bug.cgi?id=147 * bugfix: Java testing tools were required, even if testbench was disabled. This resulted in build errors if no Java was present on the build system, even though none of the selected option actually required Java. (I forgot to backport a similar fix to newer releases). * bugfix (backport): omfwd segfault. Note that the orginal (higher version) patch states this happens only when debugging mode is turned on. That statement is wrong: if debug mode is turned off, the message is not being emitted, but the division by zero in the actual parameters still happens. - Removed jave2-devel-packages from build requires again- Updated to rsyslog version 4.4.0, the actual stable 4.4.x series. It provides several bugfixes, performance improvements and new features: It adds generic network stream server for syslog, the capability to rebind the send socket of the UDP output section, allows multiple tcp listeners, multiple recipients in ommail, new plugins as omprog, improved documentation and testbench with a config switch. Please review ChangeLog file for details. - Removed obsolete moddirs patch (included in 4.4.0) - Added java2-devel-packages to BuildRequires (for test suite) - Enabled omprog and omtemplate plugins, added them and the lmstrmsrv plugin to the base-plugins file list.- Improved config file comments about usage of additional modules provided in separate rsyslog-module packages. - Enabled GnuTLS (syslog-transport-tls) support module.- Updated to rsyslog 3.20.6 [v3-stable]build70 15484294548.33.1-lp150.2.6.18.33.1-lp150.2.6.1rscryutillmcry_gcry.so/usr/bin//usr/lib64/rsyslog/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.opensuse.org/openSUSE:Maintenance:9537/openSUSE_Leap_15.0_Update/97bb565c4ef5af2343261ef063ed8775-rsyslog.openSUSE_Leap_15.0_Updatecpioxz5x86_64-suse-linuxELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=41c99d801bb20e5830e603c2cfea882caff62899, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=1407491c6481e33cdf1b903ac89bfc600bffe158, stripped R RRRRRR RR RR RRRRRRR R$8L[8Outf-86e0fac2b7c81f9c402329b28f875800162754a0a7056eb657a422ab90dcbabf3? 7zXZ !t/] crv9u=#)&=$,[ҿ IVt^]IX9 [ Z^H^~Z)*aEA Y7Q/h!c;̟ _B6J\OVj4q4ws!ނwTGΙFo 4 -8]NTA|o m)ԁ1F/.9jF1ٱR|&vE; ,IZj͛//"גr.lh_ɧygZ Bֿ|կE:y~b;tۗr (kkmeD8Ea<qmҏ4XOey ] NEh Z71y9B0壮U3 qMW3ݺanCY ܂Q|N!["aOqd^g(`bĆB@óדG6q%GV?(cW{F^D(bwCS -qs&óƈ/ɍБҪl+-iv#uw`W[AA K?wށjP6J}JEaN/>[Lt6ZDЫ#;qL&1wu\(}v+oq*G<|r_s,:sټUofCqhKLX S ;Gج>0ΈtK21$xl)AlaK܇JEl'*1m_SIf92s^&ᓍB*W_SKMp9,դqM/د%:ǎ{!l]o}ZjiXV hʅw}T9w\+)[| ,Qv~jamw;M챕2HO3NJ- /j- |HK^&>bZ$N <9Cj% 2˪:2ual=+Pze9f٦(,"`Gc^$/ Zl*]Qo@P3unb􎶷!T":G zmio R ( .:J­spFΖm">U gPYy]iZQ5VАUEk_vvg`HF r7Z!rރdާVѭTϙvee-$iwT6dY'*X&tLGiJթqvMM$řSCUܥ-M oBU9cğ\U}ܼ]TA,xhh Zs^y8v tj׵ n@LD[Ivy*iуqnj{KB玵ewj*Qͪ%n"CIQaZ'ҳcNkMS~^ 6k錍S3 H٦ov nsP38.@ ^}.\.ݖէks avA.u«7?zBX]4v!֮`D)q:<*>Zk,Jl`MLQGJof!RuRLzl\I=%nM%Xc5LWNLj&#p4RJ|-ljiz,2y xS'># bF v.;b 'Wɪ(Qb Y%FN/7i qnpDfxzTiѦ կ\ T}'5czJ%R3'*JEA.wTIb,X}4v䵋'e^8n6$ J4XF%ɠqޖ y%\R .bxB@]k8*7!ELhڭ)-a I.׆9@!{2~آQG~g "K>fbֻQH W_#҅rMd%%cy,ѪyG_a?X֠=&)/5 v^yy0_;z,%xB9at_ښU97\I\N2:{u :V>LlK(6`B \" ,H:FC`2=}QUh*k"65朆1y@pt:S]BPیҭg ӕm9<{L\P(8ޘY.k6rVY!s aӵOCXP<"~GK`+͐|𰄛6w5;dݦrJ|  T7S+N]4E-s)-XŃ.MUQLW< nFn 4곃 3 בVbq}húzOy.v3xHb%KO< OR' bZ_6?zMڻaKz9R/QlGHi\`jΟ#Ep&juMk]Զ {FC kEvZw"͓Z]ŌOE\9ca򉩛‹C|5aynh To mg0ΧF}゚Cʎa,cd| 4m͛ha @? *=5x mHʢ]j"#L^ChόT(׽c9p"uW@O`Sq,*ŌJi×U<فĹDr0"k/TDlX`zU:^'ԝ e9,G/BsSbܮQ-\یB(1DU:tӝ1`1a}+ rd߲3"LPVDX0yM2emm G,Ih qNcE`̃JA΁?(80kC;Țap!I^Z)19'iMhTvK].f'<ۂsCwۯ{pԕ=EF#lx^fD}M&[&kk 퐜 bOZ6t+RkҌ]"4 kz\G bKr;JfbDQQSϦ]]gAsnK4(3N^RQa\^0)J.e_B#z "@燐d,kZ΁Ļ\KZ{A Ycn^|dwow"j$ n-,{)i=ׁ Hز ũL@H֋Al^^ hTp  rgJYC8w}Zg&9N8{3#- ΨrQRBlWY76y70"@2F'$!N$,Øi, B8O'N ,KA|'-u4ع}ZqorV9Sӽ=. D]=*\~xo NVHP )/j!~ǡ|ي VXo|;Lߧ8gVuUbiIXFs|%h46<+$+kdPw 2ߛe U_<4JxȎ60ƨ' Mp nIUo9`ZGp;j3 G:kcp/*nydJ0 O0c XӯX 5Z}/cȓ#oeBX.n1*,D{:GrnD( >8bxm&x,0>X(f gkTti[截2UtW6YF?}OEqESτ@?lR{UM8;Ai̝p#$/fhMszj$|EHolr(ޙHk k\kۣ|552re1'+uqG#BbA+gCb^˖zzBq*SgC\՝FQFTU;ӒaX㟰$VSCѣP&7D`9؝F/%zW?ԖnV`I}KyV^qt1pLqV>3\PĥG)KlLU7lWmrq3үά+؅^byT"clJ_rU{J@44y#7XN>bʲ8nC)ɉNNFAOL8lDS ve, G@-bCrf:cGxXNhkOG#r=V:/r/r? iҪl#{˼҂3 Ų2 @:8:&kn~#qrz gC c]ZU.t:N"aO\pHr:ޥ7bѦ1ri䢐N l 7`+wM<co# V#(k>2oنױWp<#IPL~LKh Wc9~$ˎTŻyRa8(_:Md(H{Bl.%{g cDb/u\aʹW9 E>pR :m iRNLL{ %z+(o&mF ]d;U]Afu}tjpCb~v>[lNTY[z,^3}R6'fjVn(K`N")ߍdکPx,|u+A@uw0|%APU`OO1. ؑdCvɏO5EBj#4kb=KHFz9GFE=_ue sHRu,蟼0Q G$&>C9p|@_@@[43j K6:BWW4mS:&ⅻ$ | ^.(ޣyIB -EbWHt# |iݟNېb۰kn2~}#'bcG(!@4H VB^IW?\ETؗ} wo OEi'DD+TLi:4Xg82EשǸє&"$c ';R%o~"z۶duJc'na cˤf ]:Qvbk-gs _Z_9#/|{Seny;\|ģ2Kl \ߎJalgjxUW02QKUHCY{н''jy!э"ܒVAʶ{>@05< =RWk-}.zbDmCtbظ:᫡W ~xawL]y)O&]1fژ A0_cZqNL+^,cU526\/̀,mMAՠt嬝0B7v6xQߕ ԃzpi՜Zo3IxjKO~ 8oB*ׂVu=nNJy  8a>T7ch^n|)r~fM]mtP_VR9j|@A|̾-duq5TPMJJjѺ p7"qf+O<z8—V/^G& %,G05lƹ‡E4F >?!%y[\0@oF.CeN#e{1b'--r'"'!|Rd~ -G0dJs+BvaVr*WmbE7kxouEyA ? }IQ1Һ8 )g, ʬAt6US0ʛ }A Y=JgleCG&X>vCA|F4~Ѻ|=!ntـ9 &*Ey>,  d6 !܋'B yQvJ!vBi!m fFhK,*JwG7Pn8Ҽ[x1C[)]AK|wp.A G= w/I1UC\[CM)}=hD14ޤ!x w %@zl"[,=vR N+{(dy7E2@3[TL, AzE 8䌧ΪCO8^LB@p gtݹM##8*F02w3 Yb`/^@ qxZ;+|$1uAix5C$XX;`$'m߻ D4ӯ"kCx$3PcHrdzGY/ͤښCࢋb p$nPD-Y&džMz؛-{%߄h½\oToF$i9#nń7:o=ɢb pWk,2n'tJ"bf;Gs;¤jߗ,06bn *k;8>)اd͍°Z ]E{yD?yFi|恥}oYˁm=/3S@YO(-|h OZɖ4IW((uV&bcU% gb|Fv&7eI=JNaE0Mj;oej˥t&Ð1bHy[&,:/\-4WwU4⌌n+Z :~[ liF9h[97xVяx &ciMmb+\bfnư3h:We VH2$3|B3"ҤVRCtRPcIqXք0axLP*hrRkzۦG:˅o XV[(`BԌ_PW7 ʯ_k@;EV ]twt gqjl#Wci`ݻ_V]VS}=rOqӾ.^]cJY#2)e=Iᏽ?s3OӃ=B:u ZRM~rE D)1]3f #q0kr>Se3v ̈e[x&N谿=utptDV9&'oTat~$ゴu>*$׎"4"I {l0Hd"QSӫ&*o8KM2Bh)IR,+=~A,tl⓿AŃ l` dW@y$GmA"rs $@|c+4ͩpcpW0֐rإprz%/Z=sI> $a_$j4lG:ٌbXȥsLB__@t&)?v]|4L3{U֒Q;(=]roJ((VjY(?:4vi?^ W7Lvrӈ-ܺάUo`8Ѧ>V 6u޹̀~ 1Z!ip]C d|K+vcezsHH&r=3&O؝F/hhbptwP"|K D"\)H"ʈsIx!P:uG8p'pzlHʀK )ߝLv;dg6<-!Ҳ c=ۈK7đ6w*UtGrfLj❏)8t)I4:?4W|F7KC0Lc_ϼe9$ | ũ*Q(5Y{QzmTDr!]7ك~m(@^4 CA{dSt$HYw`3MfNK^E1&4+媷^2D΁),Z|kmX^%4u*~m[a=ڐrr 'C($D]$S}}Nd/u mFXۜk픬 DJItWksiQFgсsKՊg6qإ8^ݙדwAm%qgVIJd vfj6G!$!%Ptz }9 س4쨙Jaغ0%2҉ wvZn|4APMy]5fAZ1.@ uܡY,yw기7OYvQ JTDJڷjMoW(YbE]EaY70pN |)\,7Ұ8+49=.[ I"d4H T{u\?b|fDz8 02p¦ C@JA}q-2=3q #FF;Csp8@{-x؏,œjsf@fؤX''jVߚV-|%ܘ.5Vr|Hlg;0`?H[#'@*< 8/Ha~**UM˭ωbAL xTxevVv9Rni5Jgk<*j`}Kux`!jO0og.v٦in[,c2M`$aM U6?u2=42|Z&>xL` hNSG9fBG'NM?A:Cc&aGvLU*5ܡo+i$:s$&F決S3JHvIt$Фw %kv9DI[|Z] o"վʇ5 qwC']&x?%'n?tR}]E}!5@f>\-> i·ԧ X2|yO&u 4sw^1sEl GTƶ1CHہ>@ Xo3G۶z#X?dRhBg56PY0yM[P/4KC?n<0ˈX]QXo+e[0mpH"ˍEB3oZ$D'R"azQ)@ϚHRi$!ty>n]goAj%yr'N-ǔZXbZt8SdǪ bTxfe*~7zo w$3S*9%S7P؛+4e}|G-A<[ vC0`G^sy:xc*?<PK}Fo "DWlg[[}(MQwޞZpE#{ "}-& wՍl r,6\+vQ).Ҷ|1U\ֶ.gI||Stx n<-'ݮ)줯µ2N̦BV@!hmH3=Ty+'UzʦiXNmtn,#$hRG|rT]LS 3%*h[AT(oi-hosz_Swv j<)Z}^ϴI X!"C*Nڀ6%ȇHO{ xWMdFDTnЏk"y]eewt[n & 6d3L2i7p[:Gqxc7`2Kw 1G NNȡmZ—mhdxtMo}G !W0Ȳ¦!vZ8z tne\ aYeʰ;ᜆ#p` Z0w仆n+%bwYyi(FcڴEðoWRCbؖyV)˹͇GQ'jXڛn@an#ej2Z=ڣnY*THWԗ-tS1Vn'CGrP?1mP'1wA-ON?Au?9AH0_p}{Ak{ .={=bf7=[BpγUK8]$4ǻZbk#ܲ4m1n|yq-v 8%I~䝞 *ߓXW: vvRdzuJ[9fN:h'r<*Fkd $DQdIn!г;S>zc{"2"* 0DM(ffpOr3.'PHP]si\1U(A|G#6UT2…͹AY|Վ9R|_Ҏ5l[0Ip/}>ϳK.sYJ D$R*dB[{` q*6Jl/{##Y[BV5Pi=R}7d%l g+P,]8^/˖OqTG`*zZ~h{3qEIcǡ6hоd3\B^,v9}tjGGdj&і/r/N' \g dP:$aT+KzTc3Y(( =2>^Qd+ˮ5F9\~PAgH7Ѓ VMNWˆ[$[ ::wt*aU+-ݸE/] ~ Ղ;l\yt=L[YjE#-<ҡ(g:23 UY3ئ/%j'-)ڄ~d ~<Ϙ=|;`f4([wz ϟ;~TlG5.u }: ` ?3YGWI3E_ZHGt}_q7Cm8i/z& T}2+l/<.wt U'-$:;K{&}rFC>-xBܘ{\N$G [t"[{pr5PX*Ive?S#;PM}FKfbk?Hb v'¤iG@d͈^Tc( =c"1 h83KPW ؠYu>Cϭکjԓ~`P0Wds4Bz1{+mbnW֩IVj#jZWO $RFdYhWii[!/J  k3[Z8;B1zw/LнJt[L!%MP* -v"((8#O>oure=-(l+c&2\9 IGˑp%lB73t.j䫃FGU,CXƅil#SEZHRGp=8ڵ֧ 8 ;WÆ3g,ifOBТ/TfySQ~t@S4ظ.:v4`5Fbά /q*JVϵװy7ӿ\g-ցv]P{윔2}t()l7%9}8GecQk%!u`eX0DdA<$= I?wf].8,xYlɶmxl}K>NTLG,e8 ^XcQdm'1!1y9 bwJ &OR_…Fn2 n~E dB?=$ƅ%Uc:P4Tylޛr~m&E 15P_bNIR(E< ]VY u +$4xAG'HkI]e8$r7(gN[2RkK<l\z &LD*xPhLNٟijr5 ^"u<Sa(apoFu͇-1TeJ_|v`?-^B@: hq2&}DMư Y$la}tWY$_A gg1z*$w=oD8q^$ȯګObV]{`M6]uuaeoke"5~r9^ژOy Hv@#()1`j QVh\āꝋG dごMұv'b_)x%`ؚHz=1ەj5Rs$|rhVg-P ݠ2N&BR>ENF@c___ Exfn jE<7u"b2|z@m2䚔 @4[׃y\eVtF}Wxgny',h%y፤W6 D-NmT+gw.t4LR8ԋ7^*zIF X8Y|X#e.Rj}s<_x@H@ǒv`•I9|7qLZwIYʳU`(mڳ*$/WXh)@pBy{(2ub@]9NVZr2;n5E +59Y+jxReѳn[e'Xٴ=F嬨ޓtrֈ.F|7à N`@%o57N~e'N, 2-i\=v2['ب2+{/SL<"څc?JyyzA'C:\Tcܮ{'ݎ? tW nQ|#䕸vK;qy1|2( nyIfZ-YaJ*z)C)hm@BoF1uVR)>fB,1@-LFԳ\ϦucL߫K3f7m7 Y*0#3Lz*-期>,݅} q mFSΓ&YAAE-AG(o2͚:C޺iH|G"xDJ?d37kȼ_IN ( 6<gYVSö'WICvAk"ywcICfa *x1z'1سV~i ~K01."30==թ{:'¸])PV7"aRɆ8} PP6gnj{qc:p\fCs4Tb+ e.G {]H,|q_Y!eFvLPoNI%H|H1a]@ Y4eұucHcȢ QSfb"Ϊώi\Nq{> ar&.G=ئɚfOj; ·OlG;Iw671G۶m%0*~"NO5Yy - @:F52ʳ /Ҵ2]4D(=hY> )a^r_381>nŠ] 2ޮC}Ϲ@^-A Qo,Ta-zZPw!%PT b-PR}u 31W݈.~RA#Wl8 {H#1:+DQcqR`ܷ VL{`rZ_5utY$x.{٘Tqȹ#$J6PG_2c@FlJ]z'gOg8Gzgd*|ݦvOzSnjrm4D08 㸸l2.P'5 {،g8 \_Lb75tcC3#y ^7z /a=#v&х:Acgy'؄E)MvՇ6Rsnsݺ7+Nh*}٭:m-kp=X"NUgqL r 5+'RmX깦R-dlV'²e2l?ECff1u_=XLGuREoލ3"=7OYx&]ormzrzNUU8 ڻ vڍqiUÚG1 }R ^U. yoXM]m)dK - 7"2V\ř/֚?eYR^@`${ ͿR*;(VU-(Hym=M|Ձ a\0rh$@<^Yp |GB/dP򓜦yPb|&QA:/eG(nZb9QиJ2/=r 9Gt*_ƃ]Dm"j3ρ gT\y\y`\--zP*?0ER ! oF iAUy 5䡱̧bᙈJ.~[~|xahE(f13z"k(8;f866ĩ*:ovc W$:Hb,q5Ņ;Q?`$3AwhMOc=fET.m} j/F2ִԉ52Q?[k%7R rw}EnHJ B&\yx UqG{ƌF9MQqcKͨ_>Љ!ˀt);1nSnqȗs=0꣚Ħ!S7þ7ݬ4y'Wm 2q$:hV/M 33&Iz 6Ufw~kŸG~1nݞhc : k꾛 ;@<{r w]8g\FnjߌJ/4!qoc1$trDY?/]#3" JC:KԆ浦"(.Ҙ,:iui4$ԘC{ǒ^Ja8uPJxzT=YZG~]pb2O|KtUǥw8-vټ$<Ո|Azjsg1{:$Q@0Ep"~4QIg{.뭈Wc vpk@f kPeU ҍ,ntFZ{3KqB)4Ƶ \U{~J˶(I >>hQA!ckf;&;5!ѡ=I-<D yBj=xWD~ZcUb_2ssz2&ו[_ v_:&["җLX-P]\}{¤Y6GG#}X(22(U6#ԛb"8Ы43kf^MvF^Q@bcٲ=Ľ8",)HU]_xw;Ɍ˄M -<K9ΡU < &S;T~)Go'-\gԏdw|-BzD,~ӵ=@2t KikN*mE]<]2A.4T1 3ɾe[6㲡O8gf,څŠs`69O>١2}]:,\<6l"1QwJMap)w:봷ԆЉ%Q~zufpii&X _xfC/]@CkJn=Oa[@ѱUKJOK;iBcE킲^E4WN ^:x5[{ݩ3\k9fR@uE ׌cf:;TVT,u]<ެ=ʬA*&F}'罀= &й'̆g|fu%)} j,CG6Dj~Ev@z1v@;S`kcUbdx'/S# 2'I(M:/2TbuV Q ^alWpT Ew$\i6]TONbļn(XF9c=+:t=taziK i؂E2J2)2lF@N&J-\@Jy nM2Ƕ<=-֮b},uPSdH~Hkk,GEu/+ԥXa{q L8&eLQIWH=5}A?ʧ%:dJ]. ܴwؽ+~&JA6_-PF O'xOJ Vu#r_q*?D/N|1ՊfTN= r~AA# xdTf w-0LJq JĂ HfFVjҎ4@x"'4KW~P<)Fnj47ՓV. V؆PkEΧdv%U>_ Q,֭t[zkD۾@,to[K@Ezc=(Xa,V3f@^4Z'd؞/ur GAs *txZ% # {Qw)K++׈oI-=1d@XwȀ|ynU i¾Tv=.rzbFGZP?z"c?w̴RWq̘ίHϗXJφS56^P;{ 4.:gM!w36:Ґz\gi SjKBĤozQUv?PpKjs3Jvu^dkglBDlsft3YK/9&.y܈w@I94!rR;c+sֲQ

&Z ݎx 8~@Z DSӏ߁s^e[dv݋ Ε&a@Pڮ3*Jf`42<@vs8ˣ>xFoefՈ$r?.y +3vIHʵm !䲳/ġʴl\u"W1QCa,BrL(+@ƧUZt %M#0ge# $=),7rwژ`cO}YѶ뱺hlC$NFnˣ)Pk,WSLuDq@H)o1L9YBalv2cLXթSMT?hқՙd3"v-\c629Dlx:OJR Pd`>1R.wqѺП ).BiOʯj+>``<} -'h؏{o@ɛOv =1VE/ '?ׯ =,X.ޯ;7u>[@ңV S83a]Y2<c5W%*Q(.:"?t˂;҇;*\PIRwӾvǕ6%66rFBhZguXx7نKJQΒz @U:Դ>& q{M˄8&4Omn@Z\<e6c]6"N]f:>CT'ODŽ+j .VwGeɊ3sZ sPrҏT/?!54n&;D-y3$=/yꄝοHu L9*Q(1`Tj`2)8G_@S n,|fl5v@@?DD4pITԑ/ъ3K9Ijsy=!0g3Oeכo:t~0+UuHHnϬS1;'?^_Yd!HpNAr,[en$A~6G?)6_K`EG3#?Zzq=籊ͨ.ypͅ&y$IW7UndRS zPuˌ %ՎqU~% lx:=zp)Q`!Xդ`d gى\R*}X S@׫+ϓx s?&%[ <K[2h] y<_>ŲE?tr[j6FpM0gZ5 -&#\spU,A'7{jܯ[kWO/R&uU"**Vu Rt Dy<^lG]z)ʃ,%ȥi*4f~ljz.?NQ$+ڙ_} Π4[5GQ>$*.ԑȜ1,/BE!]Wllޚ%,iHEA"Vć< ~7pn FHY^c.Ũ&ыy-WVbTP3֡Ȁ7cyStcX%!-2{V)|#|_F,$9EQ@pQa!%F}F9gH%S%ll3J;gp.f` OkKY.=I._m/ FGS5[9fRob$\PC̾uޑ=dMxƷD V9{tHުh% `IפV"]?,??zV"ܱsgwR1Ťt2TvqIƕhǹl"B}LR0Yw>PuQZƴ1yiX*lR!a$6\kox@xRj~.+?S|p2QgUYzyG!Щ[s]s|PWNiU~" J '%ank 4_5!)jzjDzh[Ap:V<mE2jo z p` -/cpGdуf\Kkᩛ/>bP@2PHߵ/cksy Wư8H5u8*:zTuelE$v؇@Vw?"Zg_2Ⱥ4%pjf# z?WM6_pn"M0SэajaYwz!*EqN7jJ7Q E=wB~s}ўa='ê^URhy13*8 {ubzʨQc3m۟lvp3ta.# [oF0_%z0oF.ަL@7 H&CҜ'.eɠɬbTсmz~T<Уo!4hڮ?`M3_ ).~gjWK,i[v tC YPvgCFH^+]lnվsPjup(Tyؓצ!'\SQYɐbbi50`P CEHNxfKorx;Wy&sJ(_dp >3a E{M"Db õ8Yq\2(<>SGsӜC%ίg%Rj+z5+;De JrE17H.eDtX'Q*+ ̉,~n hH}ꔚn"ڎN;gʴUReQLfzslkINI䡱k`6N-vo{ӕ6|Y4("m4̎Aȝ3S3rnF)pr?CEJBkRl)C]eƼh~^X>dY xPwVSrgEju%uAcaA*(3rz]9[ީ!Sa1gN-6d9'3 f<ksuB@f(}_ՏnMwuRZa}%$Qwڸ1o_ >N::L8L0WZ>Zi#|G[ K0Fαm/MRȓ}@6r>4Ģ/"4XmL%斨M8f(a.T%]rE|opp^L9ݖ:o C;% xTDAa\ޫ 0+S:ӜWO1h.7J|onu18z|SE;ھ|Uehvٴ J6fP\+k+zo X`[6Ӄ#BX/[jvAÓъg9N)Ed;w{cVd}?izz- qd~jPՕr5v:7t(I^&-φ=?yJAU8 z^wvZeWcnp}]qW|rj*hpNI/m 02`ZC]S_V,~$5/Bj[9 %3jl``Z||0ըEe'DiV ʜ-'`-JBd@ȪY)3.[~6hi4fMd$ VZgkO@3=2!~`)r_}&D:QO'27bvNYa5LǑUGC&Wqa3(A LdyY'2l4c.,Ձ%I 0b b+^VBwFYvy%ifQ ه&`P -bezD ɱu-2:ݔkైIg,T VWq&Hq=1 }cδ‚ҋz(o–Dmy҅{E^rhtK>iX>ת~FQ͝Y K4sO[fHTI9џ:’r^BYnGmQsINJuMp/A|L&P4Q^.{o" 1UZ' C˯Z>$DqU9'1maIQ%T5$T2z?I8c5l'oGip:Oڽo <b78Xmꪉ}ˋNĨ dIJMrƳ"j^l!uPT7|*Iȴ~.E,#B6yY*37ȑlN>\#*9^~؟PivC6qYC.O#jeAPqծ!8+~td!z/<7uM*^Xnp=]3eܿ) F:Tcdp-f S->hځALl˻9>x)YuH0_wWuvY?76oZ89f\qTMٝOz&3d[OOj6N *nQ|LV|?y =9 wߕ1;-`g%#n g]VzUQ^vc";PO{xa2L8ł3&M VIm,VRήQpq;f- fܾMWB>6ZxdI'|zsc`DhG.doGta8ۧIƃ8cV/qw%>n9P=_`7⪡L-_uJeM\F1 ']U.>B50L- r;غhoɛ`ۆ UYZ2Jw'<]pYM۔ R+^-5ml[/yazuNG:Ql?LnyH!eO37KQ5WJuN~綬. xsHYKdN2!LC/s9V<*l\LMśG+ڑVyf+=L"5A|=P/$\:pzM:ʠ+x֢ nw.y>}rK0' RO 4_$0F̹N-|"CXcw&$1^ )J}]mw'ú5l!< ejU P|KBƻZI)B1j9d<)k!dN.Odi˲ Bm85˃S[Z~tUm7(D#t$C z1SnI,9ޱ"@v.?Aju`L&C;MD- zH+/i><Sk0j==F Tᔧ7P7$"+S%Ǐf@~/;X& 9~Lw7 ?Pol&$~n+X?ec~ ɬ.oR_8Ruޛ6VՎ&wo -t^4fPz3fC=Z ?1@oQ;v&%z$Qr}YKb*Z4YT'i?Bn=Pmvs0`s)Kg|/D CN@]DLy L2 *?y=M?{IuDH>,z? 5Ĭ-_)q1A}VMia6ڀWjJ~J댖C YzI'Hww;?1x7\㈟9Fg'ޮ,ysÚA2}4=g4U0tZ{fŋ2n' 4B"g'\h |Kl܅\[-Ge ߵƭ䷋:hJukViY rխ]Lzmq)1!Q}W5}!% /jൔc-=73P혜,x EFV . n5lKd>b.5y #9c %k2߶~ޖejT}3MFRrء?q+jgȁrvE}\ʱmVT@%H\c~%1]!&#U7S[*I;L3zˤoZ[%/.!\^c{/Mr[TrGwo=^:-q7mOވ|#'d:a\0B+DwqCBo<ΰ-A)7k߷ ޡK_*͵ƨ5oxj EW;XXS4_JCYܧQFEY.+6PS>qޒJi 9rpx] Toa^ϖ :V[`hcjcVn<PQ()e0+hoB=)<} V(ɓcHK*VD~jO(Q*{\F#  NUUȖZ$)-M,'.q=ZbS#XI7NjP}Tԯ]#Y_iY ~,gYTvY:|G 䱾U)8~$!wGcʵjNZ˰Hk(ᢴMpT0yCBn7CPS3ʳ(N?ziԭ V_lУctIoZ{z:.v CJ0ŕO$*EO-#Q@m#"nf~t4lsض=`LW45/&\]~h" 0x8;i"{$tľC)1 =")SGk-OԐñyPq Nj 2\7#P='̗ IJ6cU%X6}g&W=jFbr̽l%_m3GN"3o&0=\4ISu9Y9wÎNTFGLiJwOXi`eH;VKk"BʁR%pXZWuy 9aD_Ҕ0;fCH7&h^z;fXj1ɨ4WlN }U= }FENsp'^$OYA<k;gK%,پuĎ>Xb1QT%{X50b;'<"G~J\Nj[d[zu1gR.h5-{Yz^CߔڷA̿dx2N~r3ٹ,0}A] V tXQS?1Lju]KoJ@,=6<w׳R䬧9]6#R5KFP`bZFIK9YcH]FWh+m/#]8=,~TNkM fvqKZ]ŐfR  zE}G`h|BD.J"r0Qa*3 Nk7?Lf`E?nYCEk@YY03;I>< YGw^.PM03E8耧Y\`AA*}u 6y'8wK:FDkKk"^>:è@uP!GSq@opX3fet̓rm.d&6bAyXVD4'0JhIOALSWtf܆T8K-+6U8Gh,cmkȂ$#֛ a|epv17kd7Oő4rDվSBT^í\I]`SqȺ^/* #&ϮaTEQK\UxbY3/F;hO͚pylbsEKJ bAA~A5[Thզ/Tb:,bȢ;S.UG;5P ެr{ē2\}P?"*'g.ԧ_x2= _aW ~R|`JTG L4T#tѩMF,ŶW$1yk99vB/ˌ8+.jfDCtk %&Z;q%0n q j⚩?w&?-  4,cS`Q'd0J@bC TG@bl*:vJ֝N;eO=?4R}^<}S뙈]/#v`B;>R}Г?ե^p"[AtWR`3xk(tIU7))u܌idx :p}?1 _IKaH[@GJ#k: e|QrZ mvBadk 1!"M9>'pUDٍKQ1>~>L>x$ ?_SS]EfA_ -Yt8'<θoVb .DL.g zrK0U'ƛ,3s'ݒKkSlC:slDƟ ѻ_ 7[za5Z86l"LA85I*TQ[>fTWRȤ+E  TEyrTP8.3nHÐ9{j7L-HC1q\r'eC{YaH:Qʭ=-Ą?帾[مͦ9)Mab=Iu]fl>.xCz?-(4A2Tܳs簬~I laXSP%dtqRHivS+\??۲2o.ΐ9y+S4z1[\Mn~ӹMM> T`q#Rtls7G!eg$ RKu<=bD}} GkoWˠlۜ7s2\ԯBX}Z$4Gx]1:Sf۹6 DV,æ?ǶYCmEm-i7id_\uHmDlK.Q`1VQS&Mc)hOs5P=W*Xmp|.pjӟ6%KWNj\3;O^VBrһUOc 37y #^?MĻxRg?>MRv926R>Jޟ\UAׄ(o| *=bԐ[`{(lTV}eoLD^xKdIpO]"OF+C^'u3[߉]'rQhLF$ϼ7x9ނ9ױٸB=jE8)<\+(gA¶ pAR+R 7Nyjt͢8q}i$]+.ոU,r(zQ_\ 'P2 h& =jR_ ([w>x)Heɶ&޾#Bı&>Ǫp#6{'6p\|&[ QuaV&(Ԥ%9~>+98S1SlL}O'%ЇݸK\ɜ5NQ%-~J$cedIF rHe. Zpe>fGCNHU"<*?s?ʤYHwXs:O+\&D^11\ L#n M"\`[Q/ʶ)QEx3 g}ܣ\!?nJ~ٲc0ȸy=zd#\o!R(~ނnpx!aga)ߙ5!NPP/`30f0OC;K~51[]_ \]¾7P@|%1_R 殪S\z"Th/*[r\qhWpڭzv{_]&mr <o4u_dhkMTv>Ř4r2)#I|ɦ#1=Z7l0 xqAnbD]^̇I1#pnh4*a@ jJ 4 y[fbg<1"H/8NXuNNP!RENPFt!ɮB|Ky C;uW|O6Wgӻ؞/~嶄ZʢmݐarhLw}Dw<JUx? Na2ޯ?b[;T+G7:9Z4ojtIvS"kջXHN YTzkXoaCKN p{k!q1[R'D8i[S{l^U]wsDYP(-My0gɀYtuh K%N<2# l:zd|`  sq_NN6ObL^l@D@mE6gu&&k?pU(hW@( 97DGsRϦ7]^4O[HRK63KY&axb#og|+aJX'u!nb 5ضg+"T<*˖zz`RM\oV񞱖\.1w"l]  ob.H|p|$I[t1LQ%.L'| UnLjocMEBY/h1y"0ms4Wř4pNGTO` "~\1c'-4EUM屌Wd "@ Cw8 Bx˨< I.Y}6={_."RY_z#$ooPjFhgӎxGjWU$@5dT[_#VIaCgwx6xԣGWoPQjĨFhdSj )kO lF/1#?]bwm`4!n"+؋F*P0a9M$AK%\J}ZiHsI]0?|/.|M~,^N-Bz ,s 4Dt?Yjxe框s,acK{t];lۢQzd> oC9x_NԶeO8.X6N-))3].v :)t1l <(䫷Qv  V rC %Ih3}J+sh ^7huY-ZgwKVehPBp֧}OĶ'Lw޻o˹|"KevlA15v:ToAP4O=O(.6|! ;.H"W~Z}U騡Pܘ0%! ]/ZV+ˑ JKJ9Hh3 3 1MYUMֿ:S`ʑWAQȞhTbw?6 _ `G*zq~Ky(d];"60Л"r[6j1 &+\%'!,3 & tÓԒy>QM-R Lޔy=j1\.,|^.IZ-ðݡ^9ĂlO\͖RgV(N!vOx(3]$}1#H&.w$p41WPtiE٧Pxz-W_meTm,Y󔧚Xh!L dVgUJ0)vJq`j`3T-`g|S,7 ܩs fL_nύz{;7x }=uXHcFTKmi\xu; [8V˱97@ *bt0ɍ.qY 2QYWxVjybߍ[Uq8Ŗʼn7DQ^.y}:I!JeIAJ."Q1>un'0.͗Js%TR ی~ԻNABգͪH5RrgY`㦚XAe2ӈ?#GnO+UCv$8FX+ـE)oVsGfXgnѪ\ $fV f3y \4MC,"4.sئ2Gpan|cxSOaҬX;<k7NR|Jͦ^<.'xm)gQ 27%kݑQQ!M7a3Irr-|h2M~Wj~T9:_ ~`#I TsѬAS[).3*FڔMfvc;5$4ɘDN`3V/հD;zވ!yk;׷VgYס:M 8,"D(8w{[,NMPR z~AdSuׇ(пMQS 2/M{F^ n@HnXl0j=qq3|pL7*4~(W, ''SF؅tpw<.~`q`j0 qo .|˰$'.|^kk/S3Be2Bk:Ƭs_OF\}ԡnw:T~P\&yA3/ 7`3rϗ2# Hl,I8aNVSESGbfK -vl@{J'CV+It!%kWOI׊ d>*jqҍOW:.Ixxe{AD·i纯ǖru~s ]jNǍ}OK(픫I919촻/IǰyQn vm8 sFT۰덊eigl{ȉЯ:5yG4}>e%7J &W@ n+8b'nX]N2}ڋs*(Yv04~sdɥsBG8dѥ9U~>7hGG,ĭq5-"i 6ym|ӭ)-<:LJh^r-iji⚆OpCa7o땗܎c/ '%Imd-ohnj:6aΆ` pJ@~QBw edkzAnxzK\2ǎ a\ZtT_k$ѤQG9mO'|=Yv+ڒΨ@x\Q¦',_jE\1tu @V]v(LFY>]87\˽"c1$59!T_HqmCgmJk['{UY|W7bϓKoAb#ƈK[(r|^4W3|%? <3N&" II2isfs][&=aC-1I}%*5=X<Аmu^˵-B|Q@ݞ`$cn pq9h MZ9F{Vy?DIWO1y s7JR*a8yoi0YN[>TTU1@@ꇁ7m}N 3pkE X4vDZIcDw_uO&0:NeQxݣNj={gn2y0vo21/1tԧEȌ +a,8TfഛCPL'nŌ}UQaxTfXݜohOH k4$Cx5( r-etÑF+Sމ/CÒA4 >ѷg)SW!W@gL|h(:?w%Ɲ1KM\Ҷy'ٰmGJGu>aߙdPۚQ•WiNB&NKM"WHcӘdo|S|l筁M6<9J[Ҫwj~SU;}^2F8OuHhU87v8 . 81[3';*M"P֌җD=B dnDt2q1i&`wEzJrt (Ȧ0=-\} kиRaz!9Sêɲ0w}M0ߑXp s<7.TGĤ/Hn8]99j(M/~*?l|$ͅcC^} p+[M(#\˃ŗaS\̰_A8Uh^'yӉ,~,ML.c=I@˗i*Ŕƴ^D!Mt7 HTRuDi!<~ hk]oq'yt+OrX-(0 z+CN$ثn:询TN*|8W? 1Mۥ`iQ1cdo"qk*XJ(dp ˲ӃYq:*ll"ޑ(Wcls -s0b%?  @?tz_}7/I?of [HŹzé[no Գ$|@>!Ib Wk .)dJ$oEG*PYoآbp{s7 :U)|wqz3B,c;v6dI}%f(>'/l5 R9 (QXƫ5 u'88 ac͚=oT-;9 }0C{`v~,{y,/W`DLL.e yY I#ͣҀo-ASYNT0ܧ!t_ɱ;KwժN-\Pž6 ni)5qcIC IºZ% /akD." #Q}u@y|Uc s~iN_!(Fw6;a<jR?fT6Q.%EOߊXڧ&"T1 #FAT(Ikr-]:8 ꮫ!Ӕ5ۻ~XRiG q}{!4!1Win0;Š!T2狶w%NQۂ`2Xȇaq@ H=˟9v L18o'/nNp_F3!1*3tW2 [woo24`T hc5!v^YrmłQjg KJ6VJJJqSjUXVJ{JG(fG@}/SY5B/OfG#`zSzŵΣ9t 94،=MV۱ @ rĦCm<[fkH\|+Yl_qr&1,A+Hu=Iın qɤ'y2]P;*$U5[NKo+[Ϧd-K%n%z664;gX?ST 扶IՉ| 6M4!7 ~}v;?l9+y%$20h ,udUu1?  D2]4x;8򰘷l`u>RLqP1OnY|1ji%؂ɴ}XIId׃HEj]atjZzb?P"87?~w8(SNG|J72/(KRX{vCE}s^n堾<9J:1>O!!K .VE}膸9~iYf$}\m KʞHt.6I9lL%QM^L|1WXg(kR! r@7P8?qy*,%U "&dVڟq'M%>VqHa;4xSqKrRD[wLS0?ibf?ߧ,oSD]5V,I%lYS=l8GKx]4m* :ƽލD˅V]yf~+J(GdlS½{ J.\'|[O;_$P0'5־퇶q ?O@ʣW`)-II;-SP]Ժp wkq'o|~ l뚆aM}we><>-^l9u9@jNZU[vZ6!edE+ i2*]2ó ^-bKb>1p[`億`yJ`eFI>%=-*Sƾ 9QU'T` -Qꄳ.8[@ @jA*~U"#땗GL =Pufٯ)Nl5W3=O,a]f>ZQɃ?md9؎!d.۵_A|=&'Ջ!rasi5.B)O-2q]T_6Ryt_b,{7 8C2(GSL`?2_Ee$4, !k3/Vj}Ȟ9XikHX2:9CKO4*ī6'ctV:o!H"a /3#PFByO)^8$fYxWјݡYS/n׮}f)`cĦJ$R,r|x#k.=!_(r,I:^5E(/䉬)0AC0(L$E@! @#E;6xGDn_}vtH T t-w{C1eQZ XArn@A;KLxJ ^p9m/9j,4>K⦆ Fy{$:Xd=I[w$SGĦyS{j<9~< N\V?/"?~0>"lxvidn,\9s[d ׏YYƵ2{>NO4uxC/(7ܡt>&t#uL_ C!X5a`rNտ$! Yڔ.td92~Y1KTS}mJa`rnG~M\t#l+r,SR{ WM-5mGtX!5( Ѭ%$Ymg? 'WZ3ݩբФ9Šu>uBOnG- _i @0{:aou5%ȣ{&> #2bcvLv$}&D3R-Lr #@hLG)mL!eXq޽.c)+VGLֱX4FdzhJ?$+mM+ >9tu }*:W ?l]@J9v#Q=[TkUS_Z\`%@GڔSe6F/5TE+59/1/:^dS, }ے !.l272tNCPCr9'k:f>>"V-KqK⢭ËOL]pu,[$Z,"<PfĆQL ;XX,rEƀ+OMPQ&Kבo'чWKKCi1[ C*ИEb# 'L99Dpy(O(N_- fk^؅U+4?)T*4`W3-&%aiZsPÑ@V FRʃy{p<Ҷ]yJa4UmMB*b¾7L:%C}X\)h(R؉?X &:e!臍&•9:,*ػ]s5"tO%g߽_PXQq7&-1$Ss[&@b yV)6A 2@s}9RO kp"%ՈhjtMǷ8%ƏAE) ]6A׹/,z_$hsp?PP__qqud -?xo/<91Qn2ѭjHE{]r5ȝ~w(VeElؒ&o7etvӶ^=L 4ey=c;pH߸)vt)[>8PEA X-:r7A)`&8Iqch|+'Eؒ]ep1rkDֵcen O4Co! \7y!YKF9Q)B=aHcQG!/㵌3WhTj+ #4.oxP^vKd[/)H2w`B.l {Y9Ƈ0jVu_*Wo/|'wP.ǢwlkHF&|<7<l,%BsJ T]yTz@*'rzVY?<,2tڸ^!~[jQ>;3N B3 Y`TpSLmEݕ]%>Z6_ӦD̍08RJ L=C4ɗ̞zgaD"_#.֙if.f=#2DpE@DHvzzrv,:I+f\BBy].۱-b.G.3{@FBpg,n/p_d)$ T?1Zf ϧqIy+qyd2BQK¸s$-ZxrCZKFP v%Bܕr%qnr%v_<ih~~4g o1쨢@!Qo]?鿹d&څw|#ڮkIdb6VQ)~RtZ쑍[mKӒIh!s:-8MkzKث֞Ǫd=-V1'JnSEI)Ԣ mE!51#ͺKÇ9/{"[~i՞)mfȞ5#Ye6fq"X^F5Q!py )5ZܣJqP1)/G׍F^diiC["r֔ re'@l4k9qp};؟?2vK nStL5GpCPk)^texol]HeLi]c)o))̎)q|ٖߘm4bL!t "2 *SڍAFtFd6rkd`F$9ZGGc:'#;qGgflE$y8ݔb{2}feۉ'_:PvuјD/߬YZZu܀YU'6l)i\ +O颣D9֗IWUJ@:!QJ?+Dv“h"<.#p,Q}C\Zun:TKJs@n>hiO^ߨu.l߉TBto.SJ{l ÿ7lZM@j۱^d*TZ1b >]ڷGlTޭ~M>Ћ@jTΝҷ}:#8UZal붡#o]1[h@:02<[typWj T3= _<:[OT'I_< ɩ(<'ɨO9ܹjǘdU؊q .6o ^#FE[kTJ_֑S<'RI+43[&yϦaTjg˃|U$faWEVZS@L+N&e7-~{jk'm~mݒv+)hx=m-8S>5vf4mƭ,1͌o O 1iJ7StLíe&(I%cx8zMVTȬG-'zy5(Լǐ؁stgi  q|0TA1Al2XѮpuU) *~$}& cr4G:8)VSbص'Ȣ6zi [ԜrwMJkUGW[Γ `=n!f5%s&-ꡟ&)-cHzw'\2ưb5⧾ǢֈAӬdVpNIg&* ~q)q1?/'+CbM&q/GG'02C96 ٱ ܣxGlPZNז* ߶f]*c/|@tMa=Hve l;nOCɛЋ?;y~Ys\6eôPI( #7/->}z¯Tpm8\f_"TżdD%p OwU;A'75rWE b,B>U꩑kj"..O<΋7~:(H;x_0}ŁpG?G}W 5,k~^vbLkH^qQhɷC)R|w7ym9JWRo{l.zMč,(|H-ʧw@:ؗ)3Q1U\ P$vtF^]UoVPqwt#=HFRs..!pKnM' Ҹ{NĊ_W_٦6͟TX]z>HQ(4v%O U I"% F@\:% k PܣSCu[ZN]Jj^]x:vjF`J]Gc^D` '!% eCzK?*xg~G݌MLoY&|1HVlAAWf\ӄz/wHI|bojՙ켜klh%ׁ`W{W =%Zx {_5b U0G:Sy*讶Y^ŔjQqg(]/MJփզY H%訑_MjgHoH)S) qN$x+o)f"Z_Jf@K6Mp'H y~ڎ6` f_B#9P([AD $C(f#e {s_;h$P*red4x(54qڬ,oE,k*,[{;[[y_Gj+;݌s{amxh}$mPPMonH&LI.j0(,p z Q1A,/14$Kz(롮L_;$j&c==+(n5` lj1; ?@q -tYd`8h׭+#*6ij'XLyw GhQdכѽ깱CC =6梽:9BBAi #P 8|}/^Q"/>g"JTq2*kQ04.|\EO4箹 ADՖi 1  lI.>A_-Ș;cMX+3 ׌/i$'FѦj;I o ͚M5r#.FLadqmɋɩ!bR9`1il"Bs݌O}F2K3aa=b;KbW!> wI~ڲ!Xf%#'n;xըN3MT+>…;r$9n :RmxjOlt Vl5? z#$JAގt"<@-==TK"F$:Xa>4>UWqUFM5dTW|3P7d>R-J~(S*89tߪ ǥV֑bw4rL."6UoA6}.ŞqW@$/=x8C`4{i Dh/:-ltbƠańݖdI掺v8GL" O?k8| =C,zb>K]A_e.?D󱢹px h$4BXC4_U{ $ i2݇N) !&v0WA:c~D[pI^n )D0A Y['ʣT)472\u|:V=4I\ȧ_YkRH3.ΆO8@;S){#i !I0˥> W3\* 8?}Cٞ0Y PYuL//S5zۚTuԢe2Bdv\]~Wc\?~lbe>a|O܆y$$[(xJS31#%!qdKH"eh_Rq_dWq&ӗ+t}*w).f&WO(|=۲Bad4gVDݰ.0L 82Dͺ+cUhme>')Wb=Fn06F޺1Q<M_k$@?F?0v f!B9lEltqL~2)sñDl_S p8۵3HKOlоG6ې>= |`jQq# z}$ifh;1ϦqD9`]66e.Hn\> Y.Lg|co'hkxNؓ$՛I J%1XA1BUE2o{:8 ;ͩ n ,G/>>8.Xs(ՆYqZBYXGEz| S&VEL,rb\Y%P_4<wO7C)5(:;#qe:Q\d<_Lj ގb go\x^$Pi>c^%cGSf"{=0/胹[\?f.%{ yOhs&꥚V+G>MXҩmu9KDj{nG3KvKP m<؛rX`xlnB>œ !Q 2},Oy5n8zR@,eAE48uTS,BQ $mPt92-r܉}/ނ pT4K\h"fۼME釲˜whVD1g,XDb51~1> [L5<A;#%1£d9YhIhdVRGskKN5SpAy^}G%E4jUtbvɫ ܉enIچ>ZD3/ wRQ)1UY$j?0UWN~XTv57OtkGQIa%;?iaBdE^T9NYbզcAsUZ_ ٭cK(lL_ap 5~:sy[O}a5Q ,Q_ݼaT)vx!=͆k/mhtH {\ kJcYsI JZZt\3sۺE8=l/Exz<9Fzo<&up`qM!E j: GLfiyͭ퀂u7?lLaj%hMq K%mj *U@U'iP-yx>;z\nVVfacp"s |&RؒI$Oo;D+!\SIcJ(S|_KhW 䖍S[ck.N8h 2G3!Weޫ/%ZVFX uiPkZw|t}SAXCqn/>έJQWkzK6@_nV$+/m[o9ocJ=u`gtnM 0\ 'V h*kn,gkߒpb֐2 ?_|t*_cE˳Hwvskvp~[+Vnrco$|VJDIj+7QPBLZzm\~W좞/fֿ glo.^LŒ?pKDJrbc߆a,$WV<xಬ L W?D҅Iw f\Ű[++5I1jLS#+.ht@i۽(_MmM:?}Tiǝ4t$}09VR0;vut\kkWÓxI|pI J&m -LVn@@'a!fO W  ˢ.QYS'El|e׹=?¨QX7 \zcΛ 4\Nyl`g}6*;䂷=HeiUpdl! Hm^d,3ixSz| 9{1ӵ%zާaH'C3;D;=ÒmRh06؎ѤcZI=F( %hOϙgU\ &tD*1S8 (Jʹ9gmݽI+j|ۺ k)7XXHƓ&zbD'D]k%?Svp* C$QHhc9ߴPJY`=W 21g0˽d tgX ]3a> f4m}(5!E oqr~[)%.Sl!\0SpG Ke/+Y_'ݿ3$˃PζW}` SGmf(t;8r *;o"޶&+Ǘ L](J݅,]Jxf5ڶC)է͸WOӔsIw hCJ+k(1G:'NF_KFt([Vl:G2bxÄ>"` ,-,ʴ^W*O%FRZߦ ui'G{~(LZC.!WK.Qڮm*ힸRei^n_k<~YԏVk;մ8uu1 p2h/Cz :{,Q?b1ͳA[갸>'B4YtZTf+9^nK_g4%Ñ'Xzmr w]\ryftw蘟Ɠ1PA P z=ۗ?K˵esA)dsH09m!H7d?bfׁ$k3O_`@9=3(Oq=B\~VҟwCuoLv r~IJLήU16Pk}CK^~kh彞3j]K޺g3Ӑyo"w@)3/#Dw攪"*BÏ" E5Cdo`e: 6޼NTsXӼcI+ _KY0[0Rӵ֟ zd%1 -}L م_j9]šՇ@"~3zmO= \48n +bVN?bBo,@kX=1`F xp2yؕ᩵ΧVq|g7e"S;s.۩j"<&.C}xO!)SoːyG%xϻS+T֥V&=y>z1|^+e\ȵG$-őa80+g62?RNHi2 U:_YkLF" i3r;PACU̼AR;F>|k1 Jҟ5deMj .?j1@N+z~(c~8l)<!x"e)Oyzk愦%hDI2?KjZ R{o T#W~@A(ǝ 1$R7}N=f:wW'aPG<N /p 8UTo~Ew8 `$"dj )m]o-d51໛ [l[%i_ZޗwB-/M w,!49+/X9JXhpЙ" *"X HYeUf9^IcΫԫJBNwCEl= [J ס daPm_̵K  ƦLSn<:ש+}%V6rˋQ}/0.^]?G*)A B^qZ ?rui!ၤ˪|^@;IG{%Cc )) o-(k1:wWi=hj c#U/PWG[RPu8} xlW29F_ׁSv-,[sE-(qdjyV.[U7y (hlO҉?۹l7"I3n6_6ƢJn_ܨ|sQǹv\ ;AkH5 gw,n4}] 1/i _*.njfeq/ˎ\%c9%_; E^Q/:*]w;`WB "K&4Zs (~O$߼s5{Y" VYV!Y̓.{"o0Tv`>;v|Zs 8b<=Ʀn;Ww.T`19M5X\VIWj`=]Rii:i8Xy+^Ё Fɻ>;F6 ųj;-̎O#U2\{ ?ԴaD(3bs62#9[$V9gtVpWR٣V3iU&m0*_C%13xZ{2-,O|߮WT_V%5a-szK}a ;WjCaDѩK%(6 @ӣ)-%lOO 'ɕ҆6(~&QXhu|گߨ?U%&ZdE@:{jA  CEQ͔tc{=4fyk?gp  \E4*NSek<n|m>8!{}@ri f/v6gA0yUR5˽ұNm6Dzg5N`~c9A-0PaF:8ѭS5ج#@R9K}h{Pd!w(j͵㱴CAuE~lD&9} ̀oO& ʪ:+# poUGL:ii}!GON- ]uT0es75^K- Wǀ:AQe9;Ӝmر%6P4Fхk1]}هV9 B\=tw_g}b/K7ԟ0H2@BG跲glXp67YOݳ=~O]-~ L8[p7D)ZN5tm\H<}P\GE9|k)D}4ф1 }' b.N7uM"{Q )G_Sj4$ϱ&n=G~`0ky}3<ΣJb$`[\:1& +i1|&ސݤg%툏nU]-Kdmd 4YMXr䦘? qӏ@",B4\;6|ڂͰfyc: Rt\j-\*&];.t_dq)ǺǙeѯg@0oܿ!RD|v\ .a@DZ;ENd4C&θ*hI00)[ ڮpo^TU/s@2S/n{ҌKڼed-]!X&ծ E-ډɰk6pw>eJzAT@N KSɚ@Dm۶fj"ȴ.sq+㱙fk4_aݪ(%A*[!| kfv"!ٿP3v78MI`N/a*0A~T:TقqMUBOL2D4`m;(S#㤌d\n$@[𝳃Q }$2DK\ܑSCX:>Y"k%.$W #,@KQֶd }\3P᰼ss,Yol89|oB^A\ Χz-<"`6&vDVxg?]qj_K(~LLK`IX=b2[#m6Hv#\G:]_;Ÿ}{#>}lFk4tĄ(Dw -]oc\jP+-Jƥ-@c+ÒعMcxݖ6 nexA;H@B#@ ZSMVȦln+5і/YW;2J28;.~-z:WU bL/*XB7.6p*#@SnZhtjjwะ 8)R]!Y 𓿒$e%sužj^YX'A&b _~޽zRq1iFvq2"7XP(2G[1:}纻0XݎUY0y &UZG `-6ŭ0,ԼC>ζP x1K]G(׮4,#vq-6? 2% n2M9_O+zξz̨QB|槮&gf=&94~z>h1}N)v A$0^G*%1 `r(\Iޮ!].V.3qo{'vyP@Ysdp51 w \>H 'U61r@6wWA^6ϸ 0h*=mD,Ԉ(i7Ud `\2amȥDY `2H;Ѯ5܃kPāڳd0EmEexO9NcaWEUZE;2DiEmogs]W}کJZ|ig9+h,/+.n AN*?+4舱fp=|=隦ɆFbo{u✼f1yIjv"A΃G' ,7 $!VE͈=Dȟ [a!M4P GGF+p Bw02w葎0q3^̆~"{c|J$5az䜅H1*MH@dd326q?7l_/HC=06eh4.9H ȅ럐u! ($ݦKv R8?^Oԝ>J FpuiA~٥H.> #t#GnT&# S7`'IQڷzurb,sѲ H$3`1ksj|s+yGFpމ =OP5KpNjm(c'B?JGT7_蜑FM0z."?54z b 4xE4\EN"(+ڮZiĨʫO. zhq>[@bI$J.ӺG= zڼ`f a z9׃;ksuܗӭr}i6yW.6yeDoA w(`.B53,T猄|12aP^$[3Ex \'던sIѦ/}TY*9Vn=R0G7:|KbNYi`[k:2)i4uĨd6 7*O0?75Σ9F$\_VhE_07jy)tRPt-r rΖ_j˙_1eEA⤙hIdZ8 }!  `.vŖ N4+{o$*Ongf4҄?1 NnЊĉQo W5ވo ?uOO>BqA&۠ߩ8F t.rc1!e3hz502m}/t҂twdHs"̌٫y|*#t)O3Š๷mėBT 8qW\VYy?6'ą߯KIފP~ӞT*Nz! 'OLzFޗ A9 H.'$晚Lsz:%OXpFqpXj=shl!tDcBKa?$ƁE" G:.= =P"ibn߭id3Fz4VnzpI6zwf9R 3@,.慨􁌺>|͏dZ͌y ͵gJVH8) /l]0^| cQ@*#Cfw̰>uP5c#.C_SDGw(o lful描K /phĐI@7P)Jl&w=2NF64鹶a^!ؼ JӶڍdw?GF搭.џǥG[|Bup\K-rBׅ]8ܕo >i=+>{`wТw._l-|B=Pv!ekV0HxvO6I[(qNW{c \t#9ywWgja3ONõSv$`&;'pk0?*w%cԾR\`ɝa*"E/ ~B2y"F NNTl+ҧc?Y}Gۑ?N*I$2nf9~Vnz׆:(Sf'VqusfXa2{R0= 7"1H)]I-fn01q'# I={Qk)q!Ęm W!|T@ ~Szm˯MDgaxo15(:|;o|/py:FqP~}pY>Xه(*Q/}SĄ^X?Ѓ5S,}Q\ AfbK )t7 F{Lj7 [ w#cV?s"tbJ#9qzFѝRMq0 ,Ed |O2HIl:9d_W>bH2 }}L<[D,>I O@[fg.*oU x)[FI3RϢ4de;,(@y-3)V>.-l)tS?D^kRZ&!DTi!G61=+*{F9PZ5f! b$2|K*1gGPNAChz/yzɔB8#߇*.KwGjAN})䙜{|Xw(OS' ᗖ+HḚVA>ϕa92?/{*AЫ2=ՠ7,A/hv{`2E Tf 3كQmT@̓:Y-S+d $/p:8Otaô[iI`Ɨڂ/)!H6u2 C(};^jH[%KX{4uV^ 27RKLEPhKgROB9s~i=ͦgKҺ(,eekVsn<+Vm P{;czFhmMޥw{.SUz&qޥXvp7QJWR9{Xt՚k?"#vB~-<-6.OBJ8#ɲ?< 7"1?r4%#.ߚ +%d?\SJykmm4LL;f"8.!yGGyəϨpxWfbd:'le*۷elqAҎ$;[T% M%A'|;[w=crcI4ECWP ,J9 BUi!]N^7F:#RBvp2MuZ ÉF`- EU:7m8:jEdvuƘЁ^?69_E#"]PU"9fb*2sDPǶ}!yTin#& zp<Y\gaz% 4D D x H뮽{\I= Pg$N}MGЦA3}.?Yi&zlLk(=mRDB_yk:b8y}&L6.I$\xKzZazP<ѽ<==k奰ʿ0V?}~|P-%᝽DQӧؠy.f~S"䗛i=NG@*!>PY 3i#c[lz~R.vtCٶ̓ll„垧{.Bt .DKg\]Æ*Gǯӓza`Ko%] 5YCA~.1T9t0\3GϪzp?` O1p$90uR<$luf߃=fW1DXMF-F qT gMO]^>G@c(sUI)mܧn;٦ҽtR9/G&Ϙ8/\iN'jfS [hLﹶ)7Lf!s&JM{ۿ֢dw'}fa!P'pQpY;l _rwQbN2u8 2NUO9?:;{~s; ˮqT YU9K-讼V U3  (a?fǵ“t3IQ wg o3a=3Fd/n<:OY$qVd7huTSyʾq_#T#jQJ&ߜHqL=T߿l">!JT$p23=9 (|}4AYFW&I|66]B٬W^7+ Hηk췺K:Ǜ7i+ yxZX 3{1}A-m:!g8~4!)Ww' w~%JYhаhy]0Ñש^2S궉] ߼j4dM;4c iH}8"d,<od݄Hե:;lVb1zz"d6#wlHë/jI+c71E3?ѓ*iC Bs0 d|{Vk3Gե|n1SHd~chFXX3ܛܲ/ #LClc+5&~H9o~ %8irB/vGPOn,))R@CN8|m$+@*$1GgxXvlTk WϴPxed9 =j@< /FJ:CCty[6TN/;_efDvt_ji[37e6;*dY]BF᧘fL/G/Za ܰZaWo-94=m{NM1Zk= |cR8ဨ9{ӗk%^1xz=n`U*1X6b]`(otpD:ZU8<}p7nG"s+8x_ `Ԡ<+xh\GݕėK kU2OgE>tnBfZg7 KȗNwCF}}l52"^F 4=QŏGL(rZ |O<Ҕse2k!tIe"e)zf4| *iS|AS[sQ;9jnu!Ȅݎ+#<ȎmoJPTHf@bjQ"l:Rj:conUYPFyPo~D`j$ e>gI6цSmK qh,v[ƒ8Փׂ2oKx9Љ:eDIaZL25_hJ2EG8l>J 9s8,+6pH7z$pu-&琠2umvΪdoD[%oQY/+Pҵ#Ie}bUq),Kr _iM[Aj l?kV#DGqH9~"p# RXb\cV9%0f~Vٴ/)lY+ w =hXtCJgPKH7sh'?"B&ayjg.ؚڝ7k[_&OD(Y4#ZGK>3jWt}VEѹuM\Ɲz+xT#>!]}>bӝFD3yNUM{;;Duޤ ?'w5/|h!ň _D+;3}k8S1Q߆$i"[ލ傘YrwboR>ę%'8מ^r U:ʰ]]ڞNKh vtUkZ57BfCaA\[(7e9cȂ8M@K$oY^2SH#~1C;)\sz:7*uo{Y(9#7݀蚋xIV ZC%iKBaR.ű$˗&)WnOlԳyXzSR/BCYkQ-bGndO&rW&%-21hi#?-2IuC{E?{@ ƪ+.cؖTFm1&{8eP ]q1@ pXcQH1t"{MNދzʳOfo|AR8Xǂ=Sy>#6$9[_!~j}|y>u |<qQώNMiEd\:e3} Wt).JR|Em?WDCz/l, I茤2oHD$yY\;7t:eHjÜ@1Ze- ȉS>rID*h&jÜQzf=יǾ}^ +59][Z< R0LM&rg6L @npA9;,QZ:+dV@qǶRu}ˑa صsU>؞G@bYrǎvg$c&ā~e̘S]wX+^| &JAUwFhR=93z!5Rg졀 )i'1h{k@AN[7 y$g>2'FƶXef 4f@Xхr_#`Zj*tn: ,@T,vCP!$U]=Up͗! ]`I!-L3j<…I,SAWn;Qj85S6a/EUqRμSu6-}WhJI2Dx8OOwy %DZ6 Ԗ{l^$k/4Ƴ%b[շ:EfLdfMZ- r0<} #3Ī޹^/WeZp{O׮S_̟Z,jj:Dv A NSˈF*ELŵ,!pNw%v s/{(g _zAOCߠuIIȀs/QG"m"+\a P8&4a{4 R`~jl w)@`:U\ȂS)a!X&}AX<`ڝq(_sn[6WB:C*uTK%ӬQAl"M!] ʈ+I3}8 ؼ,pirջ*Y2QP{5Jq zNuI=E/H{|G3{?On\cbs/uvx5Dv'uɋb~R.a쀗iJFWHV6 "T55St$K ' 1wMJrWo7U}=aJ G_?tOxxcOJu&gmQSkcb;+k>'D$ 5ٙ`]?xŠ ߽<\۷j 1Uѐ{m5.n:(zDCV: "AُڠQ]5etXR"JB~^4QEuX\V'(?\L5J'q,zډծ&,DttnjS"GIGG;վza 7kW؂RkE^F xuyHH˨YK"]hhfߝ,9 PqїMTW0^%ө/25AtrG9OG}ן_ ȲqȯWV}s)םYsN^k.p3 I~orQdZA{hY9Dj(dj'2nG}Q!1"hy>o|g;KLneWFikV#3^(dbv72qKTxv>UqCȳ^L⟫ПFn}\^[c8"X|ڋ }]EIe"v e}-CtE 71~Rq@ZL$ԁeNImfO}Hm:1~M)^PIS(jOo!nwPb~<`8mT FomxrMfŰ1omNc+B.È5$;1cN[H0{ڌ38ϴ<0! }N()ȼwTVe`//hoOA70إ -V&~bĩ]s=r&wr0TlQ>SH n3`Ot cW8S`'878ЗShId+⸑<85k !Ϭajb$>@Ain|:σYzY#4 z4۶ltfQ`hb? Cڄv!9O”,8r0(;,5JONp _,JKphÅ *2Y5]qޤkBDu2'W$lNi Q7-J-Yt+ ҿF&,VFI]gBoD XA LR`kS'ÇfwgwLq0u݋Gmj79zގ uu]o~ ʔՎ@~N~zo+P0/%4OIYiL%ZCZ#w`iydKnGxA'_=_[ Y})4oIgҷ9Y4M[.R \9Wcݴ|h_Iס-V?@0;y 5L@l@LIG85]. GylxIͣzђtŘa%/K+HP2%AĊs:i ?=NF+eA6(xEW.Xlx,rn|nuP#yomD2*)7jyĴۖJ ⣲B6~Wa`f fgwچQ8$[:_{Em0CQFj zYHLyBF@wH FQdž0H(%IԓO~gUռx`CX b )$"l@$UEF”:϶9N(R:wc/uoN:4!p ߘ,V%:lZh!=~n (T@0MnB7wAC.^@cŗ)[wc 4ge[_ؑĉ.K;R+~Tp9-qk0,p,7dw&!RXR i_k3Dk Vר(,sPDU~v[i {u?q-Ӏce) C[{ox&2ǯKBf (),®j : 񠢩 [ We\r@٢GC4:43oœ@֚]u=[612,NgЫm]-Q `A+'82o|v㎰]*ӊӣ+f4aHx Ŕ* /;ND7e'IBFo:Fг6, T}I'&@$kF!/XfwN2;`]dE»B0C+vf x34A6 Ð4]d|\b6톼hWDFcS1T@7{ "MFVp8*SsL-*좶,>Q*lKeu1HWCU[VaI:^3Yf40Է$NwqLۿhUA[_y9VIm+n.}" ,na. 3֧ny>dyq_62 ~"ǨuLJӺu*g9(4%Nz 5q-tc =ӯNa~?;W}`hc72{Ç2Ab̸1swɳ't&F\a:%y|7_}h)ru!-| (Ixb2#wióOUb`6;  I`tvCSVkxB6w8휂}&cfiW';xPM%C΅2@f y#y; ZynZUe۳P!XD4'bW6B?2`աJ|N8@r-|}w1…T1(f6w79p ct܅p-!brBğ9U*3ft7s(H^\xL&j/I%cAEj&GPWe[F-\w8m(ƙǁ2szK1v?߹mbJv>CVKǫM}1Ӂ tyn1Q/$B4}=vƾSt*i/kKScu"a0%@<tOXɊ jS%2z CO:w+z\2w]Lt=T3HWL]^RI\>8=\lf݃PkU yzBz)#i*[.)!6l3vJdXBnk 0?hQjj dh8c'yP]犴 hQ§;n\_b9{`ĔMe̐hcvϟx*9E/V1[l6@Пuo)F`n:t<~∍ѼӬ#t8肓ڣ3dlypFL.6SsΎ+VpSw) {S8NʛT2ّʝa7J핧Z >t졏Oh]zԵ S^\g2JD)kSu nݽQ<hsnSX&x![F|ߥFϺ$PP5p)a0khP9)~My+iLu0k@bGXivrjL8Yb㓛 F{Ø)#fBX(DBP^2Tf0meYZ8|B=݀RN #s1 ,D ?<DZhX;}.e51njS4Qi;Iv(!4r|'ٶ0|CM.r 7TUPмuMj1q>B+>SX b;b?hp E?l/4 JFq(ו͈5=,' vK>+:nD(UL:.{^{;A pțeʶ,+P@%8o>T%/қ:M6%=xۡw %3|z{ yhq9}>d'1/ P'ttBZג~g2?8A_纆.hwI?QG`Aw%{czz p_`zI!ܕ]G {tP./{Ԅ9Khy^1H_-$x׮,1իΣ|iGFG 3DŽ]c>9띁!8M f- 6yhP!ͨ__8"/[%;|֬1Ft:#|w% XWtC&Z(0g+ht?aXq33مPܳ(1 N]8KHwLe;jɂ%p2{TVR'^|7C=(Q`e̓u Kr L:']1}H<2* 1IA032E5Fl,fqOvחFj&|BS1y"R^ot2K;]j!fv%>{!!EȌQVn|!͋:A6mftgRmtu[xŖ(6r627~S5(qDieXx_1 uLtޜ!2AM늓BbVJ{6p-5;YJ;ꍐF ?V5„,eB0E69b*mVs gHȞIl EWB(@\K*7)/ޝD-|A:ulѩ#{WcD.Q5sXF',k! {8?{9X oNu2Ίۗu]2r W$| SE1(~ҳtvs|&J_Ԯٕu抙8QG!H{U'븳 `:f+1M3ar{I,umHڸW*=v)iBjH; Ӏ&"z:*?dDQJ*'_Wo( L]7 &d#Y 5 %R$kq4+ %t zW{+ӄQxJrSZXǙ;=ʗQ@:Sq41U[\c~&:|Ff>քV1}U%VkfB'JCsnNjZ(Q h2}W#Zl 4oTNR OSxtA3-3<8aєdž5MdiR"2泰S0`%x٦3k#]r7egڷ2U<iXl O^M>~x<7ȠFNѩGhݖ!G:ӒwG %_*rA/[ºP<=)PΨHDB,5k t]',܎)/ A_Szûfܚ\&hu` Ur  |1}O \ K"Tx'/+n)"xWN*o}ZSzȚf<31MFY/æKv#H[9<V\o?A^]6̀k@uM@Wq?@m4d0 7vPN$ Gd]g B0nh,gȰEhS 1简֊n?RgNOE=d7#U(yyY h+a^̎-E;*i|΁Ut㝲5v"f3?Zȏ[s2V4[=m=ݹ<Kuڌ6CbR R.Ϫr GK'% lƜ@KΓ8F[DxXS M_ԾX@"3 ۡIlwhhGmU.Jg4=nA_2HiPo^,o&-oW:Fٵdύ*07 EPBUyl?;J=CVa=<Ȳd;Sf]*Ii#zzxxA)6$Aǹ:璼 [nQZzV݋I| 7DQ8. qϪ_|;-lOļ4~'<1KLd6_MblXC4yð@ٷj 2V9|DmUt~MB_Q83k|ύIGwhǣh}b[`~} u;pG!P>^WpօzZ*-D>jͯ7ߍ3=֬n-m%}L\K!>Vk%Lb ߾ œPAMEz R&Gu0@B:#m}\ʅ.*4\^-_^D+=1UUcNsۦ)M>33 0U [: viw#3@Um/_/8~V)HU]Տ LČUģ=.jkA](QNURv%rIGkI`wH?9{<-ou$|Yw<\4 u !Ey* )L10 A0?\]9uqY#8:FD#ILwx՝Dd#2k{41m]E s t/u]M<|/kX*ŤP}-8EAk-i9 }QV0hJ )/lOtaXE{9d@XEM9qFmk`SWt/9}3/vmX@r-w?h.d9H,. 1G$|\V S~qYb#Cd]}WjeG P&йtWqP3Xғ ͇z.%ZQ $ւziH88NQܰZ\ʚ`DCR[Z: 10{z@6.ΠUOJ; RZK^ET,ݬ@rAdJoMNO8;Rg 'ONJ}3ߍ^nML~z'k^qܝW%=D69@iҭ zP&E 7_G Hx" dp8CwjF 3ͭw:ىM˗(~%m+19Lުp6SbΈ,&Q*+ȣuts@D'K[@H1}ؼኁX>onpkTI:#:'ufL9o.9-uTR S~.K!gZ"%^!.1)AֱϣqzA_W[r$kfMQ\_2 넄gYX1ˠt\! L\x5GQ{+ E|hEAx۪҂qbft8r-{RAH,ZH^)`S,VME(i>0N1)&n#DD#tu}:*+‘+x~Wr#rec\,M)8:Ե#Yт!2Bynvi ZtGt(-qh_#Dvtj«n >u 7\.LB.N 3^Cᡑ6]1vKcԆ`*ߖRb#I#}D j8,0G8[/cbJ.y9ۛL z{֧aV n]\荠8l˺q≳$:vAr=y2R '*lrd1U3 $.Q ʒI[M̴%KǰJ-Nv#i/Ċ%5*hkYƐp7oa)b!5Yp oq=+@Qk5?1~$^x?V5Mȱ @_b?]IgZR~“mSbO(e۞2ZYu^21(poiJ,<. ۊPS#sg?yٔ Yff["" ιH5ӳƐXGϚ(CoK H'DV3%gpY6lt [s@X+ԫ\qhأQwϑpv:8*1g(1ѨNIXniW䢙n)>7?"wMD98~-mcv*t^|q[xh;/ ])_tv)h @m&;WSX ^VcrB,]I+^140Go"EMf&He(=&B)>| C,䋎1J׼σ]ZoaxcrQI~[;qr}_tݒ< `;46j( vo?j rDqr?rZ.O=㣕E-(Ray |('La\<4Ê*ȶC|8V`exw+XĴ1Wit-G-$w;)Ak+C8Tec ʫ^avXzZ2^( '3X96Rw-w80fYلDTҞ- F3Ap~ ږ{!B\7eP4~: ^+N0E P0V}?5h#ROѴɵ/  DD{yO9+/Wye ja"d'1x4hb~"l^uiRg+ErVY=k~G^OiD^N>:qY"͞ᨐQV$j~ ٠.rOqÎtMU̙N>'=˱,kmHF@Sq6"ɱ|oџ-c ';D>yk ^%5iA);lƐʇ˿#hB8[t&i" 1c6S~ %4/;znuF ]fI{|M[ڑpl^LZHC~)NAElez`5]Qu';'r26=p;R6tFkӒC ASoѵ 鐺y=TˑM0ւW Nq_35* Ky+jt6߀Ո "2 D?[R9 ,6i/} pK-:'{eNw.$2L&x яk:=Kf{1iR$MQa^lhU+]'@at+XHa9tL*>@:31l#˟}Ё/%AHv@/!Md0F./Bi%[Q5劖9yfEoQj(c5hN%>FAt) D /SCw)j2d*&~8*n0 .0 i!puKN@4` FbοⓛH.ML+UU,7;"Ff\P\π0K ^ 0z(BB,$3tXɅ mgYz@.ir?j@w 51lve9ȧcd*pl,}TPy{xcA|JMzp=z߲dŠIG>h! %v=/gOǹ#g0gZ` Hڥ05@W3'P75k%+B!sw06W=3`/=ͣ~By[VCyfWx],C,!\Ļ7 4#Cwqp<E@LDB1h6*<+H1Y+Rnn9wO _"9oz>gw5cfH'[eSK4 `X UTA[E,1Luοay6їB+@|E[NM*IM8ipu`&}Aoe6pB-;|'AӢn,K,BWF0=eo(nU/xwΑZkhx}B8L?f(@L3N#suƕONk^xlO來$UJFȆa{W{e2 Lb4bSz'TQҴsMQϳ%I)N1܂%v6~y:u53ˬƶ۟=|s2|MdWȏt-Y+aJ *DŪ]xmka?v=S1ujrE6E6 zUK88~xr}+W:262%W9&²*ƨtzdmN"aW A~?2BF RjP5ehp؁~y:rW6 {u3E;o@o.or;L]r _Z /-QfHv [^%hSКK@gWΟ፝Jf UץGu*ds(T8CH6 *Ƞ%ܒOIi z4n"]C1oNSїLjPP0_~j#"HB^C+qՓf dDbcbw (f!J|˛ s)(KrVoA6:|ۢIE a'<8@0NI0L4`߫+Lw)(c7姝qc4=gƈ䮍u9]7;{B3bj,lGw&##8ž4y?Up^=$;'cgZ'>1q2^cA,P1zoS=hzp41[*JZDݧhh(#TwiBZ:CV E_<ѽ,,Ųeqda-3eM~?@Np6C*©KA\fDghJ`>1`\ *AbDzc$*RMuCsx Bܜ/8gBj|etY|}Ѿ'ov`nGR~tFͩM}3"mD#;㇩p2r{ObZs Ceqlb`T0 3x C``Tn{((s GbmPpC<_ԋAThNIx$eZT;@90 Z[(;m-pmwUg찀Jy$lIކU#rPf!YD;*כ[% zaGY0GI#c_\`4_حl ɻ~_ ze(0)Rg4Q\W.'~hfC; F\تڈ3ePN=e%zGfV;7y76LB_˜T0n;6r`ꪀ$æu`!eRCV52]U ČH>niBIu*B `(0G[>=?ʒo$j$󰡣59V-w"'qɹ9g4 =ARLedv"bP!ѫ>G((M!ep$S аC_,49|rqw"oh2&.ayn_HaIZ.= |JZ%Պ7&|'~_ӻ0#`NJ,x!ob.yq΍}x D,:2Uz0AW,lV8,Gc[X"ܲDoײG辝z:59(&5 U|wڤY51dtѓe&rf6>дn:r͠q%Nc) އ `]:j"llI憮Hjhu%^QKB}5 ZD™B/bOM EUS \O3]h "|3`5p6 dTonlK9yvR"֝sE!"OВ=ouW<րEj"@x  =u=V4׋%K@>ec[-Ḻ}Yn.Lces ŹH ! |+%?)UVgm 0tKgD6X vNe_+f 9G֟1aRr Ia4^"`O{i2i5|EG75|+auOEyTJQK Ꮖ5^KRZYʩ~޿݅sTbЦ,ѫcg҃5=pqJb\S)IhHSE[ K&VSՓۍ˪$XB^@H@)d*]C^Tl`H❚bXey JX:{ҟ%,ׁ2`(#HRˋ R]N e0?/|G{Mm?_]\Ҙ/Vu* OX ],}ԨPN1!_e0L[an]0Ymo`5ۉ?Ze|mΒʆr+xWJe>w9Se!E')Hq~=fΪ.ax|IM7eEXL ٰaOv͹:!魌\.?Z) EzlC)6<mK@V+8TAhF7 ŒRj2<05,~d!Ff4!g+מ'zU)گ`9)C&l|-O賥&4exADMu C*$#wR4T85-`BHs;uݐ(E2 ):7RG"AYS%nM*ʨbK= *nܠIf7 # -mթsi?f䟍=dgIh,wO2|χ_9Y4&&A!!Tefd:+~63q!g[p5mL1O.욯 H2 J()Saα3x=+STWXŷ}){9 ln nvIBf즒9P rE}~w:*,h~k6;X55YN*Mh*P9 ]V)7aBl;~VHpݒvpo89ǚG<GCJBNĠ&d6}t&e%scMk"ٵolD-'SR9b77KӔPޫxjl/5UK.]}[dVԴʤ8stli `0$yOG *:f9՘=(rft[^%|3^mTG \m|ԩ}NGߦ{AM~ j=pvuRD@ԓ*s[@b9*gW!_8`S߬Z"ޞ$R{6e=}n?G,4y)?6/?cEt\YKyt!ƚd-I[1h/# bݵTfT_%8hl@0pJ'sDe.+$Ay/wOMBi&M 9=U\[n9Qr}бݮUur:nrI;ƈugls "L,m|HfWF|Hx'; kj3&ʁ8'![;7aD˙cz-4!3ts(ox+"C<%@7XF)wӞ'|TAQt>[s eF tt.hΟȡA\Vj |J,QI%Q32~W~R)'Nyiܖd ?pҌE\Opg/Z{%KO\E҇(`rUmC5'g2o6{V+nCGstf^o̼n>R)Y촠و=Ж/PVFlf @?p`.A6~lib{}X]ˎހRT[۠No퍲'b@pL|߷@,cṇg ل8Pg2ؘri"j]1 K䜗qdɑ.lJnFGs*EIB^c@ԕ%cx09|n4{ 굛jVoTE~rc)K%Z{դjR{{sW,oB\5pwl!73nf egslVUBVBGawOzlσ>tAcP]z6揬SH#9GOv\%̈́| عyC#1iz=&g0H0~ ss/m<Qݪ+|E)M_hϑf'Z o?Kt:1&b @ ~Qn@iCHD4ӾZAc2T$owt<ÁP#QE;b}ߢa bHPyVh4jٗ ^eXgF.;5UCGmyˬ-`?2S1}9 ') x,Tp~)l{q~!b)e| 9̈2b*FC(N/t FߡKfNvq@tV`;s ]IKd6g,!+;t2t1KYL4=}z31vIf{FLuc퀈+ XK`ƽEs (w&9P٧֢5Es,  &䔽mV X3 bʯ.uUcZGዷ\+d#UC)WsoXY]B(X?܁-hdoK,L04K4IYI9tɛ3C^B/ho9v!ZаuD\+ ^)[G y95{hr4%"Tgt7iĘ4$4[bDO/SM0fj&V( k 'ק6y ;R]'Ӂ;z,]LXN(zChDHjmMJuQp1*ۜh&.$I )fLv5PsW') 3 !ձnJ:Ժ@k˕!S Iz֛;;ֻTć ؿT}ؗ3fR(+P炣bs $ P, C7fۻgZz~ܶH*x,,;6~Vl(&h)vDH"WZ b 5/a:tw[Mgfmtc@H Q*` v~> Ff)Ֆ6d]E_gs_ϻ O jN_KpF<AUa9Q}~Yf,9WH 9%cZ\,6TnQwgWM}3DvBvRHL0A c|'^VAs +Gb֥w~fv3,?ZvĀ* 9Q}w9LpF30y齙k~r7Bc4)/еr 6UM$TgGȥބ`'`Oܳ$M !Sr rz!ً~GK[W <_@whW%:!gA4jzf>Wئٸ@Ho*2;=l -L%f)^-uNiqɪ?J$HubpQ6Ys 멫XʣUv*%…EAӃ~d&r,]eMSjQ їcN~GUA| *.,v!Ġ{~9E0V>s9 WR}wʦ_B:^vMt4Q<ؽn`cyr@ÉZecoW)mc7YhWɖ\Vk 2ý W+<<٠M)P}'/9{we/xpe)Ha2SA2MTlGnh >|W˕E_Wqܰ6`&>z|Y4RcF7\ᙯ5>+޹)RZ]X UL7#YUeFXj"[&_ZutK;{yZk سK7=-{! Stf!:p7е`6taCE5LJq)$0Vgu.r5)^yaI5ιИDp?^sًWpStx Vo,f#UG=ƭpB:grwGhSDcl'[p\3TcN6JWm2s7}`E%6|lwHےnFBDksBr9\W?\Cm!UoR?ѴO|cgv^b . BNv&=bT @8g޷,[?vMP0FF03LYfIw^DcZ#H.0h=P4Cͤvt`n]nahL@_ F-4:NVM7R t($ƈ9n]%fpyc3"X.j1'=L)70Iߗר2[vs:&~dnF3icD`( $i:st ]E_"]5ƀBm88lLK=Yh?gȣN,\<8Xd>iXh 8S:8aq)4<Wx3*=rtrnz0p& (]ɫi[yGdAw`UC;Bi#Í^Ϡ+Nɮ<.+Iu >+8X`Ht76! -m˸7HJRlcsz&<^2;Ulֈ&IoYX{P{#C0D32#voPN')-stϯiÊU/DVtp&~aGc md|vN,׿:Ic2AmqѝH-arB܆ zzP\rfJ4TDPSjǹ_(] b̃#9 ,x'nJ[W+ !n u9uQ ߀$vX47u7tVsܚP@=_ԡGF xVIZx3P7̍Q_V -{3 ׅo(U wS?ױ *%si:O"6%)5vz|nβ"GZ@Go[DZJ!.m׊?J'~ \ BjMm ߉-LHKl=q`Z[NƔ+HGfg)v&sNWweC_ }`iN(+:^49irg9`M6/OEҏ ؽigCURSh爇h#EZ$|޹ݣ/; uQ/mӽuGP[HcPz2VnX4Ӈ ࡰ;6*={li@wQ g# kF:gt18y)q#dq *ŤJ6huTDڑ[۩H+CEܷcr2n֙b`ǐ;}hQYEDњ\~ض,ӶZڒ}@_ 8iUQd[aݢut2M%BHDĪ:bfHt! ,M 9j }v1tb􊼘d3|.oOff׃з- 4)n]ӑO{ʨ{f}i}d"0 աbG̀GThMF:I/0fRF[t0)ț;n =TS=+lmwew%ZFpq]2a %k ! j-b&qKvJlr|Z^Maq_Q &}p˴YFڈG7xGkzJ1n4wЫ&ND8PB`4;@(t[;-'@9r!|@Hm>`vz_\QqCO_Vݽ,5cfazƝ[ vos6omCݶ=!.Zq XaPI%Je/ XF˙.a/9IlB~z%^-ؔRTYͱ .sIM v'Q%ۺ'~>­-m&ӓ)B$#n* gXӵ/e}?iz6qD±MϬn~d쬫b{-zhI<%"b:EgϠ+^Z*۬/UP,ϰ6]%vg7 jB\8Kyd~79 +=B̳iα^׌aQZ/"Uٰ_#HI=}tHrǧc4b$><5Sq9i(]8m-w},Jkϋ>:K⧅, wWc=OsRFY/5w5vrqS))o~ -G,j!Mܙ£1Qpq{ͷ='WԈQM&v#F"F4ƍ|&`-O36W7?Oo:^gz{,s_8@++~2 @$YԌ׼k8p4_xD\>_MSs=g%tQ_|ޭЂ? N]+ҧ="¸ׁ̍ Ll&CT BF_EY"rqaAgApA`X'}=^4AYԵCxBzY]$:Af~*M ߺV*+:KlR{…xMR@֧^8 [zwˆZªc5l6YRcF峾]-- RSFr- , YGiBUnM#3.F[`" T?#S@TuzW{E)nWùa;3Qr:Oy,Fwk6Eѓ+H1-ȋEIe8_"-'q{M,<.j?QIC ?;XBF+HNt`]mLߑaeCL V-uvU- |&i-_E-N&d2׍]hBVu,DijXCAu\tw0!0,QO2,LDيBHc 3C.--! 55PA;^为_񾗇|Ɍ84_N("rki[U)#KJ, @Ap~PNoͯܙZKNIo y s?< _1-3o~E>꠻*ڢ`(Ϩ:c64C7. $ ˪Z%3{o#ޡIc(⤟i'_M^g 9S]?W@Lʓ=^5`~$5[F36)-q<!#FL]2 ؉щ%(gQlk9_SK&s>D1BwxYJ/ 5L TJSi-,36D?TpZ,]F g//#1 r 2,eFdT9C4ZYFPa|hcHP. hfrN6:/Y,3sƒ{üőӣ#ժ +fk#%| _k 2d.8DϪСu­obq[ovڮVZcKBfVzҟ~M5o|&T!- J- ]` z<"uR>p@ dUМ,8ǂQ+ Z5ׂU?c{FtSff t𶺂7bWXl@+)6r^ o3 .Lf{njv:nk% KkӐ-! "G uM=An[>QN^$j:N) g;; {)yP׊ŕ:-l]AN@2]{c{o8=D\/PjGMbTFiI/Tmyȷ TG#tuyGdr.`\WSR}4Lʝ4GY$2`3U3 'M (uɛn@C`e0F]BUX1r\P{ʬXWgEM 6^Ew` B+6E9-q# fO;1ݻXhIyG=*,ޏ8܈WZQ/,9{+푝DR,!+ :;ߕ W1Tߜ `yʌP\0~:iY>/w~E{Fo@51h~ Aw<6ͧ͘.U>%i#t ;|bޯ Fv2Zئc*E(qQU ietL'ǦUX%4zgcLWR!iq>qI"[V82&:HXE Ѹg+!a?T27_iD,s̭n_FU$vnOV"lQ*Fd衐AX~ fu .(hX)_Gװثeܑ/7꘮<, yfxFȃ1Ǒ'TQD ĵtt O1\ ڳas2s$??fh;L*CNQiH$ \ѳ|ih"AR| o-uapt%dVdޛ34,?!S(?E{ε1p c{!.2o_5:gruH_?E>w-u8cdr+7|TJ i_o&  \a]lIV4p9F gB`Up=9=VT'MOQ2-Sՙm U4n1Gߵ =#"4G우q/^o#fQDo#/jz>j_vw7JSnştD@X Q,auԘI"SBS$"~} swϓH^5N14Wm/Fhɒq :rBM'K7K6w%p<#q ;29_o7G>?*=GP 5qlYܺ巤y@_,d?%Pp%}UDc[G+LONXl}ؚi`ΞƮ)Ҷ AL?~+߬}rݰ q;1[(|A]pkw`U- O7yv!14'S%xm4<%+a{p9r>\G#? yc}!CS6U{WڡiJV@@(AzR>+b=\lÅA6Fnip@s;Eچy2<@wDrxQv1@bN(%!qGvT꯿,ӇiMl?@\5]t d֐]t$ zr:׫I"$[ ӑ+7P֊#r`3|4:د8ǘFYZr=(qasq8FbhMŏOC̸͚|b.UiGȎN^g>74ְQ,р2ԴWccQmmYB@>jɱTqspG~L̽ [dAj,3=En)j}gToN$p 垜<!0wlW&K|_TjJd[舔>?&2/u͡3h*c$TnZ"}c7W}(u`kK݂|#,+a}7,V pft=֘ `}4XR{ W6|K"cy(tKÏ&(ԥ dԲUΐc(aɏRVyLo*6~Z4+Fx;TFͬ)Yj&:_\s:<|Õgp,ytyGK*h 蓒ttO&֨YN&94P-*6݊M'OY#\T3cI<(Yzno4JX6Ǒi| KYTPwvzw]oId]11ȗN4cƊG[DҸ !25]ݞ^KȂ=a$dd]FgK^#NNwLZa?t򌿌N(ѣmXDP֐u [,y{7pA,ht轃|} F,8jWY=EPm1zO<(XEmt}q+>t}wmFu?e5z֡2O*\~Hn'0x`B.ɠXK>֡7og>%ÒI8 eQqHtm!" 򚝸PX m XNZYYi\[g\S]dXϟ,:ͻ$NF@^JmAZӈ5N:Hgb[Uj%1Y빍x22;83 .R37x)03cl-y6A3]߇= 2PYrZV0FuEx[&cBbs.Ʊc\$ 'jb*ShNttㄹ7_LG=,T81"]nk?5@M~O ]11,#ޕwgE&uhhϑZp\V긒DH؄}CM(Iazk;E ":-OvΤMq*Zgifāc]sҁ}7p/|TJL }'TL ||!Jw6`qZ c{EijR|y [L~-.T*'skoGci"ER|_'qD#iec `#mp>Q'U7!&^in9{>F#|Pg+?qk9Ava!|"0)eƮ!b(sdW϶&'HԄTΤ p؉ei8GU&-nv $XRL?P%^ rKf&doDQ!:XDxdZMmw!=}RCujEғ]^p ^Y?-I|2s?#:b?֞窱iQ鼉 ʣVq!#F9Y.۬ZIqj>( +Q3MsUkOl,p!GR^HMZNIS?` yjct=_WhbD[7Ϊz"G%fwE{S5g6HW?Q"@EרQ_I\GN 1`!|YTxn6oXdFe:KV!Idhq_0AZϽ0%G; E:'z U/9x@jLvg宑-DִxtJRE&JD`5#xp eTN@ڬ D]`T"\C;?#b<5d?2‰ @F(bv ?^^-d_9i}ox#~z<ݾuSg:4lUvXMp?tW0[$~ғ21t3ʘ}5GX4atIgYͤ12p|C*@GlB)9MN7efq3(9,ʮrzQSUPBaԪ 9`1FxбpD% g@e5I]>HkRϥ~(P6O)iӧ3*zq<8BNkwU!b=@k_I@Z?pi*},1h xS G:.D <cv#۸g0DO6ʿ}0F7jb( |/iݸJ@;"բ(/=pS9-13xKbNrY Ġ;)MVh~U uո:(dIC摍P.OX?X9(u/ޘS襚_g/Wtzr{uɐ ^a^m=Y30,)Q%?ޓs|q%Ǟ&1r ^;}zPH2Jg(!3IgžZØ+%!%QF dӗ>X*dޡъ+d!t岰=skMXFaOaօ^Qx7q^pOJ?Y4o_P0:Jw#H5EBK~UHOcL,H@iک :WkI)O~FG-1' YϓFS4K݋N-knl8ڵ55I> N]dCar}M#@:DY4cңYi*# Rb0C7Уd 1٦/LcuKgD{[zH).M(-x#fb)R$. f"yvC+ Vk *K:PAiɜ2닋5=r(rx9|xPJm7v4T3(sG!  EdElv9vBǒǗz|KYW?,;)<;~^q̵`Oa;xƉCwVxy<y}5d<<,[?mH`fkWTXiƨ綵o=LFu:eDgM[jP) pFzr㿺A@A1;4&(o;mҪF Q2v_ zNBc=.Qb c0w~q-)H=2k+8(H0Ȱ {PRT T@Q |D;yݒVT˾ܣihHHb'mWÕEO@5uRՒEwD J#] Biέ"uFB`B<`0IB~@>\ЪRf(%?(H`QK :kg\KO7@Wj3#uJkļ0ѭW/ku|7T_ݜ`D1mzɲ˅١zk?D.ݩ$U35@E,CYj0m1PqPml%KMs .%=VKxt2khj=|a!&4(boA @ ro}mpD+]ڛka?p%s ܟ#o>_8FQϼ[9o yF7IјsLRTDc9nƋ-<)NcM _hm*(8DӒ6鎆h2 ^g-'RݻmLI1-ű#9%Fᨻm[-W7mO2XQ\c<׃,8h7qF#<hZ^Kf$E˲WFӭD*/\q VL Vh!*'W׿7lQeqx_䓏.!{ryye2D+[>p%_00] ROmG/(Ҫ և k330-U5<*Z'k!ec TX3:NJjF{Bi<99!"ej] %uAvҟp5,{(m B}+Mlk?y /"h s^u!PJǙmt Q|1 "p R5%EB,^),KGP+b"IK,EX!Ff¡jr 3\j10y@O|X30Aoc75 ~{)kO>kiLdbzfQ ?wrJgxF)2< 3JrK_6yn`2cʖL(>ώ*LڭPqŤ1)L9c~+$e^w"~opVs1-/j*PrѿeRIM40@r5U;W ?^&;g6Ht ʣܛpWdc{(6vT.I]2j! ոy-e̖h80e)69䴃|?̾)#'N aC΂=ƸDll|/vޚud?yqAs7]`a82:WzmG9U/ 2 G :[9Ǖ9D,8Gb tҽC ec C8/AnBv_qv3K jU6iQIҙUC~0|ջ:4OBkm$!xݔ |shg:4Umqg*ca=&' 'B覉) vU֦VK7#>#ğ¾@ ^2Ϥ猈3!31 gX(z ӧ>)iYSo,ܒϴG)LJ⃀A%W%gy!N9n1 2X&l3%շ$#pʟpPxF}CGV-39sQ3cIs?K-U8s|u Iqutuh)x'*H1{vZ'*.AdȞ-Ƒ:GrSZ3K!I=࡟;P !j^*$![q#ş~$oK+7GYRIWZ |B5 EaFl7cQ7jG*S3y“m"Qon,quVȞ۰8),W1|_(ÒPa<жh SAܯD925 M $2ٸ3) c<1`C*D6wۘ{-nGC (@vԋE9l!y|2|=jS1$Lt p궛o d3k##DkPA1Y#˓t.8;$.vrѳa1EզtyƚCr0XDCοaK9 ai1brq`CEI;|70[pn}f]ZA* Y*1ɞbUPl*L-Z&c7 [6*aww!~'LYdǟj? nW]OɊ)J&hTՓӔ`jL뒍-zڄٜaYoƼ ߬}=C.#o/8dS>ɞNR^Y64L[C2lB);BqsˑadlȀAWm9hb,@_E+NLnCx>,y,э AWK{ju}vRK?LSgkkŖ/X-(|jd$8]j3J^ĿPhRu&ΊKA$!ѸP+˰TK5ھk{38*0Ih&OX1q< s)䪂>V)i5X?MOnIE&H N&h__ 7 WӏTU&ε1 \`r\(N˯+ Lyb,fk*s4wz`M~Ϟf,y62=4tk~GnfH J,j /qoIh?w- MC@7ٚӥGo$\OM̈_WgDʌM։T}J55.f f#|{6]|{uaFRblo53n< V3:^ QMqMo86|MRa vw逧.Y4NG(7aA+$ZVez?#i iGܲ=;Yz3:p|r!R.jQ@/55K|doٶLQ 5jb҉~lҮ&K9k о( 3bm] gIҨˊ*C³"{ QlHȪcXtVqԃ53%YS1T򓘞;Ijpx5R<,jwZJcs3)2.&=_ kX*-<5n5kРv9%z_'eD;()*G>lۉ v(O,,f+vmV 4;=54I>Tfr7fhgp7JWG$h}ju0Э2oњviD (".gYBUJN%g/ T0ɷx,# hQr V)X;qh \-cz#won*ǧ[J^W ⟅ |(‚?J}G)6!8GH,#ΐ,Xvu Jbk!)R|v7Ͳz OEKOY ]Rv }=1j7Tw81 la?ɸ0]kߞK&y.)M蕯gt]|rzE&%ruz?x@Aqe~0FOq75Nq;|EeYk5YIt_e͆|%N+@1Ӗ;˂ nui2ŨG?{G yH:=rZ=P P%/<2*nRL"$8\wEmAKFv{XJV-5yjXIvccy Y[~74( 0E E&egzBˎQV̋“YWB'N!rCFufl 6&"!h [ L2S#<^@ :ַ:6{(;pݝU0 A 2U1^gud~_QS3;O >"Jj0%"0kCgނU4KCM;lIԻ*| "c_8빵#FX V}hC|ݪ}sچǖt!E-"97P'T $t3ļKz=2W"^o?Ɣ l1&P 7 5tKvR:rӑZ7-@{ԹgֿWY4Q1MqO zO348u0Ius1XZXRؒtR\NfHS 6FX"CbwRsI,o*~D/PhD`ԟ2R洃zo"IN7+>ډg4+ ">= %7GY.;[8cNC:*2}DkK,es ˆܐאdu2$r3ʃz9a5%Vyf׵9;#(-d3-@3D* m4SvuI|XBU}Uܟ`ʏ`2ѴӒmiB"G+J em*1V1`MtvQhcO C>L(v n3\F֙+i'vEEzufSwYʗbXG_7#O_-e2ns@2*hga!uM``_'M0ͮ3|n)W9Ptr2$1@M|\( :Z1cGJVK_H3>q,,!x_v0 YQC ,5)bTyӜ9# =mN )q/CR1sW;ftuLbWI`0ٌF=2tlWMUdaԪ#6R654{z0JGX࡮i!j^!*8틶 =O vr@!MSU ^)I}}ENuV?^8Wȯ,x[%v .ҁvK/ٿ>q,TXƛbTx{C &$95Eb WN$'9&L OpAယÞ+7~r{A:9XU:NNsM?eQV4䐳܄oRMCl_F$7*@$MM@gȳO1 'p|2nBl/,%+o8Fo gn"n\P:T0%Kp4?NΪ#)JTj3@4LENȉ<0> )8rZ A9\ \Ydʔφ5%?w>8ގv|XqRK6lKc+Va͚[ C52?RJT uQc9RbRËxZ00Cڋ:^x0 ٗܲ+)u4s FlU@ExE.,g֚ joi XT;+xoa=ěCUx" %(xԨt"خO^fƜ4J+a[)N0 6o*]1/*r;}Ϸ&Wi9m?h;Rsrū\w6jU5Veg%YUwhK@tih Wl5\]H3} p&􄇄^JѴhPSa[]oW;XM@_aOShbNT HkV}R?mdEq ?Ly 6zkk6=ws&/5j'5BY$cc~lbj3ʹ˘[[϶BP>yYtn>MһN5z]aЮ{0@f`wQ;pvX}ӘaѮ=z"[ ݌3-vޝB`уͺjkNܕ-s^ysFVRrVlB(l-B!S߉P<)Ndꦆ VU pԒWBU.F@rx6mHգL \-KQrw֮_J;!C_lvJhvk@ԕ\!*59?"R5YeWƒ`m(}*G#wX"ޜ'7CG߽֍ȡ`Yܚm/*41vNxX0 y,Sa(}uNR&ǣ=VΤu&sT"u_:Z[=զ9:8-Iti먔 08c VOW>%r%ėkĆ90>꠼U48nV<0ZA[7 iMKU{cSn si6Xźke eV"9-m15DPmxsQ0s|BJ)cX,JcAZޭ;ƝXohL N)bgbՏ61MPבY$hPػ%fdS )z35e a#z;:B[&=&U F:r %Gn/'Xk&KHq VJ Y_ T#Lkl&:&Ҷ6XS7#ƱB(ד>Nt8{93$%4 /&pN+B.v(Om9 KP?5 Q5B2n[߯c9/ *4`ЩǧR.tzlnal9AiOLD@"/)(!t "V3M, ^g?J($:k ~4iii+/>㌌;y{z6?1 WK~Tj8%kHoι| 6FW!ϧ˸Y+ 5 3.6_0yAYÏUnd)lu"!B #:k6{S{69(Tp'SKoG}tzkyp Tjgo VZ Edp(c]sfMD'y}3mP;=| Q*A ex_+?r'NJXc )WWm&!&?De,IDƥ&Gђr6~#DpG=`':"vu ԑ-s6f:dd%FEH{;K`21RʃFfDoĔg2B L~#GĜ; O\% I5s a}v]+, ܡv^i'#<نtg%5_(6Dh >T;:63cAɭQ9 MO5\X}|!*r8*scC'14O@d,d[ >@hs5}ZN |{3fB k!Zbs|J ;ޣ{/'2suԹ_E.D˟ Pڧ=_U Ÿb&d {>2([)KR9;OMq[(% r'cy3Uƨ0ma;ⷽNhFJAh6*028Hw_Ҡ> ߼l1_5w} bDi+4`|A*c)ɎzD:握>VNQz,;NuT@wqbN/5$!i9bp=rs?䙢 JEcϻoY )eSٺB X[ ~$pEiPvE -oTcQH!eh"KmPǼ>R\dSKw&z;6ubn% {BkMeJZ_Ϣ՛Mg"FK =#ϸEg5?e! T~ i62^?E rVq 3Eg%/Mk ۈHbS D?l2  !-=mNgKE8 ݉j31k䉖]oq~)%f膁_j}/vbߌ͚ y鐧r=ba76QOd+L X&B>o#{E7^B/`>^gyԈQ'W_u*QYy%:mHr_~)~a2X|jte1khW8 mz-Q\ruDÿ*C 6Aho_$<0m}U=L݇,+W֪}!:,'CjO@LK*Cm ePhsqL{|@5+)8O|YWKVX=xǰa!3d"&0$blfKX}<`6S1?9cv8Si{>eԕ%N" k*ӆڵ6*«0L-kHnvhI3b/DU l"n'"05A)πdT|@0糙y>ch\? FrqA9BD\ulQdI(A$6; $-珯|azm uлz΁Wћ/Kc`|:y$YL gvȘGTGw-EMSb;Wn'2ŵmw֣w^Pp{ї[nG0 PMJ $_8덟>o&大Nd dtu=+F3Z[tVlh,on_Hr_8j]gI혡οBDkD> y̳WeӐvj1]$=wCHF6 |NEq[b xcq ;rٯsIE]rSYB@ eӆj?S"\b&~Dz%)H7>IgҶקJYSܧYrqn?7V?EX~9KBQ>L$Oh@= ŸŹ1XxNC\# [Qa!cN9h~Zc[8T #4P JVڞ,fVX_ʏ:Ӟ4Ub*z̆S"a#ZVH5e}s$_Ej2$ q5:)\WvXxaդP3+P֯譖EfYL$h?"f'4v@OA&%Qn;%֪ps`rjE/,+ScEA]mgdl Wo9ÖBܟ[;P*]9Bbnh(Q,mݚw$Z]%7 \ }q'2\jm,UZeLLTjk3So=@<&})dQABEs9PaʗefNZ=}7S n.zL8 } G6seРV @M)T&ܨ"B ԝk("h xiT,wzdUM.m*ww dͱc;Vsge}; DF`"-q_'v{`zl)-H仂L;ݺBA^R* IuϜERQ" *> (`s@>zb `q=oܠG<(+"C) 8S#bP6u{oW ~3k[U0<]m`\9M02cl;S gݴ*p^Md54= ]C@4@*GѕK~Pؠz6~)aM2pRHR1P!A#ޮGxsV}4JsE4pL9c1sWsvP+jbK*7>DD"NNtx2Ϫ#P 'qm*?N3GoQQxH1oCM7 Sz9WP4ԒLdճǂwsgDI#؂d AV7B,y~Nuz0G",(*Zu:ȶa}m;[yBl/NB&G&5%cAe(qhfmEl?$8a9;ɭKs]IaKL Sq œ/[EN K|aۦ=ayԋȩLDͬЎ]t`.P[G=Aft'zFᶯ*!Ŏ}3F[ES}Vxr.mRna @v~BeMZ ҷ.|^{Wb郞Cl.I"#gsg?jE%c}Uʚ[ْ,8KTŗ-G -!`| /K#Y N75KzBS'jaЫ+ɏ%^s >lيou$qQYB<Ń*瀜|򔵟+Z1~8?6/Xe[?6ϖzIKvJ4[D/ׯ%8<[UhOQD zz:$a~xe-|߭!å(arS4 ß}Ahww/`W{T=nE93E/l!3YD7fw@[#ϊiH9Y=O< M\,#" .2W׶-ye's V~.`eB3?U*4-.g-Bm9ɲi*)VoɔX$p}Gelo)GUiRX=buն_l:qej~>d ^8 W`gv$%/.|І&P81W1d~0`\9QWhړDhsFB5M=Qd4q d[HbԸNت'vgA u#0m{U4 1xkzisq W|$afz8ħ^xKש.ޤ d0@/a/i'bTy9YZyC\9;jӅ 8TO;1@ Д=QBM'L.SwkѰ;&\aH&vxXS]o[LnLY zYb"۪w` ڡ3okЫf=)d!\l\q~{SnQM=TkQ2J7'w@Q)y{j3w. hq0Dz&b!^uPa~ k#h*j {i-xN= ^-\G\eg*3)ÌW(|&qD`ҶGm\@My;u„"Y tFQ6҈CW%nCte}0[&Ds0[>C!Jb(.1كõe."|A/ ^!PK6"tcIjQh+@ H#a!I;-zgU' Crc1t(㥓4c!BⓚQ^ _8aA kDn=-ڕC  QY0.8 `k2ȓ[eyjA{nctԑ2؝}5=d0 8*9_*hxA {)sN9~wNt]Q5 .v8jb5)ݭBke8x{\ B(2P@/b~+c%#]yem[UC8,BNIa@ؠDn #>nviP؞"0p$\\M7qS!I ro hg]"FwVCh-lbGvh%߅-(jC%opVS N]',LlE7Eo/5Yph>XZSS+VT.EMaJv *hAʅ߾U8!@}F89 P5^]ƴKːCP{ C=SlVs҅[]XwW%]?wiy;1}FtDKF%;77fi5Q[o?}3GȐҋ.~S$ _ZMjN*ʂZ,+*;\a\za3؀AR)`1E`jq̚j˱.ݦR{ie턊m [ SD+NaZ;u%TDjH|2yau|3gלp&%w0^%/ 1P pS( %˃EDpY`TP.&J o=3<FZkW\`1rA:m`Wޱ0Diԇ79NE&/o{/늁8' >Hɰi+uh X YǼW PכV̬ Z%OƗ+DZڼ$Ft A>`D׭O8 {pJ$gm޼󇋈w$r[ fA1&~.= \2ϦV[O ӓln4g5mR[*6vV_bLlGmNfwWhos kZ8-FhC dO&Vgn\k0թRF_I&A(3"5ɿ#~޺y߅)qI,[?[.H5Y[eR+^NBᘱI zf 6VKwɍǗ?3C2)ğZ{Bd*v!_uzq[ f-0站'{߬ꘖǡ"P택 >/z?z$6n8Sʆ>$9Ejy@-v3wԋhYQ=Ax[C岈n<u\S%RX/9zlYY`FgqhyW ~͈] y*g9 @]Jhֳ]kbG" xI#0]Uu00gI BDˈ9 F*ؗh@기nuZgN"]s{i3G bح$.ң _ODrq5(],+ԌT Z_&0VYOW$fjFRh{O2035bV8Ce@,}yi3xCָ\v޷!WgT]T`͕X/nR9p<Џ(O#@"BR'3,PjϿaUt2O/_JFOn#ڱ6beE.n yNbJ^FKfUPq=5jPb*%iP:^)0>0IodY>I_ 2k2W/\`5.=ŤQBS90'\:6>̬e"=oh93M&.p^=>X.Z,ë]z%3侰YF>>:mHصV(5 u, Y@~cd)+NEBTAIvgDI1^m$|xܝEvX7 F|8 `ubt=q`vDtvrvQ5S L'4l 7/7- ZؙtGAsxڨ(4[IbZX !7Ţӓv M҉(jP>9Bz)oYeyX>vQTI0 =\cKޣ |i͘gf-M^vp ~y=7`Y>Mpi8'.\վr ɷF[7uqoz58Տ> | Џ@}s#zuz x3Z#=}t͠`oXh< {K )fDOBA07$ڐW~ &O c7[k8RM :DkKl}I8*Hws~I쪋C>&·L'Pe]LwBrN$J@ʡC$'vCSD[[HwSwN/6n69 s]cǏHQHAdaZ8Lf"h Z*p'-d·M 'Y7r uOD淆ȏSn4"GRIbʚw`BG(s>b2!8>+Elpm ~A` T\6rd \HU.[e<w?ւ? -?t@:b˯yئ@l4?0*~ZYaGsWdZ@2tcSS`& >Ӭ!#Eu>!R~Hzք:'`Xm#V MA0̕4=H54Z>x;+dOvB$=2{\ &R!Sk׻~ǷaT%VgtntHYùةT},CWQvZXA/>.qCAK[f]C٠f!tBU:Պq#£{UNء :?CfP-裭^zCC;_ 4қdf]WtL{Dx|3Y* ǭox| hkv!JGI\ɻGu6 .Gm4FmEB$?p%9[KD =!z\ߙ0% =++msF=IůjHy=zxTs@"-&w,urDoP9VK^Jxzq3)bTnr6T+>s[#Mrz%Dt1NnR!@mndZYx@ {:,p4/>2a7;G 5Ú*`A/tֱ ʳީ})?P-)E1BuᕌÙ.$e'YݮFw&(]cO__ 6I@J6]smgeBizԛ:VTrgu;0$5`tR^8̒dlf$Uyl&a3˕&F'3 cM Gc\A,\Mh46>be+&^gd8ncAyM&MBcpG2@VY|6fҀID$L$>n Qgkn䎱iri>FD I_[l3Ʌ."IewX~7Vʜ,61CVyK[& Lkxcyw-أ\W$_ֆ/cZ$Ȗ.}<{R!uC  %U4 2)8A/0֯tu$$pv z|Us RD#TZAz!2aeiיּ&94A^c`JcMOZsD];@I%b,P&۠7dy1yˆ^qά<a`^xP0#7&@*&>PǾx1,Sك7%7HN_Vlג93@r',=$^6)h Sbm`x>^S5Qlױe9&Coq<.mtm8vIp!jp,D m&;Q#];"P 9,>*y 'A{0 CݵlG{bۈ|V PiC֯UR>^< 2 #H閾7׬=,_E󱬮S%m N۪&f:Ά z҅;.yŐ:-j R4 5qX0շ01r$|nRvvݐn_mťV`S#PtmPcc6lYl7Sze= -:(ۙ]qBB$2W&SXnqRI2,pCIgV)AkS-3jG.}8d$/LrR:DOhE1|*W_%^J3ȆJD1Тp!45wdQ=^$9ϫ\KP-n^=X#eB*NM~zE+ |gg[,U72H }/|.iVYxas,8^rE QIT}? zXɶXĞ32,]O?=}܌s *<ȟh‰WJ %vk}*L;2SCap 97 -N+R>-+))=|"0/LC:P\_ZXΕ.Hy>8HnGIgGa[͒n˅8oe̗&~,|C!/9mדM7%O³/@RGٺڔ*F5,ab)ŰDž*#m[9'_wSf&.3m7p;kS@a2^i!G_Iw[B7~m2[Q/Ms7>CN g妲|2fQ–&h:c ћFglTI0>._I̱R0̙iL-4Ϟr\ѽD(C\+*: 0@r u= -=9:(OQTo}?Y?QgUgs?N%G2c!ەA ̢AW~P)XZ:҉JCd-kys S`c{7MA8<[Yȕ5"DEQ='ad m hlj1#'4+;;9RG 5h90pզ5^x#+iXbW ˓{ufF"9(kS*aGV:q"EUG5w, tpEbDtY,UU(:ԥMZ<nn}sARz"BXh]$6s鄡`+j@U\އ1xmx˴R \T+^XL?IL׺GO!,(/Q{'̈́z}4)^ ]-UQ>`Esu ^G$,J :(] )0wPwhhsZ$%A,n f|H;)1.#j\u S#*G.eIM+dcrYF?7)oZГg5u7dv#9hv_Ӈ$Cp` uɶh5kkw4"R(Ti]B~-X*z`3=Gt^ٯ~UCM&>o 7#(̇+9X *_ cI\~|ش;a9|Ra5D$ůIZiwQ՞(yE{7H &E<EхyI"C>l*9!Os&f%<6瑕Zco1x"Y- j {)[=fư`O]&īC> ^{\CR'6D1150OF@*Td&Gi[Hy3GpOe}uΰPVCFW ? a5|".K?GPL2U'" ǓELpo=Q<=QWA~}H8$pz ҠajB@aX$<pwe/I\ysZoȯby S$IΝۻލmW{`.Aa"vd7* yl7v;F\ao#b 3U ZRQ$7iz7F4` _:L=+ vkjD1 &JXr"6/Z4eN;ziUtl5_9y 'i|}'TݶdXӡQ"K.rA!3Y&HPSmG1)pQK ! O)Oy]8e.'q|cYd KajC"SQL8hyIt{9 uj0p(90\G'<[OpORlIӥ(Xa $1Z3^sC?έ?ͥpzAo0۬&U -iE/Y胜ǪOU<[Sb?iȂD3P7qr.d-]Au |yXaحnٰZ9bGYk̿YBܢl8$TDp!tMi0YJF\--Li v{fY7Z8K!aBEY${QcZǙPj]@~'f0cEiќW_Sծ]),H=X>a(.a[F+}8i(n/M/K2 hwa#@G'N1wq҇@~e iƇM\ŵp/A`ңD8Rj𱲛;Eë[ &/ /&aߝP@QPfl!A/GwBidR{?Km߳$Q?XuDTJ/ךGEŕ*p49<S:NN@'{\}PX|m!$}i"R"hn]MZ^ӷVӰ.AWSMd_aouEXC}:GL~8`)v ,Wg[[SAgj:Xk*Ƨvb0;%XNRy(WWrj/fe?beaIT:eũX|^ 6}IB]RPH ňڜ#vXr;-)\ڤߚL~Tv +2Ka|vQM*?2 =L8aN+qRi ;Yppy{s~U$~el OqTitԦʟ;]bQ;8C AH^!'NX!Qp)97Y~pIXWtloZ+hiکN7Jg#2Qۄ6Dٽ6^O*#]I.x\y97͌@`hۢO[dlW6r_~__J+Epĥm6ONyhP s.5 4%| 65SƱ!xTd3eX⣂+i= z2=: |#N0OO0"Ep빗'URIPTxUW=0tL^t=@Moe6GR0M-PBuq'9;F: UO*J͋@mm? (sbǾIj`=;Z,FYxfb*|`H.c&oR8toT-\dXrʩBS}xZ.1] 0Զ#Q0}HX lKDÜ[7+A6?OŒ֎-ob A1]6D9DݲPb=۔"jw,C3i0QRE3*e’d[e wЄMPN¢2mlyz tC 6 ѿBvyfƽJHt 98H[9Iu @kߡbxc;7Ʀ#^vB.l&N"<a\XK-u ?܆يX2Yʹp_C[/XAݑ ixWfpW܇6@]ۏC1$v,9j&$&kHc8ǽj5 PC%cwnzj0:Kex @a\B$ ыKkT0oOV̏^B ԖԇQM _ǯ8*!ꨵjei؉6--j=ÄM\/ʧUǜ?gi^8s+*Զ(^rc5fw7ݒ\^H2UC4ETvrS[俭3p\Ɏ(*G}dQk:x7 ރb\s5}4:m Eq!eQ(#hql5LXƘr M]H*8@S;4kOTծ'tY2jA%.Ct1W]yUcr2zv]#PC7˪.h2)6'(V&i_ `Wi"t|e`5uByG-p tt2 n lrf?b,9uV'ߒ6|'\w7T@ ^- W <;? 7dഓ9M? aj(r境5DC^x{ /ewpRԃT7>q>'YSK/v ={W=HG+['N0DFVý yk3v> !mLPw"jQM` F@ȱ_W?kh,{y53V`KSF=Q?`]}>$A4 łN.ԄQQ;cN]n;h<"XŇAhJoay#Jga)do5VP*nZ7ohg¦<+T3t.hҞ*ɇ?'e,2$ Qی;|mHmXs֌Pt@ET2 ]cWEP4o#,f?v#u,Mk3@ `x`YJr#J$z|4& ՎaC^йyqj]bY(/^I+oS^'wCZw1J#^cu `q z*Q{T{& qqn%ΣC(ﮀS):afaá*mBWX(WU$sL;2){cbpl$HY}9kGGY!eEf{&s]yn5$\=-3z_m%P@$y%DP85T#R)J[o1dXTyO0StoW(zkhߞW7ael i.WEPxȭF00LJTesse2ў.|y̪R<%kR;B9؀T-PB@{zCM.aX ԇHBfǩiF W'r`*(6?G?*J)OQEIs.52|G>AiK5jYN[j gaUbC@h)3r9. 5xcoAJ? gd3#q 1vq ïpSA4K)+ϫ؀%+X^l1Pۀ-tTNأQ{5w}-ۉ+Clq Q#}2J; `ۨ<5NSٺsJ&M(QڣBУ*pW38%N$4ƪ84ڍ7S5KTw͡RPKLvSo|`i\&A& K1"[1qzzOꔘԳOhjQr~y! ~I[oPy +'ǷD,zk1g:i_5e5AcdComs0f5M]B\2ɰ3QI1;L4㷷ن7AjCٵOJd?& fb~ w R[0(]RG{M\SG?3GddNV8 VlN8m7HS䡃Rǀko7I^lgo'CQ Hvji؃syh#v{$׉- [(w /h=_CO w$rxPYG*&M .r ퟉_bʵוg9j,̩pe"M *4AO/z T(Хj}Q|j֘Hk)u*B\F S@TaM4 qL })rN vBáVZG]Szm/qB>lk-d,G=Na hאJ |=AnZR4 FZ"iz8Bad}AJ:dBW9lۑzr5ݾ[)'{ Ȏgj.^- C\z0-{;ӝD0X"Hщn MVʁAoͅ4pS>[zvx CKN`PY =\-kbe7OZf,l:l8;i1ES*u?•Q*_/33p3_ maބx KA`=p׏j,v jw͞mPm $FI}mR1)sYh~@WFi=ZVGaVtiwD|Ebqq $e@ˆʆB"! u"5&wkw]u!}ӆLF5H:`oH9ǼX ߫*re_9w<{IsVkJyS旵 GO|7 }i~<t>"$V ʨ22doʛlu-q.TbGt ^έh"= 'y^mr u#?롩 E@9ܜI$]ksIc=*GǨ'C$yHC>V)ʙIc3Xby^i'nXFԐ.9L@.ը!ʉ2we)b?K~w6^N!嫂Z? V##4y~wು4V|;'1A$鑂r̽2KaKICjٛŻֈ%(Y6WXN"̨Pfze-4\\ zmXe#_|`egMilLPF[ coL6aed7U,`\Es3>ҳR4 HmkN&4e`i(X?MB*NhSb Rd\[8x-|d5l l'w g,Ado#D']~5@ë[E ^0;Yժ\ \ZBEO/Հ:'n䀅hcjmX2߰B^csԠi܀BYʅ:$ Km:J>b wRHB,a׹=Zmm١(rLӃ;peX{'^f^X@ .' +2}("uVv-{p+7Nȟ-S.Xܪ?dCs]{fWoq g q31 ƈX =sX6 uz[ݳ 񺍴{n .ōg<O('zSc Oכ2)ڿt%E!in\ MbY؇Nxزʁ|WԉmAnIw51OC"XScvH(ҬJ]. = Lt;%rҞ$=J2>2\%gZ%@yٱDxWLl%%tfƛL㬸FI?@P̧T/;VqV]kT70@ijN"tETXUR~Ga(zXBdVZKJ+egRᎽzMX(ɽGmBQ.Tw1f- fLa[x`MRq+ݡ0 +_(|Ii4mJ5v)1XEWB[oW"spn 2lfmDZI6:Qup]v9&t 1*= 08;IYA@¡ҥntfWg&h hTsBeRQ(σ?N<᮰{wU rA _ӶKc˽#ջ#T@3@RE7Yk5]TAhC`c00MǦn(\[cku1$qPǒ7Tu屇s~( o%58"S6[dr ]LS^z=9# vs ST9V+G,} #`Oo# j9óZIuЕK(J8vv<)"EJҎS7 ?Ý Ǵ9B<`Z2EI\.hy)IyXǫњs 7iqs{0A:vT}2d = {= O<n$*âXqH%9 UؘncĆ+eQyDK旛UN Ο٨LgKH*aRB_UfS﫵Tㄾ&䐃ыk 2;#% =M4F4:>⠉(|fl=ֆ.6 g}b_zJ*e EV)yI`"_);U4@\%~Cr;ޯt(]|CC^SI[ZǷ>Tޜ^O*3ؓW/jAI?۸D1#F[dÝQԋq}+DPaLFpq7Iaoi"ߵkػ9j| )\y:n_ dr5QQ#F~_}|#4  ӥt0dѽ>㎦b{AReIHQH_U'4koVĞk s2q\Blj? l ʀ̢nSIUSh gkZTd|Oq`R~FoW \&ԲF~ ,`imOb'~wR;;pIp_0ߞw#PķT^D%(oLz"i$[T~gFX|M$EvҀ24x$4;>ͤKѶ[ Vbƚ7$hMrGD2mcKs r[\.,xM+9DR࠿úY~d_BДBId|C,'{Q6 zK*reQ}OܼA/@ a8vKFK#Y*n/9/@s_LJބ.0A7y} JEr^LN3u3RhSTwRػ2V>h#j͑~n}$ e 0%?@GXx/WTm o Xޤ'V_.{+s:쐋 w׸t9{)GgA>X4}w#LeC{ \;Bh:c4TGDC#;\Y%CWv6,r's \XVF6l'r|Q)ZW'6fE"8Zp#˹I{t7@|,u-{3*LXɏ,޷9>&$EOxZ,dįB.I^:E$r#hUs2^g}r0k^! 2+rjަ|Kr&fZn.e"409Ɍz=j"-} !mbT q]/"jSK-t Uj>p)6L_`.QCrEO T6&R"?) vh/^, ]|FnY#:%2c{_ %>WAڢ_tJd6VvjEQxd+?`[iv=]b_+6>X ry b +EbiBsZU2eOV*6ݤ)2-p;E$ 9'aNY%V}J D۩↧^|1> :8Y@DudJΏ'U8 -iwa/I26`t53*͟CTM:Ӹp2Dh\l(ZX4oRZ JجL`J,V>N{NXyoo>/XZt++ h9{hM[$J^DddᴢSF&0V3X+oUHԀVIp0LD87dƍ)̎צQOᢓpy5VF-"AJ {ӕWVJEd JR4>oT q[@HAw JuPTZ'5sWnyU'3@noFQa}i KkDTDyaĜFЮ 1ĮZ19/~ Yh%0oD%hӨ'Y>EvQ 9qrU6A]1ْD"XT;R[/Xh|>TL6s0fCJH~˲cDؿcB,")^PhseE /ZOKI[G4Ů]f)!~: B`Ug=Ds…mtZnl똊g1C>u6V=p7#dI.aYl)E/ў:u8]bS^o<WyOFn82iz(S_䂩͕ aۇ[׻"gj%ǯS Mk XkEUYD0nigltcqluUp촽-LYܼjXKv;Y Ձ$kSz3!{.v%2D]CَV" ,x1U;jO5}tE{SIHqa{L_=Vqֽ@ {ޫrDP9ϓZ$4|PsgLzCS\.SF!#gjt^+8p,z+o`!]̅*[%K٪m鵜P3.??2eC'q:[joH`*=fj0mڔkmzob#4Q DY|^cUx sł_CiK'˲S8XVWDI4PM̷ب OSؙV9CaX20G7+};?Dϔ b/o l+vH0V>Y<@wIJ@W=昪k|*zjvlI2u[W/ÍvYψq uo 9Nly)x,/ou * (h{Zc=&-W<+I+Q~GQo7et`SXR}q}8`(|3[.st0>6MF_rI:Eb]3qK$>x.h*Sgt1}9+ږF`l;Ta,7ݓKl?#Cd<{ޭ$i 0VwFUG;s/{02Qd@t7O]z +8Mcojamfx|n}ɯHi3Z,_LŃ!=+~s/AXA7-tĸRZ+A5Q۾эϛdG'J{}uJg5F;`J+O p,jHp.#)\@cM^p5" m%nE{_q(UJE 9i?-GAz5^Qtviiv}S6v^MdQh[U9wOH4dF?e HxV@Dei^~|(?Op  i^\h8~#0'`Stqd}:+P8Nő͊L]z ('~Hz=cT2GKX7zځ)El/{gƜg3&~,:>Vһ?pEm+7(ãN7*fn'cAJQ&G5Y$8d79 ȂD_#RK'edtN":I_ ؍nDcsbzP?Ǘ#%1jW̼T~+#AM\&.yX/\7> wC/U70 iMZw)5XVz'W"E:_Y5'WP3eʹAĩ:1ZiCh D(%${x}lWƋ=6QդX| *c]lzJ/ss_u{6_Dd_gЊiT 2q x.&'DxMіbA'cC,.:-L@@U' -ωz}N I qC`݋Y X" -BJ/I#eڞz_.ko'- Lx[(shZϽе(7B4Q2կPAL5&:@-43>Sxw:d|_ eFHreW u3OH\H|Vi 9g=$$&%7~m /ro >r5}$"C>*_ ɪ % NYl ,;팜*!2-$ Sv&Õ:@N{׉ν:UbXL)_"b$)q+jh!A>$V++ەBDDY^Ѝ0޸T<]*;5;1t^T6"6rI֪#F5ֆc;'q蒁-z{ T';c}dF=#?ĘN[E ki̋V :bC~0|1TK)W +|0TwrsP/)^)xY3j 5iQw µ$(_uG$~ }[((pmbTӼ%(=yC(;V(*@@^k`ɢ}z3:멺/ A2t-pӭ/p~G4.o#t539LNB%: q4 "UI .83BuhM?7;٘O>iw4KEcm EHt7"߾p \r\Go)C WWzsع)~ V,{JR9WOʲdәbhob `4PhЯ{;UMs'>Osoq Gn^ʟ碴@ƣ|!4E:L0b_.vsf}Gt 󣅵LOEl8H$Ft4yJHd8 k&t7*JDgb6ŭcR#qZ) *N 2SnL,(e:# /MwN:&YL׭*&caд$\|ם)@}$31{w^ jg6t{`\1Vdy;VRB,,vYGzGO0uB1_3L-j6(X!1)R1@AЎHKUQK> /@)$JHWnJdlL?7f~}*'kuiďQ?zN -m\\C|k" eYa`,RÞg*xؽC8;)ƽ RtL?GFVe%^u "ut S=g¥Qi h42Gujd^@/\Nn"CQPj܌qJL/M Zj p6{;{sݭ`&> x \5'/0ɧl^ Rɐ0JQ_B\XK"KykaT*Mi٧_La<'[WR3]u eӟf^L%J˶۟/BzXiP2 ?ڞJgjK>B9ȥx9(9I]^b(ŕq0Db,9bAvk1+R>\ K*G_NuX3!3Udml˪f as%<AGiWW܁;(&ZG}imnyQW7ߐJM 5/NN LRT`: A,$k[O\ F >pS[[°:X(yFN/Q>ڗ`24˷pݰ  ME񧳏ZUUVp4;'&ܥߔmlF3| 85ݨA,e|Y17&aX[e]=k(Kx.]6yzr^nx1Z{@sW&;XT̖DQMl<qISoPl$s-0ՠGDxgH_' irA^3{ )k'Rr ;@LN;{8C;7o< x^ m &:!`W_(kY} 0̰wkH ayo{}Hu4ehtvQwKސjoX1`tm3tiy:̭> W̕g?#fм>.4Ith"?`{^o\`9߹&a#܍ݏZV^DOwO:9QhIz0D 3m[dqo/M5DE /u枖 %v"\8B@ڏ_8ھ IטGjLz2zY{i$161&,f7o2jȩWGhǽXjN,#oF|>'"D 8if[Ծ8 -HQrd}~č<(M_$g7.h.:|^n }'zEŶG"7>ؑ;,wvTMVvCPU: Mf 34+)1mu,Tֆ/rp:? @E@aIwohkd:T@RWD̦H,h/!Iw=6Vfذ"L'J-3v%B& >#sJKZPu4fr/sAKD/a951uмţ1?7nq& Ǵ)G_*NskkJRV^0(4#? Ij} đ Ddn|ыu'TTc S ޠ7>jG 7Qҭj"ʼ1n7u8sW۫/#{zyz80&ۨjO=wvL4ajawL~] ||3Mt{?Yx;BC ڐJVgD:p}H J _|9*.Ey+9+#$tp˲gCWe$ |kgvKTof_@;#]prA8]|yOVU lڥ9w%š?t\۽ݥ "7 i>_] 3/9ڻD1FMXjKRy_Ė.83˯jT!));m){ZZɰ񝔸q^K5+˿]Q`l;EC"ޅ,E5 ݲ hƙ V}ƏP*o#F zE:ȩxbБl.T9ED;EէUE|nV.h17h^> /W>z\+!: }̄Ciz3$`VA*e~DGLB1eɋ z"uKs>sd:zYîΪWW ܴU!fА2 0JɯBAfkË(ƕv?b>;CwKvH$cIRa#sGL.~F   .9ytOVg9jΩ tø[b(kPj^ds︦Wt`VLQa,"J,0  =Xmk YC#+oϵ+hҾbvξ|f̏9G K>s`yFY|beA AJߞjWd"80V!SNsRQw>~Lř0:L6a__^z60&uG}^nBHo?k0vnX>Qes^h8"/ 7!|2*ӿ=2|"dqHcΛy]%"#/k$+Ύ$F6XM ʎg&8@k|RKsN|&M̚)Sh ;3w !|>{6$8<<-S{|A7 +,OrR7*W1rQ˖t1Hc&!vf&~ft[ͱ=E祤-X?bPFtm{u_9ژcb pW{u\vV[徥V{ntýtbv2 ԏMx(-1̺=}Lwo9ǨoL0*&K{tIgU/v+"0\6[HLOxg^@xFO NEq\h傊DZVRx8x%Pхɨk<Sk o)-:"I,l1j= t䃆\))H+GIqcˣxZDQr;p/pX)H渓D90c3yz&xX ߡKnp5(W͍ꖗ =㚝bR#˾cM܎k4aϯ&?25 {ʓwYI>FsQ3i캑KӔQ(+L}ut~~gTK}Z0ve<nlŮsң';oc@G-/,lh  T|, 9d;F| q O,F}FΆ<~_N]i<Pp%TI_>|u; њ/-olL^ $+Iu^_ mFh7$3:WL"->сA`58e[YfjLJiW,d *۵zQ3wV]Q3 i7r`b,/P?4EͣW8춹^ ]֑zXbŨUB1'a XtoQu/]R^=0E4 Wjy8*b;`Dǭ]3΄jVX1z6 ~2J`h$K U'8 -ek}u͆ 9q M!'U_b5#ø$lPjlyXNn>xUDCYK}Yx\[(TCq[ǧk( هOH8#u)~ S ֎ u PsHf^?RvͧsJZR2bJ`]EW%Z턀.Iy,bZU)[MݘR K?ie,6V٢F4kf!UOOfaIB}k -A<XxG?L=cnva ' [.+mCٝW) 6{W%֫S 4ePlI h*CvgE5r wgzNx WLZk+9qIpޱ"XO׿IźO!4}LTqwb7O~ v] yBw@x0+czqb0*}q_wFY ţES:zi{p"z)źB&Q3@8QyݱOFY}xaAEwECcxGk2#.tSIP~XFS"p W6Z$vO? S+<x́A0N\̻ .zR*ckuu HZ駁oJ2Z71àGTtyR"NdciǾlPtqef\B#=~tP'sQ(ʠ5ZB5-51*5X9B-2#8ssϸ] WO9|;c/}Cog-O@R@Og\ V騊 b IF{mՉ'zBhL^f< ~!dFxUlG%zcLߦnP#1)kLJ~u]JOQ,zhЩbH[o9G6{~KBᨛ jFRQe%}@*_0ThLlbG:R~wN'Q=mρҴJB`,v/H{4\T裁 G/2o]"|(B3g^(^+v3w1A!! &xLa[qP[=Ў'6neW]  ^"~zrۧxw晃v7 XP}Y]^<^wBb!!2uZ 2|rNrI7o?BVNV:l\ߠp=e V4͓:IVQp^tb%{"TZCl ܤ[]NyeG _Yo4?@zH<+P*ת.nS`i`cQB˸d@+;[/εAv8̓C[aF3E,I2q/?e&``~XnAZΣLw9DeͽOߚ{Qlp=y3!!92ąw_+[1rBtBOUv)}@kqY>22L1qdg$'_pjJsn+G2,6V,@U:>:Pkg N(/+|[4 3R:kɴx{Qu=K5r.1:e3ש5ZK ~6l}W=c Hpx:WUFZWÃLzH*UUӝ)YblCj3o8 !N,ECmX|Nv%&bwҺ٭oYnqKU[5]:qҨF1zQHxkRكP–swE3kLt^6.I'(yL)Kdrb-hᥰU$ĸVg'pH.Aֻ0HuD:e%o C-m{՜}3=ڭE3htWJ [5 㹋6o=Oea(ޔS[N$r[@ 9} CLft)wQЋ¤'cx!3̘_qw&e6^Aq@S)VAepM>5 N٠+b#,9rÇgBuddt>-YVTC:3O R`1ݰ< 2I,mobQֶ%YTsN>c\Tn|uKqSɇ*ޮwĤ9u0p}l)Z{֠*CJۂНTDS~, ="ZcٺxSӘv19 N$ΓaۼXS ^ rٲQH1Lʓβւ"`C1PE9PvQhM !#F%(Tگd>FB%H0/u2/j,˲yľ|ШDG* vdvWh' N]15`BMS'&\I7 ,P o5W3;z4̰;$LQH ;eI 0RN냦VjeYCp[XSsһt X?RM@^^ToP/ɉP3R7AEO- pOGe[jyOy|q6T7] }BWXHLkjx5S~S}{qׁ_[B$ړh"XscwT38E?c,Qэcom ` P|j"@OkrgM~\ jXPD;̃$5Yx\fSblM#'җ= |F9FIu#b!fQ J }{A]M$L&淋ni$_<Ӫh9-[ХU2<ݾ|͝I.ekt3x⇳'Ff3}jĉ݌8CXg64 BЏ3 /t.fUt2D.zಝrC5vg4i(Ď ,NGja8SaSqtϗdۯVD z[>ϙ $ɪ \C__ĩ*)޿yh&I#Nȏ LwF ^F.SWTwwSCyVgM!zR_xo0qS*!"b3տCE>Ӈ|p DŽ@Q1PCS997''|A聽N!.g'1g 'PR`Ca2z4w1t'yG'v".bWT@v֖@>S:xnz1e%D-ݿzMz)!,e9t8xsa5wIӈs $X6Ң#=OiVo̵.f ^V |v|/ABNK$E2zr۶1$˽RuK1^ +Ǧ[r*'o"#,[cYw2)=zUNqQâeO.hGKm O8mk$u6%ӇA@ KWFZ2 Ѣ|) !醞&-jݚ3M<+!cUm_ ;aQ#T?9dڵvY ϶ YZ