quagga-1.1.1-150400.12.5.1<>,Le 7p9|7+$G>;}(Ss𝄃Os3\E/^VߋT )0DDHIRr @&k0b8N\X:i:wj5mؚv_"7iBI슙BMce߅=[hLڼmo炊/,09TqѨ,_KƤueba"+qX`W:zs,wB2@5H$x;\N<}Y"|aFbe>Lt?dd   D", Bbx~GG >G G G 'G (hG)G*G,^,G--'.h'1m'(18192 :3<=>?@BFGGHGIGXHYXZ[\G]G^bcd+e0f3l5uHGvdw8GxTGypaz`Cquagga1.1.1150400.12.5.1Routing Software for BGP, OSPF and RIPQuagga is a routing software suite, providing implementations of OSPFv2, OSPFv3, RIP v1 and v2, RIPv3 and BGPv4. Quagga is a fork of GNU Zebra.e 7h01-ch3bVcSUSE Linux Enterprise 15SUSE LLC LGPL-2.1+https://www.suse.com/Productivity/Networking/Routinghttp://www.quagga.netlinuxx86_64getent group quagga >/dev/null || /usr/sbin/groupadd -r quagga || : getent passwd quagga >/dev/null || \ /usr/sbin/useradd -r -g quagga -s /usr/bin/false \ -c "Quagga routing daemon" \ -d /run/quagga quagga || : if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : for service in zebra.service isisd.service ripd.service ospfd.service bgpd.service ospf6d.service ripngd.service ; do sysv_service=${service%.*} if [ ! -e /usr/lib/systemd/system/$service ] && [ ! -e /etc/init.d/$sysv_service ]; then mkdir -p /run/systemd/rpm/needs-preset touch /run/systemd/rpm/needs-preset/$service elif [ -e /etc/init.d/$sysv_service ] && [ ! -e /var/lib/systemd/migrated/$sysv_service ]; then /usr/sbin/systemd-sysv-convert --save $sysv_service || : mkdir -p /run/systemd/rpm/needs-sysv-convert touch /run/systemd/rpm/needs-sysv-convert/$service fi done fi# Use %tmpfiles_create when Leap 43.0 is oldest in support scope /usr/bin/systemd-tmpfiles --create /usr/lib/tmpfiles.d/quagga.conf || : if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : if [ "$YAST_IS_RUNNING" != "instsys" ]; then /usr/bin/systemctl daemon-reload || : fi for service in zebra.service isisd.service ripd.service ospfd.service bgpd.service ospf6d.service ripngd.service ; do sysv_service=${service%.*} if [ -e /run/systemd/rpm/needs-preset/$service ]; then /usr/bin/systemctl preset $service || : rm "/run/systemd/rpm/needs-preset/$service" || : elif [ -e /run/systemd/rpm/needs-sysv-convert/$service ]; then /usr/sbin/systemd-sysv-convert --apply $sysv_service || : rm "/run/systemd/rpm/needs-sysv-convert/$service" || : touch /var/lib/systemd/migrated/$sysv_service || : fi done fi PNAME=quagga SUBPNAME= SYSC_TEMPLATE=/usr/share/fillup-templates/sysconfig.$PNAME$SUBPNAME # If template not in new /usr/share/fillup-templates, fallback to old TEMPLATE_DIR if [ ! -f $SYSC_TEMPLATE ] ; then TEMPLATE_DIR=/var/adm/fillup-templates SYSC_TEMPLATE=$TEMPLATE_DIR/sysconfig.$PNAME$SUBPNAME fi SD_NAME="" if [ -x /bin/fillup ] ; then if [ -f $SYSC_TEMPLATE ] ; then echo "Updating /etc/sysconfig/$SD_NAME$PNAME ..." mkdir -p /etc/sysconfig/$SD_NAME touch /etc/sysconfig/$SD_NAME$PNAME /bin/fillup -q /etc/sysconfig/$SD_NAME$PNAME $SYSC_TEMPLATE fi else echo "ERROR: fillup not found. This should not happen. Please compare" echo "/etc/sysconfig/$PNAME and $TEMPLATE_DIR/sysconfig.$PNAME and" echo "update by hand." fi ALL_ARGS=(--info-dir=/usr/share/info /usr/share/info/quagga.info.gz) if test -x /sbin/install-info ; then /sbin/install-info "${ALL_ARGS[@]}" || : fi ; test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ "$FIRST_ARG" -eq 0 -a -x /usr/bin/systemctl ]; then # Package removal, not upgrade /usr/bin/systemctl --no-reload disable zebra.service isisd.service ripd.service ospfd.service bgpd.service ospf6d.service ripngd.service || : ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_STOP_ON_REMOVAL" && . /etc/sysconfig/services test "$DISABLE_STOP_ON_REMOVAL" = yes -o \ "$DISABLE_STOP_ON_REMOVAL" = 1 && exit 0 /usr/bin/systemctl stop zebra.service isisd.service ripd.service ospfd.service bgpd.service ospf6d.service ripngd.service ) || : fi test -n "$FIRST_ARG" || FIRST_ARG=$1 if test -x /sbin/install-info ; then if [ "$FIRST_ARG" = 0 ]; then /sbin/install-info --quiet --delete --info-dir=/usr/share/info /usr/share/info/quagga.info.gz || : fi ; fi ; test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ $1 -eq 0 ]; then # Package removal for service in zebra.service isisd.service ripd.service ospfd.service bgpd.service ospf6d.service ripngd.service ; do sysv_service="${service%.*}" rm -f "/var/lib/systemd/migrated/$sysv_service" || : done fi if [ -x /usr/bin/systemctl ]; then /usr/bin/systemctl daemon-reload || : fi if [ "$FIRST_ARG" -ge 1 ]; then # Package upgrade, not uninstall if [ -x /usr/bin/systemctl ]; then ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_RESTART_ON_UPDATE" && . /etc/sysconfig/services test "$DISABLE_RESTART_ON_UPDATE" = yes -o \ "$DISABLE_RESTART_ON_UPDATE" = 1 && exit 0 /usr/bin/systemctl try-restart zebra.service isisd.service ripd.service ospfd.service bgpd.service ospf6d.service ripngd.service ) || : fi fi,=_(LS`RL_!08;0h 0`F9b6 Vqf66 9 ";A聠A큤A큤A큤Ae 7e 7e 7e 7e 7e 7e 7e 7e 7e 6e 6e 6e 6e 6e 6e 6e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7X;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;se 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7d6bafecd0477081f03a48bc6a3ec266c5167a5ea3e1df71f773a1f811af5c8a1bcbf60ad66bb1c486af8cb95f5c7450665d602e5176578597b0d1eb543db83cdcd0918b4180493261c72c9f9e792e3040767c1af958483f0f67c89b4473f21dae886a4d543fe99a3decd4682d9f03cdcdc5b00d0bde3bbd744f43ebfbdaf7703c8a5ad79eaa5a6e9b3199fa0e1463cce5463a4171646fb6f8be2b5183dd6212da6f7b13520c506fcb2abefbe756bf213b0b552cd8f717902c7273acd7cee5a3fc08cb3780eebd322ae5186333149b66f06e79d910896baa5ff365376599cf7429ab3234e21ab0becb1cbdc1fb55bb75c7707aca0e1914646e7cc178448ab0d61ca5fb245e325bd36c4921723cf09d11a56e6693d141d0607a16e08274166e3a9e70621f50aced6edce95feb728cb03e3cae3b57e01147bc9f0a4afb296b25df4184952f3e5112a9684825bd75661dc744bb9c181ea5b78af00a5b24d15fbd096fdf43f3e31fd9a6b03fea45d10e183d21cd790ef2658b7984d92f16b3b965b0fdbbfeeeee2e79faf1d4e1a252488317fb1126bd35a6ba8bbccfac8128470218f2edd2c132795abe05bb27acd47bb0b2ec5f9fe263977acc1cfa1901d680d52184048b62a2091563efe9f46af43c783282ca2c1a728f9fb44d1479b0fb0b29ca707ed934bdb7cad6616fd24b0e482742e0baff6e3d4f56953e5b62cc5b3bc7dfc469f5e18c68cdd0432316e18beaddd2c077adfb42ceed53ad4824f05f5209c14d490a55a1a726e7c15ac9b13c2314170be387fa8c9284a459ce9a0bb6282c4c9f5a12ddcd82fb3d3d70eaf87c5b6dcf39382d31ea8c02c28bbfad213e60de975770b441f04aaa06e87e5761169db292365a5b3df8a6c91a21cd46200400bdab971b3c573e229dd7c9078b8cb08767c9e31263eba836829b59100041ceddde3482d9f6f276b73ac357347698b5e88770cd7791ac7ab320e7200d0f9a8270de2dbaae3e1dbc52df65b42dd73837b3961777330ad2e9f6a201ce5657b7e09b8c637014937444ba97610ce0d698497034449cfd9c36cb1fe551355fc65070b25aca3fef84e789dee53a8e7459e649985099385eaa9a3b8644108311dbc354db49ceb938b7ddc8351da8e7fa22f5e3190b474a916dac0d97e6e942604a40087e63347b39c1bad4e51e2a3389cd25fc4addebe41a3ae7c11100795683f9330de1536e53e8c0f1ded7a994f384083d6fc46937f7b86283907b4df4e596991c2a1968e29a9dd0e90e79e789b4c648cea101a97a05a70d3a1b044384aafa98bd43d370af86188d4f5d3d36f3bbfccf3000add0a4109dd482aa1d1e4d17d80b941a7ff06ecf360a48611827013624017282de82c8baccefc8e693ae99d97e833a7fa03f7d7ed89bf4e841543bc14c9aba0c2c493db77de2c4e2f6d7884f8fd3bfe4b5376cd9188d849519da6db6f074570ee6bd68862fbdda4dcf838244e743f184df7f1cdc43efc551a02e80738fbd227d7d5848cf19883f58dfd86cfb81646458d15cec5cc00c18b34925d03c1a618cf59c66e4bf63161120772dcdddd8f0eff94b0b26922e4fae11a8029f90261086a1513ca281e1c6a0976a3df3cd779b05b96716b363ff416d837b66b29deaaedd799f273b6c3ce9098b669f9f43d34d842313bf4d62ae8082e7204707aa415b3bc5d3e80213ff63a2946d5436b629fb75e8577694424fe7f07ce8874ffb5c290886becbe8ef37b841f3ffd4544c061899d53c4e6a178fe6a5dc153f88132be463db1db0c6d2cfdf44bf0d206cdc2c8e2469149e35e58cfb16e4dcfda73cf749cb459eac18a38370596f74e9e1c16b7ad87f598b72511fddfc7830f2b2430aaed5efe7577416816d5a5e9e35f9996fb2e97a4f73d880ed010a26a39403ca130b9f9ea24b4adb214de0854433d85904d315ba13fa358387d2bd82f494775832d5b9832c5d08e3a268536273bf266ccafa4d354ca91c70c3bbca6fd0af65a3b3440ca729468f49ad8663985023fcf3f00e3edf1d6893041aaefcfc98898dc34f4644039477606ed3da99db9f81b77649ca0929e55d79fc166c86ff751c10a5a1ae36f1b55123158431c06091cfa69118e24c4f78f7527881158ae1a54ce0575fdaa5b2e860cf73987f7fc524b51cd5b7b1fd5477e085cc53bca5c840ccb3f28f699dc5a971dbee29a4334d1f1ded12214fe539b6a84b01e5f20a98c56bc7c2c137d076b696348f81a5599db6a849ea5f0ea1ea4f5a300f0ba28b93b9068c02b742bc26255e21352d823d863d18b5524e25137294593c96e7512747b43caee73331d4109204c9d9edcb9b25724b6e90582deb55047ded95ac558ce7636e3e5d216334dcb7aa6b0ddb22f01e7d34596bfc66879ace9ea8bdccd0852721a8346b072854ca565aec630ca6b2b1b2b9124a534e16cd6c38e522d48caf0af377077048f8a9c076d5dfcd312ba3709e0b3e3039d9f8e8cfee47d4762f6d70f94511e91da73b1efbfd100b799871558d95d1e32bec8f5a5fc9803072534377f1be20f1620e93bd994fba502e8c69c8e9c6e2d0b04221e491bf6c56aa2415b6cf66ad05b2339fd2a465147f965d9632ae8eec370e774701908c3efe4b571f7b0f410f045ff86c669c6e9b87330093ac8edf70d81327213ceb6642fserviceserviceserviceserviceserviceserviceservice@rootrootquaggaquaggaquaggaquaggarootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootquaggarootrootquaggaquaggaquaggaquaggarootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootquaggaquagga-1.1.1-150400.12.5.1.src.rpmconfig(quagga)quaggaquagga(x86-64)zebra @@@@@@@@@@@@@@@@@@@@    /bin/sh/bin/sh/bin/sh/bin/shconfig(quagga)coreutilsdiffutilsfillupgrepinfolibc.so.6()(64bit)libc.so.6(GLIBC_2.11)(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.28)(64bit)libc.so.6(GLIBC_2.3)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libc.so.6(GLIBC_2.7)(64bit)libm.so.6()(64bit)libm.so.6(GLIBC_2.2.5)(64bit)libm.so.6(GLIBC_2.29)(64bit)libospf.so.0()(64bit)libospfapiclient.so.0()(64bit)libpam.so.0()(64bit)libpam.so.0(LIBPAM_1.0)(64bit)libpam_misc.so.0()(64bit)libpam_misc.so.0(LIBPAM_MISC_1.0)(64bit)libreadline.so.7()(64bit)libzebra.so.1()(64bit)pwdutilsrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)systemdsystemdsystemdsystemd1.1.1-150400.12.5.13.0.4-14.6.0-14.0-15.2-14.14.3e Z}@Z@X@X9@X@X TXW{@W)@WKVbVbV@V"8@U ]@U"mt@suse.commt@suse.derbrown@suse.commt@suse.detchvatal@suse.commt@suse.dejengelh@inai.demt@suse.detoddrme2178@gmail.compwieczorkiewicz@suse.commeissner@suse.compwieczorkiewicz@suse.compwieczorkiewicz@suse.compwieczorkiewicz@suse.commrueckert@suse.dep.drouand@gmail.comp.drouand@gmail.com- Applied backport fix for bgpd: Use treat-as-withdraw for tunnel encapsulation and also other malformed attributes instead of a session reset (CVE-2023-38802,bsc#1213284) [+ Quagga-CVE-2023-38802-bgpd-withdraw.bsc1213284.patch] - Applied backport fix for bgpd: Do not process NLRIs if the attribute length is zero (CVE-2023-41358,bsc#1214735, https://github.com/FRRouting/frr/pull/14260) [+ Quagga-CVE-2023-41358-bgpd-NLRIs.bsc1214735.patch]- Applied security fix for bgpd DoS via specially crafted BGP UPDATE messages (CVE-2017-16227,bsc#1065641) [+ quagga-CVE-2017-16227-bgpd-Fix-AS_PATH-size-calculation.patch] - Applied security fix for bgpd bounds check issue via attribute length (CVE-2018-5378,Quagga-2018-0543,bsc#1079798) [+ Quagga-2018-0543-bgpd.bsc1079798.patch] - Applied security fix for bgpd double free when processing UPDATE message (CVE-2018-5379,Quagga-2018-1114,bsc#1079799) [+ Quagga-2018-1114-bgpd.bsc1079799.patch] - Applied security fix for bgpd code-to-string conversion tables overrun (CVE-2018-5380,Quagga-2018-1550,bsc#1079800) [+ Quagga-2018-1550-bgpd-bsc1079800.patch] - Applied security fix for bgpd infinite loop on certain invalid OPEN messages (CVE-2018-5381,Quagga-2018-1975,bsc#1079801) [+ Quagga-2018-1975-bdpd.bsc1079801.patch]- Replace references to /var/adm/fillup-templates with new %_fillupdir macro (boo#1069468)- Disabled passwords in default zebra.conf config file, causing to disable vty telnet interface by default. The vty interface is available via "vtysh" utility using pam authentication to permit management access for root without password (bsc#1021669). - Changed owner of /etc/quagga to quagga:quagga to permit to manage quagga via vty interface.- Remove FIXME's added by spec-cleaner by using proper phases for the prereq deps - Remove code checking for the proc mounting (build scripts do that for us anyway) + remove the commented out autoconf - Use content of %tmpfiles_create macro rather than 2 lines of checks - Use version in zebra provides/obsoletes to avoid rpmlint warning- Update to quagga-1.1.1, a security and bug fix release (fate#323168): See http://mirror.easyname.at/nongnu/quagga/quagga-1.1.1.changelog.txt for complete changelog, a digest of the changes: - Telnet 'vty' interface DoS fix due to unbounded memory allocation (CVE-2017-5495,bsc#1021669) - revert opsf6d: Update router-LSA when nbr's interface-ID changes See http://mirror.easyname.at/nongnu/quagga/quagga-1.0.20161017.changelog.txt for complete changelog, a digest of the changes: - isisd: Fix size of malloc - isisd: check for the existance of the correct list - ospf6d: fix off-by-one on display of spf reasons - ospf6d: don't access nexthops out of bounds - bgpd: fix off-by-one in attribute flags handling - zebra: stack overrun in IPv6 RA receive code (CVE-2016-1245) - bgpd: Fix buffer overflow error in bgp_dump_routes_func - Added libfpm_pb0 and libquagga_pb0 shared library sub-packages, adjusted libzebra0 sub-package name to libzebra1. - Use tmpfiles_create RPM macro to create quagga rundir and adjust tmpfiles config to contain proper rundir at install time. - Removed obsolete patches: quagga-CVE-2016-1245-stack-overrun-in-IPv6-RA-receive.patch quagga-CVE-2016-4049-fix-buf-ovflow-bgp-dump-routes.patch quagga-autoconf-detect-AM_SILENT_RULES.patch - Do not enable zebra's tcp interface (port 2600) to use default unix socket for communication between the daemons (fate#323170). - Added quagga.log and create and su statemets to logrotate config, changed default zebra log file name from quagga.log to zebra.log. - Cleaned up the spec file using spec-cleaner.- Implement shared library policy - Check for user/group before adding them to the system - Trim description- Add quagga-CVE-2016-1245-stack-overrun-in-IPv6-RA-receive.patch: Fix for a zebra stack overrun in IPv6 RA receive code. (CVE-2016-1245, bsc#1005258)- Fix Group tag.- Add quagga-CVE-2016-4049-fix-buf-ovflow-bgp-dump-routes.patch Fix for a buffer overflow error in bgp_dump_routes_func. (CVE-2016-4049, bsc#977012)- replace quagga.keyring with the newer upstream keyring.- Add the %{_rundir} macro handling to spec in order to distinguish /run/ vs /var/run distro versions.- Add quagga-autoconf-detect-AM_SILENT_RULES.patch: Fix autoconf issue of missing AM_SILENT_RULES macro. - Add build requirement for xz- Disallow unprivileged users to enter config directory /etc/quagga (group: quagga, mode: 750) and read configuration files installed there (group: quagga, mode: 640). (boo#770619) - Add sysconfig.quagga: Fillup template for /etc/sysconfig/quagga - Update to version 1.0.20160315: See http://savannah.spinellicreations.com//quagga/quagga-1.0.20160315.changelog.txt Remove double read of stream - Update to version 1.0.20160309: See http://savannah.spinellicreations.com//quagga/quagga-1.0.20160309.changelog.txt Add code to extract.pl.in to prevent further cli function overwrites Fixed if_add_update possible null dereference Fix _netlink_route_debug message Check prefix length from zebra is sensible Fix privilege dropping to use system defined groups Additional centos 6 -enable-werror fixes Fix code to use srandom/random Removal of 'show ip mroute' * : add/cleanup initialisers, missing includes, VRF ID in the API message header, assorted warning call if_init()/if_terminate() from vrf_init()/vrf_terminate() fix "babeld: Remove babeld from Quagga" (336724d) fix in_addr initialisers and more initialisers (for BSD) fix signedness mix-ups use an ifindex_t type, defined in lib/if.h, for ifindex values use long long to print time_t use void * for printing pointers babeld: Remove babeld from Quagga bgpd: add back old forms of 'show ' for compatibility add "show ip bgp dampening" command tree add nexthop length to AF macro add some peer_lock/unlock debug code add support for timer commands with peer-group syntax allow using rtt in route-map's set metric bgp_scan shouldn't queue up route_nodes with no routes for processing check capability falls on right multiple of size, where possible. check rtt later after the real peer is known cleanup vty bgp_node_afi/safi utils compile fix for clearing-completion FSM fix, using workqueue helper. configured suppress value cannot be less than the reuse value in bgp dampening crash from not NULLing freed pointers display of configured dampening parameters do not allow a timers connect of 0 drop machineparse / random "show" improvements enable "bgp log-neighbor-changes" by default encap: add attribute handling, add encap SAFI (RFC5512), extend extcommunity handling, encap show commands fix: bgp_btoa to compile, crash reported by NetDEF CI, ecommunity_token initialiser, graceful restart capability minsize, memory leak in bgpd/bgp_route.c, Null pointer dereference in bgp_info_mpath_update, race in clearing completion, small memory leak in str2prefix_rd, SNMP write support 'struct peer' memory leaks useless call in bgpd/bgp_mplsvpn.c using of two pointers for struct thread_master * VU#270232, VPNv4 NLRI parser memcpys to stack on unchecked length (bsc#970952, CVE-2016-2342) general MP/SAFI improvements handle AS4 and EOI route distinguishers if route-map does not exist DENY for redistribute statements ignore stale entry candidates during bestpath selection. implicit updates in BGP may require a withdrawal from zebra RIB improve cleanup in bgp_delete() memory cleanups for valgrind, plus debug changes hook up bgp ENCAP and VPNv6 CLI node lower BGP's default keepalive/holdtime to 3s/9s lower the default 'timers connect' in BGP to 10 seconds make bgp_info_cmp and multiple-path decision logic more regular and robust to paths that do not have su_remote info make bgp_nlri_parse_encap conform with other nlri_parse funcs make _vpnv4 static handling SAFI-agnostic modify maxpaths cli's to use MULTIPATH_NUM for range only use routes from Established peers for best path selection OPEN parse errors should send OPEN_ERR and UNSPECIFIC subcode. peer_uptime overflows after 1 year fix zAPI parsing refactor route-map objects modifying integer values regularise BGP NLRI sanity checks a bit regularise bgp_update_receive, add missing notifies and checks remove the double-pass parsing of NLRIs 'set comm-list delete' stops as soon as it hits a community-list entry with a deny speed up "no-hit" withdraws for routeservers tests - add null pointer protection to fix bgp test failures update dump to allow Extended Time Format update rtt on soft clear VPNv6 show commands warn user that bgp is setting maximum-paths larger than MULTIPATH_NUM wire up VPNv6 protocol processing fix struct/pointer sizeof mixups fixup afi_t to be an enum and cleanup zebra.h remove 'struct fifo' from lib/zebra.h refactor FILTER_X in zebra.h bgp: reorg cleanup to align process and bgp instance init/destroy build: add --enable-werror ARM compilation warning fix determine CFLAGS more intelligently enable vtysh and pimd as part of default build list actual release procedure make libraries self-reliant remove the old PIC/PIE patch, let libtool sort it out rework how MULTIPATH_NUM is delivered to build distro: fix redhat/quagga.spec.in distro: redhat/rpm: remove with_ipv6, package pimd binary, remove pam stack redhat,CentOS: update to support CentOS/RHEL/Fedora, upstart/init/systemd doc: add AFI/SAFI show commands to manual add 'OSPF Fundamentals' section to OSPF docs distribute a modern version of texinfo.tex with the docs older versions of texinfo seem to be sensitive to location of unmacro update bgpd docs, inc. on decision process, and with a section on MED. fixup of history handling fix alignment assumptions on non-RT_ROUNDUP platforms. gdb: Add a directory of files with gdb macros git: add (generated) cscope files to .gitignore HACKING: Change format to MarkDown, fix spelling mistakes rename to HACKING.md in prep for conversion to MarkDown isisd: add a debug mode that traces LSP construction add a slight delay to lsp_regenerate_schedule add new adjacency to LSP neighbor list add support to import routes from other protocols allow to adjust lsp-mtu always print adj->sysid (clang 3.6 warning) annotate some function arguments with const assorted fixes (unused variables, static) Attached-bit in LSP header don't corrupt memory for long hostnames don't use POSIX reserved y1/yn names do remove ipv6 routes from Zebra drop packet received on multiple interfaces due to the time gap in binding socket to an interface fix: assertion in LSP refresh timer calculation a typo in a log message crash on processing own p2p hello IPv6 mask application LSPs not being regenerated after adjacency change minor & vs. && mix-up misleading wording in log size_t confusions handle lsp confusion (ISO/IEC 10589:2002 7.3.16.2) initialize circuit to match area is_type make send_lsp more robust provide more detailed log for failed address removal purge on correct level remove superfluous checks after XMALLOC etc. remove unused process_is_hello() show interface's ipv6 addreses lib: memory cleanups for valgrind, plus debug changes add: CMD_RANGE_STR macro to command.h facility to log all CLI commands function to get precise remaining time of timer thread getgrouplist() for Solaris SAFI_ENCAP type, safi2str prefix utility "show commandtree" CLI command zlog_hexdump() for debugging allow caller to provide prefix storage in sockunion2hostprefix reduce strcmp in CLI hot paths fix optional arguments with description interactions constify sockunion api don't have log functions change errno fix: bookkeeping for libreadline malloc()s duplicate variable name in smux.c and vty.c Free Pointer dereference in lib/filter.c POSIX capabilities on SunOS platforms "reduce strcmp in CLI" fallout "sockunion: add hash function" for BSD vrf_bitmap leak in zclient_free() hide internal prefix list structures make prefix2str simpler to use, and use it in zclient make sockunion2str safer to use memory reporting fails over 2GB move the interface list into "struct vrf" display more info if cap_set_proc fails. don't use CAP_NET_BROADCAST remove unused 'show memory XXX' functionality silence type range warning in macro straighten out ORF prefix list support stream: fix stream sanity checks treat realloc of null pointer as alloc Now use zalloc rather than alloc with null. Fixes issue seen in bgp check tests. use const consistently for zserv path vrf: enable / disable a VRF vty: add separate output fd support to VTYs add vty_stdio() add vty_stdio at-close hook don't clear output buffer on input EOF put stdin in raw mode for vty reduce unneccessary C extension usage support multiple VRFs by using linux netns add trivial work_queue_is_scheduled helper wrong #define used for IPV6_MINHOPCOUNT zclient: can overflow (struct interface) hw_addr if zebra is evil consolidate error reporting for zclient_read_header add "vrf_id" into the "struct interface" move "struct vrf" to be a lib module unify link layer type and hardware address handling configure an interface in non-default VRF ospf6d: fix for fast OSPF convergence fix pointer arithmetic warning fix uninitialized warning in SNMP oi->cost is uint32, not short use existing union, avoid strict-aliasing ospfd: add missing unlock for ospf_interface_address_delete() extend 'ip ospf area' to take address argument + rationalise ospf enable fast OSPF convergence fix bug in 94266fa822ba, nbr_self rebuild didn't add valid nbr_self fix for 'no' + 'debug command' does not disable 'debug command' fix unused warning in ospf_write impl. per interface 'ip ospf area' command lower the default OSPF spf timers to '0 50 5000' make ospf_passive_interface_update calls friendly to static analysis move route_unlock_node() in ospf_ase_incremental_update() ospf_ase.c, external_lsa locking fixes. ospf_ls_upd_send() add missing unlock. ospf_nbr_nbma_set()/ospf_snmp_vl_add() add unlock PointToPoint neighbors are identified by router ID remove another odd flooding hack in opaque LSA code remove HAVE_OPAQUE_LSA and HAVE_OSPF_TE remove the blocking of opaque LSAs origination and flooding 'optimisation' self nbrs needs to be rebuilt when router ID changes. split up network interface enable a bit, for per-interface area cmd trap on state change seems to send incorrect value for ospfNbrState use route_node_lookup() instaed of route_node_get() pimd: add ability to set DR Priority for an interface add knowledge of different packet types add support for configuring multicast static routes assert when no route to source from a new igmp join cast ioctl values when printing them cast to sockaddr_in to sockaddr change ioctl call failure from vty_out to zlog_warn cleanup interface startup cleanup zebra debugs to be protected by debug commands create ability to modify hell and hold timers per interface do not display some default values as part of a show run ensure new generation_id is different from previous fix first DR Election, leaked fd, out of tree build, size_t zlog_err format string warning limit pim hello log messages mask unused zclient_broken() notice when we receive a packet type we can't handle yet stop DR election on every hello use IPPROTO_IP (not SOL_IP) for IP_PKTINFO 'show debugging' collision ripngd: add ECMP support allow to enable/disable the ECMP feature sockopt: add support for querying tcp round-trip-time sockunion: add accessors for sockunion address add hash function solaris: create ioctl_solaris.h drop duplicate __EXTENSION__ define more warnings fixed no ROUNDUP tests: add CLI dummy command-exec tool add more AS4 capability tests + little fixes for couple of GR test cases. add testcli reference in/out & do DejaGNU vrf: add a runtime check before playing with netns vtysh: add missing show thread/work-queues commands adjust bad_cli_stomps in extract.pl.in to reflect fixes & fix build allow display of individual daemons configs allow --with-libpam to build with --enable-werror don't use '\0' as NULL drop unused variables & RETSIGTYPE fix Quagga.conf file read in. fix the fix for babeld removal when the config file is close to the boundry of size of buffer vtysh hangs. hook up bgp ENCAP and VPNv6 CLI node fixup of history handling reduce unneccessary C extension usage support multiple VRFs by using linux netns configure an interface in non-default VRF zebra: fix struct/pointer sizeof mixups add "vrf_id" into the "struct interface" move "struct vrf" to be a lib module unify link layer type and hardware address handling configure an interface in non-default VRF add hooks upon enabling / disabling a VRF additional redistribute related logging atomic FIB updates clean up misc_null pragmas, RTADV define configure static routes in any VRF don't print uninitialized string fix: addr sent in ZEBRA_IPV6_NEXTHOP_LOOKUP build with rtadv disabled change of distance on ipv6 route creating duplicate routes leaked sockets in rtadv.c NetBSD interface stats printf non usage of VRF_DEFAULT route deletion on *BSD rtadv detection, check for non-glibc linux VRF code for *BSD implement per-route mtu handling let FIB stand for its respective VRF let the route-map rule "match interface" work for VRFs the netlink sockets work per VRF lookup the address in all VRFs when set the route-map rule "set src" maintain RTADV and router-id per VRF make RTF_LLINFO optional to fix FreeBSD make ZEBRA_FLAG_CHANGED internal status remove HAVE_IPV6 from rib.h and zebra_rib.c remove metric from kernel rib->nexthop_num is double incremented show interfaces in a specified VRF or all VRFs show routes in a specified VRF or all VRFs silence zebra_serv_un unused warning simplify redistribution code support FIB override routes use link scope for interface routes use prefix2str for logging where possible use SA_SIZE for RT_ROUNDUP on FreeBSD use prefix2str and unify show ip/ipv6 route code wire up "debug zebra packet detail"- run systemd-tmpfiles in %post to get the directory set up.- Fix build for openSUSE 13.1/SLE12- Update to version 0.99.24.1 * zebra: don't print uninitialized string (3b02fe8) This crept in as part of the MRIB improvements and I missed the compiler warning between other noise. Unfortunately, printing an uninitialised variable can in fact make zebra crash, so this is not trivial. - Use systemd for openSUSE > 12.3 - Add patch from Fedora * 0001-systemd-change-the-WantedBy-target.patch/bin/sh/bin/sh/bin/sh/bin/shzebrah01-ch3b 1695299331  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG1.1.1-150400.12.5.11.1.1-150400.12.5.11.1.1-150400.12.5.11.1.11.1.1 quaggaquaggaquaggavtysh.confzebra.confquaggabgp_btoatest_igmpv3_joinvtyshbgpd.serviceisisd.serviceospf6d.serviceospfd.serviceripd.serviceripngd.servicezebra.servicetmpfiles.dquagga.confbgpdisisdospf6dospfclientospfdpimdrcbgpdrcisisdrcospf6drcospfdrcripdrcripngdrczebraripdripngdwatchquaggazebraquaggaAUTHORSCOPYINGCOPYING.LIBChangeLogNEWSREADMEREPORTING-BUGSSERVICESTODObgpd.conf.samplebgpd.conf.sample2isisd.conf.sampleospf6d.conf.sampleospfd.conf.samplepimd.conf.sampleripd.conf.sampleripngd.conf.samplevtysh.conf.samplezebra.conf.samplesysconfig.quaggaquagga.info-1.gzquagga.info-2.gzquagga.info.gzvtysh.1.gzbgpd.8.gzisisd.8.gzospf6d.8.gzospfclient.8.gzospfd.8.gzpimd.8.gzripd.8.gzripngd.8.gzwatchquagga.8.gzzebra.8.gzquagga/etc/logrotate.d//etc/pam.d//etc//etc/quagga//run//usr/bin//usr/lib/systemd/system//usr/lib//usr/lib/tmpfiles.d//usr/sbin//usr/share/doc/packages//usr/share/doc/packages/quagga//usr/share/fillup-templates//usr/share/info//usr/share/man/man1//usr/share/man/man8//var/log/-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.suse.de/SUSE:Maintenance:30715/SUSE_SLE-15-SP4_Update/31143cab47b99213ede2dad5fdde620a-quagga.SUSE_SLE-15-SP4_Updatedrpmxz5x86_64-suse-linux  ASCII textdirectoryELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=2b558bb48457bdb093fe8e62ff58c5e9109227ba, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=8a5e1b3bd15524a6fa7071ab4c34b0cbee61f77a, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=b450783f75e9a92fd80cf29f1094e7589ef5de7b, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=d88f2d7121ba08486b9adf18722a896afac362ef, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=bf0e18afe6fecefc4bc1cbfa673aa401faba3bf4, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=a65e71a54f785471fb4e58d4f413ffb190eb3d9b, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=4578cb2b0d4fa82c6ed3dac8dd1b997430007065, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=968356975c1c535d0bbc5f9b067f5e973a3b2ac7, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=39fb65aa4860a04302f5fb1e84616dcc3c610e16, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=2a2c3bf388977d22a8401b1a75a296e2060ac298, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=106ea861da1e7cb0bdcd499e84d37da348bfdaa0, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=769151cb80b443f2b0ca29fcdfebf5bfbffaa650, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=3c955d526beac843a048d43f5aaff0ba7ba57efa, for GNU/Linux 3.2.0, strippedUTF-8 Unicode texttroff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix) '-4;AHMRX   RRRRR RR RRRR RRR R RRRRR R R RRRRRR RRRRR RR RRRR RRR RRR RR RR RRR RR RRRRR RR RRRR RRRR RRR RR RRR RR RRR RRR RRR RRRRR R RRR db Uuxlogrotateutf-8f58341720495ba1225f072127ea54c11175fe58bfdf107e5e05773e2cf10e999?@7zXZ !t/]"k%w%^fYWL^'_C𔥗PNe{N:JLAj[TUZ\J ; A&9lw.?]*+$j=J0A&l$ASvdERnѻ@q6 +7:{L>/JagPalu`NM>TL2uU/ÔDrN,۸^Cqg?Q_<7ޙOy.0=>\޸ZtuB4l;[2? ~ƪvb"Ҷsh~.unƋ ,@5KHr1r00$[(EeQWyRq$ԻE50^>Q6$د Yb.`*+ྦ|rDܒŋsݢ. 0o7ѢAqT%N2wvЖ2U+ cRⅳ϶ #qő f7ηGYJx0.Y p C_nj+x5}b!h}˵P TRkU㵰oLU35b͢ei"BGQ1r=@I (LI,+$Ur f4tOԱ8h2HOaQy, S˧ t,kr0l 9HZa&/ÎZ@4;A釛dT%\[ʿfhbR`h?@PbV~[_h[o|Jp5݊F}V ),O$JCQ!~ MyLpnzX!>S*I6EH}kxa(g%`w;(%z|0ąS$=`FT(fB +=;ZdYe"2SZFw^+5a Åy- Ax 0@ucaD`T%E^~%=U]E6(9 k,j_eʽIn3ǁba>}{ه3r;UҞ6!nncr_&P1\ %LS䨘4z`?8. FH"JI .Xs=T"rЦ h4~g{_!,p3ifnMu|PbQo ]}hYF u򡷿d{ĝ2(|ҡHWۯ) )א cZwtH-R{q?e")dlolbƒ6OSsbaH[`5ݻ}hht{W0ίgU5>dJp.wON 2!P^NxBK#(x6q/Ԙ6R: R˱'F,+h f@q}<*ioS/*I?sBnϛOU oW8#{) !g0zwZ\Zop3mà%` TgG+KmOMʼng~J 'Ȗۮ{T vC&ke擲ϰۖa+bAGH~W"F!k<9L4%QB׽Eoֈo*5?}1X 4c{x;5w%&βMp*?"/X2ylgFBKb򴢼 &Nx ]qya%] 7iJ^Ip jȂfoo_uy);ٗ=HxXW7x䨾Ϊyf 齢2{(Wnξ*uC.@Ѣ\,/)SlMיsdf$' z̪ Y[J|96<{I7~*0 +Ӥ#Ҁ)1+@ӷ"FT~J(Y뙁dxC_Tv$*zsAvA!3<2Z:Ԥ!drtPR.?*3 =YT#1yku]Ĭ+k+2Xvl sE>ܝl.E`>:DJzJV b#J@:E:6cO˕74=lB~il;$Ln8%~XwX\2G orW4~wr@ c5V@7GNk0..T0 [h8vJ(ad}~ZeNTUOs=Ol~iPr[LVȨ@YRnՑ,22n=rq)#?=OYUPQq5wʈ?I& *cӷ$<_P=P>GN}Pd]>ǘ&Ufq7>f@xBW5, uaF sRzG~Sq]:%^t"3;oi؍ojO9c5Y),?Ls"$A\X E /Q.a=V ODHA5]Lc>Gn3C)r07JNT9AONo'o:^~xJIHySqcA]V) mfĕYF3n.h-Ci!@"諵гUUn"y*3᧰boBqK%=+ &KRRmc`%mU߸V@~+H[= (b;ڷFl~gÀiò)oP'"):L.[ tUb|Y>N m=c7G˱GO; x]9R b]Y=>"j ܡס"J\ A=}&֊wqr1a==&ŧ%A* @ vhZG<9+p)2B)4! 0}:>鼯 !H$5lE%桹3Nx5}O?'$BK=Fr3mp$~~ 2f'6 XcđAg8샲O'=)^w*`04صC;On<莁@ß6ȣo~*8 ~]N I+l3`4[S2U80ٓ^oE43k5=['{9^A#1Pd ~'aDP2b,v VDMBd4pN6ةc wSE ovܡ@{+GC],û2_05G d, VD{ L>_z8|1Ϣ(ӏbḅkt%x Hi-uۄ!7ketfs'GTCv-9ZL 6|jK0uPў^+Nl(XOu(žl[fj#{IMa>ngehc+\ōa K+9uf zkםsAyd,vas=bZτ)EcdʖQD;24KZbRPh%Go6 rA R?[ B`tBb,ݯC.ۣj1CQ(߈X6*?3dʍeDfI/4AhLVmUH|vg) Z;W0خl'sn[=n( ĕa`8m"dRywȕ"b یvOM0/\o&P#>2U4sD])zpȈ7y#g:yZ\](胦WxD ]uҚ^n*WUae,F yr\G0 HhgXmQ4s Ga ~& ^<_@: ' gp"=A&u\784XV=2dfR>_ڃkI{f2\R岲b/x+c*btRq0E"`x^;E뒸yCzaZrak x,?K*rЧtG< ]+ Uyq7 JբG 6MWG'I=V}MUҒ0󐭿^ζlN)5+cb |lT{:BRwp{M([{U{3 STh\]At4CRD@>X;Qh*d?E1]9 V0Ѡ_x#/UxP}DutJ╷`c?} Ŵ/a"?yx1#DA) zGšdr &(vYPN:쯳8lyRPҨemۯ&}!_[ Fdi#FUiC6X#JsALdޗl Z-j *xWI=;`HB- q4,ޜS^& gB)#J v 4iT\|BQw$M5共/+1VHe!, 'pc-Cio-5etWU1.|# zHUHSZR8Y2@ K9bRy|MdiU:sDS͜VȰ>!-R3PgX9 AmԾ2`!&k8/)e\wԷ+b 5JS *`R!fNC1MKҷ0[%3 B|#K\>569&>YP0Ȓo ەM}3rlE<؊\S5U-˲l;Zr=N܍qͬ%?E|F 볺Q2$Q8b sV0sus$QqL8Z U`gïR!KFzM瞑g=A lCAR 9l3lTXIdns/(bNQ WrlŃ|ڮܠ#p:Jde6 5-/f8 l40N.ޤB!/Aagg9;-aM`,/:žn3>.{΁>=T/JaW65=5V0a>$߰hdJ&2ωܜ<:̠dsMiK &x>Ky,r 2`6c*GSj슡4fcR\qpZJ%AtwO6Q3o1jˈ;M 5n}UUD<1nSʹ1n*V$_48{+"⠐Cb<BD@hB1yOڎb%M=`cRpZL0R㴢 CY*.T'+ni8 H܇SUS#Uv~hX\9vצr?0`h(3 u (Cx ?)UV7שss.w"l Ex:+U#h f LYff%_#v 5>ӣԺƨDK-c/l{ңyX۸hNd 1C^gg`\s!kMk8- : W [}z{BȆ%ZqF/HkI-\B,PSB|jۦ\Jx**"]TU7i=𒺆s╸)hE)g)26ube$tnUBn^zwo&-u?$\ڴF$-gJqrAR!U-b3VaN/=@=vߺb8O!$#β^x|LdG]`!Dcn R!NGrF+~r XuʥIᕇ 97D&faKec`r Z4D,5JIk?g*mKmطeXl v[bX0 3[.z'(R~ۣ{=Q,QOq6ĄE14%뚤(,Qa03}k[PS'"lpF0S~./Ν-NN:%I1LJ> U P\%.?~ k0]qMȒ(%v> O'`,8R/T񓨰a*1e Cwy:|9'y)8DI&=" JK|2mpw` M]@Q[WaB"s!A mŢ*ÒKk!%Y~PLŞ81}BgQngVŗđ,87O\wbeVoLyD;pPBz:)O %,KJ/N2ݛŭL N4v1`]QA.qFBF@ŧ47!jّ A&M[5)7w]tDO1:$S%8I9VfQY9Eg;L^EzGfeb]Š](]XNӥ[al"V[U>4n YIE UB/M?a3t@ mTA6Q'f 0{#: AMy]`sTm_D W:7VsxfCs`X%oDo0XPoYasDs*-Y'7LҸC6''أܯGmdqE jۑ38wB)"FBRIN7o qB?cK \O5[ޮ >y!OB UdK.Vq>*Գo ň5곚w?$#Ms¾b@a廾UYILNϷf[4#6C|!@,śntߐɮka :S#?J4.#eqfC!aqwI^K|'#q'Mk7XN9kukTܪN`1S )wϥ5u"q1iua=pĴ?1h]DHlon ɅI~4P=ݸ>“(ъ"hAU2*KIњq61 nx6U=Tg^XtD@xҽ oD!o"OģhJn"Ke][AnOG>+ub?E"G(o˒XծKUljѽH R%^;FQ"q $.9/Wqa0qmXwk}08ƉW0v&{e8U\90./ߴ7/G~ا5duX38V \k7Z5jkra,MXBaDp<„uY 8 DgDG9UmYgmʿri2؏J!3wEuoKzՀŬ1N;wmB1hLcu@FM rm s5K۰ZGkt$7J"9'&8WE3x`vVʵe7js3#fL\gk⋏>e n{8*EPh#YPhMܷ Dŏ : lO͞h{x2aż~Y0w)6<Y\Ei5m/=8!F`57-o3qX -!/o,PrJDbe%Uʻ⩀S>m}XTPd`SZ| Z)]70p̧ ^-S5oŦv k:ب.Lb&72"MMEb"K{O6ߺ4w_M'/_ʒ65V`ZtlJ<$f}n^fwS,Z,}q/rp(*BED))>YĢ\+k+r9rdzNDصxtG>.T)⟴4(XusoB5Qdߩ Q=tK2ō?&?Гy Oǭq%6;4G}sKBGD8/t9қu+EA-DeGnԼ7 J%sr]!ecrЍœUKy )-[9=h/n>*b #h!ZԡC(~6x֔a2n;MMv֢mG) ,a6'n9.Ã%z]C8m34ASQ^n%rxzw^qeTS*Doj"h"I%V0ZɌzɇt`9c>ܒrz @#vd}B}Q6tݷY"Ʈ#ovIPOx*Rj.@;fP0,gľ%Y$yH `リM.(Ca᭒ ۃ3VY ^n 8ĦBB<>"j&N$7 Ń6}7 x-cX (4i3xxjg+|Q4M?A`7peVFɆ||{]`a\`09N5yu>A P]5V[߆cf%B_x=, hcL(&aKaNەo;P.#tOyħ5+(s5V9FϘau߽M=b],nXk;.av9@][=Ym?ea` DثKtvӳ␫r e&Z#TgG<)}ioW|+Nl,~#&;F8yrg,WxOzNnn3 o['B8 QH-WU[$ yHʣW0RdvA1z@JVKnmTҲǣ7} ZtGAkna|D/݋q8@qP4SΝqF>"fSa{ C5x.%6%Ԩkr9R~>*/7A)4E;Ƌ#Oؔ(/hs½I$FrMUL?{!\kX}gP}֣c܄1f@>|l1^zh9^m.BENIRi鑁zu`&q 2p7mmO_Mv>:roNQ~ޯ an93Dҏ[Cq]5Hעe|+U-9`I R:`v@Aa,TtVfqр|33!K+DD(RF<[}6 Åq< FU xU3N(> j$S=ʽl\#'Ԫl $93EeOq3X6 tz& |ӣj=Me)d>m:CͿ VpA0l{5Ѧ)vҖhU@z0c*qb0۳/2aVa<;Ԉ=ot/*mGЮNa:|;vp:7|L{4!4<š6R (©3C5 %˨J{eZ7n73(3Did7?bN .;,$U(A]qmG{ֱM{& b:XxA*3{qanW3ZozƢ3"ӡӣВH~?\ߗ"wcuꌻNH`I :!uBzا|:#ǻrp$[ޝP8o!"gGA&_d &mRmIܐt:~6o]֜h́aiW|_&.L)"{V N ͛]mYၶ& 1 <= ba6" S(pM#_k#fʕ%:m)\ʼhLϠ;a6&u1Av5,[J;eTrcL(˿h ^{]krF$^f[΃_S Cׄo璣|fSyFnelA*Ŝs?__ C2 %'IKb6@{}d|4vxao4/ISmh$``a]fßÇf)d݌{s(S{!Z$hpJnMe#H)j3%Ph|mEo y4Zi-359G鉒&h*p]"/[`#RbTJm%p4y$"D{ZR]^nE3Hg[k U^ORwSs0^Io&x |VяOLPg XIJclM;,q/=,Ppb4 +';!\FH#kEXtM4ۤM7/;pL9l MP1Ţ1Lw}otY(%(GJj"p]\#뒿ꃲe0ZĄtBѫ^k"JGY 29:⏹H /\R5KG-NJcư D<NmA~L195iVog+W I]9'7UBȋ55p24^:Izc:;d[?iIݟm88t)E/:`zMC{>9H$,o}V ݸHn<D8Ӌv[Gx9R( 2\5a*ܹȻɔ"a0eX>֪'Dgw d4S) շ+ש6~%Eb@An8NthN0a =dP:2mKKuᛎ>^e5/v&eUĦU h^sIjSy6H- !ZbOu{p`Z?aOv& Hv>*8Jzxژ~y*oagFllq8yC-!?2BS%bdc>ʳܕ0l2g5@)r$'!)1QX-GJ5>&'`P|/dOIi+xEv$_4YQO8m1v|jWsYrҕj5_P`5n9ICX%)5Oe <)C[;Z PڊO'b $O95l]=S{nCEyi1A+o qcbpx*Q,-NV/s7:~rB4g~nC~azPF 9>HW{ \~]X)VHh8De'_8:||<л./f[ƃYkclwժ 'hC -nd'"?">UGFRF"4$ ^W^{j@GVx..{eX_rbJP]-00 D?nf ??) ?ys*E * qz_e` `_SOXZY B2j7c8-?T&46'SJiyikf01t)Dh"@s@K3[hY$jocNv|,/ :F-X 0& ^3|M~UMALQaBov_mǽ+J`}]<;] $9ljq!"5H8ۥXQ{FNbk)z{H Ї2=6q"7yd\CV"[z|3~VqZ?imQQ!(8u MQ `;64%ko5rÚ[a83u6gUgm=lCWd_d<8&S #Tæa4QlOqCcd/GBs.ʗ)j0!Rc$ `;B?S@2r٫suWj C; 6hf/㎙ `R&Z#8#݅> Lr3պjGfqC5-bߙiF"9eXJqt2 WL,h^[9c^FP):ܠV@MV6)G5.3qJj*j^ne CӰ)L@D!Dbo6$/s=GdƱOQi~R-iO- q2 a];f?#B;M  Uwy?~mfɑ&A]E6Df:Ӱy+$RZZ,!VՇۇ~( {..݀Z>|\-Df5vw W>vrT*ÐgFx4>[bjgD_O@Jh$eReHTkV%jiO}Yo?^؇jTR*WQ6>1w쬶0_Τ9z-@@IεOXj \T#O*.+QJ ƭsQ2fki/?!͹ޚ錴o6y@EGI*A 7 @oցB"/fɊuhy8ȸZU;ۥq5S{iуw{ޏ@Ms%7}S^~ &dxԅVEn) }@Ea<(h9HEǘ`ADN})e4z@xh@*'&Tܱ~ip>n lꑩs^"XI.~*YQ݆%o`77KOOQ~2)_ɦmhliV&t$:qqR!;Λ!j+&\$AvajMܝZ;@)Q,_ߴzG-CLsfUq"]!H>dHڄsVׇE}L|4zKbHrX+ĉտ? OH d'ty^6;8aG+rK1+ R yftG$2(g+p49gE,ƅWѭ_EczݡS-w"<# Yy\Sj'u',ۺ+_>wA#ƬbX?[qn2:ȅKt+C{!-z^ps,~>.soO}F׆;TL8 >ps̉IH"dLFZ1.Qf*~PsI RDR~#u_.C$]KWZؕNF0 ㄛb}">PfCT竔)Eʮϰ0QUq'Kԉ_1xDc"MOvr|Tspn@(=}%ɫlcTfVИR9 UuH yTmr^H'](^gh4 DȢ[AeAKơj8Wud4*B0?Y6E5?)[#dx.CFqa7B :ʽ լ7E7BF3˸&iď q9Ur!sC ~9)Dz]>n5 J:Ex66q^XW0X օ0#Z_5@U, MH UzEg^ F.}jJAFu,ea- pbt%uUIeY3iI)B s='ӫDtɂ .0[NxJ;Ri"43~5:"=D3Zf&?:Ȋ䳩ti!AETp ^3 dM'|lH)&+ )ƌ{ L3<£@Mzqba##oo2AgQM2{aC_u%2{BZBXC~8ѤgΏO2/I >}s =?JoB^@p%j:z:LlޥVuEtݚh&'QXfjx6%{qnF f!4= ٶ߮m>1*~sR.j{Bn>Y~0[&WNYQ&IE2- %N 3gRCڷ uRum:Bt'#Jx%DjmIf)m!,0p{SՈ3/fZ4 3*qdd0XpP']+q) ,4P*qB_ ߌd ˘H}*E;lqzrn?Lp"&zkg|TOabhfC`91kI#S* ѧ+_7X. ytи8d9?CNҌ)Nug^{,Zu :w)"5b&'[rZV>lpR# 3'ji~_2* Dٽ vrU*Ec:'ifOA㝴S0 K&_7د2:ЋBa+kS\j+E{;>*V1P,!!TڽtՑMy$ʌ>+QʠDn%ίw0ӰC-Pȶc=As [@NEz\I,Jjl[ Kx0ZP _ ,P~:'4}h7瀸.Pj fZQ P+2J2svLqyThqLZ9c:X$6Gn%/^a:!ŔeBE3C"A+>J @KF"hF h+/^ 1MrxYl~B |(=Nx %I8-V5ONSb1hd F1*Ise!wuInW}{6'zd@70cV"#'pOm~k54H(mb oUzr6 ODLʍ> M](tQh*ܨ!:yI5(jZI3`~ %" Eu։TXy4&!WzA>7@{,Twnc՞Y8ۥGקF8qjJ $X͋2C+aC^[CDFy+sOfP?; j *"13+[=ePtAmYz uvċ?Ur'R. KK*ȵqu׵*QӦK}T֏޼TޭS^M-ZmQlY;wB[Ӹ+Ѩ"Y K"`|RKT%(>0iCGgZ=ń-+r!CYLSV ^?8x>쿢 x/1_ɒ8o]ɳCrG!~C5$\ Nu 긮ʝ7dzsV1>sU!D>Ұ_4Pϭ޾k/7A2y-H9Oٜ <A')'2C> _ӅSppedWC L|J% ۝VK4^;e&D(2 *g)j/l]Q#1f+ HZcL v;OC`qW_0$UzO6Jz1ML5Lv"nHLWEbWX}173K"Ԕ.N<IcyHOfz#5ѺOJK(G %ahYq avADG=% S(YʎwiRņq.)!G!();r*J(aR rEV&线G$冕Qy{? Mr}T6= `[SS¨5L u7vVoD@7a`f44f8||w gm2L*0zH,dJ{oze6j]I ֪+PB;X-2a)Zhg!N>WsuTy}~#B3XA_XKdl֭ƣjup:/"vo&:߆%hnexj8so^E^F2r.A:ͻf"zR;eC}f3>#mcv3*uH`~aZqV4jR6S902-P/wvo_ 񰕮1iE4<Y?$b6oSH!|XqjԃQ3Uklìڐj!2 Rh[Y)D f}(VsLmLncxp <{6Nc yKgsqҟ*U]u=>"!nڙAn5/ _j5Kb&Y;H-BY)O$K"[gr8~'M4ͭ.?"3%~Ppr~ naj]ĩr wQ} j^|Y"&g$u6 ^|5a(FvCE楆(;i1J8 q؆F0̲r配/9ÒDXGETgOA {)1wV]XBS2ڳ$T>+VQc4c(Y;쏆v{k+'F "6x9HOo_45Zgk&Cg\1'bސ?<rY96۫G!Pt၏(1Έ&}}\2SK-R %/ɣ# {LtBҢv_AM}\JT!hJF 6(t22^$iEQM >jLI-3UV}>I:M8IՓi\&r@rՠ!cdq% m6Ci;\Yt9;[zkttt]s=d4|7,&6?Jϭa>@g`v9U:xQɍk&8037sk [;Cp59 N #@6q1VHp(E\hZqvuxp03?h|*<ol;_Är9a=O{C_e=d{)YWh؀Ԋ5+lݮp86qn-rf=5]x(Zّcla 늷DN@sBXI+C 6N/<[P3Ò}&GdiŧVblbbn--ƙԿ{l5 MqE$tϨ-_ PbV<פ8@vbIgsd1IvOdh =V8 Lۤ 1|BG'H'rA]Y@\.=6ݔRJsa 3s7#)w iyβO|uKuzگr  | .C/r>s^U4xAm& Vn uPcdGE@g0=] `pK+@T&,j)ٿ3ԚH-]-$\{,3tu7<9A\Sqb =oZS%mKh(v.:LU 6(RQϐ` (Kyj(T9]-Ua~zH`ΜHdirY LM_f<ȟv]]WCGr<>[ +T_֌.:}mNKm͹;Ɓ?5wsn@X,t3#Y^]K+` ̚YjmYdPUtlkeL ~ϑr,X1}G,,iY(@o8?;)v.OMa!"Iup W|Bq\KIĄ32Ǒk~hhj5pEZؾ'tE+֯`qeF"(' VmnL1I—˙di2'nJusUQ)@%öaQu](hpjn Kv 3ڊ\?ƺ"&/jH| . :(6 KDPF[;.&S#e?FCA/I|b!5$i+5|ëǧ R2%blKy9܎&*z`P0 *oۦ;5 `)B%"|, 絾Oraű.f1^0Rooh'tOR(9U=8.SK&)ζd{S;5?ܮ$fyqPT:'uk-RͣL ŋZ10C)AUxѻ4|7žsAM`e A}sR#6._~{i3-*tҒ-aDҐs D፻.3N|gn9Y vwڙBHUz ڎOqkN g2q|@E7P MĢLBx[T+;~uisK}jQ {{bz7y0;E`낎fMnV09M"c@}cihjm!HiwV#^u˵ă9驩,bC}'JiF@fAvR]Рn7æVx>ז̅v잪z-3ZE DkAp+>(Rew`;ݦx/&7d,hjusࠃݝ^zI8}-n``jJ7Ȭ%I#_g9ax< 8&jZ`@hwLV7L+VuYm@HnًUXkJt EP~n-C(=tehZmnj}/#οLqxx^µaS| M* xsBW6$6[̃c~</&NXtt#ntpJ$Kc Z3 rn _UCZ'δ zS}0q ߗt0To7"zRl/l`'ybOX=pq}rЅ:z /ux3ؽPGz092uЬIFj,{F61Gz_$(|/~s%SٝvǡW\o-qLPUjucuReJyb/s"(C 32ty[a4]Hb-Q7€Z !.*6>K> xZo>0鳭\/ =v¨B“Nmf"{;kޜٹ rE\f Z_,9bD  IYY RwJ g yHس71#~iACpC:`Y~„"AKի]酈^DhiuZX3Vr`HżPvV-m5kp+qe[sˍF[oL*~Px†h2@d^%K=V[~>Ia":FCB ɔy J"L:eCv: B{5 RZ 9l\ *k7Ht.d 4|"Y4%>?G-p3-*`Pbwe-l3+1'5<瑐Җ<*H^| 9ܷ$׋Wg(AO0dXՔr;r?c֍Ͱ7kJۋdLp9Ěui8`x2%6n*'$ki8wNyԐJ13P z\.ƨ Bz*00 @i 0^f "h+hs7g"KA y#=2|uUe4vIM&x48'_QΑ. %OlgN"P@V-x m$ljCwCƻL$E}H&I vK3OIfbOw 4|L>>V=`8wԈ[Anpju e#Q[T*QzX1)k-+jh猐߽57WMzQ{<řpKNwWث{"I]Mypp!Gǰ?0[΁\!V~_TM=8ve:r[!/E8IlnG2NAI,+C|Jam 1Y8+o$uy~gT?86s"L?YpI-4]{(~=n}%U&Qt՝ɲbJ E*z2hkbQR9mNG_a7>d !`Rw=>Mel2[4fX`xDtRΫi>< U7x`F\+uY6)<ʪ ci"*'~P:t ':)!dn<BHeINoT1a?w6JRnzR2q]_ߜCnn,AC;;Lw4<wzV(?H&SOe6M_B0i `ې]&\7Tngns1٪T0uLCNO/@=#?(U;dkM0VU+7-sd]U-|f+{u!%t6a,eGBݥ7䦏*U1@,@ES)_f07p;m>SF)Z6^؆`tZ`#̘*{dP{~)9kޟ8mOs5zWUzy`<aa=ە]ȞK<~+=cT1h5ټ˯Fz^҂(-'#r\;LZ?s%*U`2D,euW^5%.rdӄ%AĄStG|@l@K'mBX= ϶MPXdb@ / ;XmbĀ=o5˧Fݠ$Y{w;H_j_A"QAkKR=?c/XD[U끎,C(k6|FV)'+ |]tu? ЀÒ'Mb9grc'h̊4hC;Nu\ RIJV!4:X%OղekS`B ZS긡ݹZ=hAU%Q;f=PN$OFK#<Ji/zĵxg* 3{(QA- F _U߿b!:\;/L֕/4'y7ئ>5̽sD D 2k_g6G-*=Cz יf?،fz.(G}8Tfs#Cn9q6|_O$NGw@ lݥ/ؼm71MX/T*.Wˏ*:5QyC5.P&2]ͩGOQh[;?]zwy&p5 RFXǗ"nMd_kÅ37`?`~0rM(9IPgÇ'`ov> h?ѧ8Dd(o?A>=g}ɂmP>SsiD8.Ϟ..-Z&-Z0ɇ -҈?-j6αi|x0V- 7o/*] k y8Hfte#?g(!; /Jo ~t)C׽2-F1e}ۋ@B# F#4Fюu߁\,c n s0KO^/pO& #boʼn;ՄTЊ藮MaY7KlSp%?it19E͜T9ݼIٚ=PgđzVfMw`].M4cq YÏW~]ƔbAm]y8r reP/z x J4!٪0$J@0D-վ)e(QKNM&[fŽA6&nM*Zatyfl,[fuٕeJllhc?9%V9N T -* V{'ҋ=0t@CP(h5[E0m7:78 )fJ4" &dXhTqQSngL鳗isi'"S-i(a09aب5[xw/flC\O3ES˴a뿣Q |*F[*OCߑFl),rS+5b@ Du>kfm5 vGܣ;(ח@Q9Š|`I'\`M]|K/Oƞ;4Rg|蛥Aىs@|}[Zr~Cs9Dӛ#k y9}"1L/E ǩA,6N֛{DenjCipqQ4mm"\cͻ0j. Yׁqqƚw&boco]ApLCtZj{#s6'sų;gi"&JJ~zv^(Cdt8 >q\QTUnPlT|vk1 "o͉WH|˟ߕ Ll t9]LAY5O jb`m!6Bt#f/q͐%/,Ƭ,դyڑ9Ӹhu_L1-@;ufp8h dj/ j7*jN n Y)G.~U;t<“ڷMB* p cd0(N:ټAYC$4W)_wC܋A&hXmιjgǽ)U!<59AW^jd4R% E>e=w~ûCZGN@u7Z/ϟ!nTh, 6͍J6l)>2;wd UZhꞺ#lqsn .无*m&3@u+0/Ӡ[›:ɂ9Mؕ{'<ԝLa?9+E+9}EL~tv0E 2YI?B:/XKwnń㾆շ1ȯȀIז܎-Ƹ%;Rbm elj"AFq<+plyv))ՌVBBA}a)JM3>+?4]ںbE+ѓ+Vy#zr6@sE7D:S3]2f Kh 羿ɈF=$#=" |qD:䈲)i|s@]9C$蜈W0D we-A ܑͫKPᄫvfC<B9t]"W$U~C[ǃnYD-tC2wdV@0^ 1y/B [>D[Vɗ,ysL"^>oKܗ)H 1݊cx, u"? e?عɩR7 )u{.T=|ę .5t ;?^Zpvc.鲼lm>rhdEzir'@FtᲜf/A+s!ْC1ͥ# 撿&F!GSȕUZmU}yMejY;UTfiLF[|.9#:jzш'1a]!dA(f4mJ_tI)ҭVGN G%.'[eHb2UN%Cz&%>_rDHH\,Kw LF92]%#~&)ƈx_lW,s轙CO8Y2l3eqg/n/+}Ckz-o0rp1q~MX_k>-ΚQ 9跦p:~,j 12#iw SG8JG{3b%2y{pjrw#G| RX'>S**9i[?I-p4-Ĺ!QLdT_|gd6n7RI&u"AshڮEmD^gsSJbt+Ϻ\7OvsЍ;#(N[/36Iۜ"߅-O"Di@|]m6e{Jg,sjyJG5oQ_C~"xq|$u[Bğ(2y?͸sWNk] `A <&X*sLoŷW|*,teF<{fx_$E}q{xCH ITyXR1dQ]>@MgV!P'iU$,B*5 eBx1biޏj[5 l yþ]ء֔8AU!Kգi.=5uI7 U7 1%2_1Q+ӲK+Y6Y7BpĪ.N^%yOsM$:a?"Zoܛ2PLrA,r}Z1'<̫seiyZ҄Y.-AŊz( RKj+P bGsmd-(%SOfZwWDaISä.49U w(,&}\v[ń ,U"U0]Ĵ. n/Wߌi1߄4YYYoYؗs'U-xlozQw9Z 3JĝV.AͱXQ\N(ܓ|N ;hx B?Th7@B#V{JQdH=l.cR'x]_7PVG%'WP[wIk MC>M)bycD,A;E"Cflӊ-)l5gI_m OEEDE<< ~ģy߆iHOd'EύF2%.^qtF`zЬQȒ$jäMЏP|R㞃;v51wC\L|a>ZmJet1ԩ@@@n#t|e?ULwwu GaDh~&)PS/&[@\t1w^6+wX8 '* ATgxQU-,0ƩBM-Eq'7{P^zU C[."k6ŪBJE1H能`iT!PX}7h &M{Fi160[<H,;8uC̒(R_n2jуL]9ύ5 KY0k 㵳Z- 32>wެ;_iQTLPݗ#Uoq>iwGBQ\D FʄXR($QI,R0JT~X+}p&a4QNiqw5ee; 9/P rl ϢhزjȖW%"֏;az7R`g_ foI 7(!)7kGn0&Fk "'%JI6In QTn-ŕ"y)3YdFu,23ƊnR |p7ד 9i7A $sp^_WuuIpMvfE`՘ntB=3„R>Nuc&+pϿ) ?a{M9i{z*݉[Ӕ.xh$L ;)宼M % f?hΖ4ǣ$t]]-W p{($7.O*j M[i*ٴ/׿0d2,VU!tԄIzoW&+4FFC~U-QVŁ޼[/h;h8bUWcwk9*`?yZ|lA5Z8HP W!b5ejK%l΍ibw!>>[6H {85fY30`db8 jFby8҂>2lnJDAf7=ȋI!(o |wv)'&5H azTn|ӋJLDZyZ!׈V'5X.j֮y?_0!24E5j6rw9}P-:e;^ wJ4do#=!~wAuD|з M|d (wU=yLMI#w"5r H⛶f@1WHmsD#lk"7FG^ZRB(UVv\uc86xn)![6.aG6&eWSxv[L4u!qWغ &ԔJhbϾ!1o^_(^c~oCŞON2F.)39҆拾~ |`4Gb!.+[2ق w16Rԛ75p2*'a|j\k9 ҅yi0L F4Օ2im2R)!`/Pq;g:Q܅)!z&*"R)%ʞ8kVx}jX> WGE_xei-p`oPl6gvɡzw"Wol(K*e9cLx7cD$C~Z7_!]Jr2}IU{x0V KEh--mH!"'MZO6ѧ>Z} =ʦfL fIf-惡] y-4nl+|urS1+3-0f!j` &.!$=1~cÿǫ]?S3q%QMd(d cSmnM;1D_ ܥ8tZhʡnR! @{d_:VgqhYX&V Ps%(-t /eRmBKsd`mW"_W"SH毪NL@1zhj92ax /7yP+pQ@6$iTd(+ =zcw>7|gxfncGs}CDY`b;p*nUOB {oELSO4~ zڒ,w4Sb}a.V\Nw.~r7nݺuS?!;ўEU%7T߬?3;RLoF_ c6^6\}v^y0{rWu>ՎM}nNO|[@uNǞ[I aKQ!$)v6\{&]m66 sZ~>$\W?aTY< $YdJ >ȧ'4 q6Ƀ1XϮPbl-'=݆kcJe^vtQة?`wC-_c;v)İ1 "jkDC/'أ| w&)Ҹ"-WErӞy”1b%q r?M 9AlQܹ8%U*p@t|W߅U16kvl5wPNP9 1Q`u guTpHRet&Y42{t-J՞?~F:մl1?JY)LFD64V4D(g$Xo\U&NYLoVW4qDPP:R?@U*_A@EfSu#ŢGEB7Q?"@ްctA=γg[^Z?Fy~bυ9v`TF5Fc.5vpltFI-IL=9?v!RY$mĄ[vme\*{ax;!6&>(T9q'Xs1;i}V 2XQ47UYl;(n#Uɿ_ o{M WKDt*z.t,z ^*/CrgTBw"uXƞ].hxϊ> BnGb7H?sѕG>ņ*: fZ3uERɇC7)ޡA|e͵-YոQX+P`DylMQwW JhbZa3%>>WsdGߊ}ؠo)c_Cs?[1ԆFJ!kԑ=Y$#3#u<Փ2ʢYLa `(?BO;ah [醏$*. SQeF7O`=D-h}'٤RQAzL_g gmNӼ :c+x%gUM3)`v`E!mOϯo'`)zOeª-&Bמx+2Ky2ZWbZV,#IGJ{tUiy2b,e<7jVmbſSŧ4Ώ97l <%88XIAi<'R.E׻GebS ½l*Nq>ă2=xpv"~l񨚦HE[{(/P[:V eq>8X l )y?f ͸gU͛qT~ '.Hw~r_`MMnHN?uE~ͥz+侗{j2UUHhwKuɆJWЉlJV}a}fcȁ<;%ygl.>v(){D 3lnG׶oHyZ7rHŠl {:wZoD~!(І1 M*jqՍ@Ws\Mt/ n5(Om:s{`Ɨ9M*S F,[\H ~FJUp!ƃαetoƻ@agfA9dO/M]5u(Z H-v@eDgʳA?);|oQF%幺dQNmMhl0YaWyu<}z q'vB&--~r_7ڹ+mv?yԭ~I[=(6#!.BLHcݗ[){5<^D"+:k^`"?P<8#no~FjNS# +;kER=38| {qG@"l~THMv:a]'Ck(pjsʠ3u5HR }g#D_5\P#[q+#M"Dk ~&Oʸn9:OOgnTwpSR&2Z$55DH+|SU-:r7(fJ P|8Ә an@-~l@l-p,IgJS3s@@Ed[+C Ε]X.rn~M-i) Q'v "}TF?ʏaT(NQ}DZjs%ҢMXq(Xchxz$Xa{p^ ڒ@PB,^\4q a+O{ ޱRqɝ׸zHxKCτp+ GIY.O^<̿ |JG$0Z)TxOot3JYBSfM'd"J%8FdV_QS'ڕ3_ꕏjb, Vii)w9ޠsCaZ^><¬7Ѳµ\N/ R=*.fXL>BYyWᒨ/ Fc&VmZڳ. Ӻ+]=SndoBF~dk#Q>,ufmhzil:Dpsۗx 6i2l՞ޫ+%5r+Pa;qlHUu?#:DR76\ɱqOɏYwi5OOd6*ft -"2Sr?j%:S[85Nb\u+ !WC}n Au.ernb89RLK1뢯IU"IHAF=l L!j84zT1YF=.l _ p= 1*^&viUy^s"X+D#jF&_ ( Ƈ\c0]+8)Cs1dwv}! Jz]+VWe6U/!g[~<¤v{ UE4,yNst'=stJe Hoɛf(S U2:?]f 43b^'mg@&Y 2K4nzΧ+#zu"gFL8+\\S<ۿ+pN~k_/ը|6>ᙪ\,x`)NUTa1EMGݟx:n(OL$~:{W3A g+QE)5|6 :?_[j/=Oi4hJTU!U&~l}φcK8-?9CSD *`Kiwx9B*ӝ 1 ܳj5W3@j !,\U7}.鉤HnC}JfGV(QA}bUDY",@r\3>!~?F`Iܚ%\Đԣ>0b"zkY9-Z-RdpaqKC [;/PȬjfs )Cr6(Lf2МOm7{,h r8yc쾁$`g0ɛ~CW{hj~5R.\}6e4(ˋ„JQN~'" #[JU82IŖ5¶&/`+zN``vɍy{&K 4h喓k I0V;BsISwU5XSDKpBkxq y< !dEr#G)TF泑Acu^qO\E'tYvW ?Zw$è=?R>XZ*d ,o̻'38/h^ ve <3,ŎiBL'|S hR Hk~mTO煖W^Q2NBD-fo_$I}gQ?H/,sJ1hUr~}?=)F̓bTPjDBMp")b+cx0K[][ r.SM{ioldS*YnG}Cc,P"B,bVjSB=;ķk3^~+9q*O$ֶ!\'ก T*pW.KA#o,m(cb)}oL $EK$X!)E"9@KAFP3R< P.[她imE_~Gp=+e;W9fQ07(c􍹪cQ;ٰ8%J:s(i)ke/b9y^}oB֎6˘=tNMZ@0[0@e 'g$r%TL68jq@:rY3M;=k88=Tv*DϷ^]_{EÇ%w= ~ʛ~5y3)K#KHI8x9<$kƲ.@ێlu],{bt/ڳ3N *Z\ԽXŝe+Cab/ +jfwj.NjO(|5퐲UNH*@(28ƿ=h<8z&X*g n#\0mp:a&t2ru 9 +&"3-=hf ۽o8z3fZ91b^D=xYF?v|qzާzu#@s.4ٻԵӯ #y("R٨x٧z>/\/A8 VR;/}BYwژ~wB>n]C" W_au8ߒ{b11ZJ^͙qXK#\$6xOt7Ik].W@6\䄧4rtۈz(QVr.F^,*ԯ AfXPŤ?K I!zR嵦 8aSz16neڂ} 7n/9-qɒtOj  bs/ t:|#w{jI5-#lBJZq.yF s=qGȉ uR8ܭtWӿ [);$[!qVI>#I'1QѫV b\ $qk`0RYVMԙ'eV]fRSpq*YHw(gD V,+ǵ/RfhC N Vl\>9 Ϣ ʸEBRYgxGZiG*))LY3H 5Kr)ckQu'/(n^_x7 @-bݶT%2ƆQ1}o>. %`{s6+ݑBbeo^Qlkݠ_$> Q91IbI|VoB17X dXO*I9LʛѩV(N;/:uz~-|?xM4,4%1#U QtXuksMV. @8t-EϪ uU*G_H0EnpފvxPr&d 'ec)ݸΈa:ncv̆f 1:cݔaToǹ%WlC TЊ}ew#,2f-vEV!ΪYӪ_{؅~A7#QIeJUf>0eb4s Zg%e1YGϲB`?gk7C,Kb{Ъ&Htê!c]^_p@h;4ݿWXd蹜>IZ+,H`dQc@21*td?wK3 Nu\=$ch_P'$E@'y5p3Y$_^H35,fyF'ú8ėE"`#L Dޭ=3?bvgDqޱmn4ܹRS+A:Z9?jmӖ? !LwP3yk֓Fеv x;kxB3T|^g~e0%&YXIDoi:C \Sl$yԹoF+!JωT*A˗hB8eu#U&/Ajɂ bgFmAd0:!T|tEzm/>YkGwW7FmB}X1a8U|NH$aaJq_^4cGq:iO]LR"\&T2ԃvq+̀ݍFssD- Ȣ6Iˡ/Vdڟ.R,MK -5j][Ke/HU)а1w`y!(,̜-uIS+'.CSbct[{@銕y&X9k]9,$5/ާϤGئ^k)"{<ͼJ0Re3V{E\BKtyJp$1c>U57a?ɒJ*QAm gSwy%h4FI1 4zqs&H>K! 7Lm+z"R~ +\|<^gr>5vQ .PV5|-4הDH;5 ѯ PW*'>Hu5\t ?6ltWBu֥'Q\5`GAܽ@ڙl X_5dٚ\grAw"0.=C(!_ b ^=::>?55"_zk[WmmqkMZ VTVSDGٮ&2k2.I=E \_g,nR$6}<.!gIsGZC|x,dgb|=ӮԴ_nlfY3]R&O޴5{$f|C5\|(G6ƾ*. 0L'Էۆ#償7J@ eyJ"Lez  ; ,2U穥\:̾g€5Ʌېw?wTs(=EHrlFT|)ҝfFh3զa#9VU^zFq| H_ϑ帔/+b6㎮P"]OyQ-H5<Ȳ`!B:a]&O\0BUKʙϕ8˘5) 0եwP!ӿ$FR ֗E Lk[uȗ ),,(յ8MR><4PT@j?BqYdQB,Œ_K""nT) xˊ_Z]/h~k(h͇rbQN`>za_c X\cqϮ"u/?F;r_TE<,㬋}Xp=qt{V B(]pp=Elu'-9 9Sד/Z^SJ@U5 Ұ~e 0h4u&'!֟e6K>r8 !Q]}+YN l&w`yԂzӿ_VbγAZ3ScCܩ /8Dxnwׯ%¥ fbO\p n{*kKm`*pu)EMʋRy?ܕ;8iYŻ^|9|E8:l{I?,1RThVPxh `*Ay6 XT Cp.:1T!B)O2As ?\I23sp|@Lڢ 'U;޵ވǧO+e'2v8u4h@TЕ9F@W|1%w1<͵,Cs:~M1c}m"7XXj'#%AfZl&js5!h1d=$EJDOwF0V#UX0 7Cir Y\<}lw$w6v4M"ƙ7(00W T TDyTg;3uޡSFZN4.hQG-oMvT'4~?!nܗG̫̐M8MEۂA_ y{39vƔ:sw:VZw3Mn6ӯ6i!k7h2@?~#j5s]㥳:F-w$5jIX{jtҊȯ2A= ^~e{޼^ ` v|p;Derdg. 6`Hem'ߘ2I{{cgʤ,t%N\]#ϻS$O&Bо+dz]DG0lLnJ#%T:jA5lS,x'}wSߧTuɞ#VY%R)9aQk/胳ڲ[3<C\m(nǬJ4Ӡ.+3<\\'og¡?d`20 B͕•cyTݮ^-|1/ VY.2vzuρlT@OMk'QuH˔PhD %lTu/R'CX9cY.EnIwvUig `gXeVhYGwye%lWAv!7M4-GAv<8m(~Ox{SȀpj^?QC\BcD b+? "w9pATbeI}fِ(pr:t,ºgu$75x\tJ( 1eKf!>Y- (nL%ikzHUZ3Um= 엗KQLl47$H9= j3H<&G*[vD?%tṟ^9 +7 &~rE%G%);l{ ҪϘˍD%ϔgؿԝAO I q|N$㫛^/V ׮=ǛV嬜%wdH>>61pAvLyXͨ<5F%kE]xɭr٪SD}f1F\W. bI* B~'e h-g*r8Mi^DmDE+͕bضlY50n$h$M#xrOkr= a&C6.GX]є~wx‰75AX h;M.#Hv_`!E;lέqB/M$P/.|cBOrɔ?M@CfgbڊG8 .L>/Ƙ3t{DaH;;lw_hwsf`ip;Ps ncgUV9GݼWjC|Db7!g']v KQ hJlU?Q 5r/[G0tVl7ZkoIa7mW~ _>@ SSWЏVkQPhWt4#yP4=a`6HњL2;Nxo8%8EAV;)t_f}m߂g:y$E9;)T mmZ&( T@ Fo)EL'x;cizkטa;y~T*fA߸o؞hV.|+1G=ݝVɕNhv >Ho<2/JpѐZ6 ϯe-{K4ȣz.={|uOu>PEB}u8Mp;KUZ& nky0p0E x跱崔zu ۖ A 0G<ܽ0Jc~њ|?mL 1 2HJ{ 2P;YHWѢRd^F8>xQ(0W9P`ؼZ}W㨂J H{-q4+yZ\ݬå"$\z{f%5)B,S]q?NdMhW^Wy׺Qc#m\Ц,/ˆHM?l7ICkf٭2vhIg3`%IjJSrF̨>ͅ~X+9Pԍ28=]`X.^w2Q1[y}(̲+AVtƤ*wPFgd^2'֝J&Ĺ U%ǡ4~_ S3Agfy큒s&Z |cYjH ceu6yTu>~s``t.*~lU^5*`B E-Qp3cK8$(|eeTǙΘ X WN$ Cj"a|Wm4Dʀ 8xxH3I3蚋Q#20P'v8ߣem:RP"d5J^7j<~#d+W֌@ݯ]ɼU[P&P! U2\1׬,c`֠he֛5v"ՆLO;1깆^7iv*utfl&Y% v7tZuTQy@!\a`  ZʌF~| 0 09ٮz7%ϝ8a>s y*E|s);l/*{C^ Мa9~\IGB6oFF`HHQqʒz83*P2BM1fG\@9~¼`:.E0AX?,ɡ<ְ) nڧ~ \M% qjL(_.<$htQ XG* @ջ RM/&hpąњZ 5}xƶ"Țփ:fj:!8žz<4ӿi ϳXӜ΀3c! /Kl D"՚>qXT%b( ʍ}~0CNBIyGwޟ\;v>{I_db3PFlʄiyve,;nN[S\U!!EՌMM5k9ͫen/t>Zc,뎵eM\)6ym窍+Yy3tl{> :q)]A[4F@c`c<@םqOje<~-?~h3B*ij+X9v1JfDCڗ۽o_]gڰy+c |:<\&=NQꆇLkޗ@7 ~mt8lZx=;UtMR"fG7ʑy<΅*6Eر>9=Tgr)KQ`ĖWx>~a,c{b+-/|>՚sH9sakcB{lEۓW0/:Jy?~Y#=] ZzϚU,7AM1~%6QZX׌A*t+7-=Z izl* ԰X#6hM4v1%cUEw6R a nƊ{u QXF4vL2⮰VkHFGo1Ƥ_hS B~ތ3bu|~Er|w צUpZʝLFU.MizU r fA]j/&`_f7 xlPH̅f-C?^\˦5x1 zn8k]Phl߁)EuBl斣eeJLfU#\{ʥڦWF/gTѩBu{~uK2݁lMγ)mW"0溌({-v-{@xMj7C7 2MlJ`aNo0 !]-m(`MWaKuָ\ _, 3‹* ]#I7OHlɝIj̮}Qn@$CLW^H"6>9|\Yܝbi9Hz݊:[ ^a⹘םk $j{jf&K OE-R2U TFyn6@t["} RsZ@KI&p!2 c4e;L\. u`;h`+T:nk%UNmƳ eկlh1fUgSdoac"S>BYRەA#%KE XO`XVtx%P}57RNN2Ǖ8ţ2X.-; TiJa'/ 候E˅Kf!k;"KʮI>_$絧2ʼ= *Fkm:&+^*$oSm*]`y:))!׺nՙ{ ? ZQOsրb՜Δ4Nύ*Xk }ΖаHݼc,NQb?8[{ŘTNȨ7DJ0/b,ʭoTX89f7 (':c%Kݺ-CDFHVU<)K5xS4n\ rn#7j6~}4YeWJ%8Z9e噯%um.oX,rƳI#)OȌxEIX!2^: 21b X1g*vq[^0P oD=-{F?p;w=yGмK4_o Dk =ΨF-u'Q|i/"THD&DW*ıFi8Rī&ʆ~}hTI- ,C +IV1T)JSU.(wza~JiRu5jKPQ:~otrR걘ՎTi"V g]DZUxmCnݼ2JR~z\SY;WpX3k)rbnnm BLZ5`#Sq)&*ou2]ftøPblrjAfs8Wr@I.[JA`E{s] |e >`6(quYSu=324Qthiu'xʀHYUVrX Wsn|WqǸ;8qU3:js"ю{7#k}QWQ of8ƴG wPxR ʀ͗ Hpa߇6XN2)#@67.^fǞb택S+ǂIzm ,J1\❂s!Har"yFpx~{(x!V$1A`S{' CM^ YZ