From 183135bcb740c273e3201ee6d0e3aa64a86a83ca Mon Sep 17 00:00:00 2001 From: Daniel Egger Date: Fri, 2 Jun 2023 14:35:08 +0200 Subject: [PATCH] VBV-409: onboarding anpassungen --- .../migrations/0003_alter_user_avatar_url.py | 18 ++++++++++++++++++ server/vbv_lernwelt/core/models.py | 4 +++- server/vbv_lernwelt/importer/services.py | 4 ++-- .../tests/Schulungen_Teilnehmende.xlsx | Bin 57299 -> 57558 bytes .../importer/tests/test_services.py | 1 - server/vbv_lernwelt/sso/views.py | 7 ++++++- .../static/avatars/myvbv-default-avatar.png | Bin 0 -> 39577 bytes 7 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 server/vbv_lernwelt/core/migrations/0003_alter_user_avatar_url.py create mode 100644 server/vbv_lernwelt/static/avatars/myvbv-default-avatar.png diff --git a/server/vbv_lernwelt/core/migrations/0003_alter_user_avatar_url.py b/server/vbv_lernwelt/core/migrations/0003_alter_user_avatar_url.py new file mode 100644 index 00000000..6df2d2cc --- /dev/null +++ b/server/vbv_lernwelt/core/migrations/0003_alter_user_avatar_url.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.13 on 2023-06-02 12:32 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0002_alter_user_managers'), + ] + + operations = [ + migrations.AlterField( + model_name='user', + name='avatar_url', + field=models.CharField(blank=True, default='/static/avatars/myvbv-default-avatar.png', max_length=254), + ), + ] diff --git a/server/vbv_lernwelt/core/models.py b/server/vbv_lernwelt/core/models.py index bd687d08..c1a09d96 100644 --- a/server/vbv_lernwelt/core/models.py +++ b/server/vbv_lernwelt/core/models.py @@ -17,7 +17,9 @@ class User(AbstractUser): # FIXME: look into it... # objects = UserManager() - avatar_url = models.CharField(max_length=254, blank=True, default="") + avatar_url = models.CharField( + max_length=254, blank=True, default="/static/avatars/myvbv-default-avatar.png" + ) email = models.EmailField("email address", unique=True) sso_id = models.UUIDField( "SSO subscriber ID", unique=True, null=True, blank=True, default=None diff --git a/server/vbv_lernwelt/importer/services.py b/server/vbv_lernwelt/importer/services.py index 0588e84c..d75fe9a0 100644 --- a/server/vbv_lernwelt/importer/services.py +++ b/server/vbv_lernwelt/importer/services.py @@ -43,9 +43,9 @@ def create_or_update_user( user.email = email user.sso_id = user.sso_id or sso_id + user.first_name = first_name or user.first_name + user.last_name = last_name or user.last_name user.username = email - user.first_name = first_name - user.last_name = last_name user.set_unusable_password() user.save() diff --git a/server/vbv_lernwelt/importer/tests/Schulungen_Teilnehmende.xlsx b/server/vbv_lernwelt/importer/tests/Schulungen_Teilnehmende.xlsx index 4674281cf4b468e9d56125fe291d0fbf78cc1611..f2f573583f24627772d6f56ae4f9917bc35f8f4d 100644 GIT binary patch delta 16178 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 r=wSb~M_n6{ljyp?g7`m4@G}Qi{!_O)SnA diff --git a/server/vbv_lernwelt/importer/tests/test_services.py b/server/vbv_lernwelt/importer/tests/test_services.py index 3402ef88..c39aded5 100644 --- a/server/vbv_lernwelt/importer/tests/test_services.py +++ b/server/vbv_lernwelt/importer/tests/test_services.py @@ -31,7 +31,6 @@ class CreateOrUpdateUserTestCase(TestCase): create_or_update_user( email="daniel@example.com", - first_name="Daniel", last_name="Egger", sso_id="12229620-81ea-483d-8d96-6ba8be5f9eb7", ) diff --git a/server/vbv_lernwelt/sso/views.py b/server/vbv_lernwelt/sso/views.py index ba0c208c..98aa587e 100644 --- a/server/vbv_lernwelt/sso/views.py +++ b/server/vbv_lernwelt/sso/views.py @@ -36,7 +36,12 @@ def authorize(request): return redirect(f"/{OAUTH_FAIL_REDIRECT}?state=someerror") # to be defined user_data = _user_data_from_token_data(decoded_token) - user = create_or_update_user(**user_data) + user = create_or_update_user( + email=user_data.get("email"), + sso_id=user_data.get("sso_id"), + first_name=user_data.get("first_name", ""), + last_name=user_data.get("last_name", ""), + ) dj_login(request, user) return redirect(f"/") diff --git a/server/vbv_lernwelt/static/avatars/myvbv-default-avatar.png b/server/vbv_lernwelt/static/avatars/myvbv-default-avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..684656def5b9a3f9a77516c06f67b7808c77f5f1 GIT binary patch literal 39577 zcmX_ocRZEv|NnIybwnMjvR9&%P%Yp zZC@UKe6R0@OO0Jk4z+2fs)lN_D#iS<*Qj-FrR*Bp{kA)Q(|_Djh+Fc?o}Am~z4}{V z3qo(6&pUn-yJjFMW?bI-L}4{6O_N~0=ys-oW^~OesCjOS4m(26{_UfuAY^;iy}0P# z34`yChKJWP%HyIe^x9sGUAt4NBeM}`HKR>ZgidPqvE-Z?$7HPfY z9J=UxEu=|rF-DLX`O(uUAip#;Zz)`}LyIO8U}GyBVg$x;gXfj#iDN1oh)l zA1{ofarrv+d|`=Y!SO!V+A;NIs>eKI4?^EbBm&Y;uHUA8+mXS1mACmo(9hQt;rFkH z-s6$AD!k;pF!XRA- zg#o0`T0=n`-sbmsbQCKN_&EQ(NuYie#(vk7SB%}+?La$22xA_LhM)bg;eN?wMn-bw zcXXrq2u2i5Us{&O?K;lPt%!vasN|!WaPor|y`x~plY5>5d@hKA1Adhcdgd(nkMl8s z`V_WFHDfev@#p)OlqC9K0OeFi+6GiinrR$IMZUl=BJlRQV6SLF27Z5cPLk($*Vcs> z5?hg!B21)z`&`7TY2p{e@SNkcD<8@@4FuMx7a{1FQCe}dBOn}7N%mVhWV?q#ox*vk zVrFonfznZ1aDt=SiNjd z2ArW1h$f8Id93Q&%Y~GRl-L+ak)`$@m zO`IMm9Vts;!XZNt0+T0s5gH?v#s5U%w4}v=;mW&n$`$#DdKoqrKRWoml<}kf{8p5I zID^{fe#B9ec6XbSBC@(VVJihGP6HQa{c&(%Ht;)qm(;75vR^r1;srd}jy z{V>eib1*}JS`V_ou%k8{PfD`C!bchc;>t^o50rcsbwPgb9()h}xbRYf9=$n1BJ?F~ zTL^dcw>^dg?KB%C9I_RV8k|txH`xwR+1_3vQk~#T(K?)Fle_hjaOk^}=91GUC8)(P zt$un=V42}k(6P=o9BSsgvVMM!Z0$`jIS7Ou-B}y4;Ab<2(8jL9j|=wa`KUH9SH=bT zYdwdCO)HWSdewh=KykzqqbpE>MrR>esI_ELD`No~NIW3W1j0p6%7guIUesT05w4BE zqcN$B)gkxnVO4aB9mhw~+O_+mvsmxpeUYHiM>BX9(sFf(q#v-grq4csW8K%Mc@S-f z*>{4o>_>d+HlQhqwFZZTNIC=^cHqgq{YGIeBKP6=$Df=ii#XVU=Pfzf1lp}uogkc zr#$E1iLzFT5E?s0BG^9%p*uIS>k}`c3U1dJu>{-&@=(b@)2xH^GyLj&w+`ZvARF;O z?}bTeG6PbCjo3%P%C{UIDIj%vieLj{RJ;4$aVZdK^fdN@a%%20pI<8T3kgK!^8GO; z##)O*IbVqCY2_Pd@P2{{L!{41WnHoZlQ(YScoCZC4sYt_P46@>VL|yPNrXLn#s^vs z3e;Rh1VmND7)H?KpcA|UEB#>{tZ{w3#U7!ev10=d6b2jbvHaeyz;d0v_60kvVsH3b zK91C>sfzLD1mi^d;h_45QlJY?Q+H0&CkniTweLNRrftr!Qx zza~B)>H~q@_Rjg+6A`jZJgMv5uf%|u>Q4~1AEf+n|I!S4LW?&09;fv>ipY72z$bNE zwKWw)GL(XU2;W%-WPv>7@WM+L;BH{O46I3f6-8`f;iJTF z9eRmJNbRQQuk|YtsR-uu2%mS{HcSC0M0LFHf->^JUYzKt{vt9S(qvJx8zCyU z`*~eg@C?jKSZL1ll=ySLr|nnv=D)}S($k)r4yg640P~9iSY6{8*|W5Tqw$Ek-|9Jq zI@(4Zfju0c?U9FRxZaY8sn|(0#qYyOB6l(Up)vxA&t1}|Zxyz9)DLbKGMWxZ;@|xh zmkcN=vS0i@aLTr5C%kCoz3BDFlSUDuj&nK?{sRBWA#EE2*Y;aN!oV!F2y7XWKd8i;5}X%M(>nr0D|c_!6Q59qq>D; z#M3-&j48-+JTl1!Gxs1*w(g^012}-xw-Z3AV-Z1L6CMP86*EeZ-6T9UP$5*{ z?lrp-miQKiA-~XVda3y@GU?%i+}rGWZ-wr|j{$iRogx;&@^-MzmKv%-I&0p-rVl^fY zlNng(YvYA4F%JH4RUbJ@W`ddM=Ax5qYm-y$OP`d!{~Fx-P$`dh0uCm*t4tNzWxMo*Csya@<{Sg@z)6OVEMSoOpo z0QqP)>SU@$N;Elem#{B$w!^WIlgVA)=+AzN(YpGmVIL-v=vGVCYB43e>XR6yzCU1F zfAr?*_J4`|7c+|~VKQ)VUrrh@6zwvpP>cr2Z8`Wpe&R40SdOCS&pKsfwNhAV)(k^A z+)?1xp*~^R_Z5}_MHL3v{?TGa?i4?J4jUgu|B+P_{JDj5f9o|VO!napGDDsKvW38gdfr3f02hN4W_&} zzB9Wf}$0iVIgR3DLiFSjK?D83@HoT-n$(HVY4Tih9jrNF=nGYrC0&Q2k|N|yQy zPGD^{HaF2`rQNS|Q0JnxgPIl?pzNgc|9vNNC+pai)|({^04yGc`5L}C*hzjV)ER~%cWshyYKst`)1G* zg*IB=`k!F$)x=?LlZ3p8(U82V%@s%tN)5c}qcUXrv6BQoIU$VV=w8RgJ9RrWRY_HQ zH|Z5G$}n8CO?aXRY*LHHh}@=ZvIz0KG;_wM_*40Y;!ifr+4q>2U=$I&zRWoJ1xKeK z>N_Kf`CtfLXxyu+z{u$kT!b-=`)SiH43m*y`9qORyP)QqfV@sa@oM@)(F>dCk0M)A zJoYKsmas&gBn1~JtB>BvUz`*;vOF=zmV?+Z6R`V97%nir6JMRs%6jpQcN$< zzCiVJvQ;BnH97A0vDOPyft62_q|MdlYTGXa-uTGo^% zvD>BmyQV0ou)s{Xalx#tCG*_v@hWx$FL#agy7Z2womNs;*pd8D@gWkPGFYAdYR}r+q(5{35`|`Tc z>#eBYacD@r%#EV+C@8uKW+2xXA0dZKh99!|`8O~% zq_fnRiho@%hQrFI6KSUjQD)BSji=*1=qUtn0wmNGHCu7$!r{MxRu}~rW>&b&f+J4{ z&ULKY>jrx{F#VoHMl+gVd^#zt`>Oa`dDi&5br|-m~*sN zh@PUBvy+JKpOjLQfjEYj)*!FOQqKoo(f{PlM{7D@skU21n#`z5g)qob8*(yknjH7q zS?do)%sY1OUF!l6V-XeiKKT@85TDlrXU8+epH{;#v|9tqd<@oJWh5ZwyOs;u+y16L z{^6S4vhZQ%a+W#Xr&jpByo~$6lJQ#1}ZI(SR9KQYHp6 z4wm}nwZ`=?auXG#kGyfM4H~Iwzfk66+eEobYQ{A7dGAP5_zL(xjOh6P@LN^BB8GY*6Z-@^PAt8XSm0kN_!o`Gq*PB5oW7^*yV$5 zx6zesk#{B1F0U~2{*?4~KlLam_QqqLz6U_0<#pE&-`S3#{K~r&4VL;Hzq^j1)}1Gp z*70ikBU|ZxUI75=# z57CtRaxv(LiGo?r;+#(H3rAWsCd>OiHml3=kup~=J7w6$4expNglc=XqgrI|4nH7` zxD$}EG_E&WVB=T(urAsu4lv@~J-1*`c)+w|C+e3IweW+qN=7HS?h;t?_5p}1rT9ah$1QMI)}>K^aO!QInacbXwUzvp zr8RL+recvp4&7{aI%XBBGF3dz)oQl%(}DvP%Qs^LehfXRDQehwae2OBfEFirV7E-m z=n}cN32Tvea7vm)u00!Ge=! zS!yaQ;OqwPy`&46LqqMEG z&@#!n;ZDUk;mAj)%+^%%^D(nr2%9MycJ#PBmJ`Qy_u8ODz+tv)5AzRp&X$2p9-2h= z%bTraR7u&mtV?*4a!eKSt730188U#}JyDF%mn+~;qKKv^6xNM)4MjG*$QX9as4Au) z+^>;*ZlU;Ar1u7wnvA&#b5*eeB}c1H%Y@eLRrI=AAv|fde~#bOli0iRI{WrYOVaQW zH$b@+~q|o;Pp7p8Q3!n;m)}i zMJ&eP;(VBI%U!(9cqn%8Y`Os<3mt$99vgG%w!S&X;Sl{@$bT_}kCltbQ6j<@=cNsd3U0h(mT} zZNSn0dJK3N42J<5Pc6Ug{t#*x`BZVi2c?YCU=zkNdyIUB1?& zpB>?~DBqfcn`+#8rh83|#EcTh(S6m{E~OvSm7{!4kxmn;XC9msR*?SpVOTdnC<#Bs zl{kSDj9&@(>4Hvh&Q#8g$J7m1eU!glvNQCyx`q)?OP<4rt|RT!)guC$7W?O7;WNSi zK2sKsU-82}llMB1oUJmS0WP2{neiM+%JpPuT^f4>ZZY73s{m`g=jYps=;OF&ns#r` z60h($Q82P}_1P=sdMr%x zmi^x}9m|ED2!ZJz->(lY0EAF?Y8GYJaW9_yvI_Mjqx*L`F4Bp+s% zECIkLxS!{J00=)q_OoIb+GPSdCxcm^(O%_GDf0&oS$ykN<(_Q+tS8E&ILK0ZR95#QK24raQ=my5|1p``B;8m2J0>mA4hh2f1&U*Pu>j&BlxeG*X}5pO(*=IUiPqDHu2$zwSsFBKD8k-=@gi;-(VD`shND^Vo&@uhKb%GRkx}!Q7OHSgcJg?Yl zxBVr}J=7hX`#$ODlVM2u|GN`Z#e(&5c7@qW z^~Rg@4^4=RR(Jk*mi=26Gmogs1pNfP#-z>G?G@x-%t{z|SnFSZx-O3fHWhOd3j;{v zkt*7Ng#ZwWnh|t9=fTfd$5%z~818kO&7NZp_Nt|T;8m0tad~{D;KDmZ%8yam#@BzY z*FT(*IcP8^=UoipJblu!p43ANg^Hyn4ucbM!;5L57~fv2FV*;p4aIA3F53pK;`&PO zT5n4ARCh>t(fVr7Y5 z?Z-9ShK4T=jmc>LJ^zKITqz>SSAnrzykU<({g-_*=$t*|71p$?N>#x>u;}zI?M#zf zM*oD?KK-x)aee3Cu0a8W-u?j_Kzo58gGV< zr3tJyQMRG3ri))KpY3d?W_idD8pxnrNZAaG-FBaTBU&4U?|*AiQI(hUC2%9fd)5B| zwzF62thPyKj>Nw%Gg93QCUSaP`S@(?z=g$5Q|um!s~La3ka+=61=jJAP@po7@4r#- z_3;goo{!2ioK8u%O2_1%mib>TgOyw5dT99lb@!KMX1}d;>2s@b0D~ZCHBtRT=LS}1 z)4ip3SH5@Hr>G)f{Ea@|1E_3cu<<&jdjDhp>|~TtfAy>FGqz%CmY)|JKK?j35YZC1 zBwt7*iu*VT8nk4*KUr;PCqu4`9(sjORSh1dvpl4WE1TM;iKPJA#z9uR;Ak)%Q$Md? zipodVF!sTp!!TAyt*K<_8RJmMrq+0E6wMrK6bXey=BZZLZ*-A>CnPtxXDa_sJyMgu z($8YaLP*#Vk&7Z^BZy@V4HPaB$i?cH$lI>14RPc~8}5BVx%Try%^{=9`W0Ev-0%?O=$1i9=B zPVavL7Ky*3I2eHxzK}4xf^jzC_0w_HL$f%tZefyW<7t%B*%PrmTYF3{3x^3?9>rm3 zV__R%FJWOJ1sy+8soJiVLQqgmo*_p)A?Sw?^lifcgiDYT3Y*woKAtfSdY6Ml4Cs;*mr=hqC(cQ83Ia#q~-XPX2Yz=yKwIkSXC`aH+cHoUjL` zA;#f-VrW$cQc4@R(mK+S4r084tm{whX#T(FDX4kmFqzt`x~qOT7Qer_CxSR~eLe)1 zZPNev6ddXgImQ0AD+G{!juHvCRJsz?#chmKlQysXmp}CO;_Ur@kZ0Gdod`N*{Eb@{ z#g5`)CXP{c`4rrAC!=#+GaT=ZW*U^V)yg%ZuDoBhothC+nJ4X{Z$v3lEq&kk^S`7@ zq*YUJsB7x}fdAul>$SL-5;)S=jI-kZX|<;RVOOL)bc9U3rpj91Xe=Qyp+wN3>x`(d z(Qizt+^X1n3U42kNuJdUZu9IGLHj5iM-paWXc+TgmpjqqJmfLnx*Y2Q;mx}>zz0&o zqI-}{1GaG}O6BO5z5r3*B-2q3(rb5OJg@t; zK21z-PFU4)*tIqRKc#LcbWq`2JJ7reqq*tmofUAhfKKs$t$CdWc@>ZVq>1Bo&u;~E z=@iAzcVp(xN|kt71ShGeUH-4vuh5w6Mikw2?K&@wRZlTLKPDPi6xmVlx06$EM7>Q@W0AgA!WwgsHfU_EXzHSsB5 z%r7HSL}Hu|k}|8|DV$&C=TX#0uPQ2?hO8Y4eYp~iTSBYTsIgFUR%eFH3{}y3ywX0O z8#P)VzwR{T7n9wNqMNUNeOhaOAilca#sk$X4%m$!_qP3gUljdp;I+$}c%Z5!DvsrS?l8q+XP>ROB76IHg78#LaWVtAI(P=@2oG?1o!7qfpK=huk#bi1QP;} zT(R_Dq9B5XkNsin7&%JzItZ{*-?iN-GXMiNdgdJNRO=yux07>2i&0_#Aq;T^swsJ~ z>^L$pa4*Vv6gXJNWk)c14x)K=A)){A#flUS#B%=pjdP=Tw|>VZ7tHys{=Wi3r4}a) zjxziOxzWhamEA%}HKFY3q0C#Jq==J)TToj?)gC3(-z=dP>+{t! zMSRCTkOGHL~TMLVWc-ZF$u8tx`Imx_E_`>I)Qb zcwXw6-H%igL7j8oD#a^0JQbjlt;;sLD&;;Q!2!F-oNwD?i}4IW&0LKgRAc=Iy*IEp z<`|{v!}L7lyADOF)B(ArGH+F987expd|pNrBO-~dTN`|<$@{u~T#@VLz3X;c+bRpxck?Vf zMhr0p&|d_lwPj5X-5Z@;v!H0mKFY>!sJut%BLsNHch|Jm-c0I$>GyawmRt>4r^9>` z8)c9W_9{ZHQ z3J(EKiB0wQm#*x%a_-j~86@-5qVb))61_oP};d9cO$y70S6NNXG26s0@ES6X9PW789;m zclPmDZgF_D();9(6aIo}=VdFTbF$M~f4BMZ_=5tqQP7q^vyrv6XYSHTxX?9Ly2qli&eq#}!W=Y%SO$~_7rD*yAO^Iy1mAqL$@*`n9d zR}-uIQ@$IQWI%cttgmWy!5SBoP^7R)A!NHOtm#r;x?Ne0`tG=-5CJhS?D9sM*!#vltFY zI4m4Pal8tadJ9JHoY);jAU<~n32eNnIXXo%gp;d&E7%r)I5@opH5pwL%58~GBVvwU z!mUo8u5;~eN|KNRxf0ZipK5(9cM+qM)|n$#Kk%FQpky>UxP`^Ip!*(w_`w#)8aY?~ zJNRRn@Ti!BZ|Z7f&=4Z+;+MG5`tr!n6O%`#qLFG%iDLc91|`sFIdXY4mO|UOvj%ZC zG|s$~K}A{VE!t;EgueIE!Y($8JF4#|ClvNdlU3C*WmSnhLf%THw#kZY5!5ZQT=S9H zf%%h9n~bXm=~=uc^31?u5$D*UJkhA7GiDY7|`sQXH9-!d1|MD@(7eBM8!2^LSI%evCtW ze>Bw5?7inJNJv?1+%s!2W`b6V=%&ln`_iv&LhkkVd?du_JquVh;aum>Fbvgw^KoBs zL-zc!c-Q8sVnmBHRQ}~c@SK|U8)kbGQhQ_Wc?7fc1kvX!SG7wZ@{7(gP`YpkuP|7L zTbuxgIz^-CakY8KQY?2YF*L)T$BZG=oh zs{4%`Ke{Xb#Bvdnt#v z4X^MUve%z~33?k9yJ=Mj3q(o?>i~|dc&$BLCR~KF79tf}9{FqRPju7U5sOC|ITVNI z!)ynR%+4=;^=VoEWIDcbEm{j`cyp9-d7C9`Jy>&8?Q3z&NDT5?qhYPu7?~AZg**l) zU@}3vx`KOILz+-61xwBnFD)EUqz45D<(+!zmw&C^KJ#&;Iu#OtvKcmwPd>9XihSA! zw&-7_-TKBTp!E0iGjqe<>mO6rdaR!xVftGal_&l$JoxB4Rz6go2z_O2P?Ei*qs=nA zalKxNz_Pz{qSARfa1rdz3yDuf*VWeSHw+CRjeKyz=-2ESuU4%X%Sg9U8sUWlx!Cdd z*)tftsN8rnTkrsklX}CU>8*$KrL;8+em#*9zXWwFm1;bqw~9(4pHR9}Ke@M*&dUSk zJh4ic=W{ zdtC%~ZWxwM_jXOqO&)^$O!%D#FI5^+lMgwlDx$V@4T-I@<#*iOb%L2us_{nORF}8d zD+m z6WULhzvn~Z;k7r0V*On-x-X zTKzj<^7bLKHcy|q;aOQeW&Ouk{ue84Jk*_hThD^V`mSKQR+JPZ$j^gBHv3%bb|t*X?-l8YB=o`Wc{p*5h5t*?vbM3Z zN8=m?u0@DExKkfb=XNB%Y74sb7+x#4YedYYe=viJa$Azk3fz<^`gsEOYZLNv)yoKx z=D>;Sckw!!7`OT_2h`-U&44+p5UNQ_d+O=A>l8tWi)KcLJV*fC5Idh+W1i!0 zWWfQZQ9`^_OjvL+GlR%PsAQ0ox3j8;d10exNpT_ytNA19a9cOFoX=k6U-XCxvK6l^ z>~HVA)J;J-XAOn$E0vR*;GRss@6yOCj zhnQxWiO@%4mK*fm9jx7cwT3#vjAFdX*vxMndPA8|eHd7SvJ_Qb{sfw2P(-atLPM-S zxaWfjGLijo%cPgijpg89=!aK4J{1l>>i-4l=~x(*gKW2VhTdgVga;bl= zth^i12vDA>rF=t8J>aP|^so17FLRs2jRl>t=HmLsj#1m8_%amM z3T2bZfbi~~>)?_{`jh!6S$cT10!5M5-oj(}A z&(jUs&zXUTxyFe%9>nr>?z+|#@3}D}ke@gz)CiX-l#@CO3a@v+@qvTK?^IXe_kk-H zLRgV+vpR4%JxI$ctSfI~S!L2~ta^EA!Y*Cxie1hDBy0IZCQ<^2&OMv`ec}xfvvHwK zmpsJ~QYnH2V_nd=oTp9awbd6}jn}=Kyjo+n9-uQxKkZ>ppzYA|wKm$NqA+xs1Ba%n zp!$)?qa9;ux#02YGoQcA)IVwHzAXx3bwxz=D=P?i%J3KtJ;&VPo!LR@o=J02n!m|+ zr@z$tE&#IxHpYv7mMFlFN2>i@z5#Csy=?jpje;B1q7-+a*dk`DvDcYkZ?g#!vtTq7 z^*ca?bb{XGI$Xwe2Xncj)U9?s|DX!m`r_GwR>a}gx+R0`UpQn^&8uAIHm*kim3O2b zfMz!DOHt3#$K#zgjv-DLU@zZ9q4!~=0$mB6sp+o@N#+x;1Gt$hLx|HJ118L8#RWWZHA$@)OiI4iAgXwDVo@Pq@ z^UJH^$Vc~(V!K|JaU)3PoA#N@iRM)t9^N&-mMHfXSd6P}?GA&+T-tMWn3)Z(jo3W9 znINucTuPnze%pP}oL}cxP+x5z#{;)peN`Q~PLDb!OQdrK>2wUMw+*4L(2Q9E{2yH~ z@q1gN2xmWhb1}oXlz+wXM{G8n$Fgt0oYLnz`382{GswY6@hjs?5yw1tfoSH6|*&NHK`HhK9HvGaFMi!m`h z_bzbh$TpVsR<$qW@UYwsgAARde0zcuV|Tx{AT`j)Ju>abc^j(i~MXQ>7~V=O(u7 zh+ciLOpNQpzhdhybO^+hk6T?GHc=n9IvwmSzVc$T3r($Eg#jsJnc{-=;C-4A4p=p( zpi7`;TRbQPEYDK{eFlQTldtDXCz=2XA|(=UeCcai=y0Gb4NiGDHs{)%w)m=YbmRD2 z4RSTr#$X!%D%Ko=m$=g#>yvNy5~oRCG!#ei9}ISM%QSf?neL zDe|>RrR;o+Zm{{=eSbRP$j2Lgf9H!54R!-7%H8~QJOU=QY>nku(z*Qv>&#kdRsu(r z`UXlV>q%X4V(yVA4cV#Y{qrz>y)%{$c zk`?u|Y5QEju;#U|SLTk-+>aez^M%flw^*Mg zXmtL$+5|nvt)8A+RPgAYUwL?M|FeZ=6?yBDfRLkKMw)YfGo@5BXgW43STxr3O2*2? zTEbzz8}Y_X54L2-DqpHwT$o%=y*#*bA!hN_)^WhQCEtg=Zk2DCJv7@r>MTK&sRAwO zHBLie^s_fMSIL?7_=P#LCSJ*k^82cTuDSd@CnM&aX%MQIGktnTqw5>KxcwxXjB9Hb zcD!E=a2da=?!Dl>?mz4p@ah3kaBoP6OV|uPtm^@0Gj2_P@?MsEvL1Ev!Fh4t=l_^K zxw%-!tw_>EUS1G3Y~JuETYelp-fvo;DS05JnPRrsujWF z2VQdH3#Y-5rj=PDY&qer*PL4OLizI%Ab5&KS~2kF%6T;$X-fwqSILb5Flsl~JrP5+ zP2y8<4AQ*e`=q*DC&ur19T4l?3dVz{yTaf7)rxe1z#HMaIfjDl;=&UC%W#%?TXOka7HiJ{2L>;2KYUygimZ@~=4>ZL0WMdR`I zu{Kd%*+yxrHFvqCLmpQ>m*wdca$UILYN z$S(h2y!X==OA49o;L`s{OSTVbdTWtcBG3-a1cGc&1{*4P8#rWI3|+0kPlBZ+j$uWP zcVlpsL}cYh`h)X_e4i)v#6aIg{?7TQ=NEWMoMF$CtB2#Idx*4i3pRP9?|&`*)NEIo z`95lQW!6blX+3cK*@qckshevf!IrIN*JR0O1R)nCm~^hT0c?|$_0(+Xc^m79B+$V> zwNAA7tU6`R@8c7cdYsQrxbsHIAUEGC@rjBq)iIFsfaaq|gdWBs?v1(4(RqL;Bbx^N zp&d5sXS!`e@cWsXu46owt$iJ zzOG}qgjjs8AdxyAekkAS`HIotH*)FdduXnqNdWsg3RgOz7X0P40Nfd6$kvs1PUD*m z;opuluTIpHhlVvPMf&&-Q!B>kj z4M}(V8gCzz=yo=40-XX%hL5zr?H;~>^@k|98*M}9LiZ0yhH=+lWg*Zks}08)hakw2 z^ZYSj-}C=@g>r{HJG!@VfEUDq6S+B}i&tR!h4g+v7VCc&%mX>&p2@Gkj!b3(QA>5_;%)eIadF#|?SzAW*GZ{e@}p%~bC>4N_OwT*V8#5?5YTy4m!;#JX^r znvA&IvxsixA9azSzBMk3f3Wu6)X;iw0c69k7-eo1e8raQ>6C@Jq*Q6^_m)3IwBEYS zl}%xNbBlYyHR>=J_au8jBdulxLZX+NPiQae5g-JdIa3<`xj1FgcVF=&FT;xowXv~R zcHlHaXMLmu9%-Jfo!2_kh4cCTE;*oB?|NM=pTWoFM9})aTo8XK$XM8TNAi6}dk!A% zlpACmvRQA&p-;bg-If$oW~ljgzi^lKfh8~Wy76rIi0D-h4fg7ObgDgr%e@lIimCT% z;HXra504HnI8v+)(!oi9GO8e{F#oewgw(edZAT4y>g}jQR&^~Wv=@!HA^HI6z+@|c z$MMd!VAuwWRHwoav+XUyVd__nn%Nz2SySg~rJuX{%ju0 zW^d#naF!+Ui0%xb?5L;Y@o&0tK@CZVNPEH^9%_BNhumPjc}1lQ{Full?P*p(t=;O1 z&Ks;?+{wr{A0$G{CZR7Z^HIW-hHNA+Y4%*{9{2%wH-WfKvMMy1#p#fw6B*) z9{EKS44vpKs-$c?1C9S@#r^QeKTPIV&rTB|#8Q;c+VkhUJV7Uv`z};jpXUhBqpT=d zr{0}d;f3oCv~=gB=s#%53NStk-4HokD<@Fj!{K)e6u#LzQ^|-lCELrMdDwMxgBNYT z_cU&y)W+c%d{_2RS|$2t_w9mtdC;mfe8dCe>fBfx)~K?-(~~FBxpXV4xoNpIuH(cYcwSL&Finc=PTH<46W@4(z@iXG{B&#<0z8ZjB669~e~%so+>O{A#>YoN zKi^@uK2m>nr+fY{pt}v0=B30I>PhR;>spL;r`XZr?G~cjD;FTuxOH*w4~gZVtVcy> zc92eQ^{RqukG$aFX#t?Zo=^FQ7gF@g=Eu4c$ibfN&_UD36tV9G5+pr-ydh;*U`I#N zw=Uk`$F6U<)&{cp5R5A=GS+}wf#q| z0=U-Vxt>4-c-;#QFu*J1@no~ir_+Qd5R2u;R9M{$iG;nt>t=;Jk-ob+{vNdt8GVK>)mAFjM_o7K*oLIf?%p5~_(*?ND-z=x0eO{~UQCa< zJMEzH$@bj)Fos>GLDV_Xt+PI9dr*AKx^ru<)%ZDg$*dfkqr0ev*2hJ2qao&%R^Pb+ ze}95SUF+@Eve}BNOyaO?P%54M0~?%YyDo@x&7KRZc-ZTnbj}8qu&&!Bp%(4(uNY}N z3dY~YyAx3|mK%Q70&+T2`XOy{tx-=i!twdN=XOy*mqcA*$nUm#{U@{Sd94{TT>I%E z-RNnhn_1XxSrVWQcTsiH%s%Fh;y(ZfFDNJY%C!CmG)1$b5U zUL&9wzdtH)<=`fiNfrZ`+19 zDa2Lp{_ODoUwo~Udsg6Fj@syNFe+IDJ;wc_pyfZhGf*fRHQgeO8`_zokNcjNjs9hYq&gM#!lxgG3| z=rbUFv!(Gv&~$4Dq_rOXZ&uU)frkC*=WwqSb=}y^dx##JFD(o!mdErweAIm$0NwU_ z=cpKJgNx(nV%r__N!lc*6G2LmC%7U*1d>5ll|#WqK~b5iW&J+4wX&8ImA1+L`jGmz z=X>i#lyezk%HeoCZKte@hqe3f9W;qFSIOHor8h7(+YzY$us=${$kThNL%xKO#xLvT zXa3tk2<7lW0x#w5l5J^^e$d?rNX_4BT6pP+>#k&0#L-*?*j!;wE$gw>S-!u#3e@5D z#buMt@4A+m)t^LV(IIOyv%#uLA{Uy`oiwhW`nm-wDDSK-n834&_izAvZNe?<;$?l@ zjFEPn=NdGeTS|kj%VU4srBNR`Ai;S|U#WnmgvPfHC4c|tut&pRGoW&{wc*}PM~k6c zYY%eHbR-KZqKY^mDLjuN2@8cm$#TBZzNzTDt{a5_^Xz_#BKge`>^!|D{CPPSx6*id zN(T$b7q=mzsX8yJ!Ke@SAfhCGi$Z(R&h|U&U6ob`aI{^30g=9egZphfP7-MW9Ntb) zyOVo6?aYph;7?#sueP;qgTQ~jOo*W4UU0s#?apzA|Gnud{Q2RuLxnI$s9WoYWF2U7 zsI+(q7Zb1xfZ#64`@=zVbMo15SPgC`jkn2b<+hi1N+OzwKuD8m2?NS$hh{^q2zz!O zMRR0X)iT;Vkvn@*3)y2gYEk5az=ed5i%}I2Gs?kqC#~NbYlRf7Zj5!?P{N#JCzdou z`)jt!^^Zx{tMO}2wHef_vj(>%a1>advXTiUeSg$=zl0&P`PC6NJ-PZFT3p=8gj9nt zdF8$f{xQwx#&lCz-u%i?HF<5&@)V~n5_4&Pv_u>3vy;igup2y)9Jw8LpZPp_`Y2}X zQSZiw$;rVV7kvIG>~2`d_ug1ph;x1IOpm6HGAf|$56mWz5qqa6O`%+-XoD9usGT5C zP37GMmLzvf$tv?>7S*)HaA*zVngpA z-X|ilqUulIbj<&ScF?BnfN@=09KEb zu(gZmQo2cxj8DR5cNQ-r?iJb(f(v>PChu;%gV^J34D-NrnXs@DznGwsp3zZfWzFwtwDu&k_*rRUU*44&)wsveJw6AEFVz8<7n0U z0r?pv1e{zqfB(#57;Qw{SM2_T0lg0b#wPw5!5^spg}m*ZU(;80;so8X56&?ScBeVW z1-!-96&S-Mi8{=`&#mqcmw0TThEOj?ru_rHRSJry-}E@?JkGV{58NVkJi=97oP4}h zfetNVlxpZ3IqdpvoZx{@rgs&$DwI=GdgM=>F5IPG_1_#M?%lPe7cbgHoA8;DvXuMq zoCenakEySYi|YB_zmy;#pn{^Zf`QUy081?*QUW5~C@MF zNS8>gl*CfP?_7L;Kd+yE$-Q^(ojG&n#B-jRC6VFJ3FbMKy)xs9Q~1sUz!cmX;Q>J2l}>=zNjUqlefXi32L97Ix+ zGv`u|A2-Z3r+-=reGo?aECvIoCDafdM)Kq3`L41Pje1S2;a}ttn$x}MQ+$CGeuFSyxP9n+N!i>EVkm1^ zWdugbxk4_WU3c215Q;+Hgd@j<|^ zLE(BB&YDkGbM>?zg;7#sAsYkYm^a~}q}s!c)Y%#N7EGEr*F_S)FK3FX*>B=8$YSO> zLKy|_2w%Kw`gh&DOBYK-yp#=!QcDY(s*~ zIRg#t6hfXYkrik5$%WnC!$UynpT^*B0NjbZe=wP1dvs;3tu@=xA^}g&!Gx`-NJvVQ zd4FF(H=E246Zwe@cNqjW`%>Pv_KSYGQ$83AurFTu@O;0F(^hRUUR}l-LxzyQfLYQ1 zwMk(I)^V96OkolQmMTJm1ikMJnC44^Vofmmh|BlX{jKU9*(A1~{g*hNw}{qew*KTK zvdVdEzFUA*@p1>#W?6%dbIQvSR;>0U#0ZpK=q#BHbz$V#`0)y9@#NiG!xsm#h@>v zgqnci2eIS`c^#eR3UnYMH?xR9wjOZwNWIeV`XUoTo~*g)EjuLu`a~uuNwe@bL!)>r z1imYoZ*B8-`T1CMB8A_D*t6)Ys=40^5?JL6p2(08@_?r@Ucc+cHWpMZzCMLe?gta# z_?3?F(_B)*l&!N_ILKIPDU0U26JpP(Fi6JHR3##xA2c@s_n2FH%6yBA|1<_ZMwmEE z#m9$lu~NeH@-jBwwaOBkWeCR2?VM>HaTibu;fwtOt6{M7lmkSJ*HOLf$@6N4&%$G= zt-J~YoC{uxG>B|HM6N>b|8zV)?pn`EWUU|1kO)1V&t~I$r^9FnT7m7Y(?#FG2NP{M zX-=1Go|?Ln83nJQe+|=oo=_4}c`LXi$JiE@xII4%*smDR%ihy*-Nx=i%$V35s1b8wqRXzavr_+-MhcH>kA4#puUS&ka#&#?9gH9^ z`)VT`P(qVD!tN0ANDggq1{Czt6oZ|$W?n}B+q9Bbpz{{tc0QWln$-216hBv_v)}e$ zKnSzMpMOKjT#w%+^Q&8Kxi+~shfs&Y&6eNHp3Du=4OIfCqSdHb9sIL+n+ zA8@+&t^LgNUj|KzO5pf;Mz+)N^mSU`=G5ozF17^vAxt-PE5u+G)g3hK5g>gkwhGg# zo=X0=)V_x2d3`>-kf0*foAoVb@J zbCaR%VEm)-VqX`Nx4fqB31mO7Y7Qu=&zW*nT}pzT4t3`6(K7gG-GcjrTk&VXPIzP$ zAt@al-MQ26R}4=ImXMPeJRm^_WWvm-7R4@#7$vWz-RR!X^qW-490BObh+H*?a=|h_!8XmQWrlHf+*?Y?ZJ49*-oa=Nx61aLnw2(vc533UyY~2x*8vR z&=bFWfz5^*Sx{QpJpoU;)v25um=#d!_GHMiR(*@7H@gZ}&C}Mr@)NMd7YnZL)|OW! z7jiKmY+BBS{!@es6)DaHC2ZB3lx#zoj6X)=Q?Pf^tzQ?r-c6MNG^{!e6UkWt2L)`^ zYj~vNE>Q}fV8Bj*LmSe)-#)w`ON}rt_3MzNq3ar*V|;>9PUyX<1Jbgf^w-TZdu z#wPPyMHx1+vM6JXeoi_{uQu*SI~`J4@z7LCHmZyc1GPqH2Q3g-j(IRGCq`h&Q9Mel zAI=N3S0$ayNIw5Qi2?~F=!(jufYT`;2=jzHm(>v`z2;g1FIq&BTmba1Iqk5@2q9A4 zL+}q$-bE2%3@RpqQ;$o3Sq&*K3_+k;c5Qr?9aUC^Z!wqTtaPRCV9dL?W(r1E9i``= z2yZsETteq6=4II?^*)|yz90%DM6dMEEp?OX9*c&49&N2|y(S#atvX&sD!+8_;^(;h zQaHWFVXuo$-NzBPW*MEG;`8|?#KM`$z%!cDmR|;ME%>&5xWbC~6P?V{U z`?t1==qj%{Msg$`zpfW|M5g>R_L@PYjD5)MfiJn{b%C2L?x0rqa1Gw7OQr{8hVFrh z3YC3nKV6aSYn{Bm;w=82I32?AuxdxT;;i<9c*gjaZgxuc0G8G()n)f!Ta?qV1T|uM zyugW3r`??qgGk;3eV6i-@kshLkDZr-M3Q0%SdRc<+bZ%X({mlLv>Q8B<-KhDxM%EQ25z#?%R|F zEnHWG^=8ty9h@H3sB{wsVQZ?@ddZsgU5)A-Xr_UJ(g3*4dFb7)GX2U!)HEh>SLEXI zZG9TC*RJKjGJWEjnqzm&NX|SPA6~>V9J>&=OCUoi#vz-hZ20Kz>f!Uih&{6D6wA9I zYDwQ021zwYU-+cswjDN@u7uiO&V$Kl3r8u)2c<*?wWV99bu=5 zT=v&Deu-+c3|L^!n2+xkY5y0q-s!;U<|sW>Z|BUEQqe~c@%MM<9NPq65WmM%rMiE) zobe{B5lhSV5(0n*QvRB@xbNgbQd&HP-|m6_;y|A1XI}vr{&^F|KRfIrt7*5=#-a-5 zV2tN-2FwY|$ZotKp@`%T*2$nk%o3eZ?`I!&KHQ*^N?c+^{NlgRg><7zG$mR|>TUm# zHNKUk32w1RBh(yYJj7$DIrDt$+m($Qb4G{guoCo=I4&)nBUO? znb(v$K37iict+(&cF@jRW9e_Ux5HxtU-UekIwkrwMhLZ-n4rmYM6GW>_FCf{L;+N; zG9NAuHGvn`uGvuiW>_LSm$X6bega{uH)-q`Vy1_7Hra5H6R6^T?A=`r#k17;hE2^u zoTNyul4_%gCI_hqQ%FIyO43?f8;oYl)pBR*b<5NaAmsN74$OD9A9jAGI**J>fR*)j zQrPU?Oq+oz%t_%;MaSno%W10i?QNo?32BWk+zFvcJSDMaPbKxT9FEb_%`x04IH`ZJ z7kf>|`JCVbSd#Klxw_yxh+?ddA+YBu+u9Gq=)fxLtVB5FX;S#%l<8L)19_*Hf*TM- zY_j`X+j>c=id5XNovBvdpKo^WueP4qjI5K|9XG7$Zy#o#WJAaWrMqO<@{&dG3Q!|; zmwW_g!n9Zh(gP}!ZpdrDz%$dIc39hvnE35e(d)$l8vDeN0r_zGPSZ(SC8Kw#rWV+P zu(hDg)=PC^&Z+>;aNT%yKI``C%?K&65iD(&=2zY zEI_-HGsq(k&GRQ)tApmGM+aQLQeP3LMpi7JK9cKr?Q?~PO6uGL_g^Aph|!UvFoC}{ z8BxQcaS~mH9QPIawo>5Ws?AKoBe}bBe;;YldX%TKTL>{Dbq=z8GhyLJPp14~QPEl( z^RJpO_|Yg;M7E??yY1Bl8#V(QG;jmaA_ry>GQMmTdle2pL{nYzM;EjB1f z8NXj|1Vu9ID=dXWnBL&ReglRAK7SZX*q?Wk0-?Wca+WQKarN*M{^>){A+FB|FzI}o zII(b-vDG3=Iv6r*t*tL-{3RRrrbQ@v?8qmj%%dyklrCI2NQ(gPr&O2t!j+h7E_TaS z>2=G=_%=8S7Ilp!TYi=#(S0rk{~A8}r6{H)IjF8&oZR&3jTl0c6I)TH^LG?aWL495 zw0riZ@VS=9$Zwo#&jbwb@8m({4Q;S?y}WTruR%QfF8mG<<6aFgIW_Zm<)Orb;Ls*hCMHyU50ed&q_a z$vYrSZv5vD8Ek(#hxe9MI?*y1c12z#h&jP{y8Pp?ZgU)Te)vZg*w~yi?pKBk1@E`! z97A2w{N6im%SP!jQzO$Ij;CL1pD@)VrqA_gNSgmzdBBq>t=e$GR%a;~{_9hCc%k4t zsKocBS74{{Z^JK~Vo&hhUNW_UbQX;m*&hFNk%Q9yKiXIu6M03>anzyiJuusfe1jgNnJS%q`bQAJ)p!XEzx#IvL1qS zMWT+hHJG!}v~ZZF&R&H@d2TpITM4y<$9*bZSpDd12MhY7QRe{3&dye8>}idyg0AS~ z0Pc(3VMxf4c}wNh^Ms=0LePKvhU~Z`jgC^P*Ns^rb(r*NzF3dn6ot{RgiWRqZ zZu+G?*QsX*xDY=pFRv9*7^~Cu4l?9#5y@pb{DpIX0H92W5OP_MBK|BH;??l9a``^3 zhZl40K4jE9z0J5C1_i0vSB!KEC5T4eE49`Szyl7Ozz~NjOlWF-5(GVn?j7F%=`fWZ z5Xz#krrap)upBj_m_lq#fkB?Bvc@2zcFc!HNz%Wrf(XMC+>5BBq+3j>k;P-fGSoF$ zJEIyz8U*oN>exOF9-M=}%9p`Q8#HV%5Y7V+`E~R~R`T*mERx(N7=47iceI!hp(*Kb z`PHEYo>KgUDIK!7KZwSjU%HIk4|f8utCpVJ^nJY;LDs-V+>NTu3s#@#Wbg)FQrEzwdhrvP&UL>+B~H<(!YP zMMTa9S2)7ScLxK>oSs6(H7Ry8GTe;@g)KS-<90Aafo>4wkUuAOo4xiG4vAzo-dNi4 zouiemgDzRl&$Xn4wNe@bID+^$I5U-B)DvDfoG@o1YxlRvIK6G@)DeX8x@3ZBysd1$ z>T)jyBAIp1ZV-UgG_}~|?azmE%{d;T(V0(mzGM6C;q;Z7KJn`jSm|bR@Tb{l(zV;m z;qw7AE9G>Se~X5&jh9ZYw_0=htVS}-c_=xl(B@8VVh`88%- z?`4CSj?36uU#qzXIOopaIh6~4ibXOPd%P}fJIBFHmEFf zAt$oIE@y76X9oMuIT!i#=S3dg&oZQAhM_`2r4nL(bVRzyF0e!uos|Q99Tn1Da5?$y z$ijW4jtKK56xvveQs5#Ui=4aZQw-uDZX6wH*(4pyjIG$mlFMBH@n>_Q+qoJVP|MKw zn{o>HUrwYWCZR8S43YoN1^5;(%|G`?7rY5CXDuL%5Lt5#|Ck-T*h9BT$X8Gaa=h8H z<>a6d-&I(8>r3n;YTNq`w|zSLSxYuQVr7Efn;-E@@fn+5k^KHP2ec#WcXdB60JEs$ z1<%xQ!Z13I(F`UYJSz{jvUywj&-gJ>Uf(}gr`G74y&aTR0|}O>l}|yC_h)jq+O|@w z&*rr?{G5E0x*hB#jQBZWUkz1ksPBHnHu`}oi@dFTf8jNBb^Jwc5c>m-?@OAkEFX-f zO`B6V<&PQuiR1>*P)pl734ndRr>$syfM(1h`BH}%SniC|-F=^|t89?)Qg9z)-%4;L z7NZtB*y^WxV#cTZ-^1c+@lyF|6X(0TT$EA7uQ*|)J6sC7%c7o?HvRiFOIx(dH*FUI z@Kc!sMqoaM6t)+Q)>~q&a*UYJ}QXqLR%O;7{o`d_eJWQX> zkOZSeG^jMst(}~kFCRw*btvgCV?#(0kHeZT*HWK5KnJnE*wl7@Chq#KRErLidQE-; zVy%>w`P>SUA=DX)@Fr#ohQEV+%J{lT>)=reL@Z^eT|;VTn-S1quBfJg3#W#EbT03n zoZ~5$ovE*(K1PQ`h5zBdl!ChRd$VVuG>f1Pmiw#{JDy%iR$zkFpu(5oYP3g~M790J*+T zc7@rzgh!8#DJGC3&B4_%+qYu`rX2tduhUgas!V2_Xv#6CZ{BqCyu6CJ&@^4<_0=0> z1EzH`#O++|k5y>U(r)PvM}U{q?9|{N$?nCV&+fNdsfn>^ znfqP6ji82}gQI0N=JNuZLO$2QaiI%FQN6L!?lP^1B%SGDB-9+s>?I?n9#*2 znP!KL)q@C5c|2w(;Fusd$_$;G7HPEt2uG>q?D6=7#5R8JJO0OSj{l(+hiKXiO!shi z-+=c8o)eHpfE#y9{PNu?YJ~rZAsVNIc@7yJIWH^^ki?gk?4drMX{d4`Cv`NB_Qtdg z#s3Dkaid-M^j*gCt*yssYaOVKh68Y0*4Wc4Q$P^niVESYSA9$RrUQWxK3EogmHMAn zO3-z@qGfYq?>^*CFDQ9JLZXVT;NO5sBWe5xW=O2lUzaZ5Gb%YZeMl3eAK!YX^!xWJ za9V@j1PyM}cb~8yLydM87!dmxIe24mucNe43sO;oi2)yN@&uoo!?+U1s{>B%4?GkW zTe!MPhQv&6Rs*gtS7BswK9$F= z@nlPRAue~%P0`QRuM18lwrP;8jsn#h(pq`-z^fT?kq@h!4sdL-=M>&ucJ*Xlh}CV8VMG? zkVX+{7GuDT6>s}{g7VKm{NL?(`WCcX^qi|6x}5DOEE@$iN~BfXdp@89;oBuNc4 z;b&cZ9n}2=$|_b5C(;cO4l~Ej2Tt1U=Hi>u2vi|!Sk-QO5PoxmJwaVHyn6AxP5+W@ zHR_^5^aN^@)M)pF$Pe9d^$|AO`T49>a50L|wE&$5U*HHGBJ>oE>3fex z!ML8yh&wjWu~Ry9VUVv4j;k*mb=o~cC@)UUZjm8*laEv8!bFu1Z-1cEbbgjHkC!M$USS$@_PK^MN$0VNVty=VFQWzquyUrIi!q-ccKmyCrJTWsp&-+F=Me*-FzU5e2eQF1>p^88cneIQH5xeM0L`U`#CV!mnN`h^2XjkfP}hIBA{A>m~h ztX=Jz+wbu7qsL7uH2hGBIS6OlS?izzFbdm>`a|v)7%%NA+vYJ%o7VC|-4d2rkFcNB zRh6KkpTmb>L^GS?Vd*=S)JRh?$wm8cMr;CRXW0M47HbhD=+I?sYn5fT6y0snc z;&zAoEFvawZ{r)JYomt^U90lzlia5I-~K3ZB+}G{f?d_x2;%G!zFD%mO8RfDRiV$T zqDxd+(X!wx{AfZuq@eWgru<$q2YtW(bb&|B^PAo{`6eNy`1xV zW>Qh*e`?V3=e)WWJP)G@*S7WQ#9nCuThqHaXH>lpNntKz7`-B!&*J)qqAnwML?;*0 z1o)7MpiR@h)WpXQ*LXXqxaU|F%ovn;^uqs*M<7)=-ML}|;DkDuGkF@4K zrTV)2?sH~-Zb(If^%`dHCYGNto-Oy7TM=J?-AV{U#@t+5+E+S{d}Sg6WC=7=ul**W zpzld25iEo@E#Ty(@Lko!=PDjmUX@@O77v}rW*$Zr=aQ0TNh=v*(m@(7*Ui&<Y8YM#EYg(*QDI;l(F~15>dM%*zu1X#`UX=!FXHiPW^DJXMhF-J< z?>#s)-N<=!km{S~orElx`C@{|X|zl3HrbwSon`Drir>o3Zrig`#0T`_A9wJY9Jg_{~6nS2+gJNkNdlQwq4b;yc%v3S#fI2Bee#5 zRW{a_`NqE0kzP~kMN8#xD;{)G62%a+*P1u|RTh#|7>+nA0W8nQtKZ+j>AwpoPk{9J;3Ww-Dv;l zIS*&SI%z|F2G52xmjE_+;}!mCwzz&f=gjRtjz*nEL^dQ;3G@>SxwXV_CP|fhAtYsv z<~>x$_OOzd2Z3>s42*{^U>I-_k?o9AhZy8@<>)_62AG_Ckd9|S6m?;2n^1VjKQ~E% z!eEvoKfwPAz1l;zWv2R4<{!?)<&0di+SfEnw%!n=CRy;1-ij5iCpDeVak>^7RjXOF;+loIaP z;`>f(+iurDG4vP;GuQYQ_sdAwVH&OiYlNpN7Y93#-d_^`y8G9#z!p|4=MXh&S+bSm%2GHeZD(Lhj)pQ|SYbiJmJf2!s zMpj2!6eL(;RfzHh3- zm~hn;0|!g1Np4TldD=adP*ZFvh3@F=PE4oE5MzQa>~G_TbAhj&qtVSTPqs_h?oxs= z{oKzMN8N7f32UT);U%pg%L*-=n8if%_xzYQr({NNRQYs!UerG;?WX*{8cji-z{2%m z|2l_F%i^6Xt@b7rWyO{Y1ab~Jbo4!k_oLH3S-L+#+|_?#nlMrAWVYhQKBS74|7KJ7 z^K9z0McBg(FV;wm3MPcno(8xGAFAb+maGDTaML$EwhL>)z&Fn9^t>#JUCf;@Izbhz z1E2-%yiWkBLn_&B+yo>r1PkIVX7Tb=z7Da?imDoSh+T@}q&+m2mR>tiybUVS)Xz0> zQq*blBH&eH)lM9$gCX`S&1qnPi|i;vi=S(4iSR(5VGXOB4I zrEPjj23A9$%!5M0L;4n2S6;nGpjsw!7LaY7oZR;WfBI;rCi-vXPWv8X?4#1trou$& zJhVDb5!rC<#qrZI!M*H~%BM);ksrxobfHFv7Tua~PriYM9vKFeN==}0_M`hH|M7Jh z{^`p_BiX3b=byhgC^_XiA+nkfllV9+W-zc@O&ApV{Q!swU=}+J#p2ulvoHR9F+it7 ztEeN@Q)>Lc`@yquJUtG>>B4?ebT3YhQr?WgGt?~r*r2Pt5x8XD;}B{NjyltEf&`jg z)BUfM4?i~W6zqd;i-$?H_emUs7if65K_Dx)`ae7T&%rF7P!>P?07?o_VS?;q)DxPW zYr%%%=OAOO!+yH&R-PQC)c+uXV)1!wh1grRuvEysf)@IL#zhkhG>aesLvmB~i=)#1293r%Et9FiO#4dz4+&LIPWt6-IT&_ME#?+?5 z?@ph$sH%-RLqJLMw7%PTL}G_B@OrjhfxJD!<^|>9^xy~JhX?lmn6n+SEw1|)HQ^w|%a9~x?FHth4rfJ@kJx7EbLx>rIQXc{bUgi0=6x zIB{w=d8HPO~lEPC43xW#Q(t7xxl{R^@kN`ohp{Z{Y>C4MVaQ#_9-726nin36`j7c{C z1QkGCVxmv<8$xpQ5lESPPKkUFr7{i^I49V2mLE*e9f}6F7_@kmmQ)3p6LGu|j#94;2Buf(op;5}U|v zpc=R-V0HdqT>*Uz}J!!8#UJQm*IbsXU8^?CX{wz5-NyW5!^b`wMan z_N+hvGL|7RdW2ANMi(Xi2<95+p~T!2BxS4;x-$}B!jY*o_?#hR`nro1k-)gpSh?Dx z!E}QSPd)gd!{ukcW{5ynMFgY6Z;VMNcjgbf?@me;!&uzql^sTHST~CD5Df5`6a+ak zXtHQmhKqR)WA`z+0m+qXs<~WrI9GQmKzlELp$*MamWg!woDLua1WJ;i(a_lpNS6|a z)?@cl8FEFSVVULri;$d(Fli7U%|PWamXqZw#N|YezR@p$xUKFmHZo(>0FBFb z`@qv89^VNi@1U&X5V4s7fACFw{UF#5=$JAfVMMMvGoHT&t(@#ooll##XVi3Z`;br4 z&H|hiG6x(tu$_Pa1hK8@hl?17KdUQ7f0p(D|I(FeD>d;zqOz{71{ib*OoaeY4R;dD zw2N)6oUwnJ538eXFD?0DE+OLO%QqJtR-y;cZ z?S7?=9&si%7#5n*a_4L1YDTkw13>0Jw ziolwX6Pe1HQvVC&DC;-py03p5qq~rrP1<$xgq9(gz1Q1FQuoA4O zw_HQrp^YQ|jfG@VIU3b}(xFS8gFJnv+MBHfXJ2rUffW<^@e~(oQufFv`?g3gO z2R0XTsI|XEd=5SQ3K)TA>p?}x9y0eRRdt%E`GdF=G);VIxMrVJ<+*UvpglU2=r>1L-tGcee*t!-FT#+bMO&uj3#ACi+T(S+b}gZ=1!YeTq;zp-!tY7q^{C%5HUC>iCbtqO zhGoU6Yb=2k0mXIzU&Wrkn4_uaQ6Gp&HNVIcV9@#&QE%Tex^D6>P%G7F_4og$a?c^j zvc^!^|1aF4uqS`z9E|%Hq}}2!IK1N1l1ou%6YgYYpYT}){At^&6;1|-8(dR3nd_ax zhA+PL4(ND z6P-+=**<@%?8qdWqVbl+6brDDFviyvn2ewvbEDP&l#o)B(Da=*$tq#s>RzQ<64~sj zC)rrbp+?R%Lz4r}-AINe)h~=7t3`5oUpMg-_Inx2vBSp`(HcE0r>3EUtN`1?n-eQr z{Q;tu*xbKTY^iG=F#O!Ax7`9DRCs#dxfz;6E#g900LHEUUS=q`arYp+=;^*SgP5;NHfP!xRAqnCEd}6P>P zu}QY(U?3meZvuNPY?l5N>u1F^t@{kfy-J?BP8_APjF|2xb8Lm=A}_)iWZuM6#GnNf zxLQo`9~>AMsBUMZ@-~~C)z|SupzzjSc)}E2WJfqLKEU#LKLNU&iPo$4Ii_nGWnbo? z-9$i6R}Q(prNsS%S8f=aE+$jmISehB?5u&%px?RLz$s<2BbR4NM`#&teVkoz)|Q4Z zc)1ovA`h%4=diuJ_P3JxjWvt}u zH(5ZS`S}CTo5G8&wR-fT^n^0T2}pDOQ_rD!edsB)20pm^K9bZ*M*VxR!~n`8r35ni z3|Nf+mON!AP{=dJ(g)Ct37Asi31LC*B(M9>%Z{xR86U;=iA*p3nS+q%Ag~lO_vqlG zyg+h7b;6N>byoj)=@53GNOpjuv?Q$unj5@Ly+>qI9O=Ofpc;F5_e)sS^tVLqyGO{drkyNe4v$ip+x=R?2Cckg1pJJqG! zQ%g$g$DBY3Bw)d>LqCA_|LV+~U*Pp>hXCM%XuIEXiEz6r2Mi#Cz{TT)vJkZxvDx|k zVBOQ>DNgn*n`}B|4f%coF5{a8#jT)XZJ0fCwCC_dDZ#(XIV=6btw+(xA*jW1RFWxa z_5T1VAlK#;5yagbItf2n*79P+;)}$!7w}z~PrDDYVV6h&!T+^XTd`$IJ*9WJhj0BQ zy{Wp<%huT?1Rzp^Hfe#hfy(oaK+c#osGklcNzGO=_R(W)?gzq`J5rL<1Lx!k5UvoR zIsoC`9X+sFmta~@YN&$0!r9ifLHfE#mpT~+-_A7Df6>zu2;uu^J<#0f)!Ckh5@{f& z+QM`n7uf1dkM2(hTJTjn@FEu^eCG!Qh@-a7qBgU0imaTp91@IDppC>2aj7JRoK6*hfmKhY*2_D#boX zIFo@Um8n^ z)+``V|85UifHjf0V5oqM`T_mj#-scikP|bZ_@6Vup@I?=Awq)C90+V=O&5~OMTm$G zbfF%)u!k%uvyG zs&y5WtBYum{9s5Z7Z<*r98bY|r0tP-L(dxDt$;*%YkZsZycBh49;(dm1Ai?OD&&As z02I_~b4g2Nw0>O(Qq_n|K03bBT$5}#1M~w`cTd2Z6LS}yY?izy zRhz4cQw!aMIlBqLevj~Wo~E@;8_&6EeHTbD_p;h`Z3x=_Ga_DRp-LYC#S#cV0Mkno z>O%?YV1=|QcWIuFAgMM0QFX11@xq&aZ-7B~fcegHQ{&ndN7D09r$HU6^%mHCF$G*3m8RKxxRJFU0mRXYGH$tw?b zLZJj_v_t}AL?~k?%`H55Dq6y|_JJ&I5_ym2(o|B*V*QC{uD3h={6Ay1NEca8Rv-dM z3^XwXL@_NV9o_ha3em;)%t8c3^Zv+&yA32*V!8OIu%~9K9n48|>ST}jb~41NfUkpN z@bgQ_Vax&gE)WZDw2(!+1Le1;vq6K%>Z5_#AJ~#3M@dB`6$q*qqT8lH@*?t?kn}cO zyjf+?5^P>Gth%?P2rg`;Vn^5;9DlS51lJJtTKc+Q1x^GZpF*e) zQkn3f$j0hW4v=DU{U z#4p~rLv*mPx}CRE#}y2Ku@Sak9BIn{OvHSCrthkFo7B1KYh@lbD`=)SJkX0)Yda%> zzkt?=fSyF9>9JE`_J=*Xs%;ol1@qY!> z02*{;hPWCuExu7(t#VB)U^sM@*;&r0`m!Tr%t1RFSnz-dvgo%iW24<+Lj_-Y!rM)6 zY=_}!_VAt1)t_2C1dKNX!DYF*u)X7HDd(rHsHRo=)^n_mu!wL&ii^B5-(DS1eei$yN93Hh$iu~wKPc*EL%J!C?x{|=7sm<*8=4N_?ND|>O$>C zLpAge9xaFMK5)&<>_Bw_*-1HBl0al5+P3Vt%9vzuz`Ta6>D~jQ$N3&Fi_umDzPpJ2 z*e*`y-=9sZ0zN+gnukk%nW}J2nzn)w018^AZh+h1Uo;TvDHoxkZ@7wO2?P3Sj`Y|D ztNa>SS<;}{0sRr zQ+W2o0D4`{XYlthiooruQ#fN1XWx%`O=jn$+l3PF5!hA)mlmJ@ z8n*CSXQmq3ee)(2?XpR4PNIe9I>>#>qZAwY?AttC^wY&F^O&1g?rOACB)e9cYlS<* z)jF%qJWX?RPvk~B#m6tb`5P++^l60@HpV4Q1!0A(_dgDBBPKmxi7+dGDwyHT%uRfEb}z!&e3|{V4D#7_t|+Y zqY$k}fxNsDIy*)mjHk#HWEl&FJ(*L&;)kQh#$Lq1b^AxuiQEI-P6@|d6R26Kq((h< z5w3`O*VNK@#s4&3eCK)}cV@UF11)xQUNNL)EDW8#b**%db5nzOxazUOi;5d@40I&$ za!r@LAu&E-*_%5*KRsD-1=tVnB@a>Nv%Q9Q27-ny>_%y6v3X+#N_HDID5nWDwe_8a za*O!BtFldg9=mlJ?^{nP8GlwmY01c_1A~;Njz+66D=l^(3s`$jZK&wMKd(0xq+=&o znW!*w!0x*HZ%Sse=Dkby?UR>nD)^@c23%8$uuGEr9p4N}iCQm#mWv1L(a+tyCacim zv1|6Ad6gu!EDqc@1ep=`NV86kH$TfY&6;@=HA?8Gnl5Ee^&L}$o#ST??GMDB{ZFp@ zzVmVSZ~dlE4Gth2OxaV3hi~FxOVc!Kgi(a^o+04SbX>Gn5?3&Qi^WFaD;Izs2E;nW z$RvL5Da8|1m$|NdO^dTDS8= za0*;OVmjfK@1Mdo$b>PlxOp-?icC{3xN|%C!)>Pf52Ous6h5AUhv2(8uow33@w-ZP ze{D{uz?K|@$>@QkA#6GOPOdL6tDu&u*@>=8xp1eS^i&veIaKHTnr^hdgyr;8Yk}P! zfEc*%cS}p7^`#YDGlJSvRMF{(B+t#k$9(C~7QgrLip{C&NeSK z*xrWV?xn6Ptc|C*m2*gqWSh=0+t1hyUE4sVapk2Rt%xl0Sj8_QBPpssT$a6b|tj@?^O+B+>U~ z*z6kn#`8O*Nn*}2`lQ51b2(Fi8oM?1%|vdpC}G*a^Hs|!Q%PRi{u?UwaL)jCOd@`w zkD8v;>|NuYTBJQUy%?;^yYnaM>`c_|_K3@l)woeJ7M0f^UgbmTmywO{yH#%%jvZPI zAl7V$`Jb(t%-=Z`X-evNIk9Ki=zm5AC`BC|k?`CM*(u2x!qN#HVs>`xkqY@cRC{t$ zW@l1HA6>705_@B95)pG_SxBxgWT;sl=U17J8#3E7|F(LLBflZLu7Zu+>e)l@q&HC! zK;n(6+t|C;g6tp$mpQ_!29Xbk<(giUyj%ryKzTH-f9!nKLxvGE_&HDnS5QFD;3Fp+ zn7`dE^XZT8-#A~Xx{u^CLS$bH2`ByjsM!9|bU&@)(zM*0}Dz1hfnu2z5t0 zQ@8bN@yxJnpx`Qh$ce+7u3qFYk)wyruj~@;+Am(B#d;AF*rj%VKBW7Vv)`u{HNbh{U3Kc~G`?aI~4!Dq)T!s6rul26+cI^?pDI~|f z^{D?^<+?9_^y-|P zqP0tQMz8nL2k*xU(GXDGxN}6I-~Y8nyZ^1P+w-$eG%a?vlFn5M7S4j9H)BQ@i(1?! z`)*98xX?w|7hQjUN4|Toi9Nb@1=Z-irSJBQpX!x>%ue0*TYz5OuDAO$|3wvRU}x2N zZug{&jy1Z_>*#j)u-Ok9`9&jkrtQA;LsJu+EcLZ%!JS{eTY-$TGA2!X-SmHqF1`C> z#)iIsYIg*E!AvZIRS}|{6s+;?eSK#4{emeW>A2nAOF2gprE|@PcSnYY8g<+gso8wr zywqrN5W4(>jqY|_8P!pb>-$rpEA}(tRZF!_8SttcKE(Hek2!Mos>#J>qi>qk(L8d= z_uhq4#k_o@oRNE_$og&E6^^%|B3H~sDeoVMK6;CumHtr~U*eCzY3o*AL22nW_tuTS zH4ezk=4P+=Nbd!~om{-?$k4GhKBi0Lm}_QBe=JIBx0CGL)Tt0A$`AFXNu}mrHq(zj zlA^vEfeSon&@pJT+bQT${loLuc60&g0F7Ku>iy}Lc3(~ZcsbSoDzNb9Iy@ap{vsDM zS=%@Ach;)1a(=((5ya2gK<|Xi_T({bMm-+lP9PV{U#W7e_b- z^eL%R!lpX0=SXI6RM*a711 zMAX*K+sY{|lOJHogRg4K_l+j`*sPhNuTn^sJHF0#0%5uF79 zO0rz6xGFXBrY=)FH3=8UBnE$oL})tEguox@9g%17M-(nF6#e7luP!!`hqyrcv5Rov zz(Y-^W;Sw+NORDywao-iQvL$gzDVe|KB(}K{5-adxC`dx|2=Z!FDcP`W@>;W?X}S| zYICa%_I*SJY*$&07zs^Hev|Q-eF+I!PZVFi0l!R9k+vql(&U);p;ik>Xtj|=;BQX2 z)d#ow>Rnu#ec+anxs}3(-I{CdX8(Mi=f^}Ur0f!mBCu96W!C>vb|i+*^N86BjdSxs zRAF4_hiYqxbsZm3?X|rQQckvQ4W4Wh6}4tSpM%~Bhva$X;fVy%-Nr3Az{BWW*qhhX z3$>&q6TQEmvY=fjC>G(5GzJj~as3rKK#BcX(AY!x<6047*H_`akOPnS8Icxyr{>Di ztE@BOnMz75(^-SdJ$Q^{|E-s7Nb1PP{`Il-m6p3T77R4bqq`R`7IXUi?Ri~Ws>py` zGlg!A@)oB3eYg-qp+t^ZkA9L?@`*Qp-o59vIHFjsr_|9d$N1G-Ihul<3y+cIYyE0H3P1T#))Hy5*w<6+Kuy`ZFyUhzH`1Aq^}#o zx7sKWb{1al=uNEQ@?+D!W`;W={tQcQy6n;Lv-2GK)S+qIPks=_SZScg&PR)W#8DH~AC>PsKEIAjFyYBD&BsyIXLM%Y zRTvl{dvEG^!V}*;OScaXMO4Yoj}L6MaktO#6LUma1<`R_Wq_(FsayorPX!nM?i4iE7^(&yf#Gpyo_> ziwo0}5ek%v3kq6d3s~`R$G{O(Vy+-C1_7F7&xqk}&bi zYmzt@dpw4taKE!3jeP~fAZ_|jq~mlu+39=hGn)f}gb0sHhO;a`r;OvobF138#c>zm z$){HLEmh*hMGMxaKi3?O8#_h%l+8=cb3V!?@;cXG=kTBPih?P!(H?k|?>pFgu?|n$ z2d-_I4{9nI`qH!BSQliy`Q0A=g4o`R$+k~>@oy)pFD2RfAIvh~7dG33D)D~oeK4l&LghNYDi zZRBXHY(0KrV!mbMR5O`l9FBTa4z)O~#$`o0zN3Gt(>FJHL2`_rVVKt! zpP3=jx#up939Qr{ERHNU0k2a5@4Bi&@Y(!TNE-dK3>&`n)IuQpT6A5$xBBPKm5k6+jAN4s62Oug0IsjQ=MRR-o`$I#qi>uBL zVccE$J8mB{rq@Y00NFsG1CSFMTRX}xUwQA5AP9mp=LQxBK@cP(J_v%qHTv)*ub&4& z5G3O}2!fzwLgAJV{{D`a)~s4~EX)}JARPoc01PucrZ~`3wQlO!!EiwGh$*cCme>>AZFzw3V z)z5v>{}20{@$u@)flvB9KX2?GN{R~)4gW29wS4$*-gyJS$o(%^kQ!=1Qhb2`0000< KMNUMnLSTXujuxu` literal 0 HcmV?d00001