ploop-1.8-1> A AlpA?Qܼ ԶbB[H\sD#<!pCvЁ[R94c516e8f88a33fcff3f52e5c47be08097fff229~o]YIg?Qܼ ԶKfʍ_b5Qhkt',F]9[:j@:̠pw`k>82?2d   `dtx        (       :P |   (8 9 :D F-G- H.( I.T X.`Y.d\.l ]. ^/b/;d/e/f/k/l/t/ u0 v08w0 x1 y1@*z1{1 Cploop1.81ploop toolsThis package contains tools to work with ploop devices and images.QܼPrhel5-64-build{GNU GPLApplications/Systemlinuxx86_64 |x>!z `"P%큤QܼOQܼOQܼPQܼPQܼPQܼPQܼOQܼPQܼPQܼPQܼOa42395dbf879d283a2b4bb7165dd5ea0a6783235f7fe576645b280c50d5185916ced594ef6b8eb0f9faf1d8543a2507cc0e64de6b6545f1677a0d7fff66f52588e8c54c8dfadb05baab224fe576be1567d9bf0c9e771a8a6b64a8624f172cd27b33778461cb60014599bc426c53b846fb75144b1e780ad2ffadc5fa9293e42d4408ac077c7c5d0ec125dd6f04f3f81cf12e4e0ad8daf9880b8ab97014537b4d898624eb526e90ab4047a3716b43a10b1rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootploop-1.8-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()(64bit)ploop-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-64-build 1373420624AAAAAAAAAAAIIIIIIIIIIJN1.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 -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 ){d"gRZ?W]lW^'nH Dt<b;x/&Z??iDzggzlgfmqTފԠJ*-Ey@kڞlrBJo8q+Uϱlw++ \vZO+ەrf-32=:2WZ[^)v=Mӷg~[ߌ fiyni.KksKuusye ]\^[GԞO ˱mܿv$FEU- o𳎷ŝ590Fxz^7va{>bխn* Jڮ Pՙ%kUib<h/%]rGQM<LágU-F Ō: -VxT49c8M[-ޭR*<hhL.F=w &qpnpBd2ꏄZ;f='zdO5m;EAr.2ڤtG-ph4[^Փjv5dtHt4'>'Ţ%ْ#1D'CӼ R2M6i+[s6;0T7bߋЫ565B@aI kv 0B,}[6燃]U6va6vbckbS!O{$?^\x;v0pvzՎp*L[3$> yjIӫ ׂjZWjݔ9ȩ,GT3L\lOwJwL^3e]16Yҽa;|=^&>/89MU:/pZ$%|Wmr >=Ȯq+B3];A|TXJܷЭ?ѐC3wD F(KPFt9aMHHx* e+%1;C)~ ?%D}ԗn+73 0@Ѵݞe.acMEQi,*6k8 7:2 Yq4p93Ə6n&)zufaXOO*KM3l=)?mD7:ϤzO&S P !w^nPL>hO>&tM%h*}TC}˗M;& }B>cz'VD.Wch567FNuHֱtv{>: L>%rwei=Y|Z7} =^~(,>Wg^]Ⳃ>Mϟg_~ᗟٷ/_{0;zǯ]FOuj潿|xk{A_?ͣ~|'/3^{_|0# tlOAt,X_O_n*7$y'YYq??cNj*[sWٕ)4'7@ҳ&|IMA"SXqIA5I{O$ߐ?  Z.}IϢJ 9oQ#Aw%FO]&/ Փ<__tY;kQ%јn j'Ȇ 6Nܝ2ef MHNT,],"Hww63g6<>N2+vOwOw0؝?;~WNa,S/G 3|}e~c%?Ѻeu%V:3`o1.Gӄ]`Et=;- /h07s+CwϭVb/kbvϗ:׬|{67ް:fb ߌaqS]/6\O8 ژ+Ou9a 6tN^t$p8=3Сw qaqN7=81,#W)szQֹ)f1hQu:RIJB^-uF4 }ʕ6m/T,-0IJF2#i'5ؗ#[,\PYn'y/U,3ӹ{mO$&QN܄ߗ*ϳ\T> ;Oz.w<d8dpN " ߎHKgjmZGA5VsIwO֪lgZX*f]VG!?tY pSU}-tlUL U (DH-c}ՠUE5IkI[);iv[ewa]QR-qd]qgEt_("`;{yj3skh~$0s}ѳpOwW;92&p\:H ]w>7K1*4!\¤ E@'q-~47X%U*ۻнm PGCZ8_!1!BUA_][[(`T>_?D9T'HWB-Dfpw׽J{{c}oHk@v5(wZDC>i-ӈ?DJ~rڃ~O>(V+(KHJ`SY59bVS#a-pЧYӺ)J vG¾,86۲ln|4O.B{`&XB W??qӹk&ЧR}P=%T- &'65T[,\l-e"5W ~W ް?OZe?ALy~||P.|$vF ^C>g )_*ua" _ ~/TC/c*g?M ~|^e)˥?CY3/? Y-/x+J_|H jH ~௑|=<ϗ/u_$/^_KT_7H ^>i|I ~ؑb#@;q_5Uvdܴ֥d+@%`~ :e8JR{/f\#82R0"5x0&Ɠ1Tq$1.Qje]j`|GEa`)8RNƟ_įQ:=NmR8 <3<3~3|1gIKY?ǀY?G~~ƽY?/cۀ/g`ob_/fݬ, x𕬟dX?+Y?B*5Y?sX?W~kX?O~agykY?㷁=q3<3~x>g xgx!g$𵬟cױ~~ƽY?gۀ~k~Ʒn`G[ߣء㭫Z -{%#j5Q.Ekٽ ɿժi^P6,Y5N|R#/RPnjl@Ջ&-{k%7[8f*ؒ풝X.+[bHUբtR-TLb[\]Oĝn;bЊTXrg.%9Ayy$vLA\s?NLEm,|k]%$:wqG!75(-Ž@%oXAA/A?=+=?_+[_ī- "^JvпAqU?5wF}JG ѠXNNf's(_kdL1^ fZ[,"L@;)x&6sAu^7wn{rEw%zݵ_q7 nkcțo*QS n 'ZRFbcڅ^c @CZ'kh"Ie֬v&ՏB|ث c`{vjZM,t6Btz*.6t oR#kZ&(F{B X%}ĸkH`^7xZ9m y=4U̓6~{U+jWPo`0DF?GO=&Oit^˄?v^ɉ]&n7tWzTKLM}덽JS3ĭsjQ= Dw`^Z?lco=cFuLۆ]4}Ҳݘr{,jn"e4ok#*?3ҧ'=DxSM:a\f:(bE4=ôf=Mn~(GZÖjZ%>)1I?I?Y?\9kd-idn~r+m |#ՕVj%sI3gJ6\yHD9RD6\J[)oйߚSG>+^DҦ7y a%~j1;3|Br-i2R(ksq5ͩa~oVsj!ic:j,O3D$g2mufrS"f?i8}80/E Ya9rVXxD>Q~2>=iؑرՀAh4(cV]>ʌ!흨/"BIeN`kv$;ҏݷ6+4 gr=5')~8iZnl~b}wzXo܌m}JԥWh9nU4\^V#C(V%+i@h< XW= qĘ&jľn@ `ztPMs]EfOz?5ƛ!3!!Yw7]v|{olp@n/\.@0=AT\Uww3L{իW^ ʵH+CTE*6PCdwdabTσyddJhowxuK=eRgx Λh ?Ȳ \M<rR U>k(8o' m,3_+6XD7${ow#v,74`&/@bq\Ύs E=ʻTtEyX ňmLRcI`> ,I}/A󴦯Ԃ(U cm< 281,bRMGQ|Xhv?lOJW:c3)?@HP,ʔF%]r辋<4GO`͈#'Db.0{d>ubs5_guqNp'u+n^«O\]igOnf>m9fӊ{Th&="~@h8(OH{Ⱥ:q޻@~9@e7 /vIh|[# wAkc ⴦("(*IŝMqw*Йa5!`(":-0HD5Dh^/FlE!rކYA/?:E ;T y=%G[k$1/(Qk4尘v89YJO#aJ:Luyh"L[Au=zNqa z_֑@(zu+>-/*t-*2U|g8mk:RJ[poӴUu (L tyM[ťؘo}Y{?T'࣠zAGqPyrp{"UAYaZ`gTllpfZzS? ͫ&t=j>fp}+?5zU^=Qub3oMMLɗeEf59w, M4#8=_}H+ɃC0vbn:f*LI|w؉2{0.mJh+vfBwX5Aգ{Hg~]Hs߸Bso T%#!yOq/C{Kuiї8m/h<肕{,5bi Iƛ3Zd vӃ埮h:v[ /l $pe=9H ]˙03)`l8. C0EQByGY`o!Z1``>'eQi?D^̨K/Ch8Jݔ7.N ]ډK]ȣMcUnS 迌h|^6bX4"cl%K9 2-;mm@QTm v!IsYOt$0}7xI{%nElx⮤` lv &U܌T-smJ*mOc98x2Ã)eΉ  st|4_c "Yw1@MP"%X4XQB#fL#EK`Uߔ@n"[L8'P}|>nd>fT(o=85]>jThRI~(}YOq@=jbꮜr?Uy'c0V Qjfj"jc bX@j!j*) $[3@ s;Yc5ZP eE5F!Qq?[W_CSO+vTQdW-oG܀|[]i[?!%s:ԜR+q66{dXZ𯼊 )(5pb`Bon2uq> yږ,7cgtwQ] φM_9-R?Jy6 -iO–'z3k%>,lpda_N)7Puv v %aLY֡&z<,g'7] n0V!``?>݈ݗ ֻT@3 fQn Ծ U#F34 W7eXЌaE8?ڸ զׅ^L6|L1C]>iB)7Oݻ"L4/l'fngC&³rQmn ^IũՄrVY#$I(g^d&͇787OiqXZKp}2V5_eVWaTQ$~J"?; 'eyMC3g(UR.cz-uhg}'Nc:RXeX!C?gڛGbq s,L "h7WoPhL56$:؞tO_7eA7"&[1t-=wE Z{%«%J׻+\EH؅2 xBXZ:sZ*,Ύr;5~+[P𜋠,b_ؗ歱;Vnpn[⪕w%*6TVU +,[,@1jWMp&5B'3oL]tc^i[UÕpi5j0-PT2`N"k6i4vJI8CD9O|O,fX GT,&.SCR=%b|X\ #cqXt bq3^ .k/ m⮷$1A|g#V] ƈXP4T*[ss[=/n|m/+/vNHؿM1`B;ߖ`_lgfo;^Mv'Sv֘ Td3<%"cY'aH˶6X塈s;lqH'dQ_1B~*QՎ:ZCrQ0ٗɞ I ~sv:j77W>q6솱EYrSW;EDG1+9%=>TE*u W{9ix{3ͺh5Iܷ_\kc- 7a݆_xN7:ZI/F K܏_h'Aozq=w^O=ƋmYo%Oy#{>O`c|Q>b88ci\y&FvW;8Wxo[[l2$EFb_VGiyo'6Ī/ _ySn3qm/tɻio7_)A"2.Ho=Khn8.,8o+`$M`+x̂#8 N8G,8N48 ΃7 v060 [;4;^@FBE/)俎UM_ަ!ZK]ck.@7K;TܕlSqb\ƻ*5>9MSksA;{9gW%j3GY5}ԠW;'{:ޜt =iwwDO5Ol\U,yW [}D5LVMu6ʇ4V+͑/ÌWe`F$**cnPo_Nߍ94~2C'F--XC$- j_Pe[2O?m:˿n1Φq}+wgv8_4a1E./w5~)_>,a#ޞCT72Wu~u?ow8N_1EJze_0O6f:cWa|fc4_Ϭݾpϝ 𷭵/z99&ѭ:vsuy7dSru[-eC="7m92^ߐ1w~I?Jw$OP>;;ʣ,K]*?pC3 _w|6uqs(X "I$KI_QP[&>Woy#~2)A|HR;z\`$p7FLk wP= 9 }d MrA] k^6HA1v ᥸ҚۣQH^۽;Cm!=cow1 6ׯl_M׏WPմ| WoYA?m>\; ctǥ(iQ3_"q>Qh,W@pW|k؎jR6mtb{\'i^SA}3廽z]02w56˃G3ӵ8h[L:xy.;Zu3ʯHPKٽ'rZͅ_2G{ߨqKs xiJt1WS"(!)S3ObIq~077)%BazЯ$ŎNhOI3iykiM( Vhvڅ/ٷ}ٗAzeB\DF\pUyVTFht2'..[i=kIs PJP&PÐiMQ=$T׷u?!_a| ?xm io!mwlRsAO k4D8 UB%pg+DKwax|}Hm6-4k`VEg-h7n~ ?"eMY _1'".=$lmtc:cP2Eܹ9&Н S xO| sFGÓ|:nbkCByH KQN/?~jvГE0 F:ך/5dYb#7u6W,Utht.Lp]C6! º 6N9>lgYq=҈g,,|r,G|.-gg9= g%,r3_|YH$HIhƵ[>˿oEǷ]v[P%QR@ .N,:B[E\N9S\'NzB`8TfOYj!|ݝ̛7{ag,cyߨqx7~/(WwxAN'img~-~6VS-y2j,Bh =֥!ZWQ^KQ [uYf ,VHhe.^*5+7fv}AVZjFKEYcR )vUeqU{dvN ~uSt{R\g䌆֍jUo1و/9(#Dsq֢$بLP9&+ $4Th hKP{z3UG>鏜j{hyUveym\B#iBPK z;wnt 5!<64>usio4d0e[K#J.t_H}ws/}B`ߵu f5/&:nd,hp+&w:pg |q0{*->r 3ػpAK]ƌ~_.YSΝ [.9xz9h] w=~OTJ)7NT5HTDOvIR'lBX2y W<ʊǓWRjScq  wMBy̝K`QKsߣ? DZ=ƆԟCz<:(6۠~"oS<í<.alb]y dD)x+_͇x$}W_$=MDZ"LZ#!%'Oz@|Oɏ?󻋣s:U/{Ѣ<͏?Oȓzzyz>7n4'ozKLA KMGsƉɛfo;L'?T tz/|:y!ZɟÆ<;2ˉfwUBɧ`Ȓ1yr.rw ~Mt9a뜌'|q(x"~ǻ ޯ?ީ|}}}~x_>"x`wa]/^gUo qo_v%Þav ۓKvi+Tj->{þ>$uɋ:ae{{x9N?9zg\un l__˹6tcHƚ],s]v%ǎH޶xo{x/8mmmmϊ/s[r::uV:/::??LQ6?@O H'!hHpLj1QjMx-RCcv5881`AIIM"VJw{\_]  pڃܻw/!:qlscs96ycsC86ycs\n0=cs"ޚ1yN1Z 09ecfsRgJ 8PU$R*&ksu%>Y & ?6X2YYKe~K2s(nQhq,a4ד5%B t*P 2:H@5NOyܶ0x˜qy"Ƚ &kN8#Ӛyi #;nN&oCP,5d0Lqՙ!:YC>u{C٠/tay\tȍUC~dr,SC~sQWّ޲9i$9S␧~n2\EcۡSK<0L|̛^|n^T0!8^5у&碽 n?Ȼ<]Xc @N/ J% s3?[@.ot`K]8]u4{aqs4.C95ux]XoW;ng[źy͒I<7¿a :5B)F,Ӓ @p;I*p8BjVS V:=qlkiə>'\tK+\q\o/i,w֥q*F'ڄ˔ru<1U4YqD3NjdFN#eXiL6iqwwǺU?z).^z;g)J-wOU:?'-x=(utܦ;e8ڟXlgJ폟T>cu/?N#Ǐ@MyϏ`;|O}`<^sQlU}P=D=`1vEt0)8!d09ͩTl:Gc3 ͉fhZ:SZcdB2Nj&ņ v:iI&i%{yY;j[Y{^vs(i?#o8q[v|tJl <ᔿމs8<i7ghxRg[#X[P#XgMֆ@ Cg A1)/&U<@1`ajIZR.o!Xbny7,e,Y}Ln#Ïo{+ZX -da T[l`Mn NZ؂-P>N?69I00 /[I =뤼^(_@n#tQsduNbF44~+PHƟ+JM&R\_KLàP~MÿH?/ii9?MCE?/MC`)AR޴7 HF nW 5 iuO֡zյCUL)>@xzԸ!{ /Vh͹68'؉ \ ~ ljL9{KL9ME&7L9{YMKRMn*4hrSQME&7mTthrS&7L9{ǔL9=p)g3r6 S)gwnBX6aq:l<^ǯ`<~, `<:O0͂G`"}oK8T(= ^|c~#Y\)JIKC=\h h0?q'M(1t 4MGڄi: tx&LӡOc`4S1T ӁVpOO|.tttxtx@<3)7ewt s#:.ee:F0c4io:F0IГxtg7wtq}񯕼.Y$ߐ0Y, "2^E+r۶Ȳ,[ YSgg E}7 E#ZB?X 3 t'h ݟu$h R3 C4b̒ oQl~g@|M̀D;3 , g@JI(ۋC{3 kzh 3 t\~H5 b7 j̛{m@jU{_j}U~vn߲"|Uz>Up !z5:;ܯ= [6Bic6B-I LeL& ̷Dm`\͒OvȜ/)>Rkw]ؔ?p1iʹir|d00 _h4/l>x OI}lX'J2:cѣwH8:|X:jhyz Gkz=kA_ٍzM~[  uM 螒UFsh}4Za#ڌQՖh uڧ)}׳Gsv-'_=XlV_c!Yf^|Ձ%󇮞 Z>]}WY[7C+0&C)M8MXra..`M9 bb41 &fIƜ&fjibO1HQЀ T#Mh # %Sp",(. Bo :Q:ۍiy%A%Y^^ܻ{}e\7 3nُ*lw& $|$;?/^N^na:hHI멃b,N66O OQq1[?n=:v[:v[J[j;gz`آc-zKDžz$$Bz4ˮQ%#M`=ca+Zsfqgs{<͜x(GCѩ (hE%8|2a8:q>2JBVZs sps(<aLqA>,S\c&Ǜ`8Ј;X+'$aF+?s0I;s4ɳ~.E0- EwD;6!3aq?( c\WX'9?<oEo =ø2~naJx}@0fa S"oe\xKm7k\k-A.ohgFsɕΕ:VEU̖l7="(d&XDps: 1F76Jc  *&b.={\[D{$O`w,:7tuO);ܡu>T9N w\1y)o/f=ygLf|`bQ=D={=D=&mL!0PCdb=z&&C0=D3_CUWKtII̍ `3DCnq!׸쐋\vy.;,r9eCq!_l*84쐌Dj3B#Hn5Ln2WFpnb(;aM쐯*n^߽n9݄xdZ aTww ҤҪjRqBĎC  d|0\gZ6;ZqR_-MOݟ}5QqI/ϤMbejPpEZSy@T(qi.r\KOmElض /޴wb^H-hUv.۳~Yb~u4Q\40\BSJ `D3")ƩWaG<.KA ^/}_Gp Ը=#z`R`$ 2VV\&$06Д(TPԀOOؔ>!v CyǏd<݌=DzF0K·BM5<jtcFsl3[4^O)yIP܌}ЬE ⃉dou'J;Yf[NK>wJ>wc|N.M&Rb {XY,b-b;~;ն; =t'ߝ|8&p';8wR_GǝܱZwWG4!w֨<'N.AgZ%|a`u-ZhUJqu菴2fuSuPPd+\%¦TۚZ:R "EDm`,lMW R(hud`p"n}y;\7P:w]>.Ay:0v lr] ::.C2Lv/d E%?B7\ ys֙kISdt-<3B/W~.P̵\ }avk{:/0]k;u-'ceSnű;#{"xd`eô s?vmLK"f$m3)/2-%L ױ̿N80,ni9c{)Btm)Vf eFRǒؼ!J ?z8l,6+K نm̌$62JsDl2Ild$:9Wl?$}&vÿӮ'F#@bTԓ.bgx;sؙN%'&%a;vRKbgK>]H ogH;[|UdJx;M;vz?2H~9og#yҞX%,ϥ75giJo1m|8|] BVzc#|Ka3e}a\^~!YexEkjI-fV1C ˳Iu)f}^H{&&k<x0w,4ҼsNdŖ&!-MR[IYliRbKŖFŖ&#-͂,4OliVĖ[ TĖ/gU|6MϾ/mf+VgrNjXX:f/:s:"L#L!GA9xλ:ou@yVK:]:!Eɮ{ %8KqqHH_7,#+cx3)(g~j\3?QU6&wgƅ.+eE'F`~&v^zCH?]%Yc0(0kJ\FC(~1A{iK=.%:΄bm _k\fsJP &NKܱ܊\Vf+04qz]!Fcz(G?:f&AQ/(W` ?\$Uv]%5 &X^5Kfo¾HxX^io4 EU6WLS g r ?ջ-JxXt& >JZp&ԓnJ<@.~!{ Fzs PXmp&YO7zay G,%4Ucr 3/O녇l!]&};G&9-CPп܇fh>N8「5Ll->λY~ ~-^_-n eipekÁf-㹻Pi=q+1$r/ x1.ɤIGKRXlMuΒ7CT:Bgy;TĒ%^rLI⃏(LUD-S,Dbz%Su[R1UI=bu0UU.rY\>9Ljv"SUNT!SL̙*p*0UYJWߪ<8gVacouTLDnTbc QS |Sq|<4WQ]Wy"!(m Yx^U(Av$*# ^Q> P ½BF+ C_ v>kψ T+ăyxuo$,SJXpv@E.-f[=A-PG~]9})yP9hDWDUy1_U]*.$guFEzqw0uUz@F@@Ӿ^F.j#eGZ]:K뙰0A*a7L+ UKZBc-P`jma-0e.jôADt,j 2[fQR`26M{]6!֦q4XR$/"IMBz!,m ? \}\tAR&Pᇺhx.\gӼXA?eDKyU-`\żx[!M-D,$IӅÎI*M$oȃۃq>P*QxZGչ%J`De/o^3&{ ڨ:}JSrɗb2/8jן#\5Rm@L$r9|UG̤YɣIY&L޷ZY0xVA{jt}<>q)qHk=.Z: wA #hxf1hzNopuI\hr{ 3U+8s[ʶt3/r uAHdTB.[#W.(k*bD 1c1[ e6J'68AO6y5. ,`Y::.x3'Jwʟ!k("q ]%F9q'QAHyCbaf|Eב+Y$t!Hw.t/ -b|j cvx3WB2}@GF>)Gnd<#"υaDbпoI; "wWȤ%uԖl|rlp$&,ܲ&Rƽݘt5~0pOlqoe$߁OsxJzkْ 9P-~t{Hv=2KB=CpFdyvPDl|v*#ke͈Tl=ucA.kJ?jd OOj?UD~1M a&2 2ԌS/Fe# "N1t}WIǁ,g?+׼#֢h9QZ(du6PC~XWrKiST|pP:އQB |ݩ%<ᭉ|}"F{BC 2g$yrQ8:~y~6#.W?}²=Ey3q9 3r޿7孡J0;/?J}*ׇ/?f^TUb18 ~R=YdvDz;ts- rV.Tn aAiiuohKr(ڠe3%&hs•=l=Ig@w@ 2KF_CeI2+}//-[*z]}Bs+l qn@&HW,t7xD Wu% XMKd­{|X Qn%ER45q6S-~+LDC㇖`XzWSC ǍlFCF.x'MGiƖN)6+JWKP>J#^.W1=Vg5]] PY[::VXLmcV"<{>.J\foykvjB23U_L(=[V['3^+QKPA 6 -*}L}4P(N1.:A,PY}M1q 2Zr齐'Vs4/ l\h+-,GSerLŏT%AS2Y_ҽpb)4%sx@]حXi ;,4e,"HJTH{[_O7׼}/}~vgOE{ߝ۰y߳+^=wBs5{d7Svnef[GÄavcoj؛5wj?K hGYS6o~Y>Z˭rKz5ʊetBCA?uX"ꌪ{ֹ/tme{.iw6w+R*7 ]X _d+tHοv>Z5r4 xI޴}+P6<|9]&{kgRGU1QXu  rq RTo