libostree-2021.6-150400.3.3.1 >  A c4p9|Oi2wC>:+G˝*OV~˖H&?- ը^"tێ悪ma NwzvArS^&ճzhicӊ9ڃy'Eq)St5=I2~lӦS%ǒ\c7.QUfGՀmI[}/l./cTr"<-E-ai V^s&x㣁-;rfhYb"."y(#U`@aa9Rd459be35131271bf6aca90ab501c04e5fece0b42c701b6935ce5cdfa7886ada872242851c29f3421f0e598bcbbd56ab73588357d4c4p9|&[p_=jrtZ-Un{YB]:c}_ aMdr-P]x,c2g 0a%Z#JAI`qn[[qd5zsNgF `# *Z%F&rPrץ"48OҤ\o(>pIh?Xd   B 2V\cYH0H H PH pH -H .PH/pH0H2@2hH33?4?<?(<8=19=1:A1=>?@BFGHHHIHXDYPZ[\H]H^bcd#e(f+l-u@Hv` w8HxXHyx`z TClibostree2021.6150400.3.3.1Git for operating system binariesOSTree is a tool for managing bootable, immutable, versioned filesystem trees. While it takes over some of the roles of tradtional "package managers" like dpkg and rpm, it is not a package system; nor is it a tool for managing full disk images. Instead, it sits between those levels, offering a blend of the advantages (and disadvantages) of both.csheep13CSUSE Linux Enterprise 15SUSE LLC LGPL-2.0-or-laterhttps://www.suse.com/Development/Libraries/C and C++https://github.com/ostreedev/ostreelinuxx86_64 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 ostree-prepare-root.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 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 ostree-remount.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 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 ostree-prepare-root.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 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 ostree-remount.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 [ -z "${TRANSACTIONAL_UPDATE}" -a -x /usr/bin/systemd-tmpfiles ] && /usr/bin/systemd-tmpfiles --create /usr/lib/tmpfiles.d/ostree-tmpfiles.conf || : 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 ostree-prepare-root.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 ostree-prepare-root.service ) || : 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 ostree-remount.service.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 ostree-remount.service.service ) || : fi test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ $1 -eq 0 ]; then # Package removal for service in ostree-prepare-root.service ; do sysv_service="${service%.*}" rm "/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 ostree-prepare-root.service ) || : fi fi test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ $1 -eq 0 ]; then # Package removal for service in ostree-remount.service ; do sysv_service="${service%.*}" rm "/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 ostree-remount.service ) || : fi fiF@LH:)h)`hc'C2_3zf z%5eNNw+C{` qiA큤AAA큤A큤A큤A큤AA큤ccccccccccccccccccccccacaccccccccccccccccccccccccccccccccccccccccccccccc6dc89b0b54869585bb6f8aac591a4b7dd7170eb498309ccbd576959015cd8711520e5d3b17eec17f70a79ab314961ff731d85856d1524ed7b92548e98529d7ffdcb5acbb0a225f354452099d87f0dfa0161d3f1f513e7a82b06b5e03b84c0f5eba453730d930b63b108fc2fac40b62539c89099858cfa23271df5fbcf237410ed6b9b262099e070e69e5ff4ea9a4c0b74297bc58170d3f544a5710046ea32eff0125687fef0ab5cbc44d226e7ae06dc65a0e0999246dd9d61365b7ad5cf6bab77b404a6d7f4c1a02334372474f43c1a77e747af77bdf73835e0f44c359e9638b01d8373b03a4a5c1147da58e66b3c70b5da98f71464d62c822fde240f42e2800ce3b467bb7188986d5fa9076854a7dd5a5a52cbe2abf7b123a34a389db0c681ea1a29fa27d8b805c7394cac16bb17ef4223d43617c7fd39bdadf89892feb25d334d19887bf2f3d6b921e0bf7621147232cfece23c2b85a8953f7102897557b47a32a02329ea14b93621cb783553bf68c5b525b9dda290460a81bbc7bc87706cd5332d3642ab71de554fd51e9b7bc4630407ea67eb11460c45e172bcaf1096cabfa066ee4bd2991b42da146b3bf0e93c687a1d944461f44e0190064791c5ddb397ff84f8acbb47bd3862cdfb8a84cceb25c58b8747dbe590e00080c2f718faf3fb7993225104d90ddd8024fd838faf300bea5e83d91203eab98e29512acebd69cc2df8885b11d2349f6c1848373da5531bfa5a8d25bddbe84570fb45133d409686842a7ba73a23e605d31f25214191be0d1a1009b27856481d0b3fac21dd3188dd0be05482846b78bfd1e5934f181491bf703f2f4cf0f6b61ec143119d0820fb6a25b9f6a2b917e27bff9f52e74db0bdcf85307d454bf593f440100741d6f85c20143d1d620c6c2df53a1fdf6674f7255dbbd1b48187d4fc5c485d8b02d036fff2e6216dffc19856bc40defdd2c2f440a488ebba3f81402e3ca1e1eaf8d4319c0063fd227ec986792bff65f1a6b7d1df2c839e640a164dbbfdb3e5ec67e332f2e89185f4336845da7c5cf8f4cdb636810ae7bbfd895a6898ded56c061ae5e6a28a2f6b209eebc796263267ce40459b5adf13eea9c601383ca05fd83956d205020f61d428a0079229b13d04acbbc76f27f457acb0e307bdc43b7d0d4d7b0f743f209177405a5d0695bf9aba595c15725941a6e7e2e25084b4f4d998430030d871c863940908a8c52bc29262e429c531a70bd3494db25db5f83aa8eca4e01cb64e5c0770776de39052b04406fbf4a8c10863910e000ba8a26ed87bd50fcdc205f6943fe205f7885330d3f9b1869f49d92272a510ed7c3179fa3d38d09ccd6b463d2f553fc37da4a6af924277869bb17fda20562f92613a7cd70b87504ed8b9850db1fae0265d7fc9bf8ba07ec142d73790897de03ce24a42a7d4b847eb7c83a06bf72f528f22eba2971b33ada54b185ad4fcbfb15cf8eddbfe2b159771309806ab3cc449dcd0f5879f39e1ad835df1c2a488801b2e76a6ac8ace5b64bf448fa25415df8316aee9c88817e7b6683c69cf7bdcfaf1caa6c27365ac7352ca083d81942d44c8c7db1d57d2e0c39b58b38f43607dfe335f88ed57bfb8186d205df0475cf1fff90d00c0286a0cddbb9a6c37e098ba59a8f2d94393ebefaa5f54cf393e5db37b8e3920be1f5988f46877caaba3dd6c3b40144b1618ee827a99b95dcde30b7e20a29355a8f0b9ad2e1c5acc89acac4e77ac6a7fc91a4735fe89c359f4a421b732a8f5819d383fca695bc84b6fbe5d27b41195e3e2d351ec6439cc8a1e75f4f9dfbd4d1006a9be04cefc5f342f9046f3feee98c6c7897527f216b4b444713fca8afb1270e83bc7b53358b7b73723c607e0ef8f78b1d34fd309e1e3d5cbbfb9976bba3883181d7252e3c3d2f9af2b9d3eae85ec2f3ea7b0a08144847071e375cf809306c0abe6d687f335f7f08e6dd83cf37db503564aec79b04111c9237a2259d701b51e53cdd052325dbeffaf6356b407bbcd261a2e7b6772a3a6ad7145644a7fa8f74b5d5a186e93b7d4e060ab36eb876001e123137deffa42e65f748a3448e95828fa4227c354c6485b2530eca59c6d489277fd49f7a1cefb31ba4993ccc22466fbd10b7a701f867fe13921543ae1cc4fa9b9ef3257085931f53638c038fe3b204934c802ac54cf4be9a7e255dff020566be2fe7907e503cf82a49f122728bdbd2a26807c1068fa4bb1fb9d831666c879137a0bb6e0848c4ed986dd38ed864bbb34beb3ef27477614d5a0d5f37dcd5db048e492615a1c32c749ecf06579a83ad2b7e59622068648a41b71a0744d37514326893b78e84cb5e8fce9a0f22a3e15366ec48804e50eafb428a1339b47459be7e2ec4cde54683ad83be44a112fed5a842812c856985f1f8b40d31597d8ab6e1c907127cb753a4a416418e9178649b406a89b4724eb89085c206b7ff1bae1ea52b39b36cd8d5a8d5c3369420e64159a5023403ab60ab25f0eea35e2aadb503905b20da25e23bb3a983975e16c860eb87b1f694c699a81495b793c8fd47c45a364a8cc0ed414083ee2cb5caa828f96ef6e02ccec74d77ebec4adfdcf2de8b1ddbce78e68492bba3d9ae1f5d569718a9df45a749dd3fae4b24bd6cf2bf1d116a790faed1698c109a3c44bea9ae05f4a430b726b84794be878e5ca70137d6ae3152ba62e06fa3048e6fadb98f9ea9e90b6ffb2f9eb02026f293e10ef31ac7234a3f4e64462c78269a9d26ffbe19475fserviceservicerootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootlibostree-2021.6-150400.3.3.1.src.rpmlibostreelibostree(x86-64)ostree@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    /bin/bash/bin/sh/bin/sh/bin/sh/bin/shlibarchive.so.13()(64bit)libc.so.6()(64bit)libc.so.6(GLIBC_2.10)(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.17)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.27)(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.6)(64bit)libc.so.6(GLIBC_2.7)(64bit)libc.so.6(GLIBC_2.8)(64bit)libfuse.so.2()(64bit)libfuse.so.2(FUSE_2.5)(64bit)libfuse.so.2(FUSE_2.6)(64bit)libfuse.so.2(FUSE_2.9)(64bit)libgio-2.0.so.0()(64bit)libglib-2.0.so.0()(64bit)libgobject-2.0.so.0()(64bit)libostree-1.so.1()(64bit)libostree-1.so.1(LIBOSTREE_2016.14)(64bit)libostree-1.so.1(LIBOSTREE_2016.3)(64bit)libostree-1.so.1(LIBOSTREE_2016.4)(64bit)libostree-1.so.1(LIBOSTREE_2016.5)(64bit)libostree-1.so.1(LIBOSTREE_2016.7)(64bit)libostree-1.so.1(LIBOSTREE_2016.8)(64bit)libostree-1.so.1(LIBOSTREE_2017.1)(64bit)libostree-1.so.1(LIBOSTREE_2017.10)(64bit)libostree-1.so.1(LIBOSTREE_2017.12)(64bit)libostree-1.so.1(LIBOSTREE_2017.13)(64bit)libostree-1.so.1(LIBOSTREE_2017.15)(64bit)libostree-1.so.1(LIBOSTREE_2017.4)(64bit)libostree-1.so.1(LIBOSTREE_2017.6)(64bit)libostree-1.so.1(LIBOSTREE_2017.7)(64bit)libostree-1.so.1(LIBOSTREE_2018.2)(64bit)libostree-1.so.1(LIBOSTREE_2018.3)(64bit)libostree-1.so.1(LIBOSTREE_2018.5)(64bit)libostree-1.so.1(LIBOSTREE_2018.6)(64bit)libostree-1.so.1(LIBOSTREE_2019.3)(64bit)libostree-1.so.1(LIBOSTREE_2019.4)(64bit)libostree-1.so.1(LIBOSTREE_2020.1)(64bit)libostree-1.so.1(LIBOSTREE_2020.4)(64bit)libostree-1.so.1(LIBOSTREE_2020.7)(64bit)libostree-1.so.1(LIBOSTREE_2020.8)(64bit)libostree-1.so.1(LIBOSTREE_2021.1)(64bit)libostree-1.so.1(LIBOSTREE_2021.4)(64bit)libostree-1.so.1(LIBOSTREE_2021.5)(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.2.5)(64bit)libsoup-2.4.so.1()(64bit)libsystemd.so.0()(64bit)libsystemd.so.0(LIBSYSTEMD_209)(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3c @aA@_إ@_^@^^^@\O\N[@[[[6@Z@Za@ZZxG@Z:PZ:PZ:PYdYyY?@Yp@YTYC@XX @X @X}@X@X[@X=mX@XWW@WίW]@WrfWq@W3W@W VZVZU@U%@T@mgorse@suse.combjorn.lie@gmail.commliska@suse.czdimstar@opensuse.orgdimstar@opensuse.orgalarrosa@suse.comalarrosa@suse.commliska@suse.czbjorn.lie@gmail.comalarrosa@suse.combjorn.lie@gmail.combjorn.lie@gmail.comluc14n0@linuxmail.orgopensuse-packaging@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgaplazas@suse.comzaitor@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgaplazas@suse.comzaitor@opensuse.orgzaitor@opensuse.orgdimstar@opensuse.orgjengelh@inai.dedimstar@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgzaitor@opensuse.orgopensuse-packaging@opensuse.orgzaitor@opensuse.orgdmacvicar@suse.defcrozat@suse.comfcrozat@suse.comdimstar@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgfcrozat@suse.comdimstar@opensuse.orgdimstar@opensuse.org- Add libostree-CVE-2014-9862.patch: fix arbitrary write on heap (boo#1201770 CVE-2014-9862).- Update to version 2021.6: + Most of the fixes are related to warnings highlighted by gcc - fanalyzer static source analysis. + Performance of pruning logic has been improved, avoiding unnecessary trips through redundant serialization. + A regression has been fixed so that ostree is properly behaving again when used from the initramfs, at a point where /sysroot may not be mounted yet. + A race condition related to sysroot.readonly has been addressed by directly setting up sysroot readonly in initramfs. - Changes from version 2020.8 to 2021.5 please see upstreams list https://github.com/ostreedev/ostree/releases - Switch to obs_scm from tar_scm, and use obscpio instead of generated tarball. Also stop autogeneration of .changes, upstream now have proper release notes that should be used. - Use ldconfig_scriptlets macro for post(un) handling for shared library, modernize spec.- Enable LTO (boo#1133120) as it works now.- Update to version 2020.8: + This release mostly contains scalability improvements and bugfixes. + Caching-related HTTP headers are now supported on summaries and signatures, so that they do not have to be re-downloaded if not changed in the meanwhile. + Summaries and delta have been reworked to allow more fine-grained fetching. + Finally, this fixes several bugs related to atomic variables, HTTP timeouts, and 32-bit architectures. - Changes from version 2020.7: + Static deltas can now be signed to more easily support offline verification. + There's now support for multiple initramfs images; the idea here is that one can have a "main" initramfs image and a secondary one which represents local configuration. + The documentation is now moved to https://ostreedev.github.io/ostree/ + Lot of preparatory cleanups to the pull code landed for upcoming work on indexing deltas outside of the summary. + On the bugfix side, the biggest one is a fix for an assertion failure when upgrading from systems before ostree supported devicetree. + Also notable is that ostree no longer hardlinks zero sized files to avoid hitting filesystem maximum link counts. - Changes from version 2020.6: + One notable feature: ostree now supports / and /boot being on the same filesystem. + Other than that it's mostly bugfixes; there is one quite important one for anyone using the readonly=true for /sysroot (which is still just Fedora CoreOS I suspect). + There's some improvements to the GObject Introspection metadata, some (cosmetic) static analyzer fixes, a fix for the immutable bit on s390x, dropping a deprecated bit in the systemd unit file, etc. - Changes from version 2020.5: + This release primarily fixes a regression in 2020.4 where the "readonly sysroot" changes incorrectly left the sysroot read-only on systems that started out with a read-only / (most of them, e.g. Fedora Silverblue/IoT at least). + There's some additions to the pull API to aid flatpak. + There were a few fixes to the man pages, and ostree show now displays the parent commit. + The default dracut config now enables reproducibility. + On the "feature" side, there is a new ostree admin unlock - -transient. We expect this to be a foundation for further support for "live" updates. - Changes from version 2020.4: + By far the biggest change in this release is new ed25519 signing support, powered by libsodium. + stree commit gained a new --base argument, which significantly simplifies constructing "derived" commits, particularly for systems using SELinux. + Handling of the read-only sysroot was reimplemented to run in the initramfs and be more reliable. Enabling the readonly=true flag in the repo config is recommended. + Several bugs were fixed in locking for the temporary "staging" directories OSTree creates, particularly on NFS. + lib: Coerce flags enums to GIR bitfields changed some values to be (correctly) flags - this may show up as incompatible for GObject Introspection consumers (but not C). + A new timestamp-check-from-rev option was added for pulls, which makes downgrade protection more reliable and will be used by Fedora CoreOS. + Several fixes and enhancements were made for "collection" pulls including a new --mirror option. + The ostree commit command learned a new --mode-ro-executables which enforces W^R semantics on all executables. + A new commit metadata key (OSTREE_COMMIT_META_KEY_ARCHITECTURE) was added to help standardize the architecture of the OSTree commit. This could be used on the client side for example to sanity-check that the commit matches the architecture of the machine before deploying.- Stop invalid usage of %_libexecdir: + Use %{_prefix}/lib where appropriate. + Use _systemdgeneratordir for the systemd-generators. + Define _dracutmodulesdir based on dracut.pc. Add BuildRequires(dracut) for this to work.- Update to version 2020.3: * A quick followup to 2020.2, which introduced support for read-only sysroot ended up breaking some of the Fedora CoreOS tests in coreos-assembler which in turn holds back ostree going into FCOS * Now that gap has been closed and more of those tests are being run on the new CI. - Update to version 2020.2: * lib: Fix Since versions for 2020.1 * Post-release version bump * "Brown paper bag" release that actually sets the is_release_build=yes flag and also fixes the Since: on a few new functions. - Update to version 2020.1: * There is now support for making the /sysroot mount point read-only to start. This protects against a lot of accidental damage, and also generalizes and improves the previous special case handling of having /boot read-only. One known issue is that ostree pull is broken with this enabled, and this will be fixed. * Error-handling around GPG verification has had an overhaul. Specifically, libostree now has more specific error codes to distinguish between different verification failures. This should allow apps to have more fine-grained control over how to respond to errors. Do note that the error messages themselves have changed, and we strongly suggest that anyone relying on a specific error message string to migrate to using the API directly. * The original "archive" (split up objects) format didn't make it easy for a client system to know how much data it would be downloading. Later, static deltas were added which addressed this problem, but there are situations in which object fetches still occur. Later then support for optional sizes metadata in commit objects was added but was never really stabilized/publicized. There were also some bugs in it. That is now completed - the sizes data is now stable. and new API was added to read it. * This release adds initial fs-verity support; it doesn't do too much today. Bigger picture it's important to understand that the vision of OSTree is to enable Linux systems that feel like they're "image based" (transactional, versioned updates, no dependency resolution client side), but also to enable things like doing commits on the client side. Today rpm-ostree supports replacing the kernel client side as a first class operation. This is crucially important to make it feel truly like a Linux system that you own. * A small tweak was made to have OSTree create repo structure directories and files (such as objects/ or .lock) with group write permissions. This is useful for managing OSTree remote servers from multiple UIDs. For systems with the default umask of 0022, this should have no effect. * We've extensively reworked CI for the upstream repo. In addition to Travis, testing is now done on top of Fedora CoreOS. Not all tests have been carried over, but expect to see more coming. This rework will also allow us to have more comprehensive tests previously not possible. * Several fixes were made to the test suite to handle the cases of systemd vs no-systemd, and systemd is now advertised in the list of features in ostree --version if present.- Update to version 2019.6: * Nothing major in this release, but there is some bigger stuff outstanding and ready to merge, so this version was released so that work will have time to stabilize. * A few build/CI fixes. A new progress API which will be used by flatpak (and can be used by others). Finally, we also avoid reordering kernel arguments. - Update to version 2019.5: * We discovered that CLang has a static analyzer scan-build; it found some small memory leaks so far, otherwise mostly noise, but we haven't dug through all the errors yet. * Gained a new zipl (s390x bootloader) backend * Install the .hmac files needed for FIPS mode in /boot too * This is also the first release where we switched to using the OpenShift Prow as a merge bot, though a lot more CI work is pending. - Update to version 2019.4: * This is mostly a bugfix release. Notably, the 2019.3 release caused some issues related to the gpg-agent code spewing messages on the terminal. Additionally, Fedora 31 users have hit upon issues with ostree-finalize-staged.service running too late to be able to write back its logs to the journal. This then confused rpm-ostree after reboot, because it looks at the previous boot's journal for this message. * The biggest feature-ish change is support for a partial commit "reason" so that after ostree fsck --delete was used, subsequent ostree fsck will continue to report an error. This should be used by higher level tools that want to do "fsck and repair". It's likely at some point that "fsck and repair" logic will move down into the libostree core as well. * There are ongoing efforts to port Fedora CoreOS to s390x: one fix landed here to add the deployment prefix to BLS entries since it's what the zipl bootloader expected. - Update to version 2019.3: * A lot of changes since the last release. On the feature side, probably the biggest is we've made public the internal API for kernel arguments, which rpm-ostree now uses. * Other things include a new --modern switch for init-fs, better support in pull for downgrade protection, better use of mmap, support for committing archives (tarballs) from stdin, etc. * Finally, libostree now supports being built without GPG, which is an important preparatory piece for introducing an alternative signature system. - Update to version 2019.2: + It's been some time since the last release, so this is a slightly larger one! There's lots of new features, and a few bug fixes. + New features: * A new sysroot.bootloader key was added to be more explicit about which bootloader OSTree should use. Notably a none value is supported, in which OSTree is solely responsible for writing the BLS entries. This can then be used by bootloaders like GRUB2, which now supports BLS natively. * ostree config now supports the unset command to unset a key from the OSTree repo config * ostree remote add now supports the --force flag to replace a remote of the same name if it exists * ostree-prepare-root now logs a structured journal message after finding the deployment to which to pivot. This can be used by higher-level apps like RPM-OSTree to build a history of the deployments the machine was booted into. * The staging API now supports a lockfile which prevents finalization at shutdown. This is intended to be used in systems that need more fine-tuned control between staging a deployment, and setting it as the default deployment on reboot. * ostree static-delta show now prints the From and To commits for which the delta was generated + Bug fixes: * Make looking up collection-refs similar to how regular refs are looked up, i.e. first in the transaction, then in the current repo, and then in the parent repo * Don't include the OSTree commit version number twice in the boot menu title. This affected at least Fedora-based systems composed with RPM-OSTree's mutate-os-release. * Activate ostree-finalize-staged earlier; this should hopefully make deployment finalization more reliable by running it later in the shutdown sequence, when less services are running * Run grub2-mkconfig on the filesystem tree of the pending deployment, rather than the previously deployed tree. This was a corner case where the deployment failed if a previous deployment did not exist, on systems where grub.cfg is used.- Disable LTO (boo#1133120).- Update to version 2019.1: + This is the first libostree release of 2019; no big changes, just a collection of smaller features and bugfixes. + On the features side, a good example is: lib/repo: Search a list of paths in gpgkeypath for gpg keys. + Another feature is grub2: add support for devicetree. + lib/kargs: allow empty-list arguments i.e it ensures libostree supports "empty list" kernel arguments. + There's also some ongoing work to have libostree be a "backend" for OCI/Docker container storage; checkout: honor opaque checkouts. + If built with --disable-http2, allow enabling via http2=1 will allow people to more easily play with HTTP2 if it's disabled by default.- Update to version 2018.9: + New features: * Allow disabling pulling from LAN/USB/Internet * lib/repo: Add an API to get min-free-space-* reserved bytes * OstreeMutableTree: add _remove method * repo: Add a checkout option to not hardlink zero-sized files + Bugfixes (apart from regular memory leaks fixes): * finalize-staged: Bump timeout to 5 minutes * deploy: Fix removing /var/.updated with separate /var mount * src/ostree: Don't delete refs having aliases + One notable change in this release is the initrd service ostree-prepare-root.service now runs earlier in the boot process. This shouldn't actually affect OSes, unless there's extended logic in the initrd that integrates tightly with OSTree. + Another systemd related change is the introduction of a path unit: ostree-finalize-staged.path. This allows the service of the same name to be path activated instead of explicitly started at deployment staging time. This release however does not yet rely on this mechanism to give time for packagers and integrators to adapt to the new unit (e.g. by enabling it in the systemd presets). A future release will require this. Note that deployment staging is still not the default for libostree, although at least rpm-ostree now unconditionally uses staging, and while it generally worked well, we hit issues with people using slower hard drives, hence the increase in timeout in PR #1755 . + Another change to call out is: lib/commit: Don't chown objects to repo target owner. We previously had incomplete support for a process running as uid 0 writing to a repository owned by a non-zero uid, but it was never finished. This will likely be revisited at a later time.- Update to version 2018.8: + This release is pretty much all minor bugfixes: memory leaks, fixing error messages and docs, handling a race condition on pull with summary updates. There's one new feature (noted below), and we also gained a new contributing tutorial: https://mail.gnome.org/archives/ostree-list/2018-August/msg00005.html + The one bugfix I want to call out explicitly is: ostree-remount.service: RemainAfterExit=yes (gh#ostreedev/ostree#1697). It's surprising it took us so long to find and fix this; I've seen occasional boot failures that I believe trace down to this problem. The behavior of systemd units of Type=simple without RemainAfterExit=yes set is rather nonsensical; I may try to push to have a warning emitted upstream if such a unit is a dependency of another. + And the one new feature is the auto-update-summary config option for repositories. For more information, see the docs and gh#ostreedev/ostree#1681. - Rebase ostree-grub2-location.patch with quilt. - Drop libostree-fix-wformat-warnings-on-i586.patch: Fixed upstream.- Update to version 2018.7: + There's no one major feature in this release, but we have a variety of improvements and bugfixes.- Update to version 2018.6: + lib/repo: Do free space math under lock in error path. + lib/archive: Tell g-ir-scanner to ignore the private libarchive bits. + deploy: Delete .updated file from /etc and /var on new deployments. + switchroot: Allow letting ostree-prepare-root mount /var. + lib/repo-pull: - Support retries for delta superblocks; - Support queuing delta superblock requests; - Add some missing assertions for progress statistics; - Support retrying requests on transient network errors. + ostree/trivial-httpd: Add --random-408s command line option. + fsck: Add --all to print all corrupted object. + bash-completion: Don't add a space after files and directories. + u-boot: add support for devicetree. - Changes from version 2018.5: + lib/sysroot: Add OSTREE_EX_STAGE_DEPLOYMENTS environment variable. + docs: Add "Hello World" example. + lib/deploy: - Do post-ops when removing staged commit; - Also compare deployment csum versions. + repo: Add checksum to error message opening unreadable object + deploy: - Don't prune repo at finalization time by default; - Return staged deployment; - Silently do nothing if passed same set of deployments. + man: Add man page for create-usb. + fsck: Mark commits with missing or deleted object partial. + Add concept of "staged" deployment. + bin: Hide `admin instutil` command. + pull: Don't save summary to cache before validating signatures. + lib/repo-pull: - Improve error message when no summary is found; - Rename a variable for clarity. - Add libostree-fix-wformat-warnings-on-i586.patch to fix 32-bit arch building failure.- Update to version 2018.4: + A quick turnaround after 2018.3 to include one main PR: gh#ostreedev/ostree#1508. + "switchroot: Ensure /run/ostree-booted is created even without initramfs". + This fixes ostree when booting without an initramfs. Thanks to @akiernan for the bug report and helping review the fix! I'm working on enhancing the test suite, which will help in adding some coverage here. - Changes from version 2018.3: + Keeping up with our ~monthly cadence. A variety of contributors here again, it's great to see! There's two notable features, and a variety of non-critical bugfixes. + On the features side we have: - sysroot: Add concept of deployment "pinning". - ostree: introduce PAYLOAD_LINK object type. - lib/fetcher: Allow clients to append to User-Agent. + By default libostree prunes older deployments; the pinning feature allows you to explicitly retain them until unpinned. This is useful for major version updates. + The PAYLOAD_LINK functionality allows libostree to do content-based deduplication. Previously, if e.g. a file changes in metadata (mode, owner, xattrs such as SELinux labels), we can't make a plain Unix hardlink, and hence by default end up with a new copy on disk. However, the Linux kernel has standardized "reflinks" and some filesystems support them, including modern versions of XFS. When reflinks are available, this functionality causes libostree to compute a content-only payload, and when importing an object, if it matches in content with an existing object, to use reflinks to deduplicate, while using different inodes. + Finally, the HTTP User-Agent API is intended for higher level tools linking to libostree where one wants to expose the app version as well. + Beyond that, as mentioned above we have a variety of non-critical fixes such as memory leaks, test suite improvements, correctly printing the "would be pruned" size when using prune --no-prune, etc. - Changes from version 2018.2: + We're keeping up with the approximately-monthly release cycle. There's mostly a collection of smaller fixes here, with some enhancements. I'm biased but my personal favorite is gh#ostreedev/ostree#1438 since it makes the output of findmnt rather significantly nicer on this workstation where I have container tooling creating sub-mounts in /var that are no longer replicated in /sysroot. + For the embedded space, gh#ostreedev/ostree#1411 for devicetree support is likely interesting, and is related to a discussion on the mailing list: https://mail.gnome.org/archives/ostree-list/2018-February/msg00001.html + Jonathan's PR gh#ostreedev/ostree#1441 to add callback filtering to checkout was necessary for us to re-implement some hairy logic from librpm around "file coloring"; see projectatomic/rpm-ostree#1227 We're getting quite far along now in having rpm-ostree be a truly hybrid system, supporting the existing RPM ecosystem. + Marcus definitely wins the "lines changed" count this cycle by adding SPDX-License-Identifier to all of the C source files (gh#ostreedev/ostree#1439). This happened because we relicensed the documentation to dual CC BY-SA and GFDL in gh#ostreedev/ostree#1432 to enable a Wikipedia page which I just noticed exists now!- Drop pkgconfig(libgsystem) BuildRequires: this is no longer needed.- Modernize spec-file by calling spec-cleaner- Update to version 2018.1: + Support for booting without initramfs. + bash/ostree: add missing --add-metadata option. + bin/commit: add --keep-metadata option. + bin/commit: move parent checking code higher up. + bin: Fix cookie builtin build with curl but no soup. + build-sys: Allow building with curl, but without libsoup. + build-sys: Link with -ldl for rust build. + deploy: add --karg-none argument. + find-remotes: Add --finders option. + grub2: Exit gracefully if there's no system ostree repository. + lib/checkout: Validate pathnames during checkout. + lib/fetcher: Add version to USER_AGENT string. + lib/pull: allways include ostree-repo-pull-private.h. + lib: Validate metadata structure more consistently during pull. + ostree-prepare-root: enabler for simpler kernel arg. + rofiles: Add --copyup option. + rofiles: Fix --copyup when creating a new file.- Update to version 2017.15: + The headlining feature in this release is support for repository locking, contributed by Dan Nicholson. Currently it is disabled by default; add locking=true in a repository configuration file to enable. This feature should be considered as "tech preview"; it's highly likely we'll stabilize it in its current form, but it's possible something will change. Currently the locking only protects commit + prune; there is a large pending PR to extend locking to many more APIs and commands. + Several new APIs were added; for example libostree now has a convenient API to break a hardlink, which happens in e.g. rpm-ostree in several places such as handling the RPM database. + Also, multithreading support in the commit APIs was cleaned up and clarified. It's now possible to call transaction_set_ref() from multiple threads, which rpm-ostree uses now to import RPMs to OSTree in parallel. + We're tracking an issue with http2+libcurl and it looks like there are a number of issues still floating around HTTP2+libcurl (some are server bugs), that we added support at both build and runtime to disable http2. + The fsck command learned how to verify ref bindings, and relatedly, the commit command gained a --unbound option to skip creating ref bindings.- Update to version 2017.14: + This release is almost entirely bugfixes. One notable fix is a read-after-free when libcurl is finalizing that some people have hit. + There are a number of improvements around the ${repo}/tmp directory and the per-transaction staging directory in preparation for adding locking in a future release. This release should already help avoid several failures when doing concurrent commits; the aim of the locking work will support concurrent prunes and commits.- Update to version 2017.13: + A lot of across-the-board improvements here; the pure bugfixes are mostly in the experimental Avahi bits, hardening the FIFREEZE on /boot code, explicit errors when trying to commit non-UTF8 filenames, and finally a number of fixes around our use of mmap. + One slight backwards-incompatible change (but I doubt it'll break anyone): Disallow refs starting with a non-letter or digit If this does affect you, please let us know ASAP. + For improvements, first up, Alex changed the static delta code to avoid holding everything in memory; this is a substantial improvement for large deltas, and also for flatpak which uses deltas as a "bundle" format. + A few notable changes: - commit: Add _CONSUME modifier flag. You probably want to use this by default for your build/package systems. - core: Add standard SOURCE_TITLE metadata key. This one I think is conceptually quite interesting; for many people, their ostree commits are derived from something else that has its own versioning, and it's useful to show that explicitly. I encourage ostree-based build systems to consider rendering human-readable information about your builds into this standardized metadata key. - On the command line side: cleaning up the --help output significantly.- Update to version 2017.12: + Quite a lot in this release. First, on the notable bugfix side, we fixed an issue where background threads could remain alive after an error was encountered during pulls. Particularly for projects like flatpak that do multiple pulls in process, this is an important fix. + Another important change related to pulls is that libostree now performs checksums when mirroring again. The intent here was to speed up mirroring, but it led to a confusing security story. Now it's easier to explain: for HTTP pulls we verify checksums (and this can be disabled), for local filesystem pulls we don't, (but it can be enabled). We've always verified checksums by default when pulling from an archive repository into a non-archive. + Anton Gerasimov contributed a change to the libcurl backend to support PKCS#11 URIs, useful for storing certificates in a hardware or software enclave. + The schema for the experimental OstreeRepoFinderMount API to find OSTree repos on removable media has changed incompatibly, so that the media doesn’t need to contain two similar lists of refs. It will now look in .ostree/repos.d, .ostree/repo, ostree/repo and var/lib/flatpak paths on removable media. + Similarly, the experimental ostree_repo_resolve_keyring_for_collection() API has changed to return an OstreeRemote containing the keyring, rather than just the keyring, making it more generally useful. + The bloom filter used when finding refs from remote peers has been fixed to work correctly on 32-bit architectures (such as ARM). This doesn’t change the bloom filter format, but will require bloom filters created on 32-bit architectures to be regenerated in order for advertisements from those machines to work. + Repositories which have a collection ID set will now put their repository metadata in an ostree-metadata ref when ostree summary --update is run, in addition to putting it in the summary file. This is part of a plan to securely allow unsigned summary files for peer-to-peer pulling of refs. This won’t happen for repositories which don’t have a collection ID set, or if --enable-experimental-api is not configured. + A new ostree create-usb command has been added (if configured with --enable-experimental-api) which can be used to put refs from repositories onto removable media in a format which can be detected by OstreeRepoFinderMount. For example, to allow easy sharing of flatpaks or OS updates between offline machines. + OstreeRepo has gained hash() and equal() methods, so it can now easily be used in a hash table based on its device number and inode, rather than using its path. + A minor bug was fixed in rofiles-fuse, which would cause files to be created with random mode bits if called for O_RDONLY. + For clients that use OstreeRepoDevInoCache, a bug was fixed which caused libostree to ignore callbacks that allow modifying file modes, ownership, and extended attributes. + libostree now supports --with-crypto=gnutls. Like the OpenSSL support, this is currently just checksums, but we are driving this towards making the GPG dependency optional and supporting other signature methods. + In previous releases, libostree learned how to make hardlinks for local pulls. But if we couldn't hardlink (e.g. the devices were separate), the local pull code went through a much slower generic path that included re-checksumming objects. Now there's a copy/reflink fast path that uses FICLONE/copy_file_range() directly if possible. This can be substantially faster. + ostree prune learned a new --only-branch option. This can be a lot more convenient for release engineering tasks. + As usual, more work was done to improve the testsuite. It should now be able to better detect tmpfs/overlayfs environments. The upstream CI now also runs tests in a non-overlayfs environment for better coverage. - Changes from version 2017.11: + This release has a few new features, some UX improvements for the command line, and a variety of bugfixes. + The project is now more canonically called "libostree", though "OSTree" and "ostree" are also fine. + The most important bugfix for anyone using rofiles-fuse (typically build systems, rpm-ostree also uses it) is: - rofiles-fuse: Fix lchown() and hardlink verification for symlinks. + On the features side, we've added a few new APIs to the libarchive importing and checkout path that will be used by rpm-ostree. This should be of interest to anyone using libostree for build systems or underlying a hybrid image/package system like rpm-ostree. + Also on the host system side, there is a new (canonical) place for build systems to put the kernel/initramfs: /usr/lib/modules/$kver. + Make all of the deployments show up in the uboot configuration, to help enable automatic fallback if a new OS fails to boot. + Lots of style cleanups, some "error prefixing" work to ensure we produce understandable errors in more situations, and one other notable cleanup: add a tmpfiles.d snippet to clean up /var/tmp/ostree-ovl.XXX. This should be nice for anyone who uses ostree admin unlock frequently. + Improve the management of configuration for remotes. + Lots of cleanup in the command line parsing and fixes for - -help, and also helped with the new --selinux-label option for ostree commit. + Fix the handling of GPG keys that have subkeys. + Fix the build system and tests.- Update to version 2017.10: + In this release Coverity scans were set up , and fixed all of the problems it found. None of the issues were critical; the only off-by-one array indexing for example was in a test case. + Add bash completion. + Documentation fixes. + There are a number of smaller features: - lib/repo: Add API to create and list ref aliases. - repo: Introduce ostree_repo_open_at() and ostree_repo_create_at() is a notable new API, and finally completes our fd-relative porting for OstreeRepo. The semantics of these functions are nicer; it's now more convenient to unconditionally call ostree_repo_create_at() for example to ensure a repository exists, returning the opened result. + lib/sysroot: Add journal-msg signal is a nice cleanup in that we finally stopped doing printf() in the library code for OstreeSysroot. If you maintain a client, you should start listening for this signal, like the demo command line does (if you want the text of course). + In the "important bugfixes" category, pull: mark commits from local cache as partial fixes up the --localcache-repos logic. + Also a number of bugfixes contributed for the collections logic as well as cases of trying to download a missing summary file.- Update to version 2017.9: + A notable new feature in this release is that the pull machinery now interprets two new metadata keys: ostree.ref-binding and ostree.collection-binding. This allows closing a longstanding class of "sidegrade" attacks that Florian Weimer identified when performing a security audit of libostree years ago (bgo#724873). There was a more recent discussion on this topic on the list: https://mail.gnome.org/archives/ostree-list/2017-May/msg00013.html + For the ostree-as-host case, this only matters if you offer multiple refs. For flatpak, it's more important as a MITM attacker could actually switch applications; that's why flatpak implemented this a while ago as xa.ref. + I'll note here that it's recommended for content providers to make use of ostree's support for tls-ca-path to implement TLS CA pinning, which protects all metadata and content in a strong fashion; in this scenario the GPG signatures act as a secondary layer of defense and make offline verification easier (for e.g. mirroring). + Otherwise, there's some performance enhancements for local pulls, and a variety of bugfixes.- Update to version 2017.8: + This is a quicker release closely following 2017.7, but it still includes a number of changes. First, a lot of work is landing from Philip/Krzesimir for doing "collections" and pulling content from Avahi/USB drives etc. That work is still underneath --enable-experimental-api, but look for more from that soon! + Other notable user-visible features from this cycle are: - lib/repo: Add min-free-space-percent option, default 3%. - Add "pull --localcache-repo". + An important bugfix for bare-user repo mode owners is: lib/commit: Ensure bare-user objects are always user-readable. + Besides that we have a lot of code cleanup, CI work, etc.- Update to version 2017.7: + The most notable thing for this release is that for flatpak users/distributors, this release adds a lot of (opt-in) hardening against setuid or world-writable files. These issues are also (to a lesser degree) applicable to ostree-based build systems which use the bare-user repository mode. A pending flatpak version will require this version of libostree. + For ostree-as-host, we fixed a major regression in SELinux labeling for /etc (only applies to SELinux-using host systems). + Known issue: test-symbols.sh will fail when building from the tarball (as opposed to a git clone). + Besides that, there's various smaller cleanups and fixes. It's great to see contributors from a variety of organizations; having libostree be a shared infrastructure layer across distributions is a longstanding vision.- Update to version 2017.6: + One of the most notable changes in this release is that we switched to using a systemd generator for handling /var, which means admins can now set it up as an explicit mount point. We feel pretty confident in the code, but do test your specific setup. One note in particular; the new model (obviously) requires systemd, and while we tried to preserve the non-systemd path, it wasn't explicitly tested. + The work to port to a new code style continues rapidly; at this point most of the library is converted, with just the command line remaining. I think the new style is a lot more readable now that we rely fully on __attribute__((cleanup)). + Enhance the OstreeAsyncProgress reporting API, which I think is going to be quite useful for user interface frontends (like GNOME Software). + There's a smattering of smaller bugfixes; minor memory leaks, double close() and the like. In this cycle we also beefed up our CI/testing more - we now test both Fedora Atomic Host and flatpak more explicitly. Contributions to extend the suite to other distributions would be appreciated; for example, tests for ostree-as-host on Debian. Our Travis-executed tests should be extensible. + Fix some of the test suite for installed tests, and also introspection fixes for language bindings. + Another feature that involved a lot of internal changes is our handling for /etc on SELinux-based systems. We now label files as we go rather than having a more fragile separate relabeling path. This is also exposed as an API, which is used by rpm-ostree now. I think this particular change highlights the strength of "libostree" as an API that can be reused by higher level systems. - Changes from version 2017.5: + This is a bugfix release for 2017.4 to fix a regression that broke flatpak. - Changes from version 2017.4: + A notable new feature in this release is a fourth repository mode: "bare-user-only". This is very similar to bare-user, but canonicalizes permissions and ignores xattrs. The intended use of this is for "non-OS" container tools such as flatpak, where one intentionally discards the traditional file ownership. (I'm calling this container case "non-OS" to distinguish from other container tools where one might want to "log in" via PAM and supporting distinct UIDs inside a single container is valuable) + We have a few new APIs, such as ostree_check_version() which is important when making use of some of the "API extensions" we have using GVariant on e.g. ostree_repo_pull_with_options(). + The diff is a bit larger due to us switching to a new code style. + Another quite important change is that ostree trivial-httpd is disabled by default. With a libcurl build, this is the last part that links to libsoup. It's only needed for unit tests, so can be subpackaged or discarded. (We're doing the latter for Fedora). + Speaking of curl, we now support --with-openssl which enables using OpenSSL's libcrypto for SHA256. This can be notably faster. You likely want this if e.g. libcurl is already linked to OpenSSL for you. I'm increasingly confident in the curl code, and should be ready to recommend using it by default in the next release or two.- Update to version 2017.3: + contrib/golang: rm directory. + deltas: Don't put unreadable *from* objects in fallback. + delta-show: Don't dump whole superblock, do show fallback checksums. + repo: Fix static delta progress display. + pull: Explicitly error out if metadata objects are fallbacks. + pull: Fold together deltapart+fallback count for display. + ci: Install PyYAML. + lib: Ensure an error is set in ensure_unlinked() if errno != ENOENT. + libtest: Re-enable quiet mode for building fs tree. + README.md: Add more/clean up links to consuming projects. + libglnx: Re-bump to master due to accidental reversion. + ci: Hard error on all -fsanitize=undefined warnings. + build: Add --with-smack, use it to reset contexts for writing objects. + main: Make ostree --version output YAML (and add gitrev). + deploy: Correctly use libmount unref() calls rather than free(). + man/repo-config: Document mirrorlist. + tree-wide: Squash noncritical compiler warnings. + deploy/libmount: Fix build with old util-linux 2.23 (CentOS7). + fetcher: Log failures into journal. + upgrade: Add support for --pull-only and --deploy-only. + grub2: Use g_spawn_sync() rather than GSubprocess to avoid SIGCHLD. + deltas: Expose the filename parameter. + pull: don't use static deltas if archive repo. + libglnx: bump for -Wmaybe-uninitialized fix. + grub2: Use "linux16" only on x86/x86_64. + pull: Use all available commits for delta sources. + build: Fix disabling --enable-man if xsltproc is not available. + fetcher/curl: Fix leaks caught by ASAN. + libostree: Allow compression level to be set for archive-z2 stream. + Allow and start using C99 declaration-after-statement. + repo/checkout: Verify early if src/destination are on same device. + checkout: Support a "pure addition" mode. + repo/checkout: fix 32-bit builds. + repo-pull: add option to set the async update frequency. + ostree: allow setting update frequency from command line. + repo/checkout: Convert a few functions to new "stmt-decl/FALSE" style.- Update License: this should be LGPL-2.1+, not GPL-2.0+.- RPM group changes- Update to version 2017.2: + libostree: Don't distribute generated enumtypes in tarballs. + lib: Adjust comments in symbols section for last release. + lib: Prefix GPG errors with the checksum. + lib: Move the bupsplit selftest into our test framework. + Rename to libOSTree. + oxidation: Add implementation of bupsplit in Rust. + trusted.gpg.d: keep in the same location. + lib: Add ostree_repo_reload_config(). + rust: Support `make dist` -> cargo vendor. + repo: Add archive/zlib-level option, drop default compression to 6. + fetcher: Drop the libsoup queue. + libcurl backend. + fetcher queue: also throttle on outstanding writes. + libostree: added empty ot_cleanup_{read,write}_archive macros. + ostree-repo: Clarify error behaviour of remote option getters. + admin-switch: Don't segfault if there's no remote. + commit: Support -F/--body-file, like git. + build: Remove .PHONY for Rust shared library. + rofiles-fuse: Support write/read_buf(). - Rename from ostree to libostree, following upstream.- Update to version 2017.1: + This release has mostly bugfixes, the main new feature is that the prune command gained more sophistication around selectively pruning branches. We're planning to use this in Project Atomic work where we want to co-locate both "development" and "stable" branches in the same repository. + The next release is likely to be more exciting, as we have an additional new libcurl backend in the works - this release contains some preparatory cleanup for that.- Update to version 2016.15: + This release is mostly bugfixes - for example, it cleans up the vast majority of memory leaks caught by ASAN. We also build without libsoup again, which is preparatory for a potential addition of a libcurl HTTP backend. + Another notable change is that we now always checksum individual objects even when applying static deltas, regardless of whether or not the summary file is signed. This is part of an ongoing thread about supporting OCI as a transport layer. - Add pkgconfig(zlib) BuildRequires: configure explicitly checks for it.- Update to version 2016.14: + otutil: Note that ot_log_structured takes a printf format. + libglnx: Bump to master (for -fsanitize fixes). + Distribute test scripts even if we wouldn't run them. + Distribute valgrind suppressions in tarballs. + Filter bootloader supplied kernel cmdline options. + repo: Don't put remote refs in the summary file. + pull: Don't do deltas with --commit-metadata-only. + pull: Add per-remote cookie jar. + remote: Add command to list cookies. + remote: Add commands to add and remove cookies for a remote. + OsreeFetcher: Treat 403 as not found. + trivial-httpd: Add support for checking cookies. + Update documentation for cookie handling commands. + deltas: Only keep one file open at a time during compilation. - Changes from version 2016.13: + pull: Add support for `http-headers` option. + pull: Redo logic for "scanning". + commit: Fix reading xattrs from OstreeRepoFile:s. + lib: Define and use cleanup functions for gpgme. + lib: Split out helper function to create GPG context. + Add "gpgkeypath" option to remotes. + lib: Add an API to GPG verify a commit given a remote. + pull: Do GPG verify commit objects when using deltas.- Add pkgconfig(libsystemd) BuildRequires: configure explicitly calls on both .pc names (systemd and libsystemd). We do want to stay independent of potential systemd packaging changes.- Update to version 2016.12: + pull: Support inherit-transaction. + pull: Support multiple specifications of --subpath. + docs: amend vmlinuz & initramfs naming convention. + ostree-sysroot-deploy.c: delete redundant check. + OstreeFetcher: provide proxy credentials if needed. + core: Do create hardlinks to symlinks for checkouts. + add .redhat-ci.yml and .redhat-ci.Dockerfile. + .redhat-ci.yml: use projectatomic/ostree-tester. + Fix regression for symlinks in bare-user repos. + ostree_repo_read_commit_detached_metadata: Handle parent repo. + detached metadata: Put these in transaction. + Release 2016.12.- Update to version 2016.11: + static-delta: add some error handling. + pull: Do allow executing deltas when mirroring into bare{,-user}. + ostree-repo.c: Fix file descriptor cleanup. + ostree_sysroot.c: Don't close sysroot_fd twice. + sysroot: Port some small cleanup code to fd-relative. + sysroot: Port origin writing code to fd-relative. + sysroot: Drop an fsync for origin file when writing deployments. + sysroot: Drop an unnecessary fsync. + boot: Ensure we remount /var writable before systemd does journal flush. + ostree_sysroot_init_osname: also create /var/log. + docs: add mention of rpm-ostree package layering. + admin: Allow running status unlocked. + Fix spelling of "repository". + checkout: Fix fsync defaults for new API to be off for real. + trivial-httpd: Port mostly to fd-relative. + libglnx: Update to latest.- Update to version 2016.10: + pull code: support contenturl setting. + trivial-httpd: prepend timestamp in log file. + pull: drop fetching_sync_uri. + pull: add mirrorlist support. + libtest: add has_gpgme() helper function. + tests: add tests for contenturl and mirrorlist. + pull code: clean up mirrorlist hack. + build: Set --enable-man during distcheck. + build: Distribute man page XML source. + build: Actually distribute man page XML source. + switchroot: Fix build on Ubuntu. + switchroot: Fix test-switchroot now autotools can build static. + ostree-prepare-root: Error if realpath fails. + ostree-prepare-root: Fix running with musl. + gpg: do not segfault when the algorithm name is not known. + repo: Revert default timestamp from 1 back to 0. + delta: Add missing `goto out` for failure to mmap(). + repo: Only use mmap() for metadata > 16k. + delta: Unreference files we've processed. + fetcher: Fix another finalization deadlock. + sysroot: Avoid double cleanup, and ensure no cleanup if specified. + core: Make OSTREE_TIMESTAMP public API. + Release 2016.10.- Update to version 2016.9: + libostree.sym: Add 2016.9 section. + deltas: Handle cleanup of fd array properly. + deltas: Use F_DUPFD_CLOEXEC properly. + pull-local: Support requiring static deltas. + tests: Ensure deltas for pulling when needed. + pull: Disable static deltas by default for local pulls. + tests: Test that local pulls do not use deltas. + Move ostree-* executables to /usr/lib/ostree. + ostree_bootdir: prepend $(prefix) to path. + ostree_bootdir: properly preprend $(prefix). + manual/repo.md: reword bits about the summary file. + repo: Really ignore progress changed user data. + fix typo in docs/manual/atomic-upgrades.md. + prune: Elaborate on what formats are accepted by dates. + fixup! fix typo in docs/manual/atomic-upgrades.md. + test-rofiles-fuse: Actually check out via hardlinks. + rofiles-fuse: Rework to be based on nlink. + pull_with_options: fix remote parameter name & desc. + pull_with_options: allow GPG verification override. + pull_with_options: fix stray return FALSE. + pull: Make .commitpartial files world readable. + repo: Add prefixes to errors for querying size/deleting. + lib: Add an API to list only "our" objects, fix prune to use it. + pull: use same name for parameter and documentation comment. + u-boot: Merge ostree's and systems uEnv.txt. + sysroot: Drop unnecessary `dup()` invocation. + sysroot: Add a flag to suppress post-deploy cleanup. + commit: Don't delete tmp/cache dir. + switchroot: Fix building with musl libc. + ostree-prepare-root: Allow building statically with musl. + switchroot: Replace custom error printing with err/warn functions from libc. + switchroot: Move `path_is_on_readonly_fs` to header file. + repo-pull: properly store the cancellable.- Update to version 2016.8: + Almost entirely bugfixes. Most notable is a fix for a relatively rare race condition in the pull code on cleanup (after completion), and also a memory leak. + Besides that, there are improvements for the test suite, some more porting away from libgsystem, a bugfix for static deltas important to flatpak, build tweaks for older glib, etc. - Changes from 2016.7: + There's quite a lot of changes in this release since 2016.5, but one thing to call out explicitly it is a fixed race condition in the HTTP pull code that could cause hangs or crashes that mostly occurred only when doing "large" pulls (thousands of object requests). If this occurs, client systems can work around it by cancelling and retrying the pull.- Move grub2 related files to new ostree-grub2 subpackage (similar to Fedora), only used to integrate ostree with grub2 (fully fix boo#974714).- Update to version 2016.6: + refs: add "ostree refs --create" and unit tests. + manual: Link to mender.io. + Add "archive" as an alias for "archive-z2". + libglnx porting: delete temp files on failure of file creation. + repo: Avoid a possible divide by zero in progress. + manual: Discuss mirroring. + build: Fix libreaddir-rand to honor global CFLAGS. + tests: Support OT_SKIP_READDIR_RAND. + pull: Ensure we always process queue only from main thread. - Switch git url to https://github.com/ostreedev/ostree. - Fix Url in specfile.- Add ostree-grub2-location.patch: Fix path to find grub-mkconfig_lib. openSUSE installs those files to /usr/share/grub2, upstream would do /usr/share/grub (boo#974714).- Update to version 2016.5: + Add a stub .travis.yml. + tests: Add a test-abi. + pull: Add OSTREE_REPO_PULL_FLAGS_UNTRUSTED flag. + Add --untrusted option to pull and pull-local. + OstreeSePolicy: add ostree_sepolicy_get_csum(). + core: Add verbose messages for pruning. + core: Add debug messages for traversing. + build: Set G_LOG_DOMAIN to OSTree. + main: Set log handler for OSTree domain. + packaging: fix bashism in dist-snapshot target. + docs: Add a section on repository management. + commit: Support generating commits with no parent, or a custom one. + commit: Support writing orphans. + commit: support editor for orphan commits. + docs/CONTRIBUTING.md: Update for github move, Homu etc. + test-xattrs: use TAP syntax to skip test. + various tests: skip if temp directory lacks xattr support. + Symlink libreaddir-rand.so into tests directory. + tap-test: clean up temporary test directories as intended. + In tests that use gpg, terminate the gpg-agent after testing. + Load g-i bindings from builddir during build-time testing. + tests/admin-test.sh: this is a bash script, not a POSIX sh script. + Force libreaddir-rand to be a shared library. + Skip tests that run rofiles-fuse if /dev/fuse or /etc/mtab unavailable. + test-pull-untrusted.sh: always corrupt a regular file, not a symlink. + basic-test: commit with a non-empty subject. + Probe for GNU parallel more accurately. + tests: Make failing to kill the GPG agent non-fatal. + libtest.sh: use G_TEST_SRCDIR, G_TEST_BUILDDIR to find resources. + test-abi: use G_TEST_SRCDIR, G_TEST_BUILDDIR. + test-xattrs: sync how this is skipped with test-rofiles-fuse. + libtest.sh: only check whether $(pwd) is empty once. + manual: Fix a bunch of typos and docbookisms. + Introducing ostree-grub-generator. + pull: Don't try to cache summaries for pull-local. + Fix local-pull test. + pull-local: Support --gpg-verify and --gpg-verify-summary. + build: Find grub2-mkconfig a bit more automagically. + build: Make tests/libreaddir-rand.so rule use AM_V_GEN. + tests: add libostreetest.h to EXTRA_DIST. + tests: add missing ${CMD_PREFIX} before ostree. + contrib: indent golang code using only tabs instead of both tabs and spaces. + Remove empty new lines at the EOF. + docs: Prefer the form "cannot" to "can not". + Use git.mk. + Support pathnames for --subpath=... + Export ostree_repo_get_remote_option* functions. + Inherit remotes and remote options from parent repo. + Add test case for inheriting remote options. + cfg.mk: ignore syntax-check for git.mk. + Add support for ostree static-delta delete. + small cleanups. + Fix the symbol versions for ostree_repo_get_remote_*option. + ostree-repo-pull: always initialize flags_i. + pull: More consistently use remote_repo_local for local repos. + build: Move grub2-15_ostree back to pkglibexecdir. + Fix AS_HELP_STRING for builtin grub2 mkconfig. + fetcher: Initialize output_stream_set_lock mutex. + commit: Fix crash if dfd_iter is NULL. + Add cache_dir_fd to OstreeRepo. + Add OstreeRepo option for an out-of-band cache dir. + man: Elaborate on per-remote GPG. + Add remotes-config-dir to OstreeRepo. + Look for $remotename.trustedkeys.gpg in remotes.d dir. + refs: Add g_prefix_error around opendir for easier debugging. + static-delta: Put temp files in /var/tmp. + static-delta: Initialize read_source_fd to -1. - Stop passing --with-grub2 to configure, no longer recognized.- Update to version 2016.4: + fetcher: Remove message_to_request table + fetcher: Convert from GSimpleAsyncResult to GTask + fetcher: Rework reference counting + fetcher: Track outstanding requests with a table + sysroot: Cleanup refs and prune even on last undeployment + pull: Recover from missing commits in recursive pulls + doc: Note that refs --delete does not prune + tests: Add a test for pull+deploy of specific "bare" commit + static-delta: Handle LZMA_BUF_ERROR returned by zlib + static-delta: Don't run bspatch when output object already exists + static-delta: Set error on bsdiff failure + commit: Improve variable name + Don't require /boot/uEnv.txt for u-boot support + tests: fix LZMA test to really compress/decompress + upgrader: Add ostree_sysroot_upgrader_dup_origin() + upgrader: Allow overriding the commit to pull + upgrade: Add --override-commit=CHECKSUM option + prepare-root: set up /boot bind-mount for single partition systems + static-delta: Fix annotation on ostree_repo_list_static_delta_names + sysroot: Write symlinks before calling fsync(), then rename after + init-fs: Explicitly set /tmp to 01777 + core: use OSTREE_OBJECT_TYPE_LAST instead of OSTREE_OBJECT_TYPE_COMMIT + pull: add support for tombstone commits + repo: create a tombstone commit when deleting a commit + fsck: add argument --add-tombstones + tests: add tests for prune and tombstones commits + docs: Note not to put private keys in /usr/share/ostree + generate-static-delta: Support min-fallback-size 0 to disable fallbacks + static deltas: Add support for inline-parts + static-deltas generate: Add --inline option to CLI tool + Add tests for inline static deltas + deltas: Make apply-offline only read the parts once + delta: Ensure the from commit exists when applying static delta + static-delta apply-offline: Don't skip validation + Add _ostree_repo_open|commit_untrusted_content_bare + deltas: Verify checksums in apply-offline unless skip_validate is TRUE + deltas: Make min-fallback-size 0 actually disable fallbacks + deltas: Support passing filename to delta generator + deltas: Support passing filename to ostree_repo_static_delta_execute_offline + pull: Verify checksums from static deltas unless gpg signed summary + deltas: Support including detached metadata in static deltas + libostree: Fix a couple compiler warnings + prune: add --delete-commit + fsck: create a tombstone when the parent is missing + tests: add test for ostree prune --delete-commit + prune: add --keep-younger-than=DATE + pull: make slightly clearer when failing for missing xattrs support + ostree: do not print the usage on each G_IO_ERROR_NOT_SUPPORTED + libostree: add new API ostree_repo_write_commit_with_time + commit: add --timestamp=TIMESTAMP + tests: add tests for prune --keep-younger-than=DATE + tests: prefix invocation of ostree with where missing + repo: Validate checksums have correct length + repo: Never delete .commitmeta files + trivial-httpd: Avoid SoupBuffer when there's no content + glnx: Update from master + fetcher: Remove "sending_messages" hash table + fetcher: Remove "total_requests" counter + remote: Print full refspec in "ostree remote refs" + repo: Fix backwards timestamp in ostree_repo_write_commit() + gpg-verifier: Fix compiler warning + Release 2015.11 + parse-datetime: use the module from gnulib + tests: add missing ${CMD_PREFIX} + cmdline: Fatally error if the timestamp in a commit is invalid + build: Delete generated parse-datetime.c file, use AM_V_GEN + build: Also add a configure check for YACC/bison + Update to latest libglnx + repo: Add _ostree_repo_allocate_tmpdir helper + repo: Use per-transaction staging dir + repo: Allocate a tmpdir for each OstreeFetcher to isolate concurrent downloads + fetcher: Add "config-flags" construct-only property + fetcher: Move the SoupSession to a separate thread + pull: Push a temporary main context for sync requests + build: Fix srcdir != builddir + repo: Add ostree_repo_verify_summary() + remote: Add "ostree remote summary" command + repo: new function ostree_repo_prune_static_deltas + prune: add new flag --static-deltas-only + tests: add tests for prune --static-deltas-only + deploy: Find kernel/initramfs consistently from filesystem + bootconfig: Add ostree_bootconfig_parser_write_at + deploy: Change large parts to be fd-relative, drop fsync + fetcher: Lazily create tmp directory + grub2_generate: load sysroot before using it + repo: Expose dfd-relative mtree writes as public API + repo: Add APIs for devino optimization between checkout -> commit + Release 2016.1 + repo: Note global transaction resume is legacy + sysroot: Don't individually fsync dirs in checkout, rely on syncfs + diff: do not traverse parent commits + Add a checkout option to skip fsync + refs: Add a missing `goto out` for error handling + grub2: Don't delete grub2.cfg.old file we just copied + tests: Use "bash strict mode" + build: Move man pages into man/ + build: Rename doc/ -> apidoc/ + Rewrite manual in mkdocs + apidoc: Remove unnecessary srcdir != builddir workaround + repo: Port -refs.c to openat() + build: Add --disable-man + lib: Add a #define OSTREE_SHA256_DIGEST_LEN 32 + build: Hoist man conditional higher + static-delta: Add `show` subcommand + packaging: Sync spec file with Fedora + build: 'make clean' removes parse-datetime.c + docs-md: Delete (obsoleted by docs/) + README.md: Update to link to Read The Docs, describe a bit better + build: Remove --disable-static-deltas option + lib: Create an internal static delta parsing/opening function + lib: Expand `ostree static-delta show` to show part stats + fetcher: Fix hung GTlsInteraction + Import rofiles-fuse + Add an `export` builtin, and API to write to libarchive + pull: Support specifying exact commit to pull via branch@commit + manual-tests: New static-delta-generate-crosscheck.sh + man/ostree-export.xml: Add to git + Support Docker-style whiteouts + packaging: Add a fuse subpackage + rofiles-fuse: Fix truncate call to not use O_CREAT + manual: Note that the bare-user mode exists + Rename libarchive write API to "export", matching command line + repo: Add ostree_repo_import_archive_to_mtree + ostree-sysroot: add debug option to help testing + pull: Add require-static-deltas pull option + pull: Add a --dry-run option for static deltas + build: Link ostree with libarchive + docs: Add a new formats section, move static deltas in there + libarchive: Make autocreate_parents imply autocreating root dir + build: Use threadsafe GPGME + gpg: Use gpg_strerror_r for threadsafety + Release 2016.2 + libarchive: Fix a 32 bit format warning + lib: Two more compiler warning fixes + deltas: Fix some more 32 bit warnings + deltas: Fix regression in ostree_repo_static_delta_execute_offline + rofiles-fuse: Handle operations on the root + deltas: Include an endianness marker + deltas: Use endianness marker when parsing + deltas: Heuristically detect endianness for older deltas + deltas: Add a compression size heuristic for endianness detection + Release 2016.3 + docs: Add a blurb on the summary file + Fix make syntax-check + test-rofiles-fuse: skip when fusermount is not present + lib: Introduce versioned symbols + repo: Add ostree_repo_get_dfd() + Add a missing #include to fix "make check" + ostree-repo: new public function `ostree_repo_list_refs_ext` + refs: allow to specify multiple refs as args + refs: add tests + libostree: Adjust `cleanup_ref_prefix` to use ostree_repo_list_refs_ext + refs: Add argument --list to print the full ref name + tests: Port to glib-tap.mk, make `make check` run all of the tests + deploy: Bump the mtime on ostree/deploy after deployments finish + tests: Convert two more exit 77 instances into TAP-compatible SKIP + docs/introduction: Note VMs vs baremetal + lib: Add ostree_sysroot_init_osname() API, bump mtime + tests: More TAP fixups + tests: Unify some tmpdir code, add ability for C to use libtest.sh + lib: Add ostree_sysroot_load_if_changed() API + tests/basic: Fix race in timestamp test + build: Don't install test data without --enable-installed-tests + docs: Reference the git docs on references + libotutil: new function ot_openat_ignore_enoent + pull: cache summary and summary.sig + repo: use the skip summary download optimization for repo_remote_fetch_summary + prune: delete all cached summaries files + tests: add test for summary file caching + repo: Fix the skip-summary-if-summary.sig-is-same cache + rofiles-fuse: Fix permission comparison + docs: Cleanup Markdown + docs: Add a section on writing buildsystems + contrib/golang: Initial golang bindings + tests: Strengthen test tmpdir sanity check, be compat with ginsttest saving + libglnx porting: gs_fd_close -> glnx_fd_close + libglnx porting: gs_free -> g_autofree + libglnx porting: xattr calls + libglnx porting: gs_transfer_out_value -> g_steal_pointer + Don't fail "ostree remote refs" if writing the summary cache is not permitted + manual: Migrate related projects wiki page into manual + deploy: Handle a read-only /boot + mkdocs: Fix the site name + tests/admin-test.sh: add #!/bin/sh + Skip test_libarchive_ignore_device_file if we cannot write xattrs + test-libarchive: fix underlinking + admin-switch: Add missing reboot argument + Use GSubprocess instead of GSSubprocess (libgsystem removal) + libglnx porting: Use glnx_set_error_from_errno + libglnx porting: Use glnx_shutil_rm_rf_at() + libglnx porting: Use glnx_opendirat() + admin: Add an `unlock` command, and libostree API + Fix building without libarchive + pull local: Don't import objects we already have + prune: Don't fail on partial commits + tests: Add a commitpartial + prune test + traverse: Require variant when traversing dirtree + Release 2016.4 - Add bison, pkgconfig(fuse) and pkgconfig(mount) BuildRequires: New dependencies.- Update to version 2015.9: + _ostree_static_delta_part_validate: Take a stream instead of a file as arg + sysroot: Add ostree_sysroot_prepare_cleanup() + deploy: Do not prune repository + libglnx: Update from master + reset: Simplify argument checking logic + repo: Fix build without libsoup + pull: Honor depth with OSTREE_REPO_PULL_FLAGS_COMMIT_ONLY + Mutable is a keyword in C++11 + Remove unused variables- Update to version 2015.8: + gpg: Add ostree_gpg_verify_result_describe() + admin: Show GPG signatures in status command + pull-metalink: Don't print error output when we expect failure + Add an API to set/unset a deployment tree's mutability + ostree_repo_checkout_tree_at: remove @subpath documentation + refs: Use *at for writes, honor repo fsync flag + repo: Add a private helper to replace a file, honoring fsync policy + libglnx: Pick up file permission regression fix + tests: Fix root uid check in test-commit-sign.sh + _ostree_repo_file_replace_contents: make buf const + summary: write the contents to a temporary file + config: add new parameter "commit-update-summary" to core section + libglnx: Update to latest + reset: Don't enforce parent commits + repo: Improve error handling in sign_data() + repo: Add a "gpg-verify-result" signal + pull: Print GPG signature status as soon as its known + repo: Add ostree_repo_remote_get_gpg_verify() + admin: Conditionally show GPG signatures in status command + sysroot: Cache an OstreeRepo instance + main: Tweak GPG output to match rpm-ostree + sysroot: Add ostree_sysroot_get_fd() + libglnx: Update from master + sysroot: Close sysroot fd in finalize + status: Don't crash if we deployed a local refspec + deploy: Use syncfs() in addition to sync() + deploy: Drop fsync of modified config files + deploy: Drop a fsync, use fd-relative APIs + README.md: fix typo + reset: update help output + pull: Always request detached metadata for commits + test-auto-summary.sh properly quote arguments to assert_streq + g_output_stream_splice: check correctly the error code + gpg: do not use secring.gpg + show: add option --gpg-homedir + libotutil: Establish a place for GPG utilities + libotutil: Add ot_gpgme_ctx_tmp_home_dir() + repo: Initialize GPGME in instance init() + ostree: Split up "remote" subcommands + gpg: Fix _ostree_gpg_verifier_add_keyring() + pull: the commit size in the summary is not for the detached metadata + Fix build when using GLib < 2.44 + sysroot: Add an API to lock + libglnx: fix reference to commit + repo: Fix an obvious typo + doc: remove unknown parameter from inline documentation + core: Cleanup commitpartial file with fd-relative lookups + Teach fsck about partial commits + libglnx: Pick up bugfix and backports + repo: Stop creating "transaction" symlink + gpg: Add ostree_gpg_verify_result_describe_variant() + Juggling libglnx.h includes + Use g_autofree instead of gs_free + Use g_autoptr() for GIO object types + Use glnx_unref_object instead of gs_unref_object + Use g_autoptr(GChecksum) instead of gs_free_checksum + Use g_autoptr(GBytes) instead of gs_unref_bytes + Use g_autoptr(GHashTable) instead of gs_unref_hashtable + Use g_autoptr(GPtrArray) instead of gs_unref_ptrarray + Use g_autoptr(GVariant) instead of gs_unref_variant + Use g_autoptr(GKeyFile) instead of gs_unref_keyfile + Use g_autoptr(GVariantBuilder) instead of gs_unref_variant_builder + Use g_auto(GStrv) instead of gs_strfreev + Remove unnecessary #include "libgsystem.h" + trivial-httpd: fix indentation + trivial-httpd: add option to specify the port + summary: list the available static deltas + core: new function _ostree_parse_delta_name + core: store information about delta files checksums + pull: check that the superblock checksum is the same as in the summary + pull: get rid of detached metadata for deltas + ostree-repo: add new API to sign the summary file + summary: add new command line arguments to sign the summary file + pull: verify signature for the summary file + tests: add a test for signed summary file + summary: delete summary.sig on an update + ot-fs-utils: remove empty line at EOF + gpg: Fix ot_gpgme_error_to_gio_error() + gpg: Add custom data buffers to wrapper GIO streams + repo: Simplify sign_data() a little + sysroot: Add a try_lock() API + ostree-repo-pull: add option to disable static-deltas + pull: add new switch option --disable-static-deltas + doc: add missing options block for pull + tests: add new test for pull --disable-static-deltas + syntax-check: add syntactic rule to prohibit gs_unref_* + syntax-check: add syntactic rule to prohibit gs_strfreev + maint.mk: Remove GNU releases specific bits + repo: Stash keyring name in OstreeRemote + repo: Delete a remote's keyring when deleting a remote + repo: Add ostree_repo_remote_gpg_import() + repo: Add remote's keyring during GPG verification + ostree: Add a "remote gpg-import" command + ostree: Add --gpg-import to the "remote add" command + tests: Add test-remote-gpg-import.sh + admin: Use locking for most sysroot commands + tests: Fix writable repo test + test-basic: Always chown back before doing assertion + ostree-repo: replace more gs_unref_(variant|bytes) with g_autoptr + repo: Bump mtime any time we write a ref + repo: Prevent GPG keys from being imported to keybox format + admin: Ensure instutil commands and usage help don't grab lock + ostree-repo: document OSTREE_REPO_COMMIT_MODIFIER_FLAGS_GENERATE_SIZES + Fix annotations on ostree_repo_remote_gpg_import(). + sysroot: Sort returned boot loader configs + tests: Add a test script to cross-check loader config vs GRUB2 + tests: Add a crosscheck for syslinux bootloader config generation + tests: Run all tests through a randomized readdir() + pull: Ensure console state for multiple GPG verification messages + pull: Validate delta checksums more strongly + tests: Add a commented out test for mirroring with deltas + repo: Don't crash when creating a summary if we have --empty deltas + tests: Add a test-pull-summary-sigs + Revert "tests: Run all tests through a randomized readdir()" + tests: Run all tests through a randomized readdir() + tests/remote-gpg-import: Only commit workdir + gpg: Gracefully handle no trusted.gpg.d directory + Fix tests on 32 bit systems + tests: Link test-gpg-verify-result with gpgme + tests: Use readdir64 when _FILE_OFFSET_BITS set + tests: Use temporary gpg homedir + Revert "tests: skip test-commit-sign.sh when not root" + Fix double free in ostree_repo_pull_with_options + repo: Change GPG verification policy + autogen.sh: fix typo + tests/test-pull-mirror-summary.sh: remove empty newline + pull-local: Support --depth option + metalink: Fix behavior when requested file is not found + tests/metalink: Add a case with nested unknown elements + diff: Fix adding CLI options twice + repo: Add _ostree_repo_remote_new_fetcher() + repo: Add _ostree_repo_get_remote_option_inherit() + repo: Handle "file" remotes in ostree_repo_remote_get_gpg_verify() + repo: Redo ostree_repo_remote_get_url() + metalink: Allow NULL for "out" params in metalink requests + metalink: Return requested file as a GBytes + repo: Add ostree_repo_remote_fetch_summary() + ostree: Add a "remote refs" command + pull: verify summary signatures also when not mirroring + repo: new function ostree_repo_remote_get_gpg_verify_summary + pull: fail if GPG is enabled and the summary is not signed + tests: add test for check for remote add - -set=gpg-verify-summary=true + ostree_repo_remote_fetch_summary: honor gpg-verify-summary + pull: Error if gpg=true and summary is 404, add more tests + core: Fix inverted conditional in GPG checking + pull: Also fix misplaced remote name handling + tests: Check error messages instead of "expected-fail", handle old parallel + build: Make gtk-doc optional + pull: Avoid leaking signal handlers across fetch requests + pull: Plug a memory leak + core: Add _ostree_get_default_sysroot_path() + sysroot: Use _ostree_get_default_sysroot_path() + repo: Add a "sysroot-path" property + sysroot: Pass the internal repo a system root path + repo: Fix location of remote configs for system repos + main: Fix UID check based on sysroot path + tests: Export OSTREE_SYSROOT in setup_os_repository + tests: do not commit from the working directory + libostree: new API ostree_repo_remote_list_refs + repo: merge repo_remote_fetch_summary_{metalink,url} + repo: new function _ostree_preload_metadata_file + pull: new option --commit-metadata-only + static-delta: do not fail compilation with big files + static-delta: add max-bsdiff-size option + repo: fix an incorrect comment + repo: don't forget to abort the transaction when failed + Update .gitignore + README: Attempt to flesh out more, start moving docs from wiki + tests: add tests for --disable-bsdiff and --max-bsdiff-size + tests: skip tests using gjs/parallel if they are not installed + Update .gitignore + tests: add tests for LZMA compressor and decompressor + sysroot: Add an unload() API + pull: Stop using GMainLoop + tests: rename test-rollsum to test-rollsum-cli + rollsum: Fix assertion for CRC matches + tests: Add tests for rollsum + repo-pull: Add a queue for scanning + Update .gitignore + tests: Build test-lzma with LZMA flags + static-delta: Ignore symlinks when computing similar objects + static-delta: assert on non-regular files- Update to version 2015.7: + critical update for v2015.4: fix a bug causing unpredictable ordering of generated syslinux/uboot/grub2 bootloader entries. + Performance enhancement for deployments; rely on syncfs() rather than individual fsync() calls. + GPG: Always retrieve detached metadata, so we'll find newly added signatures. + GPG: Support for keys specific to remotes, rather than relying on the global /usr/share/ostree/trusted.gpg.d + A new locking API (used for the commandline) so that concurrent invocations of e.g. `ostree admin upgrade` are safe. + Other enhancements targeted for the Cockpit program and rpm-ostree. + The summary file can now be GPG signed as well (preview). + Other changes to static deltas, which continue to evolve.- Update to version 2015.5: + pull: (trivial) Fix English in function name. + Fix make distcheck. + Fix repeated words. + Add infrastructure for "make syntax-check". + Remove trailing dot from error message. + syntax-check: quote the first argument to AC_DEFINE. + Remove unused include . + Remove unused . + Remove magic argument numbers to exit(2). + Do not interleave spaces and tabs. + Replace "==" with "=" in shell script test. + pull: use a single per-transaction syncfs instead of fsync. + syntax-check: Remove empty lines at the end of file. + tests: Move test-varint and test-rollsum under "make check". + configure.ac: Enable option subdir-objects for automake. + tests: Add tests for ot-unix-utils. + packaging: Add man5 pages. + prepare-root: avoid double-stacked /sysroot mount. + prepare-root: Update comments. + repo: Hold an fd "repo_dir_fd" open for the toplevel too. + util: Add an API to atomic-replace a file, dirfd relative, optional fsync. + Add an internal API to stream content objects. + When mirroring, write content directly, do not verify. + pull: Copy the upstream summary file when doing a pull - -mirror. + Add an internal API to get a read fd for a content object. + pull: Optimize file:/// URIs to skip libsoup and hardlink if possible. + Change pull-local to just be a wrapper for pull with file:///. + pull-local: Fix regression with absolute paths. + repo: Fix major performance regression with --scan-hardlinks. + repo: Store pending objects in prefixed subdirectory. + deltas: Use base64 for csums, add version to parts. + deltas: Remove support for gzipped delta parts. + deltas: Add _V0 to part #define. + deltas: Rework format to allow streaming. + deltas: Compute rollsum targets. + deltas: Print total size of rollsums we would use. + deltas: Stub out a few more opcodes. + deltas: Use the new internal streaming APIs. + deltas: Flesh out the open/write/close opcodes. + deltas: Initial code to copy content from existing objects. + deltas: Implement rollsums. + deltas: Make syntax-check happy. + deltas: Prune deltas when the corresponding "to" commit vanishes. + repo: Add a new iterator traversal API for commits. + deltas: Search for similar objects (possibly renamed across directories). + tests: Restore accidentally deleted Makefile bit. + libostree: set directory mtimes to 0 on checkout. + repo: Check for OSTREE_REPO in ostree_repo_new_default(). + tests: do not run tests/test-rollsum as part of make check. + Use libglnx. + deploy: Also look for /usr/lib/os-release. + checkout: Drop internal use of GFile *. + libglnx: Use git.gnome.org's copy. + repo: Port APIs used by prune to fd-relative *at calls. + Add explicit zlib dependency. + tests: Move test gpg keyring into writable tmpdir. + ostree-repo-traverse.c: Fix documentation parameter name. + Fix GObject introspection annotation. + ostree-repo-static-delta-processing: initialize "modev". + build: build libbupsplit separately. + prepare-root: Move /sysroot instead of unmounting it. + repo: detached sigs: Use error prefixing instead of overwriting. + ostree: Add gpg-sign command. + gpg: Remove _ostree_gpg_verifier_set_homedir(). + configure.ac: Bump GLib requirement to 2.40. + libotutil: Remove ot_variant_new_from_bytes(). + libotutil: Allow no variant in ot_util_variant_builder_from_variant(). + core: Add definitions for GPG signature metadata. + core: Fix duplication bug in _ostree_detached_metadata_append_gpg_sig(). + deploy: Use glnx file copy code. + repo: Drop internal GFile* API helper. + repo: Port hardlink-scanning code to fd-relative calls. + Add bsdiff submodule. + Add bsdiff support to deltas. + static-delta: increase threshold for rollsum to 50%. + tests: add test for bsdiff. + autogen.sh: replace all $(libbsdiff_srcpath) and $(libglnx_srcpath). + Fix "make syntax-check" failures. + Makefile.dist-packaging: fix make rpm with submodules. + static-delta: Add --disable-bsdiff option. + ostree_repo_static_delta_generate: add new param "verbose". + tests: enforce ${CMD_PREFIX} on all ostree processes. + tests: Remove some duplications from Makefile-tests.am. + deltas: Gather statistics on total number rollsum'd and bsdiff'd. + deltas: Use mmap() instead of copying input file. + commit: Add missing (allow-none) in write_ref_immediate(). + repo: Fix assertion to allow NULL options. + tests: add tests for mutable tree. + gpg: Rewrite OstreeGpgVerifier to use GPGME. + OstreeGpgVerifier: Take the signature as a GBytes. + src: drop some dead assignments. + ostree-repo-refs: Drop unused function "parse_rev_file". + ot_keyfile_copy_group: return FALSE on invalid inputs. + keyfile-utils: add tests. + tests: add test for test-ot-opt-utils. + libotutil: remove ot-waitable-queue. + src: Move ot-tool-util from ostree/ to libotutil/. + src: Drop unused argument "value" from ot_parse_boolean. + tests: Add tests for test-ot-tool-util. + sysroot: Read some bootloader state with fd-relative API. + sysroot: Read the bootloader configuration with fd-relative API. + sysroot: Make origin parsing code fd-relative. + glnx: Update. + ostree-prepare-root: log informational messages to stdout. + sysroot: Drop unnecessary new sysroot object. + deployment: Add an API to get relative origin path. + sysroot: Port some deployment reading code to fd-relative APIs. + README.md: Note make check. + configure.ac: Make gpgme a hard dependency. + build: Use both pkg-config and AM_PATH_GPGME. + repo: Delete .commitmeta file on empty metadata. + ostree-repo.c: fix typo. + OstreeGpgVerifier: Don't add trustdb.gpg to the keyring list. + OstreeGpgVerifier: Take the signed data as a GBytes. + fsck: Fix object count output. + gpg: Add OstreeGpgVerifyResult. + repo: Add ostree_repo_verify_commit_ext(). + repo: Reject duplicate signatures when signing commit. + gpg-sign: Add a --delete option to delete signatures. + show: Print a blurb for each signature on a commit. + tests: Update test-gpg-signed-commit.sh. + gpg: Link to GPGME bug about GPGME_SIGSUM_KEY_REVOKED. + gpg: Regenerate test data for test-gpg-verify-result. + Fix build failure on g_autoptr(gchar) with glib master. + build: ostree-gpg-verify-result.h is a public header, install it. + libglnx: Update to latest. + gpg-sign: Update man page for --delete option. + Fix build with !HAVE_LIBSOUP. + gpg-sign: Add missing NULL terminator in options. + Release 2015.4. + Add ostree_repo_is_writable(). + Add ostree_ensure_repo_writable(). + Check repo permission prior to attempting to modify it. + tests: Add a test case for unwritable repos. + Add OstreeAdminBuiltinFlags for admin commands. + Add OSTREE_ADMIN_BUILTIN_FLAG_SUPERUSER. + bsdiff: change submodule location. + core: Fix possible crash in ostree_mutable_tree_walk(). + Include ostree-gpg-verify-result.h in ostree.h. + main: Only verify SUPERUSER flag if using default sysroot. + build: Use glibc's xattr support instead of requiring libattr. + build: Drop libattr from the spec file. + tests/basic-test.sh: enable repo-noperm test only for non-root user. + src/ostree/ot-main.c: drop empty newline at end of file. + build: exclude .sig files from syntax-check. + tests: skip test-commit-sign.sh when not root. + dist-packaging: Don't delete 91-ostree.preset, do clean old rpms/sources. + tests: Missing linker flags for test-rollsum. + core: Actually allow none in ostree_parse_refspec(). + tests: Verify that the pull error was from interruption. + pull: Handle remote web server not honoring range requests. + ostree_repo_checkout_tree_at: New API for checkouts. + Release 2015.5. - Add libcap-devel BuildRequires.- Initial package, version 2015.3./bin/sh/bin/sh/bin/sh/bin/shostreesheep13 1661935354  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ2021.6-150400.3.3.12021.6-150400.3.3.12021.62021.6  dracut.conf.dostree.confostreerofiles-fuse98ostreemodule-setup.shlibostreeostree-trivial-httpdostreeostree-prepare-rootostree-remountostree-system-generatorostree-finalize-staged.pathostree-finalize-staged.serviceostree-prepare-root.serviceostree-remount.servicetmpfiles.dostree-tmpfiles.confrcostree-prepare-rootrcostree-remountostreelibostreeREADME.mdlibostreeCOPYINGostree-admin-cleanup.1.gzostree-admin-config-diff.1.gzostree-admin-deploy.1.gzostree-admin-init-fs.1.gzostree-admin-instutil.1.gzostree-admin-os-init.1.gzostree-admin-pin.1.gzostree-admin-set-origin.1.gzostree-admin-status.1.gzostree-admin-switch.1.gzostree-admin-undeploy.1.gzostree-admin-unlock.1.gzostree-admin-upgrade.1.gzostree-admin.1.gzostree-cat.1.gzostree-checkout.1.gzostree-checksum.1.gzostree-commit.1.gzostree-config.1.gzostree-create-usb.1.gzostree-diff.1.gzostree-export.1.gzostree-find-remotes.1.gzostree-fsck.1.gzostree-gpg-sign.1.gzostree-init.1.gzostree-log.1.gzostree-ls.1.gzostree-prune.1.gzostree-pull-local.1.gzostree-pull.1.gzostree-refs.1.gzostree-remote.1.gzostree-reset.1.gzostree-rev-parse.1.gzostree-show.1.gzostree-sign.1.gzostree-static-delta.1.gzostree-summary.1.gzostree-trivial-httpd.1.gzostree.1.gzrofiles-fuse.1.gzostree.repo-config.5.gzostree.repo.5.gzostreetrusted.gpg.dREADME-gpg/etc//etc/dracut.conf.d//usr/bin//usr/lib/dracut/modules.d//usr/lib/dracut/modules.d/98ostree//usr/lib//usr/lib/libostree//usr/lib//usr/lib/ostree//usr/lib/systemd/system-generators//usr/lib/systemd/system//usr/lib/tmpfiles.d//usr/sbin//usr/share/bash-completion/completions//usr/share/doc/packages//usr/share/doc/packages/libostree//usr/share/licenses//usr/share/licenses/libostree//usr/share/man/man1//usr/share/man/man5//usr/share//usr/share/ostree//usr/share/ostree/trusted.gpg.d/-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:25662/SUSE_SLE-15-SP4_Update/a8af3b86f6db2cca5b0156ebe45cf7aa-libostree.SUSE_SLE-15-SP4_Updatecpioxz5x86_64-suse-linux  directoryASCII textELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=0a03270953b27b4836690a1866341af91e241847, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=11ad57903a71bb72cc36c865f71742c741dc6609, for GNU/Linux 3.2.0, 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, BuildID[sha1]=918660b6fb2f93811b977e020d75c4841539e02e, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=e4b4de7b65d5f4b05a6c0493ee93f766efdd86da, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=f95cc98afacc8f5104303c2e8f562628d7f47126, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=b8ac21271cbfc751cb375a54cb8ad78d221d75a4, for GNU/Linux 3.2.0, strippedtroff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix)troff or preprocessor input, ASCII text, with very long lines (gzip compressed data, max compression, from Unix).=>JRX. R R RRR RRRRR R R7R$RR5R)R2R(R*R'RR.R R!R#R&R%R0RR+R"R/RR,R4R3RR-R1RRRRRR6RR%RRRRRR RR R7RRRR6RRRRRRR R7R8RRRR6RR:R RRR RR9RRRR R7R6RRR7RR RRR6ReP`$butf-8bf30fb4cd809ca5677c693bb63ef3ff719682c2d45dca3490aab6a7e3fef32b8?p7zXZ !t/k] crt:bLL ٖ9к٥y!<NSu(&U/΄/.0 #'AEaF_FWڃxjqe !%H=u"pAжGED0vQ(z;a܁u<=Swq$'PBH(}nQ|&s! mZ*UgP:qo2oJb ȪUkN:pb=tw`! c8./:8i!,\/eneRvIډUH+ztGD,30$iXm?Dw7Xa F?H+^8oZq-PBʺVev0BBIhWOf%g!!;ґ]fPjkg. idw@=B`(}Kcn 211Jtӓ4  FJFOH]60LB&[].W YFDG[yhP`8LQժ3"n^c-f#!VcN@~ <4_xկ~7ԒN|bXPc90(2.}6n 5->x(?]~/~:>TgR'q"9bu]2ӹX('xM$ n|fh%y}#t^46s~7nyc䩎B \ֹuS N i  b= 2/gq WMuCorO*MA˩$ԔE٦J̱#⳾h1&{;,$7ke6P*މW|$ap^nH%[Q}xfN{D-tU,il^hVfO^TTieOahכWT s﹑ F~n-ɣC&/6zHO8F۲ʇDmFk.&kNП&d6G5f{]qz]cx,|_y?L.+Si41SL}MƋ׃_ ~ w,%΅Ù7\ԕbdtm!QkXO>܏E1 N+y)fYjD.zL i[3$jSw.1ks[q6e !֑KC5)pܧYrqeGE ȣeLQ5>.)m:Tt) ʴ,0Gʏ#v*d:]$~eW5fY)8{yOJ8GS4()xȇNV)dM;{ }JLqo9s(<@ YhN_Av/^*Dk 5fumwDCSxH̬s6y!"ugEBs/g:ܘh[Dp)|+q_]Fݜ"PtBw`B 2G" F>dJ'Dwf2aΨœ?Kάbd6}vn3:B$3C/HLw|{^c!aHԉ#md<:}1(qr% ZO;ċx4߷>ҰLMx{ߡ2dYAf$آ!& k>f|0;תWKY늴ũ8)ؾ5P"*i}=cԯz$0,iBYCfہ~_7O֦dIujDTa?|8!ԫ&`WE䝪n<X@`vJ G]nP*Qkt@'.9^ʸiYC$um&pkUH7#wB 'Vpz+J!ƱULSs{:-;ݵzb -}72z TAtc%U0XAfI!Yu'&krC^DcIϏ&g6b93I&%3}a8%I4ekc@PbhH4вu#OQ6I5zcGo\,H7o όx͇l{b_%R|[_Q{ }͐tF<x\ٝ1k{~>ªlవ"HC)9䪦 V87Soqr lU-e'-ccVeK \T'Bu|}j^-M D+hfwqV_a1XxyOjy>lY!(Y a/L,76k'Ol(ܪ`(LXgAW({YEAI c>9 b#v"DK#`|wJ4a]%j>hu^̪_Fa_E}a==-5_ğM"=*Kl=h#~K zs#Nr|g[izAZv7RObßhu3-$liŒ؊O:=rifLTDŽ*ԢnC1X&q2eѷސtjvN2%Kȓ"E{l>he_vrK$ >_xM{у^܉cQ c'۸ΛnVGS3ȱ־^+$K:OOL P9u "|fv{(q9}=i&xY8 '1(Ui0d omus;n[Dao04C>&P9bcBLj=[ z<õJc Ϩ$ xƵ='u1m7yϓ}%ZJz U83RHtfIGO܋)g:0-M@[p/,3_%a4шf4'L=lux=e~=]tfg@= [[#B–Ŗd-OW8pTsZxؖ!I}x~+>בީ_:Ij-k콙+^}PeT'Zdo b斯o*.Z<3+YVxb?4VSqmR!=qͤ@'0ܛ 6i#,C@1AuF^jbָ]HlP"Uٲ0ںcG5Ff_K5:AJ-ˠia 2MFw8FU.6\"(^dc0ϨZX?$x C1Blp`gĝd`l|h_TNRD@̖H / ݌.?ܣʫRʓ}=kEg" vQ2%Ø1h[ҺNl@U2cY /RdGkw[T_.U_$l8jkVz"Dkt qp!L{?6"f2zshjwTfͺ4*j"3{?ܟ^Dv|[93[8M2Y)XVOLjK䵡ʦ˻ K@P%vyARw; 47gzfJh9'n$VbhE pLEŐ>WY*S?,XBBV y(zǰt]s^58.)ѩD)QT/q53r}x߶3Y#t%P?N)_rn&|g1}<2|MM O*|6(_ h'\ SUfg\G3 SĜ2V}/]X(Z 4MNlF@ i) ΊVT" SBD^Vxګ2@KC# e!f6yn &!ʄ@Y_l[wqDj}T֞04&]zM) tۑP\2zϊ:Q@b\ .ƄVG>>|Hڛ|{Zű$oOF{1aeyT M''3޹bk`N7q}jT??{ɬ #ڹ驉&С߭d~K){<#09]'*oDSoTDh+8j [)&ǵlz)cIzM+/z[2E۾LKI4:[)ɏ6 h?9`KQLUU(+WԜQ;!:/Tёc=-&Zޙݵ ;zЧYbo.*Ry-@meCN X'^|w&z b@CHfKts3rF$CQM:j+(g𹳾0jOaMaU|=H'"ᡌ?PY窏J j05ɤWARk*7vChxȞӆ!b·ߋlR0M$̧ԠS]w/u@NBέr_j1g|\*n-]-[Y<&HNQ(a=vx6|N$6WS(ù$31_ا`h|( 󦈱PL{pF I߁A^U0b6FC@M5W6Eu[UC)"٣dƚijnF4cvb}ubV-҇7+ (vjCu fBL+PoK[khAuvݎ{HsXA K:~6{zY"s^&e5̃ܛ+zXA߳-ӈj],_>r*e GUJ?fyMvTjqghĵ{ xKcflN_POpn\Ĩ/ mƜ6oR#aLGbUM95{A։T|.J?8*~qfvއ^:m+pǐ7f'0&'XX9C~M˦E/"`T30EFzhsm4$LQqPm Bnh,--8 aqR`A|9; @t|dIVly.Ud˪m ",{`,דւ>^Nw3RS0o;_|;[)-$ ѷ@I]f!]o)}6ڵ-(>d$ ?!̫#{H>NK&![l-[ l$jcT왰#B݊y!L%WQv7 O89o Q/ZJ:Hn@dR}˒41c"6#Yi!~QZ0Jn$w}i^Vز.w4BbW#>?. glYO).X2B1'y 2 p,&'rN5xP2^"zn|6ױw{];+Y[K_y9rݨmow6C`*5qp\\L4^KtE3pĴj36>B\BGiE[ gwX[攻` ZKȘ8 g 2ꠚ* LiA$2gy 9'f N4cU ^Iu?*.T"H8 Gؾ[3V޻ ?DzەUTa2^q"@OO}g2ן D]:;]/hthrv~?YqhkPNvVH~PH&b wreXll22:/ d D2QKd;zA{RkqqMJ2Bi` VɷZM+HI),.v|&(o6 QHV@ɇhWؐ& N&Au`ѶXX,BǕr öO[k}7qW> {Jsa:CK F'~ N9j2Mx%.bEﬠ|= (a#{޾(=ژg5Tfi2i:r HuŦ7ڍx׾{-HM)3)?l@q@Q}항1su.vYp^BQץYR{}*2t CkFGt+ 2Xc Vm[3|_ 5p6*}XƀgNj}lw߳]k6ɿu+oӜSF:ں*:ᄂX+`%Gٚi5!Ce"ct$~Բ9ۀ(zy z.Ԁx87[pe."Rѧ\87IJ~ޤiuT(kH լb H;kg|Y>Wi+!O-k Mreem!$fSCw3RD\ܢkh.1EQ\/zK Q@!Zv'}Fwt6d2 s]|n͢Hڮsl%!cjсTV5\G?{u8:Hx`,?FE-LnԤKznӬOC6vJ̅.d+u*^89Ut;}CjD>'9zNJ G*Z#@1O* mA'JAT7Y{A&׮Fّ/_Ϥ Y@ݤy~Fi3W~DQ#,RCv94ܰQ7T;~2 GߞtP>!b{{L0{ۺ?.o{i{Dɑʘ!Vʒ%@"DE;bٻu&d%ԸDAIՃl$f՚'0!U0L[ڔ`!c@7q '!h{}wp 69&]_ҷ`7bkQe bHt{| n|R _ >J 9 "XUR.L7*+qfLDzerDq*X#g%Ibr!qN(ydc혌xgu X/s'Yt]N8O.MT{lhz+aS'I(̀ZcB5Py蔑Y1#6h\܅qc!F\p 0,+3vV[H iIE"X`}C1\iѾ~8 0rN }S*=lyC>%2P̣ dr(iך&anUZlrKWMUYP@˲Ӊ8Z1\%fy#!TП& MіzzI"y_{gA 3jYl>R5z_eBh [rן/ dg:2\u"bƞNbی.FTisEĝ=sll(3Ӑh+sih2RD-n|l='X9QM2G!_POl:RGwDuXJw[BGoM269fYӁegSV_eJ©!]3'G+auHdRe,[t)X$ʹXN2.)OZ/LQLRbt ۸VۇK"o[KIuSK"I\`Nwiud3{vѐO|l*nAoǿ`ۍUc/zW: Wy~ZB_r Ȧ-{l>z]D% T>hq6ʿ0oCCzU6e4J׃"u*1 ܌} <몛h/)L2 ;oVP2r\Sd,<[쐻tsVۀSdŎ`}O${v錻 s)B,OJ,EoxN3v~٘J?c:QJWT(UQS@$M3稍c|g Gv¿m_1aؠbo@Li! K@2I~4r-o=Ifdj (֑󆵕,XU*pZ :䋲l$FMCX窢ViWe%q?p^"X_aӤ$2fN#5tD:JPS/"$: EX-҉ݼ*&02u("nBv +ܾ/ JM([/O6ۖw!04Їu>feo@emAdMܔ0DeZBi iaJMr Zi ߧR}(, S *I 5-v)yb Us2aCE8<k'55Z$@Xo't'I!\L*O22=oUKxnG,crqnPa& Xz*ŰsR`'? ]5ګuz*҄@htQ0| ~Hf#zo{Ɯg=HX YM =p݆ *!ژ0Yyn%'2lR.7ܨ+aia's fC ;fp #D/OJ{jR^+:.BʹVE.Wh::g%8`,L.3{[^DE@i/cS%m܃/7źa -0*rGk֬iOL9EXPW~8d9wF w-ohEGCIOxm7?GVYF BAAgX_}BZUݷM`Xr!Mi؄٘.!f|s.Z.c$Uf~FwE5X¥\~kvЫ+Օ 6Jdޔȁf+t_`[b}y۵2S*\ѠŊju ֹ%*d(P]y-+=9 uI&9) ,e%u#vow b֫@w@OS3%`a4ч)窄x}P.:1sxEk(fIREg? if;F?YNߗXxYELZw[ *)"*fZc.[K%Bx{!";jy$o(d#A`i4 $41T$T*\g:Y dH+pK L7x8`iPx<"Ҥ{wZ"&kۮf kqh=FEo~ږ (v!| 7~}>k~䄂MwpEEyg\Qv{W Xp'w>%{L!CQ'.ANu|T55b CZ>b'x20f<}vԢgd9aKD=X5koh(Vn^)[y(^\@/ fUptd7?Zj .dq~YO i4@ڝeJxˏrapouemԾy! ؞N ,TԻV±\GIIe9~EoǏ҇e>nz8t.dg5>l8!P&&^$wV;9.4~8 d5c=1[3>MS# ^>=2kiq1%q"1oQ_ǧT1YFIRfWGm}y@5p@1㝲UԠNZS^1V\<;8X/ wwg[@֏`FM:x8z07Їޚ1:IK/"p7.nF"JȄF7q*gT*=j!f0ts#Lfz)`rz0ulЊm6OH1&,TI=(R+dW/e,9zt.RL!T廇:Iѩ9>-Z1ms5%S^!f_zpY'0B9ChPB=_% E@[=xU~yvP5sb(̃w7ETq.iC5vC )ͪ5ȗwd9~R'SGxШ=\/Sm&6;W]uZs= (/NЇ.޻zG://zȧuwwNyBu]V|+վ1"EIg)>;itbr5NTr-n8\&@gaS!mrPoՀ17hpz"O5 K ax6T=.uOҗ3Y2E:W ESշAl@5>g,Z5@5!q1 uyS.zS񤻭;~xǮP {BZ^f#p.!<掸Ֆ2&׉@ t/\r1 D/B0ǞXB(G]( `g4i&.1޿h"psDχپ[kMN ~,A{dЍ|ua#|9]N O?.ޔkȜ(v^ i2]pAaTl so d<$Ѳ/p>81TAF槈O%AHV,D̨m Ҡ}`"j@'ɑ8*-P9ANdb'#1y} 4$]e.߽@80 D̯>K-av 8< 9'b/:J8 "c=}jMOWL2wT=<'b&kF2/95H kg&^I t!hdqU޼a.;ࡀby#B"Q[Y:\Dxb2/&ƽ/#Ո1g2BFrUı֙J6kI^e֋C91OpfV<"hM]9c0/ 166_O*[xGı;`F ^ K 2Nd\GYQϫUwI_NJmH|mK\ j,,+@܆?LB2jOǏ`F0 O/TU+'^EfޜI.^8c9`^غ#->}l6NZ?9Ax1 R)rwjXEw&xWg|>>,O^s]#46@%Pf^m93YloCy`amW?K(;bYv{Ksi柟%[3EzK <ƛ</rYU!S -FJG@,\,I.FLJFjaPkC5<>1REv (_GDP26 dIP$AgM*}~}PgJ|LD0@LsF>>]HQwXѴW3HX^(K)lYڍEFR-M(83>TJNڽǩEa}\t?GrnD\fS[ZB$)ƅ~'jB&:+cPvJ@QM5&ѽ/22[`y1  "46jTqIͫmzVI2B@jG$<6^9+jͶg"dˈ4!DJYNW2(W2LJ'R_j3Oغ^aogG\w@-TqI2Jq)GO( ##Rm?%}(^R8j9v3$Wr9ئ lXC-cGm HVJjHcR(zJreyv Q:6-ru.,x@!,>XJ=U~P|Hn0Kpv䲽"us2!š?Eď-UqDxD{zVnWƱs`R:aFa:ϑ53y9+:*?>_Lh*,*8"I9mء sٛ^eQo1 1/=+DZ1ZI# }I>j"hð~"tv󂮈)ֽp 壘dgR~\6&^s._NG)T^}B,XFc}vQr jy͕%Y[*2.FQS*76lõ8 .Q3^E˃'28zg]G$u(x#m.\W61Y2.[+}YBnx֥q#wYu=@d+3STNDrMݐ,kgyqe$W*̪'ڎ!YY x\S,9(ȇ?tb1=3hR4g1;1- ulFsR&6W{|YDTʼm\;i})=`&]">ad 2KcF)1cs95(AoG(xu݀ ־v!1/FyI~V*pLϴC΍VX[<E>6HS53`/V`H8od7) II~K^7,H7rNFgc,>yͷFEhrp??6 F S+&\S0ik(M61Jy&HȈ4-J9bJ*8\ݛ jOsE'O_<7VI\pqJgF4dTmMYk /- 8^n $xU\pAA2C.ѲIw0˾O ҕQ(F^m1A_A|bԚh ?F܏9B XeTU@ 4t>vz'1k{T8<8wQsœ%RB-n*ODsު_;v"bj3f`>(j_c!~/ۣnWozn8 p P,&Q`*I 8gASSL836!d`jh|~X9|TAސPb~(6_i~cGNt:QHNx @ZkM㘜vˌxPc$#?$o= ~|_մq}!#Vk0xj2sUw'~72 18G:hZJվ[`!8z9f"դpbУS&1vABq va 9ߩw:N[ sk=н&2bɀ^EO\Mt刻f<ʀ]]Vⷠ%|?HyA2RJj~ ɖX+bKWG,^CnVw}"㞐jE$P3GL?vfl.ZDɴ_ZX}~p a`h})_1PuYȓremr",3oX2s{]+ue{IZ3n=נn Lv@0W C_! W+(]ߜ:df#ΆޛݤW?;RZб["̼<}]:'{>$@|ƆZ5k> O8>5Z] 8sX5#$7 ;@Ǖ|$Fc#췋>H&JK1:'R槗ܴM'~ ٸNڞ?wpgFbnɅ>IF NgyQ'u\NQHkE}df_ƃ#=eQ ie)&}[_r ݷ2P&InQh'ҳꐿr؀6xAaV@">4ҽy&& g$矡Ö>{IБ49hϾȺdiդuG"~Ug܌+.3䱜aNX5Z}A9Q Q{2179L<Ǻ6݃lO1<2 Va֯!?9ħ7 ]?ؘ9vs϶iTBDt*rDU݌}H>x?W=A],ך?{ze~c_¦]>جp?Ep:w+b? F5؀} FXXUwd|k ;KC_YIdm/AwK<֐hGm}L%uqQ c l3Е\ƦcR-_mmoxpAkŴ9kx@:P4-7߮s\b9rKM\ۛ*^EI-3>l4-ay/SIHbӛxn {ǓFgC <'Υ0ˠ3E8/{ҋ+Y}Vfϭ-$<ܓ1w]L󛽫ѷ 9/{ ЪyXyV &"lk[Է_K:Non҇'ī<kc*b ELp5fp3qXae(c_1~iIQ;5S hZa^aM-;/2}M",)wgq? 55 @_HlJN.7'K%bbVMb:ͦl 5 !T"/lľoNUӃR˧k~a*3Э~y"ix:d4E6z>e|@'y;sqʻVa3"O#L*R\爵x7Ug޵p-F\%O[xj8U¡ns- yQ83dQQZ0Qisgg^10Vr.Y'}aB3XR%h˙$G8WmM~ƌp@{G*Kg[CL4Ƚ@x#rCKZgjn1;xQU6ouSwݮ@u 혚JcSrۂLj: k.Yѕрݦ 8zg!5ŊVhжa@77LQxΠ>FI+{2'[˫lpF4>CMQl] D}Sm\* ha2zGO & tb ]d98LD4XBGL3[|2};`?û/v$))vKLk }H.tb*Ʋ|&A^OH9kPƊgH!g; <#Iu$aLH4GhnPU 7o} ]5Ow ]])dK%S%H΍=yXwɹUξ9#[LbQ;"*zư{ /2l3.lu*٨[1(AlaD[ǝ|)? ,LI˰q[>(>bT[ 4YeErЁ^Ez$$w:´&)6ϡns~_ ˤ٣opttdE?eVgPV6W< sN٣?^ -(F ~MQ?%DsYic-~Tſn&p]MTjٞ@/{clRuP[Zy͖P\7 ?u*$#:ZFJߍ G@ q|DF%1V=Kp *|2mT;E y[ga(#MOn9_ѭ8?B6/)vE>jɿ^@BTԳbf MIOI(Y nd$4)_A 0$)Y ۶-¥n^OSOڷr;|3>1^ ;dl-BjmwI"k%?&V1ظʮQm S)n_zH: p?"fN ;26][a~ Z 렒' 6ͨ7Oڦ˦b>ݷ" VJ9>JRl +)Uf>"  ,M.JesjFZϝuHFY؍QdVyV;`bm- b"d: h 2hh &s~Ŧ4M}6d*g*jNd9qYڄ*L듳TY-*F gPE湿~ViN;tRW|8s,=_Y&GaQso!*KaRgm 0W11ϲ\VR VhY6I簠{́o16'oq&%"3jšBhwi$ ߙVCet] VFee[䲋++r|30׋}q zJP@Ww2_D;#XzNȟ4~t焪IsR'~rCR|`υ+kc9~f1&ʴ7"/yqF_ ëS >O+բ0yt3Z /l;™|7D}D1cOYdϽus3 GC~rk 6MȬ$1TN!1NWqmS( E[{ Wԋ82تxAO L,:q7Ȟ𶫌FAKz{ NC{RCNC+Gth:7#HȨ3CJf`߈ʥk5?qk HHF̪hmoN<m7;g'9*t_1os{WL1'8 7A*x>5/g1V,j3y֕aDQ2~co9D <*H -IO=/ f_؍^P#h1)JJ\ٳ1(-sjьQc; b:sGt ruG&Y,} SOe;)EcCKn 볢7r[ohK&`MM OA#7({~t2RQAfͪXx(ʦrG?0ۅbEk/4jjOi?j^n])L[7)n1^^Crfּ.汷к.xQWϹZ:ɽj2W!gt;FܤZKa8r/XzD%1]s?Oךk+㾓gQSaȴ[igW,Y)^=<]^j.ϖ~GI]zɞ^2u2xmyZA6Uby&eB_1S?|]rJ>$t*gpR kjORjONk!‘2ڧ$ k[a]@ظv4\A F_B%վjn/2`&婕XhN?@56TLWƌTyx }alp}\q ^D`F,Tu;PTؗ:֭IUq(.v3*'zT^*np|Hd)^׬)hLivrS۸EfI.c% ޭ<VC3\HN1`( 2as/jһgFUx Rok`K mvڦ*{ͮ(Oc9Tj\ ֟N:Oմw9hi9_iIj I:$fnLLM:[wζDncOcS5SOΤ34DƆk_n@hkqMffMj:sO8ۄ RP e /PWE,1J<\ sP%NP5g?$YG۳bnE&ѮWNJr֡r O+zkTҜzӵѧo ޠ kiM[o=tBV mE/zZEe!ήq . ! }9Nz͒.Q17morwtŘ9Kzm`  "7Ѓ`geCeJryM)Ee"'/UW DR;ƧuOX4'r;wT1ǔË|is5SbJc>R\ZDY}L3 2Nv1!""˄U=d.GIUS.!,KnO/C/)0tqjxlÛL> }:lqg) ݚ4Z>vr1hi5A;_0o#! ^/ih9= 4TTjUa=-KVkp9VyqvKdg?%O 5$W>A"r\ˎXגA8%#6_!! 11K(bzP<(><<,/=9SB"f l̃"hK83)7R@ӈrrmx: uWTն !Ui m.9ڂɱawCxW82]=S1 {c,!y15h`xA3Ua` UjR *Lxwz14Mw%M^a T[b;4ǖ'*l lY7fʨTjFXcX*>+J ]^):5`u;j dPGhdONAI"3<$gH=Weƈ}hW=<}z{eڙ2$4i SbumLjp7R,lB@yhETjB]ϼ /O\ʵ Sv˲8݀LV=Pc<SZWڒvǼBpՀvoTѳo1\I_ 0B9{S<>o4 =HF*i!RDYn(xQ&!M]Ž(p:Y4V KI-,)wmqHg^PFo>[\5X><<9_)mQ^Byz\FqɃΌ4#w !:2HFڇfEҖby\C yC f̋xu>tAmy2m~+Xkl=s'3 ;J@?m]Kn8 @BJ,4n\<g'Iƽ ̦SW5n/*Uִqt(Ibm~5EY) Ig)@Tt[lN߀l\Nk9bGbqB vlMrO'(6˧i Q/VB9piX%+g)0 hk2wܜ+*+%͖&VER] ,6 xÀVFaND:@M*iXzs 5_2n8ptڮvvdb吂B=Hĉë vY$sau[rptb;MF[2456R~9]" Lgn {9vڛ6Qz>hܾUm {5#I'0zDDP£(EK=**"Ⴗfks疓ܢ-wtF8ݐT&xɱF'o WGPxKdAXϱKԎŕB6u-!Sa<;Xd0!G5a`puEC_5:VVP"'9b_C,7.C_Nw뗾,o.}U\Q܄kqՍ?5AxPqTr_l+1`j^1>hyBCn8>U͘ƣT俩c(^`aq o9DULV@VǖoU#T'AƐHxSxE@ǎ}n@(6J?ߣn>j1dKը-u>+[0Kr-2?s (+kJc_BLEcBj(?Ihe$V`AF1!R<˝L_RahkW|E]6VV?w@1T\D yӒg_K)C|s ^|p鍐y+68ZlHzʩمm|#p@--Y13M|ݻ]ؕos"EkTҳx !yu ~zwU"+$ߩne p6llU+7͉s>,Fx-nk'^ +W=*eDwդ}  S t۟~kèyj0F; 8_Ԯuy6*d<܉9NxUpIؕ^Wi6?S'""\<5j hr^W(,k/ETZQR:Tu`޴ZbWs9ANQwU{=<ܖdhąeyiYNsX^TSA+GN~5<noOZQ 2k@I;{&(mѲ aB7C,wD-2Q˯2KnpLYHmM*QLoi؜}*,3R|(*<%g+cĉT6}7=dĴU 7*aB$# VM?Ŭ%o)JB(/#0vQaNK Z-`U'"-? q$zF L%iEz{ &?*ؤ hX:;N:~ui)`"~kK4tyQt}n$pP/P}72}e -_uϠk^R`HI'7uaT VTͥkfk1k׌q\%7J"W1$`yZbfaRB6R7x<МUC>ގNϱan(uilH>+b^LSJF|kw / -^DC :4'y5%b Tx{<åϏئY!>ӕDFl2<"zc2qA+im%ki)Rœ=?+"N03Zb2EzQCgpp) X3rM떚L\KVKt{OmLGt9/Mi$v,K-ے- 5 xN]JzD^߰):g7s!Փ=<%x#%,Ze{g[FVe KUՙX&"ԎPm4`o+%3Mx)([AZ/}&D\8"yN''?ėWߧl!fR^n`_^CDf""6\J3ʵѶ3M-UEiہw"f1[}j.küc iےUv-]9(k__95 d҂,\}xn*7yh0zyiySd); 7&J`LVfse@%}%~q}qҘvaRLHb z8] 'uyT0eYdnN9 5_3Ķ[3YO˥l%K|^ҺpkhTܣ"d0-#rvZQT }J.;ͻqp}s. N& S%$,/"GNm] txw!MӅbpn@yL1;xt[0'13ȿG;RS;+a/y-t#ʃ`4BcS}O tAjК6l?S zÄKYuDIDDt1dS nF?}D%k % d> ư֗-=!ӎ 竒D@bU7{-CbvCsՙU~^ tj4zы򘇽Y_=[w$\O7Ť^wjFO ~S ,O44Ȅ2ij5H~]r8fc T\$9 ]1m{5Ʊ/}f&,rE6싇[Dg}6XS;Q 5v< a;)mݽkHrD;y/E YAL%QGK(ud2_$!Mm~+;#ZY+ `.vݾu{?6pc()'/裡 7TG$lM%{Q^ߘGv66J98YTe\ƚ :sE~qb'W<%z,Y6ƢnrrcV&m?ZN=DvzA  5ENHuÍOZL?um{}ӂ!|xsN/5@^\=j c(ai~YlCX#ZC*RoxR!T 2IuXd<2@-~[QQٖu[th fMۦ6 5W߃N~+ !n [ )UH5nZZ'8߯#C."Ԙ^.3m'^rS?1&:ŀ,sAK .%&r)a`c=9ԽZ J{S}H83]S{6ؽ~*gWa=w eGWFY$ccĤ:Ĕ! 3C}wѻt}n_SdG<uy`SQ4nOw8V D,2`a h(ON_uYXً9 Mf{Ԗz-dP)vcvoi2_/N0 g·:9rz-'a@6yP/68M%B)F1ojzXP|Gq\!􂏷In/5K'`}@) 9E#'̀uwdn%^Jt'B (0Τ9BK 8 ZzAnnQcf_ ~W, 驐ůㄅ.к!9f3řIʙ%+X- mE2oQP'?HO#l"wh|'.XT*$\̅$U\8ם6d[{Zc"~E# W@)LŇl}q~c$"|\/1dNs`*]et8;AzcA8XYp4ˊ|,4ļ2g)֮ 3;e? y@xRj ,xh5.j=/*SɁK:joya*k[nq(T.gd#+xQCϞc _ 0FS$ M[Uh=ͧϏI:sTN@v`';Vu'}i:PiTd!ѵ@'8\*$}*SdҕJk|*JE)n#=e)AerqA!#= Eϛ(4Kڌ#XvpmĻ_Y[9?TCz&<YU y!l?IZ /f!58a&) xکtM!LƔ.Њ)n8pe|hhmֽ!]:|Qk6h|[Md̆sf]L/,{k0WЛ%$cK=1vyoS5ԛz([ BR:Ip[kHX3@*qwQ |ȍ1`.Ya)6$57}BLq^bwNS'8>6:eյH%\$pnG)@/,dXGm(lEC`tDŋ0rPPJp qn}nd"NY7\5X;dx*&nnijX&)6JOO.X 3p3C|CͶq:1طR2aPU;@i09ra:5W?Sh w)b(. VPvBi >tϕ1տP<. wK ]+ pTWR{,['mWB~/|2 Mp24zftiDAtz:Yc<{Y)Z'ݦ0mskhRYnd`Zx^O_NI?*7n@PK'M%|B8G2nnXV<طPԃAT4eclؿm2=-̷UGS̛ C2cecVЋʒQ_Z1m\L<(ѓ}A{z@ `uq,e]6QaYVGaNeD3i*ĊQaIW$_N T6QP5~) z.4 hkAפp@.B>Ӹ@1AS+n?JmD#O8VY2c&=[lSd9X9|`QWU貰?anoI/C< lm[O N],frT:ӽtU_V_!75ǀd%2~w۹\˹yZ5;nɼ@:[q`! zdP)xj"l#D/gx#0^։w^c8wN9Ϯ@O+Uz1w`Yղ^td.W LQIQ_h~,ږS53e%Z>_osl2UF0O+J1Imjb=A.,zvG[-<XӤ UW#;aa; N]%It*c`yP=@ȩ'E ͪ|-G&GJccV =#/}#2Rn\9Deyxy-nbTs's V6,]M_wz. @^T XX-xˆ-"G_k~(ago )ك< 7Q@l @֧3jN4? u6m5N # iSj|'TOԬsr]$1Ia@ތUR*](v *nì 3 kGFlD"4$姲*`vFoZ'ۙ[9(,eq4J5h)".0OD>DF:r?fr,Z(ϔ|Қ˰}-BҨAR!=9{&AE WlyOȄ9(7./,-{Dq͢leZՃYwUJq30YR)J r-~gGrzNYϖ%"(PIÂCH`ay#xsV-H;;(%ȿo$ܓ XR=bS|ۼڨxzON/0f~PRr;3g!+O x_Iz4N5P JݥQ"}|M(PEyUxqnAN(GZ5Ղx o=Xp7cA9}ڲUgnU[6FpwG R~ģ'qNPL Cc\[Tg]缁Q!ЈSB5<#"ueoMޭTqaq&K6Q}ir ͣ$?^k# B۪Angk lI߶/qiAg;D%'%&ՃGK#G@8Z.MtCF;0Uit%2%6n/Osѿk 6c̃ KF6+2n=y@dD~"D]"SBA>2Ž$QH5N3LLi}6LfySnB~  +âm K^։\\r1Lj*xrLh!*ZYr R*D㘤8zPP~8 V㨪DA3vG%p Y*BZSϓ-W3`(L{ٲҹ/YP.{Dy)LVbNj fa`wN7<:*-7ʘ́h@K|M;9 }eEC7%Pkxyr70ACXG0Hms&XS@玿pc Ӫ.%x^(A@ۦMg[+vuzH.6n2Ms;6k<8ח*]F6&(g:ٹ7je <~,\܎!uZ`#7yRR]b1֏[(EMa z. pW=S`Mgc'L[퐪o(?58T' `KΕ;X`3^8Y[/QA<_ 3#J$|χؒ)~P=.J,wGvMDB3])?wbst52{i5ޥQSP:~Ezg`jx0ie*}AG ?˟@!jY3qiKATSzIuö=ߤeCm _bܸ iwl n8Qq=J+b. V&)P쓨; L,ç* س٫+JPB2!''odEu*AFR7,U:Y~> \ }o"-(3((ҏ PGq9I7?!翇1mxߴOsʜDAgknq"\‹JƕjZ=&/!ɒ=Gh}|Q;,\&SпeFc'qT,կ.:6.$/ޭ CR1'(I3 iJRyn6ի)N \8 帑gkmUCWA4t;HXVh a3NDo Ya}=e|<>y2kWHy' z_b™ I>]%zn0ق3VO\rG¸)=ٖRR~'57a3,\ r*oy*>.l;0`G֜&g}ռ)mm$kSzyc7+~Vo@s| 0Y&#ΟNƏsmY|O%rAr\=4|v7UhPYdB56=wCw^ΥvsO2LSDX V&ớ2S`'}P8`Sդ9K8!5NA*.nTvI4*bzu>ʆ-7 tn|REA8;Ķ)MFi}ә,JJٜL\5(n>h>HPNƆ,biށH3=HPqd# , i !W 6M53,4tAf e;ѓqCH||T"[EA#v6Zf*֧3G)/,f?TEhcCouP5 H#RBG:->b-7X,`4]fFtSa6ɦL/c%B~@nu~~_:eKCHEE竱lf_M2#vG4%*OԒ#ZưtB|bʉgB%L 2:}/NS++|v83B]9fPChsыŦd/m?~ Ll T??jS5>$ Ě@$ǽ^0U\H ۖpߟwً 6֏HV$H4>8EF&(fi)8pX9"`wj˹m*&:yT>\)"ڶY=ƟGγ$]Bo}B1פ*K,cʷCMQ Ay\ 62H!7dɪ̨r(oU3 [ Iݔ_Be4`p0pUQi>UqB GQmID뚴+Q6Я`L̐vn I: Xt<^i+RQ( \ u֊zlZ.1>BcB_ 2}//FPښs XA!t䂐 ^X͕ X2f8 !J7H2*cPXIv-6K x+] lFNQ4B!՘^CS ~lJh?DO(raU펎]=ye;(->DCjVOtx PG>~[mxwOnSXIIիVDA_Z uD6u\TVN!V" #6xJ:%aB|aC-9ou+ym)0lU3]4[X +b*CLy~zU5EQ)w4XcŖ{|87M`/CjsoCftUr#_&@e_ Oe^D, X{Le)8nArq%[*Ѩў,!!|4(c9_F\s50x6ۜEgwL` U)y5>cx׭̷š=J`9SMO f4B>-bJxv6$񪛺Hb<]]S<ص0~>ٿTb=8#b(|"@A~Œ- FEhcM+K[UGH>`f%|){SNGo7"#>hC[u!e%e@GC}Q- )Rjys5v/>=L7 KvԣWWxC8) Hhԙ\sDtp ԯƐN0&n=b( .c7, +i` c ɃBVƒU]${ʛUǰ;Q,<\A*'@R'c='4hlliJHHf2aW2sY_?8ng1P(;ܠt=mi>ofN/&A-ci<9<;wERm'OnduG/I˜cz>P*k{!8(g}P6zM;+|4SI.wÌA10N)aϯj6j/^V8::*Eҝ$aj)-,Qkϓln"2mwQk&6 XKao?a B`]%T!ywLmykLiny#VgќW-q#ֽV}Jw8Ι 0e: fa(μGJ0g0Ͳ JKb]Tg5/b bVyiI0Pizr]%Q2=?輕P~~>[dq nV:c༽)S(ڼٶ{a|~ Lḉn(-ڤNz-j9FxE1Lw/EɆSu&ʸ*$?%i=SŁS_LPC-xNDJ>b WGK%lH{ʼwoW%yS+-ܹS m,4p/`M)[e{<*=`f5RQ5%pI.1B+cZDZC\+ɫ$9do>̣s$ޞ.81+p"ѷ6fK4D2# t=߾o,2ɐtٺMS2fbxzZއ(#gRZF[ZNT ,rM;֘pa )(ވ3%ۗOsw=YbԤC?%!ٽhYbR9JJ'vp_裺F_ GZ#*N:%CύJ`[zArD@-8?;Z LJ|Us')#/ȥkdE:o8oS3RZS:^az<)b. PTAk-2+[f=hi9[S ([#!:c"O.) An`v~fB{W `yr[1XE+ǻgy)l+Դ@4٢ޞ!wlXN;\n=lƀqd-T.^ Da➶Bߛ=Sd~yZp=>[01SW-叱Zgn.[[?jӾ]ކ"MmkZ)V2%Mۯa_T~nkYПNQ܃ڠˎ !/594E_2/̩0M)LvN&;a.~]lYnm?P&Re>"'2ڎkgd]V9|$Nɑ=jOϲlo``.o*Κ.si G26g҆X)_Z1D-'{e''u+'pzLص!CU2;_'98%sh!Y6 5C3"4OVH|QA3cVvŏQ|ت! uQizQ@flDZ͹ރ OĚha 2 dkEX%3΀~5y9 Q֜@Q8ذd\z*b[&Leu9N2EȄʚꖔY(}RơVmf7*=hUy7 4R[]nSn,hAJet?eNf>ـNiߵSA8ʷukL!w"RKg;[[*{ڼx.AV'28wsMlO!Y=_wڟ%~!TGk. l X%uH_ N x 3[5te/Es" }LU6-Nt +g0\ˁ:GcP>xof-Jś*(A HU1( :*te. }@2WW{e u1}@.fUo(sw |@DDJ6 eϥ-Fcp,x`H.,^1Daүe0'ZK`*)GUr2[bGhD 4@hF.}M]Αr1&)3n^آwG T,[RD_u& ֥OB|-bN)8}0- &d4n}Uɕu6Mg.RȹLQcsu>|8y]Zf2b--VDY\Ҭ&~G]1"j _Xc݄4@:ez"d^0gt0sCt#'0A0C1bg\ӰCx;>9$e2KqL[/W_e ?jO|`W1YОA6VTUUɴ.iF4$FP}0r" S/5-#ZsaMqI2u& 4OS>zf9\4%=]$ mdC88f8~YLFl[<~ĺ $Pl%(+uV.W tM=B+%%?H/ٜ ½FZk 2ۈoBBbdfCwB}ȬY .JN"<׆:]9q;k9U+81ln `V;U3@aOPIە{F޲ĩx:|gV.  UGq /8JP 6٨DJi` IFw(D nc$1j/Gôp`M1.'c_^uR+eU+,ls ģ(-ľPyD|:HV|6Ror>i:f^4G#)afOR=ZV@_ +Y{FC i51>5'YeH6QF4EV^Gy/S -,Nԃu<ܜ!wSrmC½Ak"3`C#ێDey5NoxP@a w՘x$W*&xg$KUs7d+kCu>dV*V5@cSKZjl7OE􂊹K\*@ Zmsv5432x[&BCQ/9ùK *4CLsASjPeK3ys31|ws*DkRIY!P*[ֲaO LJāuɉNŅ+1 ^3`H(5bmGF5^vl^, ~5ZN{GBE ě_]3TOfV8!`F=fW8fKbC9>Z#y| SPXIsqݲΡs&IK'[sO"aOύ:LLDyo3d)+K~T7u_!AgciCϛ&Qu/Yj3l M%OWR:N0 XDdF)O PJ'[XBL-d]K9V=z*–,"Lն#49(_N݂HvZ]K &9 NMa{^PӸxYtwm<|}Vh'I{ź XJ;qj i(Zo.`$mSe/rP.P g|$>u_":1lTvdϰ^LfrnP@D9*9F?/R"xҥ+DM5|$DGzPԼq,Cs$T>G:BkXM9Xh %DERV7x 9\57tyKExT 5˯__i4.q_lFXwÝF$+t$ xR>H[:1ܞ16 _0Y4ӓgⴒ2G]nszYm 5]}VY|A!+wAK(P&Tem?kjnG_6Ou!Yw:hP Y7<>9kfs]vxUj '[.a3v rpCo"¦.V#٣XA)4q,k|1]n{ Z nxGNMG{'3B\ЕgK,,+n|Lx3%IZ)_'-!D =d۩dO~&; W QzڊngmsHMBa.+a:[œOR-Dع{oT7H$ym7d-tD\{g}1%om+(72a>M%6#5-$nCqdgPaS Y;˰18#'F:P4,#%l `L7zdӲVRq %4,tV,d=^x=Fe7~Eo5>0 OѲ0M8~mSNUo-!A^e*W.V <U4SȎ=ZM|sXEz0U*J=q,#`H`t P zhC=]T_X!@JFz^y斀1$m+?2QFpmipCy(VzK|l2E5J Xݞ4#S/}<1RY9_yO-{79c&l˼Re/Gӂ_LDK2rE j~M&p|+1 gK:{PRABq5k:78;C##@)|31c>lS*5}F$-㮷)Xq&8Q%(7i6yQ@l=`ymC{_kwXz 50d7Ap@o;Ng.,h0Ė~%JS ɺL\ pQS3,IW5g)dNW\vZ:҄rw-*Ud[-|I˧N|뤯w4 ÷v TYdI?}j2+@-gu޿ԧY&(BZ3<4KDkUWe{uV?:0c\UmjH$AVY )ՑU>~T nS~[@/t\1|K``Gw!NȤ;UX(?tϑw>ٺC9%+I(|a6 MP'#7M=:+цq\l֯s !̡D^v蹪,a(&R6> M|Iv|T@U>BfJ;W>Y.ӣn'@s\~1iovІ ۮ,c L|8T\PgeڈWD}ؿ)l܅ğ<5/uDk#<1!;ghnd/v˻)12l)^|?e@_ 0T`*I~n>R9W9.㳫f:n{QtoʭKɻO7pgz{*U#EyBVuna;UU䘌@U`ۜ /`yl4Z1նș)`dny=ET{|lI`QA%9A̔pd*F46Ux{Rb}EF5U-bv~nCiy1ií*9 &k*iO/;8+jGFcdSpT":Cݯ,#?>) mTx _caKe~$+wqT߆.x{okeWks&'3d鸨!枴@u$-M_oҟ%"B$m>j3 $TX۞QHVIto35 w%վنt/%{:&>}i,{u;:Ndtņd[CVdh;F xy% a%vP5Ȋ֘x&֏{ ^gj%iSڟŰ}ZXD遫WQW;[1PvQ^Y3WhEK`ID"IȍrǼ%** 9^R)Bl6;{hf&H4f#-)$$N:/|=]ntR7NEڳةdF Bm'dR,2LK N@"]xP['\1մ Z}Ō 爪=Ey ? Z? ]M;P-H@4B읿nbn=BBFQxv7~w 4#¹ŸИ q߮9욃NҗjOզy-k%NAk( >H]5X4W[-$7CW|槫1+}'UhmB!V)8܈WABɗcIZg)G,N*Ґסڴ1nG{>c:_7$qߝff, PpdOQ>q^Ta"TGmȪy>l /R2eBr6겪MFԗ7PlR%I#Z Ã.Y_fF >Q0 :  POS1g>.Qs{2 qӸ QNbw̉]] ڍa}[KR?p?eKҵSw S+ck;xPۛ(?rdF&HiNg3%@¨}цmrɀ#FG)}aUʡ*:R5ݧR={Wu*ov7 lgr#L|KOx׸o!m?*^{Ra(ݻlXTzm؃v S*ҫؼ-A}׵[-*I-;"*CG*cw QlKܛ4\ bBۏMsͱ@Az1GPzWeEp !0:Td:C8Bg,X }Z[r[ (n8]P( SD wi~|KЌ KЗx4/>N5z&¼DA?U*(R]) ԄTwؙ 'F IE}$Հ}ӳ7ͬQ\{e= {\5)Gm&m$FG7IM2h/m9)fUUzBI`B/i 8^0yK[^sõ]/`:wS&n@qz2=Fa|ܙU7Ykbl=b#x/#G|{E]iVRz9uXDž2 \~4e* +E.H {vU{`orG+s؋P{hdjCEPQgy$v-!LAM (``?gi`pHT K52 "[/KV'\OGuc K`)79yQ\ m\%"F9gۋ&q'FxQxLQf.>V>WDVbr+_>A gĶց.Rh5K`)]K?^Ѭ1{-ޱ%uh@2ImAI_y"p4v [)k=?Pdpi8O324Own a f=6kՊ@vuį;ܺhtJ51+(  ?\:yKK @sS-@#(F|]Ƞ_##qs]塈LG&C2ݕlI]`x&d۩b (5bg@cF:?~[ãXՄ!7^}ouhn(7[a _khv"(7_MyQ)"w ipKh4?+ݢb 0TULp["[0a)q2tzͬUr/* =}^H0< ʫP1 > `8@v*1_=v12嵇MN8,]bj_HIM}7X?Qb]xP ~v:.#d%ʪ^ɏ5o)W4Fobk(%B:쁴#O-"b)wè"SL~q#{$[+8s(_gؤP}̂Q+|?TtfLc-#0!]\yfaxN3^WqK>Nƕ ? GCU~7m)ˮ*BP/;j|Vꋊ@{"iv%풝TT$\6~u!4{ոTB5Gz: g3S,L 6>Usȸ䞂oçNh$ kvBdǒVޫ>?0Qy\vR%H;,"kEqj5{_9L:} P pH|W[ Ի}\xҡ%%7]ʜ=~)? 5/ G r¶' NBű\ [ibLd3a{`Ypc:dC:Bjf6q_n_0[|):v]~K aj4 /y^y2B ,Z/nkkQe љӔ \$Syux"?'Mbhт]Q  sD󈪳GdYf&Q3ۡ(9.v"ʟuvQ||߷g!.;eKj/?1xլBbcjgg/%Oh/aF+ }]euK$ٯZx J`siZ0u!/RcqˀK, @[):ϜƠ|z 0 o{f ye I3y΍,W۫6`~AЅ;PB,]X?-zMQG ۋMe=uIbZ e36*E{gD93 賆L0 l@(@/k~ d@AZ߾JS&|taVZUz799_}U ,kCv oi"ligU~ԻZbƸ$6n3B[Ee+=APe:wkzai!'rLop>9] ÿ H >w^]]dy|P-5hyJS*l#7xp#]|ŵH#=#%.X+_Z/J0!{>ɬ@1p)L;%ݾp{D6>h8NSeKi!"װ  ?~K7a/ ob\ 25Si 62TչjB@b*_P!H9BRh$Ӗ5V)SM#[w2iu_7?E[hҟ`9?DtsmCp$ՓbT0..!B͓IfX5I5 N퐹~OךS(  5!uH-AGLڀaSQ*St TP?nLp TGS1loSJk^Tfg,SȖWTSSF2v;uZn.Pu~L*њB3sioXzuwA;.jq ^>^TX ˄+;QY Ke:9u}Z9vz* 21qkJ< e2y˨rE┫gOM9d.*|c:b`E-8$ݝó C"sX^ɟa IX)ik0kЩ;jۃs_mݜ$.]`mMGl< =X43'|J}BvmTֲgו ܍&gVM+NLr\5ўad&vl_MziysYnPq}-{ >̭n}QFwDTw W8؟mN.IJJ0da,b??GvP]oJT%haӞy!wdCUdͰhucs2]k})k\zYDƿm w[9o =뭎CplS HJ5M~0#^T( ubT/N)6dI$SඡQŎ }l{ѩe`){ZYI>{yY3s[?K 9?6% (7Ox32lItrmIRk̨ 1ʱUi`L0CShwpy1zE8kT:cjrHB :_--5\e[88ٚӿPh־3$'Ze Tmyl?$-egYpn+In{Rʘ,EG9c>7?9qd5;aCC/oLAnr>Cu7$`KB7y}[񇐼s&dSW \cg>3ݮ[zuU&D)#eoq\ As,SE'IbQpbb)(ݗD^4˶y9xaFe[ `5RޱH*476sq{sхyo$Or]ߠ'񏼄-I_٬9oɽf2^'5 ssrkAl_y2Pp쪉UݮÀ3?ꂚT?뻇L#t. i`H90!^"RmDFCF_#0.8j>'\Jz6~ZA(NoZ9q{`Y?w;*)iQF%Q*Zy SF⭓F<ڨyzm:1;e@"L' "cm9S&J hzA.a;ɣZlwb9SΑ6\i%!"jg6inG&ۡ.^q±fbկa3z8jky]6,c Rj"I+XLi[%f<ڸħ@̎7~c2aKLΰUUv2 54XhdaX:/;4flPy܀Pcƈ# 4W?F @σ7Y:~>#}:98Sd8Sg R P#/]ӣHGT/`]c3bP 0ҽǠ|5^K@B)aTڍL AA^,$T *]+Hj+>+~,Ԯ8Iki8a3컳=`AMɅ}UeS ޸˨"5t^ߥ[#{fŀ=e'CGq:96UuE?buHNʓ\-:ǫ=7iaJ|-N}N4 11zah6鮇c10ªY@; l/<%O{=*/Du[كҘ[<+%޽Bq(OaŻD) W@LHSFw\j,ǃO$.JWjT4(ԮSLfpt#!w],Fj`@z-UÊǺEO0Q+FaRFץ*ԱZ4O%eg16"AP O~\$Uj%*bypCƟ%%083xkeQ`ë= X CR*jRwnnzH%ׁR+تִa4 B[ܴ}S09J5t+9+=3ā Ђ pZO$:L>cTEtݶabWCنi:1RY%KC梞pˈT$q~u!)z|nGj7yIP+Kڰ`T7MyZKKh};9xh"p} dM.P{25}{(ÂG N9MFw+0o쎬f96*J i>*$<3鿏*{ BwcGQk/)Z}a/5|j9Zѥ*B̺&akm8AgZ`{f'&"с8`ݿ w6 ot;HB7S0+_P_oo!YlILA1pR~Jύu{'[0c_J8E5ޭdJc@tHDdbw\S.?IX>CjA[S%92qR~S-{c8$c^EگTNZ~^B˅$[""l[nO *_R[ϧ,a%ӿޒo>!C IAʥxMi&lʙtK{+D )sn-o*.?41K%kbn' j_E>Ů jkWYZGlÕee}5j  ̤L5# W|DB6o Lg\yJ4/z0om w}2h!0kA A7$,(wCV)3rd*Z;yP(adR"I 9_ Q$JL_2!x{ PʻI㜡;fdbP|TUM_*?LӹF#O!u]Flj}zx<I U)GxG>x$(u Vi|(Y9?˗1x t`>8EƜJN Mh=>߬ Qg-2z#.jsP.v&6+B쁚$< L|u-A,2l\Q+bR׹uR Oq lls9LLy -&~GDr@9%Z-P@3@v E3-ze- 2 1gsdGSKN8XG5Wv|2ʱ=ʛqQtdgbۑ$kT33Η=S&Y rT jLBYsNMf;юSAx4lu8fZ0n zC{.Wmc"ˢ,5VJ;E-֊MH y87UȅYcĆ_'O;[`PGDsPQtaᶌ9 :fm_3{ cS Ld4ԖjgeKcةomt4??utS s8wQ}V*;UTe ~ĚcJ#=sfًxCHB^ST\Iў-z!e"KypǽĶ=طhæLXVdq,ܖ2B4rsʴ-[[ 埣f 9}jk2Uڊ >_ҩt/r6 >ң lW]r DEB_h 3A r{xw[x.8( 0b)`_gl}$@ J1F2Fo 0m{z-6i/D9{o_+ `7o eZX?9]OĐh-;[2tDj`U?AJaB x7CV٥NY}D}n+*m<J/&wz)i_ԃ|*B4 <bOpwZP=ENHY&4SʲjJ"De1NQhe>J.# Pn%/@K[]5۳وZ\T:i?CaUv{E;(-5t|@y^*KTft|MY2컛We0-W7-6+f{k#D> jeA9 ']:o\XU7U OK~wr4A?"aO:WFş9^9GZ9,8mm F{0qKngDO/!f22s;K36ۍM7T8pU? {@l|Ǒ,$R*ϞK N*?]3XI_z/p8R@]Uq\@Nt|d7H|ӰW](ՀߊD)i,=~kV(lC55V9hrh'|B /IR5F[h%;3ǽSpC?{ a/(m{`Lc;r_gu, >%**?RgW-s3ncń998 [zpDB,y PEc%Hr:uCE>tͶqNٕŃVºh|? '0E'x ?u{"I#]_Efֺ()hHϜ\,-p(x  RBrϧ§7`pi̮1\&nV)ñx3㍱%`n&  B d~s1W\T+ B@TnW]D8l"akw,V@l`ZQ!b,ia UVcŬR7=Q&ͥ nnQPR ~dy] !]3#aWU8c/ vV9a^ßXw%oKU\1ͷE A>Q]$bysf^@M?U)<066Wڎ~b—^"2.[i.T>4pF]ó ;v"-ÙYk=ӉD;# =ֿz'bL+?"&1.[0p(!K6.'D_bŒ;SZ @siʵT]DD+l̎)p޲ p I O5<|!^|;_D)!t9Vh擙ST@rL&0]E# 4 ]R(#&MVHͬI>zhvCV 90; h+Ov)LWe^>|vCjk.|J"}#.!G fy7=W )xKEos+d+n*dĽ%DJ?il`8{*Euef PLތaSG}V ?/Pj&7ŵfBw!63MaVUvԪbBnQMiţR[u4f+')0Va#/:?HtߜB7+|܉ϱc)]<.@ݽ8Nj/OG^Q"x}F(D会L &r jя.,jYNl?Y$+s֥,gھ㰉{3T+<ZA{F~b$NNJj;K Sv'H]QSvݏ>0 U|) $+EoN : vA֥dZ? rx=qޙа$^~EFY!pR|-Ʌ4V(<:"l{4gd).*yV{רE+8:+h1|ǃ5pGD،g{pzΘ+{ƚT=~8S= ۈ/?Dy#EZo{;7+Pm3r:j+էrl7?͌]pz#x_Ba֩x{.W+95B.P<'\>) "(xl52^RF@ 7wT޹3B$ ntDUn_o)]ћ2u=;1NYzf=1\(R艓@(%9Dˣ8riJxZY`'ˣN󄇱V]Y$ux^|Evg̕)_Za]|'Fc =z3U0_AJ#8D@ۺ˯luo4aj/4Xdy Ca2zS1_Mk 'ؤ{ :vҝ1c] ϛ"pǥ絀6 E4t')vIr鹢V:6"mV1!GVO&^zxtfάUB@aois5_^ֶևX6kb!%4ξjihnWYJ4QOgfKnт,'J,,2,p`1@tF.ueJ].ǫy~E*E $U$t 咎_E1S8DX;> OthcjUY**:'ꢘC{ZrDZ݋(E0*s%WFoۊ  R&m_F+J x9Bq)w6M0CG1uOz[-;jaP:tV1ω Ƥ7P[ )S9]5eY5HVY+ZN;rЏ!o[@^k, K"@%Tƒv?i UE?k#^s8AN THmt *bZ鋞 C2ǹC$J0?`2 * vo; VV<4bfC$ c&[WJCڀf}Ch j%u1@ Ko{8EiDe"8 `Y):'0Ŵ$|1u6{^_I0y"?\R"@%,ᅛ#~Q&:NI]p6<` bb" !S*Fsj )3FTn$= <'V$(A% g[lo|0' s@BZ* Vn#jQKü Ij,MW?Gu)$@`|y5+) Ir0<)Xk2Qn7xsK!FݗZ!Zj#i@\̈́@pxԻZ[d[RiBK4ng:+ߵ]n)+o!ˆw* X(IuC73}_F W9h8Kj`׭8ӏ$UXHn~Wn e% _;I@<퐲#c+L(5\$trFRweaz+w:KpŠp*ǘ~ѝ? F5pjriS( վ5LvAlxLOې7$ P&J? %?>gCW N/1U`#'/?p<@Ss'ߊjBPDNīg}St"AQr962ڨ~MoBj3dv0LP`ב%xOW2'71d`۠ jq:s8p͌n]Op'LE1s%r ՟VrWm ) X%qZ0BOQ엢>H֎\U&bG?vyu%Aw -HFG,pޝ[DV-W~cxϜgp"uujsN@2%mSjO-qL(5u3x ~i$ ys;nTzv3gk?#z>pl7y- |6LY%?BEg៴rӨ?Kfʣ痁׸F5Bz"JJ՝nz}V(B-k)Y ^jb׎ͧ~(#wHo F=~>#> q3X,weDÐFRBRC6NaPX[=L_ 56GE k 1:-OLk<֝A=>Z[ >iiJV).!6"~u(ml&EʁBZ1ш0s|he avƢXwx3߅1z@ˇ}g@փͺk1Wx[ "Zw{Ȩcxp!ӹC[ .#. q-V[/X*Cܨk?1!0/zg d;3$ė7 6l{)b3Υ4;q4B[t`tu w>I,eQp٤Gg(e.RYfPpeEh#ױW[+f5BѠwog)Ӝǧ|Cvlv|CV Tc/PCiwy"]*g}3aBc:gY*ie A>CkOo 8!3[ 0z-{Liv$Af?e1_ʷkEF\\y kegJR+a-f̤K2_ny>QՄUw7[:"*_[w6{2I>[\Ji j'?pcKzR Eù4dY5[gd|}yɽxRo`H_vdQ \KJ7.Ů?:dԛZK҅06;PaeHV%d<>7m;21W ocǢ A14˺"2\dqh[{hbY|iMRLWL-4M A%ӽ6أߓOBYh0C\_2^MnQq/h[_]_9,&P|;KLRPi$g8I̐? AB+b5wp]}_"zӔODY'mZɖ%bdسl= s|,"Z|m=T#Tf{0ݽV9YA8( > l=*gH.7+Ġߝ&eƾD ё1Ңf"t`J Č7l)4zM4r"-miѣII{Z2Fۅn "BYkOuIJ s )޿h,4*‡ٰL^^ Jpy\kډFߺMmd,=7#3Q2sɾche,*ϽA\u,rryl-"Uzs@ΚB53vpRh$Ѧ;5d!uXXV@ OW-;7w`+Ra,=̟峕)] MRHRj$dr3ۓ%v̝'0.%d@#QS?NCzyBhdv !tk&#A/R̈́wlMӾpVUѿ"4VnQnɧ"~o "v^%IVRR% MS u^?nfZ'~Q*,`F$>^v)9#>v6btVP3Ep b kqrt pL`yҫ͌UMx hg9R|Z՞[Nt@$bn\ĺfܴvi[i`D%]$&N3u'Z):Kb~qaV8RӰއJ(MsEgM-IN|՟!È5 I` ]sm4 ?okwAAṿ1U[$i mn 8f)R⽥R|.7+AnSq:N4+WQ0߭ <4g;Vr,B]iX0 嬈Y*H g.N=`y@gRE֢=(B͟TRF 2"m.톇ul8gAWY:hg^s|yw3dk"1pr) bM]!](%[cdBƾɚ.B'3ٞEfAPV &Hl ,Kp㠄s WoDdp!pi/凕^3T$W胋Gx G/'q@zӶ05~IQ ӢqY*Xh~',c())}eC}DZI Wj,]{kd2q|fvR4) ?T|9F1 C K[VUg.Է?]{e<ŽE++K;r*%c ?X:h JaXUo,n{Vz#PH* y,=j] ?A.PѡG"Vo wXH$_ Cų.YgY:HJѮ0~4NrQ-/ʮ0ɹD'5Q'N^B%7T$MsT.p N=Х#h [1}k !Ex`({| lQlXN'¾z5+P)]Z(YS,-\}߮IRKBn,Q3}xm;f)$Gx3<8Fvң{وCݡǥ9VB 03:@p\?L6< =yu069ŗ`9IT\O-[6F=b5'D dH3 Ї8q#"'9԰MցC|>f7jRxQaSpo`~䶳LR櫄zQD2}Uh T)t5A/>ʶ%DQY7õX.lrF Lm:7b\BE/E?k(?x}ɨh&c%kuGŜ}Jc5JEd/9 #`=E9Ԛ0HnP!49f[0h`:}E/b +#4/BF^ڂe('N 芛͔sbp%paBOåL+MƋjKImho沣ev_rzʣϵcagqN*)uPLD?ˤ!ss+gv6E^qM1;DanB3kJz;HMC2N(r|ݬ $V)ƒWHF;gڳ( Тiz+\HM5yU rU8\O z%t'k/.1$W;A1 C fޏtgVDQb].oS#܊ h0zUC4& c9|3(l$hDcJX}ec 5[ P< v=goaGs66n՝3K\!!`SL;eV}WQ1K @Fo[9bvǀysҘQϵ-pʃE a~m2LXp֝k XviКn&^ijAQ8׬$m+` Gp\E0}xЉ ;ƺqFqck2>֟u\%%cW%MI1+g.=fH;|՞~PtM.s56lTQUg.v{qkbpZm5Yh R(ˡpe?@ FtOKnL4|u@O᫂m2׸]<I\L2DqvB8f/!y՗"\n =g*EI8FN4#8:># 6G֧41KL̕gM+'=Ti|ko*!PPOGy~!o939T%r4ȗƯIVãJG{sXJs6Ha7Q`P RVD献ѧ i +@0r:@ctu11vv^c9H2JASM nIKY)\#H&?O8X_;DKKL:dtx5Hl8rM<n)4l  Sl^ζlw7[)Or/6w9jpDv>+綥7vRë}- jZ~ %*QLiRŏ3@AQ{Sv`6W9ȯ^M^NC !RS<'߷jn*[(5r]8 wC#iYGeja_!Wj*s!$ʟ:电0aK=%qlZ}іߖ G'$ iHBe> LkVO|Q_=mecq_in8Nkj\mĶ.=?Fbz |IT7zheFHȣ4w#eZ n:s}3km5SIZ}<9vy|3W:;qm=[@6t|pq`߃y+'EP9S[)ֱdÙ&Nڍ" J0:9=\&bji2- 41F(R +!O@F3?}LY 2bd@APx2 o2*vtQʻ$V.g9/`vVOxh)ט$s&?ni%Upԫ+`D@C͎clH純 c]Utvq[89Z>6 ڃ}jߍA>vq\\7kT@#'iOtU vPNyC} ƨKt#Di*g2TJ.5%0S{ d:Oz+߽js3%Eśژ |K /O+dFcq̗7Eډ$=;Щ݆YPx;]ѵ(ȝjYw{$FZ61^wSi?hnGN-b*&jDc8lBDv,w^ڔ+7lC6b~O`XZ .r9퐵r%=?2gu{(ZmQ |f4MHf)(B~~A&-+,&>>ȿ7N( i`8݇Z $*Let*wfVsM#|u) .&gc2XAnUrʋߧ`|$h}#xwx#w|L/Qx<|ÊXJW(q}5!]6 `*3uVK̸)+l k,Ɇi+܆٢v=Qa/m8pT 7̼kۮC3"/RT4'BS=}Z!2')U0Q?}EΕEi_7+6i.ZnH4Kbf1pbp}JAt%$iN!^S&}]&9r̎k<4=ÑB: ~"h0+8m@?.X\!YȜRa Sƍ]%;-ne,y8y%c?e[`[W@?UURAOTmR쩥c2@)?Ej8Yv|hM#"ԩȷ(Y3x-VYcZם?ơDrOŀ%(Kis s',Nn5h,K_5j3I&knṖs@7!"mE.UR#h5cMa1!D( g,:Db`c4zY-DD8 aOt5QC5@CW>H%hW10bMMGp$EUHS^ēsUr k%@ ]_o;KĖFI-CM0`$D шmyoXhG* 6d@e;3 !kw;U86\>ܻ6kkYc^9̀g9:Spa HYA9ܯbK n`ek{8.poZ PK?6$[x~TYǨVrTKd }9<4ݍU3GS\ov2 [,FwZ2<pgDOLY|W݃":<{Nו `)+جѳ)aC@f,Oڞa7,j/|'K(o q9Iiy0l,Kl?׈`0Aܒ_43Db eugCUV#UE7y{r[o']zy kQRj$ SUfg'l D}8Yn'dC\~7r2ؾ`XJ^'u=OB7k]ވF=j/|[4p#ENU[[;–b"(8e.t&|5]_ lv֎8Lg}UA<]A^s4ZgEԜ 1?` C䐜:|NY}" n{#S=6Cjp|Xmva EE55'P!j-ϪhwOOP|wظ])D?/֯>6n(HӏXojY{]!>EoMb1)R+lp(DsǒyYR$X2G@e8cFA ! (ګZINɛ3hNBS˩!kuڣj9 9`/cUf/T^,;؂0,\vmmƄҾ]<ՠx}'$;x1'՘5S+YIx 䳯q{qh7F#7Aλ ߠ)[p#95U&crtI(@Ch |1uCTSR(c)לI![JR);j=J@gK"'=eˎ9&\j;8 TR9/ˆgJt^^#=q, ؂5}mD_lCZ(n@\Bxe=9#B aW ;۽xݴ]VbG2ǀ|H^ ]k67Z0@s)wzǵ8 m_B]J\xYjpP'8R+k'H]FiI 8N.ME\r++府}ߛt;y= ,ҕU3%gOps3PlmYzɾk_f/`)sXK4ֳ'}.k6F wU:.(z)(X~H`߿Vs84 ] YB#ǰD<xBLxgKh$bXGt OR[;&G?:xrnb l FFրԲi;G%׉{ͩ]FK3-rz|ߞ"}H7ZYU5ï+~6Xy .oe"sLRPۧudļoѰ̿v8YI_6= և萆c5|ʵJO}}y{ 2EMe!%Hɤ> ;zeEkmxص*\m +>l:ㅥh/a" P p$]ӗ+y+quwh*ͷ ; ttnc K1"Ci12wb]9QD/;Zq%Ǵ "T}X"ݪ龒 F)䱝i G?BzQV/I߱n?)T/DϒiъyG$dnXϭ\ 60<ki4^eʱ80HчosnMout"9B+:kSCoNIjѰt粄fڵPgCkf\LdͅeZ/M45ïė>u?Z  )t`aBӱdX & $SCSoŔ&TK2oDBqXjS.@'lϑƻTI^BaE6z8(xH5jH|u+iw1݃ZX}ɽ&b`<@y ,-; d7c ;<~Y23V!G} E$xSJg~'dWL5m宴Trd,N##鋢N;s(wd@wwe"IȎ޽7ɠg=9V'VQ$Ѧ#qwS8vƹ֜.5(aKܲ[T6,wugZq1al{|`;@kWnl4Wٹ_qak@ %.ɼ** D\lg mӘ*fy-,9d¯e@[ ;p,]"߿gو)i4L<+dK߱lHx~r\BM;}uFgBvҴ5s;la}Muzm{aJ7l:W8.4$c5&7cQnU MG MX܁z@,\O) Pg$JW@-jzF9bgC0xD`J4F<НhnR78&?<0҉&,ىtn)\(Ee<9pp z~k z!ss/5DZ٠Z!U|Y}ǽD+ddq1PJ2G^Hqod7! WE[2 vT &SdeAƜmuwW%r+6<5UcEj9Yg5Y rjQ>T;[,`w`]%J&r>R} ]~PKh<3ىW"#[̓G3VĊeS>A:?>t"ߓ[4˦޳2w>E9>3XajQ`iE0M5w~ [:n.RȕU[YjTġaY Cmma(ߛ5ocbq3ֈsNT$BOoFyG>[ASuD˩=߯c]A&%vn FmmJq.%qt#2s;)s]V:pM6Jn7OYk^1HMzk?|M'4^WϬF hk?CڈsN:D\jL)jݗ@W -*(lG;;8GXhDc? Z|@4 5?9X# s ePmG9FTiY^W? lq'@=dwHq`޺MD X6iPD´ߥYiV(Ky0uCw#2PQL3cCGл )ZtTc~b$E}^Q 㶄k-C;%WjGְ󐹳@8n^o ׾ yØ?CUOt[;N~lk0mpPdLQS4 qc$NPIԹL=BYvH|#̀y7"/!jm/ 3DKsB.*R4!VV_&/h7u@|"W#O`fAu0^\(f/C6?xt&.$cQ+Ҽv gZpZMx+P Brx!Tʣ@ m [ CQĆK4G)Dl E=Bt6$g߼ WjƄҠJ{n .qP0$5py.q-k]6jt72Is}U~SWbNZ(Kd8:ޡ{) hyS,AOf31J#?Lю0"ZeJ1Mz.#G'hm3/~;<8ڐ|>E}ғ<խnJtvQ(S ZYpvGĦ(Ign85`6"M^@Q( NQKz,=ԳW﨓V 1g<'B eWu!4@gv<*ܣ)J,NPpTS#JdY3&8ʓjя9ݢEL9KAȥ&>s9߽r2xy:[{e/4)r~S#?nnQ^M4W%-څ;PEm8ZDv9g@y|$-9Vj BbFw j;Ya3qSO/5[ZIArIzI6;ɏ)k,oԬ@%ӲjvH1YPZ3^<7Cio@>,Ҧ I31Dc, `f ɃDr0gjLwV:Q et9o&UkKu@R0"?_>^o!M0b=@v&c9Ⱥ"! bӷNO-lQLط*0Ċ> (%—}>eLb~<.ei-A#q6\~&q- *z3`llǴOӘvc^hĬ"r8ju꫋LVUH8~ hegh|v G@7NvǶ trz9CֻO-ȥNQ߫UK{S,}빓|4?,*D"{Rz/Y`Y@ŞM.LI2|/HfmM'LЂmD-7adZCtOa":d~}[$,Y+WA2q>pJ| [`=ږs]5Btꙅ!,4 ["BeBwa76OKŇE-z~Fx*3)bVrM{=B'VBkTvΊg5 R8:&m-L`3:Je<:8#ף ) 7>PH;;J04KBRx*_hnP4;HmzI>nʜu\'@U c6kCĺS7?8}E Zܳ@'F(-aQ xGPP ~z4-z{*GYx ĦX_~hز<ئzlwl`2љ3C;Ś:搈 cRp,цc k8Ai"PXiy V?^V#kϵ pdBp"ڼ84A=/[_`O$~M0&`]"0 ȫbU  Vy'aGXȾ%aг#(~:YfYI*ik*8uRsd:l燚Qڒ>K=TTTtۜcu3XYǖ35üp!roT>FN XInjwk _sG,*ґ!}6̑t-:)c#z2eܟQ:wj`~?4rbo_7h2=Υ y֡dQCpT+`L J#kJa"K2p:XA65!,;(=w|ۢ&c`#X@Hyf~5#t[ 2`ֆ)ͬCI^τq$ 7a'QBc]OeSНMUภzsw ~1v^g[UAMt7"!ۏ4U!"eB@qm=d|S1yxm\zjڅP3OP-4՘jѱh1L5l#2Mve^+"ɖcT'>NI_%d/(ps֘WGB˒OB覺Me} _sRD Ь)*DNEo% 9jlK&ЙS풱{5l5@ëIaַ;&ێӎ\,S7(ѻ(,|X`^k>@Qs(Ifɓf@iLCh,kD{C ֤kjX6*ƈ_7V}Mk. (/_]чͦ'13mOY0/u˸ .ɪׁ{5>Fwp AzsZ3_= _poXZ3đ [' c?%qI3h o\ϮEL`g΀bΐ,L "|),@^pXu%Xj93e)A±eY};ÄDP}~eShN3'3T( W̺6sM.<0T `LWl Ӻ8@pٳNSF@?FEHwmnV ;{lHTȮV̠7Di̚Y#ǚ&mSrɬ=ƮX$l>sVk]L iF2򘓨9n8uwk.PD-ADXv?ߜj8<@%Pͅ 233xFXjj#arB4^ %̯j6Cq=?Vr=#p:;heqt엷h>ɡl9Q]Oּgij3э<LX6x92}?K~A%7rQ޲.FPvJGI>%gҲBצuZ,|["4[!: Dl81AU.?v3G$L2V0EUԈC:Hۥ^)U]g'9^rp=h?3wz z=@Z+ f|C sX6Sq&Q}9oH`ߒIhYAsHb$ XE@'э;tViwg Dt"ԉ ;`TipbtQT/wP6r5N*zj#S8oL* [֦6g/I5USVP~qA뎱X^?P0a  ,@.`RP t"ߨ@GMëEHw*L;S4^5+UHdWHsް~W5t =rrgc'~T#y|K%! I웼!s ȍ=sK1dN lƬ۩h)SGؚOZewn[c_o1Xˣ{SӡW~/9iB]2YE6v? WP$ń2jgP0b<[*mOH3 @ʗ}cGOkx"yMe e ) }_!LJ'Oʚ(g=d>2s.3k`""-#L򽅢iG !ӄptԽ _C"&t= AA¦Q5 +aËl SEv9ho h?F(-]W$8Od&_(ʱmlix_szrd. }c' }4 #o"HX㕴]zb-X&Dtܩ|ANZ㪴VF>IvXSn*Yzc;ѧv[Eィ:݁3ԾsPpΧx8V{iGBfHtw\FHl5.n^n\{7*k3}Zi|ll;;sBs@m^ï8%ܠ=ɞ3R"bV W{^c8N7MЌt89 cA{%1E9DA.Y>/&0bOG3q$Acˬy sxٌܫ5J)zX܌97B- `U8a^GT^5jʢrA);(N`QkzpOlt/GzV'P]S Hu 9#=V.8,؝axCBqb'̄(-G8~F}a=ysdvwH2ҼEL+2 AMJBkMg?EȒC6BϷ 4VaR%†k]\/dız,0)|IP+hՓLWt9 sVvcGrˌ88:r#ÐƣIe#52?ٍ!"NjYI0F&znܥNzMY^n|2>IB+?gJELK>L)sL[UY# L$D\"*PH_Gx~nB}MHă+FGkb~.F. J7`6VX\~uONZezˑ0X6D\s;jWUkCǏӤ!^N.nq˓t斻6ET8 #q6Kjeu5BEfw;@X5=aJ>mw#V1wY7b2X"ǏܫO.> k.I)| 2$O7!vgSMtqd0 N1Q{%۵CaSDM:+-0R;Ćua@܌gBjU; 5bFW{+'(bQMWl2Mͼ-fLIÚL8ӻ2^d YuQy;gȻw9$cȡ{\믨&LB 0_\++;F[؀)mEaڧK<]lMѫEy.Ьal>hIAC'I $ Q_i!7!hF1`޳X@kw`/9qXW'SY[a>{ӧ/S/W{CpMkgn``_F9Q )p$g|f@J_9uQ"RHyȤ^4q)_ %q!+2k$8C=+{~lO joFaӌRʇG02Utc,F]/BĎ9td])+L(_-6q֞!i( 3 I 74he[{QHZDwRw-(Ro/w%-gaP8Ekt54ۙK99VRShxơAdL; _cĘclTqE$׿↑&Rٕ Is0VGmHX[~.G,a|y%|C7J,f>M& k-U6G[NrCx!b_%9o/ІS9 -9IX1Հ*zDNAln}XڸWf/PJ׺1 IF|𡇞"+SS:?*x:#\+?jѹR{O1Q~AQZKbFsPhDy_1(n OYGЖX Dn:ß ?|# 0@U+STR~gSiԽ9aF3lW7U[4"*Me^#ۈ#M ZMLf#)DF,f|{Sx9t\O JA fv@@ JN'ܶu?`'z§)zpNfVs>BA|$t:g&0[Ƈ)e DvHicfOX4׼CC |{0Bܿ;jr?Q`ݓu']iQ3,clqζLrg>UҐBG`FDZtQ~Ayù:lFrxy!޸n)*yˀݺv4 S &1{ec&D.¡X|{ܞE GhYM!8s / M/S&a"t k ܇_)OJMKFWd/7 aYIɗV(mqAo:H1RCUgMKa=%v0Ñj=EP`+x1Wg^ZZ׀7]7nK`?z#Bxz8h/o0%mP3֫&Kh?3Hϱp~漞B 06 ڰn%Qa$D2&<8p!nN9_$MvL4,O+1ր%x>c} gF=Ćֺw!q:!a)P3:RSמ jIV_AgrBvU00{PPl`~ G:vt΄MB%H^д wa:p؍') Js0^M*8Sy@yl`4|vP5YڎQ.f-]-M1EԊw]MYR".(O,Dm)}f *T%Gh#Qo u- dzʓ"_|F$I6yǩ۵oHH60k!$e 疮IK^^4c `9,t/p!`fd&Ci:w )^PDrLk}4[p]\f֠5k*m&OJBMS|-tP.яA2oiϋUC.(g*; 6xaXTD/Ggi͵du6[t f_4x4(3n "n7@P*A57 q .U%^nsyXfPwPCӶ+o^0@+URLނ߶ًѯffY(q@,H&Jye{mdD\؈:H[݇r0'ۦmU&!Ni'z*'rv0:CI)#񝔠>aXzIcB+ӂoXl6|5.,#o3e~xkTĢ7'jsL#͝Z%q3^DzdJjeN[PbPŤ4CBə03,,W2W8*2^YEx?Dߊ130gҸo X@e qL=4tKBMs#шy(R=2 :}Wtq2FGVLE<]o`][vw~ɀPBNC !F Y0d[jwҩP'9:1[lU/S1zFrY2ɫQ [E!7Ąu*&{}pYEF Zdgbx\fjq!gdMEo_2ͮ™ǧiJ6lfo7a]'7(E]Z.e!H 2*H^.bmW!"Pn<)-$Wݾ'b3~_ ڬ_lg2u.#f͕dj0w )m`a5p 8Ri#/-R=!mpRAiOwRw_Y^i #`{ôXtfKC`uXSmLL{nx{½IW )P}mrC'ͭdŻ8k{Mom9]Bj&0VéU&et*5JQ:E<=@X\bhmXl_w>:,㋱29r-;o&3(OOq(1y Z~Rڤ-l'xxuFxR=T܏>Ͳ&_kJܲ1 !Z`bRȳT"!̛I`AuAsೊLHQyiCQ3Ih`3+s6kcT'uk)0ԏަVw3ntV7ivWIE|=; @ŸGDdt"G;x驅X$6@7?n 0Sz%.JWA)`l꾎Dxf&R?Fоt|k h䴑ŮgZ4}7~&{sHSuJ'\SKC(z!,V|-8|C|%'QǓC1--A0;vͶXuDCfU՜Fh@)~kGq?[.w^ $cLdc8J gUgavBP#钏FY(@'LA5<g (^կ[C#xBZCGα~ap{`E`[g_:NeQiz#rw낝@eLS)Dh&𵹙9ho=4nu_{3[S^]pXa)ĸрǽOi4(`&|QHQ!7"FXT|oY@tE¯]Ga9!309eT 5/ fi7uY)mvL9Wݡ@ aPTڒlL>AZ,[}MaLls"^q8 awp푸@qcn4K.X oDփ@ψݱ oF8ZfRE7 ǸΎ#GN`z~+lfr e1m hq$_)u01?:y)v62axtOyt|c-(š*2,d$: *@j\TH=-'F׮;0qt FVX.S *3xXj*j"sv84~3P7^hҖeH0P=_҂Jɨp@p(yk]u5.Eq{P 9Pq}\pԘPJ&M$v1b,X8ג >?mXuQ^>X2oO LTqȽ 3]8ڲ,F5jD]|ﰏ}V-Mܲt\SF~7}[//@5tԽc %D|^RzJnZ-4bxA$, U<˜Es2BS~Zv:u7һv 4 eϠ1CuHhsa<9w N#F9)]h!,4;-8RF)::]>e%T* `}yf CTKz[GeբSKd.4-SFPς9:Hvz]%SJi,eeTV#"4jq0.> 4RjAoLA[ dAONuƟEF,>D[9Aʶ #ON7HYg[S"X ['j=]c+hneTHO2PТ9}zNx7SNDxl`5A$ά:)Y. z%W*wV'{ ^A&{_&b-T?GIgFd్&+Vͥ?FsXLkv=]"C*rk8l"aǝ@^{Ro䓈 ">B>ٟ!C yB}tON|7U9ڜG}@-#[?Kq#!-H_!mnCdHERʤw^g+%?/&,dj} u<9kҪw(G!LND]Wxx$9I50< oivsN%pǭZ$ձΠ^_ۤh#p|e|;esehʦlHGC[nɈP>LD`&EܮW &tFŲ>D!yHG!JU7/n6*ql w6tP~> -^ 5sbeh LJ t@n2c7wJۀc&OHWHp 'vThF #>ivΊ!wxHz/:w{}.5"irٲqa/wNL׬'Z]H:zԵMb3po4tbDD3NƛK7XN(hk/:ov?Q'lNDlo DʞW;@BJ&+hP\*X ܖZfa ״56Z(=5>B ʂ"X9`0QTT̡.c/jhfE!7Sg8#-@UAY4Q^P0;<0e! ,|ee'^|A06I8n}c |BbÃ!rp _"▌zDZya* };O~:t[)Exbe+C4FicRMX9_JH P6Zix_Uud*Ck#jJ1h.& Wv RtLsC?%fdC]o^&osm,~"4SNtXUxp]NtX92S! AE#{.#°)fJ/_'"m+RQ=:!b^c)=]]'8Ef;NZ<&2mkVɁy)V|d/g@[FNăr]m@{P%Ne?,&+ .G;`K S]-&4/;]PD m^4ӪƦH bL|"-E%Q Gf6Vg@5ocWRTkn?r5AQs lk@Z+Xim^2wKI^HBRsm^vcdt<*I.E)i2w*OJzۜ{#`LfNЊ}5b 27q\1duMed*/hDo3gQxw0rO! og/ -0%Xo:g8P9Ĕ_ϝg CUٮ dL%giOkCit *y'= YnQ?ϱ&w ih WN&Ržc5$mQσaOUwUDʾ s4W຦P'+6]TyF ,| 5\M9Ge4 K5¶/dO\)2NZX%%/A8&HK{mɇeMZL O)'g[kX1^+{@U8\0[\z- h癐iҴA\\qŬŔqz;l2mq5o";2&@f3`0sywe )u'#!ia_&7$?8]4n~1'Myì'++XUv+:˽--VPC;B1>@{<=uqžu\_o"R06S G܇{ R Dc[bqz]d2oIew 0_ɌzG?BE3)l hC>陵,Eע<+^c{ y!- bʭ U3~0EB{yՒ&>Xac=@2(m'}Uk *b u 62+5/)? t!I?’]>'LV+ƹe=j I7D hOFlz 5iXYUQ4+qע^z.G%BKfyRi QE4MhHqjmD7~CҕF2몗bbaz"EZhGsD\7rMסᒱ18Cʃp8UXoq~ pz:U~H2-d"}pnT?{VPS?zhB3ΓBJf.ؐR& a@=?⯑aC騲peNLtU9=(Hv\؜bh_):z&/U n  RAIppm2}ȯ,( rR_=Y dVP9WN=B.'^J3@;MI6g苚6Ai0ƩfK~56" {يmtE"CKDXz #WFt1WzTY|0^:J줊8(=围"M{^2o8_`'UQis:9=c-6C'ba_ac-|Nk-<^pG]Eb[ѿx9C֛pE@,f1Rq2,2_^j 7~D7C4P]L.2 8LBmK@|'oGT{8 h5[$`" ]Xc#x>z|8g&]C cPO>(i<F(Z0W9 `b8k R`6u/k4I=}ݣ] {B-_EMQeՌ7rbY|,)ƞP!"ᾫ;k8f$5 W.մOG4;Vbu!_ U3A/yI̴S /x0q̻̿>ޜ[[f~#̽/8=&8~8zP-B+LiO| u\v{٫ScW^b=ZY&oy_C PHՑ!YY-~ f<v019ٺ" $K Zӆ{_e5a;/vphc.{m~9'>Y\Qʯy]nBOerۗQ@g"a-F}J_1?6zM4r4)rp*'̺HDFR(ǜUw TK)OmH-} qZ1@LE4Y9Z%Ր8t>!_ 7U4)4 EҫҟKmJ5%5ago)D)7HRx2KW,!#h&Om72fAMn6ԛJ865D?nB9#u G^5ehmI1lbdz!s *$,~NJ/o갏pEwV=MC҉r9"F{*=Zǭ'ZZgf[ux{ ZYEж:L:Z^]aYRK1%0"7dٿ@|ay)~һY#x5)-ւLoM Әbku0ZӇ/kWӞb'#ƦNH] n~=by)ʉp`1t9<2Y9S"U%,3?LPᣞ B l͓@B^=WP9)qx10L/Z0p dP.OΎܿΔ!\`oT3ʟe,ĴġL<KM@OjGͭ ,mҢD8 iTMǛܰѳ&6P)Juy_e'ۤs7CKkBDά|0Wa5Og VLɆ;{ofSə\y) GٚJE3[E I?>Q\/Z*o?<}rysutjmC龺[/IMZU[Ͼ^m(e~^e P2k"r.&uB.Q=W1dZ9[*= A:å7[! d#F|@gI L(@ΔĊ6 +d Ʌ/S('Q3\#Lp2̱ bdso4N~3H<}mz!;+o[ RғB[w}=dN*nK Vws/[Wjh.UT~D@k7&[0FxyFs3+uhɽ̤duӣsbBq5Aff|Qf*T+gHӀ1ʤ@T !m$QXP+S(uA C. r_haԧ-͇**BBQG,je8ׄaO?8̠Ig췒܍9Y:hm>҇] )Iخi4e?=ĴUUD!ЌC.Uqd*I4} u@n4Ad)|2JyXYCicE.vpST۳Zf"߰ZAT66yj|9/K"!$ 7Boqx`HSmsQ) 7Zp7;N{ڶ#>1RSj)v!:lvqdWXڊE?Wm{CZ0.HqYkz%눐(1fa9rlSJ{d~9`n%>^}pUk:\]xH4Y GȄdu_o3Z?B#!:\A9oB "@ۢ PqLo%ƉC`6qZ| _)ZlcRZtExyRUf<ƋE풩xlh  d&Ի`lvLl'vZ-V6dyz -е&ɏ}7@YdwIȮ3<8onNl}`6'(b+8xOx]s(q,*|O{5[}v'T_rT36;sY߁!?td! y+AT&+#ꌠuvZX IWK-љޜrF%N] M9p!la8x4~d SDi:h+ₖQqKe6 Robȧ91`^8~zRveTҘ<>Fi i$LԻίLG:=B dk6-MgnpDQt:,'-c]vFHZὗtdC̷Zdd—֩Jhd.B KhY|3FBpZQ+[iWnM16jd j1펝DǟfKfG;pdM,1 +:̟o=0MkZeL3ˋGd_3ZdHB!%J7z0u<|x;4`D(W4`v wFb T8cʿ]2=/3\F&ղq>ˇ\R -)JQjaoJM"[j{fF-peP3ia !* ?VLuw `iUs"lPyNztj!d]}}a;ZZy/%t]kp09LCg[MKH(7|$wzSnV|W A5_Κt#=AFPq%Õ#SqVY!Tu?7y8VW*)=v)uPuR=R]|ft\saA\o"c`7?+|OSRl_ "&U4x~Bo^{+M_B?/g y8ҭutKO{}ٸ& vjƬI;4-ݚbœbZd~%er=%q5GyGm_v(Ѷ eacL4v8?tٺUBB(lXuUFW^E*ʑE⦒*}QnǃGEE)fd; Rϯo+?"v46MRx7j:/,L9pUuYT<oV{ qD}­ =gY?V9u@ޮ&U&eH΄XsNl|u&_((yO9q/OqSH.I ֶ{˼k gbF{.}Jd'oS沟*ؓ^68&b(MK)MQ£Uon-ˬ-.Q 1h&}`[I9-Jex-^mm5_k,d¨>AVF[Z:;-’A(:YZ$/U&pV+pҎ4(+zA>ITgG^Dz:v*Əe܆WkqæPjQh{k4 }3RVXwVa#*y0,^a+LV Ydv*'t N <x/:o v'"oaZB(4Js%1l둂OZNރ%S ^J+뷩*p9!w1 $*-xc6sTnsW,0'"仞q!_FtM Kmo >Zn i{x &ĭt9}wE SP^1K h6XQD(aN(vD'^GI‣#I,r|%'Ɖ##;uIVlf#J#Oa1P+Jo|򀼏b&,6s;E ;}v&;8=%rSv LҸj ?6iY~!rD/Aw,Xk[wX}zƬՐ<&"$2f# Á+Q- 6v!hOBq|5:"$#O%1ǜ>Y|6?ŧxt y.KNgH? nξfJvm~231R:K kE!sڳmhSt|6EdUx5&+ 8Jh{x/JyB`xQ wW'⹍5IyVcro; &12X:}|џ.j=ʽftM 6yrJ"ܱkmAZQg>C쨯t|W]YqlJoiޘC6+!y1Oc}IV1`-O4vV)ctSX\O徵DC_)V+8[A+8ciTx.ِȡz3JSQRɌuUR?FF%{nô!<pQGv5&AF潦H%h O NSh OPꔑ[i&e*FϞ{{-Kxk}[7Ez^h4A녧qs}N"b'|6"K;]o 9ogev6eןKe9{zYԏI+$u,mw?`'X,A{T_:)矑JaA[I1ec]CP}mfeɉ `%HlYW2(Sd_EUmr&SaQVI80{y]N;s^$dxxʇ _]´NOS{# 2B>1uNYf9|(7GxT=v"-r\dW[%PbЯbZ0Adpo&6ΛjT;ޒzܺ@$$1 whb]ߊWmֺH6$CfX_n4I.]<ƒR3=b+]7G%UW\jPH6h)M3X& JFNc&9>lYz; \],%tc#TY/]gEq;+>Km!+Uor>ɴ!º*Tr7 SaɄK8qH[[~D‰i W !%gT03){DU[5T;,=M5JA#+Q9}Ǩi98.#o; Z{~ Ŭi h0Z8z'NȷTIN5?v^U0o(Be/^.kb $ػ̍ZO=Rap#j} 16Н$`+zCizh 7 ٚbS d>9  *C&PiWx&@9MpJzXOZ"?p󎼕-c {`ՏNz<>a=0;l?J ,[SVO\4 2C"%Bc%K)Un͵ɽ%຅6ӂbPlR&q6j #  C?72چKO|s<jcC7c~BwֺRiv4qsc/HͣnQ$/X ʃ5Cӫ)oT)F,MBER+mSO_̷s0Ǥե㑍/sPKIJ+ #m ʯN\n@R=1.P##ݼ{d Ȱ偭s&ݷV&A*E09G5y*,Yjknw~|uNADՔG4~‘?*73 ׍O Fڋy 滕aAV|?YU&]V3(ڦxu|"ӄwNST^*_ߕ$<W:d3,rw)Y$շ (MikMlkܵ7K>jYABo1[:ENhݤ.ꏝDv #cHM=^fٸ: 'rlZK_'n#iIMFb cj!>D . -M6JK2:Q! )΃7eZ/e'"s־٭}s.5Ö@1щ [9n{-MI ӨQt1nݺ\%5ھC"w+Uޙ\+tNARe)Pjy7?iZ @2QYz\ shˆ7v%zR쪗4Y@iGr`z{CիW!,3ZrH?]y^PD#UTxWw̏"v9q >Hޛ P4+͘³ >si1.@&ϝ6>нwZ˜".ºVmZ>Oڧ;xjgaE7S%'o75cR&Va&'M ֕r󆍿7=v1BK. >~kGP'(Yl,/[v'׼oE6bc3]ЫGWU?,KT2XM=~M[SpE5a֨v81\$*#.TU 1v U*Q#Tl2[Js?"sj~j{#rEdqӐ cs'Xw{v dzKl~`}:1A Sqinѿ =깖c bayZ 6n:V Ӆ.g \(#ۿw'[6ӁEFfۦLAtUO=֕)qd&JUՑqEI2ޛ`=˩y&QR_|Btl: ʙ 5vNL[W-[ӌ8R!$(s2s"]YM2k~B.ħ/]>Y-1"Wqx.IrŜVW_9(Oλ~۰ۓ=^JfzPX7O/dC%4Kf*vIPpۆ)VK \_T휅0DST\Rh\}šKq[ƒ6䰞S_C b=)Ѝ<`]R:X~4ogɢrک_feU`oLs/\clN-?9Bgڼ,_H֫'U* ?߫ X".~eR(Ȯq2/KG֜=ōB椐ēk#!B d@1hRH[a2_u8U {8Y(&|OpFvҜiWpς׻,ZdɘFǓTO`n݂B,ݡyS{a,l8p0LflҮzP$ԙ#@{>I`&RF֙ÙdTq@VtE^5$_UKTRK)s'pE;Zሞ7V_Gi~ѷ>dlFw&msh6C{d3bU(V Aް.,,Pw/:h5x?$u)~7O)Jõ(7*L'gxa( ;\lU RٸхC\6kYθ WH|bb #\ѓ(]5l̍V⽃'-9&ܜvx%A]3 dI4 c˦{jP[<_6JFlH 7YGUrH>KOũ-4,50GSX(_'eEՖ_@m~D& 5ׂ y7*rD=e P+B!ngD}C@ŜB>Υ\D_zu&FUԊ@ $녘.Li#l=%/Mr[-*G}f H#jK6qz !׍DGVcu/Y/bH4m1č-k×Pb65gl>>= |UJIrra^տJpd&k) %O 'e\sį>6D_06Ӣ^1WK|bH؟ 5n:"ԍ&4 k>*}D/tEuةYsV.ɪhX(֝ C,& K9w=sǔq?38I8"p8VQW#d nd(DQ$͵ۺ[xW֭;s/ڟd$8Cl)mMeVј,&;|GxH>HC62u*ôC "G)6gZ[fꓤp]vX+qL 0sRH25[Ic?4B **~Hl- [f^Lm ݹ1 vf.p#ЀMd6Ūs."xQ7r0{S4$ xˤlaq d!v.ŪJܙ $Rx%撛_ERVD8z2\wh0lѻP/,n}r0 w J l;a D $߁jqjgmw2t2Kd;EAr4cm*fAtRW&0.O٪T1K?Λ _(GK:d'mZ_sJb/7C'b$B-{#[‘j⩥=!uhT.ˉ|]=2:i2T˲d{{pC8\Hd=ً 4 pF_ly/0x$AD4t`8k(nZ,d:H'nCEí:yW&B[EЎ{V\ik*ɩ䋘4Mb^C3 m/nnwVJ3X:(zQ4 kΧ+g[9sc|^4*fsqaP*6C1DÜ~̖[`忰 UrpJg_B zZ!Q>ǫO<_^z/<㷥O3ߪUxG;sX5&`;( 2?t֊1+;vb2|08rSvPFP?K++S'LjjY$rXMj}Dݐi".TkMs7n)HI+ -NnN-Y8ig`8j"`a@l'6cRue9ZzƝEPR=,, tӔ1fy;7A Ƶ{ ~Շbau'! r}WGq'דa 3W B[k ,[i% 8_+AlBZN*{wn춾Ե̖܏zwBGsR@Gס[ffl]* l7'ַ:gY1asؽ(I(|uSp @QaT}D+,¬ڦFs\fNˬ&Y#0@C 3 :\xd\S6B!uO`{+҂G Ss鎬f+5t^Ąk}aUΘTRTK- 6u >.\#RL/|iӋ&BksMB%e@s}{V1zEv@yCϹ CJB`Eٌ#vt@ K+)- a`UgyE+<Ή/2†9+-Bd #xHo JS`Ct/߱IEcjf{ ~c:]Q͊% jG lt' {S#m=`>a+XZ0Uuj RUVWWRZ"> `4qC̡pɿb~qVy/\ڕ;>h]|C/0vjH^4nL:yF`>Wf AzO.{,CwU@BpKQ͑J`lR4DzqF gyxYiHNNpRQ.Ve(fᩑ4P´VmR)&"">r3ido|kf9kT'rR~RfjFÀU,.H2hri2*[ZQ` _1O17%}Ҏڜ#w߈4hglA=Y0Nhj8A>@J#+C[3 sr|1L3sdf`7I! gO_!0ޡmSrY1Ll YbUeN1cΗߠ5Za9] lܾ!' jzIJP^\?ϗ [gȘړ:&Ei^IK$7I8^CtTmnHcن :pbM3 2 R/hm/(NY Qhg^ \1[5 cTxz :"P kiczdh)ۉ0;~3iGU;$'yolCKRIeͽYQ d( E6.K#BI[)]Q!rqɰO_DSK&^`l<͂u64_T3orp9):x÷j UGiWiH}`f 믲U6f٤'gH#&21rwE>^p뻂 N0#"_$9rҕN4Dȇ>֋ Ϊ4Bk؁d¼CeTx D 7sፕ|\Q@;h#[ ozi;U#"+ORF]wø+2XQpJMj3Ϝ Q)5m2wDpJ˧Bmrv'g@̇ƾbROM^NB zxf_U`Ao +_l쇚i"xCI1ez.2? Ou~d>J$`q3\$w$俩2}1hQN?,C&k#YTu[nePkEkfٿݩ9{jyᇍ<-\dvaAwԾ6`q\Ȭ.+uSx}J V]7u[pxi7)N7T-9[2n~Xm4ԔᄆƸB\Qiu:^嶄CZyUߔ89h:I$e(lHOڂCpIGB߄k rLt=9U-*[Tm7qkdş\vN7 F-vFj+"ib$(/ٚ㉌p2ۂx*$v'F%T5x<,K#0'hcWVBOCL[ek2؃c 5sOn<oٓyre!OhaCf'C7ͻjA2͏?TXus5sk m{TC4bhBW|ۖLg2V \C|܀zqowPQ`:sz 9'Sҟ-NHZ|wrQ)io˥TwABCx+k_a6#{]Ofb:wP^* }5)3RfQeTD5Ab֎&icqWOZNXMRff_Q]2ƌ}=ۼ<݃/ͪ?,Z5c ~(͉̌Pr7tt` A&5c'ױN[PcraoW[UR`,1_5)fq9aR!3t4Y%Lo)L_6qK3(YJ\щm0|PC@>"\4sE]c`VfLNLTF#cKZ}\<;-w 9c51OhD/,Kvm<M$ %ZrDpo5[2lf)7ݛWMT#րkd=-;*{]IjK+m"]=kj}ab4{%dW aU#1b(-H cg-a0UwNY?n<99 }<4au Z=~P;lǐeƑ 53*hJl=[Vb` `"R0S^J*0dkk9E;HXh2((6f**^sK ilcb/e/4J=y`;U83FK:͒1 Kiew:ۓh#k XeO9+ wźFɃ lz6sq zT|@_pw0(sZeӒe83¯.Z'{-+7 a>*v:&x6#_57$_c87yerc=?Vʔ^Efl,pWM!>z yQ O08Bzuh20ec9KH*Zxfd]4%{[A$mtVS@LPj@֟;aTr^ap3ڿZtz|77bP98lvCtSAPk{3a$.7ҡi\{n; n ALXOpd`riF8hqHyj B. a{#FcNӺCM^Ȯ^gۛyjϷؾ lVq?+*_P:LR_P3{Qs-ƒQ1#4mBĶm4fZ+ X˄ó;1yrވCȇt ~gbnQ_5Y7Ի@Z@ V$Ul&'\8g:VRMDohc\`q`=±i꒍K}U԰^f&o}^e/d15PWhOtI.Bl h_Y6@ E 3i5 _5nϘ02" 0 䨦sV(biK,:[:uHO,C/ڄI_+Yjj$Zxk/^Or"Nj;p6t'Q#fQйYfɆc ԥ-rCs(lEu*? ;?`(&W[rXzUH7ְyUP[0}A{߃˸$J#Hy14+ |I"\s}hA"ed;c Adu;}k\uK6B1 gUoN=`Mб'%MY׸;Te_%8΍O8^D>X Ex;=@-^.xYF呠;7Z;VeuʼnajJ ]Rw`/{xgĘ5![4zh3s$&rZI·A,JjOٛ=k7b$z ܝ=,%ZGgeae:U _ѠQK9\}uR7@C#J Ն$Z_bYI);*>t4CNj@Qn|B8It]=o)2{^Ʃc.SZ<<ʋ&0v׆yY `e8 3Q!WW*zNaE|7 iJ)t~ K"W8 엡sO]Œ-[i ń1w_[l=Z"Ui+/@J@I|hUhI+O,%7\Ba5b"D9Ky:\Se3B\pDps~ Ƀ NnF"! @/ ݱܰ=[K^O 3X@~t!+X,-z@2:c0 }ԵVvhr<DO|+~*] Xy"ɍS`5LA?}J67!}ޮlI*k M?ъ[Oz;-n@TgXh'> ^=5\M'1Qe#Œ( a$)I(]SqN)M,|OX1XS= E!9Gq^ xF\bפ[.!bLXzz4Wn7{?^: ʕl32#ѕCߡ -ͿFJې5KI5DwxDo9\jW,c .[TIu)^_Vo%Tf N.ZՉ1:B_#BIR,K3X7ϷQ\>Uu+I\ W 5h#ѽ 6MBջ(α BBFԇ?n#W^-|!(-Bq6v%H(Ⓓs*9! O݊ *'˗<+NɷպP0o ګM!rFTvfyIDYP~bIf<2\lœ/Elh8W$%d^r}:wB}Gҍ!K&but:qO䵯{2(]7VTwnZ?{|?xMPʭ:%F#`p?»_AJ;ڞ#aB`sC$ ^_W6yݹO@IԶ6XVG߹>H'kZQʘ(RAZowog,xDWP>VuF', u0:TFY mv{[ɄύuyM@%Q-0J?N thr'yC[c# ֶ2ͅ}߱T׆n2#% lٵr1qNeKmF`:@w{6}AbGh>bT|1^|'5X"Se ݯȊDm_@w儩NF`/`5,_dxOfqIQ^aDҭ˜H8[N?bkM%.[P2 ` S,bOY#@lOǒ/@uIħ:F"ݎR+dwr8 Qpf}HXHV15F,1[i?#u IJn㱳S7qtuݭ|:ԬEUGZϮNJ: *jJR ^Ъi$yA6wL(r>\Y ߸؛rڷ8X ֯[V`2.AwU|SJi5R~19Li$+hnAjȒi-_Eŭ˘daZ==SCl2c1挙RL o/}Y2i?͚8ذ,4H'b CcU7>ncb tI]7g#la|{4rĥwPãs&B;מLF;i v'NB(4M8sz9uT +'(ef8W[W΀Ώ$5٬ 6\@n'˛:5B) p#)/j~`D\!TNRgZ[Z-(ܙw _NjF?Gx؇@hb <ҕ:фgP5v|$J3$kSJjJmV[{|ZQm$A@=֊C+hNIkClvmI]K5ddD?nɻvtȤCQ5}&0fK \㬸  }Oڡ;VA@>Khv5^C.'mv r橗j ?dI (=he N+T j:$jL~&__cVϡq.LKͣԔ}i/AР~6Vο[pN*^?@yBc_ݯ$WJthghH})d9'ǤThmڐ=nCRIj &`c\~zpc|x:ɛ, I}%9"@ kcz).t7BeNu2|xYu]TW8d &G!\Y2.0?<1z <86XdF/+ə DV%*3g!~}$\ zB݂͒c ԡXfHR'&sj{ʗ\] >i`)Ղ71!WK@VR3OMR,aߎ/ptR잔0ןp^<[kX_0<17Vsߗ2qJ9ˠ`"=ukmxxR@kP칒L6x,A&v6AqMVg#^ӹ5Yq>H'40"/zInUqTH>hKeD&MEU|-R-97s9/[ȁ ,!2b4O\ڛ4qOc[kj DX^*h2̸fe. А/o /U5H~O^jή  ӇaIiPQ4[8~ѷB=KO^b ˮ 33`:@frޜ2X|DXKC$Ք+n*!8FuI{[+_ # Þ}F/` xVI @dY{8Ss]r g">lk/H,g໷(, A2R#Jcyϑ04F BOZ 6b/2zehL"E:%)ry$x14+庡Bj51ZѨ-%XZ;^XJ#) =`H/>"ɞ|ѐE'CY3SwGm4Mb';9^dN5ijY`pK>!nᾳ1``}FBAk\3 ծ0ŬstDBn77k@~1. Nh@~ (sH3;FQsqNs2k7bF< 1s&>x!M* o9ntٗ+2Ð -@ M[Fj53BN/m1`[3[&qK ; (N)-)IX<ϮCЕ*`ߺ`x:[-\5tys!m&n\б-P`<6rC>yWH~|pӉʤIE2ul8"Y~{ űŃ!kg=N>6 @]E@PXW1>O7nX$nӫU,UK詴W,Z51lncQ_!~wE#.AP" xײS@~Mi_ X״15SGpf0Wr&NI~]=T(LT}` W# vHOhYٴϨ{ZhT!g <&Qio׆UΆj9]Ϙ•:.hn@k[JAe3=}6L۴V*.%|*E%pZBP  4f.9+<cS?S( ey2lQst6 t9k6eCq}&8b0oYv3p .hvH9 Js/1GŁ45\#eUtQy,w%R{@W~cyjsԜ0:&7I"@{ z-XuͮY.:zrq"4q x-W";wp@6ur&<dLځe$Dg4!ڀ%gH˶gXYchT nL_*UJEDuX֠|LR(uA)b:fհ.ŋCP+mJ$?1)ց<}ayM1΋ywW5]nNܯK *K7ri{H*'8_Gr"F+D /5/L3p1dd00eݴ5!قw9TaG8y_k+;8ДU1W!#ų[Ǹ~ TйC?vQcmd_>SQ{Ff$hv\!rC犅6ף-bu\?{w7P^#\yI "t$Mi~0+*K UeTK{HM,u/kjYv+2*j \Ҋj<@az5zi\Mx1pӢvq|{] jDlqT= 7Q9 U=ܫA!,d_3q1u>k [5},-6&K+b"!^ j`e U)YTϻZhmm=jb# IuDyI1yCr. cݧUd&-ܻn4ڊX d16=P*tXL8R1<BҜQ`Xz !._j$*?߫d@ 66k\CKGWA B9b-D <\B|. xyC_U2sÃÊBdj79r}'lS/^ T o8ڑbN:i5I = [c>\OE*J#ekf -l?['JnY[jb3zwl31x09*ͽ9 >`DSm"J~,ϳ [;AmjPqgF]ێړ _+ D>^&տhL˻ZTSu U@zNˉԮSL.@'HKf qD}:2z2kcX* njҡˈ]F-< |JQu8GsDT>*>I_ ܌՜WuK(meCL#L6Q!*B3zpt)r!aC%m%>ǧF‮+RӅK|+O/`ɰwWCjIsrSϊHe0gF۞OH%U—%s׮G\neiYM͜>fq.m_1h^8u<x[XE"pj_a.5ل]* nܯLA^2q8(&;z{ Jum":ɽ ]Dx~-+XfKqCM ` +C?#\fѥķi]ȧ|´8M!Zak8MJy7ĥ: EuTwve b<,E@(uᕬ;{!>dw,mj7t ZMH\lCQ\{Pnv2d]Ff6z[M7OCY䖑B"_=,բC=K #7.ְ۶RO2##a=N8n>rX1GIV>.]z<3iT0ϳDhj+jea?[cWU-怜c!4]r/(99 {3-9rb؃jS&͢ Xn5 |k/UZ]t,|BA;ڨ^~EX [ܤ融c d@I>EiĸEMg]h6#[ .b&<˄Xbb6ԈSl'ɜF_ٸFh>(udJifXkc-7;S RPZ:`JEҜ r!4 4s8/Uw8 ` ek( $^bbNH2FʇCYA:cۏm&+ztZqz7 ^L0E`7 u#d@& 4\{KM_S[ V.od~,s6 [Nqk?`-Y);Y3'ױxQwGsٕQ"6'K&(dR_C!g,91ONH`0<>B2z-obB#n4ErՕᐢ 񡷴HNj7uЧ.zHcuhkGC:8Jr )?tTHfB-OҔ$-}QgvOOEk$T+0D52:V"@3-0Z?^=nB8a.zgwP}>RzL~Մ^2dҗT`3z `'}ًަ oD>Lm|6!_3Vpxu_>'WF9t~+c(mub;6.r>z)FB”t2Fc| 5+r++a|Rey:R`bxǿt}<ސzڰ97`rEO}'!۵mc-~ZL\uY譏46cXj|C^W- bm&OA\)" n- >@UTYSBnAK$*% xsy[1ro'tS.\ ɆCDrhB >'Jjпtw!xR+wGb w |Eˬ|`Pgd4üHǡ#Tܡ#;w\",M! =_<G):补=%鼨[R)X<)3 WB̻^RqnKX{ERWֳUj?]w>x>Y ,K͜*"r -&EdX *G E@_iLZ&TVr @: :Mm%6Xg1bUFa۹+gm/F/is\ 0q5_62s@1c֧,PvXYqy0ܚ! z[JoHV,C (&V[M!FŞq&ctCz#_ t)#m=ZPpe?{4Ŭ|\o*dkefYy1k;!F||c͗@ź5lXNRN|d?Rn*zAz#d~s1VKdC +EP<ԭZ}K{~';u8`j/ L#hcqU ~`ѣ\:LD-kNy;!z{r`(")1RH28@:/k3UWw`3LסhUjSY݈[;m^Ɛjp? *ܹ_*eX#]OEix t _6QbJf֦imC=n7v;&$mysj}'F7_7J f16xWl&[5ғ~RƼ\ ;aՌ -h˵|,$P;L!Dn œ 6IHmT̽ҸJӉ*4k%x]6A{9ST1Tp 33 å+iOjpk懥 Qg%. \?8JZHG;@LzE uVQQ@YI̯,5#WKWa{pz[^5 {1p0^0ngp)/dxVLXWqtl䕉uR^Z-DQ&QV+jJ]]yX7-?$7W]XG: >5OJip{T5R3*̨E$pI{K'IdeƦzw``4B@f1ǐYQMW]Q͙pa,*=$ʪ2F:룶.a:B? 1akv$;(re}@LXea 041O]ا6j 0QE [7% FS.MqNz'4Z (cH dG+AgL1a!h}4<݋{'6MRM7" %4R`,D.}r| }Yi8!am2YRIm=%d'FL"v>b:~*(wt*,QS[0B52$^s)qAYIB娬_Y=FmxE, @9u-Us,ؘKu/*(߆vSE% Ms)(99 CfK>+nroH&qJyަ GӔ,gzx yH<0lufJp"P=eIܬ;XӍz]1 XK\kaWCh)4IN r LC_ŋ04MqcT=v|ܞn~JJٕ 9%f\یx7|RZB zHBqĚ!)K218)34iENg܃+ռ&7P|͌C)H)F`cVnwWX=EUp.q&lI#ob v]\7 w{HBOfDwX]r>Xq|vM4A[6e]S8g4ٛ2j3HwhYGŕ1 XF QZp\+e[#{7g+<\NU& CI6KO0OKLQW[Յ%rb { Fs@ZO-Yݞq}Ȃ5ȉ> a1&[v(p_R 9HǢ6Lq.5"S1<1`)lj\ Cy_d܌!79dwUFZDlcS5WaB p1 J |k&,K5aԝ U+)\wcfО$vK屭 ld';t)UqLG]bv',AMv(\Q&FE$a;Zó`7q[Gdp^"=jiG` :C =L OAlh0W]mduܓj0QDM7D@P:A0U`ϛ: M.d׆T0fPc#ŚHH%@GvRU*;Hugb'OOәf*+<^/UUԉd1 BPT+Z#ʦd+5HtXo+fls8<赐CQ@ͦS⪙sEt42wTHYS-#VMKO+=0s*Ѿ ɮVtH n8( z/$Xq9-W?! DmGܵgdoD1oi;uf}zIp82Dcshl :ojkMkRwЕu(mkc=w4حFii + 7yٞ/-OnD@F1ZJ͎ov'f*W#rϓ=V0 o;ʤǣd pC+8=w "[3'`IJ"f0j`х.Gn\jnٽώWKX++%o}͗| ֏þ;WgW%%@K+-h}^]1_K2RZNz \E3*{#pa7V~7 NlD#ZjՄY.I+SދD2U+u^0գ!N6e+N:L1Ȳ+zG櫈610]g!ZOx0Y_ʳ=%s'd:g5jӰu\uRZbz$n*tŝPATp%ih"]W@Xy~WQXYA_2܃k_~8(`gITC9IdwJmI_pt =VH#$eL3U(Tsw^/#͕CyRJ%n[.NVVw,r_#D?2Ril$X& aSLzwz nV+}d.Aa{H٫>ܕ rnxmԥ&&Cwt/vո7 {U4ڈoԖe3AWazi^ӶBV#0왊x; $Ƒʈ¸<:H @n9W; u{b^H~hc̙ЮxζX A{PIfFc5+dC!?N# jh]NhŜ'G;Õ,-(_|4#Er3,zS,B}DV^t%KܨG6;^ڿFTWڰo ")Xbq,pLtcg#OZms["7; 6aXF  znTFG˘ k@_XĜR$.ejo[2N2x{:=GnSHhv!ڕlI-kbRў[bOƃ1N,{""uq$/z}B/g2؟"sGTŊM*)Dl~JAkqUZ`w|j&vCXla9=]u^Y/X+c|H)8b. M_LŎFTF.E%te+wr&ZvP:Whyi g퍈v'nD\h-v4i@~quIAټ˙緓]NVtW(fb.`ĀV:ȃ X)mD ;z]/zݘ,[r?FX oY}G%qU熸Ln7H]a(`j=sOgc 8MsfQR[(Vc gh^w$+b"rPѯ)iİ ޹ryV>/ٻتzݎ )(!3A} )x'an*DY2i 7ƧfOw~[4p^6 ʛH˟]7+k.V$$-Rˢa Az~9C֊-mqHp F@`rb7Dž2k,[tAC&<7d1S~+saZSd 7g(I2T)B_lbs,r!,q*4 bW`L Z1W(J7#;+Սv'aMHVuO6{oP\{NV#.^UCdWrd%Slŗf6=qCTqJe_+O0Tz!yYvqgȧ7BP3/wA3a˾aXs6^[Oi㟲縓t5=^$*B,u=j%%;|2U}0C""8!})7~'UR7jD>\OE9E5v{N+SRL]M;.4gS| qA:ms w_UpJiqSS3QHv pfǃys}2ZWuZR x \T|o2~ @tK5WkDh YC-*Iܽ mO7.p23F JB'l&(=.CqL`O Jju܃aZa#5H, mA(Q1E~S\Z^܋%g?Eզg$:}= U"&jQy" 0ORC-cce}ѿI!;BL.YΚ ;y71&G/c,ѮkS*$C c&Ji7UѸS cyocYt{LfLmth|{%}Zߛo?4J| N5(& E^!"Qq\Q8ZJZܙig8A9ꪂd8ԙX\N=טGsS@g87ZEȠވ?f}(C}Y7=\1a:BܶaεŎ+S ;(A+f(\ ׀hGCw“߱Ήhm˒}R^KjW11cbvg ~bOM 7uKcF-վC¤*0ͷ`0w؈_mЛϰQsa,[َ&O! Fl}Kjo.|n[Z;:o+,&͉zl$JSG~ \I?}BUe1g߶~mc)>P,HK:=ѪBVY5OX;`D+4'+;GV;jRCV\PVrj::, tNҶ\뇱M".j9{$_|!'4u4 FzՏ8_>%ΖV$%}J*"d mq>} +dӧ+j=W1N!۩,Yځ X#|!D9Uv-4yt,{R9pS2&ߑܭĞQZ}϶1,&A}אd) =@/Q^^%C>Iy?%91Bwa|7D,E0ڠ$*/5qyʐw]xe$G2-> qɵ:uZ 4c$5hK;ZP{hj2x9RB~CS?52T Mlһn1}/'H{-]dFeGakw0R@]ʡ\7o?Nネ/Xs[tk_nP O_ޫe3P 6H]%uǚQx~cϭNo-g^s2Ŏv{OgF4VvلY[%VF)|O)z17SFB'KA %пe5$ĸxڌ\H}~~$0w~jQTS@ʻ7\iѥ˥pkAd2zK͍9%aڔu4ݑq.z6SgtKId:L| DXMrfުufF<ٜȕEQ?Q}^R B{- } UIXb\Μ0i()(}R:?i 8_+iw7fFp?N Ox8҅ƴƏ@-&Js@#1xͽӋYm]7\R^Ak/F1q@Iv-H d5Y~m&%O'hأ k7O2_?K[`Z;0$8i!/޲Ƙ jZ{#"I%kzYM >ɉP-eܘ X,㝦?uj#pq,ʐKQ 1ƌ! Z U'O݋n)_?Q/he魨_tO%>nF"dY*" ~Jv"5t4Ijb&W rpV2c vk1*Zei+ ԇnKKbo) Nda܇U0bszxqAG:#SZ`Tz ^1\)fٝ.z}Q"{ *$zPJ}0U.ꪁ%}{0.uV .X]Mm7x?n}4,|+:*Zh]I/ 7!4$ڟUNkOB*zzGI})Bpy`k88s4]c(z:v/86WV.)]Ώ::~ǶFoAΥZXK]necp_S}-?l!t0}hpo!Y1KB>" ?JhS z~ re=z_bȂ2Х6gr2ZA^53}&Xi!CT  ;k$Jn7l`V@7"3S -<="-e@6'આs-[8"e& 3ȫK}D^e}xL4~`.i+ W=rYsivhi>UXF=b& YB .) 5e@ `/f`c7i Ti (djT8ܫU QG fɰ-ƱN](#TB^TJܕVǹϮ=;+yŢyk#a[?f_ms\^j Oxh~58NIg݁9 N%IDHng\B~쟩U6Z1-C/=:qZ&#*lAkx5k֌U߆,6%@´O|5T XBPY;UU v iscO~{]Cf<48RM$ݠ# Ibi/ &W$w{!V_'$ vn"ſvnaJwa0RXoG|>-U" @mngl n yzoDd|Z8̟ f4Q3~#r.Od~-r 6s6w){}jf.C(1XZ<;02[ӣ_j9Xn;OpS96-y%!Ś-PHfg)7<!}~AE 8{'_I^/l;OǨg^9M,3V&Q+m43֒gb<ѹ֧ZX~'??~ӕ|iP޵G5 y֡W=FT-⺛Saj֦L&MT)ƥ%yD~hnzG b}rnpKlXQ:#'PYpc_Sfm)V&& |^QpPp?kp#Ŀ@S51CNTPOFۯCu!s/NaBw/2u@j9:$/dR?h\VU0+sl5&JV9&VS.#{@81Ӈ^tӐqfz֟2e2?a?j^-O"gGLi/@K\['|W{;m!RA9Et:iUN976/fsJ 0ݳjf*O:-`M8Z`r~Q‰2L2j0I=*ޠ2--rkfC?i6=HJ٧),vTm= ^34{KQY;.\^óވTߍ\\T@HXU1{:G}b9;#_A]:x5wt\%j.IbHFgּ0--eԃ']X炔g̚? .?)ߡw_BxX r*YdZ>$oGPFGz'BןRO=*mY˝6q +@pR{'{*M%b }Ry.aevyX\3 Z ,KDXJ{o2tI*oñr H;0s^-TA[b\ͽ{v{͞k(ȯE 3_"Ŗ+ᚽ vfUڛ=DZdjd9E?O~2J`Slej%8ׂAo1BKSomJ/J4W|_%,o߉3t\Z{ٍC@bҙA%>聮F._Uzº|'cYI$نߤ \x(M#T6?2DF7ZJQ~htjtə~!FЖ:|3.) \BW%eaekZXpAiQ+(-zlQKe@D"pd.*lڡ=A~-O(s]oqI7"~48^ ʔuad 0N(el 3xեEBŞ"'CB|Ϥ_ȓ0!椇iuo"cb[yx"򺜷5\ <ñdjnBg -ܫoj392"ztugj&F nj?g5St}9VDlKgOx\/].>_JVO(9ax;鞚֡Zbp]g&<5d0ZMdǓ` ?sn>v'"DoLTLZRG#3i/zGv3X%t N`(]e \Ŀ[rd .JJjNPU}je_-*o9dY!C6 dM}eh23HƲaP2H y O@\= h,Y#{_`F#ZŽ^-`etP2,%*JQ94}76N >=dAMCַLʐ$Ά~3t|{Y=Sm!0vFwMR%lSqdKI$2<裏gVbvY.JٿC`4؛WabUq[zL>yLS%0}M%ۀ tuS1vӚ UchR}fZs~?FR.4ꋎ0\u=C\ɑΌsQ☁cߩ$o4a%XN)O,xE}Gyp.y'Mv),EI=DS@x-1qGR7Rzmpn` w/FC+0.2eh`Ii P{c R@9W&Ϯ/v@zjFWV9D.nr~ˎ QyrxYT_Bv2#SKZ" _V7Na)iL9IF3)͈(h]d&g ;,.b }6sX o@iFKmX0!@VAܒ%o/G 8SM|&Sh,E!IJl ISt^ЛIJ\VZI>Დ.])BNkd-Z'뮿åYQ@/F&{1EeKm$\fg'J});Xi1m^>ZrϳwJ R7Uq%_}|H{}H 4Q6_{G/fN7v*a]X@@{z]7.H !,F%x,PD4@ͩ͟="DbYxjYDd 'gT^Mq++ᚢiN5%)76dT(ucvM,a+ϧv `:˅}ӓEyM ދ7i ҥc(1صz1LWX$@K[ Ĥ[_ǡ gH0xigMOh͔ՠ'bRl4pEr =͠Ib IsJ1a={)옎.M6Qe9=Hޢ~Uqɳj7{`\%QVy<_Sf8DMd< SGL oH95G@3P/5,E<ίjinUd#c1ocp{J/ɍ|j!W*_oI ~Hn t\:էW`֓<:5a]DםqkQO#s KutPL-M~*q0vdD*<=ORb@C=1@|rʾtzO,;uhm$Rp^;fBcctZtP=:O`n$l*s+h^~s+73 ^3kS7Sx||[0rHEZHX9@_ݰ{ L g$>+QPm0pՄ5/C@Pn8O%YI??jұ% W| ot&b?t(]^xx1`DH7{%bS M#FRt| !Y¶[b.'^'o@|2雟EaWpK _!=*Pmd3[F:@ܤ :u`f|m?M" Nɚp 83#D6ـsL56c԰-Mg$2]V|_*ȎW;^7dah}eH DzX_prIr:)Evo(eߵOD6(n2qVl> ^Ϊ6}o*TNhk| m|69؏[ sGGi)8{$Pqw([!`sPپdEa #NHaUtŽ0ߕjʋpLj䔞;X:-,r̿ACfX3(ζS7/DHIL?NWCv2aTWfW#|LUhxx hqJv |YoSyj+NFnr5d!Sl9ubr{̗w\r]ӂ6OB lio*hIW~BNVzqӾm{|@GMLLbg/cQ'bv{k{Uqs6U VGd&RQC"EMn;df/\἖D9^g- 9x`QJG9{0ݾżh΢zp (MnG1g'0r4.eĞ7QJK:L`#iѶӺOe'慎[UGiGuJ cB5Lf.DU\oҾp*yShDtvp[QGŊeeW Q UʳH8cNߖG-FƂAt͖{qKUU? {-/ \Kr/-33L=$,^wUә*%Ijk:oH9 \!8'$-Ti$GlّRN 5!LP{I:b/rM$U=PIHyަ&t>DbʉJX]{ Z?,}3kz*X=t)DV_WkdZ^ qAg"a@E_syQiEީV,YQb)sZY;UҬ@Xwy?9P'? )ƍh'dF2ZDO9Ú@ƁZi-' Om\LQJjk"ď V3(%Ri #`u F8a<Μ乐BܪZE27BR ݈?s:boݮ2n5l+Rrl僣D'7@ž6%=2uH'>|m( Ah8.)F((IW h93CD7h<Š}CPQ4e $N]Yn51y] °HnJ^{ [z {=oX0kOF ׾Y]n`YKu쑧S@K<3в۽]E~㣯iQ/\ߖ/o.RcZl)U˞֛K|$g%-|m'y+Xyƌ wl>y7TO2,7zZj-R L&Tr1-Jj'r0xpal5;2@˭.y L:p5uh-s\fQ,x˰)!c9,*G?3:0ZOĪ-mB BL4sKK60>sGHfw1 G\9@HsgfnyT]3!jfMҧcNDo[(mh(pZ肴N)XLVh%gr6\#a5~slP] .hBV)95/(RJwS5Y[?xcj9 C֩dmrJVL&4n+6jV8ZW#ɇ>,r"\ ۹*(˿vO0X(cqG+% uVkl=ϫ)"y[ɔC2E>=;㼫)̣Вi; K': [[Bod*;RsZ 2e!$v[gȴ_LMrJ7\EaWLȎ&;I1Ն%v)۶J X[{MqNBβn=G#E" w<0Օ (cN(6 \갮Xܢ]_Inӥ< qd{x ,ú[mk6iܛoJofnan:'$񧾮Bz8dUgPC!Wx:m'\9$iP@ghZo=2MbHPtqQ[;+:sʕ<%,|uX6br& VREW ՘1 c6R6L-u]QM5)Urپ٦LfҗjGbV:eAund5Xt8 -ZfTkk V emZO7"ljW#ĖVm7ڷ9c6iAΒiYljUpF0@V^ ʮ!~q@61s*+p yGCZkgQqUŐe}_m1w6%[*v 6<5-bpSŕ1C}yR2ex @pI_`ed. E_'=d^odY{RcM}+N'◙EuD=H/_`AUkNf۵]puq=arGbkuEBBF8Rz\&YIY֨IZM!Y<SHW/,O~T?13K #gI0N D CfC9.|m?zSל!ٌYAQm8fA;C9ˣ !/HJ &?:NQئ @zيxSV,*}zTǪ zA*34^޵hx^XZ˙%;q7!̄j!d9TV):w!U (P*`]\v>{u 2jY{\ܧjYc7i䏳2J16Q)= ?Tڬ挞! 9\QgA.'pW^oC{:] )^-\)'L-:FO64~MْUb-{nU+$Ac}Ke& Hk]_RJ#[ _zŜH7mim$dT.n5y57ω#Jsd8nɛr4(hyhH.иOIdL. #{eŦr !e$Ag5&`m\-}4 MT/6SLmoq;9kcMqHVٷEt.Eף!e5,j6 2Ǵ,vfK-` ĀV) rFj䲰1/yD fqFȑ3'wp::8ۯo:qLoЯF{]&]K#{ϛZ9%}|6Dx'כ5hfwEM)e-痟"'e >7uF1R)뿙Q]>OŽ4L}xVo# WGK# 4g:!~53GmpD'؛HOۢ9z_h ̶{%ԬssK*pӧUҾR W:,h}m3 l˞ ̘=Aư_DB-k~_ r % ФakGL|4N񽙝yu :q΅d^*Fm)>!E_QF "DTe>]!߇ 'Z;qShDn!^>&.jϖ]IhAA\뭬GVai2f c^@;Ymq?^$ŕ->|=a*CEF j-߹v6V@aݻ3i95}}! 1Iq+b'Hu+=/)a4%O+ǜicYg9%9~VhἈ}mf4!׵ȅekWHo 31RR+ChjVA7v;X** O#Grt.,H 6Z>C;J_Ȃ/B0mź/ܠepeB4FBxDŽģOy |2Xp&0fc<wƨ  -)mQb)>J6zd|u rgcWQ%ҁHY`~bSÊH7ĕ#p<2YR3{>=ql0Xڐgjj~Z]gŊc9(8!\m|cx2?=AB}el zN?^MC(SodbvÝԋyV &°XqHsiu9Nt$PSaktMkYo,wm ?"p^'`^.S̯cCٿ؞| Iª9!= L=eY٤QNEl&5 ?D&.x/0j߻:YUC}p2߀ " ⹇`P da^K9OpD*Q"KB-F,O3#2>)ڬaL#ddQjcj>t'~%Dkф_n%"o(kvN}+n {2 N4Yلؼńx}$< x1}bHV_I 0DB]-9Dğgo>r5y\T Qs_f7OL$i8yeo4M$ۡ u:c  | EjP"3^9?:١ٺ$mz>SusDaNK?|S<<2zWJMt>5,ޤk;H)!DɶCogR?nq($"*-+ oqmDIh]YG,#6@VA55KWJЉvZ|n?>pŸ}nD !)}&[K.K^&8ɲl%s2mW9,Rvq;an-D62@ ~A[KjM?$OMn9 ]@?9v&fz4(mCtBw3T\طfhŸC+tĪ쫚XW Gn#nxm{ ytv__3~TɜpK$uO{AkO/qs dAl`vlvFu|dLKg =|-c"#iRv]kYT%"D4(#3~˸Ik O 4E%NPhsrQDM"'%I5&.f( 1n˜4 z&\rEx1]V̔ņlC~;`T/yd+RD]_o}eڇ=<4`GAP2_&,wEW-ST˩Rf~U}’ KͿ!cRRY`_ųp%'Y.C@qE_QQ*0J(W^1RXs~b- ##ԤȊL߮4ZQHH92Ԝ̿"5 bR&W%h?]00&c+^z JHÀOc`t[nj.rlb[|<͒f8A4ݤq>ZN3p8fC,>B> CUdl,u%7iӎWy`P;,;ZXy-m6H!~6=vI3RޙL}Aaek,^¿*| ubks4>nuSP;T(|k&=XXܳZt_\mԯ @Y0'TP{ w1'u2g{֐Ǝ$ͅ` 2Pb/$]a6#s]EӔnd5sTn8i AJ&rMID:8-qMRvq 2Mm/Td,@if~,r D;aB϶ofHwUáE#=ʩB@'fAs%X)UV20qga@hE& sPa =:Cإ-W}% >sixۮȡ,r٤l2h/e)Y|i^k$ptJH;͛DBFG%5_Nlasa 4>q$l--گ1 3H;BFwEc#} 6 qDwlRWЙKl)3 yamU$ 'hEfGfkEgg5<%{>)_Ft~v;(R p#.Ol!T|[5BUr-GL ÌY/R$?-ё|υQ %8bUsT_&w÷*%0|oZIpDzC{5Gɛ %',G^g?q|-d|uaO %nT3WЄ{14B!U&4E@yo6D„w?֖JRdr˒Yv(l16 p͞f!RT.kmBSIyF^

Ќ6sp8"i4k 1`ǣZAGoT+dLvtK#Ō*n`Xonz+vgj׃z.3]u?E@4<%=6G[a šSF?bYa Z8нGM)' cӱAyQo2Qb% 0w\gy_؎Qv)c"rs6/%qy#M-}T?C%mDooK:} ʰ(cLfgwW Z#ctHd9:&#u< q 4/xbۀE|RY:C)SkK9j>,T-쫻lS,.\Neۖ>=jv5"U<>\oAR&Mi2Hw\0(2r]zՔp3A.ӛ7mZ]w1~QFȸ "2j O"5o.[n.TJD4ߤ4:U(|//x ?b cYHٚbwF3B}TTȘ/듭G2ú/g6FܗؘN$3,k,mE'Ԗ*=l֪).Ex6ZDA3~ ;tO>;T|&"XߎJT7gPC/,9݇tg]} H$NEQ@9 ;Mrwe$ vfwfFh^c8^rH #"kA~*i6 |#ɹX(4o,(ȊvM qlL%~)k#w*PfZ@bKip&"2bA֎,'4|Ӡ>. K4CZ , b_m⊚ݔ+=dy[*LMM#5S;jFm">ѹooOsxא_I"aW3_B$Rn)naK8hM=BbYM|< 8[AΰP@~6bNWQ¿'A:ǀ]pm3a@p*Z#5ޅRSfU0n 9|nBR\R!6MĨ~}ɑ ,tRL"t ug㭯J++B88d$m셶})hF)QHzXr*lpTZ)'j83ݦswI0?@1Bw+"-Y8 xc B6SHWULI4i˸rEAf&l`S$0)lR~SH8F3ƃAֺB#wrX9&4V[=xzn/!W2zbU)hqfa7;-'ېNlY ]t c1q匇U=}Si[ ܛjET"!69 ^ޅDŽmj)5QC#Dhe!pf3) ޟ6)ѵ?&2aQ6 '75z + uB<^;)2}$NڽxPHcmo/;9aP/GxP׍φ5+N&ST$XLX])Z31~ӹW)YjW%>| 6"S1-TFb10YKu{~}&ߧ̜Y bqqe?CmgOtu}A3mw<@D^mwV]{OTqɷ6)?*g!/ٵzkzM&qI3Ӑ-eo2SVc]?E fUal"Ӂu;|zAߜA56-JJI&S;"g˙{ wV]wS10o~leWqomҿT]b+,QHR[xä dAs0Ӈ권ZRp;=cP$eCw*AB7ʵZLy Qzr¾wC> ?|(} ,87Y$s4 HeP]  jeZ^IifJauͷ99K>m2Vr1VQ jdrJA^y 8MYp^r+s$ pMqc{ 3w@^nCҗGg vIO}Kt nr5n9Xu&i&* '2nzĎ x]qj}Q^tŴ:6gRI}Α/; qN-Y&ND{@lPvju9;/o)hJG.0 h`=LW9WTm[fcQdXo 9xf-Wh*Be(;;Hz[cD =fU`yבXRzƓ ,8B~Z{㯣`DF~M.[sa"PM 5u< ;\Z.UM/W5z58RӐ r?j `fy:?ZwD$.X%-T҃NWWMObBw_Nx FeFv5Fga~gOL#IpEH\z.R<x3WiAz=:mB]!9Mu}9}}smpiV}DEL& i%|C'՞"+҇N˟(a@m Anc#P/R=L]dH .7t=zb[Eʚ)aݼ%@ZmMW;d[K"e1_ gqŕs|/pyYk1&&,Ne͝˴י:'w!`U8w٩R69Ebt@f R\R{.\D鉲}1oiܺZ=zxCICX2c8}|ӐK솥J[+%1@Uaq-;a0@T_mveٖ-5"51q:೷ʧ_\Ej4Za'0S{I#.GqJ0B+8fA4)z%¿2 j%d+`-nQW@rXaڠ` 3(X^/ e=U"{>~8`.YGYkLKX&rGfZGv ǔ)>V=|\EUfq 펧H}0JU$jRݱ=1 0lFn7_%g9EI H!p%/-giT@krx$LUݮ؟]kN ,M} R>aA >Ăق̉o֌{__#zMh݆4$iaڋSc ٜ5Gf FiC>;*ߍ]IRBhĘo!Fp^rL%'WO7BQ%%zGRAA :CR|˙\a^<MB4J@MZ,_ C5,5]1'i5VS}3JdJfR]7qQiSD3wbcP.GGڝ񾩀wJ&C.tIр};Kf(4;L m^<1.k'ݙ*ApD'y(k-ı95#^4vHO9NtKH+*f$KJjfV2t_ގˢCmebetyX }9IoCWGG`;$bGNHaM'lx(bE!5xE6֒QHS[Wj8/leAM7K[y\n-@s$,֭1b ۧ1GuGAC:I%Z8ͤ<  xyjIՐ~ MAR! y-Ae.oG_]nEq--0+=h=bǮbZ>OW<~ܔ6R-$(xe߷3` WevgleX u0DR;@Ver[f)-USicAr6]M ^h(L Up+ N@]Lw\emtܖRdb~ ?v_3#w2DgLskXpǡUʻ|z]qkX1pY!x6(#& b|Bl 0FC.~hX؁U(}a&e?$H71b枞#3ɨDgUht&{v;Ŧn-+40@"Q)#ܐ; FԦܟ 3LwQ_fߞu)[|*&)o6ݵ3kl $? )֗z`nY{gƂ9#LIOyyu+-#<񫕲8z"Wp+D;ywTd|ݰQ&5f4OH>"k(7Lvq)=¾+Pj sYؕ踕YV`sJ4;WvbT.}:(Λs;Cu=ZDo, bǖ'UęTQP#B s~.tsZdTdQD`ћOh/+JlCsP$tP=uQvA rXn$mNQFS)I6LZyH8kh$؛;Wz27 ˳R@/{r^aK6tXKخ^j5)SHYkCmr@2+o&,Pf ڊw5QPZְS`k1{@H+W|$ ؿÐh̺W&ɖR3W=7B6/ X&}ov:ߑJ 4¤ehxy(3&D?=,v,sb(E4 ݧF pn|1uv]o4/lrk8GhX^3ȒCh/֓cϩ֐OO]ڼ߇͉ؾdG{TBg mʼn뇎CA"DΉA5&Zަ2{4OX[R:H=!A}X j4%<5`4K^5}bCL|̺W,=ܚz C 7p譜+Yeʰޡf̌[ ` ?zyFArLVkPxnw#LzL9NE +72W0vЅ{5˗Dn/SaxWE!'dY8?`?`/7X1@`"CEЛ1FSwy]gT}ǿNeJR#T/ݾ^ebL@]h9U~Kot;_>QEkH4JRWK"2RN눰. .ϲ20wvnjKGܷ)6+,_'KNN#Wgڒees*f6hgףi 1ĨbʇpY_4pH%Hmqbh&RSFǏ_O1ϒ7J ֘^:O},ccKxŶdX-D/ D_ ,1˴ew倳?X!( oK3~Y;b2vA8sjHM"oMwҿhDk R] 7P-c1OEkqv4^N8f_i"bz"2ri5Vіls՗@K{}7֡ȼeJYS6Iw@~8vG'ߚBe 9 "_~.0""4(ܹ[`<9jz6onnG\嬫|Jns]ڛle߮(Bdy|Mc~]F%-tg.ey2#J%z\aOqi,;gC-v ng"9Oj6 DDʥx ,{3 bceȕs렡ol9yU<$ G)#v"}Z )7I:-uMìDV\Rl KFL]&̹`b0}8zSb:*KlSO8Doz硋n d=L7.n9D*,\!qsŠjWNDm?~j:ҳ_(a*vbgEWL߉UY;puB@oAJ\}`AਦTkm[z/>c0a?χ[F[0~re[ FE? '=-K-mGc^ ^_+?s[&A70k ~^!3$ʐ֩~ăLh+Z5%E1Z=άm*] Er+]47@L՟d4% DŽe ̗bた l8,sL_s Vy3-I='a}?+NyB+:3ٻLlKZ=L۾/{ mMp<4rXNY/3UYB 4퟇#{VJ.F?ʚ i׌ n *>#jy d=:u<= 'iNrœ" 8/ytz~^ 23v>v lt'اc!+6SwSHm$L\13l @"K5'+mcrߘo^ X{h06T:e*0Ä=oFe5u1YF ijA2'O(4;BkʐdDc=gƁp3E\i)k溒XH{1 Ąqi;~cn5_ztG1ML#A˒X~E>{g,ISkYM c@L2/!me9QP#IQ&)üi A=Bc is\1W'?I܋fEtkaF @.K, IpB=f|b$N>>BNQlK39Nf:FY-JNl#?! '7+4E`x{ `,/tUf۞G0 T*U&~6aI)|f8-Jh>W@SW%m[B>ڞ|xeorP Ǜey AԢb2ΏQ"Eݐx` LOE ALe#9wpK TҧU̶W.bH ĂX Lɴ^6:H@7TPH*cvB`\uA>oF8Rs%.}H"Р =eɐ*r׬!O/j<&c5niudV.(ٰt2GZ9 q#`xZWWm FURVJOc%C쯵! F }FmSǯM% (^(z[8@}m9ϫJo6q4G;:V$Ԛq)0~@bYdfwY]"GmsfXCfV 1vZl9.s}=jwۆ[2(?pӛrRH3םf Ϳ hEz N(jU.5|YWx|[Ev7?sr)39 h:_ٝc%(E7>)=Md.ЀVn,l2  Kr3ݻc3H`~o1/.G񡉝<'jyx.tgVT!G3D+`%f~[CM?' k(5v.ҽFwa%e,s4C"uz)S)|o C_ ?+nmp\bf 8{".GB+-ib֗7٤(Z֔T sR~=G\-SQ%<&vqe8k@s$uH+_].v~ Cׅ-5hC ^Ē,8+31ٝ jy łʉKX80E,~iw^!|Ef[I^Al7'.3{^lH !/^HgNjn@VS i:f ^)휆 Dc{T-e6 T'(z9lcyb8L mWIr b?r:BMEC2e)NB( A'->ܿgoa5Fuq/CK޳_x.蓓76`O~G*9MtɇUP]0x_ Ej tt&Sk999k}EN ZVB /A'crw߻N0R,&2Ƣqykl[\" &%M Ά:#h0wf Fsn "l)c<_N?ctNQFXAєH=ָCSSYȃ2F{/q\x@KaCcdu !SU7/|1htX`p8`פ)酣 U*/M 4܄h;vܹn`oE@,97흓4%)Ɋۿ\y $Fy7o(ؓyֳW*bHP@.LP;`m.9^eZtFе+S܃+yQ#}CU%t"GFLP jX)= RLtb BŻ \W^! #Gmy%}oqyуz 6[qw;n/FA 96uU*m.WX_ +E^z;C.S]eJ'eCxƿLni4 W zRM#nSfG&Xe0JF=nT9&uK}&ɚ~X|SS/n|@F?Di=F~~R]4HjQ%ޙcςM@u]/p6x\{EYC-tNr>@WWs0΋o Hq]jbMnfuI28vjl01q6I<7G3;[Pe=b[.H?apyu}d'^>^mWU\yU9'p 曍 uYcU!Y(V-G"Ѐ5njpSZ-n x!/UWH=@ 3[BЀNQ}GlW6[$_h4 QۆfN,dzf% ifyAj|(C\Xt`!EMk͋S4.X+ NJ ܴZ-wn0aV05":TxVF0;q'_")E_ÍH]]4_V ZC0ZgFq~t "2MRD1AiҥUw;p<}s*ࠄN#` :kLK[gu;&TF}ۄFv|ԢLw}vFy2 U2ٓZQ|>EߔdS_J-CL\|jujmd.-9_0X/ftr9WNǫa5.6_w½ eLJg@Pw[e @u#I|%,.R {&'i2?FdG;o^?Df+ V-Z .}A˘HJ3^65[1rE V]䡓̜RNG BSȇ#z[ #aQIsٟqNJ땙_._.6GgS9Xz;U+X%׬P}F 6d=D_Uz{Ӱ3ncWr τ0K%v2k㦟Ҳ5w@,fUt(?4){\k9;f>p/H[ -Cͽn37@'M_;D}MNԶ`Yl̜q,P TqqMߞQ=7`r02.рF멧=! iGIJVqЖ3&/weAdRʋVy9y{tH1'ǩ%n](n8r*N)yt$zBS 5iP$4zk6rH$[a)CӷŽC%/?oR|cq2(4%2&8pvzu;-p8d`8oX¤[]귫rk_hrFO9(QrBwU¼b'`g @%|xh*Y"7#L>:.x<~~^ Usl~dc)qߘUY- 9.'hH ]e'Y1.W֬}MswAMJ2VBo4ICPX]YJ@늼 QF'oh egKWÃ$hz;SɄ'h?R~έ`B[$ B^%l rzճc-pL0T:9qqXLS4ļHk~eg#AKCN$߾K,&S'uq@Wo:09iΗq 7Lݶe[C3XČc1C+t;g0mW tN[_DO꓉j@SL_=IۮZl))]/RyEXт{8UX]Dܜ f;|ξf14 ~tКN$32RڮVRπ`TRh8i#.dvX!K/Dá)#sg$)0ϻ{"*S@QkԢjpr8Yshgu8g0YRM'gc31h*;ӌ1Oz𹐄°:}+q o! L-毝[ #DywXB@ ߆,zUɼ%o#̳P<+fgК1^Y7@rSud Qt`* RTJ]]4c!LP ̆ -ɢ;BfڨX5vH{.(?C^V(IsU2{x]ivE!5h:-l᪫Zz*j'ӓkMlh[ڹ*$;Q+F3WL{ᷭakGM[ z~kZh7t V%{7PTf,YMml E-^y;IUbaJxK& .xX>Ԣo-g9YͶИiX'Kj K?6BkJ6zе1=Gz𚳜4H *@HT½l3dt#.*'-xYJҦ}&+JK3{ yf+̸l,K4 wvrxڳ/oܗe'(vK\ ms࿀P+fY#Jwg=Ndȉ̮Ɩ f<d,ϭU( P̉z ) ExRkS)y P<-VM^ѬystV\zEzmm{%6yI"4# mb 3"K{Ry d=[w+  TIvE5\T/G"{;n#e\ Fy#i*$đ33kcM]?7/[bR#Gڐ=޻@64c5IS6٥do mOp?^mDEDZ=I4UiT |Lr0Gē>fC4fep=t5 ,.j[`OлY6חBDtcj{? ^ >5*ђ5U(a0S?EÀ#ty@}29`;tj, ᷚΘZ +g\/HBȁ/6ptnZF [=Nۺ]t?-=!iTʳS.NWgd P.IO`^َ%֯nJreju /M!=P7c?ZMgْ*o9A9>L DuVzw`NgF4% eBr (^[Rڨ硭s.q.A_4Ecc`qZB"P8v"XpS/Y֋:XdNPڠ70v+YrAl" rɥ%)/Ԥ+_?E|9K|d/?YuAq.`O-qPBw쯊˅ʇl0y%Fװ| X}30[=,ɴ|50V+y^Z4 yC΂ ycukW* 1Ro PAW$wsiG܎5*={u;s3Qj4M}|,bCE(i߼M^Eq:^U}|x^GvYIcCS$|tcDyѲ٦!E2e m PGlM TA߹|+T  +J18@af)1^ O8KOR<88pH +51t} @N7 HH%*=]V N'1Bʤ91⧚%_g؎iN~~ TztOpp^;1Φi/CC[q,>JbCf7ǴX$JĨ"G$o%5 &}&B2aG =bB7_.ŭ"LrF1mTvࢶu#|C`=m{M?w+vS, ǨTH},zr<8))q=hދI<]﷽4TgҕMYAS ȸ4σ/ȯ #~^ZKw> !$WM"L;c@8"酮ຏZ//Գl̼k]2[4Q`Wޓ80iiH9uŃJ'3L(RC)HM[i!7='j#oS\wL@L%(481/ǝN0(sʾy##֊dӇ_1 'IzUϔ$fUwĶqMnS߂n5# ֖"W6SBTAuBc48e'c<8;E@e$E]lY+EHKz*XbE ˜@Fxt1#9v'ӯ6 ڏ:g&rW`@>=*aD| Ʉ ;JjO)|c=߉"pL^"X2:9oAZO\A4 }㉊ZO;hƉJ ì`-VܸlMLR =c`Ng1%g/ ?y)ǞE;`$Ö2Ov9/2,=o DBe>Ϳ? ԶZEr_f/P<= ![ AlP$O$=#.ECWv[Q--fB9!BoT|/ʮbOJ6'Voy]LCh 2zacDY.)}Z ӎ|m4 K7SXG,xx0~d $c *Q4^I!y3-sXrI3vk#3@Qi jҩnB}H^r: 2gO O-4sEW1W}b7':lb7t,"]`Nzb3B*ݬVC@dw\Αt @f. PMufhwMN@1NoP/NKA䊬衝Z$B@>!,+tɳkG7Dyb5:- A{>*~<4NrL#cwŪK _J[QI5;"v$=]R(8&!@+WhɖXN ytvQ ^ۇ[Ug DAA#=z'KqCi\.P ȲA# -m.p@Uq97>Zx`]:u3j{V?K$ mU79489+b]%4̻my FP[Fo6θe uuQ|/T|uⓞL}Qu5̝ #|;| ޿.*^1_}i"ՌjòB2fr %km>2jj!:t+oQvCK84#zQ(Oa/3Me /Įix!&qjflS%Dza.fHM;sw9]lSFw X/|#[2c1[#>)|P%7-J!|a8 W'hO{3|^nQC}~) {Q+K'euDe2z߀= z "&VwtN"녀VEUv,*̫B );Om(qqH.``Dh(HcЙǺ\fU˶_ā:aeMԚgQ rkM9*8Ǒ.x!D) !/byMȧ.$^gQSiq^@z-w̔G~Ͷ7tu>=1CX y0wu@ $VcPϘ,gE8*t#1"%9f3F(Lta02[? ^q#1\7tjmr.8x)9Ҷeɞ 4Ңƞ!h0aH7.2.!Z9%U,} #M6T Y\4kPգ 2R6ΦrB6ʶ}D GKm%lDs*w%x5ruhySDÈ 7D> I$N `GWtՔ O`밄*xX:A>kN)T`=UHk]/>5h[ @4QkTD$n(3CPg'RǍGfJ&e`x$١=1ܹښN,Y &ccռd2*") -)Qp14SyQO <ǞΨ !<&( YZ