aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auth/provider_apache_test.php
diff options
context:
space:
mode:
authorMarc Alexander <admin@m-a-styles.de>2013-10-27 13:22:53 +0100
committerMarc Alexander <admin@m-a-styles.de>2013-10-27 13:22:53 +0100
commit760f148a2ba581df61a25d3efd0e438b5ea77e7b (patch)
tree4772abee4adc7356c2f8b40170a594edfe101000 /tests/auth/provider_apache_test.php
parentbb836b65e3c16fadf5c13510cce73daf432f7ad8 (diff)
downloadforums-760f148a2ba581df61a25d3efd0e438b5ea77e7b.tar
forums-760f148a2ba581df61a25d3efd0e438b5ea77e7b.tar.gz
forums-760f148a2ba581df61a25d3efd0e438b5ea77e7b.tar.bz2
forums-760f148a2ba581df61a25d3efd0e438b5ea77e7b.tar.xz
forums-760f148a2ba581df61a25d3efd0e438b5ea77e7b.zip
[feature/passwords] Fix tests on PHP < 5.3.3 again
PHPBB3-11610
Diffstat (limited to 'tests/auth/provider_apache_test.php')
-rw-r--r--tests/auth/provider_apache_test.php22
1 files changed, 19 insertions, 3 deletions
diff --git a/tests/auth/provider_apache_test.php b/tests/auth/provider_apache_test.php
index 4c09af33e5..34da8e1dab 100644
--- a/tests/auth/provider_apache_test.php
+++ b/tests/auth/provider_apache_test.php
@@ -42,12 +42,28 @@ class phpbb_auth_provider_apache_test extends phpbb_database_test_case
// Set up passwords manager
$passwords_manager = new \phpbb\passwords\manager($config, $passwords_drivers, $passwords_helper, 'passwords.driver.bcrypt_2y');
+ if (version_compare(PHP_VERSION, '5.3.7', '<'))
+ {
+ $this->password_hash = '$2a$10$e01Syh9PbJjUkio66eFuUu4FhCE2nRgG7QPc1JACalsPXcIuG2bbi';
+ }
+ else
+ {
+ $this->password_hash = '$2y$10$4RmpyVu2y8Yf/lP3.yQBquKvE54TCUuEDEBJYY6FDDFN3LcbCGz9i';
+ }
+
$this->provider = new \phpbb\auth\provider\apache($db, $config, $passwords_manager, $this->request, $this->user, $phpbb_root_path, $phpEx);
}
public function getDataSet()
{
- return $this->createXMLDataSet(dirname(__FILE__).'/fixtures/user.xml');
+ if ((version_compare(PHP_VERSION, '5.3.7', '<')))
+ {
+ return $this->createXMLDataSet(dirname(__FILE__).'/fixtures/user_533.xml');
+ }
+ else
+ {
+ return $this->createXMLDataSet(dirname(__FILE__).'/fixtures/user.xml');
+ }
}
/**
@@ -94,7 +110,7 @@ class phpbb_auth_provider_apache_test extends phpbb_database_test_case
'user_row' => array(
'user_id' => '1',
'username' => 'foobar',
- 'user_password' => '$2y$10$4RmpyVu2y8Yf/lP3.yQBquKvE54TCUuEDEBJYY6FDDFN3LcbCGz9i',
+ 'user_password' => $this->password_hash,
'user_passchg' => '0',
'user_email' => 'example@example.com',
'user_type' => '0',
@@ -130,7 +146,7 @@ class phpbb_auth_provider_apache_test extends phpbb_database_test_case
'user_regdate' => '0',
'username' => 'foobar',
'username_clean' => 'foobar',
- 'user_password' => '$2y$10$4RmpyVu2y8Yf/lP3.yQBquKvE54TCUuEDEBJYY6FDDFN3LcbCGz9i',
+ 'user_password' => $this->password_hash,
'user_passchg' => '0',
'user_pass_convert' => '0',
'user_email' => 'example@example.com',
smN%ԲHN܍9ljW5} P,BHJ/0pB0>_2)h u+Zm,C!\1f٬>CL+}1+l@+n4no)Uq|iF:겺57v]cܺ&v;v]Q+`j @0ķ^E&u)cJD'i<Q-1D|c&?X ք9:HLprZj!L~q` GǩmpnMBYZvL۟dD~DЧ:(Dt>@\VOV}X{QߌFr׶I#W b+**PKTǁ:=TP璽My3]<8ZRJ/c~mЇ9g!#[5+ ==fH5+{Mg 0%q3aiW]吤M }3Vϧl+*eΰvʸJl_QTA+ 1T{@y;ZQuyd=N ~ȉ1CJLU?B]ńtm XX>TLDWʏ7N%c~Xe31nMY,׳Dprb f?v(5.Xt~K۷jdM_ BKqOM~ؓ& [mz2FHkB@WlJHif;8Fo+ʫahN焩vƝ+ +S#dK>Mt0(oHX<({8xW`^M"4H)B2Ua'B@=dr=7Z"!0`}Zx0}1[ ؇/&9{/a%&8ח kS?zD9{Ss7?& 6 /+&0jQ> !MG=.PL^x|gBZl3 EM ˝yNJAW~xxIأe n>} pzK|lphqhVrRK(jqcMGt#]gѼuO_t>2~Ijlљ6tPBc衴O~)6 o!UC.ƑZ8~xFz*Q\{h<ȑ쾀ޙ J}:Z6+>&}pK $*d Wwb~LJ"-G)|!@wrabx^X]woJrj!dđNZYbu_!2ʉD>4sKZoY&mځw-s"IkoaR%Lku#&t+yo.2?~ x4/*4XEl;t!<$Tׂ9l6m9'f`2ˆ=V&6 猫ìqUl̗oUz;*OU`IZ׹#PPD2Q0hXN#$?MLGēf+/k7 >s^_JkX̭.B,.ms/{11mS` Pw0wyvkˆ2IɏQkBeKoT hoc 8O T:HiAZ _jl 8,&D(86(⃝QV~* ϥD%^"OHuՓ/ZMxI6FS٨vֻw@25Ј߹ TFGA%%>DOД]hkKᵾ4Km` F#&4}b7!lXJ .&{rdoJ:xd2l?\W1 ݈*LZqC2`eYEU&xo`Q-%qn'-~UNz$IƮӶYd?l!rxҢ' *©,781-&#L #b/f 7]*5bed3,~>B5@Ӎx7{1x}8ʠ!pNyOƃ((ߎOBGn%6V rnAꍊj>hPjdꭲ'AĻ}9LSc/5nvN=*JKf}: 쵿z~ F{_yN6;Z%([}ߣ쇅!EтQ 뜟,JiҝU[%;_0i11` gz`B6w/WAl?-S؛&,,.K W!gۗٮҋK»\+zV+ Mbn0FJYfu<q/Id0g"խX_nyZ`W!dPIUCbZI=IoWGHF {^O0\`CX۽7Wi- S2q,խko\d qÍn51U96kVH&1Xm=%yޞ]ЅI9Ppd/)1xxyǣjqwxYZ7b ub˰%'P[XpvX)X#qfΟ su *]\0\4=o:l)s&\I93yuY`U]  fFSjUqutd1LxJxu)I\B.G%5zu33 FI_(ȕlc7 2G0a'zt3CBNTonvQ,.QyQTeN@)oA$q}$atA)\Ώ0@a:H]JaY@.}lזI!K ob%4n, 0S{LykM8ji"]8@f.e@K%AUd9Gqb i($30MWgW$ܿ'N΄5=g]B#a*̐zO.wg5Iu*oPpit}O>5!۴^i ҹϨ<Qk"Ø/n Ce/SAzyL{.}{N#Zo,oS@hT6)H_wIJUM}"m*K_S~lk ݩ] ߺ-#KÝA鰛Ͼ%^?W".~Y]T|B5Z~)/LQmkqusSX%,az(agUdv-fgg`y67i 긗06qELMӋ B߳~X<>sف]qpYl&9sk+3wf_#8auk!rGm+DmzPM[ uk,xCq}$L^q _XnS h3'9-%CZT qկ>WRWL8Ltsk ܉?de'r9/Nzߛfҹ&Y)YKa3Ҳg,#ˡ3 Qߤ63:rWC:#oƒ987_`x[{{XN $>uմݴAvD8n}AI!p*hHcq?"/nN {/z~\ki+.pD.<.|$'l$x٧dP%Wh4RltceA!`3fD/nmӘXSOmXǥ-ڤcky7)T!`+eXad~80uPfGM >_Up-#{chIji_>LޣM?=/Pf߲oڇsPM󬘦D] aN`mFiOY2R@u[cA_Um{rt1W iPY28E5-^@8T851hmrLj"!vJ"у"fAxY2h~2{+0=Zt+qd9kocxM}9.(]LZizl6.#?F+D~h~9\}sCVkrRg2i?<2Ŧ8'N"6BڑGI e^KCv̄+p'}о?fz׊7 ergd,E򯝍խ.  +q v̞<Bq?Ht2cw0A\pLEb 3Q;in w'x؂vK g\=V3s0CeDie~߃I9z= 7N=j -G6 ^'O <1pN^IBj+s1!v>޼Њ]aW6Lvpkd#H&Jm͇]mi!|l9:L8pipLEߧ\v'SY=UUuXc-Ջt Z\UlOw(أieL?RV.{dit1~ưAEb `SO4_<{KgNUp5XKM;7viqFJufкEN}ɱ/Yjb[ioNwr͋Ffom;oSbo6=}t@f ѻl?h;Lj8ƈD/6x<1Xw. a'%u w{#iD)ppY7ǘz)^ x8n ?]Kr}}ה'@RL]g1!͟}%MQ$4%L]]ͣx昲>A.ݺn!aGn8[,^~ϋ)z(e9݄rSZIvm4p nVlR]@Oi氱fA +] .;'Kd̤j{,}OzbmS?6:?'!rXKٜU8SJ6@1~irPWG[CiZZx_엛U[LjyVܩGA$`|Dq4-VOX)U5f9V [m4iVrIQ])jE݃ vVL'*KY0nhqu!aF;n{1]^*>L!mgpg?h&hbj- E4m>IT?K/҃R~ 0(sRσnll ll$S ,6 M;0sBlҵ3'wJq=fB,|N /)ԍp`$NudGsS# /찫 A拙ՙ Gs#w}qIwtBkjRB)kʢTXb?ۤ,ZoVo\yv!v~T`&E.ecR{_P, ɉW0MF]Rk?G y j4+HU&ڐ%}>B9 NV`mnC1( g'e~Z&B:kͽtnhn2\y޿FD<]lHrb|ID~3Q䁫PC'eP=H90:aƙ y>Ƃal'n_n}5eנKmHh&Ƹ3,ٽIko?&  {Lr s|hoiNXx*:mujYR޵[224#'n.B! N7YYH5to7;*sG&e,__}ŏA\@)  ј? 0t N7 oNbܗ.wxRHev&շ-UrukDu9],b=agT->~ h?U<# ˍ׵N~viQd5̰§$KKC U5]7+LZB}duVq!'@`jk>~"°9h1߷%I{)EzXRM7e e[Ni$5߳32,^:=d]^ ?oүdP^zƢ z+s.3\G%;5m)oLlku.QS0֎m!vvtiFl|P92N^i?&#FJ; -5--LA-_n#jy\Cћ frvݺOb;28. r-&/ :e;`T j>W;-5ϗYg&#:tfⳬ zHB{!;v*a+*7US DSdvs\FZki6_]FH%`Y]!եv9ߡ鳈wk!A28P^w:/p+bYͨÅJI"w7ʎGYmUcVk]MNb:7"<vf~=}QN~ @oǏ GhH&luc>Ѭ@qambW޷@W6cSlKS ͞Yi2o]g$yȱk,1)6縙:> -B*/2 裴 O5x %:o}v]y`KVCzk== ox+epG%2{Pkg45jV)upؗTMQQwIF˾J!gy(yVoF||lf7GV;)_@Uhw^Bfgk"A}^N ZFAXN1imU< m(X;qK0 9n*&]/*!{KbjXQ6z,T<7{?Ó&74QIΌ C8YFL*uq)d)tRTwڄO1. R*Rڥ.OL XhyE Vb@q=f/vQ-֔9{ C^m/^#Y87ÝOc8dȡX\z` $- H)\<ʻH{heC-n И!CgkDGREtZ}6^IzoáAoLR}D^'*hE bUAW&J08u `P .&Qq3luA0vcZ A/d*Az.0L$Yūwt&@"X@nR8W%{;TW!E-Q"ܟJUaȻ^WLHD,D]yJi[g"!z_YQFQSh_JØcU -+$@ҒɶI(>{κ_:(b{'$)8F7 ,INN #HM÷e)weX1Y8J!LDK;:+Si[~0@Բkc;i|v/-wmwFk9إ'1w v;@]*G 2xg_t-%3vQV)31s>O.m6}ivw.&-=w[믇{_SZ)nK=?0Os?j6Q8? dbjX-t>'dN-|?sm~趿j59EiPl&0H ME\Tygc YNAjܹ ퟺaOfIMk]oXyѲ!-wY2y{>2 I2p0zy5ej+o*4N\o83#hZ9z >NLoCsfv]"e  RCjA7+k';K.-ȩWvMF*sHNӋ4RdB^bX!ڡ.+{2pbN@[kޭ߯;ye"ʌ[| ?Eڈ ܲݢvMko~7Hyӽ⯼&~7+M[9履ZyYm^X%5h;~Fӕܡq+ ׌ mm4p3$ 5͗\Ě;W,հ]yuۦ<|n>{r#ו hZw K;_:4ETn"f.1Q'2j p fwh)CHI J5B1..~wTD$݊j_ݯ_*ܙ,Lʡ1jP2+1Al)\u#OВG")W9#ǟTJ-IMsw !W)Wt7(I" Qئ.*\Ug̢얛f5B(*TeOQ7!PS8-Df8L,pn n0? #Bw[fԙj3˦8xbV|b|Y9jT}'P*x42VGo4 zT}rd `6Am9C.٢yC}' 3>MMݳQK3Ke`;]n_U*.7JV? Mv6mڤ*-w%hn%3േ9:R+[PQdm1,[mH&\pܵ6pd&(\obu~cm y/FQX*yB -X8높`#}~OPD){<])G %ўZNA_ Z"ͼ+FB^@p4!6YwJhlFLr7vxf|;GXd^j+7 uV wUy/QFwWw3<=LP}qSƒn|VM2qztuD\ T}$RǦV֥;?WdD#[;v̨4zc|oE2,bLa\jNؓ^+S) YWA2r|=B~4za^fGe==V<Ѣ CذI{)<7_蠚d@4gfNAJ+\On*eڋ1BXiKSc L_>(H}u 1~&K\jNb`vo$~Ϭ D :2ܞPܷ+bC| nھU>F)|PqH,O㏈ ֛m9Bǽ l?!KUhM_{ q^ה#|$$AI4@\vG N)_dX2-CϟW?7A}Æ}>|]8C|NƿU}6L xMn"yӍ-T?[ޞ(}q3f3ƍw3 ^0xU@5L+ dZD0\7(RI.U]prZ +z‘(35!ΟJpKC}aZt65N  m-WG126L,7@]P^>9L##(πqCR |'.to'W99 +4Vݾ<r%E5eWBS944u=fnӳЮ$aGT*vbP7G S,k d{q>m󜴅tSr9٥[@;"]nD?@jOz1ɘ3 }w `I<[BJI ]'pK¸Os;0Y2Maڸl[GRw:E\ .d2:.tYG19[(N9@AFaӤ_D6=^ϧN; ]!XfB)VWt/U:5pR3ӆY%t';LctHT`jLĖ6}ءq9#7%i~]f&6%JǗUGjm~,9YM }!22O!գ#:o堣HvTDg1mObq0Lӡ<_7w$q|''^ҵуqh.h8;WHa~v,#+iX_3~Ob)8\n_͑({8渿 Ab-P<^AbV '9=m^}t.cJ* !EE4DW E qıV55yOEбjIcؼ&vӃlR9ROv9ybX9 z†wթ?{r~"#&j`ȉmڍHob"*<[Wqit{2 id^W y7 [_Ć8~,ֱn}gLe-+ ;.#$(+SGnt`>N}]pg:Owf,+ / )܉^߮ K۔]ܵ7~Մ<%Aqܶ;rRǹw$׀Z){(CGj5+dy|m2 վA`q!~9̱-IpvL諊IuYG _:< ~cshAچtJL5x_C6ȵ|ҊcjƋ B0Q7i‚Kf?,֗DN N3+E2g'='3_}3Cw6H=bCK)6L ˀ,c.3Ꮱoh3{=0R ,Р vͪPs.U lƽq2j`n42D$,:ݼɌ?˝Ns'y􎼻<5T:UGn7IBrs09AĐ)9DrGӁ\/K/hξ,H|@dYV1$٤U 0m,dyObJn0t"/c6n)orߢ׭k l208H=)(%C)5٩oKfP1|w>n ?@* q"Z*=Ꞟ^jKT4_'[JI+m >r9Iks;^tb݆,)3O#Wyʕ+lC)9?ӌۛŘՊ4I`#dTf O 63M5gbmywUEұ=W}&f#n5>ovG(R,n1W"w3EnC'6idKv"\gouAJjs3=3`EYÆIQKKlF]$xBQAƶp]V&.ʐGHq\3r3Qٮ̘} oEރBd ʄ(A_SM^.EgtKrc)y>39HKGNz+l & M1.ul-Ӫ('k"ZYXs7ʀyʶ ̶ӏ sXF]f$z79/!ƺG~% H}#~|g>;%>I6)yo@aU_ ~CeK$Ce?oF1K@5`gdgݭğoAW`:[үiq)|K1b쐍s|jޫ 9ŋd袉 Aۀ :e-}ߢxti&uDloLp|sFrmXIsc2k*BaOSK1䑌z dJOQO̰)WThQ;'ܬ#qh!W2} QI'` i71ßMRkg,mФx@^g2 6Ԇ-п߂\vǡew9;}pA-Î vS:hBwI?1mb& ͪt5 {hιXŠm?FWn3x^)NEtRkO QYʠ? qz:ǁ19=x $v2&[i0s4·7}00B61ɭ T8g yri0e'\+" =O a'EYVrfjRy]ꮳM-(o{ sbZGj e3- !5&rkh֤F/egD._Wڵ^/6SmG6gvйܰ٨|wsEe  !/"u7 20}/LF :H} t+JQ)mMڗaBD3U`%j'm'8з@hta=L$i*u!B0Y*=vVr^?ѣ9"0tάAşwB߸}'\gu47K`٭&\&ܫ _֮*rqi ϕ{̠k¨q+z!q t3y╉Sd5 ~fB"Ҿ~0ϜtgdnHu qap%UTq]g1PWwl0"UU/eŘ-U @%"СǭߋfRV{-}[~!_|"˶߁aVkIV ɼa)|i ^LNjp`eӔOk=>Dqh GL75f&9/ۦf!7 %VoBh=NI!e oS[, }6QZ;~i2;rwK 6;D1~ r4]+c^|'1'MzkƐ@$sѫQ' eӽD傉``aĸl1Pű/'}VfrM忑h#xcy]88LMGY/w([lsشb0["z HGk\: "xbY.!Gz !fĒܯkrx^g"еVDĒWOmsbЪ0 S^1ƇvzJle =><bF|sUj/-¬؆u@ .61mr,6Sjt--t!%a߉O^PُH72wi})@VQ71K@N;IޠATVqG?WFVcmyߘd53Z{a'٥0䒊MHVE{.x2|' ~w^hJQ'"﷯֘* tTpJ7laMa/UpDtvJ{DIQ}4H:U†W$t; G>> u㣓 wC:<7}{OZU8#pg2yHCݬ$a%/MuO L^ NXB56H`EpX *qW~iPK#$> +T KXR<( Bx3R{pj<6G:?jcTotMobH`u\R;AT-QRhܓ3LϺ~ Yyag Ҏ--b NZt2!TP6ͳ8 ѧs{C{)e)bBXAURuL7B.Tݘ[g3l KH?`d |!Ec,yWiMmܹاg -kNmZiH V-oڵ`jR^4qf '.)Ga>Q "ZTc`h8 -żG>J[5i 2o [Wqypۅߐѻ@Ny|o`6 0]cZ91{l202:(Vqa<Ǵi.͗"le|R;cߠa6%ڼ.1@O 7&L(3˰ ىԀlĖ.>elIt: @:p^L~wIjgBvB:c'Md1f;F@*|6MC>N0#kX0`0H H:]k@z4DzX uMd]2B^ jDŬGv*1ZlB˰lDM",(U7=t[ïJ?ߦBG~.1}$Er^q-=_|/}?Uc!N% 賒Qo6a._@IFG5DO8(mhhc&+›8ðr wc;&IK2h_ zՎpWZ%ard+X;thulǹX7r-8p0@8J zu䱥^U8&Z*C^]kRbNȝ&*ݖF;f,C+(z _|NݮSlu!fi2?\\q3ebf_C[t֯_ΎjnDz3lzPjbEj͹č`fpF HG}=aU%aY<]vr)ޠ5*^ $3Ɇխ?ضd Gd.jJ~ɆqPt:cde[|dF͂7x9,)RcTBX(̍& |rF4pEMeU|>]R-I@u 'Irǘh9'+|Ŏ{4[/H7κK~w+qdV\S R*[fH8?Y> J&9\-:v ~6BWZXo鮭V$(D Eڿ%Gi:Bϩ $]|K#ΐK$is ƱYIKab8l xr럼Pإ6O,$nԙ(PVb |_X3o)3<6R/H;ueI+3Am3Tf^Fl&:KlHzY财m[h0Զr!yD(M\!0m(®C[gbb<ԝ8}Ŋ7","̟G"`8Co,"Mke 0Ҍ;ta56j?w4|9ZH]w.璾>9A˧CHG6Fl+okQh/:Qv3̀)Xmb}$@Zl%v!b:N]# @귂tbSv;ٿ85)CF ~Mkpp_w 5f{0gyjxa˭#N1Pox Ád'`уpݿ 7^dIi0X"tm!g=c(ܰk+.d6}h'ӆ@UP1\r̊) ܬgT̽TQim{)Q}1#\vlUEIX5W1QHPj<2hy ٬l߭'|1OPz^sH'=gK\r6h9LN8ўioRnM,]ͮ ,5> 6$VK$gr3 (T1ja$=NI|FQܩsrޙBm~>vN֖wލzMξdMTzK(7Vԭb+~c\BCV7FzmJfqEc,^g;9!i"55by,DF(Ybye/1,Ay|QJt1Do[G[^c-٫` 3a0/I)*sf Gq]=7=g.lih ;+ a_D1TT> Ir5 D60Ryi'c׬z-Qrcďj$.dNւԣnL.9-0x@7aH;^9YnEbowBZ'&UßlS] -_(]N?՞aX1PTVan Y~(l?l}sW*O"bsR"q3Ǥk5p])͢]oK$@ ^wb[mB`KS5@JXYq.2(#{o4aO$e}v+!d~ 1[NQۤ2 ۆ43 𰬲7 " [$jF@Z>U]sE׹-j:]hGf-^z*n}p*j=+鍭Q  r8jX@5JM dg4)=(H;8ҡҤF' z;T4rM5=X⭓ﱍN {1s2r ECosi| Oհo 2! #r4QQ]͠zH .,LZI'SBA3l9eZ !dW%~s;5Wp3 +izMc;^UJBN!hFYv^AP6>ى>RO 7.yWy"^J|Lg`Y<뷡64{0㡁`5Mf(1BJY䫤>i`\O~#]C Ў;I ZUN 4$JK鵛$d׹MFl(:#GVz?Xe8]ކ5£ {F?uo8[ON+^+xozf|l|`k-_=eޕv핆UvߖNSƒ -E<Ejzv2K/ 50 b0_GH3PX07avh֗߹ JHsLPEq{@'BX!R&^E$㝖-YpvH/:ŧC)|ԾdL_9]-$#0{bp`,[,Ve5C{@wmQ|̠@:Tf~;g_1Mx㢀Y킙D{ ŦqƯ3nJX^~|ZPT^"OTw OȲ 'vNV6sf\^M0r%I[j5&tǿ']{͵Inw~ }ES#1<"VBz !t P.hۺ4=(Ȅ﯊q݁uJsBЋW7VPJڪ_k3t Tl'V$ud0 ߄ (aV~(پH=IzKnt $yE]3Ƕ~wa 3˾DBxrы :xy&txi=Mm:-H>lϜB;WUz7 I&'2'HQ{9qu;'%0;'jIY(M߭Kk{ubQVaQ:j?oPw\tGCizޚM <4$ݙCs5`RCdhyUx/%&U1  ]D;`]߮IiFcGs1$.}5 cvlr:: u H H# t)9[^yFRޣQi&sCjF6{]bK*h0-#iq% S8t piv(վsd;A g"I>7tIoiw"b en h2d|0Q=PQV3( C+F XbDIytu :\('v-},kю*4MD}(u l)ofb[23ng04+[DA&ui*#9<%#?.܃rf%Գ׀G%"`x,GqѕaӳX.QP0n%j@PeU3vIYaZ,CM85RM$@;wɝJw!yPZߌRl;8 I?ΓM`pO7XI&Ձ 5|v]!#]a@ U+tpr_πh4ZS Oۈ|``7{H"NTZLͱFՁObRWl֣,[ VstUBYKt#@K^x-)L%f :Z?TR5Im< ܋SkاA*UXrc9WUC&NZ:HW}i%e]Ua^j˫H85G|Aw4ݫOt &TpXʇK<3c TV=p(b@oxw*PO p~@487%%YD0U zs T! L5fm0C wBPuJ1G /uCC!4WLgXe9Q]״y@?A{M38{|/g٠WH~ e/X< XFʼnT*wDWՎ>G i9VKR1sQsRJ"jEh4j+%aπ큏XoF]7_}cDx 1,G'co4n[~ڶI lgXl¢[}/S<6TD" I/ŔF+u)yyty*3=0Wd,p}3kaPu$*?Yt B,@~tPF/=Nƀ]<yݩ`fa{ZаyZNDN`0r+օwnߦwyV5|flnI{3nV{KJFzRlrzkp3r1{rWb\GփE6 ?HL>؞`j zr.i#aEӜBp/d l@._49xi-Pp>'4J'7S 18} !ѻp9n2}NN!59NJU7p/~t6uE۪! OM$^4y˞*0ݹBQ598,]&cJSqF?9U p,~FNhۖk`0$\>W1`Qw6cl79;gkN W⁺6v*^),oʹn3/E)172J8+"=%{Ox&C u:ư='^,g:vt)| ƎQɆ3-dw3RgcF(e]pEB{v,4ԐxF97ǽyR=6-UZo÷~>^*u7}x% hh|P}"C.çbwUrGNEB6g6nXIy?'ƭ̀|ӲGPQ񱚒6%&^`W2DuW,H1uMr&" CaH&hsn,iO?%Wp_\iTQ6᳴s{ZLj CicfQg;BPG_QCj寧Rev"'TPʤt-`Ʀv ‡'ŪYx_/7ʸnPl]"o 2a^/Tr23f:7b Y'?Wg5Üȹƥztˁh9+ MjFF=ﳌCV'++/a( A,2?Rpf:°#xHh})v)( ˸g(WRA7QxJ#h'- ==Y~Đo.% TٽFWӇϪfM0߈(ea9SC"涓^$wQgrk6b^fx]p% > >tj -C_ke%G0B0 Whr([!AɈ˕ sİ YZvyx{x44/]f !0%XGMZ"j? UC}`:feލwCoƙPYRz#~x."#z;0Q ԛy^hfeg +h'޺lh+` aM4u)as ՗ 'MfuB$:fy=nYgM޿hlo.p7GxAdJ81 IsޮXSΗ Kfp4ꂷ0d?g&m?i |4יФYnIS|޺lS=U yΫ%Pܺ}`LyJΥ|3*|8raVn_=[9zu~ˋFq>ZURw@p?wp_:ݕOme @i- fvMޡ=tr6GAn9ǼF僊O";v wyg$&]3J')yNm^(/l s\ȃIF(MG Jy0 [*:+0UoN{⧕a/0cD+쵵t&P%^_VCgw*ў]ǡ+";e\)lOoBO!jbx&-%j4.|LWV{-U_uo=5k8[aO*bse7 bIggzC_LF@xQ_ /1DXSu8 |_TZPK|(O]2D!Yޠ*O{32a_u[%Je=PPBչKJFkZFUYo HaC a5lt6'X@|=5^Yϻ_J$̾Mf6]UxǚY ?2_1 5r@Qz<ԽxxތE"|;x?K>|΃Ƭ5MM;vw F.{ՑoF-a%Kqq y,'32R~;ps~ռQ_ _/ 61bC1];T7N̩ iMF{#QВ2. 挼.GL*N#Oμo,4y0M_NK[YGk]xff8UTOY2;.Jp:uzG7O cT-K~,$( `}oџ55N 2/>%6\a\Oltb8AA<ѱ.qzl,iR߅8/R׉|F Xǜ*\Aa5:4e2a|Fq,0kYdIw,TP@ܗ~ +eur#  %0qe 0ImWrw-o[s ?U%..wd-j򱟹. 9>{j(bJw^4 py:YrZCqlB&:&#dm#…i}H 4(`39'd&|R+B/E"j 52q $@kPg.G6nlR-HgdۛXK: . }>f<8x2]_Pib& ߥ&#YJsXIC5-'^Yɦ2!*jlQ,by'n0g4$j]#:DĻn (Co"n$hokO:HZ7XҨc=C))8-\e̤ÜgddmP,;[1 g8y1uC32˒ns^Q 0YBU%vbr\kY$44VAPr@wɁA  ϓv>%1#Ԯvʌ|Z1> -t~bV ee- L(A'QE{]uas@Xd叇ӥEϭp8HFkdп&"C^mr |a1I#I.X7pa\X#wP,s:N@9M=+ԝY uC<o85}RBQC T_O2[1yޖ0x.udSmk mlFh*䠿f)v҈i>T +>ϭM}Ҁ+2QXy1^ՃS̥oVQ[攃: -jT0Fsr7Rfx6J[?122UZ]{Q,kSk]xQ|41_oy0'ಮ軁ѫ0CBr9G0uҫ$` ?(Jz;*]o4j2-~,C_賧 zeFk.ww pc1d8hSj)?.)UcLv?#h{I4NY -]Eljc?K^D~+S=8AD Ds .kB.TsQV`~\.hRK8¸v@Qboڗ̲(>ش"LJLqB%wq, Luj8mj2%ɳёE}ƲŤ a" DGx>B<ñhcR9%E'e7f%eb(W/qiY R1/6s["W ~gQy@D_Sy[>'EEZ朓T?~ My-S=J`F[㮪 FE/ENЯ6tLf~>8C&UNlXR {-@?ӄ.D.,\y 2؞q#Ipv&䵒ߍ؉аqӮXJ4M}[xe^=p23Y{HJj sHin:c6vܗEb ;ώk [E?q+&Nڻ;+bRQA2&j8]v,_sI,[=l)EɜC8WVG,_tݠYYR67?V",1tP%m@ 86|Dquc;~ަoZ;N(62-[OJLP# / S$At~o|3Ls.C[h']ĝS>Win#u+0p1A]{@ *`et-uW&WL t<"3(nWEI? `u~ ˚~~G:3U,qRJ|aeN k_V>~XY;YV b&^[c  c8S,fz.S"*t3 /#9vI<[JH ujJ ]1}sQ%h'z$Lt Bم 9ցkM*?KGnZ/s~lO`}PMo;/(YdM/9N sVSY _9Ap],ad2RbRRxz%-O -FE+tS8ۛUqpx*.auRK>Vg=x⿿̇;rt5N\? *^O$kna!?wL&2%k 6\z^IpN%+@GhyxheJ!Nqیڌ ʫ/@U*l.2NHѕ#ݣ0I3Oȗ;]dT-hmd瀖ү[<|(/mq>MJ(. !mt>u!L)2y׌ERwRS:̯['X;`1 }t7vY8R lpg c_Dw//xŪw: 4GCD<-(3k o8P!+*cw3>>w{ۅ ~̗uhHiuPE!JB:`*>.7¥c}>H4ۜ[%Ee2zBdLUEI)bbwKhKđ̤Q9"ˠ)6w ܒ9П8݈1핸ݢmݍ\4cj|YbyaZ)fxc_>AV \D. >&NK24넛2,AB{t[>,x'Ň4 ߏij@>PgAkl1H罴S{0t=)pO`%Fxvİs`Y/rE{OK8901= .uuIÆR`51 '>.zd8~"ZFFD a4[08w<kR 03]^(Lw5М|ۉlͣ0ko !=Pb &):7q)}8n }z4i]Z:'d\x<m& WK͢;]BPic_J+1}czå=|=v^B4 nFNXQ]MK[ofj"p i$ȑϔ~(>덉\YS靑8ÁI>hu}ؾ $E|Z&36h (,o;NX$ [θJV\޼yP '̡>Kꔰx~ VQyNǎ9!Ț}<~GyV"P]b5zk=p$K?wѲʟնϧu7}&]Fj eAUoU S_"wK}8-}%r/f|-8EHBu7eZ1c[|o\<,MH}d:%/ 2= 0v֝Kq3Ae!a%[[h8lB19UzOيKqR /mEC]y9ԝ o"(!ۋ7p`F0zoclfh]Aw${E ׶+2\}u^ѕ)[@=hNŬG݌ f4𲼆1.KLDj;#̔"4t"*idakg|pd|cg2%{غH11nelե3Y¤lU!\P8u8kz2xfkC{Q'{ Hyf#I\U.L`K Vƌz}'>y 5B B/ =-c+EVfs!Fon%d}'1 \_Zf[_$t*a5ޗ8k㇛hYe~[OCgS*ը: a3.#31m HtưS6N'9ک?DzkT|>8}&9,/ys;*Ō?xV3|Z/x%[;ZVғOd*H"ȸ!,[U#^*1!~aU'?s/~4 6%@Sd&=aU,oj3lTLU:wVeo҃PǼZ &7cJAV. mF 4p{ M5)Ŵt=n2бZ]ŷGYJ*`!Ij0jL/QaV>,2xf2{w^25[/J%t949b㠽8z%r阶?e8{dΝٳ=LۍV PYgҏݿlw}-峞/Fy|Hh2 .r 5u8t΁n&iCDŽ5iwlv+*$F;J@ s1rd~"zc%A{Jrǵ_ȏw8j{e ߀H2Bt $d]^KJN~x"*%3gT"v<,et;=8}R$)Dj؀+M]K].y8"N'T^[v(#ڝxRG>쾔EK\NGl 1oT@NpTVEǹo[q^W EM#u( H;3wQ퓹Մ)~?ͫVHWd e;.- 7gad|CGo]5F5ľ-] b%Ud o&UaW,O\4 z= G ê% uD "TP>r24_1M2cOJF黇ͱC FA``v5~UuT)}nU.|_)?/Sv٢/\y3!$0td'_g=Z_SMA`37qK9p?&eϡXWeeOpu,tT%9攬d9B^^):b} L;7$*W^[s6ftNO灘&=Ҷ22ͼF<=WU.];rUa_9͵?}3]%7][&v7*Ƈ[ ;U7*G1rUʝB_D{M0z8xx8Ñ\ڛ]XdEp?R=e:Ž 9ӑbW,0–v֐xϠF2@o6W8< fSh (j2#--BcJ-V<8*1eQ Lm39'2ϰ|V"$>D$pCF:Br $蹳x |ۼĤOB *ct]8A\FFeQkP4Myru-^/X9.y\ZPg`=_+) 6tX}|v\Tlcw0_/%apbKxRhxcjy }q 3M,y2֣@+;h/cӈ!&`E^ZȐ+B~=Ek< H5OH'V%.QwW5JDԧŕת&D ~"mnmo=سeb`ҾFN:,S6௃󊘄`KcM xfH1h];ah M?7]cY`8lyL??Bh)HL)"&>A7U{mLEuVǏTLu^aD+5 .4B0ܻ8M?mۀRS4@%M ηswpψ(V#b~N'J <3sӹMZV٣u.xĸ1 2}I4 MHzґGTXmq;l*ߘڮ=VK6%ut,J\ǤpQJv YFեGF[s-ܫ/Az>Zv(={EՓf(|qBLL&vX]Տrn8/*Qa>(ZIAh3^JB`poSʼw9kk((sVh##fT&3/O piyYm?>%ekk)8VƒhW`i'|fFyjRLĨoɲfXw>^u͐E0ɹJע5N4֩1/j!H&"6 duYX3G͕nD |eomJIMѥg'$2KַrEkUkCEPL]i+X~v6hA\"U\*}޾n#t~ EU[6@%ٟ ZޘnmZ7_G'|%ヵUô;sicqQVOľ 1אd$<& 8zҴT"JFܗ:n Tc)0;1%68y8/ԮEz-㙞V49f]:]uVJ%b27SGOn¾9GM##ܧbm*_"빢":9/|YO8Ebkvڲfwk#^J.>vkWJaAl@و'Uu8\⠅ad @sYkBY_[r\iZ`~VLP.ݠxv)o,ʙ4$ӞGat@ baI7TOE;G"Mk<6"5%cU~URbc Ti ws\@*Vcq*>89 [>} yP8E\M.B+=ߑ_^U]:My ObQ+D+޲ Ԍ)Ǚ0DǒґfTMK H gD '2V;LHeAcԌ5ZGqP6MGې'S"Q[ON56O9?iѭmwPJTڌH0^$@  dwL*L:J?l >P Y9.kQޒsץ}Xq]+n0/OJZ߁g4bC|0FۗާĞ%=Ↄ:֞K8zR-'.n8xҼ&!im5ujX3&"+ͩ0\d()Oߡ8i&_jd3HB#+>h'fX&yb w) qX8hp[g E)Zh+:#x. V 6ҠO_+ 4B#NL<yΧIR_=7/j*ts轍byUkPewH|M^ flW # $j`W.m E["&7rYRÉD$A6 sodlQ  +Yj C@x9"p#P ju#lMM>f5+;/72*|aޛvwT&tPwR˪kL|~Dzmnb5~G8o ɄԫHr.6F>@6hfA8ydJWx~@*ǀw?vZFŕuA%i?8$1hנy Y^o+5E8#ecѫcO^ 2jrHc+cBlJGYΨufP:?/8ƽ%"l|haVvbVTy`n,!U`PJ܆Y? ?XߴFL eQ7\F#f {xWK  }?ׄ3r"_m} zj]ȊO0eÉY6 aA'@8eŔ|Rܣu1E%rr^Es3% h)!5k=D1eN8y{7qfg Yu0Vɍ|4 "*N# 3yJ=NYhJ?`:L75]1sOf<,;x^-xjy>y=H<b;]VyȚuɲ9+De5'B ,<`ۅf`gs01DDt;ƽCZ}ş|]8Hb4ـS\yӇ?9kq2(f Z&6~* a0h_8?1d eykߚ]LΏj-GD7dIFGLa2 fEn41皐:@6gxj H'^šҷ mPNv~V _з?eKsTs%ƸՕA7I&흘]G} <=0\]'Ɩx*0ZOܵD <)|oS-OXs~-rU,h(<n«u"w=~NM5u&(v#VNy9zi09">IZWg47noq*pwڌ߅<0sV[m S/DZ#Ǫ5ߌp}wIjSzWDt0PT TԠp5{JՙH{}c*;u9Ȍ~:6M`FшxnB,R3O3cߕJ!bN¹#1v2>ӘX*G/4#`aGтP )3EeUy2hz['}&Mc[:||=Hu?![;|p$7x­hUw!H$vp{%q)&gOXpƞ7}£Vy+ Х[3#ţ8T<-Y#sEKz{Hޟ؇.YW?˥)'^JbO4CJ:}qJ8cEb<_+*49ɭqV ͯ5lt~71:S)1!\2MmȐd3zhhUhk(?}m򮃎 REW.~ώ^5`P0 ZY3 Aq-l/lWRHp>SL@#{=ق#VJ@t"˘\;.bK'&4׆ZuSOo BixȖ Uahvk2+9%;%C@1xN^]E$69FI}z9LD3OQ젣6G}p RةU Bn?/xAHrx$3F2{Vv$9H邉O_%]i}}ir;҇E˃iziX$DzlС]YI4㺷O%G]JɅ4R>A2\oB;0Ys搷9*c7Ki#^_= Nm-e-Eڀ7]2A;hrG-,(A~t~ [H@JUqr_?@](.2yu'WtJoB0 z9v\&ȟH:nx0'AC{;h|M5 WKl@ Ϲ%|Nҳzj8'I(~vEUk2B$--3{>2