rbd-nbd-12.1.4+git.1502953626.155adb5253-3.3>t  DH`pY5/=„l5\i$} /~`{39 % UiIsSZ-ѳ_6,2@^*΅pN|Τ!Ӌ]u$0Lߣ%d:l5/A<wlr}YԒ"mpC ]ө2̥S8T">4I tv2JJYybI\}H[Jw({ ^86g&-1-QT7b6e022b3d3054ab2ed5a565e28b56aa8fd19f4a Y5/=„sZU$8(؃B.KMi6%돶Vd:cBC}M"QYՐ?g^ʐ'մ5 !4mKjqyNZhMK,Dh/==j#xq8ck^w/&W9.yՙZp:tC?aN&\?Fvk%1ǐ}B"'u-o>$G̚g=ľqKO+ eQ[:n;g萁 CywF2^M<lޕtwv.i,>:?۸d + / K '8>HP T X `  (R8\I9I: QIF'G<HDILXPYX\ؤ]ج^bcidefluvw4x<yDzۨCrbd-nbd12.1.4+git.1502953626.155adb52533.3Ceph RBD client base on NBDNBD based client to map Ceph rbd images to local deviceY lamb71gopenSUSE Leap 42.3openSUSELGPL-2.1 and CC-BY-SA-1.0 and GPL-2.0 and BSL-1.0 and BSD-3-Clause and MIThttp://bugs.opensuse.orgSystem/Filesystemshttp://ceph.com/linuxx86_64cPN큤Y YCf204665c99adb5602eea99740fdcd4befe1427e06e78b6d1c7e99437f217d6c7rootrootrootrootceph-12.1.4+git.1502953626.155adb5253-3.3.src.rpmrbd-nbdrbd-nbd(x86-64)@@@@@@@@@@@@@@@@@@@@@@@@@   libc.so.6()(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.16)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.3.3)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libceph-common.so.0()(64bit)libdl.so.2()(64bit)libdl.so.2(GLIBC_2.2.5)(64bit)libgcc_s.so.1()(64bit)libgcc_s.so.1(GCC_3.0)(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.12)(64bit)libpthread.so.0(GLIBC_2.2.5)(64bit)libpthread.so.0(GLIBC_2.3.2)(64bit)librados.so.2()(64bit)librados2librbd.so.1()(64bit)librbd1libstdc++.so.6()(64bit)libstdc++.so.6(CXXABI_1.3)(64bit)libstdc++.so.6(CXXABI_1.3.7)(64bit)libstdc++.so.6(GLIBCXX_3.4)(64bit)libstdc++.so.6(GLIBCXX_3.4.11)(64bit)libstdc++.so.6(GLIBCXX_3.4.15)(64bit)libstdc++.so.6(GLIBCXX_3.4.9)(64bit)rpmlib(CompressedFileNames)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsLzma)12.1.4+git.1502953626.155adb5253-3.312.1.4+git.1502953626.155adb5253-3.33.0.4-14.0-14.4.6-14.11.2Y@Y3Y3YY@YaY@YYYY{'@YoIYlYlYZ1YS@YP@YP@YNT@YMYA%@Y9<@Y9<@Y9<@Y7Y2Y0Y-^Y)j@Y(Y(Y(YY@Y.Y@Y@YYYX:@X@X@XX@X•@XZX@XXXX~@Xn5@XOX=mX8'W֘WҤ@WҤ@WҤ@W#W#W@W@W/@W/@W:W:W:WWW@Wncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comtserong@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comddiss@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comddiss@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comjfajerski@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comrdias@suse.comncutler@suse.comrdias@suse.comrdias@suse.comtserong@suse.comtserong@suse.comtserong@suse.comncutler@suse.com- Update to version 12.1.4+git.1502953626.155adb5253: + ceph.spec: provide libxio 1.7 and obsolete libxio <= 1.7- Update to version 12.1.4+git.1502878199.4183317204: + ceph.spec: obsolete libxio (Note to reviewer: libxio was only ever used by Ceph (for an experimental IB/RDMA feature), it was never submitted to Factory, and its functionality has been integrated into Ceph in a different form. For all practical purposes, libxio has been replaced by Ceph itself.)- Update to version 12.1.4+git.1502871088.edf82a59df: + latest upstream luminous (a5f84b37668fc8e03165aaf5cbb380c78e4deba4) * increment upstream version number to 12.1.4- Update to version 12.1.3+git.1502698163.45fc586a51: + latest upstream luminous (6808af486d3bdce966232810004648502c967b13) * increment upstream version number to 12.1.3- Update to version 12.1.2+git.1501914637.59afe41c49: + spec file * ceph-volume added to ceph-base RPM, where it co-exists with ceph-disk- Update to version 12.1.2+git.1501865907.88dc8cdc9d: + latest upstream master (7350fa65d79b5f0ace427e609565f07be35cfe62) * os/bluestore: allow multiple DeferredBatches in flight at once (pr#16769, issue#20295, bsc#1043399)- Update to version 12.1.2+git.1501790037.82d6a9c37a: + osd: move CMPEXT response munging into completion function (bsc#1047244)- Update to version 12.1.2+git.1501684697.aa6b0153ef: + upstream luminous v12.1.2 release candidate + latest upstream master (e27a78c9ed3984b54a312ced3ad67fcc8f464fc0) * mon: add mgr metdata commands, and overall 'versions' command for all daemon versions (bsc#1050063, pr#16460)- Update to version 12.1.1+git.1501669490.04d0738487: + mon: extensible output format for health checks- Update to version 12.1.1+git.1501501507.6dd9e8fd8c: + update to latest upstream master (fa70335db25f2b661b329d5d8f37039b77f2d1ae) + spec file: * build/ops: rpm: Drop legacy libxio support (pr#16449) + Other notable changes: * osd: moved OpFinisher logic from OSDOp to OpContext (pr#16617)- Update to version 12.1.1+git.1501231943.67577225bc + Notable changes: * rgw_file: properly & |'d flags (bsc#1047977)- Update to version 12.1.1+git.1500447879.e5aac115d7: + upstream 12.1.1 (release candidate) + Other notable changes: * build/ops: rpm: fix typo WTIH_BABELTRACE (pr#16366) * build/ops: rpm: put mgr python build dependencies in make_check bcond (pr#15940) * ceph-disk: support osd new (pr#15432) * ceph: allow '-' with -i and -o for stdin/stdout (pr#16359) * cls/rbd: trash_list should be iterable (pr#16372) * doc: update quick start to add a note for mgr create command for luminous+ builds (pr#16350) * libradosstriper: fix format injection vulnerability (pr#15674) * mgr/dashboard: add OSD list view (pr#16373) * mon, osd: misc fixes (pr#16283) * mon/MDSMonitor: fix segv when multiple MDSs raise same alert (pr#16302) * mon/MgrMonitor: fix standby addition to mgrmap (pr#16397) * mon/MgrMonitor: only induce mgr epoch shortly after mkfs (pr#16356) * mon: Fix output text and doc (pr#16367) * mon: add force-create-pg back (pr#16353) * mon: skip crush smoke test when running under valgrind (pr#16346) * os/bluestore: use reference to avoid string copy (pr#16364) * osd: combine conditional statements (pr#16391) * osd: restart boot process if waiting for luminous mons (pr#16341) * rgw: S3 lifecycle now supports expiration date (pr#15807) * rgw: acl grants num limit (pr#16291) * rgw: delete object in error path (pr#16324) * rgw: drop unused find_replacement() and some function docs (pr#16386) * rgw: fix err when copy object in bucket with specified placement rule (pr#15837) * rgw: fix potential null pointer dereference in rgw_admin (pr#15667) * rgw: raise debug level of RGWPostObj_ObjStore_S3::get_policy (pr#16203) * rgw: req xml params size limitation error msg (pr#16310) * rgw_file: add service map registration (pr#16251) * test,rgw: fix rgw placement rule pool config option (pr#16380) * test/fio: print all perfcounters rather than objectstore itself (pr#16339)- Update to version 12.1.0+git.1500295948.39d2e5f424: + spec file: * socat build dependency only for make check * fix typo WTIH_BABELTRACE- Update to version 12.1.0+git.1500284183.1ed97736ab: + Spec file changes: * bump epoch (not relevant for SUSE) * add socat buildrequires * libcephfs2 now obsoletes libcephfs1 (bsc#1047020) * HAVE_BABELTRACE option renamed to WITH_BABELTRACE * fix a regression in ceph-base %postun scriptlet + Selected other changes: * Revert "msg/async: increase worker reference with local listen table enabled backend" * build: build erasure-code isa lib without versions * ceph-disk/ceph_disk/main.py: Replace ST_ISBLK() test by is_diskdevice() * ceph.in: filter out audit from ceph -w * common,config: OPT_FLOAT and OPT_DOUBLE output format in config show * common/Timer: do not add event if already shutdown * compressor/zlib: remove g_ceph_context/g_conf from compressor plugin * core: make the conversion from wire error to host OS work * core:" Stringify needs access to << before reference" src/include/stringify.h * crush/CrushWrapper: make get_immediate_parent[_id] ignore per-class shadow hierarchy * doc/mgr/dashboard: update dashboard docs to reflect new defaults * doc/rados.8: add offset option for put command * doc: fix link for ceph-mgr cephx authorization * doc: update intro, quick start docs * isa-l: update isa-l to v2.18 * librbd: fail IO request when exclusive lock cannot be obtained * mgr,librados: service map * mgr,mon: debug init and mgrdigest subscriptions * mgr,mon: enable/disable mgr modules via 'ceph mgr module ...' commands * mgr/ClusterState: do not mangle PGMap outside of Incremental * mgr/restful: bind to :: and update docs * mgr: Zabbix monitoring module * mon,crush: create crush rules using device classes for replicated and ec pools via cli * mon/MgrStatMonitor: do not crash on luminous dev version upgrades * mon/MonClient: respect the priority in SRV RR * mon/Monitor: recreate mon session if features changed * mon/OSDMonitor: do not allow crush device classes until luminous * mon/OSDMonitor: guard 'osd crush set-device-class' * mon/mgr: add detail error infomation * mon: Fix status output warning for mon_warn_osd_usage_min_max_delta * mon: add support public_bind_addr option * mon: collect mon metdata as part of the election * mon: debug session feature tracking * mon: do crushtool test with fork and timeout, but w/o exec of crushtool * mon: fix hang on deprecated/removed 'pg set_\*full_ratio' commands * mon: include device class in tree view; hide shadow hierarchy * mon: maintain the "cluster" PerfCounters when using ceph-mgr * mon: revamp health check/warning system * msg/async: increase worker reference with local listen table enabled backend * msg/async: make recv_stamp more precise * msg: QueueStrategy::wait() joins all threads * msg: make listen backlog an option, increase from 128 to 512 * os/blueStore: Failure retry for opening file * os/bluestore/BlueFS: clean up log_writer aios from compaction * os/bluestore/BlueFS: clear current log entrys before dump all fnode * os/bluestore/KernelDevice: batch aio submit * os/bluestore: Make BitmapFreelistManager kv itereator short lived * os/bluestore: cap rocksdb cache size * os/bluestore: clear up redundant size assignment in KernelDevice * os/bluestore: differ default cache size for hdd/ssd backends * os/bluestore: fix deferred_aio deadlock * os/bluestore: move object exist in assign nid * os/bluestore: only submit deferred if there is any * os/bluestore: reduce some overhead for _do_clone_range() and _do_remove() * os/bluestore: use bufferlist functions whenever possible * os/filestore/FileJournal: FileJournal::open() close journal file before return error * os/filestore/HashIndex: randomize split threshold by a configurable amount * os/filestore: call committed_thru when no journal entries are replayed * os/filestore: do not free event if not added * os/filestore: queue ondisk completion before apply work * os/filestore: require experimental flag for btrfs * osd/OSD: auto class on osd start up * osd/PrimaryLogPG solve cache tier osd high memory consumption * osd/ReplicatedBackend: reset thread heartbeat after every omap entry * osd/filestore: Revert "os/filestore: move ondisk in front * osd: Check for and automatically repair object info soid during scrub * osd: Preserve OSDOp information for historic ops * osd: check queue_transaction return value * osd: clear_queued_recovery() in on_shutdown() * osd: compact osd feature * pybind/mgr/dashboard: bind to :: by default * pybind/mgr/dashboard: fix get kernel_version error * rbd-mirror: ignore permission errors on rbd_mirroring object * rbd: do not attempt to load key if auth is disabled * rgw: fix compilation with cryptopp * rgw,test: fix rgw placement rule pool config option * rgw/rgw_frontend.h: Return negative value for empty uid in RGWLoadGenFrontend::init() * rgw/rgw_rados: Remove duplicate calls in RGWRados::finalize() * rgw: /info claims we do support Swift's accounts ACLs * rgw: Correcting the condition in ceph_assert while parsing an AWS Principal * rgw: Do not fetch bucket stats by default upon bucket listing * rgw: Fix a bug that multipart upload may exceed the quota * rgw: Initialize pointer fields * rgw: fix leaks with incomplete multiparts * rgw: fix memory leak in copy_obj_to_remote_dest * rgw: fix not initialized vars which cause rgw crash with ec data pool * rgw: fix radosgw-admin data sync run crash * rgw: fix s3 object uploads with chunked transfers and v4 signatures * rgw: fix the subdir without slash of s3 website url * rgw: fix zone did't update realm_id when added to zonegroup * rgw: log_meta only for more than one zone * rgw: rgw_file skip policy read for virtual components * rgw: using RGW_OBJ_NS_MULTIPART in check_bad_index_multipart * rgw: verify md5 in post obj * rgw_file: add compression interop to RGW NFS * rgw:fix s3 aws v2 signature priority between header['X-Amz-Date'] and header['Date'] * vstart.sh: bind restful, dashboard to ::, not 127.0.0.1 * vstart: add --rgw_compression to set rgw compression plugin * vstart: allow to start multiple radosgw when RGW=x- Update to version 12.1.0+git.1499090920.2c11b88d14: + With this update, Ceph no longer autocreates a pool called "rbd" with id 0 Deployment tools must take this into account! + systemd: Add explicit Before=ceph.target (bsc#1042973)- Update to version 12.1.0+git.1498654198.20d6a47cc9: + build/ops: rpm: put mgr python build dependencies in make_check bcond N.B. this effectively eliminates the following build dependencies: python-Babel python-beautifulsoup4 python-CherryPy python-coverage python-flup python-Genshi python-html5lib python-logutils python-nose python-Paste python-PasteDeploy python-PasteDeploy python-pecan python-pyquery python-singledispatch python-waitress python-WebOb python-WebTest python-Werkzeug python-WSGIProxy2 pytyhon-python-openid- spec file: + removed BR libatomic_ops-devel as upstream replaced it with std:atomic + removed defattr as they are no longer needed on sle12 and newer- Update to version 12.1.0+git.1498478524.117b171715: + include 12.1.0 tag to make "ceph --version" happy + tests: drop hadoop-s3a tests- Update to version 12.1.0+git.1498309403.f4fc02fff4: + upstream 12.1.0 release; for details, see http://ceph.com/releases/v12-1-0-luminous-rc-released/ + revert several pre-release commits that are no longer needed because the issues have been fixed upstream in the meantime + build/ops: rpm: sane packaging of %{_docdir}/ceph directory- Update to version 12.0.3+git.1498202776.b806032985: + Integration testing changes: * add DeepSea integration suite test definitions for teuthology * re-enable several RGW tests that upstream only runs on Ubuntu + ceph_ver_hack.sh: use git describe --match + ReplicatedPG: add CHECKSUM->CMPEXT req translation- Update to version 12.0.3+git.1497426468.6984d41b5d: + qa: add initial deepsea suite (task and test yaml) + fix "ceph osd df" (regression in latest upstream master) (pr#15675, issue#20256) * mon: move creating_pgs and reweight_by_utilization into new MonPGStatService * mon: move most PGMapStatService into PGMap; rename PGMon's to PGMonStatService * mon: mgr: move 'osd df' handling to manager * mon: inherit PGMonStatService from the PGMapStatService * move the OSDUtilizationDumper code into OSDMap * mon: mgr: enable "osd df" on the manager * qa: add a check_commands.sh script which looks for commands with no tests * qa: test 'osd df' in cephtool/test.sh- Update to version 12.0.3+git.1496909744.9f667dc335: + build/ops: rpm: one License line to rule them all- up memory _constraint for ceph-test to address ppc64le OOM seen in IBS- Update to version 12.0.3+git.1496902753.b18dc53186: + build/ops: rpm, COPYING: drop GPL 2.0 with Autoconf Exception (autoconf no longer used)- Update to version 12.0.3+git.1496754880.35cb2861ce: + merge upstream master (b1d06a6b54)- Update to version 12.0.3+git.1496494491.ba3c561a92: + merge upstream master (97d6e150e5)- Update to version 12.0.3+git.1496306960.2db336d85e: + merge upstream master (b19352eec3), fixes bsc#1041492- Update to version 12.0.3+git.1496147556.f1d6115861: + cmake: build boost::context and coroutine only with rgw Beast frontend + build/ops: rpm: reverse s390 bcond conditional block + build/ops: rpm: no rgw Beast frontend on s390x + build/ops: deb: no rgw Beast frontend on s390x + cmake: delete excidentail reintroduced line. + cmake: link radosgw with boost libraries (bsc#1040119)- Update to version 12.0.3+git.1495849076.4457d36178: + rgw: remove fastcgi from default rgw frontends + RGW: Turn off fcgi as a frontend + build/ops: drop libfcgi build dependency + build/ops: rpm: apply epoch only if %epoch macro is defined- Update to version 12.0.3+git.1495798013.23dd2b67dc: + ceph.spec.in: re-drop %{epoch}: prefixes- Update to version 12.0.3+git.1495787939.3f6446f64f: + build/ops: rpm: adapt License line to Release 2.0 of SPDX spec (issue#20091)- Update to version 12.0.3+git.1495675338.07282a4057: + upstream 12.0.3 release + osd/PG: Add two new mClock implementations of the PG sharded operator queue (pr#14997, bsc#1040103) + build/ops: rpm: make librbd1 %post scriptlet depend on coreutils (boo#1040230) + build/ops: rpm: move RDMA build dependency to distro-conditional section + build/ops: rpm: move python-prettytable to distro-conditional section + cmake: added empty RPATH to libcls_sdk.so + rpm: drop %{epoch} from new rados-objclass-devel subpackage + cmake: fix boost components for WITH_SYSTEM_BOOST + cmake: build boost::context only if rgw Beast frontend is in use + build/ops: rpm: reverse s390 bcond conditional block + build/ops: rpm: no rgw Beast frontend on s390x (bsc#1040119) + ceph.spec.in, debian/control: build/runtime dependency for cherrypy- Update to version 12.0.2+git.1494343993.7527e4f0b8: + ReplicatedPG: drop CACHE_PIN->WRITESAME req translation (bsc#1038063)- _constraints: up ceph.spec disk constraint to 28G after seeing a build failure in OBS- Update to version 12.0.2+git.1493341348.9148e53: + ceph osd: add support for new op cmpext + ceph_test_rados_api_misc: add cmpext tests + librados: add cmpext API + ceph_test_rados_api_aio: add cmpext tests + test/librados/c_operations: add cmpext tests This patchset is a straight cherry-pick of the upstream OSD/librados cmpext changes (bsc#1035937).- Update to version 12.0.2+git.1493291471.adb6a43: + rocksdb: sync with upstream (bsc#1025891) + build/ops: cmake: explicitly disable MSSE 4.2 if not supported- _constraints: set higher disk and memory constraints so s390x builds don't fail- Update to version 12.0.2+git.1493238434.71681fd: + cmake: added empty RPATH to libceph_crypto_isal.so- Update to version 12.0.2+git.1493227670.3396ca1: + rgw: use a vector for options passed to civetweb- Update to version 12.0.2+git.1493192333.3305a0c + merge upstream master (0d368d2c8544247a4aed9c71c74e77b0c6bbfb22) including 12.0.2 development release- revert commit a9a50f690085091bb4446095418237f9fef712c8 in preparation for rebasing against the upstream implementation. (bsc#1035937)- Add ibs_constraints.sh script to address s390 constraints tweak needed in IBS- Update to version 12.0.1+git.1491557762.4e47e9f + merge upstream master (2950ad91d25d0d6e2e3fb6842d5bbc36353ba2a5) including fixes for: * bsc#1030068 (s390 build) * bsc#1031311 (ceph-mon.service not enabled via systemd preset)- Mention bugs fixed in jewel codestream that are also fixed in the current codestream: + msg/simple/Pipe: avoid returning 0 on poll timeout (bsc#1014338) + build/ops: fix undefined crypto references with --with-xio (bsc#977940) + ceph-create-keys: add missing argument comma (bsc#1008894) + common: Improve linux dcache hash algorithm (bsc#1005179)- Update to version 12.0.0+git.1489432599.165c23f: + merge upstream master (0c2f5f7214d2410a7519f88e65ed5273d6480227) including fix for upstream issue#18694 "ceph-disk activate for partition failing"- Update to version 12.0.0+git.1489159457.410e200: + build/ops: fix Group strings for library packages- Update to version 12.0.0+git.1488553020.e902441: + Recent upstream master (3c0af07629dc661aba84e2fef696339ac7171914) + Builds with GCC7 (boo#1025891)- Update to version 11.1.0+git.1486588482.ba197ae: + Update to latest upstream master (3d740bd) + cmake: added empty RPATH to several executables + rocksdb: sync with upstream- Update to version 11.1.0+git.1484919552.9216e9a: + Revert "rpm: put distro conditionals around Source0 in spec file" + Revert "ceph.spec.in: revert Source0 line to upstream version"- pre_checkin.sh: add logic to remove s390 architectures from ExclusiveArch line in ceph-test.spec (rationale: ceph-test is not shipped for s390x)- Update to version 11.1.0+git.1484745543.7b08de5: + Update to latest upstream master (36874c8) - significant changes: * cmake: Turn libcommon into a shared library (PR#12840) * cmake: fix rpath on shared libraries and executables (PR#12927) + Fix build failure in ppc64le and s390x, caused by missing "-momit-leaf-frame-pointer" gcc option in these architectures: + rocksdb: build with ppc64 (PR#12908)- Update to version 11.1.0+git.1484659687.3472421: + rpm: tell openSUSE to never clean the spec file + Enable ppc64le and s390x builds in SLE + rpm: lttng only on x86_64 and aarch64- Update to version 11.1.0+git.1483528076.d86680e (latest master) + Merge branch 'master' into ses5 (Merge: 185bcce798 a7b78620f0) with conflicts: conflicts in qa/ where resolved with theirs conflict in src/osd/PrimaryLogPG.cc was resolved with picking ours plus a method rename int ReplicatedPG::do_extent_cmp -> int PrimaryLogPG::do_extent_cmp- Update to version 11.1.0+git.1481663255.bf42706: + Update to upstream 11.1.0 release; for details see http://docs.ceph.com/docs/master/release-notes/#v11-1-0-release-candidate + move ceph_ver_hack.sh script from build service package to git repo (bsc#1015419)- Update to version 11.0.2+git.1480437645.66595d3 + Update to latest upstream master (boost library is now included in the tarball, so the tarball is much larger than before and the build takes longer to complete) + ceph_ver_hack_sh adaptation (upstream dropped src/make_version script) + rocksdb: do not build with --march=native (bsc#1012553)- Update to version 11.0.2+git.1480105120.6b8e9e5: + Revert commit 8aee8db140bcbd1ffd2a7b571dbbade10bec9de3 because it conflicted with upstream + update to latest upstream kraken (11.0.2) - for details, see http://ceph.com/releases/kraken-11-0-2-released/- Update to version 11.0.0+git.1473684054.73e4b4a: + safe_io: Improve portability by replacing loff_t type usage with off_t. + mon: remove the redundant list swap in paxos commit_proposal + msg/EventPoll.h: add override to virtual functions + msg/EventKqueue.h: add override to virtual func + msg/EventSelect.h: add override to virtual funct + ceph-disk: Compatibility fixes for Python 3 + ceph-disk: Use true integer division in get_dev_size + ceph-disk: Fix bug in FileLock + ceph-disk: Allow ConfigObj to write in binary mode + ceph-disk: Use context manager with FileLock + ceph-disk: Use os.path.isabs instead of .startswith('/') + ceph-disk: Set space_symlink to the path, not file object + ceph-disk: PEP8ify + rgw: rgw file fix bug of rgw_lookup can not exact match file name + rgw: fix the wrong return value + rgw/rgw_coroutine: move WaitContext to .cc file + client: pass a mask parameter to path_walk + mds/mdstypes: add btime to inode + mds/Server: set btime=ctime on creation + mds/MDCache: set btime on system inodes + include/ceph_features: add FS_BTIME features + mds: pass btime in InodeStat MClientReply, if feature is present + client: keep btime in Inode and InodeStat + ceph: break up ll_getattr into two functions + client: move the device bitshift handling macros to Client.h + libcephfs: add a ceph_ll_getattrx and ceph_statx + libcephfs: add a test for "lazy" statx + mds/client: add btime to CapSnap and MClientCaps + mds/mdstypes: add change attribute to inode + mds/Server: set change_attr to 0 on creation + mds/MDCache: set change_attr to 0 on system_inodes + include/ceph_features: add FS_CHANGE_ATTR feature + mds: pass change_attr in InodeStat MClientReply, if feature is present + mds/client: keep change_attr in Inode, CapSnap and MClientCaps + mds: ensure that change_attr reflects metadata changes on clients that hold CAP_FILE_EXCL + mds/client: bump the change_attr at the appropriate time for files + libcephfs: return the change_attr in the statx.stx_version field + tests: add a ChangeAttr test + mds: make frag_info_t add_dirty() function take a pointer to touched_mtime + mds: add change_attr to frag_info_t + test: add test for change attribute of directories + cephfs: rename ceph_mds_request_head and _args with a _legacy postfix + MDS: allow the MDS to accept requests to set the btime + client: add the ability to set the btime + client: add a ceph_fstatx + client: extend the Btime test to cover fstatx as well + journal/JournalTrimmer: move C_RemoveSet struct + rbd_mirror/ImageSynceThrottler: move struct to .cc + libcephfs: add unmount function in cephfs.pyx + rgw: fix typo of "minite" to "minute" in rgw_lc.cc + rgw/rgw_lc.cc: fix sleep time according to the error message + crush: don't normalize input of crush_ln iteratively + crush: remove clutter + mds: remove max_mds config option + vstart.sh: add option to turn on multimds + rgw: right parenthesis is missing in radosgw-admin help message on caps + SQUASH: client: request AUTH caps on the directory during create if we'll need to check perms locally + SQUASH: Revert "mds: ensure that change_attr reflects metadata changes on clients that hold CAP_FILE_EXCL" + SQUASH: client: always take a change_attr update from the server if it's newer + SQUASH: mds/client: don't get clever with ceph_mds_request_head_legacy encode/decode + rgw/rgw_rados.h: remove unneeded class C_Tick + SQUASH: client: querying for stx_version field requires getting all shared caps + SQUASH: mds/client: add routines to copy to/from ceph_mds_request_head_legacy + client: properly set inode number of created inode in replay request + test/librbd/fsx: enable exclusive-lock feature in krbd mode + os/bluestore/BlueFS: fix async compaction txn + scripts/bdev_grep: parse bluefs style extents too + SQUASH: client: request all shared caps if ctime was requested + os/bluestore/BlueFS: factor unflushed log into runway calculation + osd/ReplicatedBackend: move classes to cc file + os/bluestore: honour allow-eio flag during read + CmakeLists.txt: use LIB_RESOLV instead of resolv. + osd/ReplicatedPG: move classes to .cc file + librbd: potential double-unwatch of watch handle upon error + cls/journal: add async client_update_state method + journal: allow to trim journal for "laggy" clients + librbd: optionally flag "laggy" journal clients disconnected + rbd: new command to disconnect journal client + rbd-mirror: decode_client_meta should return false on error + rbd-mirror: resync was possible only when image replayer start had succeeded + rbd-mirror: stop replay when client is disconnected + rbd-mirror: option to automatically resync after journal client disconnect + qa/workunits/cephtool/test.sh: fix omision of ceph-command + os/bluestore: use global compressor if possible + build/ops: fix /etc/os-release parsing in install-deps.sh + osd/OSD.cc: remove repeated searching of map + test/cephfs: add mount&&unmount test + mds: s/used_ions/used_inos/ + Add dependencies from ceph_smalliobenchrbd on cls_rbd, cls_journal, and cls_lock. + ceph_test_objectstore: add SyntheticMatrixSharding + ceph_test_objectstore: occasional umount/fsck/mount + ceph_test_objectstore: test shards for longer + crush/CrushCompiler.cc:884 bug fix: index out of range + Makfile: Fix rocksdb error when make dist + src/CMakeLists.txt: exclude parts not buildable on FreeBSD + src/pybind/CMakeLists.txt: conditionaly build cython tools + src/tools/CMakeLists.txt: conditionaly build ceph-client-debug + src/test/objectstore/CMakeLists.txt: conditionaly build tests + mds: trim null dentries proactively + cmake: include(SIMDExt) in src/CMakeLists.txt + mds: log path with CDir damage messages + hint in extent_alloc code + remove wrap argument and handle in wrappers + Hint argument in alloc_blocks + test case changes + os/bluestore: shard extent map + os/bluestore: make nid and blobid allocation less racy + os/bluestore: optimize compress_extent_map + os/bluestore: fix fsck used_block bitmap + os/bluestore: use block_size for allocator unit + os/bluestore: make blob_t unused helpers use logical length + os/bluestore: instrument big/small writes + os/bluestore: instrument transaction count + os/bluestore: instrument onode reshard events + os/bluestore: dump some stats after fsck + os/bluestore: assert shared blob cache cleared on split + remove autotools + test/objectstore/CMakeLists.txt: fix libaio conditional + buffer: clear append_buffer on clear() + os/bluestore: tunable prealloc size for ExtentMap inline_bl + os/bluestore: don't dirty onode if its size is already at desired offset + os/bluestore: remove never reachable asserts + os/bluestore: drop unnecessary separator between fields + os/bluestore: fix key+name sort wonkiness + os/bluestore: encode shard id in single byte + os/bluestore: small put_ref cleanup + os/bluestore: remove faulted debug hackery + os/bluestore: bits for unit tests + unittest_bluestore_types: resurrect blob and extent_map unit tests + os/bluestore/BlueFS: do not start racing async compaction + os/bluestore/BlueFS: fix Dir memory leak + buffer: implement buffer::list::reserve(n) + os/bluestore: do not waste memory on cached encoded blobs + qa/workunits/objectstore: fix test_fuse.sh + os/FuseStore: only flush if dirty + build: drop dryrun of autogen.sh from run-cmake-check.sh script + os/bluestore/BlueFS: For logs of rocksdb & bluefs only use directio. + os/bluestore: remove some copy-pastes + cmake: make py3 a nice-to-have + os/bluestore/BlueFS: only extend extent on same bdev + msg/AsyncConnection: add const to mem functions + msg/AsyncMessenger: add const to function + client/barrier: move C_Block_Sync class to .cc + osd/OSD.cc: remove unneeded searching of map + Set ARM_CRC_FLAGS from the CRC test rather than ARM_NEON_FLAGS + rpm: Moved ceph-client-debug from ceph-base to ceph-test package + rpm: Renamed bcond tests flag to make_check + rbd-nbd: fix kernel deadlock during teuthology testing + rbd-nbd: mask out-of-bounds IO errors caused by image shrink + librbd: invalidate cache before trimming image + librbd: ignore cache busy errors when shrinking an image + librbd: potential seg fault when blacklisting an image client + cmake: Use WITH_TESTS flag to guard the build of ceph-test scripts/binaries + rpm: Added ceph_test_package bcond flag to control the build of ceph-test package + deb: Moved ceph-client-debug from ceph-base to ceph-test package + ceph-objectstore-tool: add a way to split filestore directories offline + install-deps: exit non-zero when we cannot match distro + librbd: possible deadlock if cluster connection closed after image + osd/ReplicatedPG: remove class redeclaration + librbd: ignore partial refresh error when acquiring exclusive lock + osd/OSD.cc: remove unneeded returns- Update to version 11.0.0+git.1473424516.3b8b524: + Revert "ceph_disk.main: s/get_dev_size/get_free_partition_size/" + Revert "ceph_disk tests/test_prepare: s/get_dev_size/get_free_partition_size/" + Revert "ceph_disk tests/test_get_free_partition_size: New unit tests" + Revert "ceph_disk tox.ini: add tests/test_get_free_partition_size.py" + rpm: put distro conditionals around Source0 in spec file- Update to version 11.0.0+git.1473418476.095f67c: + ceph.spec.in: revert Source0 line to upstream version + ceph.spec.in: conditionalize %prep command- ceph.spec.in: enable cephfs_java build unconditionally - new (merged) commits from upstream master branch: + mailmap updates + rgw: fix the handling of rgw_swift_url_prefix. + rgw: ONLY improve code formatting around RGWRESTMgr. + rgw: add support for the crossdomain.xml resource of Swift API. + rgw: add support for the healthcheck feature of Swift API. + swift /info implementation. + rgw: settle /info implementation across other swift-at-root features. + compressor: isa-l extension for zlib plugin Signed-off-by: Alyona Kiseleva + mon: tear down standby replays on MDS rank stop + mon/MDSMonitor: move C_Updated class to .cc file + rgw_file: fix/update rgw_open flag arguments + rgw_file: fix/update rgw_create flag arguments + doc: remove btrfs contradiction + msg: make async backend default + msg/simple: wait dispatch_queue until all pipes closed + rgw_file: implement stateless write completion timer + rgw_file: add RGW_OPEN_FLAG_STATELESS as a synonym for V3 + rgw_file: log on write completion events at level 10 + rgw file: allow RGWLibFS::write_completion_interval_s to be set in conf + osdc/ObjectCacher: move C_ReadFinish, C_RetryRead + osdc/Journaler: move C_DelayFlush class to .cc + rgw: fix RGWAccessControlPolicy_SWIFT::create return value check error + librgw: add API version defines for librgw and rgw_file + make-dist/ceph.spec.in: Fix srpm build breakage. + ceph_timer: prefer using directive to typedef + rgw_file: explain semantics of RGWFileHandle::commit + compressor: Better arch ifdefs for isal code + mds/MDSTable: add const to member functions + os/bluestore: fix some #includes + vstart.sh: -b for bluestore + os/bluestore/bluestore_types: make blob_t get_chunk_size const + os/bluestore: use Blob const and non-const accessors + os/bluestore: avoid reencoding unchanged blobs + os/bluestore: decode blobs on demand + mds/SnapRealm.h: add const to member functions + os/bluestore/bluefs: avoid check "locked" field for newly created file + os/bluestore/bluefs: check against locked field during unlink + os/bluestore/bluefs: assert refs of file don't underflow + os/kstore: kill dead code + rgw: remove duplicated calls to getattr + debian: should dh_python3 python3-* not python-* + pybind: silence -Wsign-compare warning + test/ceph_test_msgr: fix -Wsign-compare warnings + test/unittest_alloc: fix -Wsign-compare warnings + librbd: API methods to directly acquire and release the exclusive lock + doc: add graphic for cap bit field + mds/MDCache.h: remove unneeded access specifier + librbd: skeleton implementation of client-side image cache + librbd: blocking parent IO completion no longer required + librbd: remove use of owner_lock on IO path + Revert "osdc: ObjectCacher flusher might needs additional locks" + librbd: support bufferlist payload for AioImageWrite + librbd: add internal support for scatter/gather IO + librbd: initial integration of ImageWriteback to AioImageRequest + librbd: consolidate IO clipping to reusable method + librbd: differentiate between image and object cache + librbd: C_ImageCacheRead bridge from Context to AioCompletion + librbd: integrate image cache hooks into IO path + common/Throttle.h: remove unneeded class + cmake: fix the tracing header dependencies + src/test/bench/CMakeLists.txt: RBD exclude + src/CMakeLists.txt: RBD|KVS|FUSE exclude + src/librbd/CMakeLists.txt: krbd and secret.c are LINUX dependant + src/os/CMakeLists.txt: AIO|FUSE exclude + src/test/CMakeLists.txt: RADOSGW|RBD exclude + src/test/common/CMakeLists.txt: BLKID exclude + install-deps.sh: initial distro detection based on /etc/os-release + ceph_test_objectstore: fix ObjectStore/StoreTest.BluestoreStatFSTest/2 on ssd + ceph_test_objectstore: disable statfs checks on available space + messages/MOSDMap: mark as enlighten OSDMap encoder + cmake: remove unused librados_api target + cmake: replace Findlttng-ust.cmake with FindLTTngUST.cmake + cmake: let librados_api_obj depend on librados-tp + os/bluestore: yet another statfs test fix + Revert "osd/ReplicatedPG: for sync-read it don't cacl l_osd_op_r_prepare_lat." + doc/release-notes: v0.94.9 + os/bluestore/bluefs: use map to track dirty files + os/bluestore/bluefs: update mtime of inode in unified path + os/bluestore/bluefs: drop redundant eof check for read_random() + os/CMakeLists.txt: undubble kv.cc usage. + test,pybind: silence -Wsign-compare warnings + test/perf_local: fix -Wmaybe-uninitialized warnings + os/bluestore: get rid off "isa-l" type in ZLibCompressor ctor + Allow compressor build without YASM + script/bdev_grep: update to use hex + os/bluestore: improve failed csum debug output + librbd: improve image state machine debug log messages + librbd: deadlock when replaying journal during image open + os/bluestore: end scope of std::hex properly + os/bluestore: don't over-gift if bluefs free is smaller than bluestore_bluefs_min + os/bluestore: use _setattr for SETATTR + os/bluestore: make object existence check robust + ceph_test_objectstore: assert umount succeeds + ceph_test_objectstore: clean up Rename test a bit + ceph_test_objectstore: fix TryMoveRename test + os/bluestore: add onode/buffer cache statistics + os/bluestore: end scope of std::hex properly + cmake: pass -DINTEL* to gf-complete cflags + os/bluestore: conditional checking label of bluefs devices + src/CMakeLists.txt: -Woverloaded-virtual is already included in -Wall on Clang + os/bluestore: don't overwrite type if it does already exist and at desired type + os/bluestore: trivial cleanups + os/bluestore: replace store with logger in Cache + os/bluestore: check iterator before using during fsck- pre_checkin.sh: add Source line for ceph-rpmlintrc - move Source line for ceph-rpmlintrc from ceph.spec to ceph-test.spec (see https://github.com/SUSE/ceph/pull/60 for rationale)- Update to version 11.0.0+git.1472455009.a17726c: + ceph.spec.in: drop ceph-rpmlintrc source line + ceph.spec.in: drop epoch prefixes- Update to version 11.0.0+git.1472384770.c9f3af8: + test/rgw: add --gateways-per-zone to test_multi.py + rgw: RGWDataSyncCR fails on errors from RGWListBucketIndexesCR + rgw: RGWCoroutinesManager::run returns status of last cr + os/bluestore: fix whitespace in bitset apply helper + cmake: do not link secret.c if not necessary + cmake: do not link against keyutils if not necessary + os/bluestore: fsck on mkfs (on by default) + os/bluestore: ensure block device size is a multiple of the block size + Revert "ceph.spec.in: don't try to package __pycache__ for SUSE" + rpm: force creation of Python 3 __pycache__ on SUSE + doc: add v0.94.7 changelog + doc: add v0.94.8 changelog + doc/releases: add v0.94.8 to timeline + doc/release-notes: fix v10.2.2 changelog link + unittest_bluefs: fix block device sizes + doc: do not list all major versions in get-packages.rst + doc: add missing PR to hammer 0.94.8 release notes + doc: release-notes.rst: move misplaced line + doc: fix two broken links in releases.rst + doc: add 11.0.0 to releases table- pre_checkin.sh: forward-port insert_line_before() function from filesystems:ceph:jewel/ceph version - README-ceph-test.txt: new file - ceph-test.spec: add ceph_ver_hack.sh as a source file- Update to version 11.0.0+git.1472202104.8999301: + rgw: add deadlock detection to RGWCoroutinesManager::run() + src/common/lockdep.cc Reduce logging noise if lockdep is not tested + osd: fix updating same_interval_since logic of project_pg_history() + osd: drop duplicated sched_scrub during tick() + osd: move methods which don't need osd_lock from tick into tick_without_osd_lock() + mon/PGMonitor: mark dump_object_stat_sum() as static + mon/PGMonitor: calc the %USED of pool using used/(used+avail) + rpm: proper packaging of udev directories + LTTng-UST disabled for openSUSE + ceph-disk: do not activate device that is not ready + osd: update reture type of get_pg_or_queue_for_pg() to PGRef + common/WPQ: add sanity check to avoid potential access violation + osd/osd_types: kill undefined_shard() method of pg_shard_t + release-notes.rst: draft 0.94.8 release notes + PG: introduce and maintain upset + mon/MonClient: should update sub_sent with sub_new + osd: set objecter.osdmap when starts + rgw: fix for assertion in RGWMetaSyncCR + PG: use upset rather than up for _update_calc_stats + rgw: do not try to encode or decode time_t + cls_rgw: fix the compiler warning + msg/async: fix compiler warnings + os/filestore: silence compiling warnings + test/rbd: silence compiling warnings + rgw: silence a compiling warning + msg/async/kqueue: avoid remove nonexist kqueue event + librbd: cache was not switching to writeback after first flush + mon/OSDMonitor: fix potential division-by-zero error + mon/OSDMonitor: get rid of snprintf when formatting output string + mon/OSDMonitor: avoid duplicated calls when determining osdmap boundary + osd/OSDMonitor: avoid duplicated assignment of oldest_map/newest_map + osd/OSDMonitor: drop redundant check of exists() + mon/PGMonitor: skip scrub checking if we can + mon/PGMonitor: drop redundant loading of dumpcontents + mon/PGMonitor: fix potential underflow + debian: replace SysV rbdmap with systemd service + os/bluestore: break down onode vs bnode_map size in log + os/bluestore/BlueFS: do direct io by default (not buffered) + os/bluestore/BlueFS: rename buffered_io option + os/bluestore: add multiple finishers to bluestore + os/bluestore: fix decoding hash of bnode + cmake: fix unmatched endforeach + debian: enable dh_python3 for python3 packages + debian: exclude python3* packages in dh_shlibdeps + debian: drop python-argparse dependency + os/bluestore: fix race condition during get_fs_usage() + os/bluestore: use bluefs_max_prefetch for log file prefetch + os/bluestore: use hex if we are running out of space + os/bluestore: fix assert + osd: bail out if transaction size overflows + os/filestore/FileJournal: bail out if transaction is too large + os/FuseStore: remove unneeded header file + os/Memstore.h: add override to virtual functions + os/MemStore: move OmapIteratorImpl to cc file + os/bluestore: include bluefs space in statfs result + common/config_opts: fix comment(radio -> ratio) + msg: kill unused macros + mon/OSDMonitor: add output field name of average/overload_utilization + test/librados: rados_connect() should succeed + ceph-osd-prestart.sh: check existence of OSD data directory + osd/ReplicatedPG:wipe off param op from generate_subop() + ceph-post-file: migrate to RSA SSH keys + ceph-post-file: Ignore keys offered by ssh-agent + os/Memstore: move PageSetObject class to .cc file + yasm-wrapper: dont echo the yasm command line + arch/arm.c: remove unnecessary variable read for simplicity + rpm: drop obsolete libs-compat metapackage + ceph.spec.in: drop trouble-making divider comments + rpm: do not unnecessarily spawn shells for scriptlets + cls_lock: support updating the lock cookie without releasing the lock + librbd: helper state machine to update lock cookie + librbd: store exclusive lock cookie instead of recalculating + librbd: exclusive lock now supports reacquiring a lost lock + librbd: helper state machine for asynchronous watch recovery + librbd: integrate asynchronous image rewatch state machine + librbd: image state machine now has hooks for lock requests + librbd: interlock image refresh and lock operations + librbd: remove unused refresh request logic + test/common/test_util.cc: FreeBSD does not have distro information + README.md: replace package build instructions with tarball instructions + doc: fix singleton example in Developer Guide + rgw: delete region map after upgrade to zonegroup map + rgw: fix period update --commit return error + cmake: use PERF_LOCAL_FLAGS only if defined + tests: populate /dev/disk/by-partuuid for scsi_debug + ceph.spec.in: don't try to package __pycache__ for SUSE + doc: fix wrong osdkeepalive name in mount.ceph manpage + rados-striper.sh: Use expect_failure and conditional stringmatching + Revert "ceph.spec.in: ppc64 build in Tumbleweed only" + jerasure: include generic objects in neon jerasure lib (like sse3/4)- pre_checkin.sh: fix package files path rewriting- _constraints: tweak values to pick up maximum number of OBS build workers- Update to version 11.0.0+git.1471969747.79ca12e: + cmake: fix declaration position of WITH_TESTS option- Update to version 11.0.0+git.1471959548.f013b97: + rpm: Renamed bcond tests flag to make_check + cmake: Use WITH_TESTS flag to guard the build of ceph-test scripts/binaries + rpm: Added ceph_test_package bcond flag to control the build of ceph-test package- Update to version 11.0.0+git.1471605408.9203335: + ceph.spec.in: don't try to package __pycache__- Update to version 11.0.0+git.1471601504.f312e7e: + test/libcephfs: add the necessary judgment + test/librados: add ASSERT_EQ & ASSERT_NE judgment + rgw: optimize the usage of string.find and some indents + rgw: patch manifest to handle explicit objs copy issue + rgw: adjust objs when copying obj with explicit_objs set + rgw: adjust manifest head object + rgw: fix the error return variable in log message + rgw: fix trimming object expirer's hints. + rgw: fix skipping some objects to delete by RadosGW's object expirer. + rgw: ONLY improve code formatting in rgw_object_expirer_core.{cc,h}. + os/bluestore: allow csum verification disable on read. + os/bluestore: add csum on/off test case + os/bluestore: add store statfs parameters to bluestore perf counters + os/bluestore: add perf counters for compress/decompress performance measurement + tools: fix the core dump when get the crushmap do not exist + librbd: request exclusive lock if current owner cannot execute op + src/global/pidfile.cc: Assign elements in structures individually + rgw: fixes for period puller + rgw: for the create_bucket api, if the input creation_time is zero, we should set it to 'now" + pybind: Rework rbd/setup.py for PyPI + pybind: Add BUILD_DOC env var to rbd/setup.py + doc: fix rbd map format in rbd manpage + ceph-disk: change ownership of init file to ceph:ceph + cmake: Also build Python bindings for Python 3 + pybind: Make ceph_volume_client's syntax compatible with Python 3 (just so it passes the bytecompilation step) + debian: Add packages for Python 3 bindings + rpm: Add packages for Python 3 bindings + os/bluestore/bluefs_types: fix extent operator<< + os/bluestore/BlueFS: do not op_file_update deleted files + os/bluestore: print bluefs_extents in hex + os/bluestore: do not track bluefs_extents via freelist + os/bluestore/BitMapAllocator: align to min_alloc_size on init_rm_free + rgw/doc: fix typo and indent. + mon/MonDBStore: fix assert which never fires + osd/OSDMonitor: count pg primed more precisely + doc: replace cluster name with cluster-name to avoid confusing + doc: fix typo maximum -> minimal + doc: fix command format + batch is_allocated bit checks + cmake: Move Python detection back outside of pybind + doc: format 2 now is the default image format + rgw: Rework of s3 v2 local authentication code. + rbd: bench io-size should not be larger than image size + doc/install: Use https:// for download.ceph.com + librbd: fix possible inconsistent state when disabling mirroring + os/bluestore/ExtentFreelistManager: move default create out of parent + librbd: new journal policy to disable initializing the journal + librbd: permit disabling journaling if in corrupt state + qa/workunits: support filtering cls_rbd unit test cases + os/bluestore/BlueFS: _should_compact_log + os/bluestore/BlueFS: _replay(false) to dump log file + mon/PGMonitor: move C_Stats struct to cc file + client: don't use special faked-up inode for /.. + client: add a testcase for "/.." handling + os/bluestore/BlueFS: add OP_JUMP + os/bluestore/BlueFS: allow log position to when doing op_jump + os/bluestore/BlueFS: move metadata dump (compaction) into a helper + os/bluestore/BlueFS: interface to get bluefs space usage + os/bluestore/BlueFS: init in header at decl + os/bluestore/BlueFS: assert we never extend log at flush + os/bluestore/BlueFS: use hex + os/bluestore/BlueFS: Add sync and async compaction + os/bluestore/BlueFS: Helper functions for the unit test framework + os/bluestore/BlueFS: unit tests for log compaction + os/bluestore/BlueFS: Cleanup unused interfaces + unittest_bluefs: make flush_3 test device larger + bluestore: initialize csum_order properly + librbd: fix possible memory leak when image open fails + script: improve ceph-release-notes regex + rbdmap: specify bash shell interpreter + doc: added rbdmap man page to RBD restructured index + librbd: always respond to "release lock" request if lock owner + rgw: fix radosgw daemon core when reopen logs + qa/workunits/rbd: demote/promote image on same cluster + rbd-mirror: include tag tid in bootstrap debug log messages + librbd: separate journal::TagData predecessor data into new struct + librbd: block RPC requests when demoting the image + librbd: normalize journal promotion/demotion events + rbd-mirror: demote/promote in same cluster results in split-brain + rbd-mirror: prevent syncing to non-primary image after failover + test: fixed unused function warnings in unittest_rbd_mirror + doc: remove the description of deleted options + msg/async/Stack: add abstract Stack + msg/async: add PosixStack support + msg/async/net_handler: let set_socket_options return value + msg/async/AsyncConnection: support NetworkStack api instead of posix + msg/async/Event: debug event address when dispatching and executing + msg/async/Event: remove event wakeup flag + msg/async/PosixStack: increase log level + msg/async/Stack: disable smart thread spawn now + common/ceph_context: add prefork/postfork wathcher support + msg/async/Stack: register fork watcher + msg/async: allow EventCenter::set_owner reentry + msg/async: readd set_priority call + msg/async/AsyncConnection: fix _conn_prefix racing when stopped + test_async_networkstack: add networkstack tests + msg/async/Event: remove global_centers assert + test_msgr: ensure wait for ms_dispatch executed + mon/OSDMonitor: add sanity check before setting use_gmt_hitset attribute + osd/OSDMonitor: drop redundant null check of max_failed_since + osd/OSDMonitor: drop redundant check of assert + mon/LogMonitor: remove "host" and "fsid" from handle_conf_change() + test: gcc 6.1.1 complains about missing include: . 4.8.3 does not complain about it + rgw: fix flush_read_list() error msg + cmake: Fix mismatched librgw VERSION / SOVERSION + cmake: Add -pie to CMAKE_EXE_LINKER_FLAGS + rgw_file: restore local definition of RGWLibFS gc interval + kv: delete store after pg destructor is called in OSD shutdown. + kv: fix iterator invalidation in memdb. + kv: fill 'm_key_value' after 'seek_to_first' or 'seek_to_last' + kv: fix iterator bug in prev + test/store_test: fix incorrect prompt given by stash callback + test/store_test: drop redundant transaction of callbacks + test/store_test: avoid dynamic allocation of trans + cmake: recompile erasure src for different variants + rgw ldap: protect rgw::from_base64 from non-base64 input + qa/workunits/rados/test_python.sh: Allow specifying Python executable (through an environment variable) + ceph.spec.in: specify local sources + ceph.spec.in: ppc64 build in Tumbleweed only + ceph.spec.in: add lowmem_builder_override + ceph.spec.in: add Prereq: permissions to radosgw package + ceph.spec.in: remove vim hints line + ceph.spec.in: remove all mentions of epoch + ceph_disk.main: s/get_dev_size/get_free_partition_size/ + ceph_disk tests/test_prepare: s/get_dev_size/get_free_partition_size/ + ceph_disk tests/test_get_free_partition_size: New unit tests + ceph_disk tox.ini: add tests/test_get_free_partition_size.py + ceph.spec.in: replace pwdutils dependency with shadow + Make systemd-tmpfiles create /var/run/ceph-radosgw at boot + rpm: fix ownership of logfiles in %pre + Revert "rbd: update default image features" + osd: munge cache-pin ops with data into writesame + ceph osd: add support for new op cmpext + rpm: make lowmem_builder code much smarter + rpm: add procps build dependency + rpm: modify optflags to make debuginfos less huge + Revert "ceph.spec.in: add lowmem_builder_override" + rpm: lean_debug_symbols bcond + rpm: use gcc manpage terminology for debug info bcond + Revert "Drop any systemd imposed process/thread limits" + Revert "systemd: Add systemd sandboxing to services." + rpm: be careful about build parallelism + rpm: divergent java, ocf conditional builds + rpm: fix _with_ocf + rpm: drop obsolete libs-compat metapackage + rpm: drop obsolete python-ceph-compat metapackage + ceph.spec.in: drop ceph-brag and ceph-post-file + ceph.spec.in: move cephfs-* fsck tools to ceph-base + ceph.spec.in: move ceph-dencoder to ceph-base + rpm: Moved ceph-client-debug from ceph-base to ceph-test package + rpm: add udev BuildRequires to provide /usr/lib/udev directory + rpm: Remove trailing whitespace in usermod command (SUSE)- Update to version 11.0.0+git.1470997027.9c9b8a5: + doc/radosgw: remove reference of purge-temp.rst + doc/radosgw: fix the table formatting + doc: silence sphinx warnings + global/signal_handler: use sig_str instead of sys_siglist + librados: use bufferlist instead of buffer::list + cmake: cleanup Findgperftools.cmake + cmake: cleanup Findleveldb.cmake + cmake: cleanup Findxio.cmake + rgw file: remove busy-wait in RGWLibFS::gc() + Lowered third example to keep PG count lower. + run-make-check.sh: pass args to do_cmake.sh + ceph.spec.in: specify local sources- Update to version 11.0.0+git.1470355272.6fed82a: + initial fork of SES5lamb71 150451296412.1.4+git.1502953626.155adb5253-3.312.1.4+git.1502953626.155adb5253-3.3rbd-nbdrbd-nbd.8.gz/usr/bin//usr/share/man/man8/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -gobs://build.opensuse.org/openSUSE:Maintenance:7200/openSUSE_Leap_42.3_Update/d4a3d01a6899c9cffcc14d2dd9f3bb74-ceph.openSUSE_Leap_42.3_Updatecpiolzma5x86_64-suse-linuxELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 3.0.0, BuildID[sha1]=e6dc073c958651a52fe2fbc17ddd8c864334e13a, strippedtroff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix)R R RRRRRRR RRRRRRRRRRRR RRR R:BB@H]؏r?`] crv9ui 'ɕVb'zi72ukCD00 מ<[p&_q m:b.Jgn+΅|Sp"O$g%w9EΔ4&gTA$Jt,v.4`$S;)*DP&u]'tJsOd}tT fr#7,7 X3F* "b/`(VDQ4R+{$J:>Ps6YUZU-o"Av3W#hUx#JzjzL Žb]1kmͥ/ ߲g?,ayyWa@6]R7}eS";W+ζU@ 2Ov l@vdֳ- ܪ$z\i66W_{_jXX)uh8 r[\PVU) T^bA]cL1r-Wo~QG,Lr~~; W}Rj:;TʾoAؤ8 \%12l@-5DPAF"07&2TC8t^ˈ[o"a脙ZIs@ljʛT2Tk^)Ձa'Qi8ig<|/PA{y3LMp|4`Giv<|mt3D%a&V*,NeC`ie-AKGB+I^b]lչ^m[x.R~*݈jo0 +.sgZ#-f@@7.rj{6yv8~Xw40=UJfOzW?leS9u ?̑ԜC,e  M5۪Lbdؚi)E @@Y@TTrY"9l]DnS5MJ?q#gJPYQb ¼l*XȒhz>F;&>+> BKmpE]G 1#O{~WAxg3꼭 -EiԧXl\뇩@ ,>7C ޘdґ 4_)15EXM(-:٣;^MgM|k0Z-ۆ(J`;Ad7>`$ᒌryڑ8@Ǫ2 ]A[̞w.>nkK\; Aǭl0A6 q)#]S7>"Zy 璨0h ؿYCՊf ڟ#{*ewtq'IxΙwt_ثĤWa"".0PhysK$fQ a^[ЌIMc~>˰.x 3DnN R\ꁑ$AHNg[waiٓ}9rxV3n)/[6 1ݎ t2;1V4 c @ % #5<;bT[￲M(YqvQy Fƥ:ވߝU2~ҥԱ#[ƍgp!}&z/5XP'JgM.uiKцBX:ɼ$hS U .^.0N;vZ4[&_\E ~o𠽤f+fc;%m^OpֱN.]W߳kO)Mo땒n|Nù**qϮXS(A`6'_ ,C~}"::.,I r0jΛ;!*4)NqgrGfC rw?pMUSM nݽC95JН/CzM)A|-UT;0Ȝ.Bʨ*`,(YFNS6L%(S̛5]Z9 ާM&`Z)UPdyEenGq[G22Zq{h*f,13 Ad<á=:B)`:Hu,ە08R͊S]C ҿ\ʹd3N j+FqH=oJcreL/IJm{J4Nc7_̞KmX7YڬvC .3H_PT#Q1^goz| r9W @x7~sW٠m- ^+²(ωV=@eGp}}RozoBɷf8T)8d3$}^{iTQϤ|0d@,P_Ԕŗt!8ڦ֐M,@;vBfdZj 3SuFjY.} a_BUPON9d|0bsLncz>qo|xB2L`C09ۇ޴P7Qa]> еr6_fF$d+ln<"ڟfi^?>~6V``uVs0#_k ^)%u$5TF煊ؘ! $! oЏWR \ }_N+99Nng%ۭ砘k*jb~-}sh{E8brF3|TuE UG8{] gx(P~bY2 o -~L\D=su /݄b:0 ;X8\5`ay=U6*hragЙ,9eRw#l/ӎ fA Q{Swz;{eW7i=eX58{^N 95sladd&ez^덝pP0Ulh`AVʠij7BIvruY˱{$F1St\RJ_8DwǨ8=S 3>xQ:)_RJYʭf,8gb [!of:j~puǺtXXQxd[ h#XJm ! `(&/o.Y,A] vRxNJ_29rF2&1k:Mxyo+ފY΄w\V^O /vRV&aYYL(7aq{_LQ, ZUDMpɗh[~E9S^ _}Es>H+ @^1 m750\H5OF ]ExVe4QL赼G&/')J݃e{7x5Qm?HJdbSpbOL>4Qjа$9Yл1gN [}A*e\r^t{S,FJB!v vo>2>w֯%_=iI=@Ja+xwZs ٽ9cεW'tf49ĕ2'06G44Q@WȰ6 _;a_VwuRv,nPN|G-4aU9Q/qyWЍ%Vn}l;S?nY& C;ۚ,- 9ToQVvRC7,B]ߑ[UU8:S!|HtM$||vʑ^)YHuF.qwmb,JxasrTՁ; _dD7D 8Qo|w~S$;bӗ ĢpAx6# ӳ`5lj67Rۄ âaJ$yfO5?X!r_kQqnnP{?bSh%8:_~ڎT\LLP#!QqqzC(aN|ઌy*zo-u#ۯU^6sS<3hL7Ocy>輈/:7Lk@"iOq5۶Akȇ> h:is33R2hےShF-EZ@S—cdreg5jzeЪAyptwܨxFII =J5Kᭋ}zBfBI(.g0C&-zv?{q bCM%<3I\g'O]`pqwcz;5v꘺=<^7>z~ٗݒVh '61MYG->"fuL$%oeѬI'v?590U+rpm,r:kuf~ԗod7@?m-^Q̔|Q.J[&1%U&>_B:E0LJvC"md 7AXs%'H?׀# Q+%eRe@ęOhYT_$c>4&}͊tV yݣڛcQ:*qB. -q]5n]*2Vmi[ZGjw PD8vʼnpLa\hYKis sհiû ̛|Yfr=>FN'+-grкAG Z"%1BϓqT<= abh<"^W(6vCE<bM#pn\xq IykNVҤ6ڻ@U=A+ǯ>E9Y4 hz`֋E^yӛ>)eNXGg-S^Rb ^[i `ʩNeivcMGk;mXǮ<ѽyG4཭za}Wf臐Ҍ*|'["4gcC(Hra\&n8;&P={aL P'vJl.>i WrTi:aaՁ_اj妞&@DŽTwXn` RbLf kqˌ5U53Gȩdmkƀ?U7GYw~Wv#kr$vAyz0!teSP dVeu WcZHӵH33/wIrB+ `b{hVSօV5SO4Ltx> tPy$dKl0im'9[93 ϔi:~>BTD}z^;P;EKw.F$ۣO}_"X}UE %mA?'/Si#7GE͑&sU[trqݩ*s_!MHϞj}AΏfR#{DٛI"̑8Ӯ\N|5jZpT! L0}焿E]:.5& ja6CY 2ԣ$"2^%0 Vqemb ]W`>u$ &Î(3%Z`%p2q* "~HFb׾2/Cϝ36ER0UHFG6"*R!(Q;+QA1F 4Lq"g1n=5t&e!2vsP) @3~j%ݧY[ xR[ iPd%)'= t6b#aHl8P&[[J?Bf F2fZUnMӓP5%W,5(FX^]+c ]yޱAbn! 3rW$ak]6oC%?JqSP/Q[Ȧaa<za5E"㵵U5a;pa g(21s[x~G)0JO;KWf2%9 dvMO !\e}2]qy'x3. [!:Ϩ>k33GK˥rLHx-s;5p)5hmԠ s/?_Bu:~wj Bx[3g7| prc*5hӮ2 <~ÃnG팪y[f2Bi3J]#F-'>&"T_Z |^ 嗘a fR^NPp'!*4:=ЋCFAXBMY ٕ\USП\vZ4bT~i-0Rycs>6̥ %cjQxZ+u2E=;[/ܝf`+wR63ͨԦA G["雵6LJWg@(,cB0վ ڸ FY ҀH9b~9ЁP7IQ51!V*~> !{[l9a} Y{7x ;q P %Q҅V]"kyK N܇R_`kdrhe#>V*^>ԝYLi\EȵWSy}L93Q h=//%jdѿd_sR=ey8r/ՠL 0l!-_ShIu9z%+9Nsˋu^4zHB\Mhr-oMd.AswTX2WRb(/a!`bjBfṛ /n 6$337w4dS08\DsltRc}oZSXv9cr} P;¤^LCLlµd(E3M#ikbKNn (TJAfꙐSw0 T{'~U-}1ͫ 񞙳F_k8 <}}y?'2cطq2RjSeF v*A;I3~G #>Fl>>s*D6A'xF(=, KW a&нIQΌ*h0X'hY{PQe-0@A~r6)?C THF§ye@j4)c(0̑>揟w~N͢w٨gaz<(Q#B͍ 8sifC'4"sN =KGfѺ#r{o$f="Y ]W'9H%l9)yQ<=Uq/hT HL-2 /֒BŌGɖWԷH&gb5=aDޗq[HMϞy T{RHu?Vszp})ldIn:g076NUչ񙾟i ';J$ƅ۹QaGQ sσ2TdI"@fYuF9^O RggSQ~CA8m?xd9/%wwwT Gdp8:C^܁ښ/+s*e\;"O}K0 k[ 2h?gʒY}7ʷ' 0vCGz5PJ!nFfR^R&G!~_T$;LtgUXONW֬ŊIa* N#ʼnd3Oduf 3m8?EɃt'(߾~3Iq ;=`!_ao#=pBLIEzd/IAMB;%z-: hs`qQ 7RB8NN#>pu/tTf$e]_G[cPV+$i[Y _3ͳڰ:T3ܮ]4FBܸ冮2"1Ԗ U Mb[D{d hB BdGC6Fԑ[^3Xln c1HEUԈKkwPOIϔIIKm>΀ ؇,̟ t-@ W#GӴt~MUdN'k*?<{ H*l%j9X!0ht}XPws^!֢}89% n"ч7h U ^0aKʜdApI' xNቓ%+ jd= #p%?CIu4A@YSJV5Rc̦7gcW daJY;_ P0<3׽)Yĵ#XGt<YgE}6jʨ1VYڦk3M|> AW#{hjS{Ƽe_W_[/4VطhQ%$5Q z%as;܍v|-JA݅ف]<M}:~O>,i%{R|^bnT䛍\3@/==8rU2!V# Qzzr0Nn'Mlf[[ƑŅO9՘=!6rS旝 =1UcML۠6M oDgSUa3p=D5<Ǫ> fN z+TadH^:s6$I\qM]T_QH۠BQWɟ쫇9*gJ%rv ϶>EK1.,K)YҨܕ6@ f͐jVR?s"V*U%=R`Y]#}|qՒ0ՀOþ{MSc t (!?2P4[sik@Q",p<^9{;N< M@/Rb wst fC_c\0V*c]ad pe$tK]ծ;]ڛmz)yLC]TMSIۿS9GC(&|ZԣPI 6Fc".Qbc4E.@)7Î1B// =$Tkl.Ft8ae='sWI&;3VڟbʉaFJ#}sRH3pt6;' m{g"66I*&OPR}IyQ~̛ ET_)Kf,d-^_=֞ȱ}Kwxek|fLk>/O׬IPXٰ?hX`\ N'?2f?sBe-+m( hMy /W0X%A! AϴDbU\߈Bլ|٨ RҺE#<(.yèƉ[݉WGl" EV!9G!\ȴ hTZ67u d;x@0rᴆT=&|Aْ>Ɓ4.5]օ rkMSSМ4_+AgLsVBR[8v ߥomN}D Vȧ'ػ*l*8| EZ ,~WwJ;U AdvOóEDmyז/P"7xDƎNP%Rܰ[}y4S̠kY &˞qfeZB7W)clԎu YEQ<`b[aΫcD nѫG;8kSI\iu2,:n_x}Zc)2U=8]~׮h>IOr=\:y0_{Ktٕo)q%]hݝR-?O(Im2Y-Ƶ?>1t/7; ap+_Pm2@Z|W`NWi);naC@+ՠ;e~&*X 8w>& rG04]DW,㆖W0 ]AN\{q1 RT*櫍M$52-0oUCaFit)[cحDcoe"(tI2I[5_iSrwJaGC]؉@^z 孫@#Rʡ;\^ \N%.^X$;ZR9P= ۬> *S<Ɵv&Eg2-M9M g`'wiYg!۰(qJwvgm˶UR>O鯰*&rk]RACM[

\I$xz `u'Njq==\LUi&rmU; sy݄Ef -f&vef52 FÝ-בB y*ell^VgT}\,ˑJ{i)ևJRblnת~kdZv][N?Z8ҷ>mqńهΟGx-zObT&ZM5: #bC>hecY>{E,>Y' <(`w Y$卌.P$iԕ5!djճ|XW}{ሓ:U |p_e[Ćk J-YSD{M>^Eޤ-Pq3`dㅈYAS0֌8yn+F'a0vNjUܘ+LF|줁r@m@Y_lEa[8`,;*pAgۊ輕7!ݩzP0K\I=ZQ Rj =X,Psm-j/SoadG0֥N!t 6n02d8+YWޚ^c+wDHֶrI3hwQ <\%Q*nޘߢ6*K& 3[H‹ӗU $2VbF؁p*fzMFy>i6#@P)ILz16R_Ip{yA6 b9󬯂bqu|ʑP*E}>? lP Z^jN᳃K]"?l])2%ҮF(E ٠3"rBL)Ew K'{nh,旾ή^Rlą8`%{N1HbWپirW۵A&?b"{- 5N}lE#%ԳQUʉzLi}1Uʴx_b񮞍g{v?ۊ#.TYRS-QSU7}(=)0ȍ<6zهVeLP/R]r{3p6hY uhIO+loYuЁdBhU,-5us!*DlDJ xӺfH'7%ۣ7x #f?0,y2CdO"$^}TBlik!E=Aȼ/3K38=(dhdޖfpL;Y]ɭB̍4o$3(5IAsAu>E\9MB>0=s0cCw. }(DdĸLsP' 'bAcRoѺ3lƉ5ݷ =!Rv>:oh 6ʉCc5;(/Q46juɆ.{1+5 -'uVdY?mޞqm;Ѯ 7\cRn`ĤFG( `oUs:u1DJP5kX*xj O9Y(wuۣ |MQQ,1w{rkKkvmPB `% sKĈB|Sv j юT%TfQ@*k~6'\:AtA2Y .H50! v'-o`k]\Ht~y6.ej:6?\ l- =-2],T6~J|k-l~E6ޢĜHjaVtB1N>1&:OpR.9;:ab%_!I9YG=9ƼiXu}DC?>K;M`7]sZyZ~U CGJG#Esxz. qq5S 3`'NDhm*뤱v7@: zlm%|;4-3rS@iבQd_Rv.Kc)jͽr`mց~\>,,UwlҦ>ɟ^:aYK,@M#g8M>Qݣܸ!I8G(jQ"L! ՔzHog-W.IBg3Qĸ2&+Jlƒ'Dq>4&TךcetgP hu*w#^}%hIh jEz#+U2~l"TUfXy 8Dx Zt PkCjo5߭km`@[oԣl] Vz[8F[u y u\ &o2Yŝπ,QUҖ{tF/g?ൄ0Q܉CGf Єc󈢣&B?#Y)wù>RI)x:ս#pґۄoF dt8b*ZW7mVّة\#lcX5:h'ӔL[+;!辜Wd>{k¦_ @[ Ĥ,0~NhRrYS>AR`z %OeL6Àr 9K^;y^O'p-+Hs:J6w+Fx ʼ ^_[$|#G{c8I#%7>xeYs[  *H< F=Y|Cwg'Qӏu1NT@ńW|]ikhB%g{Y9e&1&Z2DC;KB%d&@ܡY vp6@%/HJ$vh. oZ.0;7%2h9Q#GU*r%*?mxHPZh*\tNML0~ i욺719pL&\ e})1w΋t;m:zQgm\.MDY葾GGaFNN db UQ'ܗO'.EYX ,|u 3_%CAd쨦J Hdu>)Xb tkONjk=GQ_MmV g^ۿq>(%W EwQ<IC5mb#.pbJ{Z1S jwaԖ˚ħ!֣3bzn"͡g|H1rt 4o?KXcH]S]?7Ibao}h ["ibkUa/5QwS Ғ@_I{3ٸp ԰%tȓ?_r-Λ#LB$@a`c\!'-?tXꜿ`QtyRb^24#Ȕp~R@kq- x o*''h[fC}^av>mnU\Q+#F萛 j tq! ahʓ:i l]x:8Ns*rgLy[Ѯht]h{X_g͏E2X+((g!֤.iRKx9ۗe$T?z2`ArDC=[qP}E9,s.Ѕp~y޲LSO<  :MVa R`T?sy'p?(菨bfzȗWaЈ ؋Ar}KC[Cp:O=^͟i86k$pb+d<]?9)bPh= -*cy<(+?ݼMN}*SHH& |5sک^S/l#Uo"iwkt_4c~?[:Y~褖mZ;l#*q'J*p[ԯ4:.w>=qkBmc:bM%Ri}YDP;6Riluʘqtv@AW~q/R3B:2ݰDE64~ӂ=y$$kXK  ődNH7ʺ[{jaosȞ?_\!kpY'109 c.8͏QO%FLgVGg]Zj 0YU1c/Te:}+iF>*YXm "2=2Z&ui5paXv&oH":Rgnt N.^V鞓@2, D>J8 1^'J` ёc=](tX}_\M9`ˋ/}\ VOv^8r5% K3Y6ћ3P'S+,$sI-!\vĈqnM9T9\l2 ő\-F_Zί=A .32tWU >hdn n1 wLGU*\.Ҵ[C^ Z;yQ?EB֡m?Ŋn*UFKMPoSZza0ԣL"*q ~UG>/!;.>4i#VEȍ¿)-|0jjTFZ)0dp/@D4C]M!sÊLiB;hA_TT^ rxHSS8܍Ҕh`g>lXEČ{EJ kѬ!tM@DuavGӽ г&a zLa*"kvg׵(*H-b=;#.(s\L{V^65;: q8ݗ2!}(&6t.]'csAaH~{er5(pm/ej Ғk 1Q^;L>*Υf7nY+Z^:P4RC|\`M + Oo⦴#|_&}|_c=\h3}ێa~R:&OϼPm%[+ ב Y=Tw:pD˘-:۷- 8?Jx}[G6WUPUTw\<tw*PgDzd'y{ gY8'S7R';pM2S9= Cӏ_W"}>UD% b<:m)>hqe%ȭĜ`ez;g5 LO9 %F[_~>* 3)V4W|w҈I\@;u+BOvZ{_A){"S; DCoe~obS]E3(>w4d隭k\QS?-(nn?5gdĽoD;j9-' V'GZm3QXA_뇺HoNy69q,WFM#o>J[ŜA{rVfPB8nӾT?u϶ܱRHS%~og/9xbMc]w?.v2-22qnA 5}7|$gV&[6~ ؠ Ïĕxgye&lIv!f~2XS֞{lkwym +0(]M=)%&hyk}Df2 9KK"ٔwezOك,`pw0dH>lo~c4!h T&؈VPh .莪JKP.@Cn&,O?2i=c.D%M0,EƳ[MXﶩR|[VAҮ^A+&d3ZõQ-Fӕo+uJJrlZUNĸq;7iaƣ^7*$ӼpgYC Y]OEZSI#I'3R9=lXUou?i/hhWêὔCA@x> ,$,qc/Oe_}j 0L#\ .% ۍf N?z'GY#4VP>[rhFWbx%=cZ7:_߭` n_8Pإm}#NiN5N;5Ĵ^2=H^}2>"Pϕ57qoJ׍1VwdA5Dc!]PJQյ!|>XM7KɎVC<;gWWM;A%(G', \pHC:Yzlw B@A1=ȩK7ܜj^gőTj$P=G2~"R8s%~9]z1u~`q֧mR,łJ+X(K N$j}.S[pvQvV);9>B}&&#Tbd*()Uha#؞LZ~i0zȖh4O{3<@ ]v / V{EeTuK)?ʥ\MUfKkpρϋr}zWCCXR3oML+?k@W\gr8\oYPg`q:oM_{oO6uͻȡaZĘdQȨצ%(@蹖˛͜ҪP&{c`f?đs0,[,B>ibNɠJpEk}cuzc`_Z2,BqN׸z*P#!h k|G&[AoHF9ܰ ´rҼC=]ox#5nX}zJ c?')L~4ߢoS Ppo}' Ž3b}6":Dt? d{'ZYNEKGm}A ^=?4D*J:lfV:tId00S59[wF\p_pݛUaf=z \VoCsxEtg2(AGZ ,Xu-lpڋ|Lo#5wwjRnGoĜAh,o*Ö*'uC6^~{bR B99p:Vd6sFK+/Z|#4 Ni<Թ)Y7{T[kcGT7n=v9>O+Sy;lshEef=nsm#'uO_TCUwɅ1DmwZ0翪^"r޶NlK%=FMYK$ NN ^-QK!iZUi GQmŠb 0}+VpXyl{2 Ecbl;X}}_G?D`%(5h:XDʵCl7AY_/_m DYCS!NjZ:坵BBD|Ȼ RoF й(}7L}N`:F{ קm\Zi"wbSRđTM.๏s+^F$Fo( Qs*;#EKEU`!oURJ%z"=$65 v$=~<һuX+⹒;4k7ҊޮVZ#(ZHLNLe:<4Dˁ|pd/M!YOTCBC/\wanF N|H [D| JJ~ aWC3]<݉7Xqƍ)^[ $H;)XK k0?ZLYF}"kO NJ R.(\kSaC#lD_zw|gRЅpW)kȀX9˻Nw&iQVG}pٺzM., -y{!:20Ch ݊HI̞q?0'ՃO)5)O7|n.Q؜g 'Z{s`@v0bw 8=qXu%}XVB(x1r/\ZO}1@ $dϿ&{S5Cߘ~{73ޡ׌dM])wQd`ƚ^*&kbdf{җ1bbrK8}U j{5|޷n]MB N nrv =SG,~zh"PTr !ymd7ñ"gzU7z=,N1pAw1uӳ(|A{|]7|3f*tʩP ZUqBOF,r:djev@>wNg\|zs>QQ 66ޜ"txݟİ}p+RsBWWGSP b<-࣫N}+8Li/P *IzcZwFuC&<@ ߩÇa a=|ȝVis!cQt-ej7Eg2ʕDt~7D>t-Ŋ,SOff uDʹLv2 i\T~ Ь㻱 (+پL`pQ#b=t2'OϨ(N_pnsWt27Vav+* KG.#WwݻNJ6Fd9^Ih\_HlAv06c~ A@|ue2~jlgtֆNSOПaw_gFWC.JxRV5k7[{^2!1qA):_k쁐v3v^RR;JX͜71} ȯC"ӀO;kDo yAʯwW~P84KD=cf='{PߖhMV8>C es}@a|m}~>Y*.x$ pZ T{ϟ$!ZAIjaE}8p屯Y8H~l*S 2:k}B2UE!!<6#eT0l|%)!9K-_UG휴4u7vu6H׍qU=JJf(^Ai5J`J~i}Ͼ&(c Q,6[?ĺ8ȟlbrS̅9^ ()EVp)!**zl0{RH q:Sj?uif0Ӭn.27\=ZS0$t0DZ;ۄЧ1Kgk b7{c2V&.PQu q˙jo俇nb cQhrdf"BY{śrJUま0eCQybS6#x89A+7}An8<F`Z :4® >eFT*#P{S Z[fhS]~mM@þM۬m]-2If]ЧR#xp|>(dK<4h2IRgWY+VN\,k&$D Z-a7P{賖oFQ Z}oĝI&5ɯYSXbσGNjp$l#"j 4/l 1 ~yԝO힣tBMƺGkj$T>`Mڬ6}Ҏu"Yb 9&= 9sle+!F.NPé_Sm;"7(s/y#}ϝ"0jͧ2u/Ȍ+.wn %jYXOI$OiGW"gΡؾj.M_dU@m*XߜBn*.&%%`/rrF]5$;YI8a-??~1r'5ۤ^6sSp=}gu~v=.M5EPtD_˜tVi- %H297|u!$ۋmB-]2"8;Itv|!2c?85/t) ^{2 ӛ&ޘZnb:,y܂A޻oDa/Y EAv]kd)KB@_v?2xJmG&q!??ޏrPn=r|d0NfTƯ 4H?+tpCdjxe!y3ŸH]3ʭ͖jj}虈M:ZϢ3jg 0Uրit\L'z3HQaD}7ςf݂/d g-}dN3Qt}q>xR#Ъ3,w_Ùw6q”[?(ϕyfeIy\z-!enV-!U*SΑ\ S|(.[ 9$ sw?M+A(: s)|L(Kq|w?azZf/[0(ΓhAT[]ݾċlR|}BYL;.o?^dc|I j^ uV6Wqj}5bLz\g|cs!bsVX':#dGZE-Rʰ,QRx)Ov)WGjp6DXnn_ť&""kx3H u~DmLaܝBv'φBxGG2mtHS#awU䏜k}Ccc5z7KE|f%Lz-Tڴ#B<5m8j]:&A ( rˡxxt$MeӤ Ct÷B( XŽ1|Rx_e 2qvc\T:ͭȳ |e=Gy6k ԏOG7w騋;5S0+ 9IKt Pߏe Cu *lx4ƭ (tA| xw%6_PrZHaYŗtaPD x53ܝ6[J,Zws 'ͿTCd`~DL!i4ͭiQIF'/ߗInjT2{8rO~ &b\izCPG3=57aZlûtg *u:bVdd H?JW|%5)V,:7ß%5quKhhCkBDNF뮠[xqXnmv7`d8K7=N,M/&WY,GdGwBƎ080*y"@<sLb n|"5j Š@&5N̾m|̷/ZWV;,hfdPEH ]Uf`oVVjfF3㼩*?ii"iuL(͉!aʊb|&1ZY2C;WKz}_/pJ!/u%8̡?Emt쟴6Q'S 1$q~ʤ6/-7p] ~cKM|t\_zt01`$d1s~(,-9'~^@M'M0b{Q>FB}<(g Ь0^Z-`ҲԽ1F*oa ONKm*jSJ{HȦ@zV[kU, 1JyO{wЭQsR ZX@6ˎ=x@@pYG:} ÈᜨB8Y7Rỵ E/w&&+hVJ+0.]YY^dP2_ٛnaCY7}:p鄉N0ЉH%SMcDd=@я4]<+}yhSh6uAYBDUNqH(^2S/4HPbX&-%?Vh)  TԤA)k`*j-/!~ڦ,bi^)N`%~<^L)1_c'tRNG?] p3"Xj65`VH5w-0AOUVB.1(Am95Ҁ=֧rܥc+NujDӎVC`lE`d+&IBED-Gb-Uc"w HpMB{e\כe [l{L,p2LenT,"ͅqyӜq&R؝CR-/1f;Yq׷|ǩp,dK8ܪϹ# f+ƊDwf`3 R#oݎ}Sb>37vyEɰVxQmi. c#1Q̮䠰`ʁUqWB.ռEH!yc1/c2\vd7v-]q5'bcMi6v]TD` 98RPrB`y$aAn2)Ab=w3޵?C*qnyZjčibhts+|_]Ȓ(>zdňv01Ta%3$*]]]dCBhߖۺDK* 2t$2` < [gzؼ&w{NS%!  ]jǵ1'L~%3d&w)L؄^H;Ы"fsUBV*ajXw6ߋE6W]nE1 7*ߝqYL_*ɷbˡc)ٱ_s#Ѫr8f96LTYFor̮0L[;ƔxG͝2.gy]6y\3,Fg}F< ѯBd:;9<}z\WJ+Ѿ;? cD:Ud* cgU=Tkh ޗ.V8@Ax_"`˗}ESnk6Q >/`!_6.v oX_+֠hw-nȡ~U޵"EOMWiZ!QT%>$Qnt[쨇QUQ/YEkiCcɅu9[.ɨϧW^jo {UrԀǚ%gr}܁lK1*۽ExYNb3Τ)|3fwy$Pj"eV /cwCvțӂ! Ttir8qqdܼFbDk IBQiԆ1~f!3f1XD;ajT}xsˣwEp%y\8)?MB.I6ïV7% kU)Zr.b[LYKEY_%Su.>bc_=;qQWtiCڠ-PcaCI \$H(Enaǭ/jEmD4N@[{JQq2-$*lx`*Ed[52՘\k<&AG}xPR+~ﹲyr'{JJ_ O Et}A#n5ohR2餁]DZ1y|Rw -h#dESW^^SF/\! gV0o'1~Ep]ԙMc0;Q^/ [ ޱ](N,L"nK:;(WgO{j/KYCPi w6J͊E0AR:{zVen_~׬ܺє,kJ28cGx:QP.WUԞR$n 8d*X $05H@9b:=H9 DkvH>pHiN1Dq7I`4ͭh4`yĮf#xȝXe?:tox^vjP`k|ޤNUn3XP:S֭z,4kOM IM:'<pf(,GTLs:2!Fy70[ :BOds=SݙLDhEarOZ Typj-28[5/yke}U0}^wbemMjOUYr{ a `oA]knc&^]}] qx:OvHLbOu>&&,Rd+t[ ,PzvmE^=ZGGgN/&JU(zp1w5N죇xfso8JLFv3P*n'cnTE d$މQig5ejyQ?jJ^ۏ7L!!Z] q3nHRbY ppֵc"9i&ro?.Z봷8j$[Iz ~>mٱ`1B~qW jAn64=8 P%:@Fi'25$mCp py'4R/Mj[V4#ؐ.K1$ܛ[ڸh<0{mr4n۪Y0h jJy]J{ܼ3Lބ⁓cS)EG|(Hgg_K 3sen#QcB55xrdU)-9qR (r-oǪl o0v-/Р s4%O0(1zI}OU֥|E7kh.PIS*MB5^UcbL?!W5**}H6q8blD'kvLe#YL 'XυSo]v+L. 3][N}V'%n11=s*ȧ)#[R"y7MpydW3J1.}. ªWBKm@òB1VsݔRcr}]Ǹl3D"M>N(m|( S#FBMNm^DŽc$j zsP),ZI[W涕kV'՗׫!{ˎUm;O|5c7U NNhK֦m>j.{|5?2W>ȯ{%hůQ%5A`5R /xSpTCK|#le]rEXcek?y; $8 (;2؂ڥ-AHۤңM XdqmmVYmGEgOj\t=cH!JC/ &n\* j;i໸RZ@ޝw2ѤNK,_5jtFr F"MO+qL!zx3]bܵZžC=g3Y?v| D0buLqM>L9 ztIJe50Gj$Y{wF %(."+!VX>Ogt`^ :S93m/K"Q UǺdUch URcXհ jzt^ݧ z- ' /pĊShn"B:*ѿ*HsmFƸ*CBv]o'OVLTLT#R&&,Ha_ҿ.ؖv (%Z_D%i7=Vb{*+wQ(FY yc$- 'sw!L0'r_¸q`l&owϊ ieDQ#;,Nc8ҝcYgA 6 `¯0̊~ԉ {s6JPj.Yg|"l}BQzTWQ=2_')OhP !:KwgPE"MD>siW:'~ׄ%h8X'cfarn$bh3Ң 5A9Ȼ\晸rHZ p/iƙK)HK /M($r%>*Ć4U*f(9]5I$+c@;7.vG rB!#g\|`%A(DsGF4l4ħ9ϱ\TGn]MPkV v]r3q>8nNEwtY[sL.}AJxatBS%F:cI4D O+,?lJrXA1e࿪8"ܢbjC5Ts?taS 9 mm/S;3cȷ( oC\jG8;GÓio.`aJq6-bdVM i&HsKm6Ey@jt|M׽Ұh.lBę=x;<ďYj h ]8|#?Umϸ%lWæ_(1A {kÖB[X惤 CGMd5y]y OD}KP+|Qdw.| ks%˗73r`+q7eRʦp-3IxZs7Oj:1 FY';0y `a@O [CkQV{=xYMXHd=[&L.Hd5C-Top$D#`:ۅ@,Ry޾t9!紂9Ig m{U܄z5bLl[j}NWjr"&1oc_=l@va\ܿuV, M#OnI ve`*B إaҙʙn ,FDB|IQ*Wk;b#l(}ۡc S瑃 P48 T$D|Q9Tp KKD1n#&Y\G@xvv2l+N;-R,fډW_6 o6l9UBm[leo7J> Z0%sP5;Y`Qo G!yy0js"H+yWV4%zvUwtQŴ}^"'^F G=hQ*!|M}p‘:o%[\&IQ-!oFzB#$/,' ƌ3`e?a|B)Ɏ@E݅MCEˮDy8b]:ׁ2*dݲ3!pin"CP{n JR`7&ta*AskVϒ_w%1I–sT? aQ/  gMhGP,#byz2xv<xH^NxA1 {ɢtJEBKFbV/[H-B:PNo:Sq#8,`W7B9߄gcq$߯[PezO8w ^5 ̍~#.q)H^Vӷ*Rٍl%׏Co>2)-]>vݞ8ӧ2Ma-M XyVs#,y}%i &]zǚ2/oGó#~T ?$Kz0ЏOl@kjPJ+W7BLn< *x۴лDSդo#{4E#y 6pڀ3]PbPş0WLKfrI?AC23fyl}zY+^a -uBձ9l _!F /rB.oE_Mt*,.9NAo~ґt|S{jF'銗H@eCj|4$E95W$ K2 ij8;j1,o * ![ ʺL_~[);XZ&CbfT,#!>Gj$XR瀫'WW9sŔe{c27 8+r纣8ڼWㅡd<v3EƇP,Pm"G%*#'Vk}w+gLw7FCw H@\]40 `ю ´`l4TE B9Ag 'E a('k)Z Vn3yX091o=6h81c'RI,̿]d v67=f$3pxߍxм:熫2\{ЎVs#{t wM&^<|~5FE}4 BnoPPQ*~anGFEX%[RkeQ;96^{i 8FڇoƍFbDa!2`P|gހfamlf{0"(FQJ.-]kcJyO#ju˩5s 49Eգ2 BI?: kZ$ZymO~:f |>!pwKo'[YKcZhk#8֗(?YhN$M䄸Ctv{ֹM҃c*_Di\ 勰a_`&gɨ |$jǧ]{;!- >)w\C/Ò-J+KMe JlC[Iޠp6xՀW~#խ3ځ5c(ů G7vol52[NJJ!My=w#g)?!>֞eO \ʻB ~It+h{ ` :6JH|QoFBKd$D9滭NCo9H-ؖ,}b) xg7jLQ}'1I߃4 8 ,O,cT96HXHg7gHv6jA K{nwd'Czn,]4「*y63vv _vǵOSAeOjZgP{y}5{Xh㉍[-igh&dfZzUY-aY%(mI`{0[̢1Ktf=w=D֎,<7`{,EPvy-p wkVi%f9&ZB2k5ך`Irτs̚)BPT;1\X~`]ca(a'&iq) YY~^`v$,ET!; *_Ge9km".| .Π4*WExZ/Ha[ m7}%L sbjw]d@E&97 BA*mJlKxuL‡ؚ 1WJ87蘪~gQ5R)1)M)\ڐ+!p* `&:%2paP6Ha ;%v BS,2Lꫠ4w.N*sX5ťwJlԏg^xy;&S[+#T*h{N:_΃!I?vN ~㏚p_]87壌Z7!:/1CoM[wm0:َ[&lccMρ`MVF+&sb\p$K9`[h"6Dfr1KJ8T!pHX z--x#Kt]1sl$l wZp m41gu6ic,x-.w\{7)O'.*˭$mG~]w5Q,:6[:g5TYrzO/YׅiKvq9 4 zCR(@v2~>I񝴋xI_'NҼ-+E%p"~}1&]1GA&1MI/]s/`?)_ynђ|%HdwO\=Z-d Wlbv1XN ,ԫ}{{GxtǃH  8A))do%, 鐖ڜcCPUj /{tG=@V""&:c\)pVT+2 F7'@U)AՖ$Z,<+Ϸ{pQoϗtsQ)nbb {_vOQVB/K^h 儳"(ۨP32QoƑ MUboUc3Nچ*)4b7x;ӁqR,"qP5 -WU)09zWZ_I8¡RYS godV΀M؞p#5LPY&0 (/1._y Ր66IVعqfV.qi9S>ۙI84R`XZċCmzٝH 7ijpq9SXݯrP:Hm4PNsiqlU"Fu`bRѼ[kf_5RP e𲲕=) SFb)M(3ieZM]'8z rO~MB{cr,mPn0\+M+s;a hq%G*%*moجr~w.`-|-u2;(Y.nz֭uDV=cCT-Yo䤓'HGiYz8dlL"@G-оsc6ت aboxe\a?ra"05mw9R#Ypc,]9PЯ",,RD$-;^BPT IbThR~^u!43;|#ZC:ҘmvZ<A~:/-9)K RFNvj0-7Y:-qA@:pc3%7/ƿ4{]؆է-*e}>pUbBJK +lעfj yfB|Tql ALTiԑ*hyg`j؀{HՂå~A1DF2Ih.|iܚH|Gˠ M\KTd8 W,ƇO$&l6'2F/ܨŬ灚oDkTEtag5n캔\VX'VVu9T=ZM]$RGȅO5?ק)pRC`ς&wDN91 izY!;,'UonC% GCOnV92\~c5lSzOp|WB礙R،&9CRxWE6s$_*)klcZʵ\N` s2.DiH-5ZkRG-v&^"˖WL|!Wz\o=Mwck[,=I twVw Z/=wV{leQ~b &(v 9o XGSuiăRLs8>"& uz٦(궫ev2Ǩ#3[ kv(~:/j=:fr p0"Ju{@ Db+WڭVCɦ0cR!j0}ď 16$hrYH".n'U Mb_Y=4(>j7ZX5}L9xTEb$r<`ra!x9,Zo$UX_[?+Y% FRD)@N1;(*,ZX>k$ RU~#R Oۗ (AJ(ɼ*V[ ObB#&$ rxiP]^=\H|\pSouZ5z@Ict7<gk0Ec# TkS:mSuw1Pc$bMyvWeJZ}B£$4Vt^ rқy/5G{ bEi봺c}}DyaW6=0]8Nk WjW8mOAEh%(OOqAo64`Aƌv.s?FʴdEIA qkzIW^^sȾ1G͔fha\Y+L`o%[߸pT#Gĸ$wiĪPL7HuRǿ*wH1LgFw:&Pq&kJu'r ]%ڟ jG/AgUH_T&-v&XVpV'J?Wc}:_'Iuu`?q#(8GQy۶*nnl}/ ~QV7z0 &jx^g$z~,t>֓>OkOqiŐK&ΖUcFJPKhx΃kY]riؽ<5碤_}Hc` 47{12|o' .-Jv,P(T7m\_ؔL%4@(i]kmt+ڡkJp^;"Vgr׻#װJϺ1eʸ22z۫4_$f;6t%<\.\D$u׶@؜A3;s-1TyV%Oȯ'֗cZצTeஒu/reQfr) xuN믳0I!hqg{)3,{c}"Nib(DȜ낐CVi8QeKl(Nw KzT*F #SB2H\\a$.7t͈o:&Y"``>?|4W$P*며~]G#Gk%_\4wD6 J|.xD7 qA$x+f5N Mȁ=r UA(Υײ~wH1IFrbE <=7iM{ Es`;=Bjh`!~XqwWVnaqi4o6S@1TZ#h|\ô  H-O]s-;|p,%roY@_99DW`Ry "7!ȥHgh;ъ_?)īK~@'|$lK"+PSŒ&:[>GH'TݽQ^A'_-pz:ͫuăp12,j%TFɸLfW,OpXqb;FPT N#\S3_oLk{nTC:Y]x ~-B,qO 5+DϩW@q0:fM*n"::0໕CB,{uևNP5Z; X6*WAH]es*N##R7&MBt.hK[.x u˓PsW+mV[z,/9@V vsV$F"5gh#WW/Xn]f-'H֜)fݺ,0>mu` -iٷ-}v޾;|"ԧ\w0Xy4I@)ľ _A^w_p``R佪5P~uɩ3)X>RȤt,`-&z?$*edZ, < |ECS:/C&g}X e['O  TA\I[QDֲf6cDSsVL&`$xUy[9~Va,`DmB>UnoXX/(MgxK"̂Nt*~hiW)c wq6bs >Z}֦IL,uk[  kM~W΅REAib,e&|yP8{[ aIATi ?ͭ˵v9B#m~*jJ๟"3׳$eHk['TD^|-#,w/[Ln$(?o]RLFŽ6\)>Ғ=3"$%u}rzCڊ: 6g_swUb|ZoQe<_\4ZIz vԇW9rZ}{+?v?,+"Ȩ[*Oc涟F%5`V{;Hޕ9QTL!\Ewj 7ﰱeHGCREQ۱Ll[?o['CT]ݜIUߔ27=`8@L,^{ %3-6&3X rZ7!~R𯎡it tt”a'y+(_8ғVpj,٭ ng'/ہ vOl1]rtX*&{\t}̞po{thUQ*TkzȨ/"XBm 6Te9V)rC,liEmZp\=i0 AFtlH6X;?U#a7q[kk%bu3ú?vNl;ӹe۱g 3 \f8:+/7WFXt[~S&ҒCLܖUE/_A mk*(-\5(+*E:vh0",#'C\t$!k">Iazgλ=hE+߈h\[{&}/oA6cǐ,&,/[yt wx8 ty/DXӧrorm dveGY!ӫTҋ,1c[-;7qͨvname^\to@Ik<ûl꧀$ɣK=wD;? <]ZFr!+M"c^>{_ wʈ=[ϒ)V(!j"]Lnj$kIB*r 3ҳzϯ<İĬ 'N},J-|*YxNsiUԡkڄ܈hbJr׽Liq& -D: lb\ *& BwH IwuMhiVz暼PpbrXfQci'`H5OfDȤ)<~ 't&@ʁkE菔rJDxzCr 378J違{4g䊿tAyNVSL5{V%A:^}S)7㫱5FnH@hR|J(6$YÝk m޽M+Fa74$0X"q9 鈸GA8w)A飖F.Io`N1RpdpjX/`RPfWbs#'BY ~Y_Y .{a E9B܊gs&cEgvn}57;yG_2H9 .:JxM֪=ފ6W8feոUh4* qMG(.r1ZT[=TƙV,Ȋ||40GQ[hLZ LXMϭ7鮠tgB鳜Nf4=z`qF1w* 6qJQuA] j+:dE2Gq?}dM!Xo@>߶·D}19h&"Jތ]~Rn)\(MmkhQrBh$MeP8Y:V>#,")=ZT@s\'ppT-CH7ܿKn L;+X6@Zi'0tC"@@nޓq5(6'tjВ76eW֮u6cxtWN=, ȈӍOrIr6\}Zqոְ2KQxι264ە@fT?fK]_c#S_(Ic -]AN]SǽZex ~o4Գe x|#|A*ÁFXaL&'0d>m*_ HV1iٕΛx-)vnc.)PZbRy0[MB6Da lUİ`: VUA SsU5VX%}SϼL6K>Xm c_ }׿OTE {P pvp;}Ak-0nw!vYq'=>D-C/WsE X|ops7s }S^`py?/yZXeU妗-E1Ϙŋfr$$iwi$e; (4=2-RTĠ1D-H6ߑNhx3yQ6lBH5 E̎m֋=Q#ɽppER  7WW`iu2=,eS+Ejψث1x여: ؘNBqek8̫#9v 6 ѫ%I4AZYKkI˲)tLvR^G< 댦/& m-˜x d3 .s e哌R>KLHGqe=cKxW"Y7.Ih^3*9DD8Z~೅I9ѧp`3H?bbuIrlhs#@Vscc!\V$+ft8E8jgxVo.KPx''q&%3R|g Qv:I!+7)L;o uUd!VH=X'qP`洒F+Ÿ1Bus&]")X0$SxuPq pj;5:ż 7cdV`fQ1ybN1:sohq*,Bl8ǯq`bjpkTw|߆XKy[2H9.bG<wOm՝kN{}6eUyTg0#ڳ-IUB tZ{B+#!הq(>7^Vm$ӑpQ|HP)Xx.8C!?.䲝PעLxP=)dmv%ԚN#:>&3 DhU`L'.d"US7ch5lt+uS^Θ6qznn d_`^o)`T+e%YBB\SD$ ~M?qĨХ`Fl;H#_`׭} VS_~*.V}6gp*B{P FTaՕ94T~'m2;?G9_hc7)w˰K1Og%EhLJù&9;Vӿ0TJ`JJ&e hĩcu9BQ9/8Ɋ63΂.3֜ތh]A%5V 3B*> C 1ȑ*dJ$03(ǬLeO$(_t)zH\Ԙ{=˯Pfl}c\ {_\5=cP&Á$t*Sp ozZ!ƕUdhđɻȾ 9اKS/4*K۞ϲpԢ”hZ{>ZEeNؖ.G DY8\|IiES{شve"=c\Y>ZNUVoK}3}LBoǚX9֙g}`fѧ;hJpTG9ݖb$ԪFlL3$~ hxalf3j1>(mfнVZLElG ǖR$zq?[(ы$!Cx A1WjĜ&8ί`@З9'/rM+b)`Fq(Se~TbϚ~/&e%θu( c@yݒH[j.jcOxZ )`A罄ص,0OLUXH ^w7Giyj̪ 7F] m[뭎m 6?Y_&}GE_`>G:YGW 'ÅD0,8y9vFھTU`L'wέY [h[vp٪d5d.;n#{{2[XW>**Hl\i*EvҼp5Uvu$K-R[څ=NL`;UړㄢGOB4l|WmR>*>`w*%fMd3K5 ct%^H} [WKA|;qQmD#{O";ѩ_?eRAw@5IWCH)j bS:b Q@9kdU(޳hL~g`iQ M]Om#0_QMM6яV9J7*ă6͏܄S3Gh+-OgC-!jw#DI(*M#xsbH$C~ .∦aHٍNuP]q@) ro`] FNǼl$BʼnqԦI*֑fR4l(DME[NEtaܿ84<' io`Ȃʖщ|tS$QRzKW}sT Vҝ~K L%v CVP/+&԰cp5l,_6##QETys~#Q=r̮/,9^ b7>1-x'!ǭ|ZRe<DH\#,Vj&FLgy3DsjO<"y]e,5wbݳask4}]b+M) ?7n|Վt88p3AP)zR?B@QVr sɼ+r5tRk@\6lJ;buEK}?%13*mW*acˌYJ_[N¥R+ ph"״Դ?4ZN'vW9uF!˒=_taD(ZrƺlC=j3ϫ˭ܓwcy`gd߮C QƳ#}hS&fmݤ _HdH;K8K/<9{ٱV8{n{ 9\h%\iq;f1azL㚱3#ec*n1TMej!Y\kEff']ead`/^^RyWgM35z{C^+hjiMy—0Ѹ+iq> vMde`z%2cY' ({YAA 4H^2?0TgY %}Co h2cN!IK:c@p1B}LWASIPaɏy-|C04m }:v:w$TfC\R8haDn y NtN16)[͢i%]滷3iDmĥg wSA0c*XS'oZ0gx_6FC_W`彏!_(PLK YJC&1rىpp{%%yRn6+q\̣$n#ܧ\bSkxHլKFp]yPSXC!6T ߵ&HroeI Q=dtMB i`9==$9f|ZQ{V(yz86)DSU_N3 #|v,;@lL3w@fTkv-2JfCPX|]>Z;*)2,*e51efŸdb"4APn|EKl626=aBYf6\}ᦿ'diDz=(sh&ۤn QbhQi, aܝҼ0MkMXKણjM\ߧĦ ZO{HVFsi-l}- w6d磔>1Uք~RPr f W=)VP)+:dQm݁'>oI[&/N9Jlj%6clX] ױNhyYepRⅦ-GacÃ.9ۆѤŒCз:hftPt`wK`BBfEֆ#Ѕi:Ke6:f`}.MPrf̴TQL$kKc&fPkJ|"\d6t:࿍&+1k wWC>ms<=])v)͘Q0sq~(RV=ܣB|VS;hP(mـ57?zp ~}N-YgOпe=:­)jvYQh6k(-/ mն#&K֎FE΅ e^4=l&EVErjE6n/DgjBiZ*8_DemiɽӧۊcĺÆ>[ s9>zb~ T@;g(CN'Ͳ}K{m䬽JUWDT|rHLs1%*,NJ6 Wo oz$$&0(A#wt [_Ӑ?HfW<2:6LoH%r6gGpU!PPK២ z~\}TB౎Kr*_H*aA?m :Vcss[^[e/BG3YcIWcLJp'P ҸP xfdd έ@m:fX+0tUF ې`l 0 sh77kYe=+(X&*("SM[WI&^3 M88P/Uq. |`j/?Нu&_\GF#< lJWEmWxN6xFMt],NNU+:{-\*C^l(%ixuDKl9 rȟ35Y<0g*p EmR^ ,F|M|AM2X,RuIf VMlK{ݑX0sh 9Mn}~Jn=K.~4|r{q\FtL\%dV3IOUv5ڭY G]Ph~et3-:",tQ2c)S`7G=~/FWNdt<"π1[Mme4I!G HσX~uhr@3I|IUoto4-~bLȁtc_b$/-*ɼk < = !)-D5S<'-Q& d:_Q-w6җ@4JQt44[S> 5 gve t+ahxg73, u#VJeA΃{aN`s#bT!SR2pU[;pω{((L:dT g,bCylwc'Xkk1a0kUפ ~Ns[r),UOp0j%s_B ,u=O 'r"HU7[= wu6,HAi28ecU*$o+pb'= =]Fv~~;ڲT5B?E.p(sF,{'weX[ *8f-rDH5Ű 'R1}MQ"d_؎a{}]pF"bWi\l>/G+Y]X^ؕ{e2ŗC&JZO~]#O4-|RхmP#;Il}l^e轣m";NR׆shB|(%*^g_`Z}0ud %lHw^yW4HA/`9>X&k|~]TmĬG9&o޹.A?dsR_.E95J'Z"AX Xo7;1Y+;8|~KB~̰Q"ڨP*5C⪔1: dq~D2t8kk\30ӧfH17jgs in=_>T.GoL*8?cc Rt9Q;Tzf6{Nl$GLh;Qv Q(z4yPs!|pʳG`wP1^P_2Lep.Ix[r)c?*.`a7>=1x-LRۄ¾>*/_.=g_6Hy-QaYّ]p1?G%f,4$ #@pUnclS}7 ia$LJ-z"H>r ;*6+11Gb3~%+ZV{`.ƘxzRfc Ż=>ˉaZmQє9yDA&m|%WsLX䒚7 ҙ\VrՃў"&:iT!Y-BZ\~-ŷ ][Qᢡ*s C7`ӫH>c%:Ys_Eӑ̃p`d)dh˱0Wp.pi[8s ,a7%mY Bz2!Xnv$vܘr)PnW,uvQ'UgW3 $Bkr zDZCk Pm-v4ɤu|'ٕ" m mݰt?qixuԀ@b7 Lej ^LtKLC+5o*bq6x1Az8[=B\AE)W{C}TT`sa.31Ӿ.7o93m%+ YA퐟j4e/j k.t:p+\/{%L&Reck$%@L j)}<Ė2;*P.=IfPuf HfVNW ʼ6eqs`t E3v«I졒>]W/Ƿ1z9AŗN+롺8$;΂6q"s]/Sx("ʿbx+A PdZ7i!X3raA& |+^I|⸢pȽ<'}Hcur7UV9-kJUe.<7GUi8PSQ-sGl1MqLSjMU(j>b  ΌҪ]U4U\J9RcF2U10i10 q6/!JZf+ee>.m#5ҿAZ!0!! ]&m-{y[E A%Hxf>]ˉXB]knoG뿜jp|R-OWY-/Z2~ZRLWt^+q3 oQQ ;Hh) +t3ZB97Þ5e7n!.<(z6ш´~5Z9PmwNZcO\ֆ1WlRNK R_UJ$ 6&Ը9ŽB>(&V+#~±K]dV{@Bz1K g[ h vhbK[ȗIN꿉K߀yh4)q+\?AfRy? ^8YS`cZ[Ձ9&Rj rMIqYCAVՅ'u'w˷ /a B͸͜ȅ\5.<'iSxGZDIo͟ݿ6qƍ 3 ɮզ}Q{w^B (b\|+E͵ǀTeI[6doMmYrEg3~_rE)8I`:D[M0s񕉞~Ϩ9]u/]1.scJo%j!Sp(S%٭PBM3E6o IC7wS\חoF(06>ݥငŎ:0O!ΤH gDv;&sS[F!K$$iSdt;iG8wF= }ŋ OW6䂑iRZZeRoA7(hrw # 7qBg97jL$s%e+]pYm&ՀoQ<2|r6l=0x&[Ȁ /޼az+xR:LْU%b!+šDk,582:ǐ(1D1Q:l[Kq=l5$,1MkBB(Å6҄$ҾGcAM23B#H8Jg^V(d]!rLLc$: ˜<ФpO5ǐz 1 _c۟*"'q%4<|JBjWoU }dΏ8c+i4A5w^5,w#Y ܻu±sWjg!`jo.)ej4cZ= MtFv6QJ]`Jndg|9$r(@Tܡ.栔OK ;1V}BU3iGޔHiï~NfB/Wj{SuaBk/"/GZ,,=/|J/čc&wGcGm*H+&mKSX6Ɗ=2ZE}|Jpv[V`|"򴑙>,5׏UWڷ 8ۘ L0M3Zr$`7l{(US_UެRPNdįvEuC+^@iޖ7^`狠 V4a3m2'-&/@ M /E;{i4ơ=6 \[&J"=iЀC'PLm ϳJTM\\~f]eߧzuߌq A5X0HtET8;aMKY ZLl;\;@"4Fzq[ rt6r #TKvkim>dՈY2/ \ Cוt1` P&5\f?Cx9\3NdۇP Jnky _ }ߺW :no`p_*3l3+&]tm]RWІYZ#coк'+فE7+_WZglfQ$*vz` a{%io:6RM Te>,zz%0ΦH@upB${1nي]4 C{C)uZ4CAWvSA74HtTQU9!O,#!qʨ!VYljEK >El:I#'"FǎOGG Yg%Yɖ X~[@y&fm30;J>w]SWP] Œsɴ=,cS=Ni"{*f[Hyl@&.ogaƖl6x`B0c̶}(yeFT1HvD=QLS׫, Y2__\v>'qr?}bPKN?P+[UB54LhzgW:5.Q7m2=biE̴$~^) 9r;ay-G+A>@/*bB2ƾ}I@#%0p K8]6~uȏVBoO㚅>0~s+#V;MhDyhPHd3iTƍoxLš98 wݤn ~{4T E%d_qI뫅yj$i1ߦWc- .f!V6ؔ|6W7 D3Lm \4Nxe}]QXf:Xub]b5C{江w1zF2մ7cKfp ̰vᘘ)*z ڮ~Ҷg@{xזA)0+F,!K~qg}xQs)9ern^>gCYeE ߳ [Z#ҝ tJ<ܒskEj_*yJ\oAu_h78qjAB_y@v^XCK` )almX(Dh+j*_Pr6ocN7Bs_{h?n5k:@ߊ/+ IJ.-[HB|a|$nu:R_F7B;o{ 搜,U4cZe5(zF^$<ۓ#s&drCJj2RP |D˪w~k];z?{{БDWƚ"ŇTTF77uuN| _¼~0pH >n+3顤3i{X3Td /ky20I;|bKK8~ %%4D ?Vp:yvA)b.B9(*bv( 0xq7;\אW i't{6,&ڌ?5n9%颾,nS<]13[\%]]!t^}2@g1x2}z&Gl#MC(*mGP̜9hfT9}8ib\UEEns똅<5r' K2qcv!w˜eߑz@.LQ؅Yn[";bќB0}JAl7"꜎1 EZ3H6w|<&HTbdRk=KdnW<:c> ڂ KL?pf⁚a}v\a KؑAfY:& ;z'J)Km/д0عřϹޅ"gxD-lHs=v W ?q- b(#ח1A{`E`" ,x(&k0b}E=\>HٔIߟVꩾ"Hj.zs"p,\{|YFJ d/JpÕ46E:Hh!WaV1>Q)F`i:c|?1!5]tRHDS`DDar/!!@`ؤb$_K[03+]WQL*AZ E_\l ?HԌ)b\da( iPeG>326hZ@ʹ=oz%w7pnV}B]R5tao' 7gݶWX=Y^.o&!𢺛խTN/M 3RMv7WT'q|zsYD(䮌B+|IB;WDrՀ3MAUnԽN$Kߙ24Nsoă&-n.Nŝq F *eOQKٷXccIػIf= u:w 7eō^(Ã돂̱VևK=<$;$1A+5GF ex-GXPs ;5 -aq!(_7sò%[$JyҴ;=SP*t,qm|c(`g!~[bF_'_yZq+G lZF©r'sS 8ڞBV=7>57x$M 98yvJyO9`}H aKCkΛ[px@laDZ ^%dJ8AUY岛TOk,WJV w?nKS x@[H63LnO=Quq{?eEŃXD`lkcMV7 LJ`T=m'b f b6u.HߟSh֗"[ܿJ4H=\QϢ6Bk<%EPk4ZkX8+q(;7* =FlȜMtٮp]K͛@hPa7&$j:XB*K XutUGRd9( J_EapC^j.yVsqzii%r[y]r~ꖋf8ja-[~0+}ᴨmfЄd e"njZg)BHl!e#&a{ړ ~.Π=J0R_{l2s@efxZUoP6pvgScKB8w7]pLSBO *LSoZ~NLZH0>,X_;fUfah|c5I6jn&\m{F' KCe.H[ٕ prΈq>MTV\WwWÐE$HvTĮ>B.һm?P)/2y' ozFi3E Vv3{{;{,$#^by" ?:Kyk v UٍW DA|sė}[KOV0Z`KN~W塯z(V] < dȘ~4Od!Bmp I@0%kuĚ[~ Lr-2#(5SHG6vX}b4(W'*3s=F%yw$R0D7L+Nv WAt:8׫ ޥ!&p6/y]Ir,iљzʌZ+!`**;=7*j]ga0 hzp^Q_,5EBWx8òp%O B3P.#D#?hU:bdk*=׏❁x8(Lb%0sفW֠cBac H X}c.He?,hGғ=a0w!,*z&dgd9mNiЋ׼9 R\:"UAW0 gQe5`^EȞt΢f7Җ84^\xV-SVv(SO 9MQ'!b$y[3wT^I8r0\γŘ-ysQa@D_ܙ,L7yG%84sζ#@nB`JI#Ž"/(8Bnu ܕxA,<%߈y}[+~eUrUO?b(Ǹoq]~7Z?2^ ڱX(I*65}VԣnBB.SZ-)>i/]-#6є=i6?6}FD]}AG$_HA ګ