quagga-1.1.1-150400.12.8.1<>,fMp9|'< W. _QOzEʃ@dC(̃3Sld@Xg<}+x`[r,ڮTIj}}.l+NV/,e#uszL"!$g5G,,{p>W cn MZ/>Ox?hd   D", Bbx~GG >G G G 'G (hG)G*G,^,G--&.d&1H&(18191:3$= >(?0@8B@FFG\GHxGIGXYZ0[4\<G]XG^vbc>defluGvwLGxhGyWz"dCquagga1.1.1150400.12.8.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.fMs390zp31Xg{SUSE Linux Enterprise 15SUSE LLC LGPL-2.1+https://www.suse.com/Productivity/Networking/Routinghttp://www.quagga.netlinuxs390xgetent 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,=_v'8LS`RL_!xQD7J`phP`F9b6 Vqf66 9 ";A聠A큤A큤A큤AfMfMfMfMfMfMfMfMfMfM=fM=fM=fM=fM=fM=fM=fMfMfMfMfMfMfMfMfMfMfMfMfMfMfMfMfMfMfMfMX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sfMfMfMfMfMfMfMfMfMfMfMfMfMfMfMfMd6bafecd0477081f03a48bc6a3ec266c5167a5ea3e1df71f773a1f811af5c8a1bcbf60ad66bb1c486af8cb95f5c7450665d602e5176578597b0d1eb543db83cdcd0918b4180493261c72c9f9e792e3040767c1af958483f0f67c89b4473f21dae886a4d543fe99a3decd4682d9f03cdcdc5b00d0bde3bbd744f43ebfbdaf7703921bffaae31c8152c5ec22c047ddb1f045581060f0c47fc59ffe95d02c78cb8bf28419212ba05ce29ad35e18a6dd96c8547409ea031fe342d3603f0e4383d0ffafbb0833080521e4434ad3f72403f6a5a6a89acb290234b8bfd09864f3d197079ab3234e21ab0becb1cbdc1fb55bb75c7707aca0e1914646e7cc178448ab0d61ca5fb245e325bd36c4921723cf09d11a56e6693d141d0607a16e08274166e3a9e70621f50aced6edce95feb728cb03e3cae3b57e01147bc9f0a4afb296b25df4184952f3e5112a9684825bd75661dc744bb9c181ea5b78af00a5b24d15fbd096fdf43f3e31fd9a6b03fea45d10e183d21cd790ef2658b7984d92f16b3b965b0fdbbfeeeee2e79faf1d4e1a252488317fb1126bd35a6ba8bbccfac8128470218f2edd2c132795abe05bb27acd47bb0b2ec5f9fe263977acc1cfa1901d680d52184048b62a2091563efe9f46af43c783282ca2c1a728f9fb44d1479b0fb0b29ca754a7b6a9627a1554b0984c51bd10341ab25cba763a28252d068e511f8381f6e2472d56222004cfa338f17e877720f010bb9130ac233df39205f405eeba77e1a3f5d39be8a01568f2b766fdd7ecce921bf6b3fffc2f2ea44b1326bedefcbf698e5cf569b9f6ad15ca8c254eb2f7c165b3d379a6fb201aa30d5d8928f245d70073224595b36810b1a6621403b8bb1c13c346478bfa5dc2c6c4d23a132ef5375ccee826a625485a84f6b06e72c9d0707a24cc7633105f94d59c8beb00dbdbb1046956d0f6c1e60550d8f7075213c327f5964783fb3693c8a2d6d4fd5e529b83f2e1c32fdad9c31280067e338b66ca215e7537c20041ab9c9fcb0bf3b087fe149feef4f3928e334462dc4172c7ce1cc4b0eb802d14a55a66f755e3b6e1c5706d1534ffe8bff0c4ebb632cf97b3d572ce3c8cb0a982b99ef88bb171f5decafc001121938b7ddc8351da8e7fa22f5e3190b474a916dac0d97e6e942604a40087e63347b39c1bad4e51e2a3389cd25fc4addebe41a3ae7c11100795683f9330de1536e53e8c0f1ded7a994f384083d6fc46937f7b86283907b4df4e596991c2a1968e29a9dd0e90e79e789b4c648cea101a97a05a70d3a1b044384aafa98bd43d370af86188d4f5d3d36f3bbfccf3000add0a4109dd482aa1d1e4d17d80b941a7ff06ecf360a48611827013624017282de82c8baccefc8e693ae99d97e833a7fa03f7d7ed89bf4e841543bc14c9aba0c2c493db77de2c4e2f6d7884f8fd3bfe4b5376cd9188d849519da6db6f074570ee6bd68862fbdda4dcf838244e743f184df7f1cdc43efc551a02e80738fbd227d7d5848cf19883f58dfd86cfb81646458d15cec5cc00c18b34925d03c1a618cf59c66e4bf63161120772dcdddd8f0eff94b0b26922e4fae11a8029f90261086a1513ca281e1c6a0976a3df3cd779b05b96716b363ff416d837b66b29deaaedd799f273b6c3ce9098b669f9f43d34d842313bf4d62ae8082e7204707aa415b3bc5d3e80213ff63a2946d5436b629fb75e8577694424fe7f07ce8874ffb5c290886becbe8ef37b841f3ffd4544c061899d53c4e6a178fe6a5dc153f88132be463db1db0c6d2cfdf44bf0d206cdc2c8e2469149e35e58cfb16e4dcfda73cf749cb459eac18a38370596f74e9e1c16b7ad87f598b72511fddfc7830f2b2430aaed5efe7577416816d5a5e9e35f9996fb2e97a4f73d880ed010a26a39403ca130b9f9ea24b4adb214de0854433d85904d315ba13fa358387d2bd82f494775832d5b9832c5d08e3a268536273bf266ccafa4d354ca91c70c3bbca6fd0af65a3b3440ca729468f49ad8663985023fcf3f00e3edf1d6893041aaefcfc98898dc34f4644039477606ed3da99db9f81b77649ca0929e55d79fc166c86ff751c10a5a1ae36f1b55123158431c06091cfa69118e24c4f78f7527881158ae1a54ce0575fdaa5b2e860cf73987f7fc524b51cd5b7b1fd5477e085cc53bca5c840ccb3f28f699dc5a971dbee29a4334d1f1ded12214fe539b6a84b01e5f20a98c56bc7c2c137d076b696348f81a5599db6a849ea5f0ea1ea4f5a300f0ba28b93b9068c02b742bc26255e21352d823d863d18b5524e25137294593c96e7512747b43caee73331d4109204c9d9edcb9b25724b6e90582deb55047ded95ac558ce7636e3e5d216334dcb7aa6b0ddb22f01e7d34596bfc66879ace9ea8bdccd0852721a8346b072854ca565aec630ca6b2b1b2b9124a534e16cd6c38e522d48caf0af377077048f8a9c076d5dfcd312ba3709e0b3e3039d9f8e8cfee47d4762f6d70f94511e91da73b1efbfd100b799871558d95d1e32bec8f5a5fc9803072534377f1be20f1620e93bd994fba502e8c69c8e9c6e2d0b04221e491bf6c56aa2415b6cf66ad05b2339fd2a465147f965d9632ae8eec370e774701908c3efe4b571f7b0f410f045ff86c669c6e9b87330093ac8edf70d81327213ceb6642fserviceserviceserviceserviceserviceserviceservice@rootrootquaggaquaggaquaggaquaggarootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootquaggarootrootquaggaquaggaquaggaquaggarootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootquaggaquagga-1.1.1-150400.12.8.1.src.rpmconfig(quagga)quaggaquagga(s390-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.2)(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)(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.8.13.0.4-14.6.0-14.0-15.2-14.14.3fe Z}@Z@X@X9@X@X TXW{@W)@WKVbVbV@V"8@U ]@U"mt@suse.commt@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 backported fix for mishandled attribute length used to send a NOTIFY with data and an overflow fix to use rewind to not pass a negative argument as size_t (CVE-2017-15865, bsc#1230866). [+ quagga-13-CVE-2017-15865_rewind-fix.patch] - Applied backported fix for crash in bgp_attr_encap that were missing a check of the actual remaining stream length before taking the TLV value (CVE-2024-44070,bsc#1229438) [+ quagga-12-CVE-2024-44070_bsc1229438.patch] - Applied backported fix for out-of-bounds read in the BGP daemon that may lead to information disclosure or denial of service (CVE-2022-37032,bsc#1202023) [+ quagga-11-CVE-2022-37032_bsc1202023.patch]- 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/shzebras390zp31 1727090105  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG1.1.1-150400.12.8.11.1.1-150400.12.8.11.1.1-150400.12.8.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:35806/SUSE_SLE-15-SP4_Update/d6462ef4a881297be02d6375333ad899-quagga.SUSE_SLE-15-SP4_Updatedrpmxz5s390x-suse-linux  ASCII textdirectoryELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, BuildID[sha1]=36eeb8b128d79b1d1feef81f34041317fb353756, for GNU/Linux 3.2.0, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, BuildID[sha1]=0408e2e600a9a0d978470c1a18d91bb4b470df66, for GNU/Linux 3.2.0, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, BuildID[sha1]=55941d20718bfb675bfc373422c8ff46e741e68a, for GNU/Linux 3.2.0, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, BuildID[sha1]=af77693cef4bf26b772f129edecebd2a7cdd483f, for GNU/Linux 3.2.0, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, BuildID[sha1]=3cca3dd601b5b67e30adc91933acc51d97fc10da, for GNU/Linux 3.2.0, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, BuildID[sha1]=7c3d67598ad0d8b7b45d3cc7833aaf60b281a417, for GNU/Linux 3.2.0, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, BuildID[sha1]=5ebaf91bdc60c8fa38c224109db1e0737fa8c7d0, for GNU/Linux 3.2.0, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, BuildID[sha1]=bb237acd0cca353c9d974c52aa04f723ba650fde, for GNU/Linux 3.2.0, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, BuildID[sha1]=fe3c41e7a263e2d90645c59e7b0827c5820e148a, for GNU/Linux 3.2.0, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, BuildID[sha1]=d65e9ccb71997bcdcdb739e649400e712d3e2d07, for GNU/Linux 3.2.0, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, BuildID[sha1]=6d742bb2481a81a4ab54683656c9dd643501f4dd, for GNU/Linux 3.2.0, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, BuildID[sha1]=7c81fbae758a95982ccab7c6b37df36d7dcf9b68, for GNU/Linux 3.2.0, strippedELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, BuildID[sha1]=cdc59f9f5322fced43828b2c0214dc02ed29f479, for GNU/Linux 3.2.0, strippedUTF-8 Unicode texttroff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix) #)/5:AEJO  RRRRRRR RRR RR R RRRRRR R RRRRR RRRRRR RRRR RRRR RR RRRR RR RR RRRR RR RRR R RRR RRR RR RR RRR RR RRR RR R RRRRR RR NG??Ű )logrotatesystemd-sysvcompatutf-83e1c7bd6533f9db02eb41eeb71d4d10a4b2bdb1c079c966a5b651540962d9837?7zXZ !t/]]"k%r/^fYWL^+eɰ߁Hc%X hr=Ri'~TP`Վ#Rkq8 Ă^)ݔ݀kr7sT>9_N8(  {(d0WyujY_P[H8b8)~w@f͗WhrQNtUS| h{PE_c1AT͌ R ٯڝx煈 =Z~81ѳccb 9-0"ͭ9[g.tN0 TFUV1A#|8 e`Z1jn@ Ji[tD#S\bU],c=pyϏNn 4%>#&z[P!6+IsGD>݄\) p$z58κ@|]&).4kXcU b.ҕ$U4*CtE+G;f`ɤ/3>jsxd vM˻Az*ôA0΍\^p,dY OhS3k[9'[FOs5ork] Dw>YL*tbۀF`&{,qg5> yِ ւգ_:oht9> VHf<yN A"za?˓i3펒HcbQnK$7L2dS,~)(+|C3 i;i }$Ag]<6 6,XdS51dZ ҴiWgQ@YD6oOC,zM,uҚfb2K0lۤ[F|" ?mu.LnBɬF>~ ¯1`-ֳo6aᨙfݚ^nު]bwZ:|O,`+jSʱ6AX)ZQH5%  ^ /7تpbxݑPqݤ0yX˰r+Lj-N$y?f ?ځ|~m#+v^0Q`L[$%] X'}-;Y!Q:Cc-zĪC[H0Z>nQ9EL[Z3j( IoJ6<.=XhVzgM,_~vb+7*c184Z *"x{aq@9ry<62Zֲ60Zep^nq$;Bc33%䇶x"M((킢BlfWH੮MP׵ 9sLg?% nƣC326/'5g>_W,gWM3q(ggKnmrT㞞g/Z[ QaMcO^DU#5D1#w HW8/LJa T>?'vRZƐʭZ .Fvk<h%bpE/,r(iȣȷ粡B_1_F 2g8¾B Ju xO8q$i^V 'n2-+1y&EhCsWwZt_&n(P $(0zC~RLEoV:z B}ׇ͍m"ت+1gk%#a1󖟟<8@j[ P(ǸJyK N*"Vc>)(:Zr>!PSh=S8ZxiTdx~5qj 6 ~dD[nErKy& "=e=9dkY; 1Xe2s9 "\u[ϞP n ~VZTbh(gmQB;/񚠵%U-՛~&QpI3AϭR9 iu)*y\ODV~z'VP?S92u~)yN`dE۟!ЊmVbJ$h$$+=XJ զL G$>/v~ AUn gIx5s~5#?h.9[s rF,R(SRk R DP+CkU|=K=rib,?8 VB1<Q5:{d]5<{]`v M~"ŏJvYԿDx2DU+ݔoDݍK™,9 ԸW̼%҉:83u)Pkb'`QiUV VͫΆBT2BEv GqZp/|.06?Be7Gozqbjs^<6 76MrZaA0L{_ o*R<O:$>ўڬp*veg?5k>*5YS ti4ƶG>،U} B)ﯛPPG$S$-1@luSDillܜ Xs*|ʿ9:IK}yJB/DKn Ơ#9}GiG?O,<@g|V{ *I 4+ fu"5B;>$o&WĆrX < \^)/H*!WTGpA*Nk\ $-;DJ[VBWaUҹw^oWmVP]ͲHH$h4e`$eJ*_1t;z䞣˕IKVâtCOQM\u)sB1h"UNW#|B !/@C $:|V@#ծ]FJ6O>L 9C'?NܜFAmo&{t?N;<7;Γ0"Z3_8҃@WE)AP8$oY9VΈ/yِ4I-MF2v^J*5iWe`rl;#A X ơw>=rgmٱIFW|忇[яۣ4ۅ0 LіcA.udYx '@y\QY~!#kE9d,ц7BO[F_ܲL&+p>DN¨]qa¤N" |R߆{^ 4fxMM XS5k53.dڅ@5͸V[{M0[ֆ[h7NOw1V*KpɃ,-E5FhGvAhlF]ow2eOžC$=T &1hyo< 0@Cq,4QZlBI ZAvV=_1~QdVu@1?6e%hW;-^`hmmA1ݠRK4[Avn z:V2 2Y<1e,Lo?vt &KraL~o1% o2h_ D9ӿ.`&z.+GF.q;$5a.|0`SF\V֪[2}ΗAz?sA $$:.9QzfB SWXtRmatXUNEjs iVw@ޙ֋&}Lł}1$,hqwqk)xE(/ dmѬ e يV^{%ልhjnL&bCA |#hf ͻpSw w܁As!榻ԖX+ (Ȓx]M>() ]z$RDK9)eJRFΓɾ'f;n:BآKcFg]qG% DHYU8wH0|ZD#ܠ}1 ! e 0uSq d8!sʎVѪXv(0,EOS 3Пl|GېUُ!Ţ^'Bz-1wP@/\~jΆ_scY6*PUN^y<[nX&&ꫀWSo249"̕/hc6$^97ָ_-W>!$# 6T8O A0hύ Eɕ^$Vޛ70TR.aܔFyN,-K̮NDmLexq *x}~ӯvP`I9H9҆Gt`t,epHe%1>:MW23ЅD-g\z=Nn`=27#JTo5 O޵MS#&ɩMNB['c pՈ`Ð_Gy"f[ꎮGE0%ϜMI''to[TζP8B 7dc5%-$1p> b>׉Djй~e=Xv$V}(DnqcTogz/N@clEʡ''yrpir6[?˱S Գ!chɗ tON#IH:Gv-.D[$6F282j1SQZTBZur!;H)Momu$wQs!7/(اwNVomvĐH2ɇtׅ9Q =2k8[_vcC (GfF\<aՠWuirEjd:#> v> B|ާ-KCwG@xIz,m@^%kdDF318P|ov4fLFyS<<9Xm,yǒدߕ  ׏mp;}S)[Ɋh7wĻ,1iDTŃ}.[#`v۴ /Ńښy7pͭ=%{@/n^ =O| Ph`,c ޛYhf\\HLR1^PAQq!t%OĵTQTu6;߭^DǑyЈ({0qULsk.^סqnq}rO&VrQ5NF E|C/՗^y?Zx }}K?^p4~)_gʉBk,MOiǯixr,hޡ%2Ȏ(RB>0Ԭ~:Ctb7,Jw$ev+#rUvߥf,%Ea*?ۭdyqΔ`YyJHO. aU]= YQjg齨^]{a1C~Ym-&j )B²p 'KJM5qu̘c&kzjo;VOVhai>!3m@/ey*JT|`))m%滒5ׁ~P>U IZk,IUj : .[ϵ?i{|_H[ܫ!|V#\v47^WzA8Bb?9HQVS~+DFf+st o1 \pc^#L۽?n[&a`]Hw - *< VO-K% tʽ{&Ԥi;5+-)P-yr6`r9}1m퉦<=?#F oɘ\!\ J7mBLOD|lWL`% :AGjkh;8ƥ̃jޖT ̨#X$<}sz &&,ZDp1Đ-ň]Sff*wqU=|E*gsݞő]hk)x,kWGs0T2G YTϩs"I?F} eD d`Idh_KR=ώI`b*!XZhZxũnN\uDЧM l\̒9~zn=cci\"]GQf]0T'Zwն e'ѣV4c*vjcEmK%/.C"PpaY*m ݈he +Sַe *='E]Z x"7PÁ]L.]Z]<;eQ2VLÚ9BWfv-#zkcxR : N$̴|vyBRVuҁ\e(d9Ԏt?Ɔp-nKψk<;AM (qhc1م:7-^MFj#Z>;j.40>Nzؠ@ " 6m˂hU:&s3 sx͞zU3tQg'B~ت q*,{Ȟ; -G r[nxAf,!Yi=`R=k+wԔ/ =ogj';fAtۼlc`P_;O? g #fܚ@V^#`)5zzȔY^Ĭ>]>2EaDв+jdX~Wjd<Ҁ> D:;4hMG(;!י8>jcISl-gqѻ~eˣ6"pDyM{ RZيp ^zZ98p؉p 7a8"Egaꠣ%y^\cof:t߯՚|,CCˡ ߻Z$F2KZ%wΑ<(R/}Ф=DKFمSOs!ɑ 6xvra F[{{ŭ|o}wb6v9Mv`uG&L3Rsc%gKEdZ%2So|j$h{>+:FX^c\Z!pe*=v#E`,gZ- 9Xt"J R$pU> -s¦#mPy&өt {F->`x'RtYRXcx-W7BHm( |\I-oE2ڛr>?mjQAbw'"CO▙Dz}t>/j#OM`&|oHߨ&0[{l |3`ἪrgK?Vyd~'Sĝ-fz8wn> Bsp6qIZu> S4 $ik[]h`0ʷ}0HrTDoo]K^H!r#  5nTP՜ RMzL$]:DquϔrRȆ.aKIf}CRJ;>VgwDΧԁo] # X^kWQp Z`):aZpKV('uxXXՓ>ʩ` 2aI?]vG*Լ@Xi%P3!sa8qwO]Bܟ#K)H&<"#:~37Q|{ͣ5ЮS3;"7UH2Ӡ,m( 4Y -y|S1en7GQsXұsVlCSb am!q]0<0rXgiZLIs}Af/S{Y N{*v^-R/"9W5-NjUwC(MO{s&6њ@b}?!OSܩNCYM{E|HP$N Ww۶3]l8 q@/6G߀iF{OQ.DhzTTw:ݥ9t(hP@#CV-Ufɗ.VdnPZ̶kvԿH{uX q}>jtG ϽTC.ҁni7X5xc @{Û8Wΰh ڞ*郁-'%&L(bgMGEe)`yv\V(YT0#%-RH߲NF2q`յ^鵐sa=(eڕ-C &Rn~n8EQ/iCҘ [)>öC' wʸ \ L]/3U3TȲ7@X8ZYP+_6rtƪ&J{@զ~+HCR9-ן{Q؛ 90;„t/Oa8.6@*O HeY%<9-NXY{-Y=UW; *_=+ZܞpBwu% " %cP\C;:rHWJ6{Q_f Ƥ$o9ͧC0'x(t˲ mNU䏈3f;$mqd.GE"q,d7s-bXSثBu)l ^J)o u oN9Q:Ǎѥ/|q+pU,+XnI\ ME2R&~?gP?=mK6#g?b@'bl+hJUE1P';-im$a2* ed+ yXV*hAWL Hdz5~v}sF菧Q+kCk<\+/R ާoa (gr{\ 'D$~muB-a"tug]@%eBJ\Gl+Z YDQv <[ HM%Beۅ4x`ίsǪy5 / F9ab|C1z~$LYдڿąl4=!thC̖f^ "n>&-{:)M) sΠ' x9o% 2Z2vv -E2fC/ϋ^xqw\4>GtҮஷnDV䑾N̿AGcs.dft@]M0P"A~Z?.>u|^D38ӛs.!MN4:ZU*H(Z9 ydQd6d4 RV|pt w)aJ&y\u*(_iq+3E Ԡ+z>hr!1S,H _˜R[IX..ͷcG$ 82).1JNs [7a{i_kKH/oZ6g n]Az5 %/҄9lL48SԖ@mΈIfH||msWDhoL '/C͕BQ32ci%"dp!e9Dbϖ[$Yķ!dAB DXܩ^"0F2haDyjil -cŴ\Z$OhSO31(.` ky_/͒>H s;S=̦~m<`99S51镸!ixп.t,SO&Jřc?NJkuPedF[P7#Nr}؞eoy#cI5b$瀿&6U_ƮQIPbAV)q%:C`[47`ȼ;۽`$r] JFAii>M4\.&bG_"#G0F5Q{':|yw`D',!旗;"mߠ;^{3\T^8Vұ6?P)Y5sBq7E;,[vQc8I:g0-ʐzAXߥx,(<2?=_89ts_kDwk8ϗP 8|m$v9Z}[!}of!wGC8^LcF7nB\BaV8n(CbT65z$N߁T.*jes+p MEZĠ1 E#}JUDn%tcB s% h]j(:˨S PC'5kj.!FaGg3\joB!^Ml8w+>nS/]'h(rwh5E] ?NAkЌ8wm ^7nSx ɪ>HTk`…xk[.[FN㕌j }Bt3xzvČ89 m#M6Ue°'nF(à%`֘pJFc>QXEcjIVް|}?v_7&goב^hopvPzή+ ׯQOa[|U=.!~GOD(O{}Yz #Ԧr{Iۇ,>G#_=6Z+Y=ݔcu[*=Yd, |S&ʅ/xĈ+ 0ېʼPCj_X";HESD=POcuMn 7/.͡Lԗn}J#ihjv _0WuA]S4oJTx"&ooeTGEiwRǸyb";'&U{d͋ЇeRn5hVZ|+z5h8 T /KێW Lhp;[6ETS? a? Bb~7J:G>u%8 M3ߙc䂶=gĻ:rDVJyfF`Iq;RU5g1^5PBTIFk}>Rͪ˫WO`}D8ؗJf0i,)?>g9K$&fG\DMF`I⡯%ថ>8EM ic:)VjVJ,PV't,Uu`!}b$s gpfoISSt_,jψ0ZGvʾ8Qḧm&̔c5=Z8q/}\c5hc6¾O ]Ak:zi{Y;g-qi6!0c|߶be?T,&1/j,+6hyH`J2@wyq[)+v.\0#[y'jLJLPx2a$i)UΙ\-'hƣĶR \+~mK&oaDHm'I_qD>M}@#bitcX8y BcDU <‘Qks@,!o;WDC>R%2&(^z.UFLvy  4pHEq>bŊ|M#ޔ] l^5 ,\;I5C$5x*@gqH ѥI "[{zA{''Ir4mLSw9p %nSb~l1A@(BvV3Wͭ8Fm~(urA<墱\V9MNkꁵ1>@bώC5U[A#ȳ,D ]:fF4,[#>EYRгaɐOm`Kd@4^P=!F{{sV+R]3˭mJE0yI INy;dsɒn}3Mb\]נ /FD8vtSM݁xTS>hS>lI':Pu(θt*$h z 7?/Z`3&qQ3-l̫4h5hjƞx6iσ!"[=ҮXziӾXu4%.t_P@'eN` _.}檥{zEkcϘ/r\h_#@|dJ%60meե_6͠TYmy6.|t##M ?6 {5Ux Y&k[@XW7p~FIC?4M=lcEoC)D6K8j[(--8??( 0`enXTˋ>.h}&{ D-BaRA+'{PNkJs:5#e5/|ٮ](d"Lm/GqcjHۺpԕ8L G6Ѓh:!Q(tD(PO2^閿d(1+UKOEHXcvK,"|3.THBrpR7q=YJb/ҭ܍.J0b4%gQ PHT[X^M郆q/kq: WK3Im7gdwd4/miY%Ղ9i9PhE䖋A"{4혐eO?ȀʛLFlsX:Yn1df]: SQ~P:oKHP} læA3)ΥlvY[J}i2 V1Hp)՝YN -`b~8%bZQ;--gW JLIX )^f6pK~҇zqG@Q\pyDb08[ϯ`YuX`(UX '>;W)_I!bZ: ֶ=)K 1.՞׃v%WCIJ*C+w+hʽ|P1_x&V,O 4oLQ %Kn;QƳKmnV/Z͛&BskGc^Yjh%6 ;s4HPmOsnqmy=pYs `.H*MZyx-H\{4v[M6 /@gzSf䡣!N1@ZnN[ ֝onk7Hu(e"Ad TEyIFF/(Қa 7^.j}@LHNfЭ jP)1?_IбWD"ֆ b>iӬQl0O8xO{@/u5vC=zHiQ淋iГ5Єt1qrvDj_7nj3m9h˘k59"MՐ9z,znGӈﰡS#9_|: arrE!ᴍ۟g LpoѣxjbԹ~>w+tٛSUǧWR,:)"_4d _cȯfP2 C$aG2+H (Ɒy $A~dCH/jÞQ7`oͶ-Y}*>"Yևynd MrD2H{kR;Z , X.b%xkT!z[qoe[s.rkwi˲旝)BЙKs=?}D^{{Z^33biAiiUj!(M%5za۷$Lp͚nF.Wta!dwFt}-xΰGӛTms0׀V`Jx5F.ޜ<3,Ręn8e'"9;EuCԍ{ԁ'@E,vNxedr/3֯^iM$Si5e/Bn?2hvPE;9ӓʬy@PJtxYkΩ MZ/K ӛs{ꨒ\)`z_aעwnժwj L4;etZ)U27&5nf:"mQKz@;( N#yJo݀r 9dmhәc-R⥶P2f`i “ykvIEV"9wCφ[č[p NIBn%{հ@V"rVbf>xbf */#BLFp3ҹp:wۈzH۷م:XdDQŠs%m5*3<^Z=;Vq]%;>K =7@;gd5E4]LaaC37f-X r3?!b_Ѽl#)$oVug\\|%DHOihYh!TUJhYFDhQT(j!WNJ5"tŹZ?:A)^ӂ1k?BɲcY0fGT@$`SQcIjl Pލ^pQ,ܷ<ݸE~Mןo]f͓wANs0 יxx6/əL/,.GT?{5ZP1^"YV3ͷnuWVe'.3QGT-܄>8ٰ080^pl}L#}eߔLQTL's5h\BV:i%.D&i<&7 <wRS=Q&:C \%׉oVpŰ6@ u}ڀ BFn|F[ %{,%{\e FLy{F[ 0~P∃{Vn|Cn!H-Vor&Naz/`7J hF7%w ˰cB568ۜm3xE(ּ63D#avx+Gg1mʮ:E,hSDped<ݎ'Й~6T/&2ͪfVϑ͎^e9oBlq\cOV`o$ʕd9B<-y/%2)Y  /vl$ `ؤ[ę~u#&jy7]p#t΍ s013Qf8y^%j>H#!gG#}I4lC J )OOK[@0.Y1VP;ҫ' {8#yWqW+ b<0 ^?(Ϩl52ĩ0Z)S\O#$/=uvаAVȭGlr T~ofazJ#ecc`մf1{Z/ m _"jObqQՋ@=H?!k뾯/R2?}!a_~ϳJ<#:>eӋu-I^ \hE3;%%vURt6ɵhi4e3׏B{pł=1Tc%W#Tm]q]\qs fV$Q"y^s ӑ2^YQ{5Eau`=r҂_ē.D C&*!H.검!4AΖEYB6R\oWtڭ$\kSOy~w,Ƭb:^2`zK匑YKIwm=#e^&LB͌vC]zJ$'NDӵ'U"AttuR6]5BhwEj|Y[rF˹)N a;^o aμPo[v><0ysK׹=%,& _snS̍G=@q鲦%G=\Ŵ $6Wszt ]ܨ@~>,A5?/;Jr: [bt?k9v,@ (fYWT PPՕ(RGzf-&#>\E#ZD!r.q,ɸSj aC{x7XwK zi"&ؘ''Qx67>q3`",]^& bzo2ov(k L#Z;UT4EynŸU ;jTUB]Z`L:ْe\^(^ՙ\hvb:V~c>tPʒajKmjmH!IO{V$=F L}UHXSXꑂ0ٹ oO\KW$nD3  )oѠe~^~6xO\h1 jػ` T pTXsy^fS 1 [9=&-Bt@eTHbV3Jς\rB5&ѽ?Y$ Fɾ6 MӨu#Yi-zw#i9(yhh/N`8((' :W| Th$rrg{M~$+5r7aӼ1! g gR<3qL\yrgw 릯G̨E#읁!{zڧQ.y/|g5Cճ 8ŲF[$vd { `r 엕[ki kzf<PAMM?}wӢ>((mnƮ:#h6)@0/<'i0tG"E˥^KX`~r::!ABvҸ, j"n*;4<*;S[gʉ&,7IKSH ۴ @@17& $(Btq^j})mgK{Ցט !ܲ ;@L;_K6n+lˡ.-7VK we/n00{hzq[Ά?ף1PdU. g:=ə>l$+(7U$!#~`@;NGyՖbq<6f \jL@c&f5|6EF'f:AJYbD5 N'ݏA=IiʄoUKqg,E3ޯ#Ef7?#!+_%`}TݮL>*IÎtУP+GM߳ʐmIYN۵r86ZO\aͤ1؝֟ͦBFK(Zf6PltlDCHj>yK̈A:C4cܽt?V7L f=^)D&sOF6W H(c.xpy`6VlIt7EvX`_7s[ljt_Kc\1k4r/a1xl5`^ G4KJٵn0o-Ei]˪=sPs%G4J$p m;Dn(N19hSÌj V qݕbG5}}Ϭ:gBAڀزK0>=`ͯ/z*pr=; <u(v'c0X؎DP/9"XMK"+܏s֤WI+ť G?}֨G(K' SP'}% n~KUBn], d2f֚t 3" rϯhXq>>)i_]s,DgT3<~Op)&!ժw~\MGt<:|8+d>ͧm©6 ԘA k9:=4fm6nY Jd>;T;c0Tt(A7;jI1,k*@]yg\6"G.y~%Ģ77/*ʲG>7(A&t͘i4p/ױEѿoP8JR%2t {~x3AsR?TO^;FζaZճí!u95rTSUTM.7rr?~7+gc3xDB]žKt@7j;hx FAKj\?ؑ`SC$ 7K{4LyU rW/&)i8a쳓vꁣu%Z'Hhn!K<2 W:/ ײ?(s6bpBQ7#9'D` YigRlܪ. 1_2JGIo&/:@ul hvưJ^! =5h3ٰz(ᄋ\AeR`|⠘}'h蕯aӴC{8EC׆DDaViBdb4]e,P}L!ڟ'ܱv|.@9uGmm"fW. жtЩLP;Jٔ=ۧQ*PV490F_mZW:q>zkcUcTsy 5}U(XC"½*EOAgnw;B6lύ{?VҔ$cA݁2Ы!Y j7;S]oߪ̾,Gʌ2>Ӎ_YEq(a[b&{Q׃yaC&@eidevȍg(SR(r#0e@s*Nقa74!O7x]ӴN_潇@({x#̑c ںsp[@hmnqe /!U8whٸc(>yG9T>"`B=C$a.;8!G}ԭ-U$Wi.2e(OQh+,\7<;`[ʋGS󠛕aluGEK Aiم",J 6e/`,nH<7:7edz*_:{0YG° e:5b vNWd8ӈ|[NDnlj|gd,&H*#Jӛ i5-+?:W uҊ'j,+THP/O9C9K[c;u˿6plp+%%$8|K)*1ΕMԲYr;mM;'u;8ɗ҉j;giDLs:i0|.ofB8b$ DנVfX-4l3sXrN)>))'@H;:`NU e2o^2^((ŝ/"35vTA= M,=^3iB/"ܢ Q)QHjCfrTTVqs3g.,VfR⇈IВpQZ3LxTd~UI5~p˵r*Jpc_=s'nV~2,0,:-N5$h=hhsm"Xbk՛GI3ߜTbKQ뭅-^E[~ةdP0_j+{Q>aȽwc<AD[S-[Nx~/18(c+SG8A]PeF/i 1FP-"M,%7oѣ mfGsHC]YarkؽQ7<QPdDlQޟ>h;$Pt̩K3jaz.P, h#wE6XUJ&-"߲\&mɈwJŠfjW*[ڦe9ƏD4RTT PGںUڍfPÎ綖bj*? ,cqUwQy࿾lZE-{Ytp;8:eu!qGӏΉtng'P)5M vA@<7iSp+*^h'!IO߀fp{I-&0caEu`u:q d*$@vǛ (4:*V:Zk{*NNnpin\s:A$gKqCɝxv_$ N MbHrIP+F:]DX}\:Ne\4Xr`KcwWqtD XS@)Y 7*t1< Nb4v3tQdvmp]E>Xv<|>6kto.pݽp(UF":ކocީ}- aSU>w^\UV~7ڬRr)8%9_g*._}$W,zlvArmɾw)W%I xN@3Z4ZT GHOfכaW^5]+D ͩ Ry rtZ~Z ~@ˢIV[1: ,; [7PW1?\?6 (i1J֓.ŞPgʆ=,Ad!NJ<%^ vb=0F h1L`@ ۤ|YͽH TPZaUt0ÿx @,cUF~I dm4BS8׶HCkf;mylc:ĽSlqoo"4 "){S*5ڱi>n'SY,an*\(,tQ B9,sCӆ%9PM3/]-.H yYj+2~rF:1L>eiKd Yw|50r7VfjnX!Tٮ]Jw,iz$$*o?ܘPWJ\yVHԉO@GkoTUe6|*k)zYP͍\1zia<fǠ[xɣEއ0pR/i)g ִCpىyfkp*-=6eK6\]up O.sΞdèZS Zb]#Y*BZRg$>pb ;s:Y˫<k{pt/oC|kYVu&#tu!GU` 2e'5++eҡ^&Ē|̽^)+0z|g'jh[Jp=W:bPe/9Aezpwq$| byFФT;Zw,MO!&`@½߆,3wi<R.C`6@*I9]9U.ө߲)jxZͩ~[Ωg MP[½ )3b):D6"m$Z;}*>f <ۦ0 *Y1mp0b,KOpBغmEN(u =0Jϰ&rqzSv8Qop2ŧF3<&O6'}tJWonyj݃mc4\yPRn7Z _k7q 'XU+EdV4A\r'᫐Pk\wk:BxY;mVх pW9]ň~+LKw+*[H;R*o6Rd1h3iR7}9 s" Xn}??n(=p٭DEq x/ev0}wЏz )n;(꥾PXqbr~krҭ7VG~9`]L_aQƲ|o1!ˇ r@TՐu#;n-H"dKhi,n/Y;K1ë:2h,8S`f;+""Jf{4əAVЭ~D)Ʉ{Jǿ!!eZ_Y|ZW*f0j[Y/Q/דaaDZ 98 :'(?3m[#{l`wDx]>Al;i+uLy=!, =1<^I5;G1U0 =;rԳ'r7A>P[ O(>rIR/N-MkvX2q[(BuL7 Z# )P5o+>!>Sb@Kcl;ĿzwX(y*°T8A8ɾ)KMmat#Anejt4[^w"DzT%߾|F\逴aۅ<ň{ㄒн>{OI-Ϥ'P^UJT"1W wv;}VmaY}(Smٻ8-5wIc \[.lkfB) b w%VgIݴ<+uѐ =$?DpEi56rSS*+xsoQ7:U00qd`BF1Nѫm 52g_x>doeɡ0F}H"y>5ԥBi;9]|C$މ0;( o 6sU95BCBÃ5 sҾպف"4f(f0;V|zFq; Dl C_2(n͖_vUH,̣/Ǧ&Nu.JeO0uZJVT&QE.j#:W[Wb{:"CM*&MV۴N*5(slCѩhcҞoɬc3W'^⌻4;x#P>2C3ظ4 Uh#3Lr|GM`{[koɛڀDkxWȰl4ʠ(?wpJE+] ")Rh#] -M29(|\]OұDm647fC+* Q1Q^W(ѯ4JM̵EEC$-SĈ-ݘf"D;վe}rҨ*GH̤w%לVy4,G,S4wI5K#z6# r~:(3'Hp+BjF(yJ ;bdkݞa@,?#ai% 5!'jLR=W^}]A yxo&|H6Ny#)pD1F6jxG.yI{3Mc' L=~-8|*IAbYXz*Qz@JP2n&rYЁ7=HBh.&9xs~!S:k`1&U0!A% bӫBy,{%(Yq7kܔ-sޓ/MOVg>+{5I>h+ /\HжX GգU%# a>ė*˪[Am 3sėLU|?j*-wf ,9@7\}fNj5Ecm?9*{.٘|vmzn5g 5} M코ZDZiw0kOsm.s¦QSalRr;yԇ4BݐTe9y}liL0<" 56r_Mcd> iR擽I bM'16vٵ\ "B`J^O8XS/V, N^a3h=Hn v`ѽd$>҆ cv3uW^]3ZKGt;[U.j xhrdffu-:L-Y!^,LS6,u:r 2q%P.bCq(ȵaê;Ԏ&}%y "g|H~&n~.9BKה66yrr_''̨g!{z1(7e@X.c0\.ގnƃXdY@$@4 ʠM>yېݵ{e44ut~WZ7gO ֿ*{T}tlXި[*^8{qD'ڱˠFmKhb6|C2Jl٤}W՗19xsUT핉|}b3%jv^u_Q]zҳH⺓u9=c0bCCPڴpw10(2X4 ۊnQeJVYWHXemWuVaxk[^렂~% ;vtIݺ$SNc7`Y 7@n!06^+ޱDehdۯ8*.{Nc}ᘓH4 k|ow;̰cǮ%rxҮ'm:2(Ve"s AG˹I=:C3g\ 4)$ls( d?Dikl#"^'wn91 ď dNxW,:;@ņo7iRΘ.ǔ rg<ɽв-f'C$KCa58=j5!/Ϥ ba̎D~>G:>Ug4tO[qJpf2`? Y5>We{LACJ$%̨6q@oғf 'N[A bGj -Ne}dP|bDfAfm;Te'>nrC0ܗ̯"dnj8oG pSN;(wo[d:.}obZeWHɆmRBl33wrIld>J튰Ks0Aj -Q1~d, %D2?]H4{yDIal\ض^k+qE~Mk&#PfPC:Pi99L=("h|%| $x+ܬYs.t$jU0m]ëVё}D?&ӧ5uQAaSX+Zܪ3ui0IS[/~.RL\b;}O">Óu:,aH#sb $R|\tBV?J ;@Shhj8VYqN#7"!A$)"7=!^M<s,nB5}yX{#:u +ؑŽlm5A*o8S?#WP$MhU'ӈGSu wK9aĵi%],zp Ē,{]9z pУ'-V}Ur|O(!v-"`_2`\U*%h+yKg/$N!K~OXD|ѳo ۞&'ǐrun =sH;rTlk`)[ |Nj"nr3jmq/'ACp}݀5?@ X,ĮN,YkS&pl<`ջѢ 6C&AD 6!p7%~׏*IѤV2K|J0[>$jG5`ɆF@ }{|nh6$(o ,6#"Z4s%,klqǧ;lxQkzpqD@}`*XD[ 9wAj~RrVGh\Rҟ"cbZ`!W{LӴMGsOw Ex;9pwp.Gjc3UErI<|Υ: pGm{nqؾtac c~"&,)詚]UBO8':RLSP ;:^q^!~ ;;@`W?TVu M}:9GPlyBf W|HU[ySV. C^W %M8~=yڽIEgvqQ|,ׯNpwuf쌡yyw3n* ⁃znJʿsEPᾙ#Y1 \|ƖnBo!)bWSk~Ё2s2l:2{FɬCp5PwDL$!+/Ra[bY E:G]Ġ=ۖ _,'҈A>I~rU8d=}^%I/ð;^Ȼt~43a l^(|9m$KD),HkVp. QYy~hT`@w\U4=j <t NޥUfPDA~ WLKKbY,a)&ZUˆJV9|"PgE|!/`9"1SByOAWۡjHpr*V,&I&zh~.d#`?9m}q]]Ȯk2R$()@,ʲȺ֡]Ae!\&I΅UDKvi˲1Y gaVy cNpRQa{.O?zc"1ppFGQBYBMKI6vp6 G`):{ۧEQڌ_Ӊވ@!.\z}9 dF?<|-6*LjS@g^F3:n:"/,*q=a&j՜w)ѴCü. KIxٿÂ*Q5jLo)lܰ#$T0/E-A1\qY#3 TQ.vBxzg~I05X uyhV!e;mV;e6|<.XBe>J[[VuJowCNPֳƩ"\V W^o$zLeQ= e'BCyP+""Z>7W^Eo$L~)ʭBQLaIga @dl(OEL<U |17'jaVkCcP/bЦGxV;׍ L<5nmr#X u~c$S4v%ћsխ?~Α6hP&f/VʉǍz#\hTQ_gC͒QQ Of?xKJkcN6THzP%&۩_Q JS)eoj~ݬՇo=(AHD/^Y.hp Xy㡞|VDM@BȌA`0լLx7ye:b>9('v0SYg "d2h`--ڪty!0GLy-w;q"*t8Z.A1!}z͎)R:3o +Y%0lj 0wf֔"%'T\^"+ӭ[^\sP3e -@a .sv ׎%$a>Yywx9 %a2O ս vAa"v<5[Q<+r?'5;/vl$+ ,3˾`"|#>7,U7K6>:dEk0*ihв!)m!7>2%~ȶ6 S鶙).:~GgN,,W|c9CtARQ,/Dx7`ȠZjq??}36RxVHϯv$y񹽠:Iq ~u\Ց1aЛ aJ6c3 wk͐\#ꊊ =,7/b4me@3, DO-VPt2  N183#bzV29ʺkLo@McPp`V^H@ߍ{]s̟ a)XV)8Tʛ=HP&/wmw0ÝNincJۭ>T}-ːdqg6aTET/xsZ5WRǑSf)^]}]'Ym֨TH;JRLS1M/IeϏ4Z͌hgm5izBEb=:C0(bхϒN*'9Nd/<#b5c{;2ޖ=2fAXu}4;r9 ]% , ^o!.$09ªnI-d/͐Ab IBkP.=`tIp jRD'Db dy^C|?tSnXQz12{_Ж}q\Fh%8Ґ?47[~c^O@/,fPxoBvH':k;ߑ6fWXKx:cvbEC0q<4(:!{hޮeiKQaogc NB{-LS^UUx̖] QЗK wo02& 62&&eD,wu{;-i ȩwa3 fw Hmz>cWi߷tiC !p]2AoQb-\9nʹo]Ӄwc/O 'o{sx_ф.6i1B3e|y!S1ކF,) p; ہi$ѡ Zt.h8W&eH4VϏ$-y!p?z]̺_ၺC eQ\bОfey_.0ʨc\G$5 ~xP#J,!)4j̧B1κoo .)̱dnK)Q*k~ DžUdS jCM~ڐFܽI;ʍo^WfAQdeq|&IImÉ9.'lrΠp&//˙5?ƎU.9xBCA4mҡVTbwjdM^2>lR.!jH>К3E1*{wJ5js\]#]_NH[iv0RSj?>  -(7ADVfچ/k4q ;O6ԠM>@x|0R! }rNpWIea+M:`MwDŽ\M,U[]C%XBMUT/v@ mPžuƐ?ʫ#*lp/96Ԧc:#VRhc1OPN6Rʣ9Cm%\˹FKuD"|8 ޽8 L)]X 4Kp&i8X.V.Ql>\\QBu/9Qz n$Reѿ^6]9>KBPVJh+\;+jhJuC3>" ZE:@oR5#,fK=iY B!>fVwIv?Ҿ]Q~?5ހE O5n$젬j6mpn4j$gIG ,yVT ̜RА0⟒$ؕPqJL\s`Z `@wԈ>̈EgU: -*\q3!=?U*QIN`ҩ: #(0Br9M%Ղ@*b*Oy- K l}ߤ{&9E 쫧eɴv rn Zp*X>dbZ7"Iq͇{i_,WQQG~[DQA3)kn87Bt/ WkTQXxiI\cB#;{cR<뫜!F%kyȘ&~g0akW{C\GPhܐyyR~JV؄\{^+tuF~RF`9%/#Ot*x>qdN$;SٴT#ZdS9Ϊ[J.n/=Xl0dU׾ܜF)7J (SB]#vz ACPmg>Ɲձ98|2j1 h}޺RJR;vsNaY+Bv[ܖf{,ظ;2y[X ^o>0Wh"L(uF@ 8YrV'#]$Wb=4b~ mfa~wf sz<~fU^jK[T}T+/cWxVk%RzNXL_Li1hFg=g?:n&.iqfL%\*O4zr#?Ym<Bv9+"Kq]6\lw2FԷ@נ[t<0!zgb%J%%m|M4~Ɯ50brL늊/$sky0X%:5x{Y\͖lS7sm+7 -D#CtY/(lG58e%M_({m{ԩ.BU%#pa$x{[gE'i kgf#F&z 6pqnY:dwP﹬rԢ'qx77ܡ{i KLy)d]*CUZcx:fMnJH'(|5+͢BЂSxsg:KF2wz e^ƤfyÀA: Lg屇HLJH~ o4s6I d4OQFRY$\;U*(ԷR|@ ~ ZT2Z Wr5WD+\y)zS Jʅa ']._]o-g'E(DB6i+6:IeF%UF?eEސTZm=x`];9{:IR#IN|ӷJn><$? E/ٲwJP A<^; awLȽJ BwX)[|+19ȺQk;j%}+l8|WKX~ǂUU(N(vNLXdolCKܬ\i5%1Jq27sxa^Bvr(d",oֺ5RjEx7;,cD"mJɹzX?j(@dkݰ}-TqHx g1/r5QPQw&@MByݖ'#2&6+>-`HkM> FxL9$_+;6aJqJ)>UH@褐Vu HKeֿ[hDq)gJ ]_oU+KLT{=P\$i0 Ը5xҦt,m O!qLOR;Z0wWNV]wR1caUy>IvZ^Z8NOUlzDG~á@|rPdN2Y]_k/D;$pN+U%YwjWkа%,}mAk~.7pؠIҞ~}!z!oA8TGᚚ&~O+-.Ō)GU>Hw\`f]tFr:4W.ܛ&:? v&s v42Ņje M!%H?Bel$g,36S .2! t-gzY*MNꔿ[(vp)6^EI=seР8:M #վ{z"/$#BS뜹q b?zZplStxu<<X7LU瀂 3d!':"CY 1;#r{,Cd]L HQɅS NMje3K(mjXȒ-ϳuu|˿p%\9 L|qy|aS@_i  2ު[V Xc$ۇF `|`*CJxmV)L~o:y&Mw */i#1 !$:N?KHAػ[9s8a.6Oeb@*@hᤗbnË=vcs2t}b]RBMp~ -DzOg:Q= ~ GYVDm<װe'&9-5* d@EhTx)WwθrIྮf:F`#_2mC]%s/T U~|3o^o27.hX,V+@N>eCcٚm3yQʝ}CMl:櫓q>VPU㥔Us}RkU0pa(05qaDu,;hŰJf!QFt۹[A1~X.݆NKG?=GWdx߄| pqeIJ=F VlRI>y_Ak)00襷 0p뭼QMo +KOf뺓;mEaA_zy4t=-cc 7΃ft 5$?8(^u3e5ȅv} FiNÀK7T.YgR0I jn\zM?f?Yj,O!6L%wN_IKF#ʽ}R<m=#7 0I/* #|.h¶f ?e\4^J8u '4 } Q$FI5@۩xln "dGꐵ1Qoi}` & (N63a;e(yƆ (i2]) ܘbN)5_vh].(ؔ|rsLyjSc !{0nG ƒree料8#ˉ@b64|L}'"/ɧ\܋QNDϼm(5~>erq ifW:HYzvE-_"F w3$; .ؑMGRZMK@Q 8|>pi4 uVVyVM%(S pP %me_I@ MU# k30;A~Ipd@HsO Co(~0dw2 }beC핞0XWY`|fqUk )h.l_c? N٬ fS:w4tMtoC QC+~턑aJD{ORQ1z).Ái?nҤuh2y+7{_qN!1; 00O1h%2DW8}Oωz9сg-xCIfLrۖBypq/KºsHxwmM9]*CV>VS +d8E]!"4SR^eE$v$4?m FP׵k,9%ߙ^$v7# f9G*M.+Qʄa7e^xmLe LR޽K WQϹj; 3T/̸>E):$G{g(e`N7M#=`Ylf DM}H\ N  ōq晲3[___;3:EWcp2^Cit |ԫ> wGJaZհs^d{L.I2TgOA.pUR!Q=vtItHGXCܸߜ{R" 1R$B!GߛjHx+q*fj]ۡQ2 ADNl2w7L^ 3Lee! ~=M9-S C&\'mB^hxr^%wK° dN ѕ~ `D>sX"|klVwhx]K4Ӫm <ڔ^ ;GWw&2+K!+_ovע0Sw\Z5;#PcocK%98o%6)!)dJǍsɇ\ue j+#I(24Wy!7|L<"ؤeQ90Mҍ]ህZg@KN'&&PoPf%4G]}륓kRv=2n >{)?/q5;s -p OFEo('lw+96cK8gLj Zre?8g"%fx %fUeK 9{dQ-%/ )WrTYe%/C888E?+6G3kշJT 95YÝ9%;Qr1jMhTc0d@4/ nܙ@C"j1I'n0>VCZ?w5=ߍ*[r)pc%0r@uxÏl4RcFMŧhm\Ͻ;ӎޥ3heMcGX"]z?&812 !d1m0PSR?-з\;d'悛h|![A.U /Y~Q%XyqQ~YAcfM|$1;)eu3j-@ _;@=ɁdGj*<F)+:W_^pGQ{ ȜGg6sU0daM^{CcNJd%e_5P}qנ{hi>Q"kA{/p dK  ̳^0s(ΊWnLof 9,/k 9 ;ixZ훬lˆv,uqGYNҪ}& NO:j!xdc[œK[uo1 WP5cwz&^ȁ}U5|T@ Hedz=Rǣ9E9+6ވ 4q׋E]}.ʻkZ wE# ?(;TZY,\Bwf g7_7ƺsJfȐiiDZeX07MalB2c:yKΥz%;B!;R4bKc{*۷b~c\{7<DFT[lNWCd.vI7؝jTUP̹MɁlhxpο(CNï#ͬS$bMJ "z%R0o^#%"w1&zMN,a 6](Gݫƶ_{36ߵxrwF@oe㭬 )Q<}ApJ SݗW3vC؇B#-0G*WCgiR^@n-7(Է]jA z_I( USUt,{Z Ho(+o hfaST'^QSv|5L@?vWm>J v  7l̮-m:8%G5VU5'& ]j 9柮%prQjfᖧI6h(AKAZ2Y ]hN{,nAeE&N|1?(Z?$ze l2(2x ]Cq|}oYlo~+DZ]Qk: H-#AgC;5-]vwա"H /o>bc\9&L~%ܤZSap,;D# &⃀d(Q5n9GyQ1e l[KI?(M?Z\Ϣz*9bTGSgj 741y ոmp~.Kqqc>{&dv!L+IMU颬x{Jsz* Q о_:  Z^D.Lؗ.D*q]8Ɉ6"WaU6/#j J!޼(ik9F*Qe PpJ$M?w0%!$OfcȄhN_u EcY4ig͈L4I 5\$M: k+ k~N5p0c!,հd\EM:'Q^_Y%ؚa `]5qCK34KwtJ4+EnvM-(a2۸qeacm,4\x_8]˻^z%L1V%~1JB6/ɓ8hzeR"v~>ƮP˿p1[΄ou&OhxOCqU_6 AVUOa nV|vYwts/nQ+Pi~wxg¾Om*0wĬE=PP)ӦcXQw/~H"gXaAw)كIŒ#E+5~):Ž|Iu+F/@? #}GNT=Hpjc/t}i }L"U${øsH+%NG[3<>WQ@W(du/Fg#Ea'%DR'/ZWXJZ٤^-؀ ;&D#]IEMPx;8k<Se>jOqv7zӟabo_aېAeugwrI9~8ޖ싢b=)&WN>ϟTb7 V9aYAy ]sP&-ldBE%}@"/E!;VVI[2LI+\%= $W Eozryc3. ,r:%r /Xg gѕ- ֤L6hhJc-hcTE% z0}p*RWON] <gC܏D_iEn/LnnNN"L)),`,ns-TOd$2WhhxNʽ Lku_}LuF%O$Pr1_K'qH殱fL]UrKp%FGTKa- T,8 }˩!9 h xK N%顟lWuMYu4V.r'DDKnXqڝU:E.pĂ[v`~!'% =4I0&Z? +\<"ڦ Vo҇TIFEX3p-A Mj3/sҢ?vxWM?, oIu7cpr)SQ4RVkLwV{I蔘bYgW [ZZWf/zk7D]HlM2A"ʡ$ehV+s Bl!)V\ϔxuNi 04]1/*,)_R1Q$\HpB0X/&e%՗7?4#`tK ;'I)N {ܳjSιEV{/Pyݙ6^MΦ`oJLH,XoZ9`5'FZ?6}Q*Ǖ2҈NVZpWmBVB "SSBrH`Ѫ<#ٿE 7?+zHN?d~~PD\lib,ߪ5Dz7꒪IeӝGw,}vܛSe-Lά_$ejkt l?cfpz_,ts/>Q8J 1@!GxB26Z׿$*8Eci9!\|s0y( v'Q&}Cs3وyX U#Q< 0rRn^鴱4= }5 xߪ $z(tQdeO'ܱ硃6:N&cc_oSH1^tսAlS}Ủ#6Y((('O&"ޫS5s]՞uL&X9/()VGM#'Z}df(ۈЦmMΜ")X$G/{.-Ʀ2.!4h& )1@6=2sqa[ [_ m`iY f[.CaSɅL4t]Z3}5 9{}k .׸R|/lO,~>G)'{##eԻ,?>2{ gWϲ[Pɲ!!v!l!Ib8KGM(?X1uqһn={7xg\ \.u= 73x8J)H ֍@űpI;:am-ބf kЪT=)j/>{oY7g yyYm}X=0`񪙓Y8 FǂDsh ۢ6ک|C}4~c;Nh_; jFNRPj[-EüU?؟_"Lĝk& 8a}_?JvdA h :vgqC`L13,ȇ>rDv䍑&ү~]1tqoy(Twق@]Ȯ𯑈 Y*OggWޢX>2dNWalja&@M/sqJGc;fw}V3~BuHv}Ԯd-pU>'0#~O^0q⨷K9r_8 inmCc >j(ZŸF' >FH=8sY1e~y %"G S/Hvd0S/rYF8Ƽi3ܰ79l$y8Pv/"ڨ(hI[}59=THeڮ& ;K6JxY|M<+t˒~t*->o/?:ZlĤ$wk˖e[K/sQ[4QOXn=[D? ڃr8-Y^_ώ1!D41.(Ǟȍ|͵ /:8ΨxVN}-ZE〇rfDΊzm+tj0fW"@k'quAd=(`H ɧjFQ|7Ȋgfr3lM0岸9WCl[QBcMJF%a٦*-.K3\+p,R߆Gfué +$ᦗl_Y+o;d lU檱rdr|Tőo,2,%AE ɒ+qn _y>XSԪG/|cOhpnsm׷rۇ&pDƇ*۱(YÐߦ*Z @8)rKLpn/}0Xdlf#B 3A膙4ϾgVGgݥY Y&W5%M[,4Р`a7Z8O`"s twRtTܿ~>`]w;Q l6ũv&$wkq@u+)@2K)d0%}@3C^V4%^$:b)Օ Js 76G ;!Lǽl (fInrsOlEitG$>MW #h]6X؉h; UDƹԹƃ|w,YZQG&Aq&I}D {3A-~x[h)*&MWXnHyX*FAALodbʕw̘$ͯmީ璔vV)u7LrMy=@2+{ !S[ nOvj Mt2yK.&^6 ֧=I$t@@c,뾻pPӉlcf_NQwAewAD ߫Axj>;g#'j< =-sl\k;bю NXH1k%a ha#ϰ ' 9={ȓZ猲1 uU-Xπr'4_ь:_u:{qBC@%'߽s˪@lUwbZ`!uflnvi5  鬲Cm)l7fdY.z?i71BX]{_f9+]% ^Ó8/xnl4ƅBEʇ&ѫzQI) Gb?.贰QWFȝFyΝ$eXa4]@Po@-CuBbOϡ-Uxaہ΀e`zmԖ b}wM[L> I|IsMZ`.Tt8N 4[mꥥ`H!Jv4 ݺΊOuetHKS8^/PA5+¥H@ nsQqGse 2@αZ\*~3 r27=|K}vkJUo|V8n=LAo\wy4N,C,zC?Xtt]&`!?Bڴaf1fdtQsS,fpbQѐ Lur=:2_wAcCe>:$~f:p僆e?oOU>8x`x8s%,NxM{SаP|s2!J {9kϑ-)5ӦP5Ǟc!)\`gHn%.͂a;rfƏF'4<@'d T;K[,ՕׯEuԅr:$^k#g`(\l-"5 S{ăHEf͑K")D6?۰[qa-Q0F%ʑV Ót)҅(UltN'1t5˳ ~:?yj-AZ)=˥PܽHԢbfo0^wp^CN1}q"=)| 4᷌ݠBOib RmQ~i3ᤷ&g1FC0͜pS6|WW<j#|Ϝ`S-m:>;4F'1$ۯœ}hoeXl='0Hjh~RsYvn-8Y0+o#: ,$U,M M\2毺 i1+o޶北!62ռ_-7e2N(~ɱbz\ŐI@NW)NW;-587z@o?&Ylq$wO7ig 3z-@wGE?.{nɈr|L2 ]-ُdªmObx"+|5E- HZnVI9&:\μ6 0` WaWt-f/ 2QGg]g^|rMA=aصn!od;m/O8z3c|R g>TkWeYCaPxgsRB$uLo 0=|*D>ftF򨎊iTۖ ^g/ dAEvTQ9 u/2{^9L5s%Mm3/8d#LtCjn krI>3_41^Sdᩍ]j)uiXR#Aj}AtxHAƝ̛EX9?A|yhהȃ0ɼPDQ#ˑ6F/*U~=CBxmǪ%Br͸w3_֒ު~_w'u2w$*8A qDVa9qUeHK5km(V8SdDyO@їU)B.t*,z-Qp?8ٍBˤ*k+)~#;)9;(CƜcg ބ"(ߓլ:J*א`!AD CePBog_2t^1mGH05^]+%XHJN"ш1~q; 5#*% o%g8A0N `ri 3Csgg6k:2Um2_Yl>+;G *B~^IJ9R Nu#E[5PYuԸiaӄ+z:bFM)[ʪCqW-l6yĕK(K+Hd.'Lљ{:K;Iz>"y; ϪJM+ )ii^ YԷBEM^M,a]L_OBW2j<yQM-y4χuF'Uj^=!ё^ StԂebqdQ6pN:gT[7!gJ&Ru>iߧQ>RjBrsIohģm# ;|.C 'pd# xKCn H*]aJ͛T0j,QbYTKAс}6ن{;~ӈE԰|[(Zd=!Ej2"En[8⩥@fStg3SP\3cvژF\g*?Oﶥt86,mSSW2IL5b_nld^6/LC1GxJ%`$P.5K&f7a;WWkor+4:(/%\*Vn5W8beN8MߊL..țaX1A2Yp,Ge ].i^%/~[JI4wŹFVGFS؈/)ӗ0Zȸ F;}Mui̥~E{yK38&D>;t΄ 7u^p; r٢Z U3}i k{\n6PCi)|][jO STԌ,)/<=Zw soʟz.wm>wtG6_hO8A{p;i$ B,c|9ӠF#4bXaVPm*2xiZiAI2]ǭ }{@7;+'Kp kиԽ0 d fev$k'ʇ!c8rD tfxPId^~iB롛=* u;x|G"r@ki&o IϖHR\+b|gӇ${<ȠMm[`V -o=:5<@ 5U[MV+Ћwp_˺9X-m~xd >-܃ Tj`e|>KN0Ue蜢`1L斈5SH?b [8XMhd %"!U?3O(μUX0WeKՃK }fߤT "5L7a0Q\IViN/"S?\^82Ӣ4b^98>ئT5p׵_}hL&^djui$#slfgiùA}qm m1w}ǂ%_\' X\}Dv?\S3N4lx)5w㋔wʉD1[b;JFy7[Uwef,'J=qݘǜ[ 1)8DpSYnG̀΋{=Q,4 S?oEeխ!#^LI'[<.siǂ]ݽ?}bc ?u;d]b $݀sv@m >*7]F}L]¦b&f ~ωcޕE@Y2F#C᪟o2f, eOCl*&-V$ x`E/l-%ÏM#~5@vj.1._x).-VL;bmm聕fSu#@Μ{+tffN_k"o#Ŝא-J;?1'ii ȼ ]3|ʧ2Vrbj[.gPv-ig[$iĦ+ CE։'q3ꪝ0=#%ۼV}Cc i9-5nK;ZF&:"e}g™T)dfcjwD(EX[wps)8yj4-#7ë& Wzv@[Vo'MIX f<5$+.ũ_QϺL-ӁOtzhgЪ!wPa6[_"ѥQ@.)Fc6]/#Y}tsUfEsܺm5})"XOb>o$pڂhқn]\`pzEIJO/ɔų՘5jJq͇)\$]Yp?W9[OwSPQriXtN&c$BWR{*Xk%t)k1FVh %wQ'h岸efҮ /Acld4I$mܸ%X UdcS\7[Rb484 v)@nS7ʌ3RƑ;o .qeNsF*?->Wo/§N38ر^,"k跷,k,h!.(SiS2#Y2hwZ%ӠJQdsJ߰/'g6uSQ*: .+,lXJ 񺓮q#G,NdҼMuz1~=RpH6K%ؒpk7טDJZb/,)Ǥ=@J}<MI6(OKlg'sf L 900c_IS!y.&{õKIV)L YZ