ploop-1.8-1> A AlpA?Qܼ ԶIwOaq#[(,o8TyI52e66ba186ae54e20ddbac54a55f527c26afc7cbC'o'`J?Qܼ Զe|dGEMfsF7 BœQшOR(>83{?3kd   `dtx        $       6L x   (8 9 :L F-G. H.0 I.\ X.hY.l\.t ]. ^/b/Cd/e/f/k/l/t0 u08 v0dw1 x1@ y1l/z2({28 Cploop1.81ploop toolsThis package contains tools to work with ploop devices and images.QܼPrhel5-32-buildKGNU GPLApplications/Systemlinuxi386 p87z큤QܼOQܼOQܼPQܼPQܼPQܼPQܼOQܼPQܼPQܼPQܼOa42395dbf879d283a2b4bb7165dd5ea0a6783235f7fe576645b280c50d518591cf05bf18ffe60ce9edf4783821415aa3cd9b49610d2d4858aa982eaf61e8e6ae5bdaddb12723fea3e33ef51cd870420ab230668d8df969984cbefc49de10fcfeb33778461cb60014599bc426c53b846f38b328ebcbe9edbdd87b295819c15b21a4affbba19981185e86d88947b08068ad3f1d9d3fc84ac5a64d9c273a358a62598624eb526e90ab4047a3716b43a10b1rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootploop-1.8-1.src.rpmploop@@@@@@@@JJ@/bin/shlibc.so.6libc.so.6(GLIBC_2.0)libc.so.6(GLIBC_2.1)libc.so.6(GLIBC_2.2)libc.so.6(GLIBC_2.3.4)libc.so.6(GLIBC_2.4)libploop.soploop-librpmlib(CompressedFileNames)rpmlib(PayloadFilesHavePrefix)rtld(GNU_HASH)1.83.0.4-14.0-14.4.2QۦQk`Q<`P)PaH`O`OOOjO^`Kir 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: -- 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-32-build 137342062499999999999IIIIJdIIIIIJM1.8-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 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tablescpiogzip9i386i386-redhat-linux-gnuBourne shell script text executableELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), strippeddirectory !'RRRRRRRRRR RRRRRR RRRRR RRRRRR RRRRRR RRRRRR RRRRRRRR cRm\MGEhb~9hKbCaC;v: 7LM65&$}s\$Hfdhv6Jn̊>AvUɡ9$viY+me@6$5#hXqWKL s8UU&'A[Yof^b$N^ &6%Ppyҹ% G[&Q>>lc^#)i7Hf/'UScq* 8MB̋\J %T\sF|gfoC̏Al"v:?3_[3OB5JeSjfob|ɚYje0?Iu/WPM\~^]$/'`?_BRK>mZ -4Wd@4zD+G+*l<]bWb%n5_j2y}^/=e؜:.̄o$Μ'<Rqbyc3 ܸijqb& ^ {q.?yYmC5i%`}O%{s3-oenMyKgl y"5.-<Icؤ>NQS˲@ )}&,m޴ryy`䩗7񼙘>S񼔔A iBc)`SQH  M_AcOYp>Q1Y,6N}=05$|p)< ~+8." 7~EG3VŶRKo1Wƅ~>*<2aq؝ކ\+w_\md*WA[nxp(#CtY÷ 9bKN߻ڪ~fv|{y{m;{tͪoL08:}"ywS5dĻ?͓*>~gRçWwm}k3OoJT^0vrsi  LJ1Y>>T mtr6>qCoS,/rÜ3woiv>s?;>8gR>k>p|`?Y8Opqx>%߮ʟ( qXps+|R氇3ƿ|&>^Wr8bTᰙ7M7rxo~ek9| Ï[99I&TI||qENk?gqY>:_z,5r< r=CC0WaT<9JX?g =il3QڥMD͸T=0bx^8y>/'A|\xˋo bX/>~|;z45 5whA@]|H.}O nG+Yq fsui(b6 oיJvsG>Mr@Um8-٥^(삊ނwAx7+8S.$w#RH@Vfdexo5LYv1T ,r+CkJcfmu9% 4EjXkj*$ءKlqVKfĭUA mX޸ 5mƩ0mT.'M4̦]"TZ$T35SUYߕe H;f03+; %bp.6NGG*0*o9mGq3ն:cNkmPU:ƚ`Oe?~FCzF Vg U4&lpB+]W=i< *f{ 8W b r` &| [$`ȧm$y[8nj-޼[d;PlAнz{8#W vՁ(ñ'-7]^+Bo B/Z8谽Aұ͆s75vv,#"Tv  㱅p"7ۉp~6GlsayPc ZkBqUdmrlPt Jl{;S-a2c EU-3O m[(ʛͿٰB PtJc%^n4c?aGt zVuB# 1A2E$KFFG!`,d F#B0zqi"=Np-y21 er"2*"=U:"+7 }a\'=X'=Yn! F$ Fϖ& F% FOI6ҟ`O0F|'#B>B!wcaҟ`'#F!?C#G #HNGIrmcDɣB0F,"4ax[Hn"#NX`< 1eu)!#Q.Ax])W ,*g*",+7 ݋0FD,O,cDOcdOcϒc[H1?rO0fO0fO0fO0f'3& n' n'?E~ZTԟi>0&{'}K/ $2@lK e.P}$#?kʠ9tW-M3E<`yot.=)gwOj?ֱHז 슎#R|{ue!ezi#ܷq۔ak\d/zHEgI4B( 9W/sR9ѵ+6v.wqC,7 _hH̀~B4o)wQٰ; l?BÐP]2?yOY"*zoJ7_UſG?W H"3^%U __'Lſa|u?⟹?;%%3D1"Ʋ@P;HG`(mfiem ^ntц@DǦL(3|=Ve>Bve[&1|57jC b}jQdt=rNuq/ y53''f@?rG4VOџџBStј,3dX?3K%F}1e[GRneӍ{>fx5,SlA[VLI >Pto@閏Cj5}k3ۢo|-9bZпj21~v>,=HJC\{t'$U/ބf5L﯊jݏF͸p"7܀Ǝa#^ed4foe/}ebl 'LH(:,k aȅ'+h XSg0Ta2yRJuE0^ ^7oBjڊ ^Z!O-pR@\l}4sȴm MGxK{;GF7zuƖNt/K'ҵnt@d6?~SY3>ž*ghX6 >qC+|k;WtDrE?xG;pfo6]<D́s\"4$m1tYf | `l=M?2yhE_]L }2jIը t'@ K̷}@jӳ#_bmF~PC׃l:rmۈ߀|^:ƧW7LJFJW~{Bҡi;җY}QGr~s9 Yjxq][y9ŴNQ1ÃwVߏמTF3 0ZVfPĥX*3^=n>2vrBX\OʷFY97 tFh>>he'zjczANuR)jGծo. O>MkE.,e)vSi3b;bbvxXkPA;" uL7C'R,2I//x.M:ȿ*:(!,`Cl ]ݭx+FQBUu~+]oC4]Q2¤+ufQA$8'87W_ϔۣp\WDSQ{l נZ4UPZE8h' ɘb4 /$wq7l ~fw]ǃ6wu8zE~\ͺ$o Ȱ}v sF #?V/؁?'m3; [=pajw ?j=ED҃I/ib~{R7.[PH9V"T/e#^~{z ט4onaiߑ?JqCF |.(Ifz{cPF {`!t\w"'l:zo`y$OW{4VTCp 1j 6ظݯ@0|?1Ģ0v5K0)ף)|=y3 _p\FC]*,4鑆X@6\jqO]֊̍_Is_O1`E#"1yF2-rWĴ _ %-vO>Mw>pg|O㫙Ziy>6|dH~Nܑ8E72&4wACx2$m1ʓKtw<{[笠nwxm; i||/x p]zG%H?4I?hBU38-!vCbol_V AfV|4\SyVT =2󉂘wI!0! b<>#g)> m)dA3@Ҥ~Xu$b #NgTq?9 0ǔ3$SrxZ(N`iUQ 8KGȖv;b L do ~͖eTz>Y~A*JF $IA}1MIPEsx"G|!EDx}[ab9Fk,@\BnB#.x$ x'hͿ?0o>q1Ldl-mq4/+s :'C8U+9nźn}o$Gt|ŸP~C?@PdYu"W4cGBjc?öX{*uaAL8:GqJ`~:mu{QΡI<9xxTД+(c.7uH~2rE{I]G sʰUL`[upl_:<7Mۺ12 8M'4rb>D[d 0͊Щ{lX}" xΧ -;`-@}P;̈́y-__n6]X8ta#'OxMߌtawh Uz=wb=ht~ t.7oFoMj=邢/s)U-8F(J>m[w1 DJ^/1={ "4^=.ˌ{B5TxʉOWS`?Ħ+?€QOpL͛VR}l.=v}P#Ȋ;,+7Ì^ O?JQ p:^R}\QPo:$N=J?[?,[NS@h58K$z}:JžRRg OIN}1=x7F(jw`-Rm򞠗:ĕ7e:OwoyCݹ|Wv X V fƣx?:c'%vBCKװ# !>}J=앋\dɺue#|=.;e'&,?/bt'8CVTLf>[__Gi` #"Z7fhe sA4wvz'dx7 vCn&hSEx o.iS4Fg2} ݡ 6iooߧ:;꺬uBPo}IoR~_ҡfa:=6vTx1`*4<8][6QDԷ/eI l=t(~ w@ȁ8wxId!2rv[9!1m(}3=Ȓe98 {28K|ÚnL5 $L '&%C?AC40D=BM'_xDVᜑmx_|O㈶$ÉBKW䨖6hi|B*IOKcwFr*O^:IJKy`+)E &/\ cY%sͅb.-̳x olaԠ^'>9$؝.7r._X䵈H4:Z#-wME_RRDּgϷ U쓟2}T6#LCrX5%u8x܅T٧ _>Ty˖]bboeưsf/3R@,sss$A>biiQa7K_c;FLSD]a< pd'|YWվw&w_܍LG3'<}(dV/^c-XTYe1>$Kr<e +:>>O"tDuA|)Ŗr:K)Vy.'(WŵIHaڴ+I{-S{Ӫ%znHFKgfd́A'$~~k/ėƲ*aKm/Av!i&IئU6*'yX%J$Ho5oDur:che(]'@oE5$GaNטdW `VE_BK/R&MHo(H G9zO30/lUw <˙i\ö5|_Nyi8PӖ1MX$˙/c$ҹUqȒbųJ'JWnOWtzk*%WO]|r˵LABb1VW>_}|`Q0 ;ĝp7w{Ф8S *5ɄDFؒ4Cp r2:\K`/!jXA q64e,TidTA l.Xow}޾h+ܡ;HndNXD"8;~]{WIڵZM}V^[,+/ԟ_x84oQ]E=d)svy ^}?F?g:=VC&=mLRޥw-.-xǪ((D/tT K8d%,`9+H/'Bt0 [HgW#H[_LoXb}H_E"B?YBYmYi:{Ӳn!r~:.ҋI7#^+fYGt<('o"Gz. JzQ #Hztǎa%ɺ` ׍ o )n ʲdYAv+N>'ב=16dn|<_'$'8I8''ӱ3%qP~S'OG")g~:m#2ʟ7m(A,OFfmSXnԽ, X'l3qY)بzVN[tlnBU|Ͳz!aO6'ՍQ~ucV1":V+>ܨ{䆏|ݶE07_+F\6`> D=Nyi^ wi@hԫ1181%W@/Sq n;ο,_RfnQyXX7NYmERů'P'ejv!&ʿYɇ/Aݔ+_`nL9?w?ǥ{`cSKMUjقX^pFC&36,;T0am"s:bji.~уݪn'}8/E ̧|jZm9MF3r^`mWE2$$HdIA3$Gii$$$E$$A $HH !qmII6l#i#CC2@2HrO2$$HdIA3$fڿ &Mw?$8Ϗ$8Ica<1pFYyi}چLղ+ղY*-.ʳ e|iUd}~-l]e\D#D1+`7*BC΢g,vxxҲٓTW }kW!}s?լվ~{/:?51Ov|8SI>;[]Jdq,vks4'Kޫm|]ab>8JPulcϧDs֋ʼnb)6kLNKo _wtq|n?AoGSeٍ]5&3l4Za=ݒT0kN Nub8kQ.$I:>a1f\8?X6[ؽ!0t.S -kpy~x t)v#IcR os~v[ښ֯6kWdz8-̻naޭK~?0AhYM/\a'QkbXqDZ% NK6 |Hid1J6`/Yy"-EZ>aGlaEiuLd=þ+%r/ DŽV.{?YtRz]{gՆ{:eYt`Vl8|7h=6.agZlGNfԷ9E:M{7bblT{^is)}Vi?BE9|G.yf}қWƞK@K?Ǘऱ?Iꕾ`Y4ߙq`qbvwc㢭bga5ž2:*`;wT Hk<+#!-AeKa_#ρP IM}KL鼖rRlu*zv˱^KSk䋥ƕ1=|}3:*sB&՚3Vgrzs&m䜱&sƚM{䜱s"&猵3arX9cLUM29g䜱^s69g䜱~sƎ3v䜱&猝09g9cC& ,aۭO”<-BO<-Bϩ<-BO<-BϪ<-BO<-Bϫ<-H<-Ȩ<-H<-ȩ<-H<-Ȫ<-H<-ȫ<-*O gauG?ۏk/#Gp1.6pw3,krD1Hp=8|$8&N^*5im[>]ko_?9ɯI`uگx^k؏:%#Iڧ8_Lo;ӿ3Ο-S" pvښNhB}o lPkb8*5HԨ#2%!,x 2ڼkͫ˽KljA@jilm-ɏ:t%9_pIha[^#CMzM U”eѰ9"{[.ܲS;`,$p|깙݇=Ef#ILH8곽|*44lQy [$79俙ڽ;МS;dʇ_?AgC;yHYG=㯜H)8 D8N'>8%D\,)K:[߁ee|s5ލCj,N5fq 9,찷}(|p؋YCp:;xNU#p .]Gxt#2yAm'Ld 7譫RjAW5Q_/gc l_g \37?F_Daigqn|Q(zJ)*u~ca౤$H Wp ӽbZvY6+Ŭ(8y mZa~%g-Zk6I}jYS~x^??8ܝlUKЅN*b M D̸jlF3H7ZL]1ڄFa($)1Hf$lL`$Jш` vh1~w^1oOg6# yDצ8Nc:e61U_jm38_o1yV@+dIss /\MY1tў'?I;PAסAEϳy/]jsv7as2hW2%q}W p+SbAp ܸ!VD>:,/Dj@ "-JDe6JE!\튷F_] y6Se[ &?y-ZS*Cg)WeRQ2% 2)Iy{M ybŐύ*ݣ*Xply:D/)5(#a-UЫe+ kHb`]̕" ^"- e'-D!)k45;+ȬߎHvw琢!ma3DȾT^ZWhƽ V^,bqq _HGw3= %R,M[b,F[b{#ĀkO[Yؘ%ZB(ŷX4bilߝiQHiqgvٝfg|tz) K}ow-JuQ b41 DFi?5NQڀ )[^̝ւiӝΫ xi?DFUJ(M3RΖpw62yA|;sp||G>5|yW>ʄs[|>@=Cz0j {_6'/iޓK]uXZ/갮^%&W&ucSL1OQ"ޭ{yϙȞb<<+\b0%{c(_LP\XX((8Dq5 )f(((V) e(SPtnӱc0ؓߡIg8&,W?=ںyS> H '(d.'z3FWED} R#T DzD'C/ YTd;Esy_+7>ޛ.KE܊"rw-?Aq|_Xf3߫l4de_Xt7nLJk3€Ù}PQmhÅ[kSKmW|7j+imɂuWU@DצqSBv^Uewj7=vM>Ȯe<7̕:b0W`TRj4sbss: Ju̕6+c0W*a0W`wukK Q‘Ptp#%(J$:J((J,:J(( 8^ڇch^^Nyz{9crbtCNr.^̒>lWz9L/yټ\n-:d$2©I۳JPGR/Us6y8=&KU},MZ?ErYM=uٖ'gWnKYw*9.&gK=`NfCK]iL>]({/N[ a/ />t ~ao܆adrXڦ7>֍|8Ԇa8QݓzKw8Ka2uYu#ݛksX2 ղmu75.sX_2/ߋrXxeyqXx^YLa9s`cIXwO}6>}uZO]S_4h{g9-~%=YK {= Ɯj]ln6ŵ;RHMEku&CuBlMdBۅFZ T:V &@bP IIAiȂ R`Rf-%wܒSjyr e"Qo7u3!sj~;houHƓց3M+ q :?ua?vuI7AhgnaΣ1 @cA4<h<և6w$gԟQ~3:qq< ^߃ˑ3( {{GPLUM#dpDK7'0L67fbd`Fb68qٔ5!F_j,&vc0vK}׻2 k{]P>q05T`o(8v[<3sstCc˯ vcU\ F;C9u6$]/mg(qZk>gCUwPXo13n^wȾ166]l(v8 :gCac%ΆRgCty cc' 6b6\ e9kxhEܑlm(}ѡ~{Ig*" {o.׿6r?]?Y)BY+?)wY,$yfa$r˔x~bhLeNOh?i.ߙeh.x}!X^'a2lpۛLh2/fDdtgtu=BtCAGu53960F,Q&o5G0IhLJ__;Mͯ`,}n4iH?0ܿh8h߷lb`-#?e/ʺ..p,(C6NkgDc޻Ч?ɓ3+o . kVs7/.ǬΡu^7nDp#";诽:6Ѵwtq( Í jt7!3xaW`-j"nR̗X,濘Z 9)&[}*qRٔoϩ+6ߎ֮o/U i߆U#YZ;ΫF\ywUo K{g vX`9BMp3|Ok: k|Q`X_ _> &0l ;Ý@X۩xC{W6]B :C1ڃ`w ٣5 C]]!l4:᳴](A߫arDW;Nټ: 1.=;}=!DP6wb2)̦֧hc&",[ {C8X&wE`%`%`e)gk8c`ZسZ0Jw0n`r0~t.իqA`4d"B8v/v`Q`m[497W`K]9)e-h9NK?-hQihGZ7-EK%-uи虛oLp9hNQii3-T[3RuQ) 7֎&,$)t";5솤CQn[6HւhajE ^ -/<ž<=~1Dd]JԜ}w;/c]}>61%1QۗVc؇oVgp TkᘩgR61{#_ckɾx%CL~v9mKU_-l[>F1T;>JǨi8>>b᜺{Acm,VYchysE?7tI2|>p8g܍ K<쮧w}sy^Jk_l%Q~w3¬u[ Iƭ m ȫ3^,J(~PZe߿VV}>w̃b wg9>hes6`Ln%ύ!{Xr•lej}G ,3W}ђ{hc;%S43o_æHkwO_50BDV]8 ;tJmݦ>/dyO;_GuQt+e 'M>G? <.L|-MG忄x=0}e2+Mx]˅PPmMs7ߘ]ٝK)9<]KuDkTL*k?Uo)1>v<;V7(VZnX3/֙~CgٲnapK:szaܰIgnxDgnљ n>z\7k z!DBX3 bME/^5[@Bl ED/Ė[HBl) D/Ė[PBlI EM/}F I[gI>>ҙ"&ߒ>أ ZpЈφ 2 b⹌ut<'i >XlGmW f!f0wfy^`w=O Qgc!IRE#ڮvŭ̀ZlTP 1ʍv>~39"AB~'Oo~ZJX>7xwf_y1O!{MܣMڽ5f~.XyfexZѲ$ c:x:vbqKiKv#k;98h18 `黭f#bƥFS>5iէ脝LL7ϧ /%D_|%K8HDz_ _tۓ|hxiJ8/M_l j8Vbg8/0κnd[|_ |q0,'XS|EcNR+}ƆpG)Mv*%R/C!1 1dk[6OꘌUř5ř17+I07+O07kO07ykn{ >Us&YG7߁tnffrU߂Mq7=gne ǐif]3YHaf؟ml?ffGȎ̰3ew`f8^qpbTY iWBUhf{fC$3C:6k639Y iW^mf?HmfFfKefQ63_63:ff^ݡ63u8r33j3۷uIf$r^6._mȕKeR>G=3~2Z@l+͍ن%ύq}y{$G)9RHrq}OI^r~U]ʱNr-Ʊ¦;yIk;}MPk$l:ҷ,lqH0*PpLpW-l:7 82)?K?remwÑNtL<8ֺH?HpҰH{0&|9ayHoayI7i#3'5̀PAFq7\y|aOkߡ%8&ب2# YʂdK$. zE~y)Vȯ]xUC9ϡZϡyyzx,I4-֗&֗%6#N$g2"NGS&|s4,lp98j w~g-ȉ.ο߮X0 cR}ʷ0}rvojT+dcJ[d(lãcviXIZ7!oOSxj`0Uj3nw2."]HKA-j~OlЋSIЯE/_" t߰ݏ=vX4םFg=0M Vr7#5W~؃γA@K}KQ"~m ~ÄP:kр6@Yv"/:JكЃԩG(2'ɤz/Ff þ1 }`SAw_n~)yc]ش!JCY: yC4:LL\lrNt3sInv2llv.)Zy_fIܗwH!;/}y˻c_}yO${Oyʟf]Aۗ7Ә<\E fvެ/}yk@fdBnkO^@<+ u,8>?5U15tL[Miif@XjbZ<]G`E | oI~:U.==\U߿&ݿݿ,$Au|L7@Z<\<t,6v4|q.3cXb@ձŀ軓3:9{Zsp)8T.97i5ޒz)bqrG5pxk4Nx(13-D]Y"llػc<!H<Ppap3fcQ> b#>k "MػCFhTw 4{kPT\ Aa/NmifI3bD S;!{x^Ի6t;3vqRӁLӴ*c%+aﻻ8xc2I0{ow}>~SIꮝJRw-ڼ[p w#u2_G3U@/3p`v~*Z31tp_xho-B(e0/RwEg&_?K VI16ԢD^x{́`llllԬkOktokzE''YY Vo9{G1ST§YܑS l)?k}e;;禀{!!BhR3*F%4 le8/=xu@&1,ގ;,tk!FqMwt>RJVXA|Ӈ{QGGO=vΔ?'|ﯣ2 '2̷f$1ES2i#0#Qn2԰|5㙯%l|0$XfKzga-V%>^` "7|!deǤ` /$y)irwlSAg۹" }y6,01 &]~ǖKZM5?**.qúVKݴyc5Ŀbq_?K[澋RW-dx#ho&_3zj0J"ӡ#^gs|cN 0ƸT|cF]k1=LŇ1'z3cf5>x/h!JOf8l|*Ȁ39T|&0coy|B a=Ϙ3ġ!aȶ6xۦI67 W$e5?I=͹e:>Xl WIqieFOy/yUykV.,Ԧ$h5fb[_Iܒieמ9RzD5=XW#Oó>w_yﶕgprSA۞[(3i症̮ D.U,9@C$"Feʬihp & eXt!dՈRBKܾj.)fE|߮=ʌx ޺/:w{TCom8QySS+' UOo1Toy4y57Eis,[Z%`:#iRd} E|/}^Z~D)EcUDeV !b/7sq @D-NEߪֲr\X#< $* &RE |}5p f D]\ڙMQ&( 1"0㢚~VEuo~-'A@=҈ʭѣ2ŴSʨF1XYmUz\ڍ*|"KG{xEn @GCg:,qhi>L|<-қfΜNR;ld+Y/Pcp@F6ȕc~|uqqxy~b__,`Ď+0 I|'>&pYozMtq5<NTJ4T%e2V ~e8i1kH] H ^ F޺M>>\q 7Ga{>L?l@Q+w:$"(Ȫ_Û1ʬX;`(NHE7v "eQcQB#'`Fݽmoq7ȵ։Ht P6c 5^˥#v\`: h 6ASF IK 0z:pn7̈"л}AYK !DҐ;'soUaY`‰(K.m`[ m#G5ejĢ(9;*q %2S1eM+5RBA ?X hP :ɠHfNs|Iu|of1KK)@1.0y$貑"p]'6lI=~'@ZA Kp Ub}RhJhgW*k䏵u7L!;qlYOлh)J!> )R>cL|K_r!CFDg1#,:WmR8t tscRܔշ; ]R9Zs$$uZZX),"ʝ9vf.=-\֑[-gK# fڬHg?yޟ?yOWʫmvf 5kkDQp|nyJ٘`Zէxi0s&&D-k6 :pǴ\p)N014"[l Sa&7ƫ_y?@+^;bi+|~N>#zثpݎ T],++G<M`J#t;!7Ӯ=y_.ףZp<06%4fLpND#jnydbUn79RW#c9p!>}w[[wS#7[',s+<>RcS\U^I4ff;v``擜m-'kuƲxڦ(Rb+2:o).¨FD-k=GrFTTY?g7r gY*8S1IL&FqCǀPh}_l+ SN,z}> VsΜ@i@^la_|e+[bwokuO(Ƭ?/i Gn2?w1'HI.$K06 S*_]P|}5)0| <9ZMU=5Hh?5v^Q/6)d;WR/jP3RP̷6ԴG% wvSyوWdzɝ=(i7>F pP`!88>]T]\ֆXF7CA]Btk6N1dq4gҠx"T %y>f,I&\suG8|['=F k >頲Wc;WP|uG>4Jh7G ? 09dL%j\c3s"I?F'PqtK`RlowqǨ~Ƞ4r#AFx=޵7xXtxuN;^c< oHx 3.au]%Նu34rG֓wz>h ԸGbĹ+[Yڛ 5!=9xۼ6Vqa HdkFETyΈ8gl]0lc5|Yxbǭb$)hNV!E*߫W<9~Uޱvd`L~.n-nlWuZd9$쏵*+-O+D-dj