corosync-qnetd-2.4.4-lp150.3.1 >  A Z/=„M ʹ0GB/*s~EMZV˸] ɉ2JY"3SР8BI. UYd^G2"Pj)ôͦ; qYM079?O `KsOU|PP)_:F['ҫݜOfp$ I9_?}s:)Hvr8pNfȗ3Eտ𮈏i 2dN]4edb3c8fea2f20a36427f9fd16f13fb17164f8ba0c5feee6d7e202de82ced9e8322b2794b1d44a8dd7a21e81864b5e6d6e6d846a0Z/=„z&""@wEA>c=8Aա~Rƭ- A`n[*.ٶdG /Gyo(/`KeG|5nd>mcnk9r{c]N%rj|'%9:`{PeξAdw=80ĕM=T[4""#)yXALb2s :uu\<&3dOpi\CL//4x>X9GQI]nfj)`tìol>pF@?0d ! T +7[ahD x        -  D x  0 d>(8V9 V:&rV=>?@FG HD Ix XY\ ] ^ bc*deflu vw xH y|z,Ccorosync-qnetd2.4.4lp150.3.1The Corosync Cluster Engine Qdevice Network DaemonThis package contains the Corosync Cluster Engine Qdevice Network Daemon, script for creating NSS certificates and an init script.Zglamb09gopenSUSE Leap 15.0openSUSEBSD-3-Clausehttps://bugs.opensuse.orgSystem/Basehttp://corosync.github.io/corosync/linuxx86_64getent group coroqnetd >/dev/null || groupadd -r coroqnetd -g 701 getent passwd coroqnetd >/dev/null || useradd -r -g coroqnetd -u 701 -s /sbin/nologin -c "User for corosync-qnetd" coroqnetd test -n "$FIRST_ARG" || FIRST_ARG="$1" # disable migration if initial install under systemd [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : if [ "$FIRST_ARG" -eq 1 ]; then for service in corosync-qnetd.service ; do sysv_service="${service%.*}" touch "/var/lib/systemd/migrated/$sysv_service" || : done else for service in corosync-qnetd.service ; do # The tag file might have been left by a preceding # update (see 1059627) rm -f "/run/rpm-corosync-update-$service-new-in-upgrade" if [ ! -e "/usr/lib/systemd/system/$service" ]; then touch "/run/rpm-corosync-update-$service-new-in-upgrade" fi done for service in corosync-qnetd.service ; do sysv_service="${service%.*}" if [ -e /var/lib/systemd/migrated/$sysv_service ]; then continue fi if [ ! -x /usr/sbin/systemd-sysv-convert ]; then continue fi /usr/sbin/systemd-sysv-convert --save $sysv_service || : done fi exit 0 test -n "$FIRST_ARG" || FIRST_ARG=$1 FORCE_YES=0 set -- corosync-qnetd PNAME=$1 ; shift INSSRV_ARRAY="" while [ ${#*} -gt 0 ] ; do SCRIPTNAME=$1 shift SV_B='^### BEGIN INIT INFO' SV_E='^### END INIT INFO' SV_KW=Default-Enabled SV_VALUE=`sed -n -e "/$SV_B/,/$SV_E/{/^# [^[:space:]]*$SV_KW:[[:space:]]*\([^[:space:]]*\).*/s//\1/p;}" < /etc/init.d/$SCRIPTNAME` test "$FORCE_YES" = "1" && SV_VALUE="yes" test -n "$SV_VALUE" || SV_VALUE="no" INSSRV_ARRAY="$INSSRV_ARRAY $SCRIPTNAME $SV_VALUE" done SYSC_TEMPLATE=/usr/share/fillup-templates/sysconfig.$PNAME # 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 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 set -- $INSSRV_ARRAY while [ ${#*} -gt 0 ] ; do SCRIPTNAME=$1 SV_VALUE=$2 shift 2 test -n "$SCRIPTNAME" -a -n "$SV_VALUE" || { echo "SCRIPTNAME or SV_VALUE unknown"; exit 1;} if test "$FIRST_ARG" = "1" -a "$SV_VALUE" = "no" ; then /sbin/insserv ${YAST_IS_RUNNING:+-f} -r /etc/init.d/$SCRIPTNAME elif test "$FIRST_ARG" = "1" -o "$FORCE_YES" = "1" ; then /sbin/insserv ${YAST_IS_RUNNING:+-f} /etc/init.d/$SCRIPTNAME fi done test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : if [ "$YAST_IS_RUNNING" != "instsys" -a -x /usr/bin/systemctl ]; then /usr/bin/systemctl daemon-reload || : fi if [ "$FIRST_ARG" -eq 1 ]; then if [ -x /usr/bin/systemctl ]; then /usr/bin/systemctl preset corosync-qnetd.service || : fi elif [ "$FIRST_ARG" -gt 1 ]; then for service in corosync-qnetd.service ; do if [ ! -e "/run/rpm-corosync-update-$service-new-in-upgrade" ]; then continue fi rm -f "/run/rpm-corosync-update-$service-new-in-upgrade" if [ ! -x /usr/bin/systemctl ]; then continue fi /usr/bin/systemctl preset "$service" || : done for service in corosync-qnetd.service ; do sysv_service=${service%.*} if [ -e /var/lib/systemd/migrated/$sysv_service ]; then continue fi if [ ! -x /usr/sbin/systemd-sysv-convert ]; then continue fi /usr/sbin/systemd-sysv-convert --apply $sysv_service || : touch /var/lib/systemd/migrated/$sysv_service || : done 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 corosync-qnetd.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 corosync-qnetd.service ) || : fiif [ -f /etc/sysconfig/corosync-qnetd ];then rm /etc/sysconfig/corosync-qnetd fi test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ "$FIRST_ARG" -ge 1 ]; then # Package upgrade, not uninstall if [ -x /usr/bin/systemctl ]; then /usr/bin/systemctl daemon-reload || : ( 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 corosync-qnetd.service ) || : fi else # package uninstall for service in corosync-qnetd.service ; do sysv_service="${service%.*}" rm -f "/var/lib/systemd/migrated/$sysv_service" || : done if [ -x /usr/bin/systemctl ]; then /usr/bin/systemctl daemon-reload || : fi fiH@ Fm AA큤A큤Z`Z`ZaZ`ZaZ`ZcZ_Z_Z`Z_Z_Z_32eb77c28f0ec52a278fc087376b89332b68a24e2ca3f373d92a63dd19270760ee5df5957cae477f84ca0b6a20a23598b3d9bbf172e1fa273da61288127ce71a699a7332355b9e3dc7e0a27c1013b2def92dee7cf03571bf141dbe2d6d16a46290e092cd4a638c0350e1f62edde132bd0900f3bc1d4858ada3291df740dc698b4c8dda43240ad73a97313fb7cb71563c65b214a9173b25b788cf606fb11f6c1189b421b731e2ed07c7451680370c0f70e664d13c376ffb780e795e1eefd5d0a20f262b2c0973e711836aa7d9827431b90f655ee3ec330d6f70134275ee07a549506e887e9503ec0dca3ce037cad1e524bf7bb3210ad587a900c7fe71f017a0dd5553cb2fc814b3ddc1698877400d06e68f42db6a815cad5b5f6bbd98f78c620bservice@coroqnetdcoroqnetdrootrootrootrootrootrootrootrootrootrootrootcoroqnetdcoroqnetdrootrootrootrootrootrootrootrootrootrootrootcorosync-2.4.4-lp150.3.1.src.rpmconfig(corosync-qnetd)corosync-qnetdcorosync-qnetd(x86-64)@ @@@@@@@@@@@@@    /bin/bash/bin/sh/bin/sh/bin/sh/bin/shconfig(corosync-qnetd)libc.so.6()(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libnspr4.so()(64bit)libnss3.so()(64bit)libnss3.so(NSS_3.2)(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.2.5)(64bit)libssl3.so()(64bit)libssl3.so(NSS_3.2)(64bit)libssl3.so(NSS_3.7.4)(64bit)mozilla-nss-toolsrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)shadowsystemdsystemdsystemd2.4.4-lp150.3.13.0.4-14.6.0-14.0-15.2-14.14.1Z@Z@ZZЛZ̧@Z%Z1@ZqZV@ZN@ZKt@ZC@Z&@Z@Z@ZC@ZNYY@Y@YW@YY@Y@YYf@Ycl@Y7Y6@YY@XsX@XF@X@X@W_@W@W~UU4@U@Tl@Ti@Ti@T_SES@SSG@S L@Ra@RΏ@R@RR2@R)Q@Qp@Q@QJ@O@O.o@Nx@NtMQ0@LZLN@LH2L7@LGK@KՀ@KK@KKO@KKqKoK`*KXAKTM@KKK9@K'z@bliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.comrbrown@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.comjengelh@inai.debliu@suse.comjengelh@inai.debliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.combliu@suse.comdimstar@opensuse.orgLed Led xli@suse.comlzhong@suse.comyzou@suse.comlzhong@suse.comlzhong@suse.comlzhong@suse.comxli@suse.comxli@suse.comxli@suse.comlmb@suse.comxli@suse.comxli@suse.comxli@suse.comxli@suse.comtserong@suse.commmeister@suse.comtserong@suse.comjjzhang@suse.comtserong@suse.comjengelh@medozas.detserong@novell.comtserong@novell.comtserong@novell.comtserong@novell.comdmuhamedagic@novell.comtserong@novell.comdmuhamedagic@novell.comdmuhamedagic@novell.comdmuhamedagic@novell.comdmuhamedagic@novell.comdmuhamedagic@novell.comjjzhang@novell.comdmuhamedagic@novell.comdmuhamedagic@novell.comdmuhamedagic@novell.comdmuhamedagic@novell.comdmuhamedagic@novell.comdmuhamedagic@novell.comlmb@novell.comdmuhamedagic@novell.comdmuhamedagic@novell.com- cpg: Inform clients about left nodes during pause(bsc#1091593) Added: 0012-cpg-Inform-clients-about-left-nodes-during-pause.patch- NSS_NoDB_Init: the parameter is reserved, must be NULL(bsc#1090996) Added: 0011-NSS_NoDB_Init-the-parameter-is-reserved-must-be-NULL.patch- corosync-2.4.4 is available now(bsc#1089836) man:fix in corosync-qdevice.8 quorumtool: remove duplicated help message cfg: nodeid should be unsigned int coroparse: Use readdir instead of readdir_r wd: fix snprintf warnings Fix compile errors in qdevice on FreeBSD qdevice: mv free(str) after port validation Fix various typos Fix typo: recomended -> recommended man: support SOURCE_DATE_EPOCH configure: add --with-initconfigdir option Use static case blocks to determine distro flavor Use RuntimeDirectory instead of tmpfiles.d coroparse: Do not convert empty uid, gid to 0 sam: Fix snprintf compiler warnings quorumtool: Use full buffer size in snprintf man: Add note about qdevice parallel cmds start sync: Remove unneeded determine sync code sync: Call sync_init of all services at once corosync.conf: publicize nodelist.node.name totemudp[u]: Drop truncated packets on receive logging: Make blackbox configurable logging: Close before and open blackbox after fork init: Quote subshell result properly blackbox: Quote subshell result properly qdevice: quote certutils scripts properly sam_test_agent: Remove unused assignment qdevice: Fix NULL pointer dereference quorumtool: Don't set our_flags without v_handle qdevice: Nodelist is set into string not array qdevice: Check if user_data can be dereferenced qdevice: Add safer wrapper of strtoll qdevice: Replace strtol by strtonum qnetd: Replace strtol by strtonum main: Set errno before calling of strtol totemcrypto: Implement bad crypto header guess cpg: Use list_del instead of qb_list_del totemcrypto: Check length of the packet totemsrp: Implement sanity checks of received msgs totemsrp: Check join and leave msg length totemudp: Check lenght of message to sent qdevice msgio: Fix reading of msg longer than i32 logsys: Avoid redundant callsite section checking man: corosync-qdevice: fix formatting vs. punctuation man: corosync-qdevice: some more stylistics man: fix cpg_mcast_joined.3.in libcpg: Fix issue with partial big packet assembly totempg: Fix fragmentation segfault totempg: use iovec[i].iov_len instead of copy_len totempg: Fix corrupted messages cpg: Handle fragmented message sending interrupt corosync.aug: Add missing options systemd: Delete unnecessary soft_margin Added: corosync-2.4.4.tar.gz 0010-qdevice-net-instance.c-optarg-should-be-str.patch Deleted: 0007-sync-Call-sync_init-of-all-services-at-once.patch 0008-wd-fix-snprintf-warnings.patch 0009-add-config-for-corosync-qnetd.patch 0010-qdevice-mv-free-str-after-port-validation.patch 0011-libcpg-Fix-issue-with-partial-big-packet-assembly.patch 0012-totemudp-u-Drop-truncated-packets-on-receive.patch 0013-logging-Make-blackbox-configurable.patch 0014-logging-Close-before-and-open-blackbox-after-fork.patch 0015-coverity-fixes.patch 0018-bsc#1089346-corosync-Integer-overflow-in-totemcrypto.patch corosync-2.4.3.tar.gz Renamed: 0009-add-config-for-corosync-qnetd.patch -> 0007-add-config-for-corosync-qnetd.patch 0016-bsc#1083561-upgrade-from-1-x-y.patch -> 0008-bsc#1083561-upgrade-from-1-x-y.patch 0017-bsc#1088619-add-version.patch -> 0009-bsc#1088619-add-version.patch- (CVE-2018-1084) VUL-0: CVE-2018-1084: corosync: Integer overflow in totemcrypto(bsc#1089346) Added: 0018-bsc#1089346-corosync-Integer-overflow-in-totemcrypto.patch- UNKNOWN version in corosync pkg-config(bsc#1088619) Added: 0017-bsc#1088619-add-version.patch- [Build 489.1] Corosync is not working after upgrade from sle11sp4-ha to sle15-ha(bsc#1083561) Added: 0016-bsc#1083561-upgrade-from-1-x-y.patch- some coverity fixes for corosync on upstream(bsc#1083895) Added: 0015-coverity-fixes.patch- corosync exposes itself for a self-crash under rare circumstance(bsc#1078412) Added: 0013-logging-Make-blackbox-configurable.patch 0014-logging-Close-before-and-open-blackbox-after-fork.patch Modified: remove unncessary git commit messages 0001-coroapi-Use-size_t-for-private_data_size.patch 0002-fix-ifdown-udp.patch 0005-do-not-convert-empty-uid-gid-to-0.patch 0008-wd-fix-snprintf-warnings.patch 0010-qdevice-mv-free-str-after-port-validation.patch 0011-libcpg-Fix-issue-with-partial-big-packet-assembly.patch 0012-totemudp-u-Drop-truncated-packets-on-receive.patch- totemudp[u]: Drop truncated packets on receive(bsc#1075300) Added: 0012-totemudp-u-Drop-truncated-packets-on-receive.patch- issue with partial packets assembly when multiple nodes are sending big packets(bsc#1074929) Added: 0011-libcpg-Fix-issue-with-partial-big-packet-assembly.patch- qdevice failed to run(bsc#1074276) Added: 0010-qdevice-mv-free-str-after-port-validation.patch- add support for corosync-qdevice in yast2-cluster and bootstrap(bsc#1070961) Added: 0009-add-config-for-corosync-qnetd.patch- wd: gcc shows snprintf warnings(bsc#1071187) Added: 0008-wd-fix-snprintf-warnings.patch- Replace references to /var/adm/fillup-templates with new %_fillupdir macro (boo#1069468)- corosync race condition when node leaves immediately after joining(bsc#1067958) Added: 0007-sync-Call-sync_init-of-all-services-at-once.patch- gcc: snprintf gives warning: ‘%s’ directive output may be truncated writing 8 bytes into a region of size between 1 and 255(bsc#1066090) Added: 0006-Fix-compile-warnings-with-GCC-7.2.1.patch- coroparse: uidgid with empty uid or gid results into add uid 0(bsc#1066585) Added: 0005-do-not-convert-empty-uid-gid-to-0.patch Modified: 0005-do-not-convert-empty-uid-gid-to-0.patch, check whether the uid, gid is empty before calling strtol- Upgrade corosync-2.4.2 to corosync-2.4.3(fate#321385) doc: document watchdog_device parameter Main: Call mlockall after fork Totempg: remove duplicate memcpy in mcast_msg func Qdevice: fix spell errors in qdevice logconfig: Do not overwrite logger_subsys priority totemconfig: Prefer nodelist over bindnetaddr cpghum: Fix printf of size_t variable Qnetd lms: Use UTILS_PRI_RING_ID printf format str wd: Report error when close of wd fails votequorum: Don't update expected_votes display if value is too high votequorum: simplify reconfigure message handling quorumtool: Add option to show all node addresses main: Don't ask libqb to handle segv, it doesn't work man: Document -a option to corosync-quorumtool main: use syslog & printf directly for early log messages votequorum: make atb consistent on nodelist reload Fix typo: Destorying -> Destroying init: Add doc URIs to the systemd service files wd: fix typo corosync.conf.5: Fix watchdog documentation corosync.conf.5: add warning about slow watchdogs wd: remove extra capitalization typo corosync.conf.5: watchdog support is conditional notifyd: Add the community name to an SNMP trap Logsys: Change logsys syslog_priority priority totemrrp: Fix situation when all rings are faulty main: Display reason why cluster cannot be formed totem: Propagate totem initialization failure totemcrypto: Refactor symmetric key importing totemcrypto: Use different method to import key main: Add option to set priority main: Add support for libcgroup totemcrypto: Fix compiler warning cmap: Remove noop highest config version check qdevice: Add support for heuristics Spec: drop unneeded dependency Spec: make internal dependencies arch-qualified cmap: don't shutdown highest config_version node totemudp: Remove memb_join discarding Spec: fix arch-qualified dependencies Include fcntl.h for F_* and O_* defines totemudp: Retry if bind fails Remove deprecated doxygen flags man: Fix typos in man page man: Modify man-page according to command usage Remove redundant header file inclusion upstart: Add softdog module loading example Added: corosync-2.4.3.tar.gz Removed: corosync-2.4.2.tar.gz bsc#1047860-add-version.patch 0001-Logsys-Change-logsys-syslog_priority-priority.patch 0001-logconfig.c-make-logging.syslog_priority-and-logging.patch 0001-totemconfig.c-Fixed-Evicted-from-CPG-membership.patch 0002-Main-call-mlock-after-fork.patch 0003-totemrrp-Fix-situation-when-all-rings-are-faulty.patch 0004-main-Display-reason-why-cluster-cannot-be-formed.patch 0005-votequorum-Report-errors-from-votequorum_exec_send_r.patch 0007-Make-corosync-work-when-FIPS-mode-is-enabled.patch 0008-main.c-add-option-to-set-priority.patch 0009-totem-Propagate-totem-initialization-failure.patch Modified: bsc#1047860-add-version.patch: change version to 2.4.3 corosync.changes: add changelogs corosync.spec: remove unnecessary patches Renamed: 0006-coroapi-Use-size_t-for-private_data_size.patch -> 0001-coroapi-Use-size_t-for-private_data_size.patch 0010-fix-ifdown-udp.patch -> 0002-fix-ifdown-udp.patch 0011-fix-tmpfiles-create.patch -> 0003-fix-tmpfiles-create.patch 0012-mark-corosync-as-a-static-service.patch -> 0004-mark-corosync-as-a-static-service.patch- wrong "service_del_postun corosync.service"(bsc#1060767) Modified: corosync.spec, remove service_del_postun in postun of corosync- Restore conformance to shared library packaging guideline. - Remove redundant cleaning in %install and %clean.- corosync.service should be marked as a static service(bsc#1055585) Added: 0012-mark-corosync-as-a-static-service.patch- Fix RPM groups.- L3: corosync: assert(sender_node != NULL) fails after tearing down a network interface(bsc#1032634) Added: 0010-fix-ifdown-udp.patch - Fix rpmlint warnings Added: 0011-fix-tmpfiles-create.patch- some errors in spec file(bsc#1047862) Modified:corosync.spec 1) as in openSUSE:factory, there are %define, but bcond_with coudld be toggled by osc command , change %define to %bcond_with and %bcond_without 2) change service_del_postun to service_del_preun, since service_del_postun is not a right macro 3) remove macro tpmfiles_create define from corosync.spec.- make corosync.spec uniform (bsc#1051385) Modified: corosync.spec 1. there are some lines are commented in corosync.spec, will define new macro to make these lines uncommented 2. in former, xmlconf, rdma and snmp were disabled, these features are wrongly enabled, will disable them- some upstream fixes for corosync(bsc#1048259) Added: bsc#1047860-add-version.patch 0007-Make-corosync-work-when-FIPS-mode-is-enabled.patch 0008-main.c-add-option-to-set-priority.patch 0009-totem-Propagate-totem-initialization-failure.patch Removed: bnc#867767-add-version.patch 0007-improve-corosync-keygen.patch(since this patch is not for corosync v2.x) Modified: corosync.spec, add judgement whether /etc/sysconfig/corosycn* exist before remove these files- some errors in spec file(bsc#1047862) Modified: corosync.spec - improvement for corosync-keygen(bsc#1047861) Added: 0007-improve-corosync-keygen.patch - 1047860corosync report wrong version number(bsc#1047860) Modified: bnc#867767-add-version.patch- some Fixes from upstream(bsc#1043045) Added: 0004-main-Display-reason-why-cluster-cannot-be-formed.patch 0005-votequorum-Report-errors-from-votequorum_exec_send_r.patch 0006-coroapi-Use-size_t-for-private_data_size.patch[patch-lost-in-sle] Missing issues in openSUSE:Factory/corosync(bsc#1041587) add change log for upgrading corosync to v2.3.6 and make this change log contain all records in SLE12 SP3 make the format consistent- totemrrp: Fix situation when all rings are faulty(bsc#1039215) Added: 0003-totemrrp-Fix-situation-when-all-rings-are-faulty.patch- calling mlockall before corosync_tty_detach is noop when corosync is executed as a daemon(bsc#1038147) Added: 0002-Main-call-mlock-after-fork.patch- [upgrade] Changing the pre-upgrade role for node failed(bsc#1030437) Added: 0001-totemconfig.c-Fixed-Evicted-from-CPG-membership.patch Removed: 0001-totemip.c-Fixed-Evicted-from-CPG-membership.patch- L3-Question: corosync logging priority takes no effect(bsc#1023959) Added: 0001-Logsys-Change-logsys-syslog_priority-priority.patch 0001-logconfig.c-make-logging.syslog_priority-and-logging.patch- Corosync 2.4.1 still produces libvotequorum.so.7.0.0, just like Corosync 2.3.6.(bsc#1013842) Added: disable-build-html-docs.patch upgrade to corosync-2.4.2: Man: Fix corosync-qdevice-net-certutil link man: mention qdevice incompatibilites in votequorum.5 Qnetd LMS: Fix two partition use case cfg: Prevents use of uninitialized buffer- upgrade to corosync-2.4.1(bsc#1004967) Added: corosync-start-stop-level.patch Deleted: Config-Flag-config-uidgid-entries.patch cfg-Prevents-use-of-uninitialized-buffer.patch cts-Make-it-run-with-pacemaker-1.13.patch get_cluster_mcast_addr-error-is-not-fatal.patch totemsrp-Addition-of-the-log.patch modified: bnc#867767-add-version.patch, change version to 2.4.1 corosync-2.4.1: Low: totemsrp: Addition of the log. cts: Make it run with pacemaker-1.13+ Config: Flag config uidgid entries Spec: Qdevice require same version of corosync corosync-2.4.0: qdevice and qnet config: get_cluster_mcast_addr error is not fatal some typo fixesupgrade corosync-v2.3.5 to corosync-v2.3.6, and backport patches from v2.4.2(FATE#322113, bsc#1020550) Added: Config-Flag-config-uidgid-entries.patch cfg-Prevents-use-of-uninitialized-buffer.patch cts-Make-it-run-with-pacemaker-1.13.patch get_cluster_mcast_addr-error-is-not-fatal.patch totemsrp-Addition-of-the-log.patch Removed: corosync-cts-api-error.patch v2.3.6 - logconfig: Fix logging reload disabling logfiles - wd: Warn if values are out of range - parser: WD Read type correctly from corosync.conf - Add some more RO keys - Reapply config defaults corosync.conf reload - schedwrk: Cleanup and make it work on PPC BE - cmapctl: Handle corosync errors in print_key func - Adds doxygen stubs to include directory - Add clang-format configuration file - wd: make watchdog device configurable - logging: Use our own version of basename - logsys: fix TOTEM logging when corosync built out of tree - parser: Make config file parser more hierarchy - totemconfig: Explicitly pass IP version - cpg: Handle ipc error in cpg_zcb_alloc/free - cpg: Memory not unmapped in cpg_zcb_free - totempg: Fix memory leak - Fix spelling errors - Add section in manual title for cpg_zcb_free 3 - Add section in manual title for cpg_zcb_alloc 3 - Update corosync.spec source link - Update gitignore files - Remove all links to old ML - totemsrp: Fix clang warning (tautological compare) - configure.ac: Make location of .pc overrideable - Remove a few unused variables and functions - configure.ac: We don't need no C++ compiler - configure.ac: Remove deprecated AC_PROG_LIBTOOL - configure.ac: make foreign apply to all Makefiles - Remove unused, obsolete check - Fix detection of qb_log_thread_priority_set - cpghum: Fix type of recv_crc - Check for fdatasync - Fix detection of warning flags for clang - quorum: Display node id as unsigned int. - cts: InitClusterManager is now BootCluster - totemudp: Move udp bind() so that multicast works with IPv6 - cfgtool: Display nodeid as unsigned int - votequorum: Don't send multiple callbacks when nodes join - man: Add synopsis for cpg_zcb_alloc and free - man html index: Update index - votequorum: Make sure cs_error_t is defined - Doxygen fix for cmap_iter_next() - configure: Correct help entry for logdir - totmesrp: Fix typo in log message - configure: typo in include - man page: Correct option letter for DBus - wd: fix setting of watchdog timeouts - CFG: Prevent CFG orignating messages during SYNC- Default token timeout was 5000 ms in SLE 11 SP4, but is 1000 ms in SLE 12(bsc#1001164) Added: bsc#1001164-corosync.conf-example.patch- Fix: [s390]Upgrade from SP1-GM + HA to SP2-RC2 +: Failed to start Corosync Cluster engine(bsc#996230) - modify corosync.spec to remove "chkconfig --add" - remove corosync-devel and require lines from baselibs.conf- corosync process still exists when stop pacemaker service(bnc#988683)- remove git files from tarball(bnc#941910) - modify corosync.spec to delete logrotate.dupdate from v2.3.3 to v2.3.5 (bnc#939328) v2.3.5 - Log: Add logrotate configuration file - totemsrp: Improve logging of left/down nodes - totemconfig: Check for duplicate nodeids - Really add cpghum - cpg: Add support for messages larger than 1Mb - Handle adding and removing UDPU members atomically - add patches: * corosync-cts-api-error.patch * bnc#867767-add-version.patch- mv the place of corosync.conf.example*(fate#318190)- Replace systemd BuildRequires with pkgconfig(systemd): we do not require the full installation / dep chain of systemd.- fix bashisms in mem_leak_test.sh script - add patches: * corosync-2.3.4-fix-bashisms.patch- fix bashism in preun script- Update to corosync 2.3.4 - Drop the obsoleted patches - corosync-cts-api-error.patch - bnc#867767-add-version.patch - bnc#881142-fix-shm-leak.patch - quorumtool: Sort output by nodeid - YKD: Fix loading of YKD quorum module - corosync-quorumtool: add sort options - cleanup after test-driver - be consistent in using CPPFLAGS vs CFLAGS - totemsrp: Fix typo with cont gather - cpg: Refactor mh_req_exec_cpg_procleave - cpg: Make sure nodid is always logged as hex num - cpg: Make sure left nodes are really removed - mon: Make mon compilable with libstatgrab ver 0.9 - mon: Fix comparsion typo - mon: Pass correct pointer to inst - mon: Make monitoring work - config: Handle totem_set_volatile_defaults errors - config: Allow dynamic change of token_coefficient - Log: Make reload of logging work - Really clear totemconfig nodes on reload - Add token_coefficient option - init: Make init script configurable - totemiba: Fix incorrect failed log message - logsys: Log error if blackbox cannot be created - logsys: Log warning if flightrecorder init fails - Introduce get_run_dir function - Move ringid store and load from totem library - coroparse: More strict numbers parsing - Doc: Enhance INSTALL file a bit - Make config.reload_in_progress key read only - Fix compiler warning introduced by previous patch - totemconfig: Free ifaddrs list - totemconfig: Make sure join timeout is less than consensus - totemconfig: Key change process dependencies - totemconfig: Log errors on key change and reload - totemconfig: totem_config_get_ip_version - totemconfig: refactor nodelist_to_interface func - corosync-keygen: Replace printf/exit call with err - votequorum: Add cmap key to reset wait_for_all - votequorum: Return current ring id in callback - votequorum: Add ring id to poll call - votequorum: Do not process events during reload - votequorum: Block sync until qdevice poll - votequorum: Make qdev timeout in sync configurable - votequorum: Properly initialize atb and atb_string - ipc: Process votequorum messages during sync - testvotequorum2: Opt for polling with old ringid - TODO: Remove TODO file - Makefile: Do not install TODO file - totem: Inform RRP about membership changes - totemnet: Add totemnet_member_set_active - totemrrp: Implement *_membership_changed - totemudpu: Implement member_set_active - totemudpu: Send msgs to all members occasionally - Cancel token holding while in retransmition - upstart: Make job conf file configurable - systemd: Config example for corosync wd service - Install doc: Correct a typo - init: change return value when starting corosync - Free object allocated at quorum_register_callback - corosync-cmapctl: Allow -p option to delete keys - Implement config file testing mode - Slightly rework corosync-keygen. - totemiba: Add multicast recovery - Indent: Remove space in negation of expression - Indent: Remove newline before else branch start - fix memory leak produced by 'corosync -v' - Handle SIGSEGV and SIGABRT signals- comment out line: to_logfile:no (bnc#882449) work on patch bnc#882449-corosync-conf-example.patch- Fixed shared memory leak. + bnc#881142-fix-shm-leak.patch- Update corosync.conf.example and corosync.conf.example.udpu(bnc#882449) - remove corosync-conf-example.patch + add bnc#882449-corosync-conf-example.patch- Fix `systemctl stop pacemaker` leaves corosync running + bnc#872651-stop-cluster.patch - Ensure that libopenais3 is removed on update of corosync(bnc#872122)- Modify spec file:add symlink rccorosync to /usr/sbin/service (bnc#866057) - Fix corosync -v show UNKNOW (bnc#867767) + bnc#867767-add-version.patch- Update to corosync 2.3.3 - Properly check result of symlink - Fix cppchecks warning - Close devnull file handler - votequorum: Add missing man pages - totem: Drop invalid join msg in operational state - systemd unit: Make sure network is really up - votequorum: Improve/add documentation for quorum device API - votequorum: Add persistent expected_votes tracking. - Upstream version cs: 45dd9861ff78362068d214cf520006a1b26376cd- Add patch to fix cts api wrong issue + corosync-cts-api-error.patch - Add patch to change default settings of conf.example + corosync-conf-example.patch- Update to corosync 2.3.2 - cfgtool: return error on reload failure - man pages: Note that votequorum's allow_downscale is unsupported - logsys: Make logging of totem work again - totemsrp: Show English message when memb_state_gather_enter is called - totemiba: Check if configured MTU is allowed by HW - totemiba: Fix parameters position for poll_add - totemiba: Del channel fd from poll before destroy - totemiba: Properly allocate RDMA buffers - Upstream version cs: 7014f10123a634cf026491edc9a09d6044106116- Obsolete openais so that updates work automatically and uninstall the openais package.- Upstream version cs: c6688c6e11a35d13293f9b610faca5c7beb7e5cb - Reload: document config.reload_in_progress in man page - Reload: Add atomic reload to log config - Reload: Add atomic reload to totemconfig - Reload: Add reload code to cfg - Reload: Make coroparse use a designated icmap hash table - icmap: Add func to test equality of two key values - [PATCH] Replace freopen with open/dup2 when daemonizing - Add log message to exit signal handler - icmap: Add map copy function - icmap: Add function to return item data pointer - icmap: Fix value len checking for strings - icmap: Add function to return global icmap - icmap: Allow multiple icmap instances - Fix scheduler pause-detection timeout- Update corosync-2.3.1.tar.gz for cts file missing- Fix corosync start failed issue + corosync-init-lockfile-path-error.patch- Update to corosync 2.3.1 stable release - Remove patches for all merged in the upstream or obsoleted - corosync-confexample-timestamp.patch - corosync-cpg-procdown.patch - corosync-revert-cs2429.patch - corosync.conf.example.patch - corosync_reduce_RR_priority.patch - fix-nodeid-conflicting.patch- Update to corosync 1.4.5 stable release (bnc#799031) - coroipc: Handle pfd.revents as bit-field - Check socket_recv error code in ipc_dispatch_get - On places with POLLERR check also POLLNVAL - coroipc: Don't spin when waiting on semaphore - log: Handle race in printf_to_logs and format_set - objdb: Don't read uninitialized memory in inc/dec - Add waiting_trans_ack also to fragmentation layer - Handle segfault in backlog_get - Fix problem with sync operations under very rare circumstances - manpages: Add confdb_key_get man page - manpages: Add links for referenced confdb calls - manpages: Fix typo in evs* manpages - If failed_to_recv is set, consensus can be empty - Ignore sync barrier msgs if sync doesn't started - Make service_build contain correct number of msgs - Handle sync and service unload correctly - Don't call sync_* funcs for unloaded services - Return back "Totem is unable to form..." message - Move "Totem is unable to form..." message to main - Use unix socket for local multicast loop - cpg: Enhance downlist selection algorithm - cpg: Process join list after downlists - cpg: Never choose downlist with localnode - Fix cpg_membership_get() - Don't access invalid mem in totemconfig - Move some totem and cpg messages to trace level - flatiron: Free outq items list on conn exit - Fix nodeid conflicting issue (bnc#806634) + Added fix-nodeid-conflicting.patch - change the default priority to RR(1) same as pacemaker(bnc#804707) + Added corosync_reduce_RR_priority.patch- Added url as source. Please see http://en.opensuse.org/SourceUrls- Update to corosync 1.4.3 stable release. - Add calls to missing object_find_destroy() to fix mem leaks - Free mem allocated by getaddrinfo - corosync.conf.example: change bindnetaddr, mcastaddr, add comments - Store error str if can't open logfile - Wait for corosync-notifyd exit in init script - iba: Use configured node id - Unlink shm buffers if init fails - Fix memory leaks when nss fails - Madvise NOSYNC flag only if available - Include net/if_var.h header only when needed - Include stdint.h because funcs uses int16_t - Use install instead of cp - Don't unlock mutex in different threads - Revert "Use install instead of cp" - Add support for per OS CP flags - Remove cloned lines in main of main.c - Fixed bug when corosync receive JoinMSG in OPERATIONAL state - Correct nodeid of token when we retransmit it - Correct nodeid in memb_state_commit_token_send function- Send CPG_REASON_PROCDOWN when really needed (bnc#740343)- Changes since corosync 1.4.1 stable release: * Resolve a deadlock between the timer and serialize locks. * totemconfig: change minimum RRP threshold * Ignore memb_join messages during flush operations * rrp: Higher threshold in passive mode for mcast (bnc#712037) * rrp: Handle endless loop if all ifaces are faulty (bnc#712037) * A CPG client can sometimes lockup if the local node is in the downlist * Handle errors from totem_mcast * coroipcc: use malloc for path in service_connect * Version cs: 23112099e1c2b620e6976ca099d2b9afc80721aa - corosync 1.4.1 stable release: * main: let poll really stop before totempg_finalize * totemsrp: fix buffer overflows for large clusters (> 100 nodes) * rrp: Handle rollower in passive rrp properly * rrp: handle rollover in active rrp properly * totemconfig: Change default FAIL_TO_RECV_CONST * Fix problem where corosync will segfault if there are gaps in recovery queue * cpgtool/cfgtool: print list of IP with space between items * RRP: redundant ring automatic recovery (fate#310284) * fix typos in cpg_mcast_joined.3 and cpg_zcb_mcast_joined.3 * Remove spinlocks * confdb: Resolve dispatch deadlock * RRP: Fix ring initialization issue for UDPU mode * crypto: rng_make_prng prevent buf overflow * cpg: do_proc_join change list_slice to list_add * totemudp: memset of proper size * coroipcs: init buf in coroipcs_handler_dispatch * iazc: Reduce number of mem alloc and memcpy * coroipcc: Fix unhandled BSD EOF in coroipcc_dispatch_get() * cpg: fix sync master selection when one node paused * totemsrp: Enhance mcast failure detection * coroipcs: Deny connect to service without initfn * Add ipc_refcnt to message_handler_req_{exec, lib}_cfg_ringreenable() - corosync 1.3.1 release: * corosync crashing when a network becomes disrupted and then restored (bnc#685241) * Align IPC on 8 byte boundaries for performance and avoid bus errors. * Provide better checking of the message type. * totemsrp: free messages originated in recovery rather then rely on messages_free * Resolve abort during simulatenous stopping of at least 4 nodes. * Don't assert when ring id file is less then 8 bytes (possibly after local fs problems). * Handle delayed multicast packets that occur with switches. * CPG: make sure coroipcc_service_disconnect() is always called. * Fix abort when token is lost in RECOVERY state (bnc#677779)- Remove redundant tags/sections from specfile - Add baselibs configuration- Update to corosync 1.3.0 - Set the max buffer size for sockets to reduce message dropping - diags: add a mechanism to trigger the writing the flight data - Add the UDPU transport (UDP transport for corosync) - Remove delay in library on corosync shutdown - Check for a properly configured multicast address. - cpg: fix sync'ing the downlist. - POLL: gracefully handle running out of file descriptors. - Return CS_ERR_NO_RESOURCES when the server is low on available file descriptors. - Remove checking of subparameters in service.d files. - Only allow corosync to run one copy via a lock file. - When used with the openais ckpt service, don't disconnect an ipc connection during configuration change that takes longer then 2 seconds. - Remove the token cancel retransmit timeout on receipt of a multicast message.- Update to corosync 1.2.7 - Remove consensus check for two node cluster cases which can have smaller consensus values. Document in man page the behavior of consensus.- Fix problem where flow control could lock up ipc under very heavy load in very rare circumstances (upstream cs 3003) - SYNC: always call sync_aborted() in sync_confchg_fn() (upstream cs 3000) - SYNCV2: reset the my_memb_determine_ring_id in sync_v2_memb_list_abort() (upstream cs 2999) - Fix logging_daemon config parser code (rhbz#615203) (upstream cs 2998) - Remove reset of token timeout on retransmitted token reception. Fixes membership problems with certain timing parametrs (upstream cs 2989) - Speed up IPC connection process (upstream cs 2987) - Fix fail list fault that occurs in very rare circumstances (upstream cs 2985)- Update to corosync 1.2.6 - 80% packet loss networks were resulting in problems with totem. - Fixed ~40 scanning errors found with coverity. - cpg_membership_get now functional. - errors logged prior to the start of the daemon were not flushed. - Fixes defects in logsys which are crashing pacemaker installations. - Adds man pages for all binaries - Fixes several defects found in high packet loss field environments. - Send proper notification code of CPG_REASON_LEAVE in cpg service. - Fix segfault when pacemaker forks new processes - Unlock global serializer lock during shutdown to prevent spinning on single cpu systems or high cpu use on mulitple cpu systems - Stop totem statistics updater timer during shutdown to prevent a segfault during shutdown. - Fix problem where glibc's fork() implementation may cause segfaults in Pacemaker's use of the fork() system call. - Fix problem where a full /dev/shm would result in client segfault - instead an error is returned in this situation. - Fix problem where flight recorder leaks files in shared memory filesystem. Also clean up the error handling of the shared memory allocation code of the flight recorder. - Fix problem where a failure in glibc's pathconf API would result in segfault. - Add corosync and corosync-blackbox man pages.- prevent corosync-cfgtool from hanging (bnc#616183)- Set sensible defaults for Pacemaker in corosync.conf.example (bnc#610663) - Clarify bindnetaddr option in corosync.conf.5 manpage (upstream cs 2856)- Handle POLLNVAL in coroipcc - Save the ring id and restore it properly when the recovery operation fails - increase maximum entries in the retransmit queue when recovery takes place. - fix one-off error in memove - discard and report unknown messages- fix valgrind reported problems (upstream cs 2787) - Memset for res_setup variable in coroipcs:req_setup_send - Two memset in logsys for buffers - Problem in corosync_totem_stats_updater where avg_token_holdtime has size of avg_backlog_calc - corosync_totem_stats_init where avg_backlog_calc is 32 bits (not 64) - objdb problem if new_valie_len != object->value_len. In such case newly allocated memory is not initialized and in some situations, value_len is not updated. - select a new sync member if the node with the lowest nodeid has left (upstream cs 2785) - fix a crash in YKD- clear the ring id on sync abort (bnc#590666) - fix unloading of evs - change sign of all exit codes (normal error exit is now 1) - objdb: fix key change notifications (don't notify if the key wasn't changed; notify on key inc/dec) - fix possible lockup when a dispatch handler function is NULL - upstream version cs 2756- fix lockup that occurs sometimes before exiting - fix problem where retransmissions don't occur resulting in failure to receive condition - add a reload callback to libconfdb - support for lib_cpg_finalize - cpg join with undelivered leave message (fixes problems with nodes joining cpg twice in quick succession) - fix error handling to avoid segfaults/leaks on error in coroipcc_service_connect - upstream release 1.2.1- retain nodeid compatibility with openais (revert patch from cs 2429)- minor enhancement to corosync.conf man page (bnc#580180)- upstream version cs 2667 - allow empty (default) consensus timeout - fix freeze of IPC library connection on sem_wait - fix malloc deadlock in signal handler (rhbz#547511) - fix coroipcs message corruption that occurs when a message fills the remainder of the dispatch buffer with a full message - totemsrp: fix transitional configuration changes with long token timeouts - remove a double list_del() when a tracking CFG client shuts down without calling cfg_track_stop (it caused corosync to crash) - use nodeid instead of localhost ip for the case when binding to a loalhost interface - fix corosync shutdown process - add augeas lense for corosync.conf - patch to set unset value in token hold cancel structure as to not crash wireshark - convert unsafe function to thread-safe reentrant equivalents- SP1 beta5 (no code changes)- turn timestamp off in corosync.conf.example (there was a problem reported in connection with not thread-safe glibc functions used in concert with this option, which hasn't yet been resolved)- add cs2646 patch from upstream, fixes cs2642 - add patch to accept on/off for the various log directives (bnc#573451)- %pre script moved to openais- remove init script - add %pre script to copy openais.conf and authkey to /etc/corosync - add patch 2642 (parser fix) - fix some obsoletes/requires- Update to corosync 1.2.0.- init script changes: + replace killall with checkproc, otherwise corosync can't stop + test if sbd/lrmadmin exist, because corosync has no dependency on cluster-glue- update to the corosync upstream release 1.2.0 - add suse init script - don't create rccorosync, because users should be using rcopenais to start a cluster - rename corosynclib to libcorosync4 (similar for the devel package) (http://en.opensuse.org/Shared_Library_Packaging_Policy) - Autotools generated version from the released upstream version 1.2.0 - some specfile changes (initddir -> initrddir, header)/bin/sh/bin/sh/bin/sh/bin/shlamb09 1525645671 2.4.4-lp150.3.12.4.4-lp150.3.12.4.4-lp150.3.1qnetdcorosync-qnetdcorosync-qnetdcorosync-qnetd-certutilcorosync-qnetd-toolcorosync-qnetd.servicerccorosync-qnetdcorosynccorosync-qnetdsysconfig.corosync-qnetdcorosync-qnetd-certutil.8.gzcorosync-qnetd-tool.8.gzcorosync-qnetd.8.gz/etc/corosync//run//usr/bin//usr/lib/systemd/system//usr/sbin//usr/share//usr/share/corosync//usr/share/fillup-templates//usr/share/man/man8/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.opensuse.org/openSUSE:Leap:15.0/standard/f6a5d375b2037861be363c10cb89956d-corosynccpioxz5x86_64-suse-linuxdirectoryELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=cc2bccece6b1d91fb5476ebbe1d493852c7f6e27, strippedBourne-Again shell script, ASCII text executableELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=d6a91b2b057f2324c320f1ff8b756c30f0d7e3ba, strippedASCII texttroff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix)  R RRRRR RR RR R RRRRR RR RRR~FO(q^utf-87f90a59d79a20a315b5167250127a3ec20ac58f04f1c0646ffef03a9897fcea1?7zXZ !t/ok҂] crt:bHW ~ɀGTi߀vzN_O8r6E/-?19+J1oV|kbgxCbCA]A%i ͗ я1k htXեؐ 8`; Z>|1.㥷Z6U(MKiw/EH1H7?e`d4DN+6 Wuy(wl,f00$i2Z eW`VC6Nogs K$GȗG P Ig$clS.@ݶ ɪ3L%Q3 /eĸy~dًrcvl7 Vsâ, NOOl {m@ֵcVa^ ~g`VuTNUfVKL "UFU*UھG^b, pqP=x;Ec֪ڑHe)[se;-y{tʷ Yi6S'_4_fiĮ;E4O{DΕ(7Yꂵɥ" #Y?YRM~KS6`ž9RaVцNǔJhzHK\0~2=~(s]b`=:fѓ]R޵\?'nVrVLOQ2p"%V'Scɼ"gݿKbf^+lཀྵڔN >h!q:/u AAlr z.hpEYj' YXzcaFkج*bڧWhJ&Ǧv8>&xD+ffG}xǖi$ +l9.HHziUQAFY%i1y?~s;V[ +yI%(W.ggOn9O(DMoT^'S_CѷنL<6YP}㋹Ha-alWlY\ۯYʺ8QN&$?k܈ΐ{'}U%jC@:QIoj6+"Kjy'lg+ F\xs=m#Qfe55tWq{a|ZPQi-_#QqiJ&Ѳ1?ޣzt^6\lx fn6 9En wUR`=HDԪO Yݖ퍍]7Os| LMXVM#'+ fq6xFp E Sʹ8oO^Xtŵ $TmYrgxù #a&ؚd/đ$:u+ _)b"AG֠.,n%Zg]ēyޡrU0Цc۲Yd74D^DѽYN/1B74Ryݨ67Q@$O/$GeGn2+N#vWyx1 5p}*Iɂ'N.=p{dPd _Ih](0i_rԹ4%TVܥ%`:LH5" 8LFf1{c3I 4Z6^d>׿0_F>VΠ!]X|!GhuF-@4AB$MjY&#-[,&DۮG%#)s_DXt`NBX`":1H`hB. "sɅ%0i05XR*P?X!CI2k蝏-,w ,Y}F¨DbRg8g0([i#i/m]2Id>&g!DA?b)JOtݷxOφ|{݇y{3)D(DGmmxN!~vG?:i+4cCA|% GC \;X)H-r?eh"O9Ę弳sxUL{2TrX%qi[ϼ2Aɚ3 )׏/CrlA<L*DI%{E=L!(6ϑOBMP-Y҂9S?qipG ΏOeɗ=w]rV6>س*9S¡yP0ב|ce1c[U^@vdkV[ƪlPؽ,G"2wm"^% :C=`B[ xDJڕ`JgeˉaRR  mL! !;t,6wsHiD7d^E[}]<Gngo意{꩓ "dYZ"3 caDK[_$Xd?(Y>刹s%J BMq`I#$c+ ΢)V7SA~**.SӡSќVAX?ZҤO`]FWi6xIG]>P j`tIS8 g)ěniCyN[!8}U}zR(5Fܬ(喊N^8^qji$qo ~p7Dq#OxNm [go`ֳ Ywcr?4|wu)*{VS-"eS Q>[ߩ[Coq&4Xf>259c"=+sOBx<.Z\f{ᘱ!{O}h:   8$+oO3飤RA_m5\uiʶ@Put~-訍MW9̕DτS܆ 8{YGG%y_azIBfҜ Yo +=4uyb_UU'$J4>@ ֯bClW=T|)E3Q}n0Nt .`΍J>>%Edwgc-3N]do\ÒPK[ElV/bޟDȲb(T =-y4ȴ I֞mS/ x˵‚U#zMܞVyeɗ)J/H@ P7bw vXRLd~Zpom >,netBxppaYbUٻ_Z6Ehw"k;M#\&Z/A~"T^_Ԗ$C_Uu%\A61i$'WILefEg%??|8&N d?P%DLD/Fr[ך=8^'BdI7Clɴ%m1Xt2/Qj0"{@`)Pa؞*.tWFF0Fkx\wϓj˲nOIB 7V`LdFc}u0#T̞#J}y2Pwd"N UcְJI\h(z._/"z0!/ynH>>?"ngr^sѮ8MӊW<GT ڮQok]1aps٫L(J*1Е$4 wO"fFъ}4':뭉LiP]uQ0qc-osϓrP i)STyJUjv|lm0=oMKD<]:mL07 3u8U=|d*Q#Bs#2d?/-DG hx^@70PSȭn8:+cNvB՘p7}Ow٩ -3vqi m$&% ^EN}8Q3Y 6޵ *NGS cG4Ui Rl*~_pEu-0RI!*CՖۚnA3r#XTةrou!RǫwtC#d~ ~9MdH.vj /i"^iMT + ÐE-K^{`^;.RkxBr1=cY7:%mZsip kĎg`A\ii_޳Ild/\ԚGbPJ 9(-8WݐwPǩÃww=twtԫ+N2v=q[@ XN' jprp-h[Ű1lvαPH==Zx*5pìػ5T-9wgk_i &A]ucWl ƔLzƵlE.9Ǜݎۈ:lĒ@b`Hd%XBwi̙O\4>%iB=DA4'rpBb?YϪu^ 5Z _mg[_bY{L?3n9znȞ>Bt9`oh0HJ][SY\UCh>2eCs|&d7a?QgNS뒸cb*H՘K Ui0lXIG\-3g#ele5VJ*:V#Gy!JXtE0>+хY"SDɦEa:וshᯡ/yC-fusYt`wMXg+"[B<Z ]#9;K('Ou]NIkb>z`e]{vMwǐ~IޚT!jwK2(pEFmV(jtQіUB~5hjB\b:?"ij59ιϽO?mHR7I2VB[$fg>Щo^= j>\}༭ pLv1uMsν>gcuBStק@N:֪ $yٮ ]@ٕd Oy7 Pi.іz喜1|_慊W9M\/Z~6KAkzjQ *6>C{b0ec 2z)33u4 s<wȲ,g%C\e`'{P k֑P =@@K(362[I#jd<˛vEۦeV)i$y%PH *R#=挛TA;v%{@8ـ:+9J媬Ik<x:RtDa^Υm~xԷaʄv~Q~*5WQ^kR8Az׫Lٞe%ӹY\~yavBemeB^B01#a-Bj<5ozfyw, C+Wq(xU1}HE'C:$"nǹvYP5^-L"fs16"U%>Bq ˆPW|ɹAaJOZ3.*iTֺ~zeTT zcYrا֜4ߪb6"?i/(8-,1=bH_jT/ N-zAќU )Kmȥ깈6!6 Ytآ@J`Y\J1}dƵO_򡌵ds *BI7Q =NUI""?MޘZHFb~A C'oL ЫL1%kYO4QլL ւ[TtܮJl͙(,& ):UbFYhzGߧWZ5k62N4nH?Ȓ.~J+r ƺV(u0([y0F"+k*.Ž]u/[2Y4 ~zJ{z7m@YF*O" L*Gl. jx]BDR8 ^B^zjW&fX< (RߦLoWT.ĀVͬt 6ຏd"Z~i"bYmyih_$^zL3=oF!ЪyQٚ_{^EJo[c'unR~[3jOё,r V4\uJ]l`qM%/\А6&irٟ%mnfTG%_1pIܽSiY_BNQbqO׿j&TTPZr(VheU|CGN!jυwy?kN&n ,d.:遽*}(hWvhjrLmNXZwqGJYCvLI^XL,N":lFwH+IL(K@?M79Bgc=XG/wQ@E>:8h0 gQpd4 6XBmWvc?A._mZ܍po8 taZԴ'?5X wfeYXX5a hvdnKIP?j?2nB?Sdx ;s^t.֧D \ 6I{82M󜌇B2Ɔƥkygڻ&3ApFɾkɱtk ꙷe 7 *Om]#P~EJ]39]5UBq,%{3=?A*\ŦSLO qݾuB"HLecsFfjOǤjڀwgXf'(cz-<őszW^~f=ZTs4ɽCH풤8w-LtwA$#t&j/Q[@cYl'_1:2d~ }[IB{ ȶ\2{ T5~cg Y17w -#l0Mf Wd*i0>evc ~j!W9${Rq{izv]. RZ?-x >yAВFq~Y|Pcl< }@327.TJ8HL-n-:9 ۷nl9["x,ByAo-'Z 0IUL`|>6EE?|m‚cvlD-Nਇdm&^EĈjӯb 7+Qk_Z09E+\_-o͉?3D̅g;#;Ag`ї1{=6`qE(P 6pGPZq%H#a;z`yP9tbm*-W⚅{ؓ>Ո݂هҿՀǩk.?_+BzB9KB-$SD|ҭVvu^BGٓgcg&3`}&r%/>]AmG*,.큪aT*Gki+*ljl#[NgخDʙPzؚ^-t!?E[Kxfn4m+ՎA /֚ b'P=} lAGڌK|`oqx65cL_S[|M<JW *{X,ӕIb:_=] e"b1IՙXb2Z̓> ]ˋ|ƋJP8_x>ڵ8ء7'OW;=2X![;ӡB`Y_GCqCﱬw- W{e!'ۯA'nvl !yVΠR&ϞhShD~-׶2FܳkO |;Ǜk/rAj`( /&7pYf҂=&q ؿ0 ÖH,նU?V|(Ăv $(宐фF҄lM66/"VF33r3q3!:cf4%МU}R =OhZM'iH$m?9^uxLAש+c.>1fZZdH軦8p)0aJS_3#q~A/e%b d3rpX;C7;*2qM{gC'2YS.gk 1'gE;wu̙M*5 -3SlEnܪiC < [HfTU8? 1D6m C(By1@ 8&ߘD'<#Dy`ʾ:fKHsQ82ٸ&7hvh\5103 օ !}id=ZJ{>4r %pM_K}=$$DrN l 3, }R#9$g9i๩dti?gh])ALفN/ 83~ >={ =!t8⥸&E?L+ʄ-|Io;gh^t:)Y;D2Ypq؉}('Zh: ]4|h釪À&~6=2!d`bf_Ght"+a]8!$‡q]g(('e2⊂T| 2DD7rΒE<kDFMUO!2ׇ] ?ʄ>_V[1>to LM!!q0N)-#Ϙ6 f5vkpr o Mrѡ?ڟ,#,[0t ?ֆh(/ȥ)(ɂhr @%$:s`*@?c#s07j_/ w·}0haR"dfַr0}aƹW[Di#j,dJPK9<<0T H(UaoRzٶRXA:Q?O:兊v ]6 q2ɛa "KM"s)JyN}$;H ǎ% >_2鋌SDc" YUT d;K. GZSQm+O] >F|)j*Dq=3hQ>^-\u%,< 3cّ,W4RMd_[q[g>3NQG2̝#ⰸ:C6-gGtaU?wַ&k+Ѳ$L/z2ձtKq R˴ ]rRKvGT.y'%L,m"rY\ pH(}t^lf>yk1ll|nGwuG00.S4 <4_lb]YTa|‡$M| s򍊸VJfǖBCQu ȭoT=tmE G4OL$smbرxVƏ_1%/XhEk2짅~WR lIڳշК?^npU ؆ۢ_0[z3rE#']vxيz.m>lDzb%#v? ) hN )oTT q4K'"!=[ xnɳ4ԧi]"(%U%6{l01s9^(9OGuurHV5}3Y-{k]qǖY{rY\D-<%XO]vDJIS߯N⦟s6Z$P+FV9+Cj>G~ >2H _>$(SMw;\`3W% ep9ΑiD{)3ۜ|}<2oZ{Z֟KWer*OB6 ]pٛ.-|}"#Yo#=* ;KTz*( *7VDg:ui>yB_py-cͽ\hjkxCdu֣ºL5|{y, Ȟi t'|$-9*emŅku:{N@Y ]䁡to%*8{[%>ZlbJ2n bemf?nexP#hI\ X,fm7!K7XtBDp5Pʾq1\1F?]G,6<4płZBl'T ٦#,:P."WED, ҍ}Ե 9;tz2Dѐ‰i֗2vUs?n@KR<o%"8|yT/P_;L+jD{wN16Q90L5,:s_ܯgkXjvIi9#2 7K%ޭV >$r5howϖ;tH  %P 4GHڲ88A e^b{ Ec<]%tC4)O홧 B4$XOT8>Mx W.<coy)yN[ ]%#}Ry5Th<}-l>\.!2創3YDwͲ>0~ f- pN9׆:F`ݹ E@%M"e<6ƙ1wB+[s Zv{w9V2YQ?'08$#{o(Sپ"#q _lC{BfpnmoСYǭJv g1Nu dw_w||_T |ITq8:t-q'iB&9,eLc^WhRQojy!@YX SKQ'Fc+bfqIj)>YșaѱJ lKquXNV4!Y(7l'e KaV~WN&T;Gn`d7q[{QpuGz |vhfb.r9|cցU~NÄ.+@)v7};i{4RFL8VkS꺢KIiqŠwk !S} C3 QdM=~GU)KE/{F*%: K/\zYxs6#ն nkz֋Dؒ쾗^w:U=D?u)Hz09&'2)f5ݭl詿2QciL-5>U]Lrk(X\$/Q& R6V/bifF r,gǤn'-)WhWv?aGCPRҐP|8.1.ӯ6:zFxt潒<.{ 0[Φ2P ¦kRԨ1kQ}aھݩр+zqOgp1q5ծۈ{8Kj?i{^s Ցp37vkS:AAA=\RvE-ncvB=9%Uɀ'7 (WzwЇ ]ԟb` 2PtV|iG5X$™'k2~@F3/p-jw$_g6]WckKNsk .';d/Wd6CrP5jgS3t9eޚd[˧6v5@YqNJ۹'@N8zЇ2v48}0_23sON ;\ u2: Re *ӮgQi0Allc~'zVjC} *,`=K -ZwkncvtqI!,b9ǣ|ĭ$;̽dٞ1}@ !k_'KoP!kb:s۫18pAZ\wrdà ,p"ҦVRG a-Mo I$ta2P:@c{O~͚^dW9NEv؁zAgYĈ'۲6? %mu/~e.HzYPBtIDYWh)1y+ >gv2K)\6ѡ%")&s:1XwqrUz=ىXWSњY炓(Z4P8щ F(("[jnS=to_QU`Ǵo p -GD`1Do0b^\4gcaix: 1>ڢgd !TeFJWb̯hc,K(pLY$]MdT)EFڃ<3'&S9A}į7iE{e,[&*AICBhNgQjqfTh";xBRjDΫ! 'Ӳd it 5q` =*Ԋ4h>|)AQ"mϘX 7;)Ij;e1o${_#8]ٛt6tJ3ovwk{8|S?g yhT;j&yb#0Yys#RFV(Eq[=P&4-RĿGG8Z>vGYr n˫$ މvzyxuINBUqJu3jLK4@"qrkl|<@=GޘKeEν"s5MJV!HGrQšfW?܎u;-9j)@*b?YO#SYڴ~21nҘFp!X :%>rLt7W6n;P:v+S"vo X^TLqSc];斌ϊJ=O]JF)H ƎjJشpzg+^Dޑma&v#a=l"jZI&3DwǚN&}BuNyݭ_. [ݫ299=>9Mcf >9ӫ .`Rp%F' ~CψXR|;k9y\-IwG;ۀhÝs>(!8!SvҶ"<$ٓbs"?9lfJ0ec( v7.# *C7)(ЂK]i5[…L K4+(IcYn77j˖;\A7*ү ۭ}y Ρs?LdJ%%+_뢛7ZV 6uV_xIzˆ߂?9+]hNjۇ-n!xY7dYAz]"lH2d)DOB:Y1inoȜ]^+Ghn)1r,gn ;gS +"h"G{K §7Zd`/ v U\|BC;y~ػU\#*$~r{srxl~_9m\(ě#qE Oj2Wl:8s_i0zt4`@SyFv 1)lV ƓkV0z16U'*jT݀ќ2Dj-`XjlGű'nOKJZ2{{*82-AuK:ȟ>Xd?3R[R4 sA{ldӺд@]$pʻQDEAcoM0hoĘ k,cE>[ Og-E>Ƣj!N)v)V1H"i!]>O==cGc礏{Xaێ_Pi+crׇCp|?f:+t |=箭!UF‘aks~S;n{CA< gq&Dc:Vֆ DS|>= GTeP)9[ G 8Iz5**ЖȇuS)w!Oh/25 C.C8>%ۅ;U|NXW9cY0p![V}w}xu U.څ쩚35ysDVD~ٙ /oL=MľXJw5t@R{nK}'VԑmNo:q-$q"}1|%L|2f!CL9Kr"=MǵBQA?xQ5c hݍ3SN$O;ʱ*iGyȞBVHGߡӬ2B< fO-~jπC.d䯑Kŋ5gCIP"],LD*&Fgs%kv%{/IsGT,K?9"a"8sYvݝoPl| ^< qsS [QM0L%u8FMe=6.3 aWR{6q'6xDuX+ÎWu+}S͵VBet:0gknĽe1$Ժ\^#Rgc(B7 AGN(ޅI et)#"s#Q}֞9 U&_AŐAj/ߢ3J_#~Im]pzv41:|Md}rd% a Bd9ߌn-g_f Rpd;Ba@q*++W"g#Փxu,xC |G[^|tCi"eK0noJX!j8oܺ:=W -6pbkk*l&foJ%T =hfxP#dH$#=2}/[ [4o;QrcV‘CN"\6+_VŢHwj`W8[I%68e!67eZ[a|\ψTOavNħIupvGf| ]ior۟DRI2١ΰC<#e"mDǴP0Kul%C_Rp [?٠3ά <BOb*3Lw6%Ni0c4gf }JL*ȣ0Õg&"x m)ė UwJ#Jos[o-vѴwp4vT- ZQYiAE,^1ejԟ}gm‰LV3?gFbx0bJjHi4F~B5*WD B6))଴{qTOWtԱg1ZaNvֶB5OLGSpcي^z hI眇b+)"{1R&SKey qΧ;%H- ?`S8=)/A?'?ծ8*XB?ZNK h)GW-MvGQkRvgp-oH5N:Q3`'S`oJM.RZPǐP='IFFD;XZc͞SmmGԹ)4'Swe:XIJ׻VEJ.pmQ-0(LOG٠q1YL"aG3~M+za.T!D@F?\(nZJIߍ {FXt0z9Q5:e6:§%ekd`}9abJQe| k@/F\ȉZr蟓y3""_tQ! sVlòKT>lkDhU"iz>8*)#ך1>iGm_^:ܚV58A ZwŐTOH$zQd%)7~V`*QfpG嶌5:o̧,s#rBD"OKa^۱ FfƓ<gh,%$ӻDMƆm4?أ:1Xdnjߞ_@w'VQW⾈waՙxjB"=yp#l=y/T6b+qcOB|(SdדЍ/Am^zԮ.By{PO J CH[ly산.rWF®lN$ac@I,Np3ѻ}#p2S =3LŽ6B>^K]*G)?k)|B_k ) l)RY̹\;jUXKX_pA.g5BZ^:rYak50WC5]x ewWc;@8 qY/`f2n.|U|^f9n+kdLr= TS*qY#"򽊺HlCozmO`A*NJ釚o t#ԣH(OND52"EZK0Z\U8hhF}hE(!4MSɋMZmmݫ(Q`&el3^ddzeGF{Py.lK{{h%;b%w cLxn_ŰnǠϟu7%/fD?PcWyŖ0IEC2nwNjы :H1Q}W-7?Tx:*m>H,5U1M?x0KQ+j@ }26@u|z5nostd&Q1%RP> '~f\4Li]eOPo4HMez)~<$a(vX^cϋ0I*G *ݟfߴDZrc>SnCa-Im?/p@ڤ p06~0s"1'j1K"w_yRujv >-9.{*- $7Tu\7:qǥq`|LQYte#b\øXhÆ $Q痈$ǣI0&%p\L*@HHK*]W .ׅH㓼_Wj1/~Ip"0FR,"b*cJ:<&^#j0J_tE&$|?h?3AZHˆKpq-=Ta`<\^xD 7ln -䓦9EK{FI'bNc<+0j > qQp+{b-JD݁I;إ}8E˨Da5 co Zj%bnF )z-Z,1fLnF~A<ÙIX{)Y b-]IHFDY~Zop$_&I0! :hGNb@[s曜(O {u! F7F,-dPp?ޘK>OUҨOs$b })}UpB' 6%`tMjQS =:"D)Jf\T9l&~lg+H5󴏚|iCa%h60*k醡zKrB{"+d$7xH*\[a)f~t쇙?`€Q>ђ,.WBǩR! %I: ͱ$|xRChB]_i{ls^3::B߿LDx]j9lǒI@_ Sg/ CAc Y"q~3Itۮ4GDwajwϊ8 'm^;k>=}f'^pyS=C>pm<D"Pu 4 jaDU%@,=w5Z?rB%.=j,+ m{?k&wy% uz,~lt :K$-S s8T1, ;ؾt/6^7\+p9-TCUO˄ݣZKD0WrgF'&~K)޵~b?D9# MۢT;6zQ{It&/QjXJËn٤6x>KSPlQ (:f_gCydýl7Jsx%b_~+*PDW޶ؒ%Cn2j"XBĖV"Pusy]N+ jkz dXYBMb"L .W!;F?Cqc Jve2 ~z%'.F2o*;ĺlQއ&JB!swD[NEm0RF?]W$I6.%&w4[RĿRsU7h/jaGtyQ UB Cu7*A9jwe%35Ff=5>$\.26{^YqH\z^S P#AQ0 ")ᛳ[U|Gj%~j&Y/xQ2 B'R(0mmi|t .ds*"l?]3W3Z"n('-UD)Eћr##-$Aiꏑ1P n׌UoԾD;` QCNo Z.؎jX!wC6nĽ'|J-oܿ+_jQö2 -N{7 tTFOV,JYч'0hu.Yjd"[;ӗe$l;/5 S?W$6&RFSsi Ad\HHqf貿+8˄2iobO^I NgaPωJafPN %b#Kaǫ%}yYPH5;qEbH%B_ws+yEMQ()֚w<VAbFiG٣tz;"ZQx\|b`W㔢OB/{ NtٜqV CAvq]g z(r3 POb~PU 28DZw~KrK~?zO{ϸ rEe&bEMqHK?> PJ=˂%t뻝@tm|pb ;`yƽ2dBR(%q=]9ODv}3OrOsdÄD|=u!}4MZG(C%*G^B'BVSol=<|= DN, z;sCYDg>ue!P 9,rhil|!y " gIJw3ӨLX'C=8ֈ 4}sX]%[ӻw=!+=\ &k#(qVkOBfИR \NJp$VR%RFn]j X5xU7/17nvatdVِ556?j|ܒ #|6 Ӕt"BϷԽcP+=5zK5=hGz钼OYP :py= #z2 t=e$xEE׮oa:<9q:[^,m >$Pzft`ĮEҖ:5̈́P7>sm773#X^uvQhN}ףAUa,B$ٴXŶ5ɅwX1+WGH耺h=ա|f[< ~GMkDDvi0+'/25A="@L9.Hقp9^k<>[#gi`{ƁrHDWbik__"<A l""VO1,c֯TQהre .xOJ5ڔmyvP /))C`NCT2].ƃ|H: eܑ͎4%3IySٱCYl ,ZY7i5w1Pte8I9:)r[3ͣ}63ͣΞZ| o [ڵ\MW5?`/p_⢡YkCo'[o]/Jl7pFf@1%˅e2#$[/~]KԤ)Bv;BE =5[6Ku0z ɼzz;18PGF?gv3 }(_Eu"'7x=B,_>Mc "?S㢗fkmY [yŬM{Ĺ&kI|Qa%Oj匀HAm#>AdKP'՟QQ#tOCv/bNR~2[ T6$N+>2C89aAn175' z;F3(ՓY q'C ptr`yRlFm`g'݋٥/ig$?VL?!=Njww޷L2Q4GhWf"(kRrLB ZSt/2O-P enB%TXTpp,Ƅ̿a`v%QaS?ԙ:g(_f)q7^JEAide7d*/y?k2*]ETk[.N)|*>1I{d|g} uv 8yȐg Br''Liihrq"*Vs8BdlH![h, (OƜ#7*+WAa]CBAK* D^HDa>PkZ8Ml&p D^Υu^ۙ/g? .8Ɲv 0Cno؀U7eK9U$XQ]CچW70c'wR^k'$=79EcՔfp -9k$Iri~A I*bVatGF)Kfܰ}R vTN h@z‹0bd'2/^svYqzI%ít)u6;Vh$`GR:;j&WOnΊfK<`T;A^GQ̒8* }_0%~O97΅:0x홅DoXr(h6aHl߭_;*ƗL41aP>8Wv 8oA{s{j-8ƖTc5KJv38r=o&Q͘QҊu0ߞ_ <«׹UZ> ۍѵr/S/'a"}m&lK> U~Cj:?8ǎz葩&#%ꔯ' @"|:ҥa(sPKЅ/F⼦.RFcN2c9Q.'U`83{kګ,/aֽrzTώ\yۻiڜ8&PO,.”^kw3.ms4M%mr0QomPM!{886Rm(___0#/#dzRݶŒJETYm/4Q!Km[tԤ򁞽.؎fw@ip)ЗMsݻWE+x!0MGi[jx9;H*eY <=YD#sWQ0(l!;Oq*APq;+ vpjG>d  UB{Y=[ 2uFDM)oZT|ec[6e&U12Χ 3"-;$L\Cd3T(q~Yžy}kL|"sF%V1|^ آ\ahaRQ[#r= W|*lOiH9sl ӸA~]_7AIVTBr(*{E2- ?vXk‡Fx7=~@DMb1uϕ ֝dۣ4ƥ/7nuK2Cۛ ,Zf%PoiE;3j6?ԅS*旘}D__GAW9k#қ5 K0Fi 5K"KSxa|Oۙ)h>vQoe`3 +-\~u:PN+r1>E\N?5ϹKX19-ItA:N)70z09.iX>$N kN {wy1Ìo /uY~*#+WRՍpAMW!XxKy*B#]bX}zi ,@ 3rN\)Jj0il AOnWQm u8M6;E08tw i0'/PŒvCPb;X]Y65Hi=d]Nk8(H?QQ 2T4g !'HKAT,'¦'LE 6 TˀFu>itFߙ&zU:\Tn %=k4xYџ|v^NGJ\p>^BDm9LU",ύΙ)F3Y}Y:CO"`5=& WX;J. ]akH@HeE wo""F iAx-t9gINxqܻTɿ@]z[OӜv?Wuݪ7  R 9͂yfiQ5P-%3Ҿ)ʟ>LLLܒm(I;2S_`{@#t˛) P.3ܯRyfc"ۓqf6~|3:15`7J.HņI85}[͇EDBU >Qb.FmX[9ʂ=h d$vc/(DQ>p$?dak1^qj</0NP+zd%tG#T݁!fN4#w8&ɳ6?ܦZ49-q Aq"(+ʯ^$67P.\`k/23SŒ]@tnw90[ʈibLnngbQ4_{?REG]%>Ct pHINGcf p%@̓_1O1rSK 8yS>ZEƢ9jΑp˛/qyJC\QYxxh跭$= e.Ř㰲|; }yÜH#BȈSp 9!4kQgef7;f|+hktECdwRvriNi涘lү[`mDF|''ob3u\8!cfKh8nT53⟽3' dgHʈEt6sc N fō|~+tRyk#=Da9Ya.Ot{"2+Ǵh'ۀ̗gr.-Ns?|ݔ:r(o`).z dnLRw f1-<\liخ6L Z5VgvSfI㐲#E``gBRPia.ZnP{nͲxt8}^9iO}-Ly-_Fk3Hk:kAI!882kWaPz`Pflz h((tqCbd; C--b|dۋ_4e|+m5OŽs7UgI851ݖ gQj-tF<bۇ'MAw6"h\OşCKpuI+amsral|1 gC+>ah@[@Ew;+WhGodób׷2 j]}FNM:# _M)@ɑs}'H!\G΍xp'ҐHZϕ4+xjhפ?}ɓش|z%fڵXTն5"pvP 鷧,La0wi6ɸy"[ZkvvN%ls# 4&j:g By4)vD8:z VAt=zjVӷ$gG3 *-È\Y.BIt6ѾW$axBq 6_ lvvQpNe4qF/lެc~3cS#/8k50E1J&,k0v[xJٕ|"fvD OKp&0,ǍzI}2UsBʶfQwpD' ?S@YU I<:I5'0SCHUPޮ-\D͋\c|kʇ2eJh AoҹЏvX (*k$tk4ѵgwz{|=G7F(I5tɖ*Ź;*u.G]A{=CJ)~G>/?}"0:0:O'P$oO(2>=i9B +wHiTs[7Ό*>&#R2ݍ* ӲWCVgleZsP kb=ee$< 09=/[/O +N@oR )MkLҰWE-_7|C,TGNG< 1+:ڷ ʐ(u1.2rxCu_QsG7XABw`#[νK_*[{Uh'ѥXu3l50DyYsD6ؘV;F˽ ' qBzk14puR/ mEiLALfkܬmq:iwMqoSr⭳WzhC8 <M{QV5ǡ CΤpmzan=vXŽwq}y*`Ay}$ Re}EP&]Ѩ@rNm І+.ȋ5y/[-x~Kq$P1s_>tҜ;D|6}NQuvY[-o,doXk8s`0B)=59<,KܓĪ); &uǷ##xN ,߅e,X'Wf!uxӯDA 7 g?`㱈Y]5oy(\Rv5]f&ԋb{x߄Jbd\w% 0ǢZH8\SR!Y uKF6OrCY˻qu.F AϠlNo>m#Y}8;kxK}2{hpfIgrrCMw i<ɦ4߈@3mEt oЮ]kɓw*PǀsdzD8F ˔q<XEHXr0%2ѸYq`IL;‚h: т ;yQf݌bĒORɠa㼊+\MV0޵ѕ WA("IhOPuI i͑}F  8\|R&tqDE\KżV2*UpoOF%Eԁ. T U)T ;]?SX6de&F)>T-қ4Z,OzUSs nI2BH U=w"i f|gsOm /ͷ C6',XldD“gh~@q\  rOƙ0jNR?ט52k9U~$$j*{QѶa!q9}h|Л_{=pa&c6~6VZ8uES|rJXaYn igY/b +! 㠈6h>A|eƍ4썙;ɽNmq4RSᩦm/K;1v 1X,6#~h5E_G໣e5ʾ\r(O@e;F[Hx<c&RE O*nV&AI"f9l?Q&̑Y$-E_cFn2.)qyݘUXB=2y ~%ɍqf){%ְn1qs0<*n@z+dgix%l'7.RXFHkl cNwl]Q)@@Qx"}Cv]&6) ۟ߘlWaB21 _@jfKsc:]3gbT~$eQiY) Ma9^^lIjf8T= dbS JG9jz@O_hS>…92ȵ_^CiNE`AQ7oHz'^@֕v3s*qpXa}nG,nN[8a,PkOdku߶doQ*)661(}rE5CtLkR?NM;g% qKx&8ZѲs'(8m\9]AfAv6GrݟDoܼ7O7$)\Y$cjV~Q ;7I]ư}s-v*F a tN-؉ek=ۿ6 drK/}_Y.e=2ar" ^>J))&?G$u*M!^DKjlI ~a߭t0m{Qz'f˰ T續b3yڎO#m/Յa_XP+x!UX ᖪj)F"[SS\Sʈp) `ԓk%_]üx'$l6Dn'A1c^$aLd4QT(QB'ð./ A}lQ'qlcYRfwĉD419WNS0*-qó1J U%="] Rx "sv/]X]=.IgsQ}CvWr<ԇ@Dd{F(nPm xX! Og l -3&P]nK/OB5FGїRMkW_T2ioMH)ൃ[1F p Hf d>2&Mma aV>k?O2OS"B9'=n1. ܚd‪T٩rxMZJ} yg*sIϚ m MU$_<+A^–cUuDVfmi#59cub7 /Ǐc/"и'=IO|@ A2ޞ{v `QV.NL{ģ ;pti TvĠnl&ѭ+єԬ9(O&/ )0MxM T/ gnF)Sf)Ϭe,1B7E`BP͏^EOCsk_R?5pR];j*`P#2U<$Zz aG_h|{RκPh`!`/W*h#~R9 *B5/iD>TC<-l11kc+!rɾ#mAw7S@Si/s42@=hX2t[)b{GYv5D֛*%j(8'ObKRWqިuߜV!U^׉OPy:9p!PbM|hj%*k!cIM1&_Y&\=4FImBzۿH]4rDҔK^P>m:09h*-J9i eZbPʉ6<ƅ|b%8O7ӗgq*v ¶(p3ƥϥLF-L E_Og@Æا-$lCJu]j9)b[q /ЕlÓ.l3 N\2X+^8hI4-yu>/ t+t؛GZDi6eU0LcF+2X塗M#zױ{}|il]pSP,:133gM_"EMs~Oω:W;Z ]K3D5iMH<=8mtح0+L͆'{~8vX I1FUMT6$| Qo}:FO KBNjc{7hob,Keݳ78F[WuOz42aF)fm l ,c:zꛪаT|lB!-[P2ǭv+dH вĆ|Hd-7濋LLٍ'شNp8x*TZaORkK9Ǻ. .im׷)Yo/a0h%ƽZaS*&{iӓxA:ETK78v=);׺ȹCZ.6Wμ wYCDV_T7v͸~[& cqR0 Y<. j_y^2Xno!oSpZv;BM/LFKiB"1b|y)-0h-Ѫt-#8NTUjPsG+نVT2)EW˖׏W:̓iʛx Ҟ.f&_Lxunm^S~>?c)4W:RK܃4T⫶UatJ8/D؎s!`i=raT6ZԘR5tˣo.rD(DP$@C a:u9 Ί&1 a"U]$ op1Maj¸'WrhE{{Qlړ YFtِj}ON*\t?u0+Yk!TO.ܾo8`4$R(ʸ5fc$c"T.Oy~@(K.BZxr-55gQzxc1߱}7Xk'pؔя/LBu!py&Vg';f/NuL^QN9v-#0f!G+Ϫ>5Ԛ׌72Y,x~wH{xuoߧX&i8Vܫ`p!s vDЭMa42gzTd  .h]A/lwXۭ샆lsR*!B%]L V!r}ݕfUW8ذh+I61(st3O}lJzA6wH D _aG#cdqޏByk#4m׳/s 1JBP9B;v<#-TSWԈ MG:,Џ$O 6ѠF5)AHϞcqIR(tiAseT9N ZuTi`4k-_SMbJ)&3Xx8GtKh>[{"؋8_sHwMO,'fFLj1oⵘng֏v!0Ӌ*r%L@UA#/[DF>HDwf1l$;QUޏj^﫡\gIsKafJX\5oEflFǑ<ʂSs-d#JɞH('fc&mm$e緔FyemnqgH6ޮ-駥GG<ڍ*Ju7u aU.=?A!b SiljO`p>V]n7Nߝ}~9džjLRD3Oњma"\c_IƚdZLugdTgs'>Z+P2Ht[i_7 ݿ)}k ՁA^:z$Y83f4[C>GF <4t:* BRowk2ao#)~ibBW| {{Sy3 Κԇ6'6ύO.ɫJ=Miۈ#A޽QG$4 BZ%~f,i8RryW0[$0V +1ߓZR.Zȅ6˃ɵG%,sb~֞&UAL3do U<Tm m2^\뜺.%5iU#Kk&U +'s+6tS(Ieg ű:4FL39*}zC.`A%\) 3mlH%%}0ɏ Y.Lk].Kk>H F5*?CX } (!`o_X 묻/ya9X.F$]vĹU,0ۅo6Q.e:(gZIpFmsK 봏ӃGm po蛋@$P7ֆfBl妷Qg/BI*ƄBa4zzqq`Z˞P7KE o=ܐ\)EjPDZ5+pbS+S{W,6QX̉$-k`txZ7##xw'- ϙ 聝QEvHJ*Hc)迬Qmk\}JM ʔ*ͪMHSJrx.H/@X,7E%(I1 qh5w8Nrwew.bыQK8BQ߾Zk)UL#2⧹8]ex YzR%b*}{CV.* _9]y_D;/R䧔%惙gCxd3KRbis-jNS_Gݢ4iSrV۞лEdYCvp/gӧ0Ld B5f!HʩDLބU;z=Jx ҕ\#w8R3758cƙHZ؇Q!t,K>8}lպ)`wCLs"LJNHu DbfϼQB]7eddxC) ۩89RI8I?I6S'toH3t>6)m$(p݄Iz`:uU-5bW DK S-OT [ Nbd4x̍t.k*0?D'Om5|R T~{x$jSj[XN \ y'w74S煃. 9!ؖ /}ĸùOBWS<:zi;=Om/4.&'`E%3brŃ}GF|(\` :X U/mZ>Bvdpk%k;(Z|MVV; fNSPo8 &T_·ŲwxA7Em+2IKG㴒SNſ T鿖n| f~t:PUhӯJEuFŷ+W+T\Z͗Lm~V҆q.YsjϜ-l|elrShҖ7!I)b,fd`V$fIw6b!@+ ^" ~$&>նRŏ.oeU3hOsM: ú"t)02\(b(Hb}]ţ-+#zOz{g_+4]{?0Y聬rl3' SvjeC'~Pzq9>4߾!O+ κ,]"6ܕ$!8uwoQ< *[Q \NDCO"(SEތ8"Q".~ \dL}VȞ8tø뇪KZO KeBN7֡ajsSo;Fh`IǨPn*y!S[U1ɡ+^O.ĸ+TAeOA+P.Uƛ8)fedjpZӾ\j~\64˥HNG{"1//B9DWJDkroz2 µP&VT+#CԓhډtM`+GfVv=}X2DxM*.@VոeY#t\ XJrOfE9H@[5)ȌKf|5s0|&'Ł`ʹ#Zʙ>mB|יqn4dmcm$D# Tr0j2E^n s-,]ȚƑ)`h vޮNQg66V~!aN 깖GFB%zƺи!2xt=&,JkF F[bJs(ep!0F܆}vRlNm(H],.&rX u´jw6w[bokҬS<ǣ7i0-buo2QI Kwde2.Tq@3bAjd Sl^yxb>Q>cll5O߳@l['Ap&SD0&["EO̻荄v#pNj:e\ms<3U>Rt %JPMop6IǓHyE4 j0Z艁5 "¸kawqh?7x<,8 1>ޑ[9荪9V-մ r!@z -#v+01)[4-0ߏ=[ޓaYqy,/ \yHk+@lAFsRrdeF8 ;kgAі8Hc&ƞ:y Q 3C0§V.[.ZݛPVf!j3!6U>Wm{-;A旨X:$ $'{JɐRWYM??}gCpO}#JirZޤL>~ (ߑ2ɽoMᗮYfOW~W[9,+1ޝH\x,ymdu$<ܩ39t ]m9,H #:z/|1V.Mrr_gv(YV9\  W -a )M~@;%w]\[6HŧYS7H