From 709b175c5e1cf2956c74a14c362a5f9bb8373e88 Mon Sep 17 00:00:00 2001 From: tudor <7089284+tudddorrr@users.noreply.github.com> Date: Wed, 18 Mar 2026 20:20:14 +0000 Subject: [PATCH] google play games integration docs --- docs/godot/identifying.mdx | 48 ++++++++++++++- docs/integrations/google-play-games.md | 24 ++++++++ docs/integrations/steamworks.md | 2 +- docs/unity/identifying.mdx | 79 ++++++++++++++++++++----- src/components/HomepageFeatures.tsx | 4 +- static/img/gpg-integration.png | Bin 0 -> 45624 bytes 6 files changed, 135 insertions(+), 22 deletions(-) create mode 100644 docs/integrations/google-play-games.md create mode 100644 static/img/gpg-integration.png diff --git a/docs/godot/identifying.mdx b/docs/godot/identifying.mdx index f5fb9f0..6764892 100644 --- a/docs/godot/identifying.mdx +++ b/docs/godot/identifying.mdx @@ -97,8 +97,8 @@ You can merge players using `Talo.players.merge()` by providing the IDs of both :::caution There are a few limitations to merging players: -- **Player 2** cannot have a Talo Player Authentication alias or a Steam alias. -- If **Player 1** has a Talo Player Authentication or Steam alias, the merge must be initiated while identified as **Player 1** (i.e. `Talo.current_alias` must belong to Player 1). In this case, make sure your last `Talo.players.identify()` call before merging uses Player 1's alias. +- **Player 2** cannot have a Talo Player Authentication, Steam or Google Play Games alias. +- If **Player 1** has a Talo Player Authentication, Steam or Google Play Games alias, the merge must be initiated while identified as **Player 1** (i.e. `Talo.current_alias` must belong to Player 1). In this case, make sure your last `Talo.players.identify()` call before merging uses Player 1's alias. - Both players cannot have overlapping alias services. For example, if both players have an alias with the service "username", the merging process will fail. ::: @@ -164,6 +164,50 @@ You can build an avatar URL by replacing **[AVATAR_HASH]** with the `META_STEAMW These props will be updated each time the player is identified using `Talo.players.identify_steam()`. +## Google Play Games integration + +:::tip +You can enable this integration on the [integrations page](https://dashboard.trytalo.com/integrations). +::: + +If you have the Google Play Games integration enabled, Talo can identify a player using an OAuth client. Follow Google's official documentation for setting up [Game Server credentials](https://developer.android.com/games/pgs/console/setup#generate_an_oauth_20_client_id). + +All you need to do is pass a server auth code to the `Talo.players.identify_google_play_games` function. Here's an example using the [Godot Play Games Services plugin](https://github.com/godot-sdk-integrations/godot-play-game-services): + +```gdscript +extends Node2D + +@onready var play_games_sign_in_client: PlayGamesSignInClient = %PlayGamesSignInClient + +func _enter_tree() -> void: + GodotPlayGameServices.initialize() + +func _ready() -> void: + play_games_sign_in_client.user_authenticated.connect( + func (is_authenticated): + if is_authenticated: + play_games_sign_in_client.request_server_side_access("yourid.apps.googleusercontent.com", false) + ) + + play_games_sign_in_client.server_side_access_requested.connect( + func (auth_code): + Talo.players.identify_google_play_games(auth_code) + ) + + play_games_sign_in_client.is_authenticated() +``` + +Replace "yourid.apps.googleusercontent.com" with the client ID you generated earlier. + +### Google Play Games player props + +After successfully authenticating the player, these [props](/docs/godot/player-props) will automatically be created for them: + +- `META_GOOGLE_PLAY_GAMES_DISPLAY_NAME` - The player's chosen display name +- `META_GOOGLE_PLAY_GAMES_AVATAR_URL` - A direct link to the player's avatar + +These props will be updated each time the player is identified using `Talo.players.identify_google_play_games()`. + ## Offline player cache If the `cache_player_on_identify` setting is enabled (default `true`), Talo will store player data locally. If a player tries to identify while offline, Talo will try and use local data if it exists. diff --git a/docs/integrations/google-play-games.md b/docs/integrations/google-play-games.md new file mode 100644 index 0000000..3225a7b --- /dev/null +++ b/docs/integrations/google-play-games.md @@ -0,0 +1,24 @@ +--- +sidebar_position: 2 +description: Use Talo's native Google Play Games integration to automatically identify players signed in to Google. +--- + +# Google Play Games + +Using [Game Server credentials](https://developer.android.com/games/pgs/console/setup#generate_an_oauth_20_client_id), you can automatically identify players signed in to Google Play Games. + +You can enable this integration on the [integrations page](https://dashboard.trytalo.com/integrations). + + + +
AY3pv#WA! 55RLpRTB(@9GskE)h4y$R3X)ob zEuKjBCplfni~-RQ3}p;{Ich(xG~Fmf%FPqcK(Kc@nr+z2L!Y^9CsnPFXo)+mCK2sA z9*=~;z`sCQZ!UWsDzgf+t8ORorHYI_w$c6yCvORQGt Y;{X{_?Ad#BfJMty(^me!5 v_KHa2)1c{v~pt W^%e%viFJDsxDoJ1^yxNg43T7;1y-CddQbB%?@?y4s2lfg*27c`id g0#dvG=p8<8nblFnyXpTmLx^Rw`Mcs=1K7ib~L8wFzi;0X% zMszrG(y-3G_ykXQQrzM; z$t}ZEHgzJyYAnY6CmK)1$?k5db(tSsf=+%(QH-V?E!!Lgn0a4~rFX$10PI_vZcdKp z!B?6y!}=YkYhEOlPC&f;#H(Yp!8iO;??nzT0Vk*%ZJ9)hgx|Z~G^h3K-||7LhLpV) zbjHNOmMcXu89B=3IwQ2BC)ZFNz%2u*T4 !Q?AS7c`qR?{@U_Hc>KiiXdqQ#YjN#>z9QAxl*NegDxz84XxARvNA*yD^-0Y zTLc8z&Jpf7OF(Ia`l2439?2m3IV3RvE@&3}lw|*)2hap?TbU?Gtpb{hPmJQvJ*kpO zAgVpIeUOO?j*z2pGk{}@6dcR)(lL3BjqB3Mv!`*60)VD~A}M5*)bVmd$ruRx3lMs6 zI5JoqIXhFeum3IgC4Fken#mHPV>P6ETLRM}bFp{v7L6pM&ENyixaa#K8|{Piqrq0! z p9eR$OS zjEa!=u3i85rH=M8j*c`xkPi@nPVVgWh^{FIhqQH%R|lJ}GMO|vSFF5s(H-Cq*hYNm z;|r`s>Nn&Xqg*jF8-JzHZ)^YDiLvZIDV{>D)S8AD^=A |?LK~f2b6sm`xvS2sl6wS%<+oQHPnmHNO@e -lb_1Vbc942Ei`NiCvO6EU7dI7tG5O}uRe7> zMO6!XZaPSMs0TRhE+E{1KH)(hMSRBil0|*;RwS)tr$y~XVz*~orM;>%3s^H}8uB;i zXMlWYe)5MP_S-x8T=kV(sQrNqX(!2iIa=03>`B!@2P?tyu z6R2gHPj)@rzSrui6d9mb3zbz# _5;!MII6E9XDg;$6JAJO0>*JA zdFU*XkCLRVk_!|Z6z3drhN&~kEB^?vU0?h)NY)eT4WDj>0QF$Fz5=nZ=<}f|M5_j` ziSbvYF>SH4<2TJ0K;+PQPPu-+z9RYjO vofzI_w!1W1)p;9Sl9T}}A8&rSsh zv2^0Q6a57!i>+O(J9TcotQdE@;m!_)9(u5?ZoUdvv5%ThbNbz8gJ!ErN_x?@8T4Nv z=#4buiWr69`{Si%aSuOdEB{a=<4~s?N8R6xM24f>cd{CN&Nbh(g>$&f{TyxAb<5W) zHMMnY@xtZNerOB3{Q?jjIxu_-W@nZ2jRD@n{$3 xTExwg0~WVb>NalJHvhM C*z zu_PQ>t%A2fN`p-VYRI3`ILJ(9D2GSyGL*XWPW6mrT<8%Zc73DaK-l(}_=3#sK}(Pe z00(BJ4h8osiPBPnFMck!%4X(;l_s5o{-Tirt>l|46E#*P!)s51nRwQ(Q9g0uCv6v^ zgc2pk?h`% -Cun6za^247|J6Q0 zew|Q5&MXz5qn-$wYY*c%PiuKN4xJw3ABYz!R%aO b{m-n2!-90O_`O|9hEN}bBwz=pRZO#H>mNxw)t5{4@yJY*I_uk zexAcT=xxXml3m*8d-!Cj39;Hs ?)Hj1 ztQDmy`}zYh eG0yGPf=E$7E(jFEJ> zNaTo0ra%I_M%qh8oJuee(sgwXYwvneDndl=F;(sab2AAx$D1~JJ2JvMldbj()ryhr zL^MXQO+f ygOgDnxA0xXLZnpVwxw`)lHp1lQfYncd|somyEf=UgPIh+nFv zHao%4$1EyShWD<38LX$dwm8{hvigg66e)j0vcpXYV!~g{F$L6FM|P#+y2rzADHpsv zj{~$f_8pre69Ef-skLV_PP;j~r=Ba-1N1bn3(L6&PEJcN#NCm_f3+onft1d{46S^6 zCF>|2VZ8#E@)S|0m8Ejb4Pn4k^1A)-d#s!W`LLzNB>s3kNN71Zm>p@D56JcmNfMHi z2D7_T+Tt`CV7#Eb8oeue_e=`gt8)#N<^z*dv&Uqw{R3MAUjPQT60g1GuX`&PoxgfG z)aUz3u?Ce(K B)6K@xLDEoZ0R)$X8wKNHC^WKv<>1xYGxw@Q(6`+NcT zOvY_5s&9Z|KG_57u|G-0Z8m)LR()Fr9I03I(iHJBufVp}3*ZA|?_<|U{96Amgi9X+ zDYpy#2>9-;!~pAojD+EQt!``&oCEL(#c~5WVaJe9fPRLdD?>K)=O_B%VGX4l57^vZ zwHhW=og+8zRG({$E{cNS4sM)Oo>J{GS?%=R2WROYC iG{zBY^03Gsba%PY*;Jr7RB!jFV-WJ zoNN7zXj47HY`3D{cjQ>+`#%}^$5VFc!GG>kLWY-__Jud=(n$gz-lU#fuWZGye^Y|$ zz0o0U4D WSxGsGFB={O~I~;Z*~A{7<{r`t$QCyZ@9#29)&D2ODwd%x6wV@3&P{|MhYH z$>Q8cssZGcEQa#ZwLvk*nFqJ?2XHow|KomDveo8{``#q&jiSGFBMY`E3+e}U;tTYJ zWAvZquRue8;cP8n(fOa-qP;z#{K>+3{}@#zz2`mw=E3gazF+_Kj0VcTR3W`oLLrb~ zq5D4_(y~*pXsoYPYu`h#n@&mW%4>;VyA%{gofuFHbpJNjKv#(@K~`=t>0*ifr@f{5 zzZd`O#^8Uf&zCN}y$B@#X>Vyz`v2^A;5&hOuPOh}AN{{x_kS<`*Ujqxx+%GW0t{=h zfGWBRz&f%R;Nbd0^z~V2EUU0({QJ ;%RH;3PS0jN~j z;R0rHmFLDWZcBpRD6c0!hG*I&15QkRsBis@&iBhVuJ?W>2F374XUM?TaO{ 3dCvv`rf9jtHzXoD@g06<0$|R^O zy(GK8a-#vSHuK%05r6miI~K(#T9>-enKB`En%PD8`lCdzbf&X7wbpVvR y^(*46EE8W1o}#=`e%OhVxLxa rCb=H@5Mw@Ios12s=CzG>n(<;w_n{Uw5v-dkpr+in*Nsn`kegnfI_S8WEM^^M z&ODkvv`Ix#ZT5+`bfz(3N-1bdh;FJO`)B0sXFf8PV{aw`{uG27?WvS%^5?vrZ4@XC zSlX0Dpo=1=>JQkq8EDi=;A_z1x_7bn9C_p&v!PR?j$;$<6HBx)E}A~9#KK#n^%@Vj z^(tZ 4s~QrC1g-GA|k%`NYYhitCR#VZx4HLGCq(y>3Vg#u2kGvDOaMo?el z1;M|^_b-eK;I-<{q0yO#YhD$WUF_LcJ>h_R{?toV&ynfRqrU>28*iT)E7W)lLc$nd zocBzf{UhfNDx%U@)lHBZ?Xi#cJC;BFj(zU;I!W5HE=M&3 GkTdoclz=0v&uY+(8vfX{)okh_K56G!Wf@sFLH& z;r1 4`T;?IW5CLK`{at-Qm#jwX2?;djzYWS zM*6kRM!kz?F6_l@#@?S8cU_!n87lJI8sL2VkyS9NH&gB@VX7iuu9QVzZg^AP7jncG z!7gN>G|uyFy~*d?bkc*FJ%Gu5 ^?8UD zKTX^>^62Vx8Kx44fy7}ZlcF_Ef~@1`TB;z2FTvNR@7Ec7;)y2ywZ);Z$RFBG)+D&a z_+88JWoQkv)G_?A >H)q%PdHC`)4H}8Xp^(xgoO1FXGN^QuLbT z!q1=>d22#U3p{?8$E0Vx homE~92ou9& nq8V~?I;Ui0hcC0<~9<;j~&PS>x95?6eKvzz-G2>TQj4=Iye28wU{ z)!uml(PG*U%>>X@43C;kaV762MqYCO0|Cg3@E};*WSb6PR*oJeSrsW(J_1DGgZZ18 za-o5r+$I}t#>~3u +wYOKZNP~~Sb;c&}OfGPE&ThbZI*Bn2`gX?) z5~Dj5w_lY@mo@l#$oqK!PfU7!@z|sY{emyQ!^6YxM}~(T&rGas${LCP(GFN5$oWri zPDfTQrO7t*ZuRyqCb<2C)uKJW4*XIHKiy9EcRyedqBgWyeo-)ylPy`Rc;m{GfBq=m zc2NaNyzUWnKdk2Qr@tCqm|gsa@t4aW`&NAxLhRud*M0nt!p7AAEB^~Ov&VCDtlvM5 z_l*D9pQC9p&V6dT8EwZ~pqI}R594WfYTcH&oiBJN+H#=SlIffLuR^fERhsTQp*J?8 z7byhBzi*5&SGp>XAark%FAPv6i{yrCWi~sH`(DoPM}1?w{G49>VaEOdpLH*6Z)`l; z%%g085@rXQBPoTKPXB1S8vPwRsiAcEptt;8Jy#4-lay=v3*f;d@@&^=1!mYbJ?F !l;El<=89rr^WOPVzPcQSI}v6u>TfU}ZnRRI{BcKD zFpXS^9DDo!VehZIqWs!FU|71lyGua2n;``R1nC9^X&C9Qp ew?o90mwY*pxzhdhQBh?my7op5C #S=;HhGyGu3{X0vLD7!Ik9QB2c7n&j? !z7dcEi {&AW#FBRcEv$=?Tv=((vt*c0J0jR9JqVu|sl2Ln86?XUEinMi!K_XTA#4`K=B zg0|qQb}4R~y?wI+5RO8b`tgNe#<*-z`)WDTCaw620rRJBi>+6&b{XSyOxe<}G@OCn z-~|<8_Wmh5m$H=)>#Y(dT|dQOH~tjk&Y`=*>)J-TLc3~~Hb$U4|CB`eoA-nyi;EHh zFoC*q^9 K5qmEOVD7v!CTi0>^`PW}UL-q_QqoM;d-|r43gYz@Y#-gHUN*1QyIzld zaCwXP_J@mNrIGEJP=#QhdpYFS$4@Kyy}dwq@x%EFE@~XfmR$}1ttcQ>2fp4?IUDQ^ z9mvcu1ntxg_guYcQB1vRWke08{r699xG)1W=L|5TN3MIvDo~jzwY}1)Q(*F!U=>E( z=Re5x61OW=*m!-?LBJ0)7WWbV@+yZ9e~qU4Mv=3Vytu|}lv4;>`}+cNZCNIQNVT;V zWq5#1R?9AW9?K}7r+@m-#YzW0d1{QHqR|%fvHp@(65RZoSOIPtDKHu~wFE+RdS4{p zNBuE9;rHA4!r-&0`q&m4(2!{(b?u2nCs%dm2Ubx`N)fgD*7|_b%80FvB5qRN56GUL zlG=|{)>fmLyt4fB#b>*F;N3;*{BE;ha(gVzg5`kI+d z%}(?j4|DX);01D@GpT^ zwy_S{PlJ|j-Z%ICc3WV*j >CTtoPe#-4@we-HdvNab;qvsBRLdTun?N zEc?18^_^KK>!YWgO=-51Sr_GOBc}axbMiF!s@{A-a@emA>jVR9UwbQgn5h5Fp)p2@ zgWF7phw?pj7eA~AmN0mBWI?lB^DI21-`u-thxgwD6L%bxj@LhX$`*`AB7xxUpvQQ8 z;Zziqiu`%jjMDRRv!M|0T{{%de!F{3 _@>}1j7B4WK^nZ=A(rl1U_KT#SSMGJHp6{b@PZ0&2<5`-TP<{w zPO*OtBO|!#wFHYhAUbdRb%vtdZu!7yx{5~May7qlFqDoTDGU?$-q^r+cB3lYe;+iu zCA;HdWLm}RO)cK))5e2u`Rm0*;d?`d-#;d1Inyhj+DVVG-M1%TBfhwGhsc}n zL}D{_N#jp;QfKQ|K*|9P`f&jg(}_CZ+b#=yR8*&EVaA{G6Xo3qd|{U_<#o+FS!N=0 z `~zgPBbCCaVqJvT*2~z0*W9+{w7zYtziO zPgIAq9+SH@db2QO?+ekdtfitQ!AL9P&+cTUr@cJP(3~*=e@_~ vJG*e<*)~SiE{bPDD! Qlu)GCM&tF#5#%pTFL)nuSZEj1K1 zdmpQG=`EClIC%YrDT6S>3cUkl(QJe0XQYN3i@l9<>L!x}z)W6LQ^KDPDfx>HIXmIW zqRzfPdlJyqq&n2LZ%>%8`Bl~| zUD=5UE7AUxa7zF}zG}&!Q26pCrx^J&_J4{uP{MPQh3TN?vvfl^Or&DO<%^hU9@MMJ z`X?xuX?(8hlv7~6PGN3eX^&P+d5j$-6d&UV9)83emZTTtM=@xxZ%`V-cNkF7(IF4F zls&F!G2gfi@#xXJewo!1!!;i-!2DPJci^n5R4}|Qgrm%Zary72KK@bWjW*3xqVAZh z9yM)+$2k@k6lBXbDzR9nx#$m9H`mBB_wgsQzOHjx`eIsUQc!BsuXs{cO;Q%sXTJbe z!mPAZr9GIa;rwJXAy ii7NL^!iXZQb gKF$Uc0?&?AD-VBav=5{=nAtyK!L0cJNpW_77h%2;|i? zz>{6~sj=@U9b;WU>%m7Ev@+t$fqm%Ide3SL*Mi@)6k>tBqWk6qzfYv$YzZnoUG~m$ zcP1~RKCY9a77juHTEpw(o8CZa5eLH2?Oc|qwV&^2qT4u4o75)wKIlD{jpe!+`;+y> zy{<7#SuD?MR9E~!iCf2`;0;F^@3?rrS(p4$Q)ybrKl(mz*L`pU&O?1A$0ny4zY_o6 zwITH_7m|H4ABvE2FFGMJPw47B3{K;hlE0&Pf@BEaj&hFyP1fLS90gJD |rbl`xc zz3`8A)GH%dR!iBe^g9wCw;Y+hQ2YlObz{27(t@1ga~_+{2VJ{f+EvIiDD{Z$Q}ZNo zW24G3$}|L~o{`C?dQB)sAFzznx8Lkxbi1XS``e!wj0*?%>hN=*d(k0Ib7a0s$zUH< zrW5*<3-{ywy?^3^nvJ+ojc01N*|>GToct?%og3aSCmm2}W+82}g=_LsevPj$HA$0( zrt3(yJ34SbqCz@Fe_4LD`K4vY X*}!o)HcvI>ei^iCyj&@QGYTRg?z=!AMmMV!E;b_t@jMgY?6EG>0J3Z*$pgwAn;9 z%@IThdyfi6;vMR!b}no^-h?=V;K>fWAf57{vg1v!`%Q~aSI9@*e(p|sh;xT-x67De z`c_@+7E q7$w)uZH^=4yorrk z7xlKrB9}0B#ij&}Ehw`RT<`pLGl boIgsO$(b?>7>~ztUW*@Tn z`F+cLU)WD?tZ}$e+RPcX%|23aZIJ0eku|e+UszfonVCJR`a}?pP?5VW5qElc(Yo*7 z3$+101;$QulT5)k=iLK4S>{yfsl-Ow|1*`QGE(huW#l}xM_cy8i@*SUa@!@Q6XEvK ztW4S+Lg9flzC@W5CNH_BV8YeE@`Pottg(vEY+Mqn32CRaCpFP&*JITUef%(vFOBx! zZa(50(;HN)(lZ@LZIvuR0m``=10!n?5LZFo2+WylDTNII1LJbMP+Edg)h=TL#w`7@ zXAbHJccek{YgFtF3R6rklSgfmC`1k256e@FjaiI-5@BW7_G+l0S|ND5hdvt!;?7`s zm8nt*q1wLtNjoib#N23g&AR@{aUpnxnwlD0WyW3;ODc>m*}Zgz!sz>yQxU3&O_cP9 zl3MQGX@Lt`UF@Y&OBz!tn?JptHY!>Pqro~C`FPT!kODAEq@T>wVTDM6EJ#XriP%{C zKuW$U-`NUAK3>5oG+9->dY008e}#jo!};0Bo==hXb9lZ*i{fSlJW8$G*MRwA$hXN( z${-G}x20KAxjX14O9QSTHA8I0fPl}d;D1ojYX;zecd L42tFQ@ zG(I zQCwIjYvPVZH|q*Ypy;_K}g_pxS8s*3eY<4YU U-Z{~O0p{4DS8@qE|X+751U1x$0Gm16odw*s-TYnBR5l9aa_0OL1=jOmY zm*|r*$L({K<$2VI+i(6|ZfwYxhwXk~LBbiFEMXk2^yF{8;`f iR47Q@a+s+~X0qi` zwb`>OBGKd2Kq42z#KlT;v<9PJuU>Y Hd+fRZ2)o{FFN&Q}(vzI`K+ z4ZMXhWQ^N7vLR}7shotF1|0UN+_i0%$3#ON^xRfMs?H7jg H3AJRwC647oAQE0Tjxz;U$r{z~j`C zQU3zK@LWzqr*m8rTZ^kPf8(6@1Q|uLa lp-!~F2wPI{G3+#v}!-7glzPT z8~^Buggbwb?3Lw6g-;uN^Mn~sIf;-eSlq*92b55GKS9&Ng1-xAyg_Bgd{fSP_@aV- zP|Q?nnQ!nLP*XUVpz^ilDGX4u)L(R?2x0WBQ8^Kd7?t2G%|)R#f??jPy=h|6U(-HQ zsq9c=sU}^*4UGo{yhWqUN9-K}8mzTSX>xRK(h2E6eMT{;V-Hu+!(Al=jm7ap4y= z=JA5Qk?sZV{}={~Bt0%D*4_k}fxwSGE=%F2sG2V#PGdf~V6l!LJ3`vU69#md-M?Jg zzu{_@yTAL!om=jiW#3Bft|K<$X I9RUY-*LJD8e;${SnPUPzG^bW-qX z@6V|PsU*tm^EfCTi-N6ONRTAX;9Jjz&vb-Wp+ T+7+o1fLLk z*4G)Ezx_75y-Wh*I1YUfz*kd_^K+|Dhxb}f4=L=>97Sk`v4Lc%wL#fQ!RwC*M8Cfh zBKb5(Lymku)tMM2hf7;_v9DKd+124=Z6?_ggdQmpSaSqh7IE2TTJPM2EjH0d*T*$H zE;dL;u1|<0+a-)lShEFjRQ&}%F~gMw$YM|Gsg FHacj5lb z;W~s+j0&QC($T!RHbozsh3|N6s?=8h!0gJ;z@n;bNF4hn ?P$D*7o=X_RQmF_w#XeHrAE#ZfK2#H<{yF$SmGt2unmDl%WC%RQBNg^d@kUhLE$<@ x- z)Iq6kKIM?t#cm{tROZK}Xr5UZWGAF=tl-2Z >qLH)o48|yFTOUrc~R(@bUI@xeu@~+(J)>j^W*q*dF52Ndz+kBk@oMC ziixFg{X%WEfA9BrjrH&VZ? RcG z_Ko41_M4^spIx{`&jiDXYC;kJ)PoDYUn>i?dT(h7Mo1D`iK*b{ez}0MKfE)h7W;{t z#<82@c^o0xTn@lhv9-=osTcco`{uxYjLztj*-MnaeSc~H(p2U7ND egg> I4 zrPZ4W4*}7JhqQEv2MbHqXD+fWH{pIrIAX9}k7QctHVRS=cw=WXwMkQKl*4}_!xAyY zQ5f-sV;j|qlVT<;=g}=ky#|pN4t#I$3DwG8SS r~K&+?UCX~#q9`gy$8`zpuLMLZ?Y96VYQJ}iLL;Bis**k?XsapYUl zKj3$8bJ`nWuxs&On1V{b9XSP0#;!-}fw}1vl|>6Db#EY@$q+7pE$;b%DSAzw 7B{nZLJajVSJaCtI1dSn;2#jY;^qEOVJN zin`F-2Ce_XTi~(0j&-E6A$!a-LO~7`Lpn>9Dp1N S(U;PH24$ zqf{3SxqfwKQr_6m6^N%LFp^7nI0P`cKFQ(o)%@eYkzqp9pDu4_HWRe*eMi{O3?cv5 zxR*ch)JyBKaX;XJBGA@|G;xdd>fA!l>4A<9fDyp9*PprO%<)n5E9TU4o%@F2Z8cS@ z6NDqe_9cjGBJzT}$18GR$9#o?wOL09zcvobk`<@LR*BZKMRpt*#Z#Aqd%l*p{_v++ z;dPLz2{PRfebdqA+#t8(yzc-{lKp3(r*S>?I_&(40s4%-)8+F@H!o~pIk{B&0|()& zw3FZ8q
?mA(%9vnsBi)#lQ>NQB(t>S8Lc&~6k|8l%Od$FD+D2;OP6 Z!KC%)3$JuJN_A?(WH+V>Q(@sg^bq1>o6 zepinBf6vu6vIaiI_d_{=fN?2wg+Z;0BDe2vRrlt!6r{JL_*`PcIz>FJFc{Upr!_bX z37fGN1s230GzoD8+h3;uB`B(RrYdb;BnA)QzWK_N#|js4dqg(x2au{9e(VHWzCi(q z#Y^3-c@_2`G4FvG@ yXlg-X7J|8TFGDY4mD&PMd*W1@ zOk4q=%g#zhtESc<#$}2-{i$4-83{?Bb30-YqOYc=R$BUCOv^3Yoe!=Y{kq7|59JQQ z+?|7avYXQ|Dxb+^zd=F17;F;cKt#FcxbvAhebwnJAtv;SxFs7Gs3GP?G&UVqNQg&+ z@9k>G4#5dbz=j9re}gLNk$@J0Z&GV6KTr!rFyg=#o~#ps1#+sKtS#w&ay?no+Fk7P zr8A`ce)p@OH)t2Xf74>+^lU_-MUw$Niex9wfhf%HFI=X_X#0SA-4Zl9BsGi`PhxMv z>=iHx97YQpyN)d^kkzXKd#Bw;kteY =0yf4&*V2>&Wf}c~IOjKkw{+nW$9L+Fg1l z1vl_T@P9BMH%pHlS{bmLMqX#?c)H8uoc=8$ZCE8ZU~*c PIsG^a=iXLokoKBr^P;s6I$_?MrS}ycK zHLR3qKU4fza$E_M1hJH4hF?8&+{u))5cbce>-b=2BJPB}?h+ $)AbbaW;7 GIf5@6Wnf|&0E-57Cjp|gA6)sU_ zxl0Mid8Wki=WFc|AAR;E6gICq(Fycg3!ksv4%0yV%qD)%<-%z%TkC}g219zo28BA; zHmuhyXRZC2-D6*Gncb{X=dQhJrwmffR3C<}TBiL*7JTIak&DDXKlp6Ti8OOiNYR+5 zLTj1T0~p(6FR=IF=XN_ ^0YXk^RBut-H98 z?yU6+MZZtmi`G)xjh-(&A=&O%=<9cl!#-v`cSnEUFzKt^=a#f969?n_SV$9$hJ7Tf zSCEKuu~L>^2`GZ7hHVseC*jyX(@qEBf@IqLPDmw~a~*=e&Bq%E-l7=P*|c+^poE{V zaFAAM#)bHOn5{8SsF$?pv==^cRl7=e-R!KN-bC=_qMWaMeR=u?!z$s(4yd|VG-Fh$ zLVtY318xYB`GB!%U?aaZpIK&kSDWq@hC6qsAE+2)ctNU?X9!(^PYWNjzr*rgL|LXa zxQNYUIWZu%bTwj)`Q(iYRoudpN%ew9BmJgT*K6h31v`?AAzcOEgO>evKf s-Cqn{UerJK=jz4Ylj;ceYKGg@)~C)+f|yr |AQ(!0i3?NOQ1E5*#U1IAB-i^)(n>6Wi)B(bVV%5@@Wl6ZkbZMF!< z@yi#xzYq_6f)|;9AIp#zenos@>WKO)A7D|`^50kRF+y{8T>!;@oHp`s(T9-u=R5~F znoCw@#=P|XbZn2GUI-$4x;a(dk)T|nDa!qyq$x119dSzsq9$J`)k-z-pZqsHTzNAx zMJ5cZ4KTX_NdN$Akxe!c{Bkrgt-`wa0Av7_&9fCY&dzT?GiK`9Y?e;c6FdhbQQ7T) z;tsFZ@2(6z%=mSSSQXH+gKXw+=+?mz$#!!x`(AWhre+$bPK(#(9}ai=lZd8YrO~CZ zNjVLO&Q_ij=c~G&CA5ThqY)^(+UHc{epMNq1+&0(x}GE)fBPy^Z4G>-A|57Z*~XRu z`Nl$yn64~i{+7O+S5ug)pB1nI8wJ>vYd@k{+024PT8+)c1&K3 `^@PT?K%%J`QKKlpg|X``X^46WiC5QM-w&ou**MmG9DdJstY28#&#jbvs-c9P)sWeVag;Ejw?0gQCU><7@ddz zFUuTtbWnQ;2 Du5U& A&KvOfr1mGEA|BmB0v|63)4Yuem+;p% zhhE-GIZ-0^ZlB9a>NmS#@51f0*1U3^RwDqk ? zso8N5Jm~s;l?vB3k(nkRwv|#AG4>I38&4XPkrhBoDdwg*Wc*%vBhXi;+*!@OykgXp z&bW~ueU#iQf>j0G%GLszd<-NjYySJNz~Y7lz%6epO9_TDn17num(`s-wu{R6mW334 zMP;}#4AEI?=c0`;wYHYWSXEsD#vXx^RNbNT)5KQp{?q~>Qpk)&Y$oc6WZy;2;g~7m z5yv=jVK8Ke>R?+15q|0Fg{&;7 b(;!Ickf9pNfRt0Z*8^UkCs@D+x?}-`Gxx*07_cDf-#V z10!2{>wu)4A}{R0iUXh;8+21Op7yckJBmi ?o@-QQDipRu%;hVVP1>%)#>Q|KVXC4^Y0Ne2x6pqVSfHAbf}Iy!l_mK_^jhgG z3&ATidEEyJ+O%Cx=`||WO7mzP{ujqbKB#NU?6V%c))iX5))peYY8fa+BTZ2YyA-p& zLH7IgG8#X=UoNcGMS9&84jaRT$7QS~-@Dtfq(BRF94|lgdNAG(nMo{fWQK)K>u8jH zLL2BVFUIau`)94n#Q~L-YOVqQPtgRK;9mh?n3+mVQiu9`tlFPA n=2_5E)8j+aHT>ykrG?j(tG^yY*o9tqQjD>NUte?B6>!HFLaIL z?&yHHI0*qHTD6Rs;D7 Bp0$CGQkFXYBt9q3ctceHZUb|;30Py==^EA!`rc? zz3sSxM?TmSLvumdvq8u&b@F9FBoOyBQEM`;)+)a_qae% ?D5&~qa;1aM6;82BP39scWJH>B-aG!$0&jifKY z?W8f`?#Dz;(?1m1m19uwhg@;5;|xqH6ldDBXa32Q_*%aU_Xkrnkp`-g>zj-=Ov@rx z2@^~-E8#eMeF@$5NCuRnr8I6Mi!|nd=^7;7&E2voe03_&EiV$sIP-RdL=XB-xYwc( z2D_1s%hWIxBqqgNr`QBhq7vq$|3QOWHZHyS#g(1zTJn@DRKBoWzDOF9O*_?QjZ$n_ zT_sm4J-$2s*_zvNA70Xz+GhzsDyUHkvrcd4S>>5IPah}$N}H_`cgTXKv $81)Lg>MQz&IOjVYI10jz<98I}%11 `-3!8@FYp?JEkAT{b~m zCG}&IC|2=aTmUWTHGD{u$-$E8Anf`)^}|@+B8E_!VZ5~q2&L|GDhx7m(U6BAgn$?q z^veY>PxvjL(9eXlvcxV&R!>?y&3p6$%^Yj>F?7 3!9I0n_{Y8c? $KIW~rmOg}%vYyE3O!UG8) za7EmDIs+hGLWY8ztdoFwQ6x+8~pCn3XgM0lr7xEEjnM-3IXbLfjG`J&N= z&Ril2q8#2mirG`43S!$FGqtdc&A`zoxU#HV=}7p8#CL{f7b6JY`*KJ{96g=Xc&I=z zaT%hf7foOPr?OFXiw1Fs%7B6_-F-ZFc5q +RIm*pU2Midyt!-PgdHxe4Zmh20~rXs*1um!)q{ (Cxk3SNWyKRuvjbxMNz!{bx$6+8^hc118RzVTRkD<$!x zg@*aTjo!zv6^2`fmPaFZ8;Mj0Sz@Cs+dwk$)H7STJy#4?Ij$B(sBSdEY#w~h55wrk zTPW>ef5Fb6jX3``M^*16pgwfm{q(^)c0#p3Fk1B68A`zNe||vXGQDr#upS-0{u2S* zItg4&w%(jGb+E Yx$17T(TiLC SuqYXoR(~%m9&dOUJFYUDI}HF^Miq^aUrt zN&Ldt97MX-=L5Yi;{ z3Yj6_T(MJ9OZtz5GuCc;D*aO#<){K`q!j@EJaCvMxVrX$|ETnvJ{R}L%NNCld5QJQ zKc7kEBVN+GR?tz5PwQ8^prGSjC0o3)S)N6vK)=X6z# |o-#;W~MmzZvJP8oOe3_$s{Z$+h%!gB>sD@tM( z;Z_kuejf`6;3NHx2mXOd?G4zuW$WN9E$g-ARPjiVcq!GH b0kA% zs9g8Q=?X!Bt1~tV*g5D67a|h(9&0K!00f<4brv2~E(=yf{{JckfFAVR2L1byOU(uj z(R@vWM0Pv!6X|0{KmM^>^^|l%#}jeg>PH^jRtvToNPO)&ZoVXByM*BT2yapGNlq0% z8L{eiLJ_nU>_r#GfwS^X$b*#I;(M=V_cMhxw!_;^3%M~dea@B5zqSd>a=c1 >oo*hfAjFaHn_ Y|GZ-*9)3S+ zaKyXKAxE5yh1x($?37z0-bex#$Z6KvDopYPAWy+L9%njV-ss=l-g~H$Ts=cNk {Bx0TqKDohV*l%J*%r}v?UHsMl#-bR^b8F^1K18;VFDNNQ!;W z?en5!H#g~Fit5u{Co58UO~u{MJZBq*AvN!KT^@JJX^f;WqdV~b=e7p+zY7(9|GMyB zvCvJ$I;iFy{0$y8HmBGnN|wioWusmwnw~yWh_+xHlwbdYQYt?~_r?>({R6RN_^ot5 z3Rf8FnUF^9rFcc E0x zHd6n>&7@t@tl&EIc+b8%yih%^qp<#*6gPy4J|;o* zoqvBywE!?FcV^YUqeH!Y&<+I=*(cR6_Q9(Ol*A!$v*mfVe)jx)eZ*i?KRNdRugI|V zn )~)(O8Bzn-1CgEGZfZr7@cdd5IX=trSN|2hK~bQ1Lz8r& z>Q;S?=l2<(vvpk0mRY1W|Hq1c0fyI(eb-P49|V_2*vX3XzN(7LQb#M^=D>uGtEy5z zxc*p>e*QNpg>(Njsq2m{!<_rIFUrmBMRbSXB=8RktQpezH!XTMjCOj_W`1_wD{$^& zndx-R;+-2Sip%2@$wgMQI-s!aK-UaUwCn|dl?TXLh8HEQ{SD8HD0xnjmfzncQ{ zPD=IKB#>3)YzS!3Nhndt_>u$;ieV>9t8qI<)#Bf5wHL6_@b%bgO`9aifk9vb2X_fQ zJbi7@SH{XNk6qy;&d+Oar~E8sX$LcYNLYE;nE5KkwYQ@<5Bj0c5U=62nk06A%<*mL z`F_N(bFm}s+#>qI|M8A^?LeN`5?=pL_g;>L{6`;2uPQ1N&y(m{UIjw%T_F!}BL|M_ zrVYp6Z$MF*RJz7b6|N_{$V6 Hh=HEz@hPx$;u&EyN7+d5~lmo z9iN5!`)dlyK;oSI?o9=EK)tI2R9RNpb|H9G+ckLKskL=xEp8_r^($TO7k5{Pc1czA z0r2*L(XaNGbH+KLL~P=iyt7|<4@e1rzB1jTpiAJ$sln1Nt&pA2Qp2+MX{K)HsxG%i zivgHnbSZ3Xta^WHn&4pS4o+A}C9_;U-OyfIZv-G}y+E2@pq^NlTQVU3`&mV*>kt+D zh!Y)H)a%A()BaC&q`$^vL9C)#lgjb^nH1%xLHW{%7Uy#N8VuMcZ-2_)`>z7o_D_Ug zX=C2zk7@KnbAIhRWl6SdJhiMRe`Xq_$BWP#`#iK!Ry}S<#LkQUr--ZUZlT;%YVC4v zSKwuzP7sF{ uk*w}1I(S<4x*yuq;I0NuNVC8_O49grA1wO6=Q z=l+U8G)MpVmIRW>)XP?z$Gv^bgC!Y|usy7j$|ym|CXR1!U-dGs!Oce$5z#grS3V*4 z! 6qc)^bumcGKfflaSyPt^bNiy`trVu5At!}k7%q+CZ=Vg3-KhJ1);hOVwt zby+fpGIFtod8HM_HaWOqk)+l4ilnZ@>qRc9^R;Xf>44&g@6yC1kywDrm*sg@>Y1}h zX9(*5QW^Z+?0U7s*7FGbQg$om2UME)o;E1ve-ALCe&jh;8j>#Y3+*kVdM_7HkN}%{ z>OC>%7o6XsL?MUR`ZsPTx=w4qV;5HaVL=1$Ro{PxC!hR@9Vb#Pb8e-)cJ_H^)%#I! zF(7~N%qsa679rcWWYcS}9TrDLSF1tvIFZBKEfy25wJmm<;RCC|M6~nGKV(3s-HKdJ zQr^AtH~aSvNXP)wVLM jWkNTn(aQKt!Taw9K?SZ%w@@29 zp(9ARdUI}mTm|;aB)4E7k|^zY!&Sd=i(9tRh*0jgoZ^cOGQ0f?NP$d2Fu=J}n?d zy5GOjedBR+diHtS<<@m4v^0h9bPz@@8CKWo|4;=;AH`aE_?s?6BQ*nt^{`c*dZQ+? zl8UcHgXMww$`eYpVG!>ww>rGkWkJ?YUtfw)0e95W&Bd)f8X5W6ny`l$BeA~qd{Mn6 z Ma67YqTb6Vaa-hkb077LfRS* cBw%5EmS1=?etyQZ!kcuA zDyevfM{c>V3uC@^{C*uENf>6*Cc<8J-z !vm(FP 9`u5`+l!e-uTWHM=Ai)l>+|x4mOo*_T z0W%HM-otb|)9S1V?}__oP^zp-=$Bv}FFiNF^QCrG+0x0wIXprN+kxGYS{L;Deeuh< zoi(~ hE0nYkM_1m&9M|jcqG#{?FZ!Z^4gw9Qi7`Q3q0U^-p;4z)j9whFN^L zq=#%j!%?r*EcIT~S}J!=sqeiVfwF444!Cpd>{UC^AO5udEH0L>Y>4@GURd^g6Wh!o zgRrx6*=2M=>-g5M{VKf4C`FPz4pjbIyg^iHe*S(7?&e`CUP>Lg$#qdtUb!{E@9D7b zii^v0uZ2c3;Ed0J`4C6HY7&yK% ;t!&3(<{IPvE&DPxU%48qTv<<0*TI>5JW<`w~;S5MNGh}puPlGnV zW8liI*X@eZpvLYvsZ`3p8O_8tlmOUHMftv5rqn@w>O!)GG4HZ9IwX-#)WxL;BsJ7% zFPepDet*sQF*gDSmkG2RRmwB?N>Ey!$>Li5s^JMRTJu#)absJv2?PFj;6|z%sBoo; z>SP8&A8SE V~ued!^Al ztJKp9-+JQIZajKx5fE>)!mpr>YK6M}vx`Sg65G>rC=B*Aqxv%K#kMSmc6Qr`dR;ie z!15K+f#?_x+l`dIjD}_n3nx><4g0nR9xHaPPbERHaQbXtd^kg5^-(0Ks2W~0Dli^* zI;7c4EHFnhVy4;82OTl2SRGl${JUPlI8@L wPf| zv>mNnb7fQ1*mJ2bGd+BD#80?zXC?|b;p8!JLT=FTZA?h|SVw(S>aBOH>eY_CX6RXO zc a~1 CS@R}|V$iZ7ux_C_R-%Y*MPZ7a=QfBSbR z@;9!|^z?Lv-;!^|Xu9T>lEg~ubKs!vQnvS&>w~vFZhu*0!v!_K7z6zp(|)nq1u}QG zuHxqro`Ai7iKc5*@3W;F>^A88e=jxh_=kpr%4IgzjvxCHk4mK>SEl)9k`=Xo1PST8 z`o!49FJpqJbwt3g7rO7K&^#|ae=7Iw3{GGj9@#0^dU+j%SdZ4RUr&*}(!3nk75AoU zxo`_2pAuBAwL>FSvIl%4majB(zd&h&zIK3bn%&lpKPD*8OyJQZ=Jti_F`d=(FlcD; zmm0ZXF}_KEYlMU0gOgm|f06t#g#O*tcM4!lA<(oBFU*hneSLkvlnKH+GXUlM^lf0m z*BroQ6 qLj%yLigOklA>(BaB((W9mQ9Jlo)ytQCjP^HW$0TFj@}eQ$fv*%?iI z$qUwwVL6O6W^#yC>+*fFji2OIm!HQsVi!IAfK=f@rSDu1e&qtLRBJ$(N?D6Gvs`z0 zRY68aFLT um86JSf&HJ1GrvK#9R-qcsZTG17j1efnL{7K`ZEpnOC?OyN zh)k0L8~=}OFVSIF({19BI$tT_3(QO _(mf(l7K0=z^*npd !MK!>MbV0 zJCA*4@4p6?v)`9`pJBF4{k?Bh1ce=nW+nxUHYD;~^m_51xF*m&pr65TvO2RBKqU$D zq;Hs*LHm=pj0;BPm^xQ+nhc;jSB?CB+JV~a?C@20yJid1dk!}`)7Fupq!s6FBOd^* z{fM$o5;AI$)V@kh!tI~@{j;Yl{9tt|ZR4S;IepuCYhNR*FPcfo(h&7^(wFJFMT#!c zS^zq;v6Lh)qzRF%K6MqO_I=@$P&5~pax1JUj3|Pv-F4Fe;{8Av3J^N_-CDxc6@RkQ zE^2Pk!^Mi4*))a+AS-6a&lpyP7Zk6I4tryXa`2A-jV9C{6xOyDd)((y2HM9;u(7WQ z7sgeTJg~M9;WAk7X;4k#fYnsu`$V%+$;mWWFf`A-2mdCmo3lAkN!LXeLJq`t@D z*s$^&=O{tJxTw|w=GV!rg4DnXoo|r2vKU}%;qQD(Q11ecu`+b*b6*5cY1EY7#C(iw zO*Te}%Apwkh+{tVI+KI_3zrbdWTxMt)-)PH$rCV$6BXzPMNTAitM7EC{5EgySArI( zwbWkH{9in)dK$n0ohmWGV~!_dEz2vy@qR$9SSMR=HWN4$`6TNa_wNw5cgVuOym4vE z*+9%#VYd2Xq}&7Ghs >POiq?7+rR|nNXe*obhMEaKqyXvy}hl9 zX1q0%^uG*ZpZPQznu_v!?t)7D;!sbP){^aLlLHMFmh *#Xyb#;?XJj_2z@{GuEr*`;Hy1-(wjDtl%y(*qfJc zJxM)`*aieaYXV 7&Rig}xq zU%R}qKILFQPhyGK(tKO=-sJ$EB;|eIcW~Kz T8F# z-ODr`p%EJ0f-OCzrxIkcyj_c_HCGqD${CqJ?3e00T=#UpmxD+6<({>MqVJx0UydXx z2&lbu$pgRgvD)7gD>bl)v}B-NZ0`WM?Utkbt~eo>^Kz@V0DsW _7fTxEARc=Ushu?a3b#&L4SH3u37Uj(68xKntF8P z$4E+2E}uouUwnP*Gy1dTVDOOQ{M7g@1oURt4;b4}E8GJ$6X)f{pYf(x%!%-&7G7k9 znlIF{stfNYvaj?ttSnF-F{z`kSumv?USL~S{J1zS7L;0cN;T=f1 kid^bzqd5e*7X)D6^eDIp%AZCo(8=$A!_Wr+0g<{@S2d?D$@>AtKRvC1@wk)ABQ zzUtO=DDCXd*{W3u_lM+YBKP=*Dk({33q8q`m{FtYOJnsNY)6iHr>nHX!ez!)K+7QR z@^^jMCo%y@d00VaqVhND1&u6v8vP%o!W>pdjTxpP1Af<6 si4x$K%K7xw>NjpFsfIr8r57XH?=8{6UQg; z#dc}x-yeQYK3H#E%?=Na00LDwrFc nWQp|}|fM0|=<*#sG!Qhd@1ubt3`mJ?F zIwL&XknEibmLYs4k%bBOePW3wqxM>DVu-U2uM`J$erYq1;S)oDrm|TmmueY`q8ot5 zx(K;R4bi=hbZh_+BLV=iWT&=eA$kDBJQ!{PH!g4GNB;1tyjDqt47Rg;m+d=HVYJuU zbbnPX{fIJLGVmCW61fm{S#Re^pp>w|8g<&)#Y_+iju&n};XsBTc9Rl@3so5er2RQg4MNVDpXY%Wl83YY)14@X2ZiAX4%zI?O;)!k-KhL*!=$n zfv$-Drdf|`E2_yjI%?jq5D7R32y}HC#tZ;CPvD}2x+?~^3gFT@nj(dgi8JR)a%Ls$ zzEFSlkhY^0Z*>&Zw hkw_=PY#+v VN1EcrWd?5^rbKtuVWqviEuS)pCoD5W)@rQ5iZBg# zn_SB<4o{! k9qUH~j5VK6Z#4seCYBdOzHK?G;X(NRcyu@Ubc_(6rzYtet?} zcJRTL8Pdh%dK#uYFL8I@1!JD35A+>j4tXks#6tQ}wl_4+VlhMrL*DcfP^i8!t{$ zgim+hTWFP_!@` zdvEpj4-!}xW!bvz z }~THfsu_0 z;(LEe<;cSM>t=AmL->s_0^*rnxPRF^IA;*DQU)7{0M+;)qy@p&t~Xm~ixOjh Ij|xOc_;2yDm9 z;5=rMEg_VvP{7?*y31lKobRTd#_#jcdp~;V>t=L0vQ~#~S!B *WI&t<)G&(Ti>UYmLDSb^WkQs7~5p$Zf$2aT8)=-K8XpP2NB*fM%+hx}>G ziOZ6kz6qnSoHb7U j4^0u1{O%UE1?!`>4Df4#p4@(d2>{_p@)RRN^mLDSp#diC|6t zaQr@7rH-ZD0Mx+_hXE*-M%-7_OKJ<(2Z$owz6J0zpkEZ9?fn_hOAs8kBw$Z?7?yVn zuw`aGYf;Oju-=R%qq;X3m(zkxTFf&gO4eANhSvh#5RU}7(^Cf>#?4>JJN-d|o8GYT zNbtT2S1Jho{c;OxZImC{NWfD}$#bVC(Jq4p1?;cwAWgpYK7KpNOYxd8?0TRUm;Uw< z=OIetYp>t)oNnevd*y44koK?&WJvk|8M^=(zcm}ztS7uEm6iSqSM|Lalkp!+)@8MYXl0^6*yx6k}A zzrI7z3gR(EQ-&F`7*52@J%J5=df!jd?z?(Ie{Tf`IWJHBREy3XRiFdEZ|=DL>evJO zhv|pk!vX)wY)O!jq*#Whh@A0!f2lr6HvXc<>HE@rKQ$7seLowSN%aMkoVW%hv1`kf z(pGwVe4jIQ!xS2-EN#FKapP^m^1pIJ4a?)OYcIbExSH=}eju%K%+a)kB$IPPBPtT{ zp)799iSd!_!6Rk8WQtj$HP#tGg5 _SF#yso969kKL+6d=v{~ zv_R?zmpx7+
B}*3*1(#(Lsz}q v7B}JAwQ8roTXn_ucH-C5|3L=D%>&8{6h^%kG{n$1mFFLKCJqeul zTDLJ5X=a^&NNk(nt6Iy+KU}O8L0m*nl=*v-!IY8g8%4?+;$QNW85?xy;Gdz UD|`2Z{Nz8D_&Qd zI~QdXF=%5Mat|~@A3z?!g Mm>f`7% zHciT4Xp;7m%;BDbG-YcX{+7}(i%ruG(ITIY-pEO?zufM_i2UqvscWF0qf)%3ksBmn zmYa8>51tYyAR%%D3RbbxV=nA~i__jqOfHoxumBaB&SETzxd^86WKvCOZnT^nBWZ2D zGVZbA^|JdekWYTj4T2!u`A%F~3VnAs%4n#(jlKhnX14cS`c19S%C5lcmHr*By=|n| zbE&vjS90zsS#(%LyRV1V;l+U+AKRcde@n=JhO3v1vd2!wM8M!r EeW zm4y!|v#q4c{+)k)pz|n|RE$wmCQEZ0z=6hLivWAK!PGDuyB;q-=h=Yi0|7*X`=!ia zHWy(Rtu9tt(bnMI4;+=YFoN+CBO_Bz(x-ka;xF7xEteD}Mrme(mv0?0|BJ+i$(H;y z-4$DXWu?rhlJJyEr@Yy?o>(FQKs9em1qKLubFS@`>Dh!Z$B#ZtUD#W#km_>6ufb)= zQF*-^+zEometY>gJ6Tt&)KvFzc%N=?rDC21lt~sS!$w3rSGS~3FIN3S$JiCJy>24{ z*Nh#f{ikIdad9NDn~c7zc4oKJ5wC9Z{|;Bm y8L%GHobD?o~bJZlvpC%4--cgzN@0a?Sf!e$R>)Ux}xulO zX;KjPkgGCe{FQ Z%-&f0I`{mJ17<$!hsXgh#9 z9FMOkd{_`Nbi35p)DC)b2nsr{@-58@U!Qx=1r@iy7a&p&NL5U~XV2B}M1R#&Oi-j` z{xX0BrGMPCnW*DfR}Z&*POvvzv)CSH`#4YdJ)kzWG!;y|;`;(%TCYYqGP O3PH u)RFJZS^R%K)LAXcdx{aF04w0TjK1lD>&+JH*`gGdz92L z_{D<4zBk#so*t=+6q=45>|j8w)XZ<}QE(~6AoGJ(00IopR{Ndm{@|O6R5~3=7m^fdBK2+Tz9^-`py$BllVVJVBhzv1#dNOu%}ufH1gx|h;q^cv+hBcxxw_=Yye1ve zx_WW{9>k5dwo& x3Qfyy=5ma zg>ZkZiao*Dk@G1&bAWh-)Cno5)BpOmQ;s(2Aa~nwL@i=h2k}1=Pj|6NQ11@0?$_Jy zzmeog{`7Hncxh?BVa2zYXmk0KP{-4J@+gvL7LMP+c8W=gl=UtLl|@UwCajN-{voiT zA;&A^RD$-^TRwNd$l+5~YbIvOL0&23rv ^ zoFfEO7MZFC3Z+w+{6*Nbtf7_=^QBvR&0 nWb zVBr5XQEij!jXSf{Y}tIh#&sY4W}idFedOItxIb=J+xHwHaORr1M``ZsVj1F!xfpYD zGEfHg9MM=YvHXf`e&_?ntG*axL}b~ Op!F=&{}a zfW?QHiuHRjpdw|pn?|U)6$&9c<1L-D&v2!0l>7GwXl)idBi^Aja?4-(WXaVM{(;Yb z0a}vIAhI2xCVGU=9!Wn6tXHHd91EB;x;mWOI_dCoy?@$1xo$d|9SbpaSII%HBTjm> zYn;oGtpA=8IA56Ewq`^BTx>P|HA8?oz;T#z#ghuWrZ|~}Suj2QYDa?9+@KP+k@Pz| zR-H>>)%P?2WZ1qIPxxSRnVJEU;XS?=>zn3@%p#dzo9 |5e1~$- b=Q*+ zGj1JoM(ZIRQ%yA~DX-IG391AZHIV%zg$`Fix^#HH<_zaF`8wg9 WUirK)R9 n?cR2sE%Yr_hi# zd=k{djQ5~w{B300tC#^jduL)*HH}1v?@C*Id=DQ@Ya2l !#X`fIn`Iw`BAuTW zt4`<2Kjvn7Nv>gTecy%z>WmwH-&SVVo%KmOiuZ{%ZgG1~eBdeiq~)aJ p7s2!u$X)0O~XpPm|>@B9^&3OA=a5r|BM8ym1q-c?ToTSsWiU`eLD#X*&!~t z*PC1mm2c&+@~r}#p5_IDK}!SD3K#)bLtUNZ6cQO86$P?}S&U506VwxqL7pb1#t-^B z9j4e=Y|q&Bpe0-%Az}$9ix)m*Y8Tse*ly2Ic5icBKkA@EUgr~bC7)dWoNZu|C_ZNJ z7EVfy1&rXwhD9mmXoMu`XR5{cy{uiL;cv1M+!2^Iy&`x2zEA$Wdm!7(8_X|ZTg!Xs zl%k#Qn`0*=t4)SZ68g@lMsY**_A+IJQTO0v;FFqfg7ha+KIf!xs`v|<)sH0Wp@vTm zjZ_Ejx+2lZ@bxMp)B+~w&cJV<%Gdc>WH$|yX6t! KRo~%9UQ?cx*#n00BJBO(@Tcbghtc_oGuVxgw>C6UA5%ZAa@M+g+mPIS~4}Sfj z$L5ctP-u{(hmk?oX4aj7WP7>#3kIna6a2ePsMaRoa3=U^KMShLdMT*=Bx@sxQxB_m zsB&&ArrN=&Ql$cyA2mTvV3g9e*QcT1RW^ypfWTL*Uli?}SRHk1t4L*EbQSePXPaoU zG15Faf6M#*r;(T+A{`dp)2}M^!j%CL#3}5wSv^Adg?!bj`)pkTdXhde)c$HOmt^_v zA;VC{`o^mjuj@%0VM-^|*ED=x{V@AUmyH<+|GIIMFEgX#yyQOB_R~{1d1}K&UzlNX zv;-a0!*22CNFA>AJV{U8Q;> &5>mX9G@S%f3Cx}=KBz15n#W$ z TzS)mrx*`FUp3%v7kESQ~8K)D_oy69X})@!vs*El&`xlX)vNHoF9Z*OA@P z99K<~NZX+*W)5qU(Qw{38&F<{ANHG lP!{o`Gibuz%wrSY>7 zy^mENaETi_%x#iM>em+)jbljJS1=S+zL)3TwNM1*)T`%$Ts6>*X-<;cJ}> i-;bdF_2s_ImdcWY_UXPs#u67!f-A#E#6#3bxZhw_MY? zzjG`C69vz=bM&YRkAX^v%0?jEjYRF31-x!mB*HZZuR=qbB1_O&x%mX)q8^etw_j |9!N*A;HiDO_cLwN%C*vzRPwUr!L-Ep{ut$o&Tl_(t%q~YO(Czmx4R*&Wb#M7 zLZa7mhRfAqIm9K|VCBKfcT_P|RfY_b*Q+(f$@T*)_0f{FXvO}gAM2U7_t#QV1c=&p zKktSP(EG5(U{=LnOBo!<8T@KecnP{%%AqIvUeRCN#BjZ9*DVo!Ro!EAdDw&|v{Q3& zzV!UK^s%Bpu9Hni|2kkn+^l5<=SveZkjH8M*m%LcBu9v&qc*)vqxs8wnL` w7{o-1w;oe*um?gDwjt1N}t06gl9)7A8}Y_M2rP*EroJ zi$J3-JVbP&d6z965aBRNGwwMxmo*WuhbRkq%;n4(OmcFzylJ>9f4f@W%!I6Q_ref! zxfR((S^OgMv*z3~C_)vc9@;eH*R%u~#)~JKELog*h8l%-1|F{2ELXu6cRXPlOm1TZ z?Ak7ajuu}VD?^AOiMwdba@MH&nnVVTdGGEuJcm| W+CyUwHlp~#ZD#% z{O!&wk2V|(?l-wPh576)#qFWjSSM=vo-j)3S;?DG6=$85X}nDLUx?v4w#-1N!lZ`8 zijmbAWUa;bu97Cg(bZ%Kt@RM`Ab~E^^8z&~;rqyv2CPxN2wCTyMEec;kPrCZrP2l0 z<|v9yNGdjMN17$hsud_MFcg8W_7;v)yUV8+#T}+?GYcHIl4yErEfNVO83y#V4_|?^ z{lu-u&QdF!_BJ>9_`pA0$!OJyzFIE9wnn=Um`rp4L)uC_=Ogv>oC~`4`kq7c3pe?> zJI-7|V)w4;b#vV2c@R7bGfYj? zLlM?|?l{Z&K`L4dMme#$oj3-Z$Qi<=lx>gbk3eq&J zWp58Z9+HpHj!*@yu3Ak-7i#u=rd$3L%w>T )pcB3nl46sD(gV&%f0I zX!5`mn&;$6K}t%$*;&JR!p&Pl6V5P>v#azBF;L*}uzVQFg8&KVCOs{F77=;Rh}KqO zxX @?!+-2w?|a9sXLT~_$?59FsSl8^|JdgIuo=19cZO6}ew=9Ij1M{KnBUoL z-}z9kIQBgv@tT@?K?ODEDg0F}KGJ%AcvyjT{rzY7xhpZ`xLS-GW9}3T$awede3_fL zyLDWpes$#pQXo7Qy@v>{%NL3hYx1S|vq9|Nf_{2$xcp;)D7{MxJz~Cj|933AA-(v3 zar^l{CTT&P3eq#t|Ltw)A0JdnY2wlM(Bkuj&*qM>UKMem&!Q}=x7?q10_J3Y@7W&z zx5rvkR1ndh$Aa>i8UHv{-N-Hd|Ca$v@_$~C33{lB=jhv>qN0#)v;;)f-Te@s{`W2d zw_okSxA4L(O0w^zr&G&ziMZEXF27susj+|c>h=)^l(|v&*G*J9zM_&1WMgBqd}-2_ z@+%tj5oW0K{IC1vCwOs{FXws9ZeW`kH58`%9`^BLsK3XN%s-xnY6N_=G@^z4L{z+t zRrC=1O{>Fmn1s)A@*zlH?~an|fM+xwO$N5j-*0r$MHW)`IYfD~F-jAd4)#V5#23#R zbd69p>Lz3b@%=Gwzad@os)E+BZLwxN+EPQPuzn?dV&WN)`TYHeaoOKL#^my<(!6r? Z`ljya(KtwFlJNJFO3&5gs%6aI{ufxv=WYN1 literal 0 HcmV?d00001