python-rgw-12.2.0+git.1504118058.706f78da1a-6.1>t  DH`pZV Ը/=„+-C?>8 ^b1uǼCn@eƼt mKƙt1.ܴ ;7B!пH AidJ_nr.$&q#0mD K.M/a cųO =A<Մae5e71c7fc3ebc6f4ac2a9f8c893fbfc1218ccfb :ZV Ը/=„WYh%K*_(Ce-6,cA0 =w|+1BdKJsňL!}u]e>=d?Td . 2 [' @]nt|    j p@x()80K9\K: OKBMFYGlHلIٜX٤YٰZ[\(]@^ژbcۂdeflu0vHwxy zDCpython-rgw12.2.0+git.1504118058.706f78da1a6.1Python 2 libraries for the RADOS gatewayThis package contains Python 2 libraries for interacting with Cephs RADOS gateway.ZVnlamb69!openSUSE 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.orgDevelopment/Languages/Pythonhttp://ceph.com/linuxx86_64GHA큤ZVZVZVZVZVZVK438464bda7ce30c96d2610dbe9bae513e16957f72c7e483db06be69c7595293668b329da9893e34099c7d8ad5cb9c9408804be4d1b827ca413a1e6190228fe647eb9eaa70b3e87cae9740114cb190f1brootrootrootrootrootrootrootrootrootrootrootrootceph-12.2.0+git.1504118058.706f78da1a-6.1.src.rpmpython-rgwpython-rgw(x86-64)rgw.so()(64bit)@@@@@@@@@   libc.so.6()(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libpthread.so.0()(64bit)libpython2.7.so.1.0()(64bit)librgw.so.2()(64bit)librgw2python(abi)python-radosrpmlib(CompressedFileNames)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsLzma)12.2.0+git.1504118058.706f78da1a-6.12.712.2.0+git.1504118058.706f78da1a-6.13.0.4-14.0-14.4.6-14.11.2YYW@Y@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.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.2.0+git.1504118058.706f78da1a: + fix ceph --version to say "stable" instead of "rc" + spec file: add python-numpy-devel build dependency for SUSE + bsc#1053836 * Revert "osd: adjust osd_min_pg_log_entries" * osd/PGLog: write only changed dup entries- Update to version 12.2.0+git.1504013812.01ea30bcc9: + upstream Luminous v12.2.0 (first stable) release * increment version number to 12.2.0 + spec file * edge mem_per_process upward after seeing some OOM-esque build failures * package ceph-volume man pages- 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 SES5python-cephlamb69 151558692612.2.0+git.1504118058.706f78da1a-6.112.2.0+git.1504118058.706f78da1a-6.112.2.0+git.1504118058.706f78da1a-6.1rgw-2.0.0-py2.7.egg-infoPKG-INFOSOURCES.txtdependency_links.txttop_level.txtrgw.so/usr/lib64/python2.7/site-packages//usr/lib64/python2.7/site-packages/rgw-2.0.0-py2.7.egg-info/-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:7651/openSUSE_Leap_42.3_Update/bbb3ebd764fc3038a278d3fe4f7b12ae-ceph.openSUSE_Leap_42.3_Updatecpiolzma5x86_64-suse-linuxdirectoryASCII textELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=cc671e8ae1df08bc5d8321cf9da88830166e0415, stripped PRRRRRRRRR O$z[.v?0] crt:bLL'It:%mЇۏANuĠV8L75Tȟk*70$H$(hRGdg“^͹x;g&!u_qy!!􀿹S4Z=Dxv{ (.!u43ɢ a0 0HfLU`e6٨Ef识GX.:R 2"dO[l_79v[Xn,_ lLݝz,m25*g7\<5q>MMw5@:ªP:ۗcsf 죦=ɱ.9Kqss` 4KF2!5p vϮ[eYuC@ep860FQC:-;}0^}-.mImƯʂ *8a'YS]׈hNrAR -VQ5x\I,IawIs`;̓*Nqөu:"t$+`9 5yk>4 `<W (FKg"Lz6w:Uky?x$2K5[Dw3G%NPQ5{P~V?J!#Q}@NxIXZ] hh~o!7 v,!a, $e3 C`r$8ڵhf&Jjp;M/ <=rBlng{. >_-t9 Ӊ~avOaSm{U;ǖ῾ xfmy%gƾ[#vHpFO'=8H@Q^X96y h֣UT1t$gbw}OY8ά* .l6!Lmuk7i/(5B՗a@qLEWB99Mm&'0;d%aFGV 'r[XR^dHS$ik"2UR@s/ &}0WMblˎ(cXXZHe,[v #Nv}YI$Z*:sOڭZ9k-~UJ33:  y 1sEXr p\z{9]F _Mz-hѷ#|Y)Z=Ah%[{aySeӿ?'e^KdR5Qu,~ܨjń:) ~^7V,Y!aJS D 4HkG CEBor'!lL^=`V܂t;'tr5K@-aGM};D5h2`1 VFa|] yV]qkIm~pȗ֨Z CosylsaV7E.Y%<'<81!>nv!j\(Rc1LAFqhnU?gqkmL"sy1 ,nc"QWu^7~{>ݐHz +GWGL- y VO8j(QŠf eiKpk<|Ng)WϣH]0jW^bE?jQÒh6(̉IɗK xb2C>sO1I OAAiƮdNY)7,GN7^OU b:܏k'ۥ[Z Wb1!ARZ7SIrC(#/ i 5ot7): }F?|0h8 ^! f6yޓ䣐}]њ෭$P VB]ݙ!=MR~4qJ|*'VyД!Izba9uݷ`gp2SqmEWE~\*6l4Li:,6$ 䬪VFs5)E'!/Jۿ a->ׂ$Xǰ!ǶWA"u)$|u֒Jhem]G,d!\jdڋEۆ:үs>xfhSTKܹϦQs;>\M+%nH=̑1H1WQbД\dړ(RBX߸\ XӲ >S?lDT²H;>E&5ND!o#[:N+>z΅xF+c }%?h'.Mt ~!/nZI*rb+M `1ĥ 7 xtllšFaWTIAi>?\?u.r;炉g7$:x6xg=5i<`nj# ,Ⱥc1@tO ݴ]$x=e=h#"8P*] w[`s5$w5FM?[c:'E(+ V˒5J7 n;kW 3pީa02;:☙ڻ%? Qę|ei!d.y,1/|nIaA8&"%B&B`ATM(#'bg~<]kRݨ {:7> =/3m5BuYF)/L9bH=VK>j+P;V TR iZ_Uĺ{J? I (i;;tZisҒ4S8ϐ}xa"fh8?> 3y6:2 'ޢ\0f1jFCWN)$@ :>l$bT,=FƴPqՂCqIv?D$tmtB0wn+di`1Aŕf6ڼdoV"xR9cwj-L ^"Gvg|Y)76B4uY 2GA’dXş/FSgh,n0ȜQhxc@;mx*\x-$=ރ"׵XOs/|ȎdDko6yb70AW*} ᜝kH`Rf9 %"G@Ј<(S>U c##Y)LMeA$w^jBH0}(a^\^ܨV)HMW ħ}=[lF͝h/O/h:R/ c{٧l_%9v xoָ͔6"4[Ƕ~/Ŵ(rFxZɗHDYo6rb[FHkUQ=wGLl s! ԞLX2v?6-7f̵k}afV_B?;D"xv>~.gpES6?~^a1T.dg4^m0_bu o9#˻-A(4W[FFO|yeʵTmѫC"҄ZhF;0}L>-W(o 4Пpb0$0+dFliтQexMP7REhH"aBxW6xQGFA i+]wR\dRz&#^95ClQ>\<0܈ H-WM^])0_4QjLzrUc jI-* iM@j3|#>Filp"[̣=eoţ Yǖ4>"3o-GB#ɡףQ ]N LMf%wS?`t֛@Wq8*'ѵ<@ECEPS-'j+K 5co_7Ru(xQn}F@>s BNb{IWoYP*J.ߊ?Јtp&,\ؑD'o%yO;UH&6/pOn ASJ!V>@ZFdhO^u?<&@$鑟(lzXnɆܩ`^X9 )LT㤊Ĺx#y/8xڥׁ:{"9YDAvpkpn|7赱-EXZa)ryɴwGYG[Iyb"@O(B pu'%A\W,~ͫmg;^1B?:bI$*xktbk %V:ıhrbc|$8J477{/],3 x,XιmyNՅM0M^q"XFH+)ZԘ"(ƺBm?L=N6vg*yϹuexV 5#6d $ps8x=8j<$TŃ(N!euzDR:&C M]>'.;j6*2RDk**> O}b䋀X{<`ڟÖѣ~ :i)  WCЮ_ rJ9Ʌ>TjXhZ؅@YyQG&Iw;a%yV?bz7};*|)>O=+Kq7JrGX|Eވ ^x̫P|LϺDݘ%zIA<e(P -YL<׋>?AJTwמd6; W BdyQwYd,{[@g+*I7g\ʉ1Mx3Q!GSW󡓤R1/p09BJȳ+˗=pN4 u`; }:Z]bס9f?E(ݑ}NW-eׄt̸ubx{5 [bѲshq5T1=1)踩>-%YlIveP>)n 5[93]$|b$d1oƸNVd;A[e A;Mc?Qb}eYeoBJz7?'\ |zkt\m74)cjKb/LOc&)QDQa뗕Rϼ6ceVgGQ"vĺ+Q;33I%&X.LO*?f xbi_΀ԡ}ۅa,Hck90UC2 >K..ڋ.uhӨu뵌%0edA%PÿYԥ4sZ s{cwG'P"eϬr ۤ/p+]B@,_m:,fYτy LEYNU"XKL\ FOO!!v)幖`!=Bb8z'.~[{oTZplWNɏL4.+-b130Z;{+UQGHg#S9x!?ʵ-'Luv:cu$\fn`w$461NH7-yyQv-H T2ߌ"&>Q F' (?s9RW0(t%9DߐC5^EGyPrQh0 gc8 WM~M^/J׬^e qo=xRٞs6:fH#F>IO4a~US)t (bf,)NIaIX=Dv`6يM@x(3?,EQ*CtcPŬg 3 Y4w7l*iҥGI8e pLq>?uiFl΄ɭF-<2*0\y Sep9I=R5%@( Jye1-; X sK~b?swy_xgg ~xS(T32~0-4xHj<@t`snel<s;SLZb.ȏ֬^VbaHM4d !]:tԤ>Ri:HVѧd(K_l=z9x鿐eTgRК-Zzr둄[wAFT" ^NZŠl6nX7uzX;PW4Bm t|ԙ3`@̌7n2ӿ{Oʘh1!Cgp`ޝ/U-((mg5SκlBFb'mﶜ$ cώGlkk^泒QiD5*䚄c=Āe>࿋>|j}SU'fئAEՕVŔ#짒xn:Vo?.񙢂<}lԳ+9Ҏ8 D? npF-0CRlNErΘ2S2_3]REe+0ͮ/*sQ*TgWczFzݤ FD-@m.~BS dW{w zRZ]M#Gr=)uMУ bQ< 4zXa( `˙VpR?fG^K%GwG/40BSҷi`Abz_5 a8lCET@ri,%{9(rhAo G4\ٖNW$$<,Sq y_/ڛ_+֊$([FV_AsփHR)a.7 > GnmɓX VDZd_oN86ڻ[mj[L7Azoޢ1Ԭmfr湈rb{?~nkl_Gs jc,=w(z5ڌi-XXw"zi`w<,+:Єbg 6P e.VH6j%0jl'J ϑhl't/sdH?r-c,=j>>޿֍{tzIa H65r%j"P}q}?[NeMGŤ6ƾns=fÜ%'CϧvZ(LDm(T=6<׈' F}rmYr Ve9'1<i /QYs `@em1OCVvb>/o<]\Ai.A[ ۲\ hê3Qg"joD\pQ&i(7K,r] )Ҟ wAFw|g~? ڜ<^f~/FZtjL5Ö'~Ңƕ!(sAX(Oڥ(+a9VeQ<7zzo2iTL4Q2KI}|%e LW{KoQھDtFG&)kfHڄ~oM_MF9&ikuOL% (mQlNI76Wv7xZ\­΀@d>foؖ*Uw-$ "z|ѡ}߹]a3J7XJX'B=L\Ya ;5ocy+h>A˴}Ȋ$uңzu1SG4H əMA*;̪-c_uD٤{ O#͞*LzW$főGSD۬.kDĈCIy|AH&kD[8`ldvc6y [4M x+Av럱Bl>%(m/5-]6ϟ;d oٶx? &ԕE).b:@Cy]a1F{(yk Ii ð؏C1&VRӳ]il9ȴ.h5^SL'<$!{mMя3l=0* IbƏlacyT\|XL=^ˊz%Itqzl-Vb`ZP"@lV)}/Rb4JbZoE!<>yO`<dpf~ym3gUyɍZR/轌VGw͚̯(pnɟyN=[Jwp_5aH++&#'(ɸt]IVP{\]H!'A  Tk35NΊ69_:Pe! N=EnP4E ՜e&ݴ^=NAgvd s$[T%kuCRF=u\ # }6[dC?6`F -*,vtu_ 售 = N Bv}+֒<鏳|"7yn9 -{+k3{zF{>سst:-l/!F$(VsW: x ^xPΌ5)8\yMs'M@9^gaWNV/@:Z$2TO>w^k5!d.u3?Y2\t\I :@Q N8JGB:acUJ0 o\FS.KW?x>[ [;?mGi]({uiKX QB*G7`V!-TJ[2t-7R 6^۩, D? gN))_SRKV;z^%CM/T^ۅZGަ,hڢ8 LSEN~olKb2[ϿQ[wIdQD?5剅̇v - '\Vk>kwHj yYI?*0&&wJKX y:8PהQp[Q5:ЇQPJwqN,j'(<_/ޕ4%g.0R%6gE0(<fKx2{u|ukŠe䎧ݪU1'oPr4K#F]DA ɳ =ekCG~} >yGI2' JQ|KBlplJr1wu2}4|z"-]Vv>ZVA~/o'_rZhdHS $4|a#os7:zxB57[=XK8!dyKw64 ״. ٍjMs؄ðyAjmX'49 i;2*><foKglA8d!?\qi 8g1g;5tpխXI5UnCZƶÝ:53au!ܜY3Nn-G3cb \ P(ƓT3rȝ)pф~X]}ot |lzw6@ݨKYa GI㸒/F]No+?Ŗo & J?OU˵d3; #H+Ju;8Q) YpriJTswdq\g+rVB0@7+޲68}fCmRjx \7^k0ZZVu?S=>x7I'_{񣌼YԢ?6v7JF%CfpҲT]ZP (s͠ PdסzU(oxjI)M\r{ Xe[r#p`vrWl~yac .6\ԖGh&^4Ylh/oS@СPj<Y &YEj!";c/cUEQ meXbLG/:Vyt=l+y1(ë]rlH7 P{ V0^kdw8gɟ}^o9#\\~V)L0 ouEvJ5[TO;qN`ߤl۲-Nۖ#~o:etYf =al {a" <t^T|ޯ -? <=E")`>n>䧼L8<ݻm:ɣ'/oѿW7ZjE]Vv Tᐄu.qkTI L{3YtzDZ6N!{U>1vt/6}5z(noiq /~  ЍoOl-pƓ [E9K~Cj2" LC~Z)O~5Y%Ad-wBOMr_֦ y+LĎ$ Yư4 aMr+2J%~ m|%=7<Sq=97?n[G,O|(>v 3R%}mxxyWOwO)J=TKtFR#!jS̸ Bb$D h/ @XA̹׻YJ`4o5)' }NեT;rpFNn(RoB-7@9@pl;tJL$á\FA  wv%|*G(m/=GAnm?>/Hav+fFzH<0.YK@W6ŻDD 0|w#Qbi qpꤙ\sR'uy;&[wFn˥>[6sgcd<;8BuA"7Lt.=:J!:8ڊ[l,k.euUu=U,e%35"#)|H'Xy]cˠ$ i`4So"Uh֏<6m7b)L26;hn7D YQ/<6 $M)3cC!E\\%l]MtTŤoԺ^C=CalK"]EVb?9lW\ EhϜ::K(AHVMM7Ӣ`6& |")ƬpEΙ2y<rO^B#\Gӊ{u,%v_cU*进 u5)>(5 J,EްFEׅ J? =BmZ&p%g k0>Q$C'va*N1o1.Yikt56ޑ)'*8Tzm j|$;,F@f'ፓvubOu4YkMl>916/̰+Y?@9gaJ$e-+෩bc >j58%R'x?qt@|>/…t; A <\!]5۫h#BI/E_ީC# %rZzhL'V/fЌHbrB:&X '40t,AW0~+Pΰ 7W:ń=d7PgmDuDo j}0{Ñ$ͪ7N{V #RRs&N72OK]D#:ePQdbDH|O?S86WMt>T}FYBA˰EGةAM\%+8$7F2Z1|daYIKyQK0Ϭ&:|u^6(\tIIݾvlSfn($kEx)pݻ @ :YƴN ݪZL D! &:G?XIa$sqd V8{WʙciigtmN29R-LCEla%` }Z!w޾fU4 ObjVgZ˔p}3}PGG+rsQiwhĦz?eTU|[֤נ6eRf#&LBkwIS#X]+K<ew)˶<-fpLϑg/ J%qq}4 o=`i\{Bey}0US?8C?pyǪŌ*LZ'>Ň9F]Wrxp t͜8nXYXCot~ F'T\Ůdjo4\od\ xsΪ@`C{o/)ҕ#gg&F'ο ^/#oHa-Qżܢ]O߁ke!ݮuZN,[5$^BOP֝JQ%pp"Els2AM*f}1wۺ!;J2fgZ5N{^fv͵czbupE J۷͆Z|<>[lA׭tSwKJ>HQ՗lj0 {%₫֋dTr36]AW3Sw'TxD׀9h%~oˋ' 2_ƥrji2`%ds!$اiDuL<-ɳ|X}1Ql!&O:qHQF^E43zr>jeؿh,=CTDJ>'̀0֫kIN2{-M 3bܯr&]-/\]Y|*~P"B)g"ͿSX힔m U8n 3ͱ9c@4R=lg\<m0H-׮$"iepnk_,.կSNN h_bKFZ7 uⴉޥU= oMNߪrB·{Yܐ1Vd'5 o0^™#z3-U;ލ|aI=Uo&$___gB=QWYYTi=´K2y/#. FW){脥V>e;m\-Μn_J;u:=!Q(V},7Ww俚:*m+ fWKz>Y),D^XlԃىCsb,ee3zz^DAWΓY]EףBm8.5AJMWy'=ȡw- +\+$baș6I5kmDObGYywԊrESOhelsW1|6R?yfrHtM?ZZcdEPjgi#6T-G~?$"5;AVo#z/kqi LyOZ~DJSh8]K䡽B[HDl1ފBrFuȞkhoXtp hLQړG0܊5~qH+EF%}Yo%ڮan r* Lim ,KZ7ꣵ/F¬I#&aǗ2d;.+ޢ# 8,Q<X=tN~jErg3\s\OsSʪ=GtSTxuE; \Oh#Ψ;^{@$d~D/ ׽ryDџޮ7?Ple 4hwRsWU6apu) I:|CnCar=V۟܆6΍Kx !=HSU腤 *~L/ AT&z}V{zMu^U~>\e%lx0?aZ5˄m׭c`;=>.lH ]kk­X{PUS7mj |]A僛h=RBM(6v5zU>'iC֗v$}xvWtIwWm4 ˈljec 6̯y`/OGГ$ є~L?(dըj߆hFH3[>@?*iN@)-S꬀곩8irE,H 1pMZHO! WF-Q3IC_(J#-(˺aZZ8EqbdzTR3$ʔԛY:ߘ'ʃ!3.DRkY|.?Žv ub݁a NM;9  G(%pe9tE1#aoK3~$Z^(J׌sI*Ȁ!xƖ/x;ErBѻͰO({zH>ۑ.irCũmcJ hA7,vњ[F_!:Y+2s$W̉ q@gh8[6<=8CdȓbguD^Ksx|y4ouIyd 2)ގ BejO)]+X|Zc7 .Aˉ$CC= {35Ò ؘg{O2(jBa%GvmRjI4r|vKBaU BMS=L<8GLR軌5L;Qu2\A cj5NT,!+;ep_h:Ö}DF $´v MN1L )nYSdE%ц"Ik䲟.hJ7@r~߅w⸗(D0wWv:vpVGk8ӐL_j,:9MOOK¡Sf98V[H֗tŇ $T!z즮MF<rTT0ļ}YL0^LjeS4x؆F'"RŹjqG\I l0H,q¡u.yPTG.XlOA07+BǠh@KGv=&ɞ)>+v8:2a8RJG 9$x}AhvsQb&A$;A y\'3 P&r&`(aBv==x7FV?"8 șq .I^^\q>`Ž@icQt"7™>Har1mRXa$s X}@?M_gfOy&)8DOp̦ y/uA^h瓧mVi!j[{"2P<8)|j׫Mڤ!]MŸ{ iqT'/@af`0OM{j!J9AK׋^׹zyO&/HAQjK늩rU7}J~Ah4L1U9mal8PN1w) a$ɃH-ihjhH|'43:bD*~#eZK2;lXieTrh<`^B(UL×!LSh]>%wp%WHQ'6_=Ym!n?%+/uYf5J'퐣GOu}@D& cp=J_ռp 47{ m| (D3:0F?Whma? CJ4T+a!Rea-t;ńQ$n: ?o[.ʾAY@??Sr-ljpձT|l+9ژnV@?Z. HnHnҳ Jrvw7PVXjӾF[(Ǽ:i?oySDGDGj+ua˃.-vMD}3&Rfg[s̯'jAgW @M]B 8w}Vb++q oy`b1u|y+=Vo-h}_8ƶBv;SK8.0 p k,)Py9km Og@&aESabozs'3r`r +NzjZ5]P32VHSd&^)tO5jD{DҜ_s(5)]/,wn3[$9'FOQep &x%,奂$6 7!>;jn&k6_9_ XgZbfkFDh5:dr"9Ɲ;|hxJD^hA5BRwJd L=>6xU\gFqpIt^fb y=wҜXsN ܛ)| .ttfàZB[$ vvX)FMi:4ˑYcrYz)ܪ΋!'h`rB]nob+J!Ֆ7SЄO!w٠QFi7Wr:B!k:^_OQ<ѝ7.t9씭ZH^/(M$ J27$j:鸋&/FEc*?}܀Ȉ!/Q r({-^}]8vn1=TULH5+f !+Țk)1j'Xy $Tᷲw'zZm)QP_QیwY1NeE.E3ۏbl@{i ZR8*b MC/"/l0Y-5#5pɝumx 6<#g9H ƔJW8~ox6O@MRQNL~IӁd_ X}Hpb6s)Q~PіAo]YS]-UkayQX hASŧ\Et3fT ۟'+Zm(KҟYkQx ˜-WoSy׾Y<Jt~yy.U}~ae1u(%!r3ꮉf`^@617^Pz"~m9)|LqZIyyzWe0Yxt5|iXD&E<*Xua1 [m j >UDŽLeHUj}Ȗ8FO3M %jS#|()oZvGib9=X4t1쀍oAq$)S:zp_ƾjR>U+1EM78R,!BCs b1 5-neZ"ɫ׆}~ ݁F'|݆D}ոXΦGys#Dț3Fw߈ ̃6Yt~ FǙ~XHOG/OoeQ{ޑ %af_1AW[ǂL(vsY,QF3T/tlںc?jʷ`5 5|ZXI+?_b] `<} ^:3Nn`LHFV=#d;O-(g/oڄE!Uw$ Re9SZSfP;Dxq6V̄Rrxr-~rQDAucl敨?VM`,z$&P6ێ7+;E*Qu[=.य~/=WeZcئ az$|ͼdu vq9C02k;j i,HNTK%}Al9`v>R vv/Βn{ 6F#LMeuxrlE;=l-R0xOAHW _#N{wc9W>j}ɸԬ+ǃ Fزs'׃[jk2ڎI9,NZ 0:k3_zI#| Lզ-^j̘֗k=Wӧ"lT&#WF`I8:ԅ_74O˨/u{cGroQӯw2&4^T(8ڭPs]+iˈL !JVMwDwP2~j'0g]LC xw_ZaOKlm0Swh ԰?2Av VZ^|mIin` nnD5RyĶa!m0-1[($hpx 3Z/צq0&\M.Cz$1l_SiUH'&kX\ewΣ-H{[NfL Xyi,̯B튮mTcK!K_ۖVXj+[0𕺜A8U1AĬ'ϙhZ%bS2_GQf~mz P_-A] s5^O1SITAy u Z R֘=xƯt Dt3e"h8|![$gjQwa'|wAxa%Al$Nf~z1e&aofQ?+=U)]92NQd<'Sٳv2D<25\@3r&5L@5RcլB:ۇ' h7sTQKS̕pZvi)|۫ A󺇀g嗖{)='-DR4}܁GPz a3xaPVJ!#"X tu+LEwYvD*[!2XhW+B^z)NXQN^\m\ǀJwHGÉZ Nw}$OPUR.&5'1#TLW[#]EE](w@':t)n,MaATP7,k6 BK[k8aTj>Yxio}6sjYvEO$'V}_ pEarU9#oY5=mN40l.Г{A4Wr͉%Q D-4m=ȝ.)'Y;ˬb]*]3T8inGfrۗ0xjB闻Eg)*JTsfi{v>vڰN1cy2 SJy JFBɷ%0 &L_\}Uuvލ,}σb$7Z}$v""cX0:a%2b8QDQfRU9.k>`7U:~$Yt/7oF(}ELC6-"G@]èz4||^ZMen3O0$P/ ߥAGr؄d`Z(!(=g=SuwPx &轸bFP-MO]k\x.ZF! d% Z K(@ B(6jQIL%иj*]wp1ÞUjr!Pў g IU$$k_̰YKƏѝ3Bб1(̑l>vyU#O)ÕR"؁jap Ԣi4?ew "·ʙK^`ĎԂ_cX~_k9+ʘS8ߨLSml4T;lwGDBDbTfPi轃 ܤ+'9yQqBߌf^ՐubVHُ8j-/ p4pix{|; 0?:``Bڛ5MĻ[3Z!ZTvefu0QjQLkk/gYdTGu [eoIPGI3M4V; ٗ*XD Q.^ǃ nTˌ~Y]:#ipQBoUEqZ^%HA++}>U}ÓrP {5IeI ir8_%>ũy?—cl0z>%,o?mYJѕ~Ob[uU)D^v𞐨" +84kfFӕ fZҘ vPrPc$'W$-\ `%2?<4'g#$D!OSwrbCeA?HuTT8µndg/u]@y;I~n/sF9,w44ېh#!|և3>08$y8_/E:;-: BJaf6+lWҀuwp"C%wUx`<ۦ31JR=mvjNA`X#t5I0 iow0 լx(,`**agWi1!H;ك<ž]1e,&ZM&b6oy!4+Y6h0 ?'oU9-A#HYqGndX\\ {v#wJWb(7J\Y&kU4UlV*6D'hl1!S[!,A" !C{`<>[kx2,nnPOqcs.b) ،2v{o+ǀ5:vGy-1I {Z[X.K6*5[/aߪ Uk'Ԛ}`ӧQ%>W,ݮf7@M}BdKU u2m⼠ɢ;\MHtPqHχܪ dG.ЫP>Jh"(bD}M.Q? 3S`lvBݧYz7he]6JhK# 4M;LP=dEiw8PmJ_kSC$"m|O 3gtH0Q ҁ :cu234?-tAj*-G 6=8z (oxQyHtphϛ9w\QX~ эSVÝO嶅L0,EEetn/' 8֑6FocBh]jR{M}ʔ$@uz@~W($N5z~nFU_s0u+raUv 9ڑP1Y-( !W)0ѥQQK ܭnr I "R,X%~AskRlUqNPXHC.6i;|?'Gm':h5 py,U1 VO QX B&֣3.MGn6*"4d'M弋'q1mjk{:A׺tiE')pd6ֱ. ~v$CANҳtV8Uu%P8k86`s+#H򑘨 yM\j/4K4R5mAM'-D篣ajB+pD.Ǘ"l/{]sȥwa8 FkGַ:߷W/qȑWp[E!\9F*`{P Fwg)meG|0-9KkI*gue-rp l!`)`-/g]5[L*UI9gbo`E5.~ deL-G'ZHpxviA*:Xz_Cւ8,&ytwnҹdEE9fT]AjJ85i\:;0aބ)5S`/HfhN n+'gS6M33ɋo7Ts< [pqX>{вt8V;%.I{C; z)f%9{M rVZ, `yΪqOgvB$ K[wLW9RteYz0k ̦#gKe3Y|F08/2wѢϨOнVtD;*&q60w (}Pi$ VA;:0 эNa\ /γ6֢{*Y O1Ḟ]{?Ky;#Dl˞i!o0Q/㺟%=E ĭ^B6DOΎi!T ff/Nr'EZt.㴜.AxJ󥕺*) BZĪ‘=o~qOٛ-`FmOa'G+&-jHq)7/)gi5@>kun]<΋R(舯׼;sӵAeX Rptz<{J>iPv[4"D`PX׶;B4~Wb[mS#&naQD IgL|W+<.;܋>m1%kޮe .7ܠ(}0glޝJ +KcA)Qd@m=A{t?S[:5T{=PS F)Jdcm<=Љ+2p2 "K+C`&O`oEXVp/&a,m~ KC-4wD0-gOǣJ`ɁwH:ˁhQEC%ϣ=J阇 5\;44( =~N-T}2QP3M6G2B"spչ\z`F+΅xOM]=Grݹd˥յԮvc܊ VϩpDE} ۋIleFhFPa(;E,KH1[ܣ}̬hJ"{.3'89lo6]@NŔC:=<?zqώAP01R)D.:ƨؘwc7 \hw[ aҌJ\wt&h"!\A+(&\6lCvbUjJ\8;JlYt4O5S4-]R5T֫W0^6zNSF0ʝ6RmPT4*>#Nt?|&@3PB"ߓc2oi:YJ+XT h |b02S1LJYlnѭʌt[9LiHrXvK4i疪Z]fDa`:L w]< ۇ-^sLq1fw2Nۋ/WD+ 8MEC\=jOnpyaWPLqdte9WtB x yBQ岑My ZJlb(aA:egZPG,.u?Lyf-)*hҩ!%Uɕ<*2ʈL꿞s:dZ8ax2W7U0jT+֑:IlagXd!ioz YԆK˴n1 Rm';>'$m V m7ux 7}m ,[M ̙귇sx̤i Mu]qCiQM2+5LËd1~Y ?0t!#C*OL9h>73ц]7*>QJS((xݷ>Ǔ#a>sÎ}6Oi/\S< 3^k[4a+2[p!x&`e?> C0{z}Bv"#zXeM&3%*m)MIY r4oHH⓲Z`Uq)]d _*hy.THOrbpkT:G h?W!"BrVn}=~͵{,!{sFlm !|(ev c4'guZim.aHhߋR'%c0g'8HDMJ+w2"2+˼"vȞkV[fr)0LӮnyM|RЧт-(\aNZ"ԁAӫv}C 2J90p.֫>0..(oT W/M?s.KԹM_ek`ZK>7^ecok2S1CBĘb&9zLQgrd>.8K.`լBc[dyDN,mW$tucW_ZK1hT\H wv%@I9s`,JptwώƸ`/ ^o0#44Ο°xDyZ;$ZmBS;EnQ {4+acȶz7~ Me}H fұ)q戽7ɤb#6HߔT%%P&xV.-Qt;2{'7G̟&.Ne?~d^ȧ"ŁvKKhT}wEDбeQO*$"/\ç- 7Act3dc" Pbd(:u#GP+9$2r&59DD:qmJ*#gGg$6,ҩcFwYRpR.fYN{sggDI+ 5%MH;{&wsV?l# + ;+$w `K_s&۵Jit7/}Wtj usnMSo׌ԝ7nxb;43E 1j sy֝^WnS2W:%$'yUG()j] 4([\_v{F)^Qw"P4gd:ů!+%@sJ1n;OCR*d ũ m&Zpǘ|]򹡿in{D,9t ELk >Xoޓb:ƺ dbى,WA?c KhFRG$$5HOpSv40sup+sݮl;i M22qu<5v%{T]Qekg*ZpgR7k[J#0 -[$_=oe=Qs/BwG *P*!9`W_B6RvU5E 1/D[ѱ^1XzKEǏt Ϛ4'G c qBa塏f8Ÿ=a@75]?%gl sj: Su卣k `?4KUĞ7HaTRzlp0~4y8I_; TF>h^$i=f=FTfB  :@3, g7# F94Q`RPq{KW.cm(7-<ӹdtB&P ݐ*jAFul\Ō6"n`\#nÏ{R#/]/ƞ׬R4bs@f\^3ٷK_n{'xHyȉrU,zRr솙pe;'TdQ24 cR,ԟAYr_D!Xt(Tߵny11;yV;J٤[VH/OY.sq]P +_-$ZGx-44cJi%~7ڼCpEm{ W]^ykwxȁ RW==acëB# $_'W86`Lz`=ԫ9߽.ñryFk9:Rg Qo{tl{QxI 펑 Y֤¥Ua1٫VSӿү}aK$/Pڪ 0M%p|,֕D|ZUFG=^ΐtz ;IMldQ3PLobm8wֲ SqŽR5Eg3벝1(K޴Eu 4#:z|JcV Bq?-΄g4K.yGky/HD R{bUG;0ZKDO8i{v$-3&)"WP #&RI.-R֛TI/:L{;to4aw=E IR^mC`h.S,!ޮu Gjq(J)coW)K#H`8$2J" YSDj4HXN3.e=="r}L@e65cq#0ezq4ջwBq Xc-|Y` =m]ju;u;p"Czى.MP=>Z>? |7ZKi(rxj\'iC #4Q%:P/>F0>vj,y tT#JQVK$4Q=86/bSDQ=dxZ>@$s/i:X 8]Fޏ6GOK5p&~/0M)UjrIFt-U1g670gjVo%ۇqaDLɻ+ 2v#ibXlq:BhO.}'7וHsƼr,v>}Ohu$x-D0N6e`iq!nhns/!'~v$Qn.ZVR ^<}j>tGQ?_gkQV]u |{2ms)h45 n:*;[lW(E@C/ۚ=NP)-ϋi+ ' 0ʂT-Uc> x.DmzH[Ӌ$s+(sX8,URzEBRxdbc3VPԍE)<7sXQً+IV[p-}y([j϶ImĐ~Inϩ?Z'<AX]CT?X/#5i[\؏} * N)aȣb>F쵿~ KE ]䔙N5Aj;GQ -__LVl$C9ɍr\ űRNիe#zմP HJ0WR0%w:Si* SN8F r2]&N"::U}{?#Q~E5bxQGYtuW-E V }X^+KKvMlk?"ez7]]$ʇCR|O{,.X}2N &*~Z`T}O ) [ ;>>PVo!Wn ‰DK_CߧD Qy7OJ=l @_62^D>{s8YzhA,׉#3R Qxx8r=ѷQ m[ΗRr)&Ln.zJRΡ d|³:]f^ZFi2jktkcE ezr.Leϋn-CA6:& H±}HRS |En[sz,ܕ; ?)`]G0 d4UX;7 0a!P'q=sX0؊ɥŜ'Lqu P'ML\%cSh^Ī8j@bɚ5UkA% 3R*k(Fg% N \g'a"38Y5/YTvbM.GȞ)$QG)a`5ᐇT䪜'Mf &B%>T @t"_6얝g=>0`MgqQſ 9?1pv3~30pV Maj?HA;"}-Ab'P`k@ c'x\ =u9R5*ԑOJVuH5q19Z> BhS\@ ꅊÐ\i  IH\>j^}1k ,:?qHL[#uoi0**rj yDv[)b9y4^EX7\] # MuTv^,=M}n7`1)pJ@ᆑ7 vNi'H|>)/ȣ½xz}B1qڬvaƃ0\T=J|Jrl%$uxJR$+98Db.P#_5x[;p{[ڡP38 ؟$tT~2[Q<]Jm~3YYPwhܖGJ_*>>a[_u@Yoc*P^=:U e"(np@Bȩqzk^F{#KtEp,Z/Lv߯:mjvO˪x?LCVoMp0(=Qe%T[bH9)/XD ]愇P_Աsv&Bq^9P?Bi]ZI1 (+A3SBEZ@:2RܗpSݸ!. G^Ll ; zTv7Sꉡ!cJ@l} pCbG!C:Zr!kD: ;Th?a"5B 8L褘I<"BkÒn8iCmri Zwjֵs_+0T@jSUyRB]-Kmpf&ᑊI#NW{=EB˒V͑6/6MrJ|RiS 14c&3C/wLcs,<;1E"g߽X4~5K6!OP|G(fAkߺؽea :d:{A/mK1g+b14P#Y.69p쨻]tN:e%м P%y26Igѕ%pti(~|"oaذ'ftMt2KU\J}L&1bz|? p ^@ٞes4`bRLж3]eD4,z-W۽9ZNuHa7/^Cr!tY gӑ0ߜpoqJm_h `J0=1zU |L._f>mcBwh p?NA.cĵ2JklQ&թRː2I h8I [L$7OɕPԶozqzqnUM'^;|DLA0*$*N>B'a.w}[$=a'0JPba\Vˢ b@Qk\p6 _;^Y{pX|뮈4[ c9/CUKr*9PnvS@Tj?Ցmp=a) ]|'QRmm ,3`/̵mAWK"PL}E"U1>?( 7A;ƻ;*f6R2fJmxa7t.YˡKZbos+€sJ Igqϊas LOO^ gP~i9Al5S3%A9RCuAhxRb"4(I֕;kra+KLpC:#V,(c~X~(B k 0D~+NIh<[0 `-ͼMSsjO?hȯ{'C ߰`2s׎<U&"<VO2d T+oRexTiR׆5ddPRDQ|EN А@8BO~%IQyu{IQ?.b&P~uw#I_ _"mH{\Vz׈$R^]ƨ]7((aXsyUC~Fe5d!W=aJ j#&?i}NKL;C*<d><~țnwAtk$oW3o_{VĉZRZMЬߵyl:.N:|C(A(s:U>BA ڦCWNHdzefo?c\'wGy޵U6HГ)^:4` ןv:k ~al%@:$_ L [k()ލO(/^4ޫ`IR07.7JpǗs}\7=l3zh0jŖE Yn B ,4,E1Nq&nﳪ_Z2]>[Ó-My*·⟘$DqYT?<# VNJn`ǔi-[C#^bيwIJV'Ձ֫d 9 -iY=zyvp!ur )kmJ1R04UӄOϰt:PpF8/lXeZ%0GO먳OigfH^\U!kI< uC ĊUu- wLQ Z|L,βm>22Bڏ/7E;*P.EG& <{|JN6Λ3nY3;۹D=͚` ^ ?uGs?U*KzG#̥w(zV+` Ae˝OՎ*O]Rz؛4fG|>QH8rn" bt79HwfFŠ^Ђ:Y_J0`Px[zѰ+f dyI^ymF"[ 5Qᨷ|lIh  3x&-,&0I4ِS,/2,LDx]9?;g)ۮHfno' r~T#+jA.r~ e?#J1zkAm-H.lz vV|?rnE!LlR2*3J'"C{yLݸ z?劚4>Dq]+pY KO,ֿTc04[Yvd!::Qc,‘mPC,2k.h$5=nG >?NPiNFmTjn"M^O3"Q$n|FaȬD93Au^Oo 2{FeBpXK7R1`(^TOFGpbT[ټA!uj\5rYmW/u Ҫ֦9+n wΧ>_t8JPl?$&:ǡ^7',; ^jb{ k|Vk6FWNc9"B <,h#Ť_S\r=)a:B#XL0[]3VR)nb@zy[NM; FyTgmN{*t e]^,h)ih!z+̢̌kcbG 01ۮzsAHBQR0<G ..+f*R;#~K|t}9YŪcz^g=@m){γN<8O* Y` JK+Ko5|+1z"䴉4Ip ^>>7\ b `߰Q抛j~h''\jΟE֤d۰#tv/֋v|;G`H ƋO7KTBCrB'a7ZOeRb;TϮt=a$^͠V7٧V]uݰ;XoKk$,՛趍~ظX9 ^yuh;f:0%I#,=X^({."q2< Y*9ux '">GoB 0{ĥ߈-,*_ײUpߏdpW|5n$ sf\ﱝf`zEQÚݝƈoIT{js*Ntΐ0px{S;n\y3^DlPᜂK;ƄpՋ ݥEP q{ Swr E_'VHђYۢuZweT#W6 VG;20yHaa;r/-AQ=҅oh+՗-຋rhmu#j1V·s"*FÞs3gF) ;{|:G)X QJd]$[\|б/"6Li[$R(GX=|KBpcpEHY[|6drHt}iIN-F8QlqA.Ibvj!ƑfI 0Оa3[=}{FNAqDpC957N{kemL=)#IVy.⻓v+W6}"h_xLB ,H\V 798 0d tsT˯{QR-Jc?ωU^L&_"!q ag],5Gs^Xm8GHs;NB@-l@lʮ^)FG&7&<I.)@ ~| ,( bPcuΧJ C%[7U"/i.ƣ j֡ W6d}|2tH})3|ty ~t38zH*W6}J 1' q_,l+Iջeh%ݵB$3^hXyST0*ҧ uL%tѽ'\;03:f@ Xf+&>Y*i3$}hEpNύXeR Hɍ3tSc34`L20YN)!ܙd7Mnx/T9w͕b}A #jCGË=VMhS6]d|?*ZUi2|c?%'q5l?I=aր\SJmɺ@,+}0TW P E\"sWш9}>;tҲդ&2 f{6J>;ƻVڒNb;0:RBoiR ,C^z )(f:927y\wDx~͕ix+\||.u_a.cBVBG(+*2qpӥu1[ *9\t?֦&ppZyY EB40'oJT+53# q4vC5 \VkEyyW@q=_T2!KhuqO˜MlފLxbub`'l`J1.(W$=-O&NocH舫A9mC> ~|37|X7 Ad 5`Z4XEڻW۾xT_СeN'a%RD59 IM[bNy\ Vryl?Kw)aL<(^A ޭYOZq8"iFiX,pN$("J+ש>2iX=7|ʉ7OEDh7Cx8 .vov4:0"J ݠ`ffաšU+gR¢q7\U90ˠO-nvo(tԆHHXx|@>E[{[.n]<@: Y~:0s!I_pϜp:> RI2XOab1aY| L%4nCbMǚu ~4Vz3/4-mB*,W*3!'ɘ? ρ%(3GUaO(K]AI!2Ռ\XI(X zUm_)3'UX'E2܅f*$|-{-KS^PŞ'C8&`x~?r᫢R M7j[ʠh]Y*L2ƻ, Go -to%8¿={4YVR5ͼaʣ-vD 6aXׁ4#*{ow)g+xbB] d(uP0q (µ'&>\P#7M%&sg.-s[T[LA^e]W" ;Bemɧ`GG@ ۭwYۧcAƙ\DNfHez"}\U> SuXGxn`RM#<ٝ๦?JWf:͘tx!|:ox#4!i MI &bF^ `W-z%t9.CS(7[}N Ӗ~rjzf&=J`z;  %Īl7=-qq9pPఞ1Ezw@v@U"7DŽb< L:INI4}9jSН>ގ&'nИegl=GGn$c~L7ݢ}\?4ˎyJ31.RAc(*S=XliUdJ^cjm@si~EDJwKdz׋IgEV5ӆ`4#5o_l@$k61u(ljEoaPCF{?&NB? P{Af  .ER \x%fn׬:,הeA}w:t賮IO{6KQToIx Aԇ]4HԼQCP`5-1$Y%D2ܼ !C(k+J8N %Q):5 p8HNK>(srEzBY?qp)j4'=_"W9uЁK0U6fN2EbEB0e| N{٦9wP.zK qO3v֮goR /]|V?0)IpaZ/LFd,u5+Oëz⭖,r.__x8JP:2mONoj3qCƗ AMGM30Vg\py+~8A~`FՐ]r\z& i%^|ݔ}X8]OP uE;MWKsJCED^ $[GL^:MTcغdw^i==9:Ͷ5 63\ٰ?Ŏɏ?M1y?8IsIG[j4%zjWz[Q|+)hXE{3g?qI*F3}>5Ƥ|t  (^E_@ R)ymʉm_? e7wyTh-bH۝5Di;(&bv^D%-J1*|zKTӒz>f NKdUdHnwcrG@Dk.'Wۛn]qHnJ߳xX/B1VJlc]3Gdl&uyհr6+xBȼ.Y`$z(TK &ıep+Pl'U2aMO‰d?rS:R(d+V_5Xe`ߐ:y3Z)joX;KJZC}S4 *!|D~c*z"¬G` YYo_ arLu (R#L/QJ)#ZY"97eO\`9tPSڬ naC6)I[s"GG5`\0H/Rg۰@Q߃%7V57$Y1[dV1(h8bh qxF->TsmgV:o޵ Rm!8i6#_4ffEc)tԷN%w?<zlh$]7O:P+'iF'<:kNoryAf/}XˢB|Rc(g xPGa5A-HY)A;dG1>dH]bH”3V78Q>XnLTḰd7L!Ʊ;o{1B }xN |HCA+m'>e['d1@GΫ>v5->¬!/z:ݞ(so-Gjz.v'+QbL+@ui2.0h{J&'`å X$a>,_͈ N!`aMwN- Jv A;在*<0x m^j۴#$yhj'gUt ~MUEi[D_W;&u`su˒4*C@~~`5BKL[{A\.˻<B}׍Lڤ8aC[> hB} !OI Mt:Q3/_F0?/dxB9|d0s;:#bhF.!P)?$W5S7cdZuPr̵be=&WIS`1& SKhpL=h'i ɿ>{$7^puvq&?ncf-ag!r_px,(@Jj0rtPQQ5T#]+)@.fP'5$2᜽$h5tRDA)ɹ 6QN !p;^{ϡ[ѕ k!ښk}Cs ;Gnį<[IX R˔\k lI g34E䰣pm+8W~Vς  zR4Wwũs5H ZK&V-{\ZG0F H}bR46Sti? V0&b%=շx]iG{]aA邨@{̵u&Y,Qコ#VsHDeNpc 9o ܕ c[>YT96 J H84@˯t mUSuoR&T*IUHx_n7q_FTo?3!*'; TU/eU &ݴpz{[a8KEm&oow(#ZI}ouq5I"d/*>B(^ p G̰%j؀wnBJ}'D Y-^AϹ%9atϢG2Ouvٍļ7@P2e s!\4wGuӮ> WjDx w5!p!-n#R*P!䨢V\;`f$ԙ1Sl/ X5_8؇:lAvA^ye2)rjTDPW`i[3mm.j.|c.gqP,K/pE:A݆:8"'{]eWYݬuQ*;!h57Uj00;76SA)TÉ:EW:nw^ \۷< hXaRéM*/%iN3*1YNToD6U=iTm,sPܨky&[ǣjǖ2We˜Sƞ4!^X)+4G+`kn\c!}u/5}' }L^̶Q?!&ow *^e6~E=i]#|\BWIb9x7zx[m{ZCBp?(!U1! w%7\‰{nm Dq7?4W0Q4 kTX~Ш~aAS]kM1=9ج jv~V*.dTMqbAC ZMS~>(vDSx&6 Y3tژH&0KӅ0[ i~TW#.RAdb3axְL$.ȇwgWجEDҞYΉ&d4i޽ܺ'y{ ;uɀ}#s_ 7삵?ɿ!_:[(+$&herWЧ5 u$ Q26 ;0"UΙ x$ɲă p1FD[1̜O^<_{׾Q v5q.gԘѢ)0KwG6U@'}IYacD$ 8hGcZnY]Ir,~&SfQ)] 逰?,(H? gS5-Z{x侁"*`7AeAqٷ;l۲C/ Ժ뵱gs=M)0ob+_()*S-}R84l?2%Gfڡ}Rg/4R# Ԗܒmd%m;3o\1ďR^Qf%'V nTbNAS%_gؐf-avo5 $C$eiԥQ'l%_-^ī7e{WlXf3J[VhMڃ?vd@ XBFQ4r}kY ^[N&c 7I~.L ԤWGEv i|Q!ez X #{* GR}{ި^elǴPl?FZv)Nؾx! ^hALT;L`xVkJ2rڊ[koJA{Zjck4hUy8;]r[E$a4Wo[u[`=-Ia9. pd={0G)fJ`jgjC EԞIw#\^Wm<=Al Dpo'25QԿW;i@ͮʖW%!QZYZ\謕mp(k~΋m'+WTh9ͮԭJLJc&d00'ɛLFʵ`R5mC?) $UDnh֊:~H'Dz`g=/> /H7}_ @wm(@p@kJDji]'(ya'o G*n4ma46DHt87^jSC˺!]4LΒC9"4qIPmĭ.aX7Y4PJd̈́R* Er1f{r"^!?.C]g)#)ַ1#֫cjhs *8z?t$+\MlZ)CN$lElj;&A j8*\̔lKx T5>^w쌛ݞ7=8Di\4 ..Ns+t? ?\O{rScIBMd d"`MT'GTxg$Nl%E. W8 Ef;3~"W1óG::C'??xyO^@=Ɍ`֕#{A^n1^@g%k'mHp'-48'oޡN|4I܊kZV¬kC-YQle8>ܔ37(mCИRxA1V VSa|Nc9TAP-V.SرHn]Ftt4v}az g;lהqBm<^U'?EMn~y^H2@xscC즄-As?a3[>ZgGzZI״L56n۪W-Y쇘W;( 9۪1? 5d"JIBR*]Ϝhd!m>ʒXeZ$ '@8#&䙸c .K6 j|;x;Ԭݼꭽ7aM D֜1ߧlXI$CTf`lkUBH|(ɣڹG$]).I)Ңh`$_fb}PZz{OZ^y}Cga1ye?Vp >@X&(ze%K(;(k2GOvoغHq-U7'׸v+\ҹs/b. ,2, ow*6''7a^BA͸lx{Mv'^x*8qWj*iTY.:Ќhwm9a'5RX` {n/?3Ϸ>bKz%gHB/¦4IƙtEcG?n?wC!jx'zv&ƛ9DlXUyrk0~3 BCarkr΀$t(w)?ՒPwfs/A5TV퇵 4XUƉB6巭Z:OFWd D龿5">vo+X`3Ɖ5"N|Iɹ`w"&'U/X5>\Ym g|ު+&0p]f;>p(_C|NTaͭplHVH%obYS%kXu=EbAFFL xHZ0)>rKGہklC0wQ4x݆gM @/ERºr xS{|[G%qԜ"&J8zBv=GK@Kv:fp%j#1$w((ɽ{ HS![ß67K."LW[{u\XAŸ1}pq.vpP";lƝiCƦb.XL}KfNLV#*=֛f7"=|jTxY6>mD(RU!t1 h<xsgPv v o kEItJP 9Ym 52v4 }v 07+ƍmu-ocXP=1ShFFC'/,; r8#d~YGVU ҉MvgVk}8t=vÅ*${'e&[oza饆Hy+zMEMKM t5e/}OXq(Π$N2\&l AXZryhIvCVCqkf9Ji:PrMǟ=̟a4RO p_aKŖnYf^i`!Q"ې~ {lW--!7 (}jT8& "&{R# N|```c+p3h.[^JS`YI?'6 ͡NI6x-N707Bb̬dz ],FsCzDv’۠O5iPzbJ.)P7%TyST33t^ݗaԛO* FvnvՍV @MA#?A<&$w1v@L.K R\M"s[^>rV=RgNE%/je[]Ahb^M}!фu7-ܜz^=%5t"g{ac_bo^ LSnY#KS\t '7}7n[gL+j~nM5rd9־eެφəTN@ۀA]9CfYpUGrs@A:YBF 4;If'D4phi#SiI)~>a0@p*%%5MvS )[VB#N;PAS&NEx-j6Q  @_[ 5ab^+?n*#,!`W.~Cq G.bj6F'obߵr{$fx}D yX|3| 7k&%/8btT攨w词4͠|T~sz}=Jx+Nz}pnod-6O]ijٽ6F b+}y@49ɨ7WHR]uj8JU9} ;NZRnlC#H=WG/լ:0iLPDHO(Ntwx+4~]C+JorRJ"ѭ0'֦={-p*hٖ]͹YmөÉ i8`رC셥1U b3t%`VVjxyI⾘HoGq:jȐ@VyV-tkI ^| +˔Mi"0!ئm| G.R0د _ʐ`֗>"8ύX1JbK5ߠFxÝ` eט 4Ac.VT׳C szSɉ:lDCj-5̻+,KLrC+e >[3Ҥf&kX50Ҡ]Z2'kuN{ӛhJ7JϾBIwfȸJ~cVMD7"5hjYkYBvE]ωGInqH3m2cV6/Y8㞐3}T!{X]DrG$iJYSkN*Dz(cĆ^⭆RE9XoO: `At*U))]55DUqHmdZp^Nk>~7tB -!*䚦[rL@A"^FRGRnjUZs :7Ͻpț;'X;Wf ǚ!kf= ,-%wxFl3O7Sݬqa{5ʍ\p{;^H_JD#O:F瘝]c(/15^ yU4c Lv?.> `S2U83`=B%r ֤욞S&:zonp 2\]|h+N(Cj5MI -עB;U^f^WF˞fױ#TfqiJW@0ƝS|ϊqA:R2u3/I?Qo)ɢsT RQcȮVjiPqk5}ьM bA@%|-tc =EMtd8ay>RYäIgfK_D`X-aS4M,Ts/rv}urP*a5x;=t0]촦ח5Zz\,zD߉\ŕ?ޯ\vs<9kK75 XtY27Z¿Vu;"X?2 JSr4["y%HXHZ/zI(dw'W~ =Bȁ e[畛;Y|_Ž[i}A}ښkG%z\cv;[. G&s :H. w ǝ :P{>aCQHN@Z(OE Pf@AKs/wK v.TLn*bS%M@s 7rM*ѶMO684).U'\imXYnn~> U?a\5Ċ,'#b<Q v}eHEsWJ%,<`:7a9oׯ$oŮT͘dMjO.B1Q}<ݠڑҋ?5 @uw@vGny=>f2ue%F[M% dG6zz [NNh 2 ?7=]e@#ȐNT輧/*‘Xյ[)Vyp&]?,F)qJIF+\ m4gGNO7g,z2,.H0)q+JYB989R߫Aw(2XVͰ sT2򞅌*W^nuǻM cz7< M3 CGYq_ >Zԥd.8ڡrEe]s( 6^=n=WsR za.\Xf#xto27$FNݫ%gHuOr \32c,ð֞Dg;u[ "OL-'7{LqP!f $6j+0Fƺ&&w+s^Nz݆ъǜ7B+s.elǼggJY㞰pvkp8 'Ghirbn z*2.mj'T 1(̔.kd׶R*DСjSP@BXz`']>x CJ 8v а: h~zaE׊P"Ǒ4RKYėtϴ06aAdkhqƂ0>>Z_I#ߤa3fu)1'=$t-8I2tLƿm¡$٬L?8@! P͟ZQԳ sYց.@{Lt"嚽LZ類6VJO5$lVsBJkR坦v:sOm kQpQaa7qEUGl^qg9*Ԡ)<LEq3<6.(_gjBNټV* vU?6 c &)ƣXŗ3%^sM~Gfߚ%V9fړf7+}B'Rԭҹ":r@Up/vӭ cJBַEzbU0ҸsӔk'gZO~Ǻ$34xzAÂ(Kwi3ЫXZ /g,@{^pR~(IoTщtu0w2jvnW:%0"_(]ry&,=JkN K9bWh=)K NO)ܔj5B p̌F (KO{K-+ɒA?@7G&Q[vO{h,dbfyy |=Ϋ€;bqL]B>E݁ HT1%2%V V؊QUXߦ,e@@d\т@0H}1ГK0H}DŎZf\(l̅A,L?٨`wQ>1â "_823r9-Cc/!\=9kz^G*t{hoJ<٥dn y5Mp"0L7.JAĥu aT?7=hJto.kGEĽe>T%FWXI9=EIZSh%$(aO((;9#`g L0=4scǰz0&˷W|kټx/in]^N:K]j̴i>$r cI/_Lk*9-~>.~K:/6; "Y L N.+ : 6 DUtQ}k+3ϟMͷKҚv7ޜB~{ 2CEULaG.<ݛ0NM#=>C=J]nW<ӅxZ}%]3HK׀fвV=@1a`K\B]Йwo% D=*2me1dD5?!]e"=%Ýdy ,d]- yOᾎ!F[%tP1bmM:aBpel6< o?5/2cFᒎؤ(ƷJϼgVF[潣TV$2}Ir7} eS4Z p%HF 1h/R!s'DHnnl+%n ii}p9* @/\^/B}Օ[vLe5l[P2\r yg\C}5+A*YY` Q ʐXudaXC5ݭ1N̓NPQ\ӱ7p _s5X_\ܜ ϦQ3Y./.d]sD&akD;*ڀA0eJʭ6^%B}׊\rLhOZ,#uvKF@w@arL?wlWzl %Kچ5 \N vr͠"XZJQy%d RWT,XhXH(YY]ܘ|1N%8ݾ٘c[4r,}/PU';;M AKM~IJ\®YOV3u [f<=h䐟W[np.*Z2U(Y][MQ[d6ʕ>cުRxe{tKFٟd!@nO&Zk-.M\owm/Rj&Y?u6 |?8m$}2QRA%L!HH`Hf o*q1zvu[?(b|3  i67\Sӽ.^ ۬u6z%5 Z9x ô69auwd< ʵh+8` 05kh *x[errlV6+scػ\#SO\PFMM"Fn7) LZO4B;?y7fo //_|RȢTSD(STywBIxlJ2k,N/K7n!âЀXSUE6.["9Q{|  nOMzLJFl$lKw+] iŒG3 zi :J2nSAE$uYu4LoyKɖhv[O2?TqO#Fڕ]~DM<][`)+4~VK qRM*\ذo75VXdW ?Ulz1ӱP&ڽ"N o26GeLڅtfw^*2EW0bo ;253=Ӭ+k}MW@&36fňXp:i5]`ʛڍ+8 JxmW:v8\ie鿴-I$&- 86WY4fsdkll3$ŀS똈>0$FPVXwڣZg%bu%ԟJgФF8ʱf\)TWnwt6_DJgiꛘ?ۚ\Kkw03[v?瓔DB%/\A+JD~t:_ gz΅Cd4M}*ӡr}xQ_*gjhVp-!"*&| $גdHL'r!dI,xZkrZCn# >s%S _аq!sR^'z l7aR0"%PRtwD`{E:&!sڽ{Q 3,K鮜Gde[RUۼʴ"E6~Ik.mx*q_3e'?:WSC#PFq#9mI%";ҕ_+Cۨ ֹ5ԍx7Eb(/p3W'_2$6;c۴(`v`w@Ħ%rx&8RsM<%<VQ}sJQlq6˥`ۂByNɾ,|I;l^E.U#ӭ]Q_>!A&%R4{D?VFR֓̿x=^`SRӗSy`)Mk$w'4=Ħ ޯiLhG!k1Gـ(Eɮw; 1Ju%]nOS iⶺ5O#fT#ڲ-U}fr !5\,a"I#nzFO5T O4c[i(ϐ@'kG=A"^p GgδCJ3w .$$tP}sQdi~OYMK3!';Lڰ$,.}v 5(+tw`<ނ bXL{%*HQ\A}8JKfS 3I3WH|+Iz6D ۂ!2#ڦ&8C@h=Agg!{Hymm4(!]Afƚ&R|MP 7{pǙBVAThl?J"{ |dPG&2^oWQG@VҟD( 3ij>n޻޽wuNfvЂ3\*zŤ װIY`a`ee`}e0ފ|Qo ق!9=?É AJ;(q+OXqLtbi(' Se,GP ȧU><;HEX@W9LxlJӾ`pQ' Z5+>ʊ-O{?o9A WjN(׏IN^k Uvj3'W'T_5v4\A& ٶ=zY ~qJQG ީͺ`p慞/&Q[vE+G{ Peé̘̒odWe^"z R\ yX[yJa}2h;!>J$b/kv70pW"K4R=v-,:m2ڙcL0tQ*eްN/- eyʐ {,KaUjZD^o\Qʚ((7<;9UUg^7kٵoIl%H'ŻxJQzlC><2(#7os wa?dH,:t¸`_Ĭ-Gwٌr5-# W#}s~al/6jSzr#N++B5ܞJ'ZECƌ K!XCO.ߥ jrȝϏ``@{xSD`db$HJ,^I.V+gh׀6U#$+? =0<¦ݜT%pj_#:ִ-AUDfg*d/a|PM * +Q,oy#*𔛭Sƽ-dfZcs׌LcoK.Ndb/ˠS,6ol]dPG ^Si#.TM9=\1 Μù+ `yi E׌ldP$ }Ei 1We{e1mTSv%*,2;dаr 4KSމ˙ _G~X {QlLm1r kɨݰfġϐ&Ǝq֊&=.('s,#f[x/]MCb|u޽q.UwXպނL'o~8 OԆpnO!$4pX#Xq3$r|%IX9յ0ࣵɥsO%㊟HFCdwp&0iظ/xN3MU7Jl.٭zA ¼ .~!S3֏.zJb+{LB¬eKq MTs:A=Mozh_%k"@Gу/P5v|.S{tO?`Z%H'di`Sc(7CƔQ I%/JF*+4~F$ IvհH@aP+s#: L<3birpIfܦt/=ķ԰}2IA{ a' C;0@rN}+ZYP4d6) 1U\2S"t ;G!m6Y#d#5zwтpezg9pΫ0hQgWHf 0Yae,*oKG۹A'{5jϜ{gGǵ5.񷟨Se:qAΟMp^Wk NU}ԫxQ o 'GcCǖB0QA~$=Ts]IAw4nB;{qWM??2q *1CGkfjyQZ5:ŢH'`/\<|jN \ eQ%XAeM=tF t9f_N)Ow>*w2XVԳ1Ե?aeG=8^]l$$|YoyL>jY'쒔V d^mV5-3!@_ \ G{Wb;@K,< q7ʚ9ؘN?"f^ظk}W\;'07 x?Ѣ'J j0Fn~WX `iȼ;zl^$Ou8Ѯybxn SeVBYi^ RNah7$".2C)w= S$CCY9BS7GF?RDKpճzTrYM ML/') .r~%)%5Mya7Bo#jrj]A@~NuKz72&ZdAs~JT0`}f Ԍ7xXoub^k9,ze$dWJT7A&sG̽f$,'@G}D:^8mL9ӡFF-YޒuES0M\KdF4&Mǡu"m%ekFkv1edaW鶇.-ks۪8sΔ${-(Vלx~#o)FtjA1D}Ǹ'k[ضE[޺me}M `Ϝ%$ \$|L/z7@\iHigҩ0Vsr} 8]'ٸ.v9es٧Ob9jNdu^k9i},uKxa,ܛ3q&Cv! NRJM6$Fh6omtw|`|Biɟs7T@a\6j\d@ Y-᝽D,{C~f/?㎁V'GQA#K qK7ЃHY7Ͻ.G(pdh4O>Z݆ A"6aП3E]ᴰD-PWaP.Hwͧی0(]K2 he{$棫TC1ۭ&q-F`kl*'m5ŀJoHG DBίf_TbR&% [/5ENYH4o], '`&$/bL.zonZ\SN(P"*9}Fgѕ-D)Dr5F$e3F",8T]l6ނwK=|tԍɽ~b/!05,\#fQ j]On\%#Ŏoxn1zb )3lcQK֒/|I!@(q/20Yw 7D _ В\x=XGeH"$l txVS-=E+2@~se ԓ &(Fa(mm$WFIs-Cq[Z[) eݦ*/ 7ظ.nw$_;4l44 tsˤi/ HR'ye._SL:~*a<"b2,SC\)e ;-eT]c Uh!jzGBN5 9xc o%7o.8t1WTFT&pjw.C}9`aڣ3> "9-\M#uј]?vf[p_zKmI<Z_taV? ,O`s^l1u NZ=_*(ZFM&;j/cdt;avIH F;WEZgVA/%摸gq_G\MIM-"| iGSȀpeRtѐq48gU1Q( yH؈جdh~G0Rp~rdӮ~icʍNj vajgXh~?]J՜t> 6fm%MA Ͱ+hPc_269c="?sw%\PӴx_|qD/ۇYj =iㅕ0iTBX +PzSw_%# Jn]<-l&&?W$cHo1(\"a (xܷ{