From 7e3ce2d583b42a3f4340ab0cc0d1e57f8a8136bc Mon Sep 17 00:00:00 2001 From: Michael Joseph Walsh Date: Tue, 15 May 2012 18:43:45 -0400 Subject: [PATCH] mods to reflect client <-> account chooser protocol, and refactoring... --- account-chooser/README.md | 65 ++--- account-chooser/docs/cancel.png | Bin 0 -> 33797 bytes account-chooser/docs/not_supported.png | Bin 0 -> 48968 bytes account-chooser/docs/protocol.md | 127 ++++++++++ account-chooser/docs/protocol.pdf | Bin 0 -> 179296 bytes account-chooser/docs/success.png | Bin 0 -> 33569 bytes account-chooser/docs/webSequenceDiagram.txt | 50 ++++ .../account_chooser/AccountChooserConfig.java | 49 ++++ .../AccountChooserController.java | 132 ++++++++++- .../org/mitre/account_chooser/OIDCServer.java | 2 + .../mitre/account_chooser/OIDCServers.java | 77 ------ .../main/webapp/WEB-INF/spring-servlet.xml | 19 +- .../src/main/webapp/WEB-INF/views/chooser.jsp | 28 ++- .../src/main/webapp/WEB-INF/views/error.jsp | 70 ++++++ openid-connect-client/README.md | 118 +-------- ... => AbstractOIDCAuthenticationFilter.java} | 224 ++++-------------- .../client/OIDCAuthenticationFilter.java | 133 +++++++++++ .../OIDCAuthenticationUsingChooserFilter.java | 178 ++++++++++++++ .../org.eclipse.wst.common.component | 5 +- 19 files changed, 852 insertions(+), 425 deletions(-) create mode 100644 account-chooser/docs/cancel.png create mode 100644 account-chooser/docs/not_supported.png create mode 100644 account-chooser/docs/protocol.md create mode 100644 account-chooser/docs/protocol.pdf create mode 100644 account-chooser/docs/success.png create mode 100644 account-chooser/docs/webSequenceDiagram.txt create mode 100644 account-chooser/src/main/java/org/mitre/account_chooser/AccountChooserConfig.java delete mode 100644 account-chooser/src/main/java/org/mitre/account_chooser/OIDCServers.java create mode 100644 account-chooser/src/main/webapp/WEB-INF/views/error.jsp rename openid-connect-client/src/main/java/org/mitre/openid/connect/client/{OpenIdConnectAuthenticationFilter.java => AbstractOIDCAuthenticationFilter.java} (74%) create mode 100644 openid-connect-client/src/main/java/org/mitre/openid/connect/client/OIDCAuthenticationFilter.java create mode 100644 openid-connect-client/src/main/java/org/mitre/openid/connect/client/OIDCAuthenticationUsingChooserFilter.java diff --git a/account-chooser/README.md b/account-chooser/README.md index 79211e92c..fe6413749 100644 --- a/account-chooser/README.md +++ b/account-chooser/README.md @@ -2,53 +2,60 @@ ## Overview -This is Web application created in response to [Issue #39] to permit the Client AuthenticationFilter to speak to multiple OpenID Connect servers. +This is Web application created in response to [Issue #39] to permit the Client AuthenticationFilter to speak to multiple OpenID Connect Servers. The protocol between the Clinent and the Account Chooser UI application is documented the README.md of the openid-connect-client submodule. ## Configuration -Configure a bean configuration to the spring-servlet.xml like so: +Configure AccountChooserController via configuring a AccountChooserConfig bean in the spring-servlet.xml like so: - - + + - + - - - - - - - - - - - + + - + The keys must match those found in the OpenIdConnectAuthenticationFilter's configuration like so: - + + + + + - - - - - - + + + + + + + + - … + . . . + + +## Test the Default Configuration + +To test the default config, deploy to a servlet container, and request: + +http://localhost:8080/account-chooser/?redirect_uri=http://www.google.com&client_id=FGWEUIASJK + +Click **Submit** or **Cancel**, and you will be Google will open. Study the URL parameters of each. [Issue #39]: http://github.com/jricher/OpenID-Connect-Java-Spring-Server/issues/39 "Issue #39 -- Multiple Point Client" \ No newline at end of file diff --git a/account-chooser/docs/cancel.png b/account-chooser/docs/cancel.png new file mode 100644 index 0000000000000000000000000000000000000000..98446ba51c589151c1ce85f50bf3b06d3773e5d3 GIT binary patch literal 33797 zcmce;2RxSj-#>h|r6r^xi6lEaWOX7DWo3^dGm>3)MTH94dxS#B-ZX8JQAQ|buQIcr z_t|y-e)sRbf7k!H@8|VAujjm8m#a&h$8jFV_xt(0*XQt2x*)rY{17>TK-eXBPFjUP z*eHj8PmpcIcQzf?#{Uqu8lIPxCajbGi7$T^L?9d`$Vs13yBR&+b4!!z^P0p@z73s} zWamAPUMnuR{vh%BbIpu8!)$q(IvJahOYH3hH`~Xygw6jdkVq$Hsi$7vtCn}?{RA7= zgB=;#-?X*!-zOT%Y*6l`rB-{gxXN>JC@M;U==pNj)Mt9}+6X?=rU>D|popC_31*SZ zI2%#M;ql%0@9;rGS_0wcuK$N$A6@aYP^E6ausZBG`}+m&_$4!mXsUgxySox~L{qbk zvme<9Dd(Rm_u#*rMRaNARpuFpcPOdfe@r)MGl5WX#&XmD=U+#>IvfY;LOOFzOG`=) z9X#mszCYWjn)$>Dc53nh;^oUnWt1O1dgK*wkk3SkdT#jRF*hr*lP6D}I3a70;ZXAX z_f2`e^XKc;3w3pL&MUV)JjfT>vvhA4Eq})3w{IUucjpo9?epr6a0>{~abJE_xi*(I z^dZja>P6=VwLvFTspkfxtQ{R?wWSvP@0dvB+_`&~)i>?M3(KquVtu~QDRZ5gf$8M) zVO7=DRK%@&j)-2Z2`DKkDJv^GAI6pZ?AiK|#5xZj-?h)Xqs84sSXj)eAJcuW_P74L z%YpmUsZ$yn8gsUR=h}Y7jM%R(&E*yrp73hs*VE8&8vB%SQGD^oeR_AHThmFBo;&tA z&kTQjIzDcxs@nSE#fz2}l@lkPHBBn-82+u?JVLM4Y(aOZTRl_vAU*xmz(Bs!RPXIg z+jzbG=_S_24A!0J$2)vSkrAyi z@tk*o}Rv3EwT1(a`L*R z<@k>uc~@(n`1+C;*xtDDQjM+LWnuF4RGAT878WATv%{^=F7ll}#>i;$Ay$!0tLO%U zjIy`4_k=)OrtEU;6>1uqiq-jU!|aYXZx}f^aNQOB>C7xFmOR#{*5{`B`f6%w>gp`| z-}yYd5TlYAzglx4g7&Y zqN1V$2M-Dh3v+7c4S#!kzabG{qQb+uD>v|Ab)HpjE4CZzc!H&+LOr)URp~T&`E=FX z*k|i6MSBk%V4?B5d-txNpI>fn?xj&RH8t1SkFs1`T;*2R+Znuq!@^qm^;A{)F25oWYm(%G3=Iv5Qc}Bi z?$p0E5F+b;goph?l%OIDbysKSmTlXnuxVRU6a@tZw{G1kvGQ}1VykIWG-}pvhO2`O z5#0q=>8YvabDCW_^t0Vv1ysN z{1`|2`fuWT{X3&dH*6VAlr!8NW zH1p?oiQmTZKT9Tj^XE~;)`t6*W@gWAy{D&b_wV0Nd{9~Gp`ftSuClf{L5dc8NH1+w zvw3}a@9WEh-FfD%;f2nNEX}LOu65;^dr{ywTwIp161HyJMtk4@+2)P&>l(SoEDDI9 z!9uT#KgIO>{RS@uuK>xIdl^JH@J@)mO}2lO}#ii?XMeSZ=WQLA>%@q@L>gecz8IDoUB|SDyyOF&J=VWt6$NG<1>9cU;g@Cf&1!Gw#%#T?(Vj> zwz|4eiS@-jI*)SmSyfY>H|#PgPzdL~oif6%kx4w$FQukY1-$8kc( zyk2N#C%)a9?&s)hrKqT=lG^s=OZ4K!rRjn5r%#_gcI+u>7dMsNnjvE#Er!k~1NC9K zE}F|K6V-PbE!E4c#WPN#(@C@V_qDZOO|h zFy|GUI_6gv?NCfV>$@l>D6wd`ug-nmwQE-d>-&b6^;y;;Xfk10O!^KdDdVO+@z?xDpx`R{ids z>-y?KSD2s+hgpn~4y^>a{d$d|V0G*#>{bJVi==JAnDKTT>*lY^&~t*7#t$XJpu)8? zT_a2V#ag#@r2s$wfddC#=oDTkUKwe9hI_DO%NA^ytMXsIeCbGTpes3PP+{p-S$g-P z#Hw1@GLyhWgn`HEr39si2Y86ZIsX3sw{PE`-^%LSlJ_9Ryx>l1>Igphlb|3yUEQjO z2dVJx)YR|RMxrKV3ogcqH$D!e$Z?v|pBJyackkYvJ9h-GeH!mAUq;c`w)^nqbk;)0 z?^U}ZQ>q`)K5J_FOae~J0L!89=(pZ-NApwi2-g1pB zeL6mq2AuwT!|bfAlT@dF)q6lP~<6)s$8swKUA9zQ-Jdh_RJ0}nC7cVs>O9CnYM%P1%+mY0|N9}ycJ9bLjv ztE#GaC1#%I%~#WVP$WkwYAX0BFdy?OLmTgNol(4S;jzE}hsLN=`#H7WxgK!CB06^V zp^(R#EB3cttGwy10;8I%IZtK%DT(1@9d*}x%NF16k$8ASEV46>jn6l^9-EISYqi2+ zHX<9E(l{c-II-`ySZbG4bzm|LsHUH@~Dv0S3>I!)@{ zmV9YkPc!Jril(+Wnx4ht8!7HqlG2WD(wDAra?m;3_7;)&W@&CLq%z7ZVc?MV#levg z^UIgxr-uwaXBl|>>fbUW!pKM*kl1NA#z)276fOMr(^Z~0GO7E!k9&P7wmTsrBErt@ zN6|k#EM(nV1|W&$Tb`3MUD)T|S|4boE+>a3eM{d*Xyn?eMeZzu<8B*v}ntZEcS~mX5VFL(mVGG=-gfi zO4Bo2V|^@jek}d>*SmYj81(h^E7z9Tb#5+9>J5g)qMPv^kDLsO7Pez%xQabDUIJ)v zHz6Ux&+ojdD%I-H$&$KL*LcD{W8+ts8M|Lst~j0U&{ae~+YveGu_@l|1NVnVUka`1 zOM@4aKDnRVuGmU-;sTRb*-X=E6let>VuH|(ubw~_S^DMI`zjP$XJbw~vG^Y1G2A@U zdP=bsl?}_Bf^4&~v2osR*-+u*7V{qjh1R!9CMdc7dcWT*K*PW-g!P-{Bi5^HTO$HP zL(h`^`t|F|d5{B-y+mC-J%F!>C)n&%L@Z#P40Np>imK`Ds+m}=i7Wv2A>A|wf|wN< zy~aDT@1~46^|^()H9qk1VeoQAn`z{-n%9(;kzrkz4XwS3hQ(m9@FWintlFPruJI$k z)#c0FCJhG$9deJg=qKnXq-CZ^8Fd4q_qi`y5y@nfaY=!zjI1?(&dj(h&9bU0s#?0t z4u53NDtn{Q93CEiYi2MaJRArUACZS$@N`1N>0(Y!&ehe`9pvQNVgZ>n-TbS&UZJSE zul$nLzAvV#qS8|8WPMwb8>i#3HWL>c8++lxg|lbRHdYlRCNd7zB?Sh43}BGDw}&39 zNs4SQ*=B4wOM$^GJFMtJ!}q=+>>9i$TuE3yBDwKMC(V1ofyxa(=jMz{KBLEgxo~Fe z+rJ;JK8k{pnwpx5iqEQx-#3wo(q~$95jZNs+DoUv@``*%>z0A6{d9bqdc$G`Zc8K2 zyaFzztJ`p`f_soLG_1M<+c?_UJ!P>NZA(p8&oIn*_*;p%QxE?RY`3($<|y5$KD-o^mOj$lake#&m_S%fb!yKHPkO7|S zQXV)^WcZ$(c<#mx?&PY*MnzR&hIjAYd2#Xx2+U1S*EKY#^*ukwWSG8v^G0C&=g(P+ zbu*3Pu=Kw7_sgF@51An&!)mU>&DHh#m!bq0VS?m-uZ~Z=X#L0ky!>c54@tO-&WJ!p zP!-Po1TY!#g!a^Rg=irje*V0>riDd3pR13d}*Z78VvNs-#z;bzg7dWM@am)vH&@ zyx*wrd6|}$CNn@F=usHz)OU1r2!WCc3;RejV%-hqtFg7KW#)VWVk!Z=2bw^`O+R(r z(2$W5KN6_P0h07{Vc|o4y%Ej8(9rVIlCL!5{{3MYI)%L6&o0Kz|NQy#Uo<{+4Sd@36i6@}e*f|;3;m~t^rUs-wY zkt4Cu(J#L6giQPGKl%8uunG&ch_J9#$IA`d&k*9%&scsJv>Q~QI^NmY>1;m#-f#bD z$8m0c{=-5y;^!kJ)_#8nm;}?fK$iOA1&AMtUs`&4eN)rpM~}pAe3djeAAul*Jqaki zANcU>8TCt-LU7%+v?3}iE0;#w+uN~CWBE)k=;`U5JzF(BP(L$0y_;U#^4hhi&`?1@ zrGb>-dV0~D+_$EGc<cQpr+91|1M%h!~Ict10n-iafOTwG0keQ|E3H@>|o$fG%Q z$l~&4NiuUw%iwcNrH&J}j*jYCg4aI1&@Xr1ON^E9;G*=Q;nMvLm4Jfy_=uRr_3KBd zsHDh7fH85~eyd+}) z4tD$g=oE`DCAs&wcOBNJ;88J;wP=c*TQepe9_zlozQ*;Txb7KxrJ+6#&}a70i|6I# zU1h5uuyt};n4X@-8|Fscu(46@%go5gNNKOHt2<0b*BL2wZ|6rFj)8%J1~J~98XBLW z8;lfj5hSZ$3DiFR`t@rwR!-&0z)8!?$GoIvWet|8sNRl`kAsDv`NT#iPw8dLLwvOTW0|x?QCuNtsdCTf#C*+hC+~R<&OyqLnkDsqM{-`K)VDbH0F(v zKW4dzRR-!(aqTmgH&Izr^T7W7fKH;TlLrZ&f<())#CyBxO7PyecYVcn)xEvq?Ck6U z0+%>wT%4UB9}*ay`5+M{pBxbp5p~MC;N{DX0;{O$th;PN8io1!Vz;KR8X6{^V z^7n_(#>9Z0!^pV8+AN&L-oHF z#asUy)mZ0*Wb8$Pr(-){NlP+nm5PU>dv)`Zp&9%iNFW3=yt=!W(RdYZ+1T*ND9_E! z(RC;YQVu8|&*!-InM3*5(TzJa~ZR>Ud*8J7c2w(gwn8;)$w)P1|-Cm6novBKEwx zyZ%e(%nOR%qqV}gmn^;(mX=r9HgDZp_5M9@h~N8ue~Go5UtitE3a}e&fQaIqvJwXc z0L?YdZN3w&eR*zdXmqp$%@J}PFieg^fn_Jihz#RL;0loE+D@t_qBk+yenbWJkkY5> zF`WyTNy?eI=wvoIMV&mO{2%ID2*XPDPObCe{)dHaA;9u0R?dCW!P}XTr>8+negQoT znksfA09=g(i}@9}x88l-sESpuTlidUy<2pwLEp8@T@R_V?eTbAX;+ z;^xoGoY@&KUOZ&oxqG*M;dQzUh5}y{Q4 ziF>=_bzUF-e*cJ*A}7U?0Hel>Bgw5t4Dj6FbySz#O7OE zx$?SCGo--RnBhl@GvdZ9N4L8q=6T zPH2AZtZo@pdld+^G4PmdM^gO9j~^SR6rzhogm(xB*^zJFNIVDjr22g1`d-en4-YT| zo&)F%-a+d4xWXY1-t>=eH~oeyAu1{gB?XWm@##|#|Jfh4R87&z+Rnp2e%LS1Tg`I@ zRW^2ZMsR)%*4amhf9f#rW8{~g{9*g{?UR#}b;nUc_mgdgFm-eKhYuwBrkK_`LR`M?+KKJZI4qdxK`O zE5H8Z$6xak-TaECBs@cmP?(1Sgfi&mschGQ9_(&%wCpV~su!rIsP|xKR6q44I>oA-zwKvPnN2!elCJ$vcvlg-~%7HgC@tPi3h1~hIan}!NcxazXOC{o_PE5{`@`R zsy$+33&6v}+bOyU1W)V#^Viv@W6x+Omc%v_n)kme_{7f1naq+_P!P(JOxx~4sm!eR zc)CDa_B>HdFRvWXpKfb*#+;?4W%!Urpt_i3PJ6dSjNtss2|65$`+-&0&Lg5i$B%nc z5L@%g%U6B(v4>Cd7*&mT7iOX6@bi=E#puY{_MitjYEL}UOt(RV7kBG=`}Qq-86lyf z%*@9WZ?2yYYj2-PwUB?1_Jw`!OIlsGHp)iphSkX{1kZWTj+90n>++D87)7#ToA37& zm;uK&G9;Chh)76Cu&_MHa0H9e(dh<;A&KP23(=3UZc*KU3IbzeGg~bG6&uFI87L_! z0TntrI>Kmz1p&}*+7Orjror3~;<*sX z3JQ(@=mK7}vvcT|X)*>L7ITJNF3QY&kD>)T9=23)a4>)?>AEs8c~MZ((9E}M804GH zLHChQZmFp`M|=S74}b$7p*x2v+$#H-J!k;EVU*z8`+H7tb6=jeIx8ciSLwbA^mN*$ z{~ZWvUe@y`(rV=!gI0nXch^zZ{VUQFfXb_#SK=&wsi(SL#a*4lG**S+nYr^bQ+@)A zMO`o}(95k`w@7fzYdcjAoU5Fi$VXNp{SCWEhlhWEeZ8sRv9pTxM7rIes#U=Ws}H2A z=Ww(@zz8(oz$v{e_ z?yDuC*W<)o3gYAAWsaeTpL<}{7|w65A|>?}=TFA)^z5TVb7!2}Xgk1GVq&79k&#YY zQF*x=It45S>xTmh|HuMpa?H=p9u}}@8;bMb3Xw+}A}MEAu4G$v3j#~iWL&>?&1L#W zE!tAxIhc+#Xn?jqYD`?rOiV(9gGo}rwQFNoAKv%xUmKan{y=Hd=EwDY+_swYlfmxt zvr=FXef?e#l+*65LQBoPs976^teOpBXZt^RFg&hLAegnSRwR7YxugU6h1)|f-Vm6g zp^wtu=0AQOHBP3XEOw_XeHZQE0g11XO#hZ3&>8xwnxZ8BXba)@hHS-sLA}YH7M3dE zpN>zo#j>iYMv2U4+|B11Vp!eBjU1pWPn*_tbmfc8KOfeHfQ6TR@LZn5O0=cdb7v$dqQGmJ(Mg$p|@QtFwHqt*W zB*b*$L|>_sKShp3I~zc}j?Ng&W$e@^Pbd?VZsJ3E6Hz5#x>;JjuvLW+iDiJEXj@-L60ek;wwL;yool@S$z{B zd^QS84rJd@SL&UFHqg`415N=*0w_5+H1s*gC~M~9HZuVTAzvqM>7XNn95X9~D;XFV z=;>LRnrbL3zvj@+xw>6O8Gxy~yR@k2cTM0i1uiAuM3~yHZf=(%MQ%+q1x=_PrQq%q zH*lE{nB&ZeAi@pqP)LZ@X>+4)oPR_Cx6t06pW$6YgC$%Qh~b}k9hpBq$8Js`M+-jc z1^4I<#q?z9lnV6#Tzhl##h>4#I5$~3?&0osu(NYn`E3Kvi;av8_5qT3CJ8Ze9^6A9 zXnPeF%Wc{C8W3b*qFYuu_}Md4H#f1>q1>%7Xu|iyt^qji)Qyks6mR#q+TTE3S1i*b zn{Yl>B|)jC;AG%AET1IfafL)>&V9HOHE|J%{bX1<~o9Oo|LLwru zr=1?VrN{126YDnZt8fc>N~hD<+R7&(5qC>RS(zcM9!79Cudm7SS+ZM8v*wD5yQqRD zd&|ebdB-~(`h@F*wslx~FD*G2y!j`7i-idt8ChcXF)>y38SM7G#43OKxWK^MKerN` zUw2=7!W+>5O|hlrNy-RX+Ltf7g9UpX8V5JF2T!POF-=iY>}ll*OXa#HZyx#B$A{!0 zU%B!P$Y`iB>hqtYmh23mJD=t`b5?X@=Q#!qb9 zb?C?V_(~mnmTrl?dF_+qNKr%!L^Wu zA3862c@sfw)ZMAHf483gAwkQI{RXbD4|e1owo%yHd|H9ceb`-gFJIQPGnRKBd&#}u zQ^dTTKyba=vGs4huFEn9f!`;MHgDUeY5{44 zKZJ^i;Q|*c>7|ut_VM?x?-8F-wj%2y@*Sso8-u@~ry}cuWe@R& zjdSS7kB5haTmGmOV*uK+j}ND2WznB@v~+VTPicbO$6C4i!DEf2^Y;`!Po?wReXnC{ zb1iUS^q&_v7zFbfZMF~#HVv&Y02IItHzT9(0IVTV$>z=<6J;P)tYKA_mz5npd>FhY z+hctVii@c0?*NJ?adA^)W9*bZy1Kdr*L&p2A^-zW6mQK4MsnLP}sbQ0mL-uKxp;A zb!=fIgBhqw9E{mE;r8vQrCZEd_8s$oHLesi-D^C-WdpghwPy;4Wv z)2G=rSlHQ*dA;<8=4w#sE;i%5I6ctR)HFCa$iu_q6@W5>?gW3q%iEi^Fy8fyN-GU? zjxJtuPscmB%x9bdW?;L{XDG2)p1<~A^*niFz*et-Cr_T>Z77M1$By;g8lofCK;vJ) zZqCWcfr6r~t<4)UU|U>TS~@*S?%faG(jXW6Scl2$tNEp78L0X8=OLcBEzN#Zxl$9r zkeQi@qpU)XBxCsW=jBE5M+!sM2$k90U0k&|F_Fj>#-8OqP`3{tV1Uq2EQ4Z8W^Q3& z*xOG-Im~$Du|6+}{A11bwfy)voQia-7GS@PBG*^Vk^H<#Xz}QQUld=jG+W1B3GO z=TL{=ynP#CTM#o($KbiO=Va6-UZq+78k|B7lNcsI4y*@V+X z%S~qNf#=>0PQc58b_smT=Kpe(fWKFB$pvqvmTCX=slbp`av8bH=DU9@_P=&BduA$Z zVg0G9iuu?vsaCtV{F7VEBv4A6FaNEKpZbgdas_769DfEnG7HOaj8m_VpWkDuBF zVuEIgeX2C$ULR@bapiEAl+UxLahyD94fhc%6YCSMpu#sO@u&u@)Z{VI(Wrout+1A| zH8~*2`y<;i{Pin0f?!CoJm+`$cQ^=30-Xzjfo*1{8*3?jLu2C!#YpNyhe}KuBj?3c znpK;76rINT^1MTj^~x~cRbmmf{Xw=o55*3v4jy8Hc}Zg88wB&mZ)En41D6zeth)omK@-@t=`Pr3;qpg|3;QF~n$Kb- z#c#_sX~gH;&+r3_l`+r^kc!^*=LUu!P*q1+B_Swo-F>)5)JI52=q6nL$jAX*H)w>U zI2ghKsiLc-$o=~9HVLK@Ar^xQ_!2vDrUtJ#rF z&=a;{m!xGV*f9JW+9TX&l84HvV`6Gr=s2OxEF)k_-i%<}wr$%Sdq^$4{7htuK!*5V zf*I5C;~84HRp0}Skpc?A{c70g!^1Tdbi7x|7?R4$AZtJ3w0CfDn;qUe)Ai=fom*Fs zrBGrCjxu~Q2%pW4?s=Y6A^E;)in&3z%fspIN_Lz;ADz2A&=VKdQO&`BcZvs1Q3Z7`MH(0V17sW3;zG1gLOolTTrwz}%6!K3H4>uO)O;da zGdecb9qkobAq7!L)$^X07xn)AQ(uaMQbyqT;G$9Ok`ou!kbvogtB(Q+O$hEe3ROhJ z!H)sE?Lo4!#NiO~D-I0|WN2o;0i}h3iw4q{e=Urdz{0_S)&~zEHf3*iW8GC=sO?D8 zM5eU1v_N@|SU#i8$-yxWmbwNv+&r=gN5D2Ze~nNFDQMPmxH$pAWSt7vMI0Tch-L-Y zjLl$YH$yW1abcJbJ#n?o6vy_4^9N54`vP&X*`MFuG6p^{JGTv6;oq6=Iotsp3W*9G zO-%^PW$SCpD0h+f-U^=fSX+T{g@#x;UB?cq0F*@T%9SfRj=@;62)@8U)5b1@MEK~C zfNycYj%LT6lRM~nx6SjHeNa4f;DC^MOVU1eb$dry5p6B4PFza3jp2oeXG98Gbs=Hh zQC!|%owPB!aD(I!HVtxPQ#fU$j4#B9%pvcj5XqmKdwPrL?PaD7@pe1uL}nqwM2R?9 z7#k0etWhA6wbf-O$7h}=O8PoaWgeL2FRNtUu1C(i?{7IYt>nB^S7rCm7pDOt2V+nRt{ZPh-%Guldly{nj2Qm1gPAW3wK z8I2+Bt94d3wkPM9K%=+?1(D?%QebxmfdKP`1_~z);ueuC>b5F`F+Oh#Irh4Fc`>Wh z=>putYI{jznK`w@NL#P8J@Q*j@2GA)?fND}?owFrv(eyg%K~e{VG(g-U0R1~aVZ@$ z;eO}1oeFoF|1tv5=2M5Z7`K=sf~J(9l=SSGD)m0pPLr>ejt&6(dH3=X*~(SqbkfQ= z2Vd7Aq+55*CWW&7$uTu!r8-3$$Eb;Yr(K&A(i&4l2i_HQTK3KEj^keOoDn2k0+S6r z$JFPsE*7-E?bR#K#vRT-Y64MJ?t6JDQA7S692@ISZ0}S^*m&EsmU^k{T2_8Jsql~b zg{vh}F)JutJf8OCSYGFukq#@tptR`#;lk(31c%OVBBOnk9_R$=8uur+eE70a$@to} z^Zd{DP4twW(h1^=NeOKi=JPI~&X{f6X`&OImqdA~c5l~syijSz+TDXgr1u$9+Wyh_ z{um1b0|R(G8tVB(yRW;ja&CNY*zpe;Yj;$pb~Wj(1iPu4@{$`{#6rw+@3v%jM@xN5 zPS+l;cpD|)zVaJg0H80rd~P%D@E88%edP{g5RTXsTjAP#o@T8r76DC5WXNFg zN6N1o5Xl&}q3F1|CwmvcnPziAED#&PnPPLnk&UE3kmEa>NPpOj?<6nx^!n=9y6}Pl z=0hHFLx3y#cE*q>ef-d{`~6+28Gp2G&yFgI8bv6I%#GrmnP-6eJyxRDZ}TjV`6j}q24h-9K6ETy5qFm$d7>09V3c)*macBumA6~VqqjL#X3_rk zZ43G~Eamd*md=o&<7EejIpk<3zJ7ga`r!y@j9`IJB@!>5O{P{>Zi5X6|D?Yi92{tM zKmZ7yT(1#-;N)zqu7+;R1GIkayegIgq4|;$b-vB_D$>9P@?$s?E4R}ekwd@KB=ql;)QcV30AX+1Y`)Wt^uJ`u|3^`-iJ5SqjgiZ5{CqkxV4Y zVMIUc{faVuDGlv{DACh?Mpri)O$6yVID_}C@*Hl&F%cwPI*aX0B_#>V>PLrrpHZRa z!l1de(BpKRQqFWC`CyNWEb=eLa2GGg105)mv2t~D3Bkn)b|9%It z26DETs3_zajM5-st)0j4H~y)pghU@w)=ZSeMMajd+$mJl)R+R#(Qs&9wzNDL>rIxZc`MPBf}Djf4T};5gHuYGCEt?jc-I} zXXpPG`+y+-IdLmgejBU`ls0&gj}Gt{V(7>#psr3{LZT8HFf@H|Ik?&|nJI{XsFqe% z2sD^9MW=ot)0v!_%Btvxg}XK#R*8ECa7<@4zR6T^6}_EccJkY|Z;Zz=5@fueQ!B?S zktJJmd}0EEx$EDQwq079nxgJ2@IwYrrx7V@kh+gZ?_V(xqsy0@{~_>Gr>wzhJx=M9 zpPw&(T48aa&m+rRrhN8xZi+kl3L!5H(Ov`99N1-!f!^L*X5PGdg@_}DIQTR;4#FYz z3P7ymtwimB?V!QHJV@_HB-@BJNCiR+h2p;*b5w|Opx09p>+0%`h`X9CK7)-W>OA{E z>*J?Sp}B7ribMAa^IWWIDc=(!&Phc{}LhTE!2V+|lM6{8w-@XL~1S#1 zb`JU0?F)}GjEsy7FNDm>IeIrGvSgfv?pqn|cR5stkhPP7N1l^y-(LJL1@%L1ErZt| zRO~~+>oPyC7$umTlF|$Mi@czAo>`y*a}@I23_t!>?!uVRNj5gPgTeI!*cTxF&`;Wu zyBjlELgbOmhCI^K(NToNH`sdNb6kt=f@kf2(Ud=dvu&I+@?oscQXea^sIAwm4ulzm zH(ce7c$i80l!UIl@gfaB zj3(f2hsR`7^Ou7!_L)ooKA7xy%OR=re*l zZEg10l^F6s7^=N|PozbG;n1~~RTaLYG13?BJ>4_0LHK$}O2N41|8};|Z2wLV)w1ZHn*+x7Cw-Ma6B_8&%5AKIDg>-U1`G&VLuQ-HS6?vgkTISgS{#z4%1 z*?xMVg-;$io#H5w;jXP=I`Y_UtJ`aMoAJi_BfJCr?b(HeADWs{%$I=JhzZ=Rta4mo z`>Cms@38F5ktrVhckU1LSjrY(V8&T3b7xiQ95zq@_VCkw14Xpnd?- z0Tj~u#>PvNJ~<$NkcP2y9^XPg2#Ahu5FNAqZ()tb$=i-Cq3csZ)+iAM+mPtuH*3DL zWyj`?um7T7#mEZ{kaIS2q?wOkMI@`3BjqW1lypU17pD>BOi9%Mo#bL+3Fp2-baQia zaLA8|(UXzcl6&sBwMFT8u;aZIG?a<-zu1x+3U1ny(V*IP5W75+#zWh--N(=cf_R>d zqqS{;_0ZoZ$JwIK|3^|wgp|~3VMnmtZm0>XN11wHWJC)CCF{46)o_6HZM{B!?q(QF zTd`b>RUi*cQK8rF`Hr6uCA+L0+3A(@((fZ~jT z46%YlA+Hs1<+7MAHKSzTa&d`@h$t>8$tk?evfy<|L*tZj9krdE9g=I1IXp0Vhw4sR za=ryC9#ihDa{*ib^3y%PBqI{ zMEdO`En@Vkj~*$WJ$ny=-sd%YZhY6%F(Gy_=*GbAcD3iRO~_SZytu0BYzpRLFYD?a zHWgG>Ts(*I#!wEeH)Sd2T^LQoc0tvIh6{e)-ZpeSb;5sT^m0%3hxn5uY?0T%u9tGy zl&+~EF1lC>*^<@>HVFlo2%esvNERq|N(;{ff{S){b%6%r`xu03>grm89D!J>R{$cy zP2yuERNZHE)+)cFBulOf@p;$|?jGQ<6pTqFr_1$0HsSTVcTA^GM^Q{Sp6Y|fM|<#~ z`Bd(jquhPs8b0dk_lA|)h||HjFFWm1yePCsgx`pmQ0*hzjGPu}0+snfba-IkYo_0y zdWS;yl%JPGk8PH~8AH?@{g0FW&p^y_4`UtFhg0^$%~*}6MMRukTuyZlT_^v{gxr`v z-^>ZqNu?%YlYPqHdBD4G3?4h~h4NGlDG-nVJE1-KgLCgmx-GyLlIw$5J!Z{EO-+X& zU<@Gsc0QDY71Kd~o69pzh>FrNF&TuO2{f{C@YkfIB(x+g9i2E42R2br z-SgZ2=_uB@kY%|8M87hpRf? zof_YvKX}NBm9)0>zZqwK4E+OD_D3I-Z4dIWW!~SO=L~l-D=X_9ldX+SXNd#*kYlIr z(@1S`+=lowcmInlx4V;`E?qI=yNDF<|G#v+YOVWx-&stjFE;&1j84~3Q^Tlb29l5v zEndECuB~Mi6N^#QtgBFJ5=iT{m6P*PV);_(QHc=_`{4jc?a;cqa~8TTVlf@7-bL_S z%RVT(ok5{W8L8F;CCxu76#d+fIJR0DC?ohCq>wOQ$&iFrj5Y`-11YQ4UaF8#q_T$x z2HuOB!eSeN@IFy`Ok_Jcl;@g_$zdxCijMDx_>&XJK+O$DQui z|HuL)Q~D&yaN6%E3fuf=Z#*82T?w+A11{dbZy(Ivx`FAO9A01m#CZzxj39Mj(sc$x z$N5%!7;oz8G^*}vD~lvgThVAzo>YIah`&Fdtd$VfC`5Y$WK~q$=l33G1Vpg3GV?*F ziwDIDSu987%J3c-yrmVe2)=!L1H)A;X`mtVv6rO}|8-G`v7IviKZ+$@Uy=xf_#n_! zB)->XTQ9;KXiHVa7|&bG1dEiaF5P!Qw%$1)LF&Hye5Wab3rO<0&b4bGJO&QF-ZUA! z=I~6_{Op3r>bBK4=+DhhGvyqQ{jtJ+dXPTT|6Ta#KmYcpE+xUUAdw|4x0J9>;)L;v zKb4+vk&(9c|Lz_B$798pV+0OS8hgi+@h5QO%?!|C(5%(CU?k~g8*X7>5)ukm`93(9 zk{V5c+159q;gONfw{97mn50>&F;Ql>Z{Bztu@E)2U|p`y*&pEC!TR~9e(yXkE-ns` zXErxV$RPP+=9rj-PKXx`r#3%wD}xS5*QMB+WFYXvcN{+&jwxp|GqYQ_ik-hB%fd^_ z__w#UCBd3aNg**JnV#J2?An?d3Ucp^BbQO`(?4%9gG=do0Wk9W57G<5AtH(qpV6*W zi|e$rDwak8aA1|dY|88{f{K3*KO$|IEp+tgD?A3^rXuLPY1xQ6oonoJ_i8?pan`Pow#eqr%!^MoL1Oa&IeC= zP6jy9#`gfsEG{qSk|xVLLO=aA=T63ed=RD2RrrcvC!_6fB(TRpnqclB7L2)niQiv0 z5o?>qU|Sow&4oDM{Y&nOPOo%bRACE&qen?} zb#?tKK+qM+voUWkeA&`5+yqA7WhNIrUjt+1zJ$6?P(%0^oxe##IlCyWW(Reupq> zxGhM?%8F}>?VsX@D%?zZc)=%9xWaraIvpKt^dC|D64d4IRgYTVnr+bD0?Fs+ZOqbD z$Enfau^t$2#ULMPVvd6M?+m`GfB@2XE@)c|zZqABgs=5&z9eB8rk!&=6Vq#*lj}FZtp^Rt(glP0z2+;_uDlUFL zvoAUwUglns7Qb6zpZati z+CNALwy)jLg~${b@XLFToehtOz<`DO+TswoH_v*pSs?CTd985n&E z-tqnWcXSe|$P}zmS+Yg67o?%QiQiyK>X+S2FfSYRwk;NAW2*zuWub-xwT2d_uuPiv z3Fk5LA|~YK&fsIq{Tcg2)&K|%b2E7`2ny(r_LxU#=vma=o-FCR@>XrEwxsJLsb~J5 zDPj2B8mWDvlQ+BHrek`Wab5BHjLn^X!a>~L(Wh^YTv2Ekx=oMSBtdJiA z1+s=B%)tR3EPwH$=~hZQIz1R8mo6p89ZSOK+Ssw!P2qwa1tlHo}ZY{%gO2IXftNdYq{$N zRQw;YEu!jBvPvp3L8;hd8aWPVa^pJaPJ`ar**3_zn_d*!f%)J<2yLhtH_-}9OG#E4 z%W)xN%Z`_~>BxdM?2CVdDmMG7x0mG4jCaGk6g(y<#T?`|(|8K@bn*N%$WjQFQ4%5T zsZqMPL(q)&j@H3!t5-lu3UkWKpL!p00Oi5b~JqzVqJu@O8;OpdM zrY3Df&K)e>>7I%9vI_kwJ!AB`0|4OZSPq~?~{rFOcr3qaJ zheCrEcA2;2%vLOZ%eI?N7sIp# zI&N)(42$QM9H%D7Sjw?u$7l~7qUe_NFEQv6OCleyy)m00cJvhM`d3oW{eK?+^gOab zOD;hc%*xE^AHz$3Wv?!Wsd!NSBbm|gHWR@%R^Jj7?6CqJJl#lH&B}^XxlZ0!_h~Z~ zDJxU)w*ifL6Fhb%yjmBrcvH&wWmNECSKLy@Kob0V-|y*3KtLGWPfz`@=*=7Q^5hI& zDdsLNF7vuKU>cx~!}2HJwF~`n)oX@MbFdLY`zXP zy?VvL%|Ye&B9fdXo+UAnj5X?v9OEH5-{Q*_Di)$&)lK{(bxg#)DJ}5$CSzY_HlgEO zY8GZk$v2Z1Z6<%mT+^_)YE#kMXBGY^rr5RD<9DRXRPj)>%hWITqWXqyp6UP)k_%CI zh*#~^s-YRV=bDg=1=)d`(-AB=@Ex*%jI1mYaVYOGK*bmdL8iCS7uPErOB0C$fB%bD zt}xhrgu)2miJ7k=-OQk%R>;k@$qYoZ*LSv1`XD6xa4kA8@Y~>^plQ?L-S_#-nh_!> zLL<-P*eSWcb!>7s;gvfq404}l2;j4Gb0f9zs`|+$!TpErojptwkJ*HW0(>T9Kgb~L$Sc)3LqLKf0N~)p%<|q z{!tqQ*pOt32it^+S1VL0mf;$cnhdZz^8egdHr8&bD+^`3DXI?;t*H2@su$~{I6nR; z;2Coe8q1c=n_Z!)r;%Tb;5~l&vWSxDN)!w#T*9R8;OzV6yMs!xu?uwvTvIFCI<{kj^s}SMlBm zN!7el+CR}mcVswVQ%RWP9+fTgCO2jsl>dp0I;mL?k0EbTnqTn0PiC2$k_Ay?}L9b9(Ip_ON<6 zJ4o`?)kB!*I(i(l9%bd_ph0M~n5y09Tm<#`$?v>BIeyHQLz3Hbkk@NvX+Iw=TMXkq zhBjL%wFyZ=SF(=#NV=Fk)XAszQy<~M^#8iaWT36A9GIUEjK#Zns|p;heqj19o`>m@ zlB6VQ7HV)0HLftMCkUcwd_3uFCr_Rd5CHtw1AWogkIl%KfI3n0fg6wR!%7P(>;5r= z*r_-1ii*k;1?KwNT37{r5K3}?BH*nvuWn8sT!1Y4FATz8Qd8qUb?T&64%5-21S5RU z2qTnuFcuoGUWKdHQ3~B+TklRY415uv=j1#Yzm0^99+z1F9*nZ^R3Sh?da@Dk)fx8`+2F1W+65;M~j0#l%RD)7Z9k>ysLrsa~;_m4yejLwF$HL*!$) z%7BKZo~$N2{*vVF!c{RileL0I?m5;hu$>A01)LXg7UI2K;?ZCF*h%V z`IL9?rLP!gD~{Y_>A7w3m}m-PT|6L)nqXxk6b%u<0^^d@G5}+rKYi*Ss;s(dX{jK7 zqgc0CcMa4R7_^xkwUJ$|eaoUm$ov`eQt1EK?h5kq=rqYlQNqU>YKTx(S2r;-lFAad zA6A-O*{fZD)|<#szKw};drx_&o=QFg`Dvy0vm4@%LozVChT#Q($;z9*67SyKL?n6U zY4RAtL@cE>i1Wi7)A|rNdhJz!L z%2}}BckebExnh&xIcLwE#~4IKS8#tILLT@IlzJ{1`=2g$UA11E#p)E02_6$5Az^To z0C$|VcKfZ6x&-9w~LSV#zt&Slt%5J1UO#W5vE(j*@Kf&q&;b2dsJ2+xqvpZ_e| zKRiqBDsqS8|MCxPv77eS1-Yy?H$bgS}iC(Fz&TA~@=7lj_} z1XTQZdTXar1gnb9^#^Hm9U*NG*@eChv-F(rBe0%u<`Y^HQ-ackiHB>GTvH1N!C-(Kiu2?I}MGs|k~KYdDVs z7A9wIc#dbJ&HD<5&*z7GuiQ=e6lHEV3)4UXNS13@;l5I2hpIWHnu)%WfR@Vt)!Lbd z)x7`he#J&I6-AV`64EA8#)?{s&_=XqBo!$_Dk+6n#v+waC{n6rj0R;WQ;H}NDv2!( zhD?!+=k;yx=Q+RY_dL(Ju5+%_AN#UtSnJ#8^B(T^ec$hfHu8s2Aw_r!<@T)9(rbzP zlqwAuSxI8A?{3#GGp*bA+MdoTFgKNyyrB*>Hd_9XZuL5KU`O4;PO_t-DGB+{Rw#;t z#>W@ctQe!}I2(^|h$zoYE4-K?110|%Db zu8+}|NP6BIwQQ{DVEZQnvo(;CGZ!*1K=LYpH98>itq^8^U&6GFlMaiQD{lvKr}Xv z$Agow+g}Qu8+{KV?nIf$3(g|`Mjta{aP<4SDTF_1cP+>$`5`Pcs!<)an~_+HWe{J1;ObA>ps2z4Nr9 zXh7Xi|Myyy7H6Exi<8$xbE{DrKW|LD)hyk`ss|4xmtJ%zRDS%kap8S+Z^53ZqhnS` z*WcV#SCMlMRboN{?4ubyl`Jh|N#=eB58L<6^a ztsl_uf}ChEd3lZL>b4@qoaW3wE*!3`O!?JyeQEsDz;AD|mRIGJwK%mMBK(k&i$~=9 zpUU#^B5j*E&rECkSa8<;*S!9(DgT}cseu_1EDdpz#uF2f>2gupn_qNyV*{IXe5S8h z@s9RLQB0*YG-^IlBw1{@BJN0ub?;h&x^)YuMokiABCc@QDIEb*xY%GZdU&thE4Dr| zsp_2fkrzP`mgZRn&sN}V1Aa`kxZmHhGUcU)NaWjltC#(h{}7GP2|bB*a5&zugZRNK1jpTqbGPbWT*>NCk`SxRX3ymZCBZTrr)fP7#c zpp`LYE@6PMPu6~WLtndQ^=exOhcy8KD6IRTDh3shKa3H>&b~%-w7WyuHg^5~g5MxWH%d#gIQ*{RhZ0%RAIs@sk#*k30PKdkCoZ}(*N^Bqh80|k%+1mMl7 zOsH3A4yo~Jwin&`h4lwDrw=N)S}V$VFv|W?goFPK4`J$3`U22b6VtFk$vShUg87+X zUNebv(M(?gY-KNzkoLQD>o#G<(>zSV@b^qZp$rb3BpK}F)K3xa(_dsN8czZ?AN1dM zFRg)!7SJ#A$1UCm7rdd6(m69ZbL&>xicm#}rU(Ie)#1SJXHD(wptr?kqkaaQjwq(P z&p3M)%n>NiRG$2K8$F*s9As-;D3zexjlH( z4^g}NyR21%&SYlt1Ac`LyOd&hT2o5$eTlK*gdZae3|v2&p;L2pZTri+Qs}C+)OUwSVbRhr( zopRcrmaP++c9TmxVf0T;#&f3>pigC7IToivU*9HlG;}%uOO7*V?%KCcC#n#F7iS93 z=^j$W@EdvgJ1aXzO_j?@jHtCOt;K2bvi+T6msF0~R%uCNXoJdJGCQ&rO(!A_<2xx21FM4T?ZBXf|m^ z4Gj#wH6+KQaZ(abog0s@0D5Y=5g=v8BcR)BA}kYwo0({Ste-ckLxJhtDR2`JD-`;d ztx-mFk<-1it`PiNiF(h%*aG}k;$>SQdjKqecTUtd8o0o=TfO>D3>Hs^N)H5+^7X~SPtz)^ z$1&Zdr~5f$&YV2})%+SE_#oVg5daZpFJSSEw?N{ZA@*Z!@}7Y?KrDT`2^1PI%uUh* z*a!Ie`}f*r&h;iNE?>MDmb*6&N={A(OUufJSri*=rEUb7n`~}=+%Y?{{NtVm(=4w_ zA{`YW6vq|}fD^U!2hYCMh7bsX3p@vtPrJk57NMWmbAFTEYGCYx0f)GhoopZaPKy71 z!dmd`uMpj^#NzsP`fUS6@#BkY=ISWpJXPp+hVc#hY+!k?ZcQo12t-Q2EM7W%p(SBy z)aV>8{d@#{#u~%m2?T)(flDD!G?PbNt?T6U9K8${K5}#yXfC|7AH(z4X^Jl&C)Ux` zeThdC>P1vZ6ySi-RIP{?mMmL#=hm&W&@+7N6@C1Y+I{%=QAvylhR@Ir7~K*CWm$MX zwEs8yuJNS?a8l1Zv}L2&^{y+bHYF5oQcud4JZG%B+5ZF-MQ1UV6EH&VSN|IC;RzLwGNFeb?2)16a4}wvnZ=5xO zJbgC`lo^JEWaO@*1bW^9QT$#QaJ$M$hB;(`!3fK8wZ5xqkhmwo)FEo1PmO3%eh3rc? zvug@9H^S44c%N2P{_%;-0@Q*{Wrb#jnTDt&TBsl$vp)GkAm%y0h9`|H4~U^}L+Jp% zw6Sq_dw7bBl&Y#aiA>)ntyy=t=}N9_Jlbmz1DxfNMmhu1Q9xEz9nov|(Cg42mk+sg zs506<{6nDH)_?x@oWMX|?hxrdVevZ1wU|V!(uR+@4QnuG?+K zwe|cKmC9R6MydKUJYPB0xBdOkgJ!oAt)E_2>FRLHI6>B3DzFRw9bS6!-@;1{weuH_ zLLJy=oP}(r4!nj>pFeAWmJkf}^NTvC_>Pby`h9({bHYlZ{G_=9LtiQOedL}LU|yyz zZxYy);;6^aTG7H92C&PVvUUw7tuBxPSAU7xo2ZjFsOKMr^go5pdBTL>T^(o7_F>!t z07Lf|av+ux#4-k<6fDf8)t9O&EBDX4d*jAr%}ls-)T8&JxbxnaF>h1n4qjC?n6R7! zfgsiQ83(U3h?$+~;H2Q06(?!_6&g(XMOfB1X1t!IR+`1H*Zoyl+MnNy6KE=^KAPNa`2_b$ zY__TBK-0nWtE^0-8~xzn!{o$7kR<`qhG;*S~9uvls9rPBY>h%7Qi_rdknnIU%Np41dXFnZxt{o?>D8f;f9n z)sh&w3@F^nj=Qu;d`xO3Y4#DGzSv$kRw8KN0JXyxPd-o29c9Clk zi5KK>yLkeP$Zb6a=^`3YML8ZoeJVa&g3Sda66(4dk2$!Zt^IjnM^L^hF?lth{U$LP zk7Ql&V&$ebQwP79cx%jg2q7_)b+gP+QwKcpYK3?!VMHjZ=79|8l#zlMfsf-7L*;3cB;|}XkuV^S%+U}gL!_u6K9j;|gPc$qXG;5EdL{mStG%S^LOtPiZ z0Rt8Myxrr2Yo9$MyeReRH92-kOycgCnKmABUfmPgh}JhY9IgK9Y1H@S*;4KJsXY=# z_(%bvC6aub?tOZ#2e@QJa_!2MgbNoAD9>xn ztKNQo5{WZKkGv*5leFZx-C3ROFCU(YM_~TrTXT3{qeX6RyLau%d$AI7IBiBQu^9fa%ut+RuYpcAaW2WXGw%0Ke>7B zd;5k{zRg8>5AH<i6n9?A=j4RmxiLy!_>*#de%WXXQcb%O6S|MG z3Cr$plk4m&|2WF6L)DkABA=AOVaDf{y^=h=0Kanco$4q&Ta8xMSelzlZFJu>UgCSy zEBTJk)D*B4(a#-S(z=*|sfhCOA|GuQU>4EpohJYM-FihAyQLEaTt-xXv$=9#dO#;f z-DqK*3+TYhSiKOvw$*Z?gI)4fjq0CROCuiczkIht>;I-V>Rfrdv1HtermOSX9h}@? zx=FJ`#l%4_>yEA4Yd$DbcGmAps@!MY`p%y1bvutO8I|*4i&7DjdmOSUKQSqW*Mh(;;)Rb^!vxBD*M2vKj7NnV}c<^rw#_mQmD zSvVtb8&QreG-#v!{U=w5zs(NGpFIZ?QwwV<_k(3~VJhAEvqFRMEJb)#nrjE~V%#98 zHcy;9No|JJu`w+qb08f>`EeO-d5J8OK~R>=@HctX{p-|dD8%gV(4jb0$1JPE`Ow2- zo8lE!AZ=={-RAhh)9%wdyTw7)Jw{V^G3XsGu>Y z)Hr{B@`*z)QV(@W9#S&Vw<O}7c(Ns@R0%(k^nIlYI< zfmJo%v%6GSX+>PXy<7e;7qPLi(=iy~>_?%aQB_l8lTHWM$5kdToxO|}hG-Xi+zV zh#x4fgH6Coj2*IL`}RQImXa9IC`pHb*{QRmGU}{z-M1o`7S^N;>B&F}_6B6$<86&f z9zXtG{p;t$>(@8kcpeiQD_9PqrE=*xbDbNya(=16Ex-N>9j5Tx20@}H^JAJIRs7Lp zE%6edsRWBqL~sGdjN-hktcr-Eg$eM?RQvRabkDoSsBG|dI8VuS7qC}Rwh+LPs`F`1 z{h4AjK4u>k)KoxfyJH;yto$Zl{_4TB|){SKaw0 zzkn?V6ztdBl%=HXLj%tw`|lMh-Hrxqz!j zSVpn;)&udL1R-A19wa2Tm6W;tP00x z`*jx}Kip?>IT$>kth6*UdBFp2X)tZ-&|Y-GT2ic_tp-w;g(}9P0%F4ilmaS+!P^CQ zE+^X`5nVcV#4(1C-eXs~nVRN-Y3=^ZVzQQQ;>Fyrq8P3*y%EQR=HAouJSbCn4U$KW z&jfAl-!$F4yqs)px9ZQM+7Q=sgAz9b9PL`u5$N=&8Z9jHfQBvd9U&_oAd&ZEpAVsZ!XmCy@2^>LZ<`90o^qXVH1tW#=}QC6KB%>SsUs-(r#m+ zIyVLge3sSoxEPED#r1UkZf7oCT1ze0SEZ7rJ>XMqfIgGB%85F&*m}#p`Zr-QLmL0BmD(5gVPv^0yBf?X~iJto5m#uglC&hEBaI$EbIW zFMfD5vGmac?2icUUDc5l#%vPy>Le#m-mKhv0XHXc@0_`F`%CF@3bY+u_v<$8kyRUj z#R6!6@GN}5;hf;_yp&%B5KPT-k6kFX?|6nsbF8MA+XE@~czRZA^Ew8ZtCTc^yliu%Myll1QI z8+20;j255Zv2vd-Uk=HRLBe5aY54_A>He^?)k97{NIP*bxy_pyc8O!Zp3!h+!(Zzi zX!F3u*JH?`9QibN zkd#gkp3E6iYl-> z3DN)j>60YoCZcEEXzDRkN?gXi<9t(ca_oonq*24p0|J-Cf33CJv%~u^IixmnsB%8-u;TYra&ouaAKl-)umvE+X7>J ziE&T+&u0%NZ+H-QM(7ud#fMQcMlP3lsyji;c-aZ>i*27a%C7o3E#)EQuq_8o6zM6k9BT^CJA$% zeQY62k=K1ztQZsY@)hS`o!N=i(}&*f2lS8G|eDD0P~?(UFoB8q7m6n-rz zI99Cf3}CQXZ%Ti6DHy({6!4Xq1*1SkF&F{Yh>d;wi~|r7T<4ySt10koBR{ z?=}a;pN@6CC z!{K{gH^Vn(*pi6KS1?`NB8`_VxOA{=)SJiM`r7XQTrD><*S+BFB&J01^QPXp|FU|( zWz`w`hRbOhGFkzDiW-Y|0kG(ck1afGI$X+vy1LoQfT9)}!LDHdiEE?ZICK zk<+wx%&(mJwXZ1K@e<3Zq$TU++7_rMWkkf(7!_PY#ik?{d~553eUb8-$U9D-9zLQD z+|pDYf2SPVypKEs#`W>=~f>Mm3a>RzW?~4B!;DPO|>|7Wav*Tcq{#+Xvvbi zQ}bPw7^Hm<2iT&nQN90{Q{?A(g>>VE8B4pm7QI+`Bdqtt@k{=9I_gu&;7za!l>)c% zByr(Mm~SgDFQ3AOkn1+rGx42c#J0C{2^QW=f+!?4!uPU)Y0mvIhYI&UCQ8u5GEek+ zvMa7Ef*^ltz{pvohIG4y}8x%f&&k$}L z#7IDFsp6KaQ}Fu^jaXhc#>fbGd5E6gPRDl_skPiv^ZQrI9_4@UnunRglx9)~IpNsR zOqe44h<;M)EGV2<2$@^&hE=~as(Rh8gWoOAVdy(z%OywWp85~igK5yJxcXMlXYIK07g>iis@}DZL>D*K=P26q z(+jQ&F#8+V{d`r{_uxqrs!ub2tyR|mdC!1;x1_Xe5g+q6@dtGu$Nx6 z$79(tq3ngQ$?poidQ+43gs-N(=nEWFD)+56jzcc4w)}!Os}go(RN>|dV#f7%`-6&m zuD$)uA-MP#_PB#_lMawB<%7W{g@=e5#`L$ex3Wmlf_00oS%a?JQRw zPx1v@#AxE|I*t})R`RC4mz||~By31XVaFnjA@_2Cc#0TBF=I$& z3qpyXe|V0vpaXVh&F57*PD|}bK5?(-Cn#EsJ~SEb3P3bX@v+N(kVem9g5`^fpvK46 zmRkO5K^-=oYxCC2y|I%8{~>=EHXh_bJGLY2-w#gr4njmz>y|gDik8~3`mU4U#>ccU zl|_7pMHk=BaOlt-MK+Q`!aml*EkQqdg@SY7vbMAVvy{=ISluki>L4kbxNH~Rxaa9> zgT_x_qZX5-#2`Dna_kTQ;c$s*U8j*9dk6LgjK`aKc`PM8k21c_)Yo$VU! z+L+M_A*-7bgMlCI3T`-^p}Zp(M%X8Rm^d^`aN(K6!SCHW)zh!Eg@zn7f^Jp-5{f7M zVta1q_+mEQcCe+!@TJM#3_&k@IDiEI?{0* zIdVilpCopSorb|*eXXtU;s{P<0}>*U;AQB%eE9^S`mySoPynvI7)17@irL`38Zu} zGvRHQVI4tNhA2W0%`DB^$0sx_?3(I?;IH?=&e8YKNzy7~TuHZ}`kX)ZlR|z;oaMnB zTUOR^2gKc)Q{>~5K* zpO2#A{kwO0suZXi;dAZmrqr$zYVn|tJ7iO#5Dn}Z+JFbag!!78CRC@nzkV$D@i7?8 z^=J=h9QK~z>rTyb3M^~ZqNPWgGi7BeK|3diZ-VBPUAO& zcFl3_+{ueL*5ous!(R4MT)EcY83Ag=3#TJ+Jh$R9^P+)Kh>g3d4nLHhe!sXFW7Si) zIZ^{yX2NEKwNY(cIpUP}jMjH3CM;JWyNqA+c?f$Ch7VuCt>xLOkMl)QTo16_xpQas ze5R&HLine))d-(li`el4_?G9Yt+GH%cfLy@Qt;3TG0S2f~xj}y3-e&U9%dTSMn5}{zK$AU~#_Zg2 zX8upOvlv$g)xKX%S1hlYv?jWIbdtkYAV~@|7N(8xp%r3c{n}^8-{+yHMmTlRpjK;r z7(#9%$~h6dP&`ozJ09bHEyXVS;+MZdu_El@qr!nhav@Iyx*g;c-#Q_ET{w>$spk(B{PS;YQVwr59h;)LeUue+vwcS3&+|1^kUPsZP9^4xQgX0Yh?%fbR2GJmJ*I04!gZDtokc8l}pg;%* zz(Fj>u)h>EHd|LL&-S&bZh#b&`Rc=+O<7fjN%6eEh9suAH7{P!YvZFkT`~Zo5ycZ8 zWQmc$tRF%g+X|6L;Y7+?E4-hlGwam;pebd|(FnFmNutl?xpTuMMffz6wX@vVT(w0OU1N2~B%dhPRuo<1&^xSD$dvASfYA{%M zb2m*EEhXV3qUEL0#N`!qF0AQxo|TId2L}TP-(Z%@Jv_2;f0jfWGR$X{9GoVe3wCZjwf1MBkIXew*%u zqfO_C*L-AyB^^Y`6~RljHL*_MTdM4tzb~Rt9bTN zD{o)l*SnH%IF#?!?cq^3SXhwcwAh`iW$orxL)c>*=yUum7rVPRUxBCq1`2qR_#IHz z6I?Vo`5}?Arp9e#v~w8LOf@!}KZ%PUxuj>uL8{M5AMjS#%lliqc7lgqQ_#qR9=$7v z3-lYf>l}fgXPbHn8wLgvKZHGI|)}qO^VJ8$@3)%Z%_ literal 0 HcmV?d00001 diff --git a/account-chooser/docs/not_supported.png b/account-chooser/docs/not_supported.png new file mode 100644 index 0000000000000000000000000000000000000000..c7e70ad1e54680121be62bcdcea6b688c2ad0f04 GIT binary patch literal 48968 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 jMy00qA6 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
  • 1XpWG;?$j2vH+isg?9Z4vt)p{u0j^Ww%mH>|Sk zBfK>ePzR4A=U0_Pf#7~~A%r(&meZS9*(K@5*Rga(szI_#`cGjAM4X1DgjCN%D^;}c!9I8D&_ODqGP$gd$D}=j=GqMafic}J5-oWtTs;sc8MpMO zyx}M9+HG{3x5&-OHY3IhNNUW}7Pp>$QRZ}IlZ^$WPw z1fP`JxvC-ud9_mh|4k6B;mBKO{N_?!lEY@f2#h< zDZnm;Q~MhJC)&Q}0eKvF5{SYc-f&03pNzoL_V?BBGA-BfA&EGzC3T4WMSwj{54+M& zj9&IL#R{UX^z+ap7fg4EwIW9T9;F!hNSz6=V<1--MUC$Qpo({Jv;6=V-G4yoEGA

    GUHZJ~JbZHkt$HOlZ^V%-Gi}eIUpYV+6hY(6}!2TtLxJ657B) z_eyMgE?HoN??=VG?#`fod@4^XGj2kC^)8}VlE7tH_xc2iLrY-oym_Tkd?WdWyUBTB zm%0e0qr&<;v4LK=uKIPwD)t*}cAR1mi@Fln6_ny6xZhJK8#=L6&DCqQtxS$pFiaFb zk{cg0PaTa)bWp}uo>GoOnarSn|{LPv_U8-%f0-O-V7*a7#_T0J;yzr)q1GcG8MW3tXD4iFLyE8gSHsr_I- z#$ChcIUksJw#;ce!Izw^_QE>HauyVF=^LZUK0v6all5ExftAD>XRRQ1gUzA|>W7(} z2s9EaQTl*;^f%*2OxJ-bp; zE}o6&(5vvab_&ny7Z}YSL+gE@d}PQDR8|?fSP16FYu?G_C`6Y7TxC~Cw8>2hcq9t8zSNTkeyk#DaLsnC^;&z8 z?o7B_5YBKXtD}T$Uq#JM)nVIN`2a#%5D)$HGv`H)<}k9jCuk2Qn@}-fVY=^3^pvtS z%r#lCmRX5BO+wYWg1ydG~Nrc+_xMr5MFljKQ*L?mbX3|g!Y+FrWa&~ zT$%~^qDA5pP;mZ@J)jIb8n@#7QmTvQ>>DI1F7Z|F2V0 zrj4_V<>}y%xbWPaeP&yaDs~*21DkkwoTYx|B$i#L#a4`Gh{gY?u-ktmS4-h$yuNm2 zQvb92=Uetwyb5P7m)kz&RDR@Hi#%dkEQYQadD=ekz)A&dIby-OK@(t3?pM2At7CobItk9CexL%6 zF^;A28u+n?_odOduY6^|=v5?U^36s?b2l?i?U!1iQ@uKo)XsSIr4lA;mB1BhyJBUW zCNMU#AzH)H4idrK6WHsQrMY zxou$+;K8E~rwI*OMW8(iHE8+Uzy1oRR;NUJ9=-gS=Be#QLAu2xE8>l^Fik+B6zV=9 zxmZm*>jz%VN+hDH^zLl;w2(TnY80^3v3Y0>1r2#*3?&U-#H^K3{>mZkX0;x;5BG7+ z0pN^o^WslH3HVIY=rW-b?ZHj0r-1qgAo5DC1De?9YG`X_147QF7j=Up97gtgLdoY zC6b#gHEYDfEc*zw3Ui(%ac;qMAz2B^mqAi|DF6l_ZQ~K)(=Sx1EcFpGtEOs5sZlAr zl8rSpKS{0y?tm!-vYj(nh8@hjiLniUIzU_MqTJN2p8^&U8JZx6q5zR=Fz}fCpr6; zQwzv4FL@2O7AOl{sl^x^@?#lhgQSI{UEzlga-e`YbJatj-XK!K1qcPV`h}O!%5o{@ zU-y|J$A}5WC<%w{@4MmBJX1YEus;Zt0AEqw8Vl73KHU1S%@||)?oD+}h_1SyVA=L8 z>Qt;CP39MvA4ghHFi3s8@^JD`5$Ea)&Ox0CGU1!2k+R9KoMdBArE1?sPU`Vl(!2B{ zu*WVBj;c!#Y9up&#Eyqnz?-V2U8*Ms7>j(9Jdv_hbYVwt6tD+hrTf%6uD8&fMiAA} zCdMS-ErbbqxQHsXdyHiY4KJ+WBm4$NlFB?{i`d`tc2=}E4mRsvSC|{`VUDig+U_-KSi)8$cL;gMd^f^1jy>KA+J zlqZqS6iHl#poh~DqJk>YC* z1HOp1!7TIo!p@?lR2adHf+@!(h_-C(~ z`}sdT?$6{UO}Rs+pyMID>JJ#eAs!L~h%bAyT-A-k&1L)%`6fjNHW4%02)tW}P#CNM z81&1Xs!b2?{q@k|wU|51ku0uR7M!F?`0(Y(xKkWL$R}m?Z%Py7NyjL8v7QscIf;n6 zQNoQFQVe$FM8i|2NF1e*h?ISZli*{=tSkXvzEOzKHM|E``Ks1gV9SAo>9DFjvw8yd zAQ4&z3DWy;fjK1;${1hn1k9*H#2OigVnB8E&6GXzp1u!_4zvkIX-Fp=%IQ)JD61YZ zn~n^Cb6*zj8luMW1!N4kO7Q~2LTooA7^=OR*$;Q_v<&SgxkLCIQF$G{f;4vJ)i}`a z;Gz2LF+VIvd{xYq%^Qo5He^`x9k1~RjD3U>koOc?0n`G|^Bf_YI7g!?2*LV+O;tVi z!0^58$Rd!)hFULATam~r%l<77Xp!{V{i%EjY{1y$5gTEIlt-tTGM#K=@$=DNJ1~H$ zPk#yS8o@2>A84K+zeeNsqd&FR!jq6u`V5+z_%UGl%V-$J5^MLlk&r;1t8z@<(XgLjTEBz$GV52Y% z_A^Ky5swwfx6j|0p07hAulx$^M8oe)TLCg~_y^W1>5WCq0M_QaASrC|D6-DfcN=)<#;JLqvcv>DW}a*XU4lr``<^(`)RQ?aw|8HAzfF2ol@GmP6!1V!@xpETu>=7m zoVI+`i}_Y2{`19D86n!lRz^iO1dB09s-jXEgBX;QKxjAg@8NXx9;1_fb zuA>Pg1*354fSbzN{}K3S%x$eS95WQNR*B$A`9C>sWxP*^H*&jE7UbZqv+#-drby=) zBK#BF27;_wu0^oBq;JS;5ts~fH}31CWHzut2Et_5!BT#F)ihZJG4 zq@=UYl-*0O6Ko>-h!~`n`=X>T>0ABEkCrBV85-cQ2mv=Q-fbb|OwgzDN_qA4&+I@3 z8ZBHFF4~KWPE|6|9>u$|Fo~lc%kT|u3URP>X}_ya@dixwFWHw-Y0v1>r1~hNX!qYp z<}qwoE{tv zQ%d*Zr%7qzyXsv_<6J!%i%nQeH077XUjIlEApHZxQ4c_d9z)sVrw3=%3X~vhoIT<3 zKb(5RH!}_nc^ya`v%Jj2xgAp}4yblhaEpI!G~cEnFG=7^WCUZ&XV9Ds%%}lNwaR4H zpV!ol?SH?BK)+`d3B@AzDfV1dxKeJriYJXcuzFb;lyV;{kL%jqq@#$2k^Nuny=7Qd zYqvHmNO!kLmwP2UCETQRcL|6}OE(BufPhG-7>Ek^j)^|CkM->L z`?KHYt3T_)ggmP+n40Vr<_^@~-*bIbxx!~^oZ#o?M1ee+(iJ?> zM5R;9*#V-i^VJ4rI*vJBk=!YiQer9*Sd?D#V}+`m=$4Oewg{74*<#Qi)#)?Qdb(*C z0XCbbv&}i86dt!kG*Cu*5CvODJZ{wgPbHsFJd3^Ren$3-Jp--F4CUEZ9(bG?AAt#J z;Xc*;eni|3j@IqQT5X$#JYeZ7x=h?zkwyAkjt zW?E4Hv%YY=ch{>irwk{WdyGK)mnTC55KN-c_9LxOUQOkB8KGE1^NQpP!mC(GQlX!B&ov+pr4mSGBlVP7nPHf8Z&q}-Q8OsJZ4 z7wl5CHzw}i)oF&1_c;gw%#Ft!uN3IFd4XV^?Evt)&vL#Nvdt=4d!l>_hhm@nZj}MU ziCG9bdiqpOh_v;}je?|$PZQ7R>5RO1>PzMEcqNkl_Q&wE(G%Ebe07o10>o)g1>b-! zeS}?98mB*7i#jo#1jj9ysFcj;rUtR9A8?srny0Z8CrpE0V&|~E4XPNWzo0(CAbV3} z$%e{Y$L-Ekc-#cn;}~XR3$F-H&YO|j)4-Tz47Bq)Z9j+-#3U3$fPlR=k$wflpbS3? zUaQOY=)k4LwpU0(Pn6o?;_lnweQ}um`Vi~8T96#n@D6Eb(j5GWo^}CC3S=OU7xoI! zIT|Yk*(0#lOeWO+1ws+GKrbnu&*90Bt#d)- zU4|BJ7rX=mfVtbZZgENH3&FDz$6UYk-GPrQy_tgcdQiEDIO=;dO@WPuxGKwE$%5-p zPH}t>vJ)vJxe?iVAqd9u_#plfrBG>;NRy95ZN+2o3^a*LX>BiJ<2oP+d1|iiZbO>@ zA0Od2_7d#OGv=4IqNKB@W46*8pMEKp*^D+Vb|@ZU*Gxx+0;^OLB?vKwM&R8T^!ZU# zBbOUVXwU6cFXz~B#E+!a{qi5U!`Wuj4m3tqzQSGJ7jEx$SkP9EUxI{?Q>B2krm%EW z5u=FEv(^4M>$7)Pt^89ra#V7VdF5{dN_BE$+dZ+H+@H4|P(N35aXq+-=`yTx~vCXaO1B)Mb%K4lp&`)kn^3!6uD?amls$^gR3D*wi z)dJnhcHxr)oF5>>kpn)MKuTNRhstB%>+`FRZYp3;MDM?UNuMnj@15?jPkb?}_w{9Sv9c~%cWMP(QGg@8yFrzGfS)$pSrz4aXkeRC6uOXQJnmq*mMWejB^`hvb+b}^mLd{qWJ;AUk= zm8s!-N)ne2Hn4Z-nDh!bNOZ0+54obg0z|f$s&vj|5J0CcSC%!x4qv`hP2=YPjwVxK zECvIuQ77Mu73bvh8>EBe3an;eMVA_@wqi)NE1AXD%SK>-wqhuY#t9%A7cQ4f2JQqd zg&PJl676A{p1TrEI3k|GvL@wO=Nrs>?>efw>X3|+SQj2xL++X){zicD_wL(nt~bAL z=r#?VsV|E@AgP<>juU^#=#4-tiz{r-)R}?mtE&qvtn%}e0e*O^*~pjp@bkuLnE*6< z$v)Am%J9Rt38;H)wgcH$h$ROdlwa?7rZmTmK4SCoa!Urs5!)$+xu=cX^ksk@TAG`x zA?Yl3x5D~y<2cF-rZ2pFc>QUGS2z}-;vR2~FDHE=SMO0op6q%y%&7JdVo4RCEF`u>_knjZiG63LX; zV0z-l5bC25?R(xY@myaBGuAlB>+G~Lw?TMM;W^lo%ENp4W895-Kc>d>-Q03L;*3*X z=0w!z3P(oriYeV{I?{TS%l=LOdLEW0pytNY5hK&?h!OE4)}}(J09K2p^R%4#Nb7>o zc^%SkCphe+@NXP;==>@T-MGdiM{oe1ymWY@w&crwM=eep0Hu`DqZQ%mZu)@`Dc*)y z>I<`}_oZ)lrhmZ3&pFoEUaW+T@6Y3R%C|$~k{FRHDtwy6tYmipvx1LkeZayf^yWt7 z6}%{pcdpcVUaN7N^y#FhQJC2G5d*>*+BEm!cdZgkP12-3<1}=Q2q3WEr0!mX81zHRbc=S^-#9$Wv=3k#MHjfm%8RbMg)Ewv6+1vD~d6(Q;cJ81`CkJsk@iO=g5k zo3@&FE7z#K2nZe7og9z7vFx+GJNSqOcgB+^IL@@A=={ zCw^)kd5yRgnW)QTkf*1NWO?W!2CPG_E6WbecF}U4_6THb?I!YMpEoV;4^N!Kfc*tH`oD2DMuAKFL07B7qwhw?|xp|8MNu@opY#?Uv`@5PCon>(D6=FCNG2% zS>lpgzRr@t^QM@7pj%absfW8jH-|9)2E zKi4p8b;Bh%I{(DMFpwnBP|4P!f)(DIh?`Ih7Y%kotu(rjb=XZ=Ip3&!o@XH%Bj1b! z-A(@Qdc_ECH+eP}Bf4xCW|{28egYv&ARs z+Ts6Nf}G~@?E_Ds$~`~Y+i2kv>8QzH+N@}LU|D6=6!pMHIE9bWd~!OX2)0Nar63i2 z(0dlTGyMQRc>)0$K)vk{Mt|G~s#2f)5NdnA24U|(iGgXpPy}>Lx9`vjzv|Qr($wU{ znQPvm9@eP|Xw?;GjH{if1z$Prm=63;CrcE8QZ6)5GAii*IDOkc=nir;^t)r7ucY+GMlw|=%&V;E2_4pV zQ~B;$u7+WkBd@KilZ!BXjufub|1LrNfngrQTtjG<@q7Ow0OnQ?q6EAlYXNnm2asbb zyaiJ#aBY*3JcfprggR7^#2{LV`^FLu{3{Crl(406U$a6P$0lI0)4nlE^X=3R$Zr31up>YWhNNp z(h?bE>2@dMB|*&$Jgj;3E^LGX?Ps9dUG#YLcj5-Y(4!S)(d%_|Yw|T=?j(_41vOh| z9c$ufE09ClAmR6Ml=z2i;3zV>88Dh|`QU+02pwVK;MDuGbz<&IFd(wmZWM&tMo0Y+ z$`*E@qVNVLwS|D)AjzI5lt2MykOI2K({&4(>{%!puzAqlyVe`y@|a)LW8Vz(xde@? zO{QDLkRr917P9$0UR%qNtRA9?^x`_RAf>xCTR~nM{6lyH#FQ4QjL+-Ah`9bn`w<&Q ztrr5jPzp7XK4G10ARiiRyAt_g5EKU%r~?~2X@=V1?QG8qW!D;YJ4Ct|aQ&HhYmB$Y{Fv7ya>07kE`h??m*zq;0PvXgDh?E zTw@9FZPksDQx(b*o5&?iuRvLtJDl*|Ek*d)Y|gnogJG^&W~d8n)Yz#BmrGFT4ZIb1 zHWxV>UMk>P99cK*{K~wGq_fuugdKQBl5-R*+7wtzyZ1kF-^0_sKIOhVRZYm#KjWxb}y~bz$CV(*?(W1tB*wdK6HHeQpixb_D$|a)7 z22QD5rCAY8ro)G8o`qSH4%Si6couqU6-^mf&4(NH4ZkAM5}8Pj6o+*{ ztOCMxl|Ws=D&(McNn5UA<0dUwss0LtHe>?3|E`%Z!#i(~rwl)RtW$P+U;{pI$H+M0 zah7KVEtR_@Db2a%9D*im4J~-BgZO%QuLslhc?}|RFGJ9UK~k1DgwmHBp$L})$|^G6 zgI2 zoyz|PZ2b;TTEAdp3GX>W!wbmPEA&>p8AT0xw9Rpy))O>Xw3Tv|g{OUv(jgP%@5+jg z*cn9K(NY2}X! z@D#XoI%j}E$H_RQP~!aJX%GO-$fRqK%Ii&RQfzLT7xpkH-qsn7(PE*F=iL1@Y>tI>i}159QuWhTPl))FTBk zpNlODUXo+;JSLpzJMqBdB0F==MGXBU5R>`8g*{uq;hL**jc}<6Yr*aECxF+X$@fx= z{rx)fNkoa(XMr~X&HE8NX3_xZY)%y+h#YM{7Kv`9F?NBO`U{Bc*o_57@(0s-r#38Z zV<4ej19@?{6zal{sk_L87y!%=7ErGAbvZzx?J4Nx<#ld-D3wwmVeeW8M zo#x{MAAiIUdHQTEA3Ow_`zDMGiYqU8wGIt`4zGS}Ys6(e@dDU&7wYR0CUuZuO3+>d zGQdGiNs~p3?7SrbUD=BI`X(@d)#%G+e;hU3D_}|&^aEi@i1Rujq`JN}i%ajAcCfS9 z#MwH%@iXM@sI0-~CDSv~IVKoa&_GgI}Q-G&4^*e^gSC9e~g9%ST zDt2y!mINbAqaQa_H>t@I+HqOT_DjCqy!dx2NLO*5_uRg`qo7mjh}QZhDCAR7X$8VC z<7263twO_EabCh-f$0&?$RL2v3Vpj$j~VmJ@iaQnThQC;J z2$Os(4u#uV*h!{P%OgcB^YIjs<}YYMjSHXAV-PImSxhEU};UrKyt}L`lx}@ZN$OF7UMDVe#X_CLtM)YH!gRJoz^q!_sx?yF?tg0Pxh$Q05+IjE;mCXYIHzyNIh4*)r*kIA0C8`bTvCPABA)G(#s-uTW--%>Efo24JPZ2OYRS25<^UP` zebh!gt=&mVO-fo$S=oXo#)4K(^;aqPfA;U*pCa`mB-{5^O$KS^f=<^N)_+&L61q5) zj>l_Lp`;71%Vt-Wc%&ITrBzaJ*;=PxE*|w}W~Py9B9VOVMrrJYN(g0wCGp-fFY159 ztn3U#LYc1BS!auZ%i}hb8DwH8L2~qk*%ci;(K(#2u5gU>QzQ7@P{_Z#^JZ3%mb|RX z@9;G>odh?L(qTkiKM|co_Bj8S9plz20btY#JCC;tc(18Bt~ft2)shA7D??!1n*$&` z%s#kg$uQv|oqp?ijLW`( z$iiu8Z0Za6fWmAk$Q0c5bM}3%UZ8qO<0m`xa&W)vF&uC|NrSF$q2k+t-Bjeie$V(l zv|auEZjUyY*12eBOa$a^;9Zg)1A>4xz^PQ1kg<{uS_-V;k*SKbqa)nIzzqhNsw!my zSs|w7S%p@YmmMvepkg2kX1l3rvS~Bl`Wk(B8uaW`ymT`cpq(+evE)oeoe)Jp%aTWM zMk${@ceBT*SN1T+j-oyGy_f_|pc|F~?y$e*eNR(8+F*9j)F~7HwJ-&MSw6FW&uY zDXV$qgVOa_H6-Dq$(0&3g4)`<^SAfn@?-;Ve+Yb?+LLj7vW?QOS85CvYkPL;U?n^q zMwyz*$8nASfq-VkF9N4f#?v(rWeQ)3LzAP79(*M<&$qNMwqCxbJwlm`EQ{a?$A+aUJ;|NVb#eH5bVRGFA?j31+Y;W^8CS_`PKC%plT zh;PvAY?p||IRHrY5LM6lFFTW#a4n~V2=LT@qW!NjBT!_2c3e?($XT@M(Yv^TVE`Y7 zL366uNi4T`FkreBa?080pPCTUlvApH+L zrdfH^S8o(pKDj-)2v8gh!n->TGbzQdz3PMv9GD-sU`kHN+>fu@37>$}kIYOfLZ$-z ztyLB}jy-@a4Xl}-R$t^@ezT>&1F{+qoMtJ3hscZqlX@t8G=BgD3Q^p`gTO)>=0Jh) z+c$`h5468y8xjpVs{{o%hE@;tEJA)UQ{Y~o1 zx7QZ0teHhwwMSYwhdlz&lZ( zdjF^M^_A)n3S14Nh<4UbpgYGW13kqX5I~U3m*DsZsJM`UwO=sUeT6^43wG!UddRkZWqpBgJMOWjC1i0=lewjU{){0f0TzPv-U{KQhOboeS<71RIz z4Y+cO^REEmtLKyj(Jz1CW&!yHD>FsU&;>~=4HZKg*5Xb%r=LGw&w6C!)=)RR+Vf6F zdiPFlzG)oqkW|@5Cqs>=smW+SC0ZO!a6{*gtUQ41Lv|mDq080cj4ZTePu(pG$q%u#XIWoSd=Kql4Mm-hnAbBWqzJ+&5`VV7{y6GhioB1Z zr&D~U!k+5 zl2<0eHr~^<|L5TOlJu^~p&TN9<~Sh2H5Z%1X!Fq>D)8g zydb@3c|3^^(=vbfVHucMLq;kr6fOM0LD$%drLhD(&SZ-OGTuV{D6O~n5ny1;*SXq+ z?KHco%RjwGs$2J>BG4QnVfScfDN)gG6u%d_k5X5*&5iK{q|8BAAEhx{qy(vxjOsLFfqwVs9bbkTo)TN&_ zFO8I2>7FC}!D3THCZV;{O;3oU()H1=Cv_{mQOM-f(gYuy@E;AEgD7aHikj*pl^^UJ z%szYjpdgBP5T#wCzT43Cfbj$fxJ&w&9lZhEn2nNgZ|J&xT#BImndF1|y|f3@AHT8M zE@f*_te^{llI1<-($M(D;;h;6*l7t2;;4-kc^QV`sG`rF7-xy@MI3>wS>dJoawIEU zW;st2b)0@^YD&A?v^`;Iefr(zF=8uXY4IQNu)<^08uOjMKQcmPreXY6Y9n6v4aNzw?84ur%y+uoB5dV4eBtbCRzaqaX z4vnzUl4n>aH+@t@Bc=G>)4qMI656aTT9Hdxl8o&|OyO8h|5Ggk4(V&iEuTY3pXmj$ zXZd{_A%`@cIR(mwek*Hw#A8_Z7TA_3g@~MV^>_v>ru;BmgkJOSpvv$AI`3V0Y^A6% zX`3oUD~^y$>ou6|Oyo#50Z|e#$Z^m)X)lwS6Hv7lz@eZNV~{eEg3~+A zXPQWqk-^svw!_Rx+r?4Exyh%`r?bsEHg5RFIJR-fRLu4xs5;QUw=E=p644HYsN6uU zva$Tw1xfvLtFy>UE5EtSie3N|hh-Ma}(y`?pUe}VwVd7pw= z>VW=s8~V7Xw`<#0@jh4cQVlje^8Rpny4fR!oX(y|rKcKEa5_8KN2aVB*#key zN!!;X^+_6A0U${gSmig-^`yH9Z6v1UwBJIq81?+MoU%fU4h@52o5joj0hE(A% z{{r$SQ>!PRArOMJIVLmL)}@DFu=s(-t?n~@)fA7P}L#l zx0!46QUDy1;fMZNK@bt7G4N9gQ#kU?ff;I`kRcT{+j_zp;Ikl*@q>MuWv;1L zfU9|Vk#wXWf*;Uw@(o(XyCp6D`X6`WHLU{^xO;JL2)w>LZc-~Qkt8wa#0$|LE!K_au@=C9epceDC4x1a#Su0F0@IhRKJSYW9_W4 zVP$!R5D|l}g28Zk!^JQcriVL?aTpJwpnCaP?9~?9)9ki|Jvdtqh1i^hMJBkho+~I{ z;2cuinlItf2wQ!&`W%`8Woc(5i-u5nF@0(QCxD@IfvyY zC@Ne!sU9jHY0O@~+T=i}wX(tLAq}Nkv)3wH`fQdjo^~QEL(lOXNvH;V{7t7w*60{7WF0=p27u3c50j~L( zPa%KA9*EV}gB^n?j}GRWK?s9z`bT2(S8|eRXCkBFAW@-H9usKcvn-JUS_mzj10b}6 z%uCB8x*(7V!@xUh%wf1KOC`NV`~xretP*-#Z>Ga>d`3b1!scyU@ZLxU#L?vtJs?_( z`yLc_s)$==8lOqPg9C49MJkLR>NZ5+63FtRqHjjIZ7a@)0MY~dxUG33IGbCMWN+LV zU}N6Y*W^Lr`=+Z|Z8TzRy!+Lzf!>U>(b^n$)-^j#=+gE$MgloMrIz3AZXoC_cZ+N-}vkIPdM^njf&_sL9fjVWOOmi+$-9+Pgh2cqFo^#zjCo%&`C;q>OB z#GKM)0GjwetG!}eYk?aKqm_4#kAC*%H<9n>QdX@Llx;Qpuq7e+*%?~al8Jt0*yN24ikT`d zH-(O!g$CARJ_nqEDv%MSuy0y|ksPJk*^II`QEY9uk8W-*xH~#Kn|CM9+G!aK)3)S= zE+Czb6rP#X^%7-~Jzw6A!j-^B3ou@Ty zI^IJOOkdtKz7n;JQ~RKV-h92g{BFD3q7VXHpWNeW1wiIGKOikc27z0@1%fV0Ccqn9 zNyd50_dCi$UyZB%jdJ~U>>ip8oLqZA?VXPx@&%a_^$MMJszLmGi z^%sJV50P2z`|ZjIzF4k|Ha!=HeCa`0~9Er{BS_z(=60%`Cn$H4h3ml+?D! zO$t7o=iAjwvd0@kO@6tQ5SVde8QZuiIm_!74e?{eF%T~~OK5-cMNaMj(`Yc6b&Bf^ z!m#*P*F)Kt4%*r_J@n73eq7EavSG?MP;LlamuFc9ukra*&jUPkomPP>Jkj>7m6zt6 zIZqP~#&TsFF7x`yhlo`5@|1zFE}vG0vvu~Qj&`NaPg<@vZk8$Qa2z(+eN7yzGm+tJ zq?QPu8*0S2;uxm9SRB!1OeyolV3;^^;zH&lTiM8meGF^#W)}@Utmw* z%Akle8P2OHRBTA$sWYucEN0EH)_tTj+gK-iTO$K(&-Dz6fDkyp0 z^f}+kO~i&Y{cf|M8#;;=Tp`&`IQJq|e9csQ!dg2)Jcb^>XUTfP!bgK}1k-#Vy zKnXS3(g+S~&PFGNWUDpfnLL5dd^!0!$qc=;bK@Ayv)ugceAG z7B0`_u1FcpMyhrOD5!pFRgMU~oQ&b*8p>TvBpTVem@MiTf0|#nXfFfP6(b6&KciTr z0yuZ3IWC8)k%c1ty82PgH?e@M&C-oj)SDDA2+#|faSfSL{_@ro7@;uW)A#$QbxA35 zxJd*I;PHb{U@1)o^2$UKen?N}?TISQ41Q$hBUD^>glQQY8WtV01F8!+R~LZV z|7EMHZlBBc04)8EPI&@@SQRW-I)ce9F=gbn({iMcF8cW{*MpBM*bJT_&Olt|RUgO!B3^^-@e!mweb|py z4!f>74Ol??0-{i0-HY|IfuRJM=qc=wc;K^T!?JuRa;~)M3(t9^ZHHyg=vj9yA+Bbc z_CV)Ox;P=-2Rk7m~!(eWbN;ESi+H^@X>lR>vPWZ*=|oCrAgwmblAu8izQt zwQ?l%I#qPAc^7Q4GRd?Lo`BYE-fv9=V^Ccq!66#hLw%i~x0|nf*XIb~J5u5VKlJ!c z7x^zP-$-;W=04ZW=Fl~cz78keNRch|xlD0tm&>NvZ>h_wTrpl<@(vE9MSfCpX+XMwV~{`NmqY6V zTEGqn<17GLjDVJS(k4oSxOr$3WxA$)nzkMqi4TmgE?_Cz358h{M0A73)TKYwD}1Q_ zUP~3)K=k5FYhhY#1U|KmxZ{pQu1Li$5ExV2wUmTPXVPj2ekD&r2;wT0%xZsk~|^FP&p9%b$72mZNa6{jBc6ZayC^x%(4tbJ}CptM5WJfmqQrCiT`Y z%g;q>uiFzU?0Pz<`iCylNx2KClq>RhOyZE%gCTGeS@1vUSdQVo!l^OPH}wMIC$ez0 zh#RVEud=X&O5aWy&3qWe`J)J9A^}{GWI>Rf?EUrqDL%`K^*%qVsqU-Zh>!+wawk7S zcOTN4<+LosJuTw#eI<%UhjVw9qjWL}%4+tmJ;A^A7o?Exs~fJ_e&gFB+q1r_;q4%h za8VMi`K8XQdFRtV3-E?+kDb#D+Q09`D_2^bLHNL zt)Bq^p>Y}lko8d{#dOELDv8o1AhpsfiC*8H%i67EhV1xOay| zleBpGcS!0&OJ=bnc{Y2w+0g~TK-h#BJzzd@g%pS@{K&LCR7DnITm?CyaFO;u4+k^;xV)a7whx(UaNGfk8iCLgf6F0C~7DCFJ44p-!XdOkOF^ z79+m}2BbpCOg0?3^)ku-;1W0>K<%{p300HHz^p_txXtliw4GcjKSh;#kS$%Ic?4opTTn?C zbvdr^qRD;I+}uP?b+}hZ&bb4leLW2A9X(SY(c5*LfA&Z-I$+RK=xUb$aPTT}<;#03H4{Mw9T< zjl$26_iAVcZyf~{DByiYSCw+O2UK1FMnKM7f;O4RoYv0%9~sl3j}Xb`Zxq!qv54$c ztk4IkI`b8UXg-ES3GzoSiEV|S(z$zipy$vU#r2M|A*gjX!0Gc$L z&3LmXw~q?#v>g3xk&KSwqhhFlm+fj_4D_v1Hdi~+VEBh-2t5zspsRLS{A9alSCE$ zbJJ;$Ub?*R?eH~uo+YPO)rzXhZw+%_%v)-I>Z=27uRA-w199gG+U^EG291v477C>N zP)Ifh{aZNPIo)>_lqlWoTmNfZzdCFB(0})jA`M$3qDVuTij2ILcDHUjAwIoaI3YfP zH>@_$A-Z!^FWXV67CK-n2jmc z;P_R?|K`(TgRu5lWdl^Z0v_XpzQN`o=g=yrMAxWC!d%^W17(cWe@RxjPX2vp)E%#v zG{0=je}GU)i^t0!Fw3j%fA_1J(4W~i&?_N=mw0Lgp^_iIWsEpty<)v$qvb(AyW>XN zoC~7(!bWn!%lOY&H;i|GAowebK~~)KyJ?5mW&a(T z5YL+dC|$=IeAU&$cvXA#k<|VUZaAKw{La(;NlD$&NU3FpSJC54OM?~#c!fh)h-^(G zKOfsUw~I)yE+6LW$$xW7h{MIVFm^qXkiPGGsTdg+Te5Z-e=#DkKQjW2hHgA~)N-*9!7?1p{DmBMu}L^k z{&4!WWw$AZ5Mi*S!@_l{$~@`o{96~_6hBr7$131QJ$gz&x5|5pkLV5-ruLISAqK+5 zRmn5;yVBZdBHXnJsc&;dtM3PF&@$-WrJFCO6Gr5!8^&T!Z+?6B#{VYfm}(~+I8MC3 zI&kVqi94uT4U^&tT7WK+cKEH9cn1Gu>8fUpAsLnJy{UaXcrc*THcV z71}tJ7mu5fqa=fwzq>d!AMV}ZXr6Ru{mWwO2N8RDVayh>P{3-G=dcK!6(<8R9$}tiJDL0PVcc% zR~-65w@#s549Hx?iH;~cNsI_)PXt^laLHNj05EvOBq!|s1S*et9DUNJTjWcA&ih3w zHfzaSk);dQvxM^1uef#glRR|z2I(0xByTVtpNiL{#pRy65rgOa8=_Ad1f>f&g$Y`u zl}uUCOaDjBsK+0%^Jr{p7v&De-qus3$N@m7_hlILCYMgr5{e!5XW6reub_Z})TfmX-xBovgC$xda^9RT+ICb zFy~DL$(K!hYCYaR2(%kuOB}V_6put7>hV$B?H`T@y>jx_-BwetQ%(olUf2QbSO#tw zQ>vwZ>44!l{SBGN_!2~v9gk!~`7UgXmZqTJQ_EhsBqY}hL||k+)={t?0~W1rh!q7; zG4dy>O*S@Vz5o;$Pc7x0ahK&P3v9(yH_^H8{!_=mf53OX9vYS~8N+&JjH2nT3+&CN zw%_IUcusWkT%vzaIU=?I>1Z(<$;%2N5P(6?<$OtmUBoVeZlJ3r5!J>OIy^1cE0Ve2 z%VBFHLB=jOq<4DzH+!E(h%QfY&)73PMyuB{anbg*ofg*x5aaVC-V>AFZS-XJ> zpFCl_PLk4wj<Wlh$_s?G{4h*FH!{6*BJaheUTtB@c3{I3UImHQi*hMxs9po1g|<0L#f6yY%=Y1!t#D`@zu%I0 zrUEh1Gyg#o{r`m6ckGw@htA$wu9Vhb>z;TPlnV8;oNg5g;llGu;IhVYVUc|PdQ@BYh)(3nw!)FX@ODnEvQnc1T{VGul|Lw#VVDx>89lLX5>K49X%6G=BoT~4R;%i` zKY2qXMih%wp<5X9GRa_xc5N85Gmi4bE)(iA(Ar z#E=I5KS@ai8AI%5bR%wLh!RtVSUX;1F*C^-G}|k_zwtSJb_ohV1IY={qU8DAy(tOQ zm6)W^2Rb%?XFMeuo?Ory$3cTm6l$@w_CNCC^AS)a`vI`~oS#%%E9R9gD-62XE6Bsp zt)Vh^M`0nQKJQR7JX9nr(TG1M1%3Hz>E<4i2xKL-U45>mc^c}+-vKny=xwfFjXfs^ zXhd2tL}e(*Rb0%dPKvNV)}ND4|fxZ*S+3*awB^gqq`P`63YBE)nq7&AM~;}M1m z!Oe#ApQ$gwiLJ!Q;mrj+4Jj2NLrD<|2FN=j2q0824nExe_7KoCl_icl5maV_Dx-kB z?E``A2k2&z;k8`V$fqbU!e32M88s`I`P$^fTH{TrJcFUcL9PV8RRL33Pz&+Nj8k7AS(X0giDb zx&aaMQk~_6FVsK{MCujVSrdT&H`}18okzx1ytKa0^l+G`Y7}Oo0_yS{bgyt9l5wdl z03-%b4$sw^h5u^)79O3W3)^hvr5oCRNuCa0Y&Y+C~vAZ?TN5 z3m(D`1o4aj=*eP~@LUE>3W&B;tvgupvcKX^4_t@O-&kysBsvVfV7&M_vBD(f3No!Q zDP&e1_kAJz*m6m00CU)_+Bbbh1)u6l0IeGGFQgS{urWV1dT2GR+zZ6&Nza>9?QhM+ zMZd{93+y}P36RW8DcJ_0IIbLkLK%ZTD(o}OXb<5WDm$fPXT9ovUdjxjABlcOj+3Y4fh#EHwA0q0(prZz%PW)H#3@cXYhJU z_&Sq&&{=QFAp2CpP%gxT{MN<-6T()mw7j|0QneZFxmgh9QQwXA;%y8yNS@w1$7xXu zCuoo?kIm-OW)pNzPX_@Zv8tvu3ttJ~sN{36L22IfVZ$gJuYOO_0B~A}S|I7sMlZqP zB8gvMQDxd_l=D+%{`)LL`i_l2BPS)LW6TZ~sJ(B8y z1p2oWI4yT&KB-Njuiud|+6+=(t_qtWroy_2oR%gbznX*V001kGT3sxh*;7msdraSs z_qcH=Ql0|Lrk+)GD=1rP+_NH^wXV4+i7&6`(*vZ#W@zytxws&ZRtZcbWaPlQeow0M zC~KmG4K)5xjKOzJeug@7jXehv!o=l%X%)BIjXooa*PwqL%JU_QJ@@3f(MxqVZn4c< zYVx(rA_Ip9!o%9qHq-72S#QFm*)02X(*+FwvsnEcP1l}Yi-@xN1X>!Bm_`*a1Hdyq z0+i&^>!_;Ff>Nw{SgvadKS5$v9lM+pg3OW{-+CY|Pc%L7LHyr*r9gE#b9a|)0zn{^ zZ15gN^pVb^fEyVhEClfb;{#^R8!6Gqz?RR|20x^r4sD;18I8I_*;7)D7SM{K6kH@_ zCwmFKp#aR5S1%XG-C^SY-aveYS`h3*52&iBr2;g2DN971pY+hEJDRq+>*^P<9r8Y{ z)#p1lSr|WjD$2I9_MBaQS10&j!3Lkjp`P{i98r3B^WLpN!;km0#h}IquH{eJs1hTU zH#hk3%~`k6PdInW{GjAL1O}*MRA{7LX>fJCpLAZ%ji+&gW%`QGm?+KKI<3FcciduS zEs=no8_<$Lwlrzi-Jf1`HqvQ*9tEmdR4vsm4VQE`R?e8WG&WOow`E)y>JYdr$*nlItE~D6%-WzWzYF6M@*YZ#sAWv>iL4Ute4`N%;(Ww?d%K{Q}2#% znpYTBu9)VnlhU>AO1pOAD<`e9o5Y~fE_|6(a;2 z$$|Fds>$S6W|p}a;F~!!H-&nkI(Aw8F5=p8Z!@T0_8VnKW8dparZ$EC==j8UkER~g zFWvhVw;6Zl1CW2}rgG<9E+7uRW#8#Xq&z=38H;EwsN(6fw^4$J=M)jNY24^#j1qC!-`XI89XhUqA1Xj zsvxUFA_?*=8o?OW9mB?8^JDpfzI?N-lmw5~hl{HlUVN95%!kF_Y9YSc%u{zm{~?4i zuHR^PPW^&np5dy=e>lupPbcFw_a!f5Mb=5%_fOHxLcnWH~9O$(EP-oEpph@ zo}M{QES^+oKaTahi(3lsyqGE6MWY?69| zZbOY38Ma+}N9i`qvLe?vj8)`S7>_5Ui@!IwL~G2#VfrZAG)O|svzJiZSBPZY#ze+u z%eLSmhdn4sC@|1nrYTN%ZCo2x=hnzff(c(71x=MZlr8nyQ5b$NUgphg9s0};)wV!w zI{!RrYLmWt;*ezdp|@`1b?fh-q-k^OCOBc{)Y8n)dut2+@2ErXaqmmM%nf2^c)wMN z=a9eOq%tFrn_;?&^MsL*qkdmjUHqGC^1W#8EM7^|8^iYek^QWta#R)TeW!)IPFJwm zkUJLQD=Zy6TH`qw=AcK{BZ2Vv4-jh@rmp++1;abze z|K!ly1yQcxNc5A1ln*)`R-lrRWzYR~M&mk5(qiUU?$DHUQ(&3Tk9$yCuET87TSw4%tAW)x_XvmQn;Y!6%dDsvq$8RGCwjP|+S=^d(_HR_! zcgfNFco*d--v%)%mQnmbf2U()VvWh&P513^mA2fOi&PkuVQO@B+|d;MA;$dldBytn zx)7~CyN1!n%|SF*lA|lEOs@B7#rG$qrDgHXm1$?Ef9zDqfCap@{?`k5k%eQi^hP(9 z{j0a_08Jl757|n$UJaOkC%4cJA#)#Z4@_~tl;YoT=L^0H$6eeB@%3rkeqr6B^Q7e0 zW){oINrjVn`ag&-yfBup4Kz-V&Wx~rNh&NzB|Z(1a@4xaEq0k}llDnsw=MsTqfd^G znFN^*e{I}LY;|eTL-S`R&bD9hdFX#1BG{}na~rA^fLfVtey~5*n%1I@yTXjyiOjA? z7K9yH5ZXGLtes(w!uSvB$Z}Y4*f?0zh})zzXWe;exA-1q91_;Nr!exDUM@dTS!Zn65O6NyX5ZTNbDc@Owz_#qpDoY*VN8@sncXQj@dlVYA^X3 zG(7_}B?a%aAsce#-+j?{QJn{|MCR2Z$$Do*#tV|4GKXjhBRhIyjoA6LdzzUp|vj z+`V^8Iw5J#R6M&XU;KfYQa%wxU49|+i&=oCRAQ9;zc-&u*Le{%R^z6fFHj(X4lx3L zJ6@r47&8ez7&+eGaIZdlh~2x*?^z`Q3Iz)DWM$+OzE~~o8(DFoKhJ95iE)-tmwjhX zbG{AC-yabv-b?4J;|Y9!nEbV=PAg$8YmIfFg)0p!YY}axzIjJN#yQI!-V%)~0r!9L zmoW}hY19$tsyD?xL!!UUw8i5c|>bH+mnDH@RXXPAj@V0Hf zF=vWM&pWmBV1tDNw?BIDOB;CWUmtskO>}-Pcccc-Xet^%*ac?B%x9J34d!xRFN(3*tMb2t?^Z?VxP zfAFjtf~C9Q^H=%u&~!2l_2?(wG13>ejv>Ck$l+rIf^Ws?ZnF#%<0U2rETv7$Vfj1B zrR4HI=W{+m>(G_ET=#FR#+b@Q8{;U;H(vQ%7i5B^&$x301x?nU#UhrVQ|=OrvJ))I z(1Rwovlp&5MquTBNltrjW-wToa3i~lDGLyg2JlJ!ij60ru_3xzdSYLjRl1{d;xcx3 zs*Y5Q$jsWZ=UHzjgtxI7EozzRy~;iH^t`X&x#Y>=591Hgbs0hK0w%mQ27OE*=}|LL zee#Ll_BWq zc-W0aU+=1&PG!R$p}^@C`Hrb9=31HPI`2~SgMag_tHrZQRYRS!aN=`|@`lqdxnSVu z?!TM4n1-ta#EDh?YGjtf7cR7hYp)+qu{xv^uTr9u3h%j8RS~L=0zc*3_OnY_#0(N7 z_hC4lt-fnJv7yYm-FY)#6HR_dp{XrA(b(Nwp8y#L2N)onTB#~&I}^xW_Fs0zgPpwg z?{+e13?te1WDQ@x1-zF0RSq+M{mu{guw!bX7`$<$Y!b@5{kg0&?#%*x(HqvB7|lIT zhBjU!*c9~f7KaVTt9$F#?4}CjSTE^P^C!qs2=Zi}t`)FtYXt4rFyHrIa{gcJy>(R8 z`@1fxNUOjEBqXFk$w`-zQUanV-Q69cgmiaJN`GmZUjU?x@%zt4W%S8*SG zD>qT4@<1hrK}nWMxtbuTsZQYD=S7cBi(6uDtG!^p-vX^ys1^YGfv$VD)6939J|l|1 zmV4!jevnx<>{llfu=s`RtKo{zKQq8-ZkW7?{1__pC(mW)VH=(2vfu+AoY$Tq!Rd9(s0E__Jl zzy1(9@1u1-@nNr(;KlJfC=D%L%M0p(E7^C4>sN;3bAXVOWWFaV6X$@*=C~0lud0`) z@Ci;_)~ih4bn_bC2xuMm4_D}EDy^_9{%Ks)LY!UZzZi&jn+c^kSHPFElTkX+SKznc zyOJH|-E~1*qy1JjRJa&yD-F4IJ49JD#P_qT&ku>rin{@N^WYzXI#+LJejze@QQ2$_ zrPA|+Gb2bb+%{U(i6{swGG2K>HJ3%yP2-AUA*r;XJha5(g#ueVB*E#5p5r63_&n3q&j=$o~XSU*-ui6&R`Jm@};F#orxW43v6tiaMZtpiN3KR}w zMa!#_=li(Wv<#&s0km=TUteXpajzcSh**l*gEILE2xHmnM-$%AdaA0~`N=R{cj~s&i>!1no+2OTitVddJK7o8ilA0K`q-#m*hsP9 zn+0Yrcfc4{*QB!i*Tm!B^0});JMf(p$5r2?L}XB9I#)eg1sIRm{U2aF4--okagjNf zGrD3*VVGx;~zurF&nZ2nuo*CghTzs6a(*Or@JdH@4ckB+(UUKUJ zG<%ziScqw8Fj<-XKMfwySRQa?JIM>X{T`L~_D8#1j?M*s1IZs_^7n`2_5hLff%0mZ z2@4e^i2=mQ=JPXM0zr%6aRDuJgA_8;f$M`NURJIIfs^Q)=7!ZtZa>xtn0+KCPy#l5 zV>R^Xtx)oe07zw(GyAR_*RRAKA3Q#3YQ;Kh5^^OP!+#d8Toelb{SebT5zPyTxAtw; zGsGY2H~Bz7^5(6jWnf?2vaWSb&1%vOf6x_he z^#DqXO1yeP@uX)}j){4uMhKI8^;|BDd8bUu0IaM8BMGPS~J;qVV`_*mo)0N%i z3#3=~$H_6-F6{&<0pN!IWk6+O>)SV_gAl)H41wgQagyHa4EIC^94!fR2!Xe%k}7@Y zfA7*&H9r9qCNcdWV4v;1rt6YI|Z*0WI}Zq`#HAuB7` zS~+oDA#-@>(;3-iDz@l}`x*Gd3o9wI>gDX7Utvv+KOTxZ1p0pf}lvud{GIQe+t%E#C8TH6OeVD-OnSr z)*XLo0o+I3qQCX?Tu2u%n!6N)V}(TZLA}sst*16G}XlE1N?l zQzXyN1RCf~nNDQhIrnF=J|uZVz!vZ2{mw(h5`96n^W)BU*hkmwT4+^SK5<6qhAjWi zhW^MbPg80keKTS*6CUm}nQq%ricrvDPb4(H@U4BZ>HPZo;ps%tUir^z4}yLx{p*k_~Eo+ zfN!s(6#{q1F9RIo84EcELRfShf9W=!sqhhea3Q|Q9zWbXflG!yKJqnYOL#`6d`!5^ zDC-&k{T}C`4rnXkve+u$>5!e=RvJ8Cq5A`r0gEgTUO=DaF;#&f`NK~pFbgD7W|iG6 z&P6oqpj4t}a}zhil^M=al(~t5%<$_!TwG+T^f?a-&$F2w?tX8H5i&AnR4wQJ4&{@I zH{wtl^TXLA$*Y$_sMu2_G`8YCaeXVY<3{XERx8=(yy!meym(o&V+P+LJ`z?!qoz@GhN{YLcE$qdVJ?33TK55h(*F-?z(-Ou8XdBCm;z zBTJG*iiqF7iE|)JHsnT&di{D*ww~bSo52Pa^f@wX3;#G9myyDFH5OK6!Zdk0Qr90P zuPd3b1IYX3;ZFtX9HhM4$n*CvQK0orDF(wS2F0S!@X=tV!({%ov%?Kwfa8cwCO_d+SoiqSEX{hTp z_kC@Mi2Fv7x&SZsffVl9Us_CfLagkS&o2jY)V05Q8uj>-J}Z7ZYNou5dxyKU#PTUg5$~T5tOp#mc*WV!X#qN9GdMje029s&lf^vnC1Qoej243C>&&BeS?grW%_4ET%5T47!f7UOoWl z78M3&6G$GpeZMV*XI~w#{X`Dl;Uz32eNh-0O`clNctY+eam(RdwJoOow1!)y2jw6I z9qm(^0Z_#G-88sI@ay09N9NUw4(efBC$P+~8^s92mLj_aCHwOM|s8h%b5&YOG+ z#($`2ww)Vpi|K1?H@Uc$TTs7*-EbXGlhOL}E1KT`tmL#$={x&Dr5G2U5-ErP9-o%t z0Jbi=5aabZ6 z!$2qOpfifM&<-e*qC;vDz#p7+XrRPt5(XEL9@lklLd&S6uEpCoxILk&9j(ibU3DF= zXEQ!j*Tk!LV=boK3y93&x0DK#hlN6M(oai@QoPn2lTX-kA^LWLYpa?3cku-7Cxxx9 zm}((tZ4hwU<1 zA&&M}?mky&YmwySYg9tHR>? zpojRDfoA;@la&jXf8mozhKVJGr4yQbHMM`Mu)En(Kcf^FpF)IHFD!axa!hbH{%jP! zSlD87E-3M*LyI{C2npPI%#i7;XTR?&Vq$s^R^Jf+09R)Y^i=}N{YT(CAa~qb z70*x^&B%yI%NFg=^r(TWuPNE_{)`x2S#d<43E5V@yV_D%G^VZMTTT>PkZL$h=!tWJ zu+Zhd>p8v8EK`gImGqgBN@5Zto@Wqswk_!(hL%gU@Yb*$&m)F%_gOH32bK%HSPtRL z^p{jJ5noF5EqvIwNXh*8%T`CUI2e3;3@FU0pc7-QZnz}LphGK+k-368c`%?5yL^uszXl(;AyZPI;1fRskD`A!E)o{2AX) z2dHY6mTRz?RkCa-vO?HFKVnC7KJogX0<**6EamA}Sv9+Jo|p|}eYlpviLR{!H3Tqv z6?^2rUs^07mY2t&+v&j3WYtuHDu1P`f77@}v_rB$|%we?Xg0VGcxf*C4`~di=ED0SIV{Nb91ZBL-ub9O6Zy zdD%6HR{C8c>HtVstdZ6kmpme7BbUgVxOS!6;`B7Qk=uw{l*7Gf9>{bx$LG8rp8OeO zt{dz*AM1ezlU=3KvI2w@#Z2aJMd5~>#X=1N?8C}lR>K}@g^~s79`EgRmoL~pQs4ae z>JzczY9}~Wm~J0ke{Vg?S=F1`@=hJ#-*YVg`XE>5lS8W^JhU{=aV>1!;)V!adpB#! zECa7~Xr&b_p8y>dzJWEI5j0(aUG58t{5FR-{+$-&DhDRA*4dPGmJBTk7tqgm;}Wjd zMr;MMxg}`dwhv+)#fQr^R=UPa7{RfyWHs0^c^Ebv=7M|zPR!g)7hAf57-nA-6Dy8F zr>?h!44*69iP-us;N-r-Ckp1@*%>BQ1B!!h<#k zWl$%ZdG@QN^K<}Ljy$ksEcxU8 zs^~NL{#5<9)i+Ag9^TD|zgq<)kd=Y0kK_Kv%cs

      FeJKX!b{Z9S%-kn=CG{{Ly- zLPJtJcpbGnx&P>JmgN+C&k@{@a4g701|t|3A!0lj;}eVca{#ISZw=x8Pn>4bJ=emd z>G1JGgRpRe*R*W#1&JUa1cQ_qO9%+>T825Fu~oy4c~Bz8J9*fzqy6c7EWbGNN=oTa z1Y<(zLs#Cj)SS+=aNcyA>QfKEQSqYx+yd@+CO*}Xp1aYDPpK89?+$1zJ&;#846{&j z3};WT7*X(Ry%$AxWJfK38nPo(sawwH3!(USYSx?X%yOC=)@+FMZz2cbtwv$yFlpd- zHgj1NH@U(kaWUM{k_-9_zqlgcOQU4ZWHM(z)H?BsA;ydpF%X)NExDr{rQDI@3zAk844$4Hko_* zdA0WAs9u^UjYD}`B>SUH7YSfPf&xkylE46<|6NPs1iP#=#FEl|!1f%F2Bs~|>)Hs( zX#@AM(G!i^`HbR-i)7rt7g?XvL9FGkJlnUJyjFEPb+WVn5Bc%vNvn;5ooue9?uMc& z(+U{1rx~g9RFBH8F|R|ldKcn}b@`^5e?VI#?7~o%M!4dI@dT3AP7cKo^fRrU4?V8r3Z( zwq9DGyS@f$aJn&!DB8Tcob>w1dX{qmiRS;PyFyIHN88M(>ws`n9+ zbCIPy!DETvw~;5?^Vf?9kZ{GQFms23+F_uwG%i96n!|*DfUti^U=)Nl#b6H^bb$B+ zfEPgjGqQ+>lJslF-^(7#s1E+m39#v+~>Ga|$ zJJ&D*^MlxJvK2fe@fy2MiOO3=6j2@qo#cO2RKFojWce*3bl!p%D*^)zO-Bb$j!pNJ zjJag5Gw4O_pIkUSNuU{v>z{*@8l2rrV7I3?_5i z=c?xH%pG*6QsXheF*1F8%@5l}b}3&ud3BsXez5apNvR|iTJbLsrh?C9QJQJJ2h7y> zPyC-RUuHjUebS-lmUx|_0jvf%5Va!klyE{I$R;cB!5?^~D#OlgM)(jgZ(aQAkIkF| zrkrJ`u($^rnNZ0`K0Kgq^-s;fcX5jS4z?km4~Z%wpDl!6@~?kq_ma-7mof4(^Iyf# zHCUw>zRf8Nwn18g9Q?*~zUn9(NvuJK% z({^kN`hjsF`?tBt6lk&ui}Wz*i-Bp)-p>qclKL4&D~mZv(KBpddCBQq&4!g7jTsyR zF}&jS${$bce`LqS4==)Kk*(;{&$L`&nwqdoJQ;mCtFR(g_rm zc=LZRbM{cYxVIFZ{s77n>WAS7D5L$zYn-V-uKTwTHaYgUs=Ib2{UkQnaBM5&>Y=lc z6%rL_(qSuvob|%YIc=BB4XrV2N#+P)GWFw|Od9Yz=)OvK>80cUC*Jf}y;pod&XBVL zxjSkO&48S#2Isb2&_K#l29g}l?2O z&STe71-V@;?^oCUA$B$cu@h{5$8?WCE#`)ued8we{4579tD+9d9;d@VUXv8<$--?$ z(KhFCB}V$o1MSd?%DgUF2J!7x_2E31HthaoG4?T6BiaTj(cU=C7157z2YQi|{`_km zwQF2ewrU>>t7MOTp6{{DN43vYkNL9dSf<_;#f~?(f@9EHR=>QAsQ~a5<*<>82lvB!jf^ZBKF)ZGYj7P?C z{QFgvz8FoK?6}XDPqXRflZH($eJNstk~yT}Ho}#%%0VB&M)CXp|sE?e}MbCm9gwM# zQKRf4)y>4+3m~R>CxgRBNrkIM{R?(T_ z2KomnF9)%eK2hd*yGD+*UP3kZNKBhnTlLs73syrb(hGUt3-v-6?vrQfMnAx);rwB$ zeU!#4FlhPKorrT`c|}_(iOWs!MpG^y#!<{h_&Ifq874J?+TnsK&8JsG{V6WU z@vkik&_;1YhW&?r&a%}mL$p75os=t)V`KN_X1-)){|Y75*PBnG8`G167bAW(;vhlT z{JgH*pBhRt6Gw)+0rrzB^_>G)i7f{_Pmr!`AKhEvBne@xy~JviOFdXiD@gNZFbb0t zF8=n4h~t<4Q0HqZ^nlPLS^GZt>LBB<_DC|rJ6Xv#_VOc>O1*Q}dd|Hd7?wQqY2oz= z@CgabWL$g)x08|0_w}n~$+^HF7=J=6OFI-Y{wM16s<~XluQ)nhRW|*St!E*L2<7nxQy3EzTI7an)ZkjZ}$#f zPvZ%=(&y&`IhJN61WAE%%N>bWw2U{FxT*%*izNKzhG}!NnfA^6v_`?)+`{Y`sQM>5Juy)X@T`5 z8ne2+8loeUdghntXS_L}bd@C2>*3xu0GE?H7wVidk^F(`=)Y& z*s{~3A4b(wIBYvlGeHq$!TbH1BAMl@Yc+FF9asN~hLkX<-u@r2rs0G+%}P(MkB zw#`B~$dO-0m+wye*-sPm!gw!YVS3&j%w|5d7n(x0yTvj|@mnHR%c^J$e8v+Bpvl#! zGnm0PX!uyvZw=8XHz^tvHb+Fd@etHd=fGS-VwDHU1I=kQk}+k8ukPYMIXiGO{Bj$YKbEKeAih;b_d- zjJ7ln89K5TM7u0`R7+WdnDbG{S0*^gx>p1X&+bXbl&7^ctS)M+hRN=?cE!w8d!wI` zLr9Emw(w`?3PkV2hUUOtWY2}ag!XJbjaOVft|IZV{EQou+3%H0CnkxT*DB{f+`oC! z$RbMdjvv)T+4-FHsvrgZy~RL~rFCW4Ex$&#BAd8_p*JqfWsYf@zGDn`ZzC9bMqHBI z|4m%>D;tPqJBGSH?@R#%GD7hDhQc5s9lrGY`$&M9FbaJ+{onYwoLhN`y2ivb!h<4j z$uq_*zrMUeCz6o_1)El$ zZ|IH;M~fD=vGms}!2hh*10ezKNYd%pND18HMFbr~hVsqCR8 zmWx849KSx9rSlSjxOO~~LwOk0lE7!Km3*C5hTPdRDblIPw3dJSVj_!P>&^W3 z{OpJ=-Yb0!xQIeBUQlL{&rALD$|;>?w)E`9IxjfK0>H%bqz&{_M9%jq44U&;;oKcGJHq zh8UzpPzHpIxcZg&CqJfNe>;Le0IL;jPUolh*7TUI+FP7oL_!z&XD=d&^rv%9!^}Z| ztVLrE8Jvvr6Py#1PK$t4svc|5DX>*c1GAF(hfLrFj#KK7ugy>X{^T6sKJ@(vl=ZnJ zG7gO|K+5@6B-N{<%n^k^1(Qs}Su}T%7-BNRam}@cYx`mfi{3gD-3uM_B<@THW?<7! zL0TlQiGqVi>{N=-I@A!<-LHWu|JW@>y6bXJR-yUSD&hQVkg^?~FPQ&quP=|}S~U>| z>(CLNZ|AP3mA;PwBtN*Uk!cM|;a38*wcdCHdZbx=My_5mJE-fXMd(hr4~FDWG$4cb z4{wbiMOP?{TOS&F&$%i-a@emWPJey!Yj@@ik~lsG@!dV`G!ZM^Yn)C>cenA8eLuCg zAX&r$+dxI#KAQN2rS5bt%NRdh1rr;tvCmp6BK`&Ptk+Gc$VV`t)!Pvf1nrT;VoxuK zXZ6c20<;rg>Lb*GBw5ZS9M zFJX*TJ{xR!p|(k}ROBqqA>*X+3}=Lu!S}p`8Muh-8W_N{kXwHsGxd*HX6Jg~Sj?Lc zV4JYjix>Wxdv`O-r#pObg3;mDc(TBT#wH}IL=3;~Sn5{&*Ar;t4l)Iv>ctLk=)&M$ z>By~(!w&4P+5wg7Z}3#IY^n&s&EVcN!aG9ZgDavGngZA#z@<;8yM35dT%Zx`v z6lFnS(^+}vJ76~~*{Ypb z`85bd&HZm^=hm!MmZMdsZ2>szy41g{VmJYHdNQa;4-t3*7>~(Dov8@00{xn^Kq~#W zN;@@VEF>SK*hfge2;CmBdx%uqwwKguBBRXm0<}Zw^m1g!=>=ROT2U}GH|+?EoW=Lw z{i~||u)7tUbiFAHCcb^6u=}$@{&QLhUze3>U0_6V0+1f~RJ^+Xpj~ztPXd0Okk`kz zAbCxof=tCbSNb{YxFyi_+%F#f<$(BB@-I&Q>gU8Y3^Ao`gUdr{XMIVl>Nfsw@0ow)YQ8|#6GbC(Q~_Q zO=LvICf#wi-9Utq-`Be>ddyHt&{=di3e&a@vSj?Lz~zfF zQS2p?AbppQ9e8I9$ofgYVK<+rIEfPGfh z>=k@o*rZEwSmjBW0BfEa7c&xQfE|6Lagc8(N-@Dpo)EA!^>>XCeNT0?TjsrHQAr71 z4tximOl)kK+ck*i_-;3FX|ib0UB7|MaBH|-F-+^_pWLs8azX^#P8K#SnLz<9PGENh zkm*OzGb0988I~*z07r!)Ey_;VZ$6T=9nS}ggL|<;Qwg$DTG&0nGoT@6WkM45b`$r* zJH~)rWkSb{oKIT9p7Zf4EY*>gAyD8*+DN)BYhfK3W%au(_#W_)Z@;Mak{*4DMN>a`w+C0B|Zu^jVz5Zx7r3k)aaytiGnwkl8^2FA z(>l*9Wio5J$*bB1r|+x2u_tH|4S$tA?>g83sTXos_7Xp(` zfmp!(BS=u1UZ_w#p3eW$<6wqqGw>cfatM#oLB+q0h&I3;8|M$B+++BXj(p_ zchhJ+?*mv}Jt4unH`qVSjpjrpS;Stp3eG6|ig`Z0jB8AlX6U8ca;5xiGvKW`Km=W` zCCfhwdB9`#B)Oa2G_T-KM6PCtsbtjPgquzeCGcw>znW`%HJoLw=dBTijt8)Y)qU3o zC}jV58Hqh|AtuatR~&a`K?=U?6VGm+Tvm$j3DZH zrW#n2g>wpKv=tcbxwce?XbIDYcU2EywOc<+)mpyy7Tgu1Vhnd!t}Zy>iPC;y zoafyj%@;6Uu@mp8i6@O5#}ol>7<6ibh8E;P+2~%=huOb-Zu$Gi*#hNL;o4d0OE0UD zs6%D8f>e%y38p&2B(o?8|4mz?NxPZTE=C*y{QW)@70R=HW$CGQYY|VB9Tz~FrBQ8V*_{%hs~Plhkz9%KYE(8!%8QT!!;4t1u)DjuCWLXI*vWtwMo?i-iX@L75 zMsQV8wZH*HMV8Z<)ziL3CW@4JumZ|p+2EVp7mXxEMzKBO|2|>Yrk;^e9M^dpcZYjq zu7|Wke+DSXl!w%{sSfFi`~7qEputU5obG=FB$7g@vsf0oQLeOOmIpP#DZIuSwkpG9IK>N+-wMP z<$c#dcGgU^yRjBiurB@w zZ73a?dawq6{;q$NzRSbzMvCkdEq7%k0kV6_7jOlMk}$>ioe`X>S;J7Ri|umR6T*l_+@Cd5TP-O=`BGUr=_3G(9Hr-Sv$#2C_niXGQ638f%I1`4%(L; z$vplOSn&MR_FViAGG*xe%bxGWUej1T4c!S1^x87S!BDm}w(9uQM(Y{k)rUtAFl5Cr zf~h4wTcm>S6h;Q;^+NHvcMSrQ@_*nfGP>GQi8JuP!+ZlJ!re^84-gIpG@Y<}6fG6f z;E}XuB5Oz4VDN4`Hz*qO|>%LfDZm{x`TL}@=cRn9qsGC(nc1g|Hsi8?P zq)Z-HHMMhXqcYBA26S`39cL0r*TG}?CSrU>kC z{E#W&yytZ74izlgQ1&{@@PhJE?snGJM!s~VN?KK=Pl~0vvQC}n*dn{}ls9SN*&TJ+ zIO34sP7NE}inCmZm^#&Is=0clIqWmK+m29m#nzaHIzBn%~xQB$r7NWl#N23r{`M z^V0>M(=$v~PczckBELMp6B$PkCd~}-wh-3csv_nD6T{ii8w%Da&Bx38H3UiDa8s`s z4*?S$YHH1!37KsSSbRf3#E`*GGxql}6zD~B3SwW3Jyq@CL20!>qQn4yK%x{)##}kj z&6r?vV?~^Q;7`%2`>&#v?Ue3l43V4Vxq_M78F@3(?|{T%KC7mSLrYXS9At%KRg03t zuY880%TSYJpoG_WW7 zpL&a_5qzD-{SUsrSzMJ%P4~H0_<7Z{l5nfxx_^IH_JH`=%nO(`9l2i18^v*haf}Io zo}mFfi-?m(O`!z8-!l4AI%G1-s1d^LD8k`huZH3iuHEXashNdC;!z8c*Za5QZ4dRm zfuXN}ldYnKUO9Bd7j*S^Bs>?`&8U&|Hr9QR3lKz=@v_NG0n3v0+nPUZd5DHSHD7+H zUq}}$?PHf(H;QJiG14Om{E%39pZP_+@K9G?L-TYvrpE3pcE9G!rqJ3`{n-xKSd+{* zzbf2WXcD0eUq3XuWH$AJn}p+L$v(w9EDrZd6#kuf$w``9eh2RjXftOY_(kZxtd-7{ ztm)UcIh#A!r@)|bb^ngD{MVre?yfdYyI&ctO5R}w?!UR>oX7o;pPeR9`fIOdGip*~ z_y0V=f8z+qQ;!AwK6s3Hlmcy{YFK<5qJPL-wv9l)CUx?&O0^BZ1O-K)ALLp9ARzZh z&^GB!8aYB`M{51~i5#MDKFMXgACWro&9wGw^xW2}(*|~B7uUfv9hc_E_dgWb(oOq9 z^r)gORJ!{7X`G5Q8bMk?=?ItO2}J1^r=17%aAQF|TenF2t?c9nuj+Yv$@+XLHCv;f zY{?GnC(pw@m6%cU0mw5jbS=;TgVm>zYZeT}(=jsUop6^r>AZVsN^RGWm{#|Yu7z;~5k3y0@d8RNfmz!FQ=QLjnxCy~ zP*u%VQcI3~QsH10cJ8cwaYZ)-KTK%|EPh^OE@2;--UAnYppuXI0ioZrGY7sT)H4K3$TyIG0}PO~MBwJpLhMM5=XF5Q72mDL`0@z5bo5Ab5}8j9`xY zHd*E`H0w~sUHjGy5f?%`)-HyRdNz5X_^%Kb!=s(~86$lVo6WGe5+W`GM7j1?7B7N07arc7m)HNW8fxpZMfNj|7 z?cG4h-2l@Uw{Do6p;E(Fjn;dm`2Z)p{W<;mH)}J@cUwvmKznooI$PSP&x%Fdx9`43 zh*u92Ayyxqhjkq13&AUE<9gYnV}jlh09SkoHgt&>8m}vs-L*P@_V-W^wMQ2F&+GL! ze%*Y!h>T{!j`YLVHB!I#;-SCW4)l!#);d-=`3w1XlP7d)oGG*}QW^1e%@(XH zHkH>=55rX)6JP98%z3RL`JK1#d>2E&mjAS5!BVqKKO&XbtNT-u;cJ^tc}(CW=F>yYVFFMNdId$^<;PsHck!M zAk4Z|qE7abOX%-J@i+mg_o0yC#yk&vzHGIg(m$HqMfw|LKC*fi9rEw4$WqgiSK+*b z?Zad>l?CVGhExu5gVH`JvlFy0rc*zG)odwtQ#mCfQfP{3ju?le#RfgrB(Hr?A&WZoam#8f*F=Qh2ajp1Hc62v?+ zwyTNFoIbFiFPnDcci?h%+`=}vZ5MqfwYv3~50)O^D+(u{;r(#lRtJvnywN*AF!|yJ zw6;j8kB>E%*JaBltTU(L6r}X6ec}c>{l_gQ7=LBC=p@v>#8kERoLdu42I=i!DkF8OoO6b z0SS!|B!;NBAn)O=xqDy}wXXN9q=JYw=ww~wwKB$Yw;XleM>|&W0Mb);LI;}4`3m4R zwwa1VAwAmszvq$F6~|FKv`;Rw^56_aQ>IlfQl$RYraNq|xV(`3yThMyE^axF&c+1-!)bv2w*g@(x*2B^TINow@WMqa2+;>dW<)lJa{TBRO z_~+o}^Sk-Vy}Zhb zs@el-3|WC+1_T&X#-}18-|RajIiLRyW%B~sOh#jkw%Ma@@l!rxLk)~4!XD-0(M*elxApU1#DoHwIcVM2{@u~ZNqw`^ z(dK9g6HrkzUAi6fwrj3i4Gl@?pErBVZQQi{ep%(ooJG{axrzCuF!@2`EBErDu1HG- zh?X#b2!@gyZcAQgCbxQp>wx?cj@)OI_s}a72F zQ{UD!z2BFyI}K|aAheCJglnO!45>ssk*?=z5AldOP>U>=CPdBKn+jXq|Pn_w@#hfA3TNrkEpsD(+CeoX@n_^k+bD!s!=sNa-rZ z@p$NsEAiKOGmUjVhc%V0;P-LXAbVj&f<`W3dUvY}CubQ|^=~_(gEbQK_W|ImRUKro zK63hG9_14$5OD8lumo|MkN3M+G!?pNS)1{BMbX-uZ|T;wP5Esvr<=@rEHe!wBYa@= z%-RA5)Kw>0QabYrTE_b=@5hs(T_Yb4Ea8gafuZoLI&1Jw<9Fs7O=x8_&c^ z%e=fxnS(U+>S87+9^_?Ns@-~YX^o$eZYBG1WI!;AEa2VUBchlc*sY zr}{uGdF9Kl66{R{?V2~VH|Z@a{kZMugmv~*P@j#Fh@>twl8l{yOLybK=U{#=W4Aum zZ>?sU78|5xzck#oo~5r(tq*4&Cl=2!-Fues>t+mPJO;;^AICXt>%m2HxV*9@m<;pG zzPS6^tjUO*yL5MCiEtTG<>fKf-H@6X@F2X;@|M zVb*w$4!+=U;dD>RJEpsy`lm?VRT@%%?7B+sHGAK#tw-#G{}JK5AtN|u{sXSaX5 zlRW;8b#nCjgid&0I^1XD7v6J!Fqr+p-eXmQMz^zdFox5%FPs$-d@o{tHdKVB>mIU( zBH0!gzlV+ZaP8~M+8P;f#LMlqjAtUFMs`;B5+z#{gYqZ~-g#rGx2)#M8&x?o1eW2^w?opJG_VVm5rY-7B)WerZ zEY`^VxdZ)fKbGn3Sz?OsRoC0D)-!Usy-$~W^xf>nLcsoWWUOY(i#ZwD7XmPvE#70O z0Mu{=Q@}-7Sl6Axwsu@P;xPv6aZ1|HNq+^c+M1cp2N0=!X+RnNK@Q&IOAc8@GiW^0 zTjQ?ACtp{9$@&W!sCd#KDp+^)gQQB!G4L;Ff&v5a@3-X! z^=fdi){5@Fm(@RIsV=%lUKEyt6 z@p1lxeO&7-zN`QD1K?<^TQHM6r}udw^5n;Q^Z$8({~wP)IBKQ`gp2Lu)wY@d-V+4| zu?*g}&o;Me5MW5?;)H6lPp+7IAU{YAR9zb3m^})-9>Mef_HZ)riYhgtQiI>4!s3o@ z1vtbDXaEvNwIH<+n$qd$tAoCdWe~IQ*ZfZKl(6ytGNuS=_YkC%Gr+ch^zX3{Whjps zFc9p(HXj52(q7>32aW^X8CStz7V(|~4bb@k5WEav2rEEE7R=+Xa?mw;=4otESEE|L-PQ33~Wmh*^> zJ`x!$9i!ZVO~yGE$x0S zZF_+sxj$Bhe%5Hzw@s|NSKIG_J~aFWei2zzZpp79#``?ejQRo#a3cF*lI1F}4j#j* z({NX?&`q!D9;{r+c3m|2FeotMvF$2*Vf&iVyz3$G5xWtg!~p&y@9inI>?M0;CNt8w z69_?3S=mUJfD+@^{=Hn^b=#CXkQE1REh!Ttc8^>h?XrMHV}w1w?>CngTn4;bp5i+T zi%LkN2BZN67(sfALrdLJ#B|2{`u%@j7u(FOYMApQzzKYmin>8Xfsd%9;0+!7;j<7Lw#LbFSUpN@3J#JBMqybZ5-PQ*2VEm%OS4a6+{Wqh>=-C=$5%9wKVKC1#z z08FX;Vlymz#5$&)3wVMUtfE@J1>Dbce@6MSTToM@%|dq1J!p!IP(A?CIO0@+Jpo`L z3CEAaPdAo8!`S=mi){8jbHPcHW4TZJcknqYFWW9=bcv*uzk6REKQ86rcBX_{%ORg4 zm^bPq()+D|Ni`f2qZIg`Num@pV1v&iZ7smbXOH9)P=Jt@2{{MI%yD|%yWO{+CiL{g zbY^p>vCC)L7@bDF!Uijx7Ix3%Te(|wr07ULUX?T9a$8M{C=ECY}+Lu&^_jEfO z+F=3{kAlE}D919S*`U^UX2A1@B$Ef^ZaOp3UTcym9&5T@q%z<^O;cXnGv8sXngeZv zo7z(>SD~xnViBilm#0dncaBPDzE}sNn^>sSudSOvMv|eI@Zx$^3C$FOIX8YW1;hfs z_a#h^$xp&39~#|Ha25M`1YcG1GqrS=AD+N57yV_EMq~!LW&&%a7eVT_s5}R_;m0Oc z54VZrNtujyFH0Mvrtf6yb`b@dWLTzAi@GrIj(`h^6IeaaN#5ftnKSf;@^z<#8R718 zS_Fu6cisqOa~>|wUp{?l_+V3D0H4tl{1WG&oyS`{Hj}63^M~a2app8R zuLNnQ<;deFL`3=pQ6BneZ-D&_?$vhhG?Z7N&+R7I|K+u74PY~eLd(QB<3N)^4qnQN z)eW3GbxEu&d!@r*`=Q2rF5{DZUAgCOze?vIY`1Hm*tvz{n9;eYll^$h2hqa76 z-?MBz`f+8SQFW$GrOr;GrFfE?`5nqltQ4A5g0f;ukEs z08U)B>b*NjGIOhd@wgf}&A%H3*2w?;jr?(LePu_B-Zo?HV6U%wJjkiMbG|g_DnIt| z-#0Y~4S(P5AOD={Np5Hj#PW#ILsPw78jN>{y;@wbh@jOHqZC z7Cc-AbN^i7ut^z^U+D~JXXVAMLJh48KXrNVn!mJ`>^E_j`O7v!OD79=4>wCwN96yU z&FlyT_!;;ZkpB@95fT#q_n!*>{ZmOv23}Q5Cut}!PLW2 z-qPIJ!jj?IHNwCD?7h>?I_}e#YW~GWkdITosR! zP%g2galwGs;f?xQ`gk;4w4Gltv_sh$V%d9iegzWy*f`k@EtkIK8$33cwHmK2dhXh9r5O$q{*DXp|&1zYh}RcM{xe=&#Mu znk?5;PA3>~r|`PSJpFXobR#!Pa@aw;-v8wU>a;s8&lbCceol5|TVil3j^d8OgUFSd zOi9gzFSPg8M9H1E)RbyxciLXXhR@dKy4+wlwGnWdAuruJI*`i4&tlB!@QmNz81&dK^D&**o1Wbf{cbb@SYzVR6xW8}a@@ zsmzj`A&=V2gez~2MWz{>UhWRe)#ndX^1au3#Z)Hv)a9wMUh{*Sa^6-~O^E9#Mnk{$ z>ILu2rA?iCcrJao^3H~k-;Jm1=0(ZX*dJ{ZCx#|*?n=-VZr@=~S&#NN+8wA-uwIg#y8$E-gk_1zVn{*oqsl4 z*2A;bx?|pRUh|sQT+`PqNqw>!-ud*lwoSnKPQ9gXOWacO^<*S@syE!V?pTTY*4^Xd zWtchnxFeQpYVAeo@&+&XO`U-kA%6Z<{W}|r8@s4aBaO`lSz2rQL34Gtov-^QCP{7u zy?+)#?z8HUe)$`QdQni)>!~c_3EY~iw;aDyS2;+0`FwXljcCbMUw$)*@G~wuU!FvW z#Nm5$3O#kvRKIzlDGSzQKc!*;T5MX6QvMN&tNGzwPunkruVgqpAD9ZH=cLlmvVM{ql66(8fWWJDY1vXFv46*l_^JD~=T!;w=VF=27k3Yji7t=w;Q zYLj~U*cBCXzXxAvDXpf5_1_H+6V(aQJTIR(l^8QGOHSX`F5ls}-FBe)fkO#*9(7B1 zwnxJFinD#2-W2gR?|ZlDP1QF6;)M6SeVyFJ+{ zO1!z$ggq*WV|Gd4;Eu?*{C9KW-iG}(npU41x6^L^*t+n;>qs_LGh>*(k>w===Wz~) z2r*Y%4_f}u1i!7Ho4*ooJ&BGzPhN!na*)uGR_kM75dpokHY1%$p+(bm?MT)K(E@J7 zPIrsFQ^Y?>OOdDC4Qb*C37Ph-C9}AWc5L6=AdjV*jzxb*u3Z+b*N*hQv2PmzViu(P1PE9XcbuGQlVq{^2^+t6!} zfAiyf)~@@jsq0?kklK#!^{*8M6Pbc&Vq?j%)vPg;JeTfhiC@hqx=T_$&Vo%y{*&8l zH^e-@Aa6i7dMw21TyO!oOn${Ee-4v+O-L?<&Fsm`hV>uJShP8jvIC~!q8ZW+{MM%#98gz9VHu2VQ#tVQ4l)u`G?krQGSk^1Bv7V3zr9Hb{Fhf zD56*`-$ZZ|^&6xt$?C=y1+in~^~$Q@ML+t89qHyu5M-28Ou$00SeWR2zwAon%NhD_ zzAxDJx%?g|5$m*xjOlb!Xc!D}8Kc!^;&oWPd4ANtaZ6E$O!SsrD^oM&cmBBVhezID zcRs$!qyO@QKQ5VB%;RA_e!LjX-A8p=B#(l%P8T-knssl*+&Ya}8)>9ke>^IB+tno) zC+O;$jm%32lC9&#iPD#IncSpD(alcDCkW44 z2!0_UEW#uyEpin(MgBRJkiSIkkDNaS{yq-IP615T@V_c*OoAp(K>nFT?2s_x$r~6BA(pAtov00-m6Wi75O-`0wX3F%f}(N&oXV z|8{%i9cGei5pAeRlTzRM0l8Fil7YJ-#IVO6@ zrRuX6-J@e~pYz~FjoQe%8$m*2??uT$luE$?)s`r0+kY^H$n*Z0LXm&XATmDxyw`ta z2E~y1feHK94E`C&|H2IZ`OAN9^}o)brWdRmB__c?Kb8OfsrjGGDW0H(zP-DX!(Y>? z=_Se}Cj95=V7mV`b$@>M&wc-%Ix)n@fw%bUjsN);LE{_t0e@EUpT}SlG3Q%8#bBny8HS0a_B=UNnte8 z+ob42rDFk{#o2DZN<=PO(HGBCW~LMmqhm%H@m8*)XAj00vD!KvSnQafJs{@4FzwFU zbMb*aFS=qC#hefCg>~~gI2I3N%`TZLOqC2WTX|u%vl@G|A<4GGKN->sNJdDpdtVl7#xfg-YS4sW-O;`~0Z z5@xLq18+VL)AsZ_@#9wX*J<3XEW{aBil?pXOkt{V5t*Y7WyV;Ta>#R=MaYN@n*H_M zX7mGfI3)EV!L#{W0aB0jR>Q50m*~R*nuo54HfuQA^We>5cT{Qd^m;G8UHG zHZIemuwq{w0!B$8<*_K){4St=KgKI}l4!*bh%%qJfPex6m!9nY0Io*?9K}zR3*`$4JxsY;dftIH_$0-13P2x6f}GfAqW)tC}fG^3bHS znkD}d)RRF=R2i<`3eEc*zfpC+m%Bo5UAet?1OSfQ?c@5!`hdAs*XiO$r}4|c6;M?| zi@rBks4u9N%aZ-*?65*%=J!*eKODv!xVvO8138WlYcPiDTAY|MZfxmHc<2~@!Y91* zusp-B6|7TD!oZkT8lcG=ue5rNdw8$+F$-cb3tB39#h-81z(_cWr@j=xC3XVj5u0Z> z`7Ilvlm;Z~aZZ8hV4Q!cKGABmn^lB{3yM8oXEdY- zLeEZqhIHe51$hOC!f?>f1q0_u@g+1!ObBlfyg;h$5IHH|pV122C{%y5=7|Z43 zHH?#+Kkh#|+5GlW{zq+GjVp|{5DLV&9W*K=QXJE4l;2;UG)?I3t?Q)ra$n?_D>pEe zWRshVEka7jnUGR(qOLb`$R>V7MVmw?`NX1Oy*K*&z6IJ3LPV0Zvz(Kc{=E_LSvvb% zmZ#V~o98)?;$V*LQGopUh&g=!^a@&dzU~T@QM=*(P1d9T{Au`jMNH`jy^8V4&0_QNdHQ% z)@t|wN+mC2*pRY!G0|4S$ z?9iu98EE!#5r~E#>m*&L&IR_^7F^C=R-F3|IAjkM3X4f&1-hvCbnKKv2jGipEYHHe z<*veFROSXa^xJs0U|qrQ>H_D9hl(GNbhK3{v=!Zc)fs$Uc5R-58yZzJ{QSAxg5D-^Kx zBboPXejnNFy6i#e9~SGjypy!<0SWeLA*i||NKERS|vuWM+7@A0^pZIPcCtbET;CV{)}Cvxu^o_xoNIS!s<-={~bODO7w>Ltim=Lm9#{Qn1XX1xefuiV%M_GZMluQD(xS*kXy0Buv5k5p(t9828VH!%xoZ3cEjpTH|+h zXY^)H_!2oe#{i={kY~G=ZGtkvfcfj>eh2&cZ;%`)Jl{rce?9B99j(x)6z!Z3`S-x} zt%T(k4~M|I)`lg6wI7u=4pP9KN0zw)SoJtWGq-{l5D9bhUX5(j92I`?tDw8#0&IO7@kh+!<(OPgMf;%&G6t z(IQNnB2gaqe!+&NxwXI>R_M=|2gq&uRm{?+XUeqQIvR>9Cy1~_Fc)V)Zmr5P%xmdY zr2FrezkkXzwCrMWPElTS?AutQ+-gNJY?wgfi!bj7;zg7f)dtZ+i zUW`s>5;gse zRM}~9N=zOnxLCvu0tK;THTwdYrK;MlVXb#*#piD3c#poZOy2p-)Pkv>E$_G)Ui24? zmk>XVJ%hX$?rD$$hQgi>vDa(r?t?L2#;{|%L;>qo0=f3{F)|$^lFb`_l=xdGJ+dV_ z2Hl2BtMR|srWEuWm?LC-w$b>sg8E|#kF_FhiS3ox*^{I%Cv=kE>2~}X-nAyusCwFw zGh32}K9zM=dY~e0ZFBEuyz8q*_VSN)rysjEf@w&v9c>3|Ka)5aO5RaqJTfjP)#>If zt|XK!&u|{D;>V$ReHXLdVJLB$HA>>ie8RHt237d&$Ki8ks&8)e9<7R!*zDico6`Kn zglP|LQi3XyS>n2-ZUH5eiH4&wA#pGFX*l!qVSO)m@*fkv!vxwJ@z^0J%L>=12jTpb zXhz7`hpb*xXVCfPjs#m;jcZT-jgJdO!XTq@(igkvv#rID(!^k#WMg;j+NqkI{s(|# z~3SOU0ysD;sIIdyVu=RjxX1g&IuxB3IW;R+%#c~Z}ne}+lsjvt-4 z-16=-iJVwF*4+xugyp##=Z#vp~#syTM*Y0PMqr3}&NxpaSd?qIHWvKdqUVYgl zQh0yB04+{3JA>xXM>D_7Gza^WSTgnzU5s2lWQnNDH?p(Net%Ve(`lO0HrMs(p~sW` z7p6b%{G1kQFqj_5$~)Zf=B(|bP&iWY=f(*iJrF!E8n=wRcEoEH))vh&x(82h3d@r~ za$+D8tuF89?Fe)%utLyHh0efC+B8#py<1Hk;8E-zSeLwZLOpXq+p<06$X&;9?tPo((ON8#}|>dFa&+>kc2H)4Ap7$O?-AsK3T z4Xbz44&B+ql7<&3h?e&%*m;N=jQdx}5uuH=mEErfU?dYAX@%bYWh4W5boOfQRWQof zM?|Q5E-k$Ka6zzV9Dwu z|7{N#KE7yyZ4uG5o5BCmjV&nuTsFDukaiOuF>8w*j^Jlyf*;`-)MtYi!#bHG0=@Ug zD7#Q(FOy#yznyekp8Auj0^5;z-*(j4n} z`rQp{4~g>pUgC8ptf`ZVAf41%F4!v!;42Pi8psij(!h{#%gFtvts?xsc7#n0!b&bY z!6g#&@fX>5ZbL>|7(YNwZuc$v+vJ}6;`3DuZSN-e;|JgKSq_TXcK%W}N-(whz z@ylQ%Nd!~lON|UCx4Sh8?D>W>35iyVFy${YNo`^X;AosXTw@=~bJ1AO7CT|Uu{(Ji z$4J)sEmnSPNLLhPZ5SRET&erKFG)V7@7{Khfl<96GB9n_UMJ(f&*81G@MV+H$kO&R z&PRFl_%Y$glGj+b3A{-?q^=DgOvaY+Yd`l6vhemF@0y?Ar>NeWVbZMb9_#h^*}ijE zF8R{W1n$Cy<*qS;<}Z%>^qH(UQb^#BES^OH^^@+r$6`H zcti(!n^*O%VyyFCM&-)xOKC5O5K=qS6YfglK`lGkb-xO|ucfUa^i{3Dk1-qpiWx9$ zNHssty%FksqM=lPoG7o2dcHP~2%kKq4`Uy)VObM=zt=Vs_fUkxrSC2n+D^xx+0itY zTDA_kDil!n6K0t1B}Ij^j98xFoqmx2O@kYMmmEiqp^J3|(wcs!86$;P=`w6TTy`8G zJ{eiliusZ4YlHr^JIx;%I>PkhP@-;!4M$uQoxnqeE<@Q1D62tN<2h_XMaCO)M9~CG zgcLMAzuGhJ5U+U?cnfU3Zs{d?9oN4qwV`+MrhEHZgjP>Vd%*T(``p;>!eRXT3Jj?I z56BCMHO7}d7D3uC$9s1aA!%EB1&I*^#DKe((dVd&4r4epqNbA^O zxTmi|neXJ8j6egz&f}>be*p&`$8p_QOn(6f>%9~v_&AX|xY2(i`@7TJBFX>Y74fwH zr-knSzr-v4uf4Rd)@8g%S7TKJ3QVm#5yFPr%~_Q0G+okgn1U1Lm}Z;qMX1O> zYZy-ec~{H$45yn~>z0&Lov+ijKVW6!P(?&+TA&q4)8Mce{xUVc9Fbk*>J_5 zk2kIHg`TGDIQqkE8Pe0vHPUzJ#HsYW=foZu$)cwR4LampB_uulG$g>ArJd}=Zj|+k zJKn`o;hVpD@gu4$ELYBSCJu;asSI%HFfvky0ta*uz?7--@v41UTw{Sse*MBp6S zXal;!eeOY4rg(GN*u+?*Gzn_C!XgX9x*audv7y*w%rh|1Mujz_Rfyx5_p42+5GB%& zZ*P2g9lTU;x4i@1mp?5g$(e+jDVNc7_OQ{v?!0zY^XQ(xqJqDUKNAV2 zy@qTo5^kPH^;AIX1*nlrbN~AKsc0o5apZCV^h;%b>Nd+^z=rb$(57#N=iL!;oo>|d zhqc~lP=bSC*0e(B!8!>(s=D$sXii~shXX51(O&u&!iZyS!8-b2Lj72QU^->Nb~;NM zlWkapN<@YrnR%buot2>1z?KZ9MHnt$sk>T!Q7(jBfX}KquDlYv(hC7`K0sjg20)GZ zZ$P|ib(_T&foet+RLGffW{A1ZRT`CPEs3^zzA{>E0rI?hMV`M_ci5?()Vn*Nut8fP zXw%hcT4P4RYgTLB_64fci@pKHj?cQ)6TlsS3(Bn5cfx_|VBPHM2UP6jb?1JY36UUNw{TqF6ID&}zc4C0o^#d;E% zFYOypFlTI3M$6!C{nX#-Xm_4d_u-vsBo?kQ^LpLx*Dn9mt{+=y`t{T64TJ+35C%nB z?os>@lAFUWgyypnFW$8Km4u^!W0kBYv<%4MZ-`=}D|!MfcwGb4POaO#2Rjhj3C9!b zwkH5HjA^9Eu%l>|549biR!-o-+W)iLhEjtHB|arCcsy$LTA@_-YRAC6)KhWgssCCW zjNdXNd191Jz1Zc{;RQFq5_c`>f-nh`jG@`&7rp#Tkt}c<-Fy&?{$`xZVz3dg#&xvE-erIz&FnV%?|*_@ojRRaQy-|Q%GA9co#`^q9%{_?Rzs7` zLGxlES|h^UVV)o*^^%}e&Sw%z%CwYB#QhXQ=otesBP6h|*NY^GL@u@1xx!8f0#f@B zL37~eWm8xmvQ+)=y?=fGT$m2kkr8ifKit>99Pi?VPs!KwMG(1JZ^~5sqN>nE{a1Se z2_XxyizfA4X9*Jy3`Y(&@pKioYJd{*Tc5n^2WsRtiNKph>SCKq8>-hiz+{fA=b|$LWoyW@oK>J@qek)Lx-u~C_Z#_Yo)wC%OI{PEdGIFt_ED&5qFj^5NTX?=xkB57bmsiaG3jJT#>8q|xp zS8rOVVPxNEV&89M=(Ycpy-gKe@PaTJjuq+*6%Lr{eU`go%6RN38ay*K-Awv%*R@9P zR;>8!^u_|q7nu0Pk5rfP8!i1`RQXm6ztSM}0dR7vWO6lbRlK~G^9+x!#ot#CCt+I5 z=PmvDU%cOZv2h60gxiiEmr=-lC@W+vpQ)Orj)~db;4Vv$7gCqM!fJ{oSy-|5RK$=N z=UoONNFpR@$KcfZywngaJIFC<{E$p}NH3gU zkNy);|J+aWoS4r9$m=uPgIM6gbjR1OUzO(x^CD$I zz-jlBJ4P+lU0dKa2qCzR# z;O(g*sq3UQ)Vz5->L!H7wPkeosakf*Ok$P;sLS&GF%!D`N?$7q3+CgHKL}c?H+gJz z1WK!WU*OnK9n^1`7s+}rc9Yh_Ph?JwPMN%l255;3;zo2l14UVZ#P1W9>t{{S4a7qZ zT}#-9^vG+`gmv?zNNzMVL>p@*vTJ3sp0TXuq~BkTLS7mx#uQ~7r;uizLmtA$;e;N^ zLRJR{CfCRKt0^dj6<|4I4=0sLC*==W z2aD^kJA<1h?Srzi1zX+;)3>HVkH;CiyXjUf?(YPO)0PvnsAc@J{U;uZPZ2y(c_Zmb z)LS$}T1L_((xpqaW82s=wNq^)-1woBShH7 zC7WE$?`lH$TuUX8;qR0NRQjSRiZJl9qVm!?TI~#xxmY>AFI($=?}n1-47ra$F1qI{ zZoP3ZL^UCYM%4++*Pt|tF}!F=P0~#cXY<5L=kPiY6`JBXII=Zq*`gGL&$L_n! zQ~G5l6ku}?d!Oq*%rVEHJxHgrQ)IFMQ+A-Lv&pKcKq^Q|En2No{0PkBi05bn0oFK& zG5fw}f^%0FIHvHSZ>n&H+6<^%CPhqHq;QEA8;XYTO6-d)`f-DLPZ3knm*uYSKi*T3 zM?Um_>sO2C$7i4I7VoqP>136QqU`vn9@K)({^Jk3gpd-sc=Y5zGq-bg)dIUeS9aHX z&5!&JTkvKzDJdnM2Vvk@FN*TYP5+?guz3tF=8K00&f{r^Yz#cL@1}T6C6n}I1xQ+U zJSZpy8|&+L2I&lzItnaz;=6{0e!3Ha|FUpL#5#H4L6Fpat$8ekUU7P3S>>TvyRw#fc0C9|DsrTTzxuN9`wDX+vW1=tY}kB#`r0}_|@B3~WI z;6?}~PYgdzhK-?2XX@-5w+_0K@!nIKw^&rY3LX}PB$CHhT0N3-X@{L8gpv*|7Mqz`NosdvkDbX~G6(Nrn$w)C z_qU9q;DFRZfA^5akAp$u@y*Z6HRg3ggdME3s?;ijg#-OFTtK?N;U$a@Bm z3R7aJUX1`xXeQ%wDC)S1&}B!tN9v8mWr{vWX14{p4%2P(GLs{{HTiYV**0cBGlg1;lGGzJ%{2ux3%ZY;ukZh0lcdk5+mt!>(G=FmC?=S4LZJdg$Z^&>bZh^eA zBRIHfa%EoltDuP57ic;OPAxI20MDQE!fiQsDW?#5{8@dG=h*OBy%7EhpVh>F2_z%7L9%)hXY@Gf^X;)zzT7#+Gi%POlCXf?W zm&Zyg;s)}KFAd6Bx!iT=#^o>sCn#g{`V-uUbwzM z5+7noWMA4>nmKQ1Z6|)|C)vg5fY@gK_gvq)R6KO5N*Euv6!YJMjp!uoPPs&XdEWs2 z7pUwge-@=5joU!=Qb}Re0Cj*>J$XP4Lmlw{g)9Ukcc~((cjs&1^rfbN89U`zJAC&V^}SoDDle!h zI_oGNqA1E+-63w-YS!Hu{+T)z&zhVo>2n#Pg8)>hId%7e!EZCh>_(wklwN zaqb0V(MG1m-~CK2P%ZQxiii6$={ZrwsSi3rzCya528!PTKj|ix$=?u69F#kqbFSre zzd|ymY-FvsQpni(4brDv(Y+qfJE>?o(5b$f*PYy;JpG)nTG6F4%8cg$J4PkZ9fE3T zp;x(jeMo@9aHY-rVnPJ(*6u1uCE>?V95Oh_I36ZlFEjpk-&l#`E!0Zgz2$LZcdmD# z7HA$Wd45BnOFTbM=U7p@J6$pi6PyH()s*z-vG@r7?Xj@XN0uRa7WZ75+Loaquq%o1 z=E02khC2F~>HJy=^DFhmxlm!e?T<=9f4f!%4PmFKLZvds-%8;S{QEark8Iz!a>GIY z$pYI_(4K`67oC}mC|h@L8JvK*VhC$-izOU(^xv2``001p&rT>i*cs#t78<8<(=u1_ zS9ndOTwQ@y?f6?MsCl{}u43V=vpHRH z${(e?5@0TcD*aTsKHx{EPv*69pPv5uF)XL%+1T^GJ=Fa$pI~TL4ebp8FEoD-!DN9P z9p!q%Mdx>Nl&|wjFN%fijgERVm((?nc1J1v3)Di^$gnu~1z%7=>5;hu(8WUC z+xk1-4bEmBG02<_%IzfRirwLc6|Bg65Tke_ztc-gzO#Qrs2*Di-GPQQGx%aV!%m*aZ`?y>CeNg5oRUlw4B_#q!Gxy7kO97l<^Y2A#cn#)9t z4e_TCmnD<(GYO9M7pYh{arp5}Oq!WEpBgLK3h<>BIl$zOH%`HU)7X-M%L5s;hPmNCF&@twSIMnIJK1L zVr%gOaQafvI6o?fU5i%N8F)}stIYhJGbVz~)M!Me>j_)IV_e%!aj9{YJeo!d_WhbU z91WvPTDxf<6$R3lINA#`(Lsb^!Xz%SjThpU9+9J`n`knBJ?=;kGUHGHq@u@LZ4r4I zHPabxoJ|#lbRJF>76Ux+9kn9eAKnmwKb-lLwv^?J$yPN(fAOBz{edQ__W#HK<^fsc z-yo>;pg*2U8RrM3G<*#s)eBWz1kn*}*Qhf*)9qL$3Cai~c}%NifkxC}nlBT`AmK?J z0$T}NUG@=d@bgCwT0orBJOkqgEwp#~V(@Ql&4ocDI;1fL>^BA|g_Zv~svicV37?hL zB(>9|zY)+md5;A?C&y!o`70?5MmcBL5xU)J_C=upT)d((e#;6Afw)fe%N_T2J&BAbK1lPoeU=ClUjQe@W9w`xmhvkYPUrJA0rpvk0A}O)FZFwu&It zM9^)Y%CM^+&Z?}L874H?w+Hu)86LZ!3HLQvzU@+(q=Thw$E$8r_3rEWmYtPmsCGq9 zP`yVvO)iEo$YKfU-U6>Ed}7micvBPd?TAwc zz?A8VAlssu`J8+Ir0etVZh&74&&A3lE&0APesV>6ZyH|ivmZ^a)LL|Y_U>1Ioh4h08jZDM3BeT#w&GUM>RmGF&vFpPUOXFA&H$K#!OITQZ{e0f1UC4 z&N(ta=eY8UQj(v9qaYiH*?a&rzm2NA>0tni(HNIoklv4}!yh2-X1IL&7+QAJPe+^X z8aLPvLLjP4WViy3d&;vk1f?8P^n#cwRwd|=VOt3TcVC!wjZ;Vql z)Q*cHJMg_YHQP3!rpSEwh9Tk4Uq>s^VsB>8Nxl;whqBcm)U$vcbazBf)sIb_@bjxC zbwf786(C(AntY@>S<6X&13#VHWU>g>#+hXPw-J=3236Ym#QXm zgfYT1Z-QHEpQ~npWk}~8WFHS0y8T9MZt)T>k2|YeDKl>p0lTRg6NLf}9b>Vy z%8-hSV9ShF)Q=ud4|0oB%9B9ee!baXp%E8NlP9_h6V=9MELwGsOdnaDkp6g!W3-fVMLEdUGUl zp(2LcvPNZIUb|F+z3}HmYUzOki<~erei$QFR#AUGf`44&Vo`kgUzr>e{v4?ZF2f`J zYy9p*z55VuQ_F3sCmEA|y(1I90u5_m017-5U67ZEC$0PpS>-|LgkyTypglmofDFom zH!w-$)a{iNa*{C~?KO4M9g$ViECc)x4Tc_&od1q3mek5aPSP<4gu)ytxA`&$6pbn ze-XplWPm$aLdka%A!%OCqlABJ@D602C9rygw0@CzK?iSLSZ>$sZx2~oUdt3xx zKAiGF@jV4=#faUIBK&T!0<*Q_t|xf!&qbT|cnALf+^Z9H%(=uHsp+(XxUO73o4 zlo5VWg^Ar<^n9BBm=j{=^A^@o1YuJj3fiRbeR|=#z3wc5~~&WC~d8=%pL!G?lHab84;{{or{bU;lFF;kkf{ zeUXb!QmCP*KXeXJ?hF)>`}1hX(bho&-Yk`SN#TF+WR*z;E$__U!T@W&aH>6yk8(wn zDMyt)nJIV;Acb{*=w1sl)y_ z7kk66=?nCJIUio+ReM}jP#DR*m$-vadADSe#O0D^4K>Kgn;>DjJ$&n;#nt_^1{CL* z%f?o!Ws|cVzpPV@NfqhYAU0v3L2pR=qo-k~A)cqcK0>aGYVM3dYiJr#&x-JfM)q6@ z0{MQ1(#Ydw-PuRTPvrI=aOm$WufMRii-VdBYDfvOC~pE3?JNYEc2JBM16p>WfBBwaiVkP za+y;R;_Wmp#@+>7Z>y*)QI$z^Vf%wr5DrL>kc0s9Jfi!}$2ZR;^{<_9y*Sq->A6Hq z#N~(4diB}O6160wF1BMIuqld|jyq7tGoX$69g_-KQS7e1UD~s^&VK5>=#YI&e)V~X zcraR4%I_33w;S$DX(pS=VvSMY`kAp%Wac9~xza2}F{KGk{GhNb@E<3ZC0= zE()KU6tq(}+P^&JiU)Q}+s;7CofMAp%2E#1n%9=@7>Pk)cR$2JqI{UKezrzxx-Yj* zLMENZrcU*;ANazgM2au4k)y(1!YHc={C^$~r3d`#Z2OHAb?c9jr={qA;_6EV7bG_d z+84pT++}jcK+ZT}I__~xa8WbGi(X{0rU$)BFyCK5j-vz{bFub#xRC3o|Jp;db3mE6 z2@QFVoFqPf>BX^7^e1y2p1MX95AKV|f&0C0k1e~ug?#0H&f{y|rSdugL55wgUG!Q8 z=?Vo&4w7`M`;3=%JI56-DKD2lyYC~jUplsEo7RSbrYS44PW=`iS&2cXgBsPmUi(;* zJ9$HWiQI3`g#xupan9_&@RuEI0*hSx@g>K8m6tCNe$PgW*(+AP2bwo`zLkTM9Xlf= z#d@!m8h}&$=#a6{-S3qWX>q7(fv+elsZ>S-dMV!?(M20+@(Q<~ACv5}R=HDnx?ed` zJWb&a8%X4RA7HuoU{)ffN;ND=wkn}ny<7&Sw}3U0LlOz5#N_H?JFcvPu8vf15G+Nm z_4rvP!(cDq)mCnb1b(@4#ozDCdS~!A-))wzEN4` zD-InE1ph#&V}2H)e*jPXXeBy*uOXhYjw%&QM{3%ku_Co%;Y(#TA`f-3r*_q{lVG+U z1iWw7Z4-5oA$X<=Z}6D(Px55_X%;rJi2DqR$HmL(#v{OyZ_>)-sSJtzlb%+PhPS&${CEWhi$#$KPVk@OM&7*1(=N%F~rw<8k>HcONCDGOw(v9rW8jV z2Jo7RhO;UW*bgq=xAFO!%)|rU5LT-W?B8JDzoLB(*=Ll7R)DJi1-Vkb!F9OaC_wjW zqOlZ@3@c3&100Y)-Y3&Kv;1*CyAw4nihRf173YE){a)aYkk;cBKj&w)TYTsmvM!-i z!|bSZ3=$RvfE(&^ig5TzOrs(kAC5~iO$SP&rcrvG*eyEOgq5e4S(oY66+|YsFjKdm z(VyakE(R02Kj^fNWocG7!9`DZ6ZjCJvbwdczV+YJd=JFzxcZWG=caUr2R)dWrnAMku+Wj$chsb&A5_~MHe{KpnOWa#l*;t zQXJ6;7yj$x34ec_JmL|E@j!K25U4sSjY5@2XzHQ) z__exA2jwo|P(I^+LPL_eO=p)j$wFcaLt3obKayH6c7k(^Ho(gs)PST6!|beYoiHu! zRvmAtD-?enRtZT^|MLtBgnvDQLD%hITi2807_ZNfzgjyu!nRZtiXV}&kZ_&*Go)5r zi3GUXtg`5OXdg40-d*n@(Twk6jZA)}iwwAk$bZ*WjrW`P^@mc=6p1F*=>W#*LI4Mm zoXg>7x1W>QgTeNRL!-Qc76% z!J<;Z!5oc<2hvuH?k}(p(a!rx0Y)p*pkN6O(x(=)lw_HHk@%F>cU3*nB81B%Ou z+%QajvX7FwW1?xJONi(BFO>JFu0yV!lv*|Z{9k5_lnulETjx||Idv6e3f%aunwj#U z!0((TQa%v=Yd@Mw}9X?)dT|r#g2u3$9r~rZa}iyZ#;j2#v7dV z(P#@uSymZS6BZTypyO1Et@HxleedDYQ>0ExqLWZf^9}X<1@r|$H^mg=Nh{(y*Q=@9 z>h~&KjsKW8k`P6aLW!4j=|P3xL068Zim){LIR!(kX9hEX8@Pc3o6%a(Ovq_!AIBCAyUUda)oEn9U#?ESro1jZ^VNcCfsioBJqYOc~B zJ2r)%j@E5E@~xNSg@)JEcj&nw?zK$r8I!Hh5wNpfA>ld8p_3C~K{F%TR8nxIvWh4w}6%jYa zUhPS*#g(e8rYQ`6;((KlnCAbJSJ}Qn96Dt7J0?+BV#XnUy0dVS$u@dZ^v&0drU%I; z+=8fL#*N+ioOW2xwdV1zwWYBW^ zr+;2;%xs52K4FD=@vuXDmw;ZbEI<#w1XRg&1HqQSJruuyCYq%=?=rX`fljxwD=fH~ z(Io7Ud$z@f+DS2_|n8eey3*$53Sr+5{+Ld9V_vYs6uwgxChLiUtNQISb@5D|?g&cA<7e&&dRkEJDZ(yllm|LM!eVKO>c9GvQ@rsq6G#y>F zrKLvkqf8B_aXsYxIuO=~#ep^u-aGR(RHK4d+KH79O~p@uZ+4^*znoaIR<14he6EDX zW|TA(XX{2R5o0o4Y5R>=Egp-1Ko%{E7DHwUQx4Nd6fQD2OHy8OUi=k#NrdyYd~DM% zwMrYEIFXhAlbTKWPE?d&(3$E1*Y)?WT4=Pd(|(L3ZJ|;B!+a&s#Gim#r(cS<*|lA9 z2tWPm@c;s&VLli^68G8t_@@^$RE2Yy$JwKx0Dxrau}uczPTAt7D@r$kaO;}SSUp9b zgW%o;hDgw-?1G#u(dA>NKT|VnL6iZwSHh*`AY4qrCu`yqf8dhzkOj4@?R%FYH(I|5 zr!jFDRBIWW1i%5*=rPNj&;)n%TW0cLkAXXKZ+^a(joeWPHyx2ZG!zYhcq{cbU>iv9 zolc#oKn>rOso$}VXfY~D^GezL*0C`?rG@-+8)j;|S*fpVfKUdz=mIKwGXhX~LfW}! zfj&hNeVp&r3@8UZWBIai&`D2KY}>*Nky(ji|L^jy{)OIV} zF02C+7feY*W!7^f1d*e8lsb#eL~ON*-@{O zu0G^*T&*S9mZ$BB4RmKm7$WX;hPl(u{-S5GBumE=aW1N`Vb0GGJZAYr zLU!aqHjK1uhA<^cEDKNkCT&f&$lQBD2KQ2l3?2!vKOgf#4Ux>KGz1p)K2j`z^2 z5IS8q&3^56M$^8+!y;4Q_2HSt>ijXV=aWQ+lpYNk6#;Yh$cU%~m=T(9QtzOhtrw}e zM^Au5dEQ$)YOvb0rqzE->ky)RFAm8KAL_`Y)x;pPfU#H5YiNpx^ppULSGimS!lbll zH5!K^eTOOohl+-f9Z&*jplq-J-vYl-VviN?mF%xiO#lr)@sF&Wa20(@6W)*GdEz|K zgp3@9TdY~ywhNa9jYuXka`a+j)cB#a+A*{;`%B|C&krH32(4IH5&{@O)}-x^f@$n> z;+A^m1XpE};R{n6FiR5mbN3|^dxm_}WO*-bdCI0byHfn&dovp&A?=7_Nn*nkXE`ye7|mX#7#?-;rkgfr%qYm-$bfzngLzb26bSuHk=`P~TJ zfa{!wm)rF1P<_g!+mHE;-g3L#8yM@_Ar1Xy{}4On&(=O*qH&lv41cWez;DPUsfUOt z`=M__tx@7eD~Emo0d!$@pL)Wt@ojzZo}Yw2gs?IJ+fz+0`g7<^Hb(O}=n|%CYEFs9 zlWJHG#Y5Oo!00qhMuPSg|*v*nx@G zPE;ezUp{##jOTnCvGq>BAYkV*f0AcF7bDUeD}0Z%Sv@P63@tt^&-GaoC9(_OIlwNY z7GFS_%)PH-ch5_9NcuQmqyF)2=#MvCuhifRiCTiiD{#RcF=n?DMTXEzhO8a|J4i1a!0cRc z54DfQQ*?N<#3hE&6|J~r9NW)YA=#@_`9Iiu3#h8vu5A>MM!F<~O^0-Mw{!|3-LR2T z!JxZ4B&0z^1qDPwB$ZN9NtIF>K~NAC&Rpp8z3=<|r^XrMjC02M&v=FpY}Q_N-}jnp z#&umY38hzOKUj*rnO3m~p*}O$^j7VOS9Ng4IT1%AsZjyoH3e-@aD_k?x^JBwnr^!M z@dFgTfJXA?X#5wO<}7C*GLC_K9j!pOgrU(4xHjKGojldV-R(@6UW9!`T?dcrc}%;? zE5O${+cr)=ge;UT?7jn{M0(F#K#uPJJvQd{umI~c1u_furf$aCA1EPvy5u5{Uc)CUCn>ij`;N8vC$t%Za0Vvhc;kwtF7} zwdtfZ;5~FlQIVLF4&BRGry;0v73`9h?ksu6N(<$>l>CVyCOS#ebh6D+)q#;wz++6y zT#=<%$$fv~^0EETwv~nL4h4%6>f%R?(04z%NpM+EBcv)ChY89^d{>=I?fd{Wrwl2} zQ?Vwt9EbW*vJ$R{b$1Xopz*_m2sC%?8t&ObSr5oN6e zR~*HS_k;WY`J1_O-zNl=@>{Nb(SPw8S@Ns<=lKQ!_uvlB!BVA*@F8T$f&i3qg5e?B;PpeMV$M`Ys@?$Hv$%R z_dNX#yZPt)A6n2e65P^0bD>6@y33G3d+gMgE|lKa-~JkPDz~JVXH*cMDm2u|3bWW! zlp|rpwHguyw~9$`9`1h$0gd*%-ysVXaY(LdI0Jmt5_SNjV#i~5KyyIXBC?3-BKYOu z(T;TB_8fqq0Dt=yq}v0#!`pa0eu9{kazCONlzQRK5rU1X=I7F3Md4$F@!8C>`xvpL z_N<7GYt)67v~%ud(H{jH=C|p|LbN1g+2BU5XGCl`^Xtd%w>NO$XJGkimLc5%`Y^;! z`p}P{FN5ozKDYayEMA?f*VLnmHqW1cdD55ulnIeWp-(3P0EEQ#Z6Tuy=vrRDsDLQi z>R6TPGHAeCLLC^&V1u{C&p%<0LL=*hN`{rwnHICJVdLe4z=6kSZW+!%EtyoOlvLng zEt(y3p-M=6=}Qbnsl+zDgafn%oQ0&IPK{}oD*BwogIb&ChhUV2KzHi{*e+m?knD3o z;S_`Ow(K>5rm$R*%O6@nf(Fypmvl@Ot#s5h z$}X!%p1a-ZZG>3L_)a?uG)oD4%Lz&}Wu*U!m`W{Xxe4zDysbdU(EJv1p!yYFu@ffO zqz{cmErzE5J6x)`7v!Z(Tu;aYmH6XQXC(??{=|O6GMRZ1qSyxLDNaC71!6x6^j(xs zAKAut5V~OCM@e6 zaB}x*?mYm6aw-KAyhkOjAETZh|HgYl25(ZNiNpTJR7S)6yNWy0$&Av_L3|GoC(A%c zs8}5*^I+pHXTgW_?kv2#!Cp2`-s`Z(c0%A>jF!|s0?yO#VhMyCsfF}R2U^*=A4t2Q9P2ei7sEYdke_@g?ok!_N>Ipp_-@!TFDP= zbi^qzrp(|j2#o{(2bM|aZW~0d#n1n|Zx^4Qk+?SV@RJC`*-nl>N?13T3NoK!5V*~^x!<$IKVHS zefhE1Is7ybG>;RpFsrdbv2gx_p^2%2PSaGTBE$;D9=+C&Li(iNr^$2a_l#mBP4~hNBoD&PG~-0AiM$-yhczU}Xl_koqu)QH z&hZ`>>B_nZ?lyO9o5!Hn+dJFb?j zd2@w5;!2kdP=N6PXLJ$tTuPgu2MGx$($W^iv+?IDo1O6}OJd=jPJ|YK>**cO(A-=xogc5Kd@vu6F05ROtbrzz z4E(}ZOP>*Ig&_E;o7-*14z;c|j5`*mCz5!K@)55^?PaW$BsmO>=vM!FgZiD^g}=GA zC|r)WLTa{VWg*8$)tK?X?QG8hfY)i&zheT_&OR^3>4yigAASQt0q+3cGp(ba{hOc- zDonWO5(D=IbfH|$gQuVAHzbpQUs>P%w*v9R1n3(Gxl`UGh3#2Xg|{fOqNjOBz5t%v zT|a7O(QCTYKo?V@qf6w`)wS`va4;ZtK0jmlp@~_sdAHK(@BK?${%{(^&$jslZ9Tdi zrMy_=uNjt_VK1X;G@h*c3Bo2&XKO=x279idC8x@Fs~yDd)gi z;BAasSF}N4GS3$=*obt0UxMghJggI;bM7%&@A?*oK&JigIh7DDr&Ih)esfY>5{oL@ zsm_~Vx{guDXJ#9^$jYu|s4%qEyb6ct#>!!%J6|;Lp~l;|u0n&^0&F6N^*qAHpm0{( zLKPI6R*u}Bnb{;Iw@`WP9!nuM z`Nub{6qKP5EMXi~*N*N)4MncTpzi^oL3RZIFJuo3#-q#bnf|~iSdZFd+QbHJiKMY7 zZWEQXEM|}_jWl|zUZ;7>(CJNq2AjU%G7WqAqc(`kg zQ?zkYbVLE9+&$QrtM)`0CdCJ|@a-Z(giek>nNFERuS$s`ZH zrjWjwd8OS6t`i7h5%ZZmcG2^i`WGit&hjT<{R03e$3}d{V>grLtv{!0p<$18jZ1a? zuWEr}Pkl6EZMYk^V(l%F1(jfw(EmA6gSl25s<~&e4M`=$Yw)@y{Xgr@a#`0qr~~Z% zA+!lcL>x;BS|n1DR|3K;*f+Kb`b0e&a})Yg`W(HO-UD#_@^udaGb__4{3oZZBYq6Y zw=0;J{5@un5aR9?&C>|=&fPN6%2dKt>=0N_^w4%REL29Y3fg0-lFF9@tNW}Cn>28Z zAoO?;?Ptu;?cF>djnFj%cd;V_L0s?y^g{}KgHzgVXg{9)Siky>^~|T9wY{Y(}i|M^?&iGE^^vM+8ZoMMzXCX;e2S#or-hESw%b6$Tz+@XJIx zw{sphV9b<_*B(2*A|WjY!3&HW`<9qsDhV^^k<8PT7{cGaDpIq2Yh_ve*!ZcIvPP7) z;fH748de=dDjeX5eakJZd3bV{e#(h`GRR$~*a?4!yPT}l`%BAyEJQZNkz*ZxBPB8d zSlKE3Ofp7!Rz?i1m84tfQMI@23`eLO&`zCS2T99_9PPSmCaN-xM&zTgVxQhDG$i%^ zF_3Z{8)~586PGfzSAWrN)SjOzxkpmLj01SSdV&1Bdhhc zJjIMi46LNjDl{b>6u6~6u%3|;((!rJZ98&sk-FY;b41+R9;2}$F&g|C4baJf|P^J zOlp1&2xb@NJ_qRi8#1H>izb~XTnPyym3y0q1xK#2^zZ!ag)9%%i^4~xJuqvQjI#v~ zwD>T4Y%RgaV86}sSQIe7A z2W2TAr3x7hKQM}98t$e_Vb`&*@0i@0`26r9JvJ%>H;oiY{6Qm5?f^Qtlel1G{5jUd zXQPlYqd%?0P_uks8KRnj7Q_XsqU@? z8zXu7gLUDiZi_@|)BTH2uxJe48?%K9$K*b(5jsJjP9*_i?ETKC=jSC3CzI!=Nr;R# zPA~5+j@vS>K7243fKpr=nX|qN#=1Cw{>SKpOR}VmJ%)hKi|~C9p-#9jr+z`R_j?(# zJdvM3-cf+;e;- z?)OQAUFyaUCIGW+r|0F$~{#^6{t09|k7Q+_zi^P&;tsoV$Js?bW`1;i+m3>6H|Q zCeYlD;hi0fR+Q1ozqGY#?_q1U$K z7a@h8741BbT?h$>mB<&x?g6-)(`2;8VH5i8o(DKedQ}TmYUq{y34UTML!P*0Tg2c5 zdS#d~BKf{FC5HEz0B_T78tc;QqX*nFVv?iob38s_NV{uXU|h{ysS+AiLGzrB&&`y^ zURub0nyT(rr}mNbGbk>HxEw+Yw>N^;@k}L62*2`@s*->=65LsoJ}hI|tUk%(#d};C zVZ#SKHL;vAK*;&+onMwkMq_n@{51(ga-Z#n`<&wxlv$GSPf&L8!x%;&=}`H!;1tEJ zoHARPkBFVpaZPc%3M79qya;`P^LqsG_zZM4bo3RET(k&q-Rwna~1DS$n~&TnBr355&gs|t^uZ6wO%MiHDtv)e`Evys?**UKtZkF z-d!}4`gKL?+wGFn9io+W{UW)k3k?la^~okkUEZ*Orr!!c%y}-iV(IWU6WR`MxEh=_ z2srdCs@Y{Qqcb#3*afaQU}msFrQ|6t5Hm`V#V|m6iH>V`anI55tTF!BgV%o<;|B@Z zB0K&4WXN&NTPbBl!{9~4*=fqk)}?j~3NCK%YAxeV$6E6r^xD1}yRd6&l*oGuNZ;cc zSnVDF>FT#*v`$PHdnr>+21QLES<@$EYb0y`B0PB=JTWnEI0M6+5RpIDSTKV3a31@{ zuY40T9qe|^BM2*RSH(M+D$|vPmP(jWQDe0ea=2vXH)jy&hOeap%m8QaO37>61~CpT z8po4RQTSZHwQ_p|SUxki~EICS?O_j+O&?xa;ESJi*Mt1qk(Rsg0&m5`y@rP@fzcH%;V z*pXQ5O?6~}_r4~J5`e+x9NA|}HL{6di%)^DJxSc)O1v=PQn>`*@i$d=cJ580+pNFC zmHw(FHi-$5SFzYX@#+zK{m$69VoIz2wE|EaHWGNgkW>2J(wa<)G15?FE#@-oFEubrjO*2DV~NF$F0D_ema{adxuTP|1RHYH|=@uvb- ztp7NlBuUu&71HKMpYC4B$Hh+6&cf~L#%%#M$Ya^I;4cWTB3OQu4L?#DIMAncSSh6e zq@AXE+b;^inrF&#e6FAYvi5lNOYbhY(By|7WdY}%YMZi$j|D{3a>9u8UbSSn%%#*y zYZe3>{z*SB=&m{(t+AwjMhFPri|hNzz`I$RV3QA50)4W(|LBwL18!vN!*f|byE5Z5 zPlJ#XR?m{lgT2=NWYul5aCw#DAzzOZpc5cWC^HIKgcb%MWD@t{7?S;!)B~A3 zCXlaGj=()Ddv#FIaq-H91!=)5E!68l_U@L zzI;3`O%O2N1dJ~3x2|jdV^*K(!nWpx6=o@)IY31SAHI?O68bs#aO_SnBxabj522H8 z6|T`q$Qbu;9K($?kf7$XM zMMu8)Oi=4NemB5-E`DxtJa~NUSfK%(t** z0R&v?(qS1;x_Rda^bARvPWsA${rYozC&p7tA`b)9s#<^7FxqCv|{fs5g_&y@AktPv7Iq`<5qA z41v_dsVU`3n0No>H$85{O}+n7E9j~A0M7_05Y}~enAq)cJ`#uypm04*>g1EoR-i(H z;Ea(alT#5r|J(^H4U?#k3K6_AJ`ucHr67eY*vR$Gh}T*t{OMu_q#6)IbcFDyl~3nO zHTy$O?d|a^#UrD>#g7pG$o~QAmht=r>TZk2$_lLmT{E2az|MVR1E6FNiW=$6pe3*> zt+fy4>Wlx*Py}tJE|TOu>^x1Z9}>tj_~QZV*YHpkrF0z;7IJKzoItxsq+nq39|ePu zFMkUL#gdS_!nx))@g3S=t1{hzM$Bhw#h^8?*WOWw>G4m}s~4as@^TNgg)uVtuabh+ zkG~}at2fnauqFWmE;}`LLQxFU9dR#6j`ROK=>DlrmP=jF`F~aO< zyBFJvDuyRMT~`Y`Y?Q-hXU=zo+T-Jp;V&l=HuYFuMz zdYiuQ4++s!93(359RFG_XHE$3LDF)OJFM|*@Y9_n5_`RvURHE?0}_Rvda`zzO;h!EdKDySb6YQU@fh> zX~{|;6BlR5;Byg*Lr7<%maFJ*S|nmIvhjpNPd)~>0FKy>xRuNgvV=9Xv{0wII=jgz z?N^THPugft^{}|uq&~%nnx^w5nFv6m4H?7+vC6`V{_3s)ca-*KjQ(+em-Nne{Gye4 zOy;f31?Th52B|?F4WS_jTMUPf-2@vGL^(Lz5mApoj_|?{yMk#);cpQd7om+lrwrKY ztVM#<%%8AT#ishcT6_Go7YoWF*Q;lM-jicThf1fUi30PS$K$9_Yx_skf}XWm-H$ml zS{#+x!IjnKMMQtKTo-n}Ng6d0yMS$Nk39p_?1k0xx4xn5G^LJ@c{D@hmy#|J14`<7GdPiR_-G0s%m1^tn`4T~uExv+phao@2vpIVk#NImD3=_5w- zrbLBb!r-@F-6SZG#f;ta@uPiHgXKTcHYiod9K}&%$L-bSdjSHNR#17|t6sea3XV_$ zP`WBK2en;`n`?sXHJ(Z{f}vR0+@kS*7*dnAS&U|AM#0q>b=v4q&7d?}WM7=+_=y zoFo%Ldvjs5Z$7-rglgt1Rhy#KUn?Ng8oS`>gsU^ORNe$Aozx%%Ttq{`5#@FUhw9?p zM|0O_@Dm_$m|XrE=KepG2y$3=+7+OU$=z2i7rme2#B7^z#Xk&tLDe{NgC5$7VO&#+ zuHJ+fr0QMq+4k<}2aqTOO(ondr|Z1~qJ_-Qe|*lrA_`IFos4O%WAO>=Q}e|trAxPs zlZZcoiy^%PH7b5Ch@G7m1sci#ZX-kps^Mz#BEkVz=bB`Rt& z;$mVMd63lHWq_W<44ZKKI1W)K>s@qbB*Ec>%|`jYqpN>R>kyeWfTE%7P+BLlP2(z=54)(w}**q0lx$Rv8J@w zEW_#PMx)=ak?1=;@HC!Tpi;D^W3yx5mw^MLI`$$o^n&p>j4fpIhyWU=`F?KIRrE`h z((Bww|C}5{tgM(fet7jf)tC#y^?h7Ac!dt0#GJA_#a}pdTK|T@b0TCJ*F~`v+Kvv_ zSFj(?ou!yzmTlw48`+P3JU@Dhl?5p6f82x$% zrWTU6ARm{B7h?6^v8Yr6|0hx0b+H4SfTq!z+?ALfw$RP{cS7XPMIR&2H{nBDb{x#J za3yDn-CsqAdd58g@FP%%C|d)MLqKX}PrNV*xRL81&z#VYh!q){-b-MbfR~pa{{qj> zL}PcCXEwr?o~6C@Da!&3Z0M6i6N&_ss1GTPq;!PF?k1uX@u?-gmk0~Aig^1X)yRB= zcD8?!Jgm$Vv^|>jA1YJ~31+S1YUV~}M>)cI73h1~S*zR56M@>TfPN4fKpxvap*-Y+xqJ0-C+8gwOaXIfNsa>QIx2dktDI2lh(kJ%&zvLRQiL)z2A;d7N?8>>c z$gz_if5{lf06Bwp3H!PWj73eYrcl}UDwZ9gl6OB*tKKR#w5R*3O_BE38> zMIyv<6oo;gPk>BQ$3UOj zD{`17Im~oF#m??7^+{U^s=^DMw)|9L!cYLPUV=E_;)zaVkKt>|$b}~z&0GI##4h~o z`q>(ppGI#P5J<>;bE$-wj{t|uS%sU;KoNp2PD=S#(Q4=*Gf#dgd&C375#*vgs|f~n z2V1NEH$LUi1qoAN8CY>AqrHH$^)yj5UVfZLRotMA_~jL&G(2`G-vu=)yjLXpd1$^T zHPw1=88|wzu;#oAc56AqCj?rzRT>}{$9EobamD9~JCMQuk9S$D&`zSW>f5X-lQiOs zx!|y*zW{VLk`{d{honWL3jcUx^54t3l`sxfQ{aYz9bV|8!PjMXt+!Brk9qT(Nq#-w zU2>&Sb0x$_GHq88Q6~dIf75i_I24)v0^L9~{lh_MapO5sit{63asOYp;Csgh-2Xb7 zCzStET4NZv4^4rtq5+v{aa2mf`zN=@aWw(iLNW>6`n^E>ZH*?;h02 zQ{gO-y{qmZG;7WyFf-jY{rEBJ;k&hcZl@EDak(EkCAJ)#DhMO(;m$vIbC>u*39cpF zk#7~rW#@p^(H>PaS!~noDstU2;-f#(X@F-s)f!>Jh*UHiehl0PRa{ASB%N&2C5Yi6 zLoLVQq59$lpF3HoMoMP@;u&?i(acQcnQ}D_6NJu;BR1wMjRkW|6p`n<%8Hx} zI}xsh4w$LNNPhy4$f#)@u>S_4SbkC3{sDYVuMfKszi&wQj_=~j9!m3)ra+%;v(dQF zZx*=$odV|Ce+k?y6NVHaW#H=b^0KQN*Z{Hn6HX3JCq%y|85jyA5GS8>Hqw@x@C!xa zW_q24%cgK{^{DcdJ|eib*11PYxv<44Y;i$_6}E6-wea!Az6Kb%&=77P^_tjCQfM4srMjnUTg zLfZl3-^ZJU*M_Nj#$FBZmD*vQ=EkKmRqNm*tPZur#8mFC6|59-73LBub}+A_qE^>M z5pp}2kEi2V;n<- zi+QESPS^5Me7UU6r*3gW4yK;tG0~l4gH5uG$zmtB^S=y?orM1E+4D>}zQ?47*ZeGX zZ6~>5RgKT7C|;ZRMKe?DQz3DhX@4$3wwqmon{JxoID?9A@HmE3qVCoG3o+Vo4`w|z zW#ML0SZk)#-o=JJ{?axTJ>uIrfmA;XhPsax8&!23BGOBe<`<5&2}gc~xH+7%HzkywX(|bjHY@(zW%76%UMy!N)IwlZ ztH-%h^xx32vESD74{I*dkr^_dJJld$UX@ek&FWeS_T3)f zkCB?2^sJDNz61ZM1Rc*sWjz1a{Zps@o@_S(}=OW3KhV#|<&DI0zq||tC z2iUNbWeievJ_$XuW&GtgP?CI=fEqK$^XW>-Lh>{hCuqxr5L2kRHc_vRk@Erv8l4jZhrI0$08AD z9c4}%A0ZK{d8jZ7J!?^bj-RZxEtOdXlzv5#4CkTJxP7iqtmP z@cRQkccYj->z-soqxXBO;+4sIHg8Un zXp^ZF1M%?E>kKWhHXf!`%J~R9ne~Hm^js0bmiHWg@`k~+fKWu=l74z^wipM8J5Uqp zdg9{-{Efjp(Ij?o(pI7Q&mMF$Fps_J<{18oj1~AKzMs{b`)c%5^NV>2 z`n252)&QV}y#%^}=SYGlsgM;eu2Kfc+ItV4tv!5k)Zc^^6oE{?#{2aq-|V}npP3aU z_r331-rQro)(!17boPP3B5aiS^UI46NS`4}WQ|wd5;hurnF|5*3>$Zl{uL1T-3b`g z21I#=eQX3&=MoPl0UrYabB69Xs4=R1R;GufIWy*ephdHK8;@O zjrGD91xe+~yKl`e-UpC+Z7uoWgv|^j3~s$Ovq0oPd1hHl(YGc40XO zS7e!||F$h@xcrf+NU-golVZ_W1kn7iAmf zpF^I4Lw7Q_1@NV@w&jNe{^ep(TqN)6?7P5)7ExCOR&RHI<2$Pai4CkVyU}uOKT@Wv zllE%ZKLyV57?&%PGqTn;^L6sya67MzOQ&#j;P|E>)C{1yLsE;0K)Duq!j}7R_$5E- z6X^U&)CF}hYlL z9quO-O-iM4=RFg4d}%l^#&-HC^Jex2n~&+~>yY*pIt>1~shPKoDLs^7lkZKWQD22m zC&n~w%=l+8(}$zm%|4i^WV%P7Gtz0oxB;vN300w>(VmS3=RTF(Hl8R}sqQJ7dCrp8R}z;% zB`|AVhqa4Evipqe)!GJIAWsn4aNDRb%m#Y9#*04Njf|L=vgOK5&(2cn%7~j!y^uQW zlAPv~8(I94H%03ZdVJ>!#LbdO&0*{{?%VfVykIxF1O3xWvw5s?EkIz8Dj{{pw| zt#8y+#)Qr$@2WG5mCC!VXyxmD3wr0{ue`I2dHbBt(b8~RPMftyfi-a4NK?39Px8If zvkbCmR{W}o${DQa?^G?Hs^c)a*`D&a?U98CEn5!O zAI{m+@TNQ>H=-0IzpDWcoNp=L*ajCd#nVJ*CfT5H4uMqFrZ48TLytS4o_E{k;wVk8 zqX9Xqjf2}cDQc%XkCu)^60WOtPGLlf;e1M`&+;;)*5`<>9=$wKn67@dPx+Hgqqg^* z$f1hkpHt8(EH&Q3G*y{#a3e)&J}BL4*X^u_n`n!cfND7#n^7WF#`{9Ld>$G3hWDVg z)}DW0!@wh318zK4>$F4AXOx82h>+)L5p)7Nst-#DyNO~eB{p2w8Z88q1@Un zfxHc+(&Pvj2L&XEds~$;Y24**eD@L{o+Bq&ZM5`C6KX)l4p~%+@xn^sARlVe}E~g z)IEPQ3v2Brw3nkoP~A+EQo)WcU%zrQkc;n7?0BddcrmgZff#44*?hr4TGS|#PTqt8 zqFp_ggWR#b0ePpW@7vFQfzO=sPVPJ}h6Nv8&drlKUhQ-$7tAM%)3;!siP=u11x*06 zT%ZqY47`WJt@19RUx=4%0vG4}Q_D!#*$%M=XJrj@bOBSno+@GTdrAVd2x;hxAHAGJ zH-ZcY%`4yk1_hL|wf0k_4RM*4LB90nS823%c8Y>&23|%OMc%i5rozy;U<$nrDjAn? z&$=((laQ8Y{Tbkt)NAPLu?0#-6+0lfW3S%r^vV!pX(>I{zRlCjQdCC=Q=0PRJwm{vRc{Wn&OW-6>O?i6%4g6z8|@OsK>KTnC?n|C^+s5it; zK8lY)xB1ZrO)dY1^jCq|54;+7JmL;m&WY=r6hIRHps6*+Si(6el?Nx%p!UiLC4**c zI6;a4xy(5SCA)+q=d=4~@#dtTdp#kSTtqovN7G!~?u{h;>?T&G70}Bx{YV$gTqeTB| z@9E1$7jkzy@(QR^SZC84er!A*V)x0#k9{sABU-W%o!Q_ecP6eN?MpZ8&v;p>_qD`~ z?lhMlCF?nzE`P{9?Xf}`Vu?oTY{#41WX>%~gZJIdVF*llaF+fI!Av*!Ui2oV1Iy510PVFj00xU~v_tH*%m^9+KT=$TM*&Ke8*5Z*V?wL3i@-&g!|9SsRz_ z;hN2xI(*{&{W2(C>&@WH&$7DBviLp+rzo*VFrriwIYLy^W5kM1xexlYJt1)Y5Xh5X zo)=^xwq=(#%&FNNBp)BK;+47dt^!4p=9}PiUhx;HAz#9o2katVNjt{;_0eZEL+wmz zAydl9LPtK?=A_=G!$|Gcy4f`IXm4=^l~cDcT8L(3etXhe>w~dV}o9<|BWl8{m_;KCBEhT{;lUzal zWwjj=6`^)RC3iIsX_U>Qz$`TB>qz7gQ`C407?-p01k6ZouKe zDRSQtw#ivc%atS#bWFZhQGXlXWOQCsABPSWj8Ck6%*g{}_(R`$wwRvi=@v*;;F zN+J(>$L-g9MUo^}q=g8+ZZBUE9qmjX%WzrE);p~s5yCT2^Ex^_bfC1zj3uMQ{ma64 zh|soWqy@bbXj;*<(iw5>gQeTcrd9KtRQVx6nc`UGRAl1y?;vXMq73>O-G&{I@7C`X z?CU?Gbd@I7_LoiSTpV>Tbc%Oeg*Bv%o1R54@M;k+d!ariY}=olGocHDnMb;oJ78c) z(AL@G+|QLi$!7URcM@{erRdVLATA%;tfLzKlz?petQS}x^EyVPWe^vLLG*l>+9QQ&!1H<#fP#M z<8xzKl2t2~pm!E}pieLPp-Y(h3^&%vCR0JIZ(I##50gy&PA-&}EDYT=r!c z-l+p>3ao?RE=Ya|bi8n7bu`LlbRWvo>!48%(4A-RtUM9iF%q#S5bQwhTPry-}zUxSF1HpUP4crU8|(8k;m+3fPn3kY78R4QHT7QxZU?h&bw7 z@I!zO=G8Ew(I5v{B|wmM0b!C_9pcFtz>#T0YpI#lEXf*~2+czA-ag^5s_1$Rx+R@$ zda$t;#x_1w5c>^ulVzo!1$R!dvmZi&W5^Zw1697=L|?i>>ps7|3?d-v3Vjk>T%gGH z9U4PD0i7vk|3Tq^9D+Q2B$|XeZ42P{71pZDibZdT?oy8An)WT;Z<_XiU8@oZL^q+4 zVPGc#7i3(PfltnbQ4u3S%S>JgmE-L^#SjHuHLd9YYLHv`NX+_daE)SXOdn+1A z^!$)-n{EZsdJtaW>vEc0gN4Sd|W597zD zRVsH`bom|+io~)oXS1_UxeVsAjIn*}T!WhnPp*cVvO{MTQHOeYMOXqspUl@lja&dO zpl-eWyuj9(N=;=BjbgYG#QPCRrvdFQTS5U&Xa}0ae|q&bNsH8>B?S zc}%avS3veXEfw!#b{-!Ykm_~Ka|Vx{L@w!GIM6yEv%g^6$1$VfBYFevLi(mhGg4SN za<~bST^;_=wR~szvjYVIn)A)=uH#w`0J7?Y@4&;4F|UfRYo)Wb06bwvzDBlj!n7hChGH41NdH+C-yc4zs^Q>r8oi_`@B4@orp57 z^Y4zsqAP`m(TR}xvyVtB`&haBj0be8a+%TMbh`R3QeP!ekM$i+xuhix!48mYKBxAf zpS=I2>Y(4_*GV&pY+De$id}p=%r`goVD`Y#N9f^CqM`YG(*}UR>2lYP(wP8tes=fURW3?Y##fG%^xd682Ai)U~Xs3c0r ziZ-QbDIGpSm^%f{(jV2T(fB7uI*NjovVk@*vEGbJi`&s^bhLMRtwHAVSDeW9^4u$^ z`6;DHtvjeVWWOJTMrMz#oGvE_(Gs9h8V3lnSNd)z>utxFM-uE;eYO{&tFI%KDX0Ir z^Xk$p?kf5BZm0!XxFwVkPQQ$WnLAS@V034fzrazMw?VW?)FxAk_4QsEVpNqjS=u+c zRkRO8XZ+n$vRbm;)QiUIbmqIruVu#%PDV1l!4|0>JJ0E4Y{TaSWV_A|Kb2@7wut_x zn(wYViA>c~IIvRINX;Vh!H=69aJqv_)hJi^gk!G{-*sl|8>alBRvJNo-e%D!Pax37 zk88lzi;dGQrnJ}Q@23k+zNVqVK=>#a8?Tf}DiPv*^#;aK6!utdayhqw!Vf1Vj5!FW z9&C}%Ukc+SH=BWbp%^#3!>!Akwaf3v$h{a_UCjLF%^wzyKl$Y$wUgPKt&P)du#R2S z^s~s4Usurl^$pfUvCQbFwU+&=i@xzBC|@PDWI|fpeVaBx>!>n(rJRr= z(ILrh6|mBp9$PU>iaN#<#F%X*boO@g5AbugM?_O8zUC_z1ECwF_5%YmqiLhuy{VG)$1w8$ltpz7r--T^2{l;C-H zCx6sM6mnE!6l^~EA&LAT6hV$^j1oEdgcAMpN%YUBODF|}e@-s;Kb~FHKEU4Vvg<#W z@n_e6?IA1yM@DYqU)QT~8Lmgrp2+U2*<%BP#a(&VM!<8EP0C>YUTN>}~IO z86}APQO()k(a+r{;Ibc~nApkH3aWcMUUqW#hI8xLI~rd`+k5}(FBOa% z$bkQkllZSG`7=fO_Gnm+|9$Sf>|Om&CIOj6m6HX^FCi?1;unLtkP;Gur6?kLiBM1* z){(oTvbU?3Gn`FO+27F_)`_qXjGZ8ICgc;ph&X&wwfE6-c6W7yRV@V{O#+&T7uED4mf5{e7APF|%$G z+@w-}7HIZS-gW2}r)Y*Y=QU0ib~1eJQ_?6h@5tg2Z2W!l2i%1Cyrq~-+@-acM#|XA zg^^t>#m%v`#R|?74AO4z1+U@?B_5&^d`ZblqzS^f54&S1c4U5EE zzPDXCUh(9BSwPBG$-xZ>Abeda={>u__cd ziO3g*l+O}3mKUk44C0aIe;J{*d5MeZjSAR5Zfz+j=eqqkXLh^cMel3sj}fKS4P4aQ z1);3?n=Wn7=2tKDzJ6}0>e0s~n0UQ>plz-WFXnmCw?k7-DbZ%(8=o~r6{iDzIcYa? z-hU|zX5Md^Od(#RdJO2G1l`Ymtis@OwHyZZ zQr>U=qAwXa%kwqFTTP|TgO7~&2A{q_a#(gB?F@Fjs8tA4n} zfrGo;SJ8ve<=R(Yq{p}h?WR8ccxO8wL}bOhM|-35=;qM*)Q?3^XC9-e#-9Y*6jZYd zs%6|i5{k|r`Z50*(;(x;_+#GNmsY>5=TV|Xd2S~rD=2bX*=`B$pWchX2@J$|I<}x) zc;=-xe^I8}y3(Etg|<^8SBK*8A_%$l-;#ISEWKnMBKV>$+E%f^R&aMc;ozI}uS2ik zTQV;cl5ClW@^Q*g1TxBO)!52&*c!#y?73ZqANyA$YX=L|D3Vz$H2Tgf73UiAK!qNM z(5#r|@r1RNiGyOS(3bVnchiPmf)X@zg#9{4uPZd3TAHLEy?S+|Nkd9ke;|Ykp;?%( zk#D~dyd+O8=Pu+VHePGt@h;=`H^r~(W#ZqPhsRVkQb?auSWvGiixm2rsj3Vmeg7bS zg!&M7Ei;?3TQH;ClM<&9TL zDvq9|59@}+J$ZWPtM!w$r1EEXUX;@TI9;?YsLa}8bktzWV(lUS-RXRBhsp7o!|T6X zY`Zjm<+o|1<`A>pa^@MjvhK-y_YLbUJ&49RZaMc^>eyC{X_6iojM>!rjD$xSJ_X1_ zWV3zmsX;RAUWb}AyplI27$4KbL~3_sNyH4Ch<&=foK!DkUL%VQzHNB!=D-NWfka6L z#?nmu_XWBGH`m-*`}kqX72Xd-L4@J~S4)-Mm>Z^uS*3{hyIjgOHS6)Vyej32MQ^&% zd2~kj`j=zhHM%U8JbLwws`?7HjPkMMxOrKH8~=1{Q?dMHsIztS#NuM1YROPnAd^B* z!Nx4k??6K`jc;7ee3~V%edI{TWAU!nhDypsbnU6Q=q;DOiIHKDRn%~)rX$&RZRab# zcCe)yqH1f*yT<-JNr7&PS$a(RnZNS#BmGpSB_jU|)rpHdD~=2@#dh=9hs?RloWB?@ zX?}6(&owH{D>NyI(NE>H$t3XS)^r>>>!x58xfQc)H3FpQOX?H#cwCEoa%3qz`(0iN zRdS{wHR<}511mI#?2Go{x@UJWBwH3|dc*ZEx#I763MAT{u2J>3ry3ZJ2(=F%F<)WE zH20Ds{vghDxvOP6g{suc6gNwcxH8)4%DC4WJ-YJMu;Z$g3-Lz^?If=_>&+$E0omj6 zAK|RO&$MTTGIBFv&!kX@n^hGCsOs%h+9snZ`7yY_D#1ji~w zTV7H-jtsgKkw+kOdu8LReemKodn>-+EB*trBO-+;#U9t~lmlMz$Z56BN)i)V_pl;$ z!SadWmeq{CoV{z?&vl-h!j;n%@yC;WRG8!y-%9(Vad)WBgGZ?8uA9VlY_w8~U60jB z%Zijt)Dhvj57SE@@=Gtp-Z>Jyw2LuXS}1CkyqVyO({{>Y-aSwv(S^V!>`teiP$kVx zikEu~J;qmS!v7c2-T}I@rrr0Ala6h5l1>L5+w9o3?T&4CY}>YNqhs5)le_Z1`@6T3K23pTDQn1h{^-^LzaCfYcW&_^nGdqNA~Lh(nt|^oZV@GG>IY zi=BKnChGY0h2i^E~U`RE=J3R}EVP zb=M=OGq>XoJq1DffEHtr?e^RwCce-&nGyEw7ZYGse|M=I+V`juBbMBgSqsjz9PbWk z*{jQfc;4<6tJkS@!S4;35uE%yv)nnkA!y$3=(%%;7q_utkY{`d!25p?W88KPAZzIv z{>;e9$AF54yn|&fpb#85vf(+V&gn5@!Nq75&J`)k(Dm-eSTAJ>w6!y@FH^;e3qvCD+#_G|?4 z*LB(qT3gQDg@nh_wrm)&4!L0l;QXur-$_VmXYsQcv9_-oJ5+G-OcLf`ninJpR7Y7Q0-_Ubt(TEk%>CU`;?EfZ z{D}3BlNFMB8jgFaJOQD#K0H!^8-&2@ptjgHTJI}QOfPHO;*)Uf?{^TWy@k-dV}+nX zX4v`Mw8e<2Bv0+(iQVrNSK5zH_Z;=r92zn9SkYoNyDY<`{^qUM*|)bcYS?9*Wpa2w z&|%9(nxhkwrx9(RPQF>asR#e!vzNjG`Q7H30qhsz zUww~8VIQRwuu7(w@qKt;nIRnq=VP=Z-voKu!S)dXGO%oj$03{BV6Cw>+hMCT_bhLj z;WJhbscxh|Ym8#zP$`bFOMPkYrgsW^9mbrsMJjC9#^x0j?|dG1V;{PRr`oEa*J+9G zAw=TUyWve{DfOYM6@vk1TmlR=Nau=XGaa_C<92#0yvS^{Kt- z9;E!9xu+Ywr(1EgWakz|*4a{~4pzd$D};KUr|B;x9&l_=g)pN@{V{r+pP-!4kvk`U zT0MGr62O+0fVCW_0yj8>H76rXLjZyC_HV-8eD#F9=JvMr?ghdD&Hz%uDkXm40U@-+ z21)^1hx9g%zor*?02%{c1hK&;L>)C25IbH2+U1f5ng_9fOhULs>>91+bh)qt`VB0i zE{6}vyQ~el_(cY^3f?;`pT!#kiu%}(_;QM^-}ffx3-nihGpE&`Oz**~weNXLBPg z4qr=yhhG7!-#nqcaML>ZdfbSRVfuxxN=8c6aw3!wh z1FZWTF`WC{DI7so3d6GTFrDqFB0J+YFE1@Gj}j5qS$&=(Ff@VWIh0$}{`NGv61Mc3 ze-J!q*65Fgu^X_UW@N1!> z0QKQ$$YApOt#cd>Wb>@SP%@T2XAD@A3b`cbeDP+?*?6chR*20JQYLcb42TV%X2zHE zk+QD2CP)>$G@h?f3k(|xU8-aAtN2eYT%dIXVT~U$K`)$Ff5fFZ0TKoZF(rji1SWl+ zB}eS7-0tG>LJtCs^-{Cd<5X)Xgal@fsP?JL-OZ%-+D-qT0@d2o6r)MA7OlQCys9EAn%(ws&0wn^)Nh8kMw>e% zzFmtCY9C_@MG~m#6AbJGL?>IfHyCu~B1q!APWC2Qr?xcKuq)gs=&ubcMrU*FDvz;s z19w(NxJ!Deca-LNIlK*x9UqmzqrD&8H{!c;|DNIzGA=TB{(ekW<|{wH$(m(}&X&aT zfVgZK+acUN5|L&hpD}3*0lU3hKr5U^tZ*M2m{o*)wSa6o70SLyIew^E*eZpUv!|EejYm{gm4Oz|>2~O;F z@ac0#_21>N+ykS+Yl}VId9uMq6~K8UF#Uw(oUR|BVr{6H{4$9p79?sX25*Y{U*&W` z>ywv$Sje1BojG*wybC^x-4*X&3`nnaLK`b4`iq~BRVaVoA~6dzDse11ud=Gtt$eFG z(ag2V%9=BQz_!G$g=<+b!z^S3s-6H&QzB2^7Mhl-G@bP$LdVPS$fRT~t7rp?DZBRV zR^mNO$Sd_PvtN_Minesp&;1=<+6|BI%kP+qZ*EvNgFRb-En_}`ZGe$R|3@|^ES#d4 zlmgg>eTwYs3|iNF5w=@2Fh9^pJVfGRCNI_)Z{QVgsgQuQ88mt|lP&kP+pgKJu!VR5 zZu7$kO(&_$gVSrAmiF`fjfSj&j)CIt^bl`w)p{hx4vY1VTu9}I$g=RXqYuV!^^LIj zuu^nyoKs7>QM92n<(hE*;f)u&BmbKpgtOlKM+GOz-v<8>#>)>mrw$Xo~*D# zukd2oqoRXC=+mQ*mrBte(q<-ZP%doNK3*5C>t~pAzVTCP&2l${xL9tkv2m1Uwsfdv zI|O?W3PG@6=L%dOD$vcfk4ix<0%2@|@+X^CS*I0`u=H{fTM50wPX5>+y4O0_@~k!w zaT8sAyLxa#e_>ww*!5(4Z#og4-a~A&${nitLRvaOS!3_JQam4UwbiaPpNTjSWWdye zeMfcxy({5ca{)I4eJWDsN-?5j2`#Dt!Y5Q<2MkJ#>BE^LD#aX3J-k0xNquAIPBITq+wNto2kH~d z`o}j>guwlURnS{)k8dBL(f<22(p{F$RW7>`bxKZd`k#qjTeCB{b zC?TJIY+i;%v@+y4-%wgq)LjG6@=cey_G`V8>4VAN$0A-JQPLHOWHQ_tHA&GlUoZQX z(kC+>-F6>}Pu5+|I+@#U=hY{57Y=Sd>Po6PuZ_N!IInqFY-Phq*E6?s*E$+H*gdhF z7}dc`sXnguRT5dw7mcZXVQmAoIV5p}Lf=*Hx&%4Lge}-j>@I&DbQO%gzyup}NVTEuu z$>+p+$Z0fg&>c6pi`8{s2Ox zks`%rn@fU|2M`SIA$ki5JoM$B z(|xKEyT|4a6YF*q@zf5t&c?DcN7FR(u+BPHX+96_%;pCdJg4VyZBKQT{xDCOaf)#So4Dr%q>Kh#Ax(AsSnS~h&-o^Rgc6_wgp%$7 zu0RX1B;>8?vO^|sze8qeZWd}mtOs{`8tFa1?LFV7^H7-p3eNA-w8FnY=Wwbwu1BSx zWPl1D;lQeC)onieEtz~bJr&l?vSy{wh>g!+HrT%cv(mNhEM?jxDg7|r?@!NTQQ0+N z8DxlzN(SJw9&-$H2t`h%2*qr7)&yJHbk5>?%N^2`jtaf`W^RVUcL8P`(e_=| zI&D3TxhX{n{IrqX1ghZkzY@|(jtHScBuE_T)m5OF8N|bkfT5#sK^uQolkV>!4|Yqx zxIP^kypPGgMj~7}WlkJE3Nw2?$OzGY*K7?QWR{IjW%09wbVDiRtwi^`Xi=hW8|y)3 zzd%`p}FK{n{9(aF6;y=@!V7`!Y8)1FKc8ZkhK7 zd>qRF%b%P?q~e{bp#QF@5FoVW-{MvdDx zQamh`oAOv6v}9$teMyAUX}tngFZx3&eXYqKRbNtUJa!+xA!vu4s@!dz2n<;B+`@im z63%FMr@rnhxCmDKX;mAd?(6D=trNC8WjsNkM0^dKn=$Ru%!XaUsw{LSRe z*LTZ|En^ueCSnjGypmp7?2rIR3ek-||CXg{JunKq%y`3X^bghd>q^@b8*_eL zZdwUOm-z!x4WqC+T_8gRTZ+wHy_fK#4l`eKl&a4BOsF+9{2@~WgKS}Q67p4& zFtHCBvP*`Y899F?ykuv7V+CCi&o@|k4V5XxI?xuo8ap^|Qy?CV#PqySskB4Z5mCI@ z;_(G)Ic-N0;TOLfnlR-f>!`G`Dpa}RdfZ78yC3;I!)7El2jEDD$DI7a-u<{K9JzIh znl4{lL$F?=i0`Y3>a%t@vnVfhzBrt9>l3#g1w^kAh9=RlSa(F@rXJv4nj#2vLMTuT zei$@ac{}+jN1F0UD3y}6@cLRN3x>C>f}IOH!q8*+4RV{uVsjJ65}V;8gF?*|eVaIR z0A>!EzWJFn^XI1s5`E~mip7}Chgc-6F%m)AgHpJ71o#k(+?WH8s`_tR<=_G4URi^d zRu~nY^<<&3RNk=&Iu;al;`iwX6~7dC3J6+5wZCyvo$A3~7be?{q4DK!qh*qZJq#NP zrGNqxlVIzHGzsRCLFb4tWYLj9!<$^%2>NCJya#N1xHD__F5LXMn4R+1CG1FoO9&L; z+Hx@DEB&(LeF6AJ5lYod^GW*#-3yEf?^^(b_qFChbhKNg>v7Kf?L}d#XR@r_>f`qsb?~o@0wax;$Ug)!UXwR0f_*Va9%ph6K`m+i? zhsn>L9U8S*XY3Bzx)&=x+>uf$?|CUtoY1UN0Yw$2_87SlaP%y+h^R)4mZij?(Y%U3 zTn;r}va|TK z=(oOo-!I?2DTg`yi}k*n6gCw&Z^Ws+7JkE1fn}bSM)_c+Uf;PdF)5!ryCT6>qzE4@ zm!(r$b{AqEr&WW2W#lH##S&^ElvOBk4tmn%#%LoEu7Fptz4j-gQPv7w-bbue2(w*O zg#K!**ouOBO5h?Vx^0S>#tYG7+g4E(m1y5}4gJkt)_syUN(_u+9b=|cr_9ZS_B8mS zZg0C+@hsQ;sXHlkpSree|cgR9p}*g>d5xTE>Ra6|p(H;$Na1$gXPfVTDr z)5{!i zI_1)N!Qitm{A8gokn#M3bf+}``1V8-GH}H7&!4Ts?Sj|Hs1kpvb7@a|Ek7@N3bpy! zR;E7#&Q#C@;#Z`UZ&r_82qzzc4r8lgJtBx0*vB6N{WA)U&d_Qe(w~G>M{N6>B9c+K z0ur(VFIXKGwU-JhredlsoDp*3*BH@bq@^-b-ui)nO{UG!67_?uxRe-U)*C%kK`Pw@U`tVjxt+8c-{+n|U-e zA(zBg8KapRo1qb=Y;xFUe`7ao-ZOR0ZSwO>cT3;++EL-6>E_Qdc7YLLvOeqC<XE@g`AVpDP+@Kmr6!nG9KIK0u*rtt{Gr?S0H>ea zuLr>qHJgt;dh4oV#y+P4FPJq0&AAAIE*c5ur@G0MqqS{9a*1Ay=H+wyD858=WUvOc z#=fSscG5!J5^3){VOkrd23EfDdgS z3P<@{p@}BPT7u3gPoOd(4My_Ivv=yB8yWSUM`NT%U$9%TjcRY3-m=z?J|#TH2Tg}A z5)aOZBKkBAmX=c=iqm6r3B`V4^yAXfHhU;lY#S~Ly$~pk9yXJpO({_4it&_fN5V<} zQZeSLLK0-XSc7Segp@;eP?3)C4N=?K2Q@b$u<90bdR}bx8@9g_`!=R5R3BXh?k=LH z>CpJVfwxdqVSgUA3a8)TkA!f1fJsl*4&N)81nATHu8LITU}2KJFJ@3-L_HK${kmW@ z$RJf+9L!$c%-*^Pj$BE1Pq*9Eol;siE#RX5Yit>>Q7Re|fc6?{~ht z?2%2FLL`>G6~>O9``%D)uo5dzoG*f#1@fD7(9k>exKM+hHnx)^xTLM=zl=F%w0CLi zSNbWoD07m^!FGQ?6GN5|5^Vip)+)+h!Od8ytO^uu*6K@LIH+?i!uNLLDs~Y(8JbOP zRLxI|nQ#rl3fxb}7~KW+$ShSFt20aiqLvoM1-arZj%{02k!Gc0JE%(m-%6pvVpzue zYrv}?xlb1LI}T@n|1NLMM$}1{H|`~7Fr@$J#iQYMiZzRtNAAIo;gw}I7RLpIQK2x7 zpVA75s87L!!8r5ll-qWCS1*Z9AdXPsR*-6xK`J45meE0yN;C>Qh8y8pas)MYkV)v- zKiPGbjo-cBd08bh(FK)&(8{Y%exzW`nx$*+p3!tQco2w{&(HR@rb+1=MRD}Vru9ZM zZ7VGkjbYwBvv-{kE9C18mb1)&#FBhVHr2=e17qW3S7c2AN*t5QO%U4b&JOh( z+lSGWZZF93ENs;o8G-HNICI0raik-}I^%SqYEFICzh4uHGv{Nyq-AoS3+1UlO8QWj zdrTR^m9}U7#M6Zr$19)^J6Y+<<7%`?TX3GZ)u(cdR8W15w6?p5Qt>Eyu5vq^f`vAA z{V*C@QF-!sWUPaO@Hkm%sMn=`~C}tL(;oW;ILl7?Kl~=5fP8KW&A+3A$&@&Ht zosf@d8+)r5!S6R zNE&JrDWqdw-POjR_I~nUGD|=D3gmWTa%U({|HtmrFr``W;b@jPxO~%1OPYBjyNOc{ zfmEK5&i*z4zssXDRpBY5kN6CnF9q`P^HAw($3O87_-`vMU9|Kxk01TZ9?K z{dpWPy~y2L*36}zV6DtSjEh{huTc|u`&q2w{MgK?G5xcQaRWxXgqcg}fpU+$DK#_& z7Qgcg3!^1hiqwY3dKAznigf77y}&1~HwH)n4>2rIAP?HX4oz_C53eUUhV^B}>I#>39T;-tvsxrv_9BW6(yWe^U>_05=I z2Y4oJn0QJFN2q`s*LtQH3evRx?)c73?95(<83EoG*I}_W&p6Q)SXl~*3Ne^UiJ1#1 zRw+u`E zU`8yuR+b{{y7*FE9}eE4&DVHuEMsz|Cx+C=(LO5{82pyc5AVELdW z#wB<|xV3!aj^n-8(}&`U+ZQ38LGxFU^2xFwP$;ROZ?zc%b-mmc$K|Bx)x6yY%5f&x z4c#szO?v%FzG-?&-AlQQw$S9^X~H0;qg{LZE|_~wz^UHXuD&4wU3=0>QrO)TesEHf z?U+yKZZz+q?a|g=YnafM?(C=_1;?j-y+l;$>CyWIb{CnPPUpKX2f^cbSOcqH?7lP4 z)4A+&2eV}6aEIt)FQMIY-FGf~>3QvUHm+@gSGBCknvYsCCF8kPHFS+^!{MrEn28<) zW3OxFt`m#$_1-{?Y+kKJfhtq&Mss1W8ijirF^1Y+%W zj(hqxmxyK-POrM}4s5JNSi|EV?M$+}6?2uF%(+h5c4DYULFW_UO<^6hfL8k9R$q3SI+}Us;bgPHAx_`Ep2gr~U^?74 zkdV;|5k^fRApvWIrmQgLu`Q$UKHrscZyf3S(J08wl%sfBYeM`2t@pJ`YUL+o+6MVz zWlWzpKL7FL5Cx?m&9ptuVwdh~QP~1E7xsHvP}*->*pur=k*E(jCjTcIvI7oL#4V$- zHNC*3)&RPFLKNfikp9)Ljs>htHvYU{nuVR*a^^W^KDGk2en&_V6{f0PStGS`+Fh1} zC%6AV;jfBb^N$n?1=zk-9zSDaX3un>&BVVs~k zs~wIH?CQA8s1~V~4;_jSs{T{WUPb@6HeP+Bh{CQBC!(Wh4nFiDDl#$&J2+DMpZZ@} zU>q&>&;s_*=N0mVVCfieFce7qhQ)4JN%-X`9T^P2QeoM@xotb4N!*27CgR`}UUZ1f zIsJezKiO0>W7^^&82YWOYlXW^T}WNHFf%!GaCE|`E)||zuvL62RproOT$w{zMpi`x zdBq&6E7N2bo(2LDjp145%PC}wB4rs3t71B01-j2W)`ia0TV1XaSPN4F8w5)7NTmwJ zVB>1}#4r+3SM${)+nj~njQ(|$n~`j_BC96ylxmlMmTCJLh$mRNUdTei;RV}uE8KFr z{uu6N3FJmLcjsD-NY~_RfaIRs6Jxe_CdkXZd@}egh!INt@8$lEp7x%gC4p7Gcd!@m z7r$qx_t51dm zx5aJmzaFm^DG%*Z`21wiTydHHm?sS`4Th&qkv?OcW4)ufBHTdZ6d=$;E}@Klxo5OX zsSnnHC4-Sf6p!-g#HSS~v-Z;o!N z;$GXM6qyt4eTmO3nVe0KKKhHM9dCW@Fgci7mtH7aWjJhnAA?6OwvOBwp4|&D6Qd7& zpfX=5ej4g5A%Mgwdmm##cb?$*2=!bH2~&1n-~V%4AEPM-rPZF`XS!Wps48L;pA0L%$d^+o49FXkqf zHx1APum(676p*7gs`omOAJ71(1ZWe&CY`q=5C?D%&;_tNunnLdLSdjP&^(}92uv_q zd>!mA51>e33y{Sxh!D;Qn=syXK*~Nm;6QH1rvjwT35 zR2MLgr9tgEE6WG=l(8E;tIr*)R(tDfBOWdBFAkI#PLvN9O8ATA8h^?)mdiEf%VFPl zEO+o`%Q>6Wn{(7%L>jNBtoD%BMsi!@w-Dzn-zX_=&|f1@l)R)HZ7mzG`>ggv*G6Jn z<4;=R3+*YT&y+Ie%Q@TCU6dMYY|CB~p2m)p5F}hzUQb%%51c4z4waPNHwLLLl=%r8 z<8WH)J1f<(wo#$pc+7ExBmM&g^$&oEj-H8??H?c#>%YMnf5StcD98VXDw30zQd5+s z6fv}LG_*I>*OfAKFr?zQwlMe`1o;=v0?qh0`t<*eFai)E|0Im)Sy=x`82vlH^BHEO z{cPp`7W6QkeQK{kcsURw4x=XXZuX~yx9J#jfI7kkeT_jUKVY$Z_>%UP&(CSo7 z42%G(h>@0%juAlW(9tu~0r0o~j1{r5F#S7KLlQ83RH2#|_Vg$^ueGcdUf*Jk$O8y6C#P(OFe_}># z44*Ch?TzzU5`AAS^yS^i3|ll90ec&`Dc(JjL4#-b{zS|{AP}1lED6qF-jhhV3t3> zoVQbs4oI2=eY9LR9staS?{I89yx<>{MXq~Vq+l(Q7wERT!As-mUJG*sZC~8u@?gtk zJZnm2j1xcOCXE^W-m^_k#kzJao({xcsL?W`luJcOXv0#{-WwY7PflJ&Aldu(dTl!9Xgva^Wu&; zSYbL{e>B(b>LR!wEHc1F)gMfbSOY=6>`RKwmP6B5bQZthvjd!{cAeLJBA`{--GS+5 zHEtbL5!J~qWG&#yJ9X0ZudGeI%Mq;A} z{ZdLN5WNEkX*3=~Hl!M;)YzdcVXnRnN((zVu{kOJ=xR)>FY3qdTEY|wTS#E(ulu^p zMbLQYNx^hVKe|BjIpAAfWKFyOI65Y+jh`E83#`@DWh8?k-9qfw=L+k+ah77?dj;Ms zg}8LsKe+SUba-o;0${NNENL*1e7`q4cMN=gFzjuniG-Ld}%f%&Y`!O6O*DNA@ zpx>r`4uRbQ$$Vs3VwY$X>$DetUYS>bh z_aZR0=2$rVT^X>Hy07&E9nT|dPe{<#N$MqaPtGx_Wm))LZSJWici+YC##SXXx~>$; z6sJ0qmV@zJo3qBre8xP}VZ@0*&Rl1C$O7zaTS?`NSEpms{RS*u?*pvij@l0J zj{ZQS1YX zByfW;OcH^}W|9W>S0|A%@Dtl(0vr8+*~CN|S6j$1y}K-v?5*w3q8#;V6j*#uzxLv+ z30*+Pr|}v((@=j8=4n)MzLgylr4&kd*L?K3WHxYd2IjAb|9-1lal;$Qeb^1j_M!sJ z2!suK28su{2I>lAkAI7Ms2KHY(1FMeCH{f82mZ7qLv@$@q&pYAh1jzmeTX#mkG}wE zx9-E2r3U4? zXV;Be+MLRSGzg-0!03LI{yK>O=#xb!M7*mELlIsbJR>kW6gx0Gj4RZw8nLUMu9DRqVcmo8~w~&jXRcg0S9&c^rxl;z>)kYPR{7vqq(Q_&^0{WKLcyO!f(O}%+*TA&fC zyqdM(@Vy7z_bN#qN3=IrMh~98Y=!st92H7)+hc>yF|k(*!THqQ6(`T8)ELbN z@>~+k`!nUg1QbehQmuZ}3j13Rb39gQjPg*J2e6F5zl-;vEseKU;o$r@2)g+ZXqduB z*E0i-czl{;@l)cy8L3Jc2+n(eH|~Mp-`9oNPgo`Yd`BIlv13rNJ7}>x-r^2lIWCzJ z$j=}?*&JxTYnB2++_BHUM^ch8>0_FX!%hb%`umIemAnnJ25<=}zQlDyyLkjyROUbC%*s6VD*D0$b#~O6vFNAn}sJ$6; zi`R6m);};dN%W>NVnp$jR2hL9pE(a-N+FJ5Nt22?)PD~X-)h_GcC9Uf<*EQ($1!va@HJ3z6B=_s7 zv;rdqf3DuoTp|Tx{#>HZ7ysESIjy`0G3pybk3%mz6mCLAOPvCZVrHBx;;4*vvXXI< z(uAw=AfvZoKUH%kkMW+_+o1+n|9;5N^|S zvHm3xnCZfmPHFInEz%#aK3BtFU^SdqmcdW2Le*rgvBs%#DR8;j56;m7=Qumw!B--) zstj}*S7sZf2wyY8r^Gfy0jau2`0tU!H6`s$ z-Zxp>5c{gQIlp)@>Z4Z8LU+!B73$nM608AFXxx!zGTUBXZ!Rz*Yv{m^gG-&+u67Xt>Do|UVohd2-H;%sXEd2R6L-cBj^j-($rRL8=1xWcTxlz3Ilq5X**6 z=y<^j^#Z*6!T;u=uEwcqV(cfwP&QY`=xx*~!IqUhCr2zs3%JFCmuESkO@e!3#emF&uX1Q^3VVA-fV;YZVG{aF>|PfWX{ZY6 z5w3a#-9|_D+C-GE46IL#_kZ>j{>p&JM0+Tg8wcYyzl|$cLuhVkXB}npxs-EF!zfpX`zA6@phX**E=TjU4Kujv1_R&i6Adap2HM)S{Uie z!cT9{o3V+6=vKz~p#e{ISrBSP{MwOuqb5xsH~Jn%P#U9jaek799n5%lagP7db^)&` zEv`&+K`YE(p{RY-V)z3`yRk9X{9^g=65dHX(pMSe4B~KZm{fTH#vA(DNT)|>_>M{j z;+G|Gp(AW=3m#rkEJS)Sbq+}^Qx+qyD*9}A5zd@DcPhexU4TU@rF74NtIHxCd#jsM z`+~eSMztjl&fdZ3%F~mmS66Oxi1~ncwdfE-%`BCmt~~R6_q%6?1OJgDnp>U8cQWsv zAS#G1fK!Nmo(hBQ3+hPyXOGOmSN^a6me9tM=_t3xixVj6ik!(z7($pt&_##(b4P~! z*aaqd&+I9ja@TTQzptuhF;7A#v4X;}lwZoAf@{oI?NC@4;Yoqbh%lalqPv3O!;x~< z3t9iBNsECs(mqaS;O`Bz&^3r}?5L_I<~l}puBQBx-KjidyH+sNCs|tdJzr4vdOvjy zF67=jF1-2sV{5(v33pR26%X4YuH`vR#oZusseXfmY0|3-Fz@|P)1pK|MbSz~Ip!>x z1!1!{*ifL@UL9y^oB(+;&#Zysv}Hdp1nGJgpe-o*&M$)*0fqw1$W6S-b zQlt>KRWeJw(nA8xb;ejhPAA)N^coNX-lHd6+prToWi65os8mT8(%!tk4u$!l0=X{^ ziEE8eQ`%Ngd)#6NGY4fDJ_mD~^B3jULx6p>uA+E5CQYSiXmVnO$u>rmvtN5pveFF7 zjtMj^H7R;3#+nT3X&%R!S}xZ#Cf_$EKhh97n!2v^p|!g|2-rUy$0|5K^fpp-7x`k= z_^RZci5FF8SHmP`N=ZxXZDS-+ibYV?)eWX(&0B0on03F~BO%L2PTHH~kNy}0-vh#F z;T0%Vg%!Y1;V&o0(%*9y!B(&`QzDaRw$fzXpgXyRyvwdqO`2m%aqqCvoGY7Up3+#{ zwY9Jsw~7Jd(`f5MiMIC$r;M?W|44>hJt9ryiZdhY9B*udBRy@FA&m)!(-_Euvst|i zq9fO_^OtopZ2S=C+*jVDV}syCE>zx%_LPWyo3Zw{TH<;8XaRMe-yCOTZg7p}tz%|3 zY71N%>N-C^=K_r$>dH7jUjs#=er%P~vMw3DxR4N+Ynj=ob)rSaT3wl8;KB@tmm0mM z{85haZ1~i_gb>#@lfR!%Z4%`RjiveRgOT#75bLS1ImYV`Q=qEU+p=s0sH8W%uax(M zFFuF|&MnBH1L9sLW9#-HxurdAq6P76OPU?K4uNEeav^7I@l)aU9M`d?9D^$v+rixW zs~VeehEpKDR&IAHe9#|mic#xvXt-2{v)r?oS-SOfEGtAukzs0{8Y!ATaGjl$lwOVcgNm>?CL%M#d^Q-K=|!eUa*=#t3fmz( zkHa?c$L+07qPE*{uo+fP$Ymj?+_6TcV(@_~+<8C05yUJPQ?)z2>I>=KwGC=*-FKY$ ztl;OxvPG}*N$5h2LDHEIJ!kS@NsqglgwBtw8+T{TUx;rmN)|7f@IULhjLOlG=3Rw<-w$jA&0%Bk9@sN zHTF+n(jV?K(XNdR_%Q!r- zCcK=lRmzyQ)e=2bYsYe;EJ9^WvfVPfZlj^pk zdPQ}Z=jgi|ats_t{zhVvR>0bHb+30!3=@N(0ERYo%fb+-z|ig9?@@j_=}t<)Yne63 zT77-E;fX9_*+M65>@`TRtF55#qdcKT*k)kkRKA;5yB0CDzMSiRb-WQQw=-x|#e>(0 z7d&xcejo*);_?l@ezrBcf9EF@U?$o5UbG(JjiV7Ur6`x3JOm_c{mEm{`%Ym}$#H zF_tK@NZ2b8rAmBai9C&AY&EJmD0PeYAtnnXkO zFaOfBQ=tX{E&m<0P+LU^%ekG-n=p%2?v`T1v)k+)fTff3PT={6 z?^FLlUijQ={oIgdVx(jIhq~~Oxc@7gWzzioA`(jftGe*tgav^4s?Yu3|1ZJ0uFw0Y z(D1jAzydJS^_L_75CT{LEqsa#|7hv6Br6L*WB|mmFw;VRmIB-fKShhbq>9fnfHZ(a zLI2s;zia)w^xrDd5%29*D+cYoFKDJswdLaa;xsp0b-eWrfO z4gmKlTzuBW0N8W?D-9540mv3ibga;y@r(d#VgJ9c|548QzpnZJpe9DZh<&<$mr(v% zLjR`{%Kxw^|C4&c2$(}E27ul{$H2@AP*3P+|7Z2&)9Ts3Y_ib-%&q-L^#mYJ{YyLn z$Rhu=$wm)&@wZL3PXliM(oO)n+ds7vKtI@6q5n-gVfqxY{#`ryE8-s`@n6~rpl5%5 z!2W5XjgbYghW_{Bi5rZK`hv?o8^#5ssJAmxpC1r4exIK+A{Z|S;Ugk>bdKQvQ`lF) zMb)(JiwH=AbR!{+3vAHcNP~2zbazOjbT?9pNVkME0wUeru!J;7^Iv?v=Y4$e{l5SC zot-mt%{_BwX76)$_w055u9#TLn0WdvAq^F)6kVC|>5^@Fsg)2-h#Z~s%I6c0G?+q* zi`pg_qp!$}PwvO`r^>=Umy9=sQp9Fyrpi$(a}gO}&6Y; zS9($5F{w+Gfl_WWx#>KdSbE?R1X*N8LB|c4o zBmEq;v(9l|CEls!$C>X(=%D-;R}bU$+7LFw56DRaWHwl58Qv9=i{F0GN|YaKp182P zKCHuW9q%%mu-|Ps>8Kkyy!O6D?CPIM9MFp%@VtfV%C~K}cDnZA4{*%&=fm|}%MJfx z=bRT886F@$DUlL9hxo+qYjRR{_KvZ%m&`&yl`W>PL-zYCRtS@iWG!#Q3Mbj*SU--Z z#n80TC!#e*Ip-7dJTqLTZTt0?Iz?g=8!8-1^1~b_0@O_3iS-OTu);W)DwmU!)eY(k zQl2~B%v3UYUB@v|e?KDiP-Q0F)->Qf#D@E(C2dCznnT0_mq^=jSXMNo9 z`MmPx;UkCNj}qG`(LVE1!(A#!*-T+d64zEklrYutX|_H7hN{e=rb}plZf0hmSMBf|X%MMC`HNS|MMnzOsh<1Np~-}aB$W>KHBkz`w^NZH5oyQmBw9hcUhx_9Q*yr5RMOVbIL=%GvJHLpRnMG4tU%*~B zl+iU_l#;R}={5nQXqmE)UTt5BFy1^7gkX_-Q3O8kd93F_5y&!wRdeGIXief3AjR{! zTIw+mKTY5a|KqlP%s{(K#QYg77rzY`;mI$4`&rv4GXPCWuT8`_liMQn+fUJ+HG=)V zZ56W^6bbrpCHf2{>bDI2nEUb-Hk+Saue;860Uyy<;p&8_=+U+wAwc<;{7&8>FBsb| zA%GduAF2upbe=<|XfEcWE}!9-hU?vs87Ce$C`JDVxC&@=TieZl)xa97vW%a+_%`>xMS#Lh;ZRP9J=IsuCojrwW9) zaL)cY%!mV-`Z~-#O3Z!ipU3+uibB@ZGx5})ZySldG&C6>V6=Mh5p5~*Hi^I8Dx|{( zvUguTA=?{domaLa<%}-P+HKGdsB2_a^jgP)@PZT3jUxo)|Ah&Ib7f1 zTzJ8C9TprWUVY&Bl^}c%^gb;Tq+{bzvzf4dsoBVanHKv&;)QLhfYFUmVS)4K6Z37) z#J6ia<6+?3V)M&LKI>*<-?p1zkspLk%-p&*)H?`^z2}x~OoO$-c&mhkvQL>`$4_7z z32EXi4}!2tkSC@XcU9RWyi_Z&BzQBHd@2_VPt(qGt8MqKYFxz6W~cX1qDoGXeV;~P zw+MPHaq&*H+L$tZ_m3o{#FI?Y405JVdFVH1q#5+1<#e#dNC8u_rA3+)bdn1vQ9mC@ z-Cm9$Q9q$Az-^zmU1GTzPFskr*>$URi9`950gZD?a^Ou&sj+ZH}tQZUKm+ULs0y@vjn`7O$g?K?AH>Glj-63@} z029&KoKr|qfx?^=h{}yxk9tfARUB0Q^&l#B9qxzoz8IpA*Q*M={RCX99D?uy=YS_N zt*sf?Yf1fAgrpgIyL`9To_jasW!z;xOr9|;?PgBJ%TYz@)bS!HR6!P5UJfkcj+PW( zDcf_|P-=?4Xbes=Hol{vw^yxf*WS_41=s6fIM=%SF1$LP>ziLkazg-{ycUZ!#Vr#J z>wCAo?xUNMnsZ>E@l_2#Kvc}z)K+CLz(y63$Ws=Mc~Wt+a^iaSuq@B#4M|?aqGVTP z`i$iQ`ASBcUg=a|bCNi3I1+wP(jq~pDq2VfPH?ZRTck{Ek#uGps|6r(ff>xC?`GP> znTJdu?$6XFlfkFkE*ZhT0X{wfU%ai9FD+wT^as|@Q}p|(J>VF!BU?X2qlLsjG5ut8y96tweZw z$@D5pJyY(qKYkYWd_Ain7ZiOM=rO`j`^D4EMZfKxtY}e<@q+p%Px*1YdHeXPO%30q ziPsWA@LDLKj&Nj*HiWS3nqC@%Yy|viM0`zs*zx~J%2D!-O35^m?M_5aR$*dao4_u{& zP!c>!p9q*d&C9Z!4npq{`ON-ATc`wDAa%|(s<&#OwmfHS+y+yDRNRlJeA7}9_T*Ub zwpDdrLH%H}qFN)bD226~Z!elWT{zhRxZ5WLKWQCD+@lmg=aqg}$$atl)t^+PZyJnH zDw9txD{|KM&6gBP(C0p3+daa4$ z6sf@esaD&l!tnAj`aA_~l4hkZR8>SH4+ z0LghrGBgkY-S`WJ3&s6a;h*58g-a+wLMY*9uW~UF(!7$TF{m-9lZ7M{<)8VG56J^h z^gtS^*d!Z-8tDyejxFOc1R{S(=oTs{7HvRxr>~x|%QX(4@Z(r!?ZZQ)Yh+$3sRVb;}boE4026dTpEGc-J>dq{vnN&JTTQ z_icsbcssBcMx4!Jf*%;1F+HJVwtU?ry<$jAEGYv2%A67%Jull22#gL!93B+>1#bS8 z&5FyfuB-xfz9{p3Hgg@aXcV>>kLDhPryQFZHt1NMy+L)X9eDaSSw;+6_n431uku|L zwg;>501TwxoN~>u8tnIiy5b=+*1nv?7(RdS5J8CJLGp69S^=5F%!3UXYxrsWD)f_( zHGJMz?P8y#y08o9p3>=~yVh^YuJNp8Jxh;x7aG+HLhHHG`bbp5r=^EHIgsTUo_~9 z=U|3j5{F*C{tP?*uSvHGeOCnBI-wOaB1u^5SHrUM|CUAnRY$11&LF`(o%)l+V4blioq0 zVMeU$d^Zl?=H^x7ud?HnQOf89wJEz;B#V?VXt5e5R=uRX(GMB6T_l=Fk21je@!sz1*>ozI$!D zlj#!UIpC*osV;O3^@~Tg+VkVBAl)y6g#;cae}g1{W$_NVm-r>c>D*L|gq5_=-ItW{ z()bfBh||Ae;PR^yY7CyfU_ITvH3wnO`40FYQP}D#xH+yAwC2**HaHpEEtB5rd546} z56fc8$?=y>{_KXWRZ!&daox@Q`^{r=ch(mV8wP~>P3;c0yD{F6W}ApW;w`7Jae#-~ zgZixc*P117fo`G!by=-6SsCg{O z+d`TQjDztNfP)me;Ejv)5_Q&h;NmYlmj?kEz866ZPw}UnJ?z|?o>YAdY?wHlLv7~z zc}yTh-Y=PnvdUJr!)RDy#fv)?Utu!j))7D&`3A{)Zo10Yz%&nf;v09BG0iTZ=NWoi zW9Q5wa57S`CvP43)DVpfUNiNAaFs34QVCt;y0`A}NtB0RYz)wX&1{?c1?ztKG)l9i z&XLY&wUyaGYyXoSyU>r#WNpqHzi}uRnFuSeCucv#~1I7 zPkf1X4BP-MCv>mX?4Aq?J!S(%neiXClJ#?9FTPD;#ckE2j77IS$njDM%1t~Ls-`c- zP_QoWZ##DOhLT*omJ=;%6Qp)!WgaDu1}S;UeU>g{2k!cyotT6d>PK3il+Dtq&gV^B zqaM@Pv`egm{BiKM)jKIt)bPeW8v|A9p0s@n?n|LNueJOs*{+4F zOq#BnY60xfk`iyl zG1C4k4+Gu!`FP)vXUb##8=g9vL|i!Eok=Lys;-`N_c-MMc)I-47{ll+!wNn zX%Pjh>Dghtk&RZTl_~P?_!Qj1SXScS!6*qU{P%=e!U?`l=#!)~VR+tzkcXy7KDe0L zU{~Q)aikrg;drD9Ei->5Hy<0D&SgUo#70B6DM)W|i!303I-SD5676sXpP(Endb;o2 zL%ySac|-mU7b<`tEgT8hdHQ0*ydh?9*>wG@N>(}rbN9=ffCT7%5QdL364Owtv{Ts= zvLexcXF+#B>oaB=r(8%_coKq}2Cyl`EXtK-694VI!&tQuw(HS2Z()p+8tJFG97w&q$9ewy&qzg&c;$ zrl!}LqJ5T4XbE9d_0Jme&3iA#^cW?8dYDax+gJH&t=1)8N5|ywHLnql@{b?qDwBh$ zTRpY4`P4SmgB}jheZwDxx16z2#=IV7j|wqbpJ({%Z5d%I`h=Q1qg+8SQncDu&^n|Q z{Mdx?3gOu};5E05mssHp)~grTv6dwoQvpy%B{_;4O0V@k2FCl{ze~ zUyLO!Hskg>9c#|HC_05gUNrbr?I)&~7oSK|KcDxqw#CJ|!}_R7jnCYe>hZ4b;;s6p z(;A-2%fpoHk0ZldQo&Sn-imhW_VC-OTPrF?C~$z6e-}WH~4W0gQOvZh}LD;{T}*F z8XBW3nCIjmcG-F%VT72kZ&Psl726}1CEfH5mbwqp@W~szZuji`nw7Tse6~jIxqY^9 zFmpthTbX>2jHtXR@I>rV3@S(xtu+)nWj5aDxl-guuVZ<@DU*i?t)?bTY5%8{vuMcy4-Qt)X^@6-zH~iu0r)<&`U5TgWc~^L4j_Qf= zOt$OAGlhUmoW4mscE`?%CYQ>6PwHk){v7kT3zJFt^VHGjjJ$C0ip}vFN(mBpmX;b;DrY`1LCboI^i+y|4bjByn!VA7NVgfSR4;hqdHZ(K(n;_B#qY4q zUnV1oiIf3F%75Haj}q^F{7iPB5w4x#TFl=vc0w|bCEUwu_c-pv1tAs?`ehK zVh$@kjjZB+aZpE;GhF>uSDIs5j?0j9i7W$s4=Or>3{AHyk#m!vYs|%&A41-P2D&=6 z@o>Yc_ak9&{wi64*#U8=gMtH=ZlI-MNO}cA!}@4Vcbx?5_FN4yTKjy5GD;QCCt*im zN=3Y>47u&An)G*-$c@G*iBH~0=Z%rFcI94UqXva5N=Ouf!9EoVoLn)X9d+5`6y)3J zXGaZftr+thpgv>35{oRoe`QWz;ubz;K0r*QZ~6|zKO zqi#dBQttI|pKyQw?N~UY_H-IlV0!NdR6vQ_x#_&jWkS%5%^V!W*mFgxC%G#*xr~z^ z)``Q@F4NW9-ZU!-V4o-H?ga}Sl@oyt{A9gk`-z|kNQPmDFJ75p5Tmq^^EakvoKmh% zi_AwwyKbz)h&-M8DE4_6;8(lDbI9N17_e=GDuli(+UyElNLynv=at1+_r$#rbN*IC zRU2JBXNi)yq7~sMz&!P0xPHvk0y5b~@)5A$=%ij{-(%=P*LILG>_xSMTZYNkI2xlW z>cy2?<`2^H*2NBfi4~$!#jf8mBw6h#Gj|X}`eTs4XDAXZ0U3R!Mw*AzjaWt^CD*B_ z=F|F4o=U2PieL5(?``gM?ITaljr_Uj03`I>bM^O?2}kmeYuaLlW_J`6pdU#KzH2Y? zRk3e}uHMqj{E$0AQj+2D&M=~rdEZ&yPZS=0)|2ZN($#uu9dUW+foQ+*s68(?p-PCy znTE$+#*_b|&R_xiQh%3R4V1Za3iO3qtQF7L4IaLAzc(P!Zfb#awj#mJ^;vcJp zI7WWpActBdE?^l!nkFuX(j*h8og#kfsA}#h0d3V>d5T!KVj)4msXtqzb&Ch>cDA}{ z!!xmX8Z;hc9a?O~*id>Y(Rdmv=_lB(n`wu)v6~nOf9JY=FK7>!F=QiVrpNuVO6CXFlA}~tk$(_Wy+f_ zwk}Agyu^u;Kk)=w#4k}q2%NjrD7VcgB;MTIUkiqBE$1J7OlnKQc7uN<$n!&A$$1da zyMLGj^HQ7AhKk_Ycw1s$fd9kP~a9_{a!JhE$}&L_0m2 z5iL-cctzw3HHGJr$leOfw9_6V)dH(XM!9n~U-}ll_9@W2n`pwn=S2ya`{?;iTav`0 zLQYet?JSn?1oR3MujF0f%b++JnIlVqE-J{b;JeA&!cq~N64jXW*ofXj5O8*V`g;v1 zM!PjubuoeD$lQ6Ww^sZ1>kmPDmfMX6%iFl9+e^qfMUT zmgdCf9kcp)m$*;myGsfq(VawhV1L0`QpOh7q&*wicg*HC3~wPv_Qc)vnDK5BuvPFa@!Z=f#J3Ns5J>V48?)HAIvXCRv)dW&$uIq)$Rv%E&|-=WuYj%#rlSD zs09bRr>DCIDi*vW^O;2QCmEzs;$8BmCmF<1onPgJ*y2kQqf1i_@@^sPg}Aq1$I;?C z%P-_jPxbl=e5$=vgJ?0XPXnDdA{bB>V|R)JwIg>}S~D$H9UNZY2qg7xvb`fsmOpNz zu3o#6wdqa3H%-D*w>GuZs{HJmT4&E7ZX@GSxvt0JSeSuTLN&3FS~oUNTf{kEZsJv{ z?`Ii3&bi8-0yPskZ{q`83x7 zfZjKnE8|5+G5PcdS}pw=Jr%f{Y1qwF+W32mC;q5KF@U zvBy|2i10zemdxRYZlqHVW4-tqz8fuK3G*PFVl`Q*5RdK(CcYtqMm$7Cb%1{}X3|4BYJj-fexY4sV7n3{on zS5Ymkwgi=rGqz*qsm$aJV^cZf8rS`!f*(7XPsQs!dA`@YZZ2-m8|R^F!JhG-rRIh6 zjoi8TYF-+gDXB+H%FyK~XgW-0@_^+0l?H4(-hk%Ry;mg`AK% zwLY?(fPE{ZDCCPs?-@(@&<6ncjj`Oo?@Oe$IP82NbNyxpz5Z#vt&30Y?Q{BcX$19o zR`aVH+XCBy*`vfsLm1*t67X5E(<+NdYoH2ZJX@?qFWsl53F+IVcpF*$W&&LS+Ukv#G*H}-KPtFxQZJu6=Kj=YD05BD!Z1m1^Ufd z`TuC0U*zB6k~b>7e8AKF>7zboCDEf$E|)+ulcTfuy=pY;oKxkaN&%=fwr*}#1KDSj zn_8@yO?IcFZ+b?~@aQfVE*}di{mF{@#iF=lR&WA=kiS_`FviVaR4IB@8>d%JRwl*_ z|Eao*_r0^Hhbb{q$}3Zvfip~ZOP9BsBqT(X30BsXDr+?b~EwD!~`^w1N zz{HAD&A`gh{Ga;21Hb8IZJqx?{|+Fg7v*LLu(1O`YyfrujQIoB1OVt@`#+X{N7mB+ z1N}|x(xTM)d+2whlD|15DtEJ@{54M)M@z`r$=ucf#w7ZSQKH~rYwT%pscO&T^Ytx`l~Es;_hne02AVb@sfTS2ni{? z;Qj}_8{zL97dHnJQy5VQ#;bw}A^y)s2?l{UK$NDGzc4lkY=d=nw^7>sg#iF;TwvHR zf5+H>oWG*Ef5-0fceJX1V{BY^3Y-7N*a0w7&^-*ub*Jw6yB!;tjT08Dd=KLUKw#vk z-|b*$WxFF|{Tl;v-bJ(j8-swr_s#(T0J-k`^S<4kg5y0541u}q?-*=dQu02=#dha% z_u8^^-d_VC*PX29eLIdn$HE2T`qK^qi-Eu2mJ>$B`xnLrfPf${7rop5_BA#DY<%~8 z17-&Xz^<(Oc7OH<;{@KDFRVW>;E(>eIJoZ37iI_I{L>BsBmdn$FDLA3`8Ni;7C7#` zM=;;ufC-1*x8vme!;Xs$7X1HjJDA_!Uwbw%J3Hk5m|>oF-%r`VFcH-IYYK+>)gKra z;J*LCu6@vbzq-Tzxb|Tf*Zubc=4$_?E%?4q!ukVq-S-37E$5H%!LZ-`z{$Y?rmX7l zOZZp$m4^xJ9!B|G$=241@|TJ*>;@`jV`@uzcmKW1i^BAHc@1I9!^R0=2Z0RP3;>2~ vMutW}4kIHF2N!IIuo?5C{Qph-8^CA=i-2%(9(*@i=+HM4_K%m literal 0 HcmV?d00001 diff --git a/account-chooser/docs/success.png b/account-chooser/docs/success.png new file mode 100644 index 0000000000000000000000000000000000000000..fb4c1a0c0ff0aea3c5555747112479f2efefa3e1 GIT binary patch literal 33569 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 Clk;x? literal 0 HcmV?d00001 diff --git a/account-chooser/docs/webSequenceDiagram.txt b/account-chooser/docs/webSequenceDiagram.txt new file mode 100644 index 000000000..478561ccf --- /dev/null +++ b/account-chooser/docs/webSequenceDiagram.txt @@ -0,0 +1,50 @@ +Text used to create sequence diagrams @ http://www.websequencediagrams.com/ + + +A Successful Client and Account Chooser Interaction + +Client->End-User Browser: HTTP-Redirect\n to Account\n Chooser URL\nwith redirect_uri,\n and client_id\n parameters +activate End-User Browser +End-User Browser-->Account Chooser:HTTP Get/Put\n Request containing\n redirect_uri\n and client_id +note right of "Account Chooser": Client Id\n is verified as\n supported, and the\n End-User selects\n an Account +deactivate End-User Browser +activate Account Chooser +Account Chooser-->End-User Browser:HTTP-Redirect to \nAccount Chooser URL\n with issuer parameters +activate End-User Browser +deactivate Account Chooser +End-User Browser->Client: HTTP Get\n Request containing the\n issuer parameter +activate Client +deactivate End-User Browser + + +The Client ID is not Supported by the Account Chooser Application + +Client->End-User Browser: HTTP-Redirect to\n Account Chooser URL\n w/ redirect_uri,\n and client_id parameters +activate End-User Browser +End-User Browser-->Account Chooser:HTTP Get/Put\n Request containing\n redirect_uri and client_id +note right of "Account Chooser": Client Id is\nnot supported.\nSo, an error must\nbe returned. +activate Account Chooser +deactivate End-User Browser +Account Chooser-->End-User Browser:Returns an\nHTTP Response\ncontaining an\nerror message. +deactivate Account Chooser +note right of "End-User Browser":The End-User is presented\nan error message\nthus ending the interaction.\n\nOptionally, the message\nMAY contain a HTML link\nto return the End-User\nback to the Client with\nan error and error description\nadded to the query component\nof the redirect_uri. +activate End-User Browser +End-User Browser->Client: If the End-User\nis presented and clicks\non a HTML link,\na HTTP "GET"\n Request containing the\nerror, and error_description\nparameter +activate Client +deactivate Account Chooser + + +End-User Cancels Account Selection + +Client->End-User Browser: HTTP-Redirect to\n Account Chooser URL\nwith redirect_uri,\nand client_id parameters +activate End-User Browser +End-User Browser-->Account Chooser:HTTP Get/Put\n Request containing\nredirect_uri and client_id +note right of "Account Chooser": End-User refuses\nto select an\naccount via\ncancelling. +deactivate End-User Browser +activate Account Chooser +Account Chooser-->End-User Browser:HTTP-Redirect\n to Account Chooser\n URL with error,\nand error_description\nparameters +activate End-User Browser +deactivate Account Chooser +End-User Browser->Client: HTTP Get Request\ncontaining the error,\nand error_description\nparameter +activate Client +deactivate End-User Browser diff --git a/account-chooser/src/main/java/org/mitre/account_chooser/AccountChooserConfig.java b/account-chooser/src/main/java/org/mitre/account_chooser/AccountChooserConfig.java new file mode 100644 index 000000000..e4943aad1 --- /dev/null +++ b/account-chooser/src/main/java/org/mitre/account_chooser/AccountChooserConfig.java @@ -0,0 +1,49 @@ +/******************************************************************************* + * Copyright 2012 The MITRE Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ +package org.mitre.account_chooser; + +import java.util.HashMap; +import java.util.Map; + +/** + * Used to the configure AccountChooserController + * + * @author nemonik + * + */ +public class AccountChooserConfig { + + private String[] validClientIds; + + private Map issuers = new HashMap(); + + public Map getIssuers() { + return issuers; + } + + public String[] getValidClientIds() { + return validClientIds; + } + + public void setIssuers(Map issuers) { + this.issuers = issuers; + } + + public void setValidClientIds(String[] validClientIds) { + + this.validClientIds = validClientIds; + } +} diff --git a/account-chooser/src/main/java/org/mitre/account_chooser/AccountChooserController.java b/account-chooser/src/main/java/org/mitre/account_chooser/AccountChooserController.java index ee2ebb513..1bab2c8e2 100644 --- a/account-chooser/src/main/java/org/mitre/account_chooser/AccountChooserController.java +++ b/account-chooser/src/main/java/org/mitre/account_chooser/AccountChooserController.java @@ -16,6 +16,11 @@ package org.mitre.account_chooser; import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; import javax.servlet.http.HttpServletResponse; @@ -33,14 +38,49 @@ import org.springframework.web.servlet.ModelAndView; * * @author nemonik * - * See README.md for configuration. + * See README.md for configuration. * */ @Controller public class AccountChooserController { + /** + * Return the URL w/ GET parameters + * + * @param baseURI + * A String containing the protocol, server address, path, and + * program as per "http://server/path/program" + * @param queryStringFields + * A map where each key is the field name and the associated + * key's value is the field value used to populate the URL's + * query string + * @return A String representing the URL in form of + * http://server/path/program?query_string from the messaged + * parameters. + */ + public static String buildURL(String baseURI, + Map queryStringFields) { + + StringBuilder URLBuilder = new StringBuilder(baseURI); + + char appendChar = '?'; + + for (Map.Entry param : queryStringFields.entrySet()) { + try { + URLBuilder.append(appendChar).append(param.getKey()) + .append('=') + .append(URLEncoder.encode(param.getValue(), "UTF-8")); + } catch (UnsupportedEncodingException uee) { + throw new IllegalStateException(uee); + } + appendChar = '&'; + } + + return URLBuilder.toString(); + } + @Autowired - OIDCServers servers; + AccountChooserConfig accountChooserConfig; private static Log logger = LogFactory .getLog(AccountChooserController.class); @@ -51,18 +91,51 @@ public class AccountChooserController { * @param redirectUri * A redirection URI where the response will be sent * @return + * @throws IOException */ @RequestMapping(value = "/", method = { RequestMethod.GET, RequestMethod.POST }) public ModelAndView handleChooserRequest( - @RequestParam("redirect_uri") String redirectUri) { + @RequestParam("redirect_uri") String redirectUri, + @RequestParam("client_id") String clientId, + HttpServletResponse response) throws IOException { - ModelAndView modelAndView = new ModelAndView("form"); - modelAndView.addObject("servers", servers); - modelAndView.addObject("redirect_uri", redirectUri); - modelAndView.setViewName("chooser"); + ModelAndView modelAndView = null; + + if (Arrays.asList(accountChooserConfig.getValidClientIds()).contains( + clientId)) { + + // client_id supported + + modelAndView = new ModelAndView("chooser"); + modelAndView + .addObject("issuers", accountChooserConfig.getIssuers()); + modelAndView.addObject("redirect_uri", redirectUri); + modelAndView.addObject("client_id", clientId); + + } else { + + // client_id not supported + + Map urlVariables = new HashMap(); + + urlVariables.put("error", "not_supported"); + urlVariables + .put("error_description", + "The client_id is not supported by the Account Chooser UI application."); + + modelAndView = new ModelAndView("error"); + + modelAndView.addObject("error", urlVariables.get("error")); + modelAndView.addObject("error_description", + urlVariables.get("error_description")); + modelAndView.addObject("client_uri", AccountChooserController + .buildURL(redirectUri, urlVariables)); + + } return modelAndView; + } /** @@ -81,9 +154,50 @@ public class AccountChooserController { */ @RequestMapping(value = "/selected") public void processSubmit(@RequestParam("redirect_uri") String redirectUri, - @RequestParam("alias") String alias, HttpServletResponse response) + @RequestParam("issuer") String issuer, + @RequestParam("client_id") String clientId, + HttpServletResponse response) throws IOException { - response.sendRedirect(redirectUri + "?oidc_alias=" + alias); + // Handle Submit + + Map urlVariables = new HashMap(); + urlVariables.put("issuer", issuer); + + response.sendRedirect(AccountChooserController.buildURL(redirectUri, + urlVariables)); + } + + /** + * Handles form submits + * + * @param redirectUri + * A redirection URI where the response will be sent. + * @param alias + * The OIDC alias selected. + * @param response + * Provide the HTTP-specific functionality for sending a + * response. In this case a redirect to redirect the End-User + * back to the OpenID Connect Client. + * @throws IOException + * If an output exception occurs in sending the redirect. + */ + @RequestMapping(value = "/cancel") + public void processCancel(@RequestParam("redirect_uri") String redirectUri, + @RequestParam("issuer") String issuer, + @RequestParam("client_id") String clientId, + HttpServletResponse response) + throws IOException { + + // Handle Cancel + + Map urlVariables = new HashMap(); + urlVariables.put("error", "end_user_cancelled"); + urlVariables.put("error_description", + "The end-user refused to select an Account."); + + response.sendRedirect(AccountChooserController.buildURL(redirectUri, + urlVariables)); + } } diff --git a/account-chooser/src/main/java/org/mitre/account_chooser/OIDCServer.java b/account-chooser/src/main/java/org/mitre/account_chooser/OIDCServer.java index cd5c3581a..f37849fb4 100644 --- a/account-chooser/src/main/java/org/mitre/account_chooser/OIDCServer.java +++ b/account-chooser/src/main/java/org/mitre/account_chooser/OIDCServer.java @@ -18,6 +18,8 @@ package org.mitre.account_chooser; /** * @author nemonik * + * Holdes properties of the Issuer, e.g. name, icon URL, description, et cetera + * */ public class OIDCServer { diff --git a/account-chooser/src/main/java/org/mitre/account_chooser/OIDCServers.java b/account-chooser/src/main/java/org/mitre/account_chooser/OIDCServers.java deleted file mode 100644 index cb21f9a68..000000000 --- a/account-chooser/src/main/java/org/mitre/account_chooser/OIDCServers.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright 2012 The MITRE Corporation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ******************************************************************************/ -package org.mitre.account_chooser; - -import java.util.HashMap; -import java.util.Map; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.springframework.beans.factory.InitializingBean; - -/** - * @author nemonik - * - */ -public class OIDCServers implements InitializingBean { - - private Map servers = new HashMap(); - - private static Log logger = LogFactory.getLog(OIDCServers.class); - - /* - * (non-Javadoc) - * - * @see - * org.springframework.beans.factory.InitializingBean#afterPropertiesSet() - */ - @Override - public void afterPropertiesSet() throws Exception { - // used for debugging... - if (!servers.isEmpty()) { - logger.info(this.toString()); - } - } - - /** - * Return the OIDCServers associated with this - * - * @return - */ - public Map getServers() { - return servers; - } - - /** - * Set the OIDCServers associated with this - * - * @param signers - * List of JwtSigners to associate with this service - */ - public void setServers(Map servers) { - this.servers = servers; - } - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "OIDCServers [servers=" + servers - + "]"; - } - -} diff --git a/account-chooser/src/main/webapp/WEB-INF/spring-servlet.xml b/account-chooser/src/main/webapp/WEB-INF/spring-servlet.xml index 317d55109..66a11ca0b 100644 --- a/account-chooser/src/main/webapp/WEB-INF/spring-servlet.xml +++ b/account-chooser/src/main/webapp/WEB-INF/spring-servlet.xml @@ -35,26 +35,17 @@ - - + + - + - - - - - - - - - - - + + \ No newline at end of file diff --git a/account-chooser/src/main/webapp/WEB-INF/views/chooser.jsp b/account-chooser/src/main/webapp/WEB-INF/views/chooser.jsp index c67a5c69d..9ca4e9708 100644 --- a/account-chooser/src/main/webapp/WEB-INF/views/chooser.jsp +++ b/account-chooser/src/main/webapp/WEB-INF/views/chooser.jsp @@ -3,9 +3,8 @@ <%@page import="org.mitre.account_chooser.OIDCServer"%> <%@page import="java.util.Map"%> <%@page import="java.util.Iterator"%> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - @@ -36,22 +35,21 @@ body {
      -
      +
      @@ -94,7 +93,10 @@ body { diff --git a/account-chooser/src/main/webapp/WEB-INF/views/error.jsp b/account-chooser/src/main/webapp/WEB-INF/views/error.jsp new file mode 100644 index 000000000..7362e73be --- /dev/null +++ b/account-chooser/src/main/webapp/WEB-INF/views/error.jsp @@ -0,0 +1,70 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> +<%@page import="org.mitre.account_chooser.OIDCServer"%> +<%@page import="java.util.Map"%> +<%@page import="java.util.Iterator"%> + + + + + +Account Chooser + + + + + + + + + + + + +
      +
      +
      +

      + ${error}
      + ${error_description} +

      + + Return to client +
      +
      +
      + + + + + + + + + + + + + + + + + + + + + + + diff --git a/openid-connect-client/README.md b/openid-connect-client/README.md index 972d3d152..64b972466 100644 --- a/openid-connect-client/README.md +++ b/openid-connect-client/README.md @@ -4,9 +4,9 @@ This is the Client, a Spring Security AuthenticationFilter, to OpenID Connect Java Spring Server described by [OpenID Connect Standard]. -## Configure +## Configuration of OIDCAuthenticationFilter -Configure the OpenIDConnectAuthenticationFilter by adding the XML to your application context security like so: +Configure the OIDCAuthenticationFilter by adding the XML to your application context security like so: @@ -63,111 +63,22 @@ Configure the OpenIDConnectAuthenticationFilter by adding the XML to your applic You will need to implement your own UserDetailsService and configure as the above does with the reference to *myUserDetailsService*. -## Proposed Account Chooser UI Application Extension +## Configuration of OIDCAuthenticationUsingChooserFilter -The following proposed extension is in response to [Issue #39]. +The OIDCAuthenticationUsingChooserFilter was written in response to [Issue #39]. -### Account Chooser Protocol - -The following describes the protocol between the Client and Account Chooser UI application introduced in [Issue #39]. - -#### Authorization when using Account Chooser Code Flow - -The Authorization when using Account Chooser Code Flow goes through the following steps. - -1. Client prepares an Account Chooser Request containing the desired request parameters. -2. Client sends a request to the Account Chooser. -3. Account Chooser presents a selection of OpenID Connect (OIDC) Servers from which the End-User must select from. -4. End-User selects an OIDC. -5. Account Chooser Sends the End-User back to the Client with key value of the OIDC End-User selected. -6. The Client begins the Authorization flow desrcribed in [Authorization Code Flow][OpenID Connect Standard] of the [OpenID Connect Standard]. - -#### Account Chooser Request - -When the End-User wishes to access a Protected Resource, and the End-User Authorization has not yet been obtained, the Client will redirect the End-User to Account Chooser. - -Account Chooser MUST support the use of the HTTP "GET" and "POST" methods defined in RFC 2616 [RFC2616]. - -Clients MAY use the HTTP "GET" or "POST" method to send the Account Chooser Request to the Account Chooser. If using the HTTP "GET" method, the request parameters are serialized using URI query string serialization. If using the HTTP "POST" method, the request parameters are serialized using form serialization. - -#### Client Prepares an Account Chooser Request - -The Client prepares an Account Chooser Request to the Account Chooser with the request parameters using the HTTP "GET" or "POST" method. - -The required Account Chooser Request parameters are as follows: - -* redirect_uri - A redirection URI where the response will be sent. - -There is one method to construct and send the request to the Account Chooser: - -a. Simple Request Method - -#### Simple Request Method - -The Client prepares an Account Chooser Request to the Account Chooser using the appropriate parameters. If using the HTTP "GET" method, the request parameters are serialized using URI query string serialization. If using the HTTP "POST" method, the request parameters are serialized using form serialization. - -The following is a non-normative example of an Account Chooser Request URL. Line wraps are for display purposes only. - - http://server.example.com/chooser? - redirect_uri=https%3A%2F%2Fclient.example.com%2Fopenid_connect_login - -#### Client sends a request to the Account Chooser - -Having constructed the Account Chooser Request, the Client sends it to the Account Chooser. This MAY happen via redirect, hyperlinking, or any other means of directing the User-Agent to the Account Chooser URL. - -Following is a non-normative example using HTTP redirect. Line wraps are for display purposes only. - - HTTP/1.1 302 Found - Location: https://server.example.com/chooser? - redirect_uri=https%3A%2F%2Fclient.example.com%2Fopenid_connect_login - -#### Account Chooser Sends the End-User back to the Client - -After the End-User has select an OpenID Connect Server, it issues an Account Chooser Response and delivers it to the Client by adding the response parameters to redirect_uri specified in the Account Choose Request using the "application/x-www-form-urlencoded" format. - -The following response parameters are included: - -* oidc_alias - REQUIRED. The key used to configure the Client for its request of the selected OIDC server. - -The following is non-normative example of a responses. Line wraps are for display purposes only. - - HTTP/1.1 302 Found - Location: https://client.example.com/openid_connect_login? - oidc_alias=OIDC%20Server%201 - -#### End-User refuses to select an OIDC Server - -If the End-User refuses to select an OIDC server, the Account Chooser MUST return an error response. The Account Chooser returns the Client via the redirection URI specified in the Account Chooser Request with the appropriate error parameters. No other parameters SHOULD be returned. - -The error response parameters are the following: - -* error - REQUIRED. The error code. -* error_description - OPTIONAL. A human-readable UTF-8 encoded text description of the error. - -The response parameters are added to the query component of the redirection URI. - -The following is a non-normative example. Line wraps after the second line are for the display purposes only. - - HTTP/1.1 302 Found - Location: https://client.example.com/openid_connect_login? - error=end_user_cancelled - &error_description=The%20end%20user%20refused%20to%20select%20an%20OIDC%20server - -### Modification to existing Client - -#### Modifications to Client Configuration - -The configuration of the filter would change by adding a OIDCServers property to the Client containing a map of OIDC servers, and a AccountChooserURI to denote the URI of the Account Chooser like so: +Th Authentication Filter use the *oidcServerConfigs* property, a map of OIDC servers, an *accountChooserURI* property to denote the URI of the Account Chooser, and an *accountChooserClient* property to identify the Client to the Account Chooser UI application like so: + class="org.mitre.openid.connect.client.OIDCAuthenticationUsingChooserFilter"> - + - + @@ -180,17 +91,14 @@ The configuration of the filter would change by adding a OIDCServers property to - - ... + param : queryStringFields.entrySet()) { + try { + URLBuilder.append(appendChar).append(param.getKey()) .append('=') .append(URLEncoder.encode(param.getValue(), "UTF-8")); + } catch (UnsupportedEncodingException uee) { + throw new IllegalStateException(uee); + } + appendChar = '&'; } @@ -188,8 +196,11 @@ public class OpenIdConnectAuthenticationFilter extends .replace("=", ""); } catch (GeneralSecurityException generalSecurityException) { + // generalSecurityException.printStackTrace(); + throw new IllegalStateException(generalSecurityException); + } return signature; @@ -216,39 +227,37 @@ public class OpenIdConnectAuthenticationFilter extends return signer.verify(sigBytes); } catch (GeneralSecurityException generalSecurityException) { + // generalSecurityException.printStackTrace(); + throw new IllegalStateException(generalSecurityException); + } catch (UnsupportedEncodingException unsupportedEncodingException) { + // unsupportedEncodingException.printStackTrace(); + throw new IllegalStateException(unsupportedEncodingException); + } } - private String errorRedirectURI; + protected String errorRedirectURI; - private OIDCServerConfiguration oidcServerConfig; + protected String scope; - private String accountChooserURI; + protected int httpSocketTimeout = HTTP_SOCKET_TIMEOUT; - private Map oidcServerConfigs = new HashMap(); + protected PublicKey publicKey; - private String scope; + protected PrivateKey privateKey; - private int httpSocketTimeout = HTTP_SOCKET_TIMEOUT; - - private PublicKey publicKey; - - private PrivateKey privateKey; - - private Signature signer; + protected Signature signer; /** * OpenIdConnectAuthenticationFilter constructor */ - protected OpenIdConnectAuthenticationFilter() { + protected AbstractOIDCAuthenticationFilter() { super(FILTER_PROCESSES_URL); - - oidcServerConfig = new OIDCServerConfiguration(); } @Override @@ -258,40 +267,6 @@ public class OpenIdConnectAuthenticationFilter extends Assert.notNull(errorRedirectURI, "An Error Redirect URI must be supplied"); - try { - - // Validating configuration w/ Account Chooser UI Application - // settings - - Assert.notNull( - oidcServerConfigs, - "Server Configurations must be supplied if the Account Chooser UI Application is to be used."); - - Assert.notNull( - accountChooserURI, - "Account Chooser URI must be supplied if the Account Chooser UI Application is to be used."); - - } catch (Exception e) { - - // Failing over to validating configuration w/o Account Chooser UI - // Application settings - - Assert.notNull(oidcServerConfig.getAuthorizationEndpointURI(), - "An Authorization Endpoint URI must be supplied"); - - Assert.notNull(oidcServerConfig.getTokenEndpointURI(), - "A Token ID Endpoint URI must be supplied"); - - Assert.notNull(oidcServerConfig.getCheckIDEndpointURI(), - "A Check ID Endpoint URI must be supplied"); - - Assert.notNull(oidcServerConfig.getClientId(), - "A Client ID must be supplied"); - - Assert.notNull(oidcServerConfig.getClientSecret(), - "A Client Secret must be supplied"); - } - KeyPairGenerator keyPairGenerator; try { @@ -321,76 +296,13 @@ public class OpenIdConnectAuthenticationFilter extends * javax.servlet.http.HttpServletResponse) */ @Override - public Authentication attemptAuthentication(HttpServletRequest request, - HttpServletResponse response) throws AuthenticationException, + public Authentication attemptAuthentication(HttpServletRequest arg0, + HttpServletResponse arg1) throws AuthenticationException, IOException, ServletException { - // Enter AuthenticationFilter here... - - if (StringUtils.isNotBlank(request.getParameter("error"))) { - - handleError(request, response); - - } else if (request.getParameter("code") != null) { - - return handleAuthorizationGrantResponse(request); - - } else if (StringUtils.isNotBlank(accountChooserURI)) { - - String oidcAlias = request.getParameter("oidc_alias"); - - if (StringUtils.isNotBlank(oidcAlias)) { - - // Account Chooser UI selects the appropriate OIDC Server configuration - - OIDCServerConfiguration oidcServerConfig = oidcServerConfigs - .get(oidcAlias); - - if (oidcServerConfig != null) { - - Cookie oidcAliasCookie = new Cookie(OIDC_ALIAS_COOKIE_NAME, oidcAlias); - response.addCookie(oidcAliasCookie); - - handleAuthorizationRequest(request, response, oidcServerConfig); - - } else { - - throw new AuthenticationServiceException( - "Security Filter not configured for OIDC Alias: " - + oidcAlias); - } - - } else { - - // redirect the End-User to the configured Account Chooser UI - - Map urlVariables = new HashMap(); - - urlVariables.put("redirect_uri", OpenIdConnectAuthenticationFilter - .buildRedirectURI(request, null)); - - response.sendRedirect(OpenIdConnectAuthenticationFilter.buildURL( - accountChooserURI, urlVariables)); - } - - } else { - - // Use configuration that doesn't involve the Account Chooser UI. - - handleAuthorizationRequest(request, response, this.oidcServerConfig); - } - return null; } - public String getAccountChooserURI() { - return accountChooserURI; - } - - public Map getOidcServerConfigs() { - return oidcServerConfigs; - } - /** * Handles the authorization grant response * @@ -400,20 +312,11 @@ public class OpenIdConnectAuthenticationFilter extends * @return The authenticated user token, or null if authentication is * incomplete. */ - private Authentication handleAuthorizationGrantResponse( - HttpServletRequest request) { + protected Authentication handleAuthorizationGrantResponse( + HttpServletRequest request, OIDCServerConfiguration serverConfig) { final boolean debug = logger.isDebugEnabled(); - - OIDCServerConfiguration serverConfig = this.oidcServerConfig; - - // Which OIDC configuration? - Cookie oidcAliasCookie = WebUtils.getCookie(request, OIDC_ALIAS_COOKIE_NAME); - - if (oidcAliasCookie != null) { - serverConfig = oidcServerConfigs.get(oidcAliasCookie.getValue()); - } - + String authorizationGrant = request.getParameter("code"); // Handle Token Endpoint interaction @@ -440,7 +343,7 @@ public class OpenIdConnectAuthenticationFilter extends MultiValueMap form = new LinkedMultiValueMap(); form.add("grant_type", "authorization_code"); form.add("code", authorizationGrant); - form.add("redirect_uri", OpenIdConnectAuthenticationFilter + form.add("redirect_uri", AbstractOIDCAuthenticationFilter .buildRedirectURI(request, new String[] { "code" })); // pass clientId and clientSecret in post of request @@ -448,15 +351,16 @@ public class OpenIdConnectAuthenticationFilter extends form.add("client_secret", serverConfig.getClientSecret()); if (debug) { - logger.debug("tokenEndpointURI = " + serverConfig.getTokenEndpointURI()); + logger.debug("tokenEndpointURI = " + + serverConfig.getTokenEndpointURI()); logger.debug("form = " + form); } String jsonString = null; try { - jsonString = restTemplate.postForObject(serverConfig.getTokenEndpointURI(), form, - String.class); + jsonString = restTemplate.postForObject( + serverConfig.getTokenEndpointURI(), form, String.class); } catch (HttpClientErrorException httpClientErrorException) { // Handle error @@ -554,8 +458,9 @@ public class OpenIdConnectAuthenticationFilter extends jsonString = null; try { - jsonString = restTemplate.postForObject(serverConfig.getCheckIDEndpointURI(), - form, String.class); + jsonString = restTemplate.postForObject( + serverConfig.getCheckIDEndpointURI(), form, + String.class); } catch (HttpClientErrorException httpClientErrorException) { // Handle error @@ -651,7 +556,7 @@ public class OpenIdConnectAuthenticationFilter extends * @throws IOException * If an input or output exception occurs */ - private void handleAuthorizationRequest(HttpServletRequest request, + protected void handleAuthorizationRequest(HttpServletRequest request, HttpServletResponse response, OIDCServerConfiguration serverConfiguration) throws IOException { @@ -662,7 +567,7 @@ public class OpenIdConnectAuthenticationFilter extends urlVariables.put("response_type", "code"); urlVariables.put("client_id", serverConfiguration.getClientId()); urlVariables.put("scope", scope); - urlVariables.put("redirect_uri", OpenIdConnectAuthenticationFilter + urlVariables.put("redirect_uri", AbstractOIDCAuthenticationFilter .buildRedirectURI(request, null)); // Create a string value used to associate a user agent session @@ -684,7 +589,7 @@ public class OpenIdConnectAuthenticationFilter extends // TODO: display, prompt, request, request_uri - response.sendRedirect(OpenIdConnectAuthenticationFilter.buildURL( + response.sendRedirect(AbstractOIDCAuthenticationFilter.buildURL( serverConfiguration.getAuthorizationEndpointURI(), urlVariables)); } @@ -699,7 +604,7 @@ public class OpenIdConnectAuthenticationFilter extends * @throws IOException * If an input or output exception occurs */ - private void handleError(HttpServletRequest request, + protected void handleError(HttpServletRequest request, HttpServletResponse response) throws IOException { String error = request.getParameter("error"); @@ -718,44 +623,15 @@ public class OpenIdConnectAuthenticationFilter extends requestParams.put("error_uri", errorURI); } - response.sendRedirect(OpenIdConnectAuthenticationFilter.buildURL( + response.sendRedirect(AbstractOIDCAuthenticationFilter.buildURL( errorRedirectURI, requestParams)); } - public void setAccountChooserURI(String accountChooserURI) { - this.accountChooserURI = accountChooserURI; - } - - public void setAuthorizationEndpointURI(String authorizationEndpointURI) { - oidcServerConfig.setAuthorizationEndpointURI(authorizationEndpointURI); - } - - public void setCheckIDEndpointURI(String checkIDEndpointURI) { - oidcServerConfig.setCheckIDEndpointURI(checkIDEndpointURI); - } - - public void setClientId(String clientId) { - oidcServerConfig.setClientId(clientId); - } - - public void setClientSecret(String clientSecret) { - oidcServerConfig.setClientSecret(clientSecret); - } - public void setErrorRedirectURI(String errorRedirectURI) { this.errorRedirectURI = errorRedirectURI; } - public void setOidcServerConfigs( - Map oidcServerConfigs) { - this.oidcServerConfigs = oidcServerConfigs; - } - public void setScope(String scope) { this.scope = scope; } - - public void setTokenEndpointURI(String tokenEndpointURI) { - oidcServerConfig.setTokenEndpointURI(tokenEndpointURI); - } } diff --git a/openid-connect-client/src/main/java/org/mitre/openid/connect/client/OIDCAuthenticationFilter.java b/openid-connect-client/src/main/java/org/mitre/openid/connect/client/OIDCAuthenticationFilter.java new file mode 100644 index 000000000..4f9f0d877 --- /dev/null +++ b/openid-connect-client/src/main/java/org/mitre/openid/connect/client/OIDCAuthenticationFilter.java @@ -0,0 +1,133 @@ +/******************************************************************************* + * Copyright 2012 The MITRE Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ +package org.mitre.openid.connect.client; + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang.StringUtils; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.AuthenticationException; +import org.springframework.util.Assert; + +/** + * The OpenID Connect Authentication Filter + * + * See README.md to to configure + * + * @author nemonik + * + */ +public class OIDCAuthenticationFilter extends AbstractOIDCAuthenticationFilter { + + protected OIDCServerConfiguration oidcServerConfig; + + /** + * OpenIdConnectAuthenticationFilter constructor + */ + protected OIDCAuthenticationFilter() { + super(); + + oidcServerConfig = new OIDCServerConfiguration(); + } + + /* + * (non-Javadoc) + * + * @see org.mitre.openid.connect.client.AbstractOIDCAuthenticationFilter# + * afterPropertiesSet() + */ + @Override + public void afterPropertiesSet() { + super.afterPropertiesSet(); + + // Validating configuration + + Assert.notNull(oidcServerConfig.getAuthorizationEndpointURI(), + "An Authorization Endpoint URI must be supplied"); + + Assert.notNull(oidcServerConfig.getTokenEndpointURI(), + "A Token ID Endpoint URI must be supplied"); + + Assert.notNull(oidcServerConfig.getCheckIDEndpointURI(), + "A Check ID Endpoint URI must be supplied"); + + Assert.notNull(oidcServerConfig.getClientId(), + "A Client ID must be supplied"); + + Assert.notNull(oidcServerConfig.getClientSecret(), + "A Client Secret must be supplied"); + } + + /* + * (non-Javadoc) + * + * @see org.mitre.openid.connect.client.AbstractOIDCAuthenticationFilter# + * attemptAuthentication(javax.servlet.http.HttpServletRequest, + * javax.servlet.http.HttpServletResponse) + */ + @Override + public Authentication attemptAuthentication(HttpServletRequest request, + HttpServletResponse response) throws AuthenticationException, + IOException, ServletException { + + // Enter AuthenticationFilter here... + + super.attemptAuthentication(request, response); + + if (StringUtils.isNotBlank(request.getParameter("error"))) { + + handleError(request, response); + + } else if (request.getParameter("code") != null) { + + return handleAuthorizationGrantResponse(request, oidcServerConfig); + + } else { + + handleAuthorizationRequest(request, response, oidcServerConfig); + } + + return null; + } + + public void setAuthorizationEndpointURI(String authorizationEndpointURI) { + oidcServerConfig.setAuthorizationEndpointURI(authorizationEndpointURI); + } + + public void setCheckIDEndpointURI(String checkIDEndpointURI) { + oidcServerConfig.setCheckIDEndpointURI(checkIDEndpointURI); + } + + public void setClientId(String clientId) { + oidcServerConfig.setClientId(clientId); + } + + public void setClientSecret(String clientSecret) { + oidcServerConfig.setClientSecret(clientSecret); + } + + public void setErrorRedirectURI(String errorRedirectURI) { + this.errorRedirectURI = errorRedirectURI; + } + + public void setTokenEndpointURI(String tokenEndpointURI) { + oidcServerConfig.setTokenEndpointURI(tokenEndpointURI); + } +} diff --git a/openid-connect-client/src/main/java/org/mitre/openid/connect/client/OIDCAuthenticationUsingChooserFilter.java b/openid-connect-client/src/main/java/org/mitre/openid/connect/client/OIDCAuthenticationUsingChooserFilter.java new file mode 100644 index 000000000..119779128 --- /dev/null +++ b/openid-connect-client/src/main/java/org/mitre/openid/connect/client/OIDCAuthenticationUsingChooserFilter.java @@ -0,0 +1,178 @@ +/******************************************************************************* + * Copyright 2012 The MITRE Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ +package org.mitre.openid.connect.client; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import javax.servlet.ServletException; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang.StringUtils; +import org.springframework.security.authentication.AuthenticationServiceException; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.AuthenticationException; +import org.springframework.util.Assert; +import org.springframework.web.util.WebUtils; + +/** + * The OpenID Connect Authentication Filter using Acount Chooser UI Application + * + * See README.md to to configure + * + * @author nemonik + * + */ +public class OIDCAuthenticationUsingChooserFilter extends + AbstractOIDCAuthenticationFilter { + + protected final static String ISSUER_COOKIE_NAME = "issuer"; + + protected String accountChooserURI; + + protected String accountChooserClientID; + + protected Map oidcServerConfigs = new HashMap(); + + /** + * OpenIdConnectAuthenticationFilter constructor + */ + protected OIDCAuthenticationUsingChooserFilter() { + super(); + } + + /* + * (non-Javadoc) + * + * @see org.mitre.openid.connect.client.AbstractOIDCAuthenticationFilter# + * afterPropertiesSet() + */ + @Override + public void afterPropertiesSet() { + super.afterPropertiesSet(); + + // Validating configuration + + Assert.notNull( + oidcServerConfigs, + "Server Configurations must be supplied if the Account Chooser UI Application is to be used."); + + Assert.notNull( + accountChooserURI, + "Account Chooser URI must be supplied if the Account Chooser UI Application is to be used."); + + Assert.notNull( + accountChooserClientID, + "Account Chooser Client ID must be supplied if the Account Chooser UI Application is to be used."); + } + + /* + * (non-Javadoc) + * + * @see org.springframework.security.web.authentication. + * AbstractAuthenticationProcessingFilter + * #attemptAuthentication(javax.servlet.http.HttpServletRequest, + * javax.servlet.http.HttpServletResponse) + */ + @Override + public Authentication attemptAuthentication(HttpServletRequest request, + HttpServletResponse response) throws IOException, + AuthenticationException, ServletException { + + // Enter AuthenticationFilter here... + super.attemptAuthentication(request, response); + + if (StringUtils.isNotBlank(request.getParameter("error"))) { + + handleError(request, response); + + } else if (request.getParameter("code") != null) { + + // Which OIDC configuration? + Cookie oidcAliasCookie = WebUtils.getCookie(request, + ISSUER_COOKIE_NAME); + + return handleAuthorizationGrantResponse(request, + oidcServerConfigs.get(oidcAliasCookie.getValue())); + + } else { + + String issuerId = request.getParameter("issuer"); + + if (StringUtils.isNotBlank(issuerId)) { + + // Account Chooser UI provided and Issuer Identifier + + OIDCServerConfiguration oidcServerConfig = oidcServerConfigs + .get(issuerId); + + if (oidcServerConfig != null) { + + // The Client is configured to support this Issuer + // Identifier + + Cookie issuerCookie = new Cookie(ISSUER_COOKIE_NAME, + issuerId); + response.addCookie(issuerCookie); + + handleAuthorizationRequest(request, response, + oidcServerConfig); + + } else { + + // The Client is NOT configured to support this Issuer + // Identifier + + throw new AuthenticationServiceException( + "Security Filter not configured for OIDC Alias: " + + issuerId); + } + + } else { + + // Redirect the End-User to the configured Account Chooser UI + // application + + Map urlVariables = new HashMap(); + + urlVariables.put("redirect_uri", + OIDCAuthenticationUsingChooserFilter.buildRedirectURI( + request, null)); + + response.sendRedirect(OIDCAuthenticationUsingChooserFilter + .buildURL(accountChooserURI, urlVariables)); + } + } + + return null; + } + + public void setAccountChooserClientID(String accountChooserClientID) { + this.accountChooserClientID = accountChooserClientID; + } + + public void setAccountChooserURI(String accountChooserURI) { + this.accountChooserURI = accountChooserURI; + } + + public void setOidcServerConfigs( + Map oidcServerConfigs) { + this.oidcServerConfigs = oidcServerConfigs; + } +} diff --git a/openid-connect-server/.settings/org.eclipse.wst.common.component b/openid-connect-server/.settings/org.eclipse.wst.common.component index 5b4c881f0..f1cfea574 100644 --- a/openid-connect-server/.settings/org.eclipse.wst.common.component +++ b/openid-connect-server/.settings/org.eclipse.wst.common.component @@ -5,10 +5,7 @@ - - uses - - + uses