ploop-1.12.2-42.gc876e3e> H HtxHFTx  ԶV:jL|1d!y|]I=#;B0aefa6c456a2de85276ec0b0781f1c154cc97f29/)ӕd*cyQFTx  ԶdX1o"_SŁÙ.wYO1&L04[7ms ,>8RM?R=d  'lp       P  (89:SFO_GO|HOIOXOYO\O]O^PbP7dPePfPkPlPtPuPvQwQxQyQzR({R8Cploop1.12.242.gc876e3eploop toolsThis package contains tools to work with ploop devices and images.Tyrhel5-64-build)GNU GPLApplications/Systemlinuxx86_64A 큤Ty Ty TyTyTy 5a5021a4760b56e87702ba39f7f18d7104259c52f2d97349c2d66a096585d2cbf9f878ef03b22a1ccb1f8a22ffa62898db9295a6538f5eb72d44da93121f2e3631dd69e3f629c3f6c05931d81cc0774frootrootrootrootrootrootrootrootrootrootploop-1.12.2-42.gc876e3e.src.rpmploop@@@@@@@@@JJ@/bin/shlibc.so.6()(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.3)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libploop.so.1()(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.2.5)(64bit)ploop-librpmlib(CompressedFileNames)rpmlib(PayloadFilesHavePrefix)rtld(GNU_HASH)1.12.2-42.gc876e3e3.0.4-14.0-14.4.2T`T\S8`S 1.12.2-1Kir Kolyshkin 1.12.1-1Kir Kolyshkin 1.12-1Kir Kolyshkin 1.11-1Kir Kolyshkin 1.10-1Kir Kolyshkin 1.9-1Kir Kolyshkin 1.8-1Kir Kolyshkin 1.7.1-1Kir Kolyshkin 1.7-1Kir Kolyshkin 1.6-1Kir Kolyshkin 1.5-1Kir Kolyshkin 1.4-1Kir Kolyshkin 1.3-1Kir Kolyshkin 1.2-1Kir Kolyshkin 1.1-1Kir Kolyshkin 1.0-1- Fixes: -- ploop balloon discard: fix wrt 042stab10x kernel (#3156) -- ploop_merge_snapshot_by_guid: fix offline merge with raw base image -- reread_part(): repeat ioctl if EBUSY (#3081) - Improvements: -- check_mount_restrictions(): check for all images -- ploop check dd.xml: lock dd -- ploop check dd.xml: skip check if ploop is used -- check_deltas(): read-only check for non-top deltas- Fixes: -- ploop copy send: fix a race that could result in image corruption -- resize: fix resize working on an older (pre 042stab092.1) kernel - Improvements: -- ploop mount: warn if host filesystem uses data=writeback (#3030) -- snapshot-switch: don't show ENOENT remove error -- ploop_is_large_disk_supported(): check ploop module first- New functionality: -- ploop copy: implement two-way protocol -- ploop copy send: implement async read/send -- ploop copy send: add profiling -- delete_snapshot(): handle snapshots with multiple refs -- tune_fs(): use EXT4_IOC_SET_RSV_BLOCKS if available -- Introduce ploop_get_max_size() -- Introduce ploop_copy_{send,receive}, obsoleting ploop_{send,receive} -- Introduce ploop_create_dd() -- ploop info: add -d to show ploop device -- ploop_check(): open image RO, reopen RW later -- check_and_repair_sparse(): reopen image rw if needed - Fixes: -- ploop copy: fix open_mount_point err handling -- ploop copy: improve fd checks -- ploop_store_diskdescriptor: fsync DiskDescriptor.xml upon writing -- ploop_resize_image(): handle get_mount_dir() error -- ploop_resize_image: auto-mount fs -- do_delete_snapshot: fix wrt temp snapshot uuid -- ploop_switch_snapshot_ex(): don't return 0 if guid_old is bad -- do_delete_snapshot: deny delete top delta in case parent snapshot is temp -- merge_temporary_snapshots: fix infinite loop -- ploop_switch_snapshot_ex: fixed case with PLOOP_SNAP_SKIP_TOPDELTA_CREATE -- ploop_delete_snapshot: fix for temp snapshot -- create_snapshot: clear stale top delta inuse flag -- e2fsck: make it quiet- New functionality and important changes: -- support for 4K sector size (including GPT conversion) -- ploop replace -- temp snapshots support (ploop tsnapshot, ploop_create_temporary_snapshot()) -- ploop copy: implement fdatasync before freeze (improves CT frozen time) -- New DiskDescriptor.xml read API (ploop_*_dd()) -- Obsolete *_diskdescriptor() calls -- Obsolete ploop_get_base_delta_uuid() -- ploop_log(): implement subsecond timestamps (with verbosity >= 4) -- add ploop_is_mounted() -- ploop snapshot-list: add snapshot mode (-s) -- ploop check dd.xml: add -u UUID option -- ploop mount: remove -u base feature -- ploop tool: add -v option to set verbosity - Fixes: -- skip max fs size check on snapshot delta creation -- ploop_resize_image: resize up to end of device -- ploop_delete_top_delta(): fix wrt top_guid -- ploop_read_diskdescriptor(): fix get_basedir() len argument -- check_and_repair_sparse: handle EOF properly (#2897) -- ploop_resize_image: add missing gpt size sync -- ploop snapshot-merge/delete: deny snapshot deleting if mounted (#2887) -- grow_lower_delta(): fix a memory leak -- ploop check: fix -b option parsing -- get_partition_device_name(): fix chmod argument -- fix alignment on GPT partition resize -- fix GPT partition alignment on ploop init - Improvements: -- ploop_resize_image: enhanced inflate balloon to max size logic -- tools: add {} to specified UUID if necessary -- check_and_repair_sparse(): log filefrag output -- print_sys_block_ploop(): speed up -- ploop check: try to repair non-top deltas if they can be opened r/w -- e2fsck: return fsck exit code to caller -- make_fs(): add -i to mkfs -- fsync_safe(): use SYSEXIT_FSYNC -- Fix uuid strings size, use define - Documentation: -- ploop snapshot-list: fix and update usage -- ploop copy: fix usage -- ploop(8): document snapshot-list -s option -- ploop(8): document ploop replace - Build system: -- Makefile.inc: fix dpkg-architecture handling (#2877) -- Makefile: add ability to add local rules -- gensym.sh: better usage and error diag -- gensym.sh: add run mode- New functionality: -- Added check for and repair of sparse images -- ploop check: long options support -- ploop check: add --raw, --repair-sparse -- ploop-check: add -b BLOCKSIZE argument -- ploop-check: accept DiskDescriptor.xml argument -- ploop umount -d: allow to specify partition device (#2788) -- mount.ploop: implement -v and -f options, as per mount(8) -- umount.ploop: add -n option (ignored) -- mount.ploop: add -s (ignored) and -* (reported as error) -- Added ploop info -s -- ploop init: use v2 format by default -- ploop init: create ext4 by default - Fixes: -- ploop_get_devs(): fix snprintf usage -- ploop_global_lock(): create lockdir if not exist (#2767) -- ploop_grow_delta_offline(): Fix uninitialized struct -- ploop_ioff_to_sec(): fix for v2 -- lib/ploop.h: include sys/syscall.h (Debian #728173) -- umount.ploop: fixed (#2788) -- get_image_param(): added online (from sysfs) and offline (from image) cases -- make_fs(): turn off periodic fs checks (#2769) -- ploop_store_diskdescriptor(): check rename() -- ploop_store_diskdescriptor(): don't return -1 -- resize_gpt_partition(): check fsync() -- ploop_balloon_change_size(): don't pass -1 to close() -- ploop_grow_image(): fix an error check -- Don't ignore chmod() failures -- print_output(): fix output -- make_fs(): fix max_online_resize type overflow -- do_umount(): fix diagnostic lsof verbose level -- plooptool_stat(): close file descriptors -- ploop convert -f: do not return SYSEXIT_PLOOPFMT -- ploop check: fix exit codes -- make_fs(): create ext4 fs with 128M journal - Improvements: -- Support RHEL5/e4fsutils (tune4fs, dumpe4fs) (#2812) -- do_lock(): open file in read/write mode (#2730) -- ploop_send: use ioctl_device for PLOOP_IOC_SYNC -- use access() not stat() where possible -- umount.ploop: improve mtab handling -- mount.ploop: use case in option parsing -- {mount,umount}.ploop: don't hardcore ploop path -- ploop-check.c: rename uppercased functions -- ploop snapshot-list usage: fit to 80 cols -- fsck: use fsck.ext4 not e2fsck (#2812) -- check_size(): limit max ploop size to 16T -- ploop_resize_image(): fail if umount failed -- print_output(): improve output -- ploop_mount(): fix/improve error message -- dumpe2fs(): don't hardcode path to dumpe2fs -- print_output(): use our own default PATH -- do_umount(): refactor and improve -- do_umount(): eliminate extra 'lsof' call on EBUSY -- do_umount(): don't call lsof again if not found -- print_output(): check return from pclose() -- print_output(): return exit code from command -- Fix some wrongly used exit codes -- Remove unused exit codes - Documentation: -- ploop(8): document check, balloon discard, info, list, copy commands -- ploop(8): describe exit codes -- ploop(8): better resize description -- ploop(8): fix ploop umount -d description -- ploop(8): fix ploop mount -d description -- ploop(8): improve convert description -- ploop(8): add missing OPTIONS section -- ploop(8): make IMAGE FORMATS a subheader -- ploop(8): other small fixes and improvements -- ploop usage: improve -- ploop usage: update ploop check synopsys -- ploop init: fix/improve usage -- ploop usage: fix mount/umount/resize - Build system: -- ploop.spec: require -lib of the same release -- ploop.spec: require lsof and findutils -- Makefile.inc: add -Wformat-security -- Makefile.inc: proper LIBDIR for Debian case -- Makefile.inc: add CPPFLAGS to CFLAGS -- Makefile.inc: prepend, not append, debug CFLAGS -- tools/Makefile: simplify SOURCES define -- setver.sh: introduce build id -- setver.sh: use getopt -- Remove stand-alone binaries: ploop-check, ploop-grow, ploop-merge, ploop-stat, ploop-copy -- Makefile: add Coverity generation logic- New functionality: -- libploop.so: implement SONAME and versioning -- Introduce ploop_get_devs() to get all mounted devices per dd.xml - Fixes: -- make_fs(): reserve max possible GDT block for online resize -- do_lock(): set FD_CLOEXEC explicitly on lock fd -- fix raw image creation (broken in ploop 1.8) -- return SYSEXIT_SYS on ploop_find_dev_by_uuid() failure -- ploop.spec: run ldconfig on install/uninstall - Improvements: -- Display mount data in error message on mount() failure -- dynload.h: pad the struct ploop_functions to 64 pointers -- gensym.sh: add code to check sizeof(struct ploop_function) -- etc/Makefile: ploop.conf should not be executable -- Makefile.inc: support Debian multiarch -- Makefile: add distclean target -- Makefile cleanups- New functionality: -- convert from/to v1/v2 ploop version format (ploop convert -v) -- ploop_mount_fs(): add option to run fsck -- ploop mount: add -F to run fsck for inner fs -- export ploop_is_large_disk_supported() -- add/export ploop_get_spec() -- ploop fsck: rename to ploop check - Fixes: -- resize_gpt_partition(): skip if there is no partition -- switch snapshot: read parameters from image we are to switch to -- ploop create: error out if DiskDescriptor.xml exists -- e2fsck(): properly check e2fsck binary exit code -- ploop grow: check size wrt format -- tools/Makefile: don't strip binaries on install -- ploop init: fix an error message - Improvements: -- create_image(): remove useless assignment -- number of log messages improved/fixed -- tools parse_size(): print error -- tools/ploop: allow T suffix for blockdev size -- ploop_grow_delta_offline(): use delta.version -- tune_fs(): drop absolute path to tune2fs - Documentation: -- ploop init usage: add -v VERSION -- ploop --help: rm -P from ploop mount syntax -- ploop(8): add -v for ploop init -- ploop(8): add ploop resize to SYNOPSYS -- ploop(8): add ploop convert -- ploop(8): add -F for ploop mount- Fixes: -- default image format is V1, unless specified explicitly -- tmpfiles.d file added for /var/lock/ploop (#2493) -- fixed creating strange directories under ./ (#2623)- New functionality: -- Large ploop image format support --- Now image size limit is 64 TB (was 2TB) --- Kernel >= 042stab078 is required -- Move ploop_grow* functions from tools to lib -- ploop grow: add DiskDescriptor.xml support -- ploop init, ploop_create_image(): add FS blocksize parameter - Improvements: -- make_fs(): create ext4fs with lazy_itable_init --- 3x smaller size and 3x faster creation time for 20GB image -- lib/ploop.h: "unexport" some internal functions -- Use /proc/self/mountinfo to get mount point by device -- More clear errors on parsing DiskDescriptor.xml -- print_output(): generalize print_lsof(), improve -- add_delta(): print more diags if EBUSY -- extend_delta_array(): print errors, return SYSEXIT_* -- run_prg(): print error if execvp() failed -- lib/balloon.c: print file name in an error message -- Introduce and use p_memalign(), fix errno handling -- Improvements and fixes to ploop_grow_*() to be used from library -- ploop_read_disk_descr(): set *di to NULL in case of error -- ploop_find_dev(): always assume ploop cookie is supported -- resize_fs(): try harder to find resize2fs binary -- Makefile.inc: ability to add CFLAGS - Fixes: -- lib/lock.c: create_file(): make sure dir exists (#2493, #2597) -- lib/fsutils.c: use ploop_execvp, drop absolute paths to binaries (#2595) -- ploop_log(): fix loglevel checking for file logging -- ploop_snapshot_switch_param: guids are const -- Recreate ploopXpY devices on ploop mount -- ploop_find_dev(): treat ENODEV as ENOENT on /sys reads -- use basename() to strip device from path -- ploop list: check for extra arguments -- ploop balloon: fix -f option processing -- Fixed lots of memory leaks, mostly on error paths -- open_delta(): simplify error handling -- Fixes for other issues big and small, reported by Coverity- New functionality: - * offline image shrink support - * tools: added snapshot-list functionality - * extend switch snapshot functionality: ploop_switch_snapshot_ex() - * ploop.spec: disable udev iosched config for ploop devices - * ploop list: added functionality to list mount points - Bug fixes: - * ploop_mount_fs(): use mount_data for first mount - * ploop_mount(): do not allow to use ploop on fs w/o extents - * ploop_{create,resize}_image(): fixed size checks and rounding - * ploop_create_image(): fix memory leak on error path - * ploop_get_info(): fix reported disk size after switching snapshot - * ploop_get_info(): fix when ploop device is not mounted - * ploop_{umount,resize}_image() and many others: do not return -1 - Improvements: - * much faster resize when using resize2fs with EXT4_IOC_RESIZE_FS support - * ploop discard: add cancellation support - * ploop_resize_image(): use real blocksize - * parse_xml(): deny processing DiskDescriptor.xml with several - * do not auto-generate dynload.h, instead check if it's uptodate - * create_image(): display error message for incorrect parameters case - * introduce/use SYSEXIT_DEV_NOT_MOUNTED and SYSEXIT_FSCK errors - * alloc_diskdescriptor(): log error if calloc() fails - * ploop.spec: require util-linux, e2fsprogs etc. - * ploop.spec: require libs of the proper arch- NOTE: this version requires vzkernel >= 2.6.32-042stab061.1 - New functionality: - * switch from old /dev/ploop/ symlink-based to new kernel cookie registration - * snapshots: switch to schema with constant top delta uuid - * use /proc/vz/ploop_minor based interface to get free minor - * if ploop is in maintenance state, try to complete it before doing snapshot/resize/merge/mount/umount/copy operation - * ploop mount: use in-kernel I/O module autodetection - * ploop balloon discard: new iterative compacting support - * ploop balloon discard: implement --stat - * ploop balloon discard: implement --automount - * ploop balloon discard: cancellation support - * ploop balloon: allow DiskDescriptor.xml argument - * ploop umount: implement -c component_name - * ploop list: implement - * /sbin/mount.ploop: do load ploop modules - Bug fixes: - * do not crash on empty DiskDescriptor.xml (libxml2 workaround) - * ploop convert: fix converting from expanded to raw - * ploop copy: fixed check for opened fd - * ploop copy: do not leak opened fds - * ploop create: fix gpt partition creation to be 4096 aligned - * ploop create, resize: round up size to be cluster aligned - * tools: few exit code fixes - * multiple usage, log and error message fixes - Improvements: - * ploop mount: check that mount point is a directory - * ploop umount: reduce retry count from 60 to 6 - * ploop umount: print lsof output in case of failed umount - * ploop create: for prealloc image, use ftruncate if fallocate not supported - * ploop create, resize: add check for correct block device size - * scripts: de-bash-ify - * assorted code refactoring, cleanups and nitpicks - Library API changes: - * add ploop_resolve_functions() to aid in dynamic library loading - * introduce optimized ploop_get_info_by_descr(), remove ploop_get_info() - * replace ploop_{alloc,read}_diskdescriptor() with ploop_read_disk_descr() - * remove ploop_getdevice()- ploop copy: fix data loss during migration (#2287) - ploop(8): fixed according to doc team review - ploop mount: tell about unsupported underlying fs - ploop-copy: improve usage - ploop-copy -s: added mode to copy to local file - tools/ploop.c: do not return -1 from main() - tools/ploop.c: fix/unify working with diskdescriptor- New functionality - ploop copy is working now - added pcopy's send_process() and receive_process() to lib - ploop mount: added -c option - ploop(8): added (still incomplete) - ploop balloon discard: add --to-free and --min-block - add Preallocated item to DiskDescriptor.xml - add add ploop_get_mnt_by_dev() to lib - Bug fixes - fixed offline snapshot creation - fixed race between register/unregister_ploop_dev() - create image: if fallocate is not supported, fail - ploop init, ploop mount: fix -b option value validation - ploop mount: fix usage, -d is optional - ploop info: fix usage, DiskDescriptor.xml is required - ploop.spec: make main package require -lib of the same version - fixed a few ioctl-related error messages - ploop_create_snapshot(): check for number of snapshots limit (127) - ploop.spec: do not own _libdir - fix SYSEXIT_PARAM value - tools/ploop.c: do not use ploop_err() - tools: fixed/improved usage for many commands - tools: do not forget to print newlines - make install: use /usr/lib64 LIBDIR for x86_64 - ploop_create_image(): free disk descriptor if fstype is NULL - create_balloon_file(): fix file name in error message - create_balloon_file(): umount and remove temp mnt point - create_balloon_file(): fix error message and return code - parse_xml(): add Blocksize validation - Improvements and cleanups - ploop lib: add visibility=hidden for internal functions - tools: use parse_size() and is_xml_name() where possible - remove merge_top_only param of get_delta_info() - ploop balloon: make it accept either -m or -d or both - ploop convert: change -t to -f - tools: unify parsing -f option - various code and headers cleanups - setver.sh: add -v, -b, -i- Added ploop_get_dev() function - Added ploop_set_component_name() function - Fix: do not clear in-use flag in ploop_fsck() - ploop-fsck: add -d flag to forcefully drop "in use" image flag - Fixed handling blocksize for raw images - Added user_xattr,acl to default mount options - ploop_mount(): added ability to pass MS_NOATIME flag - ploop-balloon: add discard command to compact ploop image - ploop_get_info(): return old info in case statfs() failed - expanded2preallocated(): if fallocate not supported, use ftruncate - ploop_resize_image(): Check is it possible to fallocate before inflating balloon file - Fixed merging all snapshots - Some fixes in ploop tool usage - Some log message fixes - Add function, source file and line number to error messages if DEBUG is set - Build system fixes/improvements- support for variable block size - default block size changed from 256K to 1M - ploop_set_log_file(): make NULL a valid argument - logger: introduce, use and expose PLOOP_LOG_NOCONSOLE - ploop_getdevice(): expose - ploop_store_diskdescriptor(): fix for a case when image is in root dir - Fixed expanded to preallocated conversion - Remove some unused functions and non-existent function prototypes - Introduce and use SYSEXIT_MKNOD error code - Changed image -> device mapping schema - Use strcasecmp for guid comparison - Made ploop_merge_param.guid field const - tools/ploop: remove -b option - tools/ploop: remove unused and untested replace & add commands - Log/error message fixes, improvements, and unification - Makefiles: fixes, improvements- initial versionrhel5-64-build 1425438991AAAAA G1.12.2-42.gc876e3emount.ploopumount.ploopploopploop-balloonploop.8.gz/sbin//usr/sbin//usr/share/man/man8/-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=genericcpiogzip9x86_64x86_64-redhat-linux-gnuBourne shell script text executableELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), strippeddirectory  RRRRRRRRRRR RRRRRRRR }: )Io/5V?S6t ĦlJI~)]JÖ 0(CE~~ܛО^tϵ'ѣDt29E;OosczmzN).蜏!No>? 2/)=nnKSj8kƉjx^0MA%YAqՂmO{~'Nwt|Iw}}X%y!UcśAޝ]K/Ozgny1蝟2ãӓ7]_qƫt/Ɲ`#;zyrzSTN;$Zѻ '1䓬2kŖ'rゖb%~;>wqldzy~/O_v\C6=m7H&s3.Fg9N|1Iy FRsK=IG@~`K3]mrRy/X 79s^ۻ+_Β[ e6*b9RCAϠy ޹i?ٙ 1w}x/:bѷQd ٰRWH9fݒWÊb&T-PQkOW: ":AS+aIn7Bd1'w,Rt" c&Hsɟ.25hte$U o:{< [JMvCE& $,`I_Ln2\ף3C* Tu蹒#̮鈄2&kh-ݹ¿^gWHB^h5UaQdl`c\.sƟrӈ@ުQ&n@*2BwBK<717v"ɸ.X b)4 $]ssaaaCg7ޠVyI&'C˾ń#ʧ!T6!~Sl\skIf[Oϭ2BmCA l?kR< GRl0G&˶?7Utcq:8fc򒩾%* JWމ\C _K%!퓰d6ɂ H zDva="C׆6l\++\n@ƺT~b3gɤho!_ѩ><VK(&%lte~w74f 5znCj̦*9\kj-fLdZƟba('gsFʁ0pd`u|*;EGj6" XfI ׊Q/MU9A0r͋ "l]&hB̆8I2^X3f1bf[y3>|3)BV&_*{mW_{Wǃa?al2?c=O1M{8~lnL 0`:Pq p%@1  ) "s`p@@Pu@j -ьH4+2p@YV0 p} r@9V$vT}LP}P}P0za2PPl<-I=CP'P{`4L_ P|Z}lE^B)D1DT(XIG1P@ 8l {޵U$HF"H$;haD"DlI{;om7{Ξyw,u<0w`Q܎mc7SZX?f⁘-S{tu)@nV!&6+44gu2^B9|hۡ"hehmڙgww{87Zs`HύCvΡ1ַ~xtu[0uh '9޷:}A+q T'I?M 9o1umH%H뷒.݌gZa|f4Ϣq ZɿЏgq.ƿk2ky7Sg'ɣ~]?"y7IufxO q_"Y>0%$_`yS`DLHY4m$7xIckH||v\ek0M$?d8H~ 3nj ~򼘤e,s[o%Z7owe fujމZo=^/]onI_hDq4y9F&QMVjϣ Hv$= c.tq@ wh';~ 񿢑˴^NK=Zm f]H~SGP}14ߩg)A?y^3cO8;⹆ny1_߮Zsm#L/%5<>&LJyB.U #tVPخ*ᗔױPNNqxzR' ")!JBn%UP}DH9[PpwPpO/QW(;92)WEJU #a3Fʕ@`c8Ӈ!rJ]DVHA|"&j~?vud$H Rb"GŻ3 RC 7N}2EDv<]ULyBUFgV]AW5<_AUC̰ʊ:df2p5HfUB%?dR6KPŤ]>]+'NBGޣUC,RDl"HAm*/([9%tRS DžtLQgL[:mQ}\9xvi'gB({4Q*0< a\׷U@%A(+18bB ]p rƗW!<h$ ǷpC' Ԁ+%HN +8f{3ѲmzW poY0 CTΑbq%pa,$FPȞ2,C }7>E+wJzǑ ܜz])W&cS. ];ǫXgIlokozz`g Yf&HLϟ͍6?#Xd;UMK>瀟YCʤfWU&-+oSkVy8MFT9LTQE B@4002l#"n8!hA0.2ZTjiE-Q cEpNΜߘ3J|VƓU^}koͼY=od{P[?{ IlfV|}{_2xWM>&>/~ 6?|/|)}_WW>.*Os5_kW]o}|Z?|3oa'?|;`w${?V~c;?|?w=~/Ļçud?ae? ?O???ϲs&%3u4 ޙ:A"9%$xl5 b5QsL#F0duEb)9O\PoS b^zr?1/u#o..~7qY\R7y3 7?Wz8*7O|O\;Z7_yc7co7zyP8~q{-oN[y9*NxH ~x:ɇџ|νR\#_|)Ev^<d߳/v 7`e +a^|m ae*L ĐutP&|%:x-SiONNf멈@O1*\ӄմ<8ٮv+WkPoRCQ)FK[$ՐF2w7-mutד9Z)[aͲtBX'F),բk:LZ!9m~KkgK;iq?ڞJmF,+SzBoV,q+WP:V㿠ze ?$)Y%fȈNqAc AjT6:dG8zO50#<g~Z8~F{%yܼAvN^=);\henwY58EFeF\ZkIo=YiH)=N@i~߂Yܬz,j{[÷ _ůKL>=; "1}}<>]}Sf>{Y$}J+7P0(J4ؾ@5=A+ʖHI5pW;V{O8STa}u ~)gY IeFWNgӽKkrhdt4JoDswVG[.zd NJ"N+Y!Q/VD׹Ykڦ\̴3>]闼==K_N<0s%TUEOyr37cཫOõ]>_gy;CU!J>aL-aIM'S 7SD`*3)4sa~. bDV5XI(n[q9ZG9:̨{Z'+=/)KԽ ~lhxDm،choxSRƈ͝q".GC-M=NYr!?7Xd ,qF`Yw J,x=x>7["TW'8<י)UKpi2eQ{;HҚ,YSI\`a%TaQ ,ZH6qcӳ:0RCzh H PE 􇻼cSfH[G°}  4[ Nw0yKZ2l%o?2vI!<ёbU+"L=Wg1= gz=J?ЮK*`Ϥt='''IjŔD$D;5Ni)ab<(fg lb@1. 0ebh@#+H"|]A\Hδ#Vg0nG7bH HhBe˶GU|4 T{gfse[aY2DfAsޙ)Nc]=* d [TJE"f0$ٻ+@Iogu$#蔒v1<ˍkF}ƴף7tS1 |7Y[go"< 0&{uw<^s4Ns]Koh%p hY{6>;n]|ԶEx}bD"+-dL3flaD 5X '>'Gs8L[0g&)%^K>+ ;wʤV@?>8B&l(w 4(VwF)0i02 *RMnW! h |I:C{8 );B6L:[lP]?A v[迂rouH(6~@O%HM(VV얣 p9ChuZrz>:: 1t(^Y+%S_Fd4e+8z3'!A|D5|"G4`c(؇4k;tE'zJ@CY6egW*ulas96^tޗq "Om&~N8({L(СVԚU x ʏ{ęKl{Vl4֦mtSM.7[v2[}1Yk|= xePtpAALx4<4m %B *6N<*c,VAt^WymRJ_W`"ĀŠH9矙43u^σmiElK-Y@'K0>y0tf/~AzKxI['n۾u1 -)Co>Ot:a/,Gc<C]'3YvPS8LuM=j+Ӛr[{:*ɢqXF|TL\qkՑj?:7wkzϪңO'&'E|}]JHVŪT9CU*X. RPq@䎝 {M_HItB=4Kb&:R{B10A#,ggIj~ (]1p=ƪGBmY{5eSp˯)RS@!z~!g*yw[$ax!,Q&RH765(wtsǧxbC)yPtQAXa? qW b}:u$ϭrb4j8:!4\a}24+t1oԛS0SzmƸ3Jff>P##'lPXsڤH DN 'N֕Lf73S3 T3lIg5fz&w 5: a0< ̣š9h^0\-Kg0V}Sm]Bܴ( 3kC{~aI6>? w̼^O &P30F<3#5$Fqڣh/\vʞM {7L>>ʇU(j`~gE}#aC̏7@o(0m>.Kv -('˰jh4w3L!Z\/PG]n#klfix晏F+u(ޔ%HPq`d91ŚssQ7Y."6b~ܑ(ttAJa/ 9}4vR#gJ CKGkr^=҉\:#\µ\Hq,nwƫ`jnZkkZlxX.9f$N9`p*'0:fT=dQ:}< {` I[QD t \JBIwE& 7=<cœ/shTPlFl׋Bur9(&pn,M.%7աY;Pa`I ƧG`6xO4Vߦ5 Ig w'4Vw|I`p׽3f@z TӁ |r½ZQWa;tU)9a[.vfJTt<*kڿTN3du=OԻCbОG!htŠ)L{$E㐼<5隈teʃ~s쀖o(fcunP:{*/xs Oh]HDAYՕc( f2'/DpPG} 5 ЗV.I aL##F5!8)"8Z;9 c՝m^ZBf N`FjI ?l^ c#O#_`۰ KUG+dJbb B%=Q4,?Im)g}B3."tGQ m+u%xWs)BӈћBxTaΣ~gtU4}>a,*ÕQ8A(_&r]ڋu_Hez"Q>ʮ 0Pff}suRTUjta#gB>ۀŠ5UM}ElLI8AO6Ct;1,b0F:CA.w;,ƚDx){ s8uOV|~7PGCK p=+hU2iOA'pSLPP^NVToyDrq/a" 3D -Bs1L&Y琮;R~EA3raѓ #U#&lZR }?]QJCǸȰ/1%ZiY9;[K]܏jKvKD(DQ&l. H7'< >OS;${QOEipe!JU%iU^5hӞ<$/1< hEHAiq3`70̂ʳ<сөBO6y00,OPlXX/{n!%0սU4oh YG%Hu#^`~ ݔ{By}MLB~z~ ԡK ˈp=jUi{9UagP{'SƝqL8+-gRe&N҂$5 | @[f~,XLl к ߗbh&,hROV=1R ep[AnTcX{JÛY7툊J [}~kiB7e>ˠF"H4>LNc:(%<'^V*2G^۬Hz (iI>؟A؜h`aɔ"FFG01g`b$!LH jg_Tkcuq=H_SΖb}1um`٭dky+[)i^ MLMg8( 3l>l 5Q7O~2J'7)CujIgm.aD\< y3+ֺIcs;pO7_2wȉ(b|hG&Z^eNl+{\0k+dNrJР@P>zdWŞ/6O7=t+X ,w 4_+ DY+{hw@yҪ*yiovnjK_0B{ n;^;e• AOo֤U ƭۈ)ZkIJ\Bu4;[HȨnkP5J{ rh6ؠTtxqOߠdB\ms>;]*q?̅-nOGn}#e0 u4P>]lP:rQ\laa VA>"l̢{<zeQ]KnmAW4Dw4oa9n5_⹐ܳKaNDK_`H acƁouڤ`p0t%3ѮѮCBů(ogC7ƈG*!x%?(/xQwohϯ9 Ϩ|Z~yJWDpE >^[X7a'4}05*؟4{@rd^YD:2d+ʜt*}Jc#)hl]Mo0 uKm(mQl+[1$j4#%[4Y[}ɗDQ"E>򐇫'_+WC*s>~ vp8269%ry@XAd vgr-8YM |+6q%|y Dtz0,_'/ukyHD}ʮ\^TN&wY-L0"I4ajރ#Ҩ5J-okg>Ua  \;o+f7{5%Ο2,KI´6ڰ@f>g5.5,؆FՂYQ Cχ:z J`3m̴ HuGrtώ5RĂ{vOFj"NJKR5IY׺f|8jp֬EklÖ& f: `[é&u+n_Q ' :ɢ>k◸ `[]mk}!ӄ! o+U )AP%@ Toj "V 7hߨg%wbO!`q ʦVDN"fEQRڸV̸]qz:*F욣UFB)eڠ:09)y>Whp\{G} ,T MUNo$Y+tMXj4#.Ns LŒ.'߮+}> 1S7RŌN5XURB)QTh붵`iŒl&UDR +*hBr 16N^¢39^@W + ̯ \))|eqF:W^/휮q*HYCUZ 7.zhbJ{8z url>FT=UqG1W錋+WbJz?+K7"DpOjAAPuTC3$& %K±T r@ -=uo*7oMHaTMa~ppL b*y6}_Յ,>Qwt:9 `"]}pTu@`m BZ,-ؘyZiwkV}BDqi];tӪӔҦ!2R; 8 $Τٞsﹻ]ES珺ˈ߻{Ϲ=68gkx5__^?$,W43~OIk=GMO\P`O?`z]ܒz{(JK"_3=BnrSOTޥߣ޾pYiZ_i] --+gkKW[:K]|ӪhS)w" LSUgK;*+eMw.!q072M6ɖq=E:H_q B( Fgh"ԏk|( eŠd؝[ eC 7Y&3? zPP) ùt".6N JDLΠt&eٹ)r ǣôX_؎wc& 0zιeWd\L(ΤҞ8nL3ZO bh Kc-(4i.*^)lJntiO[^m ]v}Cf^[th) wzŏw ׂ+ET@kRQm-ƦmG8?:-mǽ7\z¼"dkU|fh[-|}ʯ-_Cz$_9vOq`N_"*a jXYcݡL_cי4~H9lO&0>0`&duF97}-X4 ֡C7t꠳Ɩ:򟄃i:I4q5LxH Pܫ we&l|0&&؝Nfܷp +1qh$ 2TTkrtȋOȄ ɫ E#po-->,L;F2Rybe3>>yGЧ#pk5mem—5ŝ|p.A,zLNﷆoup;khۼeSۦ9=dQbmH}?q.;ړa#]%R+n!pvY(d`Wޱ5]mx(-yͦ6Q|LybPH"t*}WI/`):~919YW5MPH=cp፩Ll?CFc=J]&XM7*TN8)ZxDէ`%k~4qZΞo'x"||pk Ev5N'CiOA'03P U@gz0 xֿ #xpߟAT^@oB=0 y>yCǠg1 y!o,|ֿt^po0 xJpxb>E>0k!˙t-GUG\@I1̣[`1m壕{gmsu>|LҾtzls]r_a9Q*z\CcXEBtYa~ ޷*~dw\OݭKrO׃l05ͮq^2Qφ?  WGk+`l_o 4$fb\9sծwMq= >=Pɔڿp|>~;=8TqؒpP@ݨʏcOX_0U^&ݹl8]C| Q+WP[y"wj'xk+* `V;&ORas5Zs a'USlg^I?J ח\?"p-Ǵqy|.f+~$Ɔgk./SC^m ^|Gzl/ $J8Y">HxD}ҏ|L ~.©{ mx>O"\G2(ܭŧ)&OS|ƒ(_^OC@ Gzs/t<¼ff^'LylĻ ly9o,dƘ7<4f3" D!LHGDldBRP6ļ̈́"F,)~CC>0 BOixr|tB$;&B_H[K_Ѧ sGw4*MSOAIJVmվ)Ud[HyiOF{Z"^O+iSHSF[#dC̷gκnjJ;}šTG5! {‡5y?:>rUF&/!vP7`0eM__"Зh;3T[ $/*Oط.&_K( Mاwe}#qTiݟLr%&/o.E^(T{W?o.)0Mߘ暦0ղN 5BF ܄7D>_ʦhs*_M ZtSC UȻ:uG*mОΰ %],8I%V)喉!`:Kcc+ȑ׺Xcԙ%V9'M(ϳq~'큢}g6: F r[A}?剰ܐgin)o#]Cm~7'G{hE^_UVr)ߐ~bு&e5_ }:G7=_ylg?y rD׶ybconnn9セ}ֱ&n'ʿD}RHB]62َvrUok# |1K9SӡpF?SڱD Kc@糢]i"ޚyYGO7(޽vXÄs5z/gi닝GMyEUiaeD:pײU=y~ު׶k/2}r|(83;?ri] ğ&~<i*( +QRz'irOk$'/qϦR?#F|eIХ ' 34"AYfdf?xjRiaa5 /2#F8LAzRdc^R-}4aґ w|˴%2z |E_b ܳ]Ġ4H@2]1MKi2#K@Z1-#RQ[maC3Hlĕ>fO$ L_,G\@/@6L$#0 D $L< $rYTc(PJ#Jp}5 , P<)M_J̈!5M((5 9/G@t84Wb$B02 Qނ0_{!CRs:ס!ܼ w5ޕ oS,/Sm?VXP-]LpX9m4}[o(t{Qw8Z&1} k)쓩׻ [ ~S B Q!oQ},«*zvH{# nU+zO9«:)igZ^]+%Wq( /{GoR ~+}«kl~j*oWxud_hSWo*W1gֵZFhՉu#cȖtܨeN,?UD n,@=leȘ$0 }q y R~MnN]n9{N{iࣵ7 }Z{ϵ}k>!}>6eF4vk;-GVT7g` iɟQ*@QQj.F(5L>tib(5@ F^`JQ*@I{PyK@^ƖWwV#̟'׃?Q̟\n`5̟x'^3&O^W+?2)O 4'̟|g̿yNggeg78DE\]\ ƺ]MsK% c .~0c8N-FUjbe !+k6`W6L򬜹؏*ڠN+X햽"3u?3pn;uA_[E={-&F5nu׭ӈOKj|=AߩA|.zZ\z[HQO!$nr-~&_㽊Xw=xS=*9!^,w\_RxWߦ l=y|O\Kr͝&2~J ")kkOWM-ONx]:&@;Rc V35t 8eiۻeI9)_Da\&k_0_tpR=cJdQL@^OHLI}~U){;wVޓ4`p_;jwnدiopS|=S4)WK|nnׂS%r;m=3מ2{7ݝߛ\-%F{TE {D>;[$a|5NeoB kX_.eX|" EFŢX#=ɷ'G}p}OV}^oT?Hq9$Y(xGܕdď;4ViKG]:sӛM&ǿꐍ_VhUi{gw&>&U:o$!QvaRWbN}449$XKϴz}򲈺-rŵm\t&|7:tKe ]D(4[4]F[WQ~9eϯ'\RALprLh4{9~9/-u";JI"IUG/gUFlڣI#,o46vFpI+sT5B `]?и%jAkLAA/ =` Y!>ti]jUɇ'>z- 'к ~ տ_`>; Rp nHzWSP`%r9M@o_f VaHED cၝ 4v'F]7Hd21^ 6%a=^l]Qw߻ܞw{/gWTMUeX1\QoH3[KE+cAFlo1j2rw%s!T3؏: ('ûP4Xa Neiϣ(T FaO`H).jc͉tϨxQ" *_h&l[ۀ}%C$#eM3d7,ʅ).[j>D=,͢Pkg}L[`V J`Y ~IZclǻ)Pă<:C`OfS+oA?E% ~4S4miEus=VmotMk 7a+mЌ*6*gUX4P|B%bks9N;49E ¹ao L(Gc:2^Χ/BSb~?&)(wRe 8@,΍gբ+NDQڟ2Ae=63igфJB} -J0_)&a;%;WFl-(o0n7<ބK #PLCQNdÔ'nޡhPm7&il1&gT+O/$;]_ GP ed㽲69>9| &!% YUo CPp\(7#ߩ7> ]*EjT-^k];^n;Hm<a3Lg8z1p0>NC" " ShEiB&`us&(ށfJS;hI&t12#IGndr#3ZdlEl=ZcA;>^;}QPmFqLsTMnqJׅ8ͶC,v&ȅI5BT0Ǫ`Uc+piM F.^&n&Y7:]ti&BCgv 6Rk\+i嫮)Y _u]הs|U4L+5l^|S-<~4Ȓ^Z8+l1`"0\,]y,ع]_5c[IࢲY-1[wz h7oB>LtvSpP(X vPɏAAʁuTjIZԉSHqtuDQ\9JV>:\4uxu=.ƔeX\cY)!CC~4|K^̍ xĴAJ5 x }3tUanO >гQ #TV>./1l; ȰIgS(-S|/uF>e 4QN6:k {1W%v\ 1n8;h:GSoCbLbU{ԴӰ -.fw٭ȍꦻ}A%8Rx)cΆia|2K&'L,l֠7dG_A !,q2?ʁE}mh8rO:8.ƃr8CCVvT@-W"eZD EJS ʹB`-6(4apzbHKʵb%$&Ebб{@%5คU[[o3 R@o:q1$$Bŀ.9H *C܃'2}:qzPڃ2e?p %z!}%_N''~{yPN3  :vy=(VTy=侱1ĸL` ̀90 Xk` l] 3`̃%V`oj5@So^K?~pu4 OAΟS4< r>F>9ߕ~¼9ZA"A>̘ "Xs.@_`"ؾE¤9T;_N>ysQ!{N14B70vNb6y4,_@~s6}wNb8y4dwNU/H9 ,[H;/(W9 0/s*,I:<rNC s8ZwN<9 Ey l:ӳK% UɷMyS[<-`g+jl[a3DWߟck|8/gwu߯23Xtٕص_󪧥^As#bSݼܜ9ۿRӷ~ 6=Hg[fwvRѺ\3۞vb_}*Z(ZU, ŋvψ{[-O&Kꟶ]Wnp2=[;Zi3]{>z`{UgOk3mߕ{Wg|h}lW);y*?oypy0UOFqw/Cq()8Cq+0t(zM6=O_r\ H$wn'ܔMMz\^7&54T$G77CkuN{Hb]IܾRL[c/aL_^;U?5+A}VE Uۍf#&YpyC{*2E@}yo9G:h]Zy-;bP= ދL{.U@)Wl[jOUfXw=6X҈oj:_+ mkzwt1N:)(f{}K\ޱk=jBDŽK \j7!V(Pӈ䳀(R3T$sEkU?٫΃ݏ5F_J0Ƒu{8RznP)E gXǚ <,11oMV%M%%\Bj-BMr3h9^R{:M[nj_9U @t'VWQ"/s+=il8k;U*Xg٧, ˄97+aouv|f\ >y܄D{T9R29xFV(#GERvD_&Di5\T fBֈ ʫՏGKLs3N3d[#Y=1ԘQ+;x(;t&8?3f`^1|4U~'peY|aL,!tHL,5VVacsG"Cs>#P߀[~&g5h^g`%jƪ ؆2YRcQ[WBf18+vۍeoh?R, ߣJ~eUIѠr'qo ӟllZL$"L.ӽ9I,Tέ"hSG3##`q+"FS@g&!ٮOSr34NUܦn`Sngjۃ JhIx"Qn !c W&Қ6aLrw ?DV\٬},+,G!N*s5J0d9h4-OdUb<&O@A5D~k(Y~ ڝ#EOi}@ECOOar9$iJR&~ w(sޓѽ 냈lW^mSt9E4 `Gk+t2H2pN^eԿh؁eႈ_#GQ?bLnUik&xd["aЩi0rNC)A+Eq(6xFĘ4'"z *_>b‚W'˚472]* +ձfUGyZ]}i1&=$YB5iC&E$"γ !YrKjmH~'5`}"~H6_&bF*uyg %#X< X4Ihm.<8YÆ2>$gP8 @%#B6* n/>J>6+fӑ%B 'eG;77J'b):ε4v@~(dN+xO4ДK5JH3\ɉ10/,|ʣcǝXvxg2G}n%FtI_]rcH`', ^+n2*9)ZfO(RܓsNNJRpmϜO?Tʑ[kV1 1kc}derv:Dޗ[~X9V4~Z_ЩZuB"`aӇșgrjٕ#:Lx׈Fl$1gkh-jG\+WUW(InTm4!\\B,[ *TYX\FDC i>7 ,ɵnS9Vɼf$#qHJl%GdD/Υ⏜`:^KMV>6Wd/pK쾒pZjie;lb$0.?ee- {ϵ*`rBkj)9s/6X7|WU$u 46W֎Vv2ÐV~HF%ڔ:AcHLOdyepeXb6CadIsrd}9*"؅F}Fxu36^S0Gޘ`JԎ5.,Gż;ؑQ ,M\ӗ8Ϛ!f::Bl$%)ZMiP?"'  rO׭T֥y-`y#:gsP8d4mrt򾶤@x] S΁ JX];#L̚ARʴI. h[P!2y: SW#9v+!`$"?|AO'Mu2L<.I<Ǭ(ᅕ4\)XHv)65QMdmfIYOB_1UYQ<\JV=2r3c8n4QyZ{S\2Ђr1*$HiaxP;GaFVM ?2;Cm(sSDGteqt/C1VM%pjbfZBVj_?9: [%zK ̸gg*(S ]Vkv~vgifآba&v~N}Ȋ_4=SzTXGk yrY1<oTgPŞI^Qz3xN=_r錎-A(݌Y8Vs0F֌'c%3E昐OP&Il' rV_C_vQ+[2US?'$)^whzK*;ɲm .Rڹϸ;i1J%ac\ N Gjϫ {eI-Zڻ7nYPf)E1 1cDbkfT~`W}(%Z ?ڝF $G{,OͲ0FWtQ{;:ÙXN,7,ad%H+5-=j'&:ö?ULY\RޑtZb*b}˘׸ i@׮~^/@':ɘ/ 1"u߷e3:[vҝ!q-fYχf :1va(%R·t9둮S2NC%U%D󤟍x|ip)h&E]!545JAv9}^i: (pkMmy2՛yxX)WRA@1$rc'fX0 f68 <$sFcD M~ )юtc5C$~6q^SZw28j9 s9"9 .iD{q3]7mrUWS,ÏZP Xش],u;tgl#Z~>'_8 ΝUݮph5 ` 7mk;Mu|=ҳg2j֘墽nYID9^<M-ÆUmH`+SJK:jRyGtƀsJhM`{IƗtNT"K^˖<Mv.j꡾cGLe]i7jWc,~g*wx> lX4{"p"(l5Qv &O:JoqZ6É[/߿,έ,{D*-f8k)@2HP H 7z~T/q*$jN DҾ  Z$==\'@VQ̂_ܽZ3 atʍj=๘N& JP]ȭo,էPICI8AnNNo*G>ԜXa$|T$$t{#ӝiMu"ʥG|e@KU%_ٌkտh)6 ?qjOzM3l3zeҋIƦn*C.\܈F?"-4-XjztҌf6#o9~{8xquF^}\@R[5_w*U5"eǢBY9B0NJE(TYDza:\ %[VXH;^=LC`".lv!7ڰ!xHKd`)œ]{qDhgpߔׯ ̢ue}R{8 cvu`>)دnȦN NeYJ1K!lX&T@BU;sgazD!Gq |zzgܩ/Ћx@H5phK .Ȓ4Iն,Lح-웆Y|*x<\XcKzl)*R/u7@ε24' X2M~ZF+iGb`SVbHV6ĸ1#C>).'MM' }]$Sr2A*/7rʺxw3nv-F WNIP:h|}*UcU* C>I1! )ƕ,'"oqDrw)_4G=/~! T&dЌDDk$uk_(;PKLzZYfJ@5R@y{5 Otr "&~1m۞ 5PV g]8sE.BK]Z˔71+rcYi dPGST y}  d@~br;*b_"@WBoc{m>l0ٛȊZ.sŝ7mz`) x A&&&; _ab &w G!.E=#/Q4Ov#WOyIȊC]- $j{W_Rn< niK%^e3nwȡ{6b'0P i!Q_рEoO}c{#t}EX>7k+Y/Sjˋh+WoO!˧M tA(ZsgbHE DśP%I>҉OlEL$n;,)"ܛ#N~r$4)쐣EpΗl0pC=|DFQs#{d'