ploop-1.9-1> A AlpA?R: Զ\G /0)5]9>TcT&ML8a5c81ebf5e3f04c89910646700caf73e5db23ad2"0G$.bM?R: ԶaF)I\L6CY.ܢ/GG:Oks>857?5'd   `dtx        (       :P |   (8 9 :q F1G1 H1L I1x X1Y1\1 ]1 ^28b2_d2e2f2k2l2t3 u30 v3\w4 x48 y4d*z5 {5 Cploop1.91ploop toolsThis package contains tools to work with ploop devices and images.Rrhel5-64-build{GNU GPLApplications/Systemlinuxx86_64 |x>!z `"P%큤RRRRRRRRRRRa42395dbf879d283a2b4bb7165dd5ea0a6783235f7fe576645b280c50d51859138a9fd8a0125c08cc2b99f96ff8736c506f5eefd4336553d0153f06048f47c65a74799d6fd9531373c2e970045fbaa9b57ea78ed2d2a3744b0e1c1dd055fd2e6b33778461cb60014599bc426c53b846f9cb7974b9c11307ba05b52537fd554de8ab88c5b715a0b8d4cc850582539407608371294b474cc28895c2c1cb19d25b398624eb526e90ab4047a3716b43a10b1rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootploop-1.9-1.src.rpmploop@@@@@@JJ@/bin/shlibc.so.6()(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libploop.so.1()(64bit)ploop-librpmlib(CompressedFileNames)rpmlib(PayloadFilesHavePrefix)rtld(GNU_HASH)1.93.0.4-14.0-14.4.2RQۦQk`Q<`P)PaH`O`OOOjO^`Kir 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- 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 1377756672AAAAAAAAAAA@@@@Am@@@An@AI1.9-1mount.ploopumount.ploopploopploop-balloonploop-checkploop-copyploop-fsckploop-growploop-mergeploop-statploop.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$RRRRRRRR RRRRRR RRRRR RRRRR RRRRRR RRRRRR RRRRRR Ȱ$vʽK[?W]lW^'n Xp=b;_\$Z??"Iw;wgg3kqT !PEUyC U< B* {fwn6Xi|9ssˌeLT ƳӇO粔>])}vv!|KMI܆;۟f\UΒuآCuZ&zq[,o!ds)R0<ö퓹ڦljmZ\mY['פf +B^M7|OX6UezfujeW-{eϪڭ}nuRbayni- ksKZ\^+3W(Qô-g]"0iPNcSU-ixiEr`lN/̀zkV{[nGu*>ۆ媊jm%iU j3+*ëJn]"A:J2IUh/%YrGQ"PhefgU- Čr-xpT,9hvFָ;U˦QY%-OMDU%!ħ&Qé[j-։WIvP/sY.>K2$%IKχ.SO*B<ӭi."nq[;;9"ḶAsH&3o:eN>0OCatЈʆ:^!( ǭ|*-o1"EO]e#1BѲX' 4Ewxa%n4fæ~4k H!QCfs7)j&;K QX5F*_ʁ}dx؎h0a,>9@^*0#QԄYMf";QS\J 7O@@`r'oe:%Fg:?PoEtI6xCߖդX/2ԖuQjIƥ;FnT~ _*?C[d)&uxsXLV-Ɏ8ߎCxp8@fe((ddqOznԚi=ԁ{nd^ѽvP'!)1zm6WDSSm.dlrwHڼ,n~)G? ɴ|($q"ډ7/X"B!lv|}ĄUhڝס)RhNZpLR1@H * ]p5?B3cEVC錒ޙtg<"ݙKw樬+sFW,{:wJdґSpL~|y Ӓ$'5mhFUt(#X2BSD c`+0J·Э=ҐҲvl9M2k#<~"Y 0֖.1Ǭa8$]7206[F]>0TE`SIg Cԭi`DS Rv۳%wXhR(jʂBd dFGF:A0+#GQ+7m܌S"챞D;Hg&z?iD78$>x֏E&1zUWDÓ1ڇDco2FD&#^bQo|17Q>wѱR|a|}a\HI ~?&{?QE}vB{L#cn>Sxӽ=^q(,ۅCIϋgOp\М IHuI0!HDzN˒ Q⇰Teɟ IzVҗ! =ɟ%CTߔ&%aOnHM< tY pT~ ?@ 6Y@0ļ">6deww߆@l܉?3uRXE:3H[#E9ݷ9y`2w=w_^\Z3kKWRK{sO`wod\(&N-Vo›hhC\wXW}dȼ_'Zzү_ߥ6qfiY|3w[K5?qZkg؈6ZE>!];w-|nRmiQ+?F~WU YoHa׊sS&RfȾ\/? ٔ~FÄh¢WKc8l<\xq#8_|R/=hj \bd.0kZ?mg|o`F_?=/1ƏgO`+w1f^όy=3/8)???_?oLWfGhKګj>oA{l^^U/KۋeڝALfG;~'7K0F>_]{~XNcםpF.85՞8)S8cEZ 1P8_ kh_.Rd~Nzh2I.PkPry+ɩvO텹x}^ Wg%{9]_Wm{ڟ؋q58cES`&")T-{xN╀c9߬(JHv9 e]<ǀS~/Sj=7G-vZ֎]N-/ol[)/g1HT*1y8.㰧 crcadl]^Qr Nm@&1[j%qw؉s;Fe>ܩ؈RCc@%Kx1 k_f+}z8ڷXg Xx*DM~\/Ҡ 8Ѥ_k-ro/tpw)"ћԔF>afD sFWcC97 `}q*tz023yw4U&R"= {%-c0٫0k -+AYǘs75T^#4=>OLoXǂ,ub5 -7'}Ej`܋fiקDݪ=W/KVDo}7Xv_tξ:oR3aLD$Q(rqr. }Lı4=5ʹ!$򲘚_۾?c񷼃gvaHȎːoϧE QhZ]1H^A3cPπRgCj)"^2'Rg$w6$BgE+` a mu)V /,sYlaH?r>=' 3" +ԓs-îwaC_kGC/ ɻKw~h ѓ;`:a.k+l0`!.;g d#zGxZSm O_M@ބ.7z Idpi'4L[aRdxm׀7t\< TWHl1댱fO mghhL6nUjţ8$V:$$dff笳wLui@=;6PbuY@UUwf1t{w߽w}.2(BU`VkR0ˈB g!iJ}V=vE O#뿴kVB{}M̓~00xXIVLO75# "^evPlxu.pJ)X߯_84X{z?̣һhHZ-;`IyڃډtS؃9rhj|R G`:;MV7}*Ra/A`M;+vL0jKA{xr$%|\ ϧ$_~nO/Ԃ*T ki< 2hj?cD|1 cއnVjb H'L-V%Al $(]ױ87@HP|(ʔF%]뾋<{2EO`M#Db#.0{=dā~ur4_guqwp'(go>«O\&Onb>m&ӊ{X`"= ~m@hxH'=d]W72ޓԗOk~7avk369`iLR=63/2 ,.}cc«:UJlEF@xO+.uyDx:JVdz' BS6)q&#N)Sbq0K䯛+rš@Nl7@`)]ߣ9`yN^SSOlFW'Ae`փ5QjGUOPP6;` Xm_rL=6c61m rLp {i^ioU4(8_NҔ n iV_9aWu(9/{-!+,(qVrg-!1q]6R+DISpXhT_एpaɤ4; B[=}Id2&PѳA23r 8z`0Z V 8#k^ZСuB/;lfD{+EV\F+0Tơ31jƉ&@(":-0HD4DXh^/ElEguA>Dt2$|Yg2<9'Bxi+2cyA3ĺNCmQ.\yJWz\ ¤IäXwQv/ԽPc0J=/a?=ȺՕ}?ǖBM{[__xu*LۖF*>T&4mU=x5 0];V9:w)V^7ߏ (9wQNԥh{AYDGch$?KN2$lժ&ۘ|'*|Ejxao .RN Xpm08 LcEG\0S5!t) |`~|U &x a"aC9F.:L 6 &? `F]\*y-Ƙf4qh@vWNT6] l2DTMmjn2)6eK;Kqʿ [i;h8DpG٦B`h[Da$! ESE ~"2tIœ'a|,L +־K+yuO;b+{uj]Ie 5k3-=>0pDW-l3)]smJ*mOc98xÃ)eΊq%ٻY>گ1G7C=٭;z]d7-vW/,#ѻ%Yyk"?(R:?-A,付Lc&TwhrXVDo(NJrw3ڢ%ܪw?S~;-YFPs|>nd>fT}-oG7G._ /wJz棲Rj>rAi-&lV>bfdW-;oG܀|[i[?!%Sҹ]jN8|:g?_yR:/Ykp5vyb,~@0%s-Y># Eu/r<6} gK9g$*Yd4Mn= [[,@]+wG(Aa>{&f鴻 q2!ݒ^wk@7{\Ɣ]j2@yf &C;j9XMӍؼ`k -e 4Kfy:zeO?O [5b@@'yuSzv]cπZomz]$9Ọtq\k7N;S7@9)S,M$[#^ ɨ[C;ĿJ+j*<%6 O6[.#PQ=_wj+'p=h߮⟕u_!-v;YSy<@KQbf"$׈o"-׈1A\HAb8F cD"γ?>nL˱02G^(Y'eEqCA,.c3|#t,.qlA,k_.Op>qs^"Nkk<&n{ALQq8S}kk6Lkoe; (=VTʻ9t|_9p_G*]z _D2=f|[|~ki;Ȟ `8'_'f6}fh՗9{<p>GBXcu͏ TEʚ:EkʽMմXaxYW[Ő4[}k=%A&}r+)pfGi6|G 3bōvϐܯcd߬!{nض%;ktɾZ;3d?s(:=Ϻ&C1?bďt_ֈw|JЫrD5ț<xsBf]xoUgY3ݻ2}ԠW:z'UIǏ}XUwŰ/ ɒJZJ9Re]p`j5`Lm(C ^MסSmwbί`7!ZScI:2yImjV)_Ok&Y?fx4u=~'ÚY M5х+]s?B)70 ?'[74%_>Zh٣җ5!+ZC=kQGߧO5vOpy=]ı k{DYk4Zۧo_89W=‚ŒsuVy{-`NGW8}}ls O7eҍS|G5.C="7o925ؔ򱈃$(/W' ~H?lon>Z90 /IHLt84C vg6Ao[մsxrn(X\~.x/3 ~[kPN#z?`ߺ&хڕϱz`]B߿ u'5h0uOUkj(XzT_Hj~`=Z^P.v3XgZ_7M}9a*zeoBJgx)|tT%_OTzRr^JyڕzNsmz]m (/ /,*v|g~ ]=Cnhap;`^@= 3Eo+3C%[gԝopTwC&Y?$~TFI0d  )uHS:"|ݶJ@uP:8L|Lɂ!n6s}s7͇l9{w{\U}5z_,"Tu4eʮ$S <46o7bk`ȶǖncSkQEՆj𮮪%7Ƈ3xF.3xHF`0 " O0 8M{bl^yNޝݛ>%Sr{odMϭT >^<.7j09iƘs?LyerMcr~4y$09V._\*&-t sH CZ$tcB:asH' C:A1B~Gp`$R~mΓl$BCȓ Ad'(tdPOJ=5B$1)<_N̓,34O2$ꋕi_+mAP= L?oq>$*bm=UF cf@G+8ž yK)dMr"eT;2Ly1[#\)Lxʥ\\))_0oePG7@bX*ơh"=u]D=O@%|prX{ E. ͅ}5k ×\g&dћ(e`V|%  f3JB`t\!0)|x6}FSn!<|2|KCd6Qn0Ү#oWe94zMsH}6{Y6"d˶w.e߱ҶaeU H[?ZѪ#l[-<˳hŇ0ӡ~ԳgU)nzē8YK xp܇z\I5F| ]t2ld :(T~I ĕ)՛8gl<.nJ#}2 saNq>E€<\%N.zrzM, {5 2f/rcQq{)FP.]#Er= (ufo{kԱAFlG|H%/ C1v)&qsAoJI_'Xi4U6Z: 6\&텮k-r +a4~Τ=X\b=<m)FhN"(.-SHkvϢ p}PH"W~ k#> Ϸ'/vlJ3%MKng ~W_j}eU5}0`en#{w32hV֫c/@{Uw57Q#aNVT|,t6ݚV71=n=zCK&%JƲ^7\)\Y]9UfxFS~w~»Co3\k 鐶CIgZFE VzJ.=iMͥ41^ Xy7Unڅ.ln!ٸ/Z 3Ҩ~eq2ZVЂ̇Zo#~RoȕcP`KJEV_R Éz@S}6JQhL\*$_B̗;5"AÆgp3k-`':LV_$ؓIú Oj%']tX~\~]bkshkrB'{Aaӓv!,l>KōT>K3^bލi|be_LgY,> :Yz>˛^ϲ;rww>`>_}_g',Wf,#|+ѝgc;9o,lU&Z6Ɏv ?+c~)&#$QB(#Q,$h]]J q]߽{{So,Y}8soL};o/fyp_3w_~ݯ/_zl(nƸ"hIB&Ch?GՒ¨/Rq 3Ž扵ϳ@wZ뵚QZKWJѠSzBb%!Q1RեVxzáށ^%ȬdӢZU㢡0+ JH'U 1b GREfSfw#[k7=e]Ʋrk~,-V; O6XKc BRi+acm ֏8P]d=`My;17L x: ͓u\o]&|0Wс>wL}OtX$`r% ``T456W+RԪֶդծ^$0=@1xzr hM(g-Ȩze>bG'4Tt LF %l$-M>ӗ`ViVۦ3ڒi/ֶՆ](%b i^˷ec.@)^u D6M{>ɸ}#CwbM629aLϗmd7"BOqne6]0ӱR;{pc)&ELl;ZӺ|e/%텉FaMH9CptICv̄OWZ[y\RUj~~Ҧ{_6iki!=`.u;`# Ď$.Ď"[\fQ'c)d,>K 4R' .5Fvt5-LgܩO8_PAT 807Dxa5C"rJ)$֓va>an_!1A>w-+3 nl' zp5=|I:HWoECHgP.G2L|$.G22=G2'E(49sߗO'˜eEz@v[j*sE?xI2Wez-1Z滚y-UbX}%7l},/Ϗsk3_̜쾀|2pƚqD /4/8ǣ[<գc u0bŸ!G1xE0ޅcl؂q.G1xQ0xY||~G>&߿gͭ~r+:KN>Y'ߙ9x+'Ƿb7񳯴0N׉RqΕ!^/r.YV'҉g,q*9W~<>W_'&9e='AE4WN>X~5?N>/zN˷?R'w 9\Z'﷤eϒ'Ϲ00Ns"SXS^ތwqɆ9% |8%]s䗛r_2"'!neN>0b5AqXnx8yTr;0_-;5nNމO9>54LMb 'e䳵ے11d̩?l—(壒1_d̗9r=Oϟߐ%c>ۯK -=;q4)])rOZ}&nŕw8EX-ҟ`="Y)rEI=|sE}sEA o[o,yB :;`̮G0p/оw ki8]^Mj-";j{yY4Zrۘw5~Bs'Ƽi1o{mNy)1o;6mgƼmmy[ ,0.R+sYuEY:?EY:",r",r/"Es,rd-י1ȸz p^rq818ƿ"xA9Fkgc< 3qlx_#$W_.s`f؟0q &WNj6gزy#-#I]Sv;4\dvz;NeS )AoHsqۢK&JR(=Fb| $Y^Vmo9z wP=gQ ݢ[\gؖ8O9Z 寿58!KC^}2Z{Qer_uQQ!sűY/:a!k!CeCCbCCfg\)au3 CVႬC^&X7Ʋous"!'?uȯYY lSE:u, S% Tdt1+tkӾGN AbH4$?@ $Dc a`}{-qqz>^-!ʟ8 h<6gC9. Mn†ꝔQ&`Cp5kՙ˃&W ܾ~{`,TDAjرVCiyu_< 67P ~taMQ#AOu T!~Oi }(}Ut_7~We{WdVȟO2u,g:z>>\#H`7e><_{&ge:Yc%y9bn A뛹9:O^#13eR_o8 ΄m<F̝#.,,5v`L A,R}CP5^vl1CЌ&mMEo*|ڳF7IT4Hbo*$}S,雊o*%}SMEo*v28k0|61&a-ol)q\5)q\0`< c`<>6xlGH0Q0c]mcw/𱻟,lц?gh.ve$9]3$K4r`H5C*mH6$zȐ&eH ֐hk*Vk+&Lj?.~#yrX%MuQ`XY1hWɎ4,bq ,φbM4t]*|W/UEjkf500nSF L  ܾm``ȭi Y3`N洁hm`Z60 Bfaf`^ Lb OC:Fj` ʡĬ9a@l',~{,0gn`,̴A(ZXn׮[ݰru}KRl]`j " a2<&uBU70h)Qc&v` #+!k'Ĥ8"Q8[HX8=JOS cre^ SL>5\y' ,w:]cOȚ_5 k:~At(t]hEݓbp{ Tl_:t.̀~ Zߩ%lˀ"װ`]n㿷_cqpgpu^IfAd`@6 SF6c$.[AE+\-FQWV Vl3Dyk,|v>uD2.2A&_jV&˭L.2=Dtr+V&˭̻ʌr+SV=]neNr+SV`bbM51ob Č ! "AGفx L L>!U !2s-10fg`:0 607%\71mvO/7Og3r}zB!3%cGɌX$ͷ2O 0 *dvƱo̽Ovg.^? _bF3|4&|Ta&}rgCf=n5ۿ_@ /Հ%sGw)xA˛?{Wب8<"|tkbcM@]&Ƌ51?I923c̈51kb60ca&SsM51!kbEbM851"dMdfĤ1nM hTZ03&f>qkb@-~Њ ?pȽ[P`MS΍ .Е:iV)VVAϵ/~@zp 7doZߐ k=nx:k=zDW[( pPk=:`_]k=^@[A`k=$H[ z@[AZ Nk=Nyl 5 Cj]q5rdjAX>=(5r@5rǃ5tl q܎ s})XA5Gc_Bhb>5?ybޓ5PDG_!F+yk<`<oLe`B[zzle['.dBժ%F ɶt8i#1KC"/^l.bb6Ęe^E¶|~=F{szI|KCaz8PO\AĶ+;Pmh"p%[>JINjIAzq2YPcPϗm8F[XpO/W8%8ᙚ09 ]jh &jmy0d < f!P[UW)kܡp>$[b9!ږ7u xIBCR^!-gCb!&I!$Jba!=S{CIbQ"=O{rI!*%/=DP{I!$xE{6$IylffIHfIdY'qufIp!S\v\vȯ\v\v2e|eC>CC-lA+.F& g܄'uM"3Dpn]0I&Av;n"݄s &wh y>j/=9W~y1e^%k۩PgpvVЋ-17\,vZ<꽸BV (-mA9! >'.\~*Aa8X}hgK,>NUE'R %j3:^lẤY ;5W,|ɡh#h;Xu @$K 4t _PiuEYR+z#W @/h#!yIVH+mC'u3B b``J'ȬV)rѯ))2qꥨ#`)lEf)p>4aGCR׏)%vH1FBQ]ߠ+91EaJf)2+}6+:wEjڣz'x,;SqZa-q35Cf!5m}&3ԝd?U;ɍ3D3w26úbaX, ]K Y,,+KgMIR;i^;yuZNڧ9wbd\N.֭;e[#Z;y6xJG#Jbs'M{~S^&dw,P{7 (eaǃp]NG#߽OR_F =5 @z5S]PSK,$%M$}2BʳЦAJ\ 4jbQك2YαP}`<6sgivDb Ş$<=0lux?Y]HA3,F+3(|  4?'ɠ!(!: T|#DD.z:nns*eqfoCe+ɱ;+uM i!7-xMЏiC;?gJ||VCȴ8b#߶BmXaO,wœf7>wMKXE{ؖ$P4B,y)s,NeP %Nca=)<ωӱ3thv:yy4[|yS~ ;Sih FEQ6wԉL`II)q{z3ΔAkB`gB9#ۙ9g[L(ۙ~a;L ;Pޝ;)?Έu Wl+dj4RQ#pHƑx&Km]M{ C^V hW7ǜnlnQ>DeC..eL^uy̤`f9(lIksx WQWb(rK3-͠"4>Eni+rK3-M@["4!Eni)rKcq-MSnirKcw-MSni4^+csRWY:)) w7FBW¬V3Vg`3CyKՙ lu:: : :[[[[K[VNŽ4?J6aߤ/4jk^cj2F)WXg~oC;wЁϜIj~Z7F3b2? I33?-# eEąKf~hޓoM{.8S{?)*?0ؗQswΆ9bQh~4o ^qiz:>oJ/ Qa~#EK@! LGK%_*~Qpa 4:hbQFwDOSzpl h>$N{}Tx { ZTi֋JwAR[=c.o}r<w w$(6ax10U7G!ގ~A` (yy£K/lw9rG-fW/C]:AۯN,*o+ykx'x^o0誩wS ]1ԬgTd T:f Fُ~Bׂ.4<8] vO3|:?z̅Ea4e0;*^z =m@nz!XSTtH_X݈_O17D/('lM/5Uݩ~:eMզ(kXSuM kzrC|!sY>TH` jtM"n||M,kG[S ^S%tU! 1HT1uʯ5Uh 4J m7TFuArbNa/,OOW-/c2+U @i Njj)CXbQfbRNj̼t.R.Hhdd@UȠh2%ݿKap9u`DS9En ESs8D8XHs'C4:"n t}8Լ鋞/©=}7ap͖v7}JVRUXI7˞ۇX\ߍ-9U:? Z,_ ,ʻr:FeA7k{EQb9>Cbu1sb1XX|Yg4ub#&э5:D({. A$gkO瞽^_g{~d*13~bKOY,+z+HA採bپu;uIe)Sܟ^0t"B;M%x.⽚k|jpiod)qGU0 lw3zȤ"?=dxkE+8{ϐT+>k}(ob'>T  N0c(ؔi=c@P-iٗM"mM3βmwb&J7hp;3i {aCvMh']fTjr~F:JnI7r{nxnZ+mo1-b_o0R¾g/C[ʮKc'*4C &32<SץXwmY䗂EFvׯ~}oW_RE WeDE6wj$!-nݦe@Cɒ9tKx !d)@ yqN7{!> ^6֥ BeFQWLM,)@kFЗ; 4}mDDP}a|مh2Hpmeꩵ^fgouRasx*]_c%|\Mݹ8%i}Diǵ=%8v-|'0,, E{7lM0HCK z!vY'Ynt@8`NFF%lԓX}`8OLԧBQQQ902Z1ir}Z ]5A%WCn[1}+vR5bRT='Du^޻JMKL n#q|nv9E,O} UlUg4! G7r$c9r@kBhy7murG i &bO_X 2~au+~.ܘёX-[Ikn$X28oUՋM%}W %0I E`Qkָ֣-Hx bA}BGNPӊ O - ݹ_jdn  T/Yx {L‚>=ȗBFΖi Ѧ*jP7 gW8霦4YM@q/.%P*N#mDCqC~ n7[ ;2jw+^Hd.z*OB'X2kU<ڇ&q갰C]B \6ShfT ä;23Z}$HۙXUQQfg?rkq$ BRQ+w\4EiJ|uQ oB V(ƶtœP2,t V)9jhw @jC=Tb>lؖܐcxmWH"I\e'?A]wlDܑ'>_n~+sްts{/W!|qC+ζfi*Uqvōz(c?9u1fH)d˓HS?r` 6\]jlKDf03T\~"OnPxT^B"9/QD3,Z6͊95R'àia)LqL|A"owy;d`>Rsmn– '.L%!VF41B[x' c˃,a~xVssH.tH /zzGGk@skxøglg12|[~{MhVWt"02݆]I*w:APe[B`[ۉUy^,n33+dӶg,G#V! 0@QB\wڑO y6#l y0$v2OO,KZZ*CB;_G9<KD}A{I~@oqhР[ɝBz3&AiI놭,#XBpp,3Lʍ[c-pU>h*f_=7ˉ>r|2PIb,h.IMz|2>- Q l~A|l쮟C l^h5dtYMq ?K>I$&QiւA;jYs-pexq>"ჱry"D /.<&;"S :.k Fk{8hmjADHoN!~o"cJXD\.M>H9 Myi,.ˎSʹiw\M+[OE< ^louD ƉITï$1Ҷ/D}ZA =A'<8K5A( bȣ|/M8P?!ơ1/-+\liWXΘ1lD((y2YPX(a[Nؾ-hpl ]g.mi|_u