trousers-0.3.15-150400.3.3.19<>,Xf۠p9| tN&YbPG7yMܴvL{rnp8b>m7H&8!g2;3;zPtT~|*+)E۾Cb[,=B*{OQ4R+!`<ޞG*qޜIHtvK JCo-/Ax7xjAmyQ{suo; UBuv2%Է꠪vBq,T>H4|?4ld   V!BO e{  \    d  pIp\x(8 9 : =(b>(j?(r@(zF(G(H(I)HX)`Y)l\)]*^+ b+c,d-e-f-l-u-,v-w/x/Xy/ z//444 4&4hCtrousers0.3.15150400.3.3.19TSS (TCG Software Stack) access daemon for a TPM chipThe trousers package provides a TSS implementation through the help of a user-space daemon, the tcsd, and a library Trousers aims to be compliant to the 1.1b and 1.2 TSS specifications as available from the Trusted Computing website http://www.trustedcomputinggroup.org/. The package needs the /dev/tpm device file to be present on your system. It is a character device file major 10 minor 224, 0600 tss:tss.f۠s390zl34 SUSE Linux Enterprise 15SUSE LLC BSD-3-Clausehttps://www.suse.com/Productivity/Securityhttp://trousers.sourceforge.net/linuxs390x/usr/bin/getent group tss >/dev/null || /usr/sbin/groupadd -g 98 tss || : /usr/bin/getent passwd tss >/dev/null || \ /usr/sbin/useradd -u 98 -o -g tss -s /bin/false -c "TSS daemon" \ -d /var/lib/tpm tss || : if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : for service in tcsd.service ; do sysv_service=${service%.*} if [ ! -e /usr/lib/systemd/system/$service ] && [ ! -e /etc/init.d/$sysv_service ]; then mkdir -p /run/systemd/rpm/needs-preset touch /run/systemd/rpm/needs-preset/$service elif [ -e /etc/init.d/$sysv_service ] && [ ! -e /var/lib/systemd/migrated/$sysv_service ]; then /usr/sbin/systemd-sysv-convert --save $sysv_service || : mkdir -p /run/systemd/rpm/needs-sysv-convert touch /run/systemd/rpm/needs-sysv-convert/$service fi done fi if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : if [ "$YAST_IS_RUNNING" != "instsys" ]; then /usr/bin/systemctl daemon-reload || : fi for service in tcsd.service ; do sysv_service=${service%.*} if [ -e /run/systemd/rpm/needs-preset/$service ]; then /usr/bin/systemctl preset $service || : rm "/run/systemd/rpm/needs-preset/$service" || : elif [ -e /run/systemd/rpm/needs-sysv-convert/$service ]; then /usr/sbin/systemd-sysv-convert --apply $sysv_service || : rm "/run/systemd/rpm/needs-sysv-convert/$service" || : touch /var/lib/systemd/migrated/$sysv_service || : fi done fi /usr/bin/udevadm trigger -s tpm || : # bsc#1164472: adjust potential root ownership to allow tcsd to open the file # as unprivileged user. Be careful not to follow a symlink target. system_data=/var/lib/tpm/system.data if [ -e "${system_data}" ]; then chown --no-dereference tss:tss /var/lib/tpm/system.data fi test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ "$FIRST_ARG" -eq 0 -a -x /usr/bin/systemctl ]; then # Package removal, not upgrade /usr/bin/systemctl --no-reload disable tcsd.service || : ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_STOP_ON_REMOVAL" && . /etc/sysconfig/services test "$DISABLE_STOP_ON_REMOVAL" = yes -o \ "$DISABLE_STOP_ON_REMOVAL" = 1 && exit 0 /usr/bin/systemctl stop tcsd.service ) || : fi test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ $1 -eq 0 ]; then # Package removal for service in tcsd.service ; do sysv_service="${service%.*}" rm -f "/var/lib/systemd/migrated/$sysv_service" || : done fi if [ -x /usr/bin/systemctl ]; then /usr/bin/systemctl daemon-reload || : fi if [ "$FIRST_ARG" -ge 1 ]; then # Package upgrade, not uninstall if [ -x /usr/bin/systemctl ]; then ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_RESTART_ON_UPDATE" && . /etc/sysconfig/services test "$DISABLE_RESTART_ON_UPDATE" = yes -o \ "$DISABLE_RESTART_ON_UPDATE" = 1 && exit 0 /usr/bin/systemctl try-restart tcsd.service ) || : fi fi.\W"#]~^^A큤A큤Af۞f۞f۞f۟f۞f۟^S_L^S^S^S^S^S^S^S^Sf۞f۞f۞^S^Sf۞eb009b7d1132ac33411e8f838c7e272606c8dd1d8944bc8b82ee28f9114e82fcc56f762ff401646eae0b25769c79234e22cabea3e3b4f4c7bc581a23787b36f44b635e9ae00264cd370fc62921814265679e2a15fa6d6ebbd468e40f00af48f4edbb5fbe5261208e3f50d8fb1e862aec33a1d5badaf4ab0ed6858e5a81447d91fa066fc32ac644d28c5ae56f62feae0e3b8639565dccad1cc4345dc71577970ffccf2c7a906ae571849fc1bacd98f3e070e4da85b2ec6e937aa45ca1323b55ef1ad596d12e7471549663c03e280b5b5d084a2e853fb86e4d766109818f9d7dae4a6bf595610b97b05728f4615d54faf290fac3f8bef836a5d919de070f3cecc4842cff0de213dbcbe03bdcc03c3dcfaa48e03bf45eea9d18e970cef4411f4458686e9d62dea2df5433d4a435602c3e0522b3bb68a2e75c39c80552d6bdddd948e10fd3096b3fca327b01803d91959817028371fe8d9e1970256bc56aeb1bdc1138547b7d669844a1d7d5b9075872b6f5117996c0a21d78e383e79ce7eaedb8c07ef598700d70a9cd14ba28950c7b048cf21ec2ac2297013e5789830b58ffe8baf09355ad0bc2e91d802c18654c2b9219ac1a26cab805879a784eb8a030e02c437cef9d8224b158378505c02b77fcdaa05a2f9ecc1552e95ad6d71b5ea96b690219a3b32565147e2a9d085f67d3c83fd4b93dad037fb966cb0cc5499d8fa6a568d7c26f86aeb0e601cd2358475047161b619bb46872f84569448031f3649619e35e3194d734c81d99d6cb679ed5c24ac97652b068ff12eed215e1ce382a4fb7dcservicerootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootroottsstssrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootroottsstrousers-0.3.15-150400.3.3.19.src.rpmconfig(trousers)trouserstrousers(s390-64) @@@@@@@@@@@@    /bin/sh/bin/sh/bin/sh/bin/sh/bin/shconfig(trousers)coreutilscoreutilslibc.so.6()(64bit)libc.so.6(GLIBC_2.15)(64bit)libc.so.6(GLIBC_2.2)(64bit)libc.so.6(GLIBC_2.3)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libc.so.6(GLIBC_2.7)(64bit)libcrypto.so.1.1()(64bit)libcrypto.so.1.1(OPENSSL_1_1_0)(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.2)(64bit)libpthread.so.0(GLIBC_2.3.2)(64bit)pwdutilsrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)udev0.3.15-150400.3.3.193.0.4-14.6.0-14.0-15.2-14.14.3f @a\>@^˳@][GXh@W,@U@U/@Smatthias.gerstner@suse.commatthias.gerstner@suse.commatthias.gerstner@suse.commatthias.gerstner@suse.commatthias.gerstner@suse.commailaender@opensuse.orgjengelh@inai.decrrodriguez@opensuse.orgmpluskal@suse.commeissner@suse.com- fix runtime requirements for stat and udevadm (bsc#1221770). On minimal systems this can cause the %pretrans or %post scriptlets to fail because of missing tools.- update to new upstream version 0.3.15 (jira#SLE-18269): - Corrected mutliple security issues that existed if the tcsd is started by root instead of the tss user. CVE-2020-24332, CVE-2020-24330, CVE-2020-24331 - Replaced use of _no_optimize with asm memory barrier - Fixed multiple potential instances of use after free memory handling - Removed unused global variables which caused build issue on some distros - drop bsc1164472.patch: now contained in upstream tarball - adjusted %setup macro invocation which seemed to be wrong- fix a potential tss user to root privilege escalation when running tcsd (bsc#1164472). To do this run tcsd as the 'tss' user right away to prevent badly designed privilege drop and initialization code to run. - add bsc1164472.patch: additionally harden operation of tcsd when running as root. No longer follow symlinks in /var/lib/tpm. Drop gid to tss main group. require /etc/tcsd.conf to be owned by root:tss mode 0640.- Fix a local symlink attack problem with the %posttrans scriptlet (bsc#1157651, CVE-2019-18898). A rogue tss user could have used this attack to gain ownership of arbitrary files in the system during installation/update of the trousers package.- fix wrong installation of system.data.{auth,noauth} into /var/lib/tpm. These files are only sample files that *can* be used to fake that ownership was already taken by trousers, when other TPM stacks did that already. These files should not be there by default. Therefore install them into /usr/share/trousers instead, to allow the user to use them at his own discretion (fixes bsc#1111381). - implement a backup and restore logic for /var/lib/tpm/system.data.* to prevent removal of validly stored trousers state during update.- Update to version 0.3.14 (see ChangeLog) (FATE#321450)- Check for user/group existence before attempting to add them, and remove error suppression from these calls. - Avoid runtime dependency on systemd, the macros can all deal with its absence.- Force GNU inline semantics, fixes build with GCC5- Cleanup spec-file with spec-cleaner - Update prerequires - Use systemd unit file * replace tcsd.init with tcsd.service- updated to trousers 0.3.13 (bnc#881095 LTC#111124) - Changed exported functions which had a name too common, to avoid collision - Assessed daemon security using manual techniques and coverity - Fixed major security bugs and memory leaks - Added debug support to run tcsd with a different user/group - Daemon now properly closes sockets before shutting down * TROUSERS_0_3_12 - Added new network code for RPC, which supports IPv6 - Users of client applications can configure the hostname of the tcsd server they want to connect through the TSS_TCSD_HOSTNAME env var (only works if application didn't set a hostname in the context) - Added disable_ipv4 and disable_ipv6 config options for server - removed trousers-wrap_large_key_overflow.patch: upstream - removed trousers-0.3.11.2.diff: solved upstream now/bin/sh/bin/sh/bin/sh/bin/shs390zl34 1721031584 0.3.15-150400.3.3.190.3.15-150400.3.3.190.3.15-150400.3.3.19 tcsd.conftcsd.service91-trousers.rulesrctcsdtcsdtrousersAUTHORSChangeLogLICENSELTC-TSS_LLD_08_r2.pdfLTC-TSS_LLD_08_r2.sxwNICETOHAVESREADMEREADME.selinuxTODOTSS_programming_SNAFUs.txttcsd.conf.5.gztcsd.8.gztrouserssystem.data.authsystem.data.noauthtpm/etc//usr/lib/systemd/system//usr/lib/udev/rules.d//usr/sbin//usr/share/doc/packages//usr/share/doc/packages/trousers//usr/share/man/man5//usr/share/man/man8//usr/share//usr/share/trousers//var/lib/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:33188/SUSE_SLE-15-SP4_Update/159c6189c2888e1f144b776f98e388d1-trousers.SUSE_SLE-15-SP4_Updatedrpmxz5s390x-suse-linuxASCII textELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, BuildID[sha1]=066687e65a5d7559d39eb4ef4355cb786dc9c58f, for GNU/Linux 3.2.0, strippeddirectoryASCII text, with no line terminators (OpenOffice.org 1.x Writer document)troff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix) RR RR R R R RRRRR{lD# this scriplet and the counterpart in %posttrans work around a packaging bug # that was present in all trousers packages since around 2008 until 2018. # /var/lib/tpm/system.data.* was wrongly packaged as runtime state data # instead of package resource data in /usr/share. After removal of these files # from packaging, during updating they will be deleted. Since users could have # created their own versions of the files already (by taking ownership of a # TPM) we want to keep those files in place. # # to achieve this we use the ownership of /var/lib/tpm as an indicator. # Versions that still wrongly package those files also had the ownership of # the directory wrong. Therefore if the directory is not owned by the tss user # we apply a backup and restore logic. [ ! -d "/var/lib/tpm" ] && exit 0 OWNER=`/usr/bin/stat -c "%U" "/var/lib/tpm"` [ "$OWNER" = "tss" ] && exit 0 for data in system.data.auth system.data.noauth; do file="/var/lib/tpm/${data}" [ ! -e "$file" ] && continue cp -p $file ${file}.rpmsave echo "saving backup of $file" done/bin/shutf-89fce036e21cf6b75667e03c129d3f94973a0083055357b93fe0f42666251d656?7zXZ !t/L]"k%]̔60c>ͱ8ePtm3*#6uы䌤9+.3f1i3vze7\#g^j0%L1ҲSYbbWLb c5tB}d>Pb|ԉ} vt>#+EgUqvRҬ$3_G#K >Gdvfb1n42h7+s:sA;ps_nta8AiG\" #;Ѱ=dQ~x%݆1PUv8I@BY( w ;m`sOH~vq{)x1 Iu3؅0 AZu_|'.wL4+ح<֠NzzO€iϲEXh Y`P@!9K(2*#RㅒbI -LKxMēp9鄛pUk ӫW‰Lx +GXcrEK(.ҹ FTϴɾr^h9n7dlhP9u4 yOFj%K8DtKpحEj~p^䙐)[L4Zgm?E1(TID=@̂]ty(pQ\D߷8] 2&Yxz[ТMɐ0)4_b/ܭW 'j `Oii"Oa3g); %3⧱BdjP$o46#Q!jx?=~-^}>YIL@ yq'N^j?[ hu7OAK:Y-92/ G晩oHdrώ.Tȿ9Ϸ bIt"I^bUlY"lVX.(z}-epk6#t+*d˥f붴ACOI@W(26zMe19vO;Fl7UCCXH[k[zEp ~Fmj98U|MwF1|%VMo%>3Ô7f{DbkG-c DH]ԄROï7>C*iPY%>*iYUAw=IS\\|O8* 7cϐˆ'9_,EVs?j}Շ1_R=FAiV3G'8F>8S@ovA.xZwNw݂cU@wU7Ҝq}9[%:?m"RD*#&T(LD?Psi[Dv#xBg͗T8kő^?(>6Ғ)54!#Kq|l >* 'Ch*5x 4ܞ|]ۑ?hߛ9MnnLa'PlZ١؂sn;k*2wZsښclz\o=ʬG!_ !29&rבoݢhnz} vPu;W)헆Ji(\-* WLsدLg!,7iR^j_cP9a;}l/> ;x^Wq#$Hհ^;ղ:t a7IqWùuk@>[\n]LHq._á݄S]E I'uȋ25SoH)#{8M)S1Rώ[pUS}`wViJ e=WNu,˩* }L†֮d}jv˞t qƔg,2o蓼kHS6.%Hа[ ݊ݞWͷ#t䂝fi҈lF>rqV"ZP\#S j`CZT\=l[E-.f/ iі-F&vMqE;CGk?mEnҡBD^ɩ>3~\B% %l]^EHf@WKݍ8xT8PIA^o!z[LoBHZos+E[ )A†3C7}P)syM8 H8\RT\FcL]j Q>L<ژ=D~$P{-MJTvdl{@wT`j@V0}t& MgپQ%ZcRYE7a.vTԣiʲ;n>EqV!V_$`|=8BK@^ vbV+^ʨ6Kq{}^ /b}qMHxa'B-TmB'!N/XZr<;=it|Ǔr8ŀ[#u8+fe& 01jF5 =lrAvGZwsܵAtӤMvXOdc9vCEޅlS{c]>8sZG;hj5,8+F_.Pn'؈G'&4ڻwnU#'DҕD x\ qx/+5u{0F-b@̙zұn\tk헪DV78dR5:6PiJ%7yggꗣX8!J9"cbL5r(;qMvRj3-=fhk!Bج[!;5}ج YWY% ǡWӋͯ:ץbx_md XI9f ZiTQmvc>Xe(lxF,$Vf {Ezo>=AƂ㉰T|- / Od%m;i\ U`X_Je?\LriY#J&JF2;9 +yTnw+ZE5s`]Hq)XyJ&([ t3ӦKbrB=HZBtf"^ f H&tYq|Fǃc˚ϑ,rR4_alĤbK:.l1]&= aBl""B/}M_.w(&EyrЁ *.Qb^9tҁ ЌqvxHq*]h7)~מr2~KٟP WWYV!Mxtf[Su9Gkmd;E +YnzkTSGveVpmVtEfx?B5V2dI 񠵗Z5%{I[rpBYP-$KU,^K#r"vP3> |g5Gx*/@JYJ%YB$Mlu0MQM$QKFE"^l!4)&" NP7du{@ED̐ &w 3 6&}/Lz;dquc[iQ/݁urֶGKmqűGeԉWMʗ e֒F oM^_+uO|e v- G K8m>[{su\OvлaӺ)Ų_,' !?*S WaeP7SCo&ۄzPGoYjH"Xy8tcX}o EbQ)f[RH#OIZnLźjPh*ՊcrpXs~Y fQ7jN3e ;?0hn1<.Oh.v$pUڮWG} TX4DYGO:J0MC1Zj9)WD5s6dvB1x;˜:9iOd5pTGg#Ehh)]K}Y[6XmD|s]`#edsϾ1ttqC4!O?e00N2k g9y  gY>WEYNCړ_ E?Hxj%N. lg~8'TV(.M R}+:+ :Y%&lTq*jumh%i{ٻC#S?dYOpN\zxއOX>ѴoLw:!eHǥM2Y䰵ρxqYHC&dEL8[+EKN޻acH}5ׁ ?!N~>ho}}5Ʒx&9rdx5up{+x&/# ?||0c#ow[=^rj/ZId`[B\xs,RZ&7#;dza}ϿklFsPHdIY}kgb15G$Tdk5wh\;.E.?״tm5[i?7\A^CI/* ;8es/;pRK嵶I+"_hsm;"Z vO?6vpEAq".%Lzȇك5*UWǑ1(]u86vÒX SrylwBeX v$?ǽhOGN@kv҄"PsUT>鐻6c?{u $"R7<(٘، &EƠ&V*ny4-9RI%1@:N2h]5ȧe} HҲ1EYLԳie"4=MxHi 6k'z|)j>k-[[ c:㋹EF4°}sA鎼C܇gPB1DEaJ|}q*w\񬡟de9A[eoP|ʷNhbYGr2 b|f?Me5`ie띕Q*ܭ6<0BIsAڋLW cw:uC".sM-mcE2jeH LEM{lYS(%⏟4체8ewJƩ Jtd629mՄ 4i3ŐYeQaGL4fP|17`fЋ_$ϙ;B x` o b4"Ʊ#^ҤJ|G.xdvՈM@Wa\ -A)+6.QˌrJ0,u[m1"ik#&Dk8Ppt7l6UbA++\E iIaXNznp4AIL[SQKcZ^(PMd_bEUo.!Y,6_b"adfޭC,Y@ Mhvߕ:\sX#w],{)ŋ|;h}!^Y ,txh9KMs Br=Di{oDi͉Mu2o }>Bq"KL%Fme|;xw qRIia0ɂ؛sg) gȋB\}D:2aT![x5Hh7[q=E(YP.ivJz ?QQS~ }bpE/x>MQJ˺[38ZUh<S!G0% GnCN)K |RǂH$&vSHH}wY޶Y22&.)0F2[~ٟ&u#]BvIʣ!-ydH2;SK6Z# C#/emʍe A:)>#JE+M0sa%[\9əVEltr#t0%6͚AaZ ʼ$ag-J}>_πM"9y~x'q7=Pa{r鲇^W8L;d]^(d=u{`G Җ<`\&(|P--`w3ydU$"ԺoHpF5f͕ކ5ч|d;fQN7dBb2cǂIڨ"&_\JK4!b)bozõDnγqD:iY.kG*"Xղ/:7TsƲ\j7T'ܟ]ѐ9 o^0Q\vʓPJ{ 3?nn-}1*?12*%<><E\=jDuDeQoI5X<^T敲VW\foMQ7gһi㘐#'TϠX.r|Ey5l`lAF#TRLw\k0E|q@ 8!2|8w5;Y 5#*rtIt-1/R% GFKCS^1xNJZ= \f`v'إb~=K@%PXS@I,XV7ο[+zm\ԯZ{lRȔ<CZ0w@冾Wr,2K 3ɱJ,SFl*2ds+W1̕pO|.zh aݝ"GLRQcLY_,$;:* SY3=;X0o ew"Ik 5. r^ȵ'ɺQ6 o8 lGV{ثPX`3x BӣA_PC0zͬ[,@wV/LnvOWa>w8U`KsZbPPL9vOis>ZUM*Ii5"(*s* \=#|!] ;![5,1;6U}8?lzy`)ƶLq$v4nO_vڭ0lPS)2ֽeaΙ!)_;*46ak"ddwT)j_E\241gG8Nx;*'0.:eS5lƟjω9P} 9D48iDgw*MÇ@^,1*d"-0I!`8?|4Yl&Hi@ZpJ=|MĀa,SahRU9ſu5xzˈqHEĄ+~h96ZMknqm4Y+Zs/RƒɩW␳})ޯX"#_[IΏinbޅ!aCD(zƗ酅1I*xAFH k0k!M%D-N)g; CRp3)B+Ǫ9ٶ˔r9lT4OW ʌWqwAgWaq0AU.GUТ,P|J_:x/gTݧf\J "E'o@KC~rtʺ}Y6m}5G/MXs1!M #,4L[{p pÎPbπ/DsXdqZёHmxteµ|C4ռx+W[9tE` Ӑ5O=&Z1uD8i@?S7Xb?~ʎ6Sb'[0py8h4["\ܿ>:uK!RjﺓL?€HK]%pxB_/h$;)er&4"gd#L7o.Aqd<9%(8ױ䫾Gy6+V+כj(|dUe.'=y1zJ~ZEg/]pWo-c=& F"Vm?ƕ;4WGߤ>*`GgT><&*}:LkXyϠ7p܊NӤvFsk;|4ā}t]כhbܠn "ke$y/_%51 QFlRԞ%ZlS:j%ߧdx56eHNJ-P, wW3|63xlQ]Ι?SNCXKMkj jY J/_P4T~VCX xT޶ 0!oۤ ki-˘ˣQhjz'*Z쯬J$XOX=AeݜE* %Zڒpp]}qWضWY~&CR ȆQ܋SU~׋Ug+ӭ 89v椎K+;5GC$׸itI.v+Fӏ@_Єً}GN0f{!mcJ/׮}x{|ÈTm+Sޘ]EؔKLtٚ lF_D妽_jZZiDj\MiTPoFvrLPm;OL0:>!6,D&ldLv7b,R  syejuiMq+NouN-8a#L#q߆McDp \_CoimhgsJ /h&n~J ץa%b]/!'/|,Ўb9-jf:+Ԁ+E{V+ʜ1chG%N1amo6sn/ï{+'v2Bcåf? (=\B*bߵ7wр("Į*)6f'(c :_4*c(ʍ# ٝzv5nZVCٮz=c|ʾaA&%Gf~-G񏜓Φڹ$66& @ӄ< ¾Vڊ 19R딻?،)_C6=f22e¾(8˳4MzZkN֊qۻ#!H''|(ՋSJ f+͛Pncp=Th&*+ $M ?3]E~ZS@Xåg2gIdT?[,GSE8Sf5/vWC~qS;7sm>V@w|{[9S ̜%MOw٦be ؋ԸEԩ f/@dE#yX{|:4{Å*s|jd/9h?PrTf=[&J$jcdk:xUDD"!_%\@<1#QEPk/#0:͋7a2n ZQn5 &HFkHJTqۦ?wLG١VXdq6|ZGT)sR2fQe8yٯ9_#e  ̩-9)q*#D+d3I4v0?00f7}^ ]_G WXbf&-{e.LLp@85ЯFo_I ui%0{C7S1Ifҽv7WeT$,rj=kq\wRpbO}5r;^Ԉ]=4DIW` i "*h )8:\iF? 2i3}i֌~YGW9Xn>z Wږ%1mTo;cAQw9f!y m߸WoJRB& j2 䭮a銫 4+eT\mP x8M.ʃBֱÈ[ fy M$Z+OtH 8T:zr=)dlJM"4]† z#n?y>ƺZ olmw %@ᄝj8\H0=q8 JWSv[ahROȑ]%Wr@ }ǴH# Y܉!O;ȼɶɝPI  gxܳX` mW**AgxA8s*$; #l b|׷W ۺw2 HC'fHE<ᜌg[G+#DTu$s!Evwe,7s\t-\`M k~kT>_O'URa #Y=~jy,I'< \8s8t۴n3wzdU[aa61/ǙOҊT4 2' ЃU肩7P 0swI T|!Me+?85"&8C=pȃc}|I|naI?u@X,39iѱLlS6 &ng% +p+/<)w}U IXM0O'8 ->e<{MpJj?tg >7@)pON(ʭ {Pq%xgơs4`hcΗjB OΛ: OD&RBN5FHǬgF<$sHQNgM3ȏfi$wLM-#.l>VV'=NVi7dǔ)'[U?;pjd3MAzoTj1Y)sLHȫIOm e#$=|,$injv\5D.M pn YArf s myh̋KR؎6h uiwtq0ƈ#MwvP Gb=ԁaGǰ;{H~ Dy"%7E9VH_k3 oSYOtDcG3`"'|YM >E1ρ mC8kW;E+ nzÙjgڪs/Š),=n[3/ǻ1>mDC\cH~YU(" dt^ @ Py:edεP6r` Sń:!a{_R gi FNҊ0PmTB.C*قy#~.ib3̚7N[៟R7 )Jsi\p;]S6ASߏFF`C(v(C \W GJ$DJx%ydT$`'"s07/%5u{A9P }C]YXT* Z]azG */(T1YYapK%Fm #'K;&ne8ol:^k2y00ܶ$gL[PiL{ݻU rchV[`BLfL g7ZGr&RBD[e$~Z7L|P<'g[#=ٻu?]20zFB5/.ي*~uq9y= DZW6=x]4?A?I+2z^sHPK=(4gP rPSr /VKȿ|o r8xp@)daWێB,:}J+qvla%"D3 u:GR(ngќn7j]t}SI y0 |>ŵRo+ŠКgwMln(qנu>@cP.#Vrc%3CyY4'عys$%ԪRxDKkPS=i @52@. F)$HCcx"k2.;i} {yWZx51  Vi(uy*m4HbR̷j?V뒥#eL쓸72؅_uJeޠvwԲ_" a| J;ѱ:L=xc6!3v "';+F EwwꅈłaF.PYA(̙X˰Wj>v5X(*ӼK~y'V:*$ܡ&,mKLs~9kioi dN:fa仌FA=A\,:/2d25nS[JbosK'j]2rnQԬ-9P[{E6fMR@oAkr:RipKVTk&\N5'*ⶐlLw=',AY4&, O7L}*1Њg=3;dW%J_[M-ԆY!Okw;nɌ L5/ƢW[\#Hi^F كVyS(Dlbz4nP}}b UӈKF\Q$p[um6ۣ5 w=}KTsgzt/ "]039;7pϽI0ЉV7K#`wna98ͪ bT\%4Fp/CJuȇKÓy\}cBu5lTv(x.M| & mKV2g 6"r nWY,.B[xu!^Y/f PlsA5EBc+%r*>.K',GHi5Lq< vB[or ^[sγ!0{Rg_C"NQg̈́w<Ş;)lmʲ{=%C[ڌ%RF 6]&Y%%3&p-MsDTwE`sESZ5u\꨻5ehrre@B{PAd|yrI;vMZ'ٝ> { @Uќ_%8Tfラ&^V0%1on~Q|rfѤwucφ283#~}eZ mvkcLHɼӵC ~>Ӧo3JnODU:AFo+ *@{r~>aiW}+sKxq vz,p6- kQ44Ezb yL8a (KuCcl@>͏ ΛQ%O$QIxz;Ɂ!엏eȁCh2G؇nE;a(m ]ʦ~G HK#ot\ -YT1XRL?m ~m%`}0uoL0Φa2W ^UFǥF˻R+G?̌~IIO'eQsKhSq%$[*(158o\FlBoUCiE?_.c~k9Ssn:ZDP=~1Fmk݋<|xy=W= tGɄolIN߿=4=eٖ[(B ېXHv&q@׬ȓN,?j27tIhᕭWOI/nE.WnuQ(PUj!]JQ} ^@WJZSixŎ 1Bsu.q+yHߢ ,rئ%!DZ<m;haGLnr3eoV >|6+~z3.C5WE,lHVfʑ=T_KK1 U tӪ YZ