From a43bc20eb30bdf1ea9b93f4bdbb5db1423d58426 Mon Sep 17 00:00:00 2001 From: Geoffroy Bonneville Date: Fri, 22 Sep 2017 15:40:24 +0200 Subject: [PATCH] ModernKeePassLib custom PCL version --- ModernKeePass/Common/DatabaseHelper.cs | 10 +- ModernKeePass/MainPage.xaml.cs | 4 +- ModernKeePass/ModernKeePass.csproj | 6 +- ModernKeePass/ViewModels/HomeVm.cs | 7 - ModernKeePass/packages.config | 4 +- .../Collections/AutoTypeConfig.cs | 40 +- .../Collections/ProtectedBinaryDictionary.cs | 4 +- .../Collections/ProtectedStringDictionary.cs | 4 +- ModernKeePassLib/Collections/PwObjectList.cs | 74 +- ModernKeePassLib/Collections/PwObjectPool.cs | 18 +- .../Collections/StringDictionaryEx.cs | 4 +- .../Cryptography/Cipher/CipherPool.cs | 20 +- .../Cryptography/Cipher/ICipherEngine.cs | 2 +- .../Cryptography/Cipher/Salsa20Cipher.cs | 17 +- .../Cryptography/Cipher/StandardAesEngine.cs | 101 ++- ModernKeePassLib/Cryptography/CryptoRandom.cs | 173 ++-- .../Cryptography/CryptoRandomStream.cs | 30 +- .../Cryptography/HashingStreamEx.cs | 247 +++--- ModernKeePassLib/Cryptography/HmacOtp.cs | 35 +- .../CharSetBasedGenerator.cs | 2 +- .../PasswordGenerator/CustomPwGenerator.cs | 2 +- .../CustomPwGeneratorPool.cs | 6 +- .../PatternBasedGenerator.cs | 13 +- .../PasswordGenerator/PwCharSet.cs | 187 +++-- .../PasswordGenerator/PwGenerator.cs | 2 +- .../PasswordGenerator/PwProfile.cs | 30 +- .../Cryptography/PopularPasswords.cs | 575 ++----------- .../Cryptography/QualityEstimation.cs | 767 ++++++++++++++++-- .../Cryptography/SHA256Managed.cs | 48 -- ModernKeePassLib/Cryptography/SelfTest.cs | 260 ++++-- ModernKeePassLib/Delegates/Handlers.cs | 2 +- ModernKeePassLib/Interfaces/IDeepCloneable.cs | 2 +- ModernKeePassLib/Interfaces/IStatusLogger.cs | 2 +- ModernKeePassLib/Interfaces/IStructureItem.cs | 2 +- ModernKeePassLib/Interfaces/ITimeLogger.cs | 10 +- ModernKeePassLib/Interfaces/IUIOperations.cs | 2 +- .../Interfaces/IXmlSerializerEx.cs | 2 +- ModernKeePassLib/Keys/CompositeKey.cs | 503 ++++++------ ModernKeePassLib/Keys/IUserKey.cs | 2 +- ModernKeePassLib/Keys/KcpCustomKey.cs | 28 +- ModernKeePassLib/Keys/KcpKeyFile.cs | 161 +++- ModernKeePassLib/Keys/KcpPassword.cs | 33 +- ModernKeePassLib/Keys/KcpUserAccount.cs | 89 +- ModernKeePassLib/Keys/KeyProvider.cs | 2 +- ModernKeePassLib/Keys/KeyProviderPool.cs | 2 +- ModernKeePassLib/Keys/KeyValidator.cs | 2 +- ModernKeePassLib/Keys/KeyValidatorPool.cs | 2 +- ModernKeePassLib/Keys/UserKeyType.cs | 2 +- ModernKeePassLib/Libs/Windows.winmd | Bin 2171904 -> 3345728 bytes ModernKeePassLib/ModernKeePassLib.csproj | 26 +- .../ModernKeePassLib.csproj.DotSettings | 2 + ModernKeePassLib/ModernKeePassLib.csproj.user | 2 +- ModernKeePassLib/Native/Native.PCL.cs | 70 ++ ModernKeePassLib/Native/NativeLib.cs | 200 ++++- ModernKeePassLib/Native/NativeMethods.Unix.cs | 112 +++ ModernKeePassLib/Native/NativeMethods.cs | 66 +- ModernKeePassLib/Properties/AssemblyInfo.cs | 4 +- ModernKeePassLib/PwCustomIcon.cs | 31 +- ModernKeePassLib/PwDatabase.cs | 311 ++++--- ModernKeePassLib/PwDefs.cs | 53 +- ModernKeePassLib/PwDeletedObject.cs | 2 +- ModernKeePassLib/PwEntry.cs | 90 +- ModernKeePassLib/PwEnums.cs | 65 +- ModernKeePassLib/PwGroup.cs | 214 ++++- ModernKeePassLib/PwUuid.cs | 128 +-- ModernKeePassLib/Resources/KLRes.Generated.cs | 17 +- ModernKeePassLib/Security/ProtectedBinary.cs | 442 ++++++---- ModernKeePassLib/Security/ProtectedString.cs | 130 ++- ModernKeePassLib/Security/XorredBuffer.cs | 2 +- .../Serialization/BinaryReaderEx.cs | 66 +- .../Serialization/CryptoStream.cs | 139 ---- ModernKeePassLib/Serialization/FileLock.cs | 49 +- .../Serialization/FileTransactionEx.cs | 29 +- .../Serialization/HashedBlockStream.cs | 71 +- .../Serialization/IOConnection.cs | 478 ++++++++--- .../Serialization/IOConnectionInfo.cs | 95 +-- ....Streamed.cs => KdbxFile.Read.Streamed.cs} | 93 ++- .../{Kdb4File.Read.cs => KdbxFile.Read.cs} | 230 +++--- .../{Kdb4File.Write.cs => KdbxFile.Write.cs} | 300 ++++--- .../{Kdb4File.cs => KdbxFile.cs} | 75 +- .../Serialization/OldFormatException.cs | 10 +- .../Translation/KPControlCustomization.cs | 23 +- .../Translation/KPFormCustomization.cs | 9 +- ModernKeePassLib/Translation/KPStringTable.cs | 9 +- .../Translation/KPStringTableItem.cs | 2 +- ModernKeePassLib/Translation/KPTranslation.cs | 9 +- .../Translation/KPTranslationProperties.cs | 2 +- ModernKeePassLib/Utility/AppLogEx.cs | 14 +- ModernKeePassLib/Utility/ColorTranslator.cs | 57 ++ ModernKeePassLib/Utility/GfxUtil.cs | 115 +++ ModernKeePassLib/Utility/MemUtil.cs | 301 ++++++- ModernKeePassLib/Utility/MessageService.cs | 57 +- ModernKeePassLib/Utility/MonoWorkarounds.cs | 324 ++++++++ ModernKeePassLib/Utility/StrUtil.cs | 538 +++++++++--- ModernKeePassLib/Utility/TimeUtil.cs | 158 +++- ModernKeePassLib/Utility/UrlUtil.cs | 202 ++++- ModernKeePassLib/WinRTColor.cs | 49 -- ModernKeePassLib/project.lock.json | 76 +- 98 files changed, 6049 insertions(+), 3038 deletions(-) delete mode 100644 ModernKeePassLib/Cryptography/SHA256Managed.cs create mode 100644 ModernKeePassLib/ModernKeePassLib.csproj.DotSettings create mode 100644 ModernKeePassLib/Native/Native.PCL.cs create mode 100644 ModernKeePassLib/Native/NativeMethods.Unix.cs delete mode 100644 ModernKeePassLib/Serialization/CryptoStream.cs rename ModernKeePassLib/Serialization/{Kdb4File.Read.Streamed.cs => KdbxFile.Read.Streamed.cs} (92%) rename ModernKeePassLib/Serialization/{Kdb4File.Read.cs => KdbxFile.Read.cs} (63%) rename ModernKeePassLib/Serialization/{Kdb4File.Write.cs => KdbxFile.Write.cs} (77%) rename ModernKeePassLib/Serialization/{Kdb4File.cs => KdbxFile.cs} (87%) create mode 100644 ModernKeePassLib/Utility/ColorTranslator.cs create mode 100644 ModernKeePassLib/Utility/GfxUtil.cs create mode 100644 ModernKeePassLib/Utility/MonoWorkarounds.cs delete mode 100644 ModernKeePassLib/WinRTColor.cs diff --git a/ModernKeePass/Common/DatabaseHelper.cs b/ModernKeePass/Common/DatabaseHelper.cs index 6708d5b..4fc8acb 100644 --- a/ModernKeePass/Common/DatabaseHelper.cs +++ b/ModernKeePass/Common/DatabaseHelper.cs @@ -1,7 +1,6 @@ using System; using Windows.Storage; using System.Threading.Tasks; - using ModernKeePass.ViewModels; using ModernKeePassLib; using ModernKeePassLib.Interfaces; @@ -23,13 +22,14 @@ namespace ModernKeePass.Common { this.databaseFile = databaseFile; } - public async Task Open(string password) + public string Open(string password) { var key = new CompositeKey(); try { key.AddUserKey(new KcpPassword(password)); - await _pwDatabase.Open(IOConnectionInfo.FromFile(databaseFile), key, new NullStatusLogger()); + _pwDatabase.Open(IOConnectionInfo.FromFile(databaseFile), key, new NullStatusLogger()); + //_pwDatabase.Open(IOConnectionInfo.FromPath(databaseFile.Path), key, new NullStatusLogger()); IsOpen = _pwDatabase.IsOpen; Name = databaseFile.DisplayName; RootGroup = new GroupVm(_pwDatabase.RootGroup); @@ -42,6 +42,10 @@ namespace ModernKeePass.Common { return "Wrong password"; } + catch (Exception ex) + { + return ex.Message; + } /*finally { // TODO: move this when implementing write mode diff --git a/ModernKeePass/MainPage.xaml.cs b/ModernKeePass/MainPage.xaml.cs index a2ed2e3..979e752 100644 --- a/ModernKeePass/MainPage.xaml.cs +++ b/ModernKeePass/MainPage.xaml.cs @@ -39,7 +39,7 @@ namespace ModernKeePass } } - private async void openBbutton_Click(object sender, RoutedEventArgs e) + private void openBbutton_Click(object sender, RoutedEventArgs e) { /*var database = DataContext as DatabaseVm; database.Open(); @@ -47,7 +47,7 @@ namespace ModernKeePass Frame.Navigate(typeof(GroupDetailPage), database.RootGroup);*/ var homeVm = DataContext as HomeVm; var app = ((App)Application.Current); - homeVm.ErrorMessage = await app.Database.Open(homeVm.Password); + homeVm.ErrorMessage = app.Database.Open(homeVm.Password); if (!app.Database.IsOpen) homeVm.NotifyPropertyChanged("ErrorMessage"); else Frame.Navigate(typeof(GroupDetailPage), app.Database.RootGroup); } diff --git a/ModernKeePass/ModernKeePass.csproj b/ModernKeePass/ModernKeePass.csproj index b621bc3..f6bad39 100644 --- a/ModernKeePass/ModernKeePass.csproj +++ b/ModernKeePass/ModernKeePass.csproj @@ -159,8 +159,8 @@ - - ..\packages\ModernKeePassLib.2.19.0.26255\lib\netstandard1.2\ModernKeePassLib.dll + + ..\packages\ModernKeePassLib.2.36.0.27373\lib\netstandard1.2\ModernKeePassLib.dll True @@ -221,7 +221,9 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + zZDks6R;J@y$_(73%)~d9S-3@+jqfXSaEFqC?7{$M2L1JfKwK_evEWRF>lpN;Qw|5_T&qXnqv_q^zVr zgsj?14IWl%@$A%9^hwAFN?ncTrLMt=scX@Zx{jkxWE`cgCriSV)H<3Ah3BVkAWurI z#|u&$aB^xRx>7fyJ9QIgq;BT1nWV9&e@b1(D6fK;k?$3jq;``ZOg)4Tr5?u8 z)FYfznc72sR9K#Rlw6T|3?E7D#m7?n@QKuZ&a6g8S?T~jlRAjCsYCdD>T!;)Mn+9) zLMnI5k@1o`4A-X)r+En(BdH^>A$26pYsd&n9fcpJj;85I9Yg+7_(keia(ikbewsRt zqpiqmHFZ4s*VH6(kMKz91oAJb$#_y=B1eBpokZ>y{+K$Md`=*Reu6M5AkmyH92ans z&kDFXI$n5YK&D9)jtTh4rw0@q8whaD8OUoXppsLNS6Vg@rGdHRivsg7Jun}y2xQ~zKn`9RSb%c^3-PMJ zBFqdd#*9ENULDB8YXkXsO<)OT1qyIppb+NTVo?ILU>Q0k-kt^ z8Q4hwnDF7iCi*huU8lfias_fF7}!EC6_y0H(mW`9B(ROXTzGF_J9%lK39AA-IOlO> zwF>Mc-ydiu7YU04Ei?}x``ExP@_oo!5ZFzA8(AX)t>ia_Zw1kwrRp21aUSVgT zi~eim{!gHr{2p>&C~%1U0dg-WaG3nQ@bkbCnmxkZfgbu#gdYZu(l;Y3THqMI8|cMv z0)6;Lpdb4J1NdiP5c>l|_*dXK4h9ke><w*=yHdu)- z2CMLe;BtI9SdHs~EAXY@N^A($;G4l(d@HyLUk|RvO~Ey|F}N1D1lQpk!S%Q~Scgr) z4fuYr9zO{-;I3dJz7yPt9|bqz$HC3GHMj*o2yVp>gWIqrxE*%}n{an<2YwpdiOs=g z+!k!X*5EFDJGdKn1Y7aFU>m+0+=JVL?YKACfnNvr;t#=2JQ&=EUj+B#cfkYreefXe z33lN(!EXFEcnA*!597Yz5$p=~;E%zhxIcId+k?H>9qhx;gZaUFd@jDSmEK|upr-~E9?mlr~g&>TW|#ZQRE6PI1+njgbf=M`Boq&VEWaLW{@nm%p{u`W(L%|e09+Ys5>cp|C8&6kdJVW*2DXM~r zY5+&7DxRk5c&2LLsj7*iR0~I|F+4}Lae|tL=c?(LtWLx8)af`;oq^}8GjWnS3olS- zmp-Y{QPBk0dY7Y9;1?W*1qO2}Lueumh)m#jyc^Fjl zQB#+ot`?wQEks3KimJK{BWe*EYB7e@5;WCPwA3;TspS|`D=@BBqODe8R9%i!)oM&r zSKu^tC0?Y~V7gk17ptpqy1E)KRoCDQbuC_|uER^z^*B?l!`bQvyj-ovS!x4bp*CWs zx)HBZH(`dl8Lw8i;FaoDoTF~TYt-$Sr8eO_bq8Ln?!>ujGhU~*;0@|7%vN{fjcP0A zsBL(?x(Da0?YKbgz?;;)c(dAx3)Ovii@F~dsR!^j^&sY|U3k0Njd|)JT&y0(Th$|Y zhuVV$>QT&BkKvtaFD_C0@Gi9<3)KO;st1eMiU9ftR)!|?%i1eT~H z@j-PIma3!iA$1HEt7EZ9O~m`varlTj9?R7vEK?`o!)h`Q;`8b(d`_K>tJOL9qMCuPsF_%&X5q`~T->0}!}aQXd`Zp5dNl_d z)CKsOx)2-HMfke97++O$ajTk#+tqx0PhFz&Z!xF^Re-{3rR?>6{d(ustM%9(%!@{F#4b88@pVV6VL&z+rt|AWz6SUPdCkX#m*U%3l^PaYrJPg^%sO!l6 z!sF_Cntz3VsCD#x!Xb47{XfE!w0io{S_93g$hT2xjpT8{v$c)n@!BR#);8mL+7_Im zZRJb}nY*-YguXq`A)+lNn5!MbJgpaR*ZS}dtsnEX0lZTi#3kAg-lZMK0xdyf{A$CnP#cc- zXd`f`HWKgEM&UATG~TC;!6I!e-mfKMu{I7L(8gnlmV^R=cE#)q_tSf)+FhqcLA zuBG53nuHaa6Cc&wSgFbQnC8POO~J>t04~>5d_vQ)S~KuT&BPU&g->ZQT&dakw3dc7 zS~@+xf)4tHrA@Dr^bcWVv!sn&?C+D80L+k|b}X8c^+f_t>B_=UC& z+qLcZrPhQU+7A3m+lhO%X8c-f!A@-#exvQieOfDitF_^NZ4Z8@wc`P;1Haey;z6ww zf6(?}m$n~&)DB>`b`XEky6}+JjsMdQ;bHAC{;VCrBU%ssq8-H^?HK;5_2N;j4}a78 z@t8J%ziWfos}12F+HvgD5_D!8Z5Z}z!|^X|1P*8;@o#Mu4r-(EA8iZ{X=8Dro`}b_ zamYWOjR|@Zo~Td2VR|y2q))`*`XoGApNu2)6#S1a;Yi(yr|51RrOSA#?!(c#f~V;L z9HXmvx~}6`-M}++6BBg{&(vc$PPg$aJq^d}>3Ft24U_cgc#b{;C+IWrTzwWM>$CAZ zeGX34Gw^&p6DR3ec!53_C+qX@LVZ4_=-D_$&p}CFfDU~jI`u{9(ifv!&qa@(hq9iJ zUVRDr^aAwjg{bIDF;!oN0lf%=dNHbc32J&N>UtT5^l~)x3JmL&XzEoM(U+s8S7TIP zfiZn0#`PMUs@I~eufjBaHD08z!E}8sUaYUfY5ID+M6bi?`UbpIug4jB174;#;!J%b zUaoJ#S^8$YLf?Y3^{sfNz76N-+wm&B2{ZH^c(uM0GxcV?MsL9^eHUJ<@5Z@$D_*C! z;XHj0Uaz;~e7ys2(D!1t-ibHr`!Gk}k2mQDaDjdhZ`Ql;7QGw))ehkz{V?9DAHl_X z58kF9#a#Uu-mdpzp5BLd=>3?l58$2pATH5|@Gkv07U&5f=6`({7V5+C9(@EZ)kosJ z`Y2qckH-7-F<7LJ#ryR{EY`>21NwL@(Ub5&eFB#1$@q{y5zF*R_^>`1%k>m|M3=Ba zcjBYE8>@6V#N8fb&ewh9Cy+T`SIAEyYlI#kKZeZwx{51x9iP?>T%ns-t6QA&rXC}2 z5;o{I&1=Yvt*4P+L1uD2o%}K~OY76fuM6MMr_*c{*6TCqUqw~{eJ1%OWFFRM;Z}V% zZqeu9TY3h*qi5naJqzE~=i+949yaOoakrk$Gkl87v3d@ErZ1prL*`h0A^A&v5xHHs zM_)|y1v1C#x%icyN3&Pht>@GHC_JJsA^)rwV2@sizvxTxTYVYl??>igy@dUP}H>_>*2na|oGl^>XrIWLDQJ@R(kSzw1?aR9}w2>D4%>ufTqN zCH|?`;NN;J4(O}!FMT!sqp!gseJ!34T89at_4uz|hsX5|cv7ey7ls<}rcfj1hBo2_ zp-q?=+KdxJTkx#VRvZ!9hNpzK1#Db$R&hFY*Vv<$gbUqd5sU1%ge z6&i*A4UNW{&=`CqG!`pEiTHSE9R3j+kHF=nu*&&v+%vpY}^r=gTssrJlV)J_}r;*w2?(~D)Q-fV=nnW$Y=E=NS2% zf1a^~oGhGZ6p+t13URWr6sH)=&}9^HrW;uSjbgHl{2w<;&}Wp=1dTFsK$vQjlNF-^ zO{0>dA)|_{Blii7Ts^H0k1Ra@p_|yGv^~KkJtWWNacYFgD}O#um&q zwsPj}$Vy~v!^OsSyv1n3Ta6ufo3RrMjb_fg2N{({3liluo1(b3>$wi(y+@&#~x!E{$fnWpN$!K$e4-08nf_-F&qD9 z%)w(u2L5Jb^0Ru4Eb{NdK4UKV4`Uwo8}m8(7qT`P+4zrRrg8GVXyLb!&O}rE+wnTo;h4b4hWTSIgKB=FA=UFdy!ANhAYV-VI*8dV4iwc*v68D4|egxBKr;dPudUziyqS3^!t3cq8Y$jJ)#0n{Z=zGtC>w>p#2& z8^T+0LwFngE5cX9+iB{BuZ5fF8<9~N-a&o=8T;X#`E%hH;X^d-$fyY)#*Xk2{3_god&5UL+8I7Z{u6327X#Rb-7e=b~-S!?-ygqh>ZM4!2c z{t|OBd74l*b7{QD7&P-RX69qaT!NZefVx?T)6J!rZZ6~ei;?|u6*SifQ_V{H0J0jIRak8<$0y8cTw$)jr_7c3 zs9A%RW-S((tFYKyjb-KF+FV3pa3%gl}VjJXLP zG&kb|<`yh5x8mdGHhj$7j-_T3E;V=HN^>VZX*T1%W(z)T?!p>#H{Nfy@^@KfwvnF| zK5y=!StESGY^Ps~e0s<1AU`KuXYM7hH#_kqb05BF?#DXw0KRM<#8=EN9#xObT4p!- zHS-X;LHMe9nEbkV1h<<#*km5X_snD1Z1!^gN61`c_K`mpeqi>~>=5oW2k1XU<`#1h z_n1T2W**1S%!CN@j5#dAojT!{=5U%0;a+nD{a3FP6`Ry}PC;uyCTTGLHT-}%^ zc~CfHS~UL%PmRRLVilpI~NIIS#nTDey)A6*(3?6%CWF|RLI4&}a<}75+iOeRS zhg>y8=8(@8o*T)anIKGxWYV95>;xiNctKa@c zMUf(orXw>|q?l|8W04Y?DDv$wky7$hk>+qR2LyTai0sk?rI=kZYMp z6Zv-GZIK-`i-k)fJL&I2W|c@Y7DQU`p2#jNjO@m{BdvIEqzy|Wd+@G^#c^|m~ilmU=My_-s68T+Z zMvXYh?;*2g#7+JHnav_H`FrHuhlr2-9kRcQDA*AR;MWlqH$`-gzA5}DV$d`TcSlV6 zPlcaHEc!NKXCy}cGGgPwNE+vS97!j)2!Du7qxm8-oo0{l*T@XA)0&C>ky-dpWHt^( z=HOqE4E!UKi6>fFm~73(qmg-dEHWRbSlRd=D+f=r7T|bmA&#;Z;aF=io@wRcIaVGX zkL2UOktH}7DZoD?g*Xsdio>mCc)nGHzeS4i_ecr;9Vx}WNEx1BmE&Zq0u!uC?2S~R z*ILfs&WG%RtZK3%l&uvs9-(fnB!{dT)T~+zTdUBtR-<99!HBgMEo&V{t@RkQ>M(9? zK-;Rvsa6ACWHn;CwGq>-O?a`j8K+rWaF(@|Kf@KmOlup>)xw$9cKXYOms(Bq(~)lj zuy&AV2j2Fy$gE-=#6qhJ@3FeEz&eEYT8BAj znXueCLi4cj5vzy3LRe-UrGH3xzjchhSXgBB(%*-Cw%O_Zd6YmRbY!4+aPgx^yxiu1>utr6hTddLKr-jd0V`yrTdBz%xtE@zP z&KgI*TDZmL($S(_DvLu>1GWHW_j#>pjZot1?Lthu<~nuiCi`MA%@#&4}0{Ki^(JHtztYOTEb%!grlOR zG^ZeYGpmgJukhq(In4-U?uu5BM~F@9c?7Lgcn9P(o7ag(M|LYWG@%pOrC=5!J=Ex8{LYj(QW99Zbv2Bg#PFb z&J0F(k^@3L+DsD?hNCU?hER>}qSui5FuI!@N9Mz5D|sq1i$>eX5n(jChsF}7Mcc_U zq8)fybT3{S?ZjEpeRxH5KhBIEz{{ftadxze=ebgNRkWLC4zi1j9wKKTzquSeOwJU} zjUFLqMSJM4MRsD*qnI5%hBrogF(=xGH%0sL=I8(}iVos!(IL!>9>+VQ2{C52=&%^y zj1(PCUMgG`9YOO@bRC;hX?3>J0cs;G>s zqdxleQHA^>G8aVy1Md#tJ=zRP*nvDmdIrx2a0e%-gzO7iKk8ay*r%Q@p?tH@^w$Hi8Y6Ju-ejM!R~V(U1^A@s-A)A)q$ zSRK7bm>SzauLzy7dU}`88*8AKg?g-!Y{oXC5!-~3*k%mHwqQ866{p6wp&i?f@mLea zVmr`^?ZjxT8Pj4dcu{N@rpI>U#j#eL8EfO`UM{>ewufdqa$hLcPM#*55$mA23>nd} zz2qy9@fhpG%-BA>I<_CLi5m9Z3jIwtW9HOTc*%!#!zH_fxc=VCI=D&dPUA9;OD z!B=AetdFVqT1>}=n1L_HOstDp_)08>8)7y##?tWhSUT>AO~Vgj)A5Jc4D5={#O~NE z{4q8ge~Qh)-(wm4N%~@$hJ=HuV7Y#fT^;9zV4{u5h>|Hc;a z49AhxIldSZ;<+@#;(6o~g(t=H$tTB`;D~quo)Ry_GviC~?D#TFiWlL8crl(6FTr!; zr8p^Gh8M=mF(qDsj(8*? zFBe`B-$cGLz8UAlw{SEgzLk8H@ap(Ba%Oxx{k8EXau)Jw%=ixST;aUG(JRLfvkY>z#r5$-tc#Ds#`t)i=XK$$@g$mhVMBZZ{cFhGgLpFe4P@<$PsB~} zN%&@bGQJg0!L4x#o8wN-Y>B(c9|=E>%QSoAKANwDt#O6?Sv)}B9#_d<2zSMGnooos zafAL#;pcIa+!nVu`e{5y-Ywh{x5@kBY4}Y%9lwrG!_N40&ipk#gWMzhDL#{YC_an+ zm-uY*5#hJ-IW+r)-SG_iAB8`}GwHjKl{B7(|BKJ1IT)Wu{$BW9d_K(qWSxy?V_!T6 z|A;TZqw$5<8()OK#~0(VcrN}H&%^$BK93!UFCqUW{5xJi{x@Doe;k=5?4{%c;ZS@T z%|F7E?IQAUyBJThOK^-`%9*DlGlpG;qwI2;Q;|EUb_Mw~WG%KU@l3l4$Jxv2lk95p z*}`+|6*Q8)l4c6>xof+Ie4+4syOw5>aI(FM{sQ57_G1uwOC;U)HNyxeZZ%j`CsY45=qb~|2Sci=30FJ5VP;v9P)&bIgCRrUeQun*$Z zb{A&Z-FU5i2(Pyf<9z!Ff72W79&)xY$39A4WFMoy6`6(XUh>VzoMZQqZxP;R_tPv! z?l#y1Xm9>N0qI4-dhrZU6W!|-lJpmuLld;;Kh)>#+aGgDw^It?}9yiSO8M+-A$T-S*+Twu0~30nXfEtK|2EO}0+nX&d-~ZQ_Tvh0S&hTWlLYveWQm zJDtbwLUzUWG;Fn}<7f5^Y_n(L=k_el*@IlI+q3Ztdk%hSXJCh&iC@`S__aNkGdq#1 zdwU-4v*+VCb~gTC=Ww)3c)(sj^PTWpdm;UP;URkw{ZGi)w-=MY7yfAH(sUy;iJgas z?R@;7y##yg0{q!7#9!>C_=mlW^ZSIy>>`@qgumOx^u5BQsU`Gh3s0F^Nk ziOd*wIr%T-w<@MqkWWS4Rk16{e3W|AbyB$=5cnIuUv$?W{P&adlS=Q`(H z=j>e9Ih)MPWHNmwlSxf7NixaI%w%SgWM2DC;XgWZ@K&Y4w(tD9y{VCKWZ-sFl;?lPltHc)HkcOC z>=3?Z%A~Is)|s;C-$kaSDI1$iIrxETF*cfVdGsUG5^@W&k22+vKN0RUEhX+yHf2K>`hf_5Gs-p=1X##~E2O?axgj%Ktl)?812itu!E19_~u5zjC; z;W%?Mo@H*q3FcOuXx@oun%i)^xgF0oci?36ZamMt2d9`j@qF`Mj5F`UbIe^h$=r?S zntSj9^L~ssAHW3jK}<3q;$L;8`7n8=aJKmfd9L{={k6y|&U}n~4Kh{C$MHJz3B1AF zi^=9byx!c83(Ny}lX;N!DaZ^l58=(`VKkdZ&}5FWFeS{f=rxZ<)jS5%%wsWZ9*4J> z$78m60^Vbuh!2_L@CoxIe9Al-pEFOv7tHbavN-`?GbiF(=BfCuc^ZCTo{qcBGqA&) zWMS8he7%`xV!L@3?l#Y+{~Y@la} zcV;twZ?@tAvxEoD4*bFF!b4^me=;k0+^q6<{f>NiXrItnH%PpChWXZxSEZI2Il7m-T7UL{SE?#9>g0n4oc(r9I z&avdLd!b5$+8|( zEF1WDnk*&cRN>8*jbw{u6TKDrO0blY9hNe(UFflt(&16nR3=xax5|-Eu+aJ!tvHIG-nFqtYhi> zEaPbY6i&2`r#VO1Z<#>9IK!HPUP#; zs^MMM5Z-4EnnA}q3I(mx_xWzC{lDO_#MCKp?CaE)~_ zK5Nazjn*ajoHY+OS(jqDHJ@jA5xKXqF2m=o1z2WXPX7Y(m252}R|%`FD`;L7zHD7d z-fS)6(KoEC$y_%p|brZP**;iOg$!*99%UVX>gY0Ll<>a@Kscx;ndTS-kd&sNFx|#g0wTfIP zY_L|->_E@ zK!2CeuuY_o2y<+4^mib?bNWP;5zLRp_zJB;RA3g&DTl_@-?RYqlY`g|@l) znQb0^ZJUpu+mi7^+XCEWTZrwp6#UediXApHw%DxrjZMNYZ4Ug_=E829j9oSb>uf5% zYx859O~X%YA^g}D#vYr2J8e;HwPoOL+aheTW#ap`Ed0)vjrF!1Y_u)L23sz^XIp|h zYjRpvDsFL`)n)lE89xkYb(M-w$=PE@Ds9Uwyh!mh1?j} zipjqsI~?0u^6$b^q;)hg!jrc3^ux$b+qQxHC-VKsRzm(4*~8m5l7A8YZQDfCk1?Zu zw3U(%3jec}(TpH_En7MH2V^&Ht04b_?5u2+3lbZ2jsRb{RS}{@Di3w60 zUMjWYWl{%DmUiPM(jJVLI`KSdFMs0|(mryMaJJM%b2aknmb%H;A+KnuhkUK@N@+jM zOyMl)0R2_MYovqpbAeyMP=G==6)IW;ZIUE z{bA&`L8>7i62{uM(3~PX-M*E6EV4tkZzGQpekX0G=|LuyR7?I3Is4n|$fpXsrFxog zk@+b#kbgxcp43SG8=0k26CRM7@eF$lo{(Dc7ilN{EVbbgsT~KU4!qpH8;7Mmcv9-b zKc&6+o3symr7rwK>c-!t9y})P=kL1Get@)BhdlFu2pNaGAvv96`wmoK)VV^_Rk<+DpE;&tji+vtB!#*D)_GC=AFTkjM zAuDgQr;sy+ci28NOgI;Caf0 z753#cFJjE7N_!#sCE+Xf6*N`IDZ{>!TqfLXFQR!___}>H`BnQGtg#p4YxcERZC{65 z?CWv6eFHYyOK^vMBfe|jg!T4Pth1Nl`}T5t$6kR=_DZa^Z^pOnRoGy!#`o+sxYfP| z->`4Rx9r<+n|(XJX|Ls9_^G{)+%9ak*VB9`{K(!w-y;0j-bik>H({H-8F$%R@DqD0 z?zHd31NJuj!QRd@d~fd{???WN;r89+9^n!D9`Y~tPWnOnUh+S}f9?BdhJ?fRF8Y(g z|LooLBf?W0J@hfc(T@G}rwIq_2k8Gs-q)}nB>yh_!+waSSJ-DiO#i3wSNjqAW5VP1 zqx8QCV;#rnPenfC;W$n{UD$6wLGzbztfQAa-qD9=I{I;(V*t-^4B{xq5T4~2#)};z zJi}CByd%cJ9t?Rm#}P|DPk5nYG))4s`*MsSPeJxwjdK3dc;G>6nFA zI%ebLjyag*n2WO<^DxyhpMQ@DnM;mj@=eGzb1WcRkeTUNNakbvc!MK_CRv!`NTuOz ze;SX&jCO|=tquuo4hK3NE|eTHx*Q5R94ZDKe*SDos5vy60P@p?ju6==3_HT)G>3t@ zBZ_x9GFX#~?1dbQ$eF?{M<&f}!fZzt`F2M(-s#A}#g4_8$QCu*Fe9 z{~_}3u%nXvo^Y3AGx;+|6@Kcd#@&t@Y{T3f z&W^xq+$&~UVpzZd@O*hxO@Xv1F| z?Rdn|fj>ERv+}rO5BWD_FX8AU_X~e@?4>y-{L8VAzE3#d=%W7znFfw-JmKiUUdMj? z!*KxrbR5K!jzc))IE;giBlxf5D2{R-;~8R*-I4P+IaWB@d4lFt;c3oZ`Z2;0M<4xv z$eGL8PacolMmh(`6NINb2gzfdLpaVkjAuAU@Jwfnlk=1_7SD5z#)-}`ILSE{&vlN& zIOljg$2q~t&&oL`lBWpcopIzu=Onz?IT14Na2EB~zYMe>9z&R6dbk4%towM;a=N!y-&c!U}JiNs@9~U{3G1IvK zZ*?xjJZB2ecCYYmXDUrD@-t#iGkGa;H|VsIbA*eX63t!6yO2%?`5t6n;dJ4BP8su^ z3O?XeahcPP1x^iLa)wx6iJV!SVRE5xqtl>y2Kg@{IiuvKk)Qu^W{{r}KI>dWvk7^f zIy1@Zh2_pHniqtxIJ4=igzKC+^iK#McP^%1E8OhNrGHuYqH_s-1@h@KXCAp2*%dgK zlFN`&k~5#YM!4F!jOG#HbIt<#Qem}oIsL1`hn;XD$6V$VtapNB&y)m9w5^ zFLHu#Hjul8oz6y@FOl7avx)ozG8vrBM{Y&ViOw!^i*Tp2 zo8}W_@;H0&H|Ksl?mU2_TnBN`c?eH9591%sBlxfLDE2y!;YsIl{Lgs;|8(}^h_es- zoc%cD9KgSvgZPhg2>YGG__uQe2b?i3&Oy#t9CnVz7}pp)#WfaBb&YdzYD0cT*fkzc zb4{Q*-8GRsMmWwDM{_1Jom`V}qH8kEImjGyO(CBxJj)eNGhTR}D}fy6O2kR7sd%ny z8Ya4?{?8-LimU)m%P%o1dCjGxXQH@SG)4@QP(p5)EZ&2 ztAOS);p495^lOoM^`-XPrQDkg7ot;J_u z>+l8Fde)Q+D_k3BUPNY^tAzZ#@Fmwq^2@GGSm`RoS6yYSsYYgntDIbeOcGZGxmLKv zRY~(Y#*EtP+Dv`}xubSfk>3=)<*KIHj!Yg`4Y>}PZ>}xmdSqU?wqk>88-C#0jyqhn z*yyUm_g(ea;8*Kt<D!hjGLd(cgMQfjR>c>N7Gz@yo%jpFy1|u<`VZf@>JwE_PEEB zr(w*fi`^5*iNXZ;M4F3`bBa3-=eZ~0b?(V{t$Pa2b;q;j26qBE8970?6UhsNDekE> zHzVf`_cZcN$gA5u9WCw|XmTfEs(U7n+T63qR^&DAo=uj74)+|g(><47anB=rgl_kI z8X39UaVMkdUVuLLLV7=PvT&!M;ZCKAAUC>hGg(Jo`)(^n-4acv+d;lnc$?crlZEV* z+%n$oR`5=@O21f`o{-RrT=y@8eQ3g2;;(9{awb8jTqyEowucPVQcg-z}yM>kCA@?EfR`N0TPV%qFG;p_(e-r-hZl^hc z%mjA_xfhuR?%m`*VZVD1&0oUr-JSFYga_Sw>3u1F7jb_H~A;w&+Zl4p`{6y6}uqDdB7 z<=JGnJO^cYE_&p7sL1otD<`8WFF>2T5G6SU?Q$ymWHUNsD>`KfU9tlMY*Y9I5pr81 z%j6I;wPXduvWijJPoFM~$Qq3y%#cImTjVg_DjTfH6y7dJX|jabat8Shc@gHwnRut1 zg-hgY*58BNoX9!kyO3RwyqJ79GO6TT%#)Yky>cG@PhQHS`N(Nb&L=Mu7RbwJ?nmy5 zZ;tx8ZB@c6?o~<-75D#}gd_k=s-W|{_Jv)n>%l3Vcuc_(W=mfOg!!WOxm<|AY(${plSkjW|U z#x{8m?vgw4GkGt5BkyBPH!{uSF7kKCen##lpAa6GduV<`=83$Y{EP5s`2fuk;bHk8 z{ZGhrk`Ix8MCPG%P`+l zfcJZr^JoDwmpp~!Wys#ivjQLRtfX1tDI!0FOc>8<^25R+&l>V7Pcc5?S<9oVk%{D4 zM_z->9M5_z_H3Ye%2PsKkDRkS8_64lC7w+*&mfb^Q%Zh9_@t+dW}R@8r=0wprvgho zmAKKf8K3o3vHk^5HMvaqyr+g-;n{*)JX?8mn`ayOP2_Cl*-m~#xZP7re#=vb?|ABY zv`$#>X`p#m*x+d-zvpSfMo%+q-bW^kr-j_=X(fLo{J^u5rWrX^dD_S=$ooW|cKq1W zfjd3B>34bdklTdqo=%z$&t95Og`au$(d_Yb(R?oa!qZLe^z_hwiR{5V`*EM=0L|CP zSH@-)YFH* zdHV6VXMmNzBeyr6LHxrrMAM5*B+oGRc}8gdLMDDrS0qumdfM zmBuWzDH7SLIOrXUi)yMGR9Q>E2ALSjI($-Dk54EY=$}$b$m@k0l#S%4l}+>|$jMGAC2vILiBg7}lyaI< zrGosN@Oh<@rd-)f^Mde2rHcHDQcYil>}r%6a%sl&IFdYbLXy^zv?wMrw+JID!9X(GR;G?VLv4N415qtZ&VL-@Y3ll+0wM&FD~ zA*G%Ch0;OZBWzQ4)9ey{qU@pHiTosm(n;<>&X3Aoa=UP^vXAB~WZEcQ&GuDM#@KiS@FN zLe7=SX!4)PUQQW9{$2Q!GM45rvQJaSkq;r$Ng0p-Did%>nTRKqI2=|cVT^Y&p5mQ? zqrCC>pOS$8D2X_zOvPC5G@Rg_ju&}nV7xa8FZIskZ<#Kf;hjZu8S>vK_s%9?B24nm zAz$I0iKhJ9>Un{)MYo(cw z%qy=%P8KfoI%sYb-sE-BrwA8#W%?V04zEJ*6neZWy^MTj*y|^|keev4MwWzDZ-~Yw zw0OhxW})ge=zYj1k-Sk1cr#G*F2ayE6Vtp|81!bN?#;n$?_#{oo6DbF;$1?%8<|Vq zJn~)06!I=5{|}iz-hA@C!h5{SX!4N#kGB8|yvy+cZz102U4hHID_Qf9w}@OQe9*g^ zyu!PN{t<66xk$LuyOw5^@Nw@t`eNZ4?|S;jkeh1n2J)lGbn=$qlirQE-n$9cdQ0&M zZy7%AEoWs3vODrt;4|JznoZu#EHA2 zB-bPNSKc;qov_KYw~uG-$%}9-reLK$b9hb!H>M1*y`Pj&E9?Zp|^`QZQgG3 zC&HcH9`Y{le*DyXfJZx!Gn)4xd5`xH`E%hH-oxZCy+`QxA~)6EqvS5(KJPJ_uY}#+ zC-56@FKhOD`^eu3zxVc&fA9{_9~2(;4$}N2{Lwo^e+YR$&O401ct`MOZ;Z;B z&Ks*Td5~G;9ZmjC__ucq&46&oJC^=mw%kFYiS9e&Gpk z9R2UYKfIIZdxeAE$@KpS$EZ`tr>OB5t0v&7Y9fwSr{Y+38lIs}$J5mrc$%7oqtuxg zqt3!J)!97rc;N(f4$WD}j!2zLJ|Fq?jyjKgq3~jLKFw5QvZ=}BMByZL0nNF{&PrWK zJ`dT0sVU^Mk-IWAm3$8JUl>=- zYIunn!f9%lXPd1WnD>N2#d1t_V@(XJMvO{*Pvf5rVk+VP+g0Lx{fA-?A+A#WL=o1ZlDPXqiP8`UEPQo>Ly&Ima_6z zZu;U;w_{d2-+)i(N#$gPyxPA(OesU0*gAm>4KH~A&xo=V+Aei509YA0@1_tI3U z`^c{#^HA*~zlQv_8MT|dRk%g%A-|#Sr+-^LK;ACgrXD1}r5?gs^)SAx9$`&`dX)U0 zuueTj-k~1HchnPDul8b#+Q-U|kXwDVADh(y{6HPVR&@xQ)M5Nk9l?*)7$5Ucjm0)~ zG=8d%@i7&VnW>J&&(v|aQyq`(>IB@UPGrs3$Zk-L!@cSx{8F8ao$3_qQseOpH37d; z6R}&Jia)8-@Q^y4XXsI9kiQlFpeE5AM0QH*O!9tp7Wq5j_v&n#1IVWl)H&qi>Rj?~ z!e7;SG{=M|)cN$kBfC2_nf#0Jh`NCMr@9b()fD_gO~pRd%*uY%O8yI(tExo)TR5yb zX#NwPR9*B#!Vy&_pXyUE#;3C86l6mB{5Z;|(VXE6k;e+h_`>8feFl#6Me%fB25Zjo zEh0}8PV!~aoF_cnmqkATIam6!$#KY>^yQE*MCPY&G5LJqMZR2`L}cRmmXPC-3Fgbg zX}+a6)t8SK`AnWmWC$1e8fk73-s)>2XZo6XG|SgQzD@Xmua$hiZzp|$Fx%HgbGz_9 zUpxIWVZN_}{(s0G(zly@ukdc)9-1Y{ryYEqY>gyseM();p z-MHGs>m@&h z+~@oH$WI{WSzkZ-8Du}{8z4U|eAYKevq@O$8=`+s_`GkJzD&5*H$wk7vcvSn_}OhD z=Wbst`7z;(zR~0g-x#d%jm6h|RmA*;%l5a9@_D#W;eew9V zFM(&S6>jq-(!7bBg?&@WZy`HU-!$?Y!gqYr$?y7RV4W`s>wPn^!8ePQJCHr6Z#MZu z-yCu?vKRHuB{vCMeDla3`R3EN`I5<>AV0_ITR{F;xXZVY-0n-E|J;{K-Yx9#nQ1;l zrl`+~U-%?E;d9XcflMc#i~N`HPoGTFi@bN>Q^-BSexFM7mCsMJ7rEK0%t92@ z3YmERV)B*3EBtF|l7zGU>*%jWc8~t`G|-$cIC zUy9lOGQ8bij#>T+yu)9Knf}dqo4*Qk{MC4?zXsF&TQI}F6>srx!-#)7M*X$8#9xPZ z`|EL$zX9*^H)5{82^agD`S;xKZy_&3KIhonI?b2JeDKd8e}PO7e-im~WbfpkN$x>*T>e?)Z-ig_XVdHx?)T53 z{~nnS{<-9@ke!u(9v<+|$8LWze&%0*eg1_w;7`GS{Hget-;Di!EB@`5@DINOd;Ko_ z(=X!*zkJ$I=m~5?Ik27QTokA!--7%`lt3LhB77=P zPqP8pu>=~(`NEt)Bh4Mcdjd`LdB}VVG?N!2yR1M9IV{Wyw9?!ryfv_sK2w+xXroU@ zehxR#PQG3EbfAN#1ldysc9RQ)O9Fdn?nZV~fll&$!g~XIX_g9C2lmlFBGdz2^oB4u z&`p0Aa;qQcAwMd7D6pSg6gYq@0|)WJz#&`_IE;mXBe*JX6dw*8!{veF_*mcs76*Fq zfj}QV7wG4iONE;P12oSfyQaV(`59qFV2J!uU>IKvjNm(g7>)T8h{c+~Xsi#6!Jfca z+!h#zuLs8CtAPo)ComB!197-HFbTg2OvW97DfnR^9@_&6*c3>_*1%N!Brpv>3rxrD zff@K#APKhyX5wpsS-2%I8@~+9!IuMb@s+?ld?PR)s{_gSc3=VS3oOLiKnhj`QZ@Di z0W8@j|5!g-vct92q^eRK*i$$KkEkr8u=gO6cz}P z{}%og2-EZ zBIh+Nha7`Uv%q3c&S!|S7@towzdY7v|^m4t;MUfb$Ge99%pJBaE4ZbS85x1 z{u{JS?s6*O~@9g$W^o+q5EZKk;vIkjn3C~4Jb z*J{wFZ9$i|72Vo4bZFbrsnznQLRuX;C=6)zG@8(_HPHKz-`b=#lD$HY)$mhp;<00)Q*zZXvgRu6F#CHrzt{y zW>z~vULjnm_0p_DPGnji`B7x&qxIu@Z2+It2JtCv2%px5@i}dTm8C-dUkoxmgwJTP zL1qYY8?TMVGHndLppC_HZ5&o><5}|>@_N)JkY7cnhc=P?mhfdQj;0d%eW%(a@@C{` z<+RD<8st_=n?l}-{5+i&Pu?P|&=P1~627A)($^xlRoYbYc456XjohS7#}Bj__`a5e z4cbh6Pn(6!+HBmR&A~=(F4k%D@Lg>_&-SsFOl}pnXbWgQLiR=4Li|Kaq3O_4$)6&> z1xPcKcOk#?N3)VY6Mm^l^G?o5q;a8fUey^}c)9AlL zCYTn&16mk=&MNn)xniCvymN3u!uYh zxj7H6CSNQ}3a+8K0+}1ZV)Es}%YtiZrVGywuA`qQ92Z>m^cNsE{J~Q4naI=)mXS{vo)#>p8H3E{UVXy^l!B)I6 zxDzeGHgpBs`P<#dUMSc>_62v7RiQVyhpYuVF)g?kZwc;WO;)grd>gWp33iij73Kze z$ae?#V_xt8kKT(+nBYNN7Cc0Azwo}`VVZp5ir^9Q!@;9GS`<7+UWI)2DR`Xx2(n`d zo*+LeEDrXP9}o87W5IrWA~?XBb;xW94&qb6A({=slHf4S)5s(Vj*y=b^8Z$d$rFsl zXM>~h`QR8V3y#GXg5$6}I6lNY2~Hqa3113Mq^U$EPcRN&4ooesBgh1(WcD;7n`|&f=NdgR{xIgdYdz(Ciep2Ita$B>W^e zkG>6g)d%O}r@>_G2rj_g!G*Xtn8KQ`kU0=cC4VXWB50=BBit9X(tnLiiJ*jCK?i;l zbm4)Z%%eXDe+nuzhlB@%D*cbh?j`8Q-+~$*4~DQe7{)(?2L2w5;vc~b)(-?1k^e^a zEx}CkzsPPUm_`0aI4YD)9tq~)f5F8(dU`0AJO(*2g_e*<3&)1?XwE=hO`)ZDb|@du z3N6D4p#mO_3oR#~BRn@$NHYn!D-Nw7PZ3TIt)w|mctNO$J{~zeg;tXjkiAD}4bBP` z1XeYWuZK#IY(G%)GCA1s8p*`pib@DGULVL-&FdEuNlPmp+PJO4e<=m2p!Ad!2_<4}Xe!o+reQ;9I?uL4I1-vc^Pey^Es1PPn~7Ozv+(w`*_fR+2k%Im zi#ciY@XoaPn46Z2cc(4DyV4foJ!vVJmzIk6rkOE6&5HM>Nw_S{f%m7mupmvw2htQ= zo~Gj3G(SF-rs0OP5I&t2#*#DxpGk}2#_=YX;Xbm0Oonhj z*&&p|12i_|-ShAu*^T_(v+xkvDGY~)X>{b>^Y92cf}CH%F=1wc@V;Un`Yhzk5*|m+My5n~Jb95YGdzLjHstF+Jdu1S^7S8%Bi}8&Cp?K} ziEwdvGW}i1S9^F07KGz*c{l+d3@7sFs_<0uN?}oW8qFiZ72)ah4+$R*&mb3vlW=u- zCO#UTg^!14!wb$F`29!KjN@HD*y$LJgJbbS+!)k|@*Pv71f|9-!WqliZ_3aqaYf;zhFsj$%EqViH>Wz52-h?@NGv1}Q;Jtb)F41?Q zPj5p_Z^wMS1Mky!<1&2@-miCJfxZ_X(D&hTy$c`IyRlI3!H4wyxI#aG594&jMKZ1|wM{%`&3?J2x;~M=0uGM?-F})9q^?rO@AHXN{L0qQ~;gk9>uGdHKDLqDK z+Uv3Sv_2Y3^fCC1J{C9X67sVeF~QA@%W;ifE9Wo zzNAmZSM+IEsZYn3^%=NXPr@pFCcdiA!fJgszNXK?8htLluFu0Q`h0vtPsXkK0(?_n zh}-lOd`nNo?YbG?)~#5pOZblNz&hQ9@9Hwv>k7W7tJt9Xafhy9qaMQd^)NQ+27aJN zv02Z+5A{XZqG#eqdKR|o+4!-ZgFE%b_=%p2ZTb@2rRQP0z7#*z^RYu;hM(yLxLaS2 zpX-IVM_++o=qs^PFTyYN)wow*gJ0>zxKCe;U+e3zOJ9%Q=o_$GFTrp1jo71a!teA_ z{9Z4^19~~`*DLS`y%K-aH{&6_3J>blcv!E&pY<*HlfD&?=-cq9z8!znYw;Jo4v*>e z_?zB<$Mr`1U2nn@dNcl^w_vZ{iht@mu}^Qqzw~zO*E{fUeK!v1d+;B<69@IZ_^-YX zhx9HysdwYB-h=#iES_VG#yDdPo@d$7#k4ywpg->BdaF%$S8U zjM;d(F$a^3xp;*!4`&+l@k%2ZXBi9dDr2F+ZKsh!P8MEgq|(e6UTc`?=L+W;R`T_R zgbNG@x(ydAWueQEX`IOSeM2GJg*HQ_k%U&mPj3<4Y-seU$R5K8q1gyy)G+W)BZ`ZS z41CO3ghfUs>mL!WGO}n^3Rf7}^baEw&&VM^Bz(|VOtV~AVC2$2AiUpLLca{zMHqSH zrNVq;DfvDlAKx^V;d4d-Yf6RB7|Ur&gk?q{{R_yPF;qeoN^q005o?T1__|Sw&l_d_p~?Q9*7MwiuN(9|}J(Hq$pFbIGW}Mxz>=j2hf!Y{Acst@wqpjg_6q^f0!Q_abw~ zsKq@-9e!oh)9*tjiP1prLMDmPh}}jLerq&ikI{nP8LhbA*oog8ZTN%Hjz1b5c*xj| zKN)-Qu+fP>8+-AHu@8SSy6{({8;==1_?xjGj~fT@cjF*`d#`bb{D<&Q<1o3;I70sy zGBJ#!__uM4W&oKO#&H}pPT;>rFAf=fc+%*{5o3Urqap+3n8+ZW5*fnS$T0n>!qXxn zG^2%MA~6x}6Obtpi6x&QJTo$yW}GlFGKPG9WGs(PLFPbY9QizCK19Zo&lOIHOrSYS zcy?qWd153E&xuUJ$&tx;L1YTXN8)i-Bmr-TB%(Dk6}^#Zm>!vqxse&TGLppeuM$2I znMqS5TpgK3|0wdkJ~Es981h{{GKc&)^4&i&7uQAR(L9NK-;d14^^s(n4Uq-pr-V;O z7SfamH%3zEpFuvq6iFpND||j;rYS>SSrIF_RJbi7(Y%R#f+*r3zae}*;-cAtd>@a< zGm4M;6n6Ap9_rOW%UL5+h5jJ`N33DF2(M$6|c?XuKqS3{FcQiFRC@>vMvyq`XqoGLV@PoXghE$Q*}R^$|)oN*#&Ss_dYiy5C|b*BtbS|6NE6`d)7MZmL%>y>#DWZy+_^FS*_c; zwJIVgYOPo+?p3w!s&&^r-rt*lzMu0sInO%5%jE*{Ab%7-%pZ+U^T)E*GvsbLe?0LE zkN@RQB=ZvaetrIA;tw9*Ez#d^mfi9);NFQRV{LraLz%sa~>HljsR=`_8_r*dBRobqw~&cMerLqFjo9un#kqq_Dsq?W+(n%1G2QtqnerYp zoO{VTkSFBM0?cw2VuG`Xd?Iq^>^w*u@6qNgArp%{fp;Du&h=Qq`5T#v9xFS4CtnHq zZkMx^xS_}T&OgXB@L13JC;7U_Z}mFMh#Prq>^wuJ3G(m7c@CR7FJNuwCGvHU`(fu5 z;#$aa2IpVIHIS$D&g;ajkf*iIzlr-H|FWF7h+W8CwDS&ezQ^{?dt};q?Be`~d{^Z8 zgYzMAXOA77|B`Wg?B;wzzPrbs&S&I%cLD+k^D%H!=0bW4?}*N*eT`nyu#yTr^x4i!{a2Un*2nMQ=J;}(>zXadXpcI-2Xdu z#A7{nfnMk}HxiUDDiFYD* z8qQSQ?Mx%H!I@6H-s4)QgUmYQ-o}|lyau_3ICF>#kh^zh9&sUZ*Ws*4T!eg9a#kij ziF~$lRwX`xd=_(7Cq9l`XPh;OPkB7;tWBoO;~8gN;u9xprF5I=Rc!za!T_}J;hznpIBuOVOKJ3HZZ zXBRRzkS7VwZg|t#gUl`Dy65agd__~M$A``VWFB}7bPXaOKaNu6uH{Ch7*S%cPy?E#1`Z$Zr4aG=Nd)E$2FSR+oQ%cmW&p;9=gU8dwG24 zoJi)aN8y@GUh(+JIhFiJ zpNL%9T-%6k9k6Y9yZ$2n(qj|XbuvwnE2ryk;^rRPxNebY?XiXH4)Is6d%W5bxxTsn!B(z^*wOVb zc5*$zwytN?v_tMNT`#b`>pwCbko!s3Yhowz9WmEi;sGA}xZacL?XjopBl%t)d$>N6 z@9wd$OLB63_BhfdoIIOF?p|DK;vpV~xin;kdmQ2NCjX7c?_4_aqmX+Wmmf}a`Qvz3 z08Vh3aGEO!r@BILvde-~T%q`bD~z$TJiwaEU7&SGpY3uR^Ykt}No8JT7&wc*gY=nbXKq3s)=RvmVd8+K{>6@rtV*`O6+}xH=I3?Q-IEmm43t zI^iQ%7kuFAhX1*G;7eC8eDCUm?_B-xqiX;v?m_6|9*jEoQ1o>V#~?SK_f)a&k;E~` zZ(+Dc5r=t@nRvnS2KF@7+C>*zPgOJ)KOV z$29j$^5v21hWiK1bkD&o_dKlVUVxR{i?FhLF*a~7#rp2$*x3COe(7F?E!?Y_r#bR3 z%e@xAa<9iW?v2>W{R_5qZ$YPf8@6-rpuR2g@5sFiUG85o-@O+*xC_wjF2s)RBJANl zh&|mU*vowc2f2U4G49`)XQsQ9c$UW*?mx&(M?Ui1f8qjn8JYPW7rM`oS>$n^`yBbX z$n!M!1)Sr)MCKRw72?evH@W{J-s!%M``mxyLH8|cicwY-x$oeg?t5fTB3}=>|G`rC zL;S=2FP?Be!7}$VYEHXf5TEgQ&ix;mv&j9t`!(@J_gmsi93Re`Diw5ozISY<)8Dh$i1qEtFntSXtR1Xa4qpvq9?V0l$V#?(^P z#yYC{jQLX42%D*zViVO@st{ERRU2l?S9L&_%B_k~eXAO*vZ>~(#^XZOWSpj&jp$~ zlH@w7YmypIOWt@^@{_+*b(OoIOYVUkjsxW%aELq)hslfNCaQ7rQXC`ygx|`mae}-aC&|Cyck(v;Ufw0QQSFyY@sRu{ z?vc;nVfg~?lds?b`8pQMx8$~}WAZ<8d(}z#Upys0lk-&<<^S-!{8sLzDkmaDFO^Zm zph3iAph(7Gk%ngBK&!~Xa8VKUqN*6Asvz26J<$Ox2{%>|T`*hpz-poo)(``*mKcn= zVmQ_jBgJ5qOZ4R=>ZJ(6cb@nS`RS@xA`CxKKV9{K z`su2t!baw?NW@1X6`zZAWv0rgR7R`vQOs18Q{JLMsZB<&)W<-j5e6#~niaJ&NA;yL z0P87(v5qnvn<*o)g)$nyP{v~eWimEVrYrMR!<41?z48-|QC8zPWj#(%e!-Q>Hr%T0 z!f%wlI8Z6X8OlMNr5wT8%I`Q=`2*)GWw=l|hd(NpaEbC4ey#kCQ-^?cPjMU5L2Z``E#;btWOCn-TVO|f8aB@Fv2QP^LxsTZh@ zDv7vTNyR-%I_^`laKDm=2b9WKtW?KCN^Lx>)W@AlBlTj{eWfYhRldRpN*jEnbikX6 z8?Px{@P^U@uPS};wlYAyO!Y|_iSLxr_(mCzAC$@J6)J;z9_rPL&{w?_ebhgxSE}OF z+b~+a3uD!LF+p93N$P_bsXn4!t*W6uhn3Wqu$uZWtfKxKYpL&G1@%Abb*j#4Z?AQ# zfoeY-rVhZK>LBc`wqRd%81`33;n!*#4pAp!S9L0OSEu8*>MZBF%~IFL z8R|wjMcovqslW32MYT!Y2e+yR;CA(3+^HUp8`L9lw|X@0QIE%c>dClSJssDnfAHF> z`lLRGfnJv|*y}Ged;N`y*B!Ka{e$Ja{zaA7GnBplLoctlsP+1YK3SvgTKn%d0-N_G*M}y_#ZsudguQs|~jF>VO@++}PQx3wHJDp($3K z^7<1`d!50vUKjAZ*A=|zbsaBz-NCC~5AmAUGrZyT8gF`i#M@qywpex7OO5xvyzzmT zAD;9Iz!P3U+JmYTzN zn%WqtsgKc`M)<+2DL(f43ZHtl!RKBb@THd<-*|PwcV0bE(ey!I%^*~1hNG+*iJ!d2 zqL*eOYBkf*M>9uTqDs&#(jHM|YF1&kW-aDwHe!Zmi}rU_HO(&VAF3IeKXJb146f8% zz@If&aDwJKPSV`MDVlpYP4f_EX`bM0%?q5Xd5sG-@9{^?XI!EY-hZf;X*9S(qw_wg zI;`=>0~!-<*M#6YO(<^AMBpY(3>ItR@sK7NPioR|v&Mm2H92@xQxT78s^W1?O+2Bg zi#s(9akr*1?$I>IeVSIdU(?R}yh^3*hA%a}P}UB>SDL~2Ml%B6X-4A*&3OEzne2T@ z)n2<8yK0wXPwgt~tzCIc%c6gw3>nVGHfw*iw53TWkNpw%UKOlJ*(qYyU%+_APeQe#FjN$>)md zTkUA?E2?pv<%(*Ub})XU9f3o%z3@Bjc>G>F8OLz;YpP?~2%l@J$J!Wts*T6z+GKpG zO~Y4O2fpE4*HnkJdBlgcmGP*yI^NgT#^c)hctYC9U-qa4q+uD(MS34RXXvgCt?PQ-DD#d#qMtd(pFYl$O_5KNc zyjP>I_j=TO|AGeZZD{n~g@N9CG1$8h&E5ym>U{*udH;^#-hW`EcbU(9)dugXy8EiF z-ZgQVcU@fJ-4IuLH^!g6o8ubqR=Cc)9d7b=;%4tox<{(3-lOn__gK8?JrS>YPt`qE zJ@=l854`8#OYa5v$a^t9_Fj%py;td;suZ8~=G1`|L$8pF-679Mru~ z1^WD^`%h)|DaB}?Khf%Q2Fv+ez;K@{80m9e_g+=Y=b7%as;iI2_p_?Mj}H6#_~S4i z6L$6q!R|hx*wZHhd;7#-N1u3f`6S~&pEUg1$ALq9a(q?Nw>}l|8=tDavNX=8E{^eO z=&MLme46@drFA~taI;S@+~m^_SNaUXpM8en8lMrk!Dkfi^cjm=eJ0{|pQ*my(r%xb zzB*~Y&ph1cvj`9PEcNx1j{21Q*&71db&1#DN+la8(ZqS z_@zoNT@P%p>x22a0oYkL7(42QV_V%w?5Z1$-F4&r%1eE9ll{`AfgbzoX8Jj#A-Xw! znbHK^0-U8=jNj;%<1pPS{8qOXzte5R?{!;njBW>x)BTE*bOks?cTQwV({u-kXXuXL zY~AmE+0p^sb=Ao%tKT%VGKNKWT_Pym-K~j9LqnGbJ)cQWem#k7jdc%qp zq<5@dLHfY_6{J_JTS0oDYfSt|*Bl?~TH#Y&JABT5DogczN9!v~wS3289pB0LrSEiX z;`;-(@STS(eHUSC-=$c?_a|)TyBe$buE%P=zhDF3ZTN-nE`2p=mhTmu>w6t%``*&m zlGgaXz;(W_af9!BeI4n5ueX04X^*cT?(+@6{k}oC+t=dXNP6y@gO7bH;#1$Mc;B}s zzVxk&uY4Qg8{fwG&bK*!@NI>keB0pzUnf5D?Zl5qd-?T1#jg+g_zgf`zrm>Y8;)AP zk^b$ZXus(g>-Pi3`OU-fev8oVw-h7&e!>L5)tKbB9#i~&!EnEA{_Ukqzg<|%Z!gyI zE5v$!2eE=sHNQJp!|xyej?!Gectb~N zpKp`T>X|BAl) z0@Uk^FkD}PM*VLXs4vA}{hw&opFyks0+!QXL9PBedg*VWkN%!vh!m%Ph6(!rFiHQ` zFkH&eO98{B@_Kc^NNI@P8)xhN@H>3~_SOesU%dtU>%(xMJ_^6q+wezyBF@mK;u3v2 zeyh*Ip87oeUSAo<=&R#6eQlheuaA@Tjc|&-DNfUWh2QAg;4FOyoU3=^e0>*OsPBQp z^nC)xNJsTiJl)u@_rnAF04&y9@Q^+X59@mQHp{gbhUe;T&*cNmvTUHvN>S4h46t73Qmn%L97u5qO_ggIAA zU$e?eX&|etl=}NOH~uV5^6!LG{JY@{|6VxFzaP%>AA}S9hZ@&Nhy6$3O8-%~#D6R< z^Ph+-{HNkv|C#u+{~X-lzW@*TFUI-)%dyyh6&~_mi$D5r#D)G_aE<>CT<8BQZt^d{ z&HhEW)xQL{`~QYJ{Y!DT|DU+W{|xT)zkvJwuNXH-UIuT|21zmap=<~+ZI*%!5vDCt zIYSJZ4e@9-B%5|fT@Cf|OG6`UVrYuZ3}0bALmO;q=zy&aZftAlg6$1Gu!W%yx(oxb zqhT<1HVnrGhLM!>T#+!CZ-3^nmuVFg&H2i?Q4f9L|(jmhIyluFGcMaFE*l-IE z8}8vz!$Uk~c!I|bFYtunHJ&uQ$5V#Sc-kNW3#79K4W2jX@S?#VFB?pF)ewT$454_# z5P>%hF@gJ~=zw^v6p)P70@BbYz=6*VIr!305nmaq;u}LvtPoHaKNuR~CqrXY1vE!F zpcN_s?a(X0iQ0fp=o`=t^#Q%m5YP{e0fR6wU?>I$j6ie1D6A4N7T*~rqBUSDmJ67P z;Q@0nGGGD51}w(7faRDFunLm`)?!M)MzjZP!SVq+FeBhs%nT^N?0_Q74JZjLlo|y5 z7FZ%p2>1^t1-!*60UvQ%fE08@njfGGIwma%@DDmJZ4I#CrhqWq5DvUbTptk9tx<9#{%l(;ebX#XQbx=ZhREb1)m1=!21Dx@NvKZyd5wY z?*F7xDgY z-EMu?RmIOYphz zH+*C)#W%)3@tyGuelT7LekSQnS1{N#+54GfH4Q+6=@uEIX*6-5X*~Lx9+EMex_Q5r z>X^JkUQ5+Xeptg4fVE6PA@8NOrX7CorH-a^;=R<_bdb2K=?Hc=EykXv-?6tTmCC-R zbnI`+!hxnd%r`CIRhOv%+navHCZ<)`%(NU^nAT!T(?)D<+Tth6Q%sFQWOy}9aK5PnE;PCEM^hJEV(Nj*Onq>LX#lP?4aT2M!*PviB(5`!#to+NxXCmbH=Cy8 zR?`o--82t(nik=1(^A}H`U%IFR^vF+dYoYT1t*!d;WX1OoMGAt*6Q)1$r0EQvGF`x%rYm@xwS>IS^f&G|-NC!8E97F+Lp)@9f`?5n@TloE zo;AJ4^QO;u(Im`5zHHLqRg(^{nf&pF$z)dKSEdj&1pXAF$Zt$x#E(r;_`qbtr=~=F zWJ*P!z;yHq%tCEo9{L6@V$?fRRpJk(n)u077x`nNCCt{S_0(ffvxb%pmz8m(20)%JK^KNZum5?7rqSahpz$$;hVsr_%3h+ zeh3_ep906CDrh3gK~qr)nu%UPb5I+!0DXcMqi@i1)Ca9XL(p0@25rQ^pe-02v;)mS zzoIp$0LujxVR%ppMh5+c(Ltpc8}ui}1)af!pbMB3bOlp_uA@EZ7M2gXhZ#W+F*E21 zW(U2%+@RN3A?Q6;3i^yyf`m0dt`?-h8bLa&737a~f=pO1Ch2j@M5mt+QoL*Vv z1JqmOV(KmOA?hviVd^dNQR*%7G3qVyte`fypZP8Fm>?&P3+jXug1X_Ppk6p7s2@%X z8iX@~hT@5!5jZ<&6wVDAi}Qmf;=-V*_+!vmR$oH5E%GwDZIM^dZHv5;Zd>G^>9$2) zL$@vRI=XFlzVv%>#6N|iuo>=64^dwQfA9PM6 z%D01#_$A5@g7#Vy<-0+P{Zi#mK}FV7eypkl<=}H7NA4Va-I^nJ48CQpEN>0gg;tig z2m9laU=uD24#5?{p|~y5V=NAC9$HIQLfmK#>4L_P9_SU)2elys&?jUt`i2ZgeaJ{Ogp9_(kntEC zG8xSw(?e^^vDDO-%X?xw`Py>1kOdeXvKS+ot+pJ^Y_;V$=BX_wFi&kci4|+hDa=+! z&Is9vb(o=!oEfqWvl&%K&Sg{`xdQXokt;E_j$DPYb>wP{ts~d)jIG6rE##{qNAP4w zDc%h!!}B5M@M6dnycY5|-Uzver$YY4n;|docF0>i9r78^hN#Q6kS~Ym%C(XogqZMg zhy|a9MBwuf8$Jq2EZ0u9nsYGHToL2URncs&iAmoF={ZooYG@)ztUU;dKW^5rJ%Ctq&He)8oO>?dDt$$s+X*6b%=Zp(i1Wfyzs zDF0|K!ujSBTxk9crA3|<4&_T z?l$}3Y4a#v-Dfrt?>C3w0dpu8noc_rl}met5z>2v3@a;wf_* z+-!C*>a2Mz@p25*YZv|qj0T%oHj-&!*@7)C zJFvCoS8Qu3!1k6R%(s-F%kmp`w3K3J%b(cQat6CwE?`f~73^)fj(sh+u)pOV4zxVP zuld;MA`jtXql-Mu5@GEokFl(>c9)k~4*GSMS6GhVO3PxLW?7C)Eayab`A16u@f6D{ zoMBmuvn(5Nwq*;>wd}z8mS1t9Wr1H0c@3j_$Uie@Pk9q@Pk9|P_mnpc_;REESmQ;LYNynF#EPQOq3m+&e*2?(C zQXSt}YNN_pAHA%N@Pnl(ezJUpvb9b4AlYo~fO@MN4c0DbwD!P2Yaa}@4nVDSFj}p{ zv7B`zhFeEtq;)*{SSO>eb$a+vxu^9{>~B4T1FaYEYwHypV!e*TthewR>plF|`Vhaf zKEdAB7ueVOI((Qs$@(6Dw0_1VRuM5w9%I$uII9jPSp9K|)r8ZmAvnVtinFW{INKV7 zbFJ|>-qxw49UU=6zG}emrpZsOOYxoc zCwy*QjW4b1@s;%#d}G}fF+&avJ%ZNI-_acU2O2}mP#<~@4WXCNH}o$I4*fe~mYfj! z1nr?OFfQ~pCWXGol+e!+v*jA0evz}~3ZVg5DKrSHgj%p#XjtSz`Mc1s@cYm<_-$y1 z$QAO|&@Q+=v`6GB`BZ41$aV6~(7|{kba>=O`ElrId=xr9@`SuIY)jM$d3)Fn+z|FF zZVD^F&0$5jHLN7+5BXZyZ+JSa6!(YyiO0gu;Q6o%crok>UJkpCSHo`Mjj(&TFYFvH?> z>X;v18{3B0kG?Ap3vY*g!<{%Vyb}%y?}p!m_rm_+{qXDXLDB!nGr~vWBu_kzQUAze z!pGwj>i?0)g-^u^%v4AYJmUG(Ka>|z^H^RHz6#fQ;!Vu(SY8>v5r3xsvAl-L z$MS~o9nnwa?PQ+Hd#HITZw)WRoxJ)~-p$zO^8WDOu$atq`H&}bfcls6F^@;X&k-Nz z)tB-KUVSB>_joG&Z{pL`ypqrI>Kpl*$E#%C$Tz5YBVP`G7X41X8~zp_kbfsXqUN3a zm{;G)Pub5q`F^-M=7ao>%m?`uH6P@c;r?XaQ29yLMs!0tA~fcctVDDo_KNs_UKJ4& zBZ**Mm4uPJBn%O0Wb_dZ45UVga%6qVh(Y4Dt$$M#3Eu>#L^hO=o_&b`$w$Dfz<28*NoMRVN~kH z5XKtBG-898MBX6AMHIyt#1v0{0`&&*eZ+4#CZaUPDCS3;!xhvU#S-d`Vi}c2@gtQ+ zu`uFqoEvc`CP-|eCP=J_ctX5^njo=``Vg@_!ijsxgov#XA7etqJ}N`RZqKXxBia$~ zjOZ6_5vL=9VlCoSgayw=gyHdsC_E8i!;=w-vE{_8h=!<&Y>aYbb5tT*p;u%()J8hd zC$bZMis**=$X;lO?1#q4LFgMf6yHRQz;_X&@I%Dd*eH<{IXN~))QVh$bt0Eyg~*?< zM&xR&61g6$MgD@7BDclHih7Z|utDVB*m&_>T-ojy#_wbv@hq1|G zMdbU~bg?H=XUh`DBE#@_WRxveoQ{mQRS=gWQ}JSCx~+=1ADM%9BP-f!ir}c)=o3{R ztx=88H>xS>qrO5zR2wu#b-=(VH=3im*lLN`s2-RQ)d!QJ24G~=U<{8Mj?qygF)nJf zt&XS>H4!UCO~qPKGqFn49IO_#z*bMRj9QB=qBdgts4dt!Y6rHB`qkD*Op7YTDN%po zq^L7EBkBUqin@ZcqpstGs9UziVolUT+z|ByS46$Ql~J$p=cxC%F6y(bsn{8%j%zCR zMd@&NQ~>UY3W;kbilf5ta8wlTkFw!`s6;#zl^WMv9E(cFqfuFSJSq=QL{*M!A+APM z#~V?#@mf@UJQ>vpPenDy(@|~kY*Yt4ALYi2QC;wIRFAl?!~;fsCGJM`!~0Q#@MhFd zyd5>r(o1EW*%>*)0OUgEpxEc`w?564AU#tG5YaZGe={5HCNd~Y!= zx)Dx^Zi~os9$v&rvyD{hRe#|9&5c3y4iuoHK$K1iEG5_H6n1AtQ%rkrw^B=y8 zd5a%nKH{esDRG+MM^O`J2t#bUgc+h->>xD8Ix#S|69&h2Lvw5|w8r*JSS;4W)=XS1 zX2sUU*|80AZfs+mAKM%k#=h%LUOT>oQLAW(` zC~k@!f$L&N;pW(}iOa;X*mGi;I21db_;BnGcrSB@hly&tvS}QwZeL~cG$q?#4l`}@Jm}aY+~z$&20U!g>4YFv<=19wh`FY zHVWI@#$vv0B6hS*#m=^w*wr=%yW19EPupVbZCj3gZL6@qZ7mM8ZN#r_TX2YN2M)9S zir?4@@LO9EerGGe?`^-~7+Y!5HsKRD3bk<~P#-rD4RJa&#!bb*xS1FnHwVpe3(y+3 z7|X>i$MCpS7#X(~qvJMWY}^)%i`#(-alc|xTmh!U6`?(@1RvQFledY-wp4s-OULK7 zEPP21w~1HuaGQ8T54VYT^l+Q_Ko7TxPxNq`P{s8^Ij$cnaf8q+ZYcW3jZG>LU&r-H zE)Y9er9cdc8$>)TZYX{e*PP6^ajo#XxOVt`oD;{yb;5CR-Eaak7l=vBTp*?}bAgz~ z%mrcwohcBr=u&~0?OA0mT`Cas=~97MNS6x4k94U(ETKyUVi{d35G&|XfmlhG3dGNJ zsX(luO9f&bT`CY8=u&~$M3)N0X1Y`$w$h~nv7IjM7rWzjB^QbZtW_v(vXesbff)+L z4fa+j9A-q&+tIpe^?y% z77xXJ#KUn?N})I!r^aJ(-grFD4^PAe;K{fkJQZib)4U^v;wF*<$(#>S7rxcIS{5I+%<;&qr3KNaoqGqHU99L$JcfSK`&u|oV>tVD+oh$?jW zfT%`?4~QCc_<*QIhYyH4bht>&AYUZ%*PMzKkD`QY0G0 z55_OzhvO{fDH5}pr%258%rl>p7K!$Bphz@{pGZx!_^H?;ekOj+{)CcuGn}U<#o{78DHfOMTd}xGABx2_`cN!x(1&7i zlRgxSL+rU&ETmV(;zznyESAudVzG>#6pIz~q*$z^8^z*hc3v#ju=8TEj_wtU4ZIh{ zViWI0vDnOeQ7pF7v0|~EjungD^r~3wp;yIXAH6CT`{`A&I6$usikH+J6xM_-ST11) zK4P|m;xV%w6i=D$pm@$~2gNJ8aZtQrwu9mwvmF#4nC+nW#B2wJD&haL$q8doNtlRU z2|Cm!OhuoBndqA^2lWXH(2%egjS0&!Fkux2C#*$t!bS{F_!T1)3NSjM2xAjU@OFH| z)Pv$~d}F*H-y9#%fkPsnnnS{#&Ybi<5VK{b87=YaqCSvb|nbmxymTONscF zZj^}c=thb7o^F(gF`TqSjH4$dVgfxW5tHaZiI~B;O2jPARU&3{t`aeqbCrnsbgV=y z@o)`9pMMz!JE2cv zH}p;Hh5E#PXhAl*m^cE16Gx#raV%OBCt|ro9fl`P#mK~&7@ar=V-pu(T;k%S zQZbBOm5K(eQYyaTET!UGc33L9Qd26vVBJ#jCF_=oCaha3nz3%FXu-Orq9yB=iq@=K zD%!Gcsc6r-r6QkoONEPdOGQW4Eft+vw^V#hH%di!&$>P7SgGhuA4)}E`c^9X)3;JF zkiM0QYKe>NrJ^1kC>50wmlIb>T!lmEWT~h@uS!KNdQ~dw(5sVTT;dk{DKRbaSDcbq zU_UM9CLY0siNE9g#6Rrk#m|XlxF+$O{esw#cnLQp{$;-|_9gy}#fj&{b+IS$9`WwP zhqyoS2_8s%VZR}+CBDW}iSO}#;%7XaDAI0-6Nwr;nW)3#iT-#t(S+v{L-1l^C|*vC zz^jQdcq1_$Zzd+=?Zh;^o9IZpCCo|n(VEl<4M|PWnDi9}Cbhxfqz!NJ$!jNlBy9?h1R-SS+73G3}nnOqz-rNi)-4ir<@Z8#gKB4*qCwz15*}baLVuKm9hhslr8unc@=(2UXH4i zwSFcgI;CH_NeNFGgpnyj(}R?Rlu?+JGB!O}$w--qVzA5UAaAi+QNJgY`I3)@XrP#1IB{3sb zxtQX>%PBc{HKk&PO}U#=6|be##M>!#@kUBRyqVHCBVLhHd!TP>AGD?pKz-_9R8ohd zSL#UArjACR)bVIYos7oR=@^*$0|uwgLv!k)j07b*bty)s{)FXHS7UhU`i$~Qv(z2f zI`vmtDg>W(_f@zjQRGPNkof%YOt6UAyj;%KIX+e;lSlm_-YSi}Ag*0TSLb?ncu zp8Y?pWPgia*gxWzb}6%k(!{RDW_E9EVfVw9_5f^c55g*T3s$p-WwutnwpVwwR{GkL zi3i&Ah==SK6nI$7X4hu|?W+Y?<~0woaReZPONI^-#K} zEk#$_PuMqYHFi#0k3G|V!LDiBFh6Y<_DJ1!RAt+)Rtd+iA(!Bb57TY1t!{r)ds+nU;gk(<*`t(C zX$?_TzH#lpc^fN7e?mmY(~>G8NfJsA(Ar{ykCPNX~Ve0mOE zOs|NS)2rgu^qP1qy)K?iZ-}ST8{_Hp=6E)}6&_D-m%B&_%;<*Nj9&OIy&w8!3_^Xz zP&8zWKx4)z^vM{D!5I_LoG}%x88fk5#vBaKSb&iki!nN5ImTwJ!nlmJn2@m%lQOno zO2#>{NcoVyi}+LeUi8W+L^$x$6s9JSHz zsE^r>Miq7_)f`Q+nd2*L;b?;`9UZW>!;NhnU9i2Q2j)Bapvy4;t2hQ@XUA~t>KKXL z9iy?QV?6eDOvb*B>Db@#1J-cN!&;6-SjVvx>p6bH29DMEg=0Nda{Pi79NX|q$1ZH* z*oy-lh4{7OAP#XH!C{Wy@f*h<_^sod*r9ZEoT;!&8Rxiw^Bq@klH)o~aNNRaj(a%6 z@epS@p5Sc93!LJ3jdLCED->RI>IU*R4zJVDwZfW9I1HQ zk&ZVVSrv~cPaRe9k)tL)cGRtST>0c^iu_SYlr!6)lG&l+pUU@{3$T0UV(gl^9NTBE z!WvZmsnnwKPo<8hvR>vd#0@gH;TM^^@XO4-*d((Mn`Iuv7MVw|W#;eLI`a?gnOTOt zGtXh)%uCod^DnHH*%b3LZ=oym9(K%ph@CT^VE@b)I56`yex3Oqhh%=nVVR=RpUO9x z8vHg>hu>xTS1MCBv9~hiHfJeQ?q=qYxu01PA7oa=N0~M8ab{h7n%NMaXEw%{na%N4 zW-EM?*$&@jI`KnhC;XJz4OLmaP|oUyO4cCs${LDm=uerlj{cM>8|Y7&vY+#oDVym} znX;AslquWkPnoil{*)=Z=}(!mhyIi)`{+-Z@-rPMQx4FLGNqWFmnnznMwxP$Zj>oU z=|-7yjBb=E$9Z4MloPy1Wy(qVS*Dz#pJmEv`dOx&rB`Ljd3sf*T%=cJ%4K?0rd*|0 zWy&>rRi@nZbm;~iJEQny6;wK>7_v&xnDtwwOG--CIjoR%3Cm~wh4!q!F)8Z~W@PRppDUx7Z}>Bi6{0DqmG&3=6SAC@?cpJlvDD2=`?z#qC)?;m)kpm7gdl zvv%N#tY7g|Rso*QDysZcIh$2d`K59*s|+7xox|H%m+)@ZUwA+3Z+w(>r}8W1Q`QUo zko6i>+3!)#{#^OBqGXFIAC$oC04$dsgyw7u24{z%F*^#a*|sX56nnMabikNC$#2t!*V&jFfykf#^wyd;GCfto-+cYb4FFQ zscYq&6E<~?oQcF0a;9RXoS9f9XAV}&Sx_}z{YB1VY?8Aa8|19QFLTybO;oqd*-|xK zJuT-7&dRxtvvY3Y+?;zjKj$G%$$5g4a$ew!oYz$y>J2&Xab3=5+>|4#Ina_a@S)@?k{N1-G-UD zyQ)=IXXoz43b}3sy{p$zf1ewIV{$`rLT&_3%8kKsx$)KOsaNFY;j-My zxFolF_4?{HxwUa!ZhibYw-K()ZCbs7dPDA4xGA>{ZqDscy`g$%t{b=KcER1bJ#cGo zpX!a&`*R22f!x7(EO$5_&K-$|a!2FQ-0@hPJGpuj_4(X6)xT1|%w3C*b2sAC+%5P# zcSrTsYTvxy(2!S(#=JiyIq=K89ITO7 zu|^m5xV#=XCGVW*qMne~k9bnvARLo76u-|KQDcJo>xv__6V&}HYHChU53H!e?qwxDm zV{uHSiTGWmsWlI)7gm~yODfI56_pm?v`UL{My2IAyV5G0TWKxM{~t&98P#Og1aKS+ zPx2tK_pZ41-dA0PfRq3Ugc3R!0trP?M6nk%)b!XJ_P+MsS6y}OuHCiw-n*jj|Mko7 z%$Ykg&)oaTb2h8}*5I6e>(SP4GcM@2-TS<2P0t2?=Ut_qP0-EL1KmAaVP(&DSk5XkY{jj5FAa?dt`Q3A!&rV}LwOf$EboC$<-cQd`5)Lq?u9Mo1F^L{0Ncug zvAsMLJIW)lvpgER%Hy%Sd=U1Or(kb+8upP7#(wf)*k3*ZJ>{cOE+3CR^2z8cH=@71 z2rXV_EcCMDB(Le1=QSIrddnyn| zPUG~o>l}F{;(78axIkV5XHfsz)x@;dt`?@fcC|6>wX1_~eQ~`j4^Vt@eJT&ey56C9 zTONV;<XZgYdaL1z*b3@U?s}zLgKd_wo_=Q9c?!%g5ta`DFYqH{uU@5xRJr zvAnk(D|$~y!Fx7Jz2~Ew_ab!nUWS#uS7BA}Ke4*^My%<*6>EF%RD5&wWX?BN1@+%t zgQ)-Js-*s#YY6q@l)2_mS>`&D$}-ncRF=7pp|Z?%+^@!@@Qmh%-C;Uqh_ z2v@xO2D%8>xRHx+o$tB`H~FrMaGUSC2p7ElI6cnJF2Y@Qa1rjagNv}(JCyucHg^%0 zdTWR;dB@^Pc5@L{vzv>smfc*04Q%BiY+@@HVGCQi2>)_Z7hwml=OXOl^<0EKyq=4& zkJob%4)A&|!a-ioML5jsxd=yiJs05^uUAp{>|GF8QTX9qf*-xD_|@Bq-@RuBN`$ID zE3mT9nm|#g@3S78`fSF=KHIUO&u*;kvmfjF915&1Oz^pZlYH*rIG+cBwFHyTJGA(G zLYvRGz1r)BrK`2joUYbF3%c3}9jR|4 z^rp9s(3;9NLR)&<2<_=@BXp*#jnI{@HbQs0+6X=AYAYzHZ!7r!iu=&jR_I4pTcJN) zZ3RzewiV>`wiSHnZ7cZF+fE4Kw4D$`S34n&3GIX+dfN#~dfN$Vy4nfhbhQ&A>1roL z(bZl^CDUF={}m6RtG$rPg!V!bUF`)eGusO~dfN*LOlvO~=d~I3{-xa+uRm$p58-`i{a>>N^T~%;_i;($!HYrmLf1qN}4| zp{t`{V}2)L4yT=jrF3-?rcvKXm_ctRVHVRm3G?XcBrKq-ldzDkPQqfkx(WvdwhHbl z930pV4-f2w>*(z&Y@oNRu!-KT!WJfX6}B;mt=ql{_HDTXC@8Isj*@3}$ za$qQ)9vBhaQ@BP~PvH`CdI}eq*;BaAgr34pCiE0;Gohz&mkB+E`%LI5JYI3l=@P~LY6N_`8^&9?;IeXUs8*NGK@_dguvdkeFD@1eo>5vKY+!*JhM80q^C<9t71g6}sR!(@dJ!HH85hnRIL#^*`nCaUF(|tSO5Z^91)VBxb`2Ma`37dR}E7ig_ z-_go&;l8gEFZj;HYrb>wrf(_U_FaN^eOKUV-!=HqcRfD#-HcCtx8qsg-T1HXe!T8` z2ru~_#Vfuilp5iq?`37QP~Ptb{_wqnE`AS`ae|xQ6J>%>)9)45_Irob{XQv^g!+DE zO0Ce`ubfINH1%^;We9!zYG7}_I;z1!f4>H*EJ5zqOf^jK_xlaQ{o0_yuLB18bwQD;%~)m{!ZNCKQqKG9PpnX z;uH@1FA1409P?ilGE+F|zdmHPAP;zgaRDzdA>a)r1$;nlz!wY(D8v2%S4!#M%X!^8Fmf$4Z8=l!JYvfuy;Tg>=V!feFA<*UBDlh z8sLS7fPt7E5P+Eh!8jx!6o&>xV0J(>`Ub?Kf50GA2Be@OAPt)b3`Wm@VHgrH0@VSd zF+5;AMg~mAr~o6z1QdnN6{ZF_aZ;+=we}Iz<;>xbfs`IK%!nL z91p03X9KF>zX3JybU+>TYT;5q1NB1LbU9kjx z6&EY)7W@@|5i1mbV;{vD3{uQRrQ#oyD`sL(MJakJwxf??H}+Gk$Nq}Vvb{orV!e8= zpk>-#AxW{7I8Lz>V-$PU2ZV8ob2ve95pxt*airn~j#AvgF^UK3gMvx%28$IRuu$;@ zEs8SrVPTF!3_C2$Q^;_Eq8iRp)CxNy>{7JDJ&I1aPtgqzD0<-zMPEFu7=T9<-gr#m zhsPCxcv_*tlZr4rsL+I+5dKxfhn*5GDU!p^2=xP(pdxSuDg)PG?ZEX|H*hmH4BU>5 z19xN7!2Q@f@DR2LJc=y?Phji7GuSrpJhl(Kj2#32!_I-XuxsEw>>l_Cdj>wk-hr>M zPvAT37x)SL2Yy4(z@I1&tPp-i@ClTlZ(t?#53GVU18ZPVV4d*uf;P|t69QXdQeZob z3+xnrK^PL)4Ko9Kp&_s@4hbuHwDhcErF%s_k@!{&WL-$&7hfhAZRWg z3@XLLK}+yR&jv<8m{t;f?roAGRrliq)WX5xjQxp*n)|I@An?dSAb&>_4YbTs0j zP%*eP{Gs3yJQK?Y&&7{HSIK`4x`AJV?%?;J2l#`T&-h=c=VI;P|HlpKeJ0eU_m$8+ z_+7*+p=>d0Kdj|i+&cPKTUkM$9C6QkRZEyoj3T_hlT`&cEU}kVD91`3PhX!}T z?BH&g6Wj|&2KU8L!2@tius4ni_QMImfjB8xg?YhYI5k*<`N6SR7@Ua3!O3U|)}t*r z10BIxI4yWM&Ir!MS;1p*PVhvW7d!6wX%w)f~2{!2DVVv!IsJf*i+dA+bTV$^wj2mSBR?ib+Z*YLzol#}2NN)L&mQ zu!*Z=lyVU&mCJC5aup6${)s`#jhL_8iX)XfaguT`PF4Pe(#L0N|Dl;xr- zOO7Z-JgAi6VP&8eitXXrsQ{SlG{ptDJQwByu3@lEA+SzSqURZ3J{ zNmErCHdYOesxRrS8joF7ld-4Dh@DkM*hgi??kam!LrJ7+4JN48W0Yz$hO4$?jA}Q= zsrI8&-sA`AnRGo08sv9m=^@?sOIj!=;ld3>G zu2SIvRTv&rY4ETr7LTYB@t7((x{c(cY6L!1jmD>{@%U9W8DFc6_*PYf?^R}etg_>C z)pUHRnvI`T^P}5IDu-;unju@Ue#lO27_t{@hx~A;D-12}MUp1WpTy##tfpXbBmFg&`?8CnOCQh7869A;WNS$OxPlG8$)ujF0Id zSr;-Hw}lvSc}Nki3^C*C5Ie37nT{JmX5*%i`M4!yQA{t%k&qR5JY)?X3|WtdLpI~F zknMOfWOvLTlFp$YuwUpG>>pZ&-9yX8{vqiZ>WaNXMeGwQL(kA^*fq2kwhgU^?L!-3 z$Ixc6o)Tqf8w?Nafa=gL=pWhx6`{XlQ0N~R66zJ}C5Z|hh>@WIv2saVXfVcvhQ@kJ z5<(+leI!Yt(Xj(1+R%7R4IPAr&=gD$O+#Ji;Mf?+p3o(@BXkAs3tfY|Lf7M#(9O6l zbbD;PQC5P{SAAne`0-gg}5Y1AGHL# zt1Dqubrp0|*Fbl59jvTwfYsGau%_ArYpYvfU3EL`r|yIe)!neMx)(N8_r>Pw0oX$A zjV;xF*jgQkZPhAluMWeGY7KT)$Honk^j9awX(gWOwRd=` zBt+c{)#`2-t{#92bs$Em{V+(~7nN#NxIr>iJvYuEDO8uDO}zw1saN0_^%@+fUXK&h zn{kqQJLai(W4?Mnj#MAQV)aopsZXFqeI_nVvQT{HOX71Sx7F3~nz|O=RM*2R>PC27-7J2L z|{xA2tjX zVI#0l*l6q=HXgf%O~&qFM(i0@guTPe*e}eEo?+9mb=Yid8#W)?hb_X6VawtzlGL#M zI5O-I=7$}{^sp0{8FmJTgq_EsVV5yG>_5y2yM>0ZdpIiW5snFahU3Cs;e@bvI4SHC z=7oL3sbN3kt&+m93JG?}9O~_o#hltDE5j<0F@;q@OIQtDNUvRD3#&)$2y283m}!?R zXM$a_lxcR!G6coY>64pqv!#84F_*P5^--(6cd$BnDFH8#m8@1v8pf3CrriPzG zL-<8Z55J0;;Wuzd_#GS?{s42rpWw*w7dR^X4UP%_faAiy;Dqop%nL7+d%_bFH%M-V4^G@9c^*CtABT^?hvB2~b@+IE8$KD|ha2&3co9AgH{;82 zJKhhUp14g?Ghz+ajaZM>BQ|60i0z4cB+VoCV~dDGiTfpOBaUMGh!cqiB|Rg~VDE_Y ziAN;rh+C+PxQ8JTk1#0W8HPu^!pMksiN_=f5#KN_;%DLsi6Npw(g{g=ge2*dWK={A z91~Fo$3-;22@y?_&Pa+QJkS);3LO#ca9TtsoDtCtXGQeFIT3wvUc>-g5aEprBmA&1 zA`op6Dzrp|;nWBXE{=%B{D{P)%aXehxp+TfEIy2wm~>6@I-&?)Mwsz!ggxoH~WDp?yDLA)(88rMa}1{-SDV@=IwtgYFObv3&Ol}TD^_G5F+A#ANViY+uJ2K|uu zYR+I+&3Wvtxr}`@|6xDPE$pwkhn|{8DAzngAI-%IKP25XZ-{$pK45#z7wo7h!_Jy= z+MkjjjVp#|L{w{J7_O;?N=+@TAf2ZP!<8BhuGYljT1_IZ(ilB-JHqg+uMC1TYm{%kL;9#w_7W>gKV990J^ zMm0#TCaoRSB)PVnt6fR)fCeo#B)kHdrt(r*ZuvHW3 zw5Y2%kKLL`7jlax(#71OsdPE}G?lJqx2DpS?CBvrz}G#b`}m57bQfRukZy^3g?sqA zhx9Nzdq@wmzlU@On|nyNMSa6fQ9qMgNRLHT&~=lRkM4ld=q^|>x(5o;zw3HQJ4Z)j z*XVfc9z6)#N2g%N=rn8_Jy_RQs*E=3 zi9Uq3=%eU}KB4oL&Wk>S3!=~C!syF5C;C5~k92YLEnFUb50^$i(hZcZi++Y1qF>>r z=y$j}`V+2={-*PlZi)VhJEAM3_)51$OH%x#yP_-M>F6qWHo68Li>`ymqZ{DK=q9)? z+5?Y7x56vY?eIW!Cp;M44G%~6!adP_@!#kHcp=&wFGc&M_)D)x2c`r_Z$_(9lu~I- zGFFb!W5t*Z{1KgnE-}Ngd`vD1F=Np!W+J-BOi58mo5vJj%a{_Z9%IFtF;1)QAp)8bwAe4T-sf>X-)@ z9`ghvsaH#5s8mbiepMzgQ!PzmW|-7KK1@2~SFEElOq$A^Fli<=VbXN!qoosKWU0~8 zNio$@W2B~-T4;%>hqjnU&0?feW10}>$9Q02Oe-voX_uNH-4rtbH^g}3mKZ3i3jBjJ?_%UWWzK@xmnj`s)%?#0Tne__SgztJuBpVX1ksTxspt zi&!)EYU+5YPwWTujQxW0*fQ)NTTVYg>Kp5-pC}EA712LdhKkr~`bkn{Y%L6lt*4(N zjf-uC39;?;`O-Qw=IRTi^J2&1tk{V-Cw7XyP`WU-02joT=u4#gVwd2N z*cEszb`2hnU5_VYH{+hz?YJv;Hy()Hj|XE9;o;b$dW-aS>}9+e`=5TA^lR)Z{22QV zKgWL3&y+Tft6`Wa?HpGJyT&!Zrg2TMZJYxC`j`eMVl z0ft%9?s4AOGwx!AdD5h~Xu~{dYFs=f#0^4iTng&q(l9P=uwkKeWZVeMi5qQLBDKXi z(GfQjEpc-V%cL9PhKb9hi{n-iFOB;Xm&a|ym2s2FuZ}a~+PETI7pE7OOAk=LT)HW) zN$us*ZE+sBgUaR7J=83h?)z1=U1i{o?i5KRyFJu;;m^rq^a>vjESF#aq)98A-)uo;+LQ{eg*2{*QD){ zPK!T*Gvd#nBmO+jiNB2V;{U@1@wd1jen@&Hz5!l}Z<7AE^me=l-i>dC_v728|10%O$iV&yS=b_BIJQj4#nuU9v2DUc zY@aX%J0=uh=Y$gMnqbB52~O;pFcW(x%*8$lrPwcFN&0!IZ^8NPLlRD)I^hh4C!EKagv%J0@E-;x+`^=Ud#Fu#gt~-hn40hk z4GHfsJ>e5(CVayo2|saYLWPV=(!2x_rzXg7LP9m1lu#?(Xrr-nb*dFXMrXrB6Y*{06nvRj zkXc^*kywJ?6Rnx`;FjWsLEmuopr5#QP=z5q#QNH9*jU>On`--FL+t>pto6pKT0g9=4aAyS71q{< zVO_0eNN-W0%|d_eaP-mUVvu$$Dzy_aL^}o5+5!yMmSCjTicwl8#%O0^AMIT1r!B?) z+9l|zU4e4#8tkoIkG|T?Lw*;NwA)du-HitAe$;6XVXF2hCTLF#`9sXqp2G>+i#SPp z74x(=aH{qW4$(fqaoQ)Ct$l$*wQn#-`vFI4zu+is8IIAG%kmUgYwO`kZ6jQ+ZI%)po&k+8($~`+JtRxKHbqeZ|vSiMOwKK|7fE zthN&IC2axmzuNJ5MQg@uS|?uD4ww3gZ-4ocyr1}<34Y>hPW{A>%=8oQGtEzY$Q(cM zF%$g6r%d(}pEFY-mQNm$r4WVWxiW?5l024JntZW>Ladnlw=77kP8=jwP5z6xa&kdd zh}bl_1e+&Yvl2yh@?MNd{tLsC|HjDVe=sWfR92FxO+JT7$rn+Vd==x8Z(u_5ovcA( z_Ak?u9}$n@bdWfd(?Mbm^@GHb^bQgY$?q^V`4bLF{)U;!KeM#rBu=&B80xiR9=%#| z9MiPo1bUOjsmZdT$)b&XvRF($S_zGb>~s1yNs#2|8TkP z7JBOLpZG$#1LJDVdF%#PJ-dON*JlDf>F8}7^AC$ zak>VWplgCjIuA7HT4B1b9cJn};SgOn9IESu*}A@%qZ@!Db>28i=Z9l-fjCa5!U?)C zoTSrWo-P)r>Jl+umyCrvJr?US(4@;ki*7jDbh+rzjm2rYi8wwe-xU4`ta;$!Nkicgti6kie> z#pgO%wo!adCSQE3tC5{Ae*6``=d@TXpVA=PELKlxgEdpu3^R+hQ&{O2wB< zD-~ZetyFybtM@%ODiuF6tyKKX{8I62iU(caQ(EDVly>Nn+6l|2cEgIPy--N)i_+8q zc$T}Dig&q7saQGHkIXSPEETJ#1{2pz4aMWUSgClD7b_J{^J1lU(66>aB4PPpTr`pjsbvi0iXJb(6d{m|` z!jRNus7_slk*R-TRO&{IN!^N`sXH+tbuap-{)KU=f1^D0AM{B*HGG9QFZCHNNPUI* zsqe5b^%KrX{f1Lhe`0ZJg`5?lDOG}&)JkYet%8o!8aOSr4$eqzfU{DYIVz-#Dm*75qB|NOJ zf=Bc<@R+_19@jU(llmrjTJM2p^{wze7hc!*#hdy8cw6s{clCaF zUmu7M^(xHKhv7)Q21n^*ag06@$LW)Cf?ki4^ck3^&%#3ea4gp6qDem%E&7RQ(@#N% zz5u7`OK^tXinH`ioTHzK^Yn9ZfxZ+M>X+bR{R&*FUxUl_>v5%iGp^Qe$F=(1xK6(x zH|P)HCjC*|qCbJ#^k;B~{ygr|U&cN9|3>T)pXzVnbNxMhtba6OulQR33}5PBjo2rC z)W5^``cL>)|82y6@w@&fe$`hPxnKOOmyA3hx)>_q4}BFZZ>TZyFVWpl2i*(}P%t#X ziUtpq8d{A!C{{MK!e z0v8(I-~z)3oM-rgvkYY;&xxxI6>`ssD-9A{Yp9faUi{Zk4Idh6;aNjHyl-fPmkiDD zis3iBYiNTP3?1;ap$ncg^uTL|-|@QP54>sc!rO*{xfjK!hQQp*;%9>jKN`aDy+Mx@kSIXIdCGPOFytpD0h8kN#5sGFiGO@fxRN@z=~g45D!;Ec37I5e#R&Pi*6^U^$U zL0T)EmDX<5J@HyvGTuznXG<5Z7jY`n~3kzrr^u8f>BSzw&_c-X8H=O zoxTR^rmx5P>6@`(`gUxbz8jmS@5kophp6rjJUzDgE72$Y9&zvVEaE=t$=EM_IQCE1qi1>s_DoM~{#p#D^0nxjZY1_kFF^(M zuf-thUyDlWUyC8><5A7zH)0g0Z^Rf*--vOXz7Z3c@J5VGpWghfm`eVwm`UcXI3#^D zu{M1T>gakaCZ#XIbmqJj4fMVfM-jgh$58)H9GbqDIGf6MVh(fOi6g0bFXsJn0{Qpi zR4U(#lQ?}Zj!Qq<{DYXEei2R7d=M?1eh>?({2&%n^HH2d=A$_6S8Pk?UxE;4Q29}G zQ1eNgll}%5Q}aoj_bao2%1`1#YCel=f4Mx})#J0cH2n*i)tr77*Rk_waV7Pi#SQd+ z5x0^5B5q2r;_*e?LDv^?*RT8*YQBm`h`)-5$$u61qxVdM{CQ~_MK31ixoLh71%eghoSVi3USEebw<=pCLEF;r`-g0g&=`HWp zow&SPSL(~Vwaz%|QQocRuYB8#6U6N^_G3pTly~dQgbHrHoK|q_o$WTS;5WoSEZbp72VX-RCEi^h($$4BKl{Pc~o=@%E%%P`Bf9i%!+PGx?J6o zh+W+h=yG+7%6R4B>K5}WA4g>+x15Y>W8B?FX0-ZE<~Ay$3y#U?@LOfKaT(uQRCCME z@EB9gtvI6<7G|`=sTrNnl+g_>8NJY!(H9*V18`b~H_piL!&w=DV`{oB$Os)%+ih`1 z#Fz$d6*K4J+l*3tpRokpGx@K9Zqm$E#E&!n#HSe>(JgZ;KF`>RFEjSy>x{qfW5(b3 zIpZJvnsExhXPmSjK``k7D0c)GREe1V-a-(cI!57;sD z%NTFBKAC0MFSFcOUpN0uS5#+;7?LSNMP@Y&%B+RT%z9%3+!8VyVO(aju}Zg`%-?WS zW*f}T?0_RPyWr5w9%I#Rg_*yP4R^C;{xLSvZBC{a&dMA(Hp*>nW&keD4910-p}06R z0+(k-+Y^>Xk%oIG3nTESE2jia1VYn}I1a8Y5JvQF$WafB0mN^-ZXBzQH zX3^Lrw`-YZyq#&sE1A>rdgg4rnK^%~-mPEOi}89l->f(2pY;JdXMMr0S!LKgtK0;= zTkkAa?32YG5#4%b$*_M`HT2A?h4QR==#$lG!eF-vS)rJh6@mF#(O8%jkHuMo(3F*e zmaH_iWerA0)-ar!H3G+FjmBwN<8e~fw7?CJP2d-kLSZqng@qTBF|=stWaRvx}{ z(gwGK!y_hda62$Odh#AOmmD*G9d5_(!>8kq;j_^_XFj^+EW(O8%TUN!h0>fqv3$-( ztemqItLE&)>N$HSA8}LX+{2KZN0X1a8FHSXF6R}d=Dfp%oKF~)^9^Hieqvlsg}h^K zNjVbK=2XI=IaP3EP7Tb=se?mu8en=(6U@%>z?_^`d8gd+b2{PFoNjrS+^*&5@j^}p zUdhSAOF6^yuDIRI8IA9ACgR7ODfl&~0B`4%;N2WM-p`qi4|8VYu=j|+vFC_?u;GYP*m%S_Y&zm1HXm^nTa37Y zEl1qJ)*~KZ+YwK&{fHOXal{+!JmLd(9q}datJ}!jt5d(aCFS10QMq?8C-(s+Ut}ABdiZ~=!W~^W7`sf}7jVfi1DZ!y*tT<$h zv!H3EyfI5~!k85}Y0R2}a_;g;)l3!K6_aYA|D<{*S9kTKMi?@wnW?LL;pAH8uI`g2 z*TekDjWBz1Gn_E_H_V&d2B%KuuheuOI=KtxOzwdrC;yJ4CjWtBCVSzy$pg({?uNW7 zmN579yc(FASH}|WJ~XcZ4#{hR*?AtAnb*n^;hvM%4oBv7!clqMa7_fIgK&;91*aL) z?AzQI8?$hsakzb#`zB*99x#r@Eyjts&Nu}(7z=Qlu>^M*t+>nR#I?qmxW_mb_Zds= zyWOuCSKwLW8oXv)kEe~B@se>n{%hQg7mWMud))6E|G~S)Q~1z$4j&sY+V{FYHD0yv zbAN8UVc+lm*?0%P8Xw?W;}d*ue1WfxZ}6k>1HLqVu^(`E$uGn2#&V7W?mvvKj=$Wi z=8Nc-FT;xY)lkTW+_b@;I zkt19-uAq`LT4pP#;*62aDyV@o3hJPvpaD)RXyS~O%`5Q0g$1o}K|wp5Q_#s7CtF(3 z%^5FSUC;|x7W8!{%GMPOz)c0-xS_z$nIzj$5Qy6fRL()NeFb5-r+^=~$qp36;=zJM zXR_=_K{6gI&^ryX>jfEjsUQol6b#2}1-Z_2+0%lt__$yqJ};PpFAECrenAO7EU-Gq z%X$|&u}|Sl=R}!L;av1BEJgpqCC)?UH26(Wr2_7!=z$1mNa7SS~+*a6WnnQM>u*bCNvgd_; z@pIt-{88wQ-wXZlZebwaFI3^f!Z3VXsKKv=vG}ww5nmQ2VU$heyMSC%* z=r2?j{XK1wOj~pYbw%efwdgV$ivGj&qFb0*bPtCVJ;I?y&oH~_6~+|3!?>bPm{9Z$ zlZt*$TOu1-8oVxihjdgMQw0PQ3u>s)CD&b^}szvzvI55Kk#so7j7yV zh)0S7@K{kW9xn>TlSL7Dx+ofV6vgA&qCxm?Q3_rtO2bPf2&e$%SQ`}?5 zPTBI}-*I8_AGoyG3l|p;#0A9xGj_{X7YEPSD_d6_Hsg@&NOAm(zh#$-)9`WeV7yj5 z3?CMcz<-NJ4NLZ8<&r~Kz2qp?EIEO-OU_{3lJi)<9^j|WYQ@UUqa9x<)LW2QgxxM?GvG;PJxrk!}!v={$1{e>4y zf8z$zKX}D-3a^>Y;dRqRylJ|Mw@o+juIUcmH$A|IrYHE=^a7un-r#f72YhMzg0D?w z_|{Zz_5;~_lPi8SiTK$h!>^`l_}x?sf0*i_i@6b&H#ftI=HE~-w?V171G<^Jpu4#T zRyO~RRn323b+Z@NG!Mku<^Zf~4#xWCP;6+9z{ciiY-*0j=H@}z!kmIF&1u-$JQ&-W zhhcm32<&Jcjh)Tov8#D9b~hWbr@07wo6XqAY{!1)>Db>q8$HeQQEpy@KIUcUYhH!^ z=08zk-iSfwt*A8b#1QjdRGa_8aP!|7Y5oVJ%%?EMd=BHx7cs$n6_d<2P;0(}I`ace zH9x_5rWd%t^adB2KHy^07hGy8!{w%Oa~{Z6np|YvuyHZZ5%_W-Hz{JMpf0Cf+yC#fRond~9BVPt7av zxp@t~G_S|k=FRxlydB@0cjHI%e*A1cgkQ}^@w@p1{xF}x@|N>h(Q+9D%YP`f+(I|Y zJ#@D`!UN`KSk>|ht6Sb-P0J^&ZTW_EEkCiorNZ2YvW6B3Hnvp4rj{z$+)@KuSn6O) zO9O0eX@YGn9(dT?3XhoE;W2Y3tZeCqd(6FXpSkbcN3w8BGR9c+7-z}A1WOhsS%#z5 zl8ZXaSWLA{M1y4trdtXy(^7&%ELI$9aiZEX6C*8iG0IXp_p!`k*^JXH+i`|vH%_(e zN1Npk=39xuq8#v-HK2 zmH~L$;*Do5e)z8?5HDC%c*zomS1cO5W{Jh?mPEX1Nygh2J>Ios;C)LLzO)R-x0c*_ z&tx^N)3LgBHa51-$EMar*xb4dTUb|NUF)A%-?|YSTDM|V>rSj~-8=8Othe~1}U zJ+0@kv-Ki&wO++O)*JI)%A%|tSVIjpWY%_`yys|;sZtKl4L zEu3eqhYPHYaG|vs+N{5!#o7i(T07tc-*STlhzD8ZOy{7*5UZCH5V^f$KoaHM7(01g4e7Cc->lpH?3B@ZFS;Z z>rA|For@2xrTEyo1fN=0;B)I5d}&>eudSQ$t#v!Tx9-Nz*8TX^dI-N;kK#w`32baT zgU77rag+5j2HE~YrR^4m*zVyE>mzirJ;U<0S6I>Z4h7pMRNKB`xa}uK+A1t~EsL^A zP-?4$Zni4uZmWTnZFR7!tpQfIHNl!T53Fr#g>`N1u)eJmHnerarnX+#+}0Oc*al!r zn>V($`C(gIAhx%uu%j&uJKHoEV~fQ&TOuadk}=7qN3AUbyW6s`r)@a)w&h|U+gR*p zn~42wQ_#~^fO1<2`q-@KYjdK%Z6wY|9J+$DBY?G~8=^NQDTP@sUtB3n+jqrf286LF#hKFr!@QAGg9FBMY+j{rW$o?3_}LbUUu_Zi-4=~MZ1Lz~AB5%YDOk~-hJt-CO6|kY%{~I% z?W3`>eLPmRPsZwYBi6JRVQsq^>)P#D-##51+Gk^9`+RI_Uxdx=%dmxg6}GhhiLLD$ zv8{b8KDO<|j`qFS+5Q)Hwf~LX?f+m;`zh>gKZkwn7qOrHD)zVEKu`M}l-nPmkNpYy z+Fzi*{S7MYAMmN|3qH4%;Y(Y&g>Pk7Y_530CgLTV46oU$;dNUrylJb4w{4B^uB{o~ zxBZ3>ZEf(itpmQbb;0+x9{ADr`@(m!3HHIb$vzBc*+<|c`)JIwkH@L@$(V09VxheV zi|uAK+3jetPe+@5HahI{ahiP*&af}TIrddJ&;BPauy4eL_N}-faGR*>QU#+-AQ)W{3R_?y^6?J@zNK&+f|U0lSC? z?J_)UuZBnLweXm|-uw@;EB3O5A7uCKtH-nO^FyY>$F(B1_f+k4 z=$MWd?6a|{V?H)_EJC?s8Mbt+!q$#Iv8`hxws&mBj*gw!*|8V9I{w1$j=!QmF8V0Tc8H5V$_gDa%yCr1k&aq8%25x;I2z$NM>Cw@_zfpH+F+ie z15R~x!F)%L#h+yB909o05sb?np}5i!fvX+SxYiNB__OSQBL%lO(r}w&Fz#>+!(EOM zxW_RX_c_Kd{vtc#n2d)VMwB|6&Hp01;wT}$=CI;*hZAo)X5wwfT)gWj#ruvWc+9Z^ zk2}`jNymB=oQ;@p+Od`RtYats>)4AA9e?3t$KUwW@ee+CoWcu^b9l*d5#Ktl;(Nyp z{OGuYpB)eItHYI<-yI_UaLCZbSq;lOYhguaJ$&i-K;>)4m&IRYwVh?y&slECS6P3j zD|$Lz=YN&Sog&tC%E;7rR>OwQTG-fG51Tq0VRL6QY~lP3TRPidTW1I4pS{A4&K}s= z`8#%X{(;?{UKqr!zsh<${fJvT1JTW?LU(5vR(5Kzsxua=I}=gKJAak+ai$R0bf#fX z=V0`4%Ev>D1umAg!KJbe zxLno+y=C3eSJoR>$ok_dnG3F#4MKm}Pz;of#9)~RhRDWam~1kxl}*R>GEdwnn}_eq z7U5>uGTb8b!L72DxJ|YOx66WXhb$C#%GTj-*?YK0_5pq_`v_BIpP)>(3nOKFF~WI3pl8POoKV79Cfzmk<=uIvcr$xfhIb_Nf~ zE~M2Le=mE0=VcG^qU;e~mOa6%vOn><>;>MG{foC{wUqV6U(4#@x3Y$KPbR_pvZl%g z;?D9eI7Z$bpUZmV-?IMrkIV%{@J;E`(R7?N^C7(gKgzO*j^rr9p&q=tNcCeCjS6?$Unkf@=vgjd>8hU??p#> z1Uk#3&{ZCX1LgbBO`d{7uIZ`>{K zkDtq3@Jsn1l*xx;q`pM3kxFmV^O3DOCs~}Xk;-Sjy#0NBah+9$WwSa z@*JLxyoBc?ucBUrQ_#Odi*jf3uRIJ)7`|mQK!;}iZ4c8 z!sAib@O;!QJR0>4o{ahqPe=WLXQO^jA1VGm>LuQfs-YPvz86(TGfMnhlmwqeHO1#q zE%5KCHuyBE1O5@!MdL1R9o-k}Mmu5s=mGdv^k8fhJsic+qtPLHEH;Urh|Qv>V)N*k z*fM$!wvAqZ?W31y#)=)I1F&E8yXYJpj;_%gG~>n7qQ5}zXgT^u$KaIc1Y91iz!}kL zI4e3GXGiOCZgdvTkKT_9qfNLtIv(P$Su7(ECNM-SC55Z{iTj$cQ6 z;-r&cU6r3vglV5?mbXg-c_lxIESmy<-E=H}+jz z5gU%HVmILG*iGmk`ymF#evHAfpJGVtXBZay1+I;iP_;@(B~xNsa3w*kk+ZOVueFO2&H=f~~Bxp8}Oc3eb8w0L=346cexz}0aI zToIRs-f`*Z8>i2R6K{<>guCO8;kLL_xIOM1?ufgDJL9fp#EUcH?qX!z1B{M)h_P{x zFh1@HCdU1VNpUYQIqqLfjjNRzFIL9YLv>t3)Wk_p7uPg1QJfdo26N*&WGci5;<{i_ zTz4#q>x~EF`s3j^7d#s`2ye#?#iMZ}@pzmEo{Srhr{gALLELmaALoe|IYDf5dIVr*R)3mxM3W6O9GwvNxow(-T8X=3O2Q|K0d4hP0x!d~&$uuuFg>=*wHI>vv8 zuJJ!)s>BQ9f5*k~f8m(;mpCrIhCwBs5MKu;#W%ny@r`j>ynr*}-^N+-t#EdHJDeNe z3FpVZW6+3K$2*~a`~X}PKiHrbZ;PLdTjHnV=6Fxs8b8mFBaV$Vcq zpN^N~^>{Bn3(v>z$FuP!ycnO4SL2KEdi){08Gj6K$DhKlexP!+N?&9f$2U$OfpC&ZO{z?2ip)vlEAmFov zx3eFMTPF^{wuytY{}c~N^u%F_^Uy7E5e`gTmMxM@O7y`gi7T^fN>(Sni~fn>=$*I$ zS0rx2Rf!*BVB*KJoK}*$`#iDszIi!aByRgY!6Ey00Q@RxFyGGfq-G-akz;L-8lhQoPtdT{2%$BX_!Fp`uRi42id*A^IvLxLnaRcc#Q&(F)&J zw8Jn(CtRy|2iGfl;zmVZT&-}zK*azIRt&}v#qiu&lAVglxJNM^cPl(|JtZ>50*q8F z$(=1pRQO=LVrA|eiCPhWI>oz~p$JEfVgsfsHlb4SVeVW>o?;i86?=2%Ne(OIcw7;K zM->TJq)=dqA`K5J(sSoaZYpx{AB7PwDlB+eQHWO+rFdO&1aB)&;Ma;X_^sjs-cww` z`-&U*z2Xl3sJM$iDIVZ2iih~C;t~F)c!EzAf8rmC7x+x^FFse)GR~L$t*B>QAaPIb zge{Zb!Pdz=v2Ai+Y@h6e9g_!O=j6fIHF-F8OCF6qlE-4N_? z0lFqH!GXzM=$0(SA<2F?EI9y2B)^NJlEaM)B}!-{^QOY8$ow5w;rugKAO4_G{V(XN3*f!-o z?3nUFUbv)B$}a4cvKJjwBCuadRNgwtu#^-Wm7>BSDOwznl9{(bGA?C*-g}Z+Dfu`f zr8sZ1WNFGN^i4U3-YJ)GdCIlCEs~8XKjZr;k8yL#@3I203Y(>#GwqhRrhbRRQh&e^sXwD*>SJ_E z{T+v-{)Nt|FL7XM4f9^f{M5H`ZfYxBnA#3!r*^`nsqf(8)Sl)qB>t%`xH@$Z2B!|i zz|@iE2+5YziMTa&DsE1liSMV*F{enHrQN}SX?M{r?Ewx+dx)-SkI*6Q2{uXl6Nja} zz~*WHV#~BzmJ~_rw0hV!ts%BglVHcRrr0^H1$IqqgWb|PV2`ve*ek6&_DSoF{nGlQ zW10&(rwy{CNmiuI#KmcIaB12CT%NWBz0qtGZ6EGVOR=O&qSLe(o0f_3X*n2~X0+%fLzKb+ zy=1QPZJe)cg{ze9aFntWx+~woG0L7ePT3bHD4lSUasUP^2V<^sIQCPHMn~mXbXHD8 zSLIY3sGNyz$~ibpxd2Bfm*5no7fw@3afZ?lXDI`4w(?zEs0_!&$_=3j!DYD zFj@H$QV$!+cQ9Dh6GK#eajVJ+x2Xo;cGX~9s~V2$RikmEYAn95nuwcKQ*n!GCazY^Dae(S zsC+O{wGxw5YcN?AgsG}fRI1kDVby!6R(*gP)kmmPeS#UPU1(74#cWjsex-`STvZ(A zsrI2+m4XLUDlAZGu}GDP2UR(ES!KkVDhnQ072-)%DV|mx!LzCpcwTh|FRCu!QPmZ^ zs=9&KRd-OPx{Hyj2NNeO`-2vOH zyI@CkcYI6T8@sCeV>h)6_D~PPUh1LPPdySH)E?MGJsz8>Cu4KXlemy$0*6g9^=(G3t+TocdFop#H4TA_-AP;6im2Zc)eKR`ovIrcS}_ zY8CEKYjLMK6L+g~aF5!E>(v(gTwRD?s!MUX`UrZfPvA!N8CUy|Z-4OlN5)4x}#b9*{ zT&r$VbU;!&eK596AC9flM`PRcvDiL+B6dulik;JEV%PLJ*e!hl_DElXz0$p~Pr4NQ zrTgKJ>Hu_3e-~ZT!*O8x26Ri`ghSFl#9!4P<8SIu@u~VV{6qZ(K2yu_xjF{_Rwv*; zY6bqHPD4?8I@V0r<4@`=ted_c>!+LWt@M0slwORE>4#99eheMbPhpevbJ#5X5;jl2 zh6eR5%vOJcU#Y*tT=fr_r~Vnu>c@CM{W}(@|H2~mODs{>C_W%LsIG&D)eZ2dx-lMC z3wTofHl9|u!n5jjcwXHJFRI_c%j%wZRoxe_tDW$sdH~*555}+6!|_}7XuPK$i}%$N z@q6{u;(W=~^cXyxo`6Tw6?i;74Ns=051JmeX)ne343V*Yt4w zEqwz%P2Yrnq<@Id(m%%M>7U}?>7U_0>0gu-N&+=GxLRYxjT#HC(iGwrO(|~G9Kmgx z6S!S-26t#K;7-jI^w-?L&6+#7UUL_NH4iXE^AN){k8rK#3BIrS6TLMr&{y*>uF%vf zEs|tt-bRC_6=rMN;a8eYn5%gQ^E5qCsp*S}8YfKB48UZ~U`*8vN3~`&>NI0fqnU{D znyID5lB1eMcv!Qnv_x`UBgOL?KfI|4z_Xfn@w6r!zt(KPi<(V%S@R)Y)qIS%HJ_H2 zN`BQu;V+uF(u0yeGzxsCNh>`hX|2^_ZEYsD)aKwn8Y7Cd7Obf)#Jbv2tgk(SZ)s0p zBkdU!YcHUK_6j!9-oR$sJJ?)%xAd^YRr?qnwZCH@?O*7ueThA^H4Yw@^wQSBe%b~H zk4R=|o8o+J3tXsegNwBtaH+NnF4uNPZ*6b%)%M2~S{GcU9fT9KLve(5B#z>LcKe9L zT{|B6pEkw0+UYn+>xome^KhDW5zf#q!*N<4oUL7X@Tg>m_CwsN{TR1tKgI3Z&ki1w zL~7-jsExtTwF&s8R)PF!9iz4B7^~G|yf*9Lafw-L!2{YtRBB66tv!Mo?FrOr&tQi3 z0vfbeFk5>AztY~pT^$OLh@AmJN~Bq3r}ia;%RM-LnkC>wRP~kwgFz$Hpa_Z z0k3M`#_QTvcvIUBZ)-c@*V=dRTWwFgr|paPwNCiGb^!jU9gII|hvP5W(fF%&?4gsA z#X3)HtDA@Ib&GI>ZW)f!`JlUQC63Xp!Ew4EoS+NENxF47MfV;~(|v$5bRXd?-6uF( zw+rX$_Tqe91TNG?;Zj{3F4yftZ(R!d>QuNwr^QveOkAzYL4TbQ19cYcs4K+Ix>BsI zJAyTJC$O&W4A$3Oz_)Z)u#xTtigkC;L3bCs>KKzfN?dgfaiC6uZn~y8MArg`>Dpj3T?cHg>w+zH-LbW<_u*5LNS!A} z>*gIkBT3aQL8ZHIKR7jXETBu^KL2HiR|>)yiyx(~2G_Yr36KEbbayD(R` z_waeiX`LL8>SFM`E&)&K6nIvbhF5jzcu}Xv%epK)sN0W+btXKn%RhWk@~!R=-qRgB zd`a@7?hO8-yMVvyuHbLF8~9Xr2mjFB#b>$)_+0l8|JFUipL9zd*76U#zXK zb>y<7zP=v5rEiFh^pYc2B&}I{MbeV;RY_NU2kfTrf<0_Co%KB__oB^JNk@JEBiAIZ z`oTC*Km5oI$vFL3oS>hG{`#pnN*wGk{Q?ZsFTp8#FLc*Sag5#%gY^M8P5&;= z(1+tJ{RW(^--L7ZAL4xd$GA}cDK6H3hD-Hd;Bvhjz4bBZt53icdIhf1ryaQ|`BHDf z&-MAZO<#=L^@nhW{uu7mpTgbxbGS!;>Bud~QT@I{wUod;Q@UoJg?88 z{~~<^mguAKpxzU+^?g};T%SVuq+W%m^;*2BH{xZz<RTnCFA#_4O+Mk@@-XotZWop5c&JGd&NC$7loi-8$V$G(?r%NU8OF$9|XmlaYy{%pCkX!-&r_EXV$kw9PEVmYGNJt;`eHDDw<<%e;UNnOCq$<_&C? zc?X+k-o+l753qISLu{Y<2*sICuw&+**g5kBcFp|v*mKFG%vQ&rOD1Ht!zr1aa7N}k zI4!g1@mdannJyTdIp}y}hxUe%Sli%%8x7-eu3<8|8m8l7gC{OE%){k|ML6HE3>O-F zaG+r&x*68s5JM0SGlb#@!#W&gcn{qTAK)0nM>yN?2~IHV!byg`IK>cweGF09&k%=> zhJE;VW(xk3slrAEEs719=xxYBUxN`>7%aHTP>8DyrRZ-sf`Nt;7;HF$A%+VWX1IcD z4L5MT;SM?*?&AA~2e{er5XTuFp~&zAYa0H<&W0B_&G0YIFw{EH*kP8T9(FY}#BK%& z_AoTXUWOJ}*U$z#8am)xhA!w}=#EVcy|J00Kh`(6U~|JDY-t#Ztqmiwt-<4j;IP{; z@x(xfe+;1~207Hs3O(WGP#1?dG{RvHO|mwf813MewHF<;B5+7n6b{RZ!+}}*&^apw zU9(gtCORz7GNN~u1%0y$adB2DuE;uq3$sq((yTK$KkLGYDGr;n?%>9(yZCyo zc4R%o?OBgbEOq!TOLB6l!_%y$Czm-qxA}}3FNgZsZBUfm0c&P=!P?o~v2J$nlim*E z?55Z#TXNFJp*3Y6hi2IWu%)f0dG=7sO|nOxlsa^zM(WU+HhvD%vKQc#>?JsXHhvCc zXyfNFj&1!MCS|WYxyE63_8Od@9fWhULr?lUc(X@;2VchH@35RP_&Y3SRQ?W28C8J8 zs_YL>20Hj-kV7yAJA~o84(oA)!^P}FSdx7Vzs){{_p{I8>Fi5*Hv1Z0&Ax@_v%kTk z+27&q>>u!Y_Rsir_G3Jl{W~7c{tItrzr=glHBN1CIGJ4szt3)fKV~<^pRxtKoc%T) z&u(>Ui^Ct;o$y)qJNP`i=c#QDqjKiqz??-mBxf0p$nin9oRv5%XAQdN1fAOBur((J zx8x+8igqZ<$wG6^e$37>;a55Nn443KhMYr~mvamYa!%oaoO7pY39ECBXKD!{xfTq| zEyRtv4?5KnR^%R{yejt?`sbd)z}#~foO=n^=3c|~xtD6y77}eHu~lthOYYq>wS}#@ z4{%%VL)@PG2zTT@!JWB(;_loRxF`2t{5-eT+1kRFx%E(%+YlppY*kx`&TWdZxh*h0 zx6Ro)f+n{EX6JUnuX4L%Zf=JrQ*t_$Yn4nlM8P&~k>>Iemls*a$`^`IsrcRU($ zC!eh^h>Z)n)fb-T&Y}Ec?gDIYe9)=Ba6fk$*pB#);V0IJR2@!P&U~Yy)AHt-P9XHV|Bm`P2+F7Gp2tA#^hy!y(2~ILvqs zM;I?*ALBK2G~U8~#&2+x@jG-k{(xhQKjS##W1L|89VZ$8!YRg=IL%n&TmxZ-u@25M zHo)1&#yHm~;C$oTxR4{+Kv>LsX&@}+y)+P(^IjSV-n^Fvf-mo-fv|%2(m?2F>`wd6 z#@^V~*dMzYU9g97(7A@fTH{dMY8;8%j2^h%I39NxC*w}zbllB*Zz!xc&Y`@~xB%Zb zF2T)4FWh33o@*q0ZuG-QV*u_kzKdTP!%=43aLz#}GAgiyewquv8PA<-F8pDFk5iQQTW{qky@ZzVY9)j{XH2I!jC7zgGF=$7|3_Q`97WAglHKQ3=H z4$138&6Krb2Zc`n#7ZxD9Q8;V`?Mq;--5A2aQ z9((0Y#z}c&yR{J(=FL3cMp&9R2bbq9K<~UI=$q$-EAphcDv$qP)P&XSy^XLqFW`JT zVIwWu32SZT&9rPMY@ua4VJj`$3EODdPFPQ$?S%K~t(_3YUOEW7Y2QJR(Y}KaN&5~$ zEG;_-J8f(C(7uE4IX!m}zGSNoLNvW~5|UWkNyxC3lj)(8kV?x=f|8b<1T`%?2^#wB zBy9h<}*+nR!&o07o z_SH@JDX;i^H{l-by9wX2Z8zb^ykq!F-YNW*ZMzBg>8G3U8~t|^zPD|4o!+_$H`#kP z;WmAC6TYU;9)ig94gQ_?9sZN|13u6D`FvktpsB-!zJjZ%3p$#*qqC{^g?_>?Q-2&~ zazS^~ARJ>FisMWpae~PMCz;0M6w_p!W}1#OOrAK)G!JK+7U6u;GF)i#!NsPPxYV=; zmz#pn+jOZ`KVgU|obp`L1{`79biq-OnbI)T^q`ZYkZ96UPBLX;vMC4mn2h+j$%0>+ z3Ng}DiqWPc7;8F#@uo8uoP-S11=N_XV3Fwt9yHy-!=}4VIrgXss#*`}ZIE7N1l zHT{lxroYf^dWi>2H7+^{I#V4iFg3suQ{#)y!hMr~-_wt?aNN{_@<~%0JZIrv7-<r_^oL?-ZM?U=psBdO~>C%p7^V29{yok zgwIUN@HzW+6&jhX)-4)YTX zG5?8S<`=lu{4cII*Sa)F*l4bY@0%N^gh&1=bXtNW>ng?LKc`zoLhhvg?G$xzJVybx}D$P?-ZJvo5dUg}`nCDUc+`I_C zG%rJ$*#~!5aaAK>5Shxm{A5sEBNu%_ittZjLL zbuIs5eM_y&Lxs024>}DMela(o{HwV!{$>^~4--0C-p00;R@mOs4x3myVQ0%b*wxY# zyIJ~T4~rA_qMu97Ad+~{BWQp0NpI_;t)$X4zp~)5tdCj%JLz)TRz4ymQQh<<+IBpglU#9 za5X)T5T;n7D9^CO;VjEOoNY9BI7-G4AVU{bn-Esrpx7@)kmbet?Ez2<1;&a7axM^95r!8ynvLy&_TSD<`%R2nl@*du^e1P{Y zAK~|wPw+?f=q_Bfd`9`ahns44$>1G+yX-;MA4zLgxeLu!pUt>wzm*rVBF;JiuAh%obMJTyfy>m1RQ4 zffiSn3E2nQ;8)Zy6ATABU0osEJkTGn9&o|y2L|Eo14Hp^+V~5#^Cw>Q7i#8D#k%%g;drHM@l4`T19O2`6pkqxq#*qlBmVSMb;T8~8{59ekF5 z7oX=pz~Ay8UX2x83+i2q6`TtiV%q`@iqHt$H9PTdIhkNKhN%)-plY}qnKS_|$f07VM|4BkL{U-^rw*KRJ zFG)fo?@ih1&%RQHi?)4T=G~Y;UIJ@Y>3W<)~)InzRgx|6}G}gh3!yW*a>SE zzJs+3d!j>OUu;t7gv|;EVDrMk*s^dqb}j5eKdlQT*tW1Kwl8df9ShrB(+E=v=Uvwb zvkMpDeAa4&g{;*Gi*0L{GFpwWoE|iSH)GZazKmHTtYFL*#GRd(;Ti3O7-nQTQRwD*X7mUPz(`y^zYbdSQEE3^hu6&xD>0t{0*ixn786H0{Ti_psZSYxP2Yg=G1^+JW zj{g+)#@a>wv2KwI)-M`_Zxs#2Mnxl0T;zccMdPta(PV5^G##54d1A|=dDyyW5w|C@4yB0|pXSbrJ*rTWg_9|+FeTq6@zas1VaxChO&PBb^wWvQ1EOJ4& zqCwZPgq_r630v4IOW4X*S;989$`ZD-RhF=Wt+Ip}MPJ;=5;oI+maxaR)#n_gEa6Lz zQkLLe#6RU1#uO=VTu~ZMC`!jkMS7f4l!eoZ_Tz5$nO%!Y@VhZsrPq7cIhnik6|M*avGCuf(5<*5I#2LHJuyC_XJ( zhkq2khtG;Wz~@CD-Lwdui#uGi2z`oOuvu{gHO-5ouw`)^wl0=X-?q3Zwl8jh9gEvw z*WxbNt++e(DDI8Diu+@~;z8(G+z_3M>tU1P{WtT4S=8hUZpDR^XV4~J7)HAz4|Ob>;^{Ne{U3x$RBUnnf4w?bh#y%h@H^j0YN(p#ahg5C;+RrFRUtfsd@!Qa+f zAY&^QQj6EzEEckhKSFhJ5GEDZxm7GA7dJpNN4QvsES6B-Q`{6kFK&Tf7PmoJaR-bp z?t-z!-7&tnHzpSMM`iImw$&7eqON!yW)#1NhT;$KtKvnNTf7YOIGcxso5fRa9TvVW zo{3kB=iu$)1$e*sQmw7^x3(AtQs4kg^nv$uQT{06hO6H)hWC0pVmfZeUC@BfL{aCnP@*dtR`2c?{`3S!) z`2>F}*@aI__Tn!k5%_&c6#h{XhtEp(;ZG$g_+yC*pOUs9 zN*|+p>F+qE^e-G&`ttT)!s5~zcm5LQm)60Br48=95LT5o#ucRkt}cBW{YzV6U}-z_ zE$wvYrLeoSJMJv)jhjpR?+2A0e`IGDeq9$JkO& zj4z#sveHGESi0;^ohC<1KfY79$??)p?}(e!KA3*zZIMVco~$8hB$pf^KatKgL?UCi|d8cCLtBw{2tNZrP)BYnwy zvX*>K^yCETDQ0{mhk5v@3HB%NF)zmeLlMWU9Z7a2(A zkPRf7vmVKalAiL?S;DLOvsT zx7jU!8mA90E%vzTB_mB)L!O_2V8VBgj&+nWU0~ zKFiHVew@$+XFb(WDNP1 zJSR;CaxIfIVj+K%CWAzxHe?R*C)-IP$t7pWkEER&<0kXSM9+7$@xIW2H5=UN=jw89|NE|Ve z$HZxrNTeXg$$cUj&0I*-AQ|L1xkq+QWZoh_ z63HaqGw~&xNi@kOC&_&xn#?^yT*)+&O)itiq`?%%O9qh1#EYyWd&z0?J*hdB&p0xW z%pj}DHj+pjrcqBkNifMK_lbDANaRDFlch7b-bg6#*ej>FOF$S`boFcc$Z=}{@zAKRS#GQl_ zIY}nD%<&6j?#mlAR=t93YQL)0JFTWGIOg&j3Deh!=TGo)d8(_bORV z){>nhla!J^LEJ}VGMPbq$$FAZa>-fpoYV{E^O*D@qlgy?C)-Fg(UHsKE@|{G^E2s7 zCXmHs6WK`;iIE&9Pf3js&I5Ue3@4MwQnG z%R0tQR+1=kn*2&ytmi%^Zlv}W?#Z(M6V;?2{@CKkLxY?g9jz}e&i2=`mw~SK#j+Qtfn{q4 zlogzu-Rw2im$89f-u}{QL1BI?{CvE^{DJ~!hD*bx`#34SYAQ5+o>6u`@bu&`iWX8VWYtWc}trD2|78~pu3!~A?a zrD4?IYc;d|{H62!d~G{+8sIovy58EZytZs{T2M&Xs?h<`5XS7bp7rCLZTrC2_Cd{S z`>@v7-x}}CQ8Z5)?E1eBLzS`oKMxk;T~DmX1!o0?d4)-x2bJ${kmGvF_F5-5TPw6L z54Igsv>s=h?)IZ>D|mU+{Jla$E03P_WHP=PQt6tB0bVPmj!qQ^_DyxKH}?qg_m}!uuaP%xSZ(bq z7m)SDP2t3sZTZSN&j2rff7^gUM+f@;ua?$zRrXyrz$&%&e#_27wR&rNV%t^Oo~rlu zA8Y@k`t@Va;n~awG&%jVI6XLnR%pouVsBrUn>pq_u9b8pB^j? zbaQleauRv2V!HF4EZtyV97mOPQkz=#>Jj8Cr5HeLGaI)KGn>=v^9?nx%{SDP&t7F` z!aBk#wPlM{=QQhm>LjXKGuT>T9nV-F-%zgs&J_!*tmScK%Tsv`C@;HECQQAKgPrUX zxK(#2`}A!sdpKEt`Hr)9Hs47U93Hle7wdi&*q3;jI7_-h8X^t!kuGOpVwg0<`jKHR zj}F}s=)(~Vv3+n*^J;}hP(ZN1G)(F{!7I?$Um8;0V6<%xndcX_YDP%V$`EO2=>Kk6 z-m0>jxlBVrAs(x|0#{0X$F7wIhE=Y!kC4^Y5!xGCOVhnWr6FsrBd@HR>J?nIkI^A3 zL#<71@1pu3EBl-4CtYVE{3i4jfsjGh1RJ&HYBy!YEbHi8algK)?)3@3 za-MqAhSk=-G9_8>eA|bjeV4DStDKTw`A~dAOWTB3Ip`{rOxcL+{Z{=@d_ym<%=FcI z`;WE%QT_TcDxblt?zU_=6^HoMHgEh;th)LC*sg5vl?SkT*Kb@`?enhc{;ZvnS3bI` z9i{(R`-bXQPW69$-c@#AdeUSzAXrq-_s&bF@! zHr<_VUlVL)4`j4l=w9cr!lNo;e=m?oJ(f;n|JKMiF*q0XAmw1`T=j(D_DnEMd z6|a6v_@CbcoL~D&@%mQ*XVGh);pN{0xFPsNd-b~kL*eV)T(KstDAu*~ zZTqO_(kTDjw7imUu#=4 z(VfrRl_A!1INK|9&BVaaFfYD^Ig4iS+l}E_fBM-=)(`Q@C3nBD0Iy)%{ZA`TsZUU# zuUE(h>$gyrIfa4tUvV7F752LE>?GLwL)_Y6T!>cyuhwh*)$a$an=1A7^YZWt4hs*l zHno0uS&xvrS160NZx7BQ_i#UdUmhUXCk^{O!Z&)H^A%Cr1@R#jd0Txa|C<`-CblxBDZO8xCUlzsHG9bZ@j_=0Ks zzQUqs7&lOWCqG-bFDq)T2XH0t`}KNj3%*@eHuU6+CCA*_DVJD?S77Lhpb&~2))48$ z03Jz%`mL3Y4i5G&dz|vxE++)Cdl*mq|?sN;hC?R&LdWw!o&m_x1O z7#+?-CEHQsgWp=@}awK z&8l7w)~i_>Xsfo~D|3Q1@9M>ytAEYHwzrHLBKl zgojvvNo}ZF=jp>YX@Bc&Wb4~{DbAMi%ZUy>rPc>7L5#sy8tN0`7i=p}^b82KzZFlO zF!}j}GQ=wPd}XEWIF1eEAaa9o9;|nJ-- zWz)nPwy1h?E89;B4GJ6^62e2)iW6v?uB)6Y1{CHe4XtcYTSKiD=VtZkgu*7=kI6x(5-Cx$|Ys}CcDBvs7g;Wc*MzIeBFcAS8l@t1@E9&YOKAC z_4NyTrP6i*SKY31hN_$-?Y&NwhOG+nwcTnJpUUMk=Ibr0oGPwa>ySg3g{<4Y>E^Dw z{`Es!b)9V{tA2&pCb5bSCGPUFYlHeK_rWabyW!GM>ttNHy6T5H53RzOBy3}pdWWy9 zvRt*<#6Z6=KQDj3jkdYCN~39BYyDPI8MxBJI_>(~9?DoBs4$H3bzJk-M>XZO*1tJy zs9M9cHcRRw<@3}2y={y%%*)T89&C@X>1eE%{YjCZbr)P~;r?OP{>!F*=dz~@)qWII z`%S<$))P_o8B%skHt=p(QS}3%tX<_71N(Oi=2}}r+d&`4oXVd}LN?gP!-|Ugh;r2% zh{e}Wuf0FplMMT}=CY#oyI0xARF##l)>zwAf6PHQ*2f&yT?ctHH1`lb|Gl~ENBj8j zMbf(Bwb^Y#P$;$5JAri*g2F=$L zk*TqM6MF6TrndaPesz;7$G&XqH{R|1X0koCVdE;dyKP_g`s@ltcJ;ABk zrs8;%KZCKatnx>-%HdXT^2T-59@A8IS#9X$6&24(s*bJfk(6U9`=a$p!C)8bZ*R|8qiwHt z-EED~`l#MTG=`4t8;tg`zmD~yQ1RQ;Uia#6Hka~8xb~H{A6E2d{VrAI%b0!T)L@s2 z-)QCCQe*uaqRZ=VyV|?9cVU~YTq>W~vbm36SeSj~ynwYX*1xwpIl5NdFt6VgRaRA8 zJ5}mlZ(ij#sqC|2!&laFxXU{F|G8c4y}i=Xb}?1%rEDlwYOCKaReSlb+ofuoijkM! z3)Oa4{g$X~^2T-5ZkNjT)rMYPQE|Jtav!*grjh{i`jzim?aFtp_6&_4oaupBuX~=8 zQ3@zqvOe=FD_WmiQJm_+S~4|cg-6H=S6BO1wkL3ur;>p3I%obVrTu{dH z_Drp;Z0*0SXzib3`7{_v4d+cgoDtqi&v0#1dYG0Tb>TP|}TE1X= z23x*hdj@M?D0>DwK;-VXazObtTt1#^$FthutUOt-Uuup6-*9DC*1g`m%C%S7sN#~Y zwzm59R=HKx>#efZcEJo}nja`)a`xiII*amm3QG2A(fY>=7Py2eORxN!t%21pCVMBg zKe^b8W301idEfS8`BYr7pRy(u)31G>WwqAU_U-J0vX{%}Tzk{XUA#8uIuEdqqGHZ1 zudvU#EHTlR*HtOn|2SX1qHG2(UwrKvuCiI>3|!u}d_1gDPaCNd5r~2`rvut@Bb+1oKgQ{IegI*brlhb;( zsyad^S8L4-4_B8#wu55ReUROGWK#$E4aJdG-AdSU;%ZuPvT4 z?EhfIc514hGPgILvdUW9DRW~UaI1D++^U@yH`}S@hlZ20y=eUbQ>Dzmvf=M5_O(oGZsk{iy@sKcx2pEmtG)BeA(nN=2;HiDeYEvp9rpiG_GZm( zCCAz>ev!g<+k1Z=3q?wcJDut>rJ0c;GC=wE-HH#2KmSX6)Kf<)y| zgX-p|0GBDGj}*vi zoezwNfA<))$j?7pd)xn$pKUx@`1I$|8KrSPTKebGzCWjCO}L{H9~JoL(f@O`o*$Oo z|7!)mx)|H<_=!GBM#{rCLde{UcBmn2V)lRRmYbk>QE5+4`amu`M@>czV~9ev_hV*PFR?qTvy z+O>D4_VfQgopD4hiz5P7o3a01#qY=XJvnjwUHtxb>hSnH@E87j^5JaMJw9?QG{%hX z>s02rlY}CmJl_A)e?R= z=)WKC1ODW{H^2Mu!}vq)A!s8HoSeSCLyoZ%n(0#ACesNj#|HBbZ7YZmoFSagpRoPF zR(1WY3L<=Lg+{5#0dzW_2ce`;baI%*Sv^xSr%_$E3XBq=Glwxiq|Pc-g%o4Flfp@9Q*Ixx&Pi=`0v>-{(E)hzaOvt z_rtCKPVR#K$$wA(2>9&M(!DtM-|?mY-o@{Sj}D*Q`tRjk{NBg!um1bTC;z?s<8pL4 z-9B|cU5$R_kio+LxUxJ>#{PSA{?Y6F-hWRn{P$!0-ds9-d+opHx50PszgNHc@A!{^ zSVd~3gV@%u-DPaQuw^WWdk{r8s- z{(Je0|K7y!^_9aDZa}IdeY^?y)_>0*{P!yT{(2kh|36W8{N}`y--9WBe>uOi#D3ul zr4qgP;J^3(^xw(l9gDe+`tLYE({-GA_wi0E{&>&Q@%gY%D9)(*DBlnj>>XOJmo+vh zIchH@+cKm7OM_XorO`tYm${&Drmet)@%-&_Cn{|^_x8TGf{;@8d7 z40ku<+~+q#L{Ry~v1WzA&|tc(U|FcIcN~7MR~2@wujQ#lP^p>aip)2hQi0eYEH(#7 zBvYXk>1?y`(%w$LS$Lih*V_fg7@k%ND+VWe^cgq5j;OkEMAFV{H;W7s_bKOjoJBtt ztZ8qKu!YxC@p!)>#0(VuR_C*+*z?7Kuu{FnXk1~Xb+KH3o-VH+A9vl}sVzo4EKMy- zgIGsgadHGlDhiF47};wg@<6{yuGW2q<7jH_y|j-ObeMDP8L5m+5LX zojc+ej?IlS*+$@Mp-FKy#K9A`rXy2a|N1l?X?t{d`Hhfd8bkl< zE6^wVH?)_^^0Do#JQJCsj*7t!Hh#L@;|v!pW*&;InFH87b#735y;{CH?g}ds?DmwH z8utBR_Pirp4?7$66D$L<1=G5>oy`sYFa zkqMrs%P1Yzg-l}c?bw0a9#x;m>6Z%JKTq}ZVS%M;BHS%Hz95#M-HAuu-35LOGB`jJ5Nox?4G8}A+$_19k1#>yo{Is;wqEX9lfvp zqL#}2F751P?&3@e=<6BgoNKxBd1r=oe6Xk0hv|;3jL~KkZ_LJ>x(4ejpmd54U;da^R8+7`feo+|5}H^dFbTCzfB zxXiv7S*BgH=bOd%ZfP(QW&t)CZAD>b@gyswB14$D<+ic5HvF_$UmL7cPO*BdS{t#* z(`;&HR}n(WGxEo^b1|%nJ*A_@hxuZCY>lTR+_Lh4`-aAP(d~N}YTLtTXO(Y>SS%IV zOhi4qhm~wO=bX$HBncalJMLduH z_}zZrZ`Uu_=yQP}^Rm}QkswL4k7eHxd^R-TD;U-2{&Avlle+4Aou!+|in46a0uzHP z1Lm0E)oj@38M)_XM+Rtw9G-WNQ)crFW5R3Zj?DCt_)7|?F!cG9-Iu|2bpg zbZBc^sS2TZ7>LO-ZoR$iR!{rqUNWDaJ36%`t+eWOq)GFbaJ@Rl%}W`lPkh=m`E0*1 zz%qQhp1v>y<8s2k4u~E$NsV!IV1a*5zedb10^{imA!Nf>{_kFum(aFWZlw zJ(ZX3r_Uo!O_^m!)PadYAzEHPiX>Y!h4s->SoqUfFpRk~?8z@N@1%Vl@?#gz#71u$C>su`PB~S#@ZDk;AwPu544<9u zM^A>$ZOW;WDHTs1J{&f-t$x_Xpj;Cbfsd-dSvVoRNsjpEg<44Rb>&HjcyMs{+|>^ z`gzL_V$K4|Lry^GmE86~+Sz8zg>G^{;c629RjjLnLQDy==hbBrN7ISyY6*q9VI6Dl z2~beoy29_p{MR+>XPCQ-4I+x#8cUp&Mm>h)y78pU_E9MH4}D+e zuO~WaT}x*R-5uBat?6#2%NGOGO{`K6es!)V>)3TVjh(!hJLa}S3g{U4b^)gywpvx3 zi|V4?j%70^Rp=8`Fx&l&uS-sM<&%c>WS(QBpwMygB&?qkMY`!bS;S-GJY7mS@yNm# zNXt&0O}Y|LgDF`XyeK zo~_Y#Z=#DuXMW#cA&(&D$z4g!x0;6#=(yAM=CzMI>#8PCAHh?^nANU{d1P0++rB7S zLr1Dx-8vm0q#6y7Jh7p4TAZ&aEiNV7ViEW@oOD=T$xdH)+-w^*Lm%md4L0enhbbO+ zn5MgxQD?vA=!)5HZliRyzc-Qa#;;yFBj3G&tsgfSZ;A%xO4=Uki4iFGK6bCu6W5I= zPB4%c8#H4qy7t2^m-vot!4;d!jPRyyP(*CtbTMSHLjL5UpXcgsp*)PVr;W7(OvMv? zc{t#s&s)>aZGy>nC6a}YiFs7;d7M4I*X8=#<@Cw>H|sU>74^_ZbS_$TyML1!H~eg^ z8HlWNC)cf)1S3j?uufiJi^K_7!CX!ctJ!k}Gec;c7EGCtDjY+y$F*GVG;(#mcE2v1 zd>p%;Jl-|90(kN_huw4SvP)l%o3Hc{M5A)q*V~OW>AE`QWBcHD0HZ-U1+Zzp!5TYq zQ-h3tBuxosFCJa@cJFYh!m6mlft;C^huLB?T^8(Z*L3WY*Y}5IMJCHLmf*#z!~oR* zQX@17(?m2Fx+#0%*Mht4R=HeSx9oPN?l$M5+I5_O*7xg=-S>Tkx<@rdw6RugR`cb0 zm3ty;q?8C!hW5m4@Ta;I?Pvr*?l$$1bo^L`=valf>HXG!eP!aJs!u?kilW4L9l4xsT}e zlH)Oa7HrDp{n=4`b9Po-y_wVC`?mbv0ZYabcMocV11w8FJoF5vC{(Zey$*C@z1GN0*wv@X`YCXGOkE3Gwb(ww5D{GKa? zbd-W(g6rX27-164T(nXRDjo8cSDnmaGvyJIeH-VCe$CIz;F>oNr!^C=N{1Z+@p!dB zMCMa`TkL1g&cjl)*ro82ImpqJNE4JgfzF8w(ynv2=+ozJ_JzCu%f#n1>ce)CqusH9 zAr$-ZigXOrWRLo3nVBS)DcOwhk5Ml*4LRha{&LjtRF$aIOgRV0Ijm(NmzGW2c~f-p(va5xH6428kr|l`D4l>pqn|nN*7Rn-@MQw>(XwLZgI%NiHlyot{Kb zS+6dU#+R9Jv3%V;+s1driC#vV-h1vBq;|*T9wsCej~xSc8Ht@7Fj?9n$2j$LiKdte zCszw4-Ub&k#eq7j5tx zHtDwV39`hC7trP*$s`3uUuqF|uPf$)9aGKS?q%81`l3xqh80d))h6kZl57WCT1qMP zqq;~su*n^)CTRF+=BSIm+8iT&sxtjy&CAFc!d;u@q-Jcl3o=CT=JTGEHUb4tpHbSG zPwSD#(7Nj(b1{K*vVqnk?R)6AYzjjX-dOeAc`5^0XH z>4zJYk zbjb;2PczkYel(cj0mUO(GyMOKr5)FJ=PCG%!!oot#aCdH>fso_ljzlFHu3raA1mky zw@fsg+NG}Px$rIeeKytlIBxXTe#{0P>#Wp5QDh(Mv8@jr*&ZRXhAHWsa4_Oo*`nww zKi5WOin@|is7wRlIU*O%6siMw6Bzn0D z?xTpEtQ!YN539$+@)3o!se*Qg7b!)e`7|q-9Ra&z8{D~#DoEe0Ot9oYVkrR)VdTXG zvYs$xD};6S3O*8Iq9DnUs(0w-I_26K9js6GJ1I@yWOEBEoZ7JdjmW!SP`#E3}*D?MJte63$NH#YdtS~6=YMj6bTG8&zYR9*D-gS)fPXC8VgU9qz5}xto!(d_M%v4ALMk zi%5kCXMUEOQk7<$(!{Vsf5hN1w@%JriW=1KXwW&rky&8DC-wL+%}izcq%<*wek;ui zo+cyLg-G@6$|BmS6rH2=TmYEWpWMxjE#K6_B)ZPKm3d6?sM4sV{+Scg5IB|RmW*j3 zs?3hE!!=lDAWtcK8uVoKb^WEo{y#IurqN^3v9_tnn0el#?MInK%hBvP-C?Xr_cf

f<>PiIcI@ z$yIA$Ym63SdO#_aG^rTf#%qp`o1JgF?uL`N*{dUc21Y^Vpj5Od*XJD5BW%cM_iLAl zYO$o0U(Kn7x@<(G$|-2NIcqyuE*GD-SYM>nQLBupPa#sM;|+o>YK3?6ivTiyu=FI_S76sPeExPz@VF%gjZkAcWuqw0CZ? z+;WRB(l9rs5jJf;;bd?0mgNZ6pa@@<mN^on zeJQg%vM(K476=@*ySx=KT|8k6WWzs@II2W(j8+0IK>eA5{I3IY1(M&FfK%7^{_}}V zJ3{2H#meFUcFOgZN-z>*o7sKC=!+rdM@WI!qC;@uKWbp_BjBdV^(WynAOSdh**_w3 z5L5)sTcJY{kuTcA_#tO%jFvcUB1?GbwlZ**mV?x&m=p-I;V>9UqJfovjKJb>l6cy| zq&PEEbDR2AhhPb!9C|b*MgWYG7%4CM!NuBJ;%cdaa4arMkJH4h9ErwFG2t{i#l%hqr_Nd_0jD4Ki zlEM|HPL5J@LAbGEVNB^WPGSVwX|3fPx88Fv2j8>lqse9on_t1)W?_X3!rk<-bA^3I z)oPUa06i7~X-!h<5^D`I0XO4g+>hrR6=vkGh!Y%4%`riXKpCh$EX=1D489g6NL`+R zpnYvZsgZmi0k=l?6vv`AzC*|a+PJt$h^fe3j~a(NAUsF0xT&xV^dzDagMnT_%FRSI zxi3W$unn2gl~F6dqNf_WJ42AAZbzh*%LH-i8VTGW(h`jIlZ}Ic7lW&95IF*l&@O&e z5|?gCYHMOLfk)&8?ZYCcQ2Q+H7O@AM0CdH*eq1jxGuEu#`2jymMRNbZYic7G_$U zeL-z0k=&Q)8o}ys$HVVK@Cs&gS0@)$%zE`8L#Ec1|P1h$F$BmcjX|E2XyB;znec9|Mj~}t`qd-{X zL}*HBZoALxjEJ%}IGf#NNgR>XCGHMrpDZyO4jH;!a|5&xcbVWh$s+J_f%e3tnDg(E zM$YvO`ZXTDksp|aDX;DB&N)xaEn8vS4Bx4j-J`v>1mi7FW2ErI5<%(wJD0tb#JR5U zWazGYS!6(42lgh**Ni!n*rGE=q@%mTPO49mPK8D+Qj?M=@tQ%VeOU)?63 z6b#{uLLd7mUTf!#LTE$qh9HAK!m>T}mXN`zZ`X5E)F`v+v0E#NNzHf1^4oDAM2qJ< z5#j?3(iCa38;)><7xPW{x$Y(2M~gM-&LsE6ZY0)y(?XPLg^uk_zJ6jZME+@7Lu^XQ z=H%)Ub+0OKk*)T5tqh%KXgd&9+B(sdVo`mI(MwWH+A3q(mu4uK1{qzyVk_5 zbS_yDxC@j}QT85|i(Pp&j|Nv<21Y+(jS|c4F-wi|roE2`4^knn-6$S&+a5tFGFFdr zZE#}Z`1uiu-rg|i7jcl5Ew3;n@LeJY_jOK6HDrD}0*aIJh9?^D&)Aey$TCCGhe%wt z=NsAc5q1ih>ttz7SLfgHEOXQ>$WT3k*v$+sHFXrZ!CkK!P;vCaXfH~Q@)aVkEmW+E zD!C8sMlW^`D@N|K_n0b-7_<(uxvH?Kw;mBR&C_XPPmq#TA~(L5vU^$yAIS`nu5pKH zo3AE<62fwxLpm8!^^!Rz*z^(OhHG9ZfnN?UDVFYieXkLhNSc1Ml~|%SKJ!+_B8jfz zaF+{l*F=DXj%p21to-cPY|-tpXM>W2mr@u_kA#6!XDb7(Nc+((Pmbv3Jmb?eI4?(LQ5@!cRG8LDGCraXkrc(-v(Meb zijgG>&1J7ZEmCZ0Q^u0)Z-ut&{aa*3bsHF_o;TvYNw?xvQc)b@_RIP@gbF1fLke0=eY%Y)6dCK)YO4BEK+#d5ZqZfr8k)QI#pgQ9;}Zx{d3S@+us z{D`HfX6-OLHKJ11;&lK>I=o=L-$x{iX^yF7voI1@&_{e>Tq$ryF zd#p9;XrV~FiffxF74|5J0g56>|CJI*9koJ<1tpgjirvIiXg%g(qN4pv54QBU8=Pmq zTli^ekCTU^dIYgE$Cw(e$J|H9($`00ad6P;x_q5Hx*I&yTQl>AH&XL($pF6^+YSZf zk_&%MP_|d-i@I&XL^HL>bYg({kH@=Sx!FA%-uHZaX(HUtUmM}2d9L7XI}S+BchUw+ zt)2JHy3-5vuwtJcVF@Ra`cbesk<~qiMbzz`jF4udLFh8j>%TCQ^~jthb8=*vxFIgN zsiF@nDMC#-?LB^yUbxEp*&nfRo{!C;?k}nMXWdFalhtR*a3?4&zAfgwN8L@ofW~@Z z5bqk_52!(5Vt%k+mCdd-fQ#l&pz2S*F z4RSf^uIog~D$nXJ4!%&a`>1Fd*-170BR+29{ok;q^i@^2F^S5Vy@^^_`DfuVu`GgY z(RO!S2%(ImFDReS@+Xj^G9O zW6gErq3j0;miYkQvL3)Mb^}Py){oIN8MKu?#ykIQ_stB7OeGaPuEjZ@rT}#7-!QUh z6CNO>l%-K@nf+Qz!ii7o{-@`~zT;xL9_&gqeX6%;iie>uR>RWPrx=!+>th>jM@{EL ze#6mBLPdY5QK?Mm9oIWFCN-7tGVT+{)nI$=>VNW2sFHlxgQw%sg;QcKV(n}9}p7| z70h}$d7rJb{t?~FtW9F>L3Py0Zje-BA;aT&OB=r9XvZ{Ys3V{VsJf&jF}h;@9!9`W~P}{#;1JDzavmSll2zb;jD) z1upYyRs`H0wm#NppZdElb$KWDRDL?cH`@X8Z8RUO)c108pIQ7n{E#J;#SUkNVwFu($X~Y)X`1KXZe6CM0;@+C527HVXrzvhz8(b zQQpU0EtCN_yGX|9X6>JK$DUbQsU5=RJjcz)t{L-yUMd4BL>$CrT$H7c&L?)6(VH=Y zuE)vXEY(GM+_Ps=y&~-da_$ubF}+7LDLes*U^X)?wML00YiVRq)v^we-1T!2?{s0j zim4Rc4yGwmjS@@jCfn>^>oivvm-lD$-B6MzWYeNsN-T{&!Y8}tit}ipXOPSoMylYsPHf>s6Qz3;j^ebK%T54eJwJ{qrl&Ms zF2jtK1tTufK~jy87d8ab$aBb=B1tC|Ig2L3(F`>UgSA9XLPr(1MqRIJNGD`s#NqFJ zH=AxcJzFk>tcGcieS+2O!mD@^J*w0bC{pS72^+OLCeZxy85L>y=W^eCc5+N!{>56H z^R*lavS)$3)lbmZVW8$|WWdiq!Df4v5iUMC#fXZ<#Ck5%b5QMco3MGdO$ctRZ~>M3 zKgb6j@r>y10gO~sV#NQ)n>80gfh#36lLF&i{YZl_LF$w{TyV|ovY;`9XP7h%jNB1# z2C?avKO9L=jgM^*nJ4z35~#ZT(tW1VHNU^ULHoFt@pP3`e5+(lQ6*Alw2X|V<}60p zR;iRiXWq{44rdTEV;RzC*p6uEHW^`qNTRFj^3n%0X*N(|F%Qz$vzbm9^H*(=s#39@ zX=xG)8U22VRUZqhpIaWN(f!Ta?~^*ZCkWe$Ss5VtTApf zIuDVIne4dynIT##d1hm}bX((sVC~2Bi%C@$wzTnF)_P%LTR_>^7D$CNA8xss1H!OQ zuHAg%N^3{U*~6A4CfH($3CKHt06s$npv5PGGW3~ll&#q9q}2@NnU7>I?`ZVMw%XgE zK*SK<6FkOSd(A1S^@4s7n(U zg!iNe)Cm(AmRb_y&!07^S=g2*eH?XvRw@PWZTn(DE9Ck~*8JvG-jMMP*d4cc&nthL z62X_U0fNVnqXOI=Dr17iC}P04^L|5Z~m;4fe%l0Sr*AbY9F z_fa2krT=9icN}uP&@c>>l+s_$SC~StdF&;MUcbZRhK$ENir9|_?r(jZKO;5$ayX*E z{nMM=!<5tK_2Gy@I)5Kb=lAttn4n~iC?xZbelp2_n($a3&eplfqyS73E#)|ut> zfB{oMU*m9JI?5VThc$}IbF+Pllo;*?pr#zX7h8z2J{AP|^UMK99MUoubbVu=m8lS7 zqH1v7F7fK(dMp1e>;$+^-mCE{t((fuw+#{G}iZ!z14-)@*3uw6`EU?*e<~ z1&$P0IcL7`mqZ$z?Ok=!(qJ#w=*CbHNL^`b^aD?%nc~{Es+kmR_6F7G_0P4G4;>#>7;UcIuZ8@URRlkU z*D~9&j&oVDBA#{EJHH>Mon$V^^{xSzLWX0n#KD7}?=c;;v&&7MBKwi+(%OX{JzU|0ZwL_obupVQL5=;G= zdaOgF_PeGC)GY5sG_<9XqUk23>Xc#xC2sRBLgAJTCSD@U*Hn#F z`lr&+Gv~^Xw9r%*QCqC+W%O29!>SW)Tjtu>lO0mHuFj|DdUB1D0coK;x*xrQkQwL` zx9;)t-9*RqMQRt#tyeg2(rVPB^Hsx5t?iV4$l)!2#FDnf>i%ZB)6MgCq|NTOo1eeR zB?UgN_^>Sz!?E4EMZNjOdX=E%?!Wco+BrZ;j!&8+Evm5hNfQTZyN$w(*@Y<<!3Y}%j@ z)E6wq(&;z&@q8|&%zNJSTfR0FZv;CsM8y8eeTY)ZFu-V0%&RZhH6p87+tl1aG9T1E z;zwkFm>nM`I$dx$NmCWdCOX>dh)IoDkn;voBz#E}a$bKboR~sE?sM@G`x{h6ymRMx zM^TRO#%$BaF>eoDSlxEvjR<|BqE$w9eR5R&2OLVEzWjfb?=Vr(q~Fs?{w+e|8yWwI zMM+%cJLO0D4v`eaw^-_PM^T1IigL%P;{bafZFQ24@hD+aCl;(2RRC8i6@0Yz5Xnl8 zS>zj0t;mq7O_IO*Q*qEY+82f0k zmUX)1lzLyKdres?3I;$=54e|2xM1(2#VYmo5o3!KTeZE>;Xh~6N0ENS;z{7u#MS|h zGzVf2QZ1snAU=-KLyJ{&qbvZ9n2!mTvfoWPCPssWF5#H2$bRz<&m24$a-88CREv1P zD4y3N&?Fy~^KOWyNMX$FqVRFNx5!C!knX%>rUW&C6iigOMf$4s0c|3SiW`LQ&c8o1 zkcANSUV7azHYWHdF{IQ5M@VJ&FWuZkX@d-)$dO+U%LC-dQfuQ-@|vl9&*>pAP{B@i z9wwPXl&I``HJDXwQ$pA}wzsz|=c5xHPKSXzEGnKad$?m(oG4s_vu}V;qw+p#LyjoF zzRjTo?CoB8w;GB&OjI3C)Yy2XYW>)sNb_M&}KpvI~#K$nZ^b^wDCy zd)f8T(Gmj`Md&}p($C~gx+2#zVOzEVibX(ki26>`O^^SGpeBoc5vE1M1x= z#kn<~UAZI)6iJ;j!O;{oN-Qo;ywqi?QDV^+x0gzdl1U0GJ}&c( zi+95k$+l-cIa-mDqSTV+Q-ec@xZQgOWE-D3Y_AW7a^65@(u1y&43;Qh zS8OosEHg*NrteJ-H3kY|G>Xb<>kjz}VxCD0{P28RvQBVv`X5-4!x397Xcg6=Tn0I> zph!kEM>!r+Q(8y`XAt7i?m8zLyLiWMlk%)?6{xDP~j*!;O4 ztT^AT?b6h;cIZ38a}=EQi3-o2FNHhjrRvR2p~=OT|C%c;pfY{L5YhmBjtq!m-ODa4 zdMs0>x~FfQmKbt8pYx8Fou2fV3fV%FPuuCnL%;GAwq|Xq8h9fyp{*-sPzAW#QCJnr z0vFX|p@tC4#Q_$+-P{6x=4wH6zi%N+$v0gnO-!&eyd^w1MxiOCu)@?p9$oL(hNKV1t3d`Hl*1&(wA-ntXL8;z zx+P`^l0?u0D6C4k=U#_XJZ2I%TsE$Rbslre8tFTR@*I})-;MXNr2D)e2Q|;Bg=BUr zw}%cbLN(`*53C?DdBNxeRuOsjOkBvr@_6PT?R1}grztO=uAE4ZvMFITZQ(MJRfP#AqvpJLx|DT2y0h$U z!{^W+&=p_noD?~2tYhq_^_Bv;^}_BQ7xZ7e7UwIb3~7u_>mW#R^{dpquQRO+!QIe~ z2f^gJI(^kKS4f=m+$H-2swYya1l~WgY+xS4zsUm~*LFGH&m(L-GQtxELmd7jRv#Y6 zcop&lO@mu=C2sqmN7xB(X2xQf=86=-lYg7ejmrAD2rGFcm7b6oRms1VY{Ji?q9|_F zB=;PPFHLyUbPHk@$8%Jn+vEAzkc^%8^0dYmTC7fZUWD@m8ERG7?=K3dWh@X=1^Vq(X9%eoEs&bX-8&lUeEx(5%1-Vc>&PrM4(ls~80NZ) zn(LewmY0#TokY`}4D^+y>=+%HUY^&y-)-xJXaK1v4fREpaSO=N38tyhTWPphRLla} zu#B)JuTJ1pB=O<(&h+}bn@--U6BO$4yhN=UwZ(zVNLR^D8}#Rb@Z})rzs=~oOpb(-_<1h5QQ_%G7+(^T9ux- zQq?MSs#=8-r>a(=O4TZ)_`GTrQk-Z%W}W;rb=!&}_F;;}aZB=RB$$4jL5kv}>co&A zi2GxX^n@q(0IZKFP2Y&v{1idUiN&Ay*=&4oPsI!#_KbPQ(7eGlfWh~Y{$3#$A2_m|A!Yh~03r!;85y51VK}zzlCn92g6>n3b zpB%Q!*H7z6Orl4(;?)C7T5j1}j5Zqub8^5B1@onLwDE+31!WRzyEJ#Ke(L+oOsZk6 zw~M`zCiyK{%e+8uTJMdFf`6^~_JESTwcm4M50}KJ5m)IjZ$TWE5XkoC^ICP#GgPT# z@fLN)V-DpE6ZF2@2&?fc&_-dQPENQNgt(U3)%WFyX!JP+CM$#OE}uIovWio*3$7-c z*CKObmcmT#7J&~*GKgFA(XZ&4d9^@C$??T@JKl+@#{8Hh`!|t=~P4w2675JPU5!}9uhINDkd`IvGtkLN z;(tdU`{G0;8UnaFg+8bJU-7IK#a7pUlc<=|3h~@luolQ@ERO}Fq&_y7RRd93e|M@x z;hn+)aHmz}^2{bGzXz@SECyQ{Bg7|o0{Y`{Y!#lWp_kjmkSNYQg)14~{0@9sL(}6I* z@Ua3rFu~x`4k!7>9;KOcw6f5`{xLx+XCp6G*f7|#H100ZZpGCU%QNu zcy^KCHENKNxmA+Hz2p%UU{i@HpsI#XIvbTKEPQR1WQ=Js)N3k?XekDGZiP#h%E6RH zu0{eJhlOuOXe;_KDe|1X%f`iOi>wvSMb-wr*V}E0XORLb+UcuqS3lYIACst4_GPIy z$%0jyfgb68eVED1>m!Sx*eA*Pz16M)++9AKSRDl%wz_Q_3MDkVear;q(0u*kGq;~z z7WRpqWAw48i8cboM&Vgdyu|O#e~xwP9@TQfPMGTY zIJ8fFlv-4Z5RO$+Ol|ErmqTM(A!XdxL+x4)rG#{0{(5O(jhPB`ArwWX-EXM~6LvqE zB(#Q9=;-E@0C9li&^gfU2t2G7dY|l0r}62#^s&@enP~ z4(O!z+*BMJRvB4q#3kb@zX7y=lHkFpi4o3@x=N~t@-N$P6_uT}`@?ooWm%whqL7SN zXgI&Avb^S&@dCAMDwVgX4V^%t13O0g;7XCKsb}&WwJr9MR=`-8E9?%wDu3SZOQ3a{ z0_r0sr}`-)_Oq|3#caB;^c%#)pWLg-95_-Y=U4i=Vw4fqO>|aPG1!4cmBKmiX|V>B z6dHt;G4#~ILvvNp(@V~Qnwa%XAF0Q)hX_hNMDHp|4Oq&QQanYQl6FEq4|-YAwr+VK zm;tX_Xw*F-c-IgS)of>n0K9cqGeF9Eqna==yKy!$c<5t}%Gt0Ju_M3=YnFn}aEjRl z$6fo^stRewkGX3XNl9SjTsA-jI3e~^*T7xqEwTtp!O7{RoU;UGn*x~P%A9fDjgah^ z()f4ss{bQ@yX}*LYF(Xd8o-SW;VdFgmIaxQf?5)j@zv9T*+dEtj@o>BdyB?dw{~-x z_X@88=ub1uM2qFOy$~&TC+P0B>T{WHkGR{UJVd1d-lQ!!e8|bTx5deRcm2&=v0Gl5 zicHNhTsJ!7O}?nBRD(WbIY`Vv2s#<2t!)}K#E11BNKc_QE-fk!wXuerHm#}MDzF5N zky{~a?n4&V8ZpVr9HYk!cdgc7Gi*2|Qo}q(RZ%qu1se}Lpf_L4;>{BkErx|Js;_C^ zu+8b(Js*QKjTA_Ey7nCtW^HARhkgTi{MtIRJJX)+O@SG>?xq_?*+;+PPuasr_+{f=qN@C%AvtzZ)wFhs&cpYfQO=TJ| z3h7~JWmZb%^}kUDq_1r8rQ^b<>f>Q zq_hikf>wKvJE`Y_QYouzGV)b#$tdCwewI1Xa?e9n9%Yw9E{3AcW=}6aQdHU!eXPRD z*!d7QBdwhCAmJOH`aB)Qwdt8xXi9NgOy2gR{m*RSeJeNA9ScLZ{^`uLRX1!7C`(m{ zH;BrfeFxt2-;A&Ka&^s7Hnu5EMZ-g6x*uT^e+{2thxc3~ET7)33X3Ik&HAdv$R#zG zK8}d7Y2%1Lm1I|imC5-Ob!n-11^SdA;VHKn%13O>m2Vb znu>#gzdxNalZr1#89-lj`vENC#{l;0ajMGfLw1(eE8!r435V_UMs5MlQi+X64!8AFWwS?=4uTg)D^*QMn zuQcoq&oRm79bNA^CMg!0yzDR`x55!}vceZ~kCDq|kI3r?f2Gvj0PdEvlh6&M%9-U% z4@ZONyP_pQb)dyo1AOtHf>ps?2cJ?@EnAFcycT1k%52{v#V+K={Pmg{9pw`Cx zGVyVT6qT}37WQ(ls^-g*ES-#is;Lee&cA>KLyKdQyCXtGwL{Gj^8}s|(hOr8&Ks1Dc zDrp3Tb@zo8twBt5ky2+f_ACB}9TuC2$hw z&%C!|(RU>niXX=-tGIW#bBw-oi$URyMC8>QPWIzi#lC4Bi38WN!eo7F{ zwzqlQqNsUnPo7wXUuZCfqr6=OnIAwnT%9!aZ@R!q@LJAMZ2P8=gqSC2qCXB$o9|P>U&hW>D2Yl-4G$+h(ll zaf}UKX^1nYa1tFi1+@&7rnRxmJZ+M&z#g~5+P52^+w;uyb1n9UIN_Gt`o(EHiJ+MB zglGYCedwf!X14K$u`)^i;>Q5h(y7TlX);TZTUinQ#`43TP7w5^`sAN~ z{{HjNEm4Iy=@z8I7fQ~EIavhZ*6OxnOGfHWP#mqm4*8LNfj5YO1-j>|pfBeoZu$xl z--J$$r52yQN1v;tqdOrEU7!TFGLu)vV62rOl{iV2CBF7zw7nyu?-ayDvqNDnP*{cA z$swwC%eQY_u2|}eesMW?(7gwZp>85+6)1tc_Q18C(>QfGuPT{;r&bwEUScnK&GesfT}U@cG92U zCKUq%nev<>N#cP<1^rf)fpI~K zE)WMU-hR)BhnAOqktIqdo zMu`StS8cx`b~@0L6W{q>-DxWODTZeYPF&D>&}|*CwLijqjRku7#Zl{fbXJ^i1 zydHDrKa5V&yj*Z4(NiN(%^?v%C8xH#4sVx>q&!xRJA5Mwz`Qc=U{Uz8QigJ z-aXo-I&3kv9acpuSh{Fu4XLdhSsOtq>Zye(`VRbeGj$@YP~}3zD3NQA%hv`gKj#=* zI2+F_6hOP~Wxaq(FNw(p~7tqEW81~PsiEG+yLlFD;JXu@g`;`kk*xn`(gult7u zw-Kdh_GFdHWY2Sl}2$sRnZ6g~gmH0)@Lp@$L?7M|LSD z!f5m``m_f_Vy75@Y2_pAN6rCUaOpJo7uy*r%ZhI1K^0r>&QIu=OgggCQ_eH{_1bIL zO!q8Y+X*idjN&ayv*j>^xR`oeUn-+Cm^|hQ_l5xOp3!men_eL@>R8HK>lPl$-O%g{ zC4%RR8EnamD1%Vt5tPMk=vPZ(Eyjw0Sp+jxOR!HkL{JP{L5}$c(D%%iRuAm27%diD z6c5`4c}Vti!E}MNq+2UAd12b-H1z3Rz3rbq!m)-DiKes99fYLp43N|##0ogqi30X2 z7D?69d4MiQuw+|MxH~hNG0^w2nZgl~nRJ;bV_3T&fn4L(v`wa0UzR&VEaHBP<7)j`S)?iW?iFjamv>Cvk3vgf@|77&(pbV>NW*)C z-5jGrAWrd87HO8x<`3`8L-=Br$A609=9K3;4xr~HtQ`+jux_7g|3x7ai$2OQ7Q25o zw#PJ|j)!SVjd74$8$ap8ok(TE zud=ztTHCs<1x#h+-@stq)^tKK#x;K%vjtaz@s3U8t^QF5WL{4axs+{{B^p6Hij1%_ zWp3~jwkyWNLd?RtJ2Q`G4$nqmGVA7@juIn>+;#)jG5R_!=5s^0q!-%hjV9P-e~aTT zn#TMv;OtYRn{J)TfxpiblqKomr9#{<_E9wtS>lJ!4$$Hr@CimsOyN33lyyi2E|5|f zFFzk%3Tx7aIObYUQ=KrXm2>2`&&AO3k^wqj$}GC3m)I}SL)>kqGe*TNGmIs{oU=4Q zWywHHnaqoKF&*guiQQ6ywu;Z}{F+K)A*JCsE+lz?J~B0=cgdS$@wuP7eY0t3*%05AhQkJrG8Q>g1 zbH#B0%i-n#Rw?_&ejx2Zf>qzo##uAiHm0iB=Ncj?#uX0=#fkcHtT%~q)SX*Z-@@C? zGRu&1cwj5_NO$5+bYc=(CK4q|fp(VY1qOB2>0~c!quTUItqS^{X$LuD;IIvkEJ&W9;^b&uT1POFyy+7&UU) z=TcPqKrBc#Ybr7yx+;=kO>ippD4?i1G|#jQ=+N7-e!!Y*?Jo!A2oCErC<_s#)Se(2xzCh)IT6ZcC6A*5=^pWH8%xsOfS;0zZtgENe zAFRwML+HJ{(JHV*j7uS8D#J0Ul>2|9^aKf}2gqbO(T^nfwSf22CnH^ORubL;nUe#_ zL68xV^{@eFqBY1Hqt@S6Xe|x~ssd6(PFJtLuU{61Q{(n=;^V-ZcjHtoaTLfMZY*D! z>YZ$f;;DfrX zh%L`8Rz*F=J|FR^%qSI(BOf7){BGHzU*?P_mq1FT$tr_t)C<0(V^o+HV@;JExt#I3 zz@kL1JTO>-ir&Z36Mes(vqbk`z0nYicPZu7Gw;`##g?j^WPwx~RPS4VScXknx6NEb z_~*i+sIm}8MyEPSyvaGnymEx6b;DMmA*rTskd%>KZ^T`bmoClJ4v8+|GZ#DqqVVy; zX--CK;vVa2M8+Iabj2{~F_IHJ+3oOhnNzPoQB_Y28dkf^&|)r7T+6`S$jLdC0T$b~ zIJAUZdwU91n7D?M{E`NhZ}*&)Hmg9Tr#&T`I(tu0o? zz_LWAQqjf*oFu=DHu-13XN3$Z4PVYPN=?y2`SPAQ6v<}Ej8U8xV{>Pwo8LPd?HQ#+ z$||4H&m25iRYf<48@b{IvQkgK86`X&ACcf*PnH~RB}lP_VG477d9_U z51Hcj&|a7x(hJif)wA+Z!@Z<(6GeNdYD_y%tS1iG_%Mmybv+&wR>py+rq7egA<{lV z`V1!ZZEz{7PUf`CZCOwPz4J6C=HQ2Iv~4a)RP2{@DhsH0xipLAZt# z?QC$1sm5^@&pEA}iRNf1LoCb*wf$l>Y`@nlv_z3Rb#uUuViI5@Z`);}S2%-y43n5I zID1K9j|fj+?X@7(=QTkVQ<=+}!0*~2?%RCD@k}QBD6s29hGXZ1 z$i=nU!tt$>wu@SN*|po@SZpDky6j+fYz@yc&pd}zXgjaBxEj?360IC=WriNgxo|gN z+riY%9HYFjOm1?l24T6Hi>*v|YbygyMnrl_&CqQP-F_554ny)bni4cODj#&Tno*ok z@1EuB$}o=&bb(lEw>kGloK<0^Mys)hNWHH>qIq3vdW+fRxR#RSuUw>$nB%8LV(Q2_ zq_AReET!-3#CZeoDffzA_8lMAfER1~;ft?l&x}(aYHmMegDrwzF_W;^99Aol4aXh~ z4?<>ZKi+dMVrLi=g!Mce>PIs{w6I$vT2L}|qWhtZLrAF{gUKyQjkU8yW3Y<~&Z_xt zWUfN5A1&;vG4Td(H&|aNcCo`BK0{EovdPlLbUSneGa}w8fz; z+fLk;CVUFquTzK%1&fyoWUpk_I;LWgaRWYwEd8@?#k-5T_)%k_UT+giWyvku7kAg| z+oZ&Tp2bpgJGRk;4&e)m)vrLY@&*kX1jNZ)%>s$7KxzW+bQ_;2DLhfbIyMEwI%a># zo;WqGE9EQX87ENmxoG>33Vhn|MiIZXlKr~bmOh4z_F`5-3D2ZF-MXSaNEhs>5}WR4 zUh26*xgQ;!GN*YcPFfsDdq{__78q}AjGvU~wnU`wd0=MX9|v&z^*IJU8?=__Q!x18 zVhbjgbI0x1+?Dp=gj*eOsTn-v-^If>-Rgd^2|P#cyUbew74~L9Qt}pda#-R;Cxdp% zg!?;=q%uw{e3uMoo`jST$GQEiyOT1GV<29U@L;8*vx3`bbCSMx1@drfdGi*tknR3? z%sByCD~J)Hyf|6<=|O8s?Na^x3& zkcPz_{$i)gOstc{untR$OhO>upC7b?u^ue#olA)dXfT?OnT#$FufV2<(F)RK1(R4Q z|LRE-PCB_p5-N;rpdL}e7et9!aHbC{;0tGzQ!9zeh5YA$Mp_1J`j}1ag%V?Baw)(( z#c7r^yH+t{ra!?kp+#!RJe%u2n`XRPZ-> z{aCgUshM?&8eVf1zf-eG#%DKb2une&nr>1ULUold&Ce`YE@8Zsu^Z zMHlj!Ik=)|O~fl*g;DC&DY?a0Qy<}aacmovE?QZvIk)AaJUh?E&=WIPl45^7bL0E4DrH3ZGkN!UJ7S1BgaXL zVMg5J`Cnzh*+s@l&N9GkX2gLBkYi*b(<0VP4-H0*X}!>r$bP8}n(VG0b2e$%8-i16 zmTUx`r%bo!9+8Au3KRNa^<}mGwi=|^`6w=H28dT&n?pLE$=H`i=k1`t?u@mmU&Kwa z7K_L-z^ht%^S-9S{kpMvgoFBLtAkHi^`V#7RFjmvU&*asuB>D$14xC4aW0U_ysbi) zzTpLzrQvK!>*2C13*(slHhpnks+GgvE2QaiwNH;RWzk@ksOJw$*94noX+S*l8Kcd$ z6|4r4b~B}t!?a%x^GYs;clmtMmJg1I_;eMr|00v6sN^YF<*vxkKHnUn#T`R!Ad;k4 ztlGBYjd@6CL)&B@%DVB2`=#k5b(F4rSg!3UD?)8t{V*bqtI%527?p;m^xKQZ<910c zZq{%}@gWZ|agxge11+pH(O@+^)+u_pc@I`Rw_vn_*aBL?Rl_knwWUi1ps?(GO>KX_ zwz%RgOsv;tL}VmnhBqjRL{i)~VDjdAI+|~bp|TI*kH8vR5t-2{XlpBSu2TrA2CG497`2{BZZ%GO?ikTET3O0mDyNeHQDQFFg|*Dk z$4OC*hHa%4&GyyCX-X{%RsKSBNz!n3RDG-VdP*4n5Q^4tAeqoUOx~%RX3J-r zDO*%n+3GR zHUL%YqLz1bM-|+J#Y@*-5|q5!2a%4@UiV1}9o;f8f=dV1wl>FA$O2Q0Y>JVR)A3^p z56NnYHYl$pViLU!R-Zy+z~;35VAS&xIi%hS4iAo zpfe`{N%6*~t6J_shNVTTi(xT~bBQ1!v{`u6!DP4c_8DG7u0 z?8|WFM<3Tj9y!u>vB$A$f0s)5>@xLsG{#!Z*R~X>ir?go{-Y*VedX%WdQYSjO;I7~ zm^IQqI&SII*KFB0RK&*i2?@JF=AE=2JSR)os!PP9ZyuoBNv=$~xQ?17bkmk5M$MMn#zi8o{Q$||nIpX4AuAg@!fgDb6 ztzkJ&T+0Wk0f-bBn+1R#Y%PE21>>J9qa+FRQ0f<^d$OG)QwGP3nP0@y-RwQ5UMY{; z7HqPt`7V}+8Sii<6hk%zAFI^teyycFIn@gb>TX<-;xl-TzD5s{6v6xFV1#2*v}Q>> z5PH^Rx-6f^%)@gDko57aP$KOzrQdRzutR4vV(!Ud@s0J8srrnXk?y0zul2UUUa;i( zQ6P@sa&u#KxaN+{qpSvWEmHCI6^HOiHV9e3ZB^omN?5Lp>?VW;c99(!Q+#8AJb?VFC`+qI*#wa;wM8kDLOZt zzp*}uIl7Cf09N3tx$E5C3GC*~-6<<_W;!rX->U*ukQ6~WJw0bC=i!nzO)ht&U0e5H zewNTd-H@iT4rrb6I~7{+8U`i`)sAV((QN-UxgAzEbp`7I_cK8+ZYYutziKh+13l(vq~`tSwx23FN{oMuveNw!&zFeRl0bwXgJ*gfzz zLmk7ruDf+!VABZxLZbZp-_k^p>4(My&U`vieXYN-?x#*Dax3F{V@0r2vqq;#@ zOzeO+g|5{xK-zR~2b|us?R*OpB0mhYD`Td4MKt4}R?hy|18BvP=M_gO{rkiAe-H9* z;EM^z%`HX_LRyR_7p{Wkc(E38TCz6X4Qpn%-E5U4N6I_~rjXqv?&g2{@4uY!o?+J^ zlCk}zDf=9M{Xc)k@$;JuAJ?(M#5>S-{Znd=1bdUaH+7pt>9gj1eMG->HzyfmCQRBJ zW{hc%ANJAqe+8u8T)8T)b>H2qpxV8k)|aS?Y%jHYp%_ z;E>dwTa`L>x&cJJqo=bybIuqR9M^R`Ag^2c*3Nw#dkQD2wAv@J_-gm#D_aGNPIDXW z0QQi~A}wse_amTDO|!T0ZThBQZKfMyIw2!?W5M?sl)(2?w=t*z0L35Nsb z#gyBv26-Fp%x3`movmZJ2HwMn&y3u2EKI8`99GpCf2$TScDui7pn8X2e>Kp2k;^5D zGn$R7K^N@U{K&4sg}OU|l6s3_q)xWTJTLwNCWH(d6|^vNWWiKao%+bF@gQ2o`}FNw!zvt2{{6MV;&H+inT+wdO**=KCto`G zaJo=tnJ3LgNubl`N0Qmx*mI%jp(jvump%^52`1p3Td!%Dx`{2CJo#U%5Grx(I~Us* zsrZ7^5A5j>0Z*I@5#I(p-#rMiO9%lvac8xD;zIWtLGOOrU2LYj9*1;`?Dw?7IFh&0 z0qrU~f(#GM1!fY;Bf3AnT%OQ_^2~_`friprH9tGVqh$mnDDL~|%h z5wY!=$t}D?+9VmEo|OS}uUjCS9OQqlpfqvv%B748QVKRF>cA=?tSInhgz`|tjEGCo z8IJ4F8CDAU*zjciy@@QMUxv>7%Aki5*L$AD;G8OzOI$saf9%ZBYW%#};zXoQ#8gWh z8zdan>7$fA`nf(@MHoOEH)=dTd`Za~^AVP|>N8%ir2l!% z6X0`g%MM1M`Qa&`9ND3fa+(5wG7(ORTxs%}~{s-AtE z`0&-RRoO&OVd0su%=Ev;`IGYz0k;koQOryqk%Wh0VsbzXNDPH11AJ1)ViNMmR<$b; zCOfI}1L0+_5ZY_gG;GHr)f!NK_vcdA&z zGofk9q6}(aP663pRan~=l$7sz6PlTK_2kw!wncI31W!`-E=uY*HB5bL&~+a*Ms+qT z53E=1TSW6TxQinN`iO*kI`z?t!)2yLidKpp=Ui@A&R5Swd0KgssQlcu=5a(77zr1t zOi3Kmw{~^5&Pp-7;&vEW6+#+?VT$6|Y^@tpsY1?rgqF0$1JT7FfVHE>d{}0je~)_% zrCrb+n&bW+DIZDT)l@EfvMt*!`%*uw@M+J*!wQSAwp_p3#;JHXW@xD*rtm+`+cBZG zFhd%tVjXLns&iNBmY5;4I%3m67g?fpDo=ujo~}gan?+Q5dq7FwPGD`JDobjzRKHkb(CV|>{FL#Yse#_L_Nh>~0hBWiS63WKGVU1zQaz@O8 zNygw>MW+L7)`P{4yO!w5W(lK0nPW`LW{fHY4+RDBo=01z%K|g7rvF|S_(E4s9mG2$ z_CE`i5|5DlpbMGXw%Gf{bmhSKk(u6u59rpv>UO`xch)d^G#^LrGqqN`EXJ0G4!Gn~ z!`2K`DTMM8BY@U*EV7~pP&($z6IWA2b4%w6J8}#3JwHiiL=lB}?%o^NXgunHY8@0W zvE3{LHty2Jr31G@$Xk<&8Hvs}8->lwUGZET78PXo)pIFwH1lMip^<4A3#d|JwxPXr zK_+jE1*6{JJ{D_Sm{Fldp?l1e+I0Eq=2~rHPa_dDwB3b-ymiV#Jy3qzdg4=f3-A zbDSD|mUoh$c7=icj?L!iaIf+2~ zx_>RSkU<9s7{}Xklm`3wvpKmnV*)CepqDgy@lmIsB&i5$He+&I@&-#_m@zAw-8$@M zSOiX1a$r@F>`uFTuREgoO%XlHt*8j0Ron>%MYy)q?1R1-PtOUo+bT8*p1eY}8P7s0 zWX-D7Wj^=`uriJSJ11OLmzo%Qec=%ls(hb^AY+?QG3?Q2~*1R*y^@H41M5 z`^;|{WC&+ME9ICGcVD+{qT&sV0SHDDIWZwkharH8_&55c-C`jZ7>mQi~yr*oNdx z8dzzt6LBH}zXybs<-S8owLtRY4QK6t9I>@t7KQKPFf-_U~+J>;u-Bb;Ia7r^-ORjv3j#K}`vSYdE*k>P3H( zW|3L4bs8s4XB}@djE?-|osIV0&Vb|x7bglXFN(C$Yl;7=oTz*BslPr0&-bw60hUw zi52wKgbq}eruIdA#f)Niy_vG-9$oV!n11#3P8K@_BQn-5Sn%PC+Gw8?aQ_$)7(}7ClB*{Hid&AkHDlMga=MM$NDP6_nVojg|M3&twP4 zGwwS^jixh)_3VHh>bFEJDa`H_A)Cu2qUHUU72@<@Zn{OdXAxtrCUk)ihO>vbiDY|W zFEV=+IWh7k%fKRG(JioHa*nV*X(H>Ih=fzAnwo?L2&ytiJ~rsH)-UILjFKiD4UeJSeQnV zS#4^v9?BD<337?7K@7?-e;A~zq!wV%**Tm6UUds9DM`@pJ3Q_fMul%NpJmsRxzU2K z3*sJ?3da^ILQ1H*4<(|d?d_khO_nT%2>A=O{0O@&F}luX(X|Aou=0?F)~zi2B+j3| zJ7RcZDZcsQNM1XSs0u0O2?|lO9JI$YZ}}>Q4*&GN9Bs^3 zz2Uhao_yD3%0&$o$9_?mRLTAowq&xC)%MsRyE7BBx78uxba}~1i)ti!R*L}0 zgbJayhZUnObv=A=50TVzH^fsuHeE%yy2-YfB?d8DKTZh6Xb}6n(nI?F$2||1seIU%=+c5uI%E7y z1zw5W9d@#luZmM)>_IP))C^&|Zf%yrjEWTWW|e(l!kA>2fX@rh#3xSl*uJV-#)`@` zcsYHQ2`%QuhE+=+W5pZa+LbHZ#%LUVLG;fqMLn2bz!8E*CG>(-&xWWTOT4Wa2UZI+X$P+ z95+klm*Snr)0;;%l^3Zt&x_gaT_WiFYdSWr=!_XwnQ`ct$ksc3q}!1=0aPmu!I?Zc(^)zf8nyr3r7PkR)?LyckXxxkh< zZ`b(KHLm1?Jz+GIf@uAaB=6bs8MnH(-ONr1aWDbk_cmd~(qha+KzW_um_*Ws!fHoG z?7@I&!widv1&~Z-)1;KZ^zkT_Zo4FOq+nmOrPx+k7f(DnS*a@7O9VWAZn@0pq1uQd z9X)e&&Jh!qhQ_OgIe0LQk9=#Hy}o)7t^%|T=Ja;P9QoCrn^HDhd1S+m9kP46*Ez7z zpQc;;RV)6&%Q3>K{Zja%!;!9|nHW>>`mlfE{=gG5h7<>Pyx~4SIlOFyQcAMWTpOgc z3Pft$V0Xi9v>V1jvPZay^ebvf8z6~ODeKdJV$kQr8-zIQ%d@}~mKG!1T8lkl0Qs?) zEq52;#tUmJ|;mQuDdq_RY*h78b##j%9|J)vime65FDv2j^k4q|{5(t`IS~>A)$sgIU%jDlLqI(Ajz&?G1`REZs4XekHtZt>V zf9QCh*XtWSy~1!K&4vp@cRW{1Gp%X(m=3Z+*woDZA`#Pk9H3gx?u~}zC>C2N4jBAZ zI3)pS+pQ{@8ddJ*R%Y^HLS@t6E!ww8K7y9J9+@|SAjW<8^Ka1TAnfvwStDhNcWqPk zO}~#b`lSYJ*3uL1mIdd_cBU-zy4}_E^&>O18Rn~Cs$()LEiF}H?!$Un%%K}5L@&1^ zHG;C}V%9#7mwi}L@7D*e=9@d7l*RdXyMva#L;};wl_WcpsTC&?vQU>PDzJTQvBihY zu!!~2Iq_FSGd=i!#B#m*5w&hEGf}1gm2#wJt0;s{j1j-zh?NQLgIbThV#jB9IDOvq-DROBzJ&K9 zy~Te_buFD$eevvVMqiy>g=Fbzbg{5nSbl`;MB$N=B&77$=$nv$DxV`-pKB228Z^l{ z%#2eyYA^-?M-i4+>X!v035JDJWfyNO^#X&p!dPPX>!_$)FfdRRn(So#ETT(P337=( zK}rONs?$eYt=Og_#5*0LNA$?~Pq?xoQaRExlijae9Moaze}qZSDA#LUF62vdzQ@I% z?czQ#Dl*F-VrQ_PVRXNK;=aFm;RwjOk$?Wc%(9_)Ae7K}`Hk1zqYi<$se1r#8UK4@ zlK$)&@8ojfz=hxC@~6Kb&Ux^!f6KwYmEd3gUa%$jj}rXrKQhB#{woK6D#5?}pN##h z2UQ$Y7~KuR&9i;F0@>_VK(-#Nf4anXIW=x?nBBX$*8a}7ae25@7DTnjBwrML(NCAh zPV`vxC=6Vq^{r(dF}rhOJy8gN*pE8K*>9$8{KE)lFgH zP3d3JYFPAgP)_Gf5or`l?2f*z`yvaaY^Ggz-z+?dn(@!2>7DKpyU>nmIAjG;6O?)l(3>_B4bd@Tl#FHE#jMvOjaitgu|UXeUx z4pTjd>E-N;U(nq>WBv|1GiXO?p*FD0|v+gNf{_uSDW zC9zGB8j`ZD`tciYsq<)cJ2hrT)DHa4;tf{#J-fZ zEj!+N8E<`@DkCG-*oxy0^;>(N*xBob59Ujv)Er{-=7co8PXwX)Jz#@-t=cTa;J)>zphLogC; zmb}+D%W(Kcbk4^4+OC@QHpasIeysrXwc0UMJz=a!rD?fpXJR<~`Q!b6+pMAkJf%9^ zO0{8f{%97hnHD|kR?KvR8SCZQzj2iMMmRWWs~mE%eL#xhC+P-_7!?ih7D>zFw&m3> zln#j7@Gr483xX(yEwkkcCw{OsR`v&m0Z~0)sYBl9cwM-VYN(n~DJ&o0n2a}T6eFN0KPV!T0!FOX z`&RP>lK-W=>Ng2!&i9SxjRx_l&N{zE@?!@|x3IO1M}7YE1_ag+R2B2yS9ESFZ8jQ_ws;NEK*vD)a}r7f1+W zwzN9hCPKn^u`PP1s4Ydg|8M_(fB%M{fLNZu0EtS}93)IP zh;{<<*yUJVFffycihXKEZsejD6E05895I|;6hoNa?7tPP$OHD((9KZX z=TFuEzS_qdco!m(I@GQY4S<|aT*aCwOo-;}i{wyN3NG86Vk$r)wU0NAH0R-yOQ@R+ zR-1j@`gnt!>KJY?wMseH03U+Qv1R}d$%{Y!<(@_s*4;IO#}{(zIN^ow%{O^;18Has zKx&*=R5}fY5Pg~#`~@wku0&8?rE*?H_*idTBGYJwFwu#5TT0@!Q>I_BUkh zT&!~-9qv_cQVQ;8_l@)~EW_bKVf2%5;tbB)7L;BuERI zIQKSy#M-iqSc^io`8A^|J)D|Qwi?j2PAHrmpa?~?>WL=6a~<}PFuL&Bf(a0u{ zdbrmyfjrh$@fvd9FYjs$e`$Nou*RbWuSC*V6q=I$8ZcjNOLZX`tJFEK)))Uc(HDNS zl;zNAp;z`SUbu~v2Tp)h6FZYsj-_xqHcKTJ7@LF5kvw5kg&)XO!)3J%N%iOnilkN^ zQT%C2!*ZSh*wKo$F6GKQV^ri9kqa^BA3DDiVtb4It1muDXuW0(r;5FN#1>d~phO#B ztGySj^zk)Pn+~C(;?P9YHbvzO!#<<5`e+_$Ob#3-1f8POutggyg%}uG?2n~j&Z|;} zp80VKj~t;C)2u7$5|zE=Ip%P+&C){fQnkR=q%l|zkZ_@pl(gVl*9E`FWBta3R`!-n zhGn&;?4e4xjL>#~(k5xUOZxNTM@h!vr(`d7PnaC)vS*9SBQQII!ccQb+wAIT3-|-# z1Mly*n}3pejNJR36RNEJ>_bMd`=DWwRfZ%xBqWc}y=_%{3at;p(Gny`yz zX4tI@a%EpW&5yqkbGK1ktnN3v<0Q>oCt3^9>-8^om)x(nw8EzFQd+$#QDp?m)B>s5 z;EUV@oF|zRf!Qw*4k2bl@egNl)5InJ;N zudfkJ6|uFYWkqtawTN3RD9kE@nh47Z;AhiHct+xBHLgQ7fY4foI&=dFjk;5Ed+{k4 z&g3UdVAO%k*7a8eCO%9*ZX+?@vAQ@625G*t4@c~GeH9i*AH36;Fqt$eXCSfWwVc_i z<8gFY|M}nl^pih3#?0pa)35;+*B{Bx8+2ziYa?{4R`@t&5Fv--GG+JfDOrttr!u<_ zPhYY@8F1++8yKpJXyN|8>@NCrHa$yPPZSgE%4tKTY~r93G|EH~<$^7TCV-`-;=8p= zAXVm;V&(_4;gZ-v-?a3PfvQWs)W^;C8ygw_1bMmGv9g&o@X1BtoE*Q&r0GJNsL@zL zn?i*kSF35*1)cnZa|(p0ClNHQ6ejj7BgpFcY!Mq6<;MogQ51~GKU)f*P@9mJkP7Rb zJ|q}5Z%9BhhoB;|BjTxqllCCnZ`VKSLqC-+lcRafn00K;z1?%0B|W=*lRannQrn_T;!S9bH2__EU+Cm$XZkl8a7s|Sk_QI^`U(VoE?$T zg~W#gX@Q}OQDEkpRfx{jhkeQ0h;&QA0@~wubkDJf)%TsE>>o=crPsU8!l%V{ zCgFr1cnHq(vn17sPj^p8%|MZ~H2xX|{)!kjMi7I>jWV5&#MzG_W!MWvvJ!8ZU`}dr zYDT!IZ5sItAzO=-XC`Z#cVbaz5+Qg>gW87KjUn_RsHyfVh*%A_-n~ko7Sio)-<7sA z>xEyC`i`)J+u0oNEB$);>jP>@crkg|v5K=4kpzNYMoo*7Pz`*B*z~O|{T|UUXA)Zw zBmEn!Oac};TY_2Vhxly(Cd|P^0f=bP1ma;_%jU@3R75p)r?pnWl-Ms@^R%pt zfN+XEl^V<%j=!3|$Z=498e=aR%>AH1;rSD|bO{|kgzAu&U}~|Q@DgmQ-bMNw76j1S*Q@$iiBl1tfBdv7-@SJZ85wP&S0 z`ck83uHX}}AA@X;0>aj{1gcAgZ-Z5Y(F#=xHl`MpK_lQf;wfAbRJ7`wEq;U9^nsr< z%dH0Pm%;{TMfk>n3U^ zI~-3ME%bPSz-D5^!uJxKZKH|(@s1NvtV6l?MAtMa2mqex{wq&af4C;EU;J~u4+!Sc zqIJ)063l=jajQ?)Fg3>c0n?IYa}*_namqDw@DF4md00w8v*NIXbEUeo1l7sA7Exta zyZ!!mHWy~Q${hQwD8kNF?_9|Qcg~@Lv_uX-RvPQ_`^WnMMj`6VnvbiYk#fhw;mrIF z0*sp1KjLlez94&5Pg$d3M@+G$yM%D6(|^G^QNX2?!-bMEGz+L?5s|cpA+9K;*rOL_ z#u7zazB*Sqx`@^j)9Z*!q)4(>*vd-EEg2kfUmt^yIV<v14Xm!vUuN5HM7nm0kwmMohppjIq5!2swR3=I(aJ%B-(_WDbP;e!b zdR=i3oKU%5MeOjRk74bt7Z6X;sXTj`Jof20FB|Mp2lL1hLrTR!8NyT}r-UgmZ1E7R zXH9_N;YO5$R>o0RK4S8>Jo2LH9qy%JEMFR%HP$3FiUM5LIJJ4zYQ!j(@db}nc1%KX zzZrXs(wlqfa}--^L6g`1N`N=k44GfVUT}j!-NrL-@a6H<&r{+db>{Y52@C4Ewb7~p z)n>yMzm{|LVawBFaw)lcy#Kn>bHXxE6Sx6S6|Jf%VvhdiTtJiu6}!go%A5OzqntO_ zQ|u8k+2v%1^puaot9#mlXL!;gRze`1pdc21%TW&;SCn!^w^DPq6T*a$l9h#i)m3`T zlQL?dSUCBw+plE&@&d65XrkO%0r7#^`S-}G*-j{u;Kd!u;5~C_kBG~oD5URU4Q5Rx zi_TITJSnvV_TuV}sIQiRx$>T|L|6q}?=5%rZSzo)yz@8i;S)8Ys5@E*=5c!?fPDb$ zk1X*Db>LwkOH>n&dJKXhQH>nk5UCIQavH9Hws!?c)qmKh40~%SwUx#}&(dU_f_vBF zUt2cBVTlRM_2Mf-j*I88^s#r+%qeN&l-k4eD~}ufhG&hE))$0Ckp?Ghf(xZIze=N9 zULOiAO9|W<>l-7OkVZ$rFS(<$OfJVRh3@i~G&-v4Stohkf8bU}}`%uu)Y(gvfnJuA|fpszMWSai&N&gi9H zt(FBhhnGX7F9XX0x@70+A@lihZw`-zM3oF-{!H($LN_;edh8U$A{U?vPr>u8c2_!A zq%!lXCEU4~+g!^e&`h=pm4|4P(N={Jwa+eZEC4lU2*bddQ&**P>jo z%am4UM|jABrn3hShLX8zEHB|_3)#H2kZTQbcQF1jzHk2qV|?z|TA`nIonLZCT@ET` z_}HnXWQ55@l8%$|xMBOBT=~Bo91Od?zqu*7 ze%%nXT;0O1dUb5exh=!2?=Sui@U5BR&geRJScK~cq-`lcx=pm1lJowxbs>@rHmTfx zB}kWvTHsm+09z^=wVoO|-#i-1>|r8{6bs>qSIH424x|AP2UdhDwo7X7D+O)2Pk`!l zs+U07wc6i1=j;V!>mEftaIHNvL1Bwn2gk%(y=cS}=5#QWatzf2ChoPD+de*v!w0ji zW9*G~djf@+i9uAVOzpC7lJlxN=k=}JA~Zucb`NE=Fu#!1*8x;v2iT|ghtV=0rI-7a z;$Y~7kN%@E&w49=01>h$an)cCHzvxm_UM+qMmlToax150 z%Dl0AIt^0BOM{?mL}KKH=_&?^p61F8uMs_h-pjnjr42NwH@9Ysaf9L1)Hob^4b2pS zw+T^~VVr693R%q9bo`EOFP1dAPGUoL2-VY)$+}UhcZM+kP%Ok=xml5VQd^LDgCII| zQ-?ybSqYwDg*L;y=KaA+X>I2{j+VJ}0TGH=n!Y+B{xX4)ear}IVsv^3!a|1DRij3t zkW8UBdY(cp^LD@QE`^NP!Qn!%bYuUlJLdok|E5Jg zawc#~V|(+9tt*4@i?RS!@ZuUYlUXOJbAf5cOdX z5sjE!7wrTY=G-1t3RjUKPNK3~9hA*NBnn(AuvZ6pP3RF+%Nz^r#g6_H$Fqy=EvLZK zozLkKtf)cN%rVpy*t}h%Q{(NZO)Dkf>5!`AEYdjivsfK5+f$?xZaFa+zZ` zHJl!K4ktnPfi^bkMePOr^SH4V^#K3!l`Cv8_cMuqO+#k64<|rnL^->kti4}+zCmD- z2x#aF@h!-jILxxPu;ckAYU5BMLL|)yhNNP*oDT?7hpbl>!hyb~;d5Gg@zc`3t0EN@ zH(}e5B|h$o38=-xFp6K<6g;Oc(bYSedOobIknJ7=SgnXpY(zJD&afZ+G^k6j#Scb~ z7#Xnr-12-s({0=C&=~;PWJQvv(iq(=5`gRdL!>TsO0WvP`p@;lJt`Z2;cFrn*b7^N z$I_upZz)nwYj%f~9L4?a!FP)%7I$T-QJ3*x*MdSBhymGY$3XK8m9E)HLMp_9b_h+9 zb!p3K1hyRKHfCkYTT(Y#B-m$ESRFv01-)p7>C1i&C%snGrs)XEjdmJm+eTMzZ|K^L z8NM!X=wKe$rosFHVrd&}9*&pxlfYNsxcQ^jHb<&)*!*k&+=E(1uS2XrLilCqsg}k} z(k{K3A)NHY?kxtBtl{C&3CCQPmBvk{) z6j{7vP%)M%FtlYQY0q5zZ1qQ4^+z&Snn1PEfT_|*zS)(QZ=dc_hpynAXK&yS_%Q>N z?c*&;1ds=LAD^ChRROdd@bh_(@YDvU%<{P_$lko9)tou8^bBYTL1eXOlV2DC&k)s$Z7C{#|8#%2Vt1RpBfi3x z_;v_!b~D0fMv4)0xD`lo1~6=nVt;+KBmU=&*_u9;+Vq}WR{eOtv&t!wa;!QjCsICLp({y< zO7eR1l_MoD#vOg}aW*CS>M39{#j6>&8!4#y@#_xr6EBNI2BRh$1(8fz)_{D#f!?TC z0l#`mt&};ZSArD1W%T3@;FGZfS%W$V_G{}_$2&T%zQB)7;Gn#EoU-At0`f+y)=dOhunUeg@ zulMRZ&c(O88G;})$-LMqcUM(9o`=B$Y8@qE3JjQK*se4*i3UPKGR_?es$y%%u^7`| zqeD!AIjGFk1mUi6{u7bUGEwT|$+CI`(zw4zK{S2wSi*^r%y*i@UkW09p7ETXe?t_t z?fyZ25mD5YvNI%Kg22-q^h=X2PA?H+YMu5Q^gO2)xXGT5tRKxv&t77{$^>SDp-E-l z^No3eh$5-#bD#+(mD}+q(&z9h@2qPo&;djNr<>3%C!A!w37N9On$$O;b6$9f0+@=4 zqKDYiQDM@-_xx8DSsC+EGxD!^(OPE=Kx`frtrG9|OK$asHXoh1PBSW;AMd?p-{!P9 zMXGLngum79XwR3!na_JAFwo(4KufuT%hS%hdRo3-mQq{ZF*>j&A@DSX1z^IPNR0Pp z_Fx^4EeJAbf5cfNOz!qcRI0+|e6V7{jymGM0Artrnj!4SWP0|!UB&FzSNGu zx5G!efGnP0qKBsD6tSQfw*YHoPk_~US5}*iO*$7vxr3<>q&$x<;nE$Qu$1NWs(9N8 zqUwrP`t@e}sI}zd4Klo?sdueUo38mB1y(h-3Z26v(QDPcTw?I5c;pp&&1R4Y<{XK* z1{ysQ=QcH4T`>Zxg%Br;r0Co8G_|QZ7inX&!I`vTj zt-Q-hHdv36ZLC9ScEP+oo#X=GkMK}(C99`|@UeiF?v7Ei-=iP_-;S#*37`0?k11`c zu7&KOi38_oRDov8R`dD@Ll`TCnMo4fFNzh0Ev#=|=zx9*-0LTHQI-J{$|bm7pz1Oe z%cT|3w?2dVuqW2EBFdNQOYm}rV*y>(aODYDnut>DMG{Y2Y$`E)?!-|{@8pq!D8`&q z!y39{Ih@x!Dx&JH z9?cAGgj03raQfEB$QWGR+amD1)d%T-h`I5K>_B?#7@E3eRASgKBZAy9BV_KG5i+`F z1kZglLgvmHAyFaz7`^Whwo68z(%OERCpKEr`@?z!nBz>&!hkhe^Ut2m*Gie+Y zXjbEYG|9Co8oJOyQ&bl^i<(HhCzVm!;L&naISpX?x*SLC9A?{I%?M-aK5U^abby9A zCh*lF+;@{ouSE=1w~lrLjMbz7ag`R{PTmJciF_+?&a30{!IZ8bl^jF;lUAZ*xQAK$ zI&pa;S?YLRvwEz_8;yskU_H(Gl@4S&Vq;@EFgt;`=L*wQ7{aVZcZ^UZYXor}d7S!& zsIpua1p?gOwtOO)(rI9X^V#*91qg1-#PuBwm6Pf$iXDzpe~je&@-#wEbsQ{QE*Y9Kl6L_acDW51YQkqIsf_vXF86C zy!w1Aw`0~3V>=%9QN`8r3_^A5_B9)%L98bXVb%sh=?v*OKX%#CM^wa)9v6}`@R+}Ut8X~Y5jRVFI6X$u!pw6JaJPZ+f582@i;pUpE zppQd@UIEjUA((dphn^MkENl4@*P_E$V}Z!>aJPOvCy7Q;ME$E5`(c%X#s|^o8C}`HFF}%q8c)?m6jo z5MM_-(7+dbf&yiV`^%4UHtYPnF-ETJq?sQUg47Js$s*@fBcUnojTz4``HpwlNvqRd zT(lG5Ioqy@WHaq0nt=&0+pqIFnfCF4b-sHN-umJekRSTxpqZLbFcvK-!-`E!YAmfP zQAUz!O(sZA3%RatAI}I6a+V?L5S^h=L=M654ny#q$QL8JAq5Bgt#AQEXBg0R+sZuNpp9OoqddK?>x|jB&mp#_8aq9}0px0xg%%5~Lc^QhlzD zb0n!2vj~7eIakFbzO1}HwvI2PKQ8aCx+`1Phh)DvV)E5+i$1GSAwBP!kQa+pBV+Ub zvD@~bFAoEN9rddHNh_?@On{s3dQWPeL9AQp@v1>mNq||5FELNO$In~x!B(|i zEv9q>ayHsI<2QLUiqlN1K}aAIR9+d+6Y=j2In->L+5Dl4v9+dHvp-* zzQAZXO|%E^2WDuwF|R!>aBSGRreTcd^1`Fo0~*>2*~8Dk!(qP>&pSu{2G>xC{i6Yy z_k1E>o*ML6o%b6|+Nu5++i;8S6x`rTtP&0_o4x?-@H$~~I2JQG$w-T)@pw`LT3ttl z*cbviU+|K_QtuP>aIhR(Mcrsg@aYewGh3{U!E+I|zg5PE`m(!m&oe@iVBi0EFCIOS zs1u56KtnE}wwzW{_IwLqFXWEZo_m0G=3=q>yl{TQ{6d^|EVpy1?Aor;5E@?RaPSgr z1h^xfEBG9q!loHKU-m3|#bftR{R=D}9*Autm$RlPg=^4d+> zjV8c(XcE^)>X+jwim0a7M8G!QSW8{a2vdv;R~0IfF;uj)19Q`LBV7*xE`QPZ!`5cQ zf+M-u`uG}0Sc_w4f({wF!1C1xs_Iw>D-1p~HeF+F7;^{bODly+MQHB|lbu1$h=9T& zlds_8-J|@4YyQ#N>PNeFNJ24&cqrzDKBkbxiA_ z`7vXx$|&rkIZfr}=VE_MU`M_FxgJxehZWO)pNJ`Lp>xo7VDC#X7(#n=mP8j25O1ja z=*upLU5q?^B@g9<*0@UvGO)0ayH&yz;q=R=w_#+18Iv8WLQICC0V`yizB#Y{l;kJF zG=E310S&tk+KF6BH8Gu#oM-6#cE_maVy2r6)xnX4UA!Fl~PZ(CIm= zmc&QMV5labHc2xXTLAJa>n)igXVgA*q#h!lGo(JHZ|B%sV?{E6@>m!T7#+5d0|9+1 z_3IO1-{P~Vw!&PyzCUAPA?pZ+FdoC!fYouOVg(#PxR+huwNhBm)|?AHYL*H=9bjG8 zKPreChagiwYSp~hp>6RohOyW2PDAuDy`2WVhUL?n?~5%;e2GDApiRKFP)^cM(Ms&6 zJCC^k!i6_}m;HY~;@Xhm7FcTp)fG6IikZIa@+bVCGk|%k4PoB_%MmDz9SaEaB90Jx z*_ftr)7E>8i)?u95=p716ARlGVPA^9@9PG?Dt}K6877RGV72b-A)>L>rU#dPf9kGH7%o>n$ZdH>6iUMOmWq!)1tW|iy&{`i0gD4S@F|RUGW2Re&3G0fzcaA^wtva zRL7eF(gc2$0a!(M`T1L}l=Zj8ELlMhh>jllFg*Xa*L3(l3oNDMTNG4$gOXLK^_>QN z0eDlRYi$gKm4Wdu7pd|LxCz`pKU$69WR=kJmyIZ1)^`2$z}3D*}ve;FQWNkuNA_ZVBM( zj1hpaHx_g>AxQ2I6L1efHGwb&Wdbe+TF0wKJ6ZSSxK;>(px@_Q1dVIH@=Z1dMzPW z>sxWi87hH(%433H{#XgLZ0%4-2hSy5B(5Y$5D~<30AAZ_%h^}5eVP@Zfn{$ap9r4P z!Hpbk47+9{R*m8$I-n@SRjW~2aodU9!M$NDR!6fqXb2(L~f7une&u1Lw z4#8|_6FFY*_49EzL^vF8myGy~#~IHk6&$0Y!bZDg0gG(-I2#w0vV{%~&Xhba(p8vG zx)oSqTua$FlP8GvfDRrSm&%~lWjOs(KOklAh`MPP54qMA5>BDwNE8eqEz z&l3`Bb6U&+VnFJ9g zfQbALtOd}K);)pe%La-_{|d1b2z%BPLT^Q@WemIwt-*|VDheAJMdisLM#(%-0%q?R zd~SyO@w2SjLA7JQDC>eb^TWfkL=n*ZlvajI1vc-W>taTl5gCN=}~ym3Yk! zwbI>L;SlI)Gcq^K0_Q}9Laz{E27{3h2LaYVW`ebGs}0~U6!bU8(0SM32YHEQ$D!L1R0$pXDm`|H=Ou7_uK&gw=QFC zr%G$P4vhNr99kGKZ+^nD)?srFr_VzN%BM_HFn5RZ1JVd8ekKvAsOAioxC5wf0|Ov# zy$RwDeVRYWj=mrk{pos!)`l^KsdQ2uS(}%@Y8Uk-h^BE55zWFMI5?fk;SG4NuF5xB zeZunwkT3F_9xOmJt7E`1Z4g?AEDjAt6V%&FN~ipAB7P84%MX4%L>)0d9=%82ElzY17kauUzYOQNe}Fwj z330fdkej#S{9Df5xNBAnsKZMv0L!%t4J;eq+tP7<4F1$W#dP;*xwl+jMXUw2L7OJR zX-mgWS+W~MQ8tzez&pR>KJH5Dx5cp}2``EJ^{HfWEG5ia$#F^IdZmYQel#kbsv zyC&o$7{XHc)&4<0?-nHGzP+;FF9hbCy;|Kb{`~XJcalEPu22Q6_y6|V)^~pap5_g3 z*u^8W2~!=lE3c1T3WU>vSKdz zBh`O;blm$#P7qFIx=l-(X48R8JMq>>v_od79;?s@jMHr*YKHBzh;S$F-6V@%ZIkV_ zL$G1g?z70<;``>-6b%!lB*W!MaF5doT`_-kZ$W^1i1GBOOd){(;`mmL!wF{PPQD%R zk^|mqb$~y&G7sTo>QC_Z(HOF6?Ih9FMnUOcwlc0piMcd`h;X6N^X(&W>zPsh{onue zf3F_DO3BHGVGc4s4e{yQ^7vmm8T##b1*~4;jIp_m5uTNFil*RWeFRl8&1ZelkGoE_ z*GfHuxAI;q`oKT6G6R_Cl3uXV4PkwIhFBZ-wKYR*YfD`9S)bzXm7)D}#`yk8WBk$H zZ&af}|MO2j|8v+A4W=j8hFL-oy-S7GO#3nw{Ik`QGYx600RN7a zXRWteR@hgEJ*@xg!pxr<)dX17cJoK3{p;d>4|A!1Tu?bH=S>AYV&V4&uyT9i!#5IG zcyMJ13zArgD}|HtqrT$trrMn!ajlLcwXzh{tSm~<3cys?m58Bsy`Q4>P1uIcuLxaK3{##tq+QbCct##sDx%3Mzs+Stzc66?HWx z+??f^fdOZv5k;5Hl1o~CJMgo5Aoc*m;<)&@;8(Zc&Q|(&wbg&`7Eu`0a3nzD;19dh#Z3|<2elA zyd?^0VXtxcw<<6&c3MlQQpHTR(w6W(u;lyW?_l1pw_ft)Jw49(@3dA*B`Y6eIfONQ z>IPGThA@?Ce&jvv6#P^;r5VB0`3f7j*dNCi6OKwRP`2c$?q~Dp%&Wr3nrvkZQ0dSWfTX za;53T5#Eg9qRjk=*Smy3_8D4E^`Uc8$e&Cw0L`VQ+R zKIQ7_*!mRvK5nZy(Orkb{$ME`xgPzsyq@1MY6kEQizt4EujFBXtQRbVP;#mmI^>I);mnYuZPb!{@Gr;%l9P^4O9shOQH{fa-kX8H;1kvU;@f;207)fj&$R z$-Wa33{=v2vC5HAqnGwZj^PS$)Es0r6c=pzM1lMUacPJ&f z9?()^fjp)5|M$Uq)$WIl^j{y=w|_q<1j;>eNx2C6FuRthNr{i#s?869b_kKIg!BJK z!|G!o7mQf79#k#>>YNT>{kMNeXy!%aWC(AuY*eK_)#Fhq9ozN$3x6t(UDo0&Xk{}T`A<5?J1FtCK}v~D2*G5w<-QS>}dX0 z9l&0M%d?DEQg8)`SP%%$;C*p%SQFaHguU&IhXYV1Xi?M7k_=CYr3PEb4sj?Rm%hL# zP%U|d;?olEi5Ghh;0pG7#i;N`imMPqU;tIw0dSGq!U7rcQaoQRr$IlP%T*e-8Ku@t zH*G}{%1Eh;{FB(Ah~%ry0oT4&_MiK&DJNvny}Dg} zLO!%o9`dR^vJAgg%j^Q59v=i?E7P&%15vJD}tT1&C1F~@aPj6G>nX{8A zs!l?&1}?uvUd_sRJrko4w4Omw3|lZyB*10>Lt-L%dO$wxBVos^NWU|a)5u(!l1LvC z=3v8_&-9Fe)MHu9A7o&bK=JkoqOjGGHDOSV;i8wIZdJtMgoRCH+_cUHM~zN%OQfB#B;&CLW!I~BLTFy`4i}G;|k5fpEcoDo)6x9 zDfD~DoOOa@Zl#zr1GYJ93Y~^l-*X((8MFbhG+^lwM}>?$!Oc>=k=c_6FooD@6wxQ< z?Eu%VjdN{L+Zu^k{FL{Zr~9EBiEoxIKe!sHA<7*|4PtK}kB=|zwGCj!C1L=^2QA&k z)2c;CR4*uLPC_fad84q#9T3{Cf=Puv*tdBSHu*Fp;|MX-^N_Lf;3dy zl&xT`pA+DD^G>UzXyt>uZlIWfVe{GG>O-5-?8Ju#zB)bO*)lXV zYFe)N`|Gq)q2F_6?p;)oQtVycuAGC0KjmQ)SvB>f??G2H$MNok)&vU?(}V%ggu3bnV5JeDUV224OC z2;^#BCzmcyx6MYjY+r<-v!;Jo|A>?xd`-+f8gszu&9H)*JxJtl9Bg`)yG8>8Wp^f8J*;N1_=gsm?<6si0?^Nt11_d=XoHm-<+Fiqlb zrR8s2ybSAMdu+#e3yi9^2yi9;0yjz_< zV(oN;W7v?W$RwEwLzG9soQGqhsh83wHZ}9S&D5ADcfNfD7Jpf)me0b42 zq6K`i&;MY%<;%w#1pL00dosC=ZI*%7h8;;$D@HmP8T@nKNYSU=KQQY--mh;Cq&g@)K^2*!8s zG=zO06vb3a3Q@1!?p2Po2V#rNSH~Alm1*A#QMCE{$&danRLN4Z$%HDEI>%&Jr&OzhVqzW%O=?aLbekHHQxbt>_ge$Ki z0u<0IxwEg-t^!H%CLx-`@|@=s38$wCoCZfdT^OZ0grAmD2NO62KRZ?#K%)- zey*`$3pM*k#MUSfn@QEfvp~g_LmM)H0v)y>_^LBs2ynb+>L?tfw927vgz@X$=>q>I&xBkVaJH;;_6bZ5pXYoA|b4Kpn z0#|E7KA}+|_SJIzn?mT2jg32U7U;R4<~3A8g$zP~hXSgg)mw5sER|{bO?kN-2I@y6 zF_|`8=Zyjp(4e&LiP`k?WV}vMWQQ_XhPJ4+$+5k&y*2dJdTp9E83LH)wCsk%fzJ_T zcye?gzKiN$kZHVDz=t*542Zq`|8nF3=s?UytJ!^3vn_(LBUbvk#uvsFJPl*BS`jdI zC-l)?fgX={-tyaA7FG^Z3x+URS|k!H7E1pFwvuD8s0*V!pq>CPUA>S9FV}K9NB~Op zfNvezq+s#~h!;|j*Obkd`OvRE^3o;C*}y)5v-QT$J*F0nlg@0eZBb6B zfummQQ(d+wwU!g$fX}symRGlEShCTi!4^n$B%Q9JI};yfO~6?-p?ggIFSv71*-R&LOPRtP&|8r`f=`mZ`$W za`Qi;o5rijhc~8ms&%)nk1`G5&c&6|w9|4(RTLZZqRPhg@9fd<#?U$xy)Ul=etQhtn!7Pa$0OX6Z%@EDU4 z+P&mT<8+Sm?k^Y`@=bE0l20>8--Z=}HBL9j6#_xwAx$(}V7v86XM2oUFpVm}s zR2ESMpYH2#v9y*I)Ph(+34qU3JCya&%=2Br2cg5fOn` z{+K9?O2q3kH@kCl08o#*~C=AEHu>KKTTtc#&NzoN8x?PC)g;cf!2p$9#3FcruBl&lWKyd znu6nb(S6^~lDS|CK7_a0uCRL@V!h)$WWbezMbms5Gx!c=zvxQm;ZEW)nxD1CQd zKy2?%3?_Gv;t_}FJOt(#Nf7bGM#6J+lLUGxTU95q8sfMfEWdSa6a5(4^e3)p8dH>c zzPt5BtEqCC0E&b^i;eFuTx)v!5s zz~I7TfyNlA$A+~WXwyh`$bP|?BwS1HVpV+=sNDuh< zLn-egyN;BxDAwQM)?z#-iM?cW`YygGB>eiGSVx=X{}72VQH`LN7^RCaM|~J=isbWPim zR}e(1K5TwQ?h7mzcEYk8b_sHPuFnX+4y5%VN?ISu(n2W1M)ZhDzGBZfz=O?nV4Gn$ z6C9+=>8V|=*@0OXr3_fFUOt&jOmeCjQ(q?o-3V-X)!?;o6N1yC6F#6 z^}5(jRl8-JuZ)adXimr#>{a4r#78R={vgIzD<8&KjBd*%9TEe)s+e3pt)&bOykzu{ z*hC5_#Jk3o+o3bx#JpH zY@x3VpojF5j|T>(s!1>K#$*4%DPnjUFghc0VFJ|vDnj4gvp+SUFT4YwuMS!joJY`C zZ$z_XL8qh1>Ni~KLtTw`{AA>7_%E78^Pj>`WJlxCAOJ5d|J{v~KAxq|T#cJ!w z%cqi5=_@3>>x&x|)6-Ixsn7k)h7lnVWVoNV5~l3?P3b<rwK_OzO&Q3=AOO(vnuaukQA&A1%5V@&Ap^2Im=^YIun#ifgW& z*eZfkjbZl6lY)M{xj`ajJAcEEfatnzcd68;&3Bg1Rv_mwb<}g_lI$Hrw5NP8^UD~y zk9`k-z3&b~2$#i~h`pp80#ZQo9L@hDWBAkGww;R9nLg^DPqYpHaw{x(}m zI#}V7wF|6E#(XA9rsv>cQ1>UiIEh+jZ>}%m_wAaUkOJ=&l)m>F)H0R+1?gaXISHf(ok>U z@U~v+{u5XzJv_&}aIZM)&{u4uI-9HmW}dwG5tqF2Qz=gvjrAerEB+0E)zB11HI=Lf ztIzF;KlVXrTv4Qp>MycPQ){{8FaGrjPey!0ygL>CLAGMy6Ytkp=LO7=zJ6I!51t=m znH(sijE3VmTsT>4{h@a2`dAT^SIJNM zYE7eRM=St7denY(Xo0@o!;rF5mHfxuR_tZTUUD2UH7pgmAd&+2`NfR2D2YI;$=xj0S7&Q8AmiDHj~2wQ0I353kIx%KnK-B z+&(cE>>;&e4^~lFlx=N;9@zmzVSabgb9H26D4*SghGUFsu``J4u)2Dt;H9Q1oa*`< z*OYY?jew<=5u!GSkI+?N&&$BHH-{NwrMGr?sL0&!{kePgwcxzjTt&wboG|n67ysnz z6GGk-!rIw9HcL+FHXaCKq4@KPwOc@1EN?OIH%~~&?2`>(s;)J?RXl`=P64)taMd{l z7ky0SsUl}kD#dLF-VC3ISyGc;jiK1*B5-B{%38SP-ZCv)u8O7<2{-OoRIll6&f&hy z!|K|rQIHQ$Ev>@|5J3gv&n+fO+1fm#O&zVQXHa5!;++BveLTE=+Tn1v4A>zO^Cm-< zWH`RDi&$4q%VK`e9k#`ec2EKgLyW}q!7YxUCa`8Sh3&XTc68mKq^LGsfc4p?0nn_b2E$d^{3` zeNF5#i^srf?gP}KmbgmFaVhuo71O&vkq{MqHX04Rk#9A@^$II+-oXbJ2qaO|{8VFko&5xJ3u34_Z; z(Zffh521S;>chg*`e+Iu<2joEHRrMy$Al`t9)grZS36pIp03QKw{b{gmmXdhS`Z$O zIjA&xJ%&=SHIcDlB<=wTv4vQ&X&IbgK$eb}|NXd?OR7c%5B}NZWa{(4UMtKJSw8b1 zL40*d089XvqXHewi*z6h1_v`G6K5V{N4J)p!-z2;=c{A_1r=>F_RTCC$t%i_Sv4w+ zD<0 z!Xyel$i799Fe7zF9PXdF7^G0xA%*WJ^xYH;a7Z+q{DtgTY+xu35YfhKUJ8tqW$#K5 zjhr5$H{d8Ur0F2Pw<<-4Lv(u_ORo8wr>!8boS zyNJCE7~j4gQEbozoMXf!9F6MrzLiZHTy25JNsI}ECNXaISV~>7(Z0d3`YC8bWW@)d zmA>;jXJG?c#>O>k;ScTbr4R++@mMF+K*QUKpoi&`On~+6Ccszrm|< zs@l(>RH_@~OA;%%W zHzNr*QgcgW9r5p^Wv6z!}Js^GN>#-WA2dEM_aTAs#u%3Gc z{PJ=8ZO(2#Dx<0{xN6}Hx_<1#;{&Vx*$QkxoTX7MdITZm&em`q-?ibnDrzI9iR^;w z)LpCU!|A*C;?cM9x3G=IrC358ByHj2YF+c!Kh_8~E&Fz{y|Dx$$&BBfkTE|tkVP}x z>=4;{V8Tl4;S8rRux`X;Bc7olu{u>i!&>g`U;g9&yg6FS->$zeNitR5pw%`|DQf`u znj`G&V)vb23v@^jR6-t6qzMpf$Q}3Axv(+!>-qo{V_7!LAqS5pL!M5Mf94pzC_zNK}4{0vwl%Dw2G6NNX;lTaR>O7Bb=1mI^(ZK zSZ#R65!7y9i!T3Vv(`En?U39b@c>~dOrKui5+>3E+!S3woI@YJ?uj^7AyOJY^&kt& zIsvzp*jMdZysqOFLS)ndjZV~XTtg@iMq53A`t>MSZNj0I_j7030b!g-2hh$G+y>BZ zn_o7*;SESRxc=PWdO>up?rHwD1L!TUEzuyE#)MKVUbPlLAb{i;sm!fO0%fyZL~4}= z(|h7Hx^TsJ9XGhaK&sMstY=r`R3HMdh^nQ7#{kKKhT>Nd@+!UT8B@k=Woq6HxJsA% z^LiM4D=V?^La7ByeBBB_dB7!}-1}1@VVGc&uJQyff`#S4fWa<=FHjp|cA{iJ^M!6C z9P5zYLvF!bF$$s;5lds)kTpt0yHPq?0vD{6`mR_!bTf~FmyeKd?1I@dNE1Ddig8*SMfm2pTs$Z0 zByEI)TE+X45JEi8-$Lk*g14SJk-S6QF*EkMZt32gIG2? z0Qwr^=CQ)>;HItYAd;J!f~~eqdx6yH2)yOC%DBl*C@=NIY1@Cln)RDXP;bMxN8{iRYX{m!;W0r_Aci0r>QEj=p}le}T5^{6C?2WijgAr=AK zmggQ`BKG%Ct$GV$)MJ6mZ0T{~CDjA9cGU)1V6mFhp4vmY5I>c!292r^iO+38KwyAM zMi&PA?x!`oeGvHV<6Qu>5ugUtFioqDwScjhr(?zp$w5 z^gh`Du9P^7v)0Qq>`Yl{82xhZGX&-EghRyh6kq&~`f&&9{bd(+rZ`J9+y5r6tRENG zt0Rp$Q<`@_kF-U4T%*0x80@FDq<^YkICQ&HD6KP7@T>c;n>_-Ts_Ckg`D6SHH-&$< z(3O2tn6U7lLiOjytiG?$wezK9G9Dhf!ka%{1^GhoZ?D;QBQ{e-p?u%ThbvYQIEp0Bx(FiGKDT6m3bQqH@9c7}Lg*8+v@>qw3S zj2>JJQ42`2Cque*duZhn2k@y|6KXx}@`MU1DqVSir|MncG`T(4e>>q@pq@bL#}vTdAH8%UQ`f*@Op0thhAGG}!P+LsHhB zP)5lR-h91=nB)>RL^W@)AtpuW7@{OJ_Xq~G1)1>>AA4CbUbwdKQSkOdx^WD_+6Tjs zV!_c5Ye=z?oc$USoCy?IpCcjQ=V8FWifx+O4Wsq7!e*5|ET}K)OXB)4#7%_T ztF`6Oc@?O=2Ih2F&vQ}qYFS2EvC1Bm4-c#qBCi%JQPL_PjaHNU{!n!5G+g79bmU}; zp2p&M)v_L7$E?YSUsb^p&UwhF3X-sB07Bu}MX{>1a3RUY3ZC4byN z_Jrd0TancqsrUY^co=pp3pn7Ab2QcsH z0kAEB;m%rX&7PDMC=hz1h97LnME*3fI>P>#OEZR z(Q@L&AnvMygRLARG&3}YWLAtmC>3$uN9{lO3F3NPZ73K$rfR5O?@iR~LBKp`%Z3s6w56k+glG?(f<|(vaMCVVQ#QV*3=LyW)4YSO+mF_&D zX{nxRiD}dRh)D9$XX>zP>&`d98Hs1gtFw%oIbTP+yY4)VZ_9l8Kd39+nDz&h!$C6j zsnP{;|3cHA=>@ZLK0ZT`E_FNqr0y!U^JIShe&%8Lh#=To94246$}YlcMddGvpU z_zvRt!Bk+xgc#BeMNO4n>aQWO`eX>ZI4mQqMlEUvH0#@Y4j&aJ1=+6UAq z^;fu@a2?7dT9y3^Bxee*Zdj`D1xl^MS$zbvaK~e)`;pncSYK{BUVBBCfl>iY@S~mg z6_#EVBgQ4bCWGD(y0)}yWQqi0qGK+3e#yf7cv8bREZk-HRUzah@ZKD_tYrD=oTK! zHMR{DeCfN*SKXLcDLKZm+$2CX{u^O5phv(6B{hPx%-&4^&3+N9D0%wSHjD%37Sts{ z2ue&VIz{g$(`15-?pEAd@Ssz?(Kg&mR>L2gRak2{{HT8Mq<_=n3v9SqHN}0sAPm;+ zj!~)F2M4`bf54kf@o{XJinxEAxl&On788pSK~l}V_)ZL8Sqm3$)TKp@5#_@}nCmHn z@%EljrwRvZmqZ_DRW3g}bEGtQK1v#3aD=o*n8mTTN0y~X0u#jbB>}L2OC3Zn@#?T= z)6qTAvi&&fK24f0kESVvm2hije`XUsh6*aWrrCdYa0w*6m&!rv47vkXlhh8%(uR*Q z(W}k4+RW*l(3^l~UXcjScLkvrn?xwW&E{yPuU6BC1w$vY+VTITW8O)T6jZZW zQz>Bwpvr;;i7QtMy-qG#&O`m^&qyZ9Wy};&l^c+=D71CB-2d&H z5_Vk|w{>4Bc$^hDst^^F7mwdE=lt+^d{LEu^#j1SU>6d7MZed)jOc%3tXZsjY9yEm zC#~JB1-P1Bu1}s&zrsfSP}r;4Kh|DvmP8#1X-U5wXFEv}JgGw3kx~{JA9m~h$x2#e z%uKs3mIcD^jvx}>-YA8YMntFD0@L)z5(?QpYYMfM_cu=EMf8F%WNRYxYh@_FOF|y| zo?9RfeOAx2dNk?f6Drg9qk1BIS+K`3WBuc7vt!+pgvcJnVtixrB43hVXG^q>Bulah zEqTop?(&QP$}0T0#HZW^QdUXMtIZm{rDsdJ^h?@*W$wOxQFiy%b>-suhEb(0r}^4) zW}&~`^3@Vd#`D^>Ie5_}b2|jesyD%!{ci$hlf?wi7IO*>%0Oz#pi6qJVQ1vFn zSVx+W@wOo|>dJNgu&Kz{12-XchPWPhq$YGdOC;Fvgpg3_JdmJlE5^|^kVfX!Bf3I` z4$**S)mXH9B^)B6S9e^=gW ztL8+prS?FksAF@eS6fhO585S3zJ{^HM^2TsoSye)hXpH}LxcKtXf5yU*P2*dVCw!8 zE-}a1_1?8s6~Jzx%UqnYiq&n2YdLo$9jTQHpb@62*??zCHv;cYu9`wQ*`QlobRMl~ zmvZ6eW(xH3x;ErE1Aww`dDqF~W#S!praF<~=`Rt#UU1!&m0_teNdi{F2I4q21W~h1 z(w`?Jq={|}RHG|nk2=9VY6wV_9V;Ye$EKXnE4YDu6x=_QI?4cg!Id|*Mls+ zN)Iw#!nugpWCnQ7Mr+s@ytXh1b!)AjqI^i#>-RXRtiPOeV@i2v(+%EBT26RPF-UfG zA$>0U1G=;lUgHA5`uUldn$ObFiLKCu!sY5-2$#-TWf7kF^3zpQGTC5E*}{o9hi3m1 zHV1g_z%HcM*8S$^>7W~lLiZ(RoA5#jpszNB&EG$ciH5N9@B!&ZSysJ#8dBTf=uXV3 z4dXLpLaHQhA{OHAPAON+ za5t89Rl+Zck%}rPLG0y58cM~OWgw1Kn=>1r6L5d2Da08iDYrK0?$4{N#u?qaj+M3kISB78iCuk`ShBOpbdifOsNJN7EI7R z<`{LX@UGRsFG16z-0PDf5&9q(wjN9XJz@xphMWOgSEm|Ev+oEloxy&dP7pn65(v$A zjthrGYoDfrw9@sHCVDo}l$#e3Yl5l#1UP>S+g=q$x%G7%6YVF%+hWOTZTACZtgRO# zojY+v@8KjS;FOgg+$X}N-f>nMQ#kYThh!eXV_baYS0<(=UW)0^C5Ok^F@Blv)(Xi* zb@pd#r9-%OM;kf&UyJAU4626u8q)AU6Rl8lm3=zXp=HNYZpo%_?0TMlVsDR&s4fn- z7Mr|;C8aK>m0dFOC(nG@ZF3e=akh8`tlByLh!x=Kk$VzkV(J`OIY!U}HwDPMhYw?g zx*pATH8VKy{cXMHk|@vfk|BKbJRD$IP8_hpfQ_Ypw-8yPyh%q~3fH6B~ zc%kFXUDa}XtuQUG$Cl9*H>QrIiFdXs>68{t_XeGcXL-%yN$wwxr?_zik@?L{{EWeb zBKs1-@+|gQYYW0DOGtCBFvgnJXvxghtBSkZpv?P{w5SXAER)2G^#sa4z@AuAaOi zna>YER(IhfiXDwrg4qPpejhp|oi+(IJO+aM<~wCc^Pc4lh`FHo=Oas<0&4EDK*Pfm zEw7`U0z++^njIuN>M1bPdfx*l5uMJ^t)`}&!QAqtJIf$n6kVLkF~zKfIFE518AhA~ zFj^Q+Wt@wnYnZ^=2jhB9pEr^&g>8|=&Wcl%TN~NK5QxyXrH;9Ux<>jSxj>tts2m;@ z5A;QHa3E99M$v*1zy-k5=PAmlgL56roKfFkF}d2TtSQh+xRoHMK1&yCuXPh)L^cN#^3|6N|qH3eAC!d5v-zITSKMB9pm_s5E-z);K5x&A<_a2a~ z<}1Dk=YuY`YLj&Z=<}W+$L>f^<=2Nzz)f%O$Dn{XN2XOUsxNTndF&JHiUB-&!*uwj z+ZBeD#u11^L5&dfNnU}JgijyYUl!kWNRRhJOD9iepAKwuq)Z%RDfPw039-RfVq@{4 z#Wc07u$Wl=;GGgwrN>ahi+>wKS%e}C_87Ms)ofp8_3(M|BR!7!88NtgxiyuF?rZ1H zmGA6I2ot_9w)0&fQuBP;JwwF)#7g}PftnI5>oZh*ZRX+@}mUB^&O}{B|X2pjHb4iflA#7d^J4}Vc zI$+D%{T1i!m&E2UfV$>00#+gQrAu1yx+UA8kjE2rE)05!_N-uZHLD1*I*C<)&S5p9 z%51L7WuZc)8SbovLs}G^L#0z`W4?w6;_|5x0si7A;6EaQpC|0TGbi06E|L8!Hd1** z^~MmUrZjbz+ctAHNl{wH*sR?gW3yMz7_0NRY>^}_8e_u~dW=<9v zZ6l0czHE}Eljdf>;NjXCL#1xcg6pr3EvuqEWND(UtIh6PEn^$4WR4Z0Vg%tp4^p0& zW>eDiRJ4m5 zYRoy@u{>km%!*KCB4b)faHA=*kv$FH){F}4<%y1+b1ScSS@F5+)mzwRJm4G!=W%P{ zxa^K!hlO?F>yPiFyS4HpIgtW(9#*g(85XO!NigH<$8o~6bbj4=Jac`szzD@i&(P%B z2rYyF^9*6!oNCOV>jU$X;4&3=Tyg)4#OVyBY(DGtP8wHYE5{X9n+w~m#(0_Yxy$Mq z0!G#I1X6LFDXU#;{79d&)41#bDK>^BWL!b#5qXxXdPtt7_=pOS>Eg3e_duMbIU0TF5M>j%-+tmo(Y^g@5 zXz?=?7MEdE?s~yJBDvY0HTg%-;rd$+QLNqhr6zRwwh4!^UZ(A}`sb)JyP8W|_qp29 zw^WPNl_}^D_v{#95KcTuX(GW{F7ceBod@t4m$6P|@0RCWS6SjzY-TYF_t-W|{Lyt- zGuv{}R*xN+MrtQ1)9M!aE#ke-#wESF_TSTXRna3FGUW6;gB!7u01|4dw$kHW9 zUtp0Xfmnub0H(4zS84Ooo~o9E zGa@HlKz^1Ec8{A>Fh?y0I-|Dvs(H2nHEK8xW7~67(L=^E{|j`_k+2Zj?Z|)dDDJPB zpg^%@5l?C-Pti<$j0rmXaQdi{t2?9i9F;Vi&r?O){(xwBBm22$_NV@HRE^n>W5EPr z>9h%y^#R(n!`cn-&yh@a>1vh0|1Tvu!^-ae|95H3%>SV9+}6r-Z7LrM>H7qU?yxFh z{I#4;k@%W5h4IZRqMxIV(d12waDOcy(V~Y0d=WkL-5v%03cGcj+l?8agTPiI&i3si%;*s^QXLRz2PL{Vb`` zB!-C_#v)VYI)g1UtC*rHLKdAf7@YS=KsZ^BTM-^xUF7-a=*K<$L)PlfH%>kw#lWvJ ztY-+Dpz9eTd0IYS8OI;2or?}~>djlb?3{(%8{v7s#PlbzDGF2U1H}mE2Z#~aO=Qj>)5&90Ft@ZWU(Zs-ay6oPi(et<@DV&eVNQfB)W=rE zAJLvALQl1}=o_O)X1Ca6*GCPX|GQ$to`hDV7i(IFe zjzk$;j@kwXBC!dRFX5{ra1V|dod~ZUxd7QB*Ce1GM&r5){hn6azz3M3S%}6=kmOKq zcElGy(%0gm@gC+!5eX#*@FJz;FlLt?^yp`nr}U2F4NojxU(<+}EGt;5M}1||&k3CQ zc)Z=5uBGAWyAuNt=fXWEFo*4)KwL2PH@N3F7PAIZ9wPMoA*=c<^BqWLAc1h&1lO7Y_FRSZ) zdxYyB5~V#-{Av?jCv3a#!p@_*jJvjOT~iCw4SKjQGhtwPyf|(a_;wLq!fedAv!??o zw9W{|{gUsvZAV39a0Ce{Ou_UcwdM5<63W@t-R9=>R}v#jY_3&u!dUETK1@`ZI-7@+ zcY)z#8*mP1N?R^Ydos#u=ExI#X*j;HMd}5-#u`@q$&4U{#URgPeUPbJX@zi*-2eE6 z|2mUl$iX7wZMKV1qWN16p4JDyt=A-e*nc$$J7@AQ_xo=IYKVfofX?E_*~$Kw))mDs z){-TbtvS`n{XRkF$KzuMaAE0%99AB`vM#ZM$$BQ2iSe63%T%Qr$~50|L8OdXa5LM6 zQOXc#(s$hof?pzMddM!ZJ6t^Ac}SYmR84EV)XW<9*`KIlXnq zltMQz7BkIU!#2Vp-bIu9gY7Xg66S;Sgx0+C=*h5LeGS^&usjqe&plM}LjM8@OET7l z+O$in#qF1LnOI3c?IA`a`t;?oI$0Do3rn=gp_qORR4N)8O8O37Luag4>|)|v<8}NI zbwM2>!$Z+0rz*)h^136tDo$~8+AbabCNDx*Mz9x__mV*rlyX@*-&>uj6SQH&1}vys zBgu{x+OJrOzJ7J4J6=K-OOE!VdH@q0H2N zq|h~XcsqDX=0C=Q{`oKy-`qdm)4j)!NOjcn&c93|^m=aK@p-+%^4~8h^8!aFsx+RUmDo2|S)F32ArFw?~#mrc8KSRSC}f zLJVg#OOKH#X#lET4Fh;ctrL`Q3~w#pwyWdzdVBnp2iOb8BuY!=rxtU#E=DYXd7ZaU zc$FPjdu(~7*lEPl4264xD)yYI`Z}aTc-+Ol!9eT7-luG(Fna z^bHpAYdsxCZMK`(K2Xfu3=*q-g_ZG<;xRTeLT|t@?}ye56+?8-v}3`M7MQ+?gMi-g zkQ)TIVCEs#?DA|s@kWn!6hsL_sWOE@RXdGPANY!e6>eO+W+NOQgdLY1H<&29d)RdL z@6mRWw6G68ta9ESqzFULK%{NKTKXfTUi>qg~WeK<(C+0#Q>G zHlXD7Rylu4IP1Ox_tkXN-tJP~!(sF=l{1H}LZpXu0Q#rP6HmZyg(wBm-Xbo&^4SF+ z8X>8<_k^|g)deP8+ywTZxSgUOE^u$0_Cj0!)RR3*{d)$LR@GciZ)lsYL{FtM&eRqb zYlOI5pR|FG;1B&#SMn*;K8tOs@X%*#43~mGm7p#K5b+F4R;@Gvr}O&-tgkTvmLrpT zqL69%Ztk8egauLUy9=N&Ij$$E&@!DWfDh4KD^(G`?}!b=ET3?G@j>Y~Hz%&*Bz(m}8fVCy;fH6M2SCHSuJccX)kYaJ`6Jzx}g%Q~4S@$+7un4!Fib?_mgJi6%UPNXnbA%Di}cIz7B_9>L3& zG^bAKj!V{MQwc!FISW-N)Y4!XGbsF=LU3O&l&~N zl3>G}-TezcgD&q`V=|n*cXcVOF$n7=`BLAHyEyDpndKlFfoP%Ba zS0lT0Fx6ANf;lM|vvb2L8*?q+>*BFOt78O@u*HQjY2FzbLBHX_n<4Y*D_wY^oG#*N zT>*C|ox=Rl?Jcvp`E5-VHMg;|SV?iFN)b{E!IoWg(>2jQ_Y~&*oh`K7JBObd2@H6)QNwvbMQ4e5zatbgfNs3hxtO0#lZo z{sn4exDZHWtZ%K|wJA0`Wi6x)5^Wvhw#>LV7r$^z4WCGEs>M{Wqg=^po>(voO54g7 z6RaLiTBSwe5?59>gijOnF&2O8ML3}>c8@rV%ORU8#jB(Hsg>hbWI2vqz()7J_`)Mo zE*x@;O;W5kBdA`1U1>nqLyTs#WA8lvK=A1HccUWD5vT_E2we)mVdD`qsV7A+fMxS` zox`b|$&Q^AK8+xl^#U6lUGF#pzI^1Usnsm6|A@mM^g3@Cn zpeWyow-{26fTD!mt@Xd=!Y>Oc65pa_MM;wwn?Ij2$q;tQhR78K>@~luePqQ7W1O~I znGepV#m2!*j1ZjkC_PALhCO5+C@uCcYgY<0WNf_S=G>`)3ISh{GeoxIMS)aBOwMCq zO4rv3iX2qUDDWg#j3jIm!Wq%1*)IPnIVx8er;;tav+{A8oY8 zrZ|i=*y9nS1{Q$XkIjxlcnxRaK<~T(a1Na#oG5pIO#dCa!q~8+_4aW>cVx2)^*jUb zOS)!4hv+hE!}H(i<`|#!fZu-n&@u7Lfzytz4nA~f>-P0_i}dyoHE5O7`?B!9Svbo|hoVg6Nd_C#IgIR8vXYxiH}KR~yD}!H8-E_@XbwqQGV@y`@$6 zH~~X)zuRN&B~GIH0F(l%StIDQE|6d3&%d&3z`hljsC>-CbIeNT>i+alD5~RGdM` z@+dxntC|t8nHoNW@;hqkQ{6JV#t&|d^pH^EFG|xr#5(e}3h^xg9$>z!FrTQ$1krJ| zqMaSLIKTd^CU&Yc59Nt}HyMufDRMNnmB;lwA7uyNfmYvfeNxdgWBNM8nAGFe&41o9 zUx@t#eTEWGVB=6Tw6>>Ios4z@Euf1NGNq7LW|+Q14GLWd{TpLH5pgF9ysUT#F^X4T z7)?m3zvK}rseQ0!#F3VKDeh{OH-7uz46iWa_(kTD&`34S*j9{eWICFI1^fo*{=2U|AA7XJ5?0|EjE1O%?H2pkX)aI0MR5)cp&5D*X$ zI3S?vKF_oI_ucOn$0fhJd#%;~-K$rxUfqpTYYrf#lJ}^yVNv7#G$Eezo?R{(Q)YT- z%V!8!4sS_{cG;_ya;biTS0Nyd&*V1mLOyd)vH?p2#?iG9G(4ikxWr#d+4L)Rdy^pWf%C$@0T*+^c4 zR5~xW54RnOb7E{`0>cP%e%wswTucXNwYB?~gsXr^#mNs>$s|NML^+Pykc2MLkvJ&3 z<>J2i@UEeoFEAaz&Ooal*y!@;B8|5>Nw~|aJ;0yTlSIswfk*5La&ijA{vk!@6x2X( z$TZ$r3_e+2RLq@q?hzzUE_zxjm%Mv?8W~0M?v6~1;l#}r3J5C0B~JU zeozft$jCZ1e~a7+svt=pY(gry_6+U<#NHLgnZ2uN))2u1L4f1Zb9gS z>_eSld<$jIf#E$x7La3Q8dVQVF$1uesA#S#VQ*q*iXi}FE&%n*9ehY39@fPu35x&4SpYh=F6jp7P!{}qC8i#hiClpop!Q)S-Ib6#~SZ-kM8d#}ShVAjRJHyPf%jAob5#LQ+#e7lunkM*p%G zSELT4kiQD@Iy%&mQP}#!M#;250`uBft5BYJYfrR0@Uo`e@_h`iQeb&aXrtSiI0A8p zZZal>q?36>Um%Ba5LQwSAq}L}iMO|Lo5=+d;LlaSU#ft=CV+8R9EI@C$<&-vCQHuU zr1?@py_4o?81oJk-git$Ow*76oVb(0p-;&C;I!%M6G>=HoVdLSmWq~T8Ufg}?f}wW zC-nZh00+__ayJP05aiSqGPm{VD0Z3h-uXE7f&n>SgTgjK>*hPO0cfibY(;=iM?*Fj z5;~K7JKn+BtlrAafyP?gB*Od|)-wsM_7g zUA7!je`YPG!9FQ9PEPahqG#=+Wu%03AhCb0#hZAO93o{aMdF|oUJljjAqBGrQ@;uJ zDWt_idoBfk3wUyGH@Z@+Gt(Sp6_9~OAv#QF5Hw=dpA^usA)mTCd!jiwp~C#(e0pZ- z$RggXYEDHct7^wW*AsDQCEi4AOQ7AzX}G^+I%(|mNG)v;MvFx>wh(Z?pMe;41%!U% zFYYp$*II{gunQt7BGnSddqyXrWL?CvjGxh|qx^xk#q@uW4&0$a$_OylX^qZHPY$-v z3(Dy>S=~B-K@wvd13*qf9#ax$t6^waI-ApW)Lp29{{`{L-1vgA@XM3I_{AIu$%Ozc z7x2Rt{}6|Ck%rZ09kTB7Y!|MAl8!9NCoNo@mwh4e((1)w zbc2Iq`AOJN#w3C&Y**+qRZQ$mRg5}Q70B%&mk#%cl5Dsx=^%cM;q&AcASr!w(IZh} zbUf!nmvgQ|(hZ7H?0*HfpF2(vTx0En25NMJL#xV(c`=HH6f4m5z+&y-JcluvrxbvS z)VslDz0>%p_vsw4_pnDapnCOw{kCV2hQ&CM#vGoP-}xSs)g(}XF}~DZKT`HWNsHZ3 zi%1Saa04ba9#|X#)1HCy*e-(%1bf}QXL3gX81aZ=`dToz8ppX|sW*#VX>Mjo!Q-3)W3$%~ z`&x%YV7or3B&skly`o0tvNf2T%oGni0q<1>)=Rp7dNau2$_*51oudhixvIh#n_$#E z?ZcvEju8jS47wNRb8yGO3}h2WHwKjmw%z9z10>s8pT-2my651V=s>T8sHGEPkK@Ag z5ETB_)7;w2YEc_xa-uEtJKn{5fp5ymL=qwj9(Wz=fCCE4Zbmn=?cF$)+mRhN5jOcH z09!y|727=QAMS)rgClfOH!L#4JD@^lZ#D{&uEa-il)cS04t5nr_tW-jpdWfiFZ!ik zP#R$k`sMXQ)S!2+AHt!ruZu-jR|R12U~Ql*UHc)#b|F;r)I7B&9e~xJ0Z42Y?j{r& zAf7C66uwLMC}b%b`c>SYk_$1dd(2Kkv~yA5`5q1&r$l!^^t}oM6ADeIq-l3V(L`;a z!jl{Ux`=bJXqYJ{q==tR-=icSZa zM(t3GnTJjqZTYr;bI8`rdQJ?vT9|eIZsL|b%_V|tlZX>^6iXy)JI14LT=mHQQ|9QX4C%@mp-m>H}A zlX|REL)!y1>*8K8I&fZ&cXKaOsODN7qX+17-h=RY??G7Zd%&b0>-2zq33?HHTs5!P zfg@D_Uo^8Al766`cjyqh-b@1ZJ+B9m_q>`QvEyY($BlW9f*tcsx{PPYJxEp#rx}`} zB$?AN@q;sXL|n0bae;PW5^L8P@l-mxFPKY~RGRX|*K z=?B*ChrnH-;i9H%U@ycaIdDskIk>+d2yX=3kApK4N93hByd2OhL5zAC$5P~t7Pkp@ zM`s>4B?)jaI!C9lLoXofLE5#kj{NLOso&BV>&yy^J<|{hO$Yl;c~N8f-S2*WR1}b{ppK%o;2iY>I~%+CrkSF9l) z2BzGyR!;F&M+UJ(Ck=!uF)!-G9H<3zj4Aivj?GZCS6gzjcAb+o0ks8= zlq9$e&`q%<51m_*VG@r=nEaO@Z2WTVngDetf8uAAIxq8=c(v3|{LI9jIhd7TA)7=n z3c)-BNEen6APhJCCaZ9>5KW=XKn;|dvn0Oo`a#f)CHe1*WbV1qlh7t!VxhTAkkO~g z#||=Y+=LjC&_JxIKow8(J>Mh=Eq1mmP}06m>7qHMRk~qAR z(Z|fdSi+7{MuG~6RM@eQ`iZAh5a3mCYQFnuB55BS!QD2{R5%Q=OwaDJl=hC>mjAlXv#u z+mna>yuUeRMf^LAugrBIxa4SfdzQcPJvUW{Q~b)^=wfRJm+|q=h(OQ?zFk2LJ@6{l zDvV*w{YnvUrY?dvC!yDr3sbH1lCNOJ;)$^=nZ=q%OL=aDIym%t+$N3z>7(u_La?<+ zLmnK&;!?-K*{a}yzHD~$rNhBKuOCWXC5-}?A`ed%5c6+P@Sqn0(`FU|y$)|i%RsHO^WA)xcEjC( z2Ik`o2fMX&w06|OF`ip;F+h#hp6P-58{EtyfJ@J+i9k|#-zFG7Z7ffvHue?T7stn! z6YWhB9WAAxox~t?S5rA0DzP8R^rD!Pcs-pX553iH&fL%NEQ#qiNHCVT{y=wjVK7M@!WnZK zDLM#ljP#cnc*rg~L_{|0{3`F?I0dW(*es zW^mLetJ+v0zN^>;U><{3uSekgje=q?wc8qpYG=SU1>_WvFh)FfC}QP;jjIr9L>TpA z?rqNO;2RW}i0OT~oR|Qd3UgS@ zTS|IV8pqS2c!qi#{hm(A*W3Q(Uoc%K{y$gzf35gmsQCZ2;{UhY|K~ry;N!;v8WO(u zNuc*0R+BxA;vp0oa){R~c#612_YlS6^baQNrB1U5(sY<2ooa1H@x}KF>w;Dtq_guKH&kFki^@Cd2vPOC>Hd_ z*34>9*82{CyB~wikOP@$+6#xdowqLXfq7WPxhHg+u?7k{Y* z7>g6s-lC5_;dtE+wumMpSnb;jHYGOLPY-=Bh%r+?okyBOCUhfvq+l3blwmhKLm~fNB&L zFxsvN`-VN6EMU8kD`9T_C+uWH*F)|#z~#hT8}|9mI(@?QrU?b~!4Q!`0KbO=b9pZH z5)2+q-)Tz=^`Gdolk^@pY1QMsyK%}%`_mEta4)#!i*-w*UYsm;5Uho!f(P#&+X)|s zwBGJX5jcqR9@dc30VdyX2M7*Q1h?!3(5F3sid*k)G%$I3k52AMgzylg_F8kX1B-Wm z7mvqq7it76@km^=6{d@FB8h^vnq7$Z$^iW@ zbtiULK>K<@Py%)A5l@7z(kB}vRn)Gjg$Z1rPz7V;&rz?DA=2Gk=M%*Pu`EafkGKFswndn&A}g=?UdH^fQ@vTYGsQo5{Nk zLk{2}n9gZD?!9O}?_})K(uVk>4>#LH59CC%EsP+B#ljD@)SQY?HhV90m%GU;rNm_9 zF5rowsVeIMGNCAmMPepZ2TwEhlDpk859Kr1i_O#O#ph}E;u)SdoS{yz4GcwZo^T(O zUDFatWB#0-Xhg*Vhn^IXY02ZssfbS-rw*T&zK$X**SlvaELm%b zAJa%IF29_pDoLvsEbHrpxS6)tXPe?@dpI@X(7+2M@Eg=O_fm0I>%OqL*zEe3QNeUTTZt+MlA5 z02UCli+i9F@md3@B%9DOU^PpFuz{UeHsVQ?;2+2R3poTeAJG$mkhz6|$YNpd3m#&q zLd^hRkxY&=x;yDCKWXhysUz40A>2rblH81D^z$`#1?6UX-c33jMDyMWM`Fhg_k|k@ z)z=SFAE$2RPrG3?5@6cm^Z;}Pp5EMp#pj_43@f$>Q#Lyb6S$o<#^hO)U0swQB7@3M zTs->lru%}P!UKp*ysvjKx|QeT3Kf4rLTirHH3Z{mf1b!m(agHz6k5c1cY}*YyVnaN zh*}tKN_Z^p#-4{tq!(cwOLFZ1V_-mB)BEL~MfCAE;$s-m**^|jLtBXBdcRig`Q}a@jMdoIX=fbq;=N&z18^?L-pw4? z*KFe^QD;q>VHl$e2Gt?%-S9z(u!l}#{OR+j5h~47mDI(#6UBtuAQC(HJ|qN_tX>4i zeg;pAOLh!Pxtd_yS4zQYD6DV7v(N*L?Vf@5UDN&AfJUN=8SRm|M!CJNNGl1@~kabDaGrXR}JzC?p_{dvh z?l5sg0M3?U9~T>p>U%DGg5i7M6$-zGjb3|L4<@}DV+$9MH{Y_cXu%g(ZbUH zzZP&?*rfT`VA#hrkLGFb*@fZDR~*Sp4Q;H%+)#nz5;$5$;>sK<#Bpw?)tTsEX-Y!{ zyby^C$pvQ$`(NT1g^neH!cx2k1D=Uk?7(4$M2@t1OLk}x0phKtav+r~fyy>LFtJ!5 z>?($gHD>%3#Rg*yRAD&B;jS?@8aqn|zT&+4ahE87C)rW#9LV%Mh4Rb_qe3xc#K|WH z07>RQ%qrygG&D1rcrpB9JiIIoon~$^l2$-qgC0wP(Otc%iuD`Xcr1_h#KDU>Z&o=) z#`Z&i>hQqbUR?KQ6VoKFLSTV7k(-Ns!Cd0}8r(9M(Vgb%jENU}CzwHHjZ49WT?dz8 zVr$R9EWHxkj#$k$ zp_ca^-VuQIqNLBig24grTKjy#k{>%1S;W=%=Qgw`$G+!O`e~UJ(le zf9+F129;nPlI@HQdA``Qf2Py66J`<023*e z9hqX2NW={k^|v^6xx4_8K!7<$zT zp!r@7u+5t!1a8pMMvj4;CM@D9e@35OVv_i2(hzE=y8}-?I_nIxNia(dbvoGjdz8%! z3E*hNHR{jKhhu+W@U*Y5-s&7O=jr%<;HSK2yvONJ& zbV-&Ro*D=D)$~h!J}&p-wU~0Y%}Q5p%s|kXUiiLw+i$#-M@EL9vB1ejie#MN`VUgVG zzP#`@v%%+iQPq4|0~Hw>D}!O1DH6Qg(K=eh4Nlm+;t0k8GE5n81}ZA)=+wc5>Crh` ze+3W3A>5P25r&tTaHi%kB;y%-S0^r)4Bf>k8&2p0WCy0WHb3mGa4sK{pLtoXMtAR# zIV=MVLa{mtsz@;3Oti4X^LM{sCjk0=Mz4C)4guyT1F2$j5UFIu!PZc(v*S}1K!zK& zm|Y#5)l)h;ys~3q8jE3{>`vQ!iU8MRBY-*=^D$4+mrM>=MJhs*x!AQZ_;LP@3t%~! zb=qXAq&zFkTe6&2+vLFqO&u2A^77td+$3n{ab9XJU@3+8+&Q1ogTl`GSd2$Xygk&y z+7CI#)`ZrL9`$N_@)g{d02bvSZW|$k9m;$dTzDe^d<=6E&XJcA)t1@M>gXoK%4BEvv~T^qsqtzC+a-4nyi#&qzof6=@+ z1K`{%ucbz{WGMFHJ}5?m$vlh28DwTK$Uni4-E!~;SQ=shHo0Sw-1v}z@ESYJpD@sl z(9z)i&p4k(vnQw#0Ffy^ewnJ9w#3)HTc>1$$D|@$wFbQyHF+MfgO{9P@G}V=v^7HG zR%Y#=@tLqj2nh+GmvRz z79i8c`kJ*DV63hqnLVk^7?PKFd`8@Z+jW@yO2!bN_Nb@F8uwb4q*HfP)Q87I!Klrb za0+s7+YU_zjG4E<*w3nF&i#f_%E75o%HgX18x82D7O{?)kzqxRu|P3^ZuQu0EYPfdh2KghWR-ZY+N*0yNDLMQ#`uf#CdV~nK?Nk zwY(hH?l4CTXCW%rT^YH*sb4;baQ>El`I+xm7C7}#F6(wJ9%r=493)^^^I#hebDb6l zjlJ*wb&8eQ1O8WmXHYeAXspV`#6~er5Qx?3oPs)mD4-I*OsjS*dNGM49%OMb0@pE; zD94VH(#G~n&}$i!HjW>qD~dY8VnOO>aQSyh`|RfQ5Z>CdLdx{nyegC&<1~$#Slea8b1>#sqGx)~e4o>K`gZn>VW|?^Zy$KW7 zfZUHKUwJA95n?=YqadJ07j&Hij&r)y8o111cA7q#lHnFB2bblh@)IU;catPdI`jG7 zXb%a&Gc()X+c%FX4z9n*1yc)jcbEds;X*_ykzAwG+#&Tq12+eNcSGSu%@Q|^?W~HUaYxBLnd5rii+hgnBAQMm zFv58k$a=gjAqN^}WvF~PClhu~^l?)$WAdJ&85(tpRfsP9q8>UBHSA$E>DerpgHW_> zPjpj+pSxWA5CmoxyqhOlYF|DW)1><2FS#8kxJzxQ^*#Ax7_OAXRHE(XwrpRHiY20B&bDj-q6j2A#$W0O847T zV~evf(x5F5$>^X*4sK5)A33PWXNkCr6T%(nOt*svo6@+YSl-F#q&Ov5x(h9U$&<+z zw4mL%S8c)UoE9HwYLqW_(oN zw{XJA_4vd~EPAYeyf2VcVWew7*ocutA8|W*8D|I`eTpCFQn5xI?FRhb3_=8dP&*3O2hOYNw zHQd#z(gPr~Wq#|8raG8#7u%t`zXWmD2Z;+9=y~vV0@QIHWucLy7N>E~CU`7YfSgPx zFEQ_UC^L^Moe$fUb-oAY5Yccu479YP&p|sV6&G9j7hl?9UseHVbq5y>9dEg1$~8Cm9?rB2Gubv1y!I zS$>28ldnKhF9N3C2KYdX$vPHfZ^gxqnM0TwWIcV9*bp*!Xe|8@z%f?o^x1~$GOl9&UMrRLdP(>ADgn=6}IFl z06;fGFW2tQxdY`zRqSiS@Cz-g%26H|zcQyg5y8>dl6Z@7(*8`MZz_u1*Ryf(2uN_=Y1<=9MK(-Z3 zUAGZQPQmFi8GprCTm`$C(%{T%9UPifs4G~SU0@)XH)MVTAmkq^G91Pn=yT@ia*xKG zGcBFMeh*d%q*cQ&@PYM%PN*^^&u9)vmyTeakq(Zj&F zj>@_weifNn&k#&6<^)gSoO%vmibr!m!prBq`z74zz{l7K#|p&9KrRGty93S%vnIT_ zU@?nh)gkQZh&_i4*NvfI0QDvUj~(ssXGa^m%#(27AyWPzU;M!}g8ZQY$QWj20BHU| z$D6H5oDrgH3|q(gJ%THZ=uk;<*qmBH)dqEZ@~Dbjnf9AW!6o_r!!zv!OEVr@|rl zc>8P)(UhEnNEAb~r-R$(dB$wB@i^r5zx-KmbFfRLUL(lyi7$r#*S}`ry*GsS0K|{* z-e+j66X&-5YY3luV*&{QGw8h`0S~YQyf23Tw-7&rM;~i^(r`w+YoYD@h$?z~Lb|4o zYmX2g?1XrAU4$8_9mxn(sn-bhgRv#iq+S<;Q}Dz%GJqcQqV6@#J!dtZV|Fl{v;%XD ze(3|a^Bv-h9+xYfC5q_8dsw5uUx8~RoLn%uyK8Y>s!GMbAHyeK*sU_ZrA29WKlb@T zYB@mH>l==@>zj+2fD%Bl(hvj7u(w+{3C@M7*^@Y=CBd0KM4x#KYE;@F4P=RrBYYGa zX4p%dbbDt5xQM>9Z{eWhEfW*C;%UM>umj{(9AFLxGg%~uG5^qfx94#^Y9J)gnRo{n z)-8G`e4iPNSJ7TbiuAC5pW>kbt}Jk#9w(Zca{+6nU(jtp*a<);d!TtV_^}?Em}<`$ zl}k6n+r5^Ub79zLLV#s1C1RvFci%>xaDSWzqgb1x8<{!-=2Ay-;>i){Opo)p2E%rd zM~~uldhGS4L^QX5XBWMp7o4LrAlKzBQZE;u-7Y9T(5}A!wCuccFyRBIrA%(`NgRgQOtc6M!K;h*y;BK!SgCc zDuI?FT`~q6b0*nBsdRJgchPwChvG#L|_PO<%JXDUbBiB)!MQ=8f!Tudq z+azWbuc6yR9GrL?5g-~=?O|)WTEszEXF>ge4sj3+8k7x8+SUUTLD3E4KPCOs5^Hq# z!$9I~OCWeqeFwpXBplBl!SBo1BlA501J~){UujMgtf#V_n+4#RALnI{OT2vb3js*P z`G+QFoRm4xdF^9on${XnBUyHSgG8}}2an=Gb04}M#ZV1cAvPyr4(N*=ymKB-dnub% zU~xl2hVv&SLdXojQ<8xcLImG#mw$XVfH}3q(BAV3mO3=;mPTG^Ol>?kCU;}J+lAdK zSmyv#?6|0mF287Ua2-(x*w$48dgsYy8VUo%Mhhadn_x7UDZtpmPX?Lnz-~X}55%f)9w3W@MJ83!DnzU090Ybs*du9zdzdM*#Y{7xK%5 z+9+U{BMtZfVTN;veET?0!z|L}dmkLO(GNpA51jB0Y_se+v>P(1uMP0bg(+yqB7bz= z#taQ)$sjQLt6?lqc}u8MHmkm?B%Zg`B6A>5flARGQ#~r&ZJb3}kx*6BrIu z#{^26HfI1G1`cRbsX)-n!8kZ8fiZ`g1yc{P*7`kAFY<(>8ajIryx2*bjoEyOZ-0Z8 z!P+(0Oa@XQy>)CaQYYZ~0#YF7&NjwF2BQUtS-Wxy$WV?POAv0SVNS}hSR|6aFU)A^ zouSOOEd!0s>2B)`#^KqT%RrWs4CMEpGhi~Kh0<|j!LLpNQ0;USHuXK2WE`Ll=h_FM z8VJF_7^N5p02>fgh)wrgrib~F6zM+Y{}n+Y2;hww@VZ5nH8Q9Ob- zHT0zj^F_BGiA$#++A}AOA4;&Y?3iEdM;{vQzd@T-{%_E`;TO7~>?47UEHj7fhcXAU2iRE-hbDiLS0(3AEGKsfQ$S?IQ= za%jj!4#s;4xZ&|I^2Z~iA(5E zHJiaTD`t?Ct6Im-(BAH@2IWK6piEKTnaiTeCzy~`v&id%^vP!tc@wS-=yQ_+A=PQW zH3O0o+oKuGI3|qcL$=&Ppclcdgh0j4O{4h$F#Ssgaw1epMO8>f0~yCD3+>2jh|hH< zr_~BzuBQ5+dM4`-NQU?6Jum@7rcjI6PjO=bYUsWcV;v|hej{vOlEh#sAV+7i*Hvz70 zp)2MB$j+nIAVz1P-(dEzaU=a-n$vXQSBFmqG88q~p9<-jY!$pVj4D9XFHYRoqF#l7 zF$aa)+m#^u!1Oy6m_<_oLNcNtqI0NhuaJ}1oA0)9jS@;3D5&F&f5* z4`F3)=|h#wG<_)2d8ZEv_C2uqux`oB&L0y&pC~MqK1e_Q`v*79-zPX#JZ3x6hX4$7 zeF9U2K-lL#5UeWP?pS4dh=b#|D6KYVbl*2JKN$O_1*^)PwolQA#2MhPPZTsV>yvri ztyM&y1pQ#{gZ2Zt584mnKIn`)dyDrzwEl@NjOIQRcHFB!-dm3L3GTT`A2jpotVH`z zu(178cLt(;!rEoYK`4O;$Q@u))tVilMEUHn&VI6WG2XX{KBgPjh zTXUq3bwD9WGH?W80YBMwR~jaiHWDc+_aX58p3_el`5^p0RLH^WrF6F=8Q?IA zndJp0y5iN#*3_IKX6&a0y1#d)P%*j)KY?QG&4Ll9gt$Ym7wFz9@!iv&TTkM#8D~Fl zQ(zAasm2QK#U%?tQ%$4+J;x3)Y2%{@8uvtcQ0$Xq&Z4IWsV!~Wfbwh9B-h%{?2CoL zz`Ms@=VKv+D>1b7zGNC`Ka>y#+#E9|&7#cfI-O+~J6_{9%1bw&3qL&nPse zaeKO7&-W#CS^^k}b4Kh-=JL1Lmw>rt?})dPXZg`xh&<%s?hVh7+F!8y#4|WpXSnDc zyp)0ak%mXQ`VrW`!5uEBFsx*BlXjMv%}UyKhbs2)0wxLAOy~}TSn;W{0wZi5c4u7X zM*@X+hx$WHj?cCC;pSDafS0ClS5APxdGshpI9^KNAi`?9ma3|x3BmDX9|rxxtj$0H zJes~S7@*1MF@wf{(YB4QjS8S~|KwYMR7I75pc2oCF9F6WvZYVpk=BY@Iw zuDe(RCMx$$3v2pvPFWZXfeN-!*pk4lqjodj7%jD7uBq+jKx9)|@a8gQ07w2CKyg>4 z8byA|M+o3&9+$Q5&r_r34FotM7-b^&oGPM z086I>?pyn*GTQJ3ke_O!?NmVdMQgC=iI`Y>-rObN>J`8NjXp(_*O({TD`?MVCuGG4 zcIxp_>WpF1?86^&MKL2dZ&BmLc6U94%#5lqn3IlmJOQ6wnDZW5{WRWXTy0nsA``k( zRk@_G8TL%Mg34#X#8Vt2fX%E3Dz^6PlgSy>dh4gMoN@B_2ydEe4sS32x^B|2^b62;S zy-^=X>UNeBw6@2SO=LBVrWc1Z+zkXttuVsuHiTlugl3f+i`! zi+mkC!&5SZQOP8#u5Uc3!S&FXvDQPsyH3o^L9~kQSBCW|(o(EXiE^w@fRe0Fa0K?E z|A72aU*G=Bqg%yenEeU;7H=!CH}8BGCOOoo1qd@P>4A4IkKzO~?qaaP-V3GD0~=LF z!WnR!7n#A-VP*k`oEQ#!w9$>2_v7@sA>`p*mWe@<&h7@1{kR7WkBoGua`5=f+ql;xd}h{Gq*h=aVmx^wNnJPvLYR?uM+TV_A4k4%^Y8JgFa(8C4#bTIW+R zgYCrY0p3L4+=Svf_ExuX$N+4i46ut8X}I|#?K!;)V8Q^E4q7*2h;REBH=FdL{@fq6 zZCe)V@45Ft?#+_R!pYon9pXP{)PK*t2Xb$kN{&$~IVdIG_LnS`6qREXPYz0nxBazm zJpD1-Ug#UBKW5v%_6^h@v+e)x8>l~K+rRY<)E~3$#lC@Z%-?f5Ox&#;#QE5nD)Inp z1v^S%JrAI{f@kA%Fl@=7P03;Y!ipUFlK9h}L+fGl5ZoPG=;knc+7oX!cJZ=mR!B*x zb%@a^_dab-zyIyl(HwFhi%->(gQ}I5V^wK6C{$Vwwo1!kzFKlaqLL zxrq!+CWF~BgW)`qyM~1Z$W>(6d#oTDT}+t=4?y z96M(?qgP3|%e^iEtSx3+^pN86> zkZyf6B*8uuj#E*eTuYgJzn+qHj8)%yBzC9+Pnp%n&=;Y*Gy7s?;^eH@ z>Lad$j?Tp=X{bQOerLCi4#SvNr$MrwZg=}o$c&pxy1EFmi$?1RaP1uT@T#NH&KGI( zs2A6ACX>{-@>+^23xNKp2WYxCv^3iiZ*5isaZ9oaY$#ERuP`bWYl=34Et6`u|*%i=udVv zM1Ww;Q-QF9?ZEXYFm(u2gxPS)K(cbIfn)2e2FgvR8Zhsh!c~njU(I5N8UYnugWy!r zt%3Uk%QdKQj4(^V%Z4o;Fw8KxT4S!&`OC{vjB=|EBcz82i(uJ{{5ME(kLzq*6m|%$ zCuU8AJy1WdnH122j+0s+0!}bJp~QL{QbTljVO(dXha}zV>OqDBDfMB)4B8Vgt71D> z+(QHAM}2l@t_L%UO>12flr@|7f1vE@LR@02K@XPUz0NuVq7CLpyY1#oJ$AAu4m`!H z9qBx7T&6<-2YV(t+}->;-{C&m9=u75=Q3)@uHLoYXR1+H%1%)nY@We~pt>BZ;<1`L(3 z|CEIT2ecmLFUroaV|?@_gLszEi=oJ{4@X2Ya;+^gh_{L1q9a2vJa)XmCvbMXij**G z^D#JB54vKh)JqU|bSYD45#CEgd8rr5!wp$RjT`oYnX4XXzL4rcOPK0`%08k8I@aWq z)jeRSWbxuvAEZ5E*AI#EqAL1eW$Ta?+-;^KG2Rc9p{TUX0AL)l_R4@e@QmL~4=Kh| z5A1IpTt%732(tZPQ8PJIXQQ)3;_2=T%yn!A&~BVf)jc>j;ep%rpq!R^9SXBz*^BqB zr+P!9$|2YHz_sM(GeA!8?;+p-=mC0u#ut1g9Cdq0B1cb zx@dbiqEBG#F<_m6WO<=#rQnS&*9P{?YE}k!f`s<6861bNv1XtF30`Wh31@p@wt|{&Sf?m`8~ ze(Ik~unm(6fjeJ9;fqCmH_sn(&6|$0Fuag514yv#fl>~7r3D+_9tgAbd-0xFHGpQjIs`VrY(F11NV<_COQ+H0>XY`08JNl<7-Zw^qzd9cAVO4O zP?~f)Tru=S@g^?k>p@VH*;(iTyZeI7pe~E)HFP#C{dl`f25;bD2Hi_%2h7vzLoDo3 z8M%odz3^RAi?cbUG=FX}fEzq`wm*x>Y{YuNJFt4iLc0gjmO{c-+s5H(w@Oc&nkB;Zfb@i@C8~gWSn$9PwU5HIQc?y%-GiUZ6>cui=rWN^O~R zScl;CGBt2SUjwDu29w9c+py8Cq+q%T$lOldE~Nyt8Clc2gTk#UoP(hX1C!g;VS-r< zem~sH5*gCzca*~n5%Qfuk-~mlOPIlM!8}A>G!k|R`8-9AZFI4k#>4CB;MV*GE0heV z8`Cq0>({s+A_H@x(~AfhR4b%35xZm{qw(XI5oZV}NEc@&j?8st!0}~?l*T z&qAYT_rjX*^}uMy76LZxv~=)8Syq8i4aUnCO=XOR!e0zetTqo1RiXZZtbSPDsaB8E z47re}q1iEk!DJA3%!h1SCimn32xAM=Gnn{tFy4ykfi=3^ke%SGCY3l}Mq}!hNG#zh zD2~|-^b%Fha}}To9-*YRrJ4o9)($4l43x5X45Y)D=w>Es=$!CdgE7?#tyljY%G)e* ztCtK!HDw0Cqbc!jfD8jUV63w+aU@)o&_#!UolGBc+q>{51Li}h5N9Jfzvc%{Gwfal zGPdx`VA2$hGoa($wK!BZm~(F!uZhVb!eUyYcLs#VT}6?B-K1X0O4uvOX-$TxNBY$Z z^>?O;tf#|!$F13V)GM&ttjFZHePx+~o>^C7WI!m6_!M(5f>z11^R$;%;L0_SO!9dYM`&R4&n7uUb0aouEFeTVM9}A zgaR>y?kb3l&&2_x0xm)JP~r{rMA|Hrte2flaYh7>ySAeaTeIJ17uscUK){-K+l&oi z$63jQd*-AMI&cAwVr)ZJLi-~XoPqZotz!KyBhD4#^g$))OGofZd29aytP60stAjg= zcXGj;XB@1p0y3*2y<^miG!;u0MY;(tksk%Y9$z(DY^uc#z$^k??Vdrv&5z)+>2#1& zCfd!RFGKl<+BRmBMm1T*JBu}2h^1W)%OI+qY7pWaPSuDJlE;S?KtB{>+}Dy) zr6y7wg7#L~IwGIP8an`2NI5Rl9q;JGfyf>Lx4uEnx}NXlG3@D1fPqPr%@H={+cYg? z=gE;;c1WJf;aaJzi^MXfAKvP&A2wr1{fL~ppRHb(J9GlfU;P5x`3ZM)x!O^54JMz- ztQ0uu5IH7vh8#>Armjg*)ECAF*>f`2UulSiE5LG`xEMK04&FaYgTWfO)&1@2*14!tPZ9B|w>d09oAH7V8CfMHZn1BIC` z%;B+2&7z>yKn93S)&ovkEJGS11DQ^;29fSqhY*naE2I$nD-a6y8cICiQiIbZRg3Xg z`P5U)Yui0!g~^yGoPkUw!WCc*((lvOpeRqTgC6UwgN*w@eIj0$0B4vx{(xOgcwZS& zc~C<%)~Nwj`9Tedn+Ca0P=n>dFRR>F`FunUGVV$1n;IlVt{Sjy0MsC~15g7`wg76d z9KtnV$l-O+=6f7DteYBax<^oh9*vs>HCWpvs6qH`f*KS=f*L3l?r+xAwI+|mZyL$*|7isU8_CrylR4_Uhkysu;`qbd+nbh%l9IeN;Zd zI7img#Uy`=(#PmH%5O!tE*bkteFPAG@kUOixm{dYbAaL0g1tFMMvTe5GCO2w$rl*} z`omtJtWRYrNL5EhFO_0%h~zFM-O!MQfuaDai(WXS&0Zi3QMg9o;}%&Y&?a_fr>jtJ zNS6o^{ym8rl!T!@d}B@Gk1VgUMA%#zz{`_8h*w)vvpv8>GVa0YilH7T?KIT7J?Y|E zv?K1GjyeMJ$}Fee1f>T-0n!_xR6_JcxvjQ7ap8Y*v*e-mLUIU6xh)E5dVMwE8h#6DB98%vC*e)YK+K3Z1BIs}GYqyP;-iuo z#@7|iL@{DAT>kc84@wUXW>88vU>(_;fEj^*x-SEAez%ACGH`tUt^!uu^Ub*oE~vk) zC&RdFRx%h?QRIA+wK(Wk>fkbY)-4=aRDL2cF#`J?edxH3;i;ehE`2hUO+Y_1_1iK3 z_e10hk*qk_)HLNLc0GZ3&u$R{|KH-K|F@j{Vc-wX4h;?$8-O19-N3-e@1GqU9Qnhh^69~%0BjKd zpZWc>1LgA@fGD3Q`kCJk43wJ*-2CXX1DndNgXLy~;17W>;8ScTdC_>{S$sB?yNAlr z@{LEm1L2G9ByICE&CmM`bYKHq$CmIdj-8QvP2X!4dvn;Oc5L+#C3kGqr~i&oyyN{% zh5KYAB!BGF^4MpODFbpo`t0upM~Y()hLzaoDCH1~HU!6`NvLniW8b+@bc*;Ms%hx= z10ddjavb}711oFjF-z*$4};GjFZ|g6lA`h0fNDSh5{^8^LM#Dw?3X_v#d2wbVtq(Y zaqOWy!Z?CrX;`SGjX;%4g#{{nT`X;~x>(vIv?8+*<NE1}v6Z#4WWQY{C65K902C9|F2udS~MRtJC`wYWGG}v4>fOt=Z2t zw%O8d%k4dp-!spr^4Rxt1AQ*gUGv;UWjw)Jc|y?74Eh;7<2W><6-q9}srp~B#&ADtf~oTs$8X7V%Lvp{ zkAE6Q^6U_D@zmf3 z{8|B);T|ZK$t}xe_IQrkr{iq3yy+PXAWU0u#OYvpQ@Q-K)uWsW{k#glyg^B`Hp=7Q zpkUtRM&HuYs8uF|YSE7dAf^Kc9vS(g?~lwf;@D^%()oOkJpPSk_V_nh|6Sgg^xtL8 z6wBi0h{%{R8n9g6NUk8q6R2?S9zwkgjy!`}8XPH?pHu#ZF`t28d8bvseyyv)N#@TV zWlAXZD1tDJKQ+L*UHVxytTA6KzbKD=jrlIS9|#I)i0!Dva=AGSPr3YtzT@DxXrIBs z%^QX`ZxH?sPDp>i|HttE5&VA~|2LwqjUe5@VRSfze#g};N(EmFh(U%%^lxy|$Iq~v ztc3dm2_EI=F@7H5=W%{ECcR<7_l5=Q>dT9Wyl~$o-!{uD);7y4j<2)-EI7Acpnji^yHFuzvkD35(vE_2AkF@mPVkCCu=$G-d@ z&kn_Y@{9|O`H{R#eSZ_UPKZ_^i{(2b{{xJv2dZ*}@mwyis0LS_^ht2uS-v$q>?+tA z>u%}$EzmAaj9|x09U$Z~(hLvh9r#w-fyL;SKTAg5y>i)cuw^<`(Z%wY3B@<%^0#hm z(wSqN5Vs7>cWSx^s8Q7S_vCuZU!&W9ufqPM@59*iCk9>9!x5uAF<741V2R0z$cp7( z)&EYIfac;;tS6pMLT)KfY;_^&Oj6q7Q`$lvTby`a-{+X46E7l#!Q#XyJtk6^`@~K| zyf0e&zGa}d1Ug_I&alOarg@t3tav7M;*95-Bjt%RWAr((wqae-C1aXtPxQ(JC5UOxM~P34I@XqY#K`M+4+ja)ha zs!Hx*q7X5_!|a2_iE(|!HcntdGypKJ&Jn^-Yz)pP4F}l=pLe+_{L`U(kJn`)xpM3;P!-$86H*VYvo;5W1 z=%b#LJ)k)DQ_=%|Do_0EdH|iopTL|ed92(5)(U}Ti=e++d;KaT@qB$`fw*{#G3OS=o_yGIv!yeFS4Pj0d1l{3dUo=42q9J4Kk*_LBoh?p00 z%!?5t&RCw@t_(Kx6_-3Yo&-5io_xy%p)Y9s5s`tXu)VhzeOyd01p89sY2p8 zSiN%<9$Y2d6bQ}b2sgzTk-(|MtEmkDEj-9$dy$s7W;P@rQe;GlH#CXL<+3mKSDcb` zdhAQe%wo_h2Zk}>UJ zd}>Rm$WxjFPHl(pSUADpCq`VpI@Yaah_GH3Ej-H(5~hK$A|fEKp9D?_jn3loYne<1ktH*OpsK zgFnzom>g32L$QL~L&&~^-{IlSPYwJI{~whbz~67ihcN>PMl?vTDiP%{oeY0HUj&k| zqlk(Q4EISWhljAby7MGuh~hNo169ERL<+B=PahB+k_QM$8W}Qv`hZ1^{2ELScBa$K zIHjF#m8aV_rO7FA5dF+|7L4!W^jqFX?ht)s38&xEP5?qs35s>#M#R7$@s-nyO0UIU z3pc;5q>P6oHs_eXu-$(rx<`@_QtKRNw=#%oT$pA(|{ej=xeBd1cao!goTfF74|^Dejv>H1028Kj1MXa-(gH7 z)?=YOR$s+0HHhrya6$oq2=T$RB7l?xh%W(=CIfh_y@fyu)L$qxdh5^#dl7monu&dN zWN0&52%QqiTb`ve`N7sar`OnT3;%Nw^J;DW`-8qe>id(vKkNHYUs4vwzlFl*QM%6D(idY^ZhpE?599{>?cLJq#*Y#$o$e-+)1IIc<3jr%MU(%Y=9%|d60byj5&xo&bBT; zuo_8JaUXnIo_XlfrPJk834Nj<5A^*s)b1Ks4~6(e--lQ; zNJIX?uV58{=ae7(TG3P)-t!ya*=x>j&<+lM$`5`a;Dd*p1%MriTNc3m>b4}{vZf@r zJiE~?nxSVA6FFN9jj$K$m$^H;DN-+g&#FT(s2qKk#TU+Q3bk-{qpRMtu^*n@Kw0VR z24pa-zU1?y8cpzXlfEq=}CT&PqBx9Z-4NYw!B2y6iT zVzPiQ*;nGEB#h%YsBO-FXE%oV&sRGJgf)d6>L?q@Y|sppSup#+h1n2oqq4wZZAf~- z%%SKvnDldYYi#BhecQd53F~LKp`WX@=}2UQv)k0ha%k=B6v7H2uBlxOdGnc?jHSoHfW z7mH2?Ri6EvoO~lcL&J*obA7osg6hZ--N&NYahJ0S|2$FFGWVavRs*JdqjhlA{(aW| zeF>%brNDpos}cNHx?fSB2BzUsxThg~_H*uXZX97pMKAQo``A)J@?s%~D7X-Vh_az_ z_I_okoV}k76_*q2p`JxGqW2kh`5b-}eQ4vzMs>;|{z%m1nthD$o8fY$`(t*r#6{;Z6`rVjk;G0F&?>Y%+v_OVxO8&C`W_fOd-^o13O#-Yf z&+Sy1UMSDK@CPj1o}mg4+75nwxelO%Vh5aG>}rw<+f#^q1hL!LId{vc9Ex+dSP2?X zaC-d$!7$hvvBj_V1(tp8e%w7ccRzw*DAMxH^%dqoi}nj_a3J-;;v9!eaqh0ZpT}Si zl3>s!x&d_V8z0p-UaCF!t*e7?UF7AtZ;NxEN*fK1aE>Vz=S*DzUkLV{3r4#Ym#5-f zvLAQutMc6UHpR;csg@0cDD?G(Fucbw+@y6{O#El0#A*0TN>g<7Rc7U2%0Bo0^)Ou=Bfm0Dh|?Ih}+fjFU)L4Q}zOY$b=8WtAI$`ek2Ry{|YQ==+nt zKkEClzCYkwo*(3Q^`YFG^d(y>R=TK&R} zxpMUj@Cp36_QV25BW$=lkA5X5T#p#`{J1j1rB!+U0Q)m=@{B(c!yT{VCFkFYh-QXJ6e#C+m*-p7taADcpLZSZd^_Z-{YXG!bRe~N%Ja?866d+z;o{&t z?DU3!eB=@RE+9W7UO?_5vHB#5S6E%=cdBS@xf^n;gU9HL^K5)hc<03_&fgMkvj24c zv-14st{`*@uj%#t*K&UkmN2Zi*$v9`zwmop?BV8h`sm}Ev z03gaksVNS_)zpOobz+Vrw}|O^ms>h>jN74Oa*30bP+l0-m(^cf*skwZe$QK9zVM>2 z8|=O-SDQB^aZi^Q-f^kYnPV0rW+BHcM$Dpy%!L<}@(XD(r+qP}^T3YNT|k2Gv#&uN z4=Hb8^YGASHS~ouKFb%TT?0=m_80Ztmc+JHUU1Cq0-eB@7udzh3wI*b2V2VvpIV0H zR4kucw)rzuTu`^W@TD-+Qw$atzL3Wj?HAn7mqtw=0y#qQs0$A))Yl62HFavmg|CYX zahjK=s=PqXRb2QU-}1tb`f_I%Q^kd!!#?tbUxq;fg*)a&ZgRtKDSq#{(S=_{;4GIe z{K|+v#GZ(s#Xj6neppzM<;*c|R1mXCA-5*@=gSWrTl|nt;EN9j6Z~lTVZ+5tr^4^n zH(^g79w`6}Hp(_pfTPQzVaxVxktG5r?IK_uw=V5<}VSiF?{7g}N_>Gzozk>hh zbFpNWu4v$kruWCMW6eY5McaUdSg6FlRUi8BTfeNJyc1|4C26bxHbetet~K7EH8s<_ z_?&`X)F{08f_b(u(u-TnqlUb=jh^!2PKDWN8-^Q#Eh>~2TvfsHPI#?2FYdPPdC^aE z!{x>880G4-kjO4>cUpSFkt2nCOW&rxE#GHFtP(lF_aYetr=E+`VTQT*j)%PyVSb9b zxDa8Bo^CP1-uJNgBW%gTmXsSOOEJ;6JjQaXK6X)k?BXY)RZqLPRql86UC?(?-}kLv zzlNu{m~@ki3+2UcteeOwym5z%ksDmR8?$)FXT-7)m-QFjP;b(I>Bk6~?XuE)7yf+7022WZQy_{e(LM-N<^ zf5g`2>fxiGtfN8hFqk<^ANJ8tST+F6Wy425J;_-Hzr(*Dz+ocQ#IO9G_L{FtPGN@8 zb7_N%{}OlJ%1cnuXh&|iyi|B42ca%Imo|Fx=S2QoB!51VKNrZKW4f2b%`S;&75Gsz znz;kG297rk4m}f>GnWpyZ|h7 zf_0cn)|UQJ(uDo=QGsva8Bju%U1pZFn?~{ao zEHC}+BBB%c;u8A6(Bnf;@?i2VFK=?cPrKjE?pG~#`T3C5XUfZ4(B`{`=t!YkJ#_06 z15O+eN#fbcbT7XcIOOH=5J7o))YSkS3AEv%a&S_)Jg!*Y`U5&M6tiRom){ac!6I|% ztEXs&hgmroA{3XKU_rvg3c0*gUS6>Zku%4fiI_7hb?&dP7>r+dD+Rjm+4d;+|BW>YZ3ohj&Yrc7hyq z{p51ePcHvhUUs68oJlOexE@4|w@ADEOKi+v6!Wi+Gpt3PvL>-(O_NVaI5-|!XsvL| zueIW_fdMfAV9AqRfajUXwJnTxZIcGp+9rXvI?-eZaJN&u_M*tP#~iOU%C+5A$#UkH zHzMW@#i?GkW)jxg3#Pb&5XNH|6vi;8B8yN=(`^ifu4L|{H&aM^yxT#c7ln8RzxeS2 z-dd9ddy;0#DC>g0T6vXg8t7}E5?`*d!OJyyYK(fN}<8As{r~8;axcqp#zN7dS4#I4e zA2;-6e#(!rVnAm^5BT^ktHqBK8``yB%8%U=O-_ZF_QSOJnB59r*Q#)6B~g;YoQcvUg1d9Qcq04-wBCc($B%Ca$CeC*_4I$R9SC=8Gx#tw1j%gj>w%z^g^UhOs$D=rq*)iVYbIG>O)sXSs&$^+b+Ku0Rwy7I{hpUD;wF^@uARamAJU%F;2*#`iKlq7LTD1N^xY337{A?R@1&xxchn zzH~`{P2knR7{SBx%0nLk-N2Vuhn1TD*&x^k!LEF7@qMMpzjCoY^j(U!70T7p(T@%}3hjncDF=O1_Hy^uHHZG>GdHu<gt2?s?$Ho83*pw2W~LHp|D>E+%x6X@4?b29$%$7 ztzEYO&kr8@gIZd)7YfUPR9yYeYUaB{c1HLpJ74|b4+E^a?{9YSWa@PhE#n?qmmoB^IwW7SX$@qz!jOCh!@wLrd zYe2J$!%ODE{vh{evC&g_yUyhnf!21*WFl%iK%u%2mxqH^M>9;xE|MbTSa~2+tpJ zA`{Y+c~GiY3#*&UYi+9qITa~+U3u*tR|_FB#*_uVcBZ`M)&+7}`~DhZzqVFhyXNYc zPQ`mmUogp`!AEGx$(-rli1OM!p}tU6FLB<-FuZ2!NV!aLk^xtX09-9B#A@Lg&9$Ec z^4iZXI)JRYQ5~+1R|}+DT>CD`_}At2L6>nlnXl`lDz9%6?GM(uz(cX4j{$-&c|&=9 zV{z?!Xe6%fe2i1lwQrv+uRVC~*~id5xUgF-{BL>fm-70C^7`=b@X#~VW;u%M+gzs1 z@ii*of#n#=k84tq$ici^d!U-S_COhXiy6B<4iNS$Ew9(SQdB3et{TOn=-yYDyQ(Sh zsTFoJ{R)mPLR1o2pNs{}Aq=O6^12xN^^0&9*H=urVG39jQWL@TpNvgiht1YddHqwU zny8E-{WKZAhZNTr1YG(*jj>wwTz_En#q~4A^>2~^eEoq=!ubOT*T4028PT`OBYGHe z`blVRSUOqkoPJo{p;X27cSyUU@p%1!n)dpt^0jK!a^v|&$fwHd50lJ@zPz#BMSBBH z?t0b@SDQD+EhQe3xxtNlbBNBIO!vk(jH$~TX3>xMiW@Hq{00ZdjomH<^n@GRnWr0W zYPm73ycIW?`QnCFRN;rsTikfx<$lFw@z@&GL&w&lF%LZ<+Y%g#8*2({^2-hP^NC=e zsA_JoW{Vq~ZO|omI*YRM#(h*T`>QYfeLp8hOnKu=2(;M6Lk#7O2gS30AfFv6ZhTtY z_@ub;*+_}oE^-L6hql7C1?7!zJx99n8E1tX4;0JyNt1x367hXt0LDF$C(HTg%K7K0 zSg_IZ#xFsCcWtLcdSlEtotY8_?9E|UbvK6<^q%AN#SNSZA9oFKj|~NjlAF(Y$7ZYe zn=cxG(-;bTvqA682E1~-2nUD9O*#-7d4zj70m0IQGZB))S>-UvaBqdVxv7@Ac}wmk zeXr@O*1x$T_ZfZFn{Qr(ySxd30sRz%{iYK&Z)&Jq;sVoMopkA;oBiRiN*^w7-e;z< zO1{ZjEN_0vs=oA4?gu2giK9t3?|CJ{2>f1430h`XwZFnvD{emYtmz5U2|p2f;jKYe z<+lb&d5eRgxcM`_n?I>BZ;c9V-%XKsfAB?lYp3yUIdhEL|0AZ6W1J#|m}G*a z*C|ru%)^YwbdtlLBs>r?2l6mZrAwk@NlULg7Aj{R#w~V{^Hi?W*DR6jE%MWt*xPpJyYHyL!=OSE2>E0;ntR*RDyWX z^44w--JL=Yc<6x?`i6(TkwRM@TB*PvVnh9)!u_J}ul(NDpufFQZj&chk{#LGMS0ta zkaEUaruS)!Sk4^d>XVqwIp(<-=D8g6e8fDTW41)hmK?J+Vz%ZOw^(Nmw&fVNEGOm# z75hbXh}-UGgJArYx6#yCYv0;FMDx-iI7o?~Aafa{xUEj3Z+Uw~M7LMMaKG)8FXe6W zsPgs_d*ZF__@lPu_L3$Q^dB@IW*0gHRyuCFMHrje6_}@*dED6}Z+YY`^mju7A0@8a zw~!FvK7PyKlBR}_whlfH=4*@g$I+dn{NQyEt(d^4>0Kk`?OWyTyT$Eyl3D5YEsOJ0 zRi4IVahpHr?p}JhjrAOJ0Z3+|eft*TV#S;nlfM0hDoLF5_Lq=5bs@#jqd0%%M@xD8 zTgSZNP>QTFoC7Luf1|)Z=_`hMo87$pr`q$M?Cj;zG}-z;v5!P~=bwf9bz3L@bXzC? z-2BLZ!`tsB=YQJ$ihul*GumMBPwbnaG5&w*-Zr|bD?JlDS0F$J$=u^oB_vWJl8~6B zaEhvsgd|Eww&g0Ntg>ZLRj3Y0uFn4@WZ=G~*AJk7g_g`8-%YnxTOiXDvP9(xij- zV)ww?n_(JgujA1^@kGb~>+MHduEQ5;@EGP5g^ zBO4^s&%h%atY(slsxi9F0-lq^IXaS~GZY-1F&|aYQDOGFSlR3Hzih&n<%;AJ$ctQ06x zk80GnTHj58P<4aBNF{RJ2qmQ3Qq?VoI_TUP(G&DYjxaNU&N#jvVTN52caw>@N40p> z`N3F~Pr9zSU~D1`ex0JZdEqT7$=#CUwmELgF$WBDH$|(eBZ&Fm5sw(=?y(lJr*Usj zP#s3Ou4I#JL40hIEo_49TY&irINIVWAPCo$A%MC|GSDzu*z9QWSh0I*gc&QP8R1wd z4H!!b*9g}OHGvJs^hl1a1O4d#KIE8u>n~)#%h>!Xw`6R zLJGE93cN*A=G-Vhz;M)S?``!HAdI@n8)2515c%AJmsEg zB@{Y2|6;2;elHrRU@i=(1PiU{_&r&3{GMw$a)X<1UGTE*T{1=R^JAEWO^&oM*&}S0 z=w~*|VOSg4scJF4#!|jU*}zJf9C4LLk8r$CK7IMFXM7+WAG9G*WTB7S(525%q0ewW z%y6MkF7FdN@Ie(5d7p{=6n6ZAo5F%n3Xjjz@ZnMSuM8}MXVja^icj`q_JlQj&uc%s9#7BRjH^R#46uTe&?lE#;R z!0dVE;fX7xfutn^Bz;SK4JhHsTE=s-R`HBoq|f0RtK}yrIAESUmmFP(uN!#wl4C`m zb@_eKCrfV7+`|E-k9ApuwSmz-jws}^{f+wbM;OM9YXstkv&0WBHVAXZWBNq60Y^3X zB=@JVvO_+|`0K)JO2Wx&X6MN{3vqJJ*mF+%$vId=Pd3q$e7nWwdvY#nzQ#iu6cU(k zs^$fAKychUIp@c{leb)!sp~pHn8|A7-ek4q-ei0Z(;rUOSd|_nsg%2Humm2wAXNvaXy`${DMoEN z8Eq>$3NQXDSkv^x!WxAGxC&;$*W4AlHrSm-s?dzlE_cG2CWY6Ni)OhH)8uYf)RViT zqV^=SL*7OxUv~RmcyhP$a(9X4#BQGxyO|TaT~6#)?xS^b)SDc3&zyTsxaX96o^j6^ z_dMsG=iT#ydtP);*XvDQHWO6cCk?L{%i4Gi9mx~RF_Rn?(} zliHl0tVO5Fjw5>>f97``i#nt3hNF08Y&W#6!b&YUlI8MbU1HVBswIxGdX-H4fbB4u zyUQ<%@iw5Br=D?i4)Y(aFh;Ymh)GJ0Z8qImth8-M3W*AD9Md;7lN{cp z;T*g5d&^N6dSVq+R#s{EQ{u&l9nj4=Dxa2LX5~YA_*Fgop1b#@YT+yT>``nHYwaaW|Zy z!5B}3^6ylgGNX=; z?G!$Vv0QOH#DA(00fBzV^)hI{7S0GJ?-agGW_>NOKrSrIRqe&>!c6RviCxZ+ZWp54 z+t8i2K|I<3A?DVpZd%(dgSzwCd`fb(qg&a0s@wG_a=LcfvgwM9x+p%&BrPp zW6dg}Y%C(brF<&utfoFikfmkd%FL`%*lWq{Rn(|BjGA?bC530CmR_nRAf%QIsTBhn z@$}}=PZbt~=^s{P#N@<1vhbkegj$h%gyVktawR&(H2;; zn!TuGDeL%3IOj-EWC@>>El%wu*KF*;-7Y-{p9;rACQmXIz$iDI7ve@Z#yyD~v)mSg zkxt^}5rC1MRx0s8uJG0Up6j-UZ?xhwQo`;m$mw#k>~y)Sbf?QB%ZvxhKrs5#<gQ=EzBoR7Q3>ra`Cosaem9ILP(`zm7Pp@;PaNZW4UKdll&T0ji zX2?394`MJMPOqaul0zLny)K^!@t6pk4%!2&cUiQaMVLIXUJln)sNXovZ>`ZgoaSDQ zB4}~eakmFt>n2X;w}p(yh+3%BLL$?!%cJzfwuVfU*#xD^rWTcnYnrDucRIa0mH~dA zb(#|?D2?V>U^q+i6Ex$|5-Q@ur-8Gt)4N?lb}P;a6Pb|XoJ%yOR5I(lEI-c#K+Sot z<~-FvhE*C|XTbSD4ib*C++eKlq+7KabM063Oj6}^hloIi0iS^BCkY> zF=BswkzQkFO0{`aOT#78zy}s#b|UWNE-_ECtH!)cbu2uom~1qvN}6HDMC-k0pulhm95aZy>=#%|nfvye*Xj)H2C; zn{xI;K}GV!pd7vC7ygh_Ss>&rYWo}=6+%kjBk^rZ@!6rik~@L7>`NGce~rr9&`+l55GGGdnV7N8$OD6tKr3CCpm!%yagcW{{Cle;8;*vR?W4;$UN#V|rD$5UJ2}myhSUAH+snRcS7exDC#SpactbcRylFx=<+vqOVNI*BrtgSz*VW_cd#)>; zz87_+#zR*+eGjUDoO~AH84bnL+%TQiB|cVuGv(Aevqn+RtdYZR8!$h+gln#4G=_7h1W}8$FyidYC*KJiVYT`(ayNH$kCIHDV#}Tmc+4XhOKla?F^hr zM+O=X26`TP5#t#_(`M3sk}*TA60oU2r19{!NaJC*=Y5zRb$EDNe(XNHjqyV-2YA`^aY=@-F0EUE5KHtrYwmETqJf2)J|(Gg>qj zMXO+pHs7L56{BTHppPwQ_UF8!92Mo9qMWZWxxD@2Q4vD|V;LqdnoDhH0J+HANYRC36now}lFm91mTD2`MOkpxz%E%n zU9!1$I77Gc=Mocg$>q-_Dq{Xz%IA-GObLY8SRAWy#qr z2m7)WAh?#$jT*?BUM(qRd%@1X1Dwr;v+fP2NS0M{mQzn4>I`xXcbDU(CUMmLc> ztOk@kjNKpPz~R#5;WZ_aJ3F=FpZwqtzq97o{$1Zv{#fzS1fht4jo)A?nM+p?Ruiz~ z;EghX-y-1gqI1g5Hf^6C48UIOlTpr650s(HQQk6-{QZe zWuzV@BnctmF~XM!<%BO2euD6m1pJS`D#Gsp){ys8gr6o<5Gn~jOISE+l1dC zR1lE? zmk21?U}+6wdy?=J;b}rG;Tgg=2;U^s5q_WWEyA;edcwB}&k>#{G!R}OY$0qVG!ni; z_yfW=!apYbAz?e=j|hKE_!B~k@FHOcVJBf1p`Fk{=p=LzUM0Ln=qCJt@MnZSC+sHt z1>r9VS;8K|Ucx>?FX0Wse!>AlAK@V35TT#&7U6BeJA?tkVZytF_XvZ84+uvHLxc|r zM+wIW!-S6rBZM4bjBuPVPM9E^AegG z{3Kxw;im{cO{gGL5`Kp8vxF+bTEfo}exC3Pgmr{pB>WQLal(4SFB5)+@D;)a!V`pF zC47~zk?=Lb*9pHy*hKhs!fz0MldzfaTZG>x{0^a-@VkT>!jpuj2u~Ag3C|F|LHH)2 zj_~`0ZxNm))Dyl0`{)q6$gg+sq2rm+L5Sj>S z!b^mg39k?`gg+&GpU_NbA+!?O2s;V82k&(V zzad;B{I`Vvj_}_Tt`q(Z;eR09ApBdx|48_EggL^$C;U%@|Cw-;@V^lLSHj;AZV}%5 z_kcmdpZo_vitr*~2ce0OCcH#=neYnXpR*UZO!yase@XaPge!!7Ufg*3vg8fYNepx{4_cO}<47tz{KoN6BzmaGX%!A{~X~W;R4}a(Xz6lWknzlBnjn&HT1bkxIwr~9%I^9LyFNI zU~~s)!U0BiV1U4w4onc3xC8e9eF;J}fnob<33UW&>7$lDYU!ipeN@$#BGB@_455Xv zi_k^rChR6;3B80qLO+3K^wEsIA;ML{HNthmO~Ng}p$!C@afoIdq8Wzfc46#r-+L1c6HXskEQ5 z_1_@O5pEK05pEYPE5-9IDte2G-Wo1iwu;Xy1crNyiF}KRe2W_1qK3CO5NOQXH0JHi zglfV7f#$zW%iq38V2F1T1SaVnYJP{B-=XGrsCi&Lfl3Fcbbv|+C^ta4f!lz?RIsnN zXxSrl6cdt!a>5!yC1EX~hk>&5bk-BngbbmDu#3<|=qBtY3=tUY@EyWk!acyd8woTg zdmhk3OWwXh9)rEj5btIQy@WnOKVg6{NTB9-CkWK{-Z}#Hy|Pb<-;0)m$;XL62;UeJuZUV!;KS;ap4gK&#*n=ntf2k2)s zLyUTeQ4cZdA%+-Yh@m;cO#xE102~-s)ewN&_!UpAMPe(3B80qLO)@EFbFuh znUEr+2~=>D3XW32Q7Skpxg4np!W7{QVTN!HFjPb8Jm6R*VJ%@Dfm)7H%dsqhW*nm# z$7seensJQkj|~xq3DkE?s&0_FO_(R#A>1Y00}PiF)(|QQjB=P!4zDL{AZ#RT0^qZ2 zPz*cFupcD|#e^2ZEgG1@meL}1uah8<;y(Fp>BjZOh3?gGZ-Yyg!jr$;@hHT0+O=#b7f3Y{wh^`yq&`h5LueuFB6JbD3A+hdLNB3@&`%g33=)P2 z!-O1Rf-prm1L(O6n5NQcDxId%X)2x0E?=he80;EmX!Z=vK2iyoEhdx@))E;1EVa$f z5UvpB33mvLVfG&2Y=Tg{q6%B{*e6Xc#b#!5Mc`clT{y;2Sy2|QTaFDrJ|PpXgmK;% zvL?mN{+@nZouUgANIaQ&e%)wZ$tq6Q9K`a*R2qJb+@c1hH7$ zwN_4)-~?-W~z? z+mHMD^3o86j>v?oa6IZ&dsWsNAEYXhcB;IURHa)wWc?iK1-d~;7pxt27qjQK8(xNh6*t;!RHKUt{i-%8?jjHFG59Ua6?Am(c7t)-nlitSv=sZ`2@R zSMY0~xHQVWqXVr5g6uSUO>wW(V68VImEnn|CYWbNBAblO&KZNayRjwAv;Z@=1 zxjl*B?e-$LW*r&l>L~c(fzohKV;C`bX{lIo8GMMdP)01*#&M-Lej)yhcky?@_uHY7 zvsb*G7H^ftP0G7?BSt>nh{ZBzyb*&kV&P?Pxc?gVTdcw`yXnM%VceJCxy(KAIGi9L zeyY3yyD!*^;doHMaQTb(>2uM{VecHa$k-3@zB0B(9d)Iey?oVc6#;L%;i+E>V!d!q z3b=4)9^N>c8t2?w?K6cxq&KH|7h^#e$oirfD~ny($tvqK6d9}vBCCS9Rlc4(Gb~Kp zDj&|7;RENba<#~;^3t@*)0M?;7K9eK7so6Zy-1fJ#fBE98JsyFhf<-O#e<(z%R8h* znTc3*qb%e&5?BZ|8k>n>3S$IK^SyEF&AzgNQ8T?!4OB-uicW<%g)8TjDVNpaAFo7ID<__eQd}lgC97D9Y?hg zJ;DPQ>;!yYF(-?C#bIA5rmmddcslH}6AGAcBRnc;U%9KfedXA=Tg2ommy?jV| zc^X=1nFU8oJ_uv-G=g*75Bt^>u}J!G(xq=LCT)&_T}+c>Q?~@breS^SoM9rIVV;I& z^{IX3%6%EGX`d*IH|*O`qI2~n%&@R;lY7pr-~tH07mv*dY_Xz>;@8@HSL;hf?5Cm- zs1qzuG#@y`l;A-gMo`51WJaQ>mnagu)U0ocUaPPfjIH1@M6_b{ zs?~7eU)D6E*M`8VRhEDTehi8qoA+mWINn>OL$B8d%d8>vu}->P8hgj;$ra+e-Ni2O@?-!-*5gb6&933wDZc(*vf+zbil;VaIaN)h1TUD5av z?ox>6U2GnQs-Z`f9~RlwA_Y18FWiCvDwObvXg?Q*FP6oqDa;bq4P`19c^ zIeun3Uvtb6wHkW$x(t+8Z!{aTP?jhk%4do~#k_hodp~qXGkiQEC2!WE^xU9_bDMC4 zZ#MY(9^8B9VxFke@U)^fVZXYGLgqaY(#oBZ3dsU}vmZ`h1>U?!vsfw6*_AD4=HNF* z{HRJ_E??n`$8zQwe5K?bD3-vR_(}p<{ifU^uzpre4Eyy1*Z2|XdtM(oPy~)oLVr0O zF3;rP&DH(umoLZrCA?kY0^HO7mr43JdW;W&#hn z?K{j15PL25X48aHZhU zYKEdWc8kmSTf$3;%Y8reRy`JJ_z+2cIGZIuSElC2>hM{6TMD!jp!QD+eB{@tzEHqx5>KG28`zaP>SC#DI8_+>qpk3gm{^zYK^M$z7D(#R9pDk`u4Wy8nTEae_nw z@UvUX?7?vcF3qi1SE>oEu6)Fp++Kp8E;3oo>on+EVh?@5wz|?OL)ReS zx5dsI6MJ}x3jU}VaG4OlRt|cF5N#MVexMSFuN#5*)hA%7aETCW7I3(kS5e6eBrBLM zd-mLM&%5^IeGT&Gmokt;k^&|PfRn*Y5&$QIaYrQqCxe+T08R!oT>u;?M!EhVl;3${;@&RAh8782CR{FDAuJI-B3vn4B`gf%wC^@WCt9vVr{Pt5$xx0AfMs;C_g?YiYmWN3?HT%^FJc5v*59Tbk>po+^gaGq#BMeKJa!N;8v zt6xY&_-?5b;>q~mEyrBR*&4pP)_JX!*Luz6_^Ybj=%Ydr@W3kZ7RRo4c^4kgt&+9u zc^5ya8$eXQtc#!ML?gq`S86Hr9)3XZf;S}}Ttx?kH24=O{0Xh?~#3VoV6UeHgp#+7^MCx zdjyQSxUU4kp_~lt)ACI_k$H@ya@l2xri+sVKKUQIX@#?t z$zb8{KNWOq(QivxmJgxWZ?Ik+MSsZ!weJui7w?QrE|461bhzCQF5$#QLxoEjU)eQ4 zG3E`&O6)mQTj4TiQBUeRR=z+*(&y%h1*m|g7kr)LB4o^iioc70|-idmOqQN4f ze#MO6ks7MSZ!oRnoFQ`fF)L#5y-?&}GeVSbD`L)se^eSd86%8~378nI_e?|vOI>)z zY#ztfm-ssGCE?@iyk~K6^)&3tEAp?`y(h!E`srDG0p@8C$>2WIky$YT(tEMX>qEgp z)}~`M8bkP?tKM9A(1rCwU=O-d=E8%njJfcjYZr$gC1!5}yUM){mBrwYz)xRO1n*1n z;HCzv0bDpL42lo(FxcUNKgJ06ay_5~-7MTxA`WAf5@nr~U^l{)KtD{mtX10Hbn@5@ zOsf;&kCHfZ!jcgYaZ!~US&+lUIAe?x#8s(MfRD) z7n!i(Tj(P2n8(^*QY6Zx1W!p++vXO=li_M@(cuw(gpEdYImU#G=>uQAn3F^rog@oC zlH~CG(Pdij(PhR{5%yuh&ga1^_WbBBejOQi1oE5k5_~ynl=+Pexo6HjC){(&J!jnW zoO@n$&r9xk)jhAd=MDFqbI+UZ>1-Og>)iM3Ia=(VrS4hop6lInlY8P=1di&B4C0q? z@Q2rzD1y=L6|1oe10v&zZV(K?o3WAG@al6;yv@X~vkZX2!o>p)v7j=~8Wd|N&f>%! z2dLvLT;>8+F3!q{H4$e`h&2^wO`%-*dmDI{XC`6|mvRud)@V%b)H!7i47nuqJE3FUlHZ1y+Dm8>O4{JiL@tJ320ufR|Kxe zn?WXvGvmF^d4egG*9Aw6-u9fUo|tgNSh*)EJwbz6&LefPavs6z5v+zdt3j-EoRtnS z#Ee{IW3CW*rCpxb?TM@-a@#zo&l7_p5Z$i0?p=ru#gu2U%utt1$`$s=F0h=GvEV=z z)i2r@LwPec?Bht~72>l7=G&Oh(lKV~N(_-BH%d$K(=?b4BXx77rJlSgQg&Uy#mUwT z`@_)-R5R+cf9$g20_T<^##pDYV-k+tw2CSEmc=akb~rZgW$uKdS3He7tD~^@!qJ=H zV+$xejs%Xe5;E}d;xM<~(kQ-Ja?SLcP+Kq%=w@Z&=Do?dIU zPXX42#~FjPZbSe^A&(8HnV#Mh<}3qY(&jM7YN-I#2(ZZu)r2|blLFV`_nAD6pTfE7 z1Jolxt@mgMk2iXHTX=lCr&FQovJ|Dm;~CFy3CAiuy(?5%NTw@1-tGCj!?7p@*>Eh1 zt2Z2r4DAb#_j~z)@c5vohr;8-pp~*53?1?w6JahAnhM9dJpW8Mw%gM);qh~xJ|B+t zdHOKVp1{CxK2=P1EmfU(&Pn>W~B~Fs7e4kOdJwnJRp$fd6PCK2^YB zG`&Nj1Nv9tA^r05R1aPVOPb#{#AwWLktt3eVlaL9J;{iMZkhz$f$64YrrS}_XVRuS zqID@aY+J<_aYZ0xjDDDaiIE3Y!-JaKFBYJP8ly66v@$aWv#POlWfi{Ix%4gK;7dbJb4M33o1N$5yfEym^{V1P~XYRP=hkWHN+*R zExU%@PX%_t@F^n{%LhFaIgbR94~>~DcE*hQE`E~zCe+CqNH}Z6pfzHFfHg|zIi{1N zuL-)qlWDA45qRFIA0GsP78g!pPPq-E0&kf{p1?Y-2-JUKMWDq@i!EkaxC@H~LccjN zZ%3sc(R@+jeQ;rJ@L~sg~8rvRY7t4yY85ao#UeNX15aj*{1!?xw zEob)BoFh)Hal~la5tA%(=D_IgGS7;nx5*C|{%68d4W%p0&n=WTcX^m)vqkzev)s_0=)cqk~Vo3-^# z5JVf_#0>km5nscyWIo=Feo40S$q*+qF4m8SJdq=T+_Uu$%R{RaWh2U?PDP|uif1*5 zrB#Y&rKx=EqIBXy?X{?uBZ9os+jIuLQ!)%ek=x;b8tlR6W&l*e|9U&6u5Z9h;YH^rjxU4fd$BN4*}$*PH9S zJ#?Z9lVS7QZjX!}V-|d@)?8iYcg|dW=HliK@^PIW{pQ+ju0eYY>ycY; z4@<)6ZFAMw_jhkDWmQ&1;yY_euSV3bZv6WkoDT zNDcElT}qQgK&XiV;;wWAK@6YNBN8J}PnV11eoJ(0juBwBrpH*N9>>i!ZYda7so?`{ zlXQDZ{CPx8)Q9XjcGtO!-81Q)ZcsX|g2lJqnEq5$aGs~$?vpd9d92Bkn?d-O2)WB8 zYD~T0smJVPg~scg3Y=A8Kg|dB5!bLG^8tO5>-YW2CsPO@gFm@}J!H&xP?3{k7gqCM z(VD8|oB`oaa~2X~7mDbIP1}XC!GmPcV34;rnCs{-&_^Q?*v-v5m;>P_w`h1`g)IK$ zj&>$LnP)%Fa^RsT)Pzs&ez|H%@{@boQrwHfnCN!*_J-4mF9(aVbvSkgOl%_;(>c6b#43)Ix@r)(dY|1&II~u@77zCUmQmWDCJTyi5(A&0F|L_)*lI@;H-e{9 zz{3lhM!bLwXErFe0r@%j_-uu)@Rb!n32rz44KMTK;f5|1|xXSf}@*+(@5uvoFW546Iai zmvOT`ix5wJ-8z%=a=5yicEj!T=9H&7XCKmU`t%b3xK=xIpHVotUAQv}cgBTd4YqXk zu@K5iB@M2VW<|$k>fqB#eb&odoMz{Y8|0(V-3kY{3)ii1-4>3e;bP(Jou#APo|%vM z^9m2Q3qLQpc_(*1k~=RsxSia2$(?s{*+?!cIk=r%R&rTq4?ga2_MDSk^sxu;5?>O| zmb>@6KU(XW(rmqJ8MAAd@E@%!D?vK&z?B`OW^q_)b}ie*Yz-&t{NRokJM+i`c>IFFFxQQ{_;2a9F*}ZOtCF}7L8ewsNh|WIX z!5DwE!Pwz!pDdllkJHWeN|7jBGJ*_Y1o&V{5%G#<*)XW0nVmA@&fy#&FJU zRN~KE&tCQCfM>6k`7dd}v=`4Im^=2 zDMiJIq~{#N<9jb^yhF^EJVIUgT_9wFJd1@%iI9UU27Pqda=9yoYoWeG)JDY(73SQK z*Jx2}f)p-1k!+fDHiK;sM7kThGdSh3OFs3bG9==`+-$vk&I_l6=Y(ev_bO2{z%YA7 zcvYMm#66`#OB|;Pd)CV;k!GOCjms@3%Osw33B~0YaN`ScpYT295mggWwGmYvQFRfO ziYO%+XYeeha8D+pwkg(L;h=C>IOQ{Rg$P(m`|usEe6JJts+jh&n8Lm5R#G>9_O;B( z?5(3rc3#2v)>^^r-K>Dh)4kQAyMG2D3il8Obxxag(Ds zw~71Aj5+f6trM;lUoq~hA)UQU+}j}E-NNm{Z9-Mseaeb`jp9%;+&2YVSeCe-gSKVU zqOS{87x1IajPpN?0lhtIQ0W2h>JOa_>`K~ zS;yYTRN{h7@ox|h7Dv@;Zz&o3uMqcMBkoHG*Aw?#ARgQx+$^L~;lX-h_AYTxjW}IW z$#Da}w1)V4<|BrhWOy(u_C*?YaOx4)20@ashbagTT6C90Qws&vm7(rJkc{i<+b~p= zg$M75BP$NxQ3r+ZC2*7ya)-*P_E32g{E)Q@wt_>&)<5#jorCvcwCSMkvV1ruJ9$W1 zaHugK`Jr@-Zjnr#uwD_X)DEe<4h==hde6(Y97T*4;$BnnuS&X;rdh2wWw6f>3;K^@Jtllo7Ye;835Oy3TJ@$ij~m=LE|7ReEUl+6K)ihphrd+ zsq0@Wzjc(`%kp)ML+oU zQvz46(zgDKqOS^X3sr~v=SANHhHo(o@NJ{$av`$}7qkj*M49lG)l3%rTeJ&zwMsf8 znq?NgwH;abh^Umf!#;HKttl~REbed>UJ=eAn@T{1Z_&W;t-HiMYvo77!?#s}Z`X)s zG`QeZxPkcA4bhu`;oE(pH!giVsFcdLb7Cm}-o7MSIrsKO(aM*%uXr2XQ2I8r1$V^) z!?$kw!Yks?R($m*j`CoDcH`1n;YRun z)cWC}SWdNq0Yx;B7H7NA1`HO)z^*6(1KoKtn@%>Tp2m7?=>v z)Zk8B(Yu6Q!fqke;EG(~)x5I&fa`SS8}GnGUd(jgMv37|NkBpk2;(fjt1>z%TGbmv z@neCg!y6-N6DY)9DGU#9rX`1Kgv>l#y(^lQ9K_)UBY!rui5e}w=UBYhRlrSx1V#2{I!ka+c z6D*t|zE>-(7v};ne18q;_Ze6Cew~oM;rojBeaeUL*9aB+`x`|!2-gYM3Tbore$*n8 z@6$AoQDeXj#bOT%qq>aiiWS^UWjTfKD7C5lNr zHcUuqReA^Q4c~S$tTOb-ZqeP+a8C4$XvTuOl%i26?e1sB3VWaub4F>u!DJ%!#DrnK$Nq^WVddPRzE6F@!UfmMd zErBz_3)0Pex0Tk1SH!-o(C9B%4&jHlBMUU+#5W;e7aPZM0@z^Cs`tF^4&j=2~GAcLOJ$A=u=c*{?;ROAMH%oRNh$Gpe zZ;M|eEElc=;*hxLO5qye2H{=dJ>o}7%}1r8rT-)8|EL(8@FVH}s7tg`_7QdR_5}J~ z5X$P0l!A|xksrynkElN!DPdZHh-+l6+Y8Zxf8>gIk{zuSJwP0#?Km0-#93=`8ib9) zdhxdj)8eE=%dXK~;>h07toXah8QCD3Wrp`Dv}n{c$oA10@s*nFb;^%k7G4#foN)Ap z@Rsl{5LZ?U*APc)$j@yOZWPjToLdlX6E+A3go7$nF4S{OM40OqDqC}BL{9*5m$#6L zaqGAES4ijPg)|43U<>DfVeY1A8jD-5#kofuD-|Y%G&vkwFI)%2CEKEisThYUq;--u zhm+DeX;$S2lS!HuPAam=tDte4I*bZWiZgZ1=i13AYo_KHV(K2H%$QSaNCO#qt@No+ z9q&WJO6fjTC%>eyM4SfEOaN|e7pF_uD;y?&;vVsY5`0Rrp0@s&!w5bof#TDqQpTQU z)VRxCNcG|AjIdicAv_1fRqsAoA2-UqnSLL)2zLo(%*VS)TNZsRlTKJ7E5XN|_rw#` zlD{OnR>;Ki2j7AC@pj5=TZ*ZMrVS^yi;H1mph(nYiUWfHU)uVC~`4W zCW4>b+TOk8mA2PvIuN+EDb?K8ns%!3>sG(Ki0^kZov&=k{2={&d-|nxd%AUpm;aqa z@EZ@1uW8-!N?ZGPGU?Z9TALOPygCuA-11tcbH^(#_Mc1yj~U~c_O=!UwG{t+BKVm? z4_frx&dy9*tIw65Y$E9VPO7;pUDcB6u6i+Dm1^#Uu}xKN?Nwc^saI2(=G2SL>8h9D zZcjI-QyuA!s?H?2+R>WY`D5BqvvX%h)s9pvld_|&6=mAh z*45G64dZD6415vBK%lj)lQN8QC)pjHsdmpHchO&m-O1^faou zv-W2b!B1JBmbOe6L6zIFqphp8GcWMn^ot#t&R8tJ-}Yi%>q~9y z1iWFaJ@Hn1FcIwbe#(t!keO|0`VXleVWzmuRu<3}=T`D!w){mR*yT-mw#{nL7hOQH z=zI1hg4Y&}|BK5KS54wp;I|WddR-2&YN3YIqb8+ZPCxX#aIxUASiOoHbqq$m<@06{ ztG>7#TEsZj`nYxf6xPkweXF(YwN{rTWff-!nH?QpKuwNXw~Nj-Zs%IWWVX{!srj!Z zfJ=OLtJ+}FWCI)U*FZ-nb{fHU{kCw$Ouy&v*P7M@V#%RS{~Xo zj@|Dwnf8uODvia{gWqKBIq>kyTrB~^p89q?T}#1~(fa+xI+~7{U7Q8mOkTGA@zd#- zQYeogSd$386!&-vr-Fbhg#w?hj?T80Ao%G-@MYus!6dJZbHD|Diz$o()-*TU zOVs|3gi7azf^kG)InAX?O6gid0yrZh_=~(8o8)|IN zJj`e@C3!Z}`hAvuY+guKEMB)pvxOfgiIBS_&xa5;hsJ4fz1!S zr+`{#yQxM3z*>+7dBqaa!(I$a(1)Cf&=|`{xE7cZvp|cRbmtaK;V@&U>rA(FynyxG zbFIy2DVj1Ddg907u@L=kJEo0KcD;o4Ep9DJ1gm3=7gDV+r?I@l4>9)~*@`OjbfyC< zp6=({+jge0)I!tlL|j~0i4;o zfiji>Y(e*1_z)+vpBlTXs&%bR>DSZk9P`-k2En6=;1N_G#}9(X6T#10FVMhsHU+n| zwRb+(-jr^~j={6Y^DdNM5ahdy`vtA+Vrr}}L_GPjQ4I|OR*M3@O4WH{MYMu-+qN6R zL{JJ>T;R)zAj!~~*VD~dKct)_7h7@m*7j6u2g@Ygza z>yEZ2OaltHIFz+*Tid>kj^UYhEo%ZXs!H{yJ1UR;Gs=y%)No3LrbH7LxNi(%^9 zTH9Xeda>K0#ZTj*BYFmVAJ3

>_j5KM5K^JI5pN4kAWdPf)9Pj?;GpH1uAan)M5b;AaaJdXZF1rn%dMzLp3! z6bco_x=0XihQ)#`OsWqN*}lC!5Ch^UV-hT+{Z>26K!V&L0KXwd8%z^w`)-B0O;hlrDJJt61tyzHQnCamTHP- zW!!kBcJIM>)lmfj8ykiy=i>CuyC{_J;Wlua%*oMbOFGrQ!<1l}@N!qC1B?VI3h`o|tJ&MDO1ng~)buwC=thdHrv!vHHoZ1mw4#`|5zLV+b zN;TIuYxA+=i7mUjQtj!Do4)!w{xPmt^x6jA(voU!{(CXv>tB8S>-U+!DbRN_P3bS# z0!H!mjf-Z&Uty;5Pq${8)2{pZA`1g`pH<+w*87U(D^&{%E|Ohf`&Tq~dZ7*dL+i`6 zt=y+?iWh2cB6uCUpXry|v5nBg3Gf$~qQZ#cX6#P{KX?*jp_%biTQlZx4{=_#Ah#C8 z6f=Yq0k`K|Ft^~?dq1Du!SmeY_nXeU_(~}jkOJ0K{z@YF#l;oSzp&4Y8Syk;r$jsQ zF(YF9#f?}XaGw#2_!k+$^=xj$V;(L(ApYCnX6ODCGV1KN= zbIXqQbh`D4SabP`e{b@{GpujgiFyJnn)MH}v_GHG-q=Dz@&+!F2##9oW3?swTgaoY ze7@*>p804OQSZ8xya^97t&snpX5RT3Ft#S#M1XT<&QriaM-f|wI)6^_@InmZEndK4 z4-Jb!*8PSq?5lCnZ)?y65<#H(Me0?&V)biEr|*{%!Ov~E-@{KgqIn1x0oJCUK_gJ$ z1v0MS%zy==LBJPfj@j1CH5k`I57Lld#5|K14uVaI;Hy|q&;Z-kTRgm49oq3z+!GFh z-$(>sV<>6*JA~sx0^zj6U(DJC(fnc}So=b{6+_ix!cpdM!4?w>0)~tALyITL7NRk+ zAjq%im>-%1E(p7@B-})iZxrJtv3SshMc@LvwQIfzY{B(urLrKOxJ9y{ID&vnhy~0A ziCLh<*^w`tsGPUH($(@}E9SC`6$AS&SEZv8Va-I`pBgR_X13fX90X4%f`0_|mK`a~ zEb3aY0;}oxRE3KfvN;j_+TTe@WEJber-uvzHuQX}WS@Zv1{TeDiEMh5UqQh4^YQBO zU`f_oE@Kvy6lZH_eUWkO(H0Sl{MiS_{jEvVx4oMF9EukaD^MKwH^s=OeC>60VL|2M z-Vw!OJ;vgK%mE1IYvJNztgPH4jP0!cOd?q0Shc#DK#OtK^%h%x1vi-h8?rDrQcpAiz%&xR(GIg`P+3+mOh%9@pDGE89svTc|@bht3g$B1`-kbE|OJN+7unDMAteJayR8kZ?>=SK!R z?;z+-1kEp`JKDP1cVI=I!qn(tt^!oW+Mnub$FaIj+7O$#yRi(@%$UE`l>34)rR>

xfVj=zyQh*#<+Oa>jwM}Nk3KVZzmornFUqx&1Z5xhIFg!a-O=3Dl*ax}IK+a2mswskY)>+yctp_ZHTTQ9PG{mdpOSNe%M3cGufQ?3vTZMO$_ zTHhJ-jBBlFZ%=i{{M?nRwGD|(r&?ULX>KDAX0DqGERbQl;wa5wJvNizySX@<3Z74O zbi9Tap-wxa^&$n)^8I3=$0DKGtx)I>T5wFptAc}~c(=pz*ytZQ#rCT5Qx?vnV%&HT zXWL@td#z4{qk*f5;%v!q_sM1paXz)zw7=ZNbKJ1VFE3OLohoY~DXW^4e+pB@bbVWs zpO;1Ji+Cu`thBxmlfkTnoKjcGwlwX0A@v$2lkFKCUyoKadWDTjw!n9>$XUW}{fjb= zUZBVJzw&IXHZq-9*pPkDPE1|#LKpk#_`X3ZQU6?u zzK#zzK98jJBkfHznLQqQgIBe)=Jc?~E95Z*mVk_tfflv+8(kT9tc>CBD_$!{J9kEb zEf~5ueQIxOMn>9EA-B(Ndn2DB@a;B#HjQiIm|$J&0!4aXkdJABe_ju37iOL~X5H9< z!HG5Xd-y)X_M~gual(lwY;2NYyBcD8276%~7s6OlAjb~RvArZKWLy$&O}$r4$(9(K zA)dzc<)!bY)88-D&k!*$uZYDHW6SafD~!j*N^kozg%PQiXlI9?$?-*^t)_fF6-skl z&--|J?tWMn*Kv=9b99FIcQHz$HWwx#}#=<5^Af0{P5;qc<;|8R}n zb*id0{aTe*X3=60i%qjQt+5tb)76w|vl&+{4nXec?5Iz*Vv8Id6!+dgLx?Sfa|7F3 zhzUQH+Q}|xp-P^1`7Eit&YnGqpsPOJlu5a!^BKd~OL!&!xxVgWCT;1)r+zKcu2y7k z?bJf!C$hPv$5(JQe%8+lY781`nd^EIPL1kXF-Bs&9UUHG>(4V8X2Il*GeGTeV}*nn z>DD$o>5DG`Q2+JOC+EHokchf|&Jrbq?=)Y<-p?XxSm+NDiS%$-gNmIvWbYtN=$ zexOxcDt(4zq?IiS$%c4Gbkfo~E5~EL zB8sDc+qYom)sp^ZN@sEHCBvd#@q+OaXVdUxH@>UYQY6yC`KH%$pLd}qTSS{CwY8^F z%2?i5i}6b0KA#a@FC!KW?|dE{9)nW4ZPEDSKA#bO(fAd9(fC>Nm>(;F)*IL>j6z;v zoGy$hRi_k%iSY`1T5P6++DU)~mc&gh3%DUNlYG|;-Sr}5EMGnRhwnUd%EWvDG4 zOulg^rD-~Q4xJ{(`k||{?MWRrY4==YJ;*wXbPkAb>QA>TXab$W@`rUmNU0?chC zdjoxA>iH1cId5VPv#9^$Jn^*iq3+u(5*4yTxvbR1vfAxgFSM*c+%i9})G{PW-TO%0 zfyI5l(6l)-3QUcq%)J+ODO*g~%~$RCwEGIuT7o-L?RczCPoJB%dNs`?{^sQJA%@P5OBK`4m3ya!tZ5$qKv}zrHOfxG=z8YwNpD7gi0-iu!g%98575CfN1^ynn7JjV^*d%u(Q4r9Sl1wX_^H@^T5xc=y{!{I z7z&@oXD0q&lIC;yFpCTE%uG!2LLu&B#O+`Qv%pr`voM%VQGPuUZ2TO;3*+F}{#0{Y zhu*=WzUVp&ZaUVnYi#6azYlZHSNH97CwBe5FU9#a{+}g+R+KD1cWZv=aYAuCR#ll; zFTh1pLEO>T|9Nw;MsdeunMM2#Ab(y2OH3RNsPi>yD^8kmuC$BCJcEFrF<5*0G`X6l zS5vsx1A`c6P8f||!TuocFi7LIp&bS@s}}Xjhi3m07h!er{Zf9%lLt5!O0{)ig>M~L zUXTrrU!+n^;k)0skLz4wjns$X8YI76z^e9SSEjiMeNM*jA+W#6GgZA){I~|K(RV8D ztid-^9j|C}GujV`I1Eow@yP5HB z=aK4kpv!sjEhJ*j;6Me|S==P_u0nf*fW1KN>x|jGQNa0tR}t!4>Fy`-rjL^cdvR|< zd0#5ZOR$qFRKpQyM}ZdhL$6=?evuQS^Hj;$@ipAsuyBDJsL+8E>!y0zCcEjUZD6{}%>IYI*#@qE6mx%*|F z+0eoeACfjVZR0H()^_l%g=cJS^QSZXsm~p4xb(uU3%_Pew0t-IyF=Qn2Vi24Ak7cS zGPI1xx6$Tl&;ogzpX!sd=rk#RqkJ+VuTxb0DpGxx<5 z&mfu-nLv9e{e_uwUrcdR4&mel53{`f_mnO7MYYhFLTf4h_mnY=DrO89qWFXXXGPKM z+w2$uH4~!zaaSYM9^je_>K&t)(_Yuo1c5>CG5>S%w%wK|8jc4xuzc^ zf)*e7clZG{=3IYIQFC7Ty|%WNt!;K+%NL$jZu;gk!TQ&{o26pYnpAU5YsT(8!7-Y@ zLC5rOFle>ChO3TtwByXgx7#{1FLh&L)KP`M2YxvIBDTC*Td`YR^%_+B&sY{*Y=%R{ zomGu5)KL$Qv*CEBzpjdvnn%UjGcR=E5I?UF;~fb*?E_%s7OrfeM*y`cH1Q!oFVyr7WbX!LoFEFh_d;!MpY zC1(}oEBWXfj)!T_w^OfXURF*->SOJBH$LCbOFV;v@)*#5oH24i@1NJbSnRLy9-h`$ z+rFQ+diOA6j_X~R;XVHrRsOGQTDuoi_y2#__WR9!P(^1i-Pnqyh^A5YH6Ev@5zl6v zvG@OIzi!&=)*ShR#MBY@!~Q{j2FJY{TklcKT}x$i{`=Sk0cnn}^LP`;VS-T>u&9#f z(d;lRmWN1@&4cazkz23OhUf^7pYNI+rmugHYH7BGh@0wq#*^Loull*XH(ZO}(<^~6pHPL0`0R9JuiTceHP5XS%$b3DoAB zeVPD4HBzo&ExB<{OqdM=#ROlB(=T%(fUQrf8uzhd!FU?itbM+#;}y*XTroNo7>;A3 zxNC*Kod|yY?;47c^1ws>?J&QKwN+w!VJz_~@IWE2kJ+cqV0+n~*UV^jopKMy$0?`SuQ-8YI^xWN#UE!&ytF##bmd(rEsqpr)D@>9j|i* z9zI;&626ga!UPL%dLsqCGu0NYK0$b}6uKXLF`z>U_`1gK5B}3cu-)I*^-!Zss+FsH`w!@CM@6gRo@w9(0 z5!AD`yWPkqzRf_NdwRCWg~PGQ@EOd3M&inOu?YL{=UUNYJk%>S3O)yaV!_P=`DpLE z(;-#{J)gkb++ybPc87m3lNVeq@u>#uv&Pn^aer}JHy6gAzaT&T>S!GJS~E5YxkQ{Tst zfc9?f!ppq>BvSE4BIte^x6Qtu=3Ub%^zd7vy~T%^$BRY~udw@YA?MRLxzgVB8V=*Y z3@zC*xDfYY7WHEKV^;hnzCn2!Z|7QHFbi5=`hR(Q4zMVio)0T_vG=Z60R5sR&{RE@*l|j2{9mO2N6`og6aGF4wDQTm@alpT7u5eg z3F?h-LF4a}pg|=e0d~F6dNvqC+%jHd0?+mT%Yq?`?oVj@yAmTq8%=r|SgV}SKpLrW5oAI)csASF;Pd8twwqGpR4djct_LWjZ*iYEAd9CqiS)VMyZ?l z7ndi~%uf6xxtsJqrfw3Iy3Md=H_EKp|Ak&78Al>(I$i&hr7EF|woW%d=~5YX{cjYT z+IT91ma&uV&=&IL^G+;^bs>5{}UyoMpHe^g#1tRjT%kMYymA3 zELk?Fs`TGI)=_p325i)2)CgsNb3MsYMq5{nQ1&+$m@H+qh1LjVe{;pjQbt>OjZpSC zm!K?V)TM|8BT3}{ub-%799%Nk|E5?Y>{LmX!TvWz7h$JLs|@zPDV_*BRU&1u|4k7@ z*c+6(zp45WcB{A=SK3?rFV;`^95cdDv zoln``v3Va)HH;@fbstI9b-XTt3YK{V7con~)29L%R#>DoR;q(6&H(95p}fmGJ+_?| z?B-46nvS#Z#jCBNkb)TstceW(6v{%xGRxq#NIaZ`t-zWl=}rkP!YVyDsnkDBprY+$ z$}zV85wB~oB!yeok&r-N!w{owKo3!Zp~^U%oihu-75EVO5* z*?(Hj={2|;8ii&fqmT^3*vbW}6Qa?>D``Z=pq>It_uuyy+oGDXP-6@v31(*4!bO7w zeMj*!PO08|v#WF=YCLA@*su5RzWnl~Uq8;;v@-#(F#ZQfSu8D>^hP?6bA=6)oG5~s z6WW|DbklVZg-r?KimmeQBf69=?v_S~?&$beTON(cy#;j1%w+RcLIoDPG0gB<9q~9Z ztl;I~r-%BSh|T1jVlRdRd*(iVI-q6G1id}+TaR3e?hQQCR$xtOI(Ru?10Ec*@@}(& zSNw2``>O9XH=70)qS~-Zu~58(3GDR736nc)G}gYs;;YLGm-GD{vM>K`H*+p({Czg# z;5gOKI=*-N&no{Rgd8#~+OZJ^)Z-xtZBj3p;UNNghCWxGQQ@P%Dc11%pvS>cs4?MA z;Kb#Xm;1_L1Jyx_*DEQony61FMC-*&+@p?hp2Jp!Vjm*pS)$qREzI#e)7Eqi>2GR z3=;B(y~c>t9kvM2(uB})sE%p{ai<`E@rUfE^}cmMH{oFHWpAw*H5SVhBHS7oC=+O6 zA|z^rrUs@ozE+t)A_5nO44n14z*sx$_Mq^``mKUdF@JJvlB3y$OyEcjKrFqnn_l|1 zF>1w4pRztIv0Ld=NW6)H1OIx;R)J+MVcq^9#INDdDp0ZTvN)EX=ncW`uHJ*-9ZAT1 z9^?U0@*ab19o*p}&1ogYDwzaX^_1Db2*M2jEMASet07Xo9f&f6FtY9 zw(K9*x;3!9LF2;jyrVJv&4R3l2WDsO>tu{S57A@A!vOTY*6Y%8YvtfeoLuFK^6z_#nC{Wg|s~b(qG#i{fX$WLjY>R^E?FsVdMNU`9 zDaM2wETd*C zELJ8L%q-F}ma+|`ItXQY(8dNlQ>atZWG_e-?w+|r&A8U+D2qki`zXW1&0%Q3GI~%+ zRcuL0ej(`rkj+L}TJ?%s&0GJyC?+jx@Le?2&8-i1)!8y%Sn%v^#L7c%{r@E%*lip< z#SksupwUht%!5iL9!xHVb%SVHKV$WcjP9!id*`;FG+^-ybJVD+%DQuB%yM?*_92J8 z#*cz8sd}l&3}LaTwo}91FbS7pByF0+P;XQsf(=8W0P>JnV^ju^jrh9(+DMkba<|3} z*pcP8CaI(x7lzkrmZsmXDr2!`E3i!eKd7M=R{hwF+{EsnJh4Lph{?wUz1JPA9Yi~? z$8CDiOK~7-Oq?G1$tvZcLFR-J8xF1M|D45|ufUr1|DXWMf;w5*h?%LFr@*rKf5CQk zg<5&?23YP`qNx7sEHAx%*6-aTT25xMmMO68{~!3Maw2~wX`%ysp7V0V^Xw(s2J5dB zSB7pV)=XZ;3Qp8SzcJ_0K1H6Ho5nYIZ+IyOlKBuo>kRgZ&PV+8 zcR!kTe(&QGYfz(e_cJldyDl5}y9}#gpSm-gex_|27HoJlOLw`#8l&ayi;aSu7d{Bo z9s*1QIncP;bxoI_=QyE5UJiV()#@HBb zjN>dV@uRQ*Mq;E{jsSPGFllZ(!(BI9)4%n+$tQcVSm3%LH|VAh78S9<(vUFm-n!dg zdGQAQxXAqU4{$oY_W+61TclC57ev=%({-8Uma46Fq#yfD_3)`@5^K{CLp4h7| z`e2AAi|sW>5aU{`U-t2NieOVHoL{ljOvz+5NN3}p5@}8rLWD}gvct4iQ`hKka$0@Y zpBtZ#%mC7DNk=8bc|rmp*^4PQ@NsBKD5Sg-$#t-@a{YU7TuSk!Z-9Iz-il4IrN0p*mS(hndZmduED0mf@b^wrIZ z%ypdHOt*%9&Xfa9$OMiYDJDo%XNHVGV#%~tP;VD2_J;jHH5d=|`QU5yMUh`_bUAQ; z2Wu7jaYQ~SAsrTt81O-oo<881~I;$|-J%Yv3S77N#=2AXT z30X2wX$1OY!Ra!AAb^JzRg$Fa{+DM;0zRx#7co|HeC!~iMb{b1E#NKS50#+P+IkwMvM#s4!MdXS+Iz|c&!`a6WU+?9&2H(O2nkW z{fH!-TpUn-5Hl!cB?GuJdD^2h0UheJi>Fu5O`1{AhOR~BiyMK3p07*r#z283e_NL! zj{yWte5vYJK0W#_P%xK(O^^Yj>(aNQit@EnM&(xq?&=Y`2CgxD_QGPwmHGO=&NRmK zZo^9gXk`*{iU^}6L78=KLziduY?T=ssS7b>Ky^6F=OzISTT@suf5|!WN{OYiisK5M z>~4=2UwyX`j9m`}))Lu||H2}m@Iga?rP}z`Kv0F%Y$W#LsGn^*e$}yHM{W&r-Ru!G z2{%fWjCa3XFw7vQy+(UeMR)unX=c>J0KJYg^ny0A9iP3ibwOWVpAcVrPxTikqL+4% zM`Xn>)VRs6UHSH?BK^X>4(a#amBaG!c>w};i@;7@a({s-(rQqynw1tsy0)e3YEr3U zDwHCQgpQ?51l4kFRFxbIshS7r7r2emjM#(#iF4QRx+t3(m99_8QtD@O z_74Fe4*%geh&e;(6E07UJE!9=2y;`j$(f_?h8oQ#e*L1HGoBx=H~sa37d0p8_cx6W z4n&km0pU*qHFbovo%-BgUZsH9F4Q#cb{o2hp-*crC-Os8*;|7pbM zK!Ea4kp_;dG2+0qr0bc7OU@tVWILv(b-Bgop|Ooj;kpc89WP95x51p1_PmOIGL(@9 zECXFq9Zdyx2&||8N=t`wETHjmCuN%NwY5H3C)ves+SLr`{uw{6eKOysvpo5^PGDdD z;e{8@FJrObYF}IKoYD{p88FedC&|S)#HC0=92z_cG!;5=g+aaGY?vh&V4{p0%msK; zJy*h+8}s=iZY#VN?d{Wkw&;L`*M%-Y9{9GAXl%atK=>=8qyb(}lb`7Oqc2~@^gAmO zX>zkJe?F}JqDN381{Q5V%tRotdJBzTv9{#!3Vm0*b{Z1}F$G}mcnm#%c*MAyoRZ|* zWzNmNR5v1Rvbcz-f_e{EgDPHbe=_I;XqvsO;#Jk!fgIe@7lI-bIohAV3GcACg%`Pv8;vvYS!EUgY0&l zPY3*(Xv$*2B^nvY)MQa0=RdamHQRVte^E*C8(rS?nxsaqE@U}{*FHq!KJodL)yua$ zPOSNs{%dwg#)ww6BV#`L3Ff^wP<~X(w%8*wn2N028ZM1;AZU#iUy4)>Y?)ShZ;7*@Ha813tmo# zO$~0ECO1)$kf3O!z)X)~?Ri*P+>NuN?7Od~sxt5h8u=?suUF6RZWtwM<+CJy>lVDw zxdfFNJevju;Xw^z??QU0U^JV;3rQH0AmD4XyzfvgdHh2f6;13zJLLe8RR@14X@2X= zFC6@FeL@XU<6*l{b^nktq9o(h8|?g7!F`T06t=OhGJ8OgMUaPO-+F{Mgp7f4)1hhjx^#GQpvy4Ck3a`TaTMwxy>zaz4_zuo!>6f zBdcVf2nlc$FeFC_zes+UiwBPEJZX?G4j5>#h98d@p%8NCR@(cEyp%`g)6T@t^+Anc zZzemuRC{CKw@laUce5`L+o4LCL>b&N@2S#n$z{Hm&`N9z4q|x93yV{LEfYInQQf4Z zU_rHT8++uBgZK(maF{rgc&!(NuHC&@l$cez_~-T~$#mbRRDX1!uLnS)B{;Nb>-#f% zu4oDhT<+f*aCFdPoEhtu7jF6DCoEW`=@Oc&unm8GOER5O2vE5>$n+9HeO)hD5eR~> zAZl+-+EM-Jbe@C#qZatFsq+lKk%9d8I&o?%$4p#OXpFx6TJXs2hkmfm#-KAM)d{O% zFjU4%;lfOv`mvz8^mOJy5Dt2!P(>FCtnr~fER=_#JL-q&)p6U5d!Q3yImu6PrK1QD z(L2DgqNW#zy=AJ=G5>3A;mAK2p1hF^mIa=YQ5W3PLF zCtpe;KFnP^VRsj!kkqWh@0L!0W7?lXBuxo4ss7(zh-wZ@HO%z*v8ZGIgfRM++cX;M z%_$I_0kyTO?D~w?%lCQF+AY{B5n*{&IcxK*8D}`bQ`JvQPc|R(2MolXjH_oLMB&uS zh`f0;w{nNrCVVzgbguNNrSg_dp-JB$QF>ITEA6yq!^si|w@}}&vvFMrKit=$-5`xt zP|b2OC74JqCuEQzU{T36dfg9Z8^nJ3QhIgHkoj~=wdufUtbMBOn)0DMPOpR&qyG7x z&rke)EON<6*g+V%aJ_~VOvKngRH7t~S2{6mSGSxR#>siRB7el9uuF1QhXhPL0K)8* z=H{f~RqS7tF$S5@13Z?VP=w$FCbdYO_+;QAhK;#(?)Tl`bnZS@50Rn!drdjqmrGPV zqp(V}Bu~&=h1h9x36>8aso7-?m6~y<*P$z4Mt1qWgY9d#&an9Z|4EN2*tU2t~gc&AyP z;c!OvPsoD{&z<1USR)wmdu~N{J-3e+t9x2=rp>DmBrarhr3?%qK^zH$W^2JZTlKut zS~tzFf+UOHPM_0tKR1acU>$Zw1!Dx!)YmBWWy?Lr+#MI6pW0-a3|fmSaxyd-Lrpp- zY&QZhD6AX-89s3RodvyObyN4AIp9(m?1~!uCG2qb^$FudRcw0w!#ChKi={zv$I3v) z2g`x{4jYPXhai2(Y0oY=8qL{W;Od%~y`UI1jyN64d0P={SblA2){rM*5Fw4#P;F$Q z$(IK~A(7b`GNcfUCqAYL6L7tJ$lE;6{!yajADahxnyNoV)MU=$WIo=p*D#zt%i!6A zGeu3JhJ44cDbx@jOH=d6{^*#m56tyrpHGO2H92REsEJI;-FP>qNW1uI_^l!9E*_@) zAo=im4fZ@JT5~FTR&EfO?IA{vM=(yc;kELWt1zRJnlVD}Bb3*Pqz*G5sP-+rKdn1f zW*6AXig8q(|NJQ@Xw5>uuh#bl)3;Bs#-yVtvFE3;m~to{>R|1F-KNub_#XE;ms;OE zW3(@@mHmsakC)ECcVpf%9dkSe? zY5IhEH&474hABwmN8HqLbqD0Gz-+M&lnu4D245f%=#HouX0R@&a#xj6enNInv(9xp z>38!D0TnVsCB=y_rq7BFPkMOnJ}0AjP2hHCG49;%r}}xyB&FFpv8g3h3etMQ4Lk+tl!T4o1JN= zqCK6Rcf54=BfjSjG}5%@mtK`CIP;5lADrH$>TCOdJyMbe(iAsERcaBIGvyUCj(lCf zj<C#UNzI9k(l` zwwKX3e5%Z*-1TlDIK~Wx8JfzC4zuhqqXi#MkD&YV_u33! zQ#w!-yn4{nohFta>6;xsWhhytzRt2r{f`oPq26{g_aS`zSXQjGIvA=k#s?OusmV3?a4Za;ip5)(D1@8S%JkTI`Wk52$uw@b3hXr_t zh=fx>8syt&TfvCsy!=h(E&5gte~#Qf)NPXJB_zAiwhd+!sE>iz#S0O3`*@;ZhmAk@ zThrW2ram2x=iQxuBQhQ3@Wpg|yp8UAlm1>P z+ksqb#Aad;wQE_YN_|0vakmQVX_|1efW0~>VV5*O9WQtV8jK^9E&WfyG6sBKBXzAyD5XN0=*3ruEG+dAXdtMl| z(lQw;&`BS)tn(+^Oz=BVwMgSQ(Qx1`YIsf&>iAPM9>D&wV_LUkFDCJ$ik`npDqBAb zA$$_uo;N`>MR&)Ql45p;Zm@U^6<9)vG&GJ7*CX}(=h(xOviR;xW?>$38eerO|Gsv` z{liX~Mggx8V*Oyv2`|6%xVaV6Gou#WfptJNB^pLdK}XiWL_llXT-Yku@X&B4cUQ)N z_LqtQwqHH7jp1H%!&1*|gV2#~O*3Cl&-2p$Eyw$l+X%qdtZj#K*cIzh=6pi?09n zq3>MBb;o1d-|uvf?H@5vkT(B#4~zGX9qHPvaW-@d)q?*>D}-+ zj|T+{9wSOk;iLQ!Pbnb=EDI99oPdFH*RhapLg6=6ndl*Ee zsm2F-4uva|rprSEI;QN%@l&>1KMi)K@>2}hVlWdM3=O0c&kUDT!-Q=$e^46lq=PQM zR5feIkBDLUf1)AlML{CP_3HsRmA$2VsrZnyZkFzVGp`pO2FFf=`FaHP_&>6s5uY&H)7d&`b&%?+C9?(VCwdfQ~SGUTGdZ%R;Zqwe7>}YSlb}p!L;8>b*`iyYC+vMNlDo==8*orFr6aJiYoACQGJ+T0)Y|W?g?+aiN!9! zC!6{gG7wc0&wME|o)9UF)*7W(T(ap7iYgi_;fPdsSUHsbq_kny1w^4WtryKEfs{rv zm!T=RCg7`_>RXrUMx&7a$O;;-`p2;TmcBE!Q;oCwXSUs3gc`Sw{XDzEV}Xk}ZG^&X zj$e!Ye)~qZaHdDNHiaKxeIMrT9in>FXufy$GJaap@bn+4UkxKDqV5IMPb+^yG!%J zwt{Qn4`R-!Lm+_CRw&4PjzV>I$NRrTIoxqKC*0nCqmiU%Dnu1Cdw4|!=ZuPp7la$* zZ_oi$Mb3=H2j1P*%R3pOoSXC+H%ZINc|*QlsMO9Htv&gcxW)HIHY~ZQ5L(hff+VIg z?t7;dac%U%=byF|jB5!84IpBqrPdpNht~SO{ln(AdZYCcHFkaeX};Ms7g0%{8;&+! zv+(PCQDnbsu{+iY5?tfD3yxK!(xXanmzjr(83f3{e^{w0@)_gC&jqjDYVdm%B4;y-{l79U`1q5*LUkN&}gB$L3-qQBD z;*+vU?d>-%=hi(O;YGiskb*(>%xk}cnHSi-# z_fC7}J3sal`LCJRyhY{J>GTQ-QfO)1q8=*)7u;tTXD;I>JZrb;dzV9S@Bw_PSEf5W zyR}ESd-uqgyoDN21cRE?Avthk7oYX_Sg@(1s4VPpaC3VvXKNR5b|Pp+R-9vJ&Bt)| zSLpXXTI>d?gUZ0m!@-6MomwF*z2I=gCK-%2Q6>47L}{Ul-8 zUHdYFxVysm(3YvHO`-^;eo~=RcO^L#af!#3soj96ir%?v2lpB(EY5EGl5N1ko%OdY z7GAJiu|)4cv&5QX!7qKAM3jz|6q^A0tqesSJ^SOrl(~^z2HZEkCeM3=Btzt2?QZ41 zlD;G*qk%|c>PMuOA&w2rm)#j)+0n^h&-0jGTc$fUM_Ptlr_w-pu1*jPNW#F3L26Ku zl% zRuz^#QH>08x&nFzxbZS(LCfjG|KXLK%3hQ9A}x%5vn;_Xq@u;5L2Mx$1Phj`k4wV_ zO|?TAyBb5$AnXxudN*ol6k|6USEyH>j9=sFyQbjRAo~$BazQ0f*^qsYpZ4&PhvI?N z5G6sqCX)c;LY9{kTvB=9Y^J+4B_B!V9#beJ8f?-al99YVBR`e`N$UWUaPEgkkNwrg z1_x?-wF~x*DnTI=TkEKvs@2*5JfySkspamDG2?r(Q{ z8D+I|y;=QmlRj$fl^o4EX*o|nDoLkhK~)Q!yg;j&b=`DAbuvWVPUd-ZhdrOVgGf_? zgc||-t^85(YQSDW{)>?&1JqN&0svYrjreA!rMOr{wLJ!3K#hqX`v%(E)EE?Z^t9Jo@T?o&c;NJ|F>}2t=+p!dt_$ z9H852iXiL71%5Ku3FqsG&dKwScE7_dOW>y`uKC9ZeHl7XrFmucGD9Dw4mHUFrS0^a zVktaADk9pM5%|~PdfZ_%k6eEFoKP#Bg~#w|tZ_FGfP#5Qbc;3v;;PA}ye=^cpk@?Lhp6x1!y zKB&#f)bp!13bF=t9_OZU9TXwcU4dlwWy7_Y?+VE8p;UlWe3$gn-uqnn`Ax-ey{&n_ zEH9tlcNtOjO38Dh`ML@G^mmq=M`edUivAGa}q(I!Y%;f@#!4w)vW1BNs zwbO}kUrzLx2&dMUHhyFVY-|NjCCdYh|B(iG1iVx(OVDCauuTHgA=wLEH zJM{gLi*M^h>huFB6V*f;$l`A>?%W2KOMgQP}+(u7xXa)FGs6I==MZ_LyZ9T(`@zli$*-%u%5_UQSDK z7NJ;T$}J|Ti6APJEd3&(mC_9t*!o;wq956vxLP}~u|K=hW@m%U3w@?oJ#$*mY{kpJ z+cU)~M3NQ3ZnyCWI5=~S;TG4o)B3c|wxw6bkWeXs#&GjTf|KTDuyWSeV_g=Bg1k4G zd&eBsrblf_AmcH!9*Adfj3$DR8~?UG-WJW#>ED49)>$1B?Q-1x^FzW#UDO!wZKU}9 zV_SB7;c7i^)oUH-4oevd&<2dtgSsz2;nQC**@hdoR@u37YFIGNNMiw z02hYt2-cOMEuKehSgGqfV#Dj;9QG=Dp}vM-32DG+!azN}H3R~O0Ou`R2Qm_LdGVsk zV?ph7axZ^ZQ{xXFiKu*k(cw~N%Y5O6>phCf_NId(XfWBmzKV|uK_!WUMkg$+<4KB< zXKmUGVlTQlzV#UZ?r_K_l<)4MKyD!XhRR^pj3I5WE1Pk4?u{1byqukk3b`3dRB}Vy zkq#rF2KW#dq(@UaC1Pf%+5>*HL7=Wi_`*_pIG#kXaJFlE**dsVPjA#fIr^u3V>9Z9 zz_wzSPlr4!`v@wANB0i=lJODElA20ig{dKmoC9gkbF3b(7|{@RnFB2~Zjg>0Rrry@ z-$Q-Oj_&@q*`eGmlll)e2Scra{?g}dp#SQ|mBqX4j_8L?ogdU}(1MSTpoXi%V#-tOn%s!NDUnLVD6dum_eAZ3@4U-#P<;&)4JYoH2l}^HS}xq-FQC=Bnoso9Z z{*px}lY7E;MH4POs=OXYJqk1rckB+9?Dzl5&FdHQ>U45BSpUGW6$cFGzO>k=m)=36 zS^mJJ5A+ak8M5m^BB~LHX34>Q{2uq^m7NH$yLjeFq?FArO%-M2(t}oEYef&{cjP8l zTaq@MAxt%%l|Sjt^1nx9e$)jNH6sggc&3q zA{wLan9Gk|-b>{99sBa=+|QTbKBnFjF@rINxpsoLj3HIu7OP8!Sx@NVoGjbK+z(2c z%661iNk6iyOXgSfVP_S&co}r7&OlVQvK-kh)21uGK1(*k+>nFR-=*3QHoL*Qs7IEWWA`D{g59| zME-r;r)K-I`1DxihKM$>fTu|dJ zgPH?Hk)iBuU)r`kGC=(?YMgDDGT;5sR-GW-UB)w>@bR0tVRn}@B0jX`6rDf9u^Vvc z1>XJR-Fe?zj^p}>ZAbswI`$1}%sBsb>~dbPFy`~VTR+;}07DYi|7^=iDMf_r0+1}n*lCy=o6A|Zc>IIeOoy8m{D-RDE z3#pDRDg*$p>tSQ%M)w?1Q+lPomWu%fWwklXtKX1Lg6&g{#Y;RsxuTJlPq~k$o@ly~%ZDHg|^mJ)>>Cn$PemIOLDM9Peq_WyP0p!xFba*#%A}<4~hXi+NXu zf6&p5-rTYO=S$}I=*A_5I2m4`?$eis&d(pVM?3A{yCYY*{*ZYEbUJ3`7Q9N(G>DC4 z&Ctqx2$~ZbJ7<6Nt`j5)Vhl$=pPy9=_9X3mj;mAZb0RW9l+;iaLd8(O7fN-I*1|h4 zznIawB%fV8V)^)+eqCVNX`8St0TAc26b}PH1Nh?6VQhBu4DCb(p{dDl6a4%{UdA&K zR1bhg3pHn=;cm$6;fckzWPfZ|rke`ieoVY`Z z>c^+{8-|9}wWs*J;@KNUC2`w)OUw;bP^13a_A#T%ey}%w3h4SggFgi|u3pA%U)%ed zpn!LNh@VRiemovAl=DSNN++0N%Kas4!oSZwupi(@~zRjp>$IkBKTJjgsxS*bOGshDo}edoBg z!YH@fTPM9z!X0!ikJ_qh#jG*hs$txz?DkC@kzLooZBNb_7^Ym;K4MrI(hPOKQfkuO zH`|UKY~6C$2-|XU$m^U0XX5{84w(FQ9EU)NNc-vbTh#HTk zDPJ3YNL!Tr_WjGc3trDq?=5&cT?Dh|L|CYz#ed(K5djH5lE+@UZ_s@CC<@u=bz`BpEKI{qM z7S4DyGOwSBBWiT19^N-2_=UEgiMIIjmPJA-GZ$Z>cyUItyM>T+#nNJO>0goGz~F8S zt}95tC)gGg7|jMD1Ak^VQH{ zCM;Gz1y)bV?m?_s2_eW@B{Oh{KMEy(C08!t_UQ2D`nWe+wAq^{82|Pi<2|#HI1CP$ zS{^F(iUj*z*99t0I>DACc_IS}_%%>rh#3M?91ZZuW_zTsvg-?8e#xQy^^ez_XvEZF zB9F*>4g0zI*h!CWdIf`D_cPvJs*D)>F#ML`oz0oTO|`t%cXGqEP`CnFWmQI*;g&G= z|CB#jxY$FWw-ZF7xVyW;HiD@{xUwZPy(ypK9*ue^LT5OVc)-0poO;zn`J*%d z%AfFl5JW>-4wOGi_hUjlp$P$)^`ujP>#lGB-HXW+btj>GAdQ{!C)gu7u3*HF;Q<#G z`}3k&ZbQoKR6ZwI9*WlbSdB{n51S2P4|x4yte%< z?+JZ0zB}4iSYAYpibumtybsOi`=qoxbZo6YzK!(f1)d);!d*Y%EceambB?3Xmoqw6 z_u2M%sCKc*?ac>$TJ%PZlLmzQJ$ms&l(268Nt3TX?b8TP;Tp-+%N?@3R3tx%;AWNZ8y`z`p}QGyOq29{l5du&VcA zVXPMa#gNtNhB&9S54B%n8zkJcsh!`wV>1V$#^#eWkKA?$(AnyJ_0Z#gPJ<_hT2i8c zK_E>aVFvXgX7x>O?Z)`;+}vwsEBr-ua5!%8{R#;PtP(B60h9biVJs^==?sP(vYC=y zuQA%>Kq3{*kDrJ7)i`hr;}!VtM{FpsMHy;;4xQ;5slkXqsR2uVHSvP<<|PhEHO6+ycsQ^pqUUQ6%$u!Ecc~w>{CAd&oPVCB|`-jsX^dBy1AMwF;0X{44vO8+Jrr~0T!Z-Zd-#I_2~ z+Yyy*X5KA3J3h`}zgpPTTAd0jl(a*>9oPVSDac6KCa}@gzfnUs01`53w95fUXf+Ut zu=ni6Pp&T3k5)LVoK*4aCK^cMzDLz9F0T`&*>7jJ7#n=6k-GsVSp*H< zV>AU8T>w9(Sap0|*NvNf-8}DV>`Z(=w`i7r#i8pY(Rx+aaT_0r6Vb55hsIr{|9#P(R7R0}jk9>wVzlEEBHq!sK=D&w6g)$8G2x=#pSDm+mZWlu|PX zXD=r!K#fSweP?3$Y)}_&V!+&eE2ae6(SzLN0F#gk^Wo)0RMlL&+xX3_K(SF-Ro>e6 zg=vQobhX>1;coA*8io(<-lKZvWq{tGJ%lq=pkBxv&x-Y&($M(DHbd{8Ya&gMY3O42uW3TP5&E6iGIfnl zBpGb_r=Y{>Z!d5@MaHGPS_&yyF_{ZAZCd$)LZ;^U%9#ZVmnB|KOB|fw2!c6Cy_~JA ziRi0+-)qO+=~pJ&+HG~x*DVfk=7Ebx`Fk9Vf0DVC5ko}%AkTK!qbvHdv)Y_2dU9+3 zF4Xv`ztHvC1h#&$XPMfR9XHQ6avO`I6V|UCEHSKp1RnT#gzB4=!vG2he0y)OsHzNF zav?C{2YZNoGqrL2BrMX-uv~Jh&xy&A{CJ-`tDYH#6w%|(Wgrq6+d^B!QPq`NJ-qg7 zX&)R~_-l3S4REwjFWTgFMwc&S{UDjIgai(0S3rrXRmR5U=k#K~PmG=NEJp!Ra8KXN zaPg=Wg18-O{MP{lG1X0^-LyR*tz{(p$Nq(;ffuTdi3mYT|eL+Jpm{J;$4h^RVP4Jyz zhOG{dT5pt4new3fiUYVaZri2BH{X@AjKaA$#(wJlvMc&>?)#u2cg=6;=AId{c;?n6 zTN@%5aR>D(xl^gQzdbzGds#JL+>y1on>Aab+b!D%slu3t!4blJk>w46BHSv#uO)U? zzmyN!vNx29ZT2ahQ$g^n)!6I{8=N@nbAPPva_GzmdcDK?VWUYyum~Oz=1l`rO#K>P z&(uPs2(+>75*7H*7|Ka<;UdPRKBj6}i=IPfjDOBuztCp;GiyD#WTm?Ir8}F7!4h(( zdIw!wZqYhlI!ct#!t`b{yHBw6`zx?|Nlrh~{Shmw3W}2lnf(y$TrQkhec=hXJ7pw* zpjQ(9j=J4Bur{yGCy4Fu;#<1za~7V4u&A9Tr}d$Y{KyZA-KIwmk7r;j21^M4Cjmyv z9%i3VZ_E*~=oZgR>69S(GsU8vdIiNYX zuFfh#_(5hkgm&=TeQd#WTpg9JlMKHY6jrr=s(K>?lo>Q$_1sZ0utbTM zl&2E?i0{m2*!qAhB){-4RwqR=H>Y=u{}!gUn4fl)Q{riy2X07eYOyq}9IOG-Z%Gne zi(44%uPWBv7~g_*{qXTl4NMS4IuOmR(m&R27;sIe;(J+Dn>uq)MGav_2Yf@Y576No zhFp-6vAZD0Pd}rsPL$9nHv9J*tDB_wFB-ZARI^o)ivV{SZJrG%{3 zIdiW4s^t|Q``$Nmu;Mi|8pCH7oWwOj+?0c-IL}vSfH(t<=9f4Yv#+nzkDWSnOs~)F zaKG$KH`~?iEshJaJH@2$wKa*LTYDtO=Xf}&z<-{Eco1i>Lp*I|lLQ;yLA8#xI^A3c zp)(j+pPSZMNb60iK}=Oq3tCI^+9<&ncoX>Dsd;VMCbQP8wJ_J-yXkRl+Q8jI(Evx) z!)!=B3G)UAF0l&V%F`2P1daw*zC&2fy?55#*3F+k`baNBfAEZ$Q)+LKjB6CS zPzF40i?yIsKKMhRP}Bxq@qxrY`?VYdL_X+)x=C_}EB z0&D5NlVj|e3wUz_mOY*M;Ek%U4O!1K3KeZ+r~sys^$D9kK%{!8VntIr@V>aopN|Z| zqz?$qHVyPF1=hb<{8GAC7OW-ZMf5-9f~<-{N`*!>HRenfyy+4fu!2?ae+Z@$9<}n6 zo}<08AMy4qRs4N@eflqYu%%p3LMd1@VnEroh_)WmY;8}r@1*L!j(rmk(jB*Q!QxQy zKT|D;x5Bg?&enO_MP?iF7AQXqrpKko1xHXxgC|Ytz~8?4X~)>2(2*bCUW>H;h}Kf` z^&7XGa?sTFujO!0j2Z>!DF|*PpD34$kH!?RiHJm2i2s=(Us~}_aMOz>i5Rt{voy6w zf8KierSLa5^`B>1qs#0EBWe$?G_MhuSL^QVJ8Va{@F`jKs`C6KuXLDmaRxS48WLmA;sMyL0E=OVV-~Hnlpd`xY?mAv} zWm}gOVD!@tJ9K)4M%WFkyDJ>jFn=frGFf&>ni$%rq>WG9{&Z|Y zP){kB3mqvwJRH81cZL2TxY9AM;a^G*e&BGmJ0VB+b1Dk&Rz-C0HUkY_xvhpy=Q&Bb zIs1-V4)mRIUg|tdfY)^a|Aadp2MSfe;dKj0;fFA?`XhZyv+)t`H%qzO*QWT5T`_nX z{q|PE8Y&#TjdB%(*LIciwlENYccd0+U9~{Ox+xMMUE3%t z;Bgyg+Ew38HkxCUT%KLw(?St~f2q~mYTOuS(JBZv)R9VSdaB{snf0bTd*5go}tRybI zZUxhDG5kW30CJFoUvc{ABfIS{F6Qm~n5kZ<@1oGS{L;pQcrwTOc`sb3(fMzvNqPp)bdVpb4eGNzdZ0ZAm9bov7qQ~eF3lp@q!J#6W%{ma!1gKM+6w7%IefX36)WgjvYG-uz;K#jv&zWg=z63<|da=Xo~Tu*?5 z2pHLC)vT;fwgQ8SmtP7LUvC#l`QnLvj7kE>0k$COL%QZI!YZ}b)EZ^aPX1l|cHMkt z!-xt3es+VGrtqT~)lbK?(v68P@#Q8}q4-Hsz~lkR$9M;)Io>!`xitojsrr(cMog%Z z_O_M@uYV*yIYbXpVZwne7%vY-4AuvaWDnB~5(a1ARY+E`fQ^v)dI}RT$w&$RYUSn6 zn>&@Y<;5FhJMq)|>_8-P<~*MIEz`y@I}{cLbX#pyzjQZG25ITh20<^Aqk15rl?h`8|)9=bs(`;Y=xet2a{HE zLYCZdaGq?ox-n|BUf_EFltHTxj7J0qT87!g_4g7*uUqsvWUD1y!~O|EL(GnJupw+{ z8bWHSXk&D9=(VS}e-2vqe!?T(fuGz3P>0@)fe=;zQofOL6x9#Dpc?T;7F>lE7z|*A+(VN~S_)+FWFa4mZ?*m5`D#DEg(+(gH zAYF4wY!2@ScnpMCc74$+J|m5@%{|v8&Ku zKckaI;XmTv^o&BuJmC-|wTJ0IC5sT!7Oz}?c1AufiT)H$u*j;PSz#bQBxwv2zcLFh!W5s-MXHv^Zb*#=GGwu~Bi z9M$T0)rUdc?X3${zF3c(&FsEtkVeEw*F{PTh1JisLqp%4w$48KgV~EB1&0)-dJ#vj z4HE~ZRx`FAuq|qClwGM?)JdVM5kh3_vB&Jz5p#YLOMB{2&$Koy+Di;_m|$RK=OTvK zBPhD$;0F64mJ9^0DEF0anDwjeWakPG*xEaT;-90yGLqi;q^WKyG}^+@R$!6Ig?~UL z2i_E~zgJs0Ho`P;lo8+G{GYQeqr(=_pB<0`R>(vz3HQGs5-xdcmXaE9*%wjgWIY#d z?y*7ap{>g&p=skUp6^%?zft?Z`#1Mi);*>1z%ICiMJ<rzx9xGHvv9-5Ro3N! zq`;cji2N}PYZk;1!Zo;?*amw^tzo3yEZXimGk39G{PXzq>3L6b(EKd?_GX~} z*qz#?D?UtgT#*1rAw$Z0GJh~X^7P@q1c!;IoNcdQ>6tdx6Z*4Lf}eM=nG*@23e*Vq zKOk8~DJJ=hT*f}Sjl08+7v*(fBsjvFu=6lY3u3Ka?xLgD-!A5-pX*-mcYlkh4&Cv6aw&|n_t$6xr6j_Gg9qZ$GEE@(@EwiOHv>y9f*@a4hJ(OsaenU zJRvBD=ua%Lh{=94XHwYk%paVaJydj8K=B$BmkTceLz}sk$5Pt8E>`o7Oh2#BVh7&Z zU!D76RP7G#hW`6ojdXBSN5eg>x~pb@wY7epcaiUz`(cZjui+7@KSj@CF>17bHxjxz zy>g_}eX9;rgi#kZ@0efX4}p)=Fe;MSO-6-SVKVISqaB(7f@t>mfr}yz;CVH{qK@}R z3epTh$^zZ*1$2MLe7={$%)^vN-JV_nyey_HF^6zacH%Q5VjPPHjicuT;a}Ol-bWLkh zwU618#s~}zYehts*%s5Sg0SsA8%#Ef@1w?!&t_M&xZ%xB-LqF|4}VG=vwN)`D3yPt zZXs+*&ya`d8|IDEJ8-5`q{~*TJ8}pFZGk-+i``B+iQQeDAt&Bl4qD<^x9~WrDw*37PC^}iUx7w^r~NbO)l?Zhm@?!&bJ*{iW=u1 zk7ebR%;TqWLnd6FH*+|>d`DAY%eq>b+`x>~!6O~;k~&?_TvYfSJ5q0=(U#}FD{>wy z>LDskj;VZ5OVZR05o*nNrG6R?$xIjI5*$LfA9iq&@SW*8fc%pBsWjVNPYFf@4sm5i zS-m^D-^b-3qQv4IH}y-&I$@!5A8$+JZgZH!Wl8uHN~lxe^W3cX(ZE3Aw%Jc#KXji8 zX?n0(RQ7+N_v+acVSrM8ho#&WP@@QL&ZbE#mj*z~&ICX``K)Ap^5d!cfltp`=s(6D z450<`6K)U*RQ^g*UYXn=lFx+XchXEdn!WdDq5n2foK51K*j6X-B!>leukC(3z*RT- z*+b#91>wz^Zzd$bN!V15#rC?_DaG}iPS~6&p>4}1I?K_5#2SzWAj()~2*^~P7*4c$rW91mPU+!tW=;MvaFD@#7YMsY zR6JiRDrjS|!iCNor7HUU8Y&|A7$M+Wc{%xq`Z-T0>?vpY}%P~>1|?}`7y z><*NCD5QKT&8}XpMPJR^=kudgR;14U-h3;wBUA#30*J~Tmd(B2{|p&pu)En01s%Zx zyb9m>PusSK3~#SfmK%O&@qqK-L}#*MU90%bRS0~qad4cSMMkWicO0!G`2X#t^ZOOYhZ{{{(#cCy=iYaHuFkkq~ z9Wwz+b`C+x1C_=qlpm?!<%?HsiFZ0!CdVWq^b2I^Lc)~{t!TWit=_ojxE*IF_SI0Y z)lD>H4uFsl31v|kK}oZA)|AhS^aj@$Z2xBE+NZ$vCqlLO_|=LlLq+=ARLXsK-aoFu z>>HGzl7opd3R%ujOB#|>t0dSL#^Y? zE=LkF)aU?$;i{YFUe#cT`;qFxSgn6oANB6nhv*7-oort0s*`b6jyY04L=q^Xec8rk zeKl-9arVq}9A!Pl4SXkzD}tdrigLt`q7s`*Ey5X1H3GB0?k89_79`qgFcqHx31FIJztx){A>zRqk28ttT=r+2bf%M~ry0gv~+ z&5N-2M>zZ+X!R;F&=%ySjIR8c=+UB4AtBKL#m25q4mNPig<`VgGY}GnT6kEiz<KFd%u%%MDAY7vp>}UNiipN?&cg zZJFv3?cZv3lgi(=b`##JDJ(iF}TQv99*f ziE8?BzK6$J>azOFlexNBlDFmZNQR%0xV*LDIkORn06+o_JKKycJBE> zr+5|Huk{*Rr{)145$|K(h;-P`(%8}atGjgEDg?0r!$l^*TEaXz;A!JyQtbqFlz>t8f3C;Bt*$V zrqKk0?C~L}ZSo>dK~Rh8gv*~zBbZN71pBB2G9^<|x$N%c<|&jq0!On8N_%yiB=l=D zD(UlL3-HJ?9oYyd*h3{kc%FmMJ=4bZe<#p2HrPGl#@OluUEng3=};j{0STbTGFIJn z{}Y1XnWA<>7pZ`03d47)d6Cs!AxAf4@Z_T573UgO8yH0pZbCxLuJV8JE$4!8uhSQ+ zT)lO%4Xz?29~e_e2o2~MnwTR(M|t+N&z^LhSLX4Z^6Y8o57Lc-ty2g%~ zu$8|qSCFY}7drgF;4Y{!bDwgr%&=O$2+=yV3D0~#H%>biXGJ6gBM3Z!i`My8**eLG z0?o?3NBGVS$WsR-+T#{Vk4;74U$Rok&{ z1bh9y>+|ysvr`aV&AzoQ;dM9Q1SYvm9JIV6Xl4#2Q$;2+7BdeZYYnRphkigeYGNqK zB}O-glyZ^}JI#wUtGK5WDr5~XIv!Y!usvmJe8AMGEEs-fx_$&FdP3(DOHbSf&k=Ce z=HowKrl)T*$RBGrbX-gxI4h~88L%Qo;3$?{=im)JM%{-S2gMXdcw_5Mw|DBZ9Z1{d=9-l38gDmAg;bIDe;7t**ta9=92Jtg4}bJMM_VV zk07#A-*AGTej3cp`_?~qRG=U3&huUHX2;3p``IB+3vYHRY74soP!SzBsmF|hH2sjW zOA&g-mky!ftphv~?{y20mYBcTHvi-qSH&IUe zjv~LCnO3OL>{ZXX#l{`{@Ai?p`9ZPi=~czxO@YQ%-j!D3arc!Ho?i*DRWJtw85&zNHEJAt zko>^$zLNigUfC@xj?F}0PGo94vQG2k0?n6tdw=gvEz+s|LOu!} z6jj$Ub*J`56lg9`DReGP)IIPjQpx13_eJ{Yn&DXm8dSJUBVLd5K+r~T4k}E3v)QoV zMWsfE0ckKR)RZa)XhM15q}7D|OtDYV*ny%wk?%f_`Si07{eVn^0zMZ|rM6b?LR)Y? zqT;kb9n}!0e-4i;%6v~lPc>!fT{)1Kw3LPhWNTl`DW^AP0^A5A8FSCPxbfyNkcoO zozl)ogUkkZy6zxEL&LbCaAlRElo7JC3E6})G7?%6mC@GF)-I)J_dlQWx%c{f?!CtM z_y4|L-{SN+@8>zsIp;agdCqg51ESa1$a_y{juIp*sgghu*P}bG;bYVjXFBV+_o^Mu zXI7wYeWSqO_e#?i>-bO9a@ks#ngX-;@?UM}ml92g6t0Wtm=_@a2P{FcoO^Y>hVfWQ zFKql*&y#D$qkB8QY4rdtl*spKsnfU%E0f9mZPT-n~8(7P?+^HvXW#j8Z=8lge-1GO&}?6Bpwr z|G+Z=RFMVS2{SH`m)4M&K#+TnWNU5f;*5S_2wq;`x&0faM}DJhpFj(8n?7~c4<>p* z@m)XD@x=CZI>(MXCsEwUM0{fGeu#pzc_*0EPM8?YLoCD1t&HinY&z!)yCDa*u;YC8 zt!A&$^z0;m#hIbrz?=k98z0GTpP*-?=Y3pbNj2kNGAx|ESlR1ofrj3h)L|cjqVEH% z0et!BH&ceV_%*BY^ZBA3yQZOrjIxiU7RTx@D_D2?J0;pHV32|@mpz*CXXS`Xv`j+u zaT9%g;A8-W@j>FFk3KJ_lrP*5E924Hjb&E zHUb=bBtbErx4aTH1@-pZtejYju2VZ`1^95RejsT=nExwtyrmb<+bRx#g^N8qfLudZ| zD@&t4sroas%{ZfD@5q8etk_PSK+(&v##Z{VoK5F9lB-xs-?6`d}N6<|l(DK0GbM z2Br6Oyw8}4TP5(vydG8!XkQjtqW$Q2;INC0IO z(dkizzT}fcdT5bgE@OzUV~0c~08;`yooR*404SW9b{f=*wZjPElzAbRJ7i=8{HA=~ zj6j5(B@8S^svEI;(t?&Tc7$gI?qL+WZ2nMY*gg`%+Ml^~!z1<_qqOQ)yi{>$yui5+ zA65{|)bde=e2qRMZI;}t8Jr_4AXv+-62HGiDy(do?N$wp*Zdb|XDM-0P9*0` zGr(3Fd|6{UC*J(;Jz}bUTGt6@S=41TqfO!Y$wguGsQYPoow5~j_$#ASbm!oV23;f8 zDVp7w8_tUsquFMVfr$G@Nb~!y7Wt|xLula!IR&gj4KYb`5&ayLzXWc zaBHK-(CkOTXq>bV2&#zqfzn5hZ=PU2+<|_0`)92KXRo8S+VUx7=Z_|>V;!U`FUUyx zjk^2hCbe74j8`R=>94H&+SCnBib305N*+vaVZGC-Ug^{la>p4&GJwJbt8`16N8e(c z`FC_|-JJ}uQO2zpLVN?35Z{Is|4slZY@l7SHz0+(3S3_hT~VNoOGiCyd-wSK*olXD%Ur?nKzCRJWTo`<;=m7O~~}`iFzgpB}en?~>z_#|#!gf8LLi z&C}Bu$?*~#~N%Hc$8zH5)gL|)`^Iz4@`ue z;GG_jmxKQk_xu>t1Kj=LSigu^EXg=?t82qZbGu%;J}F|K#L6f?g8z2?v1)d{=oS6phNt(Ra9hSG8AD&Mc5FR39>O&e zhi!=bCKA1Oen6H3M{}TIf#MQWK4Kc_H-DB~r$rJ1PO@#fQ1zJX%GvPPz?gK_lDSH} zbShXEuu<&zwj!PukV6lq(&LK<=_erb2mdNJ&bn}k9x#3W{zc~t(_vwY>6bHAEFXF@ z)#1`A*L#Jq&^TSKePOL4Az(rMN$=AefEx@OtAVG8AqeZynQ<`=fTw%S1Vf%`U~D? zjS57>XU^COIoM8n`%k}X)U=6T1MXe?i|W_y0rkwahl>a`S2Y^;SXEK+ffOQu(I+vu zwD|DYAO{hZz%@=J+lgQ;FeY|g@C^-?I7&PeYb-u)TgWH8BOMP#!w7)aGQK>yyWOY1 zKF0>{y-Fzk8`>VbK!1Xm7+B+{@l+v-2mj=bQJA%VI{x2j_z$?F_nWGk7pW0P{6 zGAX{)62GxQkqtl?f*mkDfqBjS2@bUD%P!XbIM}HlRpD6rZ}3iF0D{TMf6qa%Dvei{ z-!?7>(VA<1W$rzq=l9CE>+(%~EBs+r4~#KK30-4R6IGPz!Cu<2d4iojdxFBBfJ|X8#*cDgz;Tt`?Yo*`92OC~O z*>!y@c`@tcO#Koy&$M}BPjBHp6*xLf@Ki>h1kCIQaa@}e7~!k!J?xf;g98EV} zx{`qt4wU^GPWLv+-O5rnL$_P+jEZu_l`k<*o+b-d%GHtppL_V+03sURLkW7M zkhiCCYfP^KNBQlk4lk?Y?WD~7Ej8`_TS>>XTPwaFjYSt@zTWAFPw`#Um+R z8-IJSPY&^W5fPuF{eW)fajgKID&>1@)F8vF%pmI%_s3VR91q1M6CkD&vQSRnHzDVx z_>k3}qSQ35V^9h`G1u4w?p_(!qrQ&sZ4y&59&+f3vd?dxvr?T8TOUyP_T;1Q z4wT$+5hD#(ta%IzwY{cRF3}}Y{g;z{)n~tdfCH{9sCMqW1)C?-h!o>@<+~fo*AH)6+tZuQ?cc zD!Z;>_*VM|DHObWC~6TF1j7Hmm+L}1>hQvwF>em#%t#BlOU-wHheLS6;cJ2@Ej){8 z&>G~+%_F(-Ys?2mzRm3!@sN+@edPbnO5{>5I?1DslS;3}qFYTe{ZP=hwZa=s> z+ggf#%W%V}nw=@l3z!ipKlVIr3E78_i$|-Q*jlkUqN^AF8E&$8vy<*YM{?WCvrEiG zRfo5dMOXh+H}d)`<5@a!${lZxjEKG=YI#G$6Cfv0*&(UixMqbj7Zptkg)RfDYbyiS z{cK|8ht&JLd^FJjf6oeSP+yP)R~HwKgGjS|(yp&%oQx~XB&i6AS$c;r;FCS|56uf< zL)SZjg+Xzbc&gvptNFeOP(ogZv)dX0^I@1G*xb&7sZ z>#OyGlW&Cj8DjeT<+|Y~ZcY68!Uv2^VciK~xorbkw3OiQz_PLBz~TM!Z}Sbg02%GP zJ)SG}s~rRu9nfN3@?s^o@;0(k>6=|*v&%2R!byA2T9}Dx(E~@07(OQYa3_Apk8&?a z3^i6Az##$fvi2|m@!Us$j(t1fAFbMPf%5}fN1!-&!wf2guVZ58Bo%=%KbUB|6R zXEqv5Nzy%kMUC>g83IgL0re(WgNCmn$b|1d^Ypzh7wII-zO6ic@LZsE zz_yU@i4omArX$;WIhG4-keui$G=VyTY}KBzBjnIOjh(pY`*YZ5B<9nVwK5Ng z$?EUk{SY_2I-v2@%gDeH?0ygsz?m>+i} ziI}?~TvK(@cyJU%5f|%kF7!f$&nvQxqGCeJdy#G5Fw6O&BXXNAbj?#gMTv4Sm>~DG zdL?AsR6cKmd~p&r(42liDQQ12&4ssGf@2CK;9gzh@8Av*IF%9DCJ6F^pKIJviId=eov(O|9`WhF3U2(m!=DiP%su~e zcRUfYoc-;=s|p!!>fxQM{*KT4Q!Hw?$8{#4+MN3f#T+zRVBPxq{Eycq<8y@Isg1|8 zJ&qrN1b%&zmc3^tsh=i2T6J_rvNSAI3N2XkRR52D?wO~bl|5NTq858mRB0d+Iq<%5 zLt%MdK?v!1=1>g#tr+d7Nl^A-C+^M31w&cd59{9$3tqI>OgAlIh%&E5(Se91zouOt z_e(`DZ%Tt#>y=j@Vd0du;lm!26-a?=x)1HJbVOZP+YVh$Jnl)h!NTq{S9I3=>!79Y{v7qZaV;IR8sajTPIWU*kJNEcfh2GMt^_Vn*xuk9}YQ`~8;4QxQ&{Il9_$V@lAM+)&u z37ojc&0!#r;Gs`@bcQ=SIxS2xK0rzxp)YaC{oc90dIa_bmn+;*{hRA8L$=>d3ci%L z>D&zMaLDX0k0eg=&k6Lz>Wvlpvs8}aj~^fw-@k1H;+xpWJJMX^7ac4cLvC#dHr5TY z7+*IsJHbQLSm!y&jX6#rjV|gmhLzc>Loy8x+3AGGI}xH!rlIcRYMHNXHlEMPL1U}; z6)#e2?hBD(XYPzcRC#^n;QNPC+L_~KsZ-na8bm1;9y{bcAo)7zZRCIsq$Yr|FIev8 zTr6FfKYzM@?g>M^Vz&lmQ7#7_7R{N1?2wQr;E~s5VC(h|p0&qf*A-g!kH~|yY*nz! z#s(ncWov2!^5GNA?aYy}&%?l`LdSpJ!+H<7XIEbjkIrADpYkO7!~W@8!Bz$_a|7<3 zTV!ZNDm3!l#*Qdb?^Bo@OOX4WM;sfNj3Ekh2Q309C>0r`N*cnCPyDgpnmb{v zw#`57)`vQG5B;#$pN`UJuLnn1*o$s>o}rbF(&rKb$))h^Jz@Y28b#Y2c z<=Uln-xrS)Uyl0ML-i|;O#A$RSTacJ=t!>u6UboBT`oC8l(z>MO)jXz7BzEve#bV7O0y;F)X|AqNmR!8 z)>TU&{FDZ>Be$DAl2SiBb`u{ZeOiIy)(;3-#7RUCbB1g;?rS?b4&dQJ2lj4rJIrH8P=@=C9`6*NpG3@j#i`#i zd25rX)dIt!NJtQc1hGb4h+EpR@+~cFaYN_g#chB+>{StTred&QvMbnLE^oMjCcIE! zs`4eptqI9nU;o94Dy!8!vM=k>r)PuEt)PR$XRq#vndF!oC+`g-+;&UA+e-JKfOYR7cpd%w*mdYrcS7p_*se2wnALg zZy^XQ7#_E7^vCfEiP|JDQ^mbu9an*p6ZY{yI5;r{(I7`HT`Zbw z5zvz&ITDE>$Wh$snpekCW;4z{mOZKOSKJC|5O0rHdq-B+$+b8)b3vyMxL7Cb=!9%S z0ibO1j(C9a%eOtT@)7z}kdxLYyFaaO*-Q6ZBdbjK^+#twM9qHt)TF3cOdJ4}!q2@!Rp0Nvlas>Bp zd2cpE94co$e!rULBlAe_kw;#tsQD)Z3B!`Wg)r-g@r$ZD%u}(eUk1xmVXCrX1BT(YMEx3Ojx6Bd5IY}ZfHpBx7hFa9D^8P3iT?G zC1|ySHJ9O@gCJqIy=Wc<0ASy~I2tB@X~lGUR`}?+2PThXVBr@V>8~yqv}qZYi!z+Z zOR_|1-M&fS1u^Ja)Sg2>t`Lt+y1Y2<=+tUa%SUJ zQ+!1N)B8v0T(d*-m*cZ-4j4<&e~?u9V_fa7B{ZJ{qmOrPIS6_c`<`^4u)A$tz@d+e z6WiS0S*W2vd9Jwkyn0ARynY2yA*isV5>+E1UgbJD>K9oFDWwU%1~bD3G>_n*HxfY) z|6am>(X%K z(#w=Xu~}^aS3|X*SPu15dAn6y<;{p*BU1;MU|6)(&m99A)_Ctv?9zjd?d6HLp`f7P7DcG(Srx)6+>=i49*IJgEO z{+1kYnB|1{=B#+7-0sAXm{mTHL24bZlM}MT)=*)8CH^$NZxTIJNu1pdcEG~n3Tx;a z>CM|CBz3EHZJ7ThZ35WCfMIjhr&w#-Fd0hNfwk)2nWXdh5i(Fp>l`t3l#kY(r)`&^ zXD>)Eel(Xk64Ifr*UJf3S)ms&CU9n_JCcAuzGI(1=aMdWN zkE+dY+(hvguiaQbLL7v-8jFk3c?S1?rh)7ffQ@JX)G2?Z4S9) zdJG`qsdtB~q)msj&e&9UYe<{|`zp|l+8?f^C59Ri6K~0l{;2K&_9CG0$vl(Q0nQBK zkrjjkH+NPQ;PrFgw9y{LQ~nZQzRqP~7c)6SHd*1<_-;sK#l}oS)@3_F+*ISyqi1It zz`}(Sa+lnimcb~xF8QFtWyfDw_{;3@mmvu{)bQCZBfOtc(UWzHys2*_-*ymE^M<{! zHV*TGUyhHj{63*Of_lWJ^+wDO872He&^O~?76IGd8T(!<#2l=3GdDu&EB%O#Ms5BL z(lh)G$G$Oz#~%zOfw-n7PhYp(y~pwnvDUjVIS=ejb;ZSq0~>V0xR@~q(Q{%yg^BMS zsh8}Pa;j2oZ1De&>z*_UFP>k#x4}xA?E5bF_?0l#-H=$3!TUi|JU7vD=Pb|hB;N!g z!p5xkEg~M{NO}XXP;pg`eC3(!t3I<6pe2PE1+AH{}7F#iq? z(A(j4Ca=WDy<~dVwVB`ZU)GGb68|$kY&rK`1O$2z4!W0tEyOxaB=1~o{z}YU9}zMV zI5OO34Z#(HF~)x&YXHq6g1A3KZ02^(cnM-GCxr4~91$?^_-{O6?iL`23w9V2O-Z1| zBAbhSeHZr9Qfx1QHa-#CJzL_?W2yX#uZ@(&;cC6E1_IQO%X1tzTO?yF1tfM~Z*NBe z9&+ST1ll%d7~H~7BiWa*_(0&fIy4ReYF&i0K{(F1?26+Gu?O!1q5=$E9c!p2d3Xo0 z%?G#PL@kCw%|}vRq3!1ZikR+z!l9=4C4*%*GiwgYpP5d7k&X9s_Qml!XJ;!WxSs%0 z3PFJ&ND||)NZ9wU`$7VFNcm7W%Mcrw(H8(xAG~a32drRjlZN1$#4Q|zD^$VcK<*FR z2(**uXhqs7{=c`A3ne(i4-Gr<>1mfMC53$Nx$Fg9aB$m8<3Ydfv9-5#aYsft`V+1f z0M0WU4mMy0(@uVE@W46`2t7U!WKC~mE`ao8`r7UJ9rAn7OekdA`#FH$dRlr?$k^J@ z3Se{qAtQy)1Pcu_vcZ>f#FXDBc850d?t{FPk# zM*E0Tbtlj>KrZs;V~d&}eAkYuT1*&T=gonI1>rXDX6kQeRE?%Y=tU}l9><2Eh$IMB z2QJIpEv}#s;QQ>4D>Ik4Q=-Eq>h%a?Rq)$l?AJ^;zKDH$yY=8a$0fSetCTht5 zsb?*d_Kg1cTKjn1VTtR}Nf+@4W*9zP7*-m!RJozxN1 z^Xe~TfvErrmlk+w*=!j?@b7r&d*j*W5BS4J5j^rvSdfW_>l6TH=yPHGL;4F=%#NlB zV~$0j$6=rI=l?ws(Ww^~F_z)`+z!P2VlQ0wLjl`)Ch^S|#tuDCDt|VsW?Pj-E#$vb zG1Ye8Z&Tfq>Rqqec5DKNr@d%G-W0&{4-s5nHp@wO4rk_fjID}3P?g-PeJKh7NreDT zIgtm;_z@^>wfAHLgU>Ky<{Y)1x33gTcKSub0o3GLhj9K6Xg=f zdX5rx)Ec#YB;UeEw~YNI&fp)@7$7CUI)7=hWZSyoRwfnETD&h&K+e=u*8WR=+`+6l zG^X}$@kZcq1H)tW`C#_y%Jrn8%S3^|6|~2R_f^gNkcnpqv#cb= z^X~bxIS_SI=kuvX!k1fwQMqQw{eqh##=vz^?&kArt4tAAi7M9CCcvS?@N3F)(^a&KMp- z!^QObb3;{`;h)`F)egB6U_TihK1{5YFlQaTn`63*K>+p}_DCNicsyq|Y|EWI+@epH zk_h!D2}N_)AJJWYc=o^`V9)U&{+)hX)kKb?d;fZ%b-`L;5S&H)+<^jI&;TnSC!Y(O zZ((r{zP+bApSB$yM>!g@+wFl|Q!%_tJWGV##BB=%fl`>$X7xa$(M>PPplh7Q_c6M? zF5TFgI$)bx(LFEda-8_45SS#5H;%T2vQ;-id(QP z#9tql>XT|o2d&dKhJQX8*Cq(C*m7p9gdvgn?(PSZW!*x!(qA2aV!ypKX- zuL_UbPy<_Fb6EAbz990+@7Zx5&$+S=?)|c?;N|#Ly(&B|2zm=jmu+t6V$-W7!u^)J z1pv#&c3W##%)t|o;+XNWFZ6qCdhA64VR3MQbSzzL-N61IZy0~^w@Z6?(v|AF`BvVD z6~EEgwqe0_df6=!L|}X0cmi#2Y>tLrDZnLBl%_>mgbY*k)gFQ?h{JQj^(XLI@ShA4 zfJf?aTfo<_+)284=sW)@um9-BW~#1MQ?1`DqO;@TVBzoZ?-$INmU?BQSxfilHG)=R zLtO~>+fT}P`NJS4|9XaOLn=D z^FLo0sc5xgJ>)?(H%0m9_oei56SuV#*5Rd3tQ1JOoNGa$ zQ)YqX3Y*Fm(`FjBDy{`Uaom(4o~IOQFe^5UvON`DJHA(?$}=aCfsQ2SHDAZ~GcKmh zt{`dsqZXT2Z)i_yIn}FX6T$$us~vi9f{yHs@m25C_Fqf5u5jB1#02!RqY#OMh}#wQ z?#SJ{duEc#IC|=!Gv`jZBFDl50pg)@9EhO1dp#QDeFg==6|)iB($xtF26sgucz=q= zzVNN|a^|A$j67qoUSgwlFdc+L%iLo?0iUFf@lhv%cj#5m$& z7W{6IwKsQ{wP4Ev?Z*a32(la}Syu;hH*miPc_>|WJNVrRWY;ryW;@H8ZwKGVa!0wW zy3#TwS>*OHcr{N^*43FU%Vi99ixOB!z<-EV00&W`j*)omLTQ-pHV3lfZ9BO9W6yp5 zW;4fZ_3mUI`tx|5!`a~=uw+26V3hO;do@Zly0KO~ZuFDj*-ad^h=p!#LQFEyBF#h-k$ zCZ`4wBu9BqSLk)~$0LWG*hpGLh$5k6tmSWHN6St-`A4JRLi@l}3U@B)Sb+;zT*jY} z*WL@AaF?2(samNU^htSOoklajiF6=cfp}!yL7N0@oRV#tp9Y8BVV2!1emUrCE;xGq zZ(0d^@WR*}_D}2kDV@Mk(iW|?J5lAEcj<&w-Pjj|!vvGKxrGhDCd6JO=}qlHGoSa) zA(#@%?t@fAj-O^`#(WFSQe}bd9Ej9V7O^(tdX0vG;jeUDo93%r2ItQw0y)0OaZ^oX zq-L*f1{@-hZD;3dXYQl}Y$YUG3OQx&#a)W8$5n&KV8Y%$D7+=Rwow0+?#X(>li~6Q zt?+3rdy@{g99iPHd1!==)Rj9&&C0y{h?M@u#)G;u3>eJVJEy$?)42bD8C_hnWjU($ zv6o-}I|#bl9}pv0=?SJd;r8H7vWuMMuN680!&xgBL#4Ol&z5*=FbKcL#vUl?JAfD1 z!A*7k58R6u#>ln<96tBF11dS9vf4Rmw|2C&q&Z{c1+ti!iMSY(H|F}qr|~F>BETPw zTx0Nnv044WyODZ%<+ZUcbAuM($3efeM3RDv>Ut|>HeuLvdf*I?z3uL~z}JO6@a`8F ziIPEA6&G-Ji%m$|Z&e;o82KYlPlCxD_)Q|^gxqA^a-X|v?enKp;6uH80|rhYCGbB6 z4jlMm0wL%MVpeZHjG$&*mzevr>zM^4H7!|siF5mD?Xz=ar`cGg?fZX_A~Ey(J^-sb_+UMIUuUItH1M1&KQzmP?F1jIfo%(4qkocN@{n16I!1+R z;Q=-=*qPNE8aT@rg5$Hqomq^L8>4?l9iYT1jGXh*H=zr^KKF*)!#3Q)JMpv5V$X2~ zS{b&`*-SI{ZT%r?+^_b#Z`7YI#-Hl-21OHOgx@@5vSB0qdP5Kd;D@Au!5jZWck0q> zqjVD0uSxpU7T?9kV~9jFFn4waA<}|Ajevl{9kO*Z&@q(Ju)R;$YyAwR}(e30&#Xsh^uAJA+&_BD;N_OKH{BBw#2_Ca1=B{?=Zu+yQ zo6OUv@$@VgGmrgRox29mVr1xBS|aznf!W~(5)6TPgAFzjNf}NUd@X(>xdT(H5p*U%JV6u$E@&LEF&hi9uu#3_6&XGf=zKjbmrJMio6u9VE3UM!d(;U>#4>rwO^dQ7 z(N2H-cQvqS-sJz!;9Kj;MxI^+q$QZJz!bsep&y8RdZr=-oH3_l@=1CsDOz&yFN;E30xbL@wspxAMSp#t6}2jo z+uXkWci!!tkq~re7jS(M*`h+!2eQouOJt@oPS-Y13H>pPioeh`5Z>*bkypgfP(f%! z{};thw08!I-5lHiu|iOQ(;3OE1A6M%u>f;ZwX3YEhojO=@8+n&!im4HG@Eu?G14py zug%!q^y|NCdr|aoOZb0XK12cX=ONeb3Q3GToPR2qmi2AV>4Zi)Xv=?G{s0lg@hdDP z*hRz z0;--B{q{g7Md#Sxbd%4{Tj}^G4*Q^lC|*&d__9G(ie5IQSfdHy8e>M;S^`|inWL8c zhkYT#wSC0@wPY&2TL=qFTLy1fmM=j`OE0X-37HSJ=Ga6leXxrop$pOxK{&6a3Dp;i z6bNUZz7P9!`tIog&3J@k1cATE@>Vbid9iklUe%07os@{&k+nB&0M*pXK2cBzOmj=o zh!f@0?3cBEAcX9{DBkcZPI{+Yyg&QBm&P0$OhMK(z*+G-)jBFD7AS)_Ux35gpslRX>VjCAW!TGLGmX7 zqV=%%)ca^Q$Qg+2CfHUW5emjN#kN9EU_h&1ElKBGohe4I&e&GI#%~F*13;n1(6`Cm z9A8FCRMfj=yS4xq*Z>w>p-D$}um-+N2>4fbgLU%baGi)cyY_EBvQGxIC4`c|%`p^_ zF9<{%fZLq|l4$QZ+#M5WwoXi5@+C7>Vu8BF__B@R8}Tm>_914P$f=9t6Tnl?SJm&n z*1=3-Rm^_kWd-7`2FkpsX)K7oclewUGe&5UBBxZ)0^d!Nz+dC+i}}8%v>=@YbG3ri zX3e6Nj`>EMzM#ZgObmNvtuH!#&SXI{Q`$BWIt)V|2{J=Jk^ zL^_)>BL%oagcLJ(O9A?G(vU4XquWO42b(^uzyI70s5EQ_)4o{54HpQAV{3rR4|Y`a zaJ6TFj?TBN97IfERCVQKg~m3?s~gok4aGc}6<3XL#VTpq_g1yQ|@xbuPu{hpW;puQQQbJp z;d4GX5~^m{JDnSQ_%QxjhiD?mssdI(US2c&uehZ#Z&hdha@u1?o{p2W@(O8SSR422 zVZp;G!Fvil)OhfGvzO~tn6rQ6@>44xGyE)N7KMwk-{FstMYjVZeOpU3P7VJ$o#<-7 z|IIhRc=d2%#a^)GLy-4af*V8DY#5lw2JZ-1!lob>29c~KWOHYtoh|TDqPOcXXPB5^RdR*Iv^{%?r}nH_e&*p{;2Xfc#UTvXlRF9EVtuBtpGkwY`8{~8I znDIPd!GW+2evqdq0GQ?uLF4oUd2;6@<*#>n;GH9k{1n#f3BL`24I!#QJPr_Uz*F5A zey|q;MUuvTE~pUFqgQSHrKm{CK6AHay2LTyO#)qE_)N_xRpu$dUq!0xZ=WMiPeNv%(z~ z_e;bzgP1dQN+(Whv(b!`fSpihxMI+WT|tDz(!LJ0pBI$#GdJq?b$D(COd9JE%(>Zl; z$az}y5-^{!wq&nZd=Or$MKHD@Z`FIBUH*0cv~I+%_jMz#ICS7`$zJhjq5uU4eCJGs zh02#Rn5lM`o4@UpyAKJj|1vAOW;TJI8vB!aj9~~IH(0BaPtetcgUXe+ymH4k?tT`S zKgn#L+M>8?^eW}S?Q6i3A^4+Q9vpD#qOXgKxJinQ<>!4*b8vKZAv+*pp#o{X^<~t& z?k$1Rm%jP7l{9~{Ue%siOWG>O?Zm(E#;az) zu?4|XPWY;YiK8QaXUx_M8cuuM{_ojVD8;$uopU@!vIxhzm2ds9I657#$ar|h99K&l zU0WAp;2Q=@Iv)2G``G05lu}0S1fAx{xAV7%hCo{eO$2Zc+@!Trl_{wcL(F-7xXRTG*7gQ{rmG?^%)4qY7W^2R8eP?m-if6T`yR4$KG8m%wPj zasr0Im)jNYNrwaIWwGurTw^7`aUob{_&IiY?17a5q~3OQ5?mR;5ST64h45Q$dyvyf zu<9b(0-M^G2aBMhU&00r37gB5Us^Srn%x`GX-0XGzD2$co*w| zX!GCyJj2wj);Z%Pv;MN7ced zbF3aE@1^OJabMZ(uyB4wN4Y_9vF`C$vuQq#gNUN#*wc5w3i%TUbL!9W< zKH`b;Co*vF196bU^a>p9AJ9T$)1FW%|;5BvW8=36p4P5i@V%(Z>-nOP+1KpVa5D!9CjHC=dg5weK+0<-)= zEyl|R3s_I%{4gXOmLe6{x@T{d%R2&z1*G09Y|@;klbrT8@XU&p;L02LGIi_31sR*t zS!pGU>+Y-!Ss;4t>uI9_$I;c%$cD39NXtA?)OZzKx1VrCQT!ial3ZWWp@F2)PuM`FehI`9v4+*9n_ z!R0$hjOlyqwSjDcX;^sa@};)dM?Lhb7dHMpe$pnZUk*^fzBqt=qGW9D z=qRYdUMx7?q&a^jBT7rdOs(K1h{OjSQKenO*n3h{FVd~>;Zq&Qc)TSDT7=>m+FIMV z2!UcRP4Pd~<-kK<{8~`Eu3I7QRf$fe_Piz9Q3<;sZ6Bks87n1k(ob)gocQRS@_YO) zfe%OmyC2|h#jY;c6fpenz|69B1VO?`pa+-+PWaUXv~~62_m3KzmeYb{R<07CrUIAKhUCwKlNyz&S7WU3*Mox~_s@Lq|nPkR{@J)rzGa*nu|490>$1;#aE;a`yHV9TKy)8tp{ zoOMlBSD$gt7TOB)h3e6;6$RHx{ij=*9_5R)&n9ko6M5j22?X|B7WF3Dsg-a@xwhK5 zOivFM(gTmxS)PBz@>*lv=>8)H1jk}8v-5i&OAKr=__2i|RSx%KV1v4fev--DY9_PW z=NPRjTwe8ASuWax55^p}*)&O-P|~@c)esa2+KqjEjn4_M-6GL(a!|o+nn86FTlQ|W zE0Fo1gjj^YgMu2#xGQ$lgJb@lyJSJGu$Zv$wES&ws)kJ>FO0N~hN~_%N!8bK#zM;3 zLd}3DXA{>6jSmnV3PAXKgdT4Zn2dX-R$W|{evg*5Lt`UL;vp~;u}^D&Y66w5{tKdt0i?@T`-TganWTz+ttl&I&w?#5C|vsLvq4MkPI~-p&q($!@Y?G zh%=P_msLl~(iTz#Xe;5Lm}IZ!&O70groaga59|341oGvA1pltXWD+&TRKbl6&<3XL z;Cr*YpHWJdYyN&F^}|AFODVdE! z#_Xk>s8@Y2!+2OKq{C4dT^D;h11GSz<|R|a7{#xCt(;oN)+XmmT6mvvI}9wW>EMJ7 zqn(HxJB|}3GWG3)!M;0wk#sUIDAN)ne7?cyfZa#|i)qmQ zp3A}J4s_g|=7xsRV;yzQ(z(EM1kg2X%$lS zHUI4OW=jHKA*-cpRp3)sy`xbU9$Q!5LJPmQ{JAh>my6!<;caq{zwL~LUm6;vJWbiy zKuByI8Yun10Sz0GnUpijdGjyQ!Mv7wb=p+0TmqJ2HWh~)&VQ|a@W}25^IW60!@>>4 z_P2L)q6sGw-Dw&mA{evaOMm|&)x4=JdbnCUH=X{n!`F53o31I-MoSDPN1JUDHM?vaj)8_%Q1qZ6-{6ZU*M^NL>j%8M0} zE(_z}m+7ar`Fp2%Gm3{Ezj(~E`~WO;bU%G7#dJ8q$K%}5)ATwySoq;h@inPL1J()J z8!x}gKj8i>AY{Jj+^FdXm+Qr`C%oJ9;1uwffI{EyGX=kiima%MF$F$v&jLp&C^T+r z+1E6;kx}%G@hUhv0QHlFX5DcelomjWjh*+FHbrh6{BjrN1hZ&-9kDzj;n~BRufbjr zRDa+p)$wzDF!RWQV(;ceg_W?-qj+4yq0Vr!uj!U~(T488b^`uXZOkZJZ*FggIz18R zCyN7O;lZ^;@YXSKfr6{n0zMD!4r7oQ@*j6DEI1mJkjZ$-2#8Gj$8M;)CMGrsJSC1H z0f!}OgAG>t)|7consR)gld+Bd$clLY1H$-=_o{F$$`}+s9=*LFKo6h}5tR`da#lFX!)J z5QhvC@<|BN0DBjR=A-s1f5Y^2X64+mvafwh&`6&nH23DhF9!*6sV|y0EH64OwABX`dsiP~yL>{%-#B6TLuru+Jhbi_K=`mHba(eB8P6;9nf_+-K^i2von4Z-g`e4yMN@suL#>mke zMa#LR5qolwly2_Cou4!t>i0r4Gfw!X#n;biN9|Cz(p|p9UC5{wU=2w`M7Cq|Hz5{c zTCd&iM(Ce;tNqH88jfy4Ud?wS~YSx6~1VaW&yJ4aGh!t&VTgAX;r zLSHAb71XA`^un_m^_pJ`yaqy^YmmbF$M@Rg>FoGN^qomo2~2I;CuH3TvhVK5y>kPr z-)3|CV&0x0MEEC)7o6Q20}K7%S6G|cJz+$BzE$zTa!CpP2_NCfPXjOAb3p}Hyg`S4 zW}Gv>OFjDO>_}6Ot-zJk_gGqoBPllazyZnA? zy{`XKMGD=_F{jOOg+*mx5o$s!NC29p6AL>d5GBpFat>Yk^vsI%cZ7`t`ZG1qD`FyOw{O z+7CBGa|btbRKZcq8nrFtIHcTPjEB0m8ubva<;e2sVkIGZky;yXT-x;HF)Vy_E@RoS zPCaJnf;W5o)@*VSvLfMd;>!v=_lLL&u=C+VFmYz4XOgy;!_ti}@)Onw*@XfK*aTdW zS0d-g?{}o1@(l{sNom}8{ zjctYGC%_MrH`j)|^*Ac4<1^HKw(lOII;104^tpRp#{o*ri2aTx6CZ$?B;eE*V4P#; zYVQCHXj|m1Uha9?qPwStlA14TM=BL;dt0ZA`fkmdvnyiqK2tNku1RLnrR@5X2sT-o z4qIIR@7Xze0n6*9V`t3KhMX4GORwJ4QqMd%u1QmBUo`MOfzd%4JUVYvW|f}bXg$mdz2tEA&dQA!U}4tVwqc>-_nF0Ue^?XJrh~%+ zY~+@3*YVargf`gJLc0g=1rylK3w8-w4OJ45gNH5lsif;>#Og@#JM(7DodM%%RtPS| z{Inns z3s*Uny!_*?c6|oTpM3wTQ`^5T2>e0AGV9;+BgEX>GB!Wor~rKnsA&aUn4)xl0jYeW z;{MsYs?nL=eM>`mqV6S9vYX8nb+1pTNw)rt`r6IP;|ND8N2HdVzJThT)?@eT+J{zC zvQrYJJeSS`M!JBTL_{y_abdC@T=BEc@{8vz`uRoV(hf`axO*!v_k)9k(Fk@0Y)`9`+mjqMo486rs_X_V zq@ImXqX(H1G77G(3AyX{4i^4Cy~fTbB%F~qaq#hbz6M~80CJ;f+#gylDWP*DaQNy! zJKTV=C2H~F4<5iU8@=QWYukD#O_?;?nsIul``*-CsfVV_g%jRD25pwCKkm6oi&-Y48}eZ$@@BKZ;R1dHQ0#1h{$=lmb*ppQ zKEIBqGfxmF-JCh(E3no;i~pqmz0|qake1w@JK3K4A>d$e~oH3rT@UwWF z=lNIOtP;oiJ9n#czV#yq9u>YEPKqVW$z1b>7;|jc+tC(Y=T%8+V`>}NJcC$&eqfi-sHGXXfSP@2Wc}^`Ozu9T>3glJTX_A48t^ZGX&|)e;!jpu z4?m*xyZg`|wo;m}^h+Mgi)-8xKLYz8N$S46OMECbO=HvP#qG5-`>|1bDDe1(C`Aq7 zUHQ9LF*9a_{J7|CWdaM8N1N7k70uF3H@GrNZdMWC9>f*%Q~3ysLl|4A6#^bTd{^qa z1D`jrvv(4DY}T~Ach}6c82Sl+{QURT#h`ARy3+-}%C1`y%I>TjEjRcB>PgCqco`T#b}VAyJYsW;mEWd|v)ysn^JV+c^80wD%?4rungCpZSVY@&6>8?bW2 zB-BHf`k`9dNi8fu^B#;~8RLI$;n?S$A?H|-AZ1I)tm&&OVTzI|Wl zm`|Wd2nx@Jp(3fVkpKM8kM{p=WE%kYNG_3dp_?DUlAxqes2+r`TPdlWFIoIBX8Q)U@8z5f0|?>%=` z!9pd=T>;j6wlkxb%6+cw)<$iqe-)i?!b6%^S;OiVc13DD=WKw5bCu5%A3M-lrA3-YKVFgnnqS}$ z1wRtFMEJV$R(UM3Elp9oXw_5+pCXU!e%1)2I)9C@4{Gd+{+q9psdu4#hFcq z$Ud)PF}Ld`EIeShzkTe)W=dvWt(Zbew3CyU$8itVk1g;&I89J;n= zmQJ!#hUxk_2UZV|C%%w|5G%`CSG5td&s}or@I8y#MyrM``@qm!<#UcuI*b~7B}iux&J<4o^= z9{p6F*`y`Psgkfznb!RIsfw9iQ9*;&jFGZ!{SmUYwBcu72g6f)Z$?SKa(4a+z_TC!UfNW=qQ%?_ zYLLHJ-~mxr`Y)!v&0k5Zo*^4JiC|F;3nzrhu6ZRPNsiVFFSuXaG7}a)U1mO7?qs8G z;7OPF7moY_b|qjx!R4s_#rp)k#LBpiHnnqLmBD7K6|#?TOzFF^ownO?(CtX~g=vEo z^e+;R&sp;}G3Vi7h|aPg96pr2K(|7UX{Irx;y5g1e0X>I(sxb0umdkw?^&3Po=wTU zKBG74-WI*|pzp;uOO3#?)VFXry9GQ%FV{TYXd*k08hPi%L4`p|S0E{ckK;|>jk!t5 zUAEOmyu1ypfGYUIe!R$yERh64$chHM0r<64ton`BdFCqGiC0%|*6yZ(`Q4{xM3IoC zhU-)~CfB0u5FAFRnG4*}E ziFZVSG5PR@Q~mJL^;F-PS#cL+-gx4ZWePJ2-AN*j^B{+(OS7exE}BgCxxQ}RmGUEG zSUCG%vUvOZv-&mK0qVC7u3p$*Z?f&pk@qAwaya&|{+IoqLt%erfDOKlT4B?ry7Iro@qdwMF}XK{$#kKqAeXN`Rc zOhog0m_zznxS#s;?eSt#FhQFN*(1F-)h=gc%rFgqGVcnywO?`id9!Kw3wpZzw{Tm3 zN*-iY%5ju#u4yT=^v`>1j=c^G7A}-E4bWwXQN7$~`?6LgPU**;jzr{fC&^t)V&LNg zOPR5M8~2>sw5$ojsqM>@sHyWH`h*6ZE;D)y4o!fJ#?+>1-#NU5S=dzMel3oJy5lw< zeI=IRzJVH@Dfc8t?~yY6@>ys>xz3%t`d%e28nT`X!7irH-869CSnlkx3XWcH?l{ZL z(v6djqRnIP2I>(I51e<;Qsu}-l2>Ty`#bUrTl>*fxE(eGuwEn8a{k^6z1WU>2IN5< z=qA|yPQIklm=t0`LuhVfMe}6%7s(puJ)L$L7ISGE0T)8|wC)kBJM zhL87#g?k8NcFFnPqy~p9-LKNr0X7++x>(Sp?&Z?*l*l3KoxU{}(S;7^ELS(y3s%Tj zPlsu9m!n6jod zpUZ+V$J!crTXx%m2lmjGhRP`asLi01Uit7+V=37h78)IBu4(vAWkn_>c@Yv;O@f67 zq}5~|$1EU3G(7rhbob9jSh)4>OV5d?GJO)`rgZFmCk$w z3{!!CS^T2Dj>g@g^u&GiV+?Y0mh#`;s!z(yTJhGMQX}`ZBf{?{dM@MU?*H0Mu}PVc_Fw4;x|c5f&@c>@;K4a-QZpDV6kKDOFy_Q$W_=&w%`%f#Ht z7P%pXT=%gu1;_tDdC zPuevSHN+ObYB9U{nyniuSz2@_ARkO{fy+mDLGn-jz=GYQAxGWLRc{(UlbP*P|Jb*~ z11LilWB@#KUuUUO8Bj(dcp2~{q+)vdjqeof@_rE$Q*k5_#S|# zlRsIj{ne)?#b|9Ax%3OVk=*5xpe}1zM2L%65OzM(afwiLHeS>ibfUQv5_S$k&Vhpn zvR}04M4Oh{TAjnbFGk%)@d z2cXAVvs8nmx6)F6pS-f`&JuL-UU_%1;?PCEX}NFg-4#p~z%~qc=EjC+lf`a^CbU|wXY6{s_7mEM6pm5umcoZ z0SjB%Wm#Ajb}2h42`LE)i%#k85Kvk~TCrPH6dMIWF+dQ(7X9YV-MV`(%RayF^^fP# z*?VHnoH=vm%$YOtTAd98924>N2OjtE-#T%7+qG-Rbx)1sLvOz8y_WF=(i!n_y@O)C zq+0Ihq|ycF6Ql<)1Uz(5=ZvFbejQV#bnLR!Q%0@7Yd0?L2*lnR^Q7g1Z;MX#Mg8bo zqLa{t_=(BVDJT9MQH>mB|9V&22r$KYD-8(}An!p3p=uOYE2r)pXHL%AHA(Hn<{_v< zs3N^{^5ix>omx^~NaMz<#|H3SdAbPWmxODx#l|!5r4COc*Ut0wPK-b{al-b29i2mP z6ZYY}PqDe1mmf81cHM-uIh%JvLAsQ=d_K3TlX~vS(Al-0_E*BA?REVgZS(Yj>3|e= zFayU>tQ-l9r7SKAJ*f0EMJ@IGhlsRIH+3K}RWFk9!?wX18I7xCO*eId13Q7q5j@1; z^KzrIV=XK&OpoWHD!a*`=de_mwu1edpB8lC~bY7K&lW2xV!hbHfrRbP)q!S9_?{E6C}Ls*#tT9bL)^PhTdYH>Q(CVO)muv0ciwaY%5nU zpa0?ZAhpPMH^Ob@y(3|x`YM$ws~gkk(W(>NR)iP;3(s3YR-kyyoRGWZj;N(4oH0_` z-DgkS?N&>%*t}=wCrhwQ32Q10Eu3wPA%mW$PrtX4yr*8eR6*?2iq8qKv0Xtorboqr zn&DSnY;1L<5H|kurY3yrKCGEtaB-{r`CM=?LzHXFIsM@oFyw6uwi2lxv00enW~fy= zY??;+X-zUE;S~AFZOA562H-1YU5*zld!SwT!mPWv5A^rv)<#D z_o-Wiw{N^VIs9nx)~*sX>a2|p9syuj!)s;3l~F^~i~EWTX3RPRmQucw6wqY^RRCEP z9TbtL&)ME6w;5@LeXZ?s`Q5QTE); zwra>`p8B#%SlTQvoPf6E_RwMBldDvdT2C)AZ`j@6H`qIh*i9lN~WV>Gt9 zasOT9$vGq-_2;^lwEL z1KL}R4oc2L_j|9FDc>0S>mj}9^nQ)fjckb>;SbtcO`1Cbx0q{>UGAE`#E`K|pp+?8>5Ooj8UD`T`Fxhzr2 z6uoD+XklL0d#(-f1m`@w)n)q~M7G0E(5shQZv~y0A)*;bzu4>B6KEi$tk@X)k(I=v zt|;qedr4WG45LWP|AdgZ-| z7cU3E9+<1=Y?|^VT)WgwHuKO?pJA}EI7vTC?*VW;z?ckD zRSrLFabBY|lb(O;X_qc+{I+au%;GgCG)m9UdRUZj8N{%OQYN`1SmNwQl8(AV=B<0R zK_~8vj$MiY1@%C?_q~h#z9K+1a;MqsQ14dINVM1zl3*wPaDU`TY-{F9)k%uCXxU4z zF(=5nw87pCeSH6z*cn@`bBW6~1gN(!A&x$9v9Wr?%2DCAbEx>rtF(MO{GAqbR(omp z@dh-^e(m+O$#L_V$O-L{XQ$TFeiKJixY)2%`VrmJlr-JEQyVB5QY5*=Ugi`bRg1+s zg0!Cr)4BU_UvuAlO%I>O_Ui5NL!h9>F(RLYoHM58#>o9k9K0t=NQ=YXo^$)gk(B?P zyN-<)_K+hqoj>?#Ie={$P&ucF9<$7k6h?5H_N}>fVqj(oHS}yU{dgv{10DYBDmO9` z`_6gqatZ^RG(f8M(nEXQKn-e?ai54%*bhb6XwMjP%O+!(PR6|no4Vq2!OrSG(eG!d zF8n@x<<2h!)e~#RcQE$OHiV@5o}84;eqyZ^yVmZ|8&mU1LRvg_R|O1U&Da>rEHln&EC!18_UcZ$p-Bm4Q&v^5H2nKQPn!?l0&W@y{>mDlZ;}{QM z&vp%ATJ)?-qk9zwOnk9M9_-7Af`?peEOqBenBo4$QI}Uo))izmPSGrr(@NT~W_&WF z~g(+>4$gvS(FeqBfr0u|Mk@?9|g;R!5XasA-glH8vTBF77Ax z%EiVKA5S6;_cxCC`mU(b0@eYKVR0nMzj(x7Ay+|81cU%3t<3PvLV6+j6#d~=jrvY> zc@RBt$jepPjS}-QVug0Pv4oIv(&q_=5RiH_>CL=?lR*scr^8y03?^@ea%%W#XSHkd z9>%%H9WtaOCMrDf9ckA($GKBaF1`HRXG@`}kQ#v`y|9vl2*@XRFLaK5;I9)dm*qSv zVEbC)$U7I1JtDm6J=|Y8W0E{6J!)9&FOpYJc=E8`MASDnDq1NQDD6%ydc0z(POdRJ zc@tF=kEzT#sFtsiVI`*|1%jBo&&~AfMi8d*5HMm=zU!RKLNjV%*OyaEqYt)2@mgMP zwtQFfh2(!L@2T|PjiZFr7*2$VfR2>B^6U2E81>L~pDy@lEsz&dIe1e_2(WJb;`?ma zF__vIX2IJY96<`q@R~ewHI=|Vh4r@$jrMjf1K?84z*J66BXkq zL%@j@SVX9s^baO^-O)Lxzb#}?!b*48=&~%hXt-aE`uRhzPdiPle<^G?S$C%TSwwz+ zda~EX)mSapwEefdi#1p;g|a}ri75oVvMx|s>yrCN;|ybt;f2$+xv&E|4HLdbWyMlX zxx_kM@4X751E8xfM!vd#PdP^;yFJljGbIf9k~i zvfCkkb4meh{JL4LR@U5-k**tgZe+_6(D!wsA}je%0k|YsJ>n!=aDU-+h8}tTK>8t3 z`q>>P@9C&Syb{u%WF=M*AWWaaT)lJGY@KlPcdF;j+(DcJ42AiH&!YQcl}VKj)Kv00 zt)oIZ|1d^KK%{1`UvP>IVOLTUN}f6C+qOmHWd+ZNXn^u%!SnV;Tq=?UE9mP zrh<+OrS7~zI|5RzOMfo@@pmF68yII2g$c%Xok*V(Vj%6;`s=ftPw z;>iuZ*C9WTcSnE9cdH;r4PR$FOmr$RlLGkxSS`UbQGA#$&ry4mkh@*8OS$oDjP8m4Le&b_GkP5y-18xq-Q0qDLMM;s}scjz3JkZ zODbZd(_LcYa~%Rph3c94dI^;9bxi7zy7 znXe0z6TN|32gd)^yLGGX+evEI?AK7x8nYg3t3czs$2QAs<1W)ZcXqU>ogIxvO&*z- z%w0TbJ2h$6qsv7W)@Yi;(vWZ3Us_FRmAj(1Gmj_%O(C*iu#7V(jxtbf6i9sa`jMp} zP1%&hmF^erA8T6&8C3;_J2J8OwuW#`T8{j+&#ml?4K$cfhA`}h!Lg>E1DwNr2p*pZJws_m$ zd2SgxdFFLZj>q4W!N!IYL1KnsIqGTQ(t9>-dV)^A+vESf|GvCOHN#i4G_GPjh~x@P zCM8=s*%;Z=Ojtz>#@9PEzk4&15p8eqZ_0Znm=i#VQ|XVXH21yCxOsCmuLrylgN+{K zv+?V+I;Yd%8#DUw!5|@ ztCr39Nxd~|4Fxt*+RvH4mUAH$QofBZb$b7P043$g5pHVtF}r?yBEx5O22C4;0r>t`-hcuSbKG8!(2GNiEy8YGP`x3+!1YV#-X<(D@-L@b0I@p>` z4WXE1OxiLE%^VHetJ8Vlc_OvoiSnK{>B4sdT>YYgbWP4kL`XkwC|IRSi`c6&|mTQ!!zuPl$ z>8Zd0E*Vjg=Q|;Z51$JjnLnGX;j{Hdu^LHlGHh&!>J$s5q*CJ&h6hcz@7@m^{g0|_ z*p?+d8uK+tXK~2*cJx}&hv@DWw)MMt4 zncw|MYvK=xYgxM8sI`Slm=&Te%=}Gqb75ok>72%|*NkWh23IFIzA#jPjTP2ySuc+^ zGxKSes3s|Qz#)u4JqJ`->jZ?}_VmHnIUnoE3Bg8h=YR4+cf*;xzy5pEQBBWV6E9xW z>k4#*==6hQceyB0fe=`7@vf_{UrrlKDr!%#j#V8J4{5LQ_?)PH-$9qw3X3oUgdoD^EULVC>MeF6pLY&6gEAA>D1>y2TXVM=zBfv8VaWkHf^?9!De)1t#%y_rAX` z1F8>e1#N$OtavnI5oGKz`6?q_A(2vHqU=&VdeI};IOmh3%|yuv)xhz05BXkfQyw65 zlO3-_LbH4dnUUkLa^lC`>M7r44qchL1P!#cR~t=^eZ7XB{d3x5m7ecO1L!&%Js)bT zn-45b#SUej$nG9$E|-q(V7sN36mE~-PpYXlKYM+iDL^ey6_F|&JmxUtckQ|vG3u(R zTW%&v=T%ifVdO7WH?68kqNVjHH;h`i=_zcy=PWTUzO0y%6>$0P{BI9G50FjGrNf!3 z3TJd_tFyk7@>VB*FpASa1>dqN?`jWamwNJc;~J|!t%Z=5#-6gDIU&j#kwaxjv#yoK z4j?WpElx63;fpqJ^FNPB{&9N>>hG33gQ&#^*@iP_Z6KYVc)jYV$O`=dlCZg`v6ekT zH@I?&)DKeL#mQ1TWPT?=+=mzZ+OIc4mzI%Lb49U08%z#?xk6mrSU2KEKc%WxN2}dV$3#ko^}V?`(hi3aM?qx|fcq()D{W_h4gX@`#xemkm+NtJMm%kW`ri z8~4AmSuyMTOKONm=g05Qo!-L60$N5BZNe@})FIW}ts^ghwHvJRFO0S2_g)^QRaMy7 zZSkaIS>Yo4dlId@^>9t@m}(H61qk(HQ;K&cuh2@JB(7E4<%Zh6 zZFf?CR3|jhW39WVXQ|bLP^7@J69#5R4ki}tE2vD9nI-!z>NF#pwExXe4@Z;9Y&JO6 z`TCuqro5C>vLscALfT=YPvo8&`GB4fuTaKO=G(FV@uV8f2qgR}#6fUsM_ zna3g~Tz+FrOKPXTOSN|6X1s0tqw(dQD8aaheury>KJ=l;H@e<5Z7GiSi2%B96L4ZM1?-JM*qEp2*K#-tArZJb#0kCUCp zXbD$l9Z}iSgl0Y;4GHVfoOGM!_dx1n-nTw1L1vC=v<~hU2rPF_U>dR?9v=0GbpCwwye6VX3*is3;JOwW= zajh+9LHez5ecU8#ea*-%LocjUag%`j+QsT+d|y*eEuWIKaB@z78f>KAG2U``dXh$D z&MVg~e?!1oC*MmFST7Tl8AhT35cHK%S^A6JYbaHpcPM|W$moTQsm`7a|JEB*yw>&U z|E$)&0UJI1m6nWszmJ-#8=BUkAPP(WCv%~ zE6@sgI!^{qT~9qVcV8Yw?j7p=)_Babt&Cq!@|+hp#qNkUpd@gzvXCNU1k%K{?ZD-B z%=-=kuX(b7DNG$6c>dUuZ1s^V`x;f~DIQ+G1IAYcz^>=ZeeSW&Iz>+XYk5Ft$G@Bb zl2TcOwC!xoLA6li%|dX*VrdWFD@5Lb#84D?#e{{28+GgF;>U>R%6xx3j&T7QQ*zO?{>7g_an84n%MT^N3Q!22aP#1 z2!|71^uUf7(LozOf{nIFbQihN#Tq!8DHwgry_OhJfUf70P-UHP%)!;v`-TIthL#|6ZTy23_R`HKcMCT3d4 zyYt6r|FHvZi$MM6q0V;O@zl>z1OH?mx1@PG%_@6%$pa03Zp#)odnx;yoVRn)v6c^) zq9OIZLoUs4zME?$UdWC9Q*d8S$b%y^Y(#K2(0)%V_*bAb)2DX%t?h?m!Xc5C-aX#2 zt>e{;clO>}c9j8Q+d>^f@J81NNS!ubLa|{Upry-P ztpI84gu}-LWZ?#BL#*|U`x6J}(dCElSEVdP3LG; zgwvT&Aybw3;zR`0&ZtgEzqQ*=J^rKes52wB?1I#G%j)(h1YV$2Q_MEJOPhusXRYpP zYz=CDr+Iqyg16l_;TtJo_L0p2{ z#u4DA=2tpr8FJM0o#E@(CNj`n-i8L_>o46p)%;yThL$F#gG~(4MB`%PQeXvBxIb|S zeV_hp++rs$9q+sMj!#@LdIFT)`#GW4I>ygaizr$&V&t?G=BpRJ=zt}3s4jjiuIjC5}e@Up`YE``R^oN600?>JWNfz?Ckt0&zd$ z^v#8?5^Wu}LNl*5`o7fDdf*Ha-NfN~K8i?e0S4vNL78ng$YG95KvzK2EiGRMRlVpT z;U2KD^+#8MwZc->G*QvplG(F>Ap(9ukhmeG>ZB_($!EIW*8shLuyJ8Y$Kx{D8;q(Q zbq|Jq_B4Qvvx3sLk?XT4UW@z8%@w|Y7#28t=6%`?y4N%c$fpA3z->+3n8sGXr(>P2 z0TU1YAkQ9v9E(N#I>H&0ubNI|5h{%R$DsVf94hn`60)){>);@!1dhjE{P$n7`9wSD>TCx8R zP!{_lBCP)6CJvWPt}VvU6I_Cp3xpFCW-=q@-BCtVWaE_OSK&VJ9Lo z6c|Hj55ccquMhUUm=Zv)yy4sFHt*n{{-UZ5pe`wrXY1_9^Q_UOcmst-ajSCA?M3>r0-EuQ~wsrbK}o#39x; zvo&|J;9)B1pn6K0=w5PwgZ%D^VOAhL1Vr=kixNL9h66cJsFh!4@UadaI*~6AI-D}S zM>{T`>$cvp1)K*1zMXGv6McH%2t8=&VK+HyL?;YG&g4ghz7>b!!qA-#uB7vS4Bq~8 z;vw7O>3{q;y@gTyHn3;%3XKp*_KnHwT}Li5X=NTtgPs1Y22MZ7ui||-8C{6Es4!Fk z-_hGeKQlo&3EBA_S?=V^9D@G>;wrt&c4@kUK$rlu7&|Lrcf8=qW0L53C@ zWgg81Ijf1^uaj*5eb0s-Fz$&2e&jR^b_{PoFC6ksEaGTCHT(-#bX9Cc(k_T@cJbq6 zCD5B$famEjkFG7%b#w1=d!}>RJo)SBvgsfs21;wJ{<07JT41FT(m_+)c6@D z!b7 z-$CuNWp^8PrnF3ijYbibl27EC)FWn82W~bW1Y*d5I{CW%j!z4pF{@YZpU^NWb{}kf zY^5p{eo9O0bm3#Kra981VdLh^4?_nRC20n%ntN@=&Y3jWnEb27;iFBhcE;8rcVm8c zpcZe|eTBs*#MO1Yc6o{CD7@%}U)CKf>ev-p%Z#Tg=d2k12TWN&{p|yjL!;csGODax zWb^F0(Sw`O^sbdZWSYo{)3VN9DRx1@Z|@nCSJkvhJHK)NWRn~1(GYxwNy@|ILz6YV z4&FHZtj6v-Z2Y0_{o{CZ3%zP&qg>n5+EcKRaq7O*oAbBHUTZgWJarlM12)dvy7GAN~1H@|mNbjE<-6}SO`v-ZfXN=2HQvx5UT1As^2 zyax(IS~4!VTX)9rP@VL^X}K}uHa`%A7hEVqUfgx#KV!$?<@2YIt)wE7Ah+2JdGXv4 zc8HSY;hHZRNAn%uAxT{ETdLd^S1YrrWaC@#wDPeD{P9$XkJ zMsz#|qS4^JG3d(DkQbjgPXVhLSz8;!L?)0whw`N8Hrd%>a{wjS|EtEY9175RqP%so zr7d!@Msx-wegEQ;b2>JZno7x5UCk_@%S2U8kWoUWHV_NHD4`VOLvs#?jYwl=sQq~7 zDyou6oGgc6G32f2f4xX5p)6!N$4P zYy8{q7}5QHoxXcH`4TVU z0<&LL;(H}2mQm2He4}sOMqnU`f>$7JfzEgxGbbZcpl=wG$jVH(*W!ob7hl+yx3sNZ zJ9P4zy&u`sSUiIqEm$b;d0$~OE&uWiihb^C5Ss*{7@Rop-NDZwLS43Wv^N4(QOz6> z*BZ^Ypx)h6Kcj9p^H`i}+tlMNjgSr7X|W$>tE^TnZWfo^GH%n7{uCUG4<{F*R4~K| zz$X7(zOH)ajF<;4iahK2>kHlJLb373k5{x2{;DOpm8Cub-~EVZKSX5cU@pba_m{jYk3iL*=n!`oW8wE^Aq^5DYg9Wcba3kmLHqAnS=)%)XNz%%lali1xX@cEW}>K#6G={$t)4skl7R*1Dp+_V|@;fm}TUt zVM_)zYmQc8O8VE-v0K2t5+KY@cb#-Ns)6dgAo`!o^HWB!krTEa%0>Xf^Yd^@gd@We zH4K2k0|8(~6mVd?YY5Tc(Dzoq98{jC5xr>T((z1558?%cLmbWYAxfUYe8Tg__;Z(2 zt%b{n(aTQHA&Zcz(}=A+++(4>0MSGX`BhJ)=^2o!*PdE$+G&6~bCNv_&j}$x6hF$B z+j{Q?0oI9@D}FNyW$rE^x@L&&2le0`#R|)|TtK&37p7ERtlO-_JeB*}WAfbZz}Y6s zu4m&zvOgiNpq-P77+;iPq?L56; z(&#-(b+AujO&2mBnNaCT-a{=OO2o<&nXzc18?{*CIaT6sK;RIntXF|TRoP}ukr;IuA( zOsdv}IP2lLxjerL&^V0XxCpkaEsRN(h8 zUmZ8lf@we)3=Lo&xV{=pF#z$QWdu19Tt?AX$ZbqC^Iq%P6wx0dI6*Ab>Uru#33b z@;KuIQXyCMt4+Lz9+;;kaKoZcklV>&oEJ^MRqt_}3D$Goo&kZd)CD6Nfo7kVCs-UG z0}4XV{XhH53(6{AjR6LhXkou1rSV+u#dI0*LV%+n93+Px0ws7Zamxx|1`Poetm0fi z3^gLRgfr4GmXGuh140x>z=Pn}6T+ecGW;WtbWE^Sf@=Z$?!$jzlzq<<$EaYDu)#2t z1Wr2|=YkvGwK@!CBw#DplylHveF#KCK*0q(se}c@P#surxR>KFJr=BNTp$)T)GZe* zS=OZ+78#Za7HmSXAm~~&01?)sN}SFhatEpG{ofenwGW6(gqUqa=kR_DB232r7b@J? z2+bKgz5Rc{86hehXELH9bg=nbi){Xq;O0*o?(>poD?2a-_h|cFtqpItFnL6L%C^zg z0u(Jl>LalO;XJ{2If9I@O_q+%M%Kuvp}~_s#d0Q-F6&Z?Uw!*{u>Px`h{!k|cV@T& zs3+rQY-i+PN_57@gN!g-QDPzgXAz)wU^GYk{^3MH?hzq8l^T+1;BAqky0{<+Tqkv`?93FRI$+w$} zs3|Q)+S8w2dP^J+M3;WZ_As9%Q5lS1THcK#8IJFROJL{}AAmz4FajhxsYX9ja{zC> z@TAv3LiREhi~s#Kq!w!?tqLl0SwMW;#tywYDylgT z9vLn1+r*L*QQJN2&^Ql$*k~KJ%*!%JoSZz?L858#0dP;5=m-MEM>cb}G;`oZ*;z#| z_6e+@c{XiWo&eGiHFaEFBwmWWa_0wfJ#(YYInp9Zf#vj#zw6Sv{Z_<*rPUI5I<6P@*< zAHzQD*qNgJ9uwRc|MObDPUXtok2;Py>JlI8vdC~ialChMAp>8T-Od_2h32nT*G(dDbB-^Zd=GL!=rnDC3uZ8%Hl{ zYu3-%*#(#-T2N4=NKy^e$i~tdoWp>AnjWD>T0QR7j+(J7GYL>*{oh zhyA35re51hY%f`2y9B)|eRFQuh#o~n@1JTGT-<;)sW!_>&`OjA`_1`p2CeDjzbHpS1z?EZv z)eS#LDqplCOK*XF+5BT24``04n!^*A9F}2FkS86bik-KSKcnt^=b1jMp4cm z?m1cLRAvadI$g4H?1YzZ$$<+$wvJTZ4l8qrGZe{1=dz89&otc(`4^rAN~mQp~T0&)ixq(Q-c&|VL+yLnzzyUbO0>9LMDaM=p* z6tg9zsDreEk)LPTJ5|Xaq)&juJ=`$_+Bp<2b|un#)c5Jr?my~9#*ta&_u_zh0;C#> z&1#jhTQq9o4(pSL-`NfukL`%rnY;VB&ha}^e;V`To(Nixkth(=(%jhr^5T->7HxPHNUaBQ6b3OAXwOg z3;R?Z{PtP(LXt*U$l~~WdVav0k>)Ws5@;731sEJ&j2O=PHxLL2uV&oa|Lad{GE>8I zvsAg-HX|^CU<8VWPnloWVM@u+wCgL)n+rT5qOc;5a99{|RzrYHxmy4X=gazE=P*t_ z28bxC#51E<++jfa*Hc|xX#IBAGMXY zZh*|g{#SEetszQ8U=!z9R@{V{!eaoWxad&ZNfe}Kp~M?)Og{uTw|wf30R!F7PyTYH zaE}7>+?*84%VQ5ELQ!u|)Ll5?{5JJ;*9f})lBdOju3`~O8KQCZx^6jQEt6i6`FYT* zhRNVwNdH%{XvBCh?Dnru`XG$M3MLX|q}k<-3qQHmLpxL{Krbgu8r=bInZ7O4`D!dF z;$B))iMaY@K{FY-FACl{w&vMb3YfIGuQ9yATFJq4mNLN* z1HOXV7iS#TD<@Sw%os%uH_RtaG(%O=z{JR!4`)cX`6t_`e6`5L4|T)!rlDb;UX|#S z6RIz%aoZ#wuBh`>goI?*1TjXtkEf=_Pcu7rQy%y_{qI@~_L;e0d3T&z-yySUF}=LF zwn$29lY$_x#K6wl(iA%OTz^z|sBcQo-X_h&FfaO}W_z^nzjo!kp1Gi!R8?&s-4V)2 zgM5y>yZqT#zZ{*QIVDD^-+wL;XbSmAVH{Ke6O<2(Uss0Q6TRe9m#rBqu~)~@s18IM z`j6}wf=3Uy-Q0dDZkchJ1;c0g%!F_4(cmxu4Dq2f**vRHrOZ<@W!GEXvR=V36z;w- z%j$6OVVGJ*kRHPifHQnV0^puovW}7_7bSA~ug*^X{+DULHa*=>Bhq@t zlIdZyz^)D`1nvxmRy;1HC-G0f%?(Aa@YF0FOsu(>PoFz(;1XfWNLSPKdK#Dy+$pe!?I*s> zg9M4LasCOpkqs)UG#MRDjW$15Trk!ElqvvotmWIsjjjHg%$P9W?MkW0W1pZ=b@q*~ zm!D^R{A%5$RUm|eb=aAg!2plGGT@z*tJ3_RLYaPyfi2bP<5}9NgtTg2s zaUotpv}{BW&oi&7Wm3Ze)iZrg-IUw1A>&g z!&& zBk?nE{5@xbQtX^TDOvUyKwef)|N3=I;aytjl%ajy6elWd41CpieNlI^mS@7d+>X{P zplHI#mrVt|%F3nkUpfaP09;ToZ6qafo5|YYTJfu$zn)yJ1THgz#;xnpj!2BYNsl`` z=)i^_vP|KuAKHD+P(e&Pqug7@bXTZVDtIs0^2Bu?am7ZQK%pQxmbVXNow@9JX-#@Z?O%LV*oK>tPa7b^=+b`?@#1eMu->* zHhwq$?x1&MpH|fhPz-&F;TGYkFb{z1#K_u>rLy_2olMHwXQb?ZAr7nbETkY6i<_Pk z6ecX7`oF)tS$;tr2;YLZ&VZ$GDB%9Jp^<~RnNvSK^6T{|+N3D0etyCeC;M?)Zy_z^ z$4jqQ^)90&y_{39tNz|o;%CzN2Ll)+uyXL34loLTR;;vJ7dk^dX|%|?%02OV@P&dk z#OJIWK`7D)(D9FN$ct^UhKWN-Xa1FC%P%ZlDO|N76fsu&V7JwuKD<%%Vml+)=b3?H z{9BMaqb`JqS&U-wVK@b;Nw|b*V&PGNYl0j#aIRNvSUL2f*g`#0Xr0B&ybY2`aBAVw zUHFl)SmMQoVTdT*MF7&<GZwGntDgzFU?%ii8qe#%-a`Q&f%(ryKiX#qsk zvG;3k^4|sYQ2iR$otxx+VODNGyKk;EXgs(vBSBOy1;-btD2u$4N!0ye$1EjUPbQMm zr#eZc7lqz{Jh}|Nvm*ZAC#_1`U6)pf{cwSeQ{Pk_s`-42o|2t(JY)Pauq9k3#8yPz z)!xn)xMQGZ3m8%K7_9Z(kshNH`f7=f?cLPPw}5&kLhU;EP+`OX1pD;{-DX0r3&q2A zqqc?T{7T_05fvoB(QFA;fY;+ikLK3Sq@7+Z*`#yOe+865?!GyJ4gbp3lM?SX1nRv5 z2?xR`A3}rajC!P;A%*xRogDwyf@HzWJoffw{5^}&u(8G@!{yeaC0f-Z4*!b}-2%d^ z!Z@VBn=$}Za%_Q!g_&N+Nr;gHex>Lt@7wEHFos(4!04-b{DwioNfE_{wZE`0W?%Y3 z4<=4k3mYkOb>FV6XRxuW^5#2*;!c`R_sP8?S*;WQ3&(s0fv5&Gzxs3Qlfozf+@I5I z_kws6(3%L{Q@L724r+e0rK zm@KeMCHEtiPQR{jsMQ>z_G^{1wh2<#+G_gL)_RMKhXEFYM+&7y96*R zTa>cZC&aE1PTWwlIim;>Z7NMrTJbJeHN9_%>+FX!(0#cBGdjtNa-WnjkCY?VyLG2< zUMLnjfsXiVtM3k<`H@I$EUTG5g?=p%$*C5c!4n0^Cc6A>D{`co_r^;_`o6Pg3K=lLki==cPyrJR3XH;2L`8&k^ZQ2vRQlpd z%ZUTklxfCWN!no9w0&X47bvf;!bZ2jH!Pbvx2yVjJlkX8aT7QW!Ytpqb}nWP z91m%bUQBjo#7Jr~=|PxPRMK-nDQ6s$0ZNp!kzjNH z#bcdCy-o8=G|NgR!16u$?_jO6%AwOqvaYhi`NaUa1II5Wx@g01K=hm~fyc;oq}RB0 zM$*;}CFPCDcilVaxx8@Odwnxl$biUfTkjb1MgM-imbY=mWR)hTI5=?c6`psf2hwO6 z=Z&Qj%uayNs4(6ID0IuJK}%qnN=hPiM)>`tXQxanxlL!UP(&=dg8aK z7Z@nodzZH?guENiTbVmz=5t!AgY9lV6>@oc1>Il*XLRMF zCn5{>scCwL-YAjnyderD_a|)lklk?%M(TCxt3}On#zICMP)4ytFq{fwA5kP2!wY#D z(lc?iianEdcCD-A=R5jZu<_Co_YdyF_iDu4mb9Eb=C<~Kk|>4-hEHJJC&aihSN#iT z)HuyQw@J)NOgP0yn0HdM2G3yY(aT3s<0mbdGx=d2 za2tg=lj1urdn%#y^pT^R+BwZ5gC}SO7edT39Fmq@6<6?Zr>l!e+rKx@Y70|s7}Co66k+fQ@^8$rr|!Bi|(tOt&vAyhB~ zwLHX3G6>2t@Gr5f&_4%(0DeHI5?3J`kB%^6kLj1tcd9Ph+#}q zRAj?|6OM(7f6ItLB$QJ^u#LeW5lV%KHYyk_G>|(mV4wJ0L*ii*3R8c}H-;yn>BpfD`MJ3LMz{o-<>qU5kf=Ag-z%&DP%8NfBL^4UO#W%}j~1B}aT!yWzbiLnp;< zc|u4$-SW5Es?X#MzOz$iwW1ccyuHdQrTrhE4eJDe*hhSEDC#x&AK~Gi#rB zk&eE*0QL&Y2vP=7?m(d)E=pE6m!LIQi0=0E4}_{8NO{E-E<#~6?W~dV`a}|#`Hy-@ z^64u|NR_1LuGxve6$K(DFE4&;e#=ueVY_`w{ffvY;)p4WAMl12I8FkmK}f|1a8S#7 zvj!r1>p#_*9CDQsyKC*kkvAU$5fMc{FoY{;!Zn2qBR;%k_P~hgNH+%eyUd4(tQbTa5dPdO7os5y6gQ311hwXxFdHI1(+a~_Rgr>InRd^A&uTFscNS^mFD$$`FN?Q1i%+j zwi6yH$nSJAB0`uOVWpsUYlL<|m*@LR8D}{dIlwL9c!V@mfx-L(dQ3b?vRAHDywny? z^D3C&6f84tFY%2JJZfFb19nbu6jq%YY$LWJR;@7U5*2hS!B%|lk)zbG;xFg&kyV)fh8n5IV0eO7#z0@0!=*e{GyM8g9)Yl za@L5X3_TF71c7s0iMxIn>}L=vR31;rGLY5Iitow2B|o1`Tn!k-$?`R!=+k=M?>g+X zpA_C!w<5RcH>euWzoBHo5vkYkFyrU?aV@lSEwqkXRTFg}?i9ae7LN`tRXx38ypmgf zYm^|nq>nt*(*IIa+m?{7(3YrPGqrh#W6K?&V??1@w0r$yxw5UZICg2hY(J#CIcj0MYY%K=OxiV?-&rN5kj9RXv3hSFS-m>KEo+x6VAJ zmY40Nl%q8U+|r#TDk8_fXJDb@Tls>SZp7-sMW=z2A`hbtOZ^ESjSBIX(Fb)2n<&|(848dQsOaT}X@CWgTi3-oK z@gtgrK~GfHhW#<3COAVQ2s^ya%v)rcsO$#^JE|o7+~96E@qUl!1_prW#t|EUGx`_^ zB6Z4GOc%^Wa*NQMgL61S!qQaWrI!Cr$17e@jJ9>Kg*L0u$v@k9&@ z$ov)z%3F642TD|(j>{^%`a~!$qFZ8II0G{qBjl`do1GnYm?!W=ibo>9nwipUk$ws8 z0>XkL3q7t2f?44O<;WWm8aOn=?bEnDKX^a&!bQ>zD$H|mbKL`e?W36s#i3sOE_KpYgzw{0dCQR=POn^PL zMl=i5o#S1A1lPkQ0Ame-VB3g1p#kLRh`ut;A&AUt!4??{h><7)4EE``OE=tshn2Sp zbVb0r!2-b$LS}>D^$ANz82KC8nS<;0;PeeVO~w%iLP+qkW@u+;ZD?u#U)e*UFmwb@ z?~RUTAk7m5-R!J!v;F zgM)?=#&s81GhEn?ABe^2W=r7yS-XKZZPD-;QJOs$RMQQ-sR{hEeJEi}Z;8%2`-Q}@ zOmyXr1I;UIeNglP95NHU{zH^OCKv^Vf5FO{e*w!54jaLNUYtO2Nz zz-Q(Js{#suldE7OfT6;&ib6Yn;D`p)Y9-JFp$7sr%|N6W!2kwusV{`%$o4#OlLn~b zf5U*GFW5k{Jx&Y=QBaw~GRH|}fw1HZmU02>0GkYMK!x*E2q%bO=Yj3yAfTAe30__a zz=Y}`+xx|JP_Qi7VE;vyY;PGyO7P@h`HL7?2wv(~5I8!5hng)x9GE~e&TA75Eu3wP zF?TnP>UZ~-xL z5G;Sx@8Z0hfa?cQV2#TwteL=}hWH_Z6_WRRmW2kU7FXn#j{t@#got1{XgV7kpcO1R zoFT%)j0i#jsawE$4jk;l1Vm}L2r-->NP+dn1x>l!13(;v43A^hHYfdfO`=GfN(^Fd@k4n zG62^ZO)R+aBy`^APe1xWn-Nwy6tBCYp|8oF1EHpi;5fmH059GtR8P zux%Jb5lVW{)l90<4EBonlu^B*1vc(qQoQ&~>mtf=lD63F(+=AOU6Mh{r-6u*BI{`? zq^>l?p(Z~!^}YQewY02-=jZMC=K~vE=Skm`(%i-H@E>G8txeJwHkMzslu9~gtWmqp zIc-z?mr~ehwfXDSV&^PUWmMRQ>78@EVB;9mr!$r0PLqypKY6@#sRy`9)_?9emM@-C z*PaQ$okJ?W@DzIT}DxJh8&p- z{b!C5!m`Gj8$TiPq0wASK6vDx?3s&3!-QrVg0i?~t*rlzET+f6K;l*yEXT-wLu>G$ z2|KdD^HdN}?}p|vj?sVZ8A;)F4epm#gZp5h(X&%hcWvNs?XV82Yr%eJaB2x0Wn7vM zmJC|a60PWgjt@lD*_H8m@kLdgWR34n?k$i2xiCcA1S~2V9v7$2h+P02j%)aCEOT93 z+spCCs9wfwRM2BNH=J{@e=e^W{&kHtX80b-utcVg0eO;53$KJH*E!9v8-T zAi4;+{5XBTR>Aq^G3iz*Z!{D{lLXyZU@I8wEk8T~h!J5H!59>2$->xwb|D)hcx%YP z33>hr*MAnzr~-qP3U_pd?e%5{OD8iUP(z7leC>{mIDe?gSIb8_L*Cfe8w>>KcS*a+ z#xLuyl9O$wd~Liy`bTWavB+tB*fG2ToZBbPDW9`s93y7g%Z^sb7gXXDHj*=V$_FN! zDRTb`G#>;ao!p2^GjP9C)HO46aO4F9|ArlMzmd1R(|Em3ruKpxYKtsD#sc8Te0^?h z=Zk~PV#yPUMFvaH!$$p4XL^-P=TWn@KJJ`JyP^pjPaRd-wD@?kR!YbDiY<2kfII-W zy7MKu;FCAh&MMr^ecmU295!ALoc{4^d!<&ucMD0csRc%`alXZ%**PgQRnNrIYe&J;qFlgKgUe$EmE9|G2haIGcigy)mtRqf~XDCacNR-3dx0BM#0 zGcE@mhnfGqXYL0Gr?As;RTrw{=4Mc`PbPUxYn+Wn7jF3%DX z(FNt``Li&%*w`HrOb;U&!~X$7oGkzs7;sPI;kiV2^N0h@{SA=^PVo8!H(9tK>`r6f zpXUC~gA(=75rqJ9R2x{1>^LLhYyD3UvIBJgGlcBzkPrxovhBE?VoQ;80?z%3P=Mfe z0j}m17le%sER77XsuCnbFHh4yenj1>n zBq~B17&Uth;YP#=(Q?CE!l7kzEHql-rU@rnGXRsqjS@E$GXOf^{Ee5Xj#)vOtR8JN zcsQ*r1!w|j{GoP9v&1!>Qn1@uV)NNoYhh!qpNrz3qnnvkX4ATR9KTXwtwnSC^RI0gaOJht5CBN7sKfXxXn9 z)&oV{6Lun?04m6EZ59>L8hEmE8Rvw71>i*l0=SQTEpuOYl$vJtgG+PcZuo#JM4+)s z<<{jWiTjM2-n8E4pJ5)b@#L}~@7;&pREq~)zAyV>8Mq=M+^ps#t_WZT>7;O;3ER~H zM^yvh6OKDhD#ifVz};pcCLfwtG5{)~l5boPMbN_oNDho5P2b3c<#n>#3@mNzt}(3y)aG%HE(2jug{;)>^9-I)maxfLclol+H}7V(fSoG`g zC2AdPynT1iI>YD3wW?%W6)1BW3SeU$ZQ+`hsV$7-uYYe`zO^0{!2^U69)`LrSj4DT zms06B(<$R&qsrx_W0FoPlakstwk}=vbu(-Xv2YUmFk~+?nmRYTHvad0*qC;9`wI!p z`Ak38$hfkR6*m4}SNqT~jZ8g}y<@_o&iVhZy*Gh} z`s*IYXY7gmzVEvt+4p^y!dMEaY}q1f*-A)MB+;T2NfDLo6jHQk^S|@9 zG{aav&-Zy=&+mD?{`JDV@4WB1=bn4+Ip>~p?!5<~!n3H_BoDi9idV`5Yv&Z(tv5Z7 zFfzzDAm--y1~Y?T1AvZN>?4S;P%>X9%y( z=vW6VTH~6+VHz82a$Ety4FH4L@rKeNsQ9a$dO3YGb4_|)55%;_^c6)H@>8`>9cz3a z|5ErKRCuW-nw6sLnM!Hq9$Vf$zrSx*EH63D*1-j>$pJ1JIi2*TFW;#a`X1DCHSN0u zg8}dUs)Gvu!dbFj|7|{-B@MC(fQFm$lP>ig4G^q#t^VSUQzLE;=#pysw*p<#0-FT7 zxwXKe-rFS1&Gmjs!)y{LU@MuplAUc52j!xkvkpm7G=kIPL7~gm-~*KH2$fUJs{O9Y zbB}OuXhe@0h%mdOk1c?zP5=2kLQNd1T17JhtL@6jg$hY-$oO?6PtiEkR1o!Rjn0SLT7ts4?zzGKs_Js`2 zdcW^xt6zAYQ6QLpaDf`H%&VEad#hygsyV0J3!8T1j-ca)x=a^CHoz2)MX7Qr_l# z@n^?n?b{bb0}Je5|G}Na009Jtf4MFsfT1_)VB`u6HH^i5?Cnzw=gw!0p=N#!5tfQr zioRTVt7do{+x3s(4S-j01Nr=q$Aim0Jt7IT+X{IX0BE5 zjY{DS(bsC*%bg&+rf%<}ow06H4UdQ$a2ve1zy;km;K!@GuB%ot9jdPXG7VzCfVb`> z_8`VMa^$as_^4A@@SvbVBa_4s)&1AxqXYcK*&Xl~%%<}%{n}!|d2Ul+H1{D`m zQ}}QseL_RKD0g)L>p}5$9|&iOu6Ym1wDWSg!5U%&{rcKaq0dL7{+yIj^;5_8sPqs^ zgE%~{O#%xHvkEL$Kftggjvo$9_IK4T+&QQ*D>Dj?bOnX8C7mMPr*+j55+~Y^NoJ8j zh5enH*2L`<3g_|5wf0+^HbaGC)w}+L9zUy7mZ72+Su#uw6`mjs`Z_%FStarQMC;H^ z+6<_$;yr87a9)N=y{_v==`CtN34w-AeUZCYtUxDUv*TUG&h6vCZ3POQEc~kq9fdSb zTK&GUmBmyHH&ZNf9GWLUCqa@il<=?+?0&u{3q@xARXNf^!I?183+&nlV1wIFlcO?= z)UU_kdGPnQM&llTOh(3pyG*x5sXQopgY$vDoLpSlB^e?bLLj+t4edfshOv_m$QLp6 zwgYLYu3&&6bec^~MlCv+HBwp3Jm^31l|Y65&+3RTL|;-ok;;Z&&@>dh299>NPF4aS z4+R_SB8rQghKnZ_Q$*INxRAF3C^g;C#x3nNp>YzwAO5XE8#qjG&B_H}z#?5fnHai$ z2pm*An+$=$a2-vCs}Z$Ttzh9Q zg5$7&za~0nCd`74ak5*O=6gB19N9<4Rm-=q{19$6zX@S^^!JYI?LwYv=jB82GalRq zNs$2cP(y#o7*DwB8Rn9ju(Qu{aOZzvw27H?vfL;(r+}3IRXJ~)gs{LexRT~D0Q~*9 z=txwv1qOkWy%Wd|f;x3UQcX!V!a?gs!>K*@a{{EG!hwp%)s`=cm9u*oRpj+7nxMiq zo7fR01%B;VXSLS;AN=4f5nQJb{%ueIqx-8H$0h@=%&&h4X?X@&l~xc@ysb`4C0^`f`^xhSGs zzk}i{bxkEm=-r4<*8{l{-%gM4u6OPdI;XcAe`LE{2K@Ix7_8?ZfzHE2-yiO3<>_O$ z2F`bG5?$TtXQY+**lK@c{g-ygv$I}0l-fpMSK^Jwd5lf@u$9({;Zs|gHV zK)WN*EBrMu{-hY-7bR4o6Sj{_sa}B=L?>`*1Ppj;YXii>bpsYfLs^k;!iL{;0B3jB*v5GUYMxrmv|>#1Fdc)>Qh@BTU5=k#MV zp|(~VSar61lf^z=v`>Qo_`1bc# z@~FtdU?9@9URvH_^leS3SXcuO%c=`|aUr+{fi(}|C+WK6%2pmQ4}4Rvvanvc>Tyy1 z+n}XNP5k$weKiQM+`)AYE=DVVF<#xwKf%@zof5tdDLHO5bLNeYYgHB$Rq}5cw1(K> z@-TN(K$xv&+R)g(ww($w8)LgpGg#OHj^L6Z_G=NsSG&^oT9n{%ha$A#Ty>-{1}Pxe ztEm8C`iJ0|#8&b>at-l%lOqu~zu>;;5(Ajp8qlz?++cn!#4^^vNYUuqgTn2CI*Gsh z2|3>qy@$|rVPQDlDKe@aQO5iIBFhQ!_TJ!7TinfHVGGuf>kadI zvh>@S%H7t>l!_G`!hx}}`UfHOHNPH`7dDX7zUIkydHX~=ASyVeWxbp^wKbZ+!g7PL zUx;+AK~SR0?ZkLCyjmyX7<%x3vByJbUW@xCDdagISCh?CqaM8**xDP7{aS5c;km&w zY30}pty}^qik%Cb-WH;KiO-@;uJP+12v?b$5|T@A1!cohGk79iQh*TkMmlS~c9!v7 z^l}89uu}*#pw_wOcx}ehc^0Ezp>)y)N$I))#9^y5q&Tw2LQsYsc@}=a5 zLA&!SN}(*CRd-upPOc5%uEac8DOO*)PE{+poW;>oIuGc_4cNrMH^|k_XAOkm14CD{ z##|IoCv<}Fl^uc0Z6l6Y3*1UPA8BuG`Z1WUQ+~~+)ee>nq&X|bsih`%)&i=&zMjx8 z1y?7qZiYtvh1=r-Jko51hOT}t{R%svqeU<_axd3XL)X=}^YXLv@znw$70gX`=n=*| zuVG~+A8@0pj~%XBz!}7`6h6kTwSeKGTY6z@EKnbM+j>HMMZ;8!ZjMyEBVt)d!jLQ2 z?sDm8hekPBMAqotlpgFO%9p{SJD}j<;o@WmP7em?FZj;F=oNx>o|tGCsUIRUczFv9 z?m9R@wXtwoo5Ik$5QU4Q2%VXdo@o}l-KB>Inp;AJ11Akx_*;WiqA#8NM0BD<4Jw@W zdS;vP%0Mpu{>xL%t%D#RWKH;5cD{}tw(DWL@CFu>tlhPRm$AAA$W8uCPr6I&yKIr$ zsM({>-xuN^?6UFR5fhU9~%hxaO9TACNN=cW7Y+7VI_ zzvIr(FUU&m^s+3V3o1O6WviSd z@Im#o6@x=y;Be?V>}KHW4T245?;kYVF!zHmw+&4!tQWCH0rRx|oD~<*o9f*FyLj47LYjtN$`UG*$~MOK=kUGD2Ws zzPvqi`BjL@E8kt&?7VYAA9s3-dda7E?b_3sHz5An=A)HEugk8SRHRm^uJaf$9cDmu zxdAL((49m_X_j%q+@QZ)1skUobyngwApYFeVVqO>`m;9QBkJn%YfN)xCs*KO^jXj< zRyK}yXcWNFeNb1fF&%&KUbb5$2Af-ovh<*OLk!2n7IsoA*+88#RV=}DEb?T z#$H3NstFNpk+zCXKu-8T*PARrf$T~wF^jn#{TEyVOw9Tz%2~Cw;dE^uyXam=oS`Em?qpm0fNOg06izt^xy+OCgn=*H>3plHG%*> zX3T08(pmeSJ^mj10r@~URb{H0|PrOy8mk+usVq8R>j>xM=OvD0}iXiKmrm! z-m%YT;J@HnIV8Von$2E{Zl*^d6J!;zf7l~jAh3D_h^^PG-+ca6iEL8(*{K_6?$bc{ zmRku+9;0Mcz3?XQhVj%Duv7wXhFfModUwS@A$Q9N*UfrcU^K{Lxa~JhkQIYH!k2mR z)Kdk;{DV8akJ3R5yFe}aU?Az;vUwMxG_w&j3kVSHY0{rkFwq>A9r>W|NAe^82l@_ReUY_kqTC1%$z zL-Kks?bDR-6jEV-UdW-d>?~c?CA2^RdTy;AVUF^Kf@x7-DtMqX6tSoZdLVG5JGo)* zn|z7#B+nkX0cz|h$tt{-NR76mR{_ML4rZ|BpMk*|E`VYepUgczVO@nNDglSQ-5CpR zr#*Au>imAEjUP~q#TywAMc zY8vSz=W-p##STM-kCgMnH0iJCpqOYhJCaKzHg909v_>Fs2`>*Fkj^ny%<%ZgGtn-6 z1uA^*@QUDTfw@`=A}Z+D&DdgWkMJ5@M6cp?t(?49vX!b^w0k*`wPLtwxb1L~_{I^HSczULw!PXQDv_semS%zRP4o+AH6mUF@p`$n*JTY_dd`qXhf zkdWr&8-&p^3G?y(Z;nB43P)Aa?H+xs zQ-77D0GX=_qHmZ!c${5ZZgs7p24sA-mH5z+>W4aMqQ_my?2d9```}lBg~opaxL6|v zcD^oq^#3JjSeyh9o@I5@G)W#&%;$Ktzj}dy7+BmdANQ~d8MGwcpl2%>VfH|s0)thbdeSM8hWWNckedO{ znq9tbXN?BXu3wD#wgMz2e&;-5o4#DM8J81j@iW>@@D{Fx7Sw+Sc8Y-SkHu7qxsrbN zZw)De3T=FEc4r*gsg*QWa!7IFcOO*9yT9q|uiN4Zx2@HtQ&TMs*6{T#puOOX0e&7^ zKO0|+o?xG!wW{|J=d7-UHN0T?vYdjrSpZnv21fl$0i#tN>Zg3_(bq5o_ruXp2l1!= z%yxb_B6njxEJQEjI#9|RsLg0>NyWv+Zcw^TANU9xKUoguwWF)16k6mh#DUS#2wZEuJu$V;X^cWz#YDcI#V5>% zv6Bi`0fZ*`nh>$*gqcS358+^qAYiv&eb%?E21#^I>$Hq=y!G4%(R)tFLt#>;UcM^U z@LZlA6PWVgO_5W3S@HMQs-3g*83?KT1p>GmGUl4S!6ZEc9JU?PW&#~j^7i%sVM;EH z`wY?DR9pILnHcEob|l87S?IS6g247W8_2H4{4D1Sf>PFgzCe|M&N$7DdAaMuWit}S zbRy^&!3IRkJ2zH>QNw__3}=~=i`$0MX?3jkPg2U?j$Rf|fRl2}tml=-H~r(y>#!$qI6zj;b6S6SJO!3f!W?p<|SH?tUPH9pQQ%<-_p ztv95Q39@+?IrmeHbIfg?Qs{HEu$tH;QPA}uqI{G0nYzD?OQY0!_*^|5uQK*d$aToN zC}bcYfBwiR8&R~&*0wwEeO&x2WOZx~V>|>fIcgCKRu=$^CfyR0VNLOoOFDU+e}=ON zn97^%7q~vt1wyG_%7}*|w^}Z`KGlrG{p!8VlN1eNB|e=t-G@bu%2d-j8_%ZehE+jL z^bGI%asLv%QqDQJ!jI2MJgcK+n7zjMtP6r?=-sK9`z2RW8k0y1@2|wk?d0t1EOt|k zg3OtY=`Sr8Ae=m`X;0kT8mb;MKT*AVJI8hG`*K${f`O9)2n#rPc!OyL@{E>qO;=XH z#A>O=O1uQaCQ5wRwuVNL?>63|vn@s4aYZzYXN-eccW3Uj|~o;g+|%`6J! zy;aQunU}W9Rb~+O{VcyxuxZ}J$P%*RxW)27Nmw;D=eFfO(@V41$EvSn4GdmdRAHFg z99O=L$w<)aSZWOrg!H9l=*hZHxsyL+Mm)9TPh)S8LxYn8XAA54Sqp$94(Rx3Oufnu zhcRR7)une$JiJ|eJi)Qk5YhKtWWH8gASN4gFQSRs{wB!BS($vYRL{W9+uzB?4(v4X zb6ZNi@Op4Ou4>P1t+>{JGl?~a^&pTEdnH9DpJ-~G6DRy+&Xf#PG&dZ^h6|NN&`b0N z@&4r-r7(M^hV|Y`7NypGq4wD1tw!kuZmJ6JfCX)$fL}P?wGFOQ{isb%Kk&}N`tAIo z*VYrz?=sbE#L=`WGJ8yRM%3fkfNQBjkgmN z)Ps7{XRqp1Y2T!Eu44M^)Y}0gsL;AkLf~xXMV**Njd;PIqCVJLOV(}(9A<{IB`ll) z#}o*|PYEb8DxWa<(eb5TdwZULwiAgA^ z?~ge`4-nskD;8wMC9<=ca6pCUcr||3H&LmbV@PdlchWM(PK{Z+B`ktqHnox>cA4dI zxdA7Y>KUSGd5d39Lutm#Te`IEe8DxlEx;52Sk{FwyEA{Zs z$!@pPN_TbY1YX$d1WYnu=L&$cqX1_@ibD%5vs?w_t!!KzywTcZ)xa5gJ2^lZxSAM; zo39686{d?2mYHkO))9RbbKvnS38kFr`BA%ciSMg!pTMM)kAR_vm5(n7mAX0k_^cce zYe#y~&Nkqcvi$=49pkzWTh<$?3E%*wYz2hhijkd3Y#2;!^iV+A5pkh(;>$LJ5~P&S z0tQ=1TV&Jr6z`8#i;ujTb(oq57{i#!ldDkz$QXG7U5=IU99JMun!r4vn5fV=#&$P@ z6+0((9Ux%Ii@8c!^`@F3Xb+PpSc8KZL|t9g03;FF`T^Rl3j<6O)|ptFHnqZ)NL%g9as(vcfOi2<5KSW$OMaNCYY4nE9UTK>E1CM3i66E6Hr&xSA)=4lQaO}0je@x(T+5wTOZT@XfaBy(6p-nLVSw}Z&?Ha zSV>0{{bukd|}xr4||D>?R{6~R{hIjHc_HFM(Fc0uh#;p4l{vjnhj0C^S3ARw$7)CBiYyz&*K zzq32-`9Qb?;OxhJJUyH6h;|$i{gH%_xG-q3ySxBjMU1rx3PDSFc6;>3mKeE+WTgL2 z6^|~c@O!|Qpi%NCs;RP>;sj?Of|QOGJF_sy#Yf<86D#I61T2;&LikSFKFwP%)or9h zeu3;F(1{lp>&RZG2WsXrwTymuI}R+#4OnWWl)_Rwm>!5#1X!3?SRxLqGN#$Ny7H=l zS)4>zAhv?!a`10{em)ciTYSiYiWVQjFds;uhyVZA0tI9bfWLTnFa+v=5E1E~Xw~R% zOociED@{K~5=No0V^bkZ4h~%JXBM>NpCIkwuq1b{TUq%d02v7)sFv2$?AfmxDGCe9a|qqKk>^@O2ugbyCo= z@ZCG&h>3a=-s&Vb%bc4ux^QaxxsB_Cqo?VfOn(%#PZe|+OFRCJxCS|S^7;JLsj1m4 znE!`KHf9dCn2`skTt;LN)T)E64EXJdS;!>1@0#Y^q&FjjEuMVGmt)?=ITK1Jc14pTu;_Z11Z()v)n2zF4-rg!x385XCrj=bQc)COmYS+R)i9WnpoTB+{pN*fsOx-X z+nabkis#I*Zt;fiNW|A;`9_r=Tw3q|N5k_`a8f`KLIg7)DKiBD9l`cpulRy^59U)m z&X=g+ZXWC*A$a5p@enfy!43pn*me$)@2~WgJ;^3zfBOHd;=9@;T1AO4MAv5_&_ZY+ z)N)jEl%f?JL2yn=P|(KPRlseDGX-os+yp&coY19$o(my(AHn5eMDr!YmVhe-z$*w- zA`&nw2?>eeZ~{$)Izn~n8G#oqz1ToNKme`=z|~%BL-s|`pz-A**oq)q0*Oz8$u3|* z0(JrB-5B-fkax^YwWfbm#mCP+dAfye_XVrKM%$oZ6C%+tUxY5lde4d}GWORdsut6=+s9k=wH*x~*sU zGo=XbrPGIGr;jo3Vg73Jm9tivvVXoXXvj9%#aKwmd*Cn?X*YbT_gh2wak@6tJngJL z>~6uQ2x=h4CV?1x@mGw&WzQ8)c^dy|C58e01eaYwHAK*VL|AYj*cK)|<1)7ZF=uPX zYT)GH4um6yAd^5!2qBO_n4txkI1-5vT6{!=NBl={TOr66B{KdR5_vSWp#I7nXT|Gp+fV$BWQW zh4`V@pF2jb*iRBju_a$Ld5zz@_x{d#KFK1B2BSZ3)cOnwlS_sB3XUN!YSkOJ(IFiV zM7l7!%}l*O#7^1m%&s9};ys>J|M{4_zXW^d(U95N8(!H>$+M_vQPf4>dOYDDhS5>^ zT(?VN4i89La?7PLzP&M`92Iy=PY6$CVrY(~o!02!DAWMH(?KazlenE@*U!Doq(;1@>n1D-`d zGVtJ%fC4g58v&%?(ld~O`!^>8*MRN2V(LNy&t=GXu#1M7Rd&v8{H=Dc#jg9V-1*;z zNyE0zoAh7nd^KmT+D{aEx4^LWT=19pmI#`yUJc)W-4bY}^_hXWXmgd!Hj{ZL>t6`a z;!WC3f~0%Z=k8nDJf=-skxrql4(^_dArqI%Q%I0?=On8-}@79>NKPSBJsL+BChf#ydB+AKd0CXgR`!Wj|bGu9#> zKy8WSZn^r@AlAz8+ueBY^iTJ$GaoNG8%ZFQ8g%&x0!3H{1YW^{z$3E~=4OP87$%4)&Y zXvYeU3vl!RS84`9W*Gt@A&e9fLP`n?0cj?*_$Y*a{BH`{jclt*Z!>cSglz+J#t~Ll z`E-8+*Zn(RdbB?N^xox9Djn6kJ}KV_#u~vKp^5pocjdJ?UU1~Y*9!K`5lFgYw)Mp1@3B5TZ(I?P4$YfnF! zL5kT>0YY~{mZ>3t_{>qrk&8aCd0Dp1@7{p5Z2)IOQp|8kY5^&xicm%=VFFZKROmcrHw{rOh57`Q#YUd9Wg6>6X-#%FSO=|Ar?^3wD<@0YwE)ZCo*>2 z4?MTSyhW7G@=X%6+G+mVmqiqrrl@EcVHR&h53xN>dq6rBMR7{Uje?aM6?B$`k{^C&OTf|3H?2gE4UzMNGo~-f@ z>LwE*bz=%cvJ6ldz8TK_Ijll;**0xnmrfw0fsieDAVrSHsVV79N=tlqCfgNq^Yhbr zSE3ywwmS3Q@^^tTpS%2-?&w##2+kWP+nkG3kb)Vn2fbvvV8^Xho;^L;QoG{^g?D^o zzDzlutn<86=D7i?BC2cRx+E`~WDqDKVj#aiF3E2?M-fPVGyON@H$ogCf&cdQ}tmgt!PW^w$pz-b>fx(7pWh%?@o&%Bg3Uo@rk8 zMX+xBK>Wfmg;p(jr+ng-G;;)Z56orkX#GSCG37T3g0$(FR+h)YoF}qA&pI&e{dIKo zB=h@G?fl$E4uePWKa|=?+YgtwUzI1wo4e?mNa@BJRFKhak&JxoI*!|B){Y|ai0j;T0W1GzJ6~*3+ zU%MR8`!q;T3tl1M>vhO&D^2Os+egpT3UpHEopQ6THNktV%}S%2{w7#19WL|tOo{&8HMIrk?Q_P89whV z58r#r%tw*Y^xY-1Iz8Q0OaDPTF7%!#-{Jg*4|T`3$RF)A@MfDrJh~NVXMPAyPqv++ zqi1{C7wH@Jrd9lcqjOQwt$M~|S)R$RWs;hmUxOM-b_84Ve$30{6(I^>v~H2v<;H@V z-tu7Ytu}?K;kk)p)q@2^zM{3-_q;f$x&60D>!0#EsI0KPuBz&)mczpf^7COqY+>27 z2>UU4>cfl=v)S3&6~_6-Z_TQL?hu?q?nk+|m^I>ptH^D*)f+shBT zbXqc|)ZTrA+j+!nIrh-$;fVYDOQ}zhyz>KFEuGXaw~@KnE*I=|N5r4ASn=--_oLu z!KI1>NMH;WB70hgDnH4qT@2#d#(y&-^w$m%M0g?wjIGG<2t;^Tj(wOdECA*NbBEc& zJisR(m?aDe6N7&2fT?H?6NmA`guu7xGJco{R3-sFS;0g>xfu9l4-*Fe?ZLAROalCs z1fQ(HHv)^0-C(x4z-PE<;Vs*SXh$HXLI&Ph0u&q;sA7SyiD*Zi(6ip-b(r|HUL|GM zYlgaf&Zd4r$x~1KNBdvW@+9t+YyPaDV&FgaDc`SXFw@LV{e>wJ*>=wQ=RKDRY*EJh zW$PYrk2}uqAC~LjLtc0vGX;<8k0k$EkBIujhJ4f|{WWpA?Dzarlgi%Q6I)My_FzoZ z)Dg2w%gSbnyh@u%0`4RYCafj4^3ScDJ=vHsP-ypEHMu4v?EI%#OWjoYqhVrKw#I%} z^O@aMtQw5uE+fuuxj6IkB=_3{y);Mi-^tcoj&#@d*GHCpX#3q5Mie&~B^Bh0#8*8gc;}(i z$t!qffK9w|hfhh%2*06Hy|L?D-v3ibe7c{X zJ!q%O_3<;x*3(k6BoWTnuz=!^X@Y$&BFA8#3L(k)&5;hEbJ?`uvg7`{De+^!k5)yZ# zVDCuWzM!uhTZ7Kb==aIOneN`l&-!52<}=>yC7C(>l*^32qva6U$Kx-BC@g%b2_~`$ z3@*ChIegbLiwk(i$M){yodPB5HvFUb_a&P;*-q1+EkC4RPL zzh`Gasdu1U8gVUsYhH!rME#7eLw;BCbVr=g8H0-{Nh6i^Z7t%CLpBfEmdy7sV7`Ye z_&T`Ik*j5X*Cc^2c^~jGeaWQ{Urtuic9fj{)H>-Z@l8p+J@(e-eaXTIAkg@%5uyki zF*|X7aWN4jzlaFZp5NL=#0q$oMI?}RB1lnNganrVMb+JQSeNiQs)Sx#oW0tu=#d{@ z%G%L1oWU*+Pai0t2H1Pq(~IV3OY|>(gg8G!0`kFFE%h4sV2lt32)(6e;DcFmR!{Z+sN6$rWSp%A5>lny=sLJaxoi^pR_knv?zQ!VI}|sqU-} z6FfcV9}Su3dM|PxBQ+j-J;~)4T&SX7v`d4|U}lOkqlqAew-FUtV2u2g6Pu7y-Ei<} zF`UI#Id|mIr!L>44T&UrheL$%4(sj99PSpd#M2}_JjH97QZG_S{ZFa71=t<^ie z7?O70X7YK$dbHrj!`|**sVhIu-pj8~vAd$oZ^CQ(GI83q$L7-+;k@G#{)gYph)$Me z?6VGU*JcP&4Y|7Ij6^Gc-3v*(;*>`Gfy9;@r5z?@C9n0j2pIF^52U43;4kOsDJlN&Z$E>G*tW ziqRpGhD7}$lIBlipXOz|<}$>xe&0MB)nT+>_p&m}N3N~4*;1+mHXj4i@+|Pl@w#8L zmW~)#zx_yO-_&J<+NFaEY{@ocq&iYVUn)zJaOEmPV}@|nl#urmyH*|LG=56GBfCO= z{^=bf4kG@RD=hJcG^6*-(d$z6QPH)nb;sa{nxo9c7CY-(wdlXOs|df4?Q?!4pjTUc zqpgYH`M%-7ajH`vF5P@vARz3_E4W?#{jNrK2~onRk9P@R>XDH5gK)L{b1+yT+PyR=g z0dS!&C0+PdqFxXXR&?k&?2 zchiZkK9qa`-;R`j9zz~vd*XQV5l+|gY_;>_j)yz?G7T!p_BNHjD(1TqOj_P`&g{_< zM#6D>|1lwbZfe2NQWD*^D#aR$?q&gezf#AU$8IxH=DBpU$~WIh*p|85iUwZHv7zLD zE}Qgy@GUX<3-h2tHQrJ3+c`7=x07W){v6~xNX4RMygM)0`yI7ZjoRVv$w`HTh*w7| zk4Eo&wZGz&#aN6^B;)5?L9?N=`}nU2o8GJ0|3~O~6~0VGWqG2+@s6ypy6(C37jqIn?TQ)GCH34K+4-2fyAs0W7s`LVxoSVqm>Pa`^5vw)s2cAjn%x&K9dig9iM0;2tQ3swGC6PF5U_jqr%AV_ z-Dmcmkrmfz?2l56X(rXY*IB3_=$rD*{d*v*>0TO(BPkjCb%Y~(uAZcSo2@;2?rNQK zj%!-SyO$?VE&H=TARj)CSnZPfoBM%N8LbmY!18si3UgqFOuhM~@Q`N}Zfqyi?tg#j z0rD9~j0oZ&T3fIX08NC@$*FmFL500hjIm7OI**iuLcQg(-zlp9cX z`UqWw_R=#@cJiAGIIIKT7ZH8|jXWzscq$@184;ea?C2A~2X-Rjz*2K~a5~}jnnNpZ zTMru_kPhSI2JU~e@$?aJ^mRkXE(5?ri0l$#Wrk_O>|hRHaqSA0>7HQ0?h2OfHn1S@ zj>I< zw$aW~VDJ9#P2SJkBL3VyFh=%hUxP|<{)|(vO#{1VVXB2)NEW zRZvX0HFMJOhoeAB&YlB%Tujw$SV*1R52l?PikQ7~W=5Is?XP|9^`al$xvmVC^GvqC znV~38-<_JKMIp20GfB)#mL{Pc1Jn2TpB~D-rY1>tpX~1a%U6agU-i3>p~+CF7rBR6=6`230eL;*z4h${S8w%@k0 zs-Av*e<#81KDh@JyQkjT2~MPb%{4#Q4SSiZTyHj$T1cv)N|heQ(hlRjSCLtGKq+9C z=>3koybHm>>_1dfSW17YaD;uy{@&nHqmerB!7q?;;=Oo!&<>6HmsK2&ek0{Se#L#* z687F{U->V@B!TAXzCJ%Un*^C>S;pEr4Phqixq;h+*n&UGkyRY{S=3r!(U^NO)5ObI zTUF_fd`qVPA+j)4m)}7b8tdKMoLlsLXvl+gpCD0moCp*hE96W_`EM((1)l*;w{Hwj1$}W@rtJMa&Fe6p!%W zHOOhRBK4mk15;f6yS8haBw^pZIbPE<;P&8_ z(_~hs2hn>vh0pIz&hvzjlzu#CF^WfIW+)%O(|-pI&{uywU=jjC5)uay#GrvNJos!* z_>F?_>;LtfTX7)?MScYlQIK;hsU*M2oZB1}MJw?7c!8urvn2zcG<*+a;Nz{(NB{2_ z_=v?!8*#9HM+%FHilQU6qQJlhk0R(tM96<+DZ-85Tv&=Q|6Ph;XJ(_99|*vFtId1N zMCM{<^16U+u~MuPzi3jw{0MbQcJVc&dQnIQLq+|Z3~|)hYk99}*y^r-&3=2nL({Yd zJOoG%_CBSNM}ls}uQL<>dk^0jhEunae>XiL&eY;3-0@yv?GefNFFx#+N4eOAAe8+n*H z9jLt-*<#BzY-4n-D=dBou*giC_?6Yi%4^B$J)=BNwBI50i~Sw^bBf15wrl)$AI^AG zQS>=@4;ga0N1G_&`biSeu|TG)5h zLLGLkC4bKdpwz&+=Isj`Df3w5*%^hSA<8@N2|FH)ax+>lPiFJx?TfF*kI#(dnOi$P zlSw{%sOxFQj^_VsM&PpfiT2|l_z`0KLc)+~`)|kyTmv>RYjYs87M-jVo&t0qBK!=N zWgCu=SvE}JARBZc$$PceNLNE`!K_u#H4wD5v$p~_?QO!Y)y1-F4K{1n5|5nJBOkc` zF6}_L7rsnZelD9w)rX6%Uy!%k2nUM){4jB2KvdnmXW!!7_hocCu>L_&HrL=>-K2}5 z2??JbN|E~K4TDpyvqz|7{aa;azOHk5(5ey2qdsSTRGW6i-*GIuH4-JGOC%bgpB!1z!GiJPX*MAfAdtMMy z=lN|^F8JsA@M+;&)|MH)CbHw7o~GNMJvHxa9s1^;`j!Ol0m%slbuXK&qik+X=kxQV ze}o=8=X^HsqFYD*`8noa65YwO_Y29+MHkd(GhQK(kEpE<%Vd{et>zlGo%lA}aNNd> zi!xY1(!@W{tAr?)GKTJ^)unBZGrB2MGQ#e)Ke^QY@mR!k|2{9$J`3M8b`qOb|v`bLq&1xZrh>{J5Bz89&MetYYE+{(oxpg8>TCDJmvN-Um=Y?o1oPOfU%|ES#X}3LY z)1p-DY6Sfr)%8#XXYLcy>0wq)q+lPdsE~IvyK9}jcMsXLs5mPg=|unb!D{-!u;YeP z7J3v(uQJqyTgth~KYVrJND(|>LCq$v&e?Xlo-)(mz|{EEDbJ%l`@T5eNSChZg@;f- zK4A28w)`d04Jqlq5S~u&r}Rg(}|iT zMYR)9iXI~gRM_^mgA3E^IU7YH)uDR|EoZ-?Qm|qKIQ7>5G2a|m8epppI^TRjyMQPG z^53Oh)_}b-Jg`w74+sfDDd}?WDsyrk&F=PSjeql}x1QA~#+8-V-~T`-Ps`z>5kDL6 zs))sZ4QA6++$rT{Q_8{Jpm-&Z;UmvW)99PQo<9VyX$*O(N||(2&*xL^%ph&D+(kNu zc#`nJ(7bVr*`L|>`hrElqAo|SM@W!f%<%6$SJfqYqR3XtoTyEchWtMJjvAQFsan4Z zrT$`-gT3>=ZZR?&O7_xPj+hLIWCsfVzV@26uY-mv|EY}EtNyEp?aYpzcAZM8O7EL4 zVzQ#t)G;Y}*^K-eLT>%R)diMI7TFQv#mmE9&`m>mC-`C38!5^6Z+VDb6Ih*=c8<*G z)4rZDc~!IjhhBV`JmE#|uMr;bkz5qMA8_VcK&$q_-2dSPLLL_xSiAqt8o;N8)z9Bc zu{ryR=KPVD40p=MYqNK;GUtTfMT9pLgx4X$Z~RA0?-e^jR&PDjHZ*{?9*T-9i}5QU zmB8K*Q4s|sAA)zmWM{`V*;x&sqn}u{z~*wWaZ$k)Tm_D)aX`uf9wF=vW%w+DeFx>@ z@(+mwvR+8!;BtY`VgbSjA^CT$2_pNTSp?Z40N~F@5P@G{0gGNUf<3M~%oo0-dhUz< zQVgRi9ufqZU&*rJ=f6IA3Tx6Y z65uXSDeIiY8%?hreS310o&27FWiRsX9{k|3_g2z}B%`Fd?#xwBhws|Iw{tq@_KCE- zH%f-N^mitN}Q$ho)Pwl z&^IuJJB{25arkm{@*efoOEqp3Ewx;-^2|G5+9(|jvN@1{OGj=(d(244u5+%?iD_c! z^^NJKJDfvb1%_R=C&bHCq*X?#ex|nhyfykmCcjPZqnTHI0ZbtG<_nm3pP-4C^xs_u zE;!3@ST)$rG9d)xvbO^yl96NiGY~7CU-&mkQh#Q()eckZzIC0taPOhnZH=}ew+3#) zI|?tO-h=r!fB^sxB#w0;!rKtxt%&dng6+7bF34{MsbvMn|6e2)NRG?vC!8YOe?;f2 zHNmf4`7@5*s-fnXoDWnEaQMKSzp?!yRb_v=z1fs^Qtj35x-IfXV&AhK2z2xEQH%+_ z&7hheZy|8mJMf8Z+^33|f&FmEv_oO3uVR1?_2hdKy7HG@4o5$IZPYz`l`bHNdUwZz znXf;J)I(Y>?T@)Za`XAf!3u4*o&$8<4R24##ntCuVkRX#7ID7E+-B+_m+{?%`Ccv8 zZFxWPw%K(2_IW7-r&S%Jezcq2aMW4-r-PS!U?6WMftUAw-cxyb`;Sdr^raRo-0?hB zlVS(&1O4gNKP*nFlA{b945b!X+DW8Z4U~q8tgcJ~(%0YJ{?R#B`ZfIQ;0~@GN2H|Z f-r*(xeCn_@;=@^=(nrTRqh`*N+Pd-)z+nF$c!cNr literal 2171904 zcmd4ab(B_B*zo@|!%Yl5bV!#VA&oTB-Q7qGEiFi=C{mJ2x1=DAgoFr4Bc(K`bR+G1 zo$KuVWk2ip{P$byU9W2${P3M??|trj3WloQ#QR_WEB(LL{~7(6TID^jT3DDjVCDUK z_NAA-@CE(X?`^p&Hw=?3U_q@{X_y1qC|CqwP=w2;(45j6C>%u$FA+t=gpnpKOnm2KX>J}B=<56_PovV|9{Fw z_cGP(-Lqr24!!(|d2iqIV#)tA)vxO<6Z=nbri%3|my`c*mhXR&A>?KHxJ&mo@_qk5 zc?<~~rduB;A|&5=8J6Em=ILD|P2_p;<@#7Q2$$gt13YhGgy(Hc?|D<>dETAMo>yKT zbjE0&_jzp3i}Ru99V+X2bFz6}3F-dx;a?f#@;uqdJhqURUF_dY46nU>+fuHO*OfMu zHcB*Iu8_A4{ed2f;>ZCZFNb^^s3@v~x}&eqkLWzQk3#Z}73>#@(iz3@ii(1JuEtAy zqw#1p+J#Odc^5TjBtivH4HSh&pebkt+JTOvCn%Y`Zi7cu0rf$X(NeTsbV9C>cL&9k zk10XRhKiyls6U#7mZPoc5PE=O#jt1OMwL(#Q6ITN-gjsz+JR1?$0&YGyEZE-hH9cV zXds%5zDK*zX><)e6J?fn!;sffz76ylnu^w4b%k<6U~q- zlyAk5EWH9|ZT80)2prqAI8kYK8is$!G&Q zfX<`GC{CokgVZPoDuT+R2B?y^ji`(x{5)6S+d( zc(epSgw%Q0}Vqn(PFe2?Lnu}ee?>&mme1eXQUJrkSpX> zN3BqAG#M>H8__XzRrErxke4vIRXUUxl|gk;TQmYqM=Q~G(P6nl-bM5TMWnDVO@p$d zLZYg2g}lyaESf9Ypf5d*Zlf0{PD(qM2IWTOQFGKAjYA927IX+*K=)9bRQBBLs2Hk& zqRnu!L<74p783(-&LuqgPE?`;$-oo$Ix8k9#=S}ytVAL=I>r)>^e zh4!H1q6>0`ys-3EsZkzO3AI7P(Gs)^okDj}+zj@NOsE*DgLDuvZ9ix4f;|vO)mL-gf^mm=oGq+yqtDze3S=O zLv2uhGy$ze`_V=88l}!WBuQ zuh1;?1Ns?VME68*^v_`B7O^8?{Fx(L%Hjoj|uxcmaD_e3TaDLlsa%)E@N_ z1wV%vf+nEZ=zFvU9YSYC!E^8cMHI9x1Ns;>5CxxmdeO$AnP?evJ7|Z{6?7lPC}ht~ zi^`zd=rc4{6g&sh(I)g8I)@&jh{ASlMpPWtLp{-0v;b`p1wV5*i2g+PQM4j>A6q+syo`a>LO>%|2ljtUTgA#sZ=dz(nC<+Zi3(*#IMs#1UkQckC zRd!SwH9}EnfGBtynuE5Ya-tHbK58ZECRfNChrUDW&{1?9y+pA~ z+vhYn`T!M1RZ)A?Uo=84`57ddi&mlo=oGq+?xHs+qKw@+3Ce~Fp|YqJYK^+1foL?E ziWZ@DXgfND{z6Ys?2ql8ra+lcK2#Ak6Lpm<e;vXfJwzVpg#GWkMxUD>Mu(M0?Rq6tAM)FE^@zqR=q31RX?oP`pZZzk;YUnupG# z#Fg!eYG@?dg6^VNRqTpvs66U`zCcUR9&{CXRqcM6QAN}lO+f3=DfCnntD65dlw7_I zlpPgCHBn3SDe5npAy>%Tg#JV?QQYcwE)6Op3f>1BiaN*@@>D}(By&S)U|Mzln(khe>|y`W0a%&Ht}grd+;^etM6cB1p> z9(se4G`FW^Ld{V>G#<@C+tC&D0wrl-cg}^XqmF0{nvPDOYv>h9(9-Ul6IBwmk}Kp5 zLzB<~v;&<$f1~KF>@KNMK2cSFN4okZ8sGZd$_JtGCmD#|BU$g6?c zpq}V6^c9+oHlicw7J7kVwy~$BMEOw#)EM-Xat%q3f|AxqTT2`x+Qugm;C6uomEy; z5PgiApw6fd8iFRGnP>w#hAyGEC|P@ZFPTw3R0>r?jZjbY6N)bRWG$aXZ+1 zNhZoHmweRE+u%`B6z!8+AYf&_px`twP(;L3A43Krc|7PWE2XqkN(&a)rE(Xf&FSHla)C35w`! zcS(cFq9`;1O+(wzG4uq*?qYZT5Y~ihWeo?XdAkS5_Gfs z6+tb~K=d8jgnmb{y4zhcp@wJ*+J)|*w4d6wwb9pTGrESN_pmFnqK{Ea)Ej*%nk84r z+kg(CE9gFYBg)a!Ur|H84Kx7FMmy16l&Y6qkq=cyQD`(;h_;A+lPl!iKrwpTmKl{n z4N*5V0sVlEqlYM>kKH*vDu(K#E@%LnfM$u-$`$espiAg3dW|Cc+7*RRUDOdxK&#Mh zbQE1c4^h&7_KX~;3hIuAp|8+1v=se{&ZE~T?q~M2Bq$BaiK?QeXaM>atwvkXesmta zL6QCK9TY@WQFGK2jX<-}8nhezfkFf98EH{j)D;aubI~Sr3`P6g?pIh;Rj!cN9t}j} z&}#GxI*tBD4^e2K-8m)7h03BDs0$j7rlOVT7jy|dM~Md6b917KsHx~vxkBDZGzBd~ zJJD%$2SpofcS(dYqI{?fYJ$3;L1+S+iI$+P=n%S$UZZqF>|NzTl~5}*1WiM$&;fJ{ z#T;sP&W^C|aGj8V2_5CxC25UPl3p$=#WnuxwfThXuRPjm;p zMe#@5JII6zp~|Qc>WxOA>1Zk1f{vie=)Nd;&AdX1#@Ln$WkLBw!Sh@aRY8qV8`Kl^ zMqKo*U?i^aHko+uqusOqh4q>+KkSkrzm`^-7g7x9~Bl=kxM?8pq+~1m#AhP$kq@)K;#L z_cfY{zDGZz9q14`i*BRnuTjd0c12E964gg-P&YIV%|bt--RLaxCfUsJ&eB zXUWhUv=04-t|M=?(aMn9oL=udPLJx8Ibc9+B`9m(D9m6eXT+&-f74LS4`pG!rdH`_VP@FAB}DXCxBkl}o_P6%5RH!7Xg9f6-Xsu|UTp{ng ze0xjfePqk4xpPT)?B+^D)bR*h`OTT zXgXSf4xwA<1&TS(o|Z-wytZCc2pKMK)uiev>I(gmr-b$JtI4+hMI_ix6@9vA)?^3!Bn(@mu^Kz z(N**YMSgG3O@|7i+9(PQMdQ(Iv=aS-{zQ*O!99nTTO~u;P(k!Ds)d@P0caXpj5eZQ z&;|4e#aLnQB{|B5@}n}S25NYpbEUnP+^8~YhCW3T&>HkRdWfR0 zvTsB0p?s(!swe6!mwZJN%|YAHpXfD8y4tSIhpM8^Xarh}cA-n?4NAMl?pzerL+wy6 zG!D%Z?T|};wI1C=(SNWneGe5ywNM8%3Vnx`p>60ex`!gy+S7`mE@(7bh&G~M(LEGv zo!u`Fs)@RxiD)ajhNAyycgc#Xpq^+Z+JeraXzT4R`A{n~2CYJuM9<`szxiQe!W62`F-Z7H5!g)qD|;9dVo^wvis#grBOrF5e-E%&`NX)y+tX0wrAu= zRZtt$AB{zG(H8V8x{tiw_KcJ$KdOXUpe|@Ant_(0z32u?w#S~934Mg>qdw?Mv=tpk z*U$?T+H229g9@Qas1+KBzD66-5p)SXLy`OJX<1NlR1LL6ozVc%D7obK<)W47S9Bgd zKw-bwwTV$yR0LH;El_v#85)kJp*3h1I)QGXu>JO45~B2|AgX{`qJiiO^c`A^dfXG!N}Sr_fdO3?=@}-ob~c1geADq26dTT8eg~Q|KysisB!(=jK2kqnfBC>Wl`U z@n}9;jdr6W=qh@PB9GX6$%M+H2B;GnE1Dx$$lH%@px8(4OS7Sps2Xa6`lG36IogB{ zi*Cpz?@`CBGNNLrF6xE860MLcbwWeYw`emugRUX(lszpA zs*1Xxv1kd}hJHtXp?^`t@AixjPzlr!bwp#)e6$svKzC8h)Ao#%=mS(7RYuKGcQh1D zK(o=0=oq?z!q3<{NP!BXDyV~Kj9ejaIXZwYqJL5Hvvx%uR0h>SpP)Wy99n?3pmXRs zN^#DfRuEM|9nl!H5bZ*z&?6MFLRoxv|J&t8Hz%^&@eO} z%|{zWzsMExE}%Q2;LnzNSFGZQvdATWnisVZ4bt{4S|!?}?K=7w#k^`?ni6G4rBHp; z6OBPL(K56h9TEK_SIB#gVqUW?Eh>a+pij^cGz+ao`_U!z1f{xePb-9~qo$}U8iVGe z?dTl3fu5lMQ0yD_+)Stv`ULeuU!!l)3bYqpLN8I=zwBvgQ2|r~bwC5r6toEKMVHWH z^dCy}w>>u}Dv!FM@n{L!hEAe8DD;orIVCE9s-tdbJer5Lpo8d7^c2OoY5#8A#3%#G zkIJI@s0$i~CZlC&D>{sBqljDf4)UOys685pCZI)VBl-pXf$pHUDD`c7ZV}WR4MdYg zOXLc9JJ3mV2|Y!z@7NVtP$^Ue)kE!3KlC+PfHtB7=q&mRy+ujy+Iz`>a*Be#Ex8P; zf!d*7=u0#Utw$%&zbMH)`}fCYLU~ao)B<%veMDc#CBI7Hj%K-E!4 zG#0HvzoWM((*wI-8Po|)L(PF6Omt1IkQeir)q5xhDvD~O zmZ%pRCYmOf{7s(n?H<)dbXOGTU;m|<w>zgnWl$S5 z08K}0MZvRi2wg!hP@)%h?tN4RH5UcXK~FRi%|)BgZ|I^Zc-EdH|NSFqabH?xM`ckf zGyu&I1<&|T=z=JCi@kxKpjV>c?KJ$ARYH^&Lfb!ZqKof1)So4T=}C_mT$XKqXNn)EIR@1JNWj4{bzy(K+-tdX3^lw|A8R zWYS;31|`e5gkD1&;t}R zroERes03<;I-_A|CR&PqMHkQ=6hD?dEi)>FDx!{P99oJFpfl(W3Xk9nQ~*^)ZBQrF zAANx)q4{VP+J#P{tLP<47~9@eYLp9ogsP$Xs2%EqhMW&7YiD(hphR&g@=n;w@*WOD8R01_b-O)s}Mil(`bQ?N?uAm1fMm)PB zJt~44qRwbEnuWHYeds*8i@f;uw6v%Is){dHR`_O509lb#D6WY7VjS8Z&s2Xa9I-y}`8d`x4psS+ia)rE%LhQ^{5 zXg|7zqNlL?WkaP=D>M+zMO)FI=mkoX((e2*>W0RkrDzZO3%x~YQrZ1JLe0=;=sUCp zT|`e%WNN!#4parTMnljP^aJ`0-A8fWvpeS&1z#5^gPNeOXds%5mWhI|0qjAS&=V9p zjh)LP3V!Ba7*$4%QCBn?Eknme!Dr61=p{;-*1ohDYJvu%xuW1}3d_+?=y&EWpnK>I zikr@!mI~!T zfX<-@C}t+kMTJmR)Bz1dGteBg3T;LE(Q$MYJw|U)n#}gD%As~>Jer5rp%dr{N}I** zR{^z0U!$eyS9A?MMzOQn{W73js5GjJTB0FnGFps&L4TqbC|NdpZaS0)eT15!&(SQj z3*AD=-nTnvLj_S4)CrA4o6w)=Ey|eP?pzZ!Mx8{#kJg8wxoA5&g&v`VIqYYRtf(w% ziH4&^=rH;l#rnYRmkm`%-O&uR0_{VWkeAc$mlf4Teb5~A6S{&zx$G{vQAN}N4MPji zFX*8t_}mzl+bRXhBdQ`-$ZLXnq7kCtGt&e#70p7c(Pp$8{eljmW9SUJA`0Fj?udfV zt8Zw@^4OQ=N3~EFG*%R>ole_`PNLhQ;Kv&;M8Tts_Mu%HTNFHNDQTHS!E;p+HAe%` zG_)CA7QK*5{>)U~FfXrM^6$T)A)*nb{a^X{3QZLSr!7H0qFv|+I*0y3uTjE$cE2SQ*trtx<2$*K&otg=iBxf-Z}m$QAMu6|~AI3f>nAqME2Z z8Xy`gSIAq0)}nprG`fafqJ)L)F7KiIs64763VuG_3iU-}&}{T0+AF#sSIB#VViXSZ z63G?vvZ11=hA8+kdP7n0{?SGhyjOHbBhVbQ7Hvfb(G~Ony+ZMd*fX-C!l)c-gxaD{ z(FimieT!D1&1g3|iEg7;qToFx{3EM`C=1Fb3f?-4qROZx>WT)U$!HDQD+=BcPow)N zK~ekCY@*VU*Ic*@Cfi|I&=st>7!tR$9RS^ZR^C&b{ z6ns=!fHtCE&_5_fNxLF9s)4$r5$HR#S`>V2I)rYBg4c9dDXUbd5UME(-fNqoPtib8 z@T@IH+tGRS424SD6)8~;^f9V~TB9Cl2%3Zzq3!50dW8~{v3HOj6+nOY{f)vtw&$io#ZV>G0`);-(Ny$3+J+9Je^6Li&PBOUW%LQ^izcE4qTu~<1I_=J znu6EE130+bfzKqXKm zR1>vB1JFdY7_CI>&@OZo-9V3#SHa$C5|ke0LPbQu=Zfm0;G;@?UfL0Tj=n}S(L%Id z6nu2tCJJ8XyU}rU74>Xwe?P-NwEO4@idNC?mk?z|1yEJg0JTDW(O@)D6nqYtgEsTh zqqN`A1zvg+Jwb0!yh`?-Q=`nN1geG_qLwI16x`onG({A=rz}N#(Q$MEy+m;<+qG#> zUQ`2hMx)V8v>yF}&Y%bAIf_}uo*N%!6_u7te)fq5p*d(1Ix7l3BVI@Uq8L@}OW#A; z(TAucs)p*I=BNYeg+`&7Xg%78PNRG1C5l(g-f0Sy1C>V&Pb z&`T6i-QHDtR0vf=O;8jXguX=6(D!H~+Ko=5+bCuYdoP(#VN@P9K^;(U^aYxQHlbh9 zWpoFH*R*$#6s1Q6QCZXowL?A8XfzqkMk~-J^eeiI9-wHo?ER%dc~EK82t}chXeru_ zj-Yes4tk9e)V6n!4OKwRQGYZAEk#?5 ziGm*$Y(;y~@8~b|7R9e`*QP?b&_}2;YJ~=)X=ocdh%TdNDAd57`yMKWDxl`57y1e< zL|f4zbPa_!w5O#;Wl(Jtg@&NR2DTtUC~%H8*M^o(L)s3+MbaHeTd4UW@sRqiZ-B~=vQBOS_*DxubB0Gf=JquuBvx{e;8Xl?De@liHZ64gUp z&`>lLtwg_wf}dGmL;s<8?d(f4q9Uj~YL0rNL1;Sq0UbbB&>NJZy*)QG%7aRw8mJxW zkH(>O=nQ&+QgyJWRX{z^NHhoifKH)*QN}2{Uq#dz^+w~+LbMZ|M-NfVj$vLxx#U+Q zP%cyyl}6Q36Z8q{g$AMVXeL^L)}dYK2s(xSL|4#X=pOnPg>|w&dX0_VL%C5QR9+N( z?V%2>CF+Fwp^<1j`VK8a>(S5XFglO^LXS~+XC4Pij?$qIM8Vw`qLo0^d1*u1C#VxI z?T3b;FPZxW%|qX#b!aQvBMR>706NV}FQMD$5&91$=whFPj3^f>fy$y9s1E9g2BHaQ z0a}app>yaW`UgEmvAWtjO@ZD=AEC;k;8z+NpiXEo8i(eiHE1t7hyFs3P`qyTv<#>? zs);^9gV7|k5*6>h*U%%B=u^A%N2nDV zf@Yu%=oq?uoC(&TJLf!)O1KNR3pj+rQirw4pl1dc3e)FK}C<={0^F+ZNY@(e&Pk3qUK6Wl0 z$}b8|tBTs8L1?llIAayskN!ZnMZtbC`q~v~(1)Vnr4>;N)EiAeOVD;va0jQ+ZS)Ey z>u2Y(qavs(YJs|-&(Q=lR}|dyR`ff%gJOJU=Q5x|s39643LeMTXg>OZx&5@uw8toZ ze|uUkR1I}TW6?5EaPDSN@GG)EqvPlbx{aQr&;YwOE=rH`qw1(F8jfb5Kxfetlwi2sFE^@ynxm0u5!!?PK`}mMsMx8~$Yhf6gftI7)=p?!&3Laa`aaP$;Ez}c@M@!LO^ay4C+V0l?^*}Sx9`rYg zJKnA>fEuHIXgb=8en)Rn@(FgoBB(a%iN>KH&`Iti`DE2hF_5)N6bwy*)60{xtiJqY3)9udrP<_+`O-K9DeUxs7 z-K7%x9L+~N(G3)uY1ifw^(^cEzWU;*I%*(_k}Kp5MU&7%v=tpgH&FPuc9+B`6Do#k zqxNV7nt~Rg&FC1qj{Zf7zO#3b3FSvsQ491b`V!4WKcb`PGJ1f#S@zr%C_5^H>Y?^% zD4L0ui+0Er@=l-|=mC0(;>@-yQllKG2&y3p{x#{Qs52UlCZPprD>{hIqld_wW6wy9 z3ZlxWE$Sy4Cs)W@jebKnQ1rQWE)6P)8llh7Oten4U#^gM2PK|o+Xtu|YLCXEnP@pW zAe!#^?^`!f*!(arsazp1H!6$jqxR@CGzl$7yU;oG82yLhF0kjOL4{Fy)CzS)pQEqQ zYV;F2gf5`xC~~2_gG{Ids)ahCL1-#kjt--nD9$2#Mpje=RYh%$VtDu0hUvcxAH&P| zlhwI$(Y48|&I|Lu(f`84^GbVOcKKd8%CIu>FKwF=Ars+Vn3Pdc{MUS>lxVtYn<@Uk zMIX)cSN&m1gp}wyBY$)1m;?Km=nWCon`y|v-$0>4N8PDr(ioYt6 z&d3ka*g3Jz{OHUi(Q@9DNLiIsSKVh-gcN`0P`JIH2rq@sM4IB?V;Y@FXG)}$bXuyJ zQd{mgD81Pyp_f5t#yc~awXAk#vTE7olpI=4JF7m>B2TV)#u9qD^bQl5;>qcGwG?nl zJ}otzl3z=dQwr+NBTR{ueG2Q$6lRi{vcf4vbY_QBifK9SloGo06H_9*WL`;~NfxrN zuVh{+ovC1oKT|ICpxp$ndzf5hn$&V`o8nPDZ_PD ztQf&P`}gyumfTMHN>^1f#XoD3&NPwIM=pQWbUo`kQ~a5ET9%p;DP^mc9h97=oTB72 zlb^XizHU8Y1xxvVp%otcOFj9qhPVu$(rJd=_+mONpyDzTQ9@;zIUYx&G6 zX|zmrN|rGHqu*Ln{L^!W`H$j^Q$Eyk-zkN(#EA&b@>iAAl2uCZk+zOkUe79Fisv>cG}H3F zQ`%}NWs1K~J1uRTnGRZpJ2M@%EOBN!>m%K7ihp`nEmxh=P4DofQ@U$O94EL#f7Pd2 zGC8G(?o-MspJ{31l>WM^zf*>48TUVm|JE}9|5LU&Ww`GAhf_xCBYka({~V6i*I=T! z@1E6(I+I0;|1aA{%FHA!H7Q+9=|t&a$|y>2QZ&tN`CV82<*YiZGcgkc`}nKm?~RoA)AXi9O1Y{fFJ-PN6)20P`0s;FP4T>CW~QSl z5mNrr)B8FzcXj7+&dg(-neWVa;r{(>cVf1>Nurwxc}H&Ijh=g>Eo0RS|&TClkT&@*{7?P z1ExgE9rn}vInSzP!)5W`dUT zrbNoBX}YQbtJX^KPjAbrwcac(Jy^BYTd1o>vTB1Af7KLLZSdCW%tB{om(J{QX7*~i zYD%QH!8@R<9WI}wtI!NpeJ(ls?9p=HDJON+D`(X|S|XC#*Trt{mcA}B zniApd_U`CRerM*M&Xjj%o$_AD-+8mMDvi$Uab}9@%xPz)SjgY`zB5x+SG{sd3tbgIS#Zz({j}7Xlu`=F z<=@XBovCh$KQmlsS~)Y*b*8r|wPj|hmdU0>O8H*P63S62{v+MUK4+y2lSg{YlnC#v zw@qiRN_iode4g+Q>plsS2gRQ`s*g0CDgMkKx+ub9d|6jz2l>3Q@?myCtrg+|;Qv8`GrbI}ItuqlRf>r*E z{N2Galg1Q(Ca%t8cV-gnOd%;%<%*P%IeHGXQsT)EO2Hj=*$*VBIWdoI&+Ab2U7e;dVzf&c(t|Mb4pWP6(^N_To1fv zI+NX$2=9T{TxW_oGp%%{hBNbt&O|vgZFOdZlqqsW%0BJ1tfD-YqVE@`c=FFC1T%+B ziI5_HH?%y8OHS#dt6n>+`sz%o)WKQ)s(w0?(-eQ_K{`{)nHixojh&g1T6#+vA(y{u zl&<>L6o2P0bY__|^Oe5U?RRFz>8guT9>^6btG?C}@t!SjOi4)z3kzoQQev1=oDy3~ zgghJdO_>x*U}oAdlh~BLlw_uSNl9tS3`z!5R#I|E@n1W;O!2%tX6Cpl5mILA%oS&5 ziI&GsS*DLYZkph+`>Vd!lEx`3qx&Dj^O)kFwL$kO@05+Ys-d%Lla?+{*{rJuIjgqn z%tU8qo0bJm`AJV-?W{VeGuxb*)4KD1XXdKTTykdq(wS$@%q^XXoA%vff1)#~Oz|IS zf*AhuoZTr&V)$?KrJPmibf&s9Q$$NMDTCzl_o<+(zA?pro-4%|Ci^UON>yF;le4P2 zmcvr~uj%>w)Y5%!o8s?NS7&0SdpFZSXA+y@&otGUG|o(GoyjAmv|N!g()mfn_%rlh7+ zGbInDzA2R`%}r@TX=TcAN;gxMPE+Cv(3wTf%o&|I?980gnWxUoA3BpJ)4Q`S=u8Py{ImYj(!wcsb=44O)jge= z>&)EOnf=bpBb~YD%skbZc$wdw9v;(wTm3*vS-B$R^n@|}kH)P{nG_l)#h>ZT%y?5q zQ@$}}DrK6KdGeO9z!Xn@$v4<%y(tk=66?GURVk(v9j2E zo)?x%S0yz?e*A4p7N_LURfSB6keLEn%1a5}PZx*P)Kb%w+TIE&^W{-=Fh%~=;;`C! zR!^ri)Kw!*iIABlTE;u2t*)Bytdf5bK_1siXQsQ(Y?R{v9K=7Xcg$fjbKDev=YBeK z-I*Dn`#g4LKG%DG>C6n#neeRkXE!UthU-jHQ#@~t6#ss5NGT;(q?8eQR$Eg%??);A zOkYzXq>R;>F;c#l%b%H`GY3rZXC~{+EoWw`&Lqqhtnz23>HQQm#ouST&NOglzSVvD zIy1Ai%yi0JU3J`9HBVFKsiTA;~nZ&wJR#W_EER&X!PAQxgup%P*zbko3fFz zQ;PrC_nG2(yG=Rel*YRAbyMVP4q>gdcsYZ!{L))Xe5Wkdo%5LD@4Q4yHK%OV(#9#< zwe)w&4lNU$vRltuYl?sR9-Z0m%;&dhn88RyLWp);$UnLl;rs55gxXRbRlS9IpNGxN8WB)L5= zom~F&d^5O1Q~XEqP-mJtGcUDtc1pAe|Lu98vnr(JD=FW}C0{iPiyz^CzF1?5d~H#R zziJyZzlJ5$nFGumk>bz%VM>H|BrJ)RJFGeqmReUmXVobw{#$0OJi+OncPi|CU6sz1 z2q`(VlzMVSN?D|(7v-50|FI7nQ~aG1 zX&K;@543#cl;T=uIiX9X@hMCnX^XQsQ(lyzqM=uB;A=6fyeo$`a0kxp5wWua5n#U3W7?=!_e{YO3P zgej3yw(F`}tV%1zzvu7*!J~-q(uV)6`^0z3U7bm5N~Fv@)RK>q(Uc05ET%N1WH+Tf zL0?x$e_IO7LU#7U6GoRWE0s|8!=Y zvno7}fBH0nJZ4otmVE_vTBJ@$iDTq2+yS@ty4aX zfRx~4LjUj`Iy1)$Eyta5LdzAWoYL~h zDQC1KC>EUM?|fZL7N`8BrMOdWYH28?yR&B`DFaQJU`m8H%9NE(d9AAsIwcg( zf9+f}MSj*79;xM?Q{L0^)+ssS`Ojh8;=%p+XBE(r+9{>AEe`Tx@x#75i-+US50(gT4|Z@l-9axi?gbY&Kz)N+G@G$ly(@kfVIWwQ?%noO! zr_TKD%zUOZx1E{6Iul;ferB8#K3Zo|nBqUH<8>yFGxLqkly_!k=u9(bX131sbY>RB z^WSqvIx}l@)l?}<xbb7wB&TkZ(2$?<*43seN+6iPU_CBq;!+Z-}$tbai;h)XLXr7#1=8=}FPI;oM z+B>VBYUwX!gj|ub&vPx`P?ni8m$K57m6Wxn9H4A4HYm`K%eui|>D~jQw%&jQJ&&mK09O zq$QJ68fwYsl-61*I^~=A^JM2{Qo73J@4P3z|B-*FDgOPO(lXg8f9R@d&Z@^+b~@#$ zmg7$OS5Lp`lovV^R`%WLue79h%4C9mHUOD-`{Eo6{ zUIPD7OrmTz<$KCrDf3Eu-cP2;SA?YauZvTrL`X@XGuNG&v|9dkN=99kSdR8j_g7`s znY8lVoPLs$L+_`SDgI0@EzM1dl=7jLev~6p=F1(9HbuTVW6HNq$*(ipol-!{d8ZWA zou8NzA^Q~8nRw;x9bSr7QcE_cl-5-ZOz~Hh(V6bfOeLKe@61%znU&5=buD|HQd3tw za8}jQnV1#c-A_ZE$z+OudLx}F>C80OnO4qB3!NF}%(T&&h0e?;!TmTh9dzcVGZUpV z@hZN%pDsF++Z6wPy6Q{~XQqeFL^(6Pg8Ol1`s>URXJ&xT9CT&|>&zWzW@vCfmEPUY zC@lq@GFn%4HpRcgF*-BPnHi@u=bf3abtZA;cRNqknQEr^`+TD_Bb}KUI<6aW`oWwab`B@%pPZEyUtv7W_Ia} zSM}Zf?AMvhrug@BP-iMSGsm@bcFGA|HNjbRQfJmVGiP+>lrwWyKPEht604g3G2v3Q zOFENWzULSJ^cy;p-4uW3ww9t!d9JH!I;&plOiO1bc0&K-*r(1+{Dl6;y8cpT$mQ>x zNXsUtBu?mm%>2_7|9+C{%u8n`na;$m9_-`Kq|uVbDVY=cAGOLz2|lM>ik4OHr=gS% za`~&W>8epqDWL9lBCAF zed=n-?vw^v$~vX7p5DSKP4uimrub(y(^a#bndVy7Ii-!3U!C%a?sL=Gr>)LBcV^n_ z>9J}CkIR2HqIA`Jrue6K)R{cajQnfb@)|7X%yiM2M$Sw(J*%sfL2~&!ch@q{DWB>- zYfbUb>Y+2coS6Yy&N$_BE%%)=L`#fXo|jxM|E!_9b175&okwY@>Xh-is;RSTmd^BY zX6ES32xn%o&P;P=mg~$iXJ(C-El$~}<+xKeX}RT;pLFLprug@~M`se$e)qTz>P%Ww z{F!4qlhc_wtur4vGv~EbcgjUAt(A$ta zuj6?c<%*PhjvncMl&EEj=UtQH&$KorLP|`X8Q{#s)0xT6OnjYL;LIe}vdt+;wEXUr zWV+9NXP@`9#H#CgY2}KP)6;4xLHWm&%9J~%G&QBR_ehHWxcZtRe+DL6dfjKZDG^fM z*D}>9xpmbtXH@~6+2hO<(Q?u$#kD+fN;%ypcD>+H_@`IYlFli$w3Ky9JuUT|(nxoX zGR42=7CO_ zmSU#(cQ{Z>1*d$W_tQj*|5-0mW~N5^KNtK|ivKZuQs}u9|MfM*6wiAt#eX~e(v%1( zvvp>QGqYG{W;-+A>&#+jW`mYBPWeg8PN!_wdp_apvqNVtNVy}Ie?L2Q=B+9I{p`}y z<2LZTRB}a1`B_U&O0>|=k^X1K;-<*wD=Gfts%T1tlwY;fcFJ`MK<4f_M`M*txkkV6UUN|#-btY~j&r2$o z{OSA9XNmmRdk$0N{Y8quPcc*E*Zx8SwN!M<2rUhrGEw*W#Mx)RmcC9osP{9(DOa>i zb;?yOOPq2;%X+8W)N=SIlvG+?Iwg&k_>F_-$A31` zB=(=5_nnenXNo%IeVwWBKZ<`=O{ZknRjvL<@$b2-DgHedP3)IJPHC!TvQwIAneCJ@ zTGl#cv6d}P`Ay4Sr##Yf!6}K8_@_T`O5P;?qwt!%do~(riF8UUEoq(7MoS*2bkUtl zn&Lmw?mAP$nHiunZJe3GTDm!9j;{Jl${4x)*UnBYvz)R^SFJO}KkH|m*(K$KS+z%J z?waDy?9-XI&dh$DN!B!2<DMxixXHz0%=D3!D zPC2FJ8!1cVijPqLh^4zfOmmB0m>0GvAsL zA>|J}eWg=w=&GI0s%KixJLO+pb6 zzvq6Y`1hPz%Xp`}r)7>)GHKcFl+0SLIHi=97fvasB}t3m4*jz#XvyW2np&zmrLC5Z zPU)m&j8nR3neLQsNr%bvbHWt=+4xk;HK+8~^2#aW_4!HA^4)VdMQ3t4WxAeKNlGiZ z{711)R}C}8KWnSbOmb%SX<6WuUvu%3x@w;(5i)Z} z%Slrrr99Gdol;YZzt1yMXQs&SaFXJ`H+{vbj-doPGuxR-q%#|xnIu|{I3<~`y5+1& zturs2nfJBCY!f^R`MV=R1$9+QQ~dj>q$R&o>gcKprpVtW5o)S4jhX2t#eWq2Oo{Ni zg_`Ni6lbQn&a84~TItL_XQsW*+>r8Eu1MLZqs}D$Bq;J{52W~KWi};3N*65!oYGxa zRdQDK)|n>G%rGsToibim^>J2B*D}T_vvk#DDa+-Gl+)*FIZo+s$|cHRQ=U>rNtq{a z331v6`*_|LX68LpBBU(RnJmuC8ZCL8vQbMFr)<^xY2)m(O=o&KGkbMrgfsJ-mf2E* z&x2otj_InkrpV8QOxf*}<7gQwmbPHRWT< zY$^VamYbL|DYQ_^e0dH#n}xBN&_vUozgh_ zveYSEwCr_CPc2uRGFy({Z);i@EEhn6^U&{@r9M-d*ONrgle_i|-I-T5q|4J|4^UI{r zCR6fLc1rPIJ0(q#-$!doZKwR9Gaa1rrLta8ddE!&-P zU-voa?DJ5|X{S8VRX3bfPj%*nGxJPKoKC@G_wVPmmh?_}t0kY5Dsn~2Ojrv4y|N?a zS5rn)elul0<+v%EC>Kn*M7bixf1aP1B0v8(GZCGG(<7ur*O@e?_%jiDKV_YnI64#M z%*0DEOzwGvGt*gTra3bQbf0a`%t0;3oN_q0Lub_yEwQ@UTp7V=)?`+O2WiBG~8)dE_bBi+9k$F#`Y;)z6h@Qc}Ogx^CBD(YOxdd4qK=q|94XZ4voh9`c^3A@7pw=VP}_15=)sUiPC zJ~#1+#7v=?(yk;B(T_y+O`?L6ifHF9Ci40VtD0ycuYd?in?mon)s!iX&Zj6-3z;XB z8IFv%SM&^%hm1fbt%;5`5}Bfu84amxBCoax8H=h;ZdDqSek7AoHPP*pCS)pPmdF}; z$akMY=Aq9K6Z!6wi0;o-6Zu|K$b4k}rOZ-f-cx2R#Mj&DtW_H!1xPlbPi+$&Ycr%h z$#%#@k{ys0Bs^%KQ#_LUIaKiTgNn*7=-OSNW$s@>nlE>&1{+)m4pCFUSMA!8inbef| z2>FsEMoPV&t58);NMn*%kbWegkRM6HQtI`y(nNQ|i_BKa#7E{3Ws*QHkt9Ra2dYXA z@%8neuauDdB&i@(NHU^xQxly}R!9$$JgEAfstO=8n=%EFSw)!=$n2#|S;(Ix6;T!3 z&p+o%kTfJ!A!SIap-*QM`Ce{Fbz}y+nQS7u&vQ+@o@^mCkl93;+Q^)wOg&^`_K%)V zwvYzM6cni<51;gD1Zm?+E|USShteAtG(KT}nnFJ=<=OQFM$xT${p{l#cl%~vM zNF$OrsOm&jZ;%;CnHZ_`E|^G}P{>S@M3BWKDIr@)(xuYfIBKG+_#ASLBpc*CNe=Y+ zY_NYfazV0_Y4DP*QmrUEi6C{rDBgd`GjkEAXnbclb34bVBO ziO#19G8HJ(44I~sX$$E@(g9T?sH!7mwuw(VcY-W;rJjiH^L7*Y{+h{Al5bIU)x;~A zKB#(1nf{O%L!EVLpCPD9YNAymAQ?%|(BGw2eBd;S1 zIS5H7;+&m1Ax9tuNRB}&n8@p`LQX(xx|#VVZAnfdGuW+~A94yZ$<3@Z`IY1}GFwT` zKn|0fg3AqT#KynFEfaFg|B@>@#O~_?P12?nL zq^FzN7;*)f@7>Hclj&||TgX*pmbjUnCR<3ZA#9b(E?SBJ($85+n0MM0ZR(Cq*XxXh(E6k|R^f zL^ElSX-S#1$b3tg49Lu;Oh#ljQzjea0?C)CdO=k=ATh@H=aUmviA;1pxgc3c@}$vc zn}Q;h<)N#{hfEt2uSiK`zNJiAWX4mb95Qn$6N$_U5qEkQ^lCFjhGe`CBF-H6is#YD3zQ z)PwXUX$YA>(iXCWq&;LiNk^>WI7w&B@E;SMa~EV@Q)WCez6t(yO+Y5SiLPP=GQ}vf z5>nm7Cz)fYYVB6N7SVkktpGv42M^#lIvq);7Y8~~d3E4|h7jnTwJJ&}a`EyX%A6-R5 zND7jss48lr>uLt6Bhp45K9R2>6I{t8qWAI~6M0ubleHurk@=mZGvsfQF6b*YUWmjT_I(_cC;xl>e zN-~q+sm|y=&u1nHUCC(jnJalsa=21VM6cDNCLT|9lg1?Jkr_gg0V|zm;+3k;Gw3th z63UdwpwA?SC{qP}u2H4|s$P5|x`&CTIqTBS4KY?86Q4*URFyaJcxsDi)z@xS?a;=^ z45myIWX4jaEizLm(;Kpuq#vrzQdNIsUQlKLG6|XMa?3+y8l)1* zbo6Oy;+4#FWWE#m!K!B9yst9R%uH165jidopU97>`rAZ42NTgV_};`TG7Fi6Go32U z%t0o*iDu>^Q=T&OkZDGl`H)^Fky5n)GM+MvATuem39^o43*-dJHjIAPL}$1I@{;5@ zs$%~bz4q3jCvg{~Fp<~Nis-#lg5)%+YMFQ?^Cx5g$rbGL&m>ooStD{l9zLnM1Gyys zbq~@_M91>{{JSYIPk#6-txjZA&Y ze1l9M%Ctdd8fDrdvzRiIkl8?)t;p=7%udKzk^`u^PE|*d37O-}*(WnRhD=Hm`HDqE z&&5|JUXc^Xw4=-^WF}DN3}l^&PpZzL>WEu4RRm|*t(qG82Qp!EqxW!X=tW2hl540c zY~uAy4ZVd-eahTJrZZ*kBQuOL50IHona9X1qs((;j#B0YGWRI+5}7xYd5=u!JpU?! zGwMg-)FOHpcx2A8AlXQ~8TAS;L=rpWP}%uN6J2SXjJjj3M7qesClU@BXCmKm712Jk zP2{_>p+3kek|dCWB+1a{ii!3~j?6R4WI-m@d}nmcdnH%&*AIGVw{(Qe>8k zY?g=oHm`{8>Uk6SZQjt8kn1FCag9Bts%_{KXOX|pF39I3hafdbj-Yc_6CLX~GNUMS z12T`~9orp{$S9XeM=dNy_LzWrm_Bj+f4Vn3rSq#}l@(Vhj6LJ2s>Y>n;kejaj zX7bFH6DDCxqN~oBByr_}Nmf@bo0M_ohKR1Bo{7ANmu0>+@rta*d?uPiimZjKq|AEA zHp={o&eu$|^A$+&FVTO+^>*kjRAn{MvF;*Ml`=0g&6gQA5^Uutk+Kms`5bw zi|A*$+9wTUDoMu7y3%DQ==LJBduJWzlPo9d-ekq$XZZ z?67N)%qBjOJE+R*R{2DXiA2Obg1y%A(h5cgn=eqJ92HnIu{CzF0(= z)Tr7CvjLANF|cmsA@u0O_1qE znU=^*q)c1LDw58Sb0l3MPe=wsLRLgSCnOFVjj>Xh=nSVIlZP_%vkaA0RG`cPRMipb zC=ab#2pLYY3^Ipg1!Nn^D#&G$)sXijYaoeNI%7r3SQ{aENH#;NkZi>&I-1Dq>%+D~ zz9-oS`I%%tu8rL!2a&l-av1V~a9@==C$s&3qAd8Zu90r#yU~JSL}HDI%g*_(K!$nY*a^zbnUGnl}WxqRS&9agUn3Iv_)nM zWjY~qfim48G1vRo-UC&6OmwB+BGZC0J&_qjnLfy@piDnxu8O>rhfn(Shs56yEfq!d zEaxzh-zc(7DHC}Gde|Uj>QiPYq#em5bRI%glOdBtewBy3Zar)<z$A2I zbX8*!{Z4y&lc?ZkCdFO(T14;DdM5IjnTW2d3&|SD4**C1l}+!{ z8zxb~y}~A=>XBR3M?|Y)Zg=M6_4EmwicAs{dAEhI>5!}>Gf`EEs(yqtHt|W-98`61 zs|K0$Az6f~|G9kzh5d}G>6BTH%mT`+L}ocxgt8&FcbOe$Ydr-B>HSJ@k*xl7y68Sj4~}Dk4ajgD%tMn`78?i z29nK{B_^d@Sz}V)mGvg=T{$bFckU3AsNf4GGhDeWqU&02BKNt;S&|OOd?e`%Nw&wC zvsQJ5IzKYe87_l(_WI|% z9Fm-5BP1`$R!BvX{g7rP2QYdk6P@#M$Pki?sG31l|3H?I+=1*Txd*vLavz~mJ3 zV?977gNd&6H8O=M^AS>)#Pg-zU%g0zAY)15d^u09jjblyIsD7{BBw|qAU8=8L*9@i zL+9ZA{yC>X=hP*r5NL5)NElBc029Okhj3@aDoj023SmhwcNh+Y~Dpgg6 zydQe`@SwzQ@_j3qq3OVdbOs^x?T?sRJ z=t{WBdspI{B>646b4rshUCCrp)|G4~EnUfD(%Y4SCR1D~X0pJQsv`Os$a0gY;F==3 z^Seys-Rew!BWaGzMUs}-jk_lDu6N$H$h@LVdr0U}XQkS?GbAlZSM0(qyx!Vj5W+eM;`~7M=}YrlOzgqmSi&I2FWyx_0mM=JQtGi_vkCLmUkf} z7s(<>agrtIT+2jf_$%Zal4YpsNmVN$BTXWuYBj2sP}N#w_EObW$XSx#AvZ`)pwA2H za|#l1%zp;|L{&BuUHfHZzM{-OkQyX+QPrHP9wF0_GEX4=NS;9^ki3A*CwU23N%96` z?KROEzD4FZWj;b~ki^cR&wd}NDlWu#+<#6}~)@RSZ&sq$H}UQdI?HT2ZDl zGJPo%37JaL5VDk{C1evxd&n`7Tk`P9e7ZxtC!?j2i0)x}6M5CEWr~`3MS3Drn=*Z{ ztKU+lA3Fa}WSKmCQZ*2A)Ri_OI@Vni`5vW+p0AKoPL;gRq<1i?lAFjoMtX-ra=Fr5 zMEjI8@p$@KrkUHPpLZ%Uy(zO4eI`<71x8;&vL02NscIACl*lc4=vX_^C&p<lT2#6GTEeqD>F=nxUxh< z&+?BZ^84i`n@Qs2)ZO^Q#48ye(!2DFVqzQXExPOteqQoO)$;A}NEa zF;rC%nZ=Z;jLbI5R7K}=l!=7gCTWa5uSlArkN2E^&aEI{khFmmCuxU1^-XjY-H>Td zneUJpLz(`_%%{vC%y27Z#v*f?GSiXymoh&g6MEi1=XsFiB)_8S3lp8;a%758W)-9o z$xcX9l3nQ2mHO;OW(Z{tATyCNzacZ5GAAMHNY0|_BvqY5<`!lCgv9v6ztYQ)WF%M7 zC%=iV^cpgiDRT>%wj!hC;gig5$Wm9Axr;tYFF2jOl6iot zoF-cJ6q(YLd4)_Z%DhMBYs!2?rWa*AxpY3`NP-~?NJ1f7NWvf&Nn%4@lf;E2yXdS! z=bSK?-j(@HbX|#&sZ5!qx%4@qJ!O(3Gm0`PAqz>;qw{X6%8ble%H&1orCSH-hQT1FT-W9Fd?R^9(DgWijS(ApY zTrlbB${mwwuKa7V-IWg}7hDOA?Tq!rmAEE}{)!$wp@`m1c}?Wq>P%{oyuh5>naF$P z#SYD_RRbyGgG?q#kz4PJrBsy?vX>+WzO9lqrioHB2HU6A9@?Rkb0*Na~@_Pt>OgGAk+59GN|oX#qJ$(h^mVsH!a_ z{xxS6I_K_?93rLU;S(8vK21#I?~91&9=0>_iVQ;LTgr?;W+-JwA~S(9VbI`P-%9Y5JsFu+ zA_FZm1(_dBG&2>QSBUJBhx`_9>}k36`=WoFcsx5qbgWk-KS4roI8~aNhd#+od?E`V zSzWmyqJ2ubRj*9yk}N@04->EFRqS6NqexalW|FLf{6ew=vV&wV$t+j0i0Jo-)|f;EXE!j275%Wp#kN>Ls37IcRWcC!)_bWlW-i8<^B}rHM%=SDK6HN{5=rYm!ZVAgPVaFC=v#TS*!~ zj*&Em+$U)U@!oS*s$+c($w|@ z=_sOS@T!Si$Ci0vBHx{hlNy=W51h`L$%4)qO*E4enUa(#fJ|k|lt88qWy&MdhB8%< z=|h=FWX4mbPCk9ETR@rm$ZVv{H|TSOGCh&GK$%|XbDJ`~k@-lOzUY(qU;o+%B9qQU z*FGGXFGcho)cu)_OlcF%%*R;ODYF7q-;k_E)wfi&88X&HzAqZ*B&ue)RsBrXliWe( zG|2<>d1WHsy^QlOB+*0p8&|=4we*Yg6q3P}fg*ZsTMww*D?4nHa{CeI`Qziv64=Ixp68^{;OFL(P zWFz?kQjH`Rq&-O?$QY6mkX0mQAm>ObLOzmIgJgK@pHD4FX_AJJ4kXPWlSo=aek17s z347x2+znEWq&H*`$w0__k`a(YB;z4>Nv1%;pZdp|1<6OU2-1jTIb@hgq@0U2kQpTF zAS*~VK=zYt!g;@BqSwzBWS*JmS>6iKzjLkEn94SY{#EN}*$&aa`W-Dh(K*gDN3`=U zT!&dm_Mob&iFV$bf2dr&JxPwCY7$i)N7XNsIf2YB%A7>z0%cAi^O!QHF;>`f|C}$O zD!GZgNXS%YXd_nQn5^m7h#LxH88i@r&rH`6geuve=}cE5Dl5 zaAk$b*RHHJ>F>%0laa1$F`44Z4wHqh>@!*K${~|OuKZ?lQskyQu8^dJJf^DD z5YKD>3_pXUCP@b=ZK89|0BJ>;Y><8=UqYr+RSw7+5k1Sg8@V7yN%BChljMWEAt?Y! z@W$z*^C<+$VxpakLn@P$gftb=bE=urkRB%5rwn8`Wy(S3QlXF>{X72>lA7crBzJ(6APFv{ zXRz`oqI=lXL`NTiOgqZNDy&uCis*BlUI~tjA_+rgB1sa+9FkO!#R0N`BsDUJNIrvH zBS{On6CkfhvLX}fgMZH1AW2AaK(dqMf)ospiX^#_X-|?L(x0SQVcpd!Cc3L7ky%BV zs*o)t4I#giG=^LuX$pBr(hTy3q%|bYNB`Q}LXrna4w815bEJvRxjU-9rA+_A`rPt8 zWxhvd24zM=){y)Ua+qWy>14y<( zejwQe`GsURY!0g_k9oFsVzxk2(4@;E?3g8b`xhjqm<(RF=5RR+q$E~3vQxk!>gijyRT zR0xm;B*~CzLy{cQpCkojWPr>dNm)d%=S3zu=gg>DOPOrQ9H7h>$eg51F~}8?5|Ae( zB_RKBs6khLUD ziszd?qQ z9ED6G`5m$-K-QC-Mdm2U1;}NRzaY;^u0uYM+=j#r_OJaPNNSQhkZb``g5)kT6$7Lp z$vtG+l6Z^i{WX9jDI|&{8Dt(w2FON|%#i&gSs)ilvO?r9cDm1OeIf5jeuTsc@n;r7 z(vd8I>{}d z`JLn*1Au(e4cjE~pDaljF=OoV|g-BjNs*=2fG$e^rOs|B_BncoxNfJUP zlB9zyBFPL{M^Ybhgrq&>B1tdEW0L-m&`|%{M?x}^jDZv<`5&YS$v8+ylF5*vB-0=> zN!Aq8>t~6HUO)dLbC@!ZAXiAfEUr}#sH#A5-PMRN|0)VYJ|`)LssbiDR!L+kQ06O0 zdy+DcaU|s-OGqk0j*wJ>{6W$H@_?i%B!<^N=a!JqN!mj4k@SL8A?XWgMbZz_fn*${ zFUeHMXp(7=D3Tu`^GRkwR*=kt>?TSancoBCKFJ1T zVkYp<$C30T8<8myAT3EYAu}{Uej(Y6%7&27@qzlP$WX1%@GLjR>914(oBqxyxN#>uABbiA~AyX=3z?PyGMMBl zGE)L%HOVz(l*t4cM42p@&s-7bXRL?Avq6@U zFysSCQAqe_(O&@_4lf2tK~f5mlcWr!EJ;~N-2mxKQVy9BB;_G9Nh(9ulT?G8AgK=d zlcXl(AxR`e{^Fs1XYz1(EnFLMN$MbzmZTmeFG&MPd6I^Z>Lg7eO-Y(VI+3)13=EK| zBrTDdOVSatnxq?K4@q~(VUm%M^CaUSf0K-dJRq3_c}MaCBwjlI9y*eZWHK^2Nftti zk}QQ(AXx^fO|lNshGY}&l)ffHVEALsF7Fg5)N738@qy?E+*#fJ`TOg+2>O-aLP9h6 z*A)gy86X7$q)LFaCGnz<{M{?}TsSg=BsMbgH=Epy53+(J5o9Y#Qph2aWRO!NDIhmU zQbL}Qq$(XG&+{Km^oq(0N&UGqAC&?S`Kv&fp-K^m{LLL#N}%%u6MgP24Vgz$0kW2) zBIGnl6^Q)37BwAqPqNLoSmHguEdc1WA(F zzplZM&q&5Ya*{-0&V@~M&YK|e7ZcoTV=JUT$u`I=lI;-rivVubF33HSz0M4?_-D8u zl9}W%BtOaTkjf;-ARS1KL&lMufNUZ;4Y^Em4)T%Y4@ml~{uy3^)F8PGk@x6!ukbsN z4kFHXK@W#NgbXD~@s&Pn%_YeN*+G&Ua+ahi53K+2HxLZ*3u z3?u1{jJ$KKeXf2u+>v7>eUSMlK*GN8SAB;}<^ZWi(ifSo0WyQ6A2Q1VMBZD{one1u zt_Fy_m!q2*fJ~+UsZBBvnO*@hhhz{k+XLh}$zWuHv-?MPBnQb5WGVzmTauy33=NP4 zB*Tz77$8qXoUdgLhkuVuP!7M0gd`&w^_6}E$tfc5LnOaxc{qGDq!G#3uk@>c9wz!M zF%I&*h<=8DB+udS$&iUA$3)gbrjqPJ=UFD_B(oc`l4Kubv&kvR?1${7%n@`xNOA(1 zqb7Hy>NMme$r*^e4-e+7nX~9~T}1C(UBx+M9*F4g1ghMIe4xw|NRpiXsuz&FBrhQ~ zNnSxZk$i-V5s4lvsEnQqd9M|BKH-p!BncpANK%y1vvXfWe@|HFoC=vYB6@aorP+{) znadgLjYuwJVvFe2qE!WvNluw!$b2rM*M^?=(vS)!R}vo%FAHhv%5UN2ApKnVJ-j?* znn|SRcz6ZKW)rVSCCD|AH}bfWI9lT84)Wxd$CbnPjIK zd7Z4yxv0qnS4x@Oa;2=vD_1I+#K;@ui7OAEr>aQ?S8AH%aHWn(F;|+JRCT4LNmEx^ zoAh+0t;rZyI-308N*9wQuJkb3?n-ZyWsXT5R~DGGbmeCgdA+1(ygYoKUriRevfN~oEBj53yK>m% zn#gl`_&n!K66BAT3nuAB^tspP`O_r7E7weFxN_5^jVpId`iYE@htKoSL|&C<^4dgR zgJ$xd$pKe_Bb>YPyenZQH(iM^dFx676M40Zbxv-Q%9Ye6d0ok1BCpi2s>~+xnhSj1 z;`3xTY2iw4lisd0HW}qg50lxh^fp=NNcm6`9tQ=?3ZciD=dLR5b{h36vQJ`SBCcsuff<2`k-f z5*55FVhXDEx>fs3&U_-;=f2x#U&J)@c_*UJ*ipgzB4(gZjKYq{XA>szKN0Pd(Znm6 zS?H5TM4z>yf{#SZL!Tlh@*DCdl|B*e)7-=>nfd6`+3oXN!~*mg;8qSF#rHz3(X^mAkFd<#-eBzg}W(bpzN%Rk68 zrOaK(02AGf`;Zxwc?8)+nJ17llz9z#MDi9AR@^_I_mE5^A0d@R^d5|q(LH7LYH3Fj z12RTLKbmVM7_xvQ7Gxty7~~*HY{(swa7e5Y{>~AQ93=4})kzXSx{@S(ucRm&5mWbYQnn_buza|PQ>4;|1B9p>IGZ~R7K$*;C^{%WT^1b}O z{FQ--tdJ(3i0*SY6YZQ2nE@htwP;mI$jB#iFU4vOfAaPgtR1SfcbQ%sz%5Rrc7&OqA1e=nMIW80@*>*74x}fawN}< zh;GQdqs$Ow;+1w*s&gKSOj;A&)iIEwB;z2>NhU(NkxWD9(I(n?Ix;gTGZ*VxVxrFp zi;&qsnO~9FM}3wnMj$|So=cCv_obiWqLtQk@SZA6(EmD`XCcp&VRnXgTx~l07*kK z5R#2#5N251L{}jqXRxA4rGhsi2BWG5RgFOA8xuWWBa!JxnW@N3GST~MIx;^~W+pPr zO?32m$gHKzuaMm&OCcvd5xvH4Q6DGs?30Y%JD&3X9b1aECo<8|MP%)1O@_+aoj%#A zY9%s-MD%lGU3)}%t*R!XAI()#mDjQAQdL?=dy)*0{v=f(<3ABy*GvqYdlre8&}RM7cs6VZE6r8HzONxcf%=M+g(WNwg*LZ(Mc=k>7KXFBALW%h{7 zhdd%#hCa`!&sIpx3jX=7I&q0AuT9V zsFHT>O_|6_+Gh}D8bKzB=;yRgq;pHi9Fh^}v)QWNNah#F3CrmIY=WF4IgUP8tV%Pd zA$Lu@g>FQggFGj>h&~@obftG8aVt72Rr!FblqT9IS!G?<=O#xalL}ItBu!=AjjB|Y z2_pON?%@}Z<|ew*cIeYiME6I}MSsX3lAV?Hnx7&P{j45TMP&&|49I?xSXFdBr%dz; z_abwJGI1eqNfM$eypl7PR;5HHwTV8@e-6nVAk|4SBGZv1a~0jgktW*tOJrtJCO>37 zNdZ(Hq^eTL{6U#2kjErdA+JfAU|pe=optFmNmFDZOmtmcAad3`rR1T~71Ag`29k8c z4Ck0==N_oqM48@@3nKcJi+1h<`I}@Y zCVDPrB2$Yp3z2C`841ev##NsWxRntwMk zB9qoccOx&P07=2BdY@J`*&}DU5HgJ@Qx4LOq!Pv&Xrg;q1(~swsRfxv(g5-+Nkfdj zk@_@5X748%-JkOTa-XCrszR&#@15qDVFr`JvSTffDM*=ika8rQP}Rsp_qhu)Z7I_W z(vzeQWHiZlkXa=CAe%_~Lk^P+gj^#Tg!w!$(W_-7GBIlSS2_im#3p(!W46AZ184p{jw2u6+wK-%w^Zq{kOouO`|Txe+1HgmT_v)ppjdvI>2CCVCfaf}|tafvQ3#xZ@xdOmv@r zLsbi^x`51J6Ftk9keN-HE12^yCLd(&A~M6ZCQ&j&M-Gs@LFOFE2gofFd1jVA&q)$h z*E=^x9shYxhfE?9T}3)%vQQ=`q!39SRMjxi8RkW%8D$DVdXN-D)p)8Zfy_J+{c2Qq zz8qw0fb1u!fXq3PijdnRl`+;wlV0*Ue-&gR>iWm30ZBnp8hL25j zU2l+iPZ>`QeLhUw$bY_KLGqJ$A>~Qp)X+PnnTd7|N2Uv9;zNd$B!J8(NeJ0Yk{EKH zBnig4ZldQa1v2+3^BFRp#?C7AYWWPAL?(JJT@hfGGw%tIzOW#%JOf->`wsZ5y#kX8XQfaDisW|J&~Z2m;_KHY1gb9OREDYG0^ z*GN`khVM=E8DJGM@mu)suXT`2BpXmw#zdbJHX_r2GFu^?Nw%YEjEPA&_{joRw;yNs#O$Qz2zZW(?Ge#pNhM z>^PE{qzW=6NNPdqkko^8B545`Led&Cm82tNIY}qX`JjmYgicr58JU|V`gLV@Wd5T} zZ%Ev4{8f&mC+UMeg-rDR`VLj)DANy_rY1Vp;K=#1V?8M|0#yS^#-M7tiFO{3%xcO+ zA#;Q>Q<1q&nVHCZpv-J!lC|-#Yd$ico9G!_fJ{!xEJCIvWfmh-oia-y-;gXrRbLZb z`zmC{QDz-7Ybmo0nLjAAADK6lIgU(J@(0L_5c-rT5M&%0xiYxAV^@UacUx2P>FpRZ?U+QYI~=C&}li8b?*xkXcBX zT*&OAOg>~TQKm35PbgCynb7t@p7`?6yWlHG<^ah~QW=>dB-J6MNNPf=kwiiok<@~G zO;Qi?ElC5&K$0eq2_(%RGf7%OmXWlEtR?9W*-bLCmY&n&Ci;`vQP{DwCbLV(PyZp8 zNtU7NI>}~aZj)?>JS5o%c}4OY<`dMx`L3Fti&K!;ByS<9ND|i8Ip;9ZIVXV>FgYM| z?gl9*qCcxWA~FNW>q@6d`C;hs&AQ$QZ*U!HOZX1x~>jZ zrJZ*}`j}|dAyf@DxhtK|K*n01!jicKnM~rTr=!m!sSNqmq_k93hpeSc4aio?)T^g6 z+$W;Dq3f!T%n=ivb4$p1t7<6H6>^oN8|1!;?tD+kQ*SnM z?K}~Z-sBsRnUL%z+IbG7ILTZ{858Zi2U4BnIHVR;J%hA286#skGJxbcG83uK3&;YK zsZ!<08WTN(LG^WA2Ph-o%@et3l31!@LjE$*Ir|`YNOD4+naq@`()IPDRaj^LvrRcj zGLnXnEF_KU>sc;rqQAM<1er=A`WwIctkoP+kEAoC14(ztAd()CaU?w<^GSL^R+03D z>?i5(?2k!Z`T5QO%=xy-Em`~bsCr6OKSJVm@vmYQBpu0o^eJYdofjfggEGq?UwZW2=JM#LIq?oehOS%t22BQohk^z~MHcD5js z-$XyR*@8?(5$D|nqoo1KC1kpjynu`)c?FqI@*1+4m38_jF3294G3o?wPHe?n_9mpn|^2}xr}H-5{q)dO+@x^n$!6=?973(?9w^%rJ$B-d_!6 z&VwL1NrphGkqm>hGr22O!y(_B=-NkMta&2QE0v#a$l5niW;EoqNlzG> zkvxO+CwT#xNb(XZohuT(^RFRWP4o(X2RUalUiRlBm-w%BtN7oNkK?QlERQNBtm&^!_eq*#^w%bO4>}Uu&l&59tg8j8!cBDaK9IB|-$C+{^oLXnkk+4w z?$|IB{hXvf<}<@2?pG?h_N7!c2y5R>G6I>CB-0w|bIZRbx~?CQiP7J`hl?SpNPb1< z;v~x;wMbS#T9Isk^ds4V&QT=WAj?R$Lw+aOfwf;Y(K+uz=00WiLShVX-hV^S#Xd;H zC!%XlXQI1$05kkjq_jM=>JX$M$zk;AN^%4;gyb}22FZEs^BNN!>jE-+M53?Ne;{W+ z5uM>f6Ro;~`FIBUtL{QllHA8wc}%V(mY<13%8KYKZS~cH|DvjmiLUe!WQfR{T+Z5` zK&Fs9h0GxdZse62E;We?mY+&DnlIPkRyXsvh-OZ@nZG0AHPUPKiJSSyB<7&#(N%Qq zsZ6|{ehO#4K1^wm_A8JWEz`t`fK zE-vB=$hl8Ms~(x?SlN*Y8XW!g#Xk`_AxQ%yA4xULxt59csfDVxl<5T-M=}nwmSjBo zoTNVEk@=T0KSL4>@y~E6s&bj==u45QMwwNRP9&>QHJqweBl8nw)_pWRs@jRn2FmP$Tp-zxs^?U-ADMW={PQ^i z$w6`yRpm`|hDVWUN||Gj;Up(ewTP-tAhVA$ryzGo{yTj zD`bA8%p1s7lJ}@OLsjpQxlft@AmJnYGnC(Bkvlh&iO$f|Sf8UxQYHxUHAyh4hEP>7 zGP5WX3fWHLMb$Z~@*?vuW#T|0M*3&yLsb?NouLnz(v(RGX+x3{Rl}(&B{K6V^BLqQ zNm^7rq^h*Y#2@9KPdZ3$k}RmIVxlv2q_s#ldH6(fA~V#L`zF&|d1&&pD_P??RhwMN zC!!xyPMJgn7ZTC)^_PjqQ$j>P5op!B_PE~BGI{`iS}uM z&UHvSqN=6HKzV5A9*}7ylh9`^Rc%D(fQeRZg`6ZggsNLq^*iJ>$uUUq7-wBN!wcw> z)I>X9MJ7FE?n3gD+=G-RxesYf@(9wKszAY}?6Q;9NVkolT2Ws&Jcnd-<)r%VlG)=;J)GRG;? z7@3=tX%Bfr(g9Uz{^wssM`Vhc=qmal(~vR)Ast2Z>h(!xC}gNBUy10B%`owJ%9$)B z8G)+3CSJ+RfSe(jg+BL0^jv74waA2yi#|K$;vIx!B{>JFNg}_cCg-aM$qUE?5>Hc| z^AZys%iC0|_ERPkcounCLCP{C|K9Z4;e@Lc5!YBC0S`5iY zvJtCjXrik)h)f^KoQF&&xeeJ$@)CW{QJ;6ne56cBGu^SI6a8l=ZZqAnLMD1n;~^7C znWT^&B*`J;NK!#olca&1AxR5)Ns=CtV3L1688M$CCOV(Y$TXtNmyls3*&z!_azKug z6lXp<)?j36ndqG|5;BZrG-MgcSjb-_;~@W$On{`F>RD#;p1XOeZ0Q6w8N!^I{# z!_CO-pv*4FWs*IR=Op{kC+T$m&L2P~kBRR5?~uAA$06NGPC}-WoJQwECOX5j$ULIV zpODXH`1j`uq$0^xNPm*+=se#N(9%nQ&B9B1wp<)>M@U(nn;RJbcne ze&<|9U+Ky`5gq+^6OZR-lUpR2Q57=R>Eo457F4A+(W<Vb)TFIYrZk#L@q@rqPJ<_iJY`lPvyw7vk=ag}&Bz?3%udJ^lEbKa zO;sl$zJ<<8brq)|8A#4Uij({SsY!AP(t+epj6Tpr_waAXRFYe$T1r*7A;(DWK<<(} zgv43opYtPJy_rmOtXGgiB<~6+^>fc;1iHiUD@y{OdO{)I7_AJn=^9(LV!X+EK4V(e}i(5AIR$KqtpzXl+7t z(OTz7Yn>ylb&j-FkGS^c<(Qrk({u)}+@p`~QLHP@zjDRjgJO7wpyHt&@rs_ti{ZJ1 ze?29&&e2sn;x3w-Bu^vthCII>(~jP|N5MCuE!;gyYDe59#>ybi(U{uBYe)RACzb|z zT40~gx<`MxM>pN0M|Q-udS(itv(`FCBbG-WO>mE<+Y#5!6)TR~)$Y+AJL2526+xbZ z$enSIF1bfH+@nYC(MvmWy7;f5c35SI%-J~#caIXfM=9N-jP6km_b9&|@%((UrzbJL zr0!7~_vmx?=nFgITD?<#z@3t5b@Wkn_ek#){a3Dtzb?pACq&O>BKIhz9dT~hnjp^| zbRO*vLrx<{+rqs{KoUiavvdvwK)c#OkqgFIz0m*3r^lXk?pit}T5Dp%1t*L9B? z+Y#p`6^!8-fZSB~DBA+ZIJZ=6IdUuQi2wEUycnKx_}64IhI5q3Jt}NR|G%OXDsD=x zbM(YLdg~qqORe*-;daDb#%GV=i7cqAtWqobsIDDxPTx_q0&;QXU!9}o^1P`>oO>D> z!}Aq#L6UQhV!21{az$I=n$8i|CYD@P)PCt6m9`_!9o!z|xe=yw{@p!VD0i}B7hLxUJVV`-0_3aM`zrl3wFd62Rp{}c!z4m z89U;C{r+Q+r{FOC*V5Ty+EFDta&rFX&i(RPZoMJ;QO!Bhk7~}*EB7dDuwy(%tqnn* z(66+%q5P|J)ZRVn>mH49k7l|@zq&_T{*SRYkMp^D|Noye<24Kh*|RU%B5Nfjgj5Jc z5|N#flt`g$k$s6KC5p5Wg)C87%9N$DWJ!o(NJ4}Z`CgB6o$E1Y=KZ<-Zom1*-Tho= zeV*sOygY>^Hz*Vzy*>dYmzb5{si}8iT<=B+(bA_7H;~l2rn%=j#QW3{Oidvz@f4Pa zrIk7qyw(0ntKX!U}kr4If_cEQh86A<2Jjvk0e!T18KLX#Hg;!1I*pTs2=H& zj^?6DN@2-gy%ZmnZH&>_>qxbj+Q3s-GGYnBk3$D%3`T` zNTo?Pk?tb3B|S-+<|%B;wb|mMyIosKlTKzemqb_7Q|lkG>f#%Q&?Ww8*;XI z59Z__o)V*7q@RSa=4p=fb#Rx@hmu^dQP_{HmM@YDm zpbl3TK$&}V!5tYLdmDa?zxTg>I% zEL$_BU8J8$zkAA@x3SCnk(8{olC+WZt*0DYO5m+9i})YLFVSZgKT~ozn>W0Cm_0 zDCHy-Az>e&sn`dAwB+p;m_p2PSdRS6|4p%hSO! zq*DRnFf)nwma0PPo)L^W!3=^N%Gs3ga*aJ6!vg zOC3sIkiH?kB4-$yy3M<=Em#M?b){@bhz)uPwITKO6xO?5 zN~z)M-Qp=s#q7Mzr6NvgucyRlWOJKq6?V#fV3~E9+w!Tnw!^DQoYEbn)}%*0h4l`R z^X~QTjJ}gxM*@YZIXWanpSjfb5~uVi=_yh%#?>J;A@%YUmW*p7a}v?!Go<#U%cR%} ziz`eT$kaDTRhU|j^bqM8(rD5=Pnlaa&9w?`QR+!Tz3N^fp#|y|k=B!TdkX8oRqR(^ zM9;BpQo>bikjACYu$Nt2$ERf*%T(RIAn%Rt2&(B}rObKjxYS&7+@zGxQ`i>lyW6-p zoE0fG`o^fRh*+6QU1ZK`&2w3R6+?VwZ~RLrP~QPU#-H zD|E3REEU(0G%ne@%q1^#B^QuXr4pn{q+3ZXNDq>Fke>FGxsFw?4vdBp#y|<<0?M4@ zbC+Ydl&3V2RI+=#cVp$Mq^8bf>Ksp*%iG|}!+u8TJ&99VOj=IbO8S*_mK3+k@?JwK zNvcJq)gpbxC)UT96*}q%BBaySKX*be2@5!*Z6d)R%4;3EvCX z)X8*nJ%xQ+DsHzc`Eyb#={wRcPhqPLi2KRq{f%^Mm zm?{;Z!xyaJ!n|0Ij=CIJf=XC|N@tJ9c`7ZXz=e6si96x)Rw30O-9oBII`&Y!%Mtb* ztum)>df>sb>^9SKBQ+zFOXg$O(ms}-XOhAT1Z+>`kb_$w28Exw2$;N={V_6(q&S-tN}V| z*+{uag-NAIWl5Dt)kt+ncamC>+L3ya9w!YV4J8dHy-1o!nn9XHdfQXxnOM}#4Qz*$ zaAc%(N^&US$Vllgx_?R0K8wpn`gxn>$VXRCj_|aUYw4~dRVCFX-9c(W>O^|XQ`n=Y zWb0kZ_2}(yjRtxb#`S(WA$r3dcj6+sh%L3{Clw==C)My2=6!L#yd&@OP9VKZ!qo~*eVdfCZsc82 zQt?~N-Ji$kL*`gU+DQ6=bd=PTdH?Y)Z0Qy`m&}nDy~Ot+m3DX+#^Ek)*#e0B@1Rlc zpN)!n3UlD>y`sxeNm7++cnafCa-00F1*Eg2_yd-j&r_K9z*7lP|4}Y4=_u(p654{e z#OT-W;-a3pK);brlg@hz>%h5HYC+V|l2m)0IgFpCKFCz;FX6&c(1I4Olt|)~@{+D2 z-RvpMizBGnh0p?A!&AaFJSAMi10_afj>#Quccr(wr?3>9ZBHqJQm#L1bTg?j>0VMt z(o>|Nq!iLT(nq9qq+OoEwzOL&&$YNGr#h4Rl7@Q9kmH=(V=0Q(KjKMK(~qRTcc}-? z$3;rGUZ-@D6nDW~R#GlfAyN%eV^V8RVXLsE{?*ls@{~{>D2&57UF~9M{bbTRq*b26 z90#NLXrRl1)`P-SYzdFMdVlg1rmoE*PnwiKZ5RV3^jry7FF|3BFC|A#mt!kwFX^bK zFb7KBSR8erWF?dg3gfnl+w9_YdJ0oMbGEkU`RxNU=Xq6ILrG!=~p;by~6(}s_AF1PgS4u)2qhwNE5|$C-!n{*^ z$aivG-kiOZ!c@$I3vQ`ylQC7=OZtU$+*4w7M(AJ3kr-VfCCJ$^Tv+n<{P9ul@)(yr zq=TNqxINPPldgSu3RCG2-Eq=s(m$lcYb-CG;X~fAWIT=bp=&`C5}rnbON<6eDVUv! zQ7b-=)K&=BF%zRMq{m6mlIF-A6V3agxFxPUJl~{w@q7~~Y)czC>N{Hrqwy%|Dbn+# z38Xom!cq>1yX;E2NQ$bd3*+WX>O~j#8R;9+c28lB{Nny_IVzAaJJr>ot3ztEGR~)t zldH8Fhhtl%<|I7Ju5ONx3+o+pgKUdky)TmR)Gk~Y_k!f@UIF8WYr{&YS7{mvb-;yr zKbP`;bai}7LL6Kehdt-_E-pplK$%mIyVOlp;v=PPq&=jAp2EEEOL;%Iyh}ZWsi^m$ zOZ`bwl}?eal5)tHYAV)qP*_S6nFj^0#|X70^&|}@y+oQxdfQW29-jPup)$(Dliy0O zk(Q8FkXDm6cnZtIY#QLodq7f^x_S!Z9+Y24e9px^C8>>S4DpJ={>yjFI3QNI} z(YdOq_e*(-L1_!=d(uu%Vcxys{&sn>pHadw4JdQm6~-yyC`bu8l#WVypfK+|ag$x% z_erZgg>iSbjE{c15&gKwQ<#cx?Qe0ZyIRD1I!sFQ6z0GY#q%!5Qb|?XNW%7BUCP~> z8s^2;aiq(;v!c;=k{3?n(vM4yxVSTts&ti9TKb``mZ!{lPcg4jbBP0mZNW0Cb`!=W zODmC+TpFM@zw#9i>(zoO7zfnWoZ%OzrTZe3!(vr90`gys4tD8Qp!P zwxn(>r7!7O(kRjt((9ymNlQqdlQxldkq(nik^Uj&kY|&%&DWADkZO?XlA4fOdD5qz zbt{FV0wp~4tc0hYm2mX%|0gb0=FqmAF%Op1mUo-r2M37J%u^2*Zs?t_q~*?gzbjXF7Lt|qr`1-Iq&vdydWj;>Cn{Z#%#}dSwa7uU+P6=A;Bz_c(wm+%Z~8IAS51%?&!{V%o-A)!i3{t%@#H2KhdPw-1gz4(k^__& zJy9z@dhZ_4d$Z)+)Dezt_52dYwwaF)uqI!1CF5FwQkE%3S4i2XnkzsmN-9mNNUBP@ zkyM}5oOC~_Bk3{HlcXV}v82hQS){q7_ehIK%SfM+){#<4TS+@ehe)SLmq=Ghv1v9| zIY`%#3Xw{Xt|MJfx`kAa)SPrbsWYi3=^4_Cr17Mwq!iM8(x;^Lr0+=q?<|il6sLwk!FyVkam&Il5)RlbyOkUP3l2(`dQ0PaUpSDB(V_5=K%9M?s*>wH@X$jS^~8!Zkr9ToY8nH9=73Qqow8 z5=v28Ncx17>M3(6`&o(-N>O^1^p>a0c~@}Ml#o{m%T4K187rl)NxMnMNS8?2-mn~n zN##kkJ!Njo@9c*X+MnU@|dswm(N>)P2N_puDk;;%NlWrp2PP&uS zmehkZkTi-kmh`fxu+5ESgx0tvgEMs{yi1|u{*_iKi;rr#(ZCf~C0wHbg>fbJ#YgSiVf-qSs(T9KaHaRcgNVbGUZsscDur=aKmK%a zlO$DXE(z}*s$1k;n77!^@zE^T=F*3exQo}{fgP`93L#K-EwycMMd@4B|!KsqK*HmIvbcPpt0X~KIuornzy!zDx;M`qhrG4#s3oZ_sROAqsXM8+r?6zKzvJ#jKd`QX!qi^kCcD%Dq~Rod-3h5-j=7RL z+vPx<5@rb~jKe&A&&A=(9!mJKhZ4T*0Sa?q)TX-}Xq6IL01D$ilGJ%FZX@YeQnb)g zi+Kw3;y&U`mv@5XP)hL>#-S~V_hHl~EH`?YgySJiok=%`^fu`O(nq8fBpg9$DI4gv zdCJ_D=59Or+gkYwl%vz6^Q6n91lgWyTz1kmq-#l~NtH-7J!Nh|9*&06UTLY)&!pp| zQ>1@L=s9v^E_o13R{D6QY;&AjP1;D>;VCQyb1jFx(0=r4SlKvv)S!!_=New-PHJT0+`H+T|%M8Oywkyq_#@Qpi^E<66sF!KIr6#GR-O{0 zZ=@d;q_)IpH|e*7+LpxVggCsxofusqrRPXW``^6z=>ES-30u|alDrq#8GY+X8b}&J znoe3oTJ0$;Z%LMfXh2t#x586mv_`0hd)DgPQ}RrQq=q?uh$TcbT#ln8Jj<@`FS=Nw z#TE4wmhxuygy`MwsP_ZXG7^@wreaAe;piU}mV&1>XSh;u$4&`PYbxPsO(h&7DdA~N zkd}g8>hq5Au9T6|0;O@D!rG>bo8sbbYcFe~qnX}?af!JTqTccxU)$luNHs}!liH9v zlb-PumUl2$Le$Nbch*ywI!9b5m--RuGtw4MVGexbqf~FS58tl?g{kcdCq(63YIjm^ z(lF8j(l*j@(kaqkp29kCo#A>{$3Kz^3RAItDe6+!6_9sK9Bn84PWq2jxS+*VBh@9f zBMl_IM4ClfMcPdInRJ?Tg;czd)q5N1KGMUazN8mOlSproJ|*oVogpR2Sm|h#A~o_9 zjvuzv)!eAXu9a^}IKuOZpu}jIjGC_9x2&-HR&`0AF?EKl`?{@bO{$SI!MpoO{e^U^ zH{Mg&mab(IqFs+-uJ!U1reYtk#iin{P*9k9T--L7dWn=xN>NvmbZm(HHl>TZnXZ|q zu)Kca5*|Za`g_vU^sT_7Zp+&6VtfP&^L7;XgiGyB>PzbHDa=tuo))R%a(sSXDNMy2 zAMpsHOH6yhowIy{TbtCohl)1JstW9a1#3_A6+DzI`+D-b2bc}@B zP)g?79`A(Zf#*+^@cbz#b6f?tROiT8DdCH9O8BCj62?ynUzAhA7v(@}@vUcMOf zIF`&2c>`JLJSjUh7`&eEj2>g*md{m=GOswf$37DNMzCZR=clO(d^U3s0Hb zyu!s@yeT09g{3U3oDet$OR1EpRhv_Kv5g2KEDZ%v4%^}~|cK-xu0^AzT| zATGt_$bFkpX;KYOVGhi&i7v-f$*VMzG~ZL014p@K+>*gpnw9XCW>6Sc^PYt06ZZwA z8}Bx%PxoU}bAOR?HZxa-REN}p)QvQdG=cOcX$5Hu=_u(6DOYo=x45Uw{g~$Z(OX)t zG}u$-xOdoJCG=OR1!+79GeT3}r~8VupLCv-N5)EX)FE{w4I|C=l(~Hq**+z-PYLY< zWzO*yb0{H)5^^Y^M@s0C5_+VB9x0(mO6ZXidZdINDWOM7=#dh71j^jL1#F)Z+NXr} zDSaw=mC!yVv_%PRQ9@flnd|t7bts_@CDfsWl0ljC&SG9AND~iBaX654ki5dfKoxavZN{` zyfdnCH_=_U(MqmEhqh=OTB?MWD&c;QQd7FNBz!4EQ@fISlb#?AAPpvsAdMr7~KB-|&~e&9Z_?;8pCiPhc09Ji9{lIoEfkQ$PD%8{0q(wMFZ>26X} zQgc!ZQY+H^r0y)a4P9@#pKi5!@n(d!0B=wz9bjr(=Iu(td!!oIk8U7oIB5bYg*2D+ zA!#LP1L<4RUed3m19B{{Ex>n)l}<7hPbsTAPj{Jgl@$M+l@cRmBjq6FB3(nuPbx$z zN-9YzOR7MsOsYnzMXF7@jZ~l1h;$dJ8L1_yHK_}!H>p4AdD1vi3h7PK2c(Zlt4X*k zts{Q+zT*7l*v^7XTqu%&*4)W=g8mpmaMdez0{Clx1EBvm8TCfz}5MQTra zl=K{FGHDKJ8R-ksH>91U1Egc5KS@_eStnYL3X#f@YLjk~d$Zc}dUP#Gok@?A29w5+ zrjp(yeL!05DID?D;@)s0j$i#y+CaC3R5+)_?WQ|O`i+EhPA%mxx+^4n?@Lp2kqVPa zlPZvKHmfJ5yw2ZWww1@O7>32_It8m5jl4}*7icrGUcqQBi1BE#b%#d#ek3&DslagLBSHx48 zqw>sz=uJ05wLNKS`cYLeS047_O7}`Bps*Btp>DUEIXg&)NXJR1NdJ-YPO-eDNL4(A zb<~x5^SZV)_LRA$2`&}iCQ!n+36z?8N{ptp>^1Z)&S}5MGp^;~dMq-BU*6HUest-n{bgJ<#|Y9?(ri!R*xxOsY?_R* zYDvP_!-a9U;`N=2!?sE3LCFCM<2s4k>EbTRceg-cDxL$#G6l5_k~pPtq&G+(k-jAD zA)O>$CM7Sn@``&3>pdgC!T56u>iySKnA+#Ce1rW}q+-jj^c>xbq$#9Xr1_-9q|Znj zNxMk+CZ*Q#n|EPbdLEH)L(W87`jLi^CU{DWaNK^YY=`8_BXX>#gyV4~9Ls~klJUjV zhM%Kkd@&Uiraqk~OLTG`QiqU6cnafi2Km+!#Nk>!C`?^4D@#;tDN@&a3R97{v`fXi z;Y#@8u@b(f0Sa^Ax1y@L9QgexP?(DHYPnSONC~|Jg>iV=YtScX6`to(!X8@*zorEW zbKqHxp)N=BPqH`)Q&HXsmx{Odlu$A#j6*Mfc5_$;=QEDUgDs>|D z^%UlPUfiFWmxOng;len)mE7o4jKR&HW^ojzqDS3aDtZJ8Q!%=qyK% z#n~|^OvSgP{#=H7k*b7!loHOJl~4*O%)2ammMGEnZ69eqX$xuBGK>3_gkSH}y!d@i zrBgmNtOH}8!`1P(q$*{VkpzWt1;yoYaiu+lsTIT(aH;sluTmB7!Z_4c#Kl#YRHa); zjY+Rm)wnP(u6~T!j*)!0bj(qhiX~XsrQ*vsN?4YlFz(%wv8bGj!&Mw5EMFy@?SR4@ zI1in+5%uDYbtQZwSqZ;WsDxh>1BH3_N|R)HD5a1JF0nW~ zS*WSAnL3ZOkks#})rMng&G9i)@hw($E9usfHjx@VX|>_m1E@E&A$>%`uS#l;rF3gZ8%g+0IE}+vp;RWx#%~+r@GBFVx|c5R?G{)0ytVHD zQ;(2Nk^Uv&*J-r8_!U;ldlk*$DukxyWa^k7%@w8_yVjOMNxE{R8l;wToUG;H%tomm zQ}H!Kb@;ZmQZuHuCUqdy+hL`2ql@h{_ZS_1=~T;miVnZ8tL|C4k)(+v{HC|YO{05_ z^Z{up=`+$sQm*4x+b+7FNk>ShNcasNtryR{D_vx2!b)3O*+>ORB}i3Bw~}xaspU1H zdw|rL)RXkg4r>9vPOf?Jb#f(qyIko>=6Ieojx>#wLYhljMB2O7YFkOSmh=s22WcDU z-;1QZOg%>Wi*(^y8^5?!Mmb0~{a`)HM^~IwfmDlhJLzsxuCrDOexq4Os5MhNlDd-m zlAa}vCQT*1PI{lToV0=TEomR=DCsomGAU7x*R-X%Nd-wINEJynNM+<`6L}M(#`5(f z{Y9rTa<%8-of+M^hqCxod{al`t}P$S6c_H<@qPJv({WT#hE#*pfYg+P>p7aE9bFI7 z6QrS@!rG9xk*jUIq$*+FgTgrcR^BCd_JrTh1BI!0-}Fy+286FlDJ}Xzj-NA~3*qR$ z<`?K2%2Pslps+k#QR?L4a776erk<0MySdbR<((-d?0b~1_|z~5dfD6M$i6F!rvaPg zsa@v^(Ul`rC*9&Hb9sGT-UgDY)RfeU)Ry!xsVk`u=^4^UPnm1$?`p&QZ%Wf8PH86T z9a4$K^4^%_$Xv=GSIQ!ZQ(EpRbKFoDhmw^(_mnwqgp1oKsY+WtWsV!;;_wR#N;62i zB!{{Kq%==qDL4x}<4T$IV-`<%I}g`|SQRJ3ofOYJPFO8rS&f63xpm}8iv4s$uikS2Hv<8TJ~&<{4IN;vye z!kB`>960mumsJ4qM<|$0ADXy+dZRROV zy_6#s4RNV)IgN693ggy_8}8!1_7tY}&K-*$-GVWAoHW2w7>6&qzVaR7#+HbAn(Qfz z!<(nCySS-yvUqw`;?&{IQzg84s)TngKw&9!B}dEeQQNzuMWkh(!W^H8YvXckARz}_ z7>C)u)Wv-xsY*LNg>eVOt#om}cnVWd%4aTh!XNTWb&h_MIHf;5WzMnQ#a)$DrChQ- zP%7yu%yFZ*RF~sUPhl#agTKqo@md$Nc*01+g>k=KlKsrr7|B0Le|rk!>RiqejdpQ3 zp8^#gyBuw1XK@s!qP*cO zPYLBIp*&ES1NE+QIgqM^Qk0Na342aZm=|v-KdmmzF+#4#9+`{2jVGme z3gd7E_cs@Z>$^%DNVux24%d7^VP3TKg3F6*>q@w`4hrLNANF4thkLV1ze#yY=Sc}U z%;oVEmV&Q@XLt8R@C%Yk=n*K4!<(YHU0h{pi&9A`PpLMkxu-BMj`{PuyzM1bsk^5z z4kL7}i^KRSVf>UZYDyS2P?#6rHK_YKmJFW5Q^J!CpfK*{KJv>GE)G|Ply=jNC*f+X zre3OMIq+Qwb(@)rD`V>L)SuE$rv5~FkR|_28bsH<$Nq7QLOTIvdZv(0OkFF3) zNtA1rnwo=zCm__N9+5Yy+!%bx9QhenoP;Z%8dr^kJA3MGqr+OOt^r*$(tRX6{`?pqKpqxO>HY1h8qq-RJYNE1nKlU9?ClZyOfeotW>wg=Cek8r+)__R~ zo+`*PS2sM$;t9`@shdETLOLyTTvOknTTH^z*VHw1n@CvZn))3bevMWge*aPlb606E zaZ7A!X8@*dvT=-w;5F?)gsj<<(8v= z%~6Py-WD8ZYbuVj)7yvR?8NAKdHN(fj^3h~a&D!B9QsVr|J8zOtoKRQ_J6hNHpUHL zTz$Gmq`OGZGVcHC(NLzoNJ_unIY;)+y4(s~u&bP7FWc47Q|GNmS4r6=4!sO#1ZLQz zBbZ_H>&84S^c2P|xj7c?Ka9AIp2Ad=((6~GK2s;=X&C8`H{`8Lmx_0SmGCVArO_W+ z-j|tUF=-WPBk2dyA<`MrMN-yVtu2K~B}f%WXRo)oT6A}k9wc=o^&<@V7PX|1OZ9&{Z z7x%lQg2GgsWtBgMQt;&hC4ARF>8(aFPxyv`x<-YKRx=g9KBTEz>3%0&A>oT{8kgMI zN-j^TPr8@Xh4eIOB!C9JDTSXY&>t}0<&Rl>TegmqO3>#7pgG9|2K zN?6O3u$C!dEmOi;21<-hH`KY782v}WJjMJ=j4)4?{x>e1SN&y~M{Zs{M;b;NO`1rW z?kOwHU_O_Ae2CAGB1hJx^3H{$5~QtJ%vJR+%!}X1tuzgJhpjc5 z<|&N3W3imuPeELBPhsjKQu0MtZ$Hv7(p1u1(o)iwq(h`Dq$10#j+Aw|)lrmGo79@rk2Hbw9%%(>Bk2dy zucWi2xD{4!9#TnCRnqOG=A>? zm~@epyv9l{OR7U^N$NowLYhTdL)t+)OUnD1)lrAkne-BA3F#-&Wm5Uit&~=z!KC@5 z&qzOzPLi^GVWku!-AHOq>P{L?dV{ozbbypqws5+=DoLtK>fkBd!o4o8x!X=ICT$?? zCY>N%AjPk1nRN#DvZW+G1iQj=eJIw9&S|A})#-rvp! zBac!=vRik5sjLCK3{-l1sZ77%RD~&o#m=oxM`d zb>5^V;TqtLQcihqbO}}#Q^A|Gr1J8$nUZ~?s1gm9*9Pgu_1>hHT-h5fxvZ3PgEv}o zVKLQMPJJn7yp&Uu1|?4wQ;Vj(m{-KyNb`Z16=H7kCcXBXz0umsON<=k$)7yC;`-jJ zeH7KnVDd@Kt=^<1T_ek)i^Ry!oyi}TPDL@rB<6N!Fz44u?OVmvqj^Tm0x@^cw3A#l z#oS5rq?lX9++`-&Mztx8jcPL*>uGZu8!5Yw8OB(A}D;n$9eP&`M z<*XI6_kL%j?{OIoW>lrY@}`5VI~oIXx0tWRw6=1R9}%-%OdFbK#9)n+&pNxm)Z|fO zu#IX<^RgIh6XfIF?k_c#UA8SpC09H5e=G~D{UI8wT^5=AA;xO&Kx4H(Ok=foq_NsN znTfO7aiMyf5T83Z;dUXl9DRh)$-#-YToa$f=S1q0MuooW{~--BrVUBnETi zWgn9gVGJLTnCUbapNGY~VkR5L=Tvee`(ylJ|BmtLEGw5R4sS5>T_s?qnFu3~T(3EU zHP^=Qbs8JPSu{3=Z_wBn&Ze<3oI_({_$G~w;afB|hI46b4Cm3<7`{zoV>qA2#_(Nd zFsf_)9DC23ln84I_MY$4U`-h>>xXt1U%6|*#h`Bcm&8O(YyD`~K% zY!$P{8H~KOaIKlx!h;DB*0^;v+r9ac=67#W%_LtHgEd8NOt`<)caflO@q4DWsjmgG^p!cF+VzkZOg|CE5Oad2wp=f2B<4&8(@M;_45qV~i!}F3uBXLZ zcE*khu-CilO#QY)u z%Sm%c%wO`qWST$3T$TUjqPZ+4Cfmc@G&vT;MLEUfp(!FJub69SDv7~d%}aBm7;IPb z(bN}HLQH;|mSV0GQ-J2a_v4~R<$ncf9+8;J5>v<-tY44GjKatlrWq^-BY!Q;CRu`r zDMB;e#}suYoEycwNlUVl(~Xr}oH15%2^uT8q%&w?J*jJ`w7C?`U1COxDNWN#%s4S+ zXgZ3SBBrb}VGFPGCN0TIPB&I^ImTGYuIc~m7PIPH_IB= zP}cVhpvfaf z4!0t?aqM#y7xTQBS~S;-87byQnmS^}in)pAZZT8D+)UF>%qwDQ)ASaDx^AKAF9vnh zp&9C9Zl!tA$K2*jxCHBZla^#7mTqjsZfA^*SUnmWvHCPNVhw0)#O|Q65o<_eBi4w< zMyxT7jo6(uHeyX^Y{c%Ou@SqQ#zyQO8XK{uG&W+*oWYE;?Q?S)+dkh*W83EzG`4+i zNn_jRRy4MKzK_PX&-c^V_E{cH@pH_!&uwVt$QE*o{14kZ{G}$__PH&MZJ!^cvF&p^ z8rwcUL}T0M_B6JA?m%PP=Z9%*``nSnw$GhtZ2SBOjcuPh)7bX83yp1`yVBV9xf_jb zpSwGQBM=-F%#-a{j|^ssnBFuvD)>^&;~C6OF;8YNa+4|=NQ0w-%VLIPFiEmjzL3FO zD`q4OjtZ)XdC3_puN{kZ?=YU`s5cX6E_*YPCa+vE!#-saO?8RcB_&U$Y36fHF%#=0 z2D4=<%?o01OfrpTl8;F@ulbmlEhf3AuRYyZ?b8|ati)g|I)ldA^NJa^Cxyn^^D2$C zC*4?kW?Br}lWwf`*BE29zi!6Wj=s;LvD(v()t+vw_BUKEoD*RQ;+ki=!4ia-%@`~} zm^n09f-rA-la^#-_!f<|d9Il_TY~dwtj%xJSew(0wRyh9B-s*7H&**QjIlA4!x#C( zv8c7@Ju_^N94cu{oV7~(v7u84yQDR?MXLQyR4i(#%h;UNR6u4Sx7$S#gBDOS(3qEZAv$|YWChucP;Km$+gKD%({9~J6gDz=7jVeTR)7x&dhrx<{HVhm8Pv2)b$-rPccO# z=6jj}K4!a_xY1&8rm(}Clx(xal$BgN8DrNffAA)KoXzMs%d23~Zp)Qqe`+nxKat@k_OOO^~E%@0PEYrPWawZ0bS6mNSOsv@_a?Mj(m~J*ymEW}& z^NYnK+sOY)Vanikv}QzIY~23mOGaDA2jp* zOgLpGwo=SjGGeD`HY1mqGiH(x!^r>sq_KXTH4{50F<1-EnMsb5H3f6yFPfraaO8EK z#+J?nGcj8_7tL^uOE)$X{&q3pvHB%%(vqz2>Bjp0kHy4U-~XktzF#(zWPQIvV}1Y6 zOq})os+lC~yWZHtT4{ZclM!*-pKO?QcgymMcLwwD-CFTcOS#1$KhWU*Qj?d6c|c4S zn#DKD_w2>sJRg6l$z9~TE?vbW(mXAuLLs^LM>9dpqY@(zXZl=k`xtq_)|=HnCOge` zF<4$XXnqxgWr}MGx+SqT%V+kzu{P(Tu{O&?a6ZP`EH6xXV{N{M#@dXl6DD4wdW3I2Wa9 zDrT0%6r<@T24h&9W}q09it8!qV~F;Yq`?@XJ*8-@J*8BHV>pBBr{V zw)7??LJN1^97Xbv8?lrKEj%iwEe%@ux0ntzXkiYiy)zA3SV9b*3B<^!WJ3!pi|I{+ z7UBx;3(w?xAn*60VvuS?vW{xw~QyfdYnZY!WnIIb!`Lmb@#K?xynY1Kp;RiI< z!UZ(e!i6-}!VhVzg^Oscg^OuyR6nAzQT>?4Ms*2|jp|ZoFseU%uH&H6awc56_n3*@AWQI=tf%s_zxzu~ zUbs?zHA~EoH1#D0W*25gKdHQ5tJcnwdCj&oO5(KK0~88O!}Qn$}`4pHI;A7W0<$ z;&+L64i;1VnE2g0sdF|Ziswn1OG4d$8H#doCCniSITnzf2NYh>n`ks}h zw~xt2GtkH2+OhU@q>sr?GtI~3pn1#3$Yc3F*HRyoO!JkG$wjlr$H>bXKGz8!lZPf= zrV8484NVa-=vQ8vnm#5Ujorn|Pt(-rD&S4}5p_Yv*xHnCY;7vU7+aeP)7aXCYwJ2< zwl)vw zG)*MeJTbWXkH6Fy%m-qsW-!ad)S#InF&o6x$zV2#xh;d)DW;w?;ria#o3uDr*F;?<3G*qLy+EF zl4IIxVusLIT|;TCE?o1)h^6=91#jeeWB;5(y0O}aF~({iPGhx?pt0IKZHi!7((bYqFS^Xsj;WmB(Ldveh-tnXsqhy-7>5+S85I zEiTj+9%Rj?eYNxA7iyorm@=bOaT5;ll%EIj;S;w#Gt3sXr}v^mucSeG1F=6 z++haIDj)L-jh#)T(0uP>UZt_~i z#s@Su8VhJ_G!{C8nP5j&AJW*7)uMFcw~&izUh!MVkDLid^<=0nu~RfQVy9_r#Lm#zi2X@pBX*X?M(iAojo4o_He%;#Y{V|m*oa+p25X#Mm-w5; zjw&zF*ctRcGnCodq`k2Zz6TGQHGu<0JF^|906{rP=OHHJSt7 zRCfkfI1z&_Ukw_>z|^Ecn_+6vpv^Eh(xA;SH_@QYFgMen%`mlT&}NuhoIx*ai&Tfk zwh6b=VC~+QQ_jR`4y5WFt4s5{7>ug?9EJN!P0l9|zuZm!5jmEt+H%Lz_%hkIUG&UM7X>&UShC4>`IeU9zw18Hn#K4XR>KgbM6{y8%o`N1?#Zj`$NGR{M3@GH~{#5_-f-&w-U98QB@ zW0DK1(Fht_UNlLzbVgcClC3GDXl!}CNMmctXc}AYV`ywmd5OlB@>m*MQ^wKQavx7) zYsv&?u(z_O=_XnX-vw5K?N|wU^bcFebhAbtmRu=j63f9`v|WbX8qKq^l#%OoGqIAgo}Lvm%S`euVsIq$hMCxdVz744rs*sulJ>kw(^pJ(F>^DR zd}8L&43?PUV&>C~@wwiic}+}3iFuc1k&k(g=2J0sB<6jZZ^Sef^8w8PF{o<+&3SJY z(qK(FBz^zTOfp6+P0S)18?nVSQzREg>?4|Y#at5eG0i41IIdet^Q)NbvMiR-{OMzs zn~7m2Tq`jvXmZFNt)!S$G?n~5ZZ%B}G1#N6p}ED!d}b!OiI@sf&gW)gZGFraG#$m% zl9;tLy~NxqW?cr;M9g|;uqU!P_9cyt*jHxaY>sU-lVo!&)l8htv9D=tj%}i`IkqK( z!5rI4V{_~~8k=L^)7Tu_Mq_hqJB`h;9W*w_cGB1!`+>&h*e-9=Urx8*DO;UsSsJECbX5tEo!O>vMj60`>Nu-%`P`-jLA4|bA>v}{~ zMsgJqlg&&Ve&-S6BR@`}F>&^!oEq%)4)jTIb)}oX#pIIqWOum`lk@R}D8HB-G^NB8 z6(c`b;{H;TtBNTtCYh$Ln2KU@(Xi{&*iy8Ek z+{>mJD+bSA=BJq<1~az+&1^B_;%vEBr?KT;gT|J7O&VM7 zH`3U0zlp|{yL?Jm+Z<=hT|S=bjV*WiWUDu}+~rfD-q>=N&u@BT%UwRI>5VOS`Dms$ zw%l*0vE^Qm#+G{n8e8sn(AaWsNMp;rF^w(vJ85j~ZsJW!R8wY4U6~1LFneL%7lY^i zb-Q6(q^2~sMQUb-TcqY@xJ9~`#?Lt?I#ePsul zxnkPO7T{r;gOoUb4Bq|fNpqc;Nm6?+n(E#>N>fkF%M#Ov zCLwElG)CIPvhH5#l(k$|3CQX;yw4B#yo)v>~X3=~pxduvIZ_w-!gQJ4kG-=+7E4L7U&ANtRxqu6Z;i#o+koZJHXsr}Jr=`dsgtiR&q5h?M-EnWP~;*ZVZneXa%G z=oiVxNUnuuvSH*WiusTRBmc6PMKl=s*TgKQ!N}uC_+w|V4Y!eBLSrMpl*UGW8I6tn zavB@?6*M;TD`{-xSJBwWe@bH`znaEI{xcdI`Oj%=fctY1yvE$vqx-1RJ-yZ9>#q%856VR8L}XjutZ$*G$Z#5|fz03=@+hgP9>F zw>K#f`ZZTf-VEk_G5MXrcFgW~7of4b{{?AqO|OWIMj@JF@+wAWX<=cS!&29E5_2uh zNilt;k40$Wd+V1li<*hqs1~EKQ7u7Zqgsl_Mzsu$jp}tYHmc>!B-^M~qGEJqEdY!+DGj{BUBfT5ENlUVl(~Xr}l`&RwH5x0qx-*!W zw%luEFj($4XE0dqw^})IGiBr#i@BZVC3y*NrI>md%oZ{AX+Dx%hs89^VEz=-$V}2I ziMcFmZWCwFLaXa88msH>3Jd84BBk9_n@)bd(l|!y=koW z$7rnfJ~UQ)Uo){RjS`|?<=WR1G(U?uE9NPhLXCBsFo32<-S{X@KG{0Z8Cis z?thJ;SuSRm1-P7=^PsC>6r*mnnr}Jp6r}Js7r|-~MPv4_CEq(9)yxbq8`ERej|Nen9m>U+efW~4LS}u35 z_DLz{Lo-QsKX;Mka^I6d%wjXi7W0wi;vMIYErxfcY4}7?y0P(DV!1fSmeSZbFQch1 zeaBw-6Em^qV#-JhmzzoMAf}R-l{EdtU`BmPGe*oU60@3Sj*t1wneZu;&uOg9U(ncW zSxaMWUPohXUT-GO+PuL`lC}9O8f$YZjkWn}8f)_=8hrhJsPt>IGnffxwlJnZcR6Nz zSk5nKt`k$ZgS<0q#?6gqq@3?qj^+BE#&T^l<7NwTZD%?5e8LXK{Ey+>U`(=&^G?f^ zyj)uNzLfj}O{$p1Vs_CS6oaL_hvt%)wGy+JCaH(U?4v0r<~xb`$(eAu@29c$9H6oG z9Hg=K;HfgbmTT=fOk?f&g~r-*gvQ!)lm<&Mw;W5PIb+Kd<``qzN-wZp9H(jDIzGxL zU%>c{2G@iyNKa4DbSxpqKVp72)XpIV~nD z%^)!s#AKrxDdw`6Bxl0o)$HELyMex^>Bf4RgE7|AoHW)`ynC!`iuE)XjrBA)jrBAS zjrH^z8tZ9Z8tZ938tZ9(8tZ8RXE5@1E>n;O-#r*5cQ6Z?alfeYVPiRG^yTQY5Jkll z^(HOJ$|+7`<&?;f3ujv;Eyg_;H%CUEhR?;7W{f?NScV4AUA!Z?uA{+oaZALMqp|1W zD$>|J`bso-F78vwrA9_0hBKf6Vy<^FFx|x*Zzyl$GMB~R8CJaxU@_HcET$&QDJLIF zDJyq;Ze)y^o6NYr(lJ>rhysW$G?N-n8fsya?;J;VxALoCu8ht{9R^}a%I)u z-?`fvj5EH~&_Krd9y7`7hQ~)YifKx-OU#2}n$i3&rlXkVG*`vo4mjSx$6so4Hu*pf zObeQ8#9)imlBSe5t!S!yb05uJ-rR2{_K28nQhVzR<_R%voWWMz`qkb{lJ%Y z45azPn`daQdNYV7&qyu#S(@v-dCpAiCNVe2_HZywwuJcT7BNFIm?mPLcLsfLEu(=M zKAh$$F}I2tK{Hki=ITf@aj%MLATgt8-V@VI%!@QO>&BSjtb2*ZX5CmCn|0%8Y}SpZ zu~|2P#%A3_8k=>KXl&L^rml*ZkjhK*|3x^=aXk;X|R-GX3}6O!@Nd= zr3~{r4VE&@EE+6jm^Wy!lwoF@iLjK%N_*zeU@1=*^JWG!SIk^zFf(l_&!@4a{0@yR z<#)}*Y$?A-V@vscGs*qrBVL&E3uuOWvykRxZ$6}X+nYr+%e`4llj_Y!W@7uqV1|E8 zgT6l`W=RI~xR_69O3O#ZCW%=^bB~xgV%9i=wc!3yI_E#9!4`6>jNunF7(=Ly z?5)<(j1+^XBi7T*5`%ST1I+1c1Yvg3UrM`ueqzv`oX(&ZmMfXYa^YQi?SYjg?%4#!4m9jMW zCAj|M#9*sco~DbBsX+6rkEuwLGpAlB!8cs+mzrE;on8;W-b`!_ za!Ku#%_J8e7az5rCg(de4JFq@Vs0?w&IfynsY-Kjrqm^-x-)hLjcf0=|P2q8TSYtQ}8U_IS?B0hS$qnstt{C*`q8r?E;RdnuC6p^yy-@hC?kgRrtUOF#h^VsXsUSAlO{P! zeAGqi>P1sbK2nZcy=m^0T)iabQD?BNv-$IwnPeM{J~TEOkJH#_^rf-Uc!I`8qaTfp z#{Z-1&f{*X`mlkY<96btQg3-Dw;^M_qz63*LB+O^S(Y$f85{ax7J?6Z?C=2K6~$TuSKKL-J;RxVbN&x zv}iPXSu`5GEgFqJ7L7(!H6l)XbFDP`|aNv7lBLWyyh)0}9v8RnP)h~X0u4_frj;o+81h+(#juuOssI~VW8 zlB7!EY;!iY^>8HI-?jBeEZX{`7Hxf$MOzMYAmL1tUJLgu5?97%E{$vsbe8e`1zd2A~%_H-6RfM3C41r=Hg>Dz)6AQg67P9jNEG zTky%(@)Lw-!f#s&0fYRk$H zv&OP9#H_V2S5HShA4yWX5W{_Eon=o<{=0u=V>t5adrs8%4N*OeQQtqdsPCIB>iZ`a z_5D+e`u>?kecx(P-?v%R_b)8!`*ulEegD#;zGsCw|MKYUx|);Ur)AImc0{EZQ)GJf zsk)u2C#_PuEGo6zqEcVEo^dm>+xprv2lCSuxI5IP6jNYP%pR3W)kJ%CG{v{BmT^IT zu*`w{g_xf#s~|^WTfbPghEfMDe?m@0%paCAPZmm?1Nqa!n3|BkEsSXlIc#YSX$i^0 zdmH(0WvUCL10-b`0qFuMVtE>JFC=Z@wz&19EZi2iezfIn$Y98^7WVyNNJ$I(&JinZ z*^N?D5mU}`9_C^Z=jSxTQtl3jfZT_n&mqzn&mDQ&2l%3X89hAX1Rw&v)sp` zSsq}~EDy41mWKw(-OvAEknH{ZTk&aqL?m2oF7K3GB_6WOEuXzs!1to^-^$F@1M?C) zM&S1yET2QZfjna2eR{m-_E8J(>g2Nnqa@MQgIU=6Xv?^_aRvezYncsM3>hDZa+POs z`7!wbF_U7l0Wu{fJQ7U{Qjk_pbE2M3cZ_=aq(wcQVNp-{_Vy?f((38VAh|aN%yNvj zo)c|-wqvyQITmgGX^XbbH^s-dJ}(l^m#&;VBZ;o|^v3wiw+z5I4}&}#lW~yeBhkon z3||UTkXFr>=sF2&UZ|L)YF-=@*1RMVuFpep*Zt-p_;w&B-#}isY{v6?jCm{6lb>Lz zzaT4OQfw$5r?;>aV^+JKQMkS_8L~FSWM_w0)z$?mNWT=GNndZNgFD7~{=C7`{p##D z2p>nnaaO5~7M0@L_W5sRMx{Qn=o|3O7T$q;P6=GYx9Ht#pILTn%6@*|V%Za9tK~Nc z@66g}Nqmwm^?4*bkJ7fjuxMM`E!q};At0M$+SU$>wzbouZS9JLeXoN%HhJx0x1|+? zqxzMlcaX1Lk4k-GQK&Z%#63;q7Q)F~vl8+}#N|$~CK=j3ljka-w?pTTt2d@NH47=NQ!--DTPb zQd}`<-nB?M)}k3KVbKg8XVDCnjD&m2NyuJ)3v;|hzok{m!e1v@idCYtr3Omz$asRK z5ro%m%2--J&cU}&Wh43Ts?OiI%Fdv+o)c}oykoTW3KnhsM2oh5l0{pu7zyW;&(*fW zh@I@1=2)ZH_fssFK=>*9RLg@9_Oz0vD}+6*Y#AL!<21|6FdC;@G&^TlG&^Tnv~KVh zce3O24(j;`BY&3VGYCH~SGD{E`4TbbSdyP*W6rZw+?-7Oh#3BIPqyYuAgrgF<#?1z zV0y7g6w6-5~ji@34mRy)^YKoaLElVOBWrjN#VnM={KK&3jHX?+qNIdB4n}d2eXZ zyf?CF-Y>Uk-Wyvq?@cV4_of!j`xO?=`&AardozpX{Thqr{aTCWy}3p6-om1J=UDR} zepd)1&w0PWqIthjlG41lwrJjYB#!DyQ8@3GjOP6&#bh+^Z6ztq`^}aHSbK+}J?$gW z+A!`|PK!!)mH2pZm&C`5oM@fzrkLn>@dVm@ zcO*DR^8MKNNPN7=iR!smG0|P+tf#wb&M518Sd?`=Ej$)X#eT}S@kX-~9c7+^^tNcf z=ws2o)7PT?;y#P^oqiJMMt{o(VO<>%6Mk1aFedfUojdF}e zY_vrqHb&xAbgV@q_E=2V({VB3h)s~BHDdXaq(*E~Ojyrki$-j!B&`w4iAHRiV>DvZ zEgG>I7G>sB7G>s4i!yVTg=ag=%-NA}KRt*~k(~EAmaX%$$K|IjiFdLwe8xMQ;U9*W zd6uI?%rlnq5FX#>Tlznn&9Ma*z19C&OBIyjJLR6U4EiYhF6HMf)k4e*mimw`=*5ec zYeLLRmbM{gp`}ZRS!5X!VisGbKzKZT+42^oCAPK1@(tu0d^&!`auD(ZWT_>!0?%MV zmRU}K`~i8@@-Tjan{OC?&C(0Pw>`fuNu7mKd~?q7m>fnuZ&>Ogrr3CV?v6=m$UBys zLp|@sg!Q~{xi{3aDkiLFwS`ZPvps7incXPGjQYs(D}xA(F+_L*e}gfUwzkB6A8 zmS;oEHp@F9=5x#D5c7p)Z;07$IUHiXv?w=rSd<$(Ey|5u7Ujln%kl4L$M7plbqL4s zYfH-z^Npovh$*m)3o&~v3q#DeL9$n1wqq{##^gK5{+Rp@IS>=(#$Pev%Kvweg0xno zoM=V*$1z%w{1_m5&MQsbJBHbW%)M&&d|8NR=dMtw@zET9Hn(Xhk~Rq7~^3 zi&msFEn1PPShOOY9V9=|1p9mO;`pR#X^f|A(i8Ao;V~%#InQzfN-^ewAO+EtijUFL zYLW2Rt+nn#i`Kg87Oiy`S+v&GuxPEj*rK)W5{uTlnij2fwJcieYFo6{)v+k+>ROa_ zms*r{^(@M|`WCHq4J=ygF0*K@YiQA0*T|x^?sALPy2g^!>p05XgpqGz`3}+*a*d@J z=4%k7mE{D;a7b$lGl8E4+gq3k6A{C=&GO&M6lD(NRtqzMF}F*i&lk*uJ0juArtIx# z>4YDWT7sBP7CjN)SrUETc^ffZB4I|Uo;xk7r>jNv+$D)Vf3co!k^J}b*WHfM6}%%dRY z0n57~W=JILsp=VOQ9Tb@RL^jW>Uk(gequLj<~5>+Exbmw7+cQ@vzIYEnvaZPD2(|O zF%~~Z|A=Dz9Q~sf{c6T2%N|PW7NWl7Patki&~g(Q41$o)WXRYwQx!#%qZq6-)lY9(gD5bhV|kJNvb=9 zBR|bD{C{M^|H!=mkxqE7b{FO=R}Y0XPj}6uA>6-mG9|=38O3P-Vw-cKHqTH@Qf+?9 zqBiG5ZO)0>oD;P%NDZqEe&Wq%~S@%qkg0yPRiE5s&n51f6U{TG_O8l1H=Pc^Q z^O3Np&m{0>D&)@#mRHbI_Wec6njkM(wgy>f*#lu7F0$;0FgF%k4u+VQE&qm?C6*$W zW$SsxQXIm1mRia{_FxQ`Sx$rOgS;w9Rf8OWyk;2-DSAFWFI!%R91D3flK;-dJ3$K4 z8lRkKd{#I{4X+jAdemrJodyhD4p#O?XYqV{}kQG33TxIG0Hwa1d4zBrkfjcw)R47~kp z31p8-MQvUQ`PRZVZ-MNUM02_q@}0zO{@$WC|6oy@_etF5{T8)3D?FDNTfb0ZAolK@ zJO>#D`6(*Jn01g*kY6lcLMB5FNHRY{xYqsVZK>u%7S;TRMK%9rQO*BI(yIBeMf*hp zSMjn}A(V$niT8^_5|3d{G=_PO(HIt%cnnh(jbT=}^0&p>yB?#Fle-|BAxEfGS}{c| ziYXc-cV}8UNcPUO7FZLCsZ{bRWXpx9Ib*p4QU`L3Bs~nmBgnB9J!w+H@*HBWLaE~{ zZ$O$uN?O)IZiF0f`3AzX<T>dsR;Zi|V<|qIw!yR8ONw*ycj5vrm8U7k9F~C>f-&<#Y(I?l!UTy*-=m z!xM#(usyuDhwqcQ!lL)mTq#NFy);)@^j?~)C4Mi>wGzLV<~obsOVeE9_tLbm=)E-8 zOZ;A%mKMF2CMS9?O>4*Ky)-vT{9c;27LDP}7L8#$i^j0MMPqnNB+Plf)wUN#wS#3N zWF+LanDG4ocUWfJn3tG`n2wgEkVTMAmi3S~Ae}9HARj=wM8X-oU~6`-ywmbetL!%{ zT`enCWn=ELd<5b7b2m$E)WiFT?zR-cwwU4fSV}{9U*)|PJqO+0qR+xTEZ3lB*3;8+ z8CuACdRa1alhN{VnTPWJhCwOq#~h+(M*EVqPGgDw31clLdVg}?vKz7Lf|@0w=*46`VIhR1~Y z^N=L1QGM8=Q5|W?V4OJ`k67NCl^xYbEsM{{$|#HGVzgy-8qXA;g5OoNd>Uk|MVauJ zMVTT6iJ@ zvolTN`I>Ige9edn=WC|K^EJz&`I>Ffe9f_3jTz)8@uw|qA-GX6G1sCwooCUUK4a1B z%(rNE7FaaP&ssFg&spxo)_D%_yk!W4d%+8q$sy)N%QGS7B@0LO35@DO%QD2Y!PW0Y z5|8s@i^h3LOgPRn&QbH(0b{e{9i;z0sl-dy_@$#wQl78=Ea!H$Js!-T2I+bz_S~>&8}#){Siz zts9?PG(KNgG(Ouc%BU|b+Lw1&v@h?pXkXrC(Z0Ofq8a?kq8a?!qJ8-ri}vLLi}vL` z7VXR5TC^|kwP;`d&Z2$!dyDqvA1oTNeHM+_ev3xzM~g<|CyPeoXN&Ui7mND-t3`c3 zV9^*Jv}g=}vncBhS(J6ZTa8R;kL>}!cPj1-i#-n`r}s}9kZ`(UgEsocps4^4>3~_bCM)o9x@klvgHg2fAQfI zOAW|E#GGnr2H~}f%0coI-1?7$ajhT{wntm%Z#nbd%9OT#rX-`SpJmb3&$ejmRV~{3 zxsl*=O7h?4d5Ok7aSuaGGJS9lgXQQJ_|+A}RF6q{#MH1Lux_l zT1H~)XQ7^YmPwFWkouO+5dJ=O1Ixbf+cB5LF5|j0aX=+JbmzUTA zxl)q;?xpOfiK{GwT4z6%G_!oLH<|bfrLMMAKt0@>u8}0GLiQr&T1!QY;g#rDb4ztd zS!6n)8C(;jkzr5mI(#8X=mYFjD_41 zlR1#vEu5XDkd84~3%S$6`Pu>D9RS&tWEHmcGvpr2PRQ?&?v{Tbhao*Je52-H7{lH% zNn@|<8@HW}CWr8I? z$VAJ6Adg#?2g$d59AuJZN07;u13{)(ngy9^sTSl3%N;?cMZz~CQW_4xH_jH8qC9C~ z&6F7y_LTCJg*~Orw6Ld?Sr+z`GTXwQQs!9LQ_9m8_LMR=60Wpb59e95`pvg6hAZT= z7RGQrd?6BE|7ni(ryH_vp+(Q1E|MhMBW4hCY_X*aWE5nHh0oqjg1i!waTnto)tDT0 zBkni0JdaX^%i>;Q%X-MusOO!Sya0JOCd(izEn7o9Yb;uO*T#fv?>dXt-j8F#wRfXM zYwsr#uf3ZsT6;gWXzl&XqP2I6#B1+X%SG6~_+E|AEe#<*p*>$%wAyTs3HSFMG2#Bc zTjJHGASbA~8|HnFMXSxX7OggWC0=d5iwU>>Lrl2!A1zvKezj<|IUw=c@|)!)w2;@I z4+Y6jY`zIOhSlbG%a4%92IGlT%h6boo`mrHhO2shq7~#NNCHo;W~CS8y}@`}rey-; zQ%F$@_Z@EQC=2%;u60LS81o{exP>uqLXL}s`{~m-Yubx5t5PARAgQa(r7gPJT*jhr zPs&PM`J@-g28-5~R+5a41vgrBENCrB=~&RlqGLf@i;e|1$Arg%_A%kH z;8u%{1syFq7IcmYj|F$egvWwz799(^TX>ejGyI+wtw_BsT9Nu#w9?)e6RvgrW5TuW zeo02>bwhFzR@$K!t+c}|T4^7Yq;y_4JSN=wLowmjACY8qhBhV=?t{8ZaI8fwe9Wb^ z(vGvJ)Od?ZO|W#nC3~%VqNNIc3$pqHiNxcUnvhzMe9IM(ZV9}b#nLhSg5+e&&=51l zGAYDNwdi@YCoK9k#%Y%4P^tm8KHc&rqzU9n%Ld3bkQtUQA#CAOmIIJBh?yx#744FZ znPoX1!t2|?d%I>{B6kvQZWnEg5R@NP9QPvf+DC;s7W!=#h zWnFPeQdxJbMOk;8MOjzUqKrD;qKqmX6J}Idi~3bg;(nF4s9zN<>eopY^{b*q{W?YB zew}JjzbaeQuhT4=<em&;#`Y*ah^rJxIp4wRI{iT)h+79 zMUgP;hTWc*sEA*ks}W-I6O>8#6};Mx(e&rH71O?!_pNoPeHm^ z20&hbbhV6vyau^D5`M1aXncmxdfj946{M$yqwx!*PfY%X^s{g@7;}G27&F+y(MaEi zYkDy$3mIYIXq*EX8IwAYQ5KE{V;+kMV*ew zFe4`KW5i}!I2ujPz!_0YHX>%8g`>fkXJf*c7c3l&?T|$=`2q5>g`@E=WNA!_;S=j? z7LEpE-i!%j-m!2r%0b?@a5PSbtg>)4&WEgtM7dG5B%V@_NgG_jTW{fLbb@S*$vu$G z7LEpEw#I}pUsyOA{UJMJG7_@e!qIpF@=Z*hfqZM>XfWo7m@wu?3rAxaBeND(O~=%O7U=H z^lt*@Ns{~pz^f2b*m5OGwSuH9Yj!3Rw?K+oHUv4+vK4Ya?z1||vK!JFr81Vi5T0Wn zZP70Y=A;F-eh*6JsQG8HldF?B5qAUu1o7YRRQE2h3hF_%e_8s~;F;W%Gz(Kt7a3CHuir&mS2Oj0>~)KCdh4&(H1_(+66MkvIjBuK*m~%;kz5|P2()5 zLKrjNa!H7pC`p}xqr(w6Iy`Qv0Vx5QY-t8L2{O&n4RS7IW+b|n(i_*%=EdXz$o!Z* z0(mYblOZn!DM<2j!92*4n7j&EX5r_!)sRw)ih(+H(r7il7 z<4B9H>KBU%ud8Qb!t3hACI0@jWKP0W{o^gVs$a^YtNNuSNqz5df<@mul#%$G&~g@C zpD%CGo>IZ0J>^7;_LP$>+EXf8w5ObG(VlXOMSIGr7VRmOE!tB~vuIB_L*hHQ&Ws7a zBRk8Y@5s)H3BMyd&!XdUHH(hR)h#-j*Rbds+9ejQW4!uQ)4~;!S8{4uv=`Kl3HO4! z7VQP~W5T_lfkk^kLy7l-Mi%V_ms_+KG`46jXd>}m&@?CEexxg7!VGT~6K43e5@-1J zISCow(xME%!J-UrB}wXf?~N8+?`<6uUhi#V(e>W87G3Xc7ZYCZZEw-_-VPRB@4d~U z>%F&ImNjCjlo){3PJx7Ci}=FY%LrlPr1? zaI(Zt0#32$Nx+=w-i+yv(Y+ZnEGqSsMfWhwv8bM$sGhlwQK@+nk6}(UhR-O*V>sWU zF??3yF??R)F?_+IF?>Q?CE}77u=&5w`Z>; zx)R7I!oIWc`WUZVesAHGz@BCB&Ib#x1X6yo=t|%(7G4SDcm2OwbS3bBMZL%g$N5ie zJtw>p_$98C9&#!6G>Nn6-y`8?^Y7Z{CB8)0DNJ>%zP!I2DC}f!j;rGjVl8jnd z*rFDuENbBq7PYX5MJ+69Q47W%Er32(ReA>!b`aW`}x;OH!{wI2y-FJcA`Hn!)2N8lRFDjnDBGjZZ0y#;3GJ<8y*V<5R|> z87wPFRk<~LH+Z>7bX9~`w#x@8NGlI>qFz*RjCygRMZGx5qFz+As23+&)QeLr>cy!R z^`ep_sXVM~Q68QaBzJT;T`_63IVWoK8IDn#&$Ot`RV-@rSr)bVY>P6pszsT}U-yYV zFQ=86=USAR=UJ4Q=UbGS7g&^;)g(z}=7m9WqfuQkp5>fqmM?OQMy!TKBX+SxBX)^J zBgWsH$o5ntR?DIht8LLN*O4TZt92vciu5ktzR3H8FSXnbX@lQ6swc_*E;)p6UFX)b zeb0w93{sF*J(pWlPh-`Ssk8*&K%rC!QshQ9adB z>grfMT%)daJ^BUG>r^W9Chjig%GTU5k`|8H9b&Gx{1&98ODX0Ci(*>2)Y5V&PMethqxZyrQUW-D=Uc zZnJ1xw_CKWJ1p8(M~k-ADH7(Po>uN`SrA&-#iHl3@3g!cV!B#Z2D!`fNsw+9KD*7H z-fiKt+mw4EVc*rBdo5~DcZ=H7!=m=|w5UD3ENV}0i`vu2qW1KSgyW;EM1A zKI6<@^tbSdRLTGgpAM!BjD$T^&G%bW^B{|Ae!!xd2U}G0kVx3(jyTuiwuV}I1{r1< z7UV&TY94MGA7VyC!Zxeshb*f3VT)=WX;ICOSXA?)k+98tVwY_mWzn;@qb(&ud&XG! z#4byXweXp1%3~Hi`8&>X^*a1wEbe?5Z#fM${|1?0IS2ALWTNF_NFkhgK5l6MDGJHA z+=`lyhD@^X7v)MqCP%{Ow%F5M_^x(}g*~NAwXmm@CoJqKWtxROrA)W5r<5lx>}hRW z@t9#@Pa8mD7=~7WVXd$ZQLH+6FSm!k*p&c{)h$S&z9vvd?-v_#l2| zJ4ivgVTVG|J8MVQgm%zVk1gjY$*j{MqOg51i2qlQ!cQ)>EH#7F zwpY^LcB{ErEawp-I#6RZI-eS#@uevuK?d+se%}8y`v<>?EMSU>gn7xoL zmXeQVe?{m{%R0;;Goh=cE=t9v*|~TQ8ujF2njz+Q$lWfLLCp!QHr*|45K{!w({eYY zIHa$o4ptJ*X+O(g#ITkyNZ3m|PEGaXY4lB$g}Sc~?`xt4~A;R^7Kr6q(jxImJrFtSi$2x@-b(%|j9#6yr5 zEPQ|F7|4r~)U%tQ9(cPlj$a>Hx+13Q1iaJ0QW-Hk z#;vyuKuizBY_N=k@Ob*MWjciKirZ*e2w}fAS(ZcCuTLziLd<5%#t`$VWjlmN&(AD- zAv}6+v25v`{iM0oau6{b=WUkMY8+1|;5#Xcp633-vI}p;VX5tw5-7!9d}%om!d~pK zyoBGxVGDO!svw3f+-0c|>e+2+8tVDV!Z$&&p06$Zo{{x@W4S5RQ();5>e*xI3t>Iq zT82Sb&tA*eP|tUknW3KVEsI0U50-aA%s$Kd5VPO1BgFh@`4RHK1bicA`4=)A^0Os_ zRdf{O7fU(Fc*w7oH}R%W9#alj&O{84j0YvD3n5cb>NgA5XC9XiS-2j~h5Rnb48ak< z3RaRoEn^|)LH@E#hj3K?wk(7&H~z7#fG{`ywQLG8hb>=+m_$h(g%3hlbJ9|HT~-QN zN+bU}r3E{TNStf^=@|I^p zOa;p_2-|a_Wi^C-KgqHU!a1!dN$r7jpNRLfS^k3XC|t=>bVIg1IpKb>1vOW8ObNsc zL_McjxTib{sbb;&#k0Y)EoD$@JcLgxMQ4?%b0Je8=SecBw$8547g(wVsb*;qlwQPa#Gg>`KY7e9ewpHKqE9890Ws&I00FOkCf)pe_Zc`|Fi_hg2e%Ift4!%pW z@UDgjAWbE{tKmvXbpOT(#9U?JeFbA7*96I4E8y0f$0UV&4_c^HT65acqB*_6qB(74 z(VX6B(VVunXinQ$G^aONG^cGXn$w#tn$va`&1rj!=JXbe=Cp%Fb9$>qb9$R3sX4vf zqB-p-Nsq(~GFv)ZW(DaYNq&7}Hs;PC`H6iHzF(@VEveg{r}%Q4Hdd%*xnO1V1F@)K&l5%mm;gx_E2>}#+^ z^$c;TKkK9tjlaRSCz8yXUfC-i4_dwpGF*~M^v+AXjw_`jEGI(VgFI}h4%rBK#L@*) z02yO>1abiKm?ZN&q(d=$6Jc2e;j<_ClGN7_zFTyX<@X?yEl2jr#!Ru43o_MmKBNNb zdBSo-h?y1%zrWyU>_^OW3rBkl7ZF#%+*!7LG=D z$b3mrj>g-#Kk9i4M}xn@{h}nn(cm%XB@0J`ve3fOpe(X*G$@NL9F5`F`pXuM24j{) z!o8py`p#cTenpZR2D#-VJi}`l58?abmRaUNj>56~HOo1W=P~cgEo~rN!{3aASL_*6 z6zzG-!WfSHJCdSo56?qaND^#MDU^EG!uFJhyk}v1DnnLA!hUUiCYczGt$$$o9x?&4 z+ER3W_O};54D}SGRcft8r9QH#)Oy#`<>_RiJJzTTmL8D4kdG~+A@@TzTGI2f*P1q2 zilBuYu}>`e1?0^Z{ciH7k#J2=%x4zGY_X_?TPm=A zqIb^hu<$qQd!t`FU5`rbvZ&NtEUo2|R zuNJlEfJNInXwmrm775#Y9Y%vIz#+#-ez$1re^|8jKP}q&Ulwia??||XlsupeQ9E-Mfu0`8A&!TOe9|^bh7Pd75+q%Fp zl4=%h>q3jRRo$X(U1ZU=YDB_q{flia#kMZC==TCHaVf>rv?!*QMeV6=QG4oG)SkK) zwdc}E{yWR{EW^Y8Ro^lpNCV5$kgw2-%Oc^brBV$oD%HrMQkPrQi^dl9qKQSlXlhX} zu84%a(AKZCXzN#5wDo4LN2RW|sMIwUmAclVHeY8^o10tI<`x#U`T9uM=G7R(A2Eh4 zE!x%%E~S`O7RB6XQF~fj)SfmLwdW>_+S4|Y|Bm6!7L7(bi?-h0^$ZWWaf?NzI#^Wd zR*Twvn?-HD-J&+%VNshqM)Kb_cd}^foh{mW7uTaU-)T{)t`?QL%c3@Sv#8B?Th!)z zENb(;k+99Gr@N&!jv!p;d$^ROr$yW9Wzn{JTePh{k#JiFapuqz$ELoHk=$p|Id(sb z&awMjwDkcNZGE6cTfg6;W96Vo*q-n2#iwlChxUNwFl0Mqu;sY!_=XoU#8Me@05a54 z1Ckhq|5>hv907SS60S(v)^LlqHNv88J!H|g9=2#(BQ4t2BayIQrS8do9(>et7Nkre z+%svZ7h*YA%mhmXj5E)KCt9jP z&O!?xx9B|s`Ib6};kG7O@-fb5Vw@*iUWA+rnG%VvRq|@{)F1_EjZaQAK2JDC<1@{o z@tJPX_&jOR_{^|qe4essd}dlSKC>(upV=0T&m4=!=V^<^XRbx#GtZ*&c_tEMOKL4f zbsA=QeoUT$JZt#^F-svY#N=JbOOf!J1M8`ckzX8>CXgi-*3$~IEGD->UW< z@)}}RSdM`(<~>UV2={{bEoVWPnJXi~{+`s zZfD-xyu(roF>4XC(^5H<+HI);Va;Dz8itr}EPNZlHpCQ261PFv<~^1b=Ohz5A>Uf= zN6a3`-XI0(!;lkko%TD+(eEV_l_1|+%0p%$qxM;0b=5^6!H%0aZE;U)jp_F8IF7l#QbLA$g^L+ zTR8H(YW;_WBhQ$>EFAe8@gC{FB`J=4HVlc#zz%=xj1DJ)4b=chtak_>a6y(lV) zVkl`zhWp?U$dMNAgR`)$qatCy_F*noAtvJ(<=D{{<=8P6<=C+n%%1mQcjYf4fzAbi_#Ez1=_YDdD1(v{LW zlH_ZM>4;KwW6}*$&+-Xk`a&+V@Jau2cmlnV#NRnv>{ zeB*fYAlZysj=s0B%t6cw$n}=x5FWd4h{*?t$q6%o^|W%#7zp3$dSfKWvCLAet9*}g z8%gS6j6C0#a8oE%kXCNoY*B8svnV&(OOncsTP(_r4ngvZa_fAv>8+9kw_Y4_TO@4Z zJ_yg*?ywvV($UgyeRkFAWVta&XG;m>{2=tSOC-_S8|t~!qMEx}RP$XH)!faZn(vN; zZC3u=BS|TL?u`laCnw6E?v7FZ^pIqfKRqqVpI(v_XZa9n?rq_^!9471VMg)3i~B6h zC}w#7n6QO8VMei@0gA~q#W?eKEe2XNKKEO04|6fdqEUUo@(^M;%Y!AUDG{=?@ueIWv?R7Zd&l%lJtCyNXVW7l0+@!dmk5C)WSs)w{WqAE!>V$FH6#6A(!HK`if;XglBro zBuVyy+54)*y?9;XUM#mnZ;eLHZ(8`K8ouZ3EsNe%v%;cxyu52+-z%b2PSl?F6yx@+ zl(;>sEF9INP|s?MYW~o|yT$q-X060EuaiV~i`|cy^%jom2*^eYYvwz;Hd|QpWMsmp z64$&%64lIiy>GR!=4T*ZSfWgT?6By)Jv$|?dAB60nQ!U&%EFrY=9~fxYvy}$_C|ue zDRmy6ncaq7d}p~1@)hI)0=nq*kq8 zBVl{Gp`PDR>R^b;p8pibndhOH@S5HqG2zkS&maX!^(!ap*WXbLw>1gd;yZi(mH23$ z#GNtxw=$z+ZXt_CBhRAIC~VPaq%0bZBP<$?B9fFwqi7`mJqI|_qV^OEl6xMOck}SO z_3ZPo9F3zRVK2IVo=osg!<-C-@Ji`1ju`{lhjX^#lGJ2Kdz3oXGGQA^L5{Qhg_vHD zQkJv7z*!SklG2tI5dOx&36Zd0CvC@-0hB6hsRrTNTh3B1NO{XukfrEj1xtGf@0vN$ z(gVVkt)gWWq#H`{>DKJM2ZdhG$|;tuh~YgTr&{)fQk5*abFZ=`@n!bu*V7_lMpei7 z@J_nZEgZ2KkSZ~G7IL=bOpM{{kn3e2WO-nblhx=(QOQX=j+7|Vz zjzztw8_9pO_fm_px1L4WTVLYrZD3LMHnb>v8(WmUO)SdZrj`lFXWn;trA71J%%XX} zHYS|+<`&KS4U&xJy_H4dbE8G`-rAxOYh%&=b(2N=S6hqrubVB}zuH-}f3>%0|LPD4 zb5(PCt3}(o&7zubcRea~hef42T2!i&Mf-ARi!!r|Mf>ud7VXPjEz0@3EZUd5Me^T% z-EC1l_gGZVy_TDi;f1m1c8`SFtDg3-sGgn{)zizOdU{(_PalhNqpwAoaGymr_p@m4 z?r+f;4zOtN9%#|teZNI}_aI5CFZx~_eSaVles{zDf=?3;v2ee55AtA4_>A2M3-=2? zRrZLaD34!!j_OehR{-8+I?BQofKMrnmLz!mDvUjDjD=f28uFNhD?k~@1PfOH-eEh@ z!WEz@?O-_kSdUcmP!yFn-*F0wy4FH`XT0J%XLAPSlR`7 zB@*tHYR^)O+Oy1}_PlCQdtS4sJ+E8Tp5+#`=M9V6^JXL*AAUE%-(G&plJ^nv5c0OA z420)4?^w=+6vBwDh=l!8J?~mn&wCct^S(v(thDI&Mps$xz_vISA6T@%ueJI{R4WL_ z`AZA0&r^0-Iv|Eu`F2{mLYN!7EPWuaU=`hMc>uB;@>L}Nz4zejAO*>5(88*S$;nNS z3n2xL=?LN5U%$2VfYd_Fca}krdXOI^Y4vo!B&nYMXi-mpvZ$v&Th!BEEb8g67WMRi zg`a%+9pgcXKlvV#L~pF+_kO=y_{Q2ie5(7y!Z+3)1^L^;H`Y@Awdjqti4!nsyh}OB zH`bO!Owyt^))unpYDP}@xw{-n<%DmntprKA6hDcd4LKqR-XD&UuK_7ynF*;2Ne9V& z7jTs8S%a9i=zC7KKzPU5(T*vA@Sd;YmV=N+kP?ll&5GBjPqXlv z6|eQ4ZqYTXDi+Q1Sr*P9uhHg&bHO{j&UOq(p7&3kYvDLggj`_ZT=0&e>K2YX@5i~= z!jWG9sTCxfEt9eJx)x>&uXomq1Z!`K8O7YV%)*!tAdM^&P&4n;XkwWQ;oTEgSe8Lp z&sCA|Xr(pbYKiCl8jI%rT8rlWI*aDLxkdBd!lHS zSlBOKm27KazgSPZNH}8Jn{KgaZ@Sf@z3Fy~_NI;&?MG38NzVObmGDNEw3Y|S$*$3R-(crwd!B82a=nr*2D;rp!SSek^Gr!DP5%v_7!g)+~g zccDCEnTAq4mzZx^3gP{k3oIKUypHs&r2xV!2hT}T3H0FuY|p9X^5DrkR_HDkZO=uEVn=|fh>*Wzh^tkf)u1R@;TASzv>u`{A(7C z{OcBt{Bny%{tb&p{!NQU{w<3}{%wm!{vC@(euYIN|E@*3`kqC(`o2ZEy3(RtU1d?O zeh>*)wwrh1dL8zQ)sjqK2_iN|sn{Nqe;_+tv&Lt)B(3rJ+M@CK zCP;pQTjy1-f|&5y&$kwCeK6$vnDCm!zDU@MQMlKLXQn?{+J1vGSp4-%D3!aGdoU*a zmi)IM1<89*ik}jGxAcPWJpIo|xGlx}V^Pdu%a-r(lplW0p%DJ#zm=&2kc;tGVN3dZ ze5;7RjJkuw&a;Zu&0_$=;NN%Y;;M#Pk`@ErSd z$nh4Qk9`d}LE^2Kk$CH6Ez{5*_O!fZKICNlb)x0n5L3~z2{IVlI>oX(NM*}`P|q0_ z^|Xq_Jw03Eo>sM}r{`JJ(`rF-p9?NjO!{$*{0RJ&lbMiFkm`nwE1R&*87ymL`zJ_^YnvLCEX)tG;C>WCi}Z%(4c;9BX9x z7P13dk}L<=fWNM=G=XfvU(GBxLfEfsE&U)n@mF(6y4v3C^C>MY z^&y?`ndk<~HIPHtOIlglLiic~MoSk6_pR2J`yhGvtBvKM5Ob3yKS*24oFF$_mIY~N z;V+$WZ)-0}eg@$hev2gi4TSqv2TAe}g!|2{mMYl0DR)>JLAV!mwsa11r)4OFxqO!- zJq5yNeD1a^2y%~QS&(}r$#)_APO7^k{SkyCZ%JxJ>Y2E_0k3qynCCw4+6LLQ9CEC}~Z=5zK4 zvKTTlChtHVjf88j+B`;*QJcqF)aJ)5%I9$wW&re#E&oeE`=Q$ST^IVJa`58$@ z`MkiQe16uVeC7%m^)#h?eqNGMK3h^J{fJNWcuL|0$LPxTLd(y{AMV|YEdK`K+8S-k z*XLihl*5Y66<~?wnC01=f5mbpVwlfMEmxvF+%J|%Qmr7-9YK~M5T0*v9gnu28UtZH zZ&;p$@c)0)@&@Eeok6(zXY0|*|DGlF6Yjo7sg;(JkeeW@Ema{MAZsm`Lb$DU zmgW#19r$1N2%>S`WYLIyV$q0gwrIpYwP^qP%%c5ki$(j_R*UwpZ5HicpIfwlePPl5 zwcVoq>r0FFuN@ZcUp&rb`>y?Km&C`5-4Y)!zLNNO@wG+!*B*=ZukS3{zkaZ2|JpC{ z@!}_o_OG8U+P{90_;~TF#K#MZj~53NWy$*`yPqCmxo}NZidgDExK|dnC?;)D z%#k_4n!t1QVvANz3u*#l!fkv?QbR z)iM^Hua>pwe6^e;rSsMD7M-u2XwmuVNfw>2o@~+i>Zul;ubyVn`RW-Kty)zqI$u3o zlF|9jIe0Gc*vstf@@heH?&`j zv}nJ0#G?J;QH%DAQ5NkNqb=Gm##pppjFou5cueB`Vw}YL#dwSMi^nb6FD6^GUre=V zznCWR(fmn^_KO)7?H5l;ykE?ec)zfCzu;%5>%mRXb=uS%R7 zuSuL6uS=X8%Pq={w=Bwy6&B^jdlu!!N{Msh1B-HFwMDtHM&jJ~P~zOMI5*ZR#%ty} zi*jRwMY*xbqTKjY;@tSmqTJXbN$N~yt0b*+tB#JBzaSdyBI72aB?IpGDcb-=ggO(W31A$)fE2*`nZyY*DVBVo|Q1YEiCMvM5(8Ta>G(S(K}%Ta>G3Sd^=0T9m6*EXvih zB+k{dCC=5V66fkU7Uk;s7Uk-N7Uk+i7Uk;260fv1Ey~qe7UgPfiF37%#JOs5uGUqI zbG4pDx!S;@Ty11gt~QZ4SDRXtt5;a`$@fZ&viB;BvbUK<$L^~w%BX8B%BX8C%Bbrs z%BbcRWmF4`GU|GZGODFT8Fhn28P&?7jJi?cjA|`$MzxVRqi(V&quN=NQ5`JGsM{>c zs5>Ois7@ATRA-Aas*A)Kb*ID`WpPGzRg5#Ln?)IQk3|{P!=jApEpbNmu_&YZT9h02 zS(F?7EXs}k7UjkOi*jS2MY(amMY%D^qTG1EqTCp4QEm*eC^v>moEyU=&W#5p&W+&~ z<;KGn<;J5H<;G}>a$~H-xiQY7+!$|BZcLCkHzrD)8y4rrQ=veuzMaRnLEjm`dDDkm! zkww|N*rM!x*`n-SVo~-aCC=VAB+lM9CC=Wr zEXv*$7G>}I7G>`$i?VmM#M%3yMcKR7qU`-h;_O`~arRoAz3Ua@?EToH?A>Hh_I_$n z_HLCpd$(DXy`M+I>&Ck8;tNSi_g!qa=+1{77Tx)<%c46UzOv}fhi@#p^Wj^I?tJ)O z;`Z#5xIOzNnQr)|hM$RkvJ8RnPPv~gk3;y~)-RT)A-u!wSId$RbHK7D#2mEj2r<7| zeho2)EJbkt2DkOQr4oeO`a_b^_rib1gx?GQWzqM-|3vcN``Hc$DM+jDIZ@ve<@Fgv zeNS4{_d*u+JA739n-p4c~DbXVLc{B`rEqA8*lGSIVNbuCzsK-3b=0b!9AC>&jZR)|Inptt)TQ zT35lMweCcV*1D4*`pv*44Ere=fBsf9hHEJz9N> zGOB?^8FiUO8P(9DjA~?2MqO@EMm4r5qncQhQB5t%s4FbWs4FeXsH-H-sAdvp)YTGa z)HN1mRC9|ms-;C4)ykrbYAta_-DFWlwY4atZk9Ns+DV*I7H3p@#Ww>S(H&7 zEy}1a5@*z%7G+e|NVu}?#-bNvc$LmCBU=HT%tM zPmA6{+)Jg>is@}pOdpq0Okay)?z5bUZM}g*ML*Z0QvEF|HNc`$165C|;$j?gQ;Ed= zF&PPYASSILLu1kzGCY$19^*y^DM+g3xUl9&|EJWLSSfBRF5K3*D2DU(#$U@|+|+0#Xk0 zf@L=3WXOw_r4U~Cddc!3g!lg}w5VT;Eb7-{%ikz<0qS{Kk}P=uzv2N|5))qOdBsu{ zF*iV##pHI#YnJN}!%y>XSVlnj$@oo4dLLvAmlSxv@JY?AKQo_3N7;xf$G}m~@rD zk-hk9ujLX*5zPB{mNn01_rdQimxoe6SoqvA_tSkr@{3-Nn6vQLe#h{Q96TTS(ZYMf zuE$?LSrqfL<%@rli3a%V7t3RbLQ$z-EzdxfVvjoz$$vBRpd_P_KV;F!|8CL9|6$R{ z|0!`s{S_0A{NEOh{J)Y6M}y;>sDS_QZ)N6%AW6$>K?+&k4U%VB7o@OdOOTZ1s~|^M z_6I3q`6EbCOW}XAElgXE338;RY>;A>(}EmjIWI`YQY*;Omdk@2W4SI!aZB4E$67iC zDPidmzzSsJ8_{wsce}P<@C5rPFWO7M^XnFGy9(xFF|PUI=oo<^3S%Sw0DJzGY943oL&Isb)F$P_{i6 zTFwnp-O@D3MV4EG)UZ4d~HMTT|@N+{`N%X!Z z9v!Z*=;&~zMMsCLEIK+gi-hl>V9xX1HCJ1h^OS2W%z4VS7Un$VItz22(%izFr?jvz z=PB1)nDdmD7Un$V1`BhZ(#pb|r`%{^&Qn@jnDdl27Un$VCJS?(($>P9r`&8|&Qsc1 znDdnO7Un$V77KHp(!s)< zEX;YzofhUirK^QGPr1v&oTqfNFy|?ETbT2ddo0X(%DoomJf(Y(+;e0-f)pgR7vw~H zK`+m+B4I_UQlLP*bB;R3wuGCV_`2SPg~dv z%G^kJMy+1Vlcdy(XDsT)d<(B06kwbeSVp5g{Iv00Bpjcg@cDvQGG4G0K@3OZMGJo; zjPv!9g`YU)Ll#<2Mk&f7N%CR{uO%#w2|tCu93*>vgXa;iSlGgb_-k1t?7Ld{nnf*q z-J%vQx2T10Sk%HdB`LM=t(dTdZ(EAy;rHnA*NR9uV%pYwmSvc)V)*NQN%A8|Y5cX) zvIoMa7gq(zPq1dL@mXO{RrBg7hN7C+NK&f#LyKx&E6FS_Tqyd)niZZoP%505NPOg& z?b!M*{I$;V17r{WT5m~&dNx=xK|Z#Whj4G&C`omK{DHqVMWU;G$71VSf)u2+^)D>i z`gV)9{-s4*-(k_#cSeE{OEG`OVg}ha{>xtXW1qfqsgmd^k1*_Q_72-hko)o1w~}Oa z2v_U9mU|#vpY{dG$L~%Timt`|Y~da^4}bj{31?8-I%LtdewU=QEsh%h;pzLZt$!k6 z*74m4P4R2pNsME*&ApB&lxPMiBuU;6X%5M=JPBzHNlDT#L0C@_N%D44srm-4 znd7f(ENSeglxu_JCn`c7#b4LOWD@>rVQGw*`S|OGn7oX?TE%1q{%ReQb@=Nh%k`*d zC;n;|lLGwJJ|;inuMRQ!4S(Gh30G0J`NWF&{1uZbkj@sixi+M0Od3P(ib+ez-7)C^ zx!1xr_k?it`EO;4(ywA7(JLlHA$?*p5^|r!zhXAPqD&ZQQ6}7PQ6>zsC=(vAC=)oZ z{I@ctOc-KOCJePG6NX8ms~MH?*MpI8A7su`hC5~-&H=b)jIbPraE*G{QWAN{QX?Z_ zJu3BxMWserRBCjP{KRRfrvd&NW2pw=e)E{6HRO8yH9ivdou%?B;xmYarH+K;TUhFN z$Ye=|Z}ooyGS#AE!4npZ^R!6VFO`~ZQK=^_Dm6nA9YH=iIgxlu;v>i`NpuAH1TnKM zJc4Y8%(d_cQUKwe$$!}+NHNF)i`LcWEL>O1Bj$OF*3}m+Tvr+Ml11z4A`92ms)$)^ z(Ym_C!gZA~uUNFMF0*J|eO2Nk$ZHm@t6Aa5^9aJ8=0rVR9+hH@disXt|Il{l;WpK8 z*ueKb+1Rp;kty>mGGxpwDkLIF#zM(hNog=8lA%P0$XJm?ri>X%9Ydi(DkKe#C@Pgo z#d|+%J@>us_xH#9*L$w3>&oYP)^~i?`mVM1-fOX^+a&Dib_siG$FlHzj6K~UVNc(e zu%{Uk_H>toJ>5;w3bIGSo=TKsNnwtCz^&rUu@5Q1TClJrt_xhk<9rW{m>rR=U+ED$ zLOuxjBt<4bK9kt7?j^{VDY6W5BoN!<>}b3Kb=i^K{xV`#@{W>t8f}Vv4mlyQl7E8y zm?Hl`&QP>ho|Ulgze(8l-zmY-Zz0P0Lt@X@>QV+z%94ysq($z6{4Gg`424{fY=Vq| zWWo83jaYbp?BUWl?@f_WkX$J;36d{GW<#!Y$&A-s8otS*xFmrq@hzyOgkH@)FiwLBiTAN?3a(32Uz` zVeM5Ur7^14VpQ$?IIR5|NCQY!NkhmN=tVV2TS!yHTqCh(JI{ht55)F&+rM^Vs~VDX z==)wsO-YuVVac^5S3!;<=2}S|h^=UKDA8LXrx8<^67S(#)sqbMts1z5Ps9ETTU{53 zjWb)=P{I~AlCXt#Z4izRTi8Ux7B-{A*uv(N1Y6ib!WOm+#72yB(MrO(xIx0XxKYBn zu&d3mg?+Gp6~fz%TT_B3+LeX0@vXvr=Mjiq*@nkeZq<%kCHlnEB4sdQw@4m>*j5-#1@x(BwxGSt8%zie+jp` zPr|JRsGQvxLwgSSK*>RuL6Yww)}FzVUp;1sY&`93JAgqYT- zYnY@3q&?&zNq0zR$nZccd)bSJCG5o`686IGO@vv;UOXycFCLSy7mrKWizg)P#YhQz zF-pQ-jFzw$V*;^x-?1tD=G9n9PK>HuGd?MKcUu@UPIB0{dP>6f*gco9r!0Abge5;M zVaXFEEcqD;OP&;nwRtf1ohH}|CQF`xw1iC2R*ab{Va&7I%Jy74&OfIZ$~48;F>^DH z^Uo`WV)shyFC+0YR)?jCnIX9>7gk2d3z91#mhSI6!{SH5+(66V!ndRm#l}_Dzi{xN9;3*StQ{R`;|a=jIz5cuexN$ z+4rQd?~4_~zAurm@2^SN_oWi{{dEcZzKjxO-`_|P>-%y_oPA#@Vc%Cv*!MLO_TBDM zh55V>BX-MWxSEihf^>nb55zKoF&iX|*(hm;{mYKnn?2SiiaUC3a`KG~}qtxgu})DZ@7sd-sriQ|?=dy>-RpJ4vxT;a1;ED!Uw~ zL`$LMUom2tDe^DmgrqTIvX{gC`4q_yIVI_Ym=chmQluQ@v}71!u7>=aA~hkuNYW8g zA97am2BanAcgYS&2go_e1xRnmc}l!kzO=~wkPDLL5Zk*WB|Up}7d`3{e#$TwTcyg= zkSvO^*?A5UcM0DVV%bjD83C08)q&+~KtL6p^q!MJ4u2$z|B87)7;TC1LF)C9J))gteEWsP+mH z)?QJ<+AC31yWKGi`^DO;N?7|f64qXm64Y+%#kG=Ap7XUOlObD?;dLb3Q|d~%r___o z!B+2KtNIeV{<69nNLbf(64qt+J^dU2^KM%;l6>OQSi<%+k+3~YCEsEz`-W{Z$saDw zCE2eCV_Haxxm+))4zc#Ml-M^3Ou=Y_B);?Nd-*r5PJ#LJo(ocBfFl4M`3QD$^Cna+s7Bfy_ExZVMDiH1k zHap`boSg|09@U?wXf7s7I2V&8oQtUv&c!rJaNMxkr%PD-3<+z0fuh>eC9M5L32UDt zVeRuM2_DB5NH|{$C7hi_63))c66VG$66VIM66VHY3F}%SVQ#!8VeLyLto?Nfb7Pr= zx$%aCxv^Zr+*l!DZoDbUQ6OApR!WMxtdd;ovRZPB%Nj{fh#h;^N-}-5dP|b`%CN3= zlF|^{YCR>kvtU|eYGX$6^rn5~lT zF54snA^lMDc9-;swP!Zu9f`GPA!J7&wtulb?@8F6_a$skhJ@|eDPendN!XsF=n5HF(0|4N6z4^at6xzSTU^YlR(hZn8mb1%%>ic z{Eq7ZZN-dA3Nz|6#W14|N|;ffOPEn#xFqZPQZdXiN;2kFc6&J|C7-yQl6>v*qvR)-pCo^{oR*{&4eL51$?fv9 zq_E2`k_s-rN@}~Dl{9wwP145YcS$FgKP0_f&PfKl{3&_ZhiB-y~}@+?JgH2dtEL{4!J~1MS{PK#CI-H$uBNxlK)&TlU!aboQo`y0xmI0374#r zN-o(XwOq1G8o9(JH@f7IbaS~}GSnrfWSmPv@~lfP$xAM|CCgm$NY=UJm27p%C)w?i zUvkjp3dy%F1th0k3Q8`xTq((URXEOtBn4dxOG>yDkyLRhDyidQ-x9FDj6`FXt0b*m zic31Xl#txzQc`liODV}{m(r4HE@dPyxs;VGb}1)W<5FJou1f{UUYClJLoSshr(7ya z&bd^PM2m;xe6=LIi+vv=9I<>Z)g(n-u91{+sV=GNQbSVTrKY5%OD#!9mun@xTxv@O zxzv%2a;Yns=2A~G-=)4}g-Zj;7MJTJyIdMd4!Jav{Or(X3O)un}`j?49w*bNYSvti3X_+9IVu*TgWv9-zMMv1LWCO1iJZ8B*sv9-yhjl|X_ zleQ9Dn@nz&*xF>$PGW15$t@CFn@rkEY;7{>AhET{Bwlz*TboR7m)P25(nVrxlgS+tTboR}N^EU1xl>|mlSwy;txYD~CAK!1^pM!vWYSY& zYm-SYiLFg0y(P9bncO9@waMgeiLFg0eI&Lvne>&|+GNsCVr!GhJrY}+OzxG~+GNsS zVr!GheG*%nOa@47Z88}sv9-x$ki^y|lfe>On@omCY;7_bDzUZ6-*xF?Bh{V<=lMxbIn@k>+*xF?Bn8em5 zlgA~tHkmvjv9-x$q{P-HlTi{|n@mPaY;7_bBeAu~WUR#2CX**6wl^F zYm>=y5?h;0rb%pVGI?HNYm>=ziLFg0GbFY)nYcCbJ~AHkrIA zv9-x$w#3#ZlQ|Mwn@nDk*xF<=S7K|E$vlazO(ydtwl{Q6AtC8RB4Rt92Mqugqhgj=naaH};cCl`9r1?8+&4CO7w z94LfuogrqOU9J0)iz zUqg0D3ZsQ5A$ugPAYF6deOr<{Z44oMDe`Wa$o829{vxK2@uQGlag0F=9J`ZkNJ@jJpi$HH2)+y=5ktc z8nQ8p@7zkxL&jn*l2WovT4XBZ7sb?u%!ZtmbcVbE`JECU2w4L;CwT&5nedln8st61 z{4IIKWB!qB@|b@m`#k1?bhRpv^`KQ4tNpL+`n zOTLE;#J$QQlAm3QO3u3!lf+Q6ZFQBzz75_sFMgdT$>X(`kW_)#%2-m;)?-QqV*4pS z@hL4~zsgA1ud*t~R?i#Jo^q0UmBM3qc}d%^!te4`khJ!gijrAd!x;OXtNmpp+HMG? zvZSkTRYfwqVp!MJlCdsT1F?Q_^3^3A`5F?Ad`$^QzLta|f31WgUt7YF zuM>#%lw(*|QrUY^Pr@;*FKOs84J0?aTqn8RrJ>|rmqrqfb7KidwTXnI+Eg;d%dzjv zhVwPcrMYCWOAE;wm+K{4U0O1l9cQ|j7a8z4MdSY+tg}JhlH8gQ^L&bC1GavmM}B#lCT$d zOW5W<61KUogqhh-!pyu!!pyu^!p!V1VP@VZVP+1HFf#{An3;nl%*??Oj_MEzGjphf znR&m2nfZW(nfaiEnK?|t%zQ|~%p5LZW*b7*T<(erzPygLPGo3`qrueH;7*NehT&Lb{|Uq!g~>W=e)aDne#S#z1h8jJzmW0I_VDP0`u= z90||fUy|_beXe91%BhCBlJXg(He{Y+{(&@w%$JlZAId_>b&wko^Rk3j0gENP3V4kY zzZF}x$5yXP20-kb{|(6mNN>a}mn`&{Hzivk4_N|gR71AOX zAloFXA(x@#?UX35Sl^L+ikLWJc1U=A`kv%_#9V=x3`%e%UIemJ!mH8UF5#8<8pQ08 zSWmY?K9KNAd~YCjJmfyOPr{z=m$0WFN!ZhmDKYl+6A62IK*FAWCSgxMrv%sC*3&N} z?CBv&?AmMat@6r|$YBX*@T(MwBIc;10JgGc&KwKGelu(36h+Lp5{}RJDUus8$0b&d zJ=^(2AeLh#R!4*D?voyq8BG<7xwm?FZ63y$41wH}z8398I{}<*Lp2c*UyTf{GynP=;>jc0{<#0iZ++VR%azuA$Cmo zUFC4AKP24hoP=BbrE<2QF1tVWw`8x&dC6hO2dL{GmBX$6m2j*7B;4u(%ZaT-IdgJG zA{RX-Jz~-U{fd?ePWkOTp%$KQ0l7@F*d>c(6(kceF-q)h$Z1H{K!TOpx5_SIIdKWg z$w7&-oXZ2T{WSZvX^{%J|C5jua>*sB2$_QM$t`ID>4>fJNIFCEREb3LN(Mj*Lh?~! zqajy8@>3EoLCQi3NLIKMlx%moQgYCxkmM&wWt3A`l2$t`xrpRSNDagkm0ayoOws^S z7co~+VmCq>LyA)p-67d98YLw|TuMpCKy1Y?Et%mlWhAe=l$C6Rv_xIyB)dGOyyOd) z3X&fnR#!#I-yTy*lBg55xw51P#OkUN$fX%|wS*Z}Rl$`cS>eK?CiapWI4pny1PrZx%80ifmknk zN?7em*q5SxupdSH;Jp&=gZ(Ak2k(<`9~>az zJ~&XqeQ*#(``}=T_Cb46M%XXzgZE3g4?ZB_KKP)7``|DM_rZrG+y{qCxDP%o;Xe2X zMf>0giuS?BB-{rdmvA3^Lc)D;q=ft6C<*t$(Gu>1VsJc1Zo zFES+j{rgS{e<`4+%oct` zNw9?4 z8^lKbsDved9f<9xlw%Us^^JseeJf#I-$_{4_Y#(ToD$^52;@d)An0k-M!r4d1Vy>= zgM=f0Qo@lxC9#q3jBH?h?*v zdBo%hgmY@OUry1S=9IAZgoL%{lCbvN64stKkW1$@pJWu~)b`W-k{K>nNS3-3kl3hN zn+pbV=?q>eVabIgEV;0RB^QyfdzOF}I#RB1c9Y981MbUf}mvF>NNH}68B{pJ* zP);ccN6en|WM{D9eEo=+vVm~EtoCvg%~yE|Yp)<-?G+`gy^@5rR|(|O`MO$?&F7-3 zq$H#n?mShK)P~p|ca6kG)!JM=kW1&QhJ+>8l(6Jl5|(UFxw5}-|FV*6Q-b+=4f9ne z5YE>qNL`BNtDb}-R$syqYap=^dkW=TC*g=SatY_FGLD&z1L1sG?eFvkE8zeRt)}9+x4!62V!mV0MxK$g;*Isg4$qAR6 zB|p2gll0C0Dw1l$3DkB-!C5-zM4Z(pj?K<#x$uE?ok# zy?{NvL&BbRm9VFGO4w6-QcpNL>}huid)h<7p7xZmr@bWXX>SR8dY6Pfy<5Vb_K~os zeFL#vwKKh+ksJ0bp`gvd`Nj&!JrwOb_ez+({Uyxa`y`gVYf;Vs3A1;QOStdU#=bK+ z5birx`w)tbbweer{eB5+e?Y?8?TJYCmyuxY4+V1Rv2M6z0y5!a)c&w!Hso{2BNDFo zBP6z`SeqXW#OmVy^_YYuKQ3X(Pe@quNC`_GMG5AsI7V!AAa<;4gT3Gn)INq1?+y6} zGFI{k#I6Fyxr8I%6y-b>h>bkU8Ba;DoCy+^GttXQo`*jpdDYu9Nn3F=CQBGIg%Ug) zY7pjWYKlBo4d3UN*cIYf$h1Ig26;U=UBahW&ye(gH5w^`tzMu+`!-CAl!T;9YBfoV zRDsN-#9KnHgUph2gxDC)mh^$NMa&$@Fprt*5YBm|c?L5PLr2ZpmcG z2Z-6@k{+=(&qeJYO03PxAp25e3*-}twfO+#bC=}r`oDC+zSAhY!;qB9kSCCC&+BH`723($O6bw$w-g+S~A^Zj!9ngm~SL&Jmy=;R*(5ka=>H059HGP zIZlajb}}WLof8ty&JPmK&PfSp=Tsn;3Dc0z_8XR;DAD6qnzxRu)TpM;;AU!X+ov-Rbu z>!PH-WfY!x6S4pBmyuw z*(A(Edp2L#X69jB!aU3&VIE#CVIJm`Fb@+F=3y=g^DwuBd6-Ai@`kiXp_=%dTGA0x z9FkAc8&VEp&l3!LF#=Kra)o3Xq$Z?*WIm)Gq@ZLu#NLg2rDOx731SKb!lyynZz~GB zWX9RTq_BlW6vGx4m9T}yBy8bT61K3oge|n^B!=h4Y+=bjkae-A+oeT%U5l$@j|q=j zmYHQz#ClQIB{O~O~N)`BVn7XOW5Wb61Lf%BWZsb z3AVYGgl)c7!Zz2Iu+4QOY;#@7h8x2it0&2T*cjR~E5q6kK-NMUNRC6cK(3RV^O%N` zY&V55jRLteR~x%z##wt(SbG!2u=b`B*4|9Q+M7#Qdy7D93>%_7AEC|HOWL@!lyq@v zB^ly!gJh)3jgm<&H%VS`X)Rgq(nhkyrEMVgdl_rtGGzG85^JGJJBhW>AEsp%P z@T+i1MMxvaNJ%5ejgV22c94#c(ULxp9*{ATMeu_*J;1E?Q{E zv2l{-5Zmf0$rX9SnDG*OHm_|pL2{dy^R#4umorgv4Ql@owLc?i2KgK^Nx~LR4#f6T zws4AsEu1Q03!jy+h0jUY!f6t=@OjC6w8#2BU9t{hJ)I%>5MrOzz92c`l1_;&{5l%R zf{dCenFPrVnH`9oRocUv3X*4OvBlxPgOx(xrCM~SnA^CfKI0ts8VP{I~2a={e` z+S4C-__D-WI1I8l5F2?OjbD@4vDezXRANV3lh-9bdDdCG?Jpz2JbZ%^jL!n(>T-$I zz6`Q55E~!XzFNZC*GO3VS_x}^OTyaMxrBZH2t8ddvDyzqHU(mBF5NQh*V_`FM{SXu zM~0uroNkp|-Uh#8MLutnRE9**ukDg{kmZPZM=}_a6*2DyVtvnp+AZsLNZ6kDB()JU z9Ob+(;Z_+EZnaaAXLQ`!xltUW@v+2arxN6VwqnT#C7hklC7hivB%GZuC7hi@63)(H31{bsOPD|F z(dMrt*1~ro#{#kZ;okkNgnRdQloS&!GD@5?m_@=F zj8UST!K{=x-x!+|j#xIvsIKgkI7cilVZU-n*ssea9I>1fm7JicB`l|wglpWj5^hyn!ma8^SbJRw*SLBVeGXDzV%G&_ zYU7$Z5IaKlz9lX48;*VrCH%agkz_bx{zgn=$@38V{Gur(x(bpVB{!4su48kTw zb9;(zFkdmgjrtY|-$vbmlHl8@J5pkN8+9iM-$s2KCBe5*cb4#N)VE8DeTjQkXipbP z?AD9XU?03g@(f1obWvRSO6EfTgLI?l6Q3TEuYbcT`DUu)S+kKKwXkiJ+z!WJ5 z86+8on5!W}QlutisD$rEc|gK&g>K#vs@u@fyB>Y|N(-Qu!cA|t&#YqZ(4?9UQ{5|Xx37?Ad zEG0M}v!~)rlkhxhx`a=~nIYj*andDxD$Yy^pNjLMgulyPD&g<4UzfBf7p`c_ zB>Y|W8xsC5d%0u`wknL1>J<|HF8fW2@@J)l`LjyG{8=sG@3ND^-({~+41brsR>I$9 zuaoe1*&8Ix!_5-r;TB5b*7D)+vbRb2yXY|W2NGt~UI{-D+eeAlmpC2BrT6g9 z{C^fZgSEG=JXs&#TV{I_i#vtq#y?YHn;>>S>KDll$V6=QtK>t7t*2)t2O;(w%-G6%8=l1;J{@(v`sWCLUuBre$r*$>Gf zIS4rju_yY4y*Li}3X)Uu2jqK5LXxF(TI5GaE=eKCSx9b4ImmyIJd!$)tPSu9ujB?u zZb&}KZID8c{F1vMr65;GMnMjvu>~YALaHOio=G zT!*U?$$OCOkRFl)kUWrHf!O!eEqg~d#1pC|mc8R3cS|gLCqnv4EPJOy?vYsbPKVfg zJM2D5dc?AK7G!|LvUe_Iki@cg5oCzOvUdsOeu-u88;}Pjmc6SW_B_F`F3a9^kcTCf zz4k-}d$Mg9W7)eIF^@?sd$&WLkXZKahK!O}_I?BzBeCrL9P*^ZviB(DDT!t8amWOT zW$#ari4x1+vye#=%ig~rQzVwX7a-3{EPJyw!a2XhvNs20y2P?K599@jWp6>qOo?T0 zG02M&%ihwEITFj>ijcVy%id~``4Y?CYat6Imc0!iFH0ap zlDsRTk(JnrlKi&VR*wn4E!GtGZMFwueQ(eaD_UKAx+G~0$x;uWF8Nl;(XcDGpkGmL zl@xCEe#%z%t(c4y>51dU&J^hn*_|TyLq13mD`#Jd*jD>f#75)e6q$mURI!*(QeysB zj$*6Sm>H0-Qnp$MIhG_4Ig(SierBh}C}T{~?!S&rOXvjdFfW*=il+rxe)+ z`8h={Kz>V+k08INh&`j@j}(ca_H!=D_gDTUv8UBtaSfiJD=FPHEmGuC(NlvIqq~Kn zAV(7a;M=O%w3SI5<>Z3=9h7XjdL_h0>^$p=S;~5UAk4Q31k5F_kUPda39k4<$o!$Hi)?&F-fsbNeo8zmk%egwbdPDJ+=_vDKl7 zWH{sjhK3rgzYIdVhvKH5RS%_WI2?uu7NmjY4|^NHD)=TSf0AD*GzEcp|%8~ti0NuaL%kXt0>AfG|(`H#VQOT0eBes|m<5L;794Z~+- zh`H5c!m}M)%{yr;j^S+*j$vmB$MALu$FPfpV|a&zW7t)~F}zd4G3+Mc7m^auOtI8 zb{^he@-<{1a{j(R?7OK}*DS~YiPdE?P-1nN43bz~CW9qbm;EMdh{WnzI1ZmT1!5!C zxnG!d_e=V?JRlk3@}Ojd%P`4!mxmTf*-(QgAbxD^LcbO@v;4({6-Q`6|eV5si<}Pz2ZCqZG zbaI(1>FzR5($8hSES9|GvP8oD>ov(% zk69|&>GFCYw#Qi>T4pYjSRR_ZA+bC(SuU|WG+80BJT!SzVtHt?Qet^%vPxokXtG*j zd1$gmVtHt?R$_T*@|MK%&}5y&^3Y_x#PZN&gT(UCWTV9L&}5Uu^3Y_n#PZPOZHeWf z$rg#_p~+T><)O(oiRGcmc8TSo$vYCuLz8zUmWL)gB$kIJ?@25VP2QJS9-3rGEDud~ zN-Pgec1bJ`O?FEx4^8$+EDudSknkw_p~UjgV)jZb4^8$360A*r6x}cB;qsBBpUcOR z!7iUjhP!+!8R>FBGT!Ag$yAqvl605PCG%XqkSuojQnJG3kYt_9VaZmPBa#f4uO$0i zj!F)?d@VWZa!iux@{Qz-%eRtqF5gKmxO^|kdT)4qJ}$}Sk|`fu%wT(U^A_7C$XCduWJRZ`F;o20l)c1d{`dop`iS2dR$k~%JzOB%c6 zl(ce5NZPsNl5}>-E$QKsN7BzFuVk=GKFM&G{F0F__U!nu7vo(DNT#|Jl%%^{DVgU| zNV3?auw;dcJ*z#eYn@9`$yS$Qk_?xtB>P;7OAfk}kQ{X>DamvxB{}0#T5`^%jO2n# zSxMIW!u%;G$>maBQqZM>q_|5(NqLt_l4>rMC3Re?NE*9bEotRaRnpF-nxwPKHIg1K z)g}F0YDfmV)RYW&sU;cda;;>%OKr(impYPkm%5U9F7+gfUFu6#xHOQgbGc5k)uo{% z!=;gApG#xOL6;_yqb^M)nJ&#FXIz>~&bhRZTyVKwl663sKP@G>Tv|yAy4)Zs?qcs% z3iqAzE;mW4xwMwlacLuI?9x`!%H?KBJC}Bn&Mvn|dbqTg^mFMT8SHYaWVlO5$w(J_ zcTU)^@h-PXrn+>Nq`TZMndj0)ve@Mg$qJXQl65Y3O18RmlVrGbm+W)tAvx&MQ*zYB z-mn$+E7PU7QqAQ)NgbB~ zfduzJa6V?|#`e}dyUUlJy@$&nNk5mtlEE%RB*R^XN=CZeFB$LhfMlx6gOYTYVUl?+ z4@nlg4415Md04W}#oqf8_G_!l2uX&^qmq3tk4X-?JT5uv@`NPQWu)Yc%P7e?m(h|7 zE@LEFac*OCF;B6yyNs7qbD1Ei^?OY~FI=f7k z^l+IX>E|+4GT7x=$#9qFBqLp>NyfW8FPZ8xU6SrHLo(0h1<7KUbjb>rnUZxbvm{$x zUX*0G%$DqPnIk#q@{;7J%UnsO%RI>$m-&)&E(;_VToy{Q;@rmaXOSeA%gd62F0V+6 zySyqX@3L4@&1H$Cj>~J3#x6@Gtz2H0v~yV|>Fn}`q=(CLNk5krlEE%-N`||vl#Fy) zB^mFsS~AsTjU?S=tz@3dTav{t>m(~&)=Sp8Y>;eq*(k|y*(BNLvRQJ_Ty{tby1XYT?()8*yi10pn#)c}9hY5_#xA=h ztz7m<+PQon>Fn~Mq=(C1Nk5l;lEE(fCBt1ll8kiuSTf$_6UkJUPbKLt2PE@cK9ekV zIVf4-^0{Q4%NLTZE?-JATnhhH&)8(k-jLX-Ob1ugu7hJxPWW~9S z<jrElEyA4C9PaeN!q#mDCz9-lca~sX-Pkq zGm^nBKTC$Y{303Y@~dRL%UQ`(m)|7mF276Wx%?qn>~c=B!sSoNI+wpBTV4K^WVoD{ z>~r}?a?s^p$x)a8B$+N3BxhVMO3t}N@O{wmeC&dYy`e1>I}^72Nt4)_u*qc-I}`d4so5aq9P3#?V_Lq?ufX}k+^V7Iwm`e`Hc$dp1vt4pZ?pqfA zz91o4?lHL}Z$rA~z<1**u@MiYMJhGLcX9&ZuRrXQ^n58|-#*Ikk{M^4lfpJ%p%}Kg zfP`%>C}Eqgl(5Z(By4kGm-NU-=tZ79_?Au}7{i!}eLu4pCGiFNWusbL!n#UGSXW8O z5583?N-QfrPq_)>V{e|bzl>N}NXMr5j(s4Pj#zn@%s6YWAYttlC9J)Ygtb?uL|JOH5Nn~u*l1LzBrL{8qo#zPyTfD+5|1HKd37++$iBnBhqWk@5*NXSx1W686SHzD@s zLi@`|yaIU((p0hrvKi7$vIFuCq`BlX$WBNLNulH6-gLd>1Y&Fq?ahVuml4a3Z?hD^ zw@_M1N~GRD-mU^nx^o*f-R}avq1YhuAw^LYW2W3F#_%2QnIB?{u-FR`MG! z_6C=vltV9urbu0F0Th-dx4en3bJLH#L6*wLt^Ea zESFe0CMzhxUTH0SQ_>vY$=QML>hroFT8{8im1$^D4gf);L;JOQybzfDPuhh$5U=`QwGIs3~< z%y-!;S?RJ(vH@b>(B4joZFhM`vKL~_xv7Vkw5o^z%l*Hp+^52qlm-CW0UH*~mb@^9v5Mu55j}rUZ<$~l4 z#M*OF@(;w?6Tz1DmyyVIS2!AJlEM%x`7%nZtVSM}ul;4jzJXZDc_qI?tmJ%> z#NGJKBjgH6QOIG4z2(>bGGbLA-$Dve5;Y;#p2Cv0E=44LU5ZMcbSWm8?_%!{4(dv5 zaw#t1x?DnX2r>3clahh(%<6TtuvCid%!O~=r^tH5lur>`K`OaqM!8ldg=?j~hd4No zigK-#=*%i9Tq~<^t2o!nt0_^gl~pBNE2~MkR$e3FT3KDfwbI^#9JY{aWlag!%372- z*UF@Dt-Mw-Tq|o!xK`GYaILiWD~Gjnt*j^ET3J6uEDsw{;#?~mO1M@wl5nlGH#Y}$ z#kp2Ck#MbSN{Mo0t-MddwQ>L@%C&N!glpxX6tVUUro_2c4wZ1NykEk#@&O6g$_FJ}D~C~{Tq_@v zaIG9J;ad4HCC;^SgoJD5qm(Gu%Eu&JD<79|t$czK=UO>R!nJZVCCasOjD&0DSP9q4 zCn<5Rl}|~yR*t7cxmHe)aILiWQ-+zzwQ{0_Yvm*f*UBjpu9eSH;#@1AlW?t^CgEE7 zyo77zbP3nW84|9QFG#pnrc1b1&ZInVw{kjo((B@G}O(Vk6`&qjn#s@W|05n{g* zeOtnEwn$jcR!Mu5Y`>h^Cg}mOx9M&Vgl9W;-tvx1W|X6m6pqFY#c(vN zuO#fnQ3>bbYYFG#SRl3+*j=nq$b@fFWE|wX6qyJ)F1a1KVOyP$^oH10CnWF@H%$ z|0Fzrz98YT?xKYE>mpZ2g1?M}<)K}t zL?xDo)~_^4^ie!l1S58tBtIkrl0{MuVr`B|>OcykUs)-!1oqPl*eY8f+)s}}a-@ju zxj9{ucV&~p*-0pdvy)50*|E2@hG(aoojelGPF@LTC!d6~lV8HwxkAF(v3K8wb#ZnI zN;o@LN;o@(B%GbXl;Ccv?FB_r#P)(>DKZgKT*7^)q=frUX$kk8vJ&n)_IBQIedoSY zQNn$vG9}LZxmv>fsVZUqRFg1&u8}Z*s!NzZH3G3C$v)&yvu60j$78}Hq~%ZT6tVoN zt8#dsHYv=XdWvEG)R!=S8c3Kw*GZT^4JFKS66Vj%66Vh>66Q|_3G=6;g!ywDMfr2P zg!$7&!u+{I!u;tfVgB4HVg7Ur#Pa7j@~0j0r@O}_^QTveSpM9la+p6!VgB5$80JqO z3G=6~g!$7?!u+{M!u+{c!u;tkVgB4FVg3w|FnzmoR@GkuZNAl`wxEmoR@uN|-;RDaxO*66Vj766Vi13G?SE3G-*Xg!wZe zkl^@(740N?`n2Q}@zE$!Q%&95zAYz_%$&4?=S%F<&JTF-RvFnTJ5@y{D3A646 z39~L;!mOJqVb;x(Fza5FFzaSZn00d`%(|B(%(}S}X5Bmqvu?hGS+_vKtXoJ?)-6gA z%eq%m#IkO&gjr|r-VTp`%(~Yl%(^!u%(@j4X5C5&vu-sdJ`3kaZ=iO2qi}dsUkF(Z zd5aQ#9b#8N>nO_A^%Cal1_^U@qlCG-Ny1#+EMcy`9SCwY!5rHnVUBH;uov4T?8SCU zjJe@1w+6@_tI9A-+{^`{~D$RxY0eV&55H%%>8@9N<>r(}&RJ z&pal1W%oI^3ZB?z{Yr{GuPKVpslQ~5p5bP|8BW6-cVk2f! zMq(poQchwcW>P_7BW6-bVk2f!MPegnQdMFj_6+12iH+DaNR2=&=U@3g8d-wp3D=Tr zf(*jUT`TzzvK%q?4*2k>&aLW5xK&*Vx2mUdMqpPOgc9mYSWW{8W3H1hrlI6V^r9kq z(I^l*+HkAJ5^mK*!maFm>eh?o6P%j4gil}m4kfn;#Kwom%$Af`Rb*6S#Mm3M?Jpx% z57G*9lcYK1R!AF3H^`lkc7bqpuwzSm7raRjF@sQI2TGK6**m<$wVQR_CShH-Q#2Y~ zB^-@AU6Ot8<`VY(F0`;mAeZ*N7bWQXHe^C?iM3}Zq>sef^C_gC#QJ^&VsBiwUL?;3 z2e>5rK9Cah-Rc@7VO>Kdtm}b5tj*6%36J6SE@%78NX&%PZ-uuyN)|(G$fFW_O4wo4@faocA+~CZn8zuJ9uRvb;Yi5<7klEo{beMoxr~;y zgH%8{V*;@ZXTQcu*smug?AJI6`}LHB{TeS}za~i7ucs+d_G=;~&VEgjuwRoUZ1WTe z+iY*q4v!>k^Rp7R`8f&OJWawjKQCdMr&HAC8I(9jHC@6M&Xll)vm|WcixRfb-lrb+ zf-RgQVGCc9u!VCeYT-PJT4?WO4@+hX7fRT|MH05~WeHpOii9nERl*i7mav6OC~Dzr z6t(bm30t^K!WO_?Cn%Tqj`**Gt&K z4HC9+ql7KoBw-6TQ`Ew@DQe+X30t^L!WM3qu!ZkP*ur-uY~cF`u{8qvien(LYzo)2$ znG&|}goG{pLBbZEl(2=TBy8c261MOs30ruYq86T^sD-}-Vr%82%fjbu|0?0HEzU}c zVfD1nPk)neh5bE{OV`ssB<$%q348jdggyOB!k+#uVNcIX*wcR~>gm6fIQw-$!hT(p zuwRjCTpif2XdpH|TPKI-KWUQP5IftsO!Ae-WKlWXDkkApStZ;m8_S7h$2iCEiF0<4!O(pFR^B}frCg}-z6w+MMpf-Mq18E_-8ZrTLy<|^KynhGM zQnC#)1JX(|6eZ7w+#neVSqQmNG8wW2a+72xWCf(PWD#U7q>W@HWHY3#WGmzy$jy>H zkX?{=l7kStD!E1Sy-Rz^S%@7)J4j-fQ`_oR31_(@CB{tX6bLd?xzU*t=PY-TaF*|o zaF)ADILmiRILqB6oaOEk&T9xUN350P+|hX!KDLz}NbIQrc$31$cK zfW+p)Vjh&($eRq4*f^U!B(YI787{FgGFHeJ5pjjH5nzbo|=r7SWivHNUWzOV#50866>kS zc!~AYWP-$cYVx$idTKIJVm&o^CJ>v`=X~#;Z7zcIgmo$>2R>^n1zFE>;@oNjCCaTf zO1RY~m*id0%`V|x(Cs(j$+v-6?QG#zm6Ix$wmFQktu~;|7m#DyRF2i29c_M><*3a& zC{b?po`hTNWI2hRd!mtCC}$UA;*{NtiJd{rx7eHZNTS#a#+Sga{Iu2br_&(rKdCX}^FUaR8=Zxe5kNHJ10dfp6ze?tK%x{v_ zkduh{UGkpCoRfSBu{QrH`Q2mwc1e$PtA{tHA?Cc~+H3H}G{`?L$&vrhB^>!u9q9YuCGHH;bE5&!R!EGL!{(*ZH|t|R-)h;atv63$>w31=`N;SAavl7ey)oWa}@ z&R`x1XE2|HGnik(87v^-3>K7d1`A0zgM}rW!J-n*U@-}2u(*UXSVF=XEJcag4Ccqa zQ(9s(SQt`>`B+2nM-e`%sDoZN5 zTun(dg)Bl$HA!C+>^s#ZQy{AlQ$w=KV`>Fr=Lzh^wG#HCwuCWtB#f!+k{+?1+WA;L ziS^W^zQlTJ(m-N8y%V{5oy2--(uk7XdU_Y6iNt!kI0vqLCDzmX5z|~^J++wY1F_@b ziS2kBEMi)EOlF+YiZQVg@8b6kop7C-A_X9=B~1`h8qzLBu7-37#74CjV$Pzj+ax0) zHaoXdqVpm15YvScABYw{3%Nrw31VB_Nr^6p*jC*Fv3{|x?h@A3lM-WHy(kIR)my^4 z?xw_8SD!%a`w2Ea@1gd-DY6f8uf)dZFl1ng9ES`E#M*ooF}-n){h%cKjNlHO1 zX1Jt=$2=mr-eX2cZu6MOB>g?+amfge87Z0UF{30)JZ6mKeUBL{`P^g1Nq+K}rzFw$ z!hTJV6oy#8o|e?~m}eyIJZ6%lug6T0jPjVNl4&0EoMf@bOp|Q(nCX&FJ!XdFl*gn? zvb>MappoG-CHWzCS9X@96vVDrUzA+qF|#F&J!X#NW{91=za+U6V&@5SCH)~)5Hn9Q z9MT^#^8>N#T+68K*xwgOETilQut;JVWic;HETb&uRf%Pk#VnRsMp?{j63ZxySt_xN zvY2HO%P5O^Lt+_aF)JjNQ5N&2#4^faR!J`+-So87UaZJI|8xQlWqQ0!Zx3k zu+6_o*yi6QZ1W!yw)vcdZT?fjHvc7IoBx)u&F2HLan6N)jm(WRe8o`yRZN?mxQCAs z`%f{H3yK-^NqF?Ts2ED5IyS{$M&dEAD;kK67$r?H?GE5Kp||5oLDCCi=Mpi=Lmrb= z^0dcfm&}7yK{;{B29LR1@)@KdVsc9U@R(eZLZ9IZ5iz+Xbs^TCyplU0JrI*ma=*u1 zA(;#rf|vr5#U68|WCz6hUPyA-V~R-5c}!7B_Jd)2uA;=Qf{aEv#U%|P_KVb#l3O9R zFPDWMuBuhU0f5#-Ujt=*C#UxH5 z##ZyPY)|4mq%hXpa*~{%hnZPkQXFD26(rR?rlO>|$5fJZ@|em=!4aSfK5MH&iG8{# zJknk*IqFh1kV}uE)m-phbYz{)ds3M5)fK~>uOVU1*OD;juaz+8>qwaMbtTOC`V!`R z0||4!p@cc#NWz?NB4N%ql`!X33L8NN|ZT&lY}|nM#7wLD`Czj zg*kt-Vwm&oB+U7wFz1uPoKFgKJ}J!kq%h|taprtdnDe)=J#prIdkJ&CgM>MMtAsh< zQNo<>Bw^0qmK4wV&Xg!~{&op-zDpo>&y{=&v8(lYf!OS@uK5zywNS#k7D-swD-zcAs)Thd zb_qY<`3HSpB58(mfEBnxd@T^0Q~M04AYzhYF?Kv$%9sSt!;{hp=jwKK^SWaA8;xa> zsfd|?yCQE$9`UV~2V(anOziq}g-d3f-{5*v!uzW$B@>#?yiUTB*GpLP2FbHW(<1dy*G9=)NDIg&2}fgdAeIS~w>BN{K!JxfP!!ZIjG{+yQxq5?=|iPoQ>CqFcP2_ayH^dLib0N_-#0ay3J8 z$Ym!bIto{{mK(byClJ#Qi1Sfn0jtd(b5_%94}9lD}X~oFyNUu;jxO_5FxTdUl)l5vV;W zHt*vgUj;Fib-Xq|Dp`a(40b&HIw`(i9FweuSj;z)cRl7?$zG57E)dHo*7d!FbsbNN zmy;=BT_+^0>jw$zIvL2N{W>LKT|Y|pg#G61(4W2={+3Ncuu*K`u&itW1mKM#+&H_z!;>iQ{7AuVZXu{6ZR`xu$2k>m0iMq#U<=l4hj2pxrF`7DPg}7 z680+>CCYx~mat#>BpkWwNoS8K zF1goZN=P2{n39qy9#cxPz+*~F)_P1C$u5s6EBVG_%1O?9OnFJJ-F}}$QW|3Yswk=F zF_k3kJf^awm&a6*Jm4``OD1|uRmlR6sV3RzG1o{wfvm*rRF`}YvGc>4lD{GEAf}ci zu_uhF9f<80%#At{=0;r!bEBSwxlv!j+-M+SZd@l}ZZwoIHyTNp8;vE*jV2Q2MpFrM zqnU)c(OkmZXdz*4TrXj6w3IM6T1l82H%OQpH%gcrH%XWqttHHjHWKDWTM2XHW(jkn zorJk@i-ft+Uc%hCRl?lpC}D2g<`SN(FTj~Y=Rk0@3C_$r;b?O^C6V@V_?_)8k~|Rm z&h{OW;vUmgQq5!T48-z~<#dy1n$2}0q(D$Q}u8_Wx!HBsR(ogabr0bQqn;|KSt!%ZrPh!t}cmP|4Vn=NIB;s+5 z;ea5<#MUoca|cRVei*K~gCrdw7Bg6~8%KWow)_yuXAm3tp^|Sr=6=apk9k0H8A`Tt z9+c#RSUJNar99>#NiB~VPKkAgRIH9~O-qJAX4c2IrX^z_^U(JZl4UMWNH)5Rk?e4J zN^;m`Vj!2EV^49(jB|XF!tt4^7>>`g5{}Pv5{}O_3CHJo3CCx;gyS(09CPxM=77bKR?CKn}^&nA~7md_@aC6>=7ze_BiP2we%&nACJET2vOlvqBS zT#;BloBSoQd^Y)8V)<-xRbu&Ua!q3SZ1Ru9^4a9N#PZqXhQ#vO(+2oeQ^4a9J z#PZqXj>PiW+2o$Y^4a9R#PZqXfyDCJVVxNvy>3*(8C)^4TOHv3xd3=!sn~ zGGd)igdI^LNl_<>B^8|nCAFO-ku-7goTRmrq>`>qLXv(?l1WB5NiLb{B!wq7KGxgHk)Md#M@Qk z%4p-9QNl6IBx&tpGD`+K$s*x6XZ6HJqY+}Pu51$aG`qw~wwMc3w$QCofBKV}<+=?aAlKvpdE@P9i(T zh;VQ7iek98DJk`%aW<(av2kt)spN@eCP%EQgd!V#-3;fTFX z2?S8`r@<*Y zb{aZ~^Vx_c#E3PLlz}9NG?7@}P2QAP-%XlItnVgod1B|6mHZh-teM10wlQqsj*8qb zw{#Nz9-`f!Muh!pr5N_BwS@g@?HE-su@ng-@qDL8=s^*iRAojmg6t6B>eVTwA_9J zpRFsV3t}EaK9S6XB(8;fYRP&?8pz@($p%>_NwhRv*Gfq`NCCvGl9YgyhI}Te2dN5K zFPREy0Qo|)1kxO`NwO2t8M2iUJO+6W@{Qys#GV^(mpp|GLCg+GrDfrmoszbY(TLe4 z83>sG*)1uDZ%R&s?4kHSMvQ%4uvfAI;(fv^`35ozM|~&x5wZaCz2u^c*)O@{Vh%{o zuMCg#LCGzM&Ca1HvDx`il44c(sGlWSm&f=vBj%W-D&%{}uab_ClaNzU@)zWcWISRX zLoP^GL6RUdFG-F<(nEfi@YC%pP9hmj31|2oWai&qj9qh||1|vk@Tw#a#GW5slaz5W z|43@NnCp^Oklbj`4M~4ULC8(X6i6}1Ey<^lvXI-7Q;^z_JCduAMv%LbCy-{4dy-Tu z@J<)xz9-MF>JOa62ienzu&4hjhCO{KVNV}P*we=n_Vhmqd-_Deo<5bZr@o@$yRG;j zd+L|4r!f-tG}aSapSdC>h!R_o0uruBi6mT+l1R8Bg`&iAK81uUQW^sa?$py$=yy;z0^1#JZk}$(7OPJ5ENv>`Tul!Xc z_aN57suJJl_!ccPyqY8xq%=NZsZR0dge=5<>~%>s$XZBENo&YvNG(cmRdKv$-Vnb& zBng!WOFhZm?O~}e`OirMNwOW`n1+%(P8vyGane{)+DQ{hWhZY+-f+@X($vXY6n{I& ziw&`#mkfgBg|v`xd|F93K5Zl%pLUW9n=v~{u@9HrhRlU@q67n5Vtj+^xiq;amwz{zSr~=1F+edCpdNeS@2V3&mV1-qlf_DK6Aye~LF3Gv!}P{M2X zAqlVDKS+4(J}lw2`$q|{-A5$6b|01S+WnJ+*Y2MsymlXx@Y?;0gxBul5?;H1mF&lL z@MZ&iA68<&g!ve9k`j1%Q;aXBA?|=Y@y;E0)Nc|Vb%x^SQD;4|S&l_HwktR<>FeZz zB;Rqr7jsdP6=L_5mn6q=llC9La;gmwKTVO@WF z@@&7ZN?6x5$r#tue?IO;^6ZEOC9Erngmpb9VO>cjtSdzE&K;{OnJ3To zD}|&Sc5&Hoo~D#EfaHUuq6At(3PVzR@@$*aN?6YG5|)#W;%7POJ$bf086Yzj8|0o?H~K7uKGa zC_%O-kA&^XD`9(HmaskfDBgTod-8ko?D!Ov@GK}q2{c7di(r;tp?KqC`;8(JYmZ4$ ziM7Y1n8ey+Qk>$APid4~!josmr<8>4DNXUSJ!L4~_*luWO4y!q61Jzjgzc$7@y5s6 zQ_+)W$EUKy@~|>uUX$1i)`nD}cp23YQZ-6iK&n%eV>Kn5(>ElX(^?YFX>E#ftd3+N z+GD>sQO}cSN436$y=Wj|FB($3JhWakiW2KZ6N)nPEeU(kOu}9?m#`NtD9X&16856C zCpH%^YztqP+eivR>?+e%@|ufjCu!|s-j)n>*(bdwOCc_9yyfE7H4^zq@WI0>Kj%#`qH&nyX__ROXP__Sw^gim`u z@x*3%W;)~;W^g{m-yOf$HWaczVt+|z6l9TP0Aj{LmPkfIra+c?V%f{5J)cVWv}c8c zPkUBM__Sx0gim``OZc>Bjf78oK9lfi&sqte_NT`KmRy3^d(>Mb_uNriCCM?)b`SCu#s3zbKD~*N|5`E@ z(gw1P5}XII6=1t$Bjg3Fy*nh|K|127ZzZQ8-5@(9*CDnd?UE#RZQd=(?)tTdq89Fz zu!Y}I)WYv2Y~g+hTX;ai79Nzag@+_;;SUnF@USPAt2_&Sqy%^t9Fg!W_({UE;FyGG z!EsNX&5aWh+YQ>U2A!1HHP_^n#ICs}rzMjy?v&v;_J;N9q13F|s1VO{4X ztm}e=bzPLOu1k~vpZ8vt@Of`MMeX@h!t>&agy+Ry5}p@-OL$&fmGHc{CgFMU4<*3! z;<|)ccasw0d2vg^th+5?*4>dX>+VXJb@wF9y89Al-2;kR_^*U5d_++TA4}N6|0HbT z6A4@RRKgbeiesaVfB0^oJ9GUKwlIbgn1s)p0?4}9D5=#5pCL+CBc?GVag?-xJSX`L zF&!bvqogk+l_cqR;h5*6#A05MWOp%{qr_seNlLhwoKa#ixjlJy@0ZU>yq`Ud7VBvN z#jvNZM2YpZsDwQ&86{SG83}t@K1wX6l7v028YLFjg!45}!uc8`;d~8|aK1jEc)y@x<2;n& z{ocFH;4leiXSifKM(i4XwPS?D-V!wVP{LUrDPcLIB=)zEY)(f@IHw;;IHzMIoYS!q z&gnP_=XAU$c$3*z1z9&7bxmMQz+?tw5+!tcP58PzMREbzV&8wCDq&sIB)4&t#Y~s* zS35qI>_LpZZ8(Dxu)p735fbMKS2lY`ah8+#Adi|YVGHL-*uuFIw(t`PTR2a`7S8v? z^3dwCcO4f{ycUKa3*AxS)yCeCT&!|<)Dj6>xKzRxE|ai@%Oz~#rxLbsg(ud+1o*^o zDaL1|Bss)Zt<{nZc-Qeu#H^8Qhgi&7$zjMo#H^E?bTJzwe?Wdg%tpy07xRTA)w&p8 zJYv3-6o6P=n<)YNt+V@x*&=xx@&vM#66z1Jb>l0^G)Pj&*OG=S{obz>ej^Ft{W^Q{ zwoURGjt|mq zn^AHUaw|&iLT-D4TnlVLM$LrWk^BHz2)W0j^d0bjDf$lhBZ|HQ{#e5AfIpG&JK#?x z{0?|b37kOqc2&He-vN)6@H^mPv2`rVXZSTFamd3rUz`$s}<&%GQ?Tk|hvZTT)2YyO@-c zT`ne-Cw5QGzNeP3?`b9M`|}d^J)MMoPcLELUy!ix86@m`MhW|#Ny5Homay+xB;a}$|=U~FKpc?Ptk7xR^UR&p&$kR{iau;e-vKTEFbiM840!q(?{6!o;e zj$%*4Vn+=?3$3RSnd+p0%CT|2j+lllC&;53NqAIaiq|hYstL>ST4>jcHz|Qr=Wz#( z`?#i*kpBYSafP&yWPv<}wDiRCuo1-8x>k}7ki^Y!pG)!gha`ivQ90etg)^$H^lCD7_J-Y#x|-!SpS z&fJlI;1gBIN=Y94O~BlcRTS@?+X9f)lIb|gWR0W%&L+#l&m;>F6D7gr5PJrqnBY2y z{o?Uj9u?&Htdnpw)=Sv;4HEW!BgOwMO159!{9N)Aq%7L}B_((TQVFt2at~4+vRRTF zqdEwqx<$fK-Rg;D%a`#nzK1yKE5-bbk+)I(Mq;Cyqb2S}Dc-2&g>0ADsG97cXvDsi zaKv^>IAXgb9I@RJj@TXvM{F-eBeqY%5&NE^5!)}}h#in{#1495$ZQ;SMsgam z2y#|(-^HAhq{i7~G3Pz8vx(1bE=WfGjx(h>etSeR2T~Mr$qD`vH>3>YvL`lTIgwGd zAn}q{Ax$AyBpo1KAXlSgDCByS#6fO*!s~^tHV>l2J_q?XO6<&iz18u8e)7#IB43B+Ql%D9V;$5@ySA3A1H{gxT_; zgxNAu!fY8OVYZBxFk3#7Fk8k*m@Q)^%$9KyX3Ka9vt@#W*)mbWY?&lswoH~VTc${u zEmI}TmT3}Z%XBAkK3hfCVlFeZFocIghM8BKIF1nai6#oOrbkwz4QUbNxGmv$X zHzBr)u9tL$*e)(2n;>&h&PEr5-)4cVf^7E0`p#Z_C1EeVmarG!NZ5;Q682&{CBR340+4{ero$r#<@^6S@i6g%5#XpEb}^B4>}SS=n)_qDHbyODH*R49VqNTdXYL+ot&TQUJ+p9Nf{gl0l)46jL6 zLhOF$A4=d9B!t?pd&2#O#oTlfA7p!ON!Xs-6hGT@N5b~pr3BfYdlI(iz9)8m`C?;z zY0#br68j~e43K|y6k{Gr81sln1u~$V{5a~dgujmRL}DXf1~Cz-jH66^rSRYTgpTFJ zNLWq+C*c{KjiVxB<(MS&Vys_jl7#0Xu_PztUM_qdCn<&}wAdtd0CRhNj^%j7-TDs$}edQvCl>eO1eUJA*PUI zqKhdkSpuhy@vh3@QN1KQs<(tk^-(!5CyeziM2@|u7)oEoR7r%t28(|6lhlFO z8TY=VpNknF8R23ENt(Nu!IDlc<^#!8NNvTwi_HR`6EhfzSz@nj0t->#yiS{Jsm4yPsdBx(+LvxbdrQUoh)Hbr%KqK+LC-36PtR6_ikU^eYFlZk41uBrjyOgy-NINgbTat8vx) zj1p*+Fvj-^j#}%9{mQPDoCw#HbrLH%1X(Y!lG8voNUY=xkc||dm7E>&IVG`Wg8eP^ zFC>-;ZE!#MrNlD9Vm3)E6D(%4#4^ERwn!`!EM}|3GT}ljJ|~h`CfMJ9|5{?1kQ*)h zMq-&z0J4qZvkbSt3AjBFDza)Do)_W7Kg-SOENlVXr#-ch`F zD2I|yM9FKAQ%>T89E~#)j>cIDN8_A?qj6rs(YPStXk3(VG%iv69F5Boj>hj2jz+wM zqY)9_1%$gl)UZaiewPVnTMZXYGB|-}yNZLa}kbfluAa-~BP%;BzcgK$;8z6S>JeC}W z*qcuON&be|Ts)CHhS*i_DJ75>@&;=6mBxSk+viDZNGv5ZHaTVo8Jf#Mm0uSi&|pkp$A< ziCHJS?}=YL6|$?u&ZdKqcO+@B9@@33n}p|AcZ#<{+S$}2N^JFeH%gA89G5{~mI3CDS~ zgyZ~?glEba3D1>K6ba9isS=(k(VLDt1lLLBG05{~mH5{}P237@yj_k=rG+X*jl5+7tfM}+yj zP%+HsMH1%oVv2XYuzX$;C6>?2qQvrfMU+@Rua+>M*Gae+-6-MsgvEBA){BuCvCUqL ziS=R}WDCVxjcvcNRl=*)*OXAvw6VS^IBL73Cd76Q-+J=w&S9s7bFoXpx!CO_a$Vk| z7`8bgZ1Y~m_<4ohCt;hvrv%yNgA%s+2a2whhb30>R`fJlc0-ObCdmBx#S>o9?5N{W zVn>~%gt%^;k#OBOE8)8t=Op~J{k(*qwqKC&)Aoy!!I+(biST}%gzLs-3D4!;!mLY0@xB3SS(iq_ ztb3l~o$r=)>7v9|{ue0TXKj{0676X-Fvib4ZAMRQUFGf~lZ3mA%n}=)BWPh3iH*;3 zNLC52DcL-+Okl~`B`oU)L^p zOHeY(NfpTyNH4@xm3#pi45=lk($B41^w2)le7B0D^dfI;9xAE!I6TY4BwG>lAI`zy zlJ6lwlruu|tBd(i^0$i_>4}Xh>l!6tU85ze>mv#48Y5v{VoTLOfhvJwr;GWg!sw+dP(6GeqUc4 zwL$VWjv55nDCq~WJE<=u6Cn24&6kq-5c>>hlVm+)0?OG;3G9SSgKUvpgjfr=N^U{s zBjzhlILmgm`o>9okSjn$xB_fb3|D~d60QI{BwPW$m2d^vDd7sROTrakw}dOe9tl@~ zy-p%m*nNuOc@Ytw7vCv{=f(FDo)`Ni%;y6V=JP=b^ZAgIaC@#}-S|N<{JnxBl9o7A zN+9N_#6HI_2l+|T88Jg}ck{F41Bl%L9h2}(`9;Dr<+y}r%C8hZ&x;cho)@PiJTERw zcwR(==fxGp@Vxk&66AStRl@V)nuO=YKN6l7HzYhSZc2Dw+>-FTxJ~i%ytpIbd2v_5 z^WvV9INvu|TlQiu9xx`zwdJ9NtJWh=Y=>q?*=qAxvK;eO1LZuSgqR62WpP5|-@Xtt zAy&dnNFZS*1SHIagp|O=^L}4T)Rjnb8MT`vmRvzhdq_}n9Wf?JB>a7n=O}7nMA*Wl zim|^uVwoB81a~fewkMf{?MW_Sds0Z)o|F={Clw{g5sL`hlUgxsPa2Bfer4qWdYaZr zWZih4F+uK5Bf{NjI>m5znqI=)=?fC>PBTcj$Id9>9y^nSd+f{-?y<8-xW~>a;T}7i zlSsd^D~5aHh;VQGqGGr=&LLr&b4u9eToShVB?;S{Tf#Qyk+98qokZIFvSPS1j|g|> z`4qzz=9jRA1te@?K?z$}NWvDrB4G;)JBhTgh+=qO5E0%N6jcoG3yMkD=He2zxrBsm zE-7J~OG((~(h|10jFU*4%PNMoM})P%su@v%KpZN;#KbtG(IT?t!QPr??~m#~EmD1NrEq2zK?_j#q0IG>H!o9IOo zPizb)qhG@zZ&5-?-6x^VC0QVL7uiDciW}9IlBy8vX)6goCu%L}?#gK+;paqcC2_8t zc9g(iw6G6qf7=u8Dhoq8JHdOfILhv7yGhvQ?h>}ShlFkJDPf!6m9WjdBy4kU3ESMq z6T9aA`44_y3vYVAC%NaOuVfX(u4w%v-#|9|aPKKua}DL-uH=2mc1T?uH9+#K31S9H zZa5hvNrIBw;i$oqtPm?_h$oiMY|jT0wr8l0iov(58spnl!z9m}VBUvIUUV`-Qq0MR zlJz(7t5dCgzLAo{kUWr4lJ{|xot2|0fiaM_sQn|!Qiwf)86)`u(g`tRCHt%#$T&)f zXYP1P;BUkXK+J?F83mb42_^m;zw7~-?um^UN8@7&M`MPBqY)?JXv~ywmS;&g%d;h% z~gL`4b6ed7fkm)+o!&`I2v)ERg&LvCLd3xdmB@99tym0I^>hSxoWA+`#wR z5VM357eRnkZzuCzib&)m;*f>TZgk zqq;}JQQa%ysP3a^-oKM@#J-ns#P&-#7Y8JaIp~RHf?f42GY?7ZugOe9*8L!$@ne2vkr%xv(>mk2EPDu_z{(}5Q2|a=Mkm2Vf`LT-H)1C{SSiiW6UZnWBie8d% z6}>FsD*C&Gt7tq$`=383ey*Z_Mv1MWe^Y{7MXyVErreP5Ot~rHnQ}|QGv&5~XUZLl zpJ&Ql3D1;!5}qmdB|K9eQ-aJW->X;{d^W1gD8Gam6(gyP)us$)CstAqVrxPIPb{B@ z;HX>vG3-}r3Hy~s!hWTduwTzh*spXF_A9-F{dz&d zer52)=3)%`WmmL}lt3IL6MCA765`b}vxHaAED~Nlvr2gN%qC&BWTymp^?cD2%Q3bm z2gT3!$>fso9^@qn^DwuBd6-8M!d1`KsJ#CpFH1%udu@-MPcju!595=c5?Bmr z0V&`KbHm@p=PT?aKFGR?Nmz1m2}>^FiOtSa{HBWS21`nkVGm$;9Hk_@ewCIKb}?ln z$K0oHWhGTz%&U@KZ-whBCu!hf%1c^9>^!X?c^_iuaz)8hNM)>kl_V=5uR|(R0<|&n zy)g2xN%}*ELaIvQoK*9KqiSbdbtmybj!#55KCdf=<5NSz@u?}{_`D(E_|%ecd}>QL zK6NAEe?Fvz#IE=&AuT0##a{<$C9y01SCG~cyW;PKw2{~q z|7S=$N@Ba>Ux9Rx*cIQtJ=BTfvy3W+{OK&QjH(RjDzS_*dB+L|iT$o@anv05_9Vhl z5wZ3pgUr)W)*f4X=Tp?4h_F2i6vOr`q^LcMBy5i)$Q+9Zb8In>3Npu*NSI?wCCss9 z66V-)33KdI33F_PlgRVlm5lK-f1<_mXSHIOKWiyL=Fd6_^Jl$;`LjX7{MqPIPzB|9QkV!j{H9oj{J2ANB)L{BY#uEk-sJ3$lsQ5X1 z`FoyV1qkfMIIqB5+>eq?kbk3OH{`L(;TZbLAw9i2dY0^$oOGEGBe@2#9E+7ahFFFt zkfg;qXcCa*caqRaoX^_a2<=G}CG8-=DCr4F>WQs&Y;y_;+niFuHm8!X&8a19a~cWT zoL0g%KQCE>Rn+>GPO=qZ=X-hy?;T!{@ZKSVg!c{^CA@dYL<#Ie$#ynnriA!c!@|Nd zt}*^rT^28fVn=0n5+7unBf>Vns2H|6hlFj;DPfy)N!aF>D1Np%Hzmk6hsAPrI{I}V zD}Np@#^em7Q#0H_OYHBtm=us)K#UKWP*Cz0Br&A0Br!6|q^KkVBn_mvC(n*g2`BM> z)*cboUQ#ivy_AHtmzA*gauU{F!AWH2P?0gg$v^qM-zksC5{Ny$tjrjHb&ST`q_{h# z=UD|z-JDgB8WQWNWp6DB-vg;Fu{S!_7#&aWUb3rRnDLHQ-U+ZqUw@#u9#>+eFe9<=8&qO;4=ka*&cJxv7f@mmEaNEp*gN zh{=kW))HoK8;SiQP%gx@^#mn*?+sde+DX`+wtn^R%@JXS&rl3AJWj$4pDAI6 z&yq01XG_?gITE&cu7nx>iG&$GPr?kJFJXo+kTAm+N|@n`B+T%|5@z@k2{U}Dgc-g} z!VF(7VTOMyVTP}eFvC|$nBl7=%<$Eo*t*&zf2{8!QfiH)3*;ZjTFGPN#skO(O6XTe zk{SS5>tFOVlP30o;;h+&qAXKPN9rK5&vlGR{d(Nt}~hlEqG5lB{!*Tk?&QJf7HZ zlv#T&U=NU2V(l?`Sz_%m$tSV)nBx#?mmN>UXL*HuYU6jBsJR@swhSAf@?L{@-^ zu%}fN!=6@^u&31|>}hogd-}SBJ*^>OPisop(>EmSX)OtRT3f=N*73x$X#F^(A>B<=Wu>!jor5tf3Qp#^Fki2up6H7?#{v!jhYKVl8Bjy(!_^ z+f>4}_bmz6-ewZ6z0DTPx6RcWoqND|+tz;%*IzZm` z#IDplsza36Q5_{bsN}iq zV?BBHY#QeT@4>pdBEq`HD~5GVkg%?a64o`z6Fa}y)5(&gNyB@RDUvd%y)9Zel@h21 z=?0l5c^Pxj8FMk+6ZXRH<7POC53;T}3G13EVO_H*e%3YHNt~|BUM3OI}6sv*guI!fjrOx<2!S zZJvd?Hc&$4%ZKkqzmznD*cfh-bcWbdh|QG1TuAkIabFe>o9AhEjkLVobXa*X$tKT`q&%7kk_79|6F;*LWy z%*Ff~B_AT@geTSumVAohXUV6d#7h26!jjKMiIsfL6Pq3TCYO!;1xaVuo{Kt)F_$Ea zxy++N$4Z6wW4}wblnu{dJSFfQWG-s|LvjSN6mo^4a{iKhRv}!@-;_WxjQmk#)K!U< z(;IW~4@KqNpy;TZ6vf<@T&NVT>kcJw6JmAUrRb>plt4WCegH8KB#$9>)Waw_1$ivV zSUMc@G)m$THsl-Oiq=m#rtQw?^#73+sq=Upp%v$)4 z#74|o*h69?)*aH@6U(1`D7iHH-p|Fv2YH^pFX4GQfa2$QI#9y%bg+{+pOw4{bq(=^ zbqzvYLwS_y8ZP0vJc8oqx%{Do=kh2g;kr(t&D_Jv2|mqlW==(K|b{a?Fn_p`Hsu7Z>8j2C#xg_oUE3Nbh1V=*~w>~*pmS(+3uIu zN~~m)brLJtWWB^nHrXJtl1(;xVr|ZjbMNp&YTC9Ry?lJs?QTQbJU9mzZ=cO@I0-1EdT)5g$7^}fW$ z(By%{#?a(niH)JjLy3){$s>u4p~+*3jiJeZ5*tI4ClVV&lcy3JLla*`{P$U#Z46EP z5*tI47>SLcNvy=i&?JGx#?T}nu`x7BD6ug#NhGl`G)e4<ApyYCB0T>EI-VWT=yrlG#pDNj`UyTC(3s8p(MlX(j(Ud0vvL zT)1E9Jh9oa(XjDJFR{@uc|l^MVUj^&qhXR!VxwV_Nn)d6l38M-VUk5+qhXR&VxwV_ zO=6>Al3ik>Ve+EHM#ChB#74s;r^H6XB$vcS!{jATkQ;#nui>v|VE2_ZG8gKBOaJ3VXt*BKB!l(I~M`&5AjR_p|nhu=Wy)VeO?Pti7x!)(iW6fbOWh zyd+y?{KW@IB}pO30QCJeNfpQkh^ZoJ3KfL)RHW7F?A$g zLFVJAdXkfn6_AFWATzyRIYPhZso|uzq_vYik~I+foajBtE{J_j)K_u>k{fsH{UrZD>~CcBmn5hfF6Vtoc8HZT zKvEuJK(Y&B?+6W*9EVt4!z6bgR@ZPz zs%qi7Mo98Qtga6!fohQCz43bmk|vO}kWrr4^RZ;r!+jqu$pp!Un2#i-ATL42NE$)% zL&i$_LyADgN#;XJLB>nIhLnd)ko*Fv0+}fJ7g7^4N%F$$_{IukvL}{fZ1WTe+dNgm zHcykV&C?}p^T!gld4_~-j+3y>GbL>EED75@+Y_#bw))L+g7-X;hnBq&VfM~d472wW z3A1;egxNb^!t7ljVfHSRFnbqCn7xZ7%-$suX75r7vv-+<*}GiA?EO^2>|G&Y_O7J( znZ2td%-+>bB5yjaVT|`4qpd#?;rjELVz~aSm2mx8C*k_DUc&WfgC~}Un-BYa$p+xQ zTQP|sc6NVG@o%dg>pRv5-|UdwfMidH=krl=7BO2W!PIr|dzFx{B)Ob?Eh!Co9Ks#6 zq=u7ilIBjfOL{`Cq2wKsp%8n2btlC?4Pv>vixON4sgX4zafz+(k5SHUFUCfLecwX~ zu$kCB(jmCDs@D zMTKKtOsp^biwgDL!=0~__~3}<;dTC3$x6{A+#qP1IA8>0kMM z=~41&NzS@>!kGwnzLG+aEQmQn@t23Z3^^-l53&8&1y5|g*uskvw(t@qz!qNi1lJ3H z){TBIH-1;l|44|vP)vxui04ru_Tmo-d+{eFz+PODuoqW7vFjJ#$G#@v``Fhhe!h== zgQEAbZ&CC<_H7B@$G$7!``Gs+d>{K?3E#(lDB=6ql*p>}h%xF#MA(b}7^7Z1p{N(W zNds-c3by>{wl0Q&aN0gjS!jdzpiMj&g|_yFV{A^Nk1~lq$~%|c8^}B=F0sAi;oT3iu2A{j;r&J~PwZaU#QrwrONz1I zliBeR?gu3)`h@qHc_bnH7WX#fTVBcJiTGw&X}r%S`NT;+$=8t2P;!3B4^9e5&Ou72 z!zWpi>rM(uoISFeoFJbK!B&@xngtb?aaK0)_IA5q%I0eF;l$ zAYsW3B`mp-ge5nY)O9)5M8X_=>&{EPA zd1&{itt5RWg?|mZwPYN`e&wl+NW$^>mW^ZsBq^k;q-ByA?|gqpvL7)M{dk{^ z5;zG-jib6pNhU~7N~rQ2+_6G>N$j_9bK`vPE&1|zc%1u48qElg>U)y@AH{gJ_m%WS zjP1wzNvdMLia&=Z43d$E$vzg}ppnEuazh44W=#%{{6NWSh|TgKNx>;tf5zYmgQOxP z1Q{a90I?PF0}1;zloD8h+PC`ggh9echh zAbP5pP$tM?95tFpg$|?S3W)hg@(;vf#!8k?#d83}jFWr=v6u;x1e^W7wuqT1;a?}2 zEZL40_D0MU$&U~#XPV>}l>8xLrb{lkx@JgjxR^M}Ll-kk(g1VuG0K@O=>oC3=1M+v zF`r1{T+DpQ8W*!bvfafjlKkvq7E3O>n5B{jE@qkJIoIY-CD|d?<`t6SE@qXa-ZXq` z12L;5?IG5$&m^^6Icp{DT{-I|DdS>&n^4XMNp^^p^SNXv&dTo)^M&MBh{bI3#O?xa zOb?$sn<@STALH9_$lfiIM%e8ffNYgyL(Fl=HZ#N6A&h?2)uZjGa6CoP>AFs}Mtp*Kc%u&!fCw{M(3_{SvNG2P9mh z4obL29g=X3`a!}q>ac`s)Q=LbQAZ?PqmD|rM*Sq=8uhb;Yt%6b*Qj48ey&l+C0wH- z!Zj))T%%6tD6UbbBwV8;L9S5|;TrWDj|y^)IwRp4bxy)H>b!(&)I|x`s7n&AQNK&L zM#W3GM*S(_8g)g&HR^8(*Ql!!u2KI;xJF%Cm60T7X zBwV8&O1MTnl5masPr^0oiG*vEud=%r4swn1OSneGO1MTPkZ_GkDB&8FNWwKLDB&8F zM8Y*HsgpQgF|2GSu#SZk!#znd33qzQCEV$ykZ`A$Qo@~HDhbO;EnzunB-{JSvlfM`f09=b1&q7G{;OoNN-7lU>5y>5CHXPIFNF z+@0p61X*$}2}^!S!X0dG33sr0B;3K~m2e09GR4mwY`!S59c%%L+EYlv_PiqDp0==r zy(l8#QAH(Ody7eURB;K9D&YyPQ31>6EZF6ibTN_VqNSXKpNrZxuFU_$P{J{#(9>64 zOnfi}_Vaf2Ea!>c0TsYKNJCtg%S)IW6(r1!iV|MUD@k}Yf6WuyIk4m^5|&(5!jh{= zI6l=S9G}-cu{Lv0QiBrUo}{LPdy+RK+>_Lygt*_RC*gjhJ|)2YMuRA^{YFCx_Zy8V zA&zrcY&1AxO}rQrj#yJ2#lKwhmc;ISZBNpS5;!mmdmG&AHJ1$7gCIm&6zl0)1P zb&znk(^10RPA7?7sUILSJ4<+_?n()82l9@DI}l0eIqb}>rxD>EsT+?9ac9+C!ktwQ ziCxXpU@m$}cs1`Ov8%bo^p@~y{+`6H<`&ae!mD|IiCxVt=6wmT<^v^mHMf{S5?;-R zNbG8EF&{{HH6JFiE49T8m+(scAtf*rF?Po~k`l80SboT83HM`TB({$#i~BJ9w04@LLIIaHoVbxJ$wr+#}%(?v-!` zzmsqVzn5?Z4@fwJ2PK@rA0(W?!xGNm5eaATsDv~4vxGBvOu`vFPVsa7`IQpn`g2mk z_2;yN>(6fzu0LlbTz}3muDSn6PPnH%Hza>R?5XTc$!#aMB(t`MKPA5{SqwRd zwfBzXDUM16xhqLOGuBr%AO7OGq~Ab12}FDDO9~@q0G^OPkko+K+gblg+PavBlJ{NA zBgtgQxzTvLSh5WAJLEq~;A=YywLg)Z#Tf2}JoSX1C0W1xuZ8bwBcC0|IEfE(R3pMs zO`sT#YCytKO(@~0CX#Se6H7R%K?z4SiG-v2oP?vARKigWNjR#>BplV`5{_yL2}d<0 z#m`Yq<%#XXIXGpRC?B`d<~Mp+4udR4-s%1IbgUc#6PlKe|zeNQI%d=(`;s*;39RhIbY;+<{W zQ@7s;ZPkBi?>|d;RCNiDdR@}X9aTfZa%xIyAtobAenY~NYe`sgZ3#=R zBVoyPB`mp~geBLPu;d03meWweavDikPGbqnX(CyJPZeumoZplTM^Ek3x2BRA5Ieu# zlB|T-n+DA!TOf0B^=vNr&c(EloOLlRC3hiKS1UlYhgjb`N!CKF@0}&vA=dXUlEW^h ztK_DOc}J4wlW;lRB*h?BPIpNo7t=%1*TwXd#JQMvC0kugFUfB%rnls-i|HdtHZRXaMju<;i~nygsavU60TZbO1Nrml5o}9 zEa9rPMZ#5UtAwl8R}!vTUrV@ZeIwzjwN1iRYrBN2)(#0*t#2hb8VO-H|Znu7ol7B;1GJm++_u5+3!hg!}M^5+3zP!lNEbxI6t%!lRx@c+^t~cgwyi z`~;lk_$A!s#zekg(){ge51Gu;fG%mYi6^l7kYKlSIODo|CYgq!N}Bl5iiM z%oDq7+qwd~l%)83f0Eshy^s`=A0X>+SCUe40`es!m4u(Drk1>iyFYuhlW_I1xof-A!@=_KhP7L(o+-ih1(=LIM6LG~gd>_rB}uooF6>_sLCdy!efUSyH5 z7g;6jMK%e0kzK-Gyy%IIJZC3|-*=c@GZzm_#U)mKja)Ts)!^2 znTS~~Dj8Ti{CD4qNzNh0a-+E9D#UWE1SRkYQVMmIlvFdmBuyc8(dNpM!H}kqDw2tiwvcL) zB{+9%RA2Yx*>k6clXyStiU{kfsTkH(OTxP9NLW`rPi&SsV)ZG39GDCHo%RNjDv+mW zVMCS^AN z2x%qB2eI|1t>iU`l@pOB5X-~26_e&vjBhq#+Dm>s8RJ_9=_rZAQ5zwhCG2Sz$ybQk zj+m~VJUgfFIEmL7O8gv+ZjAABG`dST8a*T&jdvv+jouQDMqdd>BO)A){)*vfyf5Ks z43uy*21_^^LnIuH4?MA~hiAT(IPoB+|8BXGZY)?eko;b$%*`Apawr7@v?U^HCdp?n{J@Y8a)ddvg z>Ou)~b&-U*x>&+oT`FO&E|)M@S4xjfAE9eFJZ23kT6#_N|-;N zOPD`jNSHsHJ+Z4p$4~Jaq?pq!5_>DJJ>)Bi#k>poMq)7oAv-*=t6p>LB?>@xNw_Q6 zE$NOJdseweG6XUp7JuPRGTzBPiT%c}eGmFO$xOu9dicG>{(@3b)V|+IoX^^P0%zO- ziM9D0QBQ0In2MOODESyAFb^^r@{8na$Q;NCN{FLzO2W}NE#YYV zCgEtDk#IE5N;n$lBpi+N5{||NPi%I$*SaV<>&EbsjB{OaVEVZCgqYWgyf3Dx0NMZAok=xk0;OW0rEPD53=Nlu;iB&!;uYg(QcZydpX4q_E_!lOmGj=fl^XqLLgCo3CP$(oTv? z8n~lMNIEzvDS6LHDajZor73~AkbdY_8Bd-a!&jZ)x8>1h>w84l_i~D1-^)wb_X-mB zy`qGDuOwmLD@)k-*CgzF6$$%ZRl>ekld$jADSr0-bx$zM0sfXnO~piu#n^9R%)@9z zVkmF0oY1eA@Vz#~)M7cogP(@qS*k5L>7)RzNo#KgzafAVS8Fg z_Ti}EII5+DwYQS6_SO>C-bTWb+e+GEG?Js_c9J$2L+kt764upT!n!(0SXW00`_)Op z+B-|$LG2k(dlyN4^t214tAw?`BVp~`B&@x=gthmOu=bvkMX0?n>Uvkgx_U`iS8oaH z>LX#v?@2bHvvuY@J{ld$Ce5|;eFge4D<HBrL4CP`TGWJx*n>ooc`Me?STsS?&TO~SgSOIX*(64o_CQXXez zC)5=u;TX=8u&!AW)-_wgy5>k&*Idb2)U_IQeIj99^CYZmzJzrxkg%?W64tdyvIBK3 zKwXO^tn2?MyA!CJsyBY%7w^scrb7rxAtKRWC_|A@6f$L=XUdRJ2~oz7p$tieNXE!4 zL&!X22xUwfOwpty3IFeN&-4A>-(Bzeul4`GYiYGU>)HG4Gu(ZjbM`*_ek9?xW=goN zk0spJED5(YTXG%ST8VAVk#NO{xe{)Do`hSUFX7fdk#Oq^B;5K!$zcB!d@331vPkkV zUw&*u`h zXPsmR_Wd{P`+5ntzCpsRe<9)4H%hqmO%iT>vxHmUBH_{4D&f)CCSiNFOW2+r61Hcj zgzecSVSB!musypaY|kDE+p|}~_Ux0eJzq)Kp8XQG=YWLmIVfR!zLs3VH`+7kMZb|S zXFDWe&URSBtsjwa>qjNr`Y{Q6_2Uw@=UYi5^y=34o{(@`-$}TwlM-(0dkJg)!6p8l z=8rDnJDB5+Ad3SVC#0j z{Ex)eHav~3Ur{|Q^{<4bu1fw|9Ikx(pJd$9G?D#DnDZ|wv?N>~^15USVqV8n#~YG) z5IgUY%Jv_-@BR|9FN(JSBxfLY=bKJ)8DdW_lPIxccm$=QF5#Mu<#6P0iizFJ@TjI& zsYJ0DJI;146qCa9mCSl#YrJekOp1i-CuERh$8*tLh`B{l0AhQQQBn$W5HXn~PkKyd z$*;J#`W7)+B>zFIp4(z#E1TJR4mq)>*(BDUSs0B2V`xUc~(B``(cWg)(nG4A$x$lSYd1ih|X^71ry+=~T zV+u&>c}zh`8;`kH(!*m4Nd|h%eUfn=Q&{pb#GXPFk*tN-C*^+00grh=@}tK*DESj& z&uJf$WWn*V{VFOc3bFjT7$sUAVk;RIkBNN>cnlww@EATK;V~>J;V~>F;V~>N;V~>D z;W2zv!ejWDgvYR~gvYR)gvao436EiU36J3u5+1_}5+1{f5+1`!5+1`RDQS2NpOSC| zl`1i@Pj?DBpYj-w3&qwUHz|iVnyY)M`1eI^m+Ek531e@c4YZ7Mo~KGOZ2oB43pJRwpU; zte{(}dR|JX=g_i9q(`clmlI-sLd>f!@uTsY%juLlZzjb)?{Vn_v7^yjF@qoVk&-x`%0Ji z^)t`qbjq4M(TI(GQR3~HpHNR#)UzN}J)f$ceW)irzIQ0`dKM+r(+~A5Nmb7>)x-A0 z%z)cEsBkvks3FHA|erpiGHKg(ZB*q(1(;@djp5OCVl<#IMAmJQy9 zZ&;g~dQOth(!(b;*M+Hzbd_ zM5^E;j=!zJvo2{Qja|}8I=ZBjyyB818R8O^yzg?8WR6RE$x4@G$tIT+$$pocB|o}k zkX&-PMUuXMc*FupPM3_5LN1vkkGR|_dCDcTq_#^INlTZklCCbdN&2~DlZAt~qbu;f{nMTXM~%jwI8- z@EATP$?Z~Ca=%MG$s;cHC6Bu_kW_JLD5>w#NYcusvE+G|CX!cOno0({G?R>XX)gKD zrG?~EmzI*XF0CXxTv|&Gy0npe=h9Yk-ld)7ic5P*`a$7w?jX64U0#rs zbm=51@6uUP&83T^zDrk0dzTj_Jzcs<`n$X&8RpVmGS;PsWQI#m$pV*`V`9%CEz_$q z6mNV>EYmZ2RbrW*NiT_IdM2+)EYmaTEwN0`q>schJ(Io?%k)fMmsqA}(obTUo=Ja+ zWqKxWNG#Jcc~fGUp2+}-WqKw9C6?)#43b!;XEIn~nV!iIiDh~wLnW5!nY<;jOwVMP z#46wg{Sf*z(Mq-(s$vYCu^i1BBSf*z( zR$`f+$vBB+dM4u~mg$*HkXWW?@}9&pJ(GzN%k)g%msqA}GD%{Yp2-Ii%k)epODxkf znIf@F&t$5^GCh-N63g^VK9pFdXEI%4nV!iEiDh~wA4x3JGnpx|OwZ(FiDh~wvm}=3 znaq}0re`uoVws-FT#03RCi5hg>6y%zSf*$4iNrEJlLZpX^h_2?EYmajRAQN)$s&nm zdM1k{mg$)+kyxf@vQ%Q3p2;$aWqKydC6?)#tdLlyXR=aanV!jK63g^VR!J<=Gg&RM zOwVME#46v^Xu}sfoqr@^jlT8xK^h`EO zEYmaDBC$-*WUIt7J(Fz`%k)gPODxkf*&(q^&t#{>GCh-B63g^VzLZ#|XR=#jnV!iW ziDh~wdnK0Xne3BTrf2e%#4IS)yaeAX-}(k~N6{E$@Yn0&@*K84AEn}Q38j`n@~M>l z!rfX({+QS~{T)ZcMy2nOq}_<)gKZU%+y=3jf|9%*bFbunh|TydBqIQehRLl#IDthkV+D}R&ziqOYB-Td0N72wW`Ff)jWu)CgHVO zUBYWME_SUJM5(ygwfYdGrb^khS_)DtCU&jP4{#lRfcF9<%OM?czUoMt4@-)?`6)*2 zB{#PSuc*3`oDjRB>PcF9FHv9e8a@Jc%{Pz~-XH$DXhVtpnoJ6gd?ShdnoK50V@bu$ z;TdcqVGEl|x+CUJlxjwao#p(H<`lgd-AZ!*?csj4mXv|mezlRDeJO3^$B!`9FR6@} zbC7nD%ZS-g9%KEIdWiWQF&!iYx~GkNjhK#-KHIUb>{yKcO9I5~Ma&D5PKfD*m`;+m zsM$u2I!j)I*ow7XB%>hqsq8A509&ZPwBywrS3G-X>@>Jv#`h?QDM z2}(ii7%rkj8+)n6lAc~_DJ2-?rIu5o3%%3|$rdm586`OGrB+j-|3K_~t&wEd9-gny zDM4G29}V2C<{DjS{T%QadQoLlE26PRXwj zyQ03N1koK~3-?f>c_6l}y^^93+tycNOFz0@y~iC*eAN-)<;{XvOt@=_Ni2ffr^l;D(?`kNBH;iWE1Zrv5` z*A+@|H^lbqDkWMLVrTh3NewS`of5S4QjuqnKHzU_w2zlcBN^$X(ouqGUMfn7uJ%$l zNxt+_$&}!Pm%5n}z2c=ZNHTmG?pHtw?t<8UWuin&Lu|ipl~naoStvnMFLfIw`l^@8 zCK=|Xa!`T~yi`s~bcL6?L$cjV-AM_Kda2x$=p`?eN0NSbxL;R6$D6&`TAfM0o|k%n5?$h@9+YhMQbj4jH(shZC3+q*0)0yf z$z{km$Rm^>-JWp2N>QS@A+}$oB}F0jseF_YRP<71Dbe~~s+^>imnu&QI(w-Kl;{XA zRZ%kCOFc;mR(h$*l;{C3RYh{zOFcsgu6U_xlxW7iNs+18_v(^6AhRJgC_zDpo#k4T zXnDwD#MGA5gsg@h zsF!L%iT>lIT1tX_VX4-XARol`t1Ts33UUbTX(y=!ISJ_y6MJrB8PO9c^*kkF8BrD7 zH@zUSjHm{rGbPzFA}iIE60wZv708Pc%ZOfwyhKU1jL1s$phPSqs*jp`N-QI40eOXz zY#EW2>P3lIM)W*lUXxfx)E&}?l581~m3o~Lv5d%C*iT{^k+tv*O0s1{R%!qxVi}Q@ z8Yr=h$Vv^SBwI#grG`=>mJwO0wa&uY#EW2 zdWRCRjL6Q{yAsQY?0k)*BwI#gr6y1!mJwO0_av4PS*iCa$(9jWsShX-%ZRLnlO>iB zSqrC9k}V^$QXf(xmJ!*urb{d%vTc1tNw$p0N_|X;SVm;qnkBJ}$hI|yl581~m6}J1 zSVm-}=1VLivQi5u$(9jWsZS{p%ZRMhB8g>0R%!_)*)k$4wTu$6jL1qYmsmz*rB+gs zEhDm0t0)o6h^*9ViDg7qYAq$%G9oLrjuNqq$V#o3SVm-}zMv#qMr5TnQ6iQRS*gtu z%ZRMhR!XvEL{@4$C1M$omD(Y(jL1suq9j{JWTkdfB9;+ZsXY?Qh^*8;O0s1{R%$;b zVi}Q@Iv}x($Vz=pNw$p0N*$s^EF-c~hb5K~S*fFxWXp)G)NxA0G9oMWt;8}SEA<^E z*)k$4^*tqG8IhIxL1Gz^mHLU2Y#EW2I!%dKMr5VVNGv0=Qs*eimJwO0^OT5XL{{p8 z#4;i)^(!UWG9oMWJ0)Tnk(K&GVi}Q@`je7u8IhH`M2T2NWTpO=SVm-}{-GpWMr5V_ zr9>!~7n3DN|mo|X)Nw1PY%84Iy(Rh3MG*tV)k`1HHFgipVp zm8?gp7g4H)%tnq) z2})+d-3{8)NKyeZ3DQ_n9bzqPBI)YVloIU^xeqlrlMICvg|wgqqrFrsN_3i+YAu=N zrP@-01zxH>CAtAp8Z~#2?1YquJTI|5%?s&739<}J8`*;W>MHpUr8ZYXjx9-lEA|vI z-6UBdUqN1y?@0;lJ-cJ*t6!D0Ln#|Q=_TR2fv-vUzD#e) z`Wa~>f1o{mB){)Y8@UYWD;bKKZOra<$vB9OMD&wP_n7{Yg&y;UWR1tXDcJ?FeIFqC z)@7jNqRXI|a6~LS#xDj_G$J;X5*rb_3o&m=Y(%UOWSGQ8#EL=Qme`1x$tVd&#KuT$ zM63*A-jQ%b>|F^*#NuKjVo#t{Tx>+_8OV5*vJtV`kO?udzOG*8@O{SjBpo64KI245 zACGxoGTdd7WDdm6;0Ka*5IcjDB?lpPMNN^MgEU2Zrb=$gk`!qTnI_2vX_WzY6OsoZ z_9pub$&()Qk)(mgd`yYXh1kjrvm~osW>bP}S;MPkj-;r|TuSVdQVXAyd6b|F>aqP= zAnD~bFO&>~*q(kWnE>esStObMO*mq>STYh~Bk4;dyHLum=cSSpF3TiWT$WQ}ZEl1% zub>3^vn55|!PZwv9)Z}K?5ibDLu|ZhjpV-@;ah%dCG`OE|ILxRkLd=ZoXU14vN%jp!hIWBDTX2r10TO@4rRtej@O~N*Bm$1z{C~4T{oe5%X z-W3!3H1RFS-4c8I-mbbml9||dyAt+FK7-hmuut+OWG&54Jpk;ui_e z#jg^ci{B(X7r#q*F8+}4TwIj!T>L5Fx%f-M(e_Icj<)|T;b{A12}j%ik#MyAiiD%> z|4KO8epSNJ_WvXtZNDbrX!~^uN84{mINBaT7Gi%}1CF+*k#Mvj#?2CrZfB5ibo&+wN4EnBN4GOdIJ%ul!qM$pB^=$(Oo?5YJ#l4b zp#+~`?!jez3bIMIL9RivOMZYP;mznAl1q@AA-7ACeIz}nq=?HM682-cB<#oTl6AyCCXkRkA!_fK8fY4L$Id>Bv#6Li9!-9Wm1@;@5=in{H}aJ!tcrlCH$^@ zNKzFw+w7X6l2#D=t}G_0d?ambowwqWUWoY|F(o8#LSn1PO2$Ae|9M0*&0|VR7I{o5 z$rm0|TJn|0l#zT7u{J*{`3+)ieoS)BW6DZ`yTh1rlDi;Q&*PH&J*K?mF~~~9JRzw9 zv3;)~dCp@hN?LeKC5f$2ofBv9Ny+2G(?;?@o|1Gzse+Kol0Fd2(4LNo&3GA@KWxu4 zlF=?zRf@SyH3@T@>XK2Y+47%fB@0|?NY=U3lzi<{OY*BrZOKjf!kX(y?sR!h@~}%? zNi~;xk`^xYB{R=q-WS^3fD-E^M&q;7kP`6tG?DQ5G?nmftC@s%Tg@e0iKT^vE3ves z#I`;WTW>`P=Hp!0r=YE5Kg2!-?Ic$qwioRwv3jPXo(`1Y%R;z6#g*`a%M#vOy(+PLtGbBkCE>l* zYZBgD#l`NenxIr%?B1#^q_0ZZy;Wz(>oKu!##+CH=e-{#dI?A45RO=X$$yX&kT)qo z1}`;`5>0nsSZa_YfLN&^l%S=TdW#ax;iZO2@_DHdlpwd48cB&h;H5@M9`jOTB-Zoq z!PehRkkgRyl)&!e&f~mKq{Ob4e-QJ2f~1*)J48xQGZ{|?P->dw1#JBqhMNHfTE z$xuie$PCFONYX5fE=iU{ZidX1@LT3%3BP4#N%o9j>=OLDd&yn0zIQ;C)mE?ff zXJ=ka{x=Vw?{YfLyrD^v+?Zub*_>vD%R<%@J7PEE_$*FU&ob7N!Xp+J9q!5mwo#hRZ3J^QXUr4U( zNE^wFbGlIy>`WW`-q{=z`wX(4EfUtVl@eWrnhTrK4Uy1x#^+s`SV#xR){@+J}1cw z*;gO$??{S4p2W7!ODaGtbNEG47xFA(ewDQKnBOIQ!uf}UPdG11CZd!b)juT*T>hd& zpD36VS%Pcq5+&GJ1bcyNy=ZX{D6cHRR@ z>u?imE?rj(a1-M^7Ecw!q0mF z2|w@mO89xdPx2~ieiPd&BAEsm4tYRwCVkr2by!rg6EWiv6PGiPDUjld`43`OZwblE z+wc|=V&ZaBv82c+kVh0#1hN!TN>UkOrOL#_?j3l19+U9+l%u5K@p)XrL@t}`3my9BvJx-IOGLM4v6*qohZ>$5L*+pvn1Wa;kzDP zC3zs(=i=^0QqJWiNi&F@!5)&%klZNMQ?d+F2=a>LwnxHeu)QQzA@&Tmw`3xuI7;=U z1ScW(&Dc-!k4t|^=8|E|8F^pGC#edt zYizuPWAqaw9HW0v!e<~8C42_*zT_%uw(~Vf!jbe3B;65XeZpkP>kzx5rbym`SPw8& z@&UwpfN7G25c}+WDA^3L{hBT*Q6_B93`u2|k0h;JW=bOEl45Jdek|#@0l(ve^EFG- z8}d42HYJ+jKscTCVL$43&&pNFHKd5nq4Sjd6|3FcuujuNniOC{FA z$tbl^jNKkB1|(>m_$WEM|kGtjByIX$qN(J>4kj4fzzZNixw&K{iWfK`fKmDp?6x zkC<(e-5#@pqO-hH!n3?favG(!qn^0fwQ&IQC1dood5?sj?!6Lzy7x)=>HbQ>PxpQa zKivl;yy^~08a)wShhIy2x_l!U>2gRi*X6KeyUP*D4=zU~H&+O^bxd*`8NPiAj!XV^ z`BswkfiUKTg#FKV681kQCG3B`r^G%@N%-viKndO|AASl>NoGUrQ*c_c6>x|?_ zh+Qq`DA9D-Q!Gj!`I!>1XFD%p&vrq=p6wS2d$wOC?Ad;kuxI;Sa^8>X9}@O;7bWcL z{*m|}k-bakh@kl3`39+6e zNwUaeqLQ@`n^$m?ERuGROX)FRRMH!A z9deswG{oARP4Xecj%s$vVu)=khh#m(>zEK3&Nv+3hvoAvxtW=aO85Sex&ZWO*`_ zyCj7mw)NbSauC~k9!VWYWgM}*lD3fQkh>+XK%Rr-lMIJ6g5;M>h1^mT?^{WhL86cX zlAVy2C{<8$2GSmKuO#Uy+;Kn(N%BH^K<<;2h1h--mehjSv!)`FmJsWa9+33#mLm=cneUeCjl10GXSa?xW-NitOq+fzpJ5X9R2sHBR=l$ErG^v1rI zll1hM@{(bYfrxoR^1jDZlzalQZB>%2^O&b32Rx>- z{EK?tMhoLHdq$*rsNn5WB|W z(z|N-U0Gi-eCpUhGS*`nN@lw>lB{=WEIH`XL~_QZspP6lGszv*!uB+mly+$$sq4~G z^1Mqc$q<*;l9?`TB->otN=~}8ll=$Wywb_uSkYI6ZSu^ zN@hc>U+pE~v-j5|eD>a3vd!!1BRTB#^rb}4LH6Q$ew`9rhgdGrPm&AQnB@}vC9`UU zN8=3%pR2zq+2b(-BxhU(O8A={gCzXTj=_==bupqbA7h#l&W#@`;oSJQBu}7}_2I)L zwIFuKI$Y8bVt1?~V!|=#q*Zt_K+&`1QIy!T5lK9N+0JXHku?~+$h%D$TxN=88JyL*vj2BbIk zVzFeE$1J5pd8fII5@c);9-p}6cUi8OvMwtm?Oj$%_^jzO3GYT%Nq9H9TEe^0H4@Gf zUMt}|;m;*^*T=Ux_H>=39Ap?|y`&Muj{FA6P>3D*FC@z$V^C_NWIe==>ShV=8MjDy z&$v~>Imz23NB#J0mt1$*A(`1QY~fDHXAo=QF3Fc3^QGjd$LyAz^_V@9%O0~=V)tlk zu&4VZMH+?Y{VPcom;I7vE(a*FPs%pbbC430_%{6Q=|hr|w_;Wm_TsR_w!ROgjz|`J z%||7NAYJf@J0>}0F*p~;CD**vx0G0Wj-%!il%N@Aaoc(SUQz(7@L79)kUR{rm>(sT zJ?19~SMxh1;c9-TC4EuqBDQ`;G7|C+Z|j_7g>UO;$sUh6FZtPHE=X=_k`%dt zntzdGg+xEW*s&xZBm?9(Nim4^8^22`Ki)e@dSBm`f7&Eq_bcxBMe{?e}m- z&=pBeUxDyn3D+dNDtXpp{*$zKxh5Ina$Pdd6A*j)R8GRa?r{nGx+f&;>ncdt*Hxk@k9tzF<<)eN7HCgg zE@A7>LnH4&hu9)}!G$r8bi&Z6DeX*K^bN;JKIOqRa3FrLRkZ{g_O$q1x*OG9C ze{BhS<2sT9EyK_Ia}xI9btN33t0&<~v-KtET7~sAknoLzhLRG#twxf2yi{XJJ&$Q3 zsp2tBC0wtvnPh8=@VQ@e$pMJv*exV{Pobsc68fK;alTqf*w43?u%B-u;X4s+C448M zorL{-dkOpb4w92-;TT*$9VM3_6Clq^7WmP4LBjVYI!V~8cb4#Ni!KuO>Rl!2T8HQB zMG1R=ZW8tYFG<*Ib(gT$>LJOBHh+Y@=qX{J@UnzGz$+5=0Iy2;>Fz~|@)P%(grB%R zlz`XR>k?kQ{Up4``b&8IydmNB^QMI7Vt{06q44eCfs%jy?chO@GC0oGM-7%#f!GuB zA(DC?GgQ*XW8RXy)`yRhJmoQ?B`rK= zjN~l`4@+%B7O3siaXV>6l7-LF{UYx94q_N!nAJSNSPE zaUW2E$J*h35HeNL4DtnJnxwzSd?=abG1DdMA@+?wLvjpaSIb9|%N{dRlDT~t^Rc7| z#Oj$PsqHbdC9itS9LWbBGgq?SW9CVYc+7mspC0pxBx8rLJqslFL99IsB^5p9Q%MuZ zb{w%qlAe$~kj0Xb9NRhdut(Y<>5drtrShGUL68rs;hBtN zg2#L*nd33LC96GVk7NfV?E<_REjbR!0NE$G0I_@X{gmhph<&;bNN#^2l!KCoAlAaK zC6yr7M}0#H8ba)Pj?1eM`Q= zrg}QN9G8r9`Bt*Z<%Hz8%XgBiE+-|ozZh=odr5JZA0#zgew4i7@{?qu%PGlHm(!9x zE@vd?UCv5!bqm{bPV%tJ&ypH0=OrCoE=c;j{34m;@+&2}88Q~v&u@}+FC|4LL;j!y z_dqNM_>&T?4zW^yNrrl22xrP5NOi@a1i$z?BPBjsVKJ9~uNN>7PC4Y6${OGZF!TQ^gJgGkyq6D}147Zh;5`7F}+sY#846$w9MhS*^sqB>KY%i5Va?nfVqy!hd zR4z(1csVID3+L-j$)k`@A-O3*9f+Ofyp-rmUg~biBrlbp5-jpk1t`%ikX5L;pyViI zBcu=|IPIkhQ=-8u;n64}sSL5B@c<=g3$YeHM2U{@Qbi@3y;N~Z@N^eE8TbHC7$l7$ zHoEkPq_fAAl=ShKQj*~wQ(7|7W6DToL26=8AC;_xSZ`dG65R!9hL~~*(gRWqxk#&q=tabtT->dXj%%4`;^Km!$Lyr2!>c9MXLu=JQj6S0FO;v3=B(nZq5rK{v+mlq`yT)IgX zySyafTT$I5d@HJlgl|Rll<=*nmnC)H4EN#{NhgTy#jBD*kdJT-dr8JZ?ESCTBr`mw zw`7IK^pQ+l7p^SSS26=)BS)`G{za(@=r{UFG7Shk|eAmOOlLJ3FBK9z9PY>|W`P>UrT zfm$L-KQufSOC<#%b}p7lcuto~curSHTB4MF3RX&Zd_JSZ_B7k4xEGf2E%mh$zNNli zVxNmbD7BFiaI|ZSgri+sB^>SACgEt;b_qwjc1SqdwNt{;u3Zw2c6}+~XxDBDN4xe& zIKH!2!ttGb5{`&{CEqiO4wtkZE$@VD; zpKPC&aBS<0gkxK0C4BmQPQtORpCugIx**}$)-Mu{ZT&{k*w*h7j%~$-&($w7M!&oC zmxQBKmn0me`dh+Ls>>3NQvD<0IMEde$F2UAaNO#ugyUBKNjPqGO;W5**l%2ya4g`4 zgdK;0%u*E&2q*(B@} zvP;+}5p9@OZKi@0ie567W&PTdW!ud#rB|rOo zq#_c|KDuAR*+&mZZ1&N}Pa}~BC7gX!RKi}Xn1sDn2?=|xhb8Q_N>ZZMM@7rxU3&@V zI+l^F!x@}__DBNu0A(2yaAspU3FkFEF5$eU@)GtfPe|A!RgiFAQ$-2qHC2*uUelA5 zSl%)fZGMWP4DD$NGqh(U%+RVzn4wjZa9&e&3FkFED`BryL&9FGriAmFYDqY+skVf@ zO&tk)o985)*Hl-+c}?{t%qkm5m{m5Ea9&d*3HzwV63%OCB4Pj2RKoQJn@PCdU~|bw zBf<=}h2#^6Ww0$JoEh6n!t>Qy!t>Qe!t>QuvK%$rC}%s#CWwu4wwHVbvA3Q(NX|g) zt>=!CYhKUul3U&m>v=(v3u5(jk`#wnJ)I@7S)I5tyGWivjLkOeDyavt``m7n=zNIX z)xIQI4zbl%B~QD& zF5xq@ev&cYY@9O-jw`^Qpa%&2T1;a`~Vp!xdE}Kpo1h?M}<#8 z2TS+_Z;0ex#8`WVO6+`{L(OkVl2)dPov&e%Ob|O?BP3JNW;>^EOXfl>W|V~EGNUCs z5MyU&jHD{sWAcuqx68W{j>3$k#CpH0X!AHqz6m( zoq(9%(4HxhxsZP#(Y;e0| zHd<&`!VbwhE;}WB=CDih6SifgzLeZDCY0ThZeGtG30FJZONp&^Xuq(qPhzVb+Al2Z zr)agqgOu26hgRxqiLG{Mr4CW_o6$!k{MC%3627H%Ov1Ocj!SxBzw$1^8rqVPkb;mC z624vaon(d|jgu0tZ}UARYHP)mScKX8lEWxv-ylCp&O+>b#pNo*uHI9M$?{H8z~@mvOZYtMyo6Wg1qrXrUnJ#GbEQR?nJ;Mpu|D&6N^~luI%58y1bm8h zQNkIx-#7sN&||D^=`KfrVBC3x3f zauQMra!v9p#GajAmqaFqaznDJHs+JyUA#zb-Y;)~T!o~Odvz zwWpjHcbCMT_a4T1&r1nr;ri*932*UB*1OyzIqXtEavo9(^%Rs0niAG?ujGA~LXuA) z_W8Px60JKYDe^t)DNG4iPf-c$DMpEoL8)I*syHR!)ly2rtEDt0x*4VZL8&s7z_Qc9 zkjEvKosNK%msoz-Dg)lEmoPu9D6u@#Vk$|PXFer4f_=A`%92wM`@BC*iT(v?k1XXG z2}i`LN-|7MioA;!N|Z5HV@!|>G1dcAr$kFaZdr;q>m^S^vO#J}8bfUBwIz17q(e*{ zN>Cif(4HFAlT?@#p40l0wk{1MgCVx>4J98#Y~LG8wtGwy$!U*iMv10J|C|Q<-ds`` zax0`2C79bcU95%eB)0ZQQS3!~$v@Z&lMa&Px#50wlw@~#Uc!BULBc+>lZ1U{X9@ev zE)w>cT_x-@UzD)V>?UEK`I3ZvW_Jlc1wADE6!es^&wN?JKJyid`pj1)>@(xSJ~J-t zGvmTOGcN2i@(xSJ~J-tGvmTOGcN2idudPEXTC;J4%t`29P)Ju z?}htGcrV;v!n5;+g!j~MN_f5oNO+$+P_jM<-;p0A;jg?6mb`(h*LvC^l1UJ|Hyxa0bm*o5;lm(I}Tt1})YyB&3E3vO z6Jp=FJ0!gS+9`PoF}4@GB+XsEl<*ktmVAVmf!Nj_$x4VFvAvQV5IbV~B*!3jm-Ln7 z0>ti;_DimL%mGQJg<;G=$=#4HsOM`*DTs}TeIt1mG8!#BBzX}s5pq~!BQ-N1MXyPS|zcKJ@y*5xE6ItpTUtlv|DW1obpmi;LC8C$nL{3ppT z7sGebPf=o@f@Ro?)0BX7!_G-K6YOURe-ZV(guj1!LBhFVzexDYS-(o|SrmTn{3a;@ z`5f)}T~Y~R*WpD;eaKeC{3&VcF_$DSL-r!(Z^=-P`G*pn46!FCS17?Z5IbLSi7XCh z!Tqb46o~!y>s3h>h?V+JQg1|f{all@f!OtPT~ZXK>^t{{qyogwSELU9;cshD2V!^q zX(Y`db~MsSx_C^Iq>snkBzfCo(o3d#ObR8s6Jkf>W=hZpZMOZ2%K^lgWME9}`ZH?&i#7bR*)Jl+hr$i!k6XX#{LrTDTuuUb=2%d%^rWqw_ z+jd53u%)e-60(k%f{cO8O^~UO1qt#A zWO0IQhb))azJCK*C9!=!16h|KmmnJxB;7RhI|-5*vNJ*QK=vfa1Cad*@(kpg1Zf93 zN(t8FiAH{X63@dW`yiGBd?#VdNy*P1^SvZ*-e}}3>iI!Z0#fHItY#y50%CpUDM>9z z6U3aBwDFj;lGh+@5pzy5#AD7=q7xwYT>XM%F2s7#UnHv`T~JS4_CV~}`)`Ul>!tpn z1cmR8#(G*wtfze$^;}d8e!=#OEJLYs6S)bw$z* z@*7J1E8#C}UX`%ae-hSwO~S2Tm(-qETIERteXX%O>IPm1LK2O}QKr zt|=E6wppS!=Ts@S@D57w@vJYaP z_xzGmF85HP5B`}Hc^&l>h)KH0o3|I6izm`a_&#;nn$l%4esu+JNj&5-Botx~+^%StXz z#99`M@#a)aEYss}MLjOzZ$*`t*ci~!HF&lx;TTXw34c$jl7!Eio|N!e(^HZ`8Nyt& zvg93z<)T$2eE##agwKDfO8ESznuO1Po~1-rqGr2mt0CFoQj-$!iBK)cal}~WS(_5; z5C6p3sY3}WcL-N0tS6auC+>G}CDfO!Kb$sF5IuGSNugVkBKJcYN}h$-wi-!VxHOh@ zb7?|}wdZHFrzs_1ObbdZ=0C)=q^QkpBy4kA3ESLG!Zx>;u+1GLY;#8m+w(jn)}AOv zz+a#QpJTslrO+;tT@YI-w5#NZ@B53CSUnk0Pd7@?>9(XupO5gHCX)UxJtf6ZkM*=K zOUgs+s(VE;9;NJDyee7j(u)$?dTVU`HHzkM^p$Y_#_N(-?g@W`rk`Xq#D0UOzl3u< z-jK{ejJ4-YN^I-%u=N26vJ^6y5?no@8Z%g(eE_ z{+KS(4OhYp$$t?0)|)BWgi@~|=3~izh{ep7`~(?*m^qRw9y3ppxgf?65i?(MFU0Cu zK#9&pYGL1K3nhzEiT$44IMfr5X$Y~aZm~*rg4k8Jgc6)H!C77^x#6-*lI`9wX1U}+ zmlcv)E-NLSTt1`3&ifXe_f?c&6t*=PZC)#x?D9D!_B(yE5wngGto9ael|(Fv zPM3X>hahF}eeso~BBUZ@zoZewu9kz69*}B?`C2m4V-8WG^B{}y#N#j};C#^|63!Pr zD&Z60W0JM^hu6k&34e>^TM2)Qvw_WAmi65G=P z*wf!)!WF9D!}+>M(F)anQDQ4pPesfniRJ2ZA%9EkZej`Kip1_FOs-0JH*rm3cN2Cc zT$k`};)aBG6LGN>s#l}txY!ESn;>cH+I^hum)&jcf~1RyWx345lO%l4E-K-Bb~j1* zep7nM`ZD1-TC!vx#D0M^MZ(YN%@Tf2Gf2KiDeL)fkz8^KBpDtJV=_wex@3}+fINj+ zueVC7LaISBOWHtcL$XNvLK;G{N+v>@LvE8SgV>lR3!uQdhkZ?X^1qtUvR+Ml)WF-mbLp~|te8{IHycez_;oD44OE}l@ z842e)R;9%DD|tSinI}kQNR0%!15%q3?3j@@k{?o6lJZASEFU zBvl|4CgE;WQqN-=N!oi%V@h-sqyg$_BAM#aRPqU=Ibxbog3lrL-PByN*QJHzluJuW z?D*6`J*_Cg!#mSNra{_D%0WJcw37^J7;dXQC05T8#B`tpWe$c<-d>Q@f!McjCrKxW z<+Pn8gCLgEc9HN+uC5Zk$@QY-H9Uv3db&vl_CX6#&r6bbAeI$$m&}7$dwNJVc}!2q zcOLVyCdi;Sn1m8S2MysAMW+5=y-# zVX0vfmKrW$sS%PExPCrFJ#R}`&qxXD86{yoqa_XBPZv2i9Piz@#GehmqnPgwgjYgb zSnAzajO8t3aD42OGFGzKWt@cX*^QU%_m~Nivo7yRQt(94YMw}meJ-BI*?FH5aNj3O zxbIUW-1n&xmYODEsShPAHC@7epCRG#`AEW;nG$a6V+pr4OTulep#}0Xi}sYWFaN^6JqNYE|R3Y70O~s9!MpWS|WK2VxPEWlqhRnP6;L; z#?IGD$ugJED6tkcMa`=y!A-;Po)l!QBr~KF`mjjaT zTnQ<6++pM2NZP?bglz_kUcv8aO zdHi0|=3TtO*9@balKznP7(@I~@&TlCfZ0BhrI7B3IVITwu_J#*aum`BF=r*`J?3YL zJ;fS?nDY`o#rlO3y@66A5%a6Wo=4ep<3A)h#)j9}MM{wA{cykjl<;@f{*n|#jGfa< zlBzC$OZaT?vV_kD|B<|it=lz!Me-(O9NPS^WFo|l&wr97kdF~_O|r#fZb*(nRv;!) z5C8DDHTd0Q(o&*)UYAb7XL@m2?a%b$!r#t|OY%6(%ty}_mwO=Fu=S{FE(tjVNtU#L z`~XRj423-Y7-sTNg4K}qx8RpGBws_eKr%^whg?8Cw@Q-7hes@nBtOKCYF0^kkI5!! z4zZ(}UGj>@+%9o^)%M8a|W`z0L5e?Y=g52lib zQb|$CPZ(#kKB}06Bag);JrQGlZwbi|FZHlw2E=-{M`nAoR)Pm)VZ z_$0ZEWR-uGAC(+%c}#K#wr-!?vXc8C_H9*;5-km}C*+Sy?Dryv;ao_9s#Xd;NqNQu z+>0ktNd*ayPelojPbCSD&yy0?{FH>}qOyeNqKbs2o|Z7?83|*mN_hQLlkobfE@7!> zB|Kj>Bzz`QQ^IF5wIqBdQ(MAkGIb<;M)aJ7&xqCB-53)Pi1h#Jb zK1^~QV*5T^l6yuNGeS}nVli(^DnhL99VzMRGD<0Ox`jF&WUnIL(^`rlO+{hrbue%4ogjy z^m3Ud;reVJN?Lk7(oW;^tyL2CTB{}Owbn@3Yps>A*ZN$-UTd9%z1DgOd#w!;_F7*^*lTT+u-DooVXw7W z!d`2OguT{Q345(=682i#CG53!NZ4!bl(5&@C1J1irG&lKZV7v>Jred>dnN3(_DR@l zeI;S9wO_(s>wtv4)0SwEXcv-jX7zm%&f6(W zi5=&w`y!DdG5Oy)w-335b8e5}C=^Q-Q#>JN#8;S4>oQ35a!b0LPP6(e%o$jX8Mczn zIHx-yr6qrDNQ&%-JSw>Xu~LsoGJX+CIZDb?cnJAO2HfjOeqIzl=YK-N8Fv*VoN-rC z!Wnm!B%E>gq=Yl>o|16JU1bSp+*Ofq#@*8ru3h|$gliX9m2mCiY7(wpTwTIB70*gI zr=o_0&*y7O{>1x(c28YPGO2m^o07F9T${I!q~GQ+<~hk|m%5ZRQz0MVIZ{2B&1u#{ z>~6h*%Y^8-AAK`$B?u4&LYRjDrj zS2>-+6{;C?I)%UZ+0{#(PT?ELsZR9d! zq-5x=;obTu$vBAJt&f&W_n0w~g&y;cWR1tX>oOsE7sU2!tmIplagvKJ<5dq=Rhl5- zs!H!kxT?}b30GBmU&1wKCZ&=OBwUqZvV?15Op$O+jHwc?i7`#WH8DPva7~Qq60V6c zL&B|pB;lGEGbLOT<71cjS)QdB{+4K5_*W(nW!+$!PQo!caQyK@I64d3qEDdF3lyCi(OGcJ6) zbGKsncIRG~3CZ?$r(GMA_`dIBsT95u78kw|_LXAzM%aD{XTcrRw(N~C+t$}E@ojyh zQucPIeZR+r@5>xg4BwYIEaCeyM_eW(+xs%Mt)miqU&iE^OStvIxGy-adU)sZorHHT zCndad`QBwhvfa5@%|E!r_v=TM;#|kLaIWJ|is4+xQ>xkKI$F)A71MJUa%0FDiLDi5 zcR*()w$6#kIhS~Qe*XWE_#1^R72a)KoQSuKQ`Pg!|FhT~Yu#1&P22T&6FFAOWC&yz ziN$n>Tw$r8@jNQqc` z{)1$aSbJ_-hxynNYfmP~Z4zrwc1U)KwI?4Wr^MQ0F?YrU`xVq&5oREHDAAfnk|Is8 z7kMR(A*~_#B%L6gAq6C_x!fxm=yIRL+S3E2ip0c@hHd>4+VdbKVq3ooc}QYgPmA+j zOk!KV1@f@Owr)~VVp}&UEwQawSV3C08?j$^I}?*1xK zqT?Z7qtug-LB2ywb;&P~^N^a7e;^kjwI%&Ch4P#v?YE)SlT7oN29gFl z(nPMHo<e;K^#qU>l5CKikk$!eG3{bvXUFz^6OKklO2qbk2jqE)?fU^p zS4nK&AumZ{`wruGPm*;BEpnPm|PvEQicgDT^6|QnMr$GYT@FrGg=uqmj&C zA{(Sc$3k*I7D_fi@gqVXdvHh}b-LnI$X;C7!t-_GQ65CcW$We)H>ru#YiEYc|gv7R00dg`Xw(rxX zCPnfr#k@Ghm~32vZ*#`P&e!!__@<^re?%W%0LSoWi5>Z3kY6NCaz`UoAlD^!E=(c~ z@ehAnqt7Fz1|)4vcupHYk|+_|Rx?OcV%vHik}R=p^@rq?*tSe^No-p~Aa}XMGlx7b zVdjttD<@Y;sHf|PSUp%Vtf#7k^;An$s=8vhDrpS~*C4Ga;W~=7BwPcqwoCko)kzf- z7p@cdoX5nk@VYMH75)%<?3MS#l9E*-%dxmv{@ix`Zv9juv)H71KQ-W-elSriytbA!adRdZmi#oe;AMF@00T z^h=1Dw>J`bBUQ|RgqS-qZZ#-X%#ehb=w`g1k}76+LQGD?yqzj$R6@-6h#8YA=G}yt zUlB7dRm_Bhn7F&1x85cGN!j2Mep2ROEOMhuxOE#x+pK!h zuMg+1ZixxHq)u=T=wuqi&H|h7uujC>l&nB9sh`Dw&e0%rZns5)xO5A{C{K8Oo3b z8Vpf{B2zw^TK9_xMf+54P*_IaQE+4mge_mD+MrTJ+M zKS;!L8*jz&Bkb)2h_}LJG2*RoS%P>gTs}g)6)qnm-U^qch_}M!6U1BL@+so2aQO`J zR=6xfycI6X6Y+DQQT=m7GdW)%8s}Fa8t1=E#MgCetFI7k^);fczEL^F9j$L{HOcZ- z#NVR7*q*6ZN=h%V7|(WAAy=CCJCs&Sl3(qY+g59k;r86U(&WcPD(AB6V(ov#%aIiF z+SjiUQ^;#yzp3QXp|*El+=uNKg!vZh@TzRc{8Fq|BI;3xz2X5{S5|r)wu{!ohu=#b7e$z zu7aq}TOg`)RYY|zNyMKfv^pY>Xmvz2M5`l85v`7>foOHaR+3V!j;NK0wX|qY`(5}1 z%lWqnDJwa`WMDIU^ME9`&Q?%#w3zLYz82$BI}xw5_ulo^>+1YRem1EWTV?&Qeu$l& z_LXwK+gZ-!5feYl`zWT!-(OeB_O-8sw`A-mN#2r?x0wAAe@n);CI=w?mW*9Z4o3Vf z87>VGy(Qx?#NU$fh`qJra71s(XoTo38JYN7GWN2PGx4`%9B6VRTlrfu8ksan#E+rQ zMbn5$kCIxw+DVGNZ{%!WCn4T9TuzmgY8L%WM6>9f5RIap5r3PyJ!s~- zApSOW{~N=u$dcmp-Phfa2W{{E4Uz81qbA;?dPs`Du39Nsh0+tz-&65ThENi>QX@A*$g8k|Ncx526~T;^#tlnM`z-xiHzvWBf1l{ci*N zBK{Zp{Y@^C6t}Qhn&oz&FV?>DD)~}GC0~Z9M{A(#75?+0x|dC?^{?t_dk5W5N?l?D;~%m~fpW855qim;s273DZrkM|@0}ZE_Rh zV}i@gh{l9Lh>r;iE#_84W5R8S#)M3KO!&~Y%EZTnWhQs9m5&MEm<&n8kJ!g{d@i=D z;7-NlB}0jMcxB~W+mZI}BFtTp7~X#IMQ+k(LoNN>cpiY&$!))k8>K+t&aqIgF-Oddv#H@Vm35u}UBgC=8;ekNl~#v(&aCYU^mOfZ>Z@)$DPi|8!Bhv+Q7kNBGz{4Tr*IrN#z$#cO6h}L<2h-jVX zVnnN$mLOX3@)6>zs{HSpK1O_1m9LmuiujrwkNE`gH8~#hDWX+XpCMXRwG7eftmTMS zXMK)n-Od+C?^w690@3=PFA=T(`3m{Vj(n@}x!l*tR!h^rrTPZh$Hf1Z>RaR}lTIcp z5v|z#4$+Fu0-_bjtB|iPYx22*)yQd9vcG?I4bs!Z&+_-kWhR~t{(zjf$bM6pV9$EU zWhVXxr=O7ATj`VL&xqDT{(@*dKwh$~{O<5KGC#`sM^db{#G8xn*G0Db zG>zE<@wLsqRXt?Hn)G`&dm@L%R(l~QhSW!V4X~H9w$HEowXHj zhUtRn%`jb&+V^I-@kxMM*1d|JpE4^g9$Mr=tW?qE&c-Y>y zN=2E~Dc1IjlNj$C`tA5KNpdbaSxi3(^AcAe_t-J?zd5=R(J#(dA^sISui@2_q~y!3 z4zo{u$A|p&rHe^@#8bg&X=!HdJtJ0GE!UR6*CG^ z%tLIYV>lYAWUGeCtZzJw{JVSluJT8a8gpWRo z&TrZe#G8DMwxiYGm&RZyyQ2Lw@fY_ zm&?sUJ~p}1WH$1h$@jLeImkMbwI*|sqOa0@y@k{=@qN9G)QgyTNRx<}k93Hb1<3gk zvk(jjSDRe@ABW0rIzrKiw=wK8~0r z$k!3`F|zG_m6NBfrAS>9FXvO_kcjyVIXYsNBi~sKceMI^j;u5Ba#kQ!zD{GlL~5CM z%-2Z0i1`LNIAT^J$3)C`NZW{6h5U7I8>&uXMvwEcTzNyPkstTgfZ{DjoCt-PF{ zk;9{$waB0-=U1dG%2|g@iJ0G!HzMXwWM!Ad^aVyYu=#J*}Eui92;T1-u3d6cs?a=J-Ri>ZZN95LG>%dF%+ z7PB3)Hukjxve~xkZ!tR}J3gAWYiCJu{u?XjM0*-Vwl?W#Bik-WJ(B@e&aTL}_t;Fb z$?ix)i}Cwu9i*+v5R1vApUHhD^@zF2T}8fOz&*Fxe0B?CTek0};=@TnQ3F(YH9?}Jw7Sa{@Afy|zDx^D- zUzP6bETn!&52SfWPo!%|FXZx&vymYoy^(Pt=OD8}&PBcqIS=_K^{1&48c^;ztc|M~2c_E_w`5i?0^LvQ$=l2oi&mSPlpFc#DKQBR)KYxTMe_o0x zfBpnf{`{GwNcr;~GR6ACQ^c6q{j`<+LiaP`Ii$-k zi06OU4BJ8hjjT3@f^}+9pX8p%kPNikS>29oQ9xhjb}HJco42Bc4OLY>9Xd=~4~x9MYva z;yI*CDdIV#OAW+xNSB(3=a4R2A)Z6JY>jvh=~4^v9MWYQ#B)fOZ4u8QUA7C!epTE) zq>$H2l}xl!Wd~xkQe{U(D^+$vv{GefL@QNlBU-7l3!;@OyCPbtvKyk6D!U_EsZs~g zN|m~ZR;uiQXr)R$L@QPHM6^<6FGMR<>LaJ0oz5-qjcBFHK8RMT?2ELqt$hBu0iu;E z`ypDXvOl7gDhD81sd6Cl+^qE7Vh15wsd6x)l`4lITB*_y(Mpv=5v^1?4ADxJ!x61i zX@qE{N@GMTRgOTkQsqcQD^;2xTB*_$(Mpx(h*qi`g=nS9F^E>G9E)hBN()3QRazoi zsnS})TkqN+TB*`jlGiGN6A`TA~*@rDuPoaMOsDBK4fl@R)(C4Xl2N0h*pN2 zfoSc4q^!i(9{8BhIbzC6eD#P+7esH*>x%g55s&GH`05dt?ug!$br#~QM?9tnqBmvr zMD#YTUWneabT*=QG4)1#^@x{z4&tjvT+T)GX1wzdUp?Y6=Oey)#N`6SSC6>#LG%W> z3q!KsSo?+)@@wrH^c4b`RGMwi@Af2q5i#4Ec+AB}ort*v+26!hi(QHwVX|K(`^!zF zrOCWk?e}h^v&nlV{gF#d{P(ZRk=spt{J8=d6ERmJlOyIT&oD?z;=@oJ_Qp@V&d%qTw=QdA?A z`;c8jMj(fU+>iKsfW4dtkX|8WA=#0CFeF{O@|M*n6JNVB*Jl1l5>wUJm|4syWE+zY zO&$s7MqeBri|C8Pk0S4GXTK&t zZokMQt4(H`j6?KRx5ts%+o$JZJfe5lPC)by+lh$YVfzH4ci29O=pD9`5WT~8GNO0b zK85HVwo?$j!*(j7ci29S=pDAtAbN-Gvxwed`y8To*glU;+0lNhwIlWdGS6g_$u#5} zlPb3I;YH*RlPyhN3YlBf&yMN>+v;WHS(7Cu(?iNiN_I+n%d5zKA+I5N``PP=e-GOG z*c(XWkeNu=kT(&%3wIWxcj3-P^e)^vh~9-e7tyDX5y=q7bE9H%ts;F_5LxU>wPIQ(zf#R^$9XH~XZ-}|1 zX1W!U^S4DkVf*@4F}cAePn&!vDY+-MS|!Q(`=flT)yTxy>U&Aa)Y$4rN$yRPmu#z_ zkcB3%oBR@z)%n+uLjK)-Y@D~XPnmpave4u=l~dCGmo#TvC&~R`F&|jW@5nzUpP2k9 zDXA7){Uym&-Z$N915#?@TWyq-^o*@GNpd^HR-2JMVyj$tyJ;k|8N0<+l_a?XVyntX z)7YvwBs&^aLkjteYo&h|kcqwpSwf7y1(`?mEyyjA!;VOMT{Ywc6Yq7^5oH(t4MJ~4 zA+PMB2GZZQ@;hTqsu8G%YTjW^#)|g*A z+ac$KY>(V#;(txB12VzH$Bmtk`4O`-QizycBt=z6SIHGUZ)*mS1}0mX)CsW}sw2~@ zX-}ke$X-aVkot&!(bBKny%GPSrOQ6ZMr*svzKF7>1|eDB*e|4zKm0iR9oELfOj?`x zh`m2CS_6ClqBXz=B4^rGew+_NdYky_tb>tDBjym~rjUlnU9r`n$biq%zZE(R8D%m4 z#Bn$>-o&3u8X?a{Ok?CVld4w3BakH_M4`DCP4%T!K5_A&9jw?~?r_})7pr<%03BX%lsj!8R{j>uIe9ZgO{?lkFaayl}` zr1~kg>K>V9QfzW2ve2ZbZPf``WpbWLXQWCidu}r6g48j&+@veg%*5N(4QX%UIZ1b< zr-_e0J&?;IrYCYs#GH-XZ{qn+Z)AMLoQu31<(!8siI@wJ-y)_DQnPhhpT5XJCSK=@ zkTwx>339f{b=LMvkt-smA2P&bkj3;zMn%jO$P^Rb*OkZ{5py-NBx0^XzKfXaBt`m* z_yNd1U#5T8pUD9g6<@~Q>Z$=u0+={fd zt$h91U`f7eL^~GbZkX0e0k&Ph_BRij%*5?uAh>$VJX(3~gJ|T}Hw}(82j1L)y%nNxO z`6^^Q@_WbxB;PKr;Y6f<$P-A5kSCFDA(Ie2xlBg-N6b^meIZkjXF{eT?}a>#d>`@* zQstzy&d(xsLY_m83V9ys9r6M)IAj{~c*u((S+?_1NFiTxmfZ_%m3t<8n4I#cJ<$`R z4E7a78SHdqo1Rs2k6Sr2kp5PVkLs@?`Xy>QdTn6YUo$fTgagyZzIYN=OL#@%>0n-7%m7YM_Pnv9_a%_^GF{ennzlUXpU$JqB)|Ekn6kH+n(*& z{9|O8$zLW*k)hpfWwo81PmqUAjx_lc(bs=IL-h5ZWyn<9>KNNiUYh`t&0HKJLyZxGF@eT(QyS&8UM`3`9oeZGL4Y2x>$Rfw*O z)yNQw@n0*}Ai7e%M|7q9fXuM1I$OJbMBWSe3DMQ`GjdwjG;{a`>0{!V)vw67(=AJ} zv-}$}-Na*lmlV}%p5CedK;F8#a;}HfClg({>xt2oyFtP?j5Z?rhS5KWuI^2UuI|l< z<|_Y1G*_8B%MNYw++Ft!%dD(jMM!g#Atsd&&5Kq>G%s2O`P7b>k8H)rFD8DLw?MwK z@#kJU8dZ@$Ov+43Lb4Glk7!8Mo=(QImUq=R2OHnNo>mCsJ42BLYV#w?f8CHme!JdjPsro|6YmLo5YsAR>LEQM zW>4f=6CcO+LWYFYM;;2<8<`Ta527~=?~CXS!wryCww2E{?T4&4@wuk`B}G-wNw4k$ zkQxPJMRq@ldn2BJ@1*+H}Ug+C^7ny`(cQ_JTc0D+9Jw- zPC%6ZoQNp@X@@BPISEnzb26g*=M+TwPkTgn{0@lj_@^SukvbyEkxoODBb|;YM>+#h zj&vrX9H|qc9H}#+9H|SU@AP#=^qszLh`z7a9Z?>27NR_=2ckTxC!##67ot4sY(#lf zZ$$aeIf(L~a}i}b=OM~=&PSB(T!1Ls>4PZSxe!sd(-%>;a}lC!=MqHO&ZUU5oqiIs zo&JcjolKP5T%nk}@{OwyM0v}Ni1L=3 z5alfc5#=p6hm@5lC%FaDv(+F(nar(-@|N2We>|kDx--*T}!$T$@x?4>|R@%ONt0$1^ z_onhBa#@r!3DK{UlO@Tolm4sgQ;7dM>A$*8m6Yh$$!8?VuamyjvxxsX>03P?lAXb6 zA=wvWGtpY37m3jf=SzrYIA2Dtv6j|(*4~7G3^S>3GCicML^G2!ka2N*US+G>8dk}@ zX|v6*h0HDLewaP=TRE>IpW0TQ>CHq|oA?=&tSs7Sa)Gt|&4^i9RBL#ZTvID&7E<4& zxS758AS63JZ-r!8cP7fZ-zG*`_dG;d_k2WI_X0#&_d-Nj_dAHP?spMo-R~jFy5C2X zbuU7cb$=is>;4c?)}4v6?o5<*XQHe-6J_0*DC^EdS$8JNx-(JMor$vUOq6wJqO3a; zW!;Nusj}`RlDu-`rHFFlPY~tCpCZbQmm$iHmm|uJzmSj{uRxR=e=Xrz?>j`ju7If5 ztwPl6RwL?lYY_Fi?-BL79}xAr9})GspAhxBpAq%CUl8@WwGw*WuZVhGChB#WsMlqp zUYCh_T_);vnW)!gqF$GYdR->!b(yHwWujh}iF(~{v{b!rorGTZC!$`r9#OCR3sJB8 z8&R*@h^W_XlF;imBkFZUJ<>U=Z1gJ*De&x>iJm>TAV&A@s)+90CCJe>(zdX%H;?o% z@maoVA#;nyn6$H)>LJ+^Vkx3~ZVlvR+sf~`H6^*FCdW^=)hx)5CLK&_NlGf+mu|JK zB)6-{RaVY+A=%N`Atbw3W}KG2Eqz+w3Axt9pVoIqbT!pR-XE4`O}ikvzIH|S zzB`TC4VhV*uE5zH(Hh`7$iPW4YlJ*xlFS+*`Yw4rMBgRf3(m&Lu`92|KB@3-& zKNtHV3#{!f4UmnOq_Q6}^3qiHN3^>50Oa#1`M{9u>>LzQ$ZNfNCR(q4Fy&~)_#tei z=kA7xp1TiaE9L5kg=Bj_oULB3p8i&w$vY;#!oLyad}iWDqj80Dj-Z^4d#3aAnH2Ap z{>8zO#OODmCWz)hnj)G5X@+PHq&cEFkfRXIfgFu!4&)d_b0Eitl$F%98hX2qL-Zuo z0@0IHOGHmntq?s)wGPRSbDI$RYP_w^^0ld%d|={hQ;#P`BT`#LBhm@T*S3|ffjJTR zBcvTttw|bl5>hARWaLnjR+H@8rpO5402s(#hmhWTeSiCLNJ!CO%Jl z8Zy_!pRG<0DJwb7o?QIMpMhwEJQL{}F`ba>Lpq0K$GJ;LcAPWOaqdctj&nCe$GJPA zr>(OPJ#FJo zO#G`56HKn8oZCC4ee9|VRO9;T_0LCg)lHGXxoJ;$H)~6M4a; zzr_qi-ZJsyGYnZ~GQeW)Mt+Exdy$nkV&7^p!;uXpUd{+f(Z9CUFpIe#Ii`MkM|%+2 zVMKaw8Y#(luyXwO%27yVy%9Z7zM$;|3DlY@M0@|MYS$Xb&ht(@nPk_XZwHVvs~;z#vGiw-~7(TP;CO2>B=^8>2oBDdcr$%tUv_rNrpY_z9vrCqPu4yBs;3BLJIlk$E0IaCQD8HnP@dJf14a@S>+m}bZq)}qu(QSOg!cXh}nn?kC=auCnIJPvM^#cBR@vWzevr;()#3jrgImC zd_xm|E+|4yHu2|zO2~yKo>5muZZz?Xx(ae%#1tdrB4!KZ`G~2C%#WB76CV$^K`sf|78w$<9Wp6od*scK9gyWAJ0gFE?1XIdc)ItUk;6l3BWH%}f?O4{ zEAl|dZph4#-I4D@>L4}7r+cr9Gzi%PIWD9g(qXrBt38oxLiR%Rdt7~_XOy!ya!1HM zA=#+4Z%8(3Wuj550Wli2_Cqvk?T={GIsnnAbs(Zq>mWp<*1?EItwRuvS`876T8APU zwGKlxY8{Sf)M|ui)M|`q)H(vusC6WwQL71}QL8DUQL7oEQL8zkQR^r~qt?-gMy+EI zjatVd8nuo?G-|a#G-|a(G-|a%G-|a*G-|a$G-@4>Xw+(pXw*6Z(WrGIqEV|IqEYK4 zM5ETph(@hb5RF>x5sg|M5RF==A{wU(-DnYXCNB2&O|h7bwV_1bw)I5 zbwM<0bwxC4bwf02bw@O6orP%B>Vas~>WOI7>V;_3Ivdfb)f>^Mbq=CY>s&;m)_I6V zt@9C$S{EQ1wfZ0$wJuD=--hjPTJyKR_C+2r+4&&*OC?0#alRPQ_bV?!^!>_95xwc? zGGwZi{Kss2UkdV?$wrg@iIjg!^W`ChyvoT$;_s2}W_3Q#T5&IOlgTwE4=8s25{W+HyX{A;=0t0RWHh6|l789dZEJ4(Yj}W!uV??c3il`NzAZo>@h+6R(qE;+RMCamNJBG_8rB@HGlpAJ8 zYz6Y-(xPNm?MuYpZ{zO>`U>&)+xUu?uaST4o2|Q5%jLd7^gZ!!ks9_Tua9l-E0JAH zd;};U{@dRQi&=%}x4$)rzm08`#e9$GZEQaxv#b?sE#@cW6BFOpFOuRXA4q5C)*?5( zntqQANxs>-!OBU+-*TWM_G_}0i;mcDh>qAgL`Up*L`UooL`UpTL`Q5rq9e8e(GmL_ z(GmLx(GlB(=!pG`=!oTdB*}3eWU?hP)MAF1REvFO&neYI<`$_ONxJv*ZL6&#rmV!vx!9zZN=`rA$hly={;Qu1w`?UBQ_C{DhuvjgJaxAJe|?1)@pZw&CSOYDRkWn1}E|ISEz6MyQj zjht=bv(~#H{Y-pDXjf#Q$<7Pydx*#glR755BNI*h4pIksC8RF0AY>2Z+mL$5-ywS< z4_7Ttj>cZd6DIzpq58=45wkb)dc^F5%#WCTktGq+09j$;t=JFwHDrIJN=X`X05WDp zI=gZpqIb(5gmkv8{JTpBBj=keGC2gfGGZDcLnG!;MBfxR40+6Ayv~OsFNZXeBz^4d zckK7~L@Jm28e@}?LSC)NM6GB_j9SqQQ7f7wYQ<5AT5)tpS&80idko^O@ca9*h_}M! zxRC6@sr6ztAv_S?$%<;(Jh-r(Ah?o!ze;nim7IxxmF6Ooer)AmrRi_dKN0WGC+E}q#pTFtYtwJB zU4d*@Jw3};B6Ur?hF2j6M9kI5kr8tZ(#php!nH`Jkn50(LIxoIyYR(!AHQBwJilgf z?o+!?Z%9OE(6i;6L(;dp`Bt}RtJ2|5RLCs6G#d%+0Gl zqa;PD&qIjn^GG5Z>%OsLI95`s@p&Ag@%eE?8RK|l=;!ui_musfi!`vdd*(0^(Ou?= zL_8nUzMe$1uStmZH95rcAKTYMcI2Nzd|y95mdi~+bT611l8y6EhZOSa^O>m6KSPZA z{IiJq{Bwx<{PT$V{0kvvCEn-#PBabiKJW4(;(gxbrI4)7FNdTf(ks?>gb`^vF+L*A zw3r!)k4OtmUPXLFT4M4B;vq7f+*ACZ<@$(i_ww9;fA zTlt9eqsjb4d_+3W&gpuS1<2(ln@koW{!YRw)_dPU23pLPChsD{OnkI?4;dHoej*w- zrWe`U7efkp?L8Ci{R3jO_YV>6eQ`)xiSOOd=@P{E?($J0-qO!ZcC|WxjC^lW&txgG z(WHUNCrGs##kqq`K1FJqG&cDRX=KveWEs-Iq@~Gnq_@clCZ8u#{%Cv=lJ>fR7K701 zz9hzb-C&FP3h`cdpUKyV_qx$0D-rK?E(JurZZ+b)?s1D*gQ(YikEqvW;=OLNZIy}l zx))4-Vk_@;ubTXvh@Xoq?Pz#!`31QLh3LF*Ky=>!Ms(gcB0BH?AUf}xLdr_K?cOstBi?qGe-UrHOYUs@XV27S zCEj+IqD1@{PJgm;vI3_PGRMSM;8aEqc`JS1se%l!ySe8Q#mMa@elE5^Mut>PqV&ZQgtcmE&u3I5` zvuiCxZ+6`V(VJbjL;kgr{b+2D?6+0=RJ#Mx#KfO!cSPDo%udJ|5wkOLwTYKp8@W4V z7fJCvli#gB@0v*YBVXq~^4oj4oTQLf4flwcLS8kjhp2{oBC6qDA!Q|ALqGEM5wD@k z-ii3R(7yITw6A>;?W+NzeeH+nXzY*ZXdIA8`L-VzlC?Aw?foEPwD*G%?fsCDtfdVR zwe-+Lyrr7kISkR<&f$pWQW_!KZC#w(Y-g}B(!iw3yY^N|q`isvgd>qpOt!X|CdfA? z%}kmiKgCwfkeaoMb1f{UIkJmMTa%*@ov))29kFAOeQm4Li|mOWX=LIvOUEHCBBlk> zK4MxXQvQ6k3Q6y1`9=2r1POPvHj?Cfqgz?b@rd8iYMZo0{EoJ#Njt>vXf7usx}&v6 z{EoK2#dJV)M>`eK9W4{TqaA8nW#V_VW+tbzmEX}?nw*h{_m*qyX!toj6HyQEgba(A z&d9isE{T*shFwDnd7b4pnju?Jdu}Z{Ns}&|CUQlHT%)#axJZZ<%A#7xCWmuE`~c z_ZFAS5cQV+i1(I{Eaq}Vz2yo-y(N<*>$a^jNwRK}tJx~ax=pT0#CwbK-fI!%z1Jb% z+Yvj%uH^y9pC;W*u1A!0-+*knP1+A{Or(5|x+x^fx--$<2NI*b-;8MQw}fO__aMag z?q~VdknAkqMmZW+GtszuJ29FwABBO=0gz8ncs$GvdM27he}EXxqL(3> zMSl>{Ec!@9v*@Ej%1V3|-RtuZ;D@tMelvg}lybCOW5MC`ZR|Y$ARY z9B948=Pn*ajyCb^^f9D;#Ee6FMa<(!|A-ln42qZu$o&yB5g8XTPaw}m%#+9)5i<#S zH)19u%Od6}WOc+$K{iLsRAk$2)3!g2G%)eDKZ6_-G0!4rM9g!@MG^Bna%052fZQ7~ z(~xly^CB`WVqQYtj+mDbnmIEN%t>zQsPwV|HW&z@N zs~b!fB7V2J-Q+#Q?^Z605Z$dlMEq{$&mfBt-K~}&x?5%9cdNUtaz2lkvJx-HN1HDw zSzE0@wAGi0_Wo6rlkNTMkZkXnsGM&iCfobBl&rn4M6}g+i1uEHa9o(uemBNIJw{6NXxpZ%!*SfQMsLJE0}#+hg|{+Sq!#=jsM zjn^U?jekWn8vll9G+u{jH2xjYX#5AF(fCh9qw#t~qw!yeM&k{LM&rK`jm8@hjmG~V z8jUw08jUw28jb%&G#cl6r!zT)yhh_9M5A#fM5A$KM5A#PMCZLYq^!h8V?WDVAU+zq zR7HF=b}2!8GHM?_iEPKeeO?2Kq#LG47!-wSpL$#S+# zwD(x%Z)D$-czsm;DBae%ap-(J%Y^Bl>0k0Hn3; z%QMCUk@hB@H64WL7x04-{Q`an(lc7o5K#>eMO4GX5Y_N-L^W)LXzf8`L~9R@K(zMY zNJMK7njmULQ$($3hUj)8SQq5dkgkZo+00|QNs>`?n(eE5BISQQ=^0YUs}-536}^a2E6zsL zir$D?aSozZoEuVB;;rzJ|2)K7;c`Br_p@CPl8uLbLJIkvN2Y(foyoo?@7M@=p<;@T zF!A3a`y&3$jv>!wQdV+;#rWPYs<5w%wN+lfO=P0qCN3dHzfD|<=(mY}h<=;skLb6F zD?;pVf#a8vD--cPcH+GB+e23&r`&1ZHM4eIjcj1yX|5xq(EIz(?$ z9e{jkC42w59$655>;}Z&^yo1+CQ|~cGzw^I%d$$HcsA?dT;7xqkq@T_+yG5)N#(qe`p{;c-}YN z58}^yF2fN$>y1GCS#OSAr}raz)_VZavtB0tte5-1zLr9aKkMa9Mk4;Kx3$TrM7&2$ zvE%c)?du`rWfR}~=-4VdJ`by$ytc|jTRl=?t1)b)ds8O5H;pAm_ohb?-J2dmbk7}! z=$`vHqI>RmMEBeYh}Qc}M6}-T2}JAtoOYyN|GZ9&`p+AP`p-;6 zS>>CEvdUQ@*>RqY=s3?oJgf9N&kf1i{#HmKuR3RO2ooo#!L!^9vC5`Gtu3 z{5y#H{JSApyWT_8uJ;l3pGAoJ&j%q{OFsIKEs^qB!Mc$2ySH9)CMx-NVpQ@U zA!Q|6<@IMGUc&`V(r-boM^@SW>!o`3UI=7S#B4x*ikQEVbtaz4Y($E7PUW9O%C}-u zNFlGiXQI7tCPsVz7t!8x=V-N$@7;S{5#oDysg#Jfbk9HIO%X^#6K`o1O=Pi&w`(h;5VAGmfBV+%ZTtHj#Q*l~Op|R8{~J1w*%tA?q4SvSkf!VH zou4M#BgdI|%nnFflj(D8MG(@>WTweZ$fYK}%3^2aE|Z-q*@_@!l8Lu#7i31ruE>Ir z-H=a1c1PBQ)IrAlRV8n2*v-iVKN z&zbCl_*gf?WIx2mI+p_wjdcehKGw~)n1d0Gb%!7t>oW1NZh>u;iH~)QO%7u#AM2Kx z9G-|@Upj`35Fda1omY*KeSa)UR@@zdyky7uIxFW$WVXpblP1XOwUv{z+!T4=V*I=} zlO)gPch0l5J&BZmHa{lBR)$1 zME$S};@9#oR_CsW>eCHTeYz)7{-~Z6l3vTD*2fU8<(|a&wY;sx^g{ev-reME#INOj zOwL98T6Q@f(Y4$M@oV{Di@6ZdwcHocwVa7x%Z+WTO#E6t#^e&V@@x5clS>mRe=T2z z__gDAnSO|0JARkxkLcRD9MQFN1)^*DN<`Q4Rg&ad9%1#lI+60%@^vBUwe0oDMD-a! zjOueeqWatrl3mL;BD$7u3du6qfrsk^uRrM4v>nbb1z8MB*-`OSKrU#GVq+G-G@ zt!_nj*^u7NZ$tJq@#B0u(yC3RT>Izko3=^Ch=?gG@p62my`Pe`)dPsODnqpQ z2cw+qoQ@31_MVB#85J?v-XEgmVRj6=*pVNNJZ#d__?7!I($~aGeg(NT zWO^dyuZtNWg}nBjiT3^~G1~iUi1z+^NLh*R-H-emi0|EHW+HwJZ+IbX#hb_qi}6;> zLdqg$HnKiq<{&jTrrG;kq`rw~?{6VTnfTFo8|e`;54ka9K62zg>78f+vc*4X4HqKY zn0U$WBvSsUz8g}=tDHEQZM6i^Rv#h9 z+TMpBX@7x*bTsi*OiPh-Bjyw2>WKL?k@9W-EToWE$(g9+WyGlD<%mlDyh6!e{135n zTRg$)ruVd!vl3CJ z_Z^~4uMj0?n-FDsn-OJt|4NecKEuve?p*tqE1&6A4oNdTuTLhbPZeTRpJGJy z*&-y%^r|At^h!dqo{&$(kB{ybndpA8B{9`(^z+fC8sg7ii*K=c8^oW#zA!08{Q1jc zY9RjnTpC`H9~v@@cT|<#IHEN?;L^XiaQd~71spO z2+$PK2+&NDi~x(QZ!}M&{0MMNNIC*|eKJvfjwMF*ISx^MT7+aHKubg;K&y~!1Ze#~ zC3{j(Od+o;t_>yYIpz2Y<+M%2&$7-=COSJO5TktTL`3;mJ4E@|Nr>{XlM$WeQxIie z?Ga^P9T3&l=RMuZMMw4Qq#PF=!`_IF z;W>zo;kk&8;dzM8&iROr>II07YM(^PAD;_}IeL?QSJ6hlOinVXX403Kt|oq*FRD<^ z#UX{f%E?6KToN&5C0>pn=SwMBTU~}|tA2>~-apF8uI0-^vb|@ba;}J&Z0}c6vi5!z zqOGn*wD)VGoNVvchGcusMCDu;G1=Y+Q1T!<8lFF2kBs!=Z29vI$W)W9CfPb7lyeKR<>s`UK}c;Aug|T>Atqj*+mJRUUZ2~M&QZ=_q_2rz zxpyGfoA{MG1Q`}FcOqjVW+?JZ#N36eWdD#6NUM^{6q3dem4%J?c?JJ?b$;J!%}H9`!h)9yK0OkD7p}M@>Z3qn<$2qnS;th>KQ~m>RCiR>N!L`>Ul&x>IFnSY8s**^&+Ak^%9~U z^)jL!^$MaMH62lpnt`ZCy^5$uy@seqy^i=ghaK%+@P?%L^(`tT>ndj=`r6K$NbgF; z$(qtk4*0Ut|B|&A~4Zl-=EGeFA(!h@DQe>&gAts+nN|j42 zlN7Ixt(GHy##Ub-RVo+fj0G~*605~jyG9u@+VR{u_$>*^m?S@q@v^<(SIRl*jC=s4am7B z-qOF3D@A};X42N=AEeCWQ@iJGLMEBCx0ubydCwQ+dR4P``yf}CjI%lyooAQ$ zf98lPh1d#qE63N0WTK-{nHU|7Du|9oF`}cf1)`%-717ZsL3A|oh>pgVh>k`zL`S1K zqN7oY=xEeHbTqaKDJ%KH+Wxc6&TWnSZPN2}Tgij$P@JxY+6Fl&WLuiS7=W=+Y~C zqPxRxA!Q{#Li#fZlJgO=gN>rQD<yYfow?TB|k4JRm+afyhCm=dLCx&Flr(H;TpJpC?^w@a~d&PcX2wRbr)wKT6b|KqIDOYLdqBcIwQXB!h3HQ z#MfQ8bPdVc-Yuk%SKBjDox4+x+J07ra(YxKCli&^vqCw&DwK0}g>o`cIlU{Cb54bF z&ZQjvLYIkp%X!48x13MO>W3FpD7g==fY6lJ%%-LelHhe}&0JHN2J> z)$qCsB@d`j^7U+`zM6^p#toFCzItPYa&D?nP9`d6V1;sSu29Y`70Ss(~(euUah@LM7hh*3L9f&_)_|-iG@#hPdJ43RwGc+W--ZN31@1h(X!(kQ5xw}F+ znW&t5h*8_`Mb!4;h}wQ1qPC9+$=ZHDqP9PPsO@DTS=%2BDdaUDm5Jt~MiQg>s8NXK zqaH#uA2k}$eAL5;=A#}#G#@nv(R|ccMDtOPBASnS4AFelI7IVNk0Y9o8jol`Y67D9 zsELT?qnV=A$MfnvZ%4(R|dDkg^h=kMh1c74i8fm!}b*k8*hi@%bp1 zXAz%|a(NE%`6!p?5ucB8c>(eHD3@u7&qukui1>Vz%S(vQN4dNllJ&7yLb5)ViTc=d zV${cGAnIeUBI;wWA?jnVBkE&sAnIc?5%sY*5%sZIi2B%UM15=yqCPekQ6GB?Q6GC7 zQ6HO!sE^G@)W;Se>SGHL^|5yl^|5ym^|ALtvOe}cqCU0=Q6KvNQ6KvdQ6F23sE;i{ z)W<$T)W<$X)W?=0>SLcE>SLdVWPR+jkZcUkL}TwVVl?(HM>O_+j%e)t0@2vJA|xAo zzeF_leuZf4{W>J8^EV+`oikCLza>U9T`LjIbbW_trmKKxrfXG5R_E1-&vf~fy9V)@ zE|>2U@wrN$-|)Ge9}u74@R_b35ue}i8MB`dpWkr#8S(iImtPQ{-*8!r`22>;uZYiY zxcnwbRxEV4*^G6Gl%Gld^M6VqufGRTOd+qo2U#Cm74rIfkiQW9J;;WTvJ(G$5I;VD zBmVawE*nF#v-}U`Xcbc?TE(=9a(oq&m$SJ-Isa0QdT%D`y}9$#*||bqy|)Na@2!Mr zb!cTot3#`Vl$EGI7bEJ=TOc<^W>qyLYkNsZA+NS)qPFKLM{VD-LOInaM{UnUZLdy@ z+FpvN?KMKOcGX1GuB}3{R&4!0#IK8*+gHl=CXE~O^B zA->hXX1QD)ZADA#BKtpHIk)*PThoQ8hV>BDa8C(s-z$;wSMJ^+S=%$wzV;zT``Q=L zz8Xk48v7;UXXjXJm(Oe;fShUKGusDAiZ3&1*V_JG4_SP57)c?oa@w;mmD52b zCwH_Cw$-VU(hJ*H%5@%W?_xquxU+Juhso)Pu7WcVT?J<*;>S?sbV5{4XGG<6K~zrH zMEq!6_r85)$-a!)4SCjnU-mVD-H}s9S5ESTvykRCN^CbQm+OJFGpTLT6Vcv#A=>-d zh{nU-iIg8V&Iu{xRl`hF!*hvI4bMYV!}Af<@B&0N?1QL=7b2=*-$cqEv5OGZ=VC^p&nrNauX|ZjFbKd+mJrU2n9cc(lm~JA)4=QvRrp{f|_8%f5ydl6@oWF+_VG zhiLDQBij4;M9TNo35c$*iHMHs6NrxLlZcM$Bt*w>vV`mXsYJ@RRFd_dOjMsKu~i|j z`b~3|zIGc|`=Gs}FXeGabyl*naWICdD%|O(yR}(3J#9j-r`+L+d6V>o_VpPL75Y=!d zq8h%5sD`r;)o?bV8qP_?d(;i%E9b7QZ0~eJbS~aP9<&&LqJJCtWI`(QkQH`(rrYtE zk8~PUIk(3C24MlB`Yc3LpLZn1=RILxeX?@iMfzAd^G)7Q#IqFb>jOml`Vi5+79-l% z5=oKv^%0_dEltFakB-Kth)VtpQOV0BJh?1Sq8b&4|8N@-L$IwC67Hc^f~fdcS%RqOYY? zLiFbL%80(qQU%eziV^K=3q<>>ifCUYi1w97^wrBP5qeUOtwZ^*ctSgTFA*J9Ma0=wtdM{3!*@GEX_ zq{E)+)wBW7UH^}{0&^}{0(^}{BJ`e9Q<{jeFLe%KsQKRgOi zKRg;yKRgCeKRgyuKRgamKWu@hAGSo)4_hJXhpiFy!#0Te;qi$2VOvD~@B~Et@Wha^ z67PpTXWkC+e&})%;{DL&WW@WS%PENWLzni5_d}Nsi1$O6QxWfnE*%l?hc2ff-Va?) zNAyPMGeWZYs5Aek6!N;~D#q56#C@<+Y*onXp4%DGJ+}*@du~@m_uOuX?z!C&-E+?h zDJ$`NuD7cP;`dyao`~ObU3wvY&viLFBx`%`kV0N};Y@TFK8JGrF6`x;TcMouC`Wh3 zOmt^FpBUX4FF>=TlGHS9vf?~K0pz9CsFE}|UmJrnKyVq&!SOAzh-(vWQLmm%7F zzmRP2{V7Lx>P&Q}zML4{sjonEr@k`8-f&($ZRu5rzD9j@BA&PGzhgSLd<}A>iQlcR zMOOE#l>7E^ds`IJ+G5t23_#Xf%z~rs@9dD%EoQC7+<@%Wzf$gFi@6aQFyG!MGs5O} zkW!0TWHAGgz82HhVs1vxv6B6LGPfYtn)v%<1|fHwcy@6s@`#CN7q=lrwbQq(+>X>V z@!v)VBTI@aB~M#-AbZZQl*9}{cD1d%K6fGwOuRlrk;W$bjkmXRBW+C%F&T#Ry0lX6 z2$Q>!t`>8Y$vw!3(ki)=trhnoV@*yo8ID|FTeY&S?n4HfoMj>#aCDac}zJ58n{pPLLfc^diNWTeS6NYSoUa$`-NMRqrtX!0C# zxXDzL=aIH1(@b7KdYQaxG7aey@*;A%$!v>x3Ar)kW#mqi1s3xPQWi2D85c4GnHut{ zq;#5z{}TEdGT+4Csq(s{_;ZsFY+r9AQa&4eGo+B$SeJ>$x>>|%tecH!teb;qtecBy zta}U5Sob!fv2Grsv2H%1v2FpPv2G!vvF;s2W8J%m#=7?qjdkxM8tWDz8tXnlG}e8H zXsla|Xsla;Xsr7P(OCB}qOoo%qOtB1L}T5jh{n3l5RG-q5RG-q5sh`9BO2?zKs45^ zKs45UiD<0*3ei~iHKMWZ8$@H>w}{5Nm59c=?+}f3t0YAl>sBKg>(+$KEz(%`1ER6+ zM?_=YPl(34pAn69zaSdx)*>3~enm9a{f20)TZd?@`yJ6(_Xnb}?oUKx-Fif0-Cu~t zx($fNy1x;PbsG_lb^jn5>oy@8>oy}A>;6SF*5&&6d{AZk`&o^3MTo|_N{Gg~${{QB z8tbYc8taNBMH=h22q`ORy;GV|mmpn3@<{)XEs-H1)sV3v)sdG&N|BF3Y9Q-v?DdSg zCNgz(`i|eNkkZ}Kn5~gLLTVw+LbgFps*!HBEz%)kwnMH7*&f+7w%P$H3fU1^V;P9o zc_-wNC}(G6dPwb%ELYzpq>!&(y>fDI%4Fv^(={i%5;K0gD!Fc!3GaryVse4W?#R0) zubI?AR-4Q=sf$$EzDn*=%f9wNYMWeXQV(fp;=lFp88Wx%1e3$8pYDb9Gg)9I?~Ocb zvczQHkg}4hJEX^FKcsfZ{z&7H1CXvE2Zm&CqB|(0kY7F}&8Rc^{^>O9KA3WT`Yr80 zhlFHDzTy9rLjK}fX`Y~%LjD>P&l3)1?}JSITpWg!nfSRl966y*`i_o9NG}tAM@M6% z^=FlGFWZ%V1aghVylyc^A~&0OcG?8F*TkPMnj&K(rWx{V#56}{Ma)sihY@o$^0mpu zR-a>#UrfBt$0C~|<~XFZZW_}9+113$X^HF~F|ClMCf@eeNE;JxdmE%<#2k zgr@c+HNoD_jU07nrQGf&Cn9}qtNJGGkO3yX?(5``vXXb~4EnWv3bG=kJ#x2gOFq z6!KeG+kdblRxze~g{>ro{8cwr$qjzmRs=;%AwSq;n8{hl$cX8IOpchI$ZICv=X)U^ zn|Pl;8~Hh6dLu;x88CsvchDO$#uw2 zCO#$%Kq@y($BpZeolLshRyQCAoAfrh5ou#mWundYAm^EEX)+MG&E!pM>CMQaCVtnu z1$o`X?|OrfWhQUiR<|N+Og=QZ4apr^CHINR?Z^%$-V+8Rb4)f`%pH=V0}i%X2$Lbm z(Iyv}3`IJaTy8Q9ImhHWlY2tu7JX+W``XmuNae%Qw>*tNb~o96lFi8=%|ptN?k3(h zMj{uP>}FeyLZ+GQV=@}q_VDzM{|It|iQn8EWEV=4;3}lk4m^@z;^*5i?U#RI7P9 zX1*yQv&ux7)huF^Sq(33XbAS)5?VnQebDh&Ve^#O7Wo*^` z-*g>OCVO>BkLq$_4m0s1|2fh+V!lBBAA5HKZ&TU-jeqZR&d%AiNi>Ke5t1nsg-D^4 z2o<4}LK2Z=Za_*zbW)l~<_wjD3}q%{NTxEBlPD@vBL1K6TG!{Z_CB2G{@vZr^LzgH z@v8mW@AJK`bxrG9>so8=eeQBWV_@oh;3_!Iw0Zxbx^|n>yU)|*I^0wuiquyzm7<_fBhlh z{&iHc0X4PWIVRZ$vEKPp!hP_#g!^FVVN9I3P7>^cVF~xaBnkJyWC{1d6bbjih@@Uq zf6SjH>EizOP!>s^CVot+q^y&uvI|l~lBbm)Q&dtBVll-ejUf9V zS4f_K9E22?3~@16N+!9O5|X7Zrle$>izy}HXD3TbUVp&9=UYZ{7^&=;rK=>_TBn4L zp*&?JU0kYi5`N;cykw$_xmr>l`B=`^NN#aCSCBmKQdN|6KupC8aOFhO8#25$uAE5H zTudd&SQk@SGSkIWkt~HIy&no)FWCag2B|9f31aj74V3T+h}{#fF1hewUv89?f>;S} zl2nJ-+Oq~FdN;(zb0D1|wx8BiOqz?SC7I@8ZkE()i?d2x<-0}F7-CON*OoluVs4dm zb1}C`UT`sWB*R?H?UK=u+tEICCDS3+K6g;U%OOn>Q$ImELhf>smO8boKhrjmEO*jW zvcpL;$qkSCsqU3L;^aQbP$$hLGo0Kn+2Z5@2|o+mLULg{e_Ibqu5$8_q>hu8lBb-s zlJGOdttB72n1>}RowSkcaq@^HZ+pKyZ6)QLJSwT%q>H(5(of29Gc>?+Lko*bh0qI3a zy|9D7t*0rWYay2E8A)r1rRq&dea5BgO9@SJsh*P@cB!7Hq~`1BZ>v8gR10F;dQs9J zV%r)>NuA_U4Wfj;bg2eQPPkMZ7WUk2*kEEjFQ^drFxwb8skz8 zm#lNC-lU}dV9l6nWkdU+Hj^q5Qap5%3xY78ZHic2+) z5?TnEh@8huHbJIACQ?$2mT={}M#7cvS_xOa z>m*$HekI|`cfEuw->)TH`EHPK<-1YBmG34ASH7DiT={O1aOL}rgzMaIC0yrjmDoCW zz+|k%C0yt3kZ_&*orLS$of58d(iD39tK&lwu8t2&xH|q_!qxE+30KE| zNVqya<|J4h|0&_>__&0t;}a6Djzev@%I4}gEaB=nNmAwxe}7Mw@Oo5=ge&NXge&N? zBwRsfk#Gf_D&Yz`D&Yz`tAs1)Y)*pN=4>bF(Rcg%XVigAgxDE%OfkH=l3l{9D>)<_ zKj%m|esW5tA!mCI?Oe%xh+U1(C0Pxz`!cyDKS1oh%z2VOT|Vba&VJF)=K@Jyh~;yk zqB?*fp!Xl7;CL3jehjt-Ydra|lpfk2ixDWI4wP6|3n zOZ^FAN034i-iIwL;aI&~@~2BxM3QTOpHERq87IXgwVYhxBp3GcdLqy+Qf#d6Mc*f+s_6R6c8l zt)L~LH+-onnNbhdQpSfuwImB6MdN~kqz5y%`!aqI~b+rNDjN0&JvrWW=+5v-$`0(ad$7N zi=?KLu9Busx;Y7I(cMXUv>#Rzc5N__w;&!di&dYR+1aC38{KZE{AM`^pWtHrM?nAv-F�#ex=)lX6vV!iXcq?L<# zLGp}?=`VQ$@&mU1qGT3iA7p@p=QaZ+JhypC!gHHJ5}w-(b`qRtzAWLfdx)fAAAe35 zD(UFt70Cc6X_666UX{#pGEBlJonDiCjaCHjr_Wd=NWYO>mNy%66V8xd|~= zulFU*oJ>+a(;>FXo-A1kvG$oF*$lDc=~T&25IdfJAor|A4_h7yo8!gm$ZWngM1>f73)aI3<+1Pvz(-*9ziOr`=^pzlYN;jxzfoTNew4+ zB`uuHql5-R?3&(ZPJ*#9-${D3VNQRR2&5InW{Cxg>E>b@k{%7=S(@s23NDaV^YAyU$KiU5V!A>`Lbgj9Bb6ONc1YSnY;1fddCJ9n zFB$A&c1lLNm~_d?V{Er1YZZTt?UCezSj zmTE2JcgE=I(;pI!-lGzZ-eVGu-ajSfD)`Sa9+%t#vF8|1Ncvsx_j~9O?5ub?B0V|= zV*MVLEQ0)i5++H$gIN2dP{PSoQ@p?67NJBtU|Ti=oF(Z2u{|Y=q#wlQgjC6Jh+T7t zN+v<~K~64^jB%33Nm}ZjYW|#%S5mg3 zFZm=joLnqv?&K2571+P*NR(gF2t8<0K=QbgOC{T= z*@Bwd){98~a8gu~tArm@Ov39wS4cRo7MC2wXtA8HbP^mHOE^i7PPokP_dwP_tlvv2 zpCb^t=nwe19BBbGf7zqXOePG(o)%jl%QVaUChan z9xXJ*uPI~jbRT3k&ReeLwxZP`ws%*M+zDBPn2M4XF6KH(C&((qRFXXBVyaNWZ$NC{ zx!y@y>UxN^DkUg$Ri=tI?C+m_1@ZvI&c3QCru0<5UN=apL97R>OYVT!)s-71%^+6O z8j`jyrlzEui@90yqKmmj@|KIa)yabJGKkgmHYaJR-B4z$X&`G6V^YV(1a-eXQ%R40 zjdiY_uQDb*x)WmOt97-lKOvTLy_52}!%2FSS0)4DmC5>w>7C7Q)drHm5Np+j61z5N z=WKUMcx~`*iCtr~m_`y_W4y=7g79?YV@HQ3l6g*=I!R0A6~$(fEr_w2-s>c2!~2}1 zM{Bh7pPCM2bUy$7U~|RH-H;Tzd?Y?IA}M-yO6W?+1ClZjJA$;3To19TM7! z&qI=XowSs+chbs9Q0CT7(xco~Al%l&C*{-TqcIdGe&3yJRZq z(ej1;l_q1-qtzj{((LL|rAO;Qtlzsy?sd{#(jIaU-v-b_@`96|k~bko5z|XD1!C*m zrzCs7OAfWi+56LyV-TC8o|Vi;sxFA>Em;Gxn7)$lAW zV-PbmK|X*CbCQ-i6EQXtUYC67WVqxoJM z_S|Wb9K};YC2`jMu_T|9>5@{Aiir6{as%WB$P7s%i0v1%Bpo5O5%Z~JfQy+!36F|_I|=H(<8MfMbm_>X&}9>F{l}$Bk4EdKgo;7FlUxcZ1^Hf55pp$Tr=%vN z+Uxk_i=?58`9boKi`nI5L3kkKF68s07{ehUUHGn5YT|UW@Dv)frPn05Qh;pcpglVEJ*bP^oV0^t$u zT*dH+mP^7TT5ib+JY!~W&XeSN!SDC;B}E{1Hh6*LI*1+7E|k<>oD{;J0}ADl+>V$9 zNOh6qZpfI)cqT{E3SxbFv6EnazC^LOn`_9>FlGic0JoW=x7n>>FlGu8`O_ z%$O9H*f-3WTq&_{m@z3Kv2U0$DJijUm@z3Ov2U0$DJ`*Ym@z3Mv2U0$xk_T+Fk@0y zV&5=hQchyuFk@0)V&5=ha<#<1VaDVdiG9P2Nd<|0!;DEqiubLyJ;vaZFO=Ac{Qg>| zvLt%}f8|oellX57zurlDl&Jz?s;bK8my05y+gISajU*{A{#qR52FdKR{bxn0OO`|I zS&5?xZXmEy^2&1 zLhhDKfV6=$lFW5EH|Iab@cnDi*e>Z1~l)pin&)%FsO)yE_ps~sd9s~sgAtB*@KRy#>JRy#{L zR-cq`tag=ftag)dtoD#_MD>(#MD=o#mTDu)TJTAq_|wDhAy>S9lMa|ND(Ns!Ty{*q3JDPI)dn?ccd z9wgy-9_&f{?Dw*hVDtvU@(f{2nB^IoAXc6<3Cr`klVCg#mvB74;R#wS(i^pyx&q%^ zD)|I52QtzVmf49x}y~_Zr2DqHRl&o^HTC&H<8cFice*3JI&(nYLDbah>e7wBqLqS&yo+E?3FBVvQM%OV(s&bWT%VyRT4h#*XuV) z3}Pc;zoY=f`t*RLypw~HTbvw{-0S49q^*XrYvz;s9%$7^S znJu@3GuwF*&TQvPII~?K;mmfSgfm+n31_y8B%ImuN;tFSlW=CcSi+g@5(#Iv{1VP= z1tgr=E|qX*D=6X2cA11TTOkQ&w!#w5Y?n(ovlWqWW-BV;%vMaonJo~`Y*#3TGg}~> z*{)O!$7%@)$0}t(n6qC=7qcMD*{`&OvtJnrXTPf?oc+p5IQx~8aP})N;p}&{gtOl@ z63%`VB%J*!N;vynE8*;SorJSrB?)K0$`a0gRV1AKu9tB3t198_S53m%?*<8Hzv>ds zem6=u``skr>{mm=*{`OAvtJ;b{cctaXQW#soRKKshdD#mb}`?FIYZv&BrRk!AC&cte%##W76=J$1$m1wa*94gh>E?-z z!yl6UtEt^3#~^mF?;$C&(Le9)Dan=M$MljU{}v8ihMb?0+=!UXkf$k;hLG)$XDG1_ z5IaYDR&q3|4Pw_k z$4Js3n?qRRQ)2v{fpHRku5G-8pO~8<;pgloO8AMn_a*%7+ayZl5zM{zDS*kIurF#ge6=oVF{N=Si+?emT;MbC0tGkvxHwrSi+T_*lf)2VEN-!@V%;ELIZ2N) zpY;;v^ED;Rd^RNHQxo&g#sql_d-tXUnGM;@e4?Dyw@5gvf0K}^H*)?qK|V%4TRpK> zos9k6j%eE`ky#L{>2}GNkUt?iBzqt!BXE6#607yTe;nK?If9tEXX8G;B+FU8{2<8( zv90ftlyUN-WkOIhOKP7U*mtjv1NMa8pg<2x!pd@Q*N~k^Lu%s-c z7v!kqW=LPiF-c>5Q_WyVs2%>p&!R|Y#9V(Z?xahehpfW&pR*)yLu}v4A~|bCvUhYy zm8@NaPyHb0tdiMCH3|}wdSf!GXb_j3cW>j2hY=P{pHdDp7v zOKL(&W9t`CBDQ~B4Y^QqKVnSsNIF8Uhg>9i334kWpJbMcxkR!Z(iAZTBwPy@q{OD- zJgN@P0VI*?_)Bm$+g#?waNe-bl~B^7OjXFmq=%WRa6+m@NJR-!U4BxkA_=K3#SD-r z`H)XhrqbWGC??^&dIcrS9xN_l4+g@1r})Rpb=VdqDD#!dhczwX#7||<|4`DSJUcC^ zR6IK^CE?krM6D`OtCmjKR!eLvQC6VLWtg+_xr(BE%6ek6=sxTPb_5CJsFQMviAMdH z@|1|}Uv?C}T9OwrCKV(FA$CS|EhToF%jY^tBZ!?jRFbrGQd!c`Nfka?(UG>zp)|eD9>09R6odT1zG)=OIY-u;g>da7Y`;R}kBq9+B*X*m!O$ zISBb-60X2Vl4ttgsL)Q56Jq1Jy`(6lWeitfB-cZ1TOA|~A-1iKl*rRKH-2j-uE0nx zo15ZE7m3}!I2SQJDX}(g>rYF1xUD}UdCA2*D|y$&^p;GAj6(bLk*tD@hxGM?bBpZ- z&t)p06Pt}~v}D0( zd6N>WI?Erc??`TgEJrVophWJ4STB$C#O`DHH!Jf*n@$v2j5f7Xl!dA zwmw=i8DjI;7|DD{9-N(ym3$4cnPi+~C&Xrw@sbZd^=mpo@;SuTG7}~1A-1jeB|kfv zBspug|M`N+lDrU0HAQkI#6BN4RdPMVo-zAS(hzbb`r;!=YZvn|CGr%+{^rYc$v}wB zqBA6;Ahz{clIc!9l`M5KTe8{79Ep9By*$b@mlDf=4o1RjxKbh6k5)DLT#|zJF_|wZ z;ADX(@w3E2C+Sg+gg`hF7Ab}!VX=fGVTptzVX1^8VVQ&@VY!pERI8Ugq4b5s>SeM* zV)ZgvDY1H)tn$Q;uoJWS_szeQjDXn4TrC-jRMtCdDBeC;4eh*E^5UG7&@GVll-R)? z{t<1Hqyu8?Q!Se%M{vxwPpEB??4IJE4Sqw3%v>D~wY(PB93*yzX5ZAeO)?%iH^A0+ zNM=GBLv~VPo7__$yCf@}{78u`L#pOTwOg_U@-XBl$v%i3_4ZL>ti>;ZEKLgKL`{E{ z#Fiy_`_6tz790mHp92)HRiD7N4pL%vOnC}&L}JI3zK}mWi65Cqo%ly0OBD!H9b-P; zwuT_)Psw|DV0$>Ou7uj-Km06;G&+E@3rLbD_$w75i>Y@7t^-Ic#^fxex^@%3IS}Uw zsggPnt7%qBY{*6k&LOi&-i6qA<()10&|;7(CYcAZvy1GK6)q-+ahZgzQAonpC@f)XTrOd26p^qsic-RCjbakEMsW#SgOV1qS~NwO1F>4PgOqlu z(o(I(_M+b_NUX)~Yl!E%DIsgI=aK4KiM80I6ntl+CpPK^VII2}Bhwcfbtcy$-NyPI>}Li{BH<`e5*Hz`yb za{3LB;Ui%|j9%L0U@eQvg=eRuY@B zOSw6q@yP`o=pm%eL5@VGJFQ% zyDxC3I6)3TdL~F@1@7=B$OVu-l3vKC802}$5QzO%z859-+)i1<43vyQjLp4+B=aDZ z5Hr{lE3-+bFGHar5-anwkXI69C}dcIyayScAk!glORUUGA@548%r$4@{8?gUUW=Hq z5-al-$aqieOlC;7hVRDUtUOvkkING86IxWIZKT+NIh+iP%$lwylkl zZ``&vQ(`q;s&6O}dvecGeJeTaQf;Henz&RuC=q+QZy!>9Cpic5J7gy%HpHd+ffBLj z{cKyiBo`x<_1A7n>{FNOCrZSgluLRYcb6pPAlV@MD6w^W{5JfR68R017csv{vY=jt zAO|S1$6YTUqD1V8yOM}G?1}9Kmb0xCj!;6Da}CHJ63h8^$T3Q)l-PK-RJkarHl8ijd6bZiXZ!xc^CdQ(?XP%T zNJ+KvY^g4ygls(9w(?4BJlnP|rli_ z_PqxtwItSqCO1oL?>4!`6PqPWjt|3K4~g}l$*mIWL6h4g)`KQ>B-Vo_w@a)CP3lUl z2TkfptOrf*kXR3z)R$NfnlzAD51KTTSPz=qDX|_jxl3X_XmYp2deEei#Cp)AvBY}N zpiS?jKGl}(}$-NTmL6iF=)`KR^CDwx`_j_XdSM7Aa2Op5Ma?(Qb zoRbG7uRD22GTBK>Pi!Pu&bF;q63f}7wZw8Zd01jOo3xQw&L)p|Vr6cMS;9tLTg8}I z%%h4KK9+MwiREMRxWw`?=_IjyOrG$>%3Nu$U*^t| zMoykoDvPmHT_hG`(p9O(yHwp2V`4Gg6_ahBzpWmUOPutSly}lgQrF2-lKY%I?TNL9 z%h{x_C)PeoA=anQNwz!br&JbWsh*cujL8d1l^5R< zZ~63>ly&l=Qdx|p8X&P4lYvTQf6vA8c}Zg5NN+MoV&7wLGFW2Yb#L;r#J<_yWQfGR z$KGV9C)TRAE!+Al65EzZn#8tc@~XtPWim`++cJ4gV%su#-4ko)2Y&UpK3vk*$s3aK zPTrI(h4jpU?*^BwcQJ2E4m){AlIJ&nTO&NNn%dT_JR>Exb(41`wsn(H65IOT5qPFl zVq3SE(GuIb$ry=k-DIpMR`;J>dB#an_WLCquT&OesU}D)#$=*W)pM!dm$Y*-N%E4D z$;!u4Sw2%Fmda$R#8R1jpnPf{^h@}mq_vZel*(c()ijC4n0%~M(_E_Ql2uMVk)%7B zp?oZr8UgC?;~)kC`jU<7A$sl#|btkEODFK9^W3 zllc-$WwJo|a9>_1;Xb%Xskjd=mT=!$qEua6d6r5BJ6R?f=VZBLwv#U;Yn`l+9CEVK z6K_s{SS?mbY+EK@N^Dyut0lHAlQk0CmdRR)ZOdexC$?Wa=KAX^NgpTcCBvP3Et%|O zgC|yI%g1uwD6xD@Hc2cWlg$##$7G8q-hS%#oo^KLv)eDeRZPwU{`lD{DeYvNq=u92 zk_VjZkUZt&JITvVzL$)4veOf*scqfLoG!7goBSZLt()wU*w#&cl-Slyc1vvQCVM2d zb(5bwLHk5r{3sln_&u%zNVZ=Q3DsVY>i{m5|7_3H9k}0=Aa*r%zZ3uO6U|0UAoll( zIztX9rt7Yx&==cr2THOPckvb?=8$AJWcC(ZE08pp9}ZpA3*Q7Kxu!zI``bE4BsC!R zT^4^x8bVee=cAM`pTIdL`TlPI8DNTE)1Q&*PZ#5h)$}-1MbADvIb<~rgf%^(7^~?a z#DqHdS0U1)uc174?L91+3Tca9CrLhs*d3^3$y&&9650l-E?EfK4Y^VB zHRKTFCdpn%61G)C5<;t<4XG)~2{{*XvnTQQ+G;yVj}|P6?={+pYXy>ukQR_zC3PWf zA-73dKsrI{NS=h;-VE0YBria!Af~S54T$}1uX>Ux5SxGQkSu`M_kq-xtc6S{jB5pw z9grT#xuIk~qz~jyN%kyBp@ERQB$eCar~$cKl2R%Xx<47$3MA)1+Cmyj^0}CMBqdx- z6H0i;ws0tdGxMgBDu}r=C$0=gYAz0Y_uucQM4LhIft^qbO1LGYA?{W@C~3bi9J&?x zw3IxG7|Xepq!Ywuzc!LWNM&>HBa)nxaBmB#0^$DEmNC&KWg?+>zQOukvKBHH(oT{N znF47qIRg0v@|YysRk#ZS=^&|!BjZv?M@bEQhxTg7NcFVj9mw5~XCzY~)`rhY7DKEJdrQ8B*uK+8vKwOiPG89( z$d5?%oFrS>Na$BcKZ?fc^Ae8L{t}MWffS9^K@^SE!4i(uArg+&p%RYOS0x;)!z3K5 zfpDz8=Ec~|U*MWZs4$MguO~=J$QzO>h^YX1TT&ZR4f2jBoDUl|z*^WzdX)F6-;>;c z(PHNtqb2s-smT}#XOgiJ&Lra`+b|p3nap^}&yYMxSm#Rqa4{1l5tP|t-k0#%_(>A` zOM*7SCsV>~u_==4*Mvhywqu=3QJ;QD3D-tU658h@NqtBRGF@W5b0K7=Cp;6LfivM* zlo;D^u7qtkPr^3*Ou{z&T*5Y-FJT)lkgyFGO4x>rBy7XQ61L$I3EOa~kf-K3(l3J!x*;=S5iMnxRTl> z;Y#X930G3PC0t4Ek#HsTlY}d&pFOcB%2@Zk64rg6gmwQ#!n*%TQNRD@30pq46RSvy zTH~OEt#L@g)z)DNS6jbJxY{}*;cDv-30GT3C0uPClW?{5r-ZAm;}Wj6PDr@g3U$Q5 z$Iqe|S6g8TS6fMx2v=Llo>_+P{Q+;EE1l#qz1Cl zKTC;9c$Sh?avz>&vtxHQNn3~=yU&)a#@6d$>oLg>kVcT~l0%T@kQ{-yBmOy(NI5^B zoD?1L&z10qpIgEs{sj~r9r93g#J@vdyAbCP;V88zmB?H>8x4^eES8S5d-Tqm`9# zjaE*=HClNI*JxKuxJJ81!Zlh&39k%XCt+*&Vy*GQq@>VLl(~`@V=}K&B=k0AE>dYgnby@vi zsKvuxjLGGY-H=CIs$h?6mmsz}Zl55wKJDNn*yALsdq>8ES@*{!ta~R3>;8mkDfCx&#jt&Pcw()=R6Qlt(LM*zKD}J3pnaZB5NnNRoCK{Q zQENQQ7_~-k30tF&gsst6!q#|B!q#|R!q(_7VZ9P%09xb4gqT+$10`&+!4kIE%bvuy z*pLLVoQEce<(#H`xcYl7L2UImT*B4gTN1AR-u47rk3Ci#*F15>euU&1NLR>6$q>l1 zkas2TLHa{RNfs6JS9b47wm@vvHd^wViy0$1?qbGDvf?_4tq{ja3PUWP@e(^Hxei;O zAgKqb4w)!<0AlCZ?@PKs>~C>QlFZGO96A>0+iy79(e?>Bo|F5Uc5QPwbqHz4M8Ly)#3?-kB+3@62-I?{T(& zeX1DtS0L=K*@|I*&5^Lb=1SOK^CaxA&m`=x&n4`y`4aZm0tx$Tp@jXlNW%VFEMb2w zk+8p(O4wh^B~isDyvl>_^Ech@BhnmR$dU|Bb$T zB%ipLpCk)iK0iy=yO_NaUjNxA*^bW-+O~d?ynbaQbjjDaH!88~;dTe%H_7ApB%s|v z*iX^Q_kfeMQ2(vrP%Xq9l#GDXgB(_>d$BFs`X7>35WCWTRASf1?%#krm=vvmPEf+O z-f4rF(Brli#T?~bF?$jcmMp`)fM+2ok}sW{CD{nEc{NpHeL4WCqLLpWHfv>-aNQJ$ zU7brqsz44R)d)yTsq82`0g_$9qi_xh+vgk!+b5^Q+NU5sVw8)b_BoH@wNEj`oG-B} zisc{|NUVJ-LoSk7`DUgcB zAjD#>lWbXI`9rubqVi4-6-K5sGB6b164!9J5V(x zypmH(!Yes9OLzzB7D)|vZKt+`*LH4|@D9{%65fHTBjFvW+aEBsdnlmmqePW;9bpIjfJAjKf)z-GLe>`N+w5ie~-^PW+j_)h4V@B{uUv2ARZE z(fwFc+x7XWlH(A&KL3FvifviUhm!Ll7W0whG8Z#VQrg9QEUD~brc3I$m`^C0e`ZKH zer8H+{4Bw``%{X>&m4+3epVx9uEfUAw~%=f8$Uln=1Xk+m@JfV{4AE(_}Pz`B@&LG zr4o*xKy3URL#jY*{A9s-_!mlL<0mI%g@og0rG)#}Dhb=?ONq754&<|jqV`!w@!Dq( zV!o1C`}_`BFR}JX#*DO4V(nwHS;F@DMq=#~L(I1lw$D}x+b0lfpYxF_5Nn@HAv=`H z+NU_=I|e8hw$);?cCk|fqXn;{X2wU0>_3EL+svG&=Cn5+`EPc{kLClG6& zy+{>^wa*bqcBQiRNyhw~L&EksN5b~WDPjAZE3x*Oh`WKgDQchdDc<;*hL{T^);^y@ zE|ggNtbpW|So@e&orLXE$rD>i@qTw@3Ga7Tk??-^^%Aa< zs!F&@suqY_6Wt);ny9*j_q%VD@P7AA65j8wA>sY*niAgct`&&8-+i-$_q%VQXnj#z z!u7>%p2V*&>Pk3%>Pc+;yo~ek`V@_yh7@o73`fkJ5*t5bA$Lh^{Co&$EV1!p(nP}X z(@bLH$DZfESHkggpM>Kl5F0;>kSY)xKdT`RD3y($&5#xnj-Ll5+`k@@uzgxetbOjs zk-9ZS?bC+hwND$wJR-67c@olAV(s%Rq`k!2$E1UV?eni?bD4C<&}Z%lE>b~Uk$^#Xb+0cgnK&i&xE_;=0?229#I{}xvdEM8F}Bo6dX)Jrqp0PVJMmlo6SVUe63h8B z$VyMFL=^v7D5znXmkvvKcj7SlvfJj!R}@%y)%^pRhHEwfu6(vyf!TX2<}@S(F&>1!R@*UO+Yp?**JK;k|&E zg!clnQ@k=y#I|xstju#EIX#IVb-5G7=DPEo1oQI+63)*TN;p5~p=hjLO}| zgpd-H7?1CzB|N^Dp?EES45_Y?SUx$n;hu{p@hyK%f>_H}a1ylqwG!6!Itgo9Nx~6c znWDa^;>7QZK{&g(UScJD4N}b$_J!5rMv3)B1huF^QD59FVF_=Mu!OZGEa9yb_0DY) z_D&rM&o}By7*kJTJ$MmHSYKlGDgkNeNqo!SogklJ&TQla-xluff88Ugh1s}TL7bUW z)T&LL_^sLs>-T07+xlaW`#iB$&4)I$5E#6bh3lQCB`o1H5|;2;2}{^p!V>n8u$}u#^5au%JMrC*&r#Ix{havy zehj_*yu|7i!I@`&PpseXLN8n02TIyN8bSt9)bc|ltk+Np>-CC+^-7blUav}6uVE6_ z>otl-)aw$CsNoXsgKtV0^OnR$-NUHYI}&S+9*~g|o98X&J&DaN9U)^Vnp?(8IJZoY zaBi7M@y1v`#xRHQ<|3u=A z1YDDu=?UjmE8%R(3#j{G$Xtr*{<(x(pHJ~>IvS}KNNig(Ad5VSuj$eRv6?P(g1^jy z5q=Iz_=V)6yZonpR!~&al}`McUWinyB)0WSA*(&HnvO!ftc2?%R@2Fl^^_R5zEQ%h zZ=z^qZkBM=ZIRfhtA(T0w-PJQJ&WTvtyJdtU1zC&Anj2+NaKF)U9$3CnY_gyp$J!t&(z#9BUE6&z*o zDTx9Ud`qfd(?XK7@w~A;w^LY>2V!&G<&xqqrii4h%crQM8pQG`CV6hGzpX1I`zQL( z2o;w!SfAp32I@*lWo*kn164wDGvwG;xb`k-4vDVEXLBf#&XDsVr9Fx7i>ngE`l7s( z^e9^+5VpqEieYP9BVlV)kgzo>O4u6LO4u6LN!S{dBy5e!61GMa30vcO30tEoCCt{S z=827j+i!@3CZ*#uK9pD&be8pUP01B&{4rlkQV%`Y8ZCCS>2*f*}**my{iYq`JYwvjaS2C4CkaQw6B3Su&JvD4wpS~nvpAM3+PX|lbr!Py`r$Z#{ z)1eaf=_?ZUX_|z6`l^I|I!wYoeNDnXeOU zuoun&MkL4p$S6w8t})tYd`3$itCQqCi#|rewdYs~*Pi1fv#a@M4&x;&AvW_*kPMsS z&n*)rBOw;^zJ&AqBnjvF$&#&ZTT>(l+_t8A!m(;2^MeG*{R7r|31VaQ6DR3WwniXq zjTwqzYs{3eHD*cJ8lOto8nY#AjX4sw##{+oW1fVq@tK6J@wtSpF<-*{Vu6JF#X<@9 zi$xOd7mFp_FP2ESUo4eyzgQ;Wez9D_{o)G=_lp%0?iVX1+%Hy9v|oJbiH-RpnCpgO zj#`r-Z$s8mV)uXMkHbxpzDQ-`aI=K>6t+lsuKtaLz4NVvy|dL5jzi0NTY}`qC-1f= zh>gSVouo%u!a!KUor+-z(r~UJ1v> zJ_*OhFA|Q8UnLwHzezYY_DeW64oEmQ4pKBW4tZi@V-R|I21df~3GzAQ4@#^?OaIdi z$0eil`RB$bB)o$edJ-o}_*oRIgPGQPIV@=evGb@T$^9-S*^~IOk&+;`ii{+Pjg3?% z=~0$25SB2i7?v=rgeA--VF}Ncu!J!Q$3}Ju$3_kb$HqAlj*XlWj*W9A92>bL92>bM z92@6JI5y6gaBN&4;n=uP!m*KuqOoz2CpI?Pqj&DZkuhI_w1!+li6vbh35|dhl#DHk zwH4$tNp=@gNMheYQx9XTu*AN1r4i(ENzdv2j8sI@2Vx_tsH7%xo{kY!OmYuoHe#-j zw1aF!d5TMxU=?7gu9R$oSgI0|AxQO>t+FL=LDG>=DT#es%l#;GX^DMX%fpZ|lAn;X z<#UzfcZlUvR$@mzizz3uqn^c-m!#lmZs(#`OL9Z(Xnu{Pkc+7xDea`9q#DHb!D}VA zxR~oG5&KJd*3OkA2T*rg%T)G+`>D;?RT9MZ%4$y1qZ}K7aBSS57>7?Prte@enJ|FncNR!oA={3HO2l67B^9CEN>Ml5j5=B;j5#Si-&FWeN9!ArkHdLnYh`UZH3& zNb|(b6UN{O@+^*e!zel{ctgT5|E7dv{w)b-{y z&iwC5xTlPka8DT{;hr*9!kK@Zgfstm3HOu<67DGzC7k)+mvH8vB;j5#S;D z-@h?eGNXw9y({x1Ya#ai0G~;Ib}^qzj<}flk_gUD?K@Q#Nb*DMJ5?4^B8~A)EOuXb zk)$GGdg2Uii6=b&v2S!)mLN9sFL#n2W!(c|-M>%_>%Kz5y04V5?yDrM`JGH? zA*NER9+oiXcL`hUh=eWnhlDM5RKgZJCSi;HDPfBpm$1c7NZ4YbE?Bl%eY>k+Nt&v^A z*2p1YYn&rtYvh!$HO`f=HF8PV8o4QIjq^OQ{e8mak{7h_oAcaxNx4%$f$mnqI9K*0h3zHN95CnpTmprqv~^X-x@hdW(cLy;Z`R){(HLbtyXT z1j6G^J;m_2bBBb-o%#|UcN$1|+-WG`apz76k2`lsc-*;L!sAXOijF&tB|Ppl@x;bq zXY7?j(C^JCdYa`vN%8gg?i%!IbIG*&NujD0aL<<#nG3P&8xJH%EyT2ttVhfpkcSfF zZb&Oi>{rA*0BIvhY2g2L^|lo6X`g;5?f--*GP$OCAf{Mgphk~ByO zNN<<3zk;3y>6ajLAul)y+Gl`-+Zsqw319LgzJ!v z1Ze>oDp}=X(j@i-*E`7PRZrsk^ff0znO~=bx%J@^ZvCwUv8}%?;nqh;_=WBjsJiu)ju8RQLB1#I`$e2>-`lO3PQqQs6tIv~|}Nlui<{&x99 zinkYJMG4>cB)-KaI|*8B3MI_;nVKM0!Ve@Y;YSjda2h4b5`HXU2|uA|{LJvgT9vEF zK)8yWsTeyKwX3PKB(@^6z57$ip|#=A*0b=8tEBC>_|!aPjwI<*eAe|gJoPFWIw2`E z3o=hK0#Y&y);p5-Aqx=mImK(|^^p0Vu$>Fm356CrNsqE#%OtGVatZ78g@pB5Az{5% zN?5N|64vWW3G205!g{TduwH9DvA!tU&c6e-PI4{kZhtZ4D@g+<>nV}XAUn|-UrW|Q zeuHd~?1QABeKt{IQ9PB`JRAPXo8(f6jpuJYvHgqX*(zaqwn&PjGMpD=3?2y2n97}jDJCCXatmarB-d4g7rT%8S{#%+PW&XyqGK=w*n zBF5wwLD-2dYL&NmN4hvDG|cv=pjX*7Ijekrs5n|^Fe@Y%Ykrdj45+0XKM@&Dg@lQxrKwg7{y5c`? z4YC8WAF0BU-yugKNuF4}xbs3%r;yOM1El~pm6 zY%V4(WFsN(gZQTX1StxMNo*vTa%Ond>p6eim5~L>N za>-%DSc?^t{DORbK}@2A(T2qpbIDY{%q1l?oRpG0;-s`EHUqFV%1GE6S4r3!k{DZ~ ztYX+2V7~8*WTQ^GzA|IO}Z;^28 zwI$s8trBkiHVL<0N5W(G?Ghf}>w03n%&}2V!m)9Ogkz(=D3)^z#W3fV zZd-nz+W4UaWj@D9-{&Cr_+|+}0BkZmTmz`}>oW2)ETm z!fkbxa9iCxiQg-`I|*8~hlH)#Q^Hp5CE0^BkP@iHQ&v(2j#w&5@d+we6B=a$zcoLh!dB3V(wJF%@d zDB9Lr5^n2l3AgnQB{CGFZYWx81V#D0D`7sPB+TbM3HyDtg#A8N!hRnoVZTq1u-_+2 z*zc1(v9l(grA(IaEM*E)MLt9O^hf(lO_0|hA5m1(84`|-nG%kTSrU$oPbC~1vn3oG zb10EoC{GV;eJ({?|6IbY&zG>}7f9Ih3nd&aizFN^izO`K5(!JV)D!zWnw`bP2IH<- zf}96gF0r#XlNA!1AuoZflGw57eAIMxf?NVwBe7$X$vTPUQv|YJV)Jup{s0d)tov#J{(CWVSuO+(A7O+v#6(t0(h0A6GH$hwuOD z^;GFN4o){tGW)&l7xu5=H-5XszqfX2@)vIX-Uh!9hf+dMo+8fb#r$6L;&5Eg5Et*3 z-=#bJ_Bd6#_}_nnC*|$mTR5MvAGTZZn*RR7b}_eq{Qci~WjembZ-@Ep{@Bl-`=`CP zpN!=@U3pk;=6fcuEEiw@PWhNW+xdT6|7R@!yl?&a$i}1nuwG~C%rCS4{JZ&O7JsJO zS>x@ONuh7uag6!JyX_CVGW`Am`~?QvZ~eIBlhU8+_qP9@Nj{9jH;IG_V>|Kf%zQJJ zH{SoMyq1o?x9u?h2fg~>J8N9My1VUKJ7ygB|MYvS@BfMI{?qmPZ~lqLhyT;<@lTAi zQ_Uao`|p3}mBjN1&eMPOYU89czJWF4cwzr#d_B|nGtKW`&7bN1mGam)vLBA8C$PS< zfA(rWTyNQHy#H(IPF^oO?yX~zLfyP|O>o|K%xyp8{5<rGRtCim$&-nD8*B%+)Cx`YpKj7NSkH@uZ?|q8*`+s-2ty~T9tWxlb zXC_=ZeCK=I7xdy%LhZfRNT`$ddRC~r_nIZt8?XQF@|`X}EB7dG`+Q}2Grms_z3;`P zgr<3~cmn!AR9^PC^{f5({fo~7yZ5IXe`lJW=S8Q>FaGz|ey`XErSU`mcjROFGCzCG z_};cx!ku66mGOMf*HfiGRepabF226p?!WSyu^j*O`;6s2-S+-YJ6Co4k>8H~JZ0%m z<#v6==85>Us2Z%V7vovxmY`zK!QyvF|d_w|z8 z`pAE8+dJ;=N80aCwf)TQEB({?+PW;hJltMJj~|cm@&7OQ>BddQ-?RQ1{hxl%?VibN zoyArf%)5BCAA8SNx?O2Gcd4!7lR_8bmA|*wztgXOx8BVEuhN}K`QytQA8$3X^0S`t zadQ0rOv-U4@yv&>8S6#oYw-J%ujlePpTBDVAU(dF*!3IBnY75S7q7p^zqjrGmGk$1 z=k-+Oj4$8ph4v0*a?efKd;2++Tbz|QzW?|>ujl@GghjBv@!QYnC%?zM?Aqs4>8xD; zZO@bUi<8@t?eDi|=D+vjtX(TCx2SOFCcN5@z1lx>`#Ih3v$=6(ulB>^Wo74luI5bQ zY`Zod?I(U-wD&wd^FCGSs=;+@`~6>yyUc!X^DM{PuV>l2aA@fzr+$8oasQK7%m2?u zPMtsZ|NDRP>u=?;pMmamQ%?Umy94fezrET|e0ePYzw`coWBu7KY!CL^KQV6Dp7F2T zp8uK@8i)_U*mVr+xA-{ghky5b>u(!B%=c99c|DP@Y_Htz`Mjqd_0!vX`$s>Mal`G# zzy5D;kIbI$<2=UWBj>UBcCz+A)40EzF0*{?e%@bg_y4W>oO~W;&k@*9#`d)L9G8F9 zJ{i+x*3OK}?DwbZhs@G3-}u-64duRRjo-clTl&W@dv8BHZtZ_4@%hb+?}xQW{Cy#p z59cZ7V{vw#`Fh{P<9l~}s>}Y}g>?MA&ATnU_bH)AU4DNRXXQQB@69u-pY@adi|;Rs zKb6PFu|65wA>;f1X}g@R9H;yJsoLY;*{<>ZYwgB%xyKt%Nukl1jDw87XZ!!V^E*}h zoJs$(JbdN6o7sNrpZJx|vT8Gj$&E}7-W>yG^W z-)%oj_n+F%nbt3}@|?>5mHM(A|L**lZ)UFvihqjN;?D|HNMpwcp2I=kV$ucRiTDr^jD^%Xs~m z&-wAZiSIkR^C-SQ)8Cgz{p^RY8T-$!OIW#Han~m@zGr;=?=3&J17CSu;(FR&N1yz8 zGOlBJ{AYTehx7ga^p*Lsy&iko>WRN!?`p7UN)LW8~6Na#Jh+7HwHPq)wX%e?|R1VoM}J*-R&^`pKc#+ z=S*M!=pD4H_16V`68ne!7Vow$xHm&Of4@%(U5E7c!*qQASLN~MHJl&VkHwwI`;7fm z66LYyW6F82`2K9~^{h};?=?&4CcN5D#{Q14hyDJq%6Y2a|F``T+m+{u!|`3#_7nf! z_WMaLXiGOeXv!uW6NB-}FSKl)$M`j*ho{Z(ltb8Sp`s3qHyjuEP(}H<{+lhaD z;}1XnGxy5&{CDM(dfdkx0dheet)`hSbC1@{9%88oyz{XVnL<^0pm`^EqCb~4MK+s~|j|5d-`O@E$j=Dj9`T6?d_p3yTjC zF+xz(fPg6I14IEq3<{4RTR>D)p5g-)6cv0tj2aQ1sF6h?1PK}?LXh|u5hQBBs1ZQ| zf-L3{zOMcG{Tr`YiW#KySUFLCzkdLq3Gx6I!SYmu!mxI2LskAe*` zUJ9OzVcEPQ9$b~68bdp8m{0U{LJ#!4#Mr~8-wWZRyT%{#t<(qNaOv~WVdwr|qqkWu z3#WfBSoHctC-~v-Ex)pH@O}cFhuf0-H_(smg&H^O>d<&zM8Uh0d2((H!@xy%jkC_L z5BJr*kM7e$zhyt`RF41Zqz){Mg5NsvQt*(WGcL%x_+UkUDs>DAzOF)Yeo3!ZI~E4DuyXn93FbfW&K z2l4es{lfksV*Ke3A^hU|zZkD;ehkF%p`S(S8gaKG7Y4SzwYe#43-UR#^UQm)@zKwhwM*A=a$F_7XdGGmy5AKy{aE!ga5t}mG*dtK}x1F>C^;7b&ae#{dYS6}+2?dI_ldEoO!guE}6*Z1)} zS}T0={x9SqOE2#qqaS(Xp_ktueQh5*KE!WTxUZjiqnwW~s~>vu<_Uh&t{ZN7osjRD ztnJ?%=R7k$*v?GGiMU&D!*0=ajPdh(xMBM?`?0$@KEnn+*L(G?|BZUfJHF|58sksD z=qK~g+j+^#b0_*ySJb2LN7Oj@@agUQ6X}l+;QmPf11FWN8a z%_GlxzjWS~>p0|h74O}Zc6hwO=Z<;a)LZ)gZ>>E(p?=^vKG(nJl9!L~-K4%WocYuc z`SIC%UieEn@N2qjzbEs|b%pN*g}<(TeqTZUcfHm9Jz`!y$}>Oq`x5gz>hbfCrQic^ zY19kiqTW{d`5Yzny5f*_*styK{nGRUIO^mbhc^2w>A23wI)YxEUx`b-pi8`n9mr8H z;<{Y<$9kkcwDZ`}TaGLB3?xW@UGoEe%6{Zc&I{y&^P6<$fspcFDmT^zsrR#QZXR#o zuyc6|9d$r^)W6cfukCa~uPaYFFVe2`6LjV!4I;049YLH@?_i%lI)08L=MC}a?{1EJ z$9LHJ*gJ;i{xSn)UQh=Z4_`m!p%-=JllS$z#$Vdk^MP?lIxOEH_T#|i^JtC!Ew4xL zc_-=}$oWEEIL`1_=SkzeJ&%xA*Z9FM_bbe6UOuk>luN@IuM09ygw(gStedh<5kKO@ zNAFJu%euyKY6T*0Dc3H}d}>I&fUe^x&{6lOf1bb4FC15*hsTpwon+V9W_oi!`F(zn z4nEoeEQ(W)hSURCG+wSx2OnbN^qn`6{+!{19eqBf<63`m^Ztp)&m}=e9DH7l@1NlO z_wncHcjbr2;mkYFAGF_j`6y3+ST6(p{39)|$XjpKK`Z0joBnXz`Xe8hKlZ&WQDEQG zR0_U!Jmyt7_*M)n$@-L!4|!rd+z-dxhKj_l0PRPl8(!M@U)pVIJ$V*(trRm*#Hyb-?_b-+&O7^p1 zB1gOw^Ff~V4*sGz?CJAo+D)S)KH5Y4E}ZclbCBInGoL&T*WYXS=+>V`-AMd}kT2#< zLzxGRyTo6}dC__D;jA}(KIo%E4?Zt8-^(Dsyx!rWV}G|t^8HO(fBbxI0Y2QveN1e> z*$?d(?fdEGxnQRr>o@(PJ-M#%e1qR3Vg2bu|H>o}8ghN>YrDR>@zH&Cghu1}2{*o^b^wo`z&OG|^uJ`A8`FK7~{b@Mj z0-uJ+i_e}OciPePJo(i10G#VI^~&pu^pkv8*YQ0z)=%au%P!-Ue9)KoI$U19!Fat6 z`9)sv;k@8Du#T9wFDJi8z~e^Z{2r0G{2mSZNzW@se`r_V52|tU_tyQP%m>a>QGZ3= zdx^Yu-SbH?KV@cjvK<^HfQ1)&6VEd&yhz!(|V8wzjAn~#B%k1g*j+Wmcv zbw-XC=%{adoh=GpmGEi$K^{8zaUA?sPe0@u{XW08r1N;0`)5ACCUMOFMent7x#(%f z=Q_ULjk|IEwY@mD%+tdre&nH+#9eZo(lZd&Uqmkb z&^Y2pzmLv-3Hkemgi=5Gpzl{dv-99V10_AU%hGY4jt?M?bLoer`*HFSN`7fa`laJ5 zg3I5NEFza>-#$le$4Bbj_ZPPA4~U^XuS8s${#Mhk>A>MH^&zwW5$mznMR2BS^Jbn` zNPef1e%kNf!ob=Mg9{S-i<;!kd%)uHYmD2SSC)*GQgCI=*PvTFjr-kbhxFSMe*6CS zD0%;TDY!SLmji3J60D2y>K1hjd2CW2aGfXCX%RZ|r^komVe@46uZjQ7_1vJ#`iDMQ zry6(p&GBV?GJk3OI!@}*bY8FMi+kbBXIZ%QIe-*HGKt z8gX1-#5()r&#~^7f~RBHcrKm!!@7a}9Qd(bfmK5Zd3Tje_m(vHEw4 zVHoTc!zkF#K+1OlUU5{T9`fpg-%loTd=KmM1_zzj$=AQ#;=F#0>s;7)y~}kyjP=6n zV3J?nrvX0u{74v_8{09@O|=jQ^tqi3j~Y{>|f&Jl8`! zD^Gg7D97>CdE)sVulwu%v1i)jlFRnCagiVI6~#vUpqMWTj*MX`_zweRe_npxS21@L zveUTlMV~ih;ah7Qr{8Jw!uT`}IzDfBzs*1HqsEp-XFs6Ur*Yc#y>~xvKl!?_F+Oq} zx_Rm5rCSgF{d#wP6rUg1FUY+0HO_k88tn48hxb899A^x;Zh(z+9$!h^#n&l)a-87@ zkE`tW6OH34A06^?oP2yfx|Y}ee8#+o1^O>Z-pBIh+ibql^dS!L;q!|aM#1kBIqJ`n z_x1be)XR9@`y*@rO9oGjd+PrLqRMY$ZsZd<&o_BK3w|FT^#A1^D-Vbd<$QGN<9ye+PcDrv?J~aU zDz4WV93Mbz+P=;MaI8N+OZe|k80j$qI*FXkoctZy&#Tp2zGB+r-e z_>RYMzImwWlM+3ghaXSy&osd(_`blApDg>$daOL;wEeue_On^8`M!!YJJnb~BC}sg=o5cu`}a=Z$p+#BK5WhQx5TrqQ)S7s|A^%Gljz@hiT&#Y9sc}A z;FxEl;J%fqr}>UlyJxFVxqmakwfOmzBvl^<}>D#M`MlVBQ7- z%&G&~kNU%hb=6nn)2aFzZ2s!`Fc9h`&pa6{e)4zg-kALEy~Y_w+Hn^0;p)dck;gCX z;GOhC`wPFIpWn06PkDTYIJU$a`x73o>F;IbaW3p$Z1RlHrAfZ|yK=x`pU3mmhjj)Y z3+?$F{U^N>c)R&+<@i_T(so*X}&DH zuj{kfp84HvlV@G`sHeW7=dB0&-Kljj@A`q?b;0MxWSuFBv)=MR*pYml#Q8fP;~%u+ zEpd!DzaOx_N3!L4i}VZiBJoc83B6jMw&%jdXD$V|ZU&gEPcH*aAo?lBG zdhbj8A^m9wF8T7t(J6bp4))dcwk{+NzpgQKe9+&3mX17Tk}i)+NC))Up*iO4^8ODBz*4|e2AOz$T&ck{>!*nf1R3tuSw>o%pdIC zlH}dODELv5f3A~yedBd__5;WK$dZE|$>;Ki`H*>#`C)%2V1JMAi=RT2Vesl0n)`kY zEE<<9Psb;E-`51AK+<97I?)gO?gYoY#rAZ9gAbdW_pmGHFYc3;<0SjH`wOrJKX7c? z9&zd=pVSLES-(D<^iIP5u9v=84_eI^##fG$#-SJc2Ym3H64n9xyo%jFNxF}(S+2Bs ze>MI88hX?G=YEI#trx<6(w7fpOpce2uO0deWxiys<8s|a-tD?PxYy%u{RDwrkFlO* zo&UVhk9TCgu&xAco=^Jn>DnK->eaWO(R7V-zvbH>xsFfTSx0^A^b2Ku_2ttyE}E|K z?)cf`@4lLkvVQeE)OdHEboV2&URV#ZPWq~DyZaGj-Q33;U&m@({~C$#rZwq?%%O~NF4DU?4i$1q2v0mOAh{aTK^pzZQkhrGYP)bKy1XfdCuaX<8#6@ z7DxW@d8@)H@5^te?0(RUH#TVp{zzQ+`*6r@_q5eF*FdR9;uzQc1t0XW|K^1Ld?G)= zV5gW4>P~@wO5t>S@1!;cw$UPOK|0q&jIOZ&~?yA?EdeLp(he2CEFjMx6T{;H2k) z92d&3TWRZ(dVAXr_pkamg>lfoEXespeO$kZ_qKkQzZj?AM|M2uM;2dJoW6d(r|J`B z)JGJ2E{3H5zt4l;NBVjU&2#f9{iqk8eit3_omaB)@wq+ZIks=;INrT1>DTh)KOp8a z_f;kQ$0ht({m?fM>@zO?I~*FPzrFRl9Q32pkoV#7`U`Muq{Cj3`wo5YG3aeN?t{kG z+je~VX}`$$puV54G}aIJuh%)QYg}JA|6Xq1x9H+OUFd^;-bYJ$d*5snQ2w|?4mjQj`tV`?h`%WrN8%h8;zjsTCy>hnIq$pcfgKmj zcWl0S@1t}4U3rIQIq!kvcjGXxaD0aS>L=@s`7Qg?=#bO%m3k@1c`WHtj`NxQ{q0Xy z{>~g>*DdR36dXRx=FLS%oX41c950<#fDgYr`Jop0!=M^`EVfq*K5{KaF-*qS`ne_E z>|b`j^(#MLvp;#(16Th0Q;zfPyq_ZK#(TQxXI4M?G|ZCA>eu>+^Y?@hC1Pcu9R(xXvs1|J(c?3&x+n%fk9@_5FA7XQ2Awil6T{pX!-6pkp5R z=9TQn{-k++nfq6o<{NRV4|$UIX@`2WziBwX=XrdL9nZfRh|NWZoq1!ySKj=7m=j{$ z9)F@9__Jx0-Y#tH&x(w1H*ej%wOcP(zYdw+JWsoI)vc>`>uR9O_h;QtnPTS~VY~AU z_hn*}_h+W%ALpOgcpiFZa(tob^-0!G^36_g`g@wek;nf`=sXYA*Ix#@e~bqZpEMkK zlkpIT-1zNmzBmrd7x6c#{;a(D^4Z&T89(Cd;@$m0w+_1VAkR9GXZ?hpEI!@Ob(T=} zbHBxPcHEB5>#)Z0K2KaHexu^^t=GN1-um>*{R}*o_e2DFeE_v!ngVLVllk_}(NPg&% zcpmw@{3-;A9(r@!=ywrFzq0Z{zOl1yy>b5u9Cf&dhyM12&gY=H{&N4M z?b42>Yn*(Y_6K@({#@hfJ09@SdrPm*OQ-R6{ccyj)A4A1?fTcQy!NMEyj_3Vm2cO7 zE#Iy`?aFI^UTAo``D<6c)A`o^ZM=OE{+RaIQ+qNefIa2 zf3QP80XvN|o-7EvjGz7>PxyT2HO=D$9OHCn3LW>`-RtS!6w{l3XAgGXzZ8F?V1l`h zfQ^0-YJW&4boE0c`vJE`{A&keJi-8wdD|M}EHaMF!$5%;4|`v46yMj2`LXJa&EutU z$#^Ed8)i0^-Zou3<$=LRJmdL)kd=Hrw3rhUS`h$qcH{TNJe=Qr4Sx|@Oc z>}4P}K;#p2Y%=b6ypwU1bj=6675y$fv@_84(a-*Zoz9PrqZR!{>V@lowySaQVe=iI zlD`Na{G^-@=Jk*AdHFldNBeyRndesRwJYDMT`l*_A$Gmv^Q_#DX}+wwbLl~Seb79w zi;d%r{T%jp_Pxrb&A(qJ`^gUoKV+Ti_ep4+{Cxfo{nX=vavWf%=zHFDp7P+Zv$Z_` zBjc6h#Bq@Q$iMHrZ)?1-DNjCJdCDUv^CI$~VCb3WWyr~2af zU9Lx2>nr0Qh!86}{2FKw`TfihcKrvG^Q4P+^U>*gV7+x(Z&zRAJmrNxZ@K>S{X>_> zzsufuzX$2Q-xE)xV+Du)xZcG3%>qMtr@1a{o)QdBh_4Ta$$Q$PVC0*d*OATgMh`aP z_`O1W_`V$C7Dhq+Xsf5WzqFa|_of-7QZ-uD;7N>JM$`m4d>7_S9a z#;_h-9m65Pw_-RnSQ5iw!F4fg_f?7Ha>#0KW%1B01j!Y{y@z4|+77XFlM3e98x`ACzz9eAK5$#wYbldR{+$eAMgf zZdTmu7<%;Olai`(b zOFL{Yn_aPzg@(*$6p~EihzwTYu&%E|8 zOZc@N9f$5`{(SVj_U9k#&MWoj)$=Eh9vO$Mi(QX%+x78(q#*yA41VMdpPv6{_(7Zy z4m=TyxsEno_PlB&fDg7 zaci2loF5ox?w5V*Eaz9+Ja1JWd{|KCZYuHYmy5f@h=@;YcE!;P5w8wszziIJPzMEIO zo-vQi3-NAVo7a)7dS~8r9yQ)-UO)e#=HqkVTVD4G14}1tzRtmUtmg;mgu1_7oO%J7 zkF0#Q+uzD~AkH71)mT^CjhpgPFXOlCk6q7Yei*l|6UxbcEk}Es?c6lG1q|5u^NC(vMx%{JE@=JK%dh~|D12K$(rxF}=_yKxku7`q7Iq;+Zg@AYS zW9uVryjcgm54XIZal|9=&-{*;fzm$bIp!hyF@LZ%)6I2l(U0r?_I}6)-*10q;|IjX z`PHnaxPI!faO;ctScX1 zmOa`99CnetZa*c44gYrc(0%V!_R+a+_O_kJFR*d^!$29||4ZWdy@A*yuJbq0a2bcI zo@Kv|U*ZETF71zuBP&kU(+eH?=3A%ezWjDdze|sx2Kk z+{#(FWnS=n6t=6sW9@t=hEZ^q+JcQU5)$f`RFeDtS{8j zpOg0kflt$M{=f9Ajd`Q{k-scC-+a3LR;#zS`(6I!@w-(y-#B#Xjq63IBji_(LlGQu z-F({o`SQT}Es|F~E*u{~9v1-Ovwp2T{`kKbmV)OEB%iMz?h+ozpR5tp0)Z22Xp=q zm&^ZwkXJeHIBs$rTz>oFNu#IP(RMX1{gHY)N$-s~JLMnpamlakx{dQpou90J=|_<` zwH@ebSAMr&**FM$YdkxtSLQ*#Z&Ty2i%-`3H@P2g<$a(S2g>t%ed3#bZ_i(K{Or%m zujLt+q|3a#5c@F>G9PkW_}(L4Uuq>kMfJP*rGI+7G{5d2$as-;h;iz8NGH_&0~s$G z|G9VCbr-PRxR5X2H4SxfTdvf7;d?4%Q*7tr+v*&ys!MF9~#mR(lt&xp|2nGgZ69e$H?!4S^Q~szH)cN z4)|Kdd7i@SlEitQl{Vge;UDa$#YcZ#{xk1BdF_7|PJMpp|Nip8YwUR8eVy3&ySlIc zdV>!8pENkWr(!(hBb~o5q3L&d^sI~Zm4c^5zqHTuCT)*&ZSS4mu>PGM!&2}u1EoIO zZ}O1v-IVa@_oB;w$n*R6`(yqv#wC5~V%TlaWnF@gbt36`##4_6^ISBatV7B(pPJ5m zYC7#{x*k9FV|=jraOU^%Zz6A{pnN69$ycAn*7>Zw_H{qWy~6hk4<`xt_{-L%!aC@;*}N2acI4^HbDc@Z0q^+TwR8K<|w>w7=w<34#k9sR^%N8;R{Y5Rx=pH{E8 zYkeBm>pkm?`%%tk()E6n@>*|S;q>o!KXlK_tbX{3kMvjLsN=N$EPl#szM?qwXjoK_ z=GXdMIP)m;;NsK$dF9A=>UZ7aNWEEnS^d;QNd9%Vxb3n(%devP$e#sifBsGB{$=T5 zf0jPY$G9m69DCUJWsH;7^T~uCdeZ7f+5w-$J7rhbe_!J=u3EBgF;3u!bCjT`KhE>(9Usxo;-IlpPd>X=(*%DyY76$oNsQ4m*VqKNnaK7m4aU?{$_f43%L!6-1ADV znLc>sy7{wp)I6Sz`f8@zaprm>q3{0WqI9{=N&S+Jy2kH?W5e%QVf)!{-N#!`i{~Ev z*8$U?v&ok0+E-?k|>)#&y(ps{6HxKX$EMU!)!QCvo_-)bL^B z`yqgXk95NR(&xL5(3^C`|F-LF9(FVJs`J(g{&cL*)oYqKf{OP)5Bs|3XY3m z7|cgdfpymnw>N?jr>m7N-CUNAQdF`$Hm|XdUAKFieyXvG!KlJyP zUHFL)udm%?a*U01dmS&@{JZz)XT122e1JY&>gx+TwC94n4_jV`1fP$NxMV+Z#=Yy( zM!t&hNj;PU%%bypDDF>1#!vkNU@7>|Nq}4KN3=f5OS+cJgWKcf#&OMy5L4dm1M z5hwj{#gV69`Y-tK|x+(Vyqv8BFp%?r@eroPDeJQ+ zKlS>cOP{O0ee$GhJ){F-93+(SfKJ@UC+Vk)eKv2|d_U&hIPX`lRAd@{aH&R-oT?DWPu4LdsSR&m$(LqFI5th!%!KY zcR8;RXWF>ye&B!lhh1O)Vjw<0TW!}BsmCRUetf=hGyX=wedhZutm{K!edS zzWXMlfc}20ZvDMDhEZ^tf!MybkDZ^Slix+h{QFUdDZrQ z>uoze{j~2||1b~ayvf252lf1=YR8rH6z{>qN6%ADpZm1U2OvI+YE}>R`usVrYS)EM z@nz}Je)LAXGM~~O>43K-^#h2{ts`u{)+KPKv35PXVmM$Fe9J&=E;`oppT&G(Ao-!U z8Ml1UBmDxO#ASb$pFX)P`ftYAc%D}GJNf8Y`eeV3rwGpTnm<2d_hbJw5SxpRy#L={ z8ucslMt@v#Qs2T+HV@?cjk5Q%#1GIB$L|t;=*LIo69TzvjYdY*dF_3g7O$Dv4m+mUOx9<+QOzZt(CcbQk{ zk$f1RC(ZgO>5?Dgp!CsJ>4FUONi^B-)N$n_hiR-Dfo$^Ka$Y@8pCo>n_>0I zIE&_2^D|F*={`Q_xoW2M?`6~My!^HY?}Yz8KS(EJe1tCg>}{>z{QhU}7%v3}Wzahj zhtDtVr^X?7{$!bN^IlGqcO3DrTZz4bh1B0Fgxy)OohW#9V(-WVKRt$}#E){YFvcsv zS7TTWu8UzU_-+jA!R;{|lIR;6>w{nX-fBbK9|ix6p^0S*;wuN+#4rqSKPBeRUJ1_Y zh;kgD&vpI7l|RVgvqtCxK5QFXzuUynp6{f|Q;+t;Mb~;X4*z|6ZjS5G{GQk2kSYat z7@YiCkH*QTA^2YC<9l~9-nW|jpIrIT{j9%s#shi3Cs|(ru}SC~zgFd-fAjr~rtY!1 z>eENp{$$~u(vxK;tG}=OfF0gf`p380>p+hgNc(x<_J6n6YkvIKE#(lWi=L*}r!UP< zZ6_(<7foR#FiH}uoaK!Bfq!q(Z1X8(vf#QqTT)4mTZ3|#aqzuO&$G4{sYpl zGg4acLmt-+u<<^Dm%Y}`H}Vs@_#l^N zH%~v~>O`D*>}h{_-`30rk)if zv3wxUTz4?u62EIljC^fxS%ysN|JuPkSZ$%&U^7@}kFZ^RappPH)=Y)R}ho2Jfq(127b(PD_bME-y z`lFoDpRzZ;EuyeO_)d)-&l;g7FQsqf&V?m4b&lHUz=(bM$#?4;2V ziR>RNIQ%^H#f^0U_{k0&?$GZqF zqt0NqM>c zyZTwrt=g0NrQKHacEUfNFYZcz*|E}4~9ycsA5F7b-{SCZmetr>@hZFw)i(x6)6hrep!QRkQ3C0^J_4J2b+9!nH zWA|+Ml||3$r#?WA6Z0l<>d{cjy~uOD?FVr_&F`1Is^K@}Bp&OHe^1Oo=l9*d{)GPY zD--<*K9qS9IOi5_2nyYjBObBzPeQ{gwp4gM`* z{Jaibu>YAj59MHEh92^5Z^jq%CXF9{pC9Wr`)lRT7ZN+D3q-(voOdCfqg4H{pLLq0 zmvt@Wvhu_{OMht3r7ur>F1b$ok)V*1G7mOTW7i<=Avy(#5;^*gQYC zg83oWS;XbSciRv9?ma)xJP<=Or_B2aux&IrA?y!5xUpVFZ(fG(1VS?izWH7e>g5V@8|spFEMtcoW#Me{W)Io`|4+)(f7a5#`&R7 z14hBwPax_rkT~)-(ERQXe~=exSL5yGDNWy>7uj+8mx0)bkNvX6rC&w;&~~$MssDd2 zwtih|AU2I3^*P&*{SH1^@5S-)_cp!g`+Itu-xsgXu8-eGN4?;~^=|&P7GLyUyAF)~ zyd6){iD&6^)gd%nz4kdqtTVii(#0?9%heBklAeW2eY!q1?u)NedH3lrO85EGUv!`U zK7V}tKKcP)*m9lA8h70<>j3qm`!!B}A3blsk1tIx*Y~vb-Y1`jZu8lEeC&FkUv2*_ z?-OD?68gqX&Qr|edFc!cuD4mer^e);A=6z zdA`g*Y`*=?V5iG`AkI$U)I-SpZml@t>eiS0IvVPUU+1*C-L(=_?Hv zH~l;-$v6DR_@DVZW%qUH;bB_wIPMw}0&BZ!qMq`FmBYZ|^tn>Bs(c z`h!?k-Tgi~x`T7O=@c-(#2 z(e}7=?AeH?6kHkO<=}q}#FmdQ-@ItlZ5DsK{f*;ijXU4lde6V?_c`|(h>hoq`< zKa2R8=69MN86W*=XWX+kYI;jj7LK6wwIq(hIy zeSGla=m|F76Ji(!pHA@05`1-nKW-rXOM_|SPPumC=XlBS>@9uJ+ipIjpNu~bOv__d zyjs8Jm;L$bq)}%+zoZ`M*LYu!8{^Y)cM|ulm#vO>yK=s9ap~20V7>s;^tj~G_@!Rf z!$8_^(m%vC(5|oh^6H~=oPGU1I^^`Yb`s~fr|qxg{;9wG)Okpo-!eap@5qPj{l9lk zY`))D(|z$3)ua8*8h`4~I$qHIoUbl>G7qkP%r9RaeRRg*gN)x=LAed9s@bzLBj(ofwl<3b#Z z%=fNWB5KIoJDc(1XvH*i~l3$JGOv>fS0p-+#bvo7RuG3^%S@bx$D8t2~di*|}YU*27GKeja_?&!&xwPmi`wK26WUDd&Uj%4@yU2WX!oun>IA$K}V{{rzGCDNngB z?mzx%XC7wdmw5;Dtvhl&q3<;(=N~_*znwUGQ_uSMpf0!k{ta|#_mnf-e4tCd^&URZ zCEr`$>(&RljPc#-QwW`UGnX4rduEAlJAoq zKF}rKY7Zail5gh^xb1>2`L6cxflj`x`6T;Y^9g#m9^ShEenr6}F)RgtGcc<^42;Za z4S&EtQ05hnUyu2yjq8*cmIC`+X*u9?rSMngsVMHttB>x|pEqyq`029Su0Hsk7H3*q z93TChZ*Tb7i8$d`T0B|(?Zm6?X2m1$ag#b zLEiPfg&xPOd};np;~bBo5Pr0iAKEJ#59J6U&-eUJxd9m8D-#C8FUGn`JlX=k{TGer zCcvl1pSW-S=lPvh=*^p_UH_-C{%e02FQM+2xXWM4<$-DQSK8q`W}aGs)CVZ9AHh%V zANBRXH2?C%r~Rb9qc5}j;ZtK+3O*dea&lf;X*w^Jc6{=#^I4aiKEHR#F;9^9jc*Y; z^ldcpVMCs=>AV2P$5p?eFSy*wGk(|kqDyZPKOxUL*!EI8KD;lzjE`^MiV6zX)D5|I!cI>uXpfzO4MY;)njywYI)S#xM+CoZxd3 z{F@u?_iEP}SS0=;^CK%xZ8wWw_PgTN`m%7TFDuVk{q6e0`H%I9erx|gFOq-iNrOJW zi_+!1a{1kA{@U@QH}WOplzHX2eDNQ4UfKOeY4d(|u=Mjf-8trch=SUCR67anZB%x%z$Qcck+;iue1{uI>lD6ZiYN?9gxO zM}A!6QzUO(uk-wFL>N?){dO%m{z(5liiRI~`FMU^l)rJkl;e^oFU%+Xl(YP!ZLp9QsC7T#%n?b@S1ozg>nfWCT38;2~pEI(zxZ(d6KdHnUo;iF6a(jU-$ zIOy^?gShlh>Mfe5qWnHT=}(b<-#GLp9sb?&tHyOv`aO_fp8Dxae|`RN-F@Vf?){c; z9JAzn_FVG>c_9BBai36;I&|rk^1e9qyvvKzU)Ono9#`oH^{2^eevL!FFP@@wj^pr4 z?D5~h$?xsj_wap)?80d)asV_9g%X*X0RZp@Xc}&AQB@aFFIq<%+>$9Wd>NM`N>!WwtepjFSe8HFh zfkba-f6*QH=5a5YkAYMNY3nll^wkOJzV9Kr{r3HXgEc>S>q1`V!*#X`r{nvc=Ii#2 zdT*v<-hBON`@TkAFX!>rr9Z%Nl{vnOVdJ_FaBPy#g}eMOI!`;z4?kUgN&oZy?wwDM zq_^vTn!m84^^-p@y%oMr95=&mr|#!;%-?q zk$KCwFfQ)(*T2q4J5rB}&i)46a{WH=;pXpmj#+Nchfj!MDL6fb<>12xV&l5~C50E2 z)BaNL`+sHaf7C!}Z()K%4xh81u-73d2OQ_|e7~Wl)1Ic2pZ$d7>u-PP$NryazRqFu zVDHyJo-E$TOBPPO%p2n-WPe}TrM-zm?D$VMP>#Q*Yd>W_j$>YG@`d*T?5^^*;&)d6 z?FLHy_b2o}CG@QP742ty%(s3I4(U2B((k;od7hH)(?fo(ubZdF`hoSrmnU04(dPQm z{46DKS48)d|AJ%DK*;-_W@BgYP9LpWH9V{Y_S!)JsTxoz_pi{9c{U z0r}|KpXuA$@qLkj*eIvReb<<;9PAduN>T^aqz-DqD`I**cy$bi1bfGDXs}-lhXrql z;qc&1F&vT9&B(ZJ!eCTzNK79cyv;ytI=>pHpIHCM4@mmf5!aT-X?*UJ=h=2Vv-o&n;>`;;=9INhd_Vd>)bX{IGxW+sJE{{lG~vynLbOr&v89f1kYB9>;M0%R1H9A$7iick+5${&}Ci?zO82 zaW&^b=hg1-V29V~UH2VGJw86t-+7BYFS2^ zbn3b^^}TFmBR|L!>8MK_Kfl5B7?y)$68VHq7N8*x?^NjtS8aL{7LBy%)zB=}eGvtftaq&xe z#(#*q&L;gV$}h)fAl@$w|6F--(S74ngpU02y)ErP`bP-8{9W5eLt5cQD7@O1x?FNaoR3?`ipJRbI{~m;O%o=k?RYSESA%UzDHgk6nKo-y2`9zAqjq z>j?eb?Y`#gaEB(itRv>LKVVwj%lh(-7vt35+n;0N#D4VCDqf#G>iNX&uxg$=P2lfu zv-|Pe44x-H)YGZ`KmE1GA5rpLoBcM&JvyH< z{(-VS$oO3Ty8332{sylRs~$v)*3! z^*rS~mk@q**H=4Ea{c4_({J!fWy;*O}b6%J=ZoS=~*H0f`Z~Le9`~2|HwY-UxO_g3gnUOujeS|9bKL6;vc z{=VkZ`Rr|6j*qWSe01(N`r^Is^s{I_+Lfa`p|($Yt5EC9!f8kIkxr=lJB`DRuP(M$ zI_sV98^wD(aJ}c3KW=``1=p|enf3;|KiM&crC?4B-E@u{VcziqpM3v>mZQEd%zvGU z`xV#zAT5uq4?Z_QTMu_~_3-$2;XG_2hv?#s~TH&2w4ry`ASgaY=vrn}49@ z1AgT>-^=1F8lN5y$n!Z0-WSQ^zE1tFT`Tp#xB!c+k21a@^9yqAtbg>E_BBp=UP$?^ zA%535Ag<=;>D+N8{l0&6A>Z#wp)B3VV6q zms-@GkDq>Y--nw1{d=DGp|XyOLS1K_#s``|osMs?=_@)O{mnnv@;li4?eFpJlzp9d z>di~nd|5d4yP$7>=c8vG=lbM)bnaJAe%yZl@ZK1f0(*Z)IXLnmd~Z<+)_eu98b1$% zco!x7-$?kE#IPJ#J?Z_-1N1y(t{H)V~^gKr=^T6@^`EWab?RwsL z4+-dLdC}i9USr;uh~FQ(LA^K8_rAZP{Jm|D`N*?hbLBBn?J6+rN!ssXWm?JAm$@0J{?D=`Lp!te(jGB z*K%2SUOnW?(l^li8Ao5h!BF?igC4hmM%Vrgbe#F?3&{O-p5t?!H|?M9*Lb`9Mdh>X zQ=jH5ic^md7S*TueR@fE@pD`!OvZ6o7yzd6yY|akug0lQLfUPmp7Q9Ieu7`#=T1MQ zp58p}m3H74?Q5v{vT!XAd@$?}vf}FRepg=8#?8mC;~<}=XW^97FiS40U+dF&mV8#f z)+h17P^Z#gxt?e`@uK-?m)~c%C|&zOc|zUaE>699p|m#;>xOYiKeOtko&6u}5f-uQ z@+(U|tDk=4g;HO4Jhwa^kol4O9Zk=|edD3!$k&&2j{Eh`Hootd_Fer&{gnD-9;t`W z$CsDxEJWmv8B}j0gO_Jb+Kj zX`J>5ef^r=E>3%Sp|m%c#*Ohw|K<2;y2dFFI1tBK`j-|L`E-05Cm*4&KQCSLX`FU6 z^zjW8y7ptB;X0q4!UtNMS^jh?ZmkD){pX;KegKwbi-}v5d{k)id4>;dTruj%8 zS+d^)%ip=n8V}vC^GaOvW#N?5FiWnTe&6-SJp28=va9ovg~Kmdzu?z(&HcFF=7riGIe#*5=*YX;t9Swba znx2Jgy~MNR23kM;?lc@|ac23`>G-KH%dYOHoQ9e&3)k|*wH)br;0y75jd_uI8QW zVOjUGpYnv%LtMkGe$7w3Rk=>d_q84!Z&957X2GI*HGez$Sx+neVxKRZIt0%VhJnPX zU)$9<`3ST6$w!#RPd__xe~Px#E>8dRLTQid8`p1*^L$LgR^`*=^6KvmKIs?q7sa#k zuJwVxoqE#tw0@2EHovyl-?)yqlXyGh*57&2_B)vuIWMVK+bfDwj}K~nv}y!p9wxPi?Zm`!4{m)xJ(|%D-(>sm(>}1i=&;825huG^^#4kUz8Q1;t`(?zV`R(_&QA|g_ z#<_p~)b95D{_+@x!LJkiZwdb5Ikx{*F${wf6a1V6zcImoY9Qn7BxF9|KQ`jbhnx@X zjH|C6eRNly_J(~KU%PqL{%L)>ztcGFNxi=O7NvK3JhVQaKb;&O=EnzR-n4%&MBJCB zR_R&!m3m$E0D1X7Zs4yuxv?&0=`YgnvJd~bKHj^)uG^2quoV2wz^s0}k19N^;V=06 zvc5ZEZ~c1^H}`jhQ2@Hsf65tdKF}rKdJiAylJBkWb?XCN@~!dkfiC$@d7oP!=#uYI z4AwTBOM$+z(7;ZOS6aS&e&-oS`qycg z=C7+B+vSJ364LR$SU% z7QgIw)rr=paVhVbXGQv3u`m7M{)*QpT>eP@JpJJJ`Q@X#^!oAuI$A>B8t%)Bt}_>&rWgF|2bAj!aXCKi=%*gq%Y*yk z?oB%UyX9An{R;ie3yZ`j^H2R!-WR8994N1$)K^4K>*-6pzwRIO<+~_7E6F2bsu(7eXyJ6r>?Iwyl5VM{D@cEVO&`-O^$ix`J=?KzkkOx zJa1hJPBai3`myQ!Yh3C9zr>5^<+xrE`w<1#CjQuQE(iDi%U-AP@!cQumjlaRiTRO_ zW_=nj1(3t$((9umPu8B+r}2h<=FMeC`w6?`2bAN={Jtr^eia61B=C~tdX~MeRoZ-A zi{m($A>x<6H-Y@fJP;qOFfG14_iVmD=QYVZVEh<=Y^*E2F6wdb){~u2u6knqfCKZ3 z_+W*;x?()&&s$$yk63rE{Rs534!`&hd)>>{W8-&hK*yFxAN;d=woWMXz=X_7oczGack+mB;tj$0G_9|_L<<%y5>;ZK@g@})uM-Dh9+ zGk!v?mvlneFUJ{l>c#tlBwx|^zgD&LN$aN`AKldtzyDEd=mWk@-HsdRIBwiN#>3!% zUo`3yd~Zwmpcj1qVQ_4W^M4!r>cI)<4U~tm-63H{ICyw$31TIM?U&%`%7_u zS{x4vy{>Wa`SUTAr^^-obAcnSrxM)e$F4iH2mfUK5ho-cp{8qG^ZEM8M+m-&L+p4@ zj$s(Q^b_zt3U-fS80=)|GJ4Kh!7?;k!EZu$Gpq$8i25Bo>vS?7uRdE6jztkVxC#}lASKYim& z{fyhbzc5O!L)r5l>Vco+2b4JF^}MHlhdteVJWv$p`xj+g(!Tab;^33}F&z*3e>bYR z&Np6W$Nx{?LRL#b?YB5SDF-tQ#KySxH8?nqjA1D_K8EGseKD-Wa`;_w$VEXdIM+aI z(!VU+A5#LWt9`VuZ!7krHorb|XmjXt?2?pY`@-6oG zj`!WT>KA+${?+Cm{$N91dlRD0v9aE1?+wquk1*i-KW)FA_n>da&Ai0?rd%tqp-<>d z;+|#Z8Tz>n5Z^hOe+Q^}_~j&jSH`duEHe-r>&w@Ff3m*qW4Xd}j5_x~5zMHui^IK4hiw{Ef^9#uIp>zkm4X2VqfvC`VXS zzQNzEo8G7gj!PHz{_%rres}ZU&3m^ldiS_}YtQd*Ut@pobo)K*{UAKwn($NXJ;UU@ zDhi&zyOC$mU3qDRe$gwfUFh@4bDh)u?cgujv)QhWpYbvuE*$3*JFC38_~3t*o?)wO zekC9DYdXe7>a*k2@I#M_)F5hqb|0b$13vG{_{Tq(UBA%hs>62bEKMKu z^12zv4gS06Jg|y7r(-;v(H{- z>rmntpWReH#|!gR#zYNzt!UnnN7fgwD+8Bw*pJLd_QTH6=K3_~Cm2Y6 zK*Zml@ucMo{>gs$iR+4*-VXkcWPe*!@9A@G{n+cAy|X{g6BqWI$jd<4Z_DxW`44|3 zpT;SdMjt5a$TyQZ;BkS(G2`yp*M1-2qGR3IHL}+^A&-xRR&Gn&@-shx*q^4sJo{hB z-;m4$#vyUUVc+x9xDP}7EBm33A^Yt}OzX-K`A6@gM;XGg9d6p~Rv_qJt&n4d~ zKjiZ4hroBvF3sn+a(s*0_r(eNBgPK&U3$OWFYx>YIFA3)`XQfod@1|kKaVqE&))yg zIInTzjk=~Cd0YxT`uLRN<%&o8Bae4UCuDy6(qEkK!tQq0+V8*rEruE|Z9XrS^#H#m zPX8r6dRh87vmeJ7l+$`NPCmeBc7}e_FZrdvq^IeZ{60QS?`>TAop)Xjwz};4iz@29 zb?O^Gw#RE0M)CLftgAHm){Oa#e#*Bx4>LCG=BHk8@ree6D!{I?v~IoyhvscHqyOGLB!- zkL`yqNk7hIf2;d-%Ddvj_@ZC>0XrH;CE$KQY%*@*zWkv-?{NkBXkX%4_F-pzMjqMk zi-Y~XJfUCOk$TeNpP6w!%>GcEpTiFG%zmF==*LDrsVB{^wDWM(1^Tg(ueYxs@O;r1 zC;G9GkKgAKm*=^XPttL{n{v#r3(EOCH)H)_f2->R<$ZCZ9~=2#N8>!70A0qzIMV8% z$oeYvpPP{v_P3fB#z8&4{GcBj`IsMxXXS@+`SRqWL+*PSd0_vS5>4T2KHlr4?Pw(&lC8e z$ANObc+iiHd_10zxLjAH{uI`t5;SX`mr@vo7KQ_%rdB8M3r(bXTZ%n?w z&^YC_J{Jy6?|TY=qu|whA%62*pTV&e(F6V+WBJbM%VVE@0-nE<9lwM2v)32r?+ZK% zPK#kF_=thzN5rmtwAxQOKo@rzCW(F#yCkF^~mQHWgI$A;Qui5iTMTI$$BlSkA48^ah7qQpZC4+Jt&Nq z^uCA-@$o)H3!`A)WF7d)XRtn$llzJ)P3K!h^U~k^$T#akkIUSo4td|S#8HQx%m?zI z&!etO@=g1?PWl5+%hy#&zIa?JapbF=c#xk@C;LYWqrhG-Gxw|gW^kUg!j01U; zIP&9)N9LP#+RC_75A3(2Crh4oG=!Xek4_jIv5(!a*>xlez8vr8N=?t3XnEpU_I1Bc z&PUhsSvd9hAmpFg+r}H1ILVi#w`f200?Ks^dYEUs|LEI17mXu}U&g8HSk@Q$vh)@0 zr(QsrXW+EopZSI#t*j3^57gs>;Ma9cobkKnwYJkL4mo|jgZJ_AxaG?`c7DEP*+sst zO!iZ>ug@pmQS-U>kfQHaP0RVzW~S6 zrFi|&^60nMBTETiIoR<;0m`?)BmaUN&Ne&m65OuFXFgAepLIlg+_Tg4%l zwm!k$m;cQk7cjrBc?CT`eXG45V__8BInm;OjOpfk+oZo4FU5SY!}q)dS3_I4`Fmcx zPYEA+-U0r;_Cwn{D~acVB);#y#eR?CqGR4LACez&HRFwZXnVw2-@BUU08p=Z9sqh^ zzX7A*#{x&bvhvufUiu|r!w>qkr9ZHTt(9@_gnsyokM_G&yz;+R-@286QF1(6+I;@x zq9guJ`yu_Oen94%;|zaEhsVTyJ z@Sk~oBj2EZ!Qh05V@-lT6hrg7>xmrkj}1eels40cEVa)AkdL_LgI(Csu)qC6o;ZH+ zPv+Z&+q_1>iPtsqSVUgy*ZBaBt=)0{bv$m3@guIsh52Vc$C0?^Psxg)M83qk*Tg455u{8@hTIdLAR@VR*(-M7xjdVv4Ucqw?$)CsO%Z*bHL z<0gc>tPju`cUnBH%H`D$K3`sZbXUHhCoMkgZ#l1I+@xdO>0~~sSNo;&nT12XmHFC^ zT%LKxxaz@(>abv!U_>w{7#$oKj1SHZCIlA*6NB@D$-#xecEQEL4#A?}MZwj<>|k}U zTd*$JGuR>AI|#$qnzm0c#I!JceK0LNIG7zC63hwT9PAk$6)X(j9$XN+C3|?y5%Y$2kXQNvU?bi7J zP0`9AEUh$sD-FIfsFZ#bj47=OCYSCAb}HQ!%rF!`p)Aldj8~iZ3H&`-ZZ7{#I z*2MB#ga6jxzYoqT{odez2rexBDOhUSiqhl3veJ{ms?uMAC8fUxt4q%W50o|r8%qBQ zLi5tf5#=cCDVM`(<$Ab7c}O_BJS^O^JR;nuJT^S2JT5${+!G#Ko*14~o)Ru7?-VX6 zza(5%-X**y+$H>WxNEqo{4&#Khj*B^s=Qmcro4N&yl3}tZgux?nSo19TWs2ro;|_` z%C8I`Ex#&!*0cx8bHhsIwP8=?b>Za7>%*CqgTg&4M}=pac5db9@Pf)a!t*M}g%_H3 zapm}MQRRg2ipq)M(#k2}vdV&RMdkExRpkTW1C_JFCn{%$&ziQW^09D4_2Z_U7f!2Q z5YDN7F5JI*ad=SmlJM~A!f;;oOW}OePO5%6Jfr%R@T}_phUZql8lG3Z!t{MDyx6pP z)o+B0s^1KkRIdq_SHB&us9qPYtbQk4Q@t^~tGX;)UHyKzq56ZcQoGr}o5N?SE5e@I zt>KW`kHTrSRpAb`pM*Qrej3iM{Vd$Gc6Yc>?Vj+!+AqVyYxjopOgpyrn{Ywxx8a$l zEvT(C?f&pw(-zbo43|!LFkCX>j|TqHz=y)OhYuOJK0GE|Z{Q>0;@Y20-=EF@PlPLK zPlfAh8^R;P4F>;v_(1LN;riM}llzS(_Zv;_H=5jUG`Zhsa=$TrrWQsc>QS_VX(Q^T zXcyB))XULMrj4jqqS>a6s8>y^nN~M#h-t&3F{X{E50B=UHljW%I;cJ-y2G?prcE9) zCR%6U1E#GtZ6AZLuTPFvn|7CJD@n!7;;v$e#l3nE5eUPn}&SU!2gOC zhv!B^hMsHS#|-|7sAuRW3_L%YIrLM}PD4K(%^v#MXwRV+Mf(i>@94mx{}UZL^h?p% zL%$kbG4$)vWkbJdc&~~U553C3t4;e>v~=jV4E#y7)3BdKhnx20@MqB%!n>k9huszJ zZ`#ZWzcBbO4Ev;FB?2Y2cz^PnrM!65U}M;G$t04E(=nwP_27{nfOm zqqU|j9QKT9e~TV4ZQ-!LoA!_BQPUOfzL(HnznG*Cexme!r{*w z_%G9f(vaanY2mQ2G-7yY{twOnk%5tcrBcuElKH=6{x2I?Hn38fHoRi~ubBU<238HM zm3A0jGym7j|8>)bly(_D#K57Y*~5pL|A(6YhZ#7`z~QAmhYvUZ4>$jhFmQx{BTM@X zA8Gy{Y5pH&;3xw}mku00+WbG-{6EIPF$Rt;9Xfoh`G2hWf1GLKP3tMm8{T8!gwhqJ zEgUwnG=KO+^Z&&7|3$+lmlh14S~}CTvxd(sT`+vR(!$}}mo6OsqS6}E)(+pf^z882 zrFFySl-3V_W$Dr3uPSXAzE^3JY2k?dN(Y&?Z?IqK^}*{(vq!wX)HC9M(oQ1|D$N~n zNNN8OZ#I2zHhqVd-X6TAbc|`o1#c~#5FA!|uW27J?X=+V(#fWs793IfsA(Sy-d1{} zX$J>Kmfm985y8==3rEZ=ojKyz(gh>lUAk+;iKVq8PA=Us;*`=8BTg+nI^vAdni20W zJz(1U5&u=Hj6AnA!nB@|pD7(~+8ooq7JR1k&ET`814n+=;GZpBWB&iPX$OtG$l#wd z?Y~Xme;fEerd?V(W8_y#Cyl(kbf#&Gd%jvacjVVgmyNu#G;`FIr5l1POE(2qm8Oll z%KU$o`Ty$DGb67qEjMkMX^TzUY1Fq2{FcF&82S?P{}S{6x6S|GHvfOy{C}PK|2p&k zb>{!;&HvY%|F1XyFDOsUaM{T3nE$_H{{N2YyV3lAqxt_v^ZzpQ z|1$IcGV}jU=Kq__|2LWczgt>w+H%tto3?D^_YD3$gMZK9-!u5~(i5hwH*L9Ti%nZL z^84oh@0Z~p&5X{Bk)O~e0-N8VgoF>*!eF4LBqw#>A}BY#-B!?fk5Ei-NL$Xkrg zTa3A}BUhFlFm1VM%S>B5^0v}C)0UgI%(TTLe^lCF z+7qU&H*L9T%S>B5@^+K++fB|_8Mw;8pOkhO_0!Utkv}y&KQ%l*H9U8g)|$55v}L9( z9(i|Z?x=f82afth>CjQXDqRt-G40;cyixZWcwgz*QTG{me`#gU{bsEHP+BQVnJJv(YssWLh!j~QJr?=X6Jd7sgv%gcL4m*-YT zmzNp1)U?H>E$JCoK74dfdEV#=<=cV@$w@#*BG= zdFGe{$~%pDW88KzaQ2vgFYh_#;PO6W-dsL#%v;KbjybG+lxfF~Io!Y_jLebc`KFB- z^N#YWo_84k=9RA=b4+>pn0J<#7BW4}|r ztLHn0Z&`W$*cIhXV{a)}#;q)m826)c&$w0PY2$uco;~hv(|#Ve{m0#7;63I2$E`MS zbqo(0_sjC(KwdsFNNxaUokg*^vVcItU^<-nf9EAx7etQ^&IRAqk8 z+bbva%&VN&GrzLdw8cH|Htj^yPBQJ}xGgcz98XltafQK8sVp%K_}uEL247&>X{McS z+Ivhp!?gFB_CC|jt9;ZPVZSsuuk!NX{K^g!&Nuk^20!26pRUZAa8+f=gm0N6>T6B= zcID*oI@6Y#Bkmh3r-e6}zVDg#ebZJ{dM5nPwA(5>OuW6)Gx3*|!zcc_GT*e5CjPOq z(6q%9AE{hz+OmmHRaTg`YT{oE{7dDIiO*IZFl~)#YfW2c+IrI-HSLLs8%^Iv)3?#| zZ8UuwP2Wb-x6$-%GJTs&-zL+y$@Fb9eVa_*Ces&GdnN_dbq20AZH;LUm^Rta)*JY! zX-`ZH4J|Z%q2UP)Z@Id|q*`^SN%iXGVcnbs45`kZG{pQr#QZamk1R~Jm0 zQk^$x+v>TKW>ptX+Rn7?P1_-Eize-8;EvTRCcVhO7a90(2L79YI~ll>fiE`j#Rl$d z;LZlV#K4yrxQl_i82C~HUuxj42JUL$%M6@dU2WRJNiUDvY6I6y+P%7N(j3!2$I#}O z{yhxbBZgNPxPHp8u-TQE~d?%d`R`c$#1D1KKZcfJk#b+ zep~gV$wyVsnEa0F*^`f{o;Uej)e9#dSG{cV3Dw1uPpK}Syr8;r^6Aw(CZADVKlwka z8zz6)v~#K>rhKeAbIQl7J50H-I(N$Fss~QFxO(W6OR7grSy(-G$``9AO<7buW6Gt~ ztEYUWdX{PDP5El|!YN;?E}XKsdc~Bhs!OI^Q(ZRY+Ukla->$Bja((r#Dc`MbnDYJV z@}BQkmzlQMv?Zo3HEnM72i0e%{J`}6ApU=uflEzWY}%5Z71eN?73Tk2t0T6#t=hBA z?bT`9{J6TqHg{I{+~%(8KHL1fdf+y{tRA(^uc{A+zp6eK-dml&&D!corU5S4<~IiZ zv3izifD5;I$iRoISC}?`o5xK1b9K3C^S61bx@MbyR-f7CxoXeU=c@Be+sU-WJwa{A z)SxzEYN>XtY4fL+Yj>G;$J9z~wP}FQn6_?et+vn9dTr0CLu&g^9acMh>d4wbQ%Bd1 zGR^EuYGz+jGy9U7*_YJJzNEIKXRM)*HMFq?9~RcIuqkrm3%}ZJ0W@ z7EXI@ZO*iPYICRUTibuyeziTPy{>lPwEb&`PCK%;VA|VjXPCBN+R>)XtDSAyf@$xp zT`=ukwF^zVVA`>@JEk31TQ}`LY8$2?I&uJO&hcAMYXd{JHxcIOgnem&(-$X z_Tt)krk!EhS*BgE?f=x~Zu|M#l5H0n_=VcyZ5P!p+xAk^f0=3DsvTw8T+`-ldu?sL zX>(0muqa_ zwOyv)S(`KcuG&7+e_oq6{l3~s(|=Pt!?ZJ}|E_lS^!sZUO#hR~|6{eK(;qW%qiN68 zHcWr6_RRE6wI`-OU)yBb;-2SgV`luT_Q3R@zPP7iTD3lHMzub3My=js+T)PiGe*_-oH4q-ziDR7>qpHPQ=dCytogskv9Os%h*36O>+5IiSAS;4>*|%6``7oG`TF{Z znQy4~%sikzX6AwQAu|uEpAa2f-+$)81|CvhHRBK?|K|D~rmdWDX#FnJR?c`!eYI&T zXS}t(#+SV3X1={XbHXw8b7!7jUp4c6_0==qU%zAKnf3i=eW1Q_<_GI* zW}aQ&F!Q7JXJ-CaebdZy>d(&nc)e%V`SrCk&##BGK3ShU>r?eZXMLtVXVyjaeP&&3 z;`x02s99gE&!6?B`r)Q6?)ggn%voQpUoh+I^@Xz**Ug!BeaVDx)|Z;LWWts8MYFD| zUoq?2`ifaM)z{DZUj5lwH`h1Kx}`p3yIbo!O!)s?-G6+Q^Z&>3vmen}JHJpY!qlp@ zwzcWkYO7XlwG@gFqM;Z<2t!zeeLjT{@_Q8KBMiw9Mqx1-!VrcK!VpU3`*`lWU+sPS z{&C&Tea~Lk`+8sR>&Lmyb$;|p=PMFk>6{aIrE`AZwa%G6*LKeC`CjMMJ>Tyba?NP0#N-*Y^CO^U9t-cV64`*Un8nfA74Z=U<&S_1x7tp;sUn z>XjJm+AB3!)GHS3(QEHuI#WikuEES+`v$Xnr3LeP^$ynb8Wh~jw58V&9)|{7dldvX z_9_YnGe!l|GKzy48DoO!8KuFDZl%F15=w(Pfzn`pU>tvs?U@KEo#x=oBOidXJf?JrHGOi7_F*RlUCpfwH ze|cOKEb6_8#~WDIVx~KSGnp!S-y59ERN4DJ9`9>^oX2Ao(}LbL!Nt9o1()`IIJms` z^TD>>F9f&telgh8dv&n6_e;SIyF|&)2~v zeZC9U_Sqb)>+@rUO*x{}T+Q{u2x`E$Q+PfA0u( zP2IuYJNSDCfA0+TNZrZbJNbJjfA0!rr0(MHUHrX^zyA&9rT!btX5!une+NvDllVJ{zmrpDrY5J?EvNreVl*Zg+ zQkrs)OWDM5`O$epjY+ z>UVR>F-bS49G`S|%DjH}rqna7Wm?VD*zd`djs0Fsc`50|lvk5pPigJ{ddjB$Z>D5q zy_qtIsbF+dNSE_DJ%Maobq_m$0<)SJ)87N%G|8&DX%AOPg%!Ql-<3{lKwrq zEbV`Amqq<2bji!!-lZ+~AEt!VjRTTW7vyzHjpgU3o|2TGIxFd@)VX;_r&i@nO|8s3 zCUst3MQTId1*u*0FHB9ypPSk#|Dx1T{>7=m{7X{P@*hu~I{1myEtyZGZq0l$wI;JJ zb#>-bsg0RWr#5Fkle!^uW$MPvXHz$2u1c-Td@i*qvpzM}@A=f)?B`QgWWSI)x!;Sa zi?Uaz)@Q$zx;Fde)Ryd5Qa5Hdq*nBQH8nlwwbYWFHK}DeYg3zZUr)^(@J8x_0dJ6HT9GW!f=uqb1X`#F!$A>2MJ0Y~P--)5wS<^%J^gk&S%RV`@ID1BDX?A(2 zCi|37TlT4;PC2KA@&=p{Djs@fXwuMmp)Dh?3}uY23KfmMCX_b#`cU@ZMWLd>H-*ZW zCJnwhR55r-=$)h`q4$_ROu9W39CCN4a`3&O1%vMoWe=$dU6foCx-|L0(9*#VhpLCx zhL#Vm4b={QEObTkW1;!UD?=LxKO0({wJJ1daDAwaX+`P_p>2a-2r;Umgdwkmx(-wu*2q`c(tBBmvIox)4= z_6RS}+cVtE)RNaZ+#^32&d5&*=jDgPB|~H3$wRw^r!h@uDj%8_o-?#Zc;3)M!i$&| z5A7dbIW#A{c4%(6Zs?)moa95p`N>1Wn}-e$Z)MsxbY!?w!KiTS(9z++$)m%=l1sup z3dV&;B##S^PM#3XESMB7DwrIeTyRWydcm~t?1J*};mPIUDaogX7Z;osE=@iyJR$k? z@bZE)!*vB`g=>bM9j+ZZJ6u_CUig^g^TNj`Ul86xQieuO9Yvc*C&g!@H86 z4<{zS98MU%CfsBATj4#D-wLNBzZ)(Y-W<*t{z-Vw@QvYl!@meu5C1aUG^{n;I_#_P z=3!rl(}w>Pt{>hOZW{hqc=PaW;kM!bgtrY3L^>4)BEiDMNH{q$vRCq+k@UjOk<8)Y zNVnv0q!BDKT2M-mEqMwS$2L~08AL~08&BXxzjk;cOONOR$!$i~8< zkDBr$_1w&xouoJTtPg=$y#vqVpn6 zMHfU`isnXIi!P3AE~<>Q6VT}NCK=`rHENXCfjNZyErk)jbd zM#@Gkj!YhLOJv%J2P2C|EQ^$nSRR=<;-Sdw5f4WyM?4a#8c`dm9_SdkA(U^A4%{3LSztAasL-1bD668ua2zj|59WpQ!xAGNE%a*>{lWg z*$t86>{la|*{?;?`@I&)?6)RTmbEt0n!Pr%Df{(E*Zyxr8km~;zZuz@-5A-Ky)F{W zc`Gu#-&>K{Oy&LFjx=Pw9cf~knbj28)UPSBrQbV|P}cg$@~n3w^;yl4jGXr(gP00( z-j9^@`yi6pe?w%@fDMs?0Ut(6m?{T+6q(FaIpE{Sbf(GyEs?ncK8Y+I@M&Z@Qyo)z z)@PBX0UIL?Of$1SkL(=qMWlYfmyu3+t&xnpuOexAUq`a@zKIOV+Y~8cD$e^hGA-}B zNL}9dk+pe0MOKg88fh8%XJjo?^T_Rywvjs{J4Xhh!BI)kuA@3d(?^A(nM_4Y*-XVu zd81;{vQc|Qr{?S(ou0E#bZ$=9=%So%(d9Y&Mpx$S7hRi^7TuK7J=!UE|7h3T1EM{0 zdqlHy4~$OAJt#Ug_u%OC-1O+8+(V-G_vB|sm*)?TPRbb^-85=Qbal=U9*0Ita)}YoJIngCK=kR!LbVbg&Jf0Wbl5-x9bE2W#IXqqx-BMf`-N>}L z_{wOf(N{%x7SE49o-{xD6w|Xw*F?LHz9CvN`sV25(RV~=j=n28cl7MTx7hTt-SB=m zEfyA+>@*qkG;uz zllP9T;8B04ck9Dr-&n!e{;@Qs;M`AExwf z!(-D*hR1G89v-`sDZN`^Y-veh?D6En*i%gD-HKu>ONwI8CKtt?XG-rjB34#9BKB?a zh}aKI>D@-g(o09iK2IJQ`-&;O+bH@sivAVH+DeLJAM%dLCrs(xM#l>y`vGk=RwzH&!zsJP}m5k$Y0<{yUJt8)>StB_${G_bK%G6#6_XR#!5Mzboi-1${n~u{@KpJUiA{ayI$7jLEr-$%V1a zB^UDd#f;&_jNv8p^%D9zFBU4DM_v`{QCh|0HLTk;tlPD*ywYp=yP7esW{m$ED=Gai zf8W4Z+`w4e9;+z5Gd8#Mo>&#r+|v7)?vE{Enp^rHj}P*=jK^i|kN1>5#N)%UTBfu3Rx-^keT->Etbu86=@U#(#x^p|Ev<_+G0iP~n(5itrqbtmd?B`tX>RF@OsiuF z<5u(d64T4E;JBB0e1*D(SZrJak89ZXUXP`Zd!5HOm>Of*;~IHf$MklrVBFh0z7s1M zx1Pu5*rajIJboA}AJ-C_J?_)koN=GW7LEHdwq)E_v3tgS8>>lZi?xhvi)|YBdn`8o zk66L@zhZ6Uw#CxM{}W3XzcZFTepf7Se5bwEj@x6e#&O}jn#NW24+Qe~Zpb`7_L-0! z_m<&-K%L9$`8aO9^XKH5uI61_>CIbvQ+!_4x48UdYMPzjB5!lTNRtGQLn_3Af!u9?-* z=UUHoo-_9i1kUGkv={Tizu10(zzjSaE3d$FFz?0$M&Q$3z6j651>`T|`;_C)@&9lc z-i22=haO4@ti}zrnSs~i1Zs-#r_RSZmy_Ru)dzWj=jHfo@@eGO&nj%W+(^wY)Xc%w zj%+ouwb@L6Hd6l&^^3h+ws~cnx5mq5Kesk{_iA_F3S3Xk zG_3KTOkRoArhJ|AG<+|fOML}?9arHXZo!M3f5f*qcjh>K0GIKVs3CY2ZOSEhwaaaP zP<|A-{u^_7238;B*;vP;e5sdT>*Y6l`MqBLD1O(?y9$5myas>g{2u1NeQ$67OZ^$)jxbnRo=b=9O)^ zav6DyuLR4-V4WZ2S-88)FZA*SSbb|aFc3JH?|@FD#(V~@clkWe)wm@+5IF6bgus4# z(6_FEz=OEGpZGPbbhB4f0CI4>=_1pIDsFBsq@#JM*JF>MCOY0buG@L^H zgVf6}@H@pi?`7iTRSALT$>kRETIXMJ`#6v{W9@IMiBNBO53GJF&%)XVYFN*`p5yr4 zlYIo+ILo%(vh#PNWZ-_gNfr zUW4~@ZpA&F|G+uUd(i(O&VBJD=Rx>5Tt%A`vHB(-kJUH%3@@MS<@3FKv6tWP!4}%sG+o^r`>K_rmJWWUeRA#XqYCUx`_T_Tz1VtDi=_?I*JB zC-M^4&K#`g7d>~#I&bT_L)N+7a-G{PuVdb=ELSzp<6X|`f9KBeT>TF_TmMyW{ZGU8 z94FgzsH}D}nO9ajxz5&(a%-oYbJjNcFoPO7@kRa*CTBaolt;)lhAp@hKR``09*D2= ze5>bq*y?LNKaE?N_eSP@)pMig_i+t1)(1J8i>U8hu4C{w=aJ;*Bk@j`pM*OH}-r*1Ym)FQ4M&mwK-DYVPpz2fX|- zFMrO<*LeAQFaN~Lw|Kd2YxT{x^&Hmm)tBRamREVc&$Atms(zN$%iH6d`S%X?rwCpNn_FC>?39c!_jqiT7s{P#7ky}R)G9fx^w z(aZS&tag-VV_gr(L!Ikz2_8g!BmNZYd?>GXHT8H4euJ7hJQtp~HX-n(^U*B#Tjxv2 ze{#MN|K|J<-saqh)gQIl2RUbAji=_#!+ISd5B2g=+{e`) zC5_uzSY9E$=#5#w_ z|6;9|y!RXNbB>&i)t?io8;3s|6!%G3*LccL$6vc#+a+OeJU@p#TGX(WE&sZ#z#(VObBddeYY{M^v4h0-^63F`n(aVopfxkYx3}c>)iPq+cms$UE7yaFY9JK9Y|EX4PbObL{bGCpUhI4`*7-sC!?Md?bNOWYQ%-|A z&(u<5`-yD(l5EGOtm9Y5zP$UKiS4>hdGPJ{u_+(oT#vPmI@ihN7Atc&XHwYF@pe;cs9{;k5cpQjxV@AIF`D&5VV%#FXW~TW%fxnl zF3%)apJh9~nd}%b$i)G1s<9^P)u$HC#P|wAlCwo50 zxw?DD^Q@e>p1#qh9K#oSzSKF>tC6oJucZDstTBlyZROQ zGsgK={_U{$xF^i{Qyz)Wa<=n~@}tNr$?wK?UM;81;Je%dq)oX8);?o?!{zzp&Ca9o zM(4wE`+0+TPsCr7FZ22!TOVZWr)>Rs3|oIPY3DE6=@MbP<1WqIqj2tpwOr*xa1WPH zaK46i>|DB(8oMr%pQmOP_2${mACO;+HSai{FZBE+Tc2e+Coja-&u8!|_Kku){boZm~8u4GRwAprtKepUHN#7^AfiGMDFr_LSUlHb!-kRkJ$M+)wRtTsAaB18cWoBC znm@@WIPbBcqaE3nyEoQ3L~S07r@HzA+`tvd(Y1_LFDRj$Z36#`ofV zX;ZGndS63+0jtmQI_G9=>mpmdyt{^TvTcht{1(sYXDtw&z579rOOzm?53*f9$aei8+x3HN>vAHtJ}-6syo%+@>f3*uwJx_htDko|tDno9)z3$9LJ#); zR*vg#abJveKScQgtZllP_J@5H&*cE_%6s^7CQf%&p6aai?c+R_Jlpvwe5msbtj`@Z z)6Ua)5zCSv_I#)3S3JM%+^YV39iLZ@;G<|$J`ihNypXB8iV%=9!&GlIK zRph&|#z9_%^}Hj$hjm=b-{Rw0ZtZ|T;O%d?r|SGX*72fz8Ge|&{{PvoqZ0DCPqm3Y zP$Tb$HLpArzv1%H_nDhuqckA%9Cn z&&xbN=lM+>bn||MwY}8NCLD43U%0DtzaKhWg411ohUfXXpUaoxPhFoM_57UY*Rak% zT5c28x|iXPaUSi+f8e3c!5Bc1!;akzq-L0ID>mv}x3zeW4Cp4a64 ze~OQTZ0|kEndEAx5s$~SS#AsN`Wx>%aJ{cw_iEG!S@)x?zKD7qQ_9cq+PMH zP>pjnz7lUHUxKf7uE7hPpTRdfzlrZ~-i+^a-e*ffV7YTHe$071e%kpO{DN~0e${y$ z)|jgg-(%g6m%IENUq^X={I1K#!`7cl{3ZEhK0mMuYfQ{LT>dV3GGkapo3<_F zHgfHs@-F8}e9$kPhdIwI#fM>yxqK|v^O0PI^_oS#0c*MPy;$ojuf~V5T=`4Sw(iP1 z{mONMtJw#i;GB(hA4N4Iv9&V=YfQ>m-{n~6J$W|PJ|I_Nomb^0SjU~b((^iO^M2vw zzk4}9Znk^gURd=7v~xGsu_N2QC*Mx4`%H2z*6}O9=GDKCuW~hCdH%!IpGIHpnnbqe zXxXkqWV?Pi8{6}5vDY8j`qRJ|CUG2TJIZz($#xu7QvVe-ztFcDocVkF^Nq57Hcvi) zTt{LSAak}#=+{gJ0+{O6|-2QnR>c7W1F5iLko%i{J&kcGW z@0?A3jOWvwCzH>0z7}8QyanIj+;40AwLm$`Rr_jFwtmXiH`)4T_3Dpo>nK})scy3p|?y>mz$faJc*9984I&xj}7g8^O zwu{f$;94)2bsj#NyarGCm)C>NL-7n;Mg9oCNxF*dF5iSzA3T`rv4{AKkTXB<*S>Ek z|CO41T&^*xbxx<;vYY0IQz~>G3ho z;P{B)E#!I5|KbPekMe!^5TR9xj8+#|8w*U*-oPh>mK$aZd#?cA~u+qtElHf>q5^|^w5Rc)5BedG&S)+Fb7 zc#8AAc$)K**y>k%^{?U?uI3%Abyu68I8Vdh;aSv_K{+^fXxLf1uTgkN_YFXbo*WzKF zIE#k>{i@q4Xz@$d5PF~_zolxw@!P_rhXW82BLt!3N3vTgUbv2EYH^p0i8 zwk+9}RfaVV**wZNp0dXC0GHdCE7y2hZsVz3W8THp+juJ1cv|~5p2}@JWgAb~#&gag z-e+2HYB0VJDBu0r7;K+)QEun7MtnH+J$RI-VckPW$EV?*Jj!#ij&XS*&g5}2Q=_Yw zKlJ%zcs7MGvo)tu*QYN@7es;O7O9S~k)aY}A z@();_8`M6e^P%>=DyDNHiGh*5;+}^~@M2e^^{rvj*s5<;Ok<*nfu~fD55Rifm-~6P z`;f{9lj}NG*0$EV=lwrl>E>0w5WhtGvb8T;`|@4Xtf8h1>obR6I$Qh7HLsQ>YhJmU z^Y%Wmc%Nn6Z&d$fy$5Z!wzCba@c{JAkFo*TkIA~pDU3=@=N!GRZ|EQN2QU8?lefW9j zX8fA-*Z3_w*=tj_Hs!><69XT(nu9!B`>L__Wouuy_ABv)%=-iFRO2hLj(6F%sl0o; z;N9B=>w5A}H?LmTZ+BiqJC@&rE!RH$FEz!?J7Ayqz9HLwDBFH0zs9`Uf8_T(TYr>W zf8?*I*^~auTRnGXS(YE*+163@y2iF;6;q>eP=2Im+y5)bZ471GF0yTF*|vpj+d{T& zA=^Gvhre}wtHnojjrUnj@w~t1fu2vs>VGTsZ{ob(aesuhf3}bZx^X>E-i#x7hI0ni z`YIoc)s9?>7rA`8=d|5FEOy$xfJVtG1Z@db+22VkGH#;Td~%+p8Nwmuut4Ss@~;cPK@RO&Xv^b zSQth9Qv3|LxzW`qZ^09(sm0;$oZInY+z)Hr<>6SzzC7M}8rJ!|f_nL3tLOZ-<&gMw z<6>;D1>`fySzJKA4y(`dGB1D8%Rj)nAFi4&J=-`d-%dVXeZ~j(Obp!MJP6Hy-;l9pQSldN4_hW4r*~VYC@t1A; z$}dx&(hW?(lFt-sQHv)Q)X0c?va0x|*}F##Z@txZLG6Uj7n3-{l*< zT-)esm)kZ{JK7eDU2fZ=k@L8XxvXRSZ))Vb`XmN+IX{JyGUK_O6IAm)dC=u{j4S_! zd>@zVxbE(3$MrO73j4;d`Q?6|_1>#q4=UHOJf3;wNnXvdp3m@X-`P?9MP5GN^CHi8 zcz($9)1F`QY~S@z`}R6Tw%0GRy=E!H)_-|uW_*2RTSs|a6+jF>IM{eg^)!6w~w)3sr%c~#jTtR+v7SBg4 zOFqwYmFJs1+j&^^I#+937vQY^@pX~Eq5f=_|KfSO=T6jHjb8uib4{8zO0ILb{1NpU zA9`_ha7e$nv$4((LGp94-Y1gJz`A!K>plIE z)XVms{x+%=z7FtQ%y4F(P z&h=b{wQnfD)yp6CT#xlz4XSz5%Rlz~J+^kXd3k7X$8x*l_TPM-^nO+D>=#y+EVWZSQ5@ekzN=|ck7B0mpF3|!9`%7LNr{>XMeLALu0a(8NO zaP`?($6b33zR%@{yF8tGyB8$iLf(FF3NQD($~lw#cdY*8dGj`4_45OA+4?D4KV|Eu ztbTst>aCwGa7no56Z0%vh_h$AC7VL)`xO(>x10Jvh=wT zIdNEr_j0ZvFTom78vSrEEAKCgNtIt=udi7_4v-Ky98tac-?v|U5wJgm$ z&9(Emvn@-xElalk$XeDjuHKeaNxpksuq}5EzK-SUw`b%#@kh7{s}EXk9)8XBO>XqO z-tz|MOll4q9v@Hn3orl9^DmzN^8ByoJ-v1!p7(XGq5Z?~R{ANIJa59OhrOTC(-@ttno3Vgrw6<&Uemp|g=PkZ@GUjBj0D_E{w4@|?h zUb0;?$hwwT!E)t-5sB^h!3waAp#61&(o|s^U8gn;(cUiwSTCy+8^a?^KK5upZmHEU>vZnsSa=+OMOpgeUGd!ZlT83 zR~|8%=W+7-2Rvz=#D^E0`w;pMH^+S%phdyeVIquA=x@OSiC^Y+GDoDao+;27tb zLrS>5;`}2=vDQT%gfHT=esx^yRO0#0GhB`Go3QRL$@k;yUCopDM(0n1Fk#jD78>f-qhqdnV zvsmjczm0Y6Cx7O=ROh8}iGls{x#q-2;RBt^afWjx&T?Li^PTU*L!DP(Em!S4hewiE zv#d_z;Cg&=An{(bHe1{GmkgZCichWDGuws7u?i=2z_c<00MQO>8~ zlbkQbS{Jor`&9w9ag#Mxs*yE5=AYcW%B`Is+b(}nV&G-kmk-3xI3I@BInTfwoG-=N zCsltP)^R7_iNAC;*0(frJEmkC&-Q#p{PSJ1jpX>4WP z`|U-&Z1;XMy=BR^toGb3OV+ZAnYWpF?KqWfS+X71vK{-f`k?Jt&pvqq{nY*`ABK-o zf3WU9Xw2o|uR9Ti`0HTm&)@1a~{V7va2^}MXl*A;uYY~KZwS2FJ?=9OQ@dLA*4cln3pQ#>E% z+(v$?bMn#g{><@~CF}F3i>Z-qea%{5+19s$>+fN-xszO;fRmXwfpxGx%i~y9t=i-} z13jn3p9kebJ&*Q0$@2-G&+t6Q^A(=2^Sl`M8XjNnN-uxKv;7v0`m>%~_iE&iv5sZ= zJKWE;^E=MN)#TO3$Ja%Ez`2-l_~y8HUQ6CguFvK6*K_vc@!xzHi0yMevV9gvw$B2| z_F1nQ+Ohpaw$Ely&gC5bZbIO-BF?4w-|6w^ak=wJ9k%Z>E02-u`b6%Dwg1S2ynLLO zpXlW?z5I}=@y{G;-Z|uaq^-T3d05vH%CE&5Px%(l_j!KO^K)4DsZ{@p=O%1@mK)vr zZo=074$pg?+>z^dpR7i|`(*8BQ)4c~)_xhb_Rsaa5L-LTJ+Jnx-=4A>{q~f#{|Pnb zAF(Y)Yelmh}pL z$Bp?rUX5%uUwXN0`JdR98!7K_AJ1bwAAzlJ$9tZQt#7ime>t}HZ}a?w=O)h|Vr%~k z&p%^p{~v7ahfnEfKMmWwy*v-WHg74mc~8LBw^?5O9M9KaoA(xM^FD%Y-c?@x>z-S& z&HD$oc|)giPtR?y{qd*HS@M3{JdxT?vIYyPsnx7tiZox^-ca4 z>pUZePwU9#_CE7Er|@*QF1XaW&^sUMbz}SY<3iMu+xb(r^QUa*%(2+cx0x*0&Vh2@ zbK}dBi#$*8Z0AYU*m+Vuni_qcK`!^|qu+CG9}&;bA%D>M3S8@aBYwhp8D8o9G=9PP zHQeC50l(pFTiserrYbE4=(g z+`f(2PWGE}nfRu;ZoA`qu=dqP=Ka{^vb8B&oAURrrWx;X5ucGB#aOXV)?DJ+#E)a` z=M8KZ+uvl{-{cpl(Qzj?VVzIpFTDIWFSpNksisq9{QVJmZ>;{ygS_1KTjjRj%C`T= zw*S;(?LSwtF6L`ISK~Trj-`Fo$mLiy^4VB5^|%t>;5;AS;k*z(fb$riJMd%9HTWs# zM{zxFq@4{|<0JowH9pNa;Zp7^QX}t;U&k#t18W@Q!8ncU_ey-xWqjA5IPNNZfb$}p z?tBOC?YsZpNM$KH8e}wg(i1Kee z|K@oYwsu1E;;$D}e-PG~%X!#pCU`Zo@MUgUmw7d}xSHl5`{9+G6L@_f|BiLc%6nWD zKc?h;vGNAI0UtY>`$c#T9_D;K*7zvD9glMP!}u_)dG(zO6Bw_UFOm@BB!IICtp*1j#@ zh1Can71sVBzwhP0dU@y?KCk84PsblSPsHu_D419N-sSqfM*C;dSjW?@jpx<)I(*?6 zo&#Cl?(dspd;V3v`@8CR_jlFt?(eGO-QRP^yT7ZB?fH5d%ld(3X&vS5SnDXKT-TBB zk1g+y*N=(UjK&+BkHeoim*cOT^}X`V&S#SU;(Rgw(|JDLfh$<9UUPjKh+ChdzMA{+ zwd5Js$M3OcazE=oi`;Voz8x2o@*II5!g^kipYdv5#UovfK2uccY|B#p+tf@XFUE)C zJ~$7bgf%|$Sdhq(Q?rqADa{tdSu%jBIH zL)9$CH#rB{2kbpc`8o1kv?=TT%FgUd+o-qqH`B;fxR>F7oZrAHuBOGS*^Yao`^Y*I37Iom*}d z^U7N8b8+eS3VcFx6i#%eFjzgd>ww7T-H6)M*JM} z%KE)cxeC8euIFg^bI;#9&msQZV$(=6Xd>F$EG~Y%O`sINw^Pfs^(&x<9rhy==?Aqj?<|5 z1W$7Q2_Nme3m@;i*CU)uaf8wS6H|KiJ%k9Kardaq|T^|JjIu56zP zm+g0SW&2%3S-%^m-*%Sue+N9Ral^OL{tM1ESl3RrW2a?U$9oX1cn$eL>Xm>!?}j@^|p-&Mn@&-{B1||HsSsdV4^$GUcHU|zfaY<2B7Q&aD}5!d1)spoCGcB}o(E$}uzXB)00SAXQio;B|; z{ce^OoYr zT{|b^Rk)FB>;s>P?+ht9`TDH>>>u z=H13~({iliOP-6>zI?rBd%s?}{obr>{gG{b<;T5wU-jDm5NjP(^BvZ{R8F6ZRwV{T z(;wN|k*APPa`|+8l;;zjweGrBQN7mPtaUeQ-OXBeeTGo=i)d5VTIt?$W%cLaDe+u= z$Z}R6^6+A|_3(P`AL4D)Ps7JLSK}GZ_u%&Nq~D{sSJyIg+Q%j>bmR{6VLZsV!^Pp>BOLVWy{TmNP2zij=Nt^cz1U$*|s)_>Xh zFI)ecvA$PW$@BE)Ix|g-Uxsv=p&e!0Za4YpUV%>L@ZM|ge1D0zaFl!$$-^IMz z7FGT+%e-l;*wH?mcof%8So`)4+L0TnX~Ubb9m}$fm2AhdY{#-} z$EIw@W<7mKV4qyWu~vii{i6d|uB`76nYXfB^G?szzmA8=Q~Aw>qDO?{vN#-|u`A ze#p57Kjz$kpK{)SpL6~Vzl00ugPn_Hom+;`e_7|2B4<0NDYtW)Z09uDwyA9Av@$-& zcJ?cLc9(YK|6*N_$t&=^_87TRzy!W#!HE zt?{k+xm4bOb*#y)UjCbxC%xTKzZbUpbT2>D<&CtXd%TxVWjR>)|1~CZ2{jrwc`{bs zf~Vv5&)eg3v99flhw$5LP4VT*cArPy?&WqbsFr-}JKPW9x>`OQ>ou2r9A3(`jeH8$ zHJ*GnewKd9m*Um9jy@zd$CoQdvDQ~U(93gN-bQZYDcg9;)_>XhFI)d*>%Y8)HuYR7 zzvrAu-)wwj8y`9Gz4&{+aun;m;56p7eNVRiv)$|i8guz6tZgB`>g7!?uN%nc>#(ko z8t`n|*Lip{p8?hTFXhL?eHr=b&I_@Q7uDR4FLC*kUj7=cc6pP_i>cQ=mNn$EeP1{Y z|4xmTC3kv1?o6DA-zAsFIxoc+;LphA>#+JG-;1}nyw1ztz`sP zJmZ57&&3BE8?U+E%kRZmE`QF;H{e2-Z}sy1Xn&H+hj`1HhEH<&94}vp&vp6Xv}1jE zjokdHSO2G%cmA-W|2^4hm%65N1K7w5L24#)2e!sC9Uq-I$%u1~POFiMZxYv{G^@Z{loa%Dru9XKr<@*sX?~X0c!Oyz9)XQyun8UoqnM*56hKz;Rl^#ZzcvF zbxvN(Yb9s<%^B7AqNaU(a6Z<#QTbReKgP??@bXK&e36&m@8!>U`I}ze>gC(LJlxpP zpF^zp9#n9~0tDC>GD(bemIUBp@U>$*A*W8VFp569`wGqBE4 zYUi&`aqItnxR882HF@0cI-C7U=XUuDtmk+6CNHn?@~5!&0oAO<8guz$FaO)i_xm!w zUaFCwWIvP#d%0|R309v~Gevgwm*6IxPW}mQbxvsIJqYIm@eW)-&CytWlV{@2$H#p! z4&zM5!OnrQT^GrA-7ed;eI4zje8oK_<~5IS9!Ne3S5k94*5^Rv`MBKW58%_CS9$qc zUj7Bv{-Ak(!0pcwc&nHH>*c|(`An2+b3c3`uBW~azRbA*S2-VsuXjEJ-{ic&%OCLa zm+?|p^C_-z{>#hv{wAK674g~EP4RV??f*QLXOi!C0?%34&Xe*2@@$vii4Vn%^uO1) zd~V0N5Fh6}6IXb?((`S&#anmT)?K!Bmu=l;TX)&kUAA?XZQW&CciGl`8@}c{j=K{% zUUB<(kezjnk?nj7HRf!N5$)%yzmHsQ#Sh{3|K|cffpuM>-1ZIG_6OPa0onEe`4#5X zZxqY#;o&E84TCr1V&^~cIGn(?uzjWgPx{^+J9s))AC#Yk_1Z_i6zjKxs%Y~GS05yQ zA8QPhfGL=7rPj~sp_yXr2ai!-4&Ygec-V08kpS`fwMIPn(M0}^KnTPLpz862_{4Cb@ zUN!F;{Ituz!1d0NpSb4171Yeb8Y_7b)^g>0yxjVuyxz;LZ^}22?|o8yUK>y4o5{Po z-1=Ed9@@fv0P;4*swZB}c*^#Bzl-r>sW}L%z8XJ@ zwQtKW;#DlG3V)CFzKr~*^HTa|+e_~AOME=@@Jy`ZS1!TV(g*o?=S-~UbS+EP{jQs- zsm2ddqh-mjc>WBx_l^8Fyv)_xvQ(e=E7x!2Rrt0xUIU&S_w`u)sipr<;zP*gcW__4 znfi?1;@ebC_53|G+Sba)d-<83tDLvdrj3!2mMb5L)qWkeZ7p9z zuHV>~7vm$vGc~20JrA>L4tC4qKtK*cvT>r85feEhu0P-VoeG%71f5(qC z+4eE{8ESMMmfynqe|F@ry!>x`i)-gz+>`flRC6qC>iI=J6YKh<1wV`LqJAkJyDi?g zM!W%QyU1<$RchqK?eRXyQLH{}=3KUg*R~o%S;w#TH+c>-+|R1+4f=iZE}rI8s2?R58HNEe%Zf#K8j;so`o0Fro0fVP5E|w zbuO<3aJN8G;6ZBg@Q1EO{sQY*mcRG%zg(`*=)BInFEOut0@nJ@vqK%BqjxR zs7>-?vBpO}8|$|M|64)%d~zL|vi_e1 zt2y1vb!<*@?bxxYdL5gV+p(!!#^^EdkW2sQFK_zLG|@U@;7I&UOj z;`ttDwey5?axkg=cfZx4f& zv7Bx9rRN>E{Wv904<)sKc1Sg)*z&XSr}SU>Re0jexR-dY!}={y)vUu)T+MG-=P2cS zhvVLct0VM>8d>)wFL1Ws`cS@bPx|0;`D*6}m{-3qt(sNXY8r9TjCkIP7rJ`+F6TdS zt#e8=KIZA8c&$qQJb5c^9znk6thi6ZA?Hf0bA@V_V4W*A<2tOdlHbAl{FVG8*0z&( z;Iu@p6Yz<#r1tAEc{bL5B46g^i(KB|<+7h!JIddtzB~PtH(~uBMy;%u#`bdcA8X7n za@IJ^ceZh8q{hZy)|h{PI@c=L?!(CXTwj~Z?Q?y~wQnb$!SRLX?j0Y87X0E~9oDh- zKbEU}J$W5g{jt<*43*cC%gXJZk8JmRWV`1h+dUuo@~%no&zj=hKmW;d^DHahQOeSg5^Zr()t zS%8N#Cfa}Go}P2D_9f+Io^1@3+xW}2Kg+g1%eFtuwm%o+muYh^`jCe&V%$n`CbsdE zZNHW6+FrJOShj0>+4ftx6K(c&ZQ6EGZvX$6TtJO}=TLn(3XgLAxfxG(egq$jtEtg8 zy2e@C=s(VOu27AgE967j2X1mT6R^&`b>ynACpW)_E6MHLUV&{qWgE{q*v2GQ9N$kq zWM0|!6IuOympq7VJIc0wo7wmDUakHg5LurE)xMg}@$hO6|Nmnrw#Dd<=U+LJmJ}Gs zaVP6JdYJR)7Eog)A?|$>lW49^OvmO_?qi#PNn8D=ZkRra}zZSvCi|VzZZW> z-{dFpLRa5_Z+89)+p>Pc_mZbmuh(lY;xv5t{_*2cJ`FdY6wfbnc@^XH&;jvwYVa52 z+W+OPSjULmg&JA)_PY)8ljN$GU-oL=@$yeyzL=Uk{B@Yu%D5Qo{*tWU)Y5sW8c!$J zddah~wvjv!YgzL3SpAXh|Fm6-cer_F`%QoZ);+aHQu}8!Hj@v)f*^ z`y}u4s(ujG{Q-F#R-5uMSo=UG);%$^-aj2gJIW6k75_|247c)~bk)fJbMt;cyY`!+ zvi+v0Y`^)LM}5y;@ny-$_(?^=j<@N>F}=`@aU{d}`Exd8~6K{@l$g|AJqn zeK|2BzVB_rk74y+uE%fDj%@d|WxJ;>+r4qw?rF=fGq0{!WqU6>R?2sl$@PAdtnX8p zTgiEW+n)b`J3Dvo-Qn(dAM!@p{1U5g@=sWOmjCv0do8a#xljC9leN8ctjT+kTRZ94 z+8LmFx2(hPHO{lV`s=*A#UGS@y}S>Mfo0mJMx3E<-_oQ+_H|s zi*XzE)@RwzTim?Lw_q(--hs6)a@Wib_jjJg`1fY44x)Y8wy&($Wf|m?vF&@Zy}p*q znOEn`%5hw`^yAn+yTikr=acKTziMvze?HRHJVmZPtLD<$_^~6eC0GCDcd^Dt{>t-q ztk;9eJ7;xxAFSsZ<@Q+}**=$2fv=(F82Vs7(fM}rnYf%9wWIG_$yNR1{gH3N+Gk{I zQ?_Nv_feyDmmkNv?;)?oS{L~ptbL<~@$8=+KL%wR2l-mYM9Y#BsnM9o`(n$7Vm*&2 zxBkf1A9<`d@A2Ne=i$|?uWGKuuQ}g<*E!#f-*tWzf8^YNH#&cet#7|$^{tjR!#VL> z?u{)Ufpz_Z7%QDOR3lHyjk_2hnwJzflm*MSz2rRy#Ph5Rh4IAJ)hRf zhsLkHW!+oQJ|hn!FK1r46rYV7y?WVdPLN*?9-Y%io@(=dhoT=iD;X9Xt42yw2r2aI@!6ocAy2 z$mMUzGnrS{LORFFXAFy>S9$gF)znv#|IXP(;qf*L zu=QDfj$F?d@*DUr=9S;Y%kX48a74V%vdx=-N06%z@=;j*m(Rdzv)HSbSB&h)t<5rW zE$jUAI9Gf1a%*wCUT(u0&*Czk@5XR{X-?cR&j;hX_wl=W9(t4% zaf(oeR6@y6hKNLjQijN>2t}b}NEwnT6-6hNL?opQnKPwKWlAy>9fS@M%ABe9|GU@q zzn}HKpZ9Yt(73a9X%Vn+)@%J+Kd~liaIUaE%+4*yn<9JWSoqx6byv9KCZtQuej|;w?3A>Qt@p zo61=wGk$J&QKfeZS39;^p;_j=!?hJZFuc8dWVo5!HOuLl<(!}8ToL9Pk1?M*w9&Hs zRv`AA1$R(?v(P;YRG z?{d86DVrwmCGQaNwsNy@AGvsb*Rw23I&0pfc>S$(Z0h;C;`d=?p07JO;?F7n^zbtI z%rMXF^$UNc_yyq_DwFzC=FYO?Z6ZER>pel%a9+T*bU(!IsrZ#Dhj>4Ebod(i_RQm2 zrySxuLreaHa@n?Nz5bpraklZHSQbAWUJ>~tmGhm<{c8Ia<=_p9v#;$X5ijpjt*|`o zeL;@jEsPhfsZ#hNa<*4K*OSEekk=?aMBY#Ss=Cgha(j85;`7MSMa7?)D=w~#*9-fa znf!CLENzG{&&>R&neyincd-W#gSV-&~x%G(=jE#E04^~anW0Go~19&Wn@2JO5D$v z;>}Nv`HsA;OkXA5SY|BhlI38Yt7m-1hbxD3E}|nrE9|zyerE#qce3z3uch%8`#Vs0H?7Nc-Z!(K4JOCW z2IKZwPAi=&X*c30C{DZKURe(B)@Gj)=iScas^r$l>1gGUazynQkBK_QCFx*!>5){}gj{Pm*gw>^_6tXR!AR_I|-` zH|%!9Za3_9!)`b1cEfHr>~_Q6r+ApQoqdPtlb>qaYnE4D<6&RpVctW+bMe^Md-!$D zgGNRCoy;p__7^$Km9~x??iF)=LfqF~*w>Bt7vam%n_`L}S}7gK*Dr>pGzzRIB;h!2(dZ3TS4%(f?66erF5zds?vH z(}Mk;7VP)5U~g{&+1JLq$iA+|UKe&dW4BLp*~>0aJ>3r2?SS15*zJJb4%qF0x9hFz zrD2+D$a~2goA@Z1w!*z-epdotD$j`gF$Yh+Ti|`eWB0yZ+eq z$F4v2e#FhrNY^b@be%Lxena)dcVcY|o+)$vkDrj=kDS+J#$@7s)lXJN-1Q{x;}`q* z#VfV!=aIiw=9-rHM){|R*Elo9SET;0E+4ym?7Css2Opwki({#L zn%p$Xxggd>&h>KZh)<1p8^!(oyZZ7EiuX|t{%3iW;@H?!=6iV;DvteKyn*sAeX13| zvw*jjd8Qqce~I#k%PzmS%;yxt6rUt}8?m<$KcRAFM$W79L*Y+k+LN3O^8AQboK+cb zAiu5n0_B_}7yGd6-$NnJ=TN^!4xdl`6{gPBu1w4J(XxCOW2y38|G6^t-$FUPweP+; zTXW=a**TTw`k#3LIkgq%x76`oa`E~{<{GJMEZbIbuBnD7evI5tar>&wacd008? z!#7;7XRtHBk>#ukPgMRx;iqNhmEBd2`yTfD!7$hV+g_D&_%38G)s6TnExSv^*UGdl z@v42(F||h5&prlmGsX8+K0ZJ`FnqMkvc%8Mmc1s6-=4+&eLeF1zArpSIfq4=FUUuQ z-;s|Ge6KGxoTReSX9qx3SNU z*yl&=^CR~85&QgzeZIgR|FO@HgJqu!Ds(-6%em=Ts3S9Xcu@7XIhT>Mk83Myb6g*AxsGe?$G3av**VRTZRW@} zbL2_77Wz&(%z1IO)2kIGYgybto)K;$({9A~m*+?2wn@HU=DiBU z=gK^LiJz5u1_r+>57G4@UMe#N;*~P*Ai`hCd?yXS|C%CdzD)xvhL_#Cd-^_X@~&J7eEBXjfOy$ErUM z(0=J6|C;&paBsz%|2yU2L&5`P=AkT$`)6^_eTWaq;@4+p?!&Ufl`}8m_<_uxM-%tl z7QdS1yqDSE@h6A5Hsz0#J;%qs4}iJn;2h>wHuHTvO*v<4E@NMmc|>L}Oa849pQQ0^ zgZ2e;D7@(f$!qFqKgz}Vth~ESzaoBU7C$|UUoMZmCglv5sSo+H<>EO}em{$E$l}{y zm_BnSe-C;0SeNh35ZyvN;zx7 zyUIU@_m>MSt7|jHTaI_!cu+d_F`qvYZ?m|>wyg}{EZ$&Yl;My0Z zu?740dAn$tWf~kNU#Gq;uag<`Tk8KuU9QhA6~|5G=fgearQu8DkHaHm+MN7bW!egJ z&RVUUMzYUw_2oK4({oU`iQM3NopW_w@N;q4&(z`LhUtD_-{C3YHS$|g4*pc8 z4)}-68?*dpBY&FedC|@3zBj%}X1~mmAD1~FVYk(AwcEkBC|~u&y=C^@8unZ$3PC5wCKr#^hU5Tj9F$(OMQal4%FrGK(J)@e0K|%iWca`$T-M z>c%lkAHej_N0l>9UUyqs7cLvGXJ#VKSoeCkq2eFNla#ZE{AswIygGcMTs*#%gV#p9 zw@iOnqrTVeKdFCWzpD^mpg5l);!@v}uT{L!$P}L-?-nlgN#&IKr0l*#Iqpl?{S80y zK^h0}OqJ=n`8zno=PJ%V#S1gLZxeUl#=|`yAQz7##oyMlheZ5)*>U>Q9Ii?)|L?m!owM-r$j4vF{N@7wDYNe>5%)bMyiqxf`M93S-kf{N7Q{v*gGfvp9DBvFndrf9(2W*B`t7*!9P*KX(1G>yKSe z?DoX2XCwLWiMp24{#mSJ{{)$1YN^~;=6r!~k{KVS$+agX&($*fh3CmWUt^!A7RW~` z=L@w7K1E&=?kE2sFIIe#yveBKxpK|$>6_{Mtvc6`vsiK7kBV2wTSX3TAg@x~eQ@FOiGqcg1g(X*bH8DozpHHrL!%-oRp+gW^l7Oy*{GJhZ0`Q5Vk#aVnp z7N3{JS7z~FvUsgKE6d+mcKNMkZ|`xkx2umlC)(r+`O)x%EPrm6|7I5dEQ|k~#cNEh zEPp3?UX*#DJU`rBel>iq{8o5a79S@Bi$5zL74eU=_&;*@h}XNjvOfFD z=SI9k#Am7gK1Q&Q9o+n0-6vFj@8dKdpQ-k&nf#LcO871L;V~(`Tz(?#W0qwH>o{eM z!e1zdzJY(0=^MCWR%N`NOnjB%r^!oHCgyh`7ln^foPA21-;P`u@oN=^9e;&BD~bPWV5H?;4VVAi; z_A^VvCulD?9$D+&bd?&iLW-IOTUzTd`m8Df00V zA10p?9wYY-dmjx{ey#h`c!J+iJ1_>~uQM;5UYS#Pu+p1lb{}4PY-QiZdHi7Y?X9)# z#5>8`$%|#jv5yPvW%0mR7JJ!wSw40?c9{#ZIClBiW#T;F<*!nFxYkRX;Qz>+7w{~Z z^8$WaW*o+^W${n4_%E`{sZe`TPQ~#$*5p0LB)k5^2PjTHzCs?N>nl7eGtYH%ADH;< ziqlUppGmb+nT_NFwSS3Y???Pe_Mt4kIP-^@{TVCytF!pV%v;Z>+}_>gBcdJJ$;X6`mb=JJRnGGJ)3J$v zk!dTuWsH+}pBO)<9b4Idu=m%bEROT|y;_!i*K(}xhu75e$@P=>d`S1QBF?)J^pSUA z)h&8ohvEn7-^Y&VHoXq#aw%tqjRQ2C(6YMs@ZWH{izMH&<{*9~ayG2|JVdmq9Mcngo z;{4`X*NFQ!*Q)5h_nn>I(}*wquuAcrjo9smX}4$fZ%n({%e7rED>hK)JkP(d=U>?K zEbMs}_B;!Fo`^k9#I(Zz-IK)Iz8L*e_WX-Dza`pLH(l{z%IPk*(Y2A+i^;z@;zN}) zBJ((T)#kc~xggz#$G^n7@QT=9m>)vq7{T6;xK|mK|PQ1Hv_}t3g82N1#uW@UN<9~%u&+@VJFU<0>^LY-0^4DlxpDRu~0Vr{$Bvugg8c|CP@Ouao;FL!-&Lk>6W?Fv zU39p87XNi&dd9em;*C_!P%Vr1kgo~1mPdw&Usp5lIf3EDd zeKw1~F254>*;Vy_M;@a5k0S>+&^CUccz5|*#n~7551F>Ywg0YkBbhcQ-ZqP$Ak*f= z&y#6$JT%K0Ez{=2@5$niW_~&IdotTa{^~4V<)6y>Y%bI0+~t zt~m9_e*X#XuQ=CQ-LKL6f|jK^j8i!`C_dm0jhUzG`|mR29xgAG6%M~s=M*iwi%j_& zhU;FXJnAmp3z3hO*}u5E{IcQ$Rla|V77waYR@nLO6dx&54)KYZU%52Zr;+0G73X<2 z>}|nIviQfDzsk(^dReyj$(_{>TK0gdsZ6}1Tx=itq%1xli(j9`@6Oy?1AZTE3+248 z`1$e>`TA<9Ogts?C#{KXY_7N+G=1gy_2~{S$c+3K3}Fj{p2As=SO^P79W?z zr^<}y;O*oi!@JAJ zg%6Rtg}Y|?XJq*U<7V{me_2C<|Ed8JOc$xl>r)BYnviP$RpR-BjbK2P7ufcw18~d4U>}R&IpV`KK zW*hsNZR}^ZvG3tvKeLVf%=Y85pV^+L`kz=Q^+ViOF7`utXcoUI^Gum`ApZrKcEIn+ zjBj|2+~eNlO|~p6oDtqm=J+CKPnqKjx6k4yM|_3i17ym?m&qJ!c!W&(c!JzFJWZe7 zGY$|RBQqv1kY~lR_?hq;9T(@-Eh`MwviPd-2IcI$by;DY;&@+~;}jnyGgrbM&+$o$ zbG?fFoEY};h|jreJqZNzWN&xOC17lzBWNyia6 z+sPb9E#)RPz9#&e;=DVPoD&sa7x7&O>9-FeK2+DSgKkSXn=8H~;^!%T zUc~!oS@s>}43T*T1K%t&9^yM?#>4LN9Qik`3%@4+9sXP{o1Wso$eYRSl;ifqZqI(Q z`vZ1=D8{!MRHDv zBAIa#uaw`RoU8Pl(vD??U&6H-mKFY#$LaXmU*7UQwZGg%t}c%Z6CV;e#3#ulP@@y?jyWw|b+O48@e8!=39Oj(G zwI#k}m$Jg?DhJ;ppDDMLJ+9(E6{k&b`L3z0u+LN2V=wmDi#_&YkGB}J^{#1TlZmJxvC%=_D$~QDk`xGBvUDxdqKUeX;!-Hk|06CN8 zvKh%w$eV?IT$AJD8o#3)uC?&DGS^yolV-7xUX?uO`iru!@ZHwKu*lmk_4UBi% zGu0U%AXDd;H>sR+VShgtd)|jV@57$=VbA-p=Y81oKJ0lP_Ph^!-iJNcds8mW^;FM$ zRL>7)=$xqbd`Ra00DeK{{=fp|_<9ffdT*|BJg3IY!S|o3`q4-*vYk(elW_48Os)Y{wCEqEtY#+tl z=GbkH-R9VBj@{kuM7OkuMKlDi06eCEpbG@261a>x%!!arw^hUoyuOIlLQWdc-$rSyq@6-d%ny z+(9O1gYr+4X@7j4%rzM1eEm%13{|{`#!2F%W#+B;PMNV3KPfYo;w3WUHvU9r+{WL@ zoJVlAz0-LF*OwV%aSNF-79S}yw&Sy9#&&$2{9@GYZkc;c#GjX$BjbB zRaW>g{4bfYtNzJ4pUQtKK1<7b-(l}N?0tv5@2Y6o)mpYw2hE@4YWtKGYR^jEQQjte zaOTrx+L`?R@(z*nxZEUMci%LZC+BFHxjddI@2#Asvd22?u?~Bz!yfDKKCM$*;iF~R z3VZ&AJ^yMW4^j?&179IiXMCeff53Oh^auQq%)Y=c%alLlG@Ummr*_7DGG8Zi?}+$) zGRF>Hl*Rv-#W%g9tWf3Al+#SEEwAXUdwOlsxP;%48JDono7m?~yh=HoH}Nl-YaCD+ zZ*TMM070U zzAsiOT&gy~m&;d#`D}%LMSM%;GmZ_9{3*)8E(f#hJrO@u`5eE*2gsbS@zq&;To%74 zi$9sgU(e#JviR>Z`;Ia(^ zCgkL8@;~J)ihOdGg*^_C?{NTo9Kaq2u*U)HabS{s;~{bVBi}F6p2T03ztXz!7c%w7 z)ehD5eAr_JagP<)V+HnDfjw4Wj}^0I<^nrDpzCOP_2H?_@xF(Z6|YZl2bt>=%ykRb zJecbiu6gju%As%IGi9~~Uy#MG$~-#D8M>lsx*x9mNs1Tmhs)FD;(c=Yku3h4%y>fi z%QCN#_la%cdDrLFmC0$gIK3MI|E(OCxuv$(Zj!ltnSQG!%Hj9x4-Lm&^ZzZ;`#OyJc_VT-oK!m)&l@#-p6KvSt64y{;|WSGtMpat@YV z&IxjdsDB^1Q}`0OYxpL)dw8l`^Y~Q%$K~?y>vFHi`AR-JTy})6F~SYyi^2!Vu1{x~ zYf-kPmrQ@g7iIBlviNwJYg%%qXYr@9{AF4E$1J`@hsyHzlD*y|v-lbE_#D~gypYA0W%1Qn+}DuQzsaZZo20UT3!C^K${!u;dV7?9&osQrk!6KD!u}n3 z^8MTKxTA6yxACbm`(?3wL&wzS_-XoId$-gM4rR?9?!Oh-HpY`Kcl=ElgER{djF-!b^GUqA$ zr%e0f@)OejU8VZ`AXB#$vY#awqMXJ0%yH-0TBlsmwXD!I+(_Ol+(zCne5BlNa>_q3 zi=Q3w;VS25`DEqeshQ`<|5kjB>Tqbc)c&}Yd{)GLpPabwljF|H;rb2tmAQVaI7Rn3 zx~J!Duzv#u*Eum=&*PnB?hD~oGRGP|QD(p6)(5BGk-;5gu3_+{%Aq~+D4F9C-y>hH zI^%g++~>sliu>G$eeT0P_hFy=us=`4{yY&kI!VWx)`bt2M~1u0Yzy%lWVQuAA&-rm z`Ev1`ct*Ond6(joMI zTJag$FSH4spLu!aZ{^O~r;U^|=g!pT_*$7|@uYCeERG#-C%Zkd+p~-O#h9|fbt)gP zmq&&Dd<$_u--7*o3-9_c2`RqHA`R)Vbd3VKYOf4(is&#ejqjuOX zeeQ-oP@KMm|B(5-6>ol5`n(l4lpSxK#XD#5o>~0-EIvGokI&-wXYpsU_>wICWfuP@ zi`TomvOasuM@F4HW$`n!_~luATo#|1#b3|jYqR(k(<;l~TRtwE-Ut#wv?0$vaudw?ScE7^zSJ?duyI*1VE9`!S-LJ6w6?VVE?pN6T z3cFun_bcpvh25{P`xSP-!tPht{R+EZVUGjY{R+EZVfQQSeudqyu=^EuzZ#kKt8uc= z1=!~@>~k6RxeWVUhJ7x>K9^yi%dpR7*kdpD*o%EG!#XLN~wp2hwAEpgsc z>hiz)S?}V|_({CkFX_7pi{&4+?D=AOP2x0i`;kbNH#`#vOoBg(`pW$KK-lh09|@kV(-xXy!Rg~8zla`D<;?{s$E zD&%_=AEBH&@>4SP#EWI>gFlu(*7YP_D|0=G|IXrDJX9HPBoB!E{blARrw_N2cey5AOW;3-SK7}M5%+UP_&DYB`5N|fbRFeg z9*J|b+)934bs&DYOdaq^@~aW=lf^HVmqh%AEIvgpUcYJC!rWB1?sA39HBUeJ#8Igo z@R>60fLkbsV-~lQ*Tc&P!Ko%dG#YboHsSzKj{MTjbHd3zgXzHtYyUhD# z?v(kA%vWW;GxL+-aVqnQ$5Q!tLb$2sZcm?*whK>}*8&c-K>-{pEe+;(n1kWbsqv z)heI-bLDTt!{i^sW8~k%Q)QR)q+Hy;TK4TM{!JF&M0ML3%Wfr?Yfi+vc9Ls^Tgt`0 zp*Y8p?c<1i&*ib_^224%-?8WK*zUrA?B|HEpCiJ4jtKi1PV8qmu|K=V{_Gxm|6=c7 zJnHnaLM!bTJVkC3c0VEReu5uV&Y_Xx>o?-Qe#1{IhjR*kO=ir;AIKeI*&pOiVLx|D zj-NZl)&H$~ypgk$e7w$O#1E3$7x-kEeSrsM@sTp)Iq}JI_b6v}=4Ud$mH89d^>_cI z9QRM`{)yc`vF|luzIW3z*87Xf>=*X)pX6-TvvOVaW!h?*;;+h_*YGl#^BVTE$M~0e z>DgoK{*2w9v7ceaeuf#lKV$c2{F&A@R`tZc$P?tbviAk{zQFDS*nI$R)vK&>^Tnh90z-jgMDp}eLaso$HAWCV9#-|=QY^#GVD1H_8bR$j)OhN z!Jgw_&vCHlIM{O>>^Tnh90z-jvqnDfES-zhKk@1Eg78&Y{H`oMUuMi9|6`dk2mhAE z>zrK~-(7Zomn?p17QZ8l&(Gp3viMI~yw*9DMx%du1c|sPSnZ=*U;)~^~ z52j^T$~D4kWv+WEbEC}ogX^7J>AhsH>u{NCU2;y5y?-y2-QOl;@h2i)rMteDG(hLO zJ9LdKpDOeGGwz?ohi37cviQU-K0`iU^=H|qWa^LKkWY^|zDTaGxc3)!`(w9HQ@Pd9 zv@I>=6XiFxEIuQ%-z_=!47LAz>3duF1etBe=g9+@qR4Gz+6Vg@5BnMq57E1QoIgVA z;`*8RxTp_)Kz8{rW${n5_&R-$Y`N-8eigmjhc>|t->*_w6Y(~(<6A4|kBB$P^4rQa z9!kr0&*Fb-T@50>!?4umlz*qT@qjJWA7pO}_V172soKWL%2}V~VCUdG$L~Jfpt#=w zg&nVQX63rD%fT)O^KO&7wcZN($t%+H!+24+jrQ*!GSBniiYw#U9{G~1Qa|sA6~95- zj&G31gePY42eSBcGW(tU_ht4S{yvLWQTdM7mB&Y!&1Ciw`G;rm)3W#tvdh0mrkw7| z_jmnpo2%1(1MGKD<7;lvJCrnr^p>C09G~Zt@d+|z;`3z6#MjFAs&4qUEdQQ}_fy>W z3b5bVg8eQRyu~#!PnUh4fq0uN?)wSEPgk7hVKDQ}hgApMU-2ixm&>#jao%UexP(V3 zZu@he;fjAbLeCs(S$w0+c#EgXjC=U;EdFX1UoO8D%dX3Es$N^UY+d=I$Z0Hp7WRE7 z%J+RI+*&!bIqode=D2Sbzb1=Mk-v&EpOt@*Cn?|aP3-w5_Iwk2zBx^Us<92R>Hi~TGI_Ol%L-)f)XY9H)*4febSdv1$8x5b{@V$W@{ z=c?FqRqXjG_M8ZNPJ}%_#h#yH&y}#}r`YpT?D;A7{1khBiakHYo@dcFJeS0tOJdKz zu;*Xcb5iU%DfZkGd+v!n_r#uiV$VG{$lgcT`v|+;@F49k&gpoB%zPQ&E*I}h%e0~6 zv$MFLEg|2}mSEpc!@i$}eLt<3ANRYk`xtf~!|toteHHtD8utA(?E7ih_tUWNp<&-c z!`wp~qrQrLKM=b=VD|^?{(#*dFnyr>pj3|g2JsivRufcy9X%i7F%WwU#2y2&$3X1s zG3@Ix?0$vaudwgAVc&DZ?kCv&1pA&F_C2?zvcFr6{hjOH8uwg(?D}KZAG`i|qqd#v zM!eNcsgL2^Wcm_5P^ORJWAuzA&uZf173UdOe2RR(+7S1Z8J~yCd+7c-`M6DZq|7~b z&RLjy?3_DVYFqXmot~M;_eKt$ljV3DiF+Hdw-I|A@e^8>&qwe}a`9O;d8y2^`ozDI zc~&3)o#oe5eVo6Y?EK=rYi%$29Tn%kE6}k40lv~tDDnY z279i7{W&A{=aSf;OJbgZS*iM9o`Ly1yisPZMBH;0?9V7M+p;F|`J9n$A@0u^F`r91 z?$0Gh>t2oT7h&Ho!oFXGeZL6%ei8QlBJBG`*!PRD?@eLfJHozqgnjR5yzF~NLsaKw zuj;*O_0{*};(I~W4%pwBoh19a0NCFJ!2a$4_IC%cuWhieZSdZ==op!<>nQmI`Izt^ zneXEhA1j{{_IDPD`#TG>WPcuw{dqL@bD`MJh2qP`mK7R4qU$bsjNDkBC;NLq3uL}i z(@Jr?Tsibf{I$$+y;%NJW*&{V99LF2Q2DsA%$T`C_Vph2^&WPcV7CcAM9Utoa&S+X z<6@OORqmwtG#&eXMjiVZb$sTnWrfX8PdQh~XGi`WGT)CT=P`Lu#9xsqpZG`e(1?GV z#rgj4wGsFCf63pdoG}sSJGr}SEF%7|+hQIq`+LfBWq(f@U!WYuPdr>6uX6B2nfl;I z<@+N3N*4cEelp_gvbeu%%(DItGJa-AdfpHFxn*2^yq*Ksbu!*Xel5z}PyR66Q~o@B zgWUGOl>dy(`&wD{eVN|~!0Y6-kzf5kmD{qj>}@aXW4DoUamDa)$N=tK1SX?;tyu=cjP@I?(4nv+OBOUru~JR%3M?7)-uNh z<{9siTDD3b?RVXC;JM|B%ys0!%ICa>ua`NO;d^AxW%aXs{AJ|eALX$szfqQh9dDY& zvELhj{oa6<^6rz4*U4UK7O&sH0&`AdrZR~)3C=h>@jWL z2z{PAFSRqivU}CSka-%T&}Y+n@v-t75$`F}_nKat#zX3cy}fvba(+-gepsfz;g@9k8~#wHZSiWEw(Tgp z|6unYJpQ><&JcOi`Dxon%Iu4)pV74$`Ro_Dd;j!Y3U$N2=ES}h?I(9tIef=+h}>5u zA73of&g0}!GWEwZWa^I>WbyxI@eNsgn-?qdTglI;ZY+C*%vdo=K2@fCJSg&K$LI%dZKU>nd(H%yOE`oOj4+EpttR+sm(MKjQB4TjBF%?n4s4Ugka|o|?rU z$l_0C@r7C3&qT4TpNZBh zBlFvfTgZ!Lmx%|xtj|6aUm^SVeQ@cXq+GfuDVOd^%B6dfa_OF=T)HPIm+nc*rF)Wc z>7Jxqx+f`@?n%m}dy;bLo}^s5Cn@{$5$f#Ui^rvVdUENWo_wXYmuFGPxh3;d`Hq^} zZ;H>C87r#joq>f{;{5<}4Y|46ig*Kg?{G_*`x3+tl3PdoSh<~Cp@YfiChT()_PdoZ z-#;3(dCEWhJ&k)B;OZ;>ihS@3$xq1phxv`&_Hs+*ysxZ=yK%ySTC6 z#f|ywiE$P4yCj?kvD*{7J+a@ViT#`g=KY);<>}9c+ohy&|J{=?YKAB?&KcB_l zjrf8rA3Gn{{2`Tt8_JZkG|RzW7j7TteWym{VCP`xRJla$rku-_gZcgr_Z2bU-{HO@ zUZ|X_mGhUb$vqdqo+Dt-3$W(}*z*GHc>(sk0DE45JukqX7hul|u;&G3)hp*~jZ{y6 z{(}Aa3-)Iy*q@>Fmf0`ucG9sdvtL$g8!`LEarTSj>=(z`FOGY^u&nnBcAI0j`9PWd z@`Kieor9e-QucSLu)j-%y}z*cOHH+d_XYMo!rm{~`vrTyVDA^~{erz;u=fl0e!<=^ z*!!if?0NKD)pN_;()%cIBbjTD1^K|o= z%jAJ_Q<<>>A0RVU;A3RYDfl#*Z5%24J3jc6Ebj075dSTU*ZMOZ`@|c|9Q%{xHh-nx z!oZvSmCBzhyRER>YC#sqjxUwlX<2@61$UJ>C*rfR_@xoAbD6HMWcDw9PUhOOsZ5`L zNNs}M=dt^IJDGmY90Ak+KUO)|eIC2dH&7pQf5z_r*!>^7|6})g>^_g(=dt@dcAv-Y z^VoeJyU*_;yU+JiJ>4I$`@;~KG3VWDbiS4ubN(A<%yFDC$8p9S#~E`RcR!>Y_e1Qq z#ctb?GVTA8+8;XyJ7^8^VN7(I;-Tv6^kKO** z?T_95*zJ$q{`<&o|7ohH`#E-ho}0z7;~TO#&f`8FiTilOJ|3};$BH49>%}gozU*?a z%fT)OyPT%-G95dN5BR?_FS`7LFaf28d4 zyJz|5$+R2m9VXLmcuW?bn#CW^;xA|M6*A`c=F}*s zk>Wlsu#XGu;{yA*z&;{#-VLm3|>e;nR?MwQ}w_K0_#Ri*IgODX3p<*;7jgXP23KKMGhV|aqRTz!@J zEV*;U&we!h4q$Ovnfqo3Rj(YwvBz-iF&ujg#~#D6$8hX19D5AM9>cN6aO^Q0dkk+c zdkpU+`}~4kH|)A$*A2UF*mc9M8+P5W>xNx7?7Csst()w+wHuh~!|#6L(>F`^4e&mj zlo!vNc(D3^zhhEPTg4fdhiDZH|JN+P ze6z|r*Oh699@^LLd)R#syYFH5J?y@R-S@Ej9(Lcu?t9pM54-PS_q{%{``!X=i|1S`*G$`j8_8@7-Xn{*iTF~*c}}BvZk0b$e3bgw8hM=V;anHKQ@&+Pia#q)me(t1 zjq=IC8)S0uW}BB6b1DW^_9g7Tg#DeA{@O0LGj=;;w=;G-W4AMQJ7c#qb~|IYGj=;; zw=;G-50>4|ZB);*wJpDC8}UW*-(k*iWpAYT)rxN>cTvunwaN=ehgT@RefS%B=kT9$ zvv3XNw+L@1?;qYzJ~-S(ZZ8i}`SWJ#-kR>o;Fo0X&tN`Z~_X(XY6*yZfERv#%^cqcE)aJ>~U^8OI~gUt7Ru-~_j{l0zd_w8f9 zZ-1nIPiNh><%Q$l(!55lx}C<-uzy>SxPMy^*HsSlaokj9K91XF@oriCT)9V-d6mq0 zlYG|)=k;;@iM#&Oc2{MIoRdk&fAw4?$o;M8R3f+-?xd{;A(wlEq7~>{JYF&Nh{ROyVp+V8hn7v zxdwO4;wMFXz2ZI(VxI@+$u0-G9PDzi%c*ja#<4o(g@4rNaWlE>O>Lk2psoQwC9Ip^ZTvv}u-k5<3+v4DLXVIN1>#}W2%gnjH_ zA3NB`4)(Ewee7T#JJ`q0c-doAN7dP56!sW}zft{9Qaj*Z}|o`7VK@o-WKd_!QPhXvbSZN>goNC_uML-%kUvG=Q7+mi}%jrgR=ODEIvMq z-;>23$>J|$@i(*hM_K&qEdEaxuUogWp3P*}^Uy4QQWo!@#jnibW3%`@S^V)V{%XYM zsNKBpu=gGIzQf*k*!vxOKVt7k?EQ$nAF=l%_I||PkB`gVkF&Iop88jLp`ZF2UMOE6 zFUaE9@fBGdJ6?Zq<@GK0buad{F7~xT?CVwR z>s9RQRop?#a&E<)W%ln7*~?-ti@hxNy0EWxv9EQpuXVAnbw|oBAG>_)^0CXuS4TbZ zsHi8Nkj1A(e3Ih6mcYK2m?t-=UtYLb`wQ;Q+EBa>yKT3?D}KZAG`k8^~bJ1cKxyIk6nN4 z`uA2nxpsX=^~7Aeeh}u~FXz@FiZ4DOo=uX!(smX5yu2ife;4s8=j$`jkJCN6c|EnS zcPuY_@s9eB>}Qy(#Tgv_n8v8S4?7H;JabOWb9SRQ|K7^Y`s_Zj#@Txi*`W#ql>0 zpC%vLFkM69R`Ll;)i!cN`D>MfJIkj<{LCzWh}@1nvn>Hk&sOF8E&zImA6d)hke{`{qu^>No|pvK}x<%OQ_st>CU z1GHZ1KT!5F()bp|c|IKbvn1@#n1;(!l*4u4w9IQatvqJ2>yLfRVjr{E$1L_Si+#*u zAG6rUEcP~HAG6rU?9Z~deX*W-n5u2(c*M8MoSX1{ndf9Vk7e;^viO25z9`}=R1VKu z^1gRmdf&V3>&*4CuQRdF_1Nd`DpyqIW9MV%W9QeAeeVMM-Uar(3+#IrjbuObjQz|r zK76P0;yb$Waq^KmE^v35w!-Jjv>_gm#c$8zv*qv9$H-YI{}f)4#lO$u)pjl~{1G|Z z$c1HT*`~7B+gA2^yUH&AEZOB>DsLLgj*>SI`#ej1e4fR3DTn)YbJd3zs6TU062BW> zko9d`RrmTPC?ET`Xt95bwrJ&?eqYMjRz5S_SY~WltK-q${4-LUJ1T{rBy zVb`s!qOxvvE>N4R4OgoD@gSM~g|Cqri||;PIVtviTI~C@_(|nF7v;>C7ls$f^apZQ z%G|%j>*No@wLVRs=@V}vGq1;o$*#l6vg^=a=6zP=43)o#a&D4c|4Fi!eOUIgugDkZ z7-ZS^W!|NXSIgf-IX}tk!c{)2EN4sE=J`76@SM!^ zb$F>k_tt8~XOhWjBs;%l7C$75uhzQiMfpF;&M#Y4 z8Q)TNeCI6QB8wlI#XDy4-^W%fG>Y9DV>v9GH~%Kp9p z_H&ik&s9#6-_Z4W^_O)0EH9U9g?HM#YAL=ti;vu*TJg6$$p2CCt(8Ab_PQ|RPm_pm zx>o%s%x{pfE^_!CtF~ePjur7OmGAiOGW}|v;yvWEmA^o~O1>=oWO$Y07k-z1D-B;S z^BFFlBF_syE%OW~ai0I-dK>fn5A$No^FogEypZE=Lvq}P8{`K1aGZK#f6juR&^zK7 zpRwPofc;(tyz!+fg&k_79DjF`crBIrzUqm2*Tg4bziWax-?R8C;{Kim@daA%x`=-$ zyKXb}eJlDlIalePK(U|e+WsH4$p+;&x>?_W+D-Rn-%p<1xV*67z2rsm2jMT|HQ^2N zKjFQ#Y^zxI82QL>Pq|0c zzqsr&`HJv&S$snlFK?3WMYFCQWzKi_RFzr2MRFU(uT(wPE6zLCriMM|B|cL*Ga~+! zeClSpP8qGfx+dyp;@?WYC?k!h*kbJ4Uja*0j_XE{)k#efY-Y&dO@y`_>K2l>sv@L#B%hHGON}0C8 zKW6cNviN4rD)V=hoqwo&pz6S~UF5^VXUbj9N%0}_m;ICHZ&j_ZWyEh$oc+tPvt{-# zc7MR`GuV9wzovZG|2>)dw7gNrxqOW3Fhn^6cP}pt3ST2%9==T;5x!3zCAZUc+fQ=w z84~#)x%do;T+zHTzK!ho&RM)g7C$(PAD6{@%Jc!&)mJ`oGxej2%4=-wYi#UmZ0u`n z>}zc7Yi#UmZ0u`n>}zc7Yi#UmZ0u|7y0WkT`>CFjRnHwh)O`YZmP|j#kB1v5-*q0S zxVI5|8_DrJ0(-l#w+nl_u(u0)yRf$ld%Li=3wyh;w`&*K+chhz|Jutf_7VK@o z-WKd_!QK|^ZNc6a>}|o`7VK@o-j;5%w`INBd~ECsJYD7($A_Gmp3lcmXYp6E{139Y zueHec_dv0aLCm%v|L;^j&qTFdp=-R6dSBe0Iv0oA$bG_{lV|Um{JDHZl=+i_(^p%9*@%J*E03T-(@~n&ssbF`kZvWCTE$uQQ5~@D(*gs-6zR$pTzEm*!>W@A7b}I?0$&d53&0pc0a`KhuHnFkL-Rp zGV3SUV>R|z-A?uIu%c?Q{W0I&<9yd!cAH?g33i)c_rrd&+XTB!`l~)}6YS#@yM3_R z2fKZ++XuUSu-gZ_eX!dHyM3_RXRz${8JN`>yUxRu<2qy48N1Hdb;hnUcAc^7j9q8! zI%C%vyUy5kzE*af$Elt(TBLCvdz_q}|o` z7VK@o-WKd_883TV=Bl3G#J1pHWsWu6;-)k&!#l~2yT2{Xmc?Ecds*ydalWkEjrfi& z%ZuMNTOqp-W4GZH)!A)`-GW^K2a$JAx`eWB0yZ+eq$F4JWow4hTU1#h%W7qj{*>&Eax_NBD9$T=-miju^I|pz2 zb{do0$aiXg)&8$OuaLJrIh{}2$=-L^+y0!^>uty0cI<7(-gfM5$8KBfcED~2>~_Fz z2kdshZikm;x5MI*`d+rS4g9OTChA~_PwW~F!E;Q=yr!%J0WmnicqxqJ9mxwjql zC%=53%6!+Kxa&Vsec0m__AxRp>*v`0{LPBWevaMGvHLl8KgaIp*!>*4pJVrP?0$~j z&$0VCc0Yelc0cc~Ir#VcmKUn7(&vQoh9x2Nbr*F`TSvkyM^n@E#!GBvuoXIg+p~u4Bskq-wajvPnMTz z9B@Cxo+siCf2H##p1pngo;Y@2!tP7M$0+}tw14r81}PtV?tqVLo7x0-mj|e=@EH-W zFZ+2j?B~s}pHIVnJ`F!{Sb1TK`nqo_KQC|GR_Awlp33B0fM1i@zw_iH4=FD^rS;;f z^0d{-+^2mgTq}$3C_fwVJ>-|dy&G36mQOhcD(>>H)P48?QT}x@eSnkE{#%^=$Hphz&P5l9XB(q#l2sMd%tv%xp%?+a6It1s>S=^*mE50ISzh4 z%ExcZ>=#V^2WY+6za4|Uf3f#3{xmD+=P0M2;%6*K<>2deoKima_=7$EV3&_wexp5f zUtZTv{~V~kqyK4d=>OFVHT6$@WGmIyKXu_L)zv>66~%w2yoM5a6@?}dt0*)t#ac+@ zRuuNpKN}a-TK_ztsDt#+0oq5^3wjtZ$~#I*>+K|^^>&uhdb>%KQoYba|4cRLC8Z_$ zNNI__Qd&YExkcXK$g3y}i&#bB>Qd}lDJ`o(IF=Y2f302^U;67rDV01$N_Dwg+Fk#z zUYMzWrdrLBQmq~@#hxz3o|DqrUX)UKFH5PsH>Fg{J5nm;Jt-}*TuMu94<+{`yzxuZ1cuuS`niRhQVJib8FPk}C>zB}%R+)RQQ=qR>EMiHbr) zDecu=B=)L$gfytA=F+9bJ-v^VYT8;#H9bg5H9b^nr1I1wq*RwqQd*+3l$Piwr6o?0 z8Wor5C8fMRQp)QqrMwGEe;r)<>t&_C4wD)cOSxJ~>%CS=d-X=CMe(nrrG1MUE3v)R z3lpWZ-YHUA@7+>b@66I)=al~XNa?Rnm;U-(>8~%A{<^62*EdUleXkT-UW%=h(%L?g z8Wn5xwUlbLR!X&6C#AffrAEcP-=(y@e@SV3%e1G`vel)uY)vUGTetMrdZoWMDE)Pp z(qEgD{@T3s*A`M*?>9l*;QRrS0e= zrTx}dO8c$9l=j<&(jmn*7%a6f>N2TgQCCZ;R@X|YRyRtiR->h~-my|z??fprF-1yC zOfSV|mSS_HRLbL}zdl|1>vN^Qz9^-2EGp%_S;~8-l()R}*OjHeepdSH*QLL%E&X*} z>94<+{`yzxuLYgqQvJ%Lv~9Xbh;6GarERNMis{lcVhtsh)v+Ic)!88aT2W|G`s+Rt zC07($OKE=`Dy8;oFV#GZW9ulXPEnntZHm%Fv#?!J-K2&^aTjCPqIyWpis~b!^7=}t z&i$pdZG%gHy{z^Uhd`*P{8i%Nferxbgy6k9H(C00slZC{r1zLt(F_UE!b^c z`dv!3|4T}>FO<2w>Qee^O)34gcImHmrL?vNr99ozio9J)dCg0IZBhE`KBd35mQpF5 zOL_XzMwHT{6zf%r^)1Evmtq%6u~(&3-epqSZ^NXt->#O@e$x-M#kP%>(zcD2QYqu5 zRLVptl`=(2rQ9v0Ql?93RGA~Cwt7TL5CBCn#b zJn||EpOs>IG_AOfio(|t>!>KKmC_NlPD*FupQUsr{#{CE;=iO#y0b)~TyHThO0Ui+ z)Gn&Jv{f(uT2tD(7}J+t3-yXIeI>83eNpwKouul8hEm${U8J<-n)bz(>mh{La@}H! zJWakM@1RniF76|*y_8z~C@HmgCn>dfXDPM#DN zlu~(@NvV`!QYz)zQtZZ3Y_yb09xJ7i$4jZ?iBc+gij+#eTS_&ZE~OD}rj*V&bENhK z+V2r5opBzQ(y{uSlxp>&lxp>|lxna@N;P;>N;P;-N=q!4(h@7Bw8UppTH@$ zx>DZHrM%yzRPtX^+P1cSoMAA_Y- zgUh6}9mAxw9oLrrdSmIYqf37sE2XWRSjwAH%DcOiH@%cMQ)*nS!6OputtdP$rJ6o1 zrS-lTf3044IsRI`uqggoQFtf*sxcz|sxhMU*OgLZm0Z2>rIfbqYbkBpS}Cn#os??- zv(&h_#P3q<=}oXd=fy#~;$DrAym1u(oca@Gi4#A{a#~uko9jjIiCLMxC z4Uo~QL4#?a=NK=GMy;BoVbWp-I-1eyR1I*xzx7*db)8;Uw)uEJ_qx~ptmn`B=E#*jyx&#~zoyMSEfQrvD-Pei`@Mk$11&Ku8p6FF}x=bg`6r{mUrm5VX9 zFZ|mAUaOfnVqaxGZ(YbE7Li|nmyqvVSI}QRM{B=~{swWKBk$Wa`k|m>=*ghtXd-9;xr0IE?uU@OKY`r+XwDnU zd8c#Uc-}gZw@&4)=a8$MM_z+z$RieF9kna=muswK{-YuM@>99>psj#Va1U`@_iZf_jnP1@)mfvX@-@$nS!V zp~ph3AGwzS`C z^1AFISH6SX%U$Gk*+X8J%0p>g>XFx=0lCvg~!SLJL7x(8q$7(QgK=px+I;idKTwk@x&M@}6%X@A(bnJ>Nv$^P9*cc92Kh zMjo+?JmL=Wh`Z=u*pEFF&!L92R<+1$Rgb(@4ajTNh_qHbLq?jHXUItN@(daIRk9uV zRq_DRt0d2n(BvVh3;Ac*Zls@F>nn$m_oEkiKl+gO<0$fe97EcVeU<*0x34k~^Y|Ge zZyiF~kA0OB$VY1wd5$sUIZh+baR&K(8Ao1&DdZ97kVl+H9x;vF)dl3$y@Whs26@CB z@`!ol5evv87Lks}zRDG(vAnlH8q2#)q_Mo)MBejj$osaAyyDl9p3w6ug#OQfw254A z3%TA+nxd;7o`cJREe-yU=neP_@yG#qpsjRf_hcLxoi9|#&m?+qG4 z<3T6T`-4W%j|GjQp9~s9(?O@vPY0brKNmEPeko`Q`TRSFeEywBKL4gsyoVv5e;1L@ zze~vH-wg8kH-~)w%_E&WNd zb>#E!2J(JvBJal*@_y{(t+(^m-MsZ~-ny5!R`{z2kF7;sgL>pOXh88EhCFXG^1Lm` zW83rA19@v_-r9v+xf{9iVdQ$f$o2Y=>m5ZNaSVCHapYe5k&nj!^6?l%J|08J$KwR@ z@fblq9;4_j;dqQ8ACJ?>$Kwq0@t8pFZwk4;bIAQo=dBm=){A-TCFJhsa^8H-TgZ7! zdFz$DbvbWcL9TKYc@5T)ySk3N8XL&_djokdH_>}1b>F>%JmN0$e(WLdhdvhJIckyT zs7J2ch&;9ld2BQC*cRlmt;k~!Adl!o9?^w7q8oWcU(P$4^N!`b<2kP%x$*#VSA(c4 z9Kj*vqkjVV=#L<;#wha9A46W3)5u4E9J$j82%J!5cBxiImY%?W^!x} zX)MoBkb2%%SwQM)Uu6;bUB(iM&rp!xt1P39@a}L0`5og`pa=n(E*P8R%bKZfR*Ol|Sb6!u* z>&;vH^44QHc09-WkvkYb?qCr4+!#VWH%_3gaBhqu@5dPOzMV#{at67|IC7N<W{0`l04$YU=dkDWp8U>>>30&#DE1F14k zSdc37E*GgXPgru^PR_fX^LBIIotVda+n84$%DU59CUB?q$elJI?{6dW{x&1NxYM-o z&12hhtTU@CZ|%vk!#UQAJX;^~Y)6r2JBB=4KjMqo2KeUL29d`OA&)(QJa!cE#fUM! zdBm9<8_%%`3A>{o%fxN#X$an8i;w{KkT9K=?BUd?q zT%{AaN*8jKZsaP5k*o9~SLs8pax8B>p11brtpmt&jO4u0oHv&9PUpPwoHvp4rgGl7 zoHw2GF66w6Iqy==n?c^UIplp?K;EN8y5m1 zGjH8Ou6Gl;-fiT1yU6wKAlKW=TPt6aw$>w$Xvncf+ zE6A~_96N_R;zHhfF>k$;x6UB%`5f{d&7*jvkfnj`6sy>$Un(#BL5_}h5VD;P2?vDJE-Nbdby2W5VVV4 z6m$n247!WDg7(m>f-29V`=DC%`k;E$7u0~>7}SW~64Znq3u;CKK`rPVL9OVWLG9>W zK?l%iP$zm%P#5~4plps`Q7yl@_Xtz?>E)ZN^dVO{hMadC@kL%g-<&sqoHvL(+X>_mBZx0X zjPlJR#*jyxLCzaTe33VmW9M>gI>#>L*rgns$+7tyTgb6Rg5=`!-VtRSz; zRrIRR%QfV)a~=79a2@%6a09vfO~e=7-^{U{9J`I&!7g$KcaS@{i`>B;atD>>)IlwB z2ldDuG$41-hlM7|?+A>Wa@k?%-7$j>$p zBR|{hMSix~hx}~wDDtz-W5~}ok0U?Z>_>jKIe`3Za|n6;P9S!k^&3H6t5M{&I-T>* z!$Fc$WST>>sM)CJ9$j7o7`B=6fAInyxedhBo$j9;k^0DkhK9*fbds<)VMn0B3 z$j_+{BR{9^MS8x$-##Eer#_1Oocb8@bL!*B&#C*7pHmMYKc^ls3i zQ03YDum1$qqB}wL=wE{x(3gW6QBC;NOB1ROYDP~BYC-<=b}M>jh_$1KgAO2nhN=_2 zAjG=Ri-Nk*!Jr=06?7QADySE|HmDE1KIkaw3p$407<3%@GeG^wp8*;`{tVC{@@IgC zkUs--0=+Yg9YOvK&?xd}fX0wN19TesGeBpMKLa$5{28DLbT(9(LjO7F9Qr`ed2}IY z8vSh01@wzS7tw6cB{Uy2gZ#GzbLiJXY#x0)XaW6J&>~t6T0)-+x`I9(w2b~RXa(tg z6QAco*F)?Y`m>;Q^jAUG(ccDbpqoKA(EkkDM1LQ&h5jk%Cb}E6gT54W8$HMkkk9iY z|7FA-^pp_0iyDIV&@+N6^!BWvTJ)Ttdej=!fI5O2(MyAx(946Gk^knR1$Bp5EBgAN zcJvKF2T(Pr6CDleLT?W0MsEx1LEjd17!3yXBL6iVL<3>#67nn9736m#%gC=_ zE6A^4SCL=At|7mIts}pJT}OTe+dzH=yMg=)wu$@-wuSr(b`$v(YzO%j>^AZ%*e>!b z*d63ous!7U(~^1pYLVBko^M{i2ITc?L|(rpk)9LJF7IF9&Y4*ff7o?`%cjzQ!(P9TpRK^{Ab_+soB-#qp- z^4K%TV<(WuP9cvyhxlUbdA@nkZXmwsV3Tj|U<WT9Egs6?u=^k@x5T@>SM}e3f;fcZ3eQ zk*~7D$es2gciM;C=~3i8Kc4gYbKXGC8_an_$a{1Gd5=br_h=M(kH(Pq=rr;kok8BC zapXOkK;EM% z(i+qvAJux~duJnZ&rQfZHzW7lnzy#+tq1bfuDrE7Z|%ujd-K-5y!B|_dJM%g2YEFH zkb4+s)(PY)Q^@;!9(j+Zk@x5VipM-}oylA0^459edJD+) z7LnI)33>glAg|vt@)@y$ULWp5SCOyZYslB{I`Z|qf!yB>Sw+kiZ8Bl5gW$n!QM&)b4LZ!7Y=?a1?XBG>Ce zuGfv?S%O^eFmk*~jy(1{^4JaJu{V&%ZX%D}LLPe) z`DoonuCj|<d~tz+P6mJdQHgnnvv_ZAil_J=bQ5mAm?@E zSa*)~Adfwa_+o4?-`qv>IBlohEV>feb2f4r7h%d(O^3D5u2YG+@ zkn2@mnCjIckF7@@+kiZ_5qWGg^4J#SURsgIwj+-{fIPMnX)OPG4boWty#l1M{H-eT z*uJ=xzg~%3>nq3d*8aS8Aa5PaTZfS6J%K#$2y)M($jA3Ia`$JDyPwFhsT@0p+|_yH z$`^9p#hf>jV{e9^{{_4oLaP3?SFr%z0ZekKgj-tvkrG?dH5YId3n=D(z{1YmqD0BadxF?xiW` zHRrsRn76Oe9`pFuNMas;MH2J4rt{XGy!CM0$}{-5m1{a~<(kf0k0bZekGyIF$g4Jp zylO+pXY2{&Gj;^|j2%PXkJHG<_YCs>jw8=8fjq|)@*L-o=Qxi%$29UB7m(+;ggnO# z@*H!>b1dYoi+Sr(-g*VOgJt9nR**Zmirm3E@*LNZ=h#4=;|6k-t(8EJp_RqBzhU;f<+9&~$r z9^}f$V~nSWIW~Yi+aU66Cvx6M&Ku2nV>$0M;*0$_!#A(wIPywPAYc1a$mhm6I-A1(Hny?6K&bx-({W@~@*O9y5K<@qqa`&6a-ESdxe-pX;9pvtBBX_@x-2GkT?)Q+p z*FR(F?rV{|uSf2x0lBM2yh96 zHz2?JZ_H{!e)r#u{O-R6`Q3jj^1J_blP%C-Nslx{yB^(v9|iv+ia+$e#>3 zjQq)vUgS@P^r07ryramU3^|7U$&lm7pA6|oheF-}@+U(Ekv|zSg#5{n6X>lWZv^?1 zA*0Bj3>iayYH%72hrBb$p9~pC{$$7m@+U*4(0fDPIpj}= zXF4vSPlT~E$e-z$L;g(1Jo0Bc7SLxx-Xij6I+l<>({Tm)Gabw5uS4Dn@@G1(B7dgi z8uDj4*3mzNyz9uH>DWO2Over6&va~}nxi^KTgad3xQYCkjve&=0p??YZK@+Ud!kw3}NfLnjb6Su;$^=|{e24%54(&P&Mad%4)y&NqojteGsqo`BX=-?yysKMdwvdi zh0Y_d&@}RDTtu#N2|fH1dRH|UW4!xPj5X!m7g8_0`$DdFBj)j$j+n=*Rm`ie?BuPt z^VZ$G^={s}m$z14miD(6c`xgcXKO(2z7c6J`8Q#Zy64}7LGH8_xzl!}u{_N~+FzdL zAwT!&LVoVkjr^AkJxKR)p4B7&B||UrUo!L||0Tmwq@V5idmQAS?T;h>zN{bl_hkdf zzb_j^dbU*0|F&dW@e9bu?IQA#p2=J1^49shbun*U%3GInY$eC8BG)p4k zo?{a^b}q-x=h!rIl?%unT*`SfId4A47IJJ6dF++EbvbWc$y=|Yczko-^_+Jj$2N0p z3%T-6-g-N4-OXF?=B;~qYvtu>Y%PjM75S((A|Hh&qt+Mc&|=2%yb_2k&$ z9P7)mqd9gQxpF`9Su%ip4h^SmyI)UPy6~#L% z@_9OqT=@cW<%`IbXY$s$ymcYR7ISO~dBk$wx{|kE&0DXbc+8PI-9YZ(266{mId(J0 zc97@T&0Fu}t#|X*J>)rR*=<*@N3Ps}T%{2?uL-%A7WD5+x-MH$<-beqs4nOLdTLN7 z`s$!A)D+Z>zBZ@_Jum1mY76Q`2ZH+0%Yu%gR|XwJuL(Mi4hQw4Hv|o!ZweYjj|L5) z<3T6Tw+4-%{}42azAI=9od`OOz9;Am`o5rX^hD4EIukU7ekAA|`q7~C=*NSm(fObY z=z~EQ(SHrPgnm9~2F(P`q02$@=vRUk&~F4SqNSiE^xHvK(C-B;qt&1lbS>yA`lFz0 z=ud*y(O(2zN1H(#=yO3g(C33T(HDcZ&~DI8^v^*%=-+~Fqpt+*qT1iod2k2q3%ZM* z9<+z{2UT9d^N65Y^xU9&^unM9^x~jK)EU%-UJ=xcULDke4h6NM-k^4LBrey zK_}2p2aTYg3mQeg6f}nBf=;842Ax5_9yE?V5j26W1Wln&2AxBH5Of}WCTJS12VFp) z4Z4W_Jm?bo>!2C56*Px#1I=Gq-WYTjy(MT5 zJr-1XB|pyu)uML<)uVR?HK2C|HKNg=CiI@5X7ocrE$GRhRx}aRj?M-hK>sZL(m2E zjG&9?SwWZ3bAo12YtS6(2%1MP4O&1i4_ZXsK}+cCgRY=&2wFzfpcQm9=qh@1&^7e7 zpmp?ZLD$h>&<1)u=mz@kpiOitXbX)6-9$eaw1a*)=r(#^&@P$^x`Tcq=q~!Hpgr`V zpvogWYYD1FzYtW9emSTCeI%$6Ed({8j|DZO-wbL&zZ=wxo*CXD_o0V_jv~KyA47ia zK92m_-H-f^X8>_y=C}=_R|O3rzvDT9{GMwRd5$sUIZh+bF`lkZv}ZTujRb;oOeCvZRETg$g8o5yc%1`tFeQ;zqgV1 zcNclKJIJ%$MXs`kTt)w*X0B3;yr%WYYubRkrcKCmG$YT^f;>kn@*M5Ra~wdPqYHU# zH}cpXshSL4WCO(1tQh1}Ko zymdNny^yzFM6NuO^X78ie9l|UTbJ_IYJ?CxYyc;=hGw0pRc{@38 zH^=Ve*j?l~_K@eO<$!z7>yfuMAa89#@tEhlmYmm`^A6;^&YahsV?8-`7N8aBF^RB3psW% z$7XVDF30APt1RZNOL^;Zj;-X_Rpb%tdF%DObt7-x%v-ne)|+|j4)Pk@MqYzm@>@^N#1d z{+u_E^M-QXiJUi@V`DjX8hMWKymcaPoyuF!=dIIu>%|!b)UPu1@YnzpK27{JY8>TE ztqY$@j9Yn*8MpErGjHueIw$#jBGM}fpE*W;%6S<1DQ7S8Q_eo*r<_NTpK>14)=7;$ zj{GUO0i>?@>j4yB_hXEINdi60R{nx9$4=+i85GYFZn_$1Wm|y@Wh= zF6YhXyoH>%nDds9uh3<*|7X?T3Th6zik=&E4ZSdE9lbc{I_eDCK(7e8fnFW7i4Fzb zL_S(O=;5#iw~>3^Meg|yaxZt0&)7;&8e5AV4rA+)$2K63ZOVDgIj<$>wdbt|^48A0 zwF|jQH*yDuk$dh%p0^Kq-eWm-JjeQx#||JL{Xyj4?F=DbWh2OyN0BR!Ay+<=w~ptn z6M5?ta;N8zXPZW@cLBNHMdW%jdFx!>I-j>LAlF+&u6G5w-ZFB%736x?^49gd^?KgA zfn4tfa=lIDW4VR=>UR@y^XFXKL0+rd$nWNMk)J@`L4J097riBn*h7y6RlYv`Hmw%< zw`ujrE8c*9p;>b@BL6n63Hi5a&B%Ac7WA=@*NXgG%XZ}7S{^|Dtz{=#3wd40zqRZ} z{;g#X@^38_h&oYk&nz0@{zfMd}Nl9kIV{+uTjWHW*vFot|RZ;2J*gb=B-&?9NcHX+1x8BKH?;@|u9`d?qx4ka4$m>#%yei$8xLuS+xXy0jp#ODpoa zv?H&}0pxY*L|&IJ(uaJ;9z{N5k0GD2$C1z2e&jQD0Qrm^ zL_TAOkk8l?$Y<;b@)2y@0%?myqktAdj6x z9=m`%?_$nd%6ZFq>q_2wHE&(dTd(J>8+q#tzln6^IphxJkvmw-TbJ_I|9 znhCm#E(h(QUkR!l<{5WTEm{hyN537^fPOEi5v>L_p=&|S=#PT*FaG^WP%HY2pmwww zbO3!Ws1toYNdNZV7lXRdZcq>U=b*#r--3G4SAz7f0M_2rS{+6Ef{vl52OUTIgZfc( zkp4Zu=LQX;7X}TX7YCg{ok1h$6+!x!0bd<7h7JXtM!i92(2<~V^roN*^wyv$)E{&X zeS6S(^qoP|XgKHs8VS0H-W_xa{XozRdT-D?@>#cl`obM#5&4>4Lca2@Am7oKk>541 zApZ+ZSCKz+cMbWIaqGyRU)w;Q;|B7Xy{WBXw!OTy^18IO7I|v}^4P|_wK>OHa;z13 zL_6}edI0%4??k@NyO6K*ZsdDs58^W9m>)*IclIK$Mj!IM^CKWJc@kp97Dd2P9tAOXOOR>apdc00{J?cLcWg9Azw%5 zk*}U<yq(I`Y-CfqdTIKtAs`kBxd&pO^E?!^B zwa8a;J>PsKHy~fhjmTGW6Y`bZjC>`xpm&5TxfS_JZb!b74m7xIDbI*$A9^8p+5*)ub|HaEu;0I739AexQf0!t#k4ks`;R_j_QLp&@(HF z-9Ww;Hj%G|E#zzACVEjtc{|A0!foVhVHf#YxQkqG54m3D4XIu&a=m(_di=3uF|G?4Z`+oj= z-WTjNR&kC0mC*+)C;6VnPGF7w9mY=bJ>{RpDQ5r+m4M|K^Eb z=6f2uf;Cq4SNWdug%|4 z6#3N{SI@G>{v%^$jeQC?k0V9?Fi!o*sZUw;Rp$gwy`98qerD@*iXU<+KiM zMZTPB%9?k9`W-l}LpA1yYXl!6N5`=br*#{~8vBYLe6S*`XXT$La!%q@a}ukc(LZ~j zBA>#4N1t-)Uru$-;xu-)h|8MyPZ)c-$XUgyzO4Gwn7I9hm!;F>H+ZlYM$REb( zc*#$aqjObG^-mW0lSN!s{eS1U%c|c<{aKu9%Bjv}oc3!q=KmUF<&-0<=I>Ew8>fEc zR8y{!^9;tyY3wbW>etk{AJvyt^YhUuzm2%8d!zgW{`o7cRgCMpK7v!tVSI=j-4o}7^|PPB4-|!A?>EJ``q#X-im^3c<(%izo1DhV%2y9{IQ7|vtE%%`oRcvptS5eqxZXdc zoPYdH=P3U-qjgMQPfg`KiS>Hg5$kBKDo#DfsRvp6vdTIf!Kt6&B1ca3CvoaWRu5nI z+nl%e<)r$v#5M2#qP|?lHSZ1Lmx-r&SBo53IgfpkV}w=bg?O#V-^QsQS^aF1Bd59K z)c-A<=Bjzhy&PF{{n_91z7%V&pTTuF<+m02@+0JEZRJ$I1E>5dPCXnc;=@J!WD%b% z;%AHaY!P3@>hlZqCa3yqMgBHU{m7|LIpyCf@@wkv#bwp+(>h?S!?$Z4ikvo_>dUF7 zoaU+)@!|V?h?=_ACX4ti)?7`z|CCcrS^a#49xmgwwyQYxAg6pe^{|aK_U`}U{c4dT zYp$nhANTp3c`?_Qoa)G`uj{U^h__*l{n%}4W7WSDoyK+$PkmNn{>#acmH*?>DStS| zx9L+ZzgYWzAX;-N{|NC^XBcb0{+M${PB|x| zb!|=-K8w@X*&=@hKT4hVa35PO^4E&|t(fxxa<*fR`jOT1&+YPmXh3y-pPU-ZSLj(* z&M*EG=MqjmwBkpJ?~&hz`SNQh(0=_TH5E^5C_hGA=VUK_6hDpoXBG1m#>&dkYk{n> z%0GhByhHd=;xA(CFjj9@nM>v?)S0}`XT;#0aCy0MP zuW_qIj-2Ytss2{X|3~t-W4?~5e2_XHy<=vdEW}e~5fp`*j?j#c8hDB41Yi3jN5+e?Pul{1fTR`r9$5>4WTV%=yZ+opNd#@2#zz z;%!A-F5}wAUg~rZPyJW%LE=w+I_FZ6FRQnIej4Xhkw1hVC9c=m;UZtwF$&jOkv|dh z^_n{wbHeq7Q*Vl^w`bKq5dK%PRbQ{avqg@qKHo||vU+pKblKc z{U7@()*PpK*KiuUg*8^M#oI9_oL5Co_du+g%CEzzW?K>ODB@MD zu|M%;`oh|mr#7(uMgEZ@e;B8=l~0lX+k4#KihNl$|CRX37!UWiB4-k7t`D$ovhsiC zDfU4;NBk`D)c-6_^U7%-WsQ9{V`cU8C#>ydoW`zV&9%mU$*MmYo$4sAI{&-wfy!Dj zb{nhaEO9yYAg8f%8hb0owZApb^juFga=qh}FRPzRU+uWYehk+UPd&F4`Er_9R{jDt z=VXQjGYdA(&Ia(h%)say${?eB?)-fks zcR1B)#j10KIxmPhs?%2F%c{A>IWIqf&pf~}jXBEi#j5j{)OkY@uSRQLS#|zO#~MF@ z-}4~H7pH!PuvE^(CDfIL*6)A0_@1)cI5~cJ)3#LXP%PalXR7 ztbtT#8>{}0GncG+za{#iIQCYNU(@7uP)(Ulp{AVj>u{>yhE@Ml4{>~p99eVyIq{An zzgpzTkHjA2G}naz}~{cXdl^8)6T)sL=mIrY;~zOztf)C)``G=G`PdS;Wuc)Z1(kzg)yui@2;FUP>KVHNO|H#T@msUF6@w zseTPVSf{aa>R(o!_fe-U#>1M#{7cVuTseP@JBX*6)gnh$&dBpvE1c>dDe{MLRdt@v z`rt|YQ_r%MAJ!`7yr|XjbWBecbtbX)1~)?9n!-zxHJn(wWNoc3K# zbJgKgzpcoT(|XD&zoW>nV$J(`_EA>P{~n$4kHoR+a~P){xc1KoO+(csivIj$f^G7eO8^fHFF;*;&e7an4m){q*V_#%W$T%`2yQ zJ8-I5#j3Nc^}(w1{^*oH9CJQPTvj}+TakYfr<#*7-p6s5RsYH8RCAVi>D060sprc$ z)m$y|<&-Z!LVaCRavHmh4-!`ovU-?~PW|5^p6b^;+c^ido>*i5p~X&pwh>SD#1|tUg~(pGR;SJ6z<*svn+5;na`f>gU7UXWk$4 zHP>Xc*5@ovH9uVB%oaJ9i=0)Q_C-#8t`#|-i*e1hUF68xm(RYFXWdMi#>$F+KE|~U z|Bma3r{3C%eEBhQw7;_U@mC+`c{o0W|28`H*%8Nvb;hZFHO93LvU+G6=69NyuW&CN zE^_2la}q1RhkQBh%WRDQAaS{jYu+~#UnPDD?`I$7lq0A5a@t4v5%SgNcFYfJi&gX0 zALV?;>Sr9+@ZmSrRF16m`O%L!p6a&|Ph;hjFRRYGs8fypkMs5u#D6MU`ReBgIZW-f ziggqp#)o2jvWTB8@@KK;`V@1?siv&CexIIY_4z?^RTNsb zhjqiM`N((j>;8a>`l5XU<}4WQ~0yI_1|q z@7}y}8Be{{5l=PSVotce?z8HzzK``Gu6h3+A1THTW9?(OrxjyQ7CDnxV{0Z@t0G5M z{SQ-f7FY4sf3hFLdX}sBlUSd5kkeeU_Deml;#5a2}nfXw?bl67l3Vtlq*s4Nv09US3DA`k!E|tUklDVw}cy6s|^xHOK1n;csW1ap+-y zbuRLUi~N%~9lOaQK3jMdtL8LyWYxSJt$sA`c9CDxdT-t8qP6dBSY!W&-elGMzoS!~ z4&t)%tI?`|q=*k=)#>^VTt`@So)ewwoFty=Oh&8DS)BHF7OTz~dXQCTDLU0zC7!%} zpOxQ9zT&F$27C*r`ZX`OH@2;CFMgDKJ-@0JaancRzk_3kRsXB;P|VjetKlMlBF6O$ zYO;vS8vAb6L{`lo#WOKq&zfe7{FNAg$`?8RvBv%m`Lf3Tar8r2Yq%Bj^;~Ehr+DRs z-Y-4>slh2;htrz0#vDD{X)AJM&AY??$_Me6a0gCft402iXq_j+MSSu;tLEMy>p)yJ zKZR$DoK>ux?;jv2r8_#+oFtg;Z*rBKfBtUP0jHd^IMtjj;;V(%ik$5t zUekWBP908l+KPC!@NnUiMgC+FpDld3$XPAoYejs!h~FyWH631`-&x@O52o$PPITJ$ zI^wx!{0KQ(^ERAv_0s*4Vd4r~F$*e$9*T)sa*Ex)=}ZfK}&n)M>-2KNFp5b`Z~N632$?9jBUA zTxIN^^B(v}kw0AI%c;JsdDoe1GWs>FgRGo~qEipE#7n1n71zAq|0}Fvtn)9_lv5o! zja|cOU$$fZSAL20jQLG7w(_+;H3xhShrj8-npfw!;wh&Nrg!m@%Kt3!Nu1`AQ_c*2lpOv2&TJ8vHSdQQ zE33|b!uns`QU3FHxlXZq{>UeJ-N8>{y)TtheL2m$hEva5Sapt2XS>LkHP$6?tS6=EmT9X=_>eS&hwylU)3m++RhKu-Q;j=}~Y>ewV zx?IFpi}+d*-!9@c2ffb6zszeQ)*9A)#m+qw&pqSE$O%82;7P1!*KPPA99}DN6~DKZ z_p4Yn4^dy{tD?E&hhqLPPIcrIKZ(=4lSN!k`Li*ueU~-YH1%b^!d$B{C%g{EoVE(r zSIqfK_IC}Zxwd0Y4>>Yll{ZH}6nn1e^j!ZJak-2u|Cfo^5l=PSV*WcH;Qe0A53dV2 z<#!bM)tD3R|2XZh;yQ=*bKj97e;BJyJ@sYvqx!Pe@CACfT;#77IdZDMR^)7B)%-KY%4uF%HQ!78R*_%xGM{6s zoMUpTDW~&OPIc;V>c6ds%bItE`f{49qsXtuoWIw3i&ZlmmzaN<_~S7i*1X6W#_CPi z$Vr@fcz=;Ui8b%bI1gp@(;S`V`f!myi&ITG<*Z`W`4Ps-s&h3u<*X4;J!}_a z5MRaV9G26(Ytfo(yNK7k{9cZ%I&Zqdy$)-xSK&6CYRai*2Tr|Ji};ZuK3v3Q)qm-K z=e;Xd{Xsk#{Y$@TtA1FMB7YXA^_L$bC%os!sUO8tpQ}ZD4W~Z0vF7dgDA!bxQ`2>? zj;x$Z2aIkNWUgXGA{|2Xa_@~b%YDW~4#Q{>+zUw#tnbyj`^hwBKZ{Tjxp zj-2YqDPJ!0Q_Yja)4op@IkNh1pa)s~zYNb7IdZBar@3VHp!L5T^R+&!(du7T&G($( zH3e&~H{i7*e;cRza+RDml+%9Iyuvj<@=oq=xQwg*B=I`pX@A>_968M;KSq9d zy~d~TlaF&8ahkV^)&KWVQ%-XY<3q%CUCSvx8S|IPms5N;TI+Ker`}eJxU9KqzK-h` zAH>&Q#?Jypj-1x~RuQjxrSto{xMs2HygoYhP)A%2=P*wD*cRhDUT-LJs#raI`jwoM zST#QuooXH-p7v!pj#V8w)t@Zlvg*8)-p4i%vOf#8VI3 zaja^}X{@ZV|DrW{u@4dNz-g{(kt6RXNAEp`vGT_s;r@nI z^Mlc;=SkvE64&)E?~h~UlyerRxn{9y?$U#-nspotIpwd$_^*>AEB|MsQ_eQ={c$ci z#c$y>S55c5969B*-RFbUIYAGKYp%EI+$hG%Y3vc4>JMX$efP^*pCU(AodM#LSbgf+ zlv5pQsVY>bEVr^uPbs`LF?E3CObM$J{6)?7|C3qYQOZDZHKY5>(^Y!eb;u_nIXXDtKZ3Qka_Uo7KRU-w z;?(o|@e{-!`~>&#B41AZe>mp6gPhqSM@~7Pia8BSy!PQk)YR*RtR8fq{9MfWBstqL zu0CsCb1$b3r{3DI_VKm6Z;`c+Z;ehht8uLA$SFtG*th>WKL-^#a$1K;e2Sd!`Z)WJ zpTyxF74y}z;#J~59dnfbhtZE<<;;?k)gO^}`?8AF+v`8Z`V={``g|$z?HE^0 zS@Bc!FKev!y{6}0eOWnMi;kz9HsYlpB1bh9SN=bfUyXhm`ywkRtYIAcLgK?kTu%FV z5~ux|jQQv3Uru#o&Gla5vp9{FQ_gD4xvMp~FMg1*zo#{c@vtT_|Ji)rMsel*HJ_)d z`TBeHWz|=H9Zr3=VdZ~-d^zRF>hsgYt3_N+J z{=4{mk*xZq z*eb?upQUpQ=kqYe|Bjw-;nZj48}9X4gEj9rF;-4J*Wr}kTI9DCIUPk#Z;?~Q zTAx|gM@}_m&Gl2nkHomvdFs>K0C8 z_0L15u{Aj5%ZJF<{hSwsf zpNMf?kCR1wrijlLaXIyW8K?RyMgD4$zgFaI6*=2QPNmnq>F*6|a9%5{eQaZ2>TsH? z6>DFV--flnfAkjK4`by&oqRdf>A-1hFHU2tMb1zWA1>k(F|NNIn=ImIajH2}6>i=$Z%0EIp%{3Iq>UgaX3qsZ?q@~c?& z>%WEd$EyE5(P`|FV(d^cb~xt0o_tyPS_e7RJc(1E6FBubi8a?t87rr;avFOUr?E3Q zjh!uWWYy`Xj-2XT#%b&dPGeW`e)4s{m9ZAHAdh*yjFk!Y>YP?0lS-i~N?>P0-TI9DC`5i@0Z;?~Qs`K5CbB!1IM~eL6 znDe%`aV_J6n<+R=BgXH&djw!CWz6bYW_49%~?h{x!|AW6%kd^b$ zciF0``^hlzR9{xktH_bl*vS}gB`&A2a>|*-rx<&gdz$=6tS_g0S^F67;YEBEYu>jo zc02k_%q6S-cSWZo#_)YiXHCQ$O z6R-8MYJLc};Z##jb>vh>)?6Rqb-ao-_Hp`=Q@*VF=ZFu-{Fl7RPW2T}`ICib3$J3; z|DkVW-?3^gM5nRaMSjhr_l}*Ma@w%Qeod8qEaFvska%|={l}c=M?XY7T#v+)CkxNs z=Y!<`IlU>axjuzg@Do_~;ngC4E5>!d-NsdNevo z<&E}1;-834`BidG5&z6Lv5!R^IUkE6K8#ZxS#y1XniE+2qGw9-qxfYH@Us|BbIlYv zvU0wOoY^90rO1($Gepj6ks}`@Ue9L_WcBb*ydG^~^`K`Ovc`THZ{xHtvexro87n`8 zwVtx>^Lk%bdGozGvg$nhLDm_kI&vD@TI9>he+~I^Mla!%s3FB36e$4*v$c>aKOPX00Xz)5@%-;7Q@&&07hc5)g!8}mE( z8#FoP%c|K(e5J^jA0@71x*Bu7MSs7BHSc#vr#jojA0Zyjd0fWR`G1Re+Q*u=-n%a3 zG*(Vy+lsiH;?=^#g(vT`_Ukowd0$8TAgEK(~sh*A360i8}s#ELe{(wd@JW0R{cNc zed%SK`dlsYW!2PrZpZv*F;-R&;pYgfny)8b^DX!C<&@KgmGeGwWX;%HN1iIjhB3ImNeQeiP3wX&HFpisZO;RE2puK7x7`NI{l25(^y$Gf0+15oYru%$dOY`xk~;w zoaBF-qsX7d!^9uvKUwv|ef~bDoK@n7V*YlKBdebY{&!yFlwb4M|KI$-elH5D_!Z!8c7*Av0A8Ur6 zNn=j;DbBZ8=Z(=RU-4A)EKdD@IL5>ESd5*;n)kibky9Nx)wzsQomIS_{BW3 zV@LcTekbn0skds8FDt)?99j95=+wh7@zjHy`jpeWa+!aMGW*%Dlf=`!lSPi4#>(p9 ziz6I&oO+mz@i)_tobqMmXusq%?`53kT8%kBq}R0~N7h`A6W=a!WW|3q##7B(#8b_h zZ}scc5A&KRYaPPReOT)gt}mR%*5Nd^4Xgg^cs-KU{{zt}zoW>n;uM!tzN|WLW9*S4 ze;B8J3e7CC2&_-qlE4^dP1vCBoyYLT;6#J7w1ts-9Y_Iv%* z;nYK05$`DC)gpeRhz}R>lSO>8h|d;YExcX0=G*S=mz>tBt#AiUeO8OOoYv$>kuzN6 zoGjv#MSQmKw*0R*&_J8ERqraEuvFoyGw7vCgWRlvfS*h6?FB8#t z*;*}PA|9{dVb`+ceF#w#ZI*=^NmLYN9?J@aNb=7AIM)69?)!9qKFz1&b2`rNd0xNk zTG#!uw;}ty`OM2cSAG`coT1!NfASymH4)AZb2vHj4$gIOK}XFZvD)Cp`Kau(krJ|u1hHRjIE_eN*ba`|suS;mjJex;e6Q?|L!MD(rRL2p%@aox9@89nRn3 z$X?6#@3Xz=Y|dHiBgdH(XIkoV zGH1n^7e_YpBb>vcI7>Laa%QcHvo3YnoC~ug^xR)a*XRwd$eGR=s>N&Tr^vdZS z6=z)PvN`wRd?v-27Dvu?&5ARJ?fpFGAZOO1I7>Laa-3Ch*04E`AV=2mIouSdcYLod z>pvN%59itkaC+s;9l~)s*xuLEE5{$h@#WMfaC)buE}Qcra%OOxIhgL|6sI@d z?S1So@x3>^L(VfBJJ)x3pL(u$04GO|Gb~OAoAU~OFDJ*52h{(H`UpwMjZhWp6@LzMnY-Ul!p^-FKWkVw-)Cu2{3YB`?_Hmt zUm73g&oSlXr+(MseBpY#PG-gVwbq+i)-NUBKO2p+gjdvajaR{5qkopYZgaiYa(d;= zl9RuIlhd2*)n%`Jbp!tF6;5v-jz1{AtpAVra{OWOyHb~T@ZZCk$k|6W=MB_HaAqBc zb05cW&Q?zEq_NNHwAAIylCzuatRXwk;LMuC$&};E`d?=^IhhMMy{F;ai)C?Sdtb;b zIr(z(S8#IHr7qk1I(lV$y+%1ZY~b|vereag4!#^;&a6Hhe*ot^s$&usBnI*f!zq9{Uu=oA*{QJGvt^VYj?XtdSwV|GUdJo>su`XwaJ{)II z9NAf~Cv#Ywt~hdXM#UM!_P&T-Ir~hCGc9#l|M!2GvxPl}KZa+;pO?CvGm-86EdHYS z%jS5!a)mz zv+e!zo+IlFZ^`Ec&b9R6_=jL;d4C6R@@0FkM!uXKWc_og58>o=u)U8T@_B*ny`ph? zN5vn*smllP{oU!LI8*pAbe+J+yW9P5!Mm>X z%GrNW{3V=Oa`I*OxgYs*c38ogwT8`n5p)?mJnIFT2A*?(d}d)8;JLK~AQu{|xH0 z;?LonryPG#oMoxY?(h{p@3NVPe~|APioY(tocv93dKc~XK8$BT&Rp628TCGV=FE#T zfRovkx}5rWA18lW>T>GyQkPR-?&IXIi!aCTo%l|UKPdGM-r*V_wZroOdxn3~cntgd zKP6`eIq=8 zbB%K5%IWPIZ$Dp!r-kRmm(73P9k`ZKm#shl$9C)P^BQ+ZIFH^P}UDRnuS(^8-9<2dtDUo_sHGwiiL zz^`}3kv)goQeTz2oXj;m#o7LMmf`GaJ^ODOZ|}>)c4uu4abMs#va`NMy@qSGjJ8RmU_j6rx z9NC;dq&_RYoLO@?*COW{<>bho!z0L9wEFg*!ei=won6B2`9pW){=&|^Q{&{UTCe-B zORtctl&9ou|11^uy53Hv^~3P?a|b8Wdd^`2yW95umin~#a&qKci=4T#bMN{;c{bqe zHfz55^TzHYXCHY$?`7;P@4%&MZ0CCA-hBvyYrvD>(O2PR@EC$G7f2 zkGm7k2|R#*8Qv7X_lVv48>!3bmCg6s<>d5R-E$bgX1;`8Is3@*6PQl=06Z;)Es-qu=)1N@#W;m_C611((3k3VSC?BU5+nbLjB{do=ofJyqfx~`18hQ z%E^?|E8BaF^I5>TcXH+~;VF*Kzudu}dgVBB zW^Ib!`?bAHxuf?!oSU59e&IpkVc`xofA-^??Y_GEyq5Z?)W`ey1kOMH1fL!12jT76 z7H0~Z^DuJc%#yR`ys`IUxsUDr^Pl2(iPVq6&pns(fip`s$KC^v+;v`#(}Po&KZvb`VWx@3DVhv$vI z#l4nwKHWIGEvZ-5`3>&Ny7|A`*vywUj=#alKD}Sx&A$!Lvm9pt+j}p1v9jOng zC#P%vKU0@={-SYu$JBFQMXIlkpS)AAZM?b`~iGNGSB57IXPY72NoU|p1|j| z-Y1s&wD7DrzhCO}!f!9Uggu`}+=J%__I$2roZYUXehGEojca%c`*)t@IC4k**wNkk zLD=uXHq_69z24qq_s(3_e+JKqoE$m%19*UQ{k!ul6-RdGH{I>513zBs-9EPW+c?(a zkKpVxhBHgf4su8DD}S2LFPv+c!09~+AI0&VJZ=8Vxpq03a(dog3a+=J%`gP zr&mtzqVTf#a(p@d3eK!`@#Q#jdN;-IJ#P2>KgIdW@#P(Mej4>Yocuwl%LAMbdhg)$ z4vXKFx~zZrp4>0k{P*)5j*35S_49FL{TDV){-pR*ICVLhvb{H@cUJs)a~|?D+zU9p zvi{FfUle~?99idU_u_K|JL??$Rq@x&c{FDtCtue8Z`3!%?>&CckG{KF z&c8X&WQPHqd|Cfx)Q83IiX-bB#gUzLJ9t$5adTehnZwDK^>2nhDgG4Bb0tr4w*T8h zaC)tG)E~&_bOz^I=EaedBkSLj&!(Kr1)Sa`oP0UGa(vmGZ;-Qs)4PTbQ{TSx;pA9P zj+~qgoZj9O_Ix>x?5wMCjdF7OaC!&u4$c$)7xxa%TzNqKP1J|Q?}{Uv|EOc!J2-RY z%o@R&HHI@w&Metk7cpy6{Au&w%JVGi+y_Ta@2vQ9I6KH4{*SPmoPFfx}eYh{My&t{zE~j@?{4t!m?77{WUO9VC;N(x?__I=f7IU!O0oI$?0HsyD|I7>6Hi6 z?@oOL#~;J-Wt~2boZbl>f7h zoL9mVIQi4!%dEZqT*%pTUh1-Qoh8Rvw7O@tgq`&8#sIR zW_vkue7Pg@mSoDu;O+YjPR;;!?n(BM-R)-@XSX4B+5NlX$Z=$I?nLhxz9a0dV3_IK69lhwPI-&so9FeN*Gi>OE=qJ^%6hbM0`g=Y0CqlR1EsDaV)1 zKSBPm_+4>iogaAspI_LV5j-mXxcIXEc{sBE$HcvhTwt8YJph1Z2Qg?qofw{suPtU;;EUdvA%=h-Mu*XpnT zMV<%PvwBzKoWrR2cT)T*e1gpP@%+d+6FI%J;?H4ozVr(`C&iK7|0?Q> z;xFN3%E??e_MBxiUr(=W&WqsQQ+D|$xfVISa{R$Qw)Zyp*5e<6k5d1s2l3yTg0qjT z;||B0b3dFhY|ho$L5?HuP`?rNDV!WR&U_!6)90RAxA(^IvN&>b*3J2O9NFIIHco!; zse8Vh`d}a1yQbH=b6*8_rB_bx2+lJ(E_KhjrbuAJUJocuxYA0EKZgD1tG!pW4ADd&1;#h=6GeC9%)ZP@&?CcB*8 zMe&!-xhD5ow)czdAje-7e_iUb`8{UI_I{3>P4N#rZSNh}gR`@o>yk6859eMSf{&8v zyKzu_IXQBAyM63F=X34W-SYwP2u}XE__EH6{Vc%t{sTO1{3NbX&MaB~PM&jfev@;P zt^Z`>_zUWpyM$Aho%JDdWP4xec{a!QSnuh(zTAhCGbr_LADj76ubsM?U+~&X@3{D~ z{_}8T{a3@2;!j)sh7aZ(VE5m?V_|#GqCPABywyMROPopZW%HNR7sX!|NA7SQMW*b% zeighb{u)k>><+IbQ_gO^-`%bM9(7s&p^fA8sh>H|=HC=&0LPK-JxqOA{0??EzXr+i zW%uvcc~tyy@#XlF;!I($<>#0sXRaK7R{S}f&w?CBK1`1HXi@xS@#Xk({8jPS#h2sA z>D?5+_l(`T@Af`?=4?xSSn6G=k4k-9>XX9L!n5MfOMMCNaP1#{D9_Knx@UWxhw&_x z`Wns|%3hcIZwmLGxqDyka}m!HZ2m=!f=(E zk5Tt|lanv|ynT`9ZBqOxY|bZtnP&-h)(0AA)~xvReVqJdsmrOa;9Tz-cGh>Xvz&a{ zx&QGiXC3$id>Op`bIJd`TYoh59&GQe8>hEVJ^2GTbvZi>i_;ZHcJ4osDVzT^cw8Jg zITym0wcV!0k?noF=LVbkR(J+yw|Vj9WG+ixHs^Nq%H|y5tX9QY@8jfHKZfspmpk~4 z-0KaT9nN~z-ud+Qv9o@Kxz@A8&5ASF$H&?%>jz=~OnF$GuJ8!X4&zdvl=`&PXNBj5 z7sX$e`g$LGEsyzCo-yiP%hTacz?Z>3R~tC{^qyVL1oqtC!e`(5LD=h(kHMbp05tP;bH9i8mF%p0z?0%nTm8-#^Bgw+ z-i?zpEB+kLTsh97ILlI(-Qf`r;rWE!;Q{cf`0L`!$=?*`z;ky0-on#g&N;(oe&NI} zn|VH&*0WC^&Y2u)y?_3PoPXgJ#!P((>@yGBna<*UBif=u$ zCWTMJm*9K9rll^s=UaH*WOsWO_iF}c?kPCEbGXA9@|l%0OU}-6c3Z&7ISnUg38z~mG|*Uk5PvroX6;cwqvt?oPL!1MO~{zUhl zd$7Hqq*ug||)JLuEp2y*2j*EY?)Tgk$ zFQ!*E|7RO#=Na|vd8+iz;W+X^di@%@DE{f#WW z|M)e&?!%dT;P>|Y9&Enn&@X(bID=A`-QmWMJnO*C;mhE2`DX}cpCfSg>EPtc*+HJt z=kLMfW3cbB<8XS%aC%Rc`n1$%aOR$ZkCJoh0sQ-{igUWv-$H#^>ay4JF0N$_XE!;! z$=N~9p1l|B-lKPOwsIWV%s!cYIJ*ttHAJNMS`98RX3967ymW}SwQ(tEyVUYr%2xmPvk;W%s9xli_4 zExzmye?PL{7fk;r}krs+?<= zbN&lB=dgr5hnsmX;LMVfxhnn|PNp13&OV#s_g=i`$m#9F*?!|m8XPNwWWN2woy zkHWt9y5_%`x*T8De+=~zoc!aky}l2}&AAchDW_L~7ALGgo%*)v2F`-Sa)nUBbziU}u*hhX#1=6`>4P#oD_pMTlR_tV=oenMk2pWRsB_x1=U`Qw&j zT{h=!mvWC_d;f*c%Sres?D)Z2( zt-pf$pw&H3d58M1P#?nCr)%{)KaTqa+k4B#nKhywe+--R$;WbE;5f3qH=uU{$DhJe z>f5isaIVpMdS`I_d2!_Q%JCO){3Yx@ALP2^II{bEfIU}m{56~%;85X}QjvQxHoH6V*p6k6RzU&USqCP49 zv^hQ}ava&5x8l!=KX1OzkF5XeII{kO;6?G5#a}gc*1FVXa~{rfBAau_vxRe3y+7DH zE4jn@2#%clC7(^*-Q=84A5P8y&MY~;?A({J!?5^WapYugLAv%{qL)8fnV<@ob`oE@ykU%=U63CEEK?D_pq;GF<_ zEw_Q!#gVOF*y{Sf2XCk+v-i?n=e5-3izBC3PNsaAUZ0Z*oZcy%-DI!jci2r%&aC)zIQz)Sm*X#rzl6fJv$&r&U$L}q6_q++a$+d3&H9cGE>6PQi$?xDD{69I#^IRO+oG(%z!8xCC zab%r`dR7J6`8h5cQSoL)KSGlbLI!CvFVzr$I<=0CS_dPl_{!>P+B@ZbG3&I(SxoPFf%Gl4UA z3OnlpX35z>PX4U;^X9+(xA}V1{NHOFe^LA;oPFf%AZIr@y(>7otxH{Y&l^02_X+Ht zf6v@a@q2%`>m0z5p z{D0$|IPZyaYsJ^S}wvDYgnUrv4>jz1{A97j&?u=ri6%h^Fr@2L3W;>&U5^iGODg>$`f z9NBB{d;Z0r!^xDhvz%VJqxW8%`2x3)xN9c@jK_vyXh{ z+~8y`oBv2=$>uz@ah!E?&gC;D>)fhwoDKC{SMODOv*b8(_8FAAoZaL&U8&2pel|P! zb$LvE2Y$C_1rOjqY8+=uz48vut^JHs*T1pP7@Ym*aQ2ZiS3Voxxl7pI%juPCeTVux zsjr*!58N*~j=Y2OQtBHxb9=Ae&HMtra(r3;8r;)Cb8g8s%GU4PIDXga@5YyF-JP$- zy&F-_+;MRxr9OrAfBfm373{39^O=&9IV=9W)a5g02zT_}mz-sD{CQJ0|J>*By9GG= ztXutBXLD|_b64NJ%bB|=e(yEA`)q%Ph0T2GnBT26eq&>Mb-Loq`hS5lZv65KcRBvF z)nCp3Ub$TBJM=!D`kcD#zxP8n^8tK}YAXI1=7ae9~U_Ug!) zH7GoUGq)>s*}3+POMO!OX{pZ(FN(7)^;M~_OTG8Hz1{k7_8GvQ^N;fxk+XjXd*&yo z%VXHDHM0JFTRr}WdNRlGF`Vt+$$>lgcATyCa|y|2Y`>U}u9 z1K8fXKa+DVPPdPY*U2{H)BgYxR$r(52fX`TQrtq0_ zXpU!PJvlQtIrCCqHs9Uk_-imm)_fgLNqvDK*R8s5s-|$U2`SXHuMLtG}GOob#OTV|!o5o{LuBz6Xl4gms>YvntNI)qk1K ztepJbTfUR+{XIVy)X$s)Z2dzo;(35~;LkKpPDlM9b^orQJca!}L5?$O?9Ss-m(Bly z|HIb>IQf&}PvKc5cU9IlZ&S&YHu{`rIkb9Cp?Z{{AlO z>ny0}9G0b5&Rp49KkJP^E7XT@uB$6`+1}^i$mt!!&b`FvA3g!Us&RI+o*m@F zIL?*bbNf9xoXnH(QR>%zCHDw+?kkxq$B}oayYmdr&Zl5|hxE>iFY90CJ%!DD6uc~T z*?jM>taCZey74<3C&#+J*Rp}LL+^^c>y=O7{29-WoHLPg?Q)0nJIzVvfVw;U19Rof zmE&}UNAP+0=km|E)Tf2#g%|L7&0m)Ky6~p4XL8`r_U=m$&JKrK-7_D+?s>p>Y;k0- zfNaj)crVH3|1i9UvzzSB4|x7=J=c=@(^}nGW?Ikw^5ItBz}d6+ z*1g?icX$+Y-L_-tTlY*9N;N+-=)^ioFVM_xR3SZY~bwHd)uBPCr6Gi zXO^7&0qmZ4VINuFdvpXo3jY+(f7hG~aO610n{z*$adW0Pa-0dAJ*TBEJNIJzdE=jc z*)H4b^)6feH8^tW>wRp_-*M&}>Y3I1^WFRxaQ<@kk$3Pfr#>ik*>m>VWzW!exP0cU z;GCiL6F7hS2b>9P=8v$0oLREF{VMe_oP62d%eh`Tv*h&3nI&h337l)3!p?mj`LeTq zvvG3f)H7F3j-0u&`+UXohih+kSho81IV{c^c8C9$^OW6T25;c(**m>=EwZydR z>(_!Qd;-x`t z*RVVItjd`yr*{MAT6%Ba?R_`Bava&Y-=;o*lOwzT_HzMemi6??xvs9%Wit=@zJ=X+ z?e|e|^5x{n9nQ`8dLbus0%!ke^F7Z~@KJo)O71;p}GJea`7PTR8j3>FvE^kNa@;9Kg*Ggr<&a^{YUFPr~q zGG+7s7M{S_VcP0v{RGb^oVl{SH>5r*{v6H@a^}kEm9yId&a5Tu4tL?K^X$9e+S2rr!7-Xj-31v zoZjQ`QGB1nF+6~u!p?GfPd4YvzC++0oE@G+IgUJ_enaXrIQjEdzdv<3y>fb&@CkZf z%v?FwB2TG%K63SQE$deIGcMl|-|x3KaCYdubGKKg52rqW2e>Exi1RPbusB_F?u#S4 zgE^z(j7wcM^ImV@d2aRX`?EOH=KMIBGdTOq;at0%S&QNYLN(_8KJ z%5nN|_8AmMjx#LI5%?(A`$nFPt~hdb8x{X}^WW?9R(v`Bh48b;^gd3SvpvJ&Ok3T1 z@ms~8!P$Rad^!6s8k@N+jvQwNCud#ia`yZLoIN+i@4ag;NA`L6tJj}(;OcPvKAikP z@#P)-FXPMhejFYazk{=boSnzbzb?L9>t^19`h>xgwxxV`UuV}IlCQ)kFu|y@o}k7;N+Zaj-Tskab}IZmU*c! z3ZI6}KmQc(`BGoO$-k;O_r+NkNA_O4;EZ@adBibzwtWG5Z-~`37>4f*ENNcBWHiP!$0swzFxrDd0rgZ z{1?84-#-^;+3FwUTI6KP?(iw<>r$7q!=}}}cfG&d>+QqYVNmL_nHP{LyU$%b!{T?v zmosZroN;kvGtVPOHuD!8-adzLGOe3=Irm~&eA)U7T3!F=;1%^; z`x?$%IkPs!>0P-y>ss{6ab)vH)cbHU2gQ+-FXy_3#qWwQoB40Pmm0tH@?GAceo^DI zVZUxpa58raXOU~|5}=R)3rSB>Kji{HT=&Ko&HIs41;AEWM{qsh4zIlZ#i+tIs%b1iGw z%-?$p_oDfJc4YVbE$W-%_x@@(bNjA6Ja_Yv9XMc>DW6IK9@7QTM(K z;pB9%d)|XyIsT|P!xHJ|t5 z$X?@w`lk53_wPPe{%kI1H`#r*?*TaH(1)|z05afx zB742Q>lSeKUlvDp=j*VW?A#B1jCV-!*TvtIdhY{!vt)apPp@p|6z;>BJ1G9J)Vorb z&3WZVcn`zodgKanY80>lW;p{np%{jq+k)3s`#+fxN zeg`L0jw2_3RQz#qCZ#?tb=kQu=2~R;d5X_%@#n>tvxA(ui{dYfFPnK+GG%A|0=z2z zy7;or&A3Ohy%)fn;`jb;@7m?;({FX}`=B_oIhXQG%I4n<9>Td7UGe2)j*2se?R^Hl zvYBsdd^YU!GcCPx>hpbU&Zp?LZq5hc1)P1B#h0_ssyJ)doRd5=vN6eu=ri8f8hhXADZud8Si6z@BBf&PL%Ap)*}2zf>|AqZ#h=3+^_TKBRL=f#{6+DXrM`l%q}T70Wqt4C8cvR!oDG~a>3wLg zE_*GPe}XfFci?xzgI52s#@4UaIGID7WOmJ;;mG=TYaD-6{4tz8 zo9{le;?Ln^%E^=u<8R-quxI`idKb;{+?K^(!MUz=smsp2H}_O_pU1tsbm$&Z+IGNK{_dMm~%h_kv9DC=mv(9IK*;$7hXV!vxc3Z-kB_~skFK6xw zPVc%ny?@yA2Ze`l{0?@v4|5-7ce^RO$(c2VGfU2Ha-1n_&XeesYu(KEQJ+!I+<9^2 z`Lc7LMSWHLHJlu|!@1pt=N3+{?AiMLjGP@daQ5u|<6gd;UfF%t zTvs2CKPb+y)H~Qc-|=D27Pj~Ejm`8q8B?Faet$04x_kQBv7YOiz?nOR594f~$fcx%kadsmgN7lLE@3}|t4tz1ZDvo?5b?2^&Bis8n zeA&6?Z{Y0H`^a8hPQGmKE9mVPX8?E9|JHX1oNJdoE6-fc`N&i1+usGj?w~V-v$LFf z2fM@F|ABkDukJp-O?^~)WqZA@F|6}zoTqHgQyRyaP(P3Q_8!66a|(N1ANxl>YjCbh zPVWppul3GhXI=0i-aoLjeyDN$Me&!g`R92b;W%=3kTZ7$pVwxsVQ2NZb~(MWb8k$2 zQ|i5s?#{Y7Ka0u9m(wd}R=?G~FY=Xb?x6Uxv%D{|`}`kx2%p#duK2RfAK}R99Tk5J zX9qcZ%I>-S{K8Xs`}u`Cc+7R_9B$48&JI&Jy|QyJ=Dx`8^9p!Y{CV-^__F@n@E65j z!r4>K4zjzQ!}B8_gnb9fQ`r6EyqhzTv*)U@&+xkNrZ~NS+PimsIM+KUbvgUX?*Bpd z9~P%;?Agj&hi6i@_fzl)PW~9q^~%{<&b7ib6@U-oIT}Z)VE)on)8C@WM`es+Q7;0{qx@W%kJ>g>>y{) zesjFWL30k_$jOxB58>o@&GD>8g~yG}oD_dr>a$Xxm-?dAm!-afuVjDUfpT_R7vAjS z4>rH|u|2;JXa520bsc^y*IOLfv$`quVX1ep_sg%pa_)@q1V8eFo+1FJ}ii*CKnpKIeTna|dvI*&WXLGwv7co?p9ydj!Yt;P|r6 z_5OzULvhB%k#o-Su>-q1$k}-UCw~gZm*dNsJ1hRYIC300Ig8>iVRwE5*C^+DWqUpI z6`Xz6uzPO*UMrkT>+$96xheJD|K01A(<`S}PH!L1+(D_!@#W;m*=-1?w=2H9bKt;% zCvqQUul*tLsQ6>p9k$>1!kJ|~`Lc6;ekR44!e;&unR0q%=iZ6>49;%z=3h=-jxX!K zllr3gOE`1o_;PlWv;PXttTk-rQ~1ov>6P923hJBU_ddQiOO7vRmYiAg73AFIPxyWq z&fEd)+;9CUpCi~=pKhGYVevaSby@#a__8^t;Sqc#?0ZJm_Z>Bc$E_~gdn>L>u8ui= zt|z4~f3WpVVVzI%o{`floB09iGdR~cZ}oG1AHwOC?e%lCDE_k4SEar#b=jQH^XK5Q zbHATITin1`!d|;Y_w;@v=z!x-5@38nCoVq;4_dOsV zgtuR(;LIAqnKg#fD-ZA=^B3F~*d3k@PvH1dc-r#ivARgp+dwHs@XBbZ~M;#TmoyGvyhOci`tY zjz6WIxpL;pnJdSi!P(&ye3Z;DvBSJLva{~NImqsCd+!&V-X)y5a^}jJC1;1LU}v5C z$K0dhY~W-b*z7uY!s)@z{b%n5oJ`r>{+N0nPVXVu{D;yzfHPOlo^o>J>^y{%a|AZ$ zjpTH&vwoD%yPRIx-HuZq!Rb8?+xsDU$FMv28JDwzoE+I5wqMua!?5qA37pI+><&-$ z@7}=amEGZy)Mv#%1-rvn*@z>4&8h;-~-oZbI&%2!74V>Ns|FS#l@$~j!{WtpecHsE3J6y~&f2jFy#UB($ z&b7$7mLZ&3N8qF6{0F@qY`*6_D$W?r4zhDM>?6mY6n_e5uAI4Y{8{nm#h2sD@fXEk z!tQWQ&mVTTn>5zn-izX|;nd~i%h|KXHJdpjM>g|lax8r;Y?(Ey%AA> z^UL=BP-A;Nw;BIr?kV^vb>G8t_;7P%&v5%0fjvV%Bi56%fRnR?y{;eoJMLF;WOuk5 z^;PlL#gUUQXRbV@*Wbg)9sKxz;rk6Za}RuKcYojEJ@_z=*C?Cg&T@8^Gpi3LXHXnD z&agN~V9&~Tcvl=b`J>_=Z@%yIadG72Pl|uC`M$%a#h2sHihrv4zN_cOk+aXD_@|ri z`*{g_zdpO(<@l@OubcB>968RWI0rtxdnUebdvF}t{QL0tZ4NcZ_v!%Np?;5#@3PMA z8>e@OllyX{_4R>5UQUj` zDNc{CZO*+nnX)-|ZXCZ)Jv$8G)a4HUBKGV`eN_B0Z2p&UWb<#%o^o;~#h=1s9Cwy= zd>_t=GcWZ;sV_@?4Lj?>Z|9jT^-b}6|F*l^*G_Zou>KF@%bDAU&s;magQGuy&u+WP z_Wloghj9E3&gW4+fpeN(`Rvv!AA`3)gTPbR?~TW>nb&;RF7LoMX?!-k{r(3hv!=~I ziX-ndUp~9}GdTVnK0*Dx_;PlTvxA)d<+EGP0#44d)Ma=6U!23LIP2obI(L5u_XXa8 z2k-_?X74k5`^ecrKD+H8pMams{&IHi!^s(xx}0m2lOrd82&cCzjvPl$j-0t8IKAWI z%kkyRmD4+c(>pD7Ili16Is44u^v;Vf@3ga(J@apH&WqwN;p`wMQ@#w}&!C(gR&Zvm zVe=pB=LYl^6`B!j_vi?^aXYPc0W=)&FB2$hd+xt4|r{JUTPrRIeH*ay|T$h}4 zkaJxNII~W}=3GF|63#4nhx)HGOLp#q;1!(Sb@64LPrj3T3fucKcvJk|=k|7xv!|Rr zxw1RF5?&O4*?fP#SU2|T^`pdp;z4mSVynI$Jj_FCLwRQz%Ce}#SI__F?C>XYJ6;p`x1H#xm>c9Rd2v;7$p z&Ytt)FG_t`>Z?*;xBB*MOTG7n-MQBLaPkMO?%ZLiccnfm^)c+ZJ^izsLvbd>nZlmQ z`##S*p*hZ#?fw2Q@O~)%yg0JGo6qnpHUBZpS`>c?=RD<{=c+hsIOi|xxPzSDP4RpG zvFFI{`MiJU*@NAu5BK3S=LRQd0B46`aXQ$XA^Xd5WHY_SQSrykaZlOaJ9y5;pA`Rz z#h>ouj^1~Dn)9cgJ>{Iq49>O8Td&W6?A(s)m2>Tj;xCIYpTPfqX33c)XO?^z$NUwX zxog;2_hXjq`E2hIoVlCg_rAF6f8=xA7g*oSKAg+}e2}`oyO84yi_^8bvt)PpJei~7 zjA3{9VV+?*IkNsi>XYJ6i!bY&FY8b6XT_g4XM5(&xecES>(2d2cv1Xi^Uajad?Jn< ze^vZ-^Uas_@5!?y>-+3&ir@Rsy`5$K3-RUnefZ2dx4NH;0em*Tvt)aJmHM#wU30c) z4x4GOb^YIjN5vmE-%MHOH@p|Hy}#@E7k^rOS^om=sjPoPcvk#*@n!uv*DLG41zr?? zS$tXlEHYQcS;O{Dsmo`>UazcwG4)OHdtcgfWSw{6$jRx$XU@FU-|m^i$(QZ@mSp5Y{a-f|w!yGTy2oJ=`8Ea3DmVKe7^F2WCJ zoO8CGUOAbolCy?A+edwqX8<0+Z*QD^HpTD#*WR9eIQtA>bH4Bm?saiwGapFiu=rhZ zWUu8V^vchn^U&AG+5IDgpuzbA81{AKawDURQp zt%|dT&AFTB24_#%-P~bQ{N9)Mc9!)Y%YQDL^I*6SpE+CDGueKPfX(z78^DJPdw+d~ zht#ix&*dLEeph(3k3ZP_F?Dyi*VXu$t2nZIPN+}d>^6mSCUR!Y8hh>YQeW)j?75_F z{*rvz9bVfwnJemktp7sX$e zx}5#x>@Oc=uFsx)0-kU!E7;8K*9+KL?`Q5BcIV#JcR6!6#qWJ}Zyz~x`=u^lNzS?a zGl0#!JDIYxzOQlehtzYPU2$Z4AA~Q*9~FNLX9qcs+|m0ou2=R36d?oC8 z$~w-v3O)*-^CNscZFPI)GtV=eJvZ=qEvNU5y&UqBzS^ zmy@$L2)Co^9$mt3h#Od;ed0<@j>0 zW!QZ8>>6+HOL459Am_HCCQty3hZ&n{p&Y;zuH7xb6_@jM%C42g8j7xn|dZ)10^6%&H zOcqDpq5g8}v*OR2|E25jJw|h0-8kp-QtEG@cl-6L^e$WPt8c(Nq4i$UIK3$Xz+j|#shSZaP1U^dL zcU=eTT%B`}lP~X3KgHZptDAWow%7ODxcG8>+04JDcLHbbwD@wKb9svI&nC0xIBQ-U zIgXq?7jW{Iu%9EpXONRGAExeSP)?5AQU7&5gK{!ga5C4WE~i(%g5GEGu8=cp1E;rl z;H)!eA`kFC;eCXiSoI69l_aW-27YO z%Q|;%ocu}gr^S(V%$L2EOX!`I`n=VTUYE}oZ2s}a$zM>~CdZL;&a2|Di!aBQ z<8O-JJ8N$TS>OF-_x~4m>%-Y+&>YWJ-od%v^|=?#zXv=leph^1e~crWKZi%f9~WQN z`Q}0H1#ItY;7ReP@G&vKq&IoB)a3}vs;{bz8lYYvOHQwxxhpuc*2R(2E63jyzjw90Ym}2O$Cr~MA7(GFu@7hN08X!*UOBzP;&nHhBIcYgl~>-;p1Z10U4XSY7}>~^U2K91f2 zoPFf@a&{iV={*7;bsu`W;>gL7lQV+TJ1)MQXFxtirk@cxy>c=qt?v1sgxz7q4pTUL z%2!bLeJ&?QPR^{<!<3}<^!;lr?>ck9WKbG;KddrsjozGouGmy;fRnQ--Q!tmorP&e-rgZ@t4iN=Xu3!E;uk5vaFLPyg`$4!5#~-x%KXQNN%$4n3Q6Cn+YxOyG zIsT|PW7yq(mEGhxa;`cRRaaAf`aHqNX*^~^d{dI!zFF}@sMHuKihhpq11Be3WB;8$|*;GDU9n7Z#w`53(Y zeG7cBaPmjgv(Irjnd8zcr&ms|oVoJhHg^Ii^CWEMzq02PPOqF^Ir;Ljw&$$)r{Ltw z;q=P!oL)J-!&cuuKky~&_K;Wc{1jgvQ2z|i+X&9A`~0b&cR0PWy?;%80jKvgZ10lZ zC7f%QbGGt996uLwGFNbNu7Z=ZE{>dD`7k+t*5u^N$6EddHh=rB`0m~B2k!P7-Vbmb zIXlS7ln=HXIr)7!dme(1;#^4Ppg3~!<>bhjC1=*K)wj_%zP?;M?&6#?+tI@^!Co)+f&xRGmad808gp= zdqO$aF6SCM_yo@K>%3!N&&r=8y|ij{6%q=`#9HVJ^RbKF8KtR6ZTobnY)Iw+osfe-?LZm7aqWO zB**7RPVW#-W>*|J&ZzLX@B~ipwA5#fea7a67sXkY`U+0Yy3{wN-uvF&ea!3^9_-^> zV^``UIQipJpETZnzF_a&@&DpJz?Z<^{EuDUfp635Ig?rGo$q6FKK&)00qXXC3tqt4 zVF~M;qAu&asd4gG)Wd5y&x2g+d1f}$li$1co+CT!-@nM`5q8!UaKAW%R{zKT6{T6LRPtHSHz$Z_Q4Y~al8owIvx=YNg+0uR{XaASM7 z&pGwv44VJZui`fUrucIFA)NfK)MfK~JY(_>{C)7KIX?g6;>-G<9b$kZo>@zF=DcE!NXQespdHUZ~lyg3EdKZOH!|7cXUyd&)a|LJ5b@Amma(Xw# z?_FnaA32Vk-b1ka`18@AIi8_Bpnj(>^Z(%;xDOvGeph^1=dHY3WP3jkA8)=t2aRFp z`gK#zS;_9^+zFiPJqf#;z0=~z<{#wi$gKFMn(xmtbJ%?@XJ=Xe1&uRnQF>38-X$DI z&Yp7iU%}aPUFvdtIXRo+_pZBFm*dOHA2i3$j_kGk2G6AIwM^iy@h7=1S;y;@oonw1 z&Ys6%&(ohN#&G7!hnp{_S3X94`}HB-RHV|?qoB)zcVI*o%r{VN2VR!Snk~2#_NZp?!R&aW+g6;KZkTvYwNAj%7 z>6M-PRO%Zzy$7zh*V}`2ew6o#Y|cX(C#O$6y@%kVIR1PwXuWUtp2GUudkvfOIqE|= zy+>es{W+p5zO4U8%$0ZGC&D8*y~kmD{dr;B{CDHXnJcGv0;l&RY_C5TOyQiTJf-gQ zASXvYLH&pQY{JPo1)Jl~0(01%FXn5voL+gyOzMmOpR03^x2+!c|EeLkoogw#v}?2_ zE0-*kZdOJ+WtK~uI!Rf(p~CJYMM>1oXcuj{MJ}P0A;dv0xy#BZcezEb*)@bZ6>^E6 zgWu;p$Mb1E&A-n3^*Qh7^L^$RW6rhq+Pg*U*(EWv{JEe@K8$}L-*1TNTra*-?AZ-s zX8H3%FZRx`UkkiU4%Z)^3%)_@o|(;t9{x;Gh&>B?7Iyz8V$YUh_IxYfhlttpr@@|G zk^D+b&ie(f#Aoa4qxpNm-hrHRdHz?Xo;vdJe@8F&S>$x?dz+pCv3rgbd*>$QuxDY; zqH|sH+i=+VqLg&ia*pcD*9`^WqUb2W>R7SNJ?LRq*(JiRs)^XOYuW zh*yez?t++}dwyc$nbqQDVtQ(^cZSL7JW}l0Moi~E+70HcvxDugOMWYM4!ggbVmnu+ z**-b2o#FwL9(XSHgtN0sIrm~4#D@N$>Gm*uzOYqkFSq-R{#HJ zY@^Sy96g2%8-fi0<$KPFiq;j9t zh`k%kYvkI(jhN42c#U{}?Fr9`$Jbo!ecCDZx#XOCo1UwS#6Gu+{8`!u#y=|9og0*o zl=B(Yi@h7{9bo(LD*5AkB=-I@51f2P6=FNEdtmp#o2iHE0J~=svG*^-=b5jjnAf|r zt`+&L_!h3e*q!hi<=@xy40G=IGePX#juiW>COI(uKUF78|3}2F*t4)ZVV?_g?%Q>4 zC#Gjx?FrMvp0H>8aL!W>=NzANZ&2<%iw8|U_h5XUlQMCYc%|60b;_G5-c3DxmbQ^| ztu9KlUCR5!#e*k1!0f#BtlpbqUi&@8n~1$b89x26eHi~3`IUH$_Voo8-gp zhrNF*X8)^o-C*~__TlXN+)g>KxD;O;?Abo`!1$-@wZr&d72hEC^(h`YoXfp~ zan9HEhnc;Edm*mG_u-n0y))b>=Q_abKo9JltCYj^@2{O<`d5orioH)Qc0cSM*k{2$ z3ud>EX}2TA?rFrFb)xPy%vp~PW_J9(Q0~rF?6ctP%q8Eubl*+m2V>U>n+3IOgU^H#{c0Cy5?f{!#)@GZm?%pirrtQ z9OgBCS)DNbr;D4&FVGHf&fVFDbEcjv7-wa$old!TgS{J^9lw?H>*gfmSKDQ0Okptr&8*INz4xDrRZ^-YJ zdw-aHeyx3A?+iD}*%@{ZyhizB_52iD4?Fxyo$xGvu>DPxd;d~Q&Sy@QxDMuiH7SSb zJZEQJ6EXY0LcC7w&NewP&UfX&KC2V+TKL?9EAi30>T^Ks*9-faz@F{J?C|f$>-vc4 z-}wmx+nHHDe82ie{r?NGJ7GJpci2Si{g;bJ>ih)V$%i@Xoln%WDrSf0i>u_o?u31A zEoSx!@?q})({sD_Z^Aitmx1k&?42IlXN}Bocrux&lcMZ`R=;@aL(!6UU?b$`28OKN3|O{&Q0QZ@kq=)s>HrlFrCc8 zeg@!1InNASiJ!8YJ_p3!e?d$q_pTPtiuc#Gh3VuuhuPsRT=SH}-U0SmZE|2{uhwgX z>3@f~n_`?BBj;RR%awAxXD{|ya3!aFoUXap=Q>{#xvvAcUrVv=umjHzoO5<~8qcb7 zp9OQ)S#v|~PIAw}-k}oD%IDdG?ZEWEL-|UvUss(R*yqCTgncf|KL5~rzY)71roYzn z39|#waGM;M+08WzyA$?Vuy^Rh^zb~xJ`3iok1M}Y?AOwZ-2>Z)eHP3P*XTKfeO6Hp zosFIWm~+SP7qNRvv3p>8p0She%ar3C$lYIw>HMJXJM2!lRDQkkm14h^TI^Yvv*z^- zz@CMDRwJhWcCLSN;Bi0qLhMeM&QEbK#O{IJ--(%hGS^>B|9|xSz;=2uJ?puiV)w)D zgzXpG-I?k9tzH*7XZ=9DiP+bn6w|*k*IDd-*!{5kD=|H{@i{N1|6{>+YUS>M-2-Qb zbFa{AZZ)y#wss;7UC^Xy+>VbugcqP0H7aeO84khre15Og}!1&-E#`pY+4Nr|=#3BIRZBVLMgISBkwuo$^M^b=d!zdc9LQ zyZz=FdM1_o{=&ZRuwNt0x%_Mp<{4PpTh~PF9+wgy<4Z;XTd%Tw$qE}G|PJ&&bepFJqxdrKmM8R4ikS9v3Dy|4zqv%G<}we+4CxK zC0-+bUa-$1_YSbnty2!uv)xG7R!sks#EqEFx2hBNEbM;R{jHc;c7tl3riD>?Unp`JJ8KDUjYmn(jgQl(MXnEuzDsIMJj?@&hmBjqr!>%GC=p$caYF zCsaaL&D3qrBGsJcqEIHs!GMF6FTEKIO3U8^qqZc+})9 z*iM;pc(>RGwzER)o+|mUojT>P^G57W_>R{b4)2|HV)wVnf!)(hv3vUD!=?6r_bc^0 zB>x7n`-?{p&O2YBuVrHQ!?T)we&p^im1nk3&RHLm4>Q||tKgNd8rVKL{&A7JbER_c zR>$l*Ik0D8`!GEpl+z>!W`{3DZl4_gdgbfHKC4Z$FwTls>wPNrEKKL^n(dMg@Y~*U109KCc?FXJPxWeVDWOY=loX_gsefAVR&&o^jHR6qS8l3T;BgEu)=d&ep zo;TR%ZX)(RW%zsR{Q}#8eQqW8p0FL*PMvZ%=j^kU_918g$BADcK3B}wqa(%MrxCj! zb`MO?pEY}i*t4ye-Nt_g5qp;0vlofo-=!R;^KB>Vvqj8q9}ad;uRJsURdUGf!<@zS zzd`J?ipNcMfZYSrbF=OpOwUI8+$)n0+lT!c;Zx-ES+PRwvnny2Bkcy$xe&~5>y*Rvtko>+9@srcihXV)b|=j2WBIy}{B_B1Qx1C;X7&}jCNSrY#P1jTUSA~k zxt-Xvuzi?4xfd{<=cwmOv1j|_!#MAg1N$|??!Q6o*cXW>en-_vL8CSuQ) z$%i?&*L8-y^NPe(@?rdY>FWz@f2G*{b;@Dy1~dD2?x}cIyp{L`Vqe=M#qMduo`spc zyL{N^!tPlo_G~NmENma9XIt$Ld-fu+XS?LX?txFy>@h#q-!X~(Ubs^1**-b29oRd- z?z}}2Q5c|6IVs?0sc7Qz#`z+Y|!+wpw5xb{& z!eq8gTqUl>yXh>xPQgB_N!%vx68B8l@~h?{ugyFO#a(o`(-!}R41Hs{CVY7%3+=deulFk z9*K`UK-VETupM|#4%cvP_@~Nmk^}qPc8cB8r5twNryO=(>@w+uotG(xomVM`o!3+B zJ)4xn&My?7px3+Qp1Qv&zdU&SwKe6}g@1wkKII!dY3Lk(UmDCcEX1?wzlG;q%stxr zjE!fu5p(W}C+j{YA8wS7|813cm3aKQD)wu{nNv>xUSeJg=T>6Q`ph~#17gm)CD^Zb zwQ|nANaxmKcfvjwwtsps{f(H;ZPf|efjM_)a7i_;&?tVDu-l0l4OwWaSEvqBvtXgaz_MWi&Vebt4tY(Vo|E~5VXaDQP zZE|3r1-ri!GkY(tbMkw!_kleNdmq^Q!0s$|o8&P4&*K`3+3oS-QtTesJ+RM(-3fb# zD)}&-|I}wD%vmpg&Bike;*og#xhM8)E%sS(C1>L^H=bD={`hlGOpksE;Y^eKc8YNx zrnAVsLzf)b=k_TtcAxA3)3cx+n4URt8T?4TK8EvvVDDcg2hKU2hsm#%vjcyAgzdnU z@}2bBo0PYSyD4V3=YK)ZiE{d%Cho;^;_>@S?6b&yR3NItGUc#4 zVRu%^f!XKLm+8KX={ZPThtGQ)_F2soGrLwkIkOjw+vLEUOHY?_7=MlYKIO3eV$aFB zu=6tIu=8q)z4LI_KPP^9N2j|#qOz+ z58JO(4wH|+)}*{id7EB_Gu=93`-P1+R zdk5yZdXS#04dPMU_dfD{m-M_Pe`c@2;l3AQW)G7Cb1t3b6ywavsZtJ;|Kclp?})t{ z?4Bm&u=93`J=-N8w%<=N=kB3%XPz>7y@i~c2675ALYQ_6Q<{3>hF>d+v&yhZ=qQjf1_YKMK$qZ zp9{19@#-(b;k{E$F`YN-St94G%fz*qp7Ga$A<5ioGWeT+89lq~#R5r%E~OyiPexKK^V;PLrH=irv$t z9ClBia@c;c^3Ht6{>n4kuaXbjsZ$O+Z&D6BZ>QM(UCLqS{S>>W*k{rS<8$50l*8_+ zQVu(>Qw}?CQVu(Br`Y>+$%pOtDTkdGPfh!aotIPW{wn#f{W|4vsq1k0U5gnQXZ$RQ z{oFR~vC(pjmZ6hDQ*TnRH_wL0Ext(r`aW>ktm?8I`{Sm~F5BpqrPR{siuGqVgyQde^v%?9+4D4ChPO;y>JP)uPnAtrwTZ+8{YzOwa zFrD;N!R!Xp^UZ^FoyDH5r`Y?D<3I9XU8~@8f;~%azfC=G&gnVrNL@qa-XHePuzlG5 zy_nf`N9(#J2ewl@ZEzm)LOq{i_rP|_l*2iv|6aH1nke^fuzTP+Ipb@XX34#OopRW- zF#X%Azezr92X;T~-C*z2rX2PxO#exL(6tr22et#d2VNzA{AUoc&+4a`&W&!-HCOJQ zVl?q#cf#3mf2o|FEz|@1EZBaPayaMA&T6(!IqY*`p9Q_T0`>c1voyVyM_AKlj$|)}8 zU!d=!$Y;f$7FSb@^XxqC|GnQ_jSL+)9aJzuW8nqoWT?t$sKM1CFq3r-){4mr-*k-Mi+o*Cx?Ipm&& z*@w7c}cXm^3hn&t&s}ttj8^nF^{|j~xxo2T!@ADd6^QTYFg2|r{xqWi_ z4_97>^V(qdliP>!Pmoh3AGQPId?Fn8)X9N!&Te0mPtNR(;wJdt!R{xw54&ekJkso! zo~rkS*glN^h(`A)`7mc~rhG}v?C&(&B?tB_>`s{3{WZHm%g2#Vw@=Ove^*Zv{=K#w*bcd8Vf@F*X_F7zhwa1oPnF-L943Eh`vITF#bWBh3VN# zyd-9Jcg=Rmhwa1egqeM{X8UkH7)<__V4sWQ+2X)qcJl}6eu?S7K|X9BwqK?kwhw2A zb9YeZyz-HFZ+&i8X%@B*`#lc(Ghso@>?-b;n9e=b341qq7AJCdu8rAKb#9Yc2PW%^BV45a$sif{b1d%`pj4 z^t@7jv1;fnwGT`uv#@>GJ!Ryd*DQ?B`w`9#{qL7EuY4pP@wu0L*gnizbi&O3M!X=apX1QMrVrIXr**f_!4%ZN7_EL4i^e>8= zaUMh!k?pbp0+=-pTbpAu3T4r~XeXZ*fPe({`14%5Gj zc7r_&yT1&7{GJNu2>ImMq2~bQRXDHOYGCrCgYDz6+xR+*aegMJPP4Fm*nSiK74qSn zvp?sOd$tujhjY#>*N2=PKCam=`LKQ1K8$~>{62WchYieGMX-Gw_Y?9NO|fUm?Zfo%rT*2)uag7gTr3BsXHBqoI6cia;anyMX7=`A zeC|8BcepUkwke10!}M&rwcbZ!cGyOIc{tq1F6A)(VRB&iz&`i7$j9#yu{-;z+&(#- z`>J!JgD2O&5R-phIcy(xC(I6%89hh@JDId09PqF*S@z-yo z`zWSoQQRaS_A?3lnS|Z5C?08+Kl8RJhw1;RI$`ev`>Z7~v;4WWOAgFzr&-uOyi7UI z%my*DAJu;++ov4H-*{WS2gUT36d`(w=(V&^da4w{AC1N+=E`EbseeWzy0 znf;i!nqr)vMebP~?@)_zZj}SmQxDW;?N;2iVUEY#;8_^ReS}AI0w9AZCZ-`17)uv(D97upQVv@T?s6EDo9E zF#X%#Z^*q5xqD#mwp`4)uhF?>a$xtv>~pHlg4u!h>AaZPi#1z?^D{ZH&w}asP~^<= ztS-dtH#J+wY_Xm0X_|%Y!|rLqzg3;E&w}m4_7}w?oy*T6T5%_C?yvhR_Vs~%OhaVee)_Uwk33^C z>{;0RlqrYtx7`Q)5S5A4|{`7r*gAFF$p zoOX(FHteQ*lx91z?-4vFhi3`)eT2Oy>>YYBod;_-IOptqOyr&|4xMzu_TlV!pXJI& z>fz5#rI@pRs7{#v_XK;E+@13=%b%O7l*8_a{TgBSEQmRmKR4B4cf#zjqwY0qA7-Du zlsCzT@z0CgKDqrioR7$XeHLsVw%;WOwgYq4>FR;)_sM~Cj(?1Na?a(soq68y+WGTQ zA$C8E!?OW1`zOu9bS{aPi$`Mqd{l;W*GKAph4YYLcapnvK4$szQ5Ca?$%pO3oJ9}p z**ZBeIj;q_53}>Wnr(uQ4|YGfXJOB_;U7AydnC3G<8w`5{3poi!v9%t&OM9c*?x-c zkeBK_PCc-Dio+(eFwV#2z&PuI-BX5hg>pFO_Q}0Z6+O4ghv|R7jss`MJ$3S7J20~c zK1%NwvHd3eN2(LXc}}or$?Y$SM{>sB`-$ze;#uYN!1O#qXThFb5;Hsg-Y@xGa$tAD z^n6;K8^p|xzxPXiA3o0*>>XfcFVO7F;lu3sdq1)FDa1H?XiwO)Fgws$2J>9OIA4_y zy9cJ{7UflPU^_6*#*ZEx`su7Ae~NOL{w;&Er=4OPUKcsD2Wu8~ zeY#YuMa$uaF1!u?m zbZHj04`+vSANV+3=j6lWMdY3(XLfvT7bd$EV*E$RhqL3^QaSt~IWW%n`p4`KBll~W zS3Z)%_o7vrh3&xZf!X2z)UzOFmhV670dj@p|t}<@U+xr*m~UJWF-TVf!%Wmg`pM zIe*XIL{1Nke{cD)&w|~#C}wv2btmPmn0|U-dJa$z?4Bhtv-~}K7e3E0jB}EFnAszO zeeQ;s$=G=|cN$$=?F|+(V zdmGNI9N4q)tQ_`)J==xc1*@A!I@dT{Re+9dYuf_S7^er{7IAGQOt!@qXceH43# zwPI%ZxlJQpCLZ4-v1iGd{gh^5&n}9YN7-sqTOdobI+19yPlsRBp)VUjGWm^ zgFU+>XQZ4z%XeZsu=j-N*<*LzFR^Dgh?(Wj^1YbZd&+@53p4vyoeO(*=Ez}|Kg$&%*fsl3ynWwgbBd#{a$iCiwn) z4D5b#e4Zbep6%rUl!*re~2euEpXGzQ~f0pl(1G@*d57W6?og2i=@@M&8 zJS%1&7-#=r_mI=W^(>AWob_^G&%*X$`(^lx@?rc-gYA>!k3SE^&a0`sl=ElJlDnrC zlV7VG_AKm9*nShd)t{)Wpw#kR>z}cbaaP@R4hwa1cz_~E~e&Rm(h9?h< z^W|Xoysp1E=bk0^Y$qh z`O`HE)BmJk_cY2gl09&*q2$%k=1B?r!q zdx{rMI$`{O%7^j45xh)1{(6!8GW>n_(lr<3jPFIv-dA}Qe8E!&_POMob#~`*k_Turwsp0Ij|krv#|YYiYxVB|1#Z+Gzk`L3vESw$pbSa1Fe4>2Vv#|X>`EbseUC=B! zvo9AHFTOL|C-*)uvlq)RQx4PfqsTo=j(?f*D)=A4cF5fiyQfY$OkS?k^%r{x+`{cm%Ul%z}`P{+rY;nvm`wHc-`(b8xiQImf z9GK2?+uan=0f0Z2AJ+NnC&ldkZ?AgnQb8es9J!Nv>oZBZawcF>_ zIWHcG$N#=pjC0-dbT7i${;+}FL%vK7-vcbf?7{k3Q!Taw+krW2mm_qYlLK?sv(yjc z>>ljdMdc&q{2Sml{MR0?dnEQ*uzi@G6XYz3nLU@EgGGM7=j$FNAD)$Sm3-Kp8^p}= zZ-D#cz&;DM4|DFr)jxCWFuRpz3$c9|XE!-8=RPyoJ!SIYoHKixd~(mui$}`G|CT=a zmDuOP_!nyyrsu8V1u?VZe@h=uv7pZ}v1eiL05f~5W}D=|OQ@ms{3zOd<2lgz? z?Dv(I;XG>fz~ptXcfj%Nym%yM{9cQmSIDnY4{RTH&w`lQ@xP@{PA%r#CH26w;&XyM zyEbOW|CT=dAIoWy5Bpr$vx{QR9sgT;F=ySR*)}<_XJK~ukDMhjv*UkDANdjb9O#k{ z`z)CL1LX9{fyp0M4>|qxkbAZ`?#}Fe$nC@Qyj8Ph@?o6IBFDKn*gf-dM#{(cE_&{v zeJZgX*!#flTo5xm{+vvCE#|Dh=q%W?usfT``8opAxv$QJnVk!^--gfUGmQTxIWYcL zg6((7fpM;u182v(_2Jwo2d4ku!S>1R7cadt+b6dVbM9kap!<@182^yS?UUp0t-MMO zYzOuZF#h}H*U5q1595439M3k%hwa1oZJb%^CNZrWA-ZfaIKubvs)66^nZD8 zb}5HBYfsI>?uY5zLHPzTvwV%~lLNaSrsu~$9UNxw`!juQI)2g#ldp)}v*eyF!#PPnyr%$<9{x4`{eko@*W+DOmdjcZ$|D}a{J50BRPDQmT4BY z57Tq4dSGV%ES?uL%l9Nz@?reP|6<7PlY8fSig6B?Prgjdy@u)8PkEDa*gddkVf-r}j#(BFOnA!gc_E|G8A7*#eY$0|I`&^iw zKWP?r&vNld`5~GulMmxOWW$g%d)Hw1&&TY4Yqm;0jDLuH*goui7Q~!;j%MrdUwz%c z_Q_}EJSlR|u8rCEX|@sDhwa1c@D|O&o?R4=ly{nKQx3Zarssp2h3UCYyd-A!8qIc* z|4ljUe%Q0HJ2!}#yH>{^5N_-d#my$<#5iKePlm4 z%f#dF*^=LibB_OH`Q-FGTf8J5iFto@DTloe>>ik&w`z8Sm|5Omeez-Z@T{DR<-^S0 zBAz*EnC1Odi0!~W7j_TK?8d**y%UebyuV5@vpXt>?ZfVYncY&(yqHCituTJb7#$O>Hb|>u44dRg;-d}xkU}jI#ENma9e^=!*uNY=|e-&c< zw|;2{ne%%#y?Cx>>ikNk5|4VW|sF?7yc)e!}ejH1$%abm|5Om zy_mDUu36Z#F#azichAhp!z}NwLhKy&EKKKCHx7<_md7mbuQJWTo`soxoMvHWpDLag zkHoycDzVRnJqt5?mVDT=3u0z@f7Ow{TMq0VnAx94?#{I_%loTIv#@7j`!GF!P|u>6 zb9sNY;#u*7ZW`D=xqDz{?;>X@W_f>gV*9Xt*qt!5&(-V(@kq@3t4}`c9vJ`Q@?m;j zBA$8WFw6U^5c@3HvoNz)$cH^!CLbpMnH(7ZA^$tDdn)Cb?UUm_RzB<<>M8atIsQud zFg?!|uN9BPyuX?>3wsu3_Wkl<&n}9Y<^9!$^LaTi&Q-zQjoh6}G0Xd_OFqn5o8CO+ zo+bC}hM493)u$Zh+-)=q({n_yduC1 zeiP0Ql*8_aamGJ~PqS_K558H~Jo&IY;aSc8R-Ik=kC6}O+-H&dtUj1)3)_KtEqkj6 zrsoiGaoXfu*glMZ_M)zN@CCt~ML)UydGSd3BP%`6VmmNB-_$H@e>D)OB?o5qQ2B5z=4bM- zXE%sP$`&=-CkMvid6-!{IG>bLi0SM$)4dSef!)76{IAI`#r`)}upQX{{tBLpvtW15 zi`lJLPbKy&YzJnaLys-=yF>?nW^dgivCoC=!=3zl%ZI%K?EYqo>3{G^x?jra;aO^v z1G@*#j(6yi4|^YYR-IR_)jbk()~(_`<*;{yah`Gd;JBwaed54$K2Q#fUj*AP!#Q$u zy;DVrKcQ z=#mf5DnCfSyArk!({q~g4Ps{b+~~zV3$_ot2WIwS%@)nTZw>Y=xo2U|mSQ`w9T;bq z2kSnH>0d3bk`I%g7`bQbGz;S_%7L@vbDMD1%Yl6^oE^`$sRyS2ms{)l$LybiJ=>)o z*gY__&2rs~G}}kMg>smE=!D$~yQer~aOUO1Ij4U%a?dW8Gg8ibzf3;NS@gin9vkf0 z`IzOsUxoisIj|krJHYh3L(YPjb9wLA$$>eS9vJ_|V0W&KS>F4N*g5R8U}mq@EbPuj zG3WB$Z^Ivd%@VtZoY{YC7G`#{ZS*-QW|sGUmvR_?wH$bvm`>Q88^p}=-tSWmyC0@! zfAzrbnOQf?^4>4R?u0!HGrO~9VP^TPUM?PqdGD7ghw)F854#g~=e(F%-uqQ@VE4oL ztG3mB7t^_?xDGxe*!|@8VfQpsY@Zzef!pamis|1~+=}hM`9~x7EV*avCONPj*gdfQHaT$4?UVc5F8T1B_8kA&R&1Z#J+No{l*2hM)$_t# zbx)Pgin%_;`biI*bI+19`z-loIHv@A2Xgx`{!wzOl*9I6oX>^Bx!)Dn$%k<^)y^=^ zHo@*`k`Lp&MGl-DdS0!(4d>=y@@s-nb`P8#_jJlLyOZ2L?4CaPaL(20082@G5 zFEKs)i5JAoj(-oT*t^xqf!zbs^E%Bo!S4;m;a-!||Eb8`*@pi|<**e&}e%~3`X7&^EVf!#W?^ZtZ zmSL9PaaV}#z&L-G1G@)y|8nt24!`5BOgYT#=k(vCz|4L(*!@*Fo9e&mfOBr2+-KF% za|Hh#$5ifFa?bsLoF@4&`4=O1C%I=A#UnZVj=NTD2WFq|>%aAY$34NGU5Z(L$6Y6O z4!Z|-4@}RN{5Kuqk(l3c*C!vwZ}i_s!0v>ZJy!Y5xx*~q!xUos@OV!-uxDZKvs^q< z58uO-;eTH~YzOu%O#cmX=EcnNJxrBy*gnh-+v&f3fZe$uW|r?^>XgIu|NA#X?jCY_ zZdBd`?{~w%cF5fiyQdY~f$hL_UZfrv|8Q}a960ChA!qgr^84U}e>brE$?e1RY%ZsG z>o9vvupRR3xaTg)*K3x~+fwWt_AJco>FR{p?VI9x@kl)W->XVa70$JCVE4f8Ul21p z{@<$-(|@7<-D8~`*t0O_zFy8+F|*_Uy{hCl$%pZOEgyD&n|v7O3Hmo+FwWD0eQp=d z>y*RZAGQzM?~?=L+(ZBF3(gMb9;m!{+a!nG4|^8IKU#hn`MEdi>s0b#_rv&Kl`}6M ziO0WlKujmImDp#&o`spcS-4=u^5N`z zXYxw^7v&e{O&pk>-A@~GpG)pp*t@~>ER$cR9QL`edtmxMdB)(ob6z>uke@MDV)w(I zg?}OE<#*G47te{gKCpXWpSvKYbNsstQeKPQ3A+dOxv)Feis>2u9)sjJV)nV;@p>MT z54#8US#Tx)_j>KH_goayKmJ_@V(-(6y#s6?re`bNJJ@Hz>~sEsL+*2zl+!={xv|)J zCw3?7*8+F)_g6pce%Sk5Azm+M{QYfmda*lUp9Omsp3^M%u6X;TAI`aZ$lU|Gr<`It zZzkaLzqT?%7W49QL`eXJPw&a$q}fcHCLKW6}xd+_U7KEvMM~kXO1^|2#&Y z52**9Q_eF3yK_77dgVNamDoM7&w|-!d>_T0ts|!s_AHzo_cY0Yb8es9uf0t@aLz03 z^ZGyNeX6_@UlHt1a_`fL=VE_2=k&Dt>?QXOuwO6i&OXh;_F;C|`QG~4G3E1_u=BDZ zcP9?#9wWba=j1HdyTLdY-7+}df!yc9YvjCGPAPUj>>ili9;MGTn0=b359}Ut_rsif zl>AEU9+>{|*NfznyQfYL{1N#)S8%KU`y)QXlHVi;c0cS+*t2c&;hcMx+_T*jm)hZ# zm+SjC<@Wn2_Uk2g5A5qxylaxf-T`)JImPZF$3OHUUE3+PL++kBag(?e+lTFUQ*5V? zocAy6yg2{P?4B~^u=8q)-BTwYw%<&#{Wkfq{ceiw_bG>+7w?|T!p_T-!_KRe!_MoJ z!_J#2W>2nRn|#=Q7dZ~>yiYmoym(LAU+lb`Vqc#s<*@TQ<*@T6<*@TM<*@TE<*@TU z<*@VOy?5q2_D^{!c3w>}JzT3g`LO*a<*@TM<*@T^ioIu_a@cus!DJS8UZxy&UZos% zUQe<2X;Kb5Z&MCC?@|ss@2A-37K;-Hc3w`gd#dEa_~YxJ{5m z_ZF}BYe{*X{3hkFJKHICXP11~em}+bi}z0)*m)T_*93N6O|kpy@Oe&}IqY+o@+$eTeb}8a{_*l_vG;`i8sSRL9%l}Y_at{uGsT{5mDB&FH|lzd zbM9Gkb~{f_mmJs*OwSL(vEL^j_Wp1s|BGko+KRn1?9So?!@2Ws()aLU`e%c);=iK5W05Vs?0s&LVd|%nq+rUZ)%;|7zs!BzI4feAxTIm1ggGyY7+Lv#_u2 zg<^K#^Q{dYe~n9imvWeM=YOp0Jms+Gtn%x^r?VH6zfd{s9bmt9*qz0PCi}zQ6Sfam z>fH7QU4OAV%jCe$D>3~K|BSA=xD?+n*q!9|SBuHnzfL*q9@w)morkEiNj~iTVf%0; z|3Tg0`+l{_fxS;BrvIuh>za$%p$~Q^x&3~M?UU29)n&RDV$T*A5BnVZbzM(!&b>dm z`(f`~rX2QcHN~9!B>i1HxqD!C`@4Q;b)9_J4$SP+H4EEsk`GsM9{yjto?_3!-XHeP zt=N0Q_PZ&z(osf#w$o2BonMhpZol}* zaMtr~(=`<5+&!i8%y!7VGwjy_cRFi(byg{dJqx=Nc2AugIOq1seO8kkIOq1seJ(tw z-Nv82V)i`lSY78d3)_d?1ACutitUhl7WO`U%3=F3JDhxw?#q<#vx@(j^uRf1_FB!7 zyA$>fWy)dC!puHdKmUilC+yj3iaks2vtZBGDTn9O&vk~~3A+dOY$J9jYzJnRuMx2Q zHuKR{8F`Ya9L!Z@Y7PjAnvzHv${ji-joP*@Rc3?Z*6m#wx`Q-NdDaJYM z_qv8@w)oh@hush3AAFOpPjX;8FwRTgq0f`xKLpz$_dfL$GrQ9Tx>m~VH_3r>j=zum zHsvt+p^^KnF7o4)!#Q_npK_R<%jCm$ijNQZHj8>Mi`@g;DZ_c9960Cpt8hkgU^}p# zI^}SweHP@ycAChq__dy&sob5dazCrEpJzBb?(9+y=bRl@o~&!4yc2I6>>hIW!#)>w zPjSicT8?h3 z7=Qd{kmMJim|R=fJHz&2_m@-5{vT04x%YuN_dMlQ%3=GkJ7N6q%CCd(wtiqc1)^I`v$^z7DWwJ8>yzC!Gc7oU`_c+?{=LVDjd9@sm>-mMg~&#CHx={YypyOF!6O0#e!{~Ueq3fqUX?{jPA?uR+|-#QES zEbQ4P{LjmQ@ox;aPma$uX~jMZwgY!^4&Zz2Dc{$jQ_gOWc)jjRIDGwu-2<0$Hj~pQ z2llzJJ7Lel?C=2n90sn$BXRMm$?Ju^1I$_P(OIy2%E+Io9L~9~8#z5k%BhkA+ktUD z84hP%Bd(JV+lO&(4#%@ia^OzRPjsDO?*{w&z`j1Mn4T^4vr3r$jen2D=BI(^))Mm6&sXq;p|AaH;&V z$lX~d2lfuI&w{hxsps@FbuX0rEZ7e0b79Wi=nc9T!CUe*CHb&@n9jewR_~XT!}OfX z*B7zRg6;QW?+@F7{aRq3Ra`oBen_2g&OJ-+{!(0NhwGR0?>5Dq_&)k~2(bHM_rUIf zy<3$W*beNo;8OiNYPUN1F!}Dfo-qCv!R~34XZE?|-VOH7ZOUPH!tQ}N_Y|Gg1z!|w zhurf3^~{=iih!!OQgb5wIQDv#`%<#r)fzm+0>!;7)u-ubUC%yov?k_KJ2sL%{0q@ui7LZ=G=d(6Q=*S z!S1|WvX8mr{P_-~L8 zdmq^S3u1acqn_1~(^HFmZQ(U?Uj0Yicd>h5UuW2zYsGZ_N}Y|E9X5Z9?yuOh@T~G3 zBKK^o+~>kM_bhp**=w{9>>WC>J7N29DgRkI3wCE8`BBQ@oYQkk^eKnul=FUp-3j|Fc#WKwsuT8EGhY}wc^?&G&%&OCXEl42UL#zJpCw){9*KGH zlwxX&GLCTFQ$k0OOvwowqV0Xgo^9AJ#VrF^9YO&9P-4A;=*gb2- z%<_yiV$Z^yd$|7Y6`mDW!Jb`=S)Q?0?AHaak^cq#j2GtX?{&eRCHFqC_k_JeH^uC8 zf_5PHKCnCcadH-nf1kJM{))5X*;2XpguN$hAMVt%oBrMz_G_FM zkCb2hBHdpxXRXv(uzO(lz?{3CoCPtnU(#%y9M}%*9+>{;YId!d*`I5+Ne=AYV4n;7 zHNu@{kJW2g6w~u3^|azS@%Zbn*yobF2X+tavtXWw|2|Xyy^@$tu1P1J6`!GG=HQp}#;)t<0@cs5=a z?EWe_FtgWd7Pb%DuTu`=e@;G}9iQ7Mhxs}V@Yy!yn&MaVP&_MXiY+adQX+^MsDww^sP z{f7s82XbE58VfB!kH7a2=UM!#!gqgh+0gU1XXzOe=X{lX{)}elvT)o_Ud!R%7{flR zjLugcqh~BR&c6`3d&u*w&n4eX-Q(vl^;BXzFt6)xYxEq7xpzma-}z&LbI+U{t`CmS zty3rL*9ChP_AKn#M%<}${y05XV$Z_tc5>va#9U8ucf#&z!+-AadX|y{d)Cg1aCp7^ zx0&QV7tWpDxl1{0A9g>SefD4fay^sEHxqL&`sBkn-BKKLa`(f`{eC5vU z9`a5-|588f9(a}V@y`&%_RH`ecaWaFeK z`D0ERa_>g&S=i^oKDSH`+^Oe;|I%|Mb`R`X*w+N++^@>7f**O*!1Vm$$bmhJ<4)MS z!S1ZZrDkt`o1UfQz}cCV!=G`Q@b@@xV0V(^kDnzm{-$!;l*8mlNA6j2b~sRZC-%

V$L7S+9-UJ;hfi*9XS=iyYXqFr8N^FU8&sb`R|R zVRnAT-v{4&lDo4K(|M1#>)uV}?j&cQo#fPF=dgQV_rUmv%5PE*lOGqkd&u3>hO#3-)V)-3e#EQs-UxcX!I^e60Fm`!MG|By!L8sRw5E{6Fda75mU-*t_*|GP{%9voN!_X|}j>axRQ> zx9<%(&ZC3fStcLOIkS~~a%Nv3u95?L9~kEi;dr)Io*Cz4IpjVIc2ARX*v|mmY4+*g z*1Zr{;?sitY>>OB6?1N@vtXYEm&(5px&1CVu+N3v4|kgVADs((woeZ1v*0=Ti=QHYr>Ax^IJDzQm59gfO>oiO5*)IHLKhX70KAat9|EAeK~o8+PkLa#Uf9>&LOv_zbyeay zG4E^GXTd%T_F1qyYcV~W>pH+Ww@=Qw|It~E*g5Q3*t0PH9_nnx-VOF{a3yE8t{d!5 z*gL~~FEsv{r`Y{n^5L9w?$J7zoZVi<{S~_t_F1rJVebih&*GcIYx#nDVEeH9VRx1( zhuP;M&BC6A?N{PT&W*YbFt7K#VDCWQDZeCg_mJlvzs6d5DgS#q7q$a?7H0q7$Z3)T zGrQ@JhTJ~6{Z{N8_MR~NKTKcuVV?_oH+W7C&njGrAItX`V)~z`b79ZI?6XbeKDSRk zjPpD>uxDZW#kcOvoOPyra{DknFI8S9ANFg6{aRqp!kuQHf35DL*!{2_*!#eo^--Nw z2OoL$z|6if*t0mEZNk4y4r~YZENs6`Ih=ELxL7^p?&-w7N3dTnoSikAea>%mzm&TZ zu9Uwia$mPz`K{*z7ZsNXtdy>PRg}noe{~zvG@?q}}dwd*b6qQ#eRc@;{&mXXock3;##K|`v?63nUK?MWicxx{79aD&|&*w=fL=<{aV-YmU1@O=L@?Qb}!g7*MkQpb6;h`_QUkuLV7-h zosUlK+mpw&4e9p4UPCySf8l+)c4GGMI}*oQp9>z(+!Qm<@#+QB_sGQVh3=g86vls< z{OHbsUE2+Q*fYSMANI_!XM=O)AE9%Bo!Otl^u0kdpfk^ti9K`e)F)?;|q2s>>N0k=a0$bOmz2ci=7GM|BLQFuyf$(cMiJyc7q>|dR>`^Y8}u= z#H>kQjQ+L6=pRY!zIdEdyRGp5KpxnB*nZgl`V{s#qT3JW>ic~C?lbIjgnf>=*qJbW z@6!x$UHps0&TL4J>{@is0J|6LUQIEX``w{yDs~P`->sAG%(irA!nr(0>0IFGaSpnB z!JeTT{4g`TQ@vpKg`Lw6ei;Ax^27K)oY?-_&&yu0XMjB?Y=2!$&i9l9+XF`reeaPc z4}REw*nSxQ-{o%v9j4cUI}07p28o^13?A5-aP&~SM78ap!|3Blr`OSmozs=aI_yk1 zddT^zYWvCmoy7K_yB5ZOw>-69lsPcHsDwk1dmZ3hwb$xgV9x+|rT;nU&O!J2t`nmVzR#YR_34Yr z?0-aiKqA9hY7cwo;1Gv|W)wKv2*7uY%QDCeScZw3$S9N06!u7zFO z4j$MZm^nM_88PedPjNSRV9y4-7wml4^Yq2ehsl41)(R%Sp4d6H|1N7`_kyFxndn{R zd_e0~7h8v23+M8z(`$a%Ik4x1N97qjmc_2kgCC9_GT)^Cy9wPnuxDsYVSCV>4|^V% z%x~&>5O%L-@Wb}Q&V;GGN42nLfSuEx!kz)0+RgO1hFuH07wlf$pu;1o<(k5-h3nGa z!Sxk;2G}0h`LOe0&sO_o>4)iclrmxR&q?f@y7b8Ig^vF+`C;ee!4G=|*tM|dhjZnu z(td+IC(LsMpL;jNu7&CQsQSY6y&Ea%aei+YXiCvpZ_gcYTbJ#P$qpBU;d&RD81P>f_`aYsw=SUJDc3 zk8Xcc>~n{`Ch(|g2d`(Q_?^?19+_Szsu#NR;kxt>OYa6hY!8g*N6ACZo#MW9c;u3T z@obvdwRk*3?T#Yn-SWUuw;!F%kIPdRTZf}guS=81IeGHjDIIn#jQ>YTx4$9XYYW>C zd!1pgGwj;t6efS`OZ9k>&Ya8uJF}hiedU4i?~>S===OJmAC9{H=;WNLoW9sPY(G3A z4}D?$9~al|EFMRDTv%`}eKN6g@Hhwdn!sMSy4dRj+XFiXj(%q@lzzJU^78<>*gDLd z7idn{IWXsPjr2zF!%?U9@#JxBGx%XV`(CDNlxpWBw!bYsGWmGWseOB5&)f}uIO_P1 zlpmd(Er+-J+UF;lqL^|sa+usg49Cg>ClleEUUE(d358Druzf;m(+YcU?ocGBC+Yj4c zyX)T>&!^-^r}pZ^?pv20*?x3q!qncP+FXq1ABoZXiJgPTwTI*vuW}ZEzcY_~BKQ-z0qdTXcJQv6Vdrlb7 zHA#1E?e5Y8+XF`reIHV7UAoT^wg>h(!lUvJ9(Q8TfSyagQEQTmT?>;x^xZ;dhRqYZ zwh{br)a^$nXQ^tN!4IRqH|h94nb*nXItt5n+!9vJ;+NymRrV(0hdSt5Pp z%u3c5dwpQ98*D$kRDSLou;IW;l84!=^5Be6X&^IVj4XV!xUj=JYT_dKv? z$b%oI@6VMFyDv=N?@Mn4KWq=|Ua)(??$s1~Hki!C-_tb}I|pWlInvvS4^NE$Es60D zKChO?ncXRD4?4ALR11?&W?yU%>>L>Xx01*HTCY48*nZeKa96c&?&{i!y$gqrvZ9jZh2I>m^s|+KJr@c1|`PA*S7cwjQA zh3$v&uae$Pd{ScPquUQVr!V&T!d>M&ruBqcA0;i0H9{?HKa78)Yjy3!&TJu}V`BnO>dW16j-cqFm?==Q_T?2CQv;AgLq*tO`<-&L>uf23<9 zJr|!MuJy|t*nW6a9`+mTOxV5Z!2^39*g3FkVfubo?+ak(MMEt76u0^-MIfd;(Cug~8Vdu1iAGROHf4%%L{u9LA;D_yp@&7t`?C%E;j9&S^ zu90|-nDvLL{j+Lo>kHmp9@u`^e%O8M$$x4!1ln-gqOrB|0dGNzg=e$0td~|wUEp7xqjDEy*g^quh#Lj63KaBr4dEn@AZCg5gi9E19FtukV zeU6yx)lK?VKh*k*qwZRCG9OfJU+gu3?SZ{Muyf$i)T?%HF~iR41=|CYzfaPgSq~oA z9+-3awEVFBxj2{pv>q35)ZGi+^TVDE_WX@d3)A-u^@8bpOJZj>g9nbfXF#X6uiBO3 z)5U|wl-QnjsD(WnoXelzq-!ePM9k|1*fV#<%sIEC>nL_6?0H~j_=jfbC*DVX*nZf4 z*qOEa%6VYV0NW2U=ZTsV_H3~8>tbejoBG18g`09gaFV-%cLqG~_|g*64bP zqfTvCesuS0rc87=>f}6EIq1%5i_zaI9VT{>Y1Iv?FXZ_pQe9+;e6`QD<~Ik0nJ=fIz zW3BU>L5H0QI};{zrasSyoe4XqEp{#JTG)O#`pGQuQ5tCMKrW>-jklv2$wo|2z8{p*tUTK1|MqUF}1$d%^BiPoC@6 zYA=bM13L%y46t)x=j39~14rGN=+1$i1CMG>9?LK@KdpHhV&}l>Sv&urp!z zZ3YkQOxS*y{LOFBz7jhhc20W=yDz#kVRGK39N77=GrPeL+XFijj(*R8PX0y8?*|X; zS{Tn2dQAm8A9fDBR37$Q?SZlvY(E@5u0pClm0{LF#3Ndb}hR5_NTBt=;RM|b=^Zw?ayT`?DK+szOZxPu5vEY zb8$WR;Zf;aci8j5&Viki2S1#vb{Wq*V$T4(7LK*fZ%B7vn4Ev4jetMMR(uYUrImhUaIZLvLY)bS6#&mx`7?~rh~KkQ7H8P=&6Oy8f1YY&F&C3X(F`@)_Fc4mDFlR2bJbl2u$`fh)= z9;d+%M-R1|$kUMS8DRH??T0->Q%wHbRSVk#M-Ta@$kUeYeAxN0{jhVoV)Cz6Elkep z#P*}x-xphl-3yK$_pLotWIp#Rx)x%4VCTTh@R0h}gAO|%9+hWsFBLl<-I=-AnJ}5J zR$sU--Z8QL4e8E-oew()j(%RVZF!!qqx1>!AHG`fCiK#MzA2qv?^7?>Gr-P-o!L(Q zPstBQ-F|d(PM4=Eb}!g|*nZgO)fY3*8r8z&{3@~i=+3GA_21dO&_`7}cnu?VKDu-2 zQ<%PQJV)15I(;`y>|VKaXTr{eoe4+(Cdy%*8$pNdhv|E9{0_I4!ag+{@c_SW`^^`jo^o!4|@jK`LHva zVlsdHu&$Tb^T5$Vue;@G2OUO#-Xn$XT68k2(!0R}+XFiv#{UZW`$31%Uzc>(qSNG*-f$=xx&lCSVv1`%ohsn8Ep2id==ia2-kHZfbRTusD-2MT6EXK%=3iK3*JOL_$)4Xx>Iy#qBH-&kLj9c0DA?zP z?sI{=@@$$s&O!G)U9oFnUa#`^O+`|_hd{$A||an!rgFHO30 z@OTE;eQS>weXpIR{UEjnjvnWryH{O|&ihI@>drxDo_wzMfY_NZ>+pou4bH_I%9D$o z1G_KmTG;t8`A@305p>u&FrF(mDm>0acV<&;9mfBV{IGLi_k~^Cp2GH{+YgT_lgA+J zUT`k`XNPN#iCL4O4`~mGodb8J&wqWP<7p;#4j#_~levHLc!qxPz|M!szvm6wOJZlj zuC4sNk}a3#@-OJ`$BC`O_QTGE$!s2|eI;Hh=CQv(OwKMR>+ea4bMf4RwFeUa`k;dC zM|URdzOehkqsn1z7m3NgT={v>Vf$fc!p!is_iOKooewXS&di63$=vl6{cSR_Yhim} z=fhq3-!P&5CMN&Hz@5bIwL%{9uTp+f?0ndnuzSIy@(-S~#N|QYb4{7hg^c{R&B<_lLNxJjbNGJ0;Wp-2T$wz5_CjXkm&PR7&*yrWi zzbC)**U3ZvTTj#9J`<0M2hU$(XQDd?b}j6C3(R@tAJ*O$FBNl5EB`3+A6I@&>`b^T z&$05u_QUQ4lX+?KxbFh#%cXzui`v^_XTq+9$=~v5?Q=0X2Pbw8y8FVM3(pse#N@x^ zbnWfnf!zxx^I<)vU}wUf0cM78%X6rh%x@^Ok@V|lXy1xm3p*cPDnDxoI}@hwXH~mG zOy(YEXg??YH=AgGid_r47IrV#y&iqB;EPw zo?(rc%(s6@dsu7_Oy=RbC&2c@WWFNl?uG7o)``jdvoib1Kko?bJ+X6O`(fw6o&jct zujz3I)AufM<)20VC(hKq6}uK5m50X&jQ?z%JM2u@Gr*oF#x?bTZ#`miDUHI_z4Q+O73^ z#(Y3x&x!6CU}jh;&k8a5k1D^J^y?4Mz7>=C`NYmacVF0QkA@~jb)xzpL&!@&cSv&Tl-!{SZEgZCg}XQI3BIx#snDW@+c z|JXNZ?*%_>KkQ7HUf)W7&sq6bkvaYq?Nzb;ustxfTWNh@=fj?Jfq1z*e^O38=&=2; zGhya`#rw2x#iL>#7w{%x)?tyD%%jfH{uDFArSikhgzbl&4|_J4UXQExP%)WLD6=6Z z^URsrhhk^K&V-!_J9CAYoR#NlABxF&u3j_1^!mN-Kd@_IXTt6UJ9Cwo%(-9H-U~WR z{v$)$Z(?V{^xA$}p*s`Zz1E1yJX4w7dY!6K4Uc9#wdmh-C3&hLi zIY~M79|j#}hHt%5_e^mv{!?PlfbL9~_5VupxbLCT z$v;8)4KbMw%?W!3*nZggu=7`l$(eqk_F?eD_QTGET?^Cq0`*-bCTFE`+TvXNq;!}Z zo=0Hkz|Mh}%EN18n9Pxbw8zArp(`fyPQ5RKqwZRCXTs#1pZxB-F4XqLu7$}zX}R{B zm^J4!7MPr+Nq1j#_kx{Yd8(YPCbkE*2d38=Wx~#cJr7LZOz)Kz1W#S;9C$<)KI?<) z;(1#aOeSl-DAeZ3bDR9IJ+O0N=O3CpJij!84NdcpKvnAn*sLTyt#n&yFhjzs}c|1Q;X>}v!{I(Jg{qFX1n9}+CRxdZ8vye=fh;~t4!Fn>yn4se$Zjp!tM)` zvx{;nPZu6)Yhv`RrNh)(cP+a6E(o4_&|&*wGT*LD*qMt0=fMwqW|-O|RSVPic=4gh z!)y()d%>=Ssl8c#*tIK?huUWF!}zb1AGRNM{;K4sww-uzuMm50pnK22xiU}C^@W`S zccs6E>n>(yGP~kYF`4j$_!oEUT8o_tI|ruLetMmm{P0}m(aMgSLp6ld8VARCdRXiJTN)?Cbl1)OnNN{To>B|lXHP;VducET@*MMdmUibihS6a zu+JCH<+=MF?H{o-4-MQ9Gs88S0cM6<6FU=~TGn|*sBMbvfn5vR50gJlGptHFGq=TE z>BD{Pjo^npKkV~`-D^$qlhX}4?7lF44^dy3*|rd`OCDs(-G!k!;?=7PlJ)Po8gJ_l50;?T0{^)G52zN#&pM2Y$=N|UhbEnz zM)DsbKkR(i`LOdR#pJwJIV*y{DW>n4%7I-AyB2nSOH9r?l(Q=6?ZnIs=klC)t6rmu zy$4`t!d-dZnmpc19qHt=ZfnHu+YPmFU7p+SQbzI&_KbK$`X8kC#N@DU>yn3c>x-#< z_1)StV$TE9iyYWFS+!iZiWm<$HL+`9`(g5TR6gv?Vet~_tlNU5lT#P_++nX3oXh`@ z+m)C6%m%wJ+?A&-&!XfZGZ#Atc0TM{*t5apjNGO@mUMC&V&}lFgEw0rS_ZHvsG&4JTEzE3l9@G9wIysG`UnU*4A9fDxeAsiYNPcpf zL5H0K)A!=XwSUCUft|l9`N?S~9_$}6wXgfT?ond*g^Wh2 zec>Ov7bTsXzS#M&Yhl;I&WFjlOF5OHa-N#lwXkbp{4f2d_Kes$u=_4Ze&(qM5A5@W z$vNx^?JKc+!OmF}{JGe@VEbWmYESCkCU!0CnGa3OJdL2k&V*eHJ0B+hK;^Fxd;Vtd zzG+6!p>h4^ls2$`(ZNQp!+%OOxS&U;wAE| zcupl-Cw6UL>|SuxorCTim|p92U#d(i{WY<3VCTTDg`EkLv%|0SycYcR;D_ypoe5L> zmPfU(#O}K&cyh7(!uG()V6`{5nbl5qtYhg0C z|Cjcd*t507OQg4S?cleG`HXs1@U+FwfjtB4Ua&J^dflh}ye8<~#N6xPx;#5SEw9)) z>w>=@bQu3W^278Zr!u|lTT6@%I}@h%ZK_=m{Pp00oeASVLjFa;p9c?&=Qw#__c}EA z8^I6bKU;p-{^k_MbBR3Yo~NB^w|Yj8>)?m&=}uu^BXswIeI4PhdiC^Lw=cFIwjXvr z>{^)GkLmGMn^Eu{y8pxW!_I+S3%gf+3R63{=Z9K6u7&A)`7K)WPz$>j##7bvFYH>_ z^EAYDd3M%%!k!tnrz!TFFqy|btm_i|aP+%ZJJiDVz|lkI!I~4@^LK+E_H1xn{(Ura zKk?fVJ0IOSwV7otY!6J%5vr|=eU5Nf`h$Ay0oxCIX4v!OL5J;!$$5(PpW=6~MyQ3O z?i_S-PSooJ*nOM9597H?uK{4s2|EXNZCgAd|5`o1;JSE*)&Y(l*LJ0QHaP0`qq}cE zCSHk z4;*#(MfYrQS2-Wi^GiGUVS8ZL!ua3LYZbBQ>;^v^b^JH$F^KMYU}yG&4!bWLJQmVH=;U0>d!JAXJ2MZpa9#d8bS+?V2Cq4%FrEjw zUZJ)bJTM+UJ%k(L!T(Q<(gk zUeBQ04?71Ye{dbAFtwl6Z0%4ByB2oeuDCA$FLm8v&kWnsPddHes8f5tYHM>#9Y%j9 z>CUW6?@Hf7pGU#YfuqOgi|(28;DKEW)9X1E?SHXrVS4SXdo1jH*qN|%n!y7*2PUV> zdkwK`Vb`|B&WG)Rsl7_)3rD~6yUFt}J$JzNz|Mr73A?r*Jg_}*^f(ipdG^$M(%Oav zzeo3T*dEw9uybI~Gb~=NoagPJdz#p_uxnv@y`&?*7(6ZU66vqnv68ieAI5*-vAPF}-3xYpM@;R3s_iEK zX_^PN2X-wyM}8hVJu$UMsJ5Rx7pfL^EsUS{eK7OPcpEo?tLB0u>pF}19JJ9uC``*YpJ^xZA7Gdro4 z_3s8h>|QXnpHMCA+MbxT;_=cKdu`#R()oEI*g0@l`Wrr`y&-l^ZKKiyyB3Zf=cALe ziE`?xmVE`=57*^6;NyjdbvR5sCVjd1wioF8`d66`V=N-OZn05&w~e!I{uyHZv+oK zB7N_q+mDX_W73>|XGQbmqx6F0RYV7wSGKc0P>f8|Q2N#jb_P{F3xx@e=VO)z*Ut#`AM| zVCTTj&&8e@&gFkuTaOp9&kJ^6*tLx*Os|)opz9d?&ESE_;eH6?Uo3xH%xr)8Y{BST zB;CF6c!sXnI*k7<^25>N%zn}buLH$Vr}l8w;&EoSNwJ>W>mE`QdmUhV;9Rv$)xz#; z{rgGx+78RJME=((vo2%z29L zQLt-a*TS9?_W3r02WGa%v{zy0w5PB$(eb~K`;xdVzWq$yuYw=8zaMls>f{{Vs_DgY zd2g?Y?Sb)JArIUT^PaRGJTRWyS82_IC!fN2?$zT3-T93v?0j_mua>_Va$wiCgAPZX z+JjWv4IUWJV6RSL_w7p`k>`&(7nq#qDyR0`^4wwc9h2@%bl29!xjawE1KR_;7wr82 zd!OWD^7p$-Yb7Rgo5Zd~Cv)&TJB6uzr~D1+_QTF;Cja1G5j^PBZl<3JgzayOJsa$q z;avXLKA?L`;`xc)7u|Dq#nxeZee^b6BQd@9OKg8Xc}|iJ+XFiXwm;i6+~>vi)Wn`2 z&edznpX!>5T?_lXhQ&+d8Qk;5^gZ<*x{kpQGyly=cduM}WY?nO@5v9lZ(|DQ@|=|Is0DA`5wQ#P?2er0&&|&*w`u5Zprq|cSjijHEIO@*F zm{}artj>eyH_{)AJc4b)a^%iPCt0ysCx!< z&kr;Ihc$m~^D-Z1&dW6qOs^voJF_1AF#fm81KSVVpHE?*3%cilJtxd;KhSIqvHdW; zo_ABB)9ZKYi|$^N;w92wvu!1Vmx~V;H&gA6^27GS&Vk*lB_`)q)wY8lX13Wp?t&lo z{IJifBPQqFb-k|?Gta%s?2768BApA&d3`ML95MF|bkEZhlk*Yf^pn3KKWq=|OxQWK zEy{Ud=08yL!_ng$be~H-cwl?rx^mWO2AIC*i^s%E#H>He`Lh1G*u7x;VQ0c*enC0o zVscpjhBy~*b&I^g4?7d~n!}!dQcMo(4>J$z-xRwRrtfQhti2)jJn)G0InrBVa#;U% z&|&Amu7$~bT<6ji=i)spdYuzIu;+xG1N&ThVrJ&E2$&i8jG`}gFL*@yQJNEW4$KVS zl%8!_)bhDRP3&42&pYIST?;$29{jL9u;+(!<$PA>2z&lqO#X9!qJI~Y`AhYJodbKG zM)G&$f$fLwhwX1pVP^QLW%EAr=J&jvdmwja*r ze?;@Zp1Bb`Fqs?wRCQwKz|3%`dNqR|wg-+La(*O#Te@e1nPK;u-d}`TxFLP;JzueB z>jn=@{vMhQCjaQfuI&dujAuJ};OKEqZR>J=IG6v^nho~Mu;+oDQ=h_Q{!P8m>ATm@ z3Z5e#yygu4Jb7L$5A0gl{)X5yz|1yRzrPQA2H3N~u5F6RJVg0$)Lo0toU7$&i><@x zrzG9A=+5klt;3!Z&Q*J`=7gOId(OU?oU4@&I|sHOW`-Ghj;L)@>M;7ls)bz(JF_1A zuxEok1Dq@8%bF8*PM(Ha3& zbHbhz_6+SQO#Xe`-=x#`g2c}620v^MOzo-M1I70DgCF(`uxEp#pZUkDdb~Wp$lOnl zcbHyJDj)XzuxsnV12fOAs)eJ+wYhY9eOtX?&jx!o*tM{08$oXdZU^oL?gy?7mzi}j zb6)w}p$z66Clf#0H~919f9(@`%my8vQ0)=V85-zKadS+si=>Z=*(b2i5%xJYr?CC# z&VfA-Os@;n3wCCE3OgU&nXq$U=fh++HXh2l;t?_H0NW3)y03)`QIM>NmKrb8KQ56qlPr8mURgeRomt#gE(1G^XOoM!OAQMVu6 z`EBut@_Skn*nXIKHq|`c;DOOANw>eB^nXZ)$-F+XJ+*Di`QfO0HuPMz%QqRy;0bXn zv1hJ_T9|qI>IJ)RK84*29skAhHBFwjXvc*uA=9a^9^u zVS0T$v1|L%$^WhHMX>YX=y5)}^J@!B4@~|iwU=P}zL$L{b|y@(-L!{c=flp2ou7-z zd7btQO#a-&u5AQAO#aW54@Zyl(MRPO+|R|HZBo2k`mQh6dsy)j@q^-~ctlKJn0a22 z*!gYgk@0*(9&~CyD(;GXUa(V5|8(woV1+rJ9-Jm`3?mEIP+FKiF&8DP)Z4IbFFu>ElKkE$2f zv@e~$znrP{5i|e&iQTvM!g2=K`LHu#_kwffeB&v-rV>wx9~akyA9g?Kk24!VhwX$F&XVx%&2W z?O=Og_l2DUyS5qp@Q8B0HKfOpxGw%Laa-&hctZNo)k3H5Rf(OC$1}k0)fJQfurgut zzdo&C`}?65rq_S!J`B@qRbux-cRuVnYde%P!1OvpyTV>&O`e%R*-=kok8 zd75HgpSOb_W(NAg^x8|kx(b$0C$D=g2?! zEIoOCDNi$bKA+g0mh>g^58g+JC&W+i8cFQ6h3$u%@(lK;I2Z3xEBwAL9qD8a-fM)~ zu9$P_Xa;yh%sl zpOl`9$vjn=uxsHF>CDhbp1M46)a{>?zC?arYr)IKyw++a|0`4r)9d4jUE5CjB0Uen zFs)JR$wfdjAXi++m+P9Q~Z*^yK%s_k#y!o)@Vv?7p>~%N!Wb2Q&|C&#-uj z^ug<>r2kHydh*|x*z=4f|KN3$*m|C7-=g;>Fuk_mb7ry63-TIU`-x!5zn z^tyalduEEqebL<)9!)bhf*?kmBa79z!T!7&(~v6%nW~2ChQ#8eY=Uj zrnQ3YfvG*6H58M1jMf}>U)X-wGr*o7-bA(h4TajSMdmM+3A+{^k%t-T$@4Y#aMF)S zY=16&LjDKX!(z_^dj>fAJrBC)X^81dKFs<4AhBzkN$=@#2jjmau{~|+o&k>fg#5qN z9zgeOuxEfhTUX2sk0~E^FW8y=bVtszBJpj8e?7p!3!p?_Bl{2`P zPGRTNrBBE+ruB!N2|EXNejap~bNrO%ggtX3=~wDr0i&Oo*qKe~k?lbz^Je+miT7jA z2Y**QAeHORw!#cs{IoVDxP zz)|-M=$--goO$rW%rm6#S-|w#T-*@57Ir@D{ATi>#rHwPU$RAsFQh<^tyDf18fgGD$iiwirov{z2FIXCY6(m zoe4ANLrHgLLpnTok1&PtfB1{~94Xaqe0st5qm%!8dAi~W@s?*4?Ag$LF0gC+V)FM> zEgW?+H-E$#0QF-VshT9 zbA;U&b}!hOZ813&%@32)J*{ASy1@@S2X=lxcwjQ$rJUNU3jTIt@;{o``E_}m14rGx z&?i)T+^Jfh;AsSIipih&q0U{*3~x&8%y#g@_QUwUA%8b`V9y3K!w#LoAeM0(& zRSUaUGkJLYw#DR+&(_bRP0{IfwDfM!`(pH2(qU?sB%UKCv$jWZE`$4n7|%{~bey7- zv$ym-=#AvRSvu@Y82@R~n_|v|*Ew)5?j_y+wsiWQ@OPb~IO^o=E4?dyLVUqL3$_Q{ z`7mqCx%5L$?LW%Qdf+^8BXBctTg+@neO_xWW}ZC~KRZM6TqC`kJfBT$Pd|D7_BmY( zG5X+p+{r&({@R{JuNzJ*m|nk4?3}thkv}farJHEKrP||^58DHi^ET-XvDXTokp9sx z6uSM*;DPZxc#^K8*q*kSHTj(~VRX&~9ud>4oA_s+E!ef_)IKe}FZTSfJ+)W=JCnJ| z30f2B)b1&+2M;_U{fOfW-RGDm|G4Id$=M;XdyPw9BK^mE=y4}*ih2JF+cTLwe~_ms zW`;Xhli-2LzgT)J`K$k-`*!fa6Y}hNk=9M@Ua)8Gh?(d4s_iEKF1kjrJ+No%CI9a7 z_k#{I&j+=CU}nBdoQ)OvZowe{eE(NEB|gYjP_&Vvr4FHgGj8_Ba? z`y9se9IX{>Pjd?6xmA92`cm5t9=Iu;>(!mY&g`e!?`qG$WY$;{u|2g#|ITDf(_BDlb`K#I+u>H;8hw*$%`y6&HY=3(SH|1x2 z(5XFE`LJud$o_uJUs#b;Lc z=yR%8;NHH4=PR$4|1||)A)Z`P>aE1+t^EuAuY0O*;u+F=iFYLDb%iGg=y5|ar#XM76V-wJ-%{>~JB z)_-o%>)zLD%@hAi+)KRWe!5;?Ej&Akd*_w@tW_}n;l%jI65}6VRr)6rVCKgEz`^O~E_D*OvNlV)V|9g+BjHnl176;_RkEUn(9>d{|OlBuBwb|{Ze>gGzvBdbt6A%1%759yE-m1QdXTDAT z#2*ol-(7kp6XR(m#?!l}===G1Xoh~ltHrJLrQS)5K6ziEZ~QKK67L|M{9~cN;!x>{ z4-|J2A1>}CK2egxj!y`aF};MIYLUS9gwzM|yC zuPk|G;DxU$_4R>=b}#jzJxg8~cyZumffv8J^sf%QaIDl92VNFg`1ykDuW4?MJ_)E5RG+P~D71zz~NQXhIl$twe|4ZQ4t(z817+Q|Bwj^2~&0}tu% zHCkU7c(JerxGp9eCk8N_}zU@lszFcxB+#fma?{ z`qu|uxUAF{M}AMKFAKaf@an)T-&^|E2VSeci|qAWA9!q{Hn_KQj~Y*W_-Ax4`ar4o z5~HsdJ7-9L3)8$X@Z!J=4=+6{0}p+u)E5SBiFvNMa)o9{+!ObXDD~{fg3%WqRpu-X zye#m_z{~VEGClL!z&$a2_n6fER(~TCK0v(qBc*>?5 zn9OBj&$BY{>cDFwA6NR<2Oc`U)E5RG`fRB$3%ow?kp8bR&#*8s|F@d;WsyH$>MH}U z4!kz->XSl%rm%Kjk$~#JZ z<=rLs^mBXc|NFk8bJ5SGnJ4x0N$_=NY5v5w!}@s?^z~wXwg!Ge+)KRSmzATRFG1fy z+|th_z+>W0;8 z_!AHOi3k3~_&eg|T9cD+(_RXkO_us_;IY8tfhPmE0(S!U0_%@6J==FU@L1sSz>|Sn zfjfbFfwRwq{J>*@#{*9WZUycH?giE#jw?^u&?0$+~_Xb{Enf9!nRi_Q^Y1jQ!=a~3*aWCjut?-~{^9w%g z=kh0>6ptmoNIahS2JvL#zlmFk=lnu5C*E1yOT0v!ZCvCZDIQMzdGT1{%f#b}Zx*)_ zGfyWm^YjukPqs;s$vne}nP)69^Nc5Ep2@__(@M-doy5%3OUyjkbBcWC8Q!_zEB~PU z#6J;_C%#`infPgVwDh+Ue~&*(7xR2HnV9Fqw~Dj8@Ek{`7|*K2cwYHu)$U!+ z(@Q*hs zmKFL%)1@cAT-F_!{`$F^E%E!r*%5_)`39;@yjI*w ze6P5ZIFo;PdFdZZjK7l@e=jlq@eddN9qF5x8Cr>%Vf^UQGki?JWR8jbdJN_oG3R*V zFU(hF;x*#lCkoFK;^9w)9PzU`Ngw1S9^@n*)VBX=HDtA%=vDNC+INx3#2c*WZJXuF;@p(cmCtV#7gS9Q0+Em!8#u*NQ)%YFB@!^sEm&bVcb|FLtkm-z|Bu*f|TY zEcIo9SBmXf_Px@xI`CStJ=s;|TEW~mSi|9@vsSS6)nd=KKJd`hW#)RZJqxcXd9m1i z7hYTH%L1=8`&rNvqxWtp^lX9l{H+DQP&}3xeLU*FEIc>X zr6*n|o=p4%{HxN_N{pwI7|+-}h373VR8Hc<#jV7ri93ng;>r68|M$0(p7=cR@E=Qk zEHV0I;9l@d{;BZuJ)lgGzvBdbt6XWkyrVs8# z=j-=2vTDKnKF4t4d&FajtJKaa{ga9Dw-V#;B*vd@SNQ+7Sec23^u6@X_NCrSj6S^k z^k?t$@DkkzUiC@MkoXWdFZAbpRP!W$fq3lo!7ujn#dy*OwQmfyiK$)tf$7iQE7k`d zKeg~5xl+AOE4g)g!Jqq#&L#1A;$Grw#Mv2z=T7nPmrDOwV*KNY@lPhkzxteVp0$Bj zJ~ci2j@IPcHF=&cIa@d*>!*ABc;McPXAIVGa&}F>I9~8M;^CK;`dDK0)=q`KW`kPR zOZ+?W*egnXJTZDJpE0;6kI%2^XDUkWCH{-_Y;mE(oxOu6aJEnB84kQ`{~3exJ$);k zZ{VTVmHNuS*#Sk)eJ|8GCO&FA&7b%w@p$6TZLithSo(*=tnF1>=z1lc+J!+MOZp%u zF*&_=7VGo=7pd2H!JiVh&METu)At5DiEkA567RKJEt|Zs@ZThECH{?gc&C|zwOzE2 zG6Rn%9@$s5iM!%f;B4ojcF)%+C-7L}?@Mnb{@xPJlbBxFE=BDi|3fne`{ysGsh8M~ zsaDb}U({?zmO9L17XNr+Jgrj;{kNwU?3_;0|1KT2-b?y6%E?YEYIhZ{75h1T==72& z&n`S;YjiJ4yj0vdx72%y(Z{}7&I7ye_!Q<`m~AronWvSQdB$&?nf24-ZZdEya3^r< zj?&)=+zXuDS$f7EEx8rAv-hlL_eL*pwojpR?S>PxH^u_D60o7I-}HWZ+idPT*eP>|-JSQziEzf3?)J^GY5LJQjF7@MPdt z;7;IPU_Hr|=Not|aOZ2Krx!T;dZ`Zw9t%7kcrtJ+a3^ptaQ2OmANkv*J{EX9@Z=?> zrxmypxEDCPtn?2D9t%7kxFde{F>-my*>xc&@L1sSz>|SnfjfbFfwLc$`IDWJTY)=) zv+GOGaNx1PjlzK5h2kG0t;GD>2UJ57bgnOSo{xsR1@nB=d8FV^uG3>V@yX)Oqd`xMKDlVlv-d`r`{Db}*F1@j z6%X%KdSE;szDxI<#OH{|6L%B)emj};2hsDg7Jk-~baGljhv`LTCowsb?=SSH-l6A$ z#HZ?edgBv?{x$Jr;_Jl2A1M7}iScJ2Ed9fY@pnE_=yUYF!CvAm#I2JHeZO4KJBf4s ze|o*d2Z_f{DLvzf@k}Ph(@IQ!Co%bx_ZPK?Z6i-&zJHiKSm;k}p>s*RrG8Is?2$sh ze=D7P;%QsU|Mx=wg?KpeL*mZA3VpV6dWm-sk8QQVV4Y9=qCOW*{AKZE;>*RY#B1TL zOMfRZ{$67I**1j-fA9GP-=yEo$%YI5y||MYy%+S>g3{kfJn(N@>b=ARefvVcZnj>Z zCw^2s{-RQ!OpHGH;zFPEIqjdsJBfQQDfHbxtJn4~E%+euSmLwg8BctbxU*B~?b2R~ z_p%MLE3>)T3u_x@+toJCcC2lZy}0(=Y^U0$*)Fx`Ww&RWWw&ITXSY?h%zlw=o&7Z1 zCcCvVoE=o#HoLr1&%RT6LH4!EcG-oM7iCA(cFx{Y+a>GOMzecrFUy99cFi^$dU^Kz zq206R4egP=aA;As-OxVS%Z8R@yAHiBJ80+)+0vl{v$qc|%?_V-PA@P8T!xctf5Bsp=rzXQR@4%D~CRmeRt@H?E0Z2v+mGQ+3$vyXO9jYo&9C# zBiUU;AI%;cIwpH?=-BMup^s-z4Sgb;Iqj3#{Ar)c{xJ0E?8%|YY{s+|*+$bolWj4r znQcDpxa`r&XS0VYCuRpt`+Rorw3D*s)4q@$Htpo>ifO0lqrFqJTf**~;nbvJGZjkFHfIWdF_nNDq}OYtlT<%o62!Bhbw2#Tu?c@vTfx< zmF+6`%y?1d?inws+&*KpvVO*{mEX_Ut#a#(Ju1JSzh~v{`LC`#J!7o$#EeCi&1UXZ znL9JDJa^{e%9b62znM*2ft?plWTlIC7|Csgq%D%JS zP}yhJ0hMLd11pDBmsZBB2Uqr-bx38S>YFRiWN)d=th}xAboP$QjLJJJ8&?jk%&#;m zdsYvtEUvz%vUl};m3^ucm3h?@CUb(ZXNwXs=+h<2s=4VG$Hp-S)PMh`N%6YSn zt{gk7S^4U$m6cD-I;paH*1467W_`7C(ya3;=gewVzC7#v%2#H!D`(HTuyXFKiz~;> z`gY~~SwE~?FsoB}EL&5#cGlX;m8a(au5wM~_m%HgdX@WTt*h*u z-BY=DR==`Kw!X4=znmJ*)bH4Q5wgw84he zU(DX9ddKXItAC!oN%f)G&#gW(d(-M(8w^*Un!TX<%h5!PtL{1HRn_-yuzPi{IeS$1p7S5o zL*~4?dc+1})uT4Zs}Ib5ef2l952)Tb`@rf$bKh9~>AZugf1P_s^`3c$Rg1 z^Z}iH(CAhycN}-%==9B=kuD?U(7qcdhNUus}IlpLiPLePO08I@3iW7 z=bc&o!MwAokIwyab=rnssXjLMoa%M+zFNI+-ucxZ&TCgY^Hx`%n0sM$#)cPFKeN$y ztDoEGd(~6tURC|l+^ehS%)O?1!v@z@r*H86>b-M+P`zO8_0^N-{-}EP+#9OjoO@&S z(z!QR@1Fb9>P8#>p}OUU_f?Oa_dvC^(VweN&iPAq@w^ACd(V5Qdg(@gtzNRx!`0Vs z_-OU44Ii&QKJOpZzs!50`qw#6SAVoYrS=E?QHJ>&Ze81Y!{_Tw(sp03=ss8;ue-dG zeNsaNvsM;)`9E7_}b*igqkb^PD@zWa+x zcC7sW{mV*rypE6P___b#>wo;ZlASDl+HWelC+eHEI-Z&QXX`kkufM9}|JHZaT^0RL zUHVif9dCQAl3k;EA5WZC&92ke-&s@1exl=_XH@k}q~B=PckX_n<18Kdn(y%O_5Z1# z++V4V+>7_ii1@I=_+UCdm5v8*SIst-KB42L zI#Rbq@^7Q#r1Wid{Qo2Wg{cq6x9Wd&+A$nI`HE`x5`BG=j=Si{*Dp`USEb|s+rRIb ze0!ziK01C;zp<=e?iu9$KmGe>_1lfFm+v$k->Bo%uMb;P&3-mRe@$G+AL%&tYp%VPP*4IArI6F#TUw%L}J61=&KAwL+u$p~N#~qedvy=aauZIt+W?z)<FXb-BR)Q)<7G%d6@6gxpNMC))$vm8`XE>j3@AtstHN`Tp;pcA)Xtm>~~k$V(aWafYOJ zqI|9l8J8jRWyq2lvRa00mLYHL1#t_s`vORC5<>k~x0k;Xh>M_|Q%68t1oAqN;2{kv z=opBDK*j?Z0_3QZpg%zV1Y{(Tn}Cc3@?eHM17srj{Q^iYklJr3Jt9M91JV!l|K061 zI?YhoJ>V-1K&AoN56BcC|4je>_<#D4p<-ge3$huq#%mC7K|emvkez@8AKtN!iv@s$ z$3rMTG@m4~RAG=m0?493!sBO2AmMSg43O|R3xC6U;cs}Hg}<-MELA-Ue4Po%T0s6? z^>}P7RRPo=kVOoZsseuhM_B{>ZW7E=wSk0jpngU=)CYe5AL-#N)fnc>kb!t!4y?bf zKp&8y6mZUu4%kVk-= z^8x93nzGaakgp7oAOuqH|9;(yrIrJ|y)}}5^>@I|30+w$-Ug%r-hkN(>J7*j;4PS) z;CDcNJ(7hlh*Imp-Km2>?g8=$kY_UF?F{)cLkeS2dT@qJ$dLJgJORpG7{OAffV`0* z%L4s5@Vi=utPkWR@cZv-7w*%qf%?f44pHRYnLJ9i`cODzHt`VZW<#elCwLs=eNk%zKwhP)TWQB6U- z5FnYOdH^{e$i6_X1#&Qua6e+^0sfW7QD!y}=lmQM2ISw}&inO$4c^#k3+x;QWJe$? zWap?7z@9cmI7$VwH;}_+1J}SZ~#g-wl8~ z0Dia5_}wEzrdC1qysgerGHA!FfqwHxSt>jD9ni0#0XuWIg!FD-Dzn*fnJcM~wjGW)4Gk!+C_`3)c&j{YG;X5As(V3&sgZxE^A_d^ZNa!@%#j z2^=*Bl+OVq2&q)DjNhMS{B8^6WS}1eylpmjVUL;kz0gTOj@-@f<#W7ITce<1&#rN6I-*Lli=ac>0Pj;##j`|ZH> z7X$RmmvU5oAU6Y92*|xaegdQ`g0<##yn^O;^D-pgujik&`=4zmv-JqqSztZBpZ<6I z$@~5M|C`@b-H6szV<2S^rvvf&+GdWb2gVut5jccV3%8K<2M!e!T!&Cb{*LrMAmO~g zebQ_ob7uVh2*^hu-=7_C0__Cq|IqrTU*@Repq=xtSgIwEH#6j7pohPI$&hd#2JM3T zi{F8S`@yq7!u=qWaDNKZ;lAS{ki~9N)Kwti{^KT)aQ|@^$n~JUhd>?%@+pvTzXm1T zM?wkrkx;^YB$RL;2_@V|LJ9YgP{RGoOCaI?V-~au7ynO$63^*Qw z+cW=1T>Ue>9K%!9fgKJY>j4=9WK$sjO#gr9{Lw5;@vK0xtc?;`1Dv6RfU^rXIFpD1 zXAy~%o%K;Kn4FZs<^{Xt!r+Xh1URcH3(jb&P*0c|;0&rZ_!Le(>K#)bd>E|(#jy=3 zhHV7SNE%a5nI_a5rYR+{%_*5}L8)wO%Eq>(o--XNo$W}OY!}MOcB5W0-KjfFPwFo7 zCH0W`3jFwxR1iCmy3P!uZZO}1GpxbjY;FiR;~Gl2 z*fG>=W)k&)`JM`9XMoS;%%N^Gi@?3_WmJA@IrRy(i7G;Eqe@acs0!2psyuawDg*9t zm!^(W<*47mvlM5jO5o0JMetNqDe5})G4%x8NqI(89Yidke}=x1?0MCb;(AigMDQQ^9l-%0)MzLg{>57(JhH)BTtTx)0-_zholmIZQNN zfQzMnV&dolOak4PNu+x-N%TA>g^p%Z=~&iB$Fpg49P6jYQ|a_PsuaBdT$f%%RibB5 z)#;&BO?oU<>6E}dN$RUoTMrVQRp5KALTr!S2Lw`@5 zrGKE#)1#=1^l0iT{R?%I{+YT%ucGeKtHE9K71RSdk$p%fu}^6)`;yMV{z2zt-_m~e z9i4}znOrQxWGb<;|SPyOH^n-ON;HcQDo1olFgO7t@g4%`{*SFm>2NOe6LfGlD+BET_*fOX>5> zNcu9fg1*W8Oy6N<(hrz<^b_Vg`VVFl{gxR|)9eJAWhc=bJB{Yq>9oj>p(XYwT4txv zc6Jf1va@KNokKg>akQHqO?%jhV6{vJtK>(pT4sQm7z<`$0iDWD1v9XOPG@_v+1Xxf zF18t)mu<@yU^}pd*v{-HY$vu9`vqHu?aG#CyR#M8_H1Rg8(W=i&emjGuyxsvY-6?y z+mvn1wq#qeZNUFJu&JPA0iYcMN)81jhk=qKKnvf47ACV_u@l&S>?HOZ_D6O&JB=O5 zPG!GirvQyZ_<=Qr8LU&7%|-}w*&tya>k@uq-NHgPQdrCe3rpBAVL7{xUBT{UcYyz% zV3)JMvy0i&>?-ygyOzDcE@H2+OWEt}PWA@7oxRKc#NGorU$YC?H|$FGExU}RxNWS1 z+swvs^VwY7Mz$2Uj;+CMU|Voo+3wtK_8V>i1O6`Cf`7}l0)HyCJ^zyJz|&k; z{termf5m>qQ``XF&JE&K?pt2qhVTqGl9#wqJj;#aBf0T>G&g|{<0kSU+%!Iz`++yO z>3k?Rhj(&w!J}de_$cltKAc;~2XV`J7kD|$!L8)I+-g3KTgNAYmz$EgO?(1)fhium zpp?Yz< zj8K6SgtD9@)ZkR16sHR%IG0eGa|@qx;X+l;BUI;NgrZ!mP@anuKH(CCid?c#nM)BW zabBScmnyX2d_qGmyU>KoE7au*3iY{ngP2dJ65hUP4o@pU{dMBXs7z6FPC@gznsAp&K_v=)z4GdUG>{ zuee!4FK)ijm0KY6;g$*$xaGn)?q^{Hw^|s@tr5m@>xJRm24OI_Ss2P~6((^};tDQK zoXDk$-*IW;FfO||ipwF6;c|;3xjf>xTz+u~S5R!vPZT@wQ^i%>EO8z;Pn^T86PIz@ z#p&E3@dxgxxPUt$&f?C9KXF&ZncQ`8K6gtT#N8HGa`(kW++%SeCrHaVU7EqUr60LS zX$co2&E=A$rCc^?HkU(M%;lE8;qpk^xdPHw?jvaLP>9pq|CzjJM+y<8{hFxN#o#Ep}Va|@-T++yhrw?sO} zEtAf3E2RtED(MOLi}Z|JBR%IfNO!r7(tU2T^nlwgo#l2&7r9;1C2pT|ncFWt6VfB@lyr?dE#2hKO1HU-(kM>$#Hyc zIf*YQ$MS{bFut&SiT(sU#Zy9lNSBtc(B&U;+b>%yBefcTf zP<}=?me0~npoAevDj) zA18mzPn5IqQ{@W$k8&q|hMb$9E$8Lu$wl~Oaw+~7xh}s^F3#_e>+^f%hWufpwp(5$WOG3zKh&3ejyv!U`e)kvAgf3B?Mn<#VnX38qQrLvlDt@P#FC>!~9 z$_Bo@vXAMY9Ax?^hnc?00j9sQpZQKX#*9;J!UW|yKUvw!Z&vp6dlXUFr^vzqMGy`u zzw*B-m-)7~i+o?(6@IjB2S3iXg`aHO%FniK=NH(H@+)nMu-IJHRdW|ZoUZg%% z&r=oEt5hX5A6-K&K-X3a(QVZ{bWb&n?ysiM15_V9M9oVNQw!3g)co{VwJ<$d{fM5f z=BDSW$@EgyORrLM(W}*}!Unanuvsl7Y*9ZI4yqM|Lux(YSG9p~Sgk1>QL76_)w05I zHK%Y%%_dw?vkO<%c;T8FD_mD&gqvz!;hvgbxUa?u57czwq3RQ!t6t%anjo-RErqvXDbd5%OtiLSZeRP+Th@l+daPrL-zSIjxLPUaKh7 z(dr9zwT41Ht(H(ZyG}_0bHm zzh)DMXkDpcS|@6R)`c3YIm8K?DNfR8af(BT66KH)rKQ6y`JdNIWb1>D8%VKg?PP}kf^s7lJ!V2MNbs{dW4uuPZ101 zImM!Sx>!N~La3y77b@$mgsQqntfnW3we)bYfu1Zj)1$?%tH+BM^{<8NdLQA2zD>BPe=FS9mkST{pM}Tz3gL;qNqDLs6kh0i z1;N-Mh{k?FHMR(vQCKvL?Sg3x7M#XPA=LO?2s3UA(Z)F;&Nv~Y8E1v;#ucHU@lYsa z92Y(|P7B41BSLHAywKJ-C3G?_3f+urLU-f7@Re~!_}Vxo%rlM(^NkC_PsU|osj*pD zV~iEn8)JkG#&^O-V~()Nm?dmBeh{`A(}nHE5@Dw?QP^cn7WNxI2?vcu!Xaa>@T>8? zaNHOroG?ZRCynvKMPrHZx%ZrLxTC|(xMAfVy>SiU;Fw2U;=EtJTEG~wc zCB!iE6EV_UBSf2Pg;;aF5NECy;>~qJin&2ZH-8awn1_VC=02f>xl<@<9uUfz{lxO- z*J5R}zgWc_AXYQ`inYwGLLIY+SkL@PtZ#lNwlEipt<1$@7juNz%^WL!Z4MO&nsdb= z=0tIrIawTSP7ueK3&aWLd~uRFMVxF-6{ngr#qZ5w;&k(SafUffoMlcDXPYC%`Q~VG zfjL21VRn|*n1iGZ=1^&eIZ@hcel6`YyGRGj_R>+at90BPC!I7qNN3GX(na%2>54g6 zx@nGhNG6` zbc~XM9b+Vyqr2pGd?Q6T`b$xcFQgd92r1FgO-gc1l~Npiq;$u(QVz#=QZC0=QeH=W zDZit(RLD_RD(a{ym2@l@%Q}{dl^mZfiaQ*;#a)gw;vUCoaj)Z&xX*D} zJnZ;QJnHyeJmxqjo^Tu$PdfICryM85bB-(GMaL=ersKSL$8ku!>o_1jaGVsMIL@2T z9T&})j?3md$2pU7UN9NwB~x4ioldE~Ge~Oe440ZZ!=x5Yx75xVA$4@xrA|&k>gp7w zFP(-o#A!;yoSHP;sY@fAaneX4jNZ&g@mZm$4NHd&Zx9RjtbDe3@ ze5X%Z=uDTEIP*(Oo%y8Y&T`U9XL)J0vyimbnM>N>%q?wl7M8XqIA+(RXXdeEM0IGldd@PO4pnvq?^tP(j8}U>7FyE^w3#Udh9GMy>QNw zUOJ~subtDRcg`6S9W+mpgJw$hpdTeYXpUqC&6a|L=1O5fKS?n`3#Is=by8B$E-5u= zr{oV>FJ%wfEaeVbCFKcPEqxrcQYsa+R;nDdL#i3HO{x=gM5-TjQfeM_T51t=RB9V^ zR_YOSRq7RVUFsL~SQ-%YT>2*HfiyVio-{1zwlp&6xHK{7hBPVYS7}<%VQFsADQQ8_ z6=`A6HEBiALuqBuQ)zY3eQ9mbU1>wm1!;58C24oiMQLBqW$9>8jC>*}Oui9B$v1=S z@~xn7`A(22KMabN9|uV?AN)=df^D)G?3U$VR@Q=JWg}RSqk>;c(ZLaNY%nJ$2S>`@ zU{Nj<948kE4wfqfzm+Nmd*sT&PWiLoD7jX!OKuaKUv3wiPwo<&TmCXQr#vV)mpm*u zkNjP5Uitgr&zNb!HJBfQ>oGqD*J5S_*JWk}H(+K5*JtJi*J0)d7m|MpE+wxB{zU#c zxTL%~xCyf+xGA$QxFK^Y*v?!C=9$aE3UfVJW^M(G%)MZNc@_MMRzf633*nf^5Qg!F z{6QB8VVPnfh2^RtCFI&6AIbGYf|v#&PNrc zNxujQq5lX8qThzxpx%Xmr*B=iDB5+OVq7;V)>VKJT?HA#RhThdw<(9~0Ttvb#Du!4 zF|n@VOq{C(6Yna?B)INSiLQ_3WLFsDb(u^am(CP%H(W6I2=3 zIjVx|G*#Kvf~oErLf3K)qwBa%QgvNtsD`dq{O7KAOmkOjrnPGj)86$h)4?@_>Es&5 zba9Pfdb&n2{aoKM-?+vw-?`lEBv&Z=qbr=932t)Da)q%AU2b}bD~w+5sw%H^Rg+h_ zs>{E)YRIcyQ<*iciOf0|OKouN<~O>)7ZY5&_#Lj(%s$ue%zoEd=Ai2obI6rI9d?CL zCtUH=Z>|{XtV^cOyAC`1xGY)|N+y)|AJF){-ZNelC9>+EAVq+DM)s+E`u@ z+FM>7+DBd+`h&b7w3oasw5Plybeg;?^hr%$&>8Z((Dt$zHd~g$#>;xxDA@?> zB%5KKWk*;SIVkK4IV7yR92VA9c87J7!^4Ki5n+90Pgp-WDy+X88#X{r2pc4)gncEa zh7FX{!Wt{-VcX^PVVmSlVUMY;Ve8~=VH@S+VZX?~g)Ns)hdrXsg{_g#hb@yIhOLsH zgsqfcgsqU@g#9d2?$t8yJ}b-a3$p1xBPY2p%E|7fve&&t_PKY<>F(d;T<%}x-0ov? z9`}AZultBx(7jjw$h}7{=Kfv&)O}bk<328zbsvz+xsS?~-23Fp?rm~S_g1;Cd$Zig zy+v-~UMshBpO)LY&&gl7FUv#S8|2~c_3}vfOLL5yaeU`i9OK=RV~U${{OEpU&UD{5 zXSwg1v)%X1Id0A|*Zta@?|xz~aKAN|xF4H8yC0grxHZRWH}6>E794BcZ_IV>Kg5J}-^cDAZ`ks3${m{Lhe&k+9 z)8X4_TlfZA3m>5B;r&&2_#P%9d7Lod^gi7d^^)7{JPvFJUi7j zJSX*a_%*q2cn+$6cy4NFcseyKJR3DUyaYWWycj()JP$QG{DwRxyd*s>yg28=ABNM)%W&}eM#OVjieMBqf>nYeUdWz^M{<0`6WJH>RL&l8 zU(OT3DTO0Kl#&rI9vN#-xZ}jcF038M`7j8G9nO8hayl7zZPE z8^1>EGY&@_G)_buHhzmZW}J#RXpOxjos8Jf7@EeoqdgpeLvC zktdh&iKnnp%=58P-1DhX##6?q4zR2^DvcmID{n>LvUFF%PZ}Z$$cX)29 zyFInl{hoF9L!L3p3C}+Lq~~}2nrEtV%d=R2;JKx~^wd$Ek&E<@$UA!B$Ypww$fZiH z$d8pekq7kpk-O{-BPp#(ubsoH;v)a;8QP5aVFn|)cN)4n1y$i6bNud+Ha#J(odWnUZFPgxh)U)dV@jj}s( zkg_Lou(CIDsB$23m~tp`q;fcNlyWR`wDMczSmku&1m#lXIOS^OMCE#9nEh6y+kPi9 z+nEuy+>4{ zy;oFHYyrGL~0Wnk16WpLCEWk}Q>WmJ^UJ~}GhJ~1k%eQH!T`}a|4_UTavm3dKz zl=)G)>8QZjI&Ne-ox6O!LN=mT1HFd$hxLK03&DE!t_j9vy7E6|LKDN1L`c(IGZA#$^*@LTyS+n9Ugz zVapX0Zp#}JX{#9%WvdetW2+w%Yikfw#ojokmc2zxZF}pOI`;N4pV>Rc)U|husb}vM z6KDG>Cc)Mx=D0E-Cdu|qOrmXYOtNi6Op0xEjMp|k#%G%xlWvV?MX9ifL+J9n;LdCMK_KZA^aKuQB;-Ct?cNuEi9z-H9n|dlB=I?QKjE zn;83vO^t0~*J4}Qow04~p|Nf4?$~zr@YtfZh}hz`_}CJ*)Y#It?6D2$V>{Yg#`dtcjqPXe7~9|8Id*`(N9Vh`!ZV)yGOV^{01V;`t*V)xiTjk~0mjVq>9j=QQ? zjk}}Pj$5NQiet6Taa;8-;$EtK;?~=T#5GVy#5Gh$$2C&N#;vuFi<7m9aU1O0<7(S> z#MQCwjjLxn6xYD^TU#?b zFI$)RFKyl8zq0j=Z*BWBzPGJ+d|zAt_V36Iqo3G4Nr5~6L76Wq3E2_D%=bhw~1fa-z9dlQ%POzOcHPBlRDeQr0#Y(Nz!adJq%aU*G6p8 z03$xBkLpY6Z1|J98hMg>8Tpg?83mKRF+NG^YZOcBZHgaJ5#_D7ALdVtf6hacYC4F>1r4z4k^)Q`II(OYO~) znk(&+uB+{ncG~+SHBtH|HB|;CwNwTtwNgeW3HC`zqJ45wJ7r2zM`dbKCuLevXXS^a zF3R+zFO(Tc-ISS0J(ZVJ;Q`J1lXVrYkGt~mg*VKZ^>FVdn4mvhpL^EN2pzrN2=YDN2}eFC#gM>C#qj2PgcK5{$A~q>{a_F|Dg6yo}ms*{z)B_ zyi}c%yjY!@yj)$B>{k~juUD5OZ&a5iZ&8;g=TcWBZ&!a#-mU(UyjNYFykA|L{HwYy z`G~qcIj_1g`Ix#X`JB2f`HFfX`I34v*`~cqwrf<1s-2rV?Fl^&MTK@U%9sYj-?*P~N9>2WDt^n{eIdQwVvJtd{5?oIhhPfh8g`&0Vr zxl{V6CubX4L?`iPX#`skFg`q-40ws9%1 zY!g!cuuV*PW1E!HP??r8)0mku!XCioYvsLnwTj+*S{3hot-AMtR>S*9`^@`TtLc5B)$%^oYI~n)b-c7*&&%o!yqw<9 z%j=E3vfjk2=uN#gy_wgpxAv-f2d}Po@&@Uhy}|kyUPJHZHTCXZhu*{M)O&iv^q+_w`2V{k&0ne{Zxt&>N$FxaE{ z^^@M`+Bt6}{eoB2FMApNy0@u*!&_Ou<*lMW@w)WqUQPeQTUCGUt){>AR@bT28oH3$ zOqWvQbbIQjs+RhhuBYbEgHvDz&y=Cbf=UDYb-NBek&p zdFpw!Nos4YX=)p-eX39UB6YgfD>bJ!JoRI3L~1_myVQc(xYQ!rgw&$i)YKB%_o-#H z>8a(l`KhI}MXB-H;?x9fMQWn9IyFgKmztt&O!aD8QnPE@Q*&qsQgdl1Qgds+r{>Yl zq~_PorWVl7r54i8rxw#LrWV&Orxw<(rk2!hq<*U1NiC~ANG+#5N(Jw}r&iRSrhcY9 zORcHBNUg2CO0A>)ky=%Iomx$Mn_5?+eDyTiS43re^)=SlK;wK3HQv`)lYLD!)z?hZ zeeE>U*ItYCb<|RQoiv}Xig?+=cqQ2o;N#6*qjBlh?!8b~)=o_n5@_naO^-a=h_`cU_`6g?%ee<+> zzWG`M-%naY-$JdiZ=%-3_e^i*d#ZQveWiBs-POPFJ!5B1)@M|vOMW4*8M zx!&LRLLcCJsSone#<#v#`d}Yx4ENR2M)=xlV|+EV?|ffs6MY}6lYKL^DZWbT_rA*N zG~egi556YaTwil-p0AO%(D#+L$k##J8L!jo0q_rf83SQ?-}AY1%8_TotZN!x9YPphINr&Uu@((c;4Y4>cYY4>fu zvj@`v{>z2^WS}nD3+99<_+ClY` zw8LuAv~hazwDJ0_tPn)TKlXg^{mX=TbG3~fIJ#D%=J8hvlC+(^_H?4(w zB~8<=r?paVrkUEEv=Hq+TWd1@ji%sVZ;JkPrtIHj2KhIb z5q`g!;7>EN`F&;%f2vu?U%)KlFJ%_@7d1=yE1IAB3!0_<)yy*f>}Fa2AhVo5uUWyL z&8+B`%-%Kw$w$KTiN>n~#V_six0f0#MJKh&JzFKo{87dL17OPllkmCc3z z8s;MZx8`DhZF8wV-CX6bXKwa4GPnE7n>+nY%su`V=01Nr^PsglX$q;qCS zdXyQN9&SdZhnUgnf*GGKnhEKenV9Y{)6#X*pB`-HP7gH;raR4I>Eq2(=?l#==_}3h z=`+nL=_|~t=~K<7=}XKO>2u5;>66Sp>GRD&=|7l*(j26k%DMz;w~PUvlD5h&17*>;tizObEyqE=r&d`~3#mElvZO?2?S5!2yB**W zR`4G7Kb!NcTg%!~VoTPwkbGI!mo_&r&L3Lh6Hvlt^^(v)po_M2q?VyTm-+#t;Q?>t zgXQ*5M-9HYU+e?&W!+z5GqIHTD)BPnGg@34F4Qs%XttB%oRr6$A9SMPtC*3+*jx4Rk0*6d6ioc>H%jhkXBM zK)tMdU;4p&92SLvw=u#0!9P-SW)^(tIv|$*E47fmW!*06Ia!HWm&iJmj323wj9O-6 znst3yr)D+_q({vc1m>+hAavB|0VoG}hnk`W0sLrmkALoR~^rs)^~( z%A#6eSwyfbB3KsD2uxD}p?(kxNGfR~>wHk$Rs>lkWaW_6 zL{=DCbz~)ybwJieX6t~=8<|TozhutIIv{Ixz_EjPtDol#_=go&l<05y?kd`_ML`z#I9fH9w&9R(&}k!6yEaRj;vC4)}>T z>T6I-q(vuj8&?6Lo--@)xBx0^DmKAW&2|qgJ}w;C73o~+J%Y4rXyH)3DXTsw*j@c+I<43r$ui8 z4YbGwJ_9w%q69#bEb;-GWl=#uODrk|XstzM0KsoSZlI|s8MX_@1<@j)^IEzMfO1XP%SP%?X8_h4A!M!`cPY_ zO@aCZOe!Wa2EkYtjVT+Zk1+KCgpMu)Fnx<@6sB>QKGf2EpakkUnN_k5$lCZ7=R1ih z@8&>RIKShp(ItHg1z#+>XXyrkQ?{2D6#zQaT3JA76_fcOWl5ALI^vC_1o7Gr^%SyB zGxHhZjahpS@lY~q#8Toj#E&u?Q{scfD&kSZKmM_1LHa?whjz>4M66MJef*cLV5rP~8 zNaQC+5^~fa{Ushnyeu>CA-+ZYjnqOsh3JTH?ZmP3H%w%gwjb+YJ`{amK147dBA5>m z^y#k@7=bghimdSu&9@wU^X8sa-#S3xv;E*7tOd2U1?b*cx_4K=Ulp~%)N0`E`dU`> zu7{}!An-Z=jIwC40W@NUy><+Bh0f5kvX)+)bJ1Y+WUoNoDI%WYK+Q0maOY8)+-)iF&AXN5# zCPY$62~rEGnOH!qB9=m{(Cov0JbABg#8Q55ARio!YT(8Pe zXfq->28iGoAcA9n2#x_FI0lH|7$743eF*A%WZ4V}#ijxWXiC-Kx`&pAT2usQO z160(a;uXR7mncz85jXzBhH3rM@fmcMR6OYqrf)Q`@9P(R?=`&P@o zUO_fRN9SJwqbakz;&rpnGAJ&8&^8 zxI|`UNopa`BPAG)3uz6;E7UjA+6i3WIZQVJd91Pz0HHA;`A8ciH8V^9Jx7D|oQwt; zA=1l#Wi&F|bCm_(>ECLNDOt~1>qzSN7XvG786XtlI)M-L7lMC+o%#w8()9;a%+iep zRLUaQT6v330v)CNsmY`uK??jhdu(d!WuQ3P+8mnP|9#}LL5Xv_X&@)SCzaJQJ(nc`WHGL2$@yWwLyR`u! z|80eJT`_%wiP-Y5j58Uv%toB7zs$y-%sH6_Vij2%Wc;*8f&P-Rq>aqh^N02=>waWr zJ+Yb0G?^o^4oE);ksgu$X4az*wLY_+XEq;M_k)bVhuZg{-biZB%qr5$%BsH^H$Sex{D>Fm(B_Fz;Nn9gG5~3sh$jth`$MZ;k zGqaiad1l^7o|-KDIB*;+1!x=G)=`W1knO#Lz0-_g{k*0{iH9u?jrxO1y*>12w@ zxXNT=io%o!Q*lhyG1bG=9#aoYn*pIVjse;OC-9&67Fl(F=4Hs=pqC+nUWN#I86xOq zh@h7tf?kFQdKn_q3=#A)M9|9+K`%o@YX1AY4EZ4RGDOhJ5J4|P1icIq^fE-y z%Md{?Lj=7H5%e-d(8~}(FGB>q3=#A)M9|9+K`%oDy$libGDOhJ5J4|P1icIq^fE-y z%Md{?Lj=7H5%e-d(8~}(FGKWKybR3@^fE-y%Md{?Lj=7H5%e-d(8~}(FGB>q3{hrY zR+(m~W0rR}0fdfLJprAvba1U9f^Q;SuykbARb{~6ptp3*F?GlE4W`MM7GZi0C=&b? zL+~ybuK8cJ<#Ve(XbU1}3nFL>B4`UDXbYmuY?;q8)EcY4m4G%`l$p-QG1OfvH7}sY z7L@{ot}avsgpNJ+F-=$)I3E4y%Em;(QG<~>)uLWJlR-lpfj`9%1yjj$1>_!ND}l+l z>O#&E;1embRiZL}K8KVgsgdAsIij@z^NqAhc!92#b&oU$rh zRnx52KGZ5fXEL5lj|7C~G7S)#k0OBHS@l%}#K*%i$a)<>|3xb&2N;dAR*4ayY-Nl7 zo|X7_udA$A6Ipect?|r8h>RZ@Q!>t3kI+9KU9u9`A}=H4MgycCu%pdS~@raR>9}5P(FCo z0PX6beMnct$x!DL;7ZIawI)uz0or|F<%8!Rd?GBd2&5u{<04x+((^SS6-9x}?5i6T zNF^njU|oAaHtSf{8xtAH;aK-QrbU3zxR7yPgLP!Y;n^q3w;iWuW?yEbk=g8%wUJpZ zq;JG}Vjr<8>$3lz>mchnCu<|KzL7Qbzi}PB!mF-xaA2Jd!88F7T48gsZUv^CErF+5 zp7M1_zypQ@LM0{vLU*cPv;aqEE8jw_`vp)pOIK@4U=^o>FU}%Q`S-MHO(^)Q?MX0N zkh9rxVS%1E!PFnqbU+2H5-{eJwCFm}Rk7$H&i4ioN{w|hRDCP8HXsz?KF8D%5E|XJ znBdN%y;Y)a6hrm4s0pT4m^xwVhN%~(ftZG4nv7{SrlpvE!L$j}E=&h89mjMI(^X7& zFg?Ze7Lyzu=#c|cD5h9UK1|s$6~I&sQ)x_9G1bG=7*lIZT`={<^ev`wm}X;IiD?I> z{g{qpI)&*nrW=^})gLIfihA{e<4 z!N`ROMlM7!av_3|3lWT5h+yPG1S1zB7`YI^$b|?-E<`YLA%c+$5sX}jVB|ssBNrkV zxe&p~g$PD2L@;t8f{_amj9iFd)gLIfih zA{e<4!N`ROMlM7!av_3|3lWT5h+yPG1S1zB7`YI^$b|?-E<`YLA%c+$5sX}jVB|ss zBNrkVxe&p~g$PD2L@;t8f{_amj9iFd)g zLIfihA{e<4!N`ROMlM7!av_3|3lWT5h+yPG1S1zB7`YI^$b|?-E<`YLA%c+$5sX}j zVB|ssBNrkVxe$@~LLwK5NF>r^7LiB^5}PtBOJW^~e=u^Troc$}3dFVS77<%q$>6S$ zr6X_s?g6@tJEQnL*P~eXJ0|!&Tm|_p$C7CMqRRvxtej(F}KZ6)anVaVoij z7K?Q$n6hJPgNay0Z0U(pNgLl{U1l|t_raQa!7kFWss|v{-(i5z+3XZdi!f!jkKKe* zPh%o`+ZRBGR!K@~fYLFMI7C)4(NRAIR(2&^g6xptz8H<^Opw~l>c>({8!+v~)Xo>! zH4noy6A-d*GbVVQ6}|7W2k1IkHUEm~B&Kti{&B}W&MHC9tktwYyHS|PY}EuhWC3{} zyE)L!wQ6YxXpu$#Z?#j@|E|@J_LFe6BO>PuWVcClaJ8d+aJ3`)zjw9YObm^!bXQ+u**`9!=SwxN>!+>sY(E$slEvZxy%^nSn)Kq&4W1oXs8HEw{n#NVTnX9CX>{{iyxsj%ls zc^ImUMfm_#vZyp5biJe+AY{SkfNEH&ZEoZ27j#^HQ(ux=F~)W&YCJAvsEPJI9f z_2@NDRq_UG2?2y^i3f!8Wy89nfY4Q;zdkc$tjPFfJ@#ZS$!w8XAahCPm&`etx6Ill zqf17O^o`5{nIkf9WG>0P{q>O~^Fii_%o~|iGSg)CyMlQ`>xIl^X1ydmBE2L%|LeUZ z?GjsveZ*$c57IZ%Ut;rLA2rg;%)E@;m1zz>;D<(N4m;VDn2u3_XNukd-9gLq zh%U4GO6O-N)(3sM79dn}J3uY0JBp+%tWUP`Wmd~ZT=o#A3z+_~mV8z%q(`K_f2D7k z)%T%2B4dzQEq_nnVhS)B?`rumk#Q-2b#Rr^Qg46=b&iK>OoexT! zwNifublIYREPM04c2DCrK5_-DFO2CdPE9HpNKM6*jwvUmyqF4NDuSsPrc#(v!B?t6 z)8OhPmXh^C#^pmtmy9VH=gjKMdUP`@L2CZcasKxl-Rr$5s+=|AS<{e@z%xZwK1ZRz zxyCI(b1mINOibZGq*ba zXpj;5(9y`OM}+=9m@kkV_FB$m)3~y2Q|1T4vWYLkr}j=W2jIobp)W67EK1!#Ue6CbAb-o@(Z9oR_Y!=Lo7N4Xq-i2`9MB0 zlB6sgQ&bBaQ$))_iECEbt$-d{MA|(HbgwPlbwErm*rV5gREr!H0&9cx2!3yP8_Y)i z;~I~&N~D1j=zcd`?P!GldD&7{Sy%#%WM(UyyuVN0FoM?~%lm%$_jn`mH?qQrUlL#a>)uE_k9Z?lSI`@mSz`*l5fSu8 zM9>=%L2pC^y%7=gMnupX5kYT6^#8mOeC6Wb+#COKWxwy2#LI~15pN_OO1yS|MTT;fY`5}}R6-ECQi?ZHl!xH6i ziJF*tSk%5o;J5&v1oRewHN%;SEEpg(gG%kdzB2?<45nmEIWQH(^f9K3Ed%%XN&_9b zRx05yYgGWcd{(=)afwEl+5kek8}jArWjJ*wCNf8`A84=qzsGvAiZkoSx_V6DTaMt{ zchd{OIXVh-h+K;U??y&735;$cAT$Q>i_B=mbK%q?m`Y+QiwSWF(^UcDk3o&iMbOO^YOph^%O#}Ui#I$HIxbI-~JR8;($5apsG?0TBAi<}OSJF&)En7Sk0>w=q4!^c+)c^FYmMm`pI! zXjUr$9U`)FGD|JoCQwUJOeHau!BhcL6-+fS)y7mGQ)5icFtx(e4pS#gT`~2<)EiSj zOoK2D!88KX7);|aO~y10(+o^=FfG8e7}Ii0t1zv_v=P%*Ogk~{#dHwU5lkmAox*eu z(ZlN(bcrdUjgn7o+$m~vpsgQ)c8U zGNx&mW?-6wX#u9in3iK&g=sCOjhMD#+KFi|rh}M{U^;>66sB{SE@8Tc=@zDYm>ywz zhUpcix0slAc>Q5gFlm?^m_jhQF-2mE#gvH2i^-2E2c|rj3ScUXsVJtBn95+PfT;?m z8klNhs*kBLre>I0VQPn|6Q-`1dSdF0sUN06n1)~)foTk;@t7uKnucixra71vU|Nic z>=Y^v3w$-ZSckyT<-(AFt~Ah{E(~`b)c{?zs41Z97Ig%4*P=dv9$PdF&`XOZ1A1o> z*&oaSI`lQuC4kVej2vrsW8Gmud=c30DNL6!-Np3ZYdsmYztWEdxF3jMKM=uwAX3W( zj`4l6gTL%$l^6=>qD7zOrK#%{RqPbFYgw%`7;#J28dE<^<1x+0v>wwjOqVb{z@&5u z)EtcI-`&15z*4lDE@FCsiTWatssTdlk9^NO5~q@N3isJ4AKZnbn#sPH>`KZ0ne0!= z-ZrzHCD~7Ay}KrR^vw3zWcT`^JMOIa+2q`SoClCIhpczpWMBNDdvD@L8_fdTaU+5|ZbWd$jR@|z5y2fdBDmv51b5ts;Eo#++;Jm4NJOsg=h#k3LAR!loF?ZtEu(-BN3FrC754$~z}*D&3}bPv-bOwTaA!t@ps z19mcKrUgt2CJmDVQwSzErbtY&m=ZC0G5Im&z?2750ZfH46~$B%QyEMZFjc`+15<5G z^)WTZ)C^NAOzkjr!qgR0PfWcr^}{p>(-2G}Fpa@99@At@(=g4zGzZfHOp7rs$FvI5 zT1*=;ZN;<`(_TymF&)8l0@Eo>=P+HubPdxjO!qK7!t@N&D@<=OFU4$ERZiDA-Q;wO)9p@oIjx@ghW_(!hRs3vEbTF$jcA7Qoy#;= z`O{@b42?GQ>aa*}I=$!gvD0TxUpXyz`o-x_r;<}+%4<8V=Tz!c->I=vQ>T_rt)1FA z?d;UaX%DA;ow_-7ck1nQl+$re1Dysto$7Rk(|JysDU5a5#ZIfQ-S`wy^C5lfV2|O^ zB91oV^Vq>oTA^vqnzy35#J~A{w#9v^16EXHJeA2tZv@$`MzlYL{`*Rmmv3H42aJfT zojJBjU9TfbpQi(9NLrI7r6JWQPgg2cUJT7or7M*RTI24u^rukOLnTliN?D;Qy=tUd z=IKD`6|S4gcdNI#YMvMR?<*B@qt>J=_%QYg_%ITD7zsX%1Rq9%4JBf@L?qQ zFcN$i2|kPjA4Y-?Bf*D};KNApVI=r45_}j5K8yq(MuHC`!H1FH!$|O9B=|5Ad>9En zj07J>f)69XhmqjJNbq4K?JvNGQ3fAI+UiU@nF*xfd<$&{wF8yk zA^!jolGS4yXhEJtKns%4f+Vyc2`xxM3zE=+q>8qYT2(Er)<+96J+vSREl5HOlF))A zv>@r<*Me#VwTxOzEvQyiOXsy)w{t7@Z9{zxar^~o(zG+$9Pg^~|5C3oS@R%!+33(f zCBuu7mji7u&fY!?gg0~E3555aJ`A*xg?<{Sg%SH(TO+=u*1_nj5W2UA9_WO(0{C9r zyAzXSMY!)s3;ik3NF)9m*)1MJXUcK5r`GPMhhzs{82kQUC)9%;4)q|R9;DmtJ`!p~ zLXAlGcqnQ_8EQm&*h5hd%1{py>OorW_Z3|fWm*AsFd4OWh|$)eMyI-Ll+!{ZruVVa zmqy(}47?G3a3Gu(VV}l*B((YD5So{p;ug+BDOWy*>L#juDwU6Ms_B5*l_m?fN9FTS zjnt}@PemEGAsZ_oMm5=e?Dyj0#>s#_yg?+4ill+zZuKb^TqWq+Mr#!2? zt$eZkvwXJvxO}^Ow*0f|QBl8(^f>oM9wg*Tf{!JkR3wy?1RqO6JxHh<2|ktt9gv_G z5_Cmscx@cJ7rJ-c%w&9Tr*P=~*Qd!3dt)Sd%7{KTPuA;(IJ$s1zkk4}%|3|xjL{B( z@J8uLf$+A;&_FA1jPER0zbR4!Bd#?N^z_-nH^HbzdDoh>Y?(f%&Ld#ruwR+D!po?TISUwuT&#%OOmPkLc7Ns-4W<=qk973 zNhNiluV2i*HMU^stx3|c3*vrvOOosn=tU2`W=fLu3$iyY^n^f#<8E&0o%Xk>G@2IM za!045oyHi=EJj(B+Z`sWT@A9?9=hG_@$12>M;ofIbRfN`zABaUB3eClQ*J7ON|mSG z!rIVt!v1$e?T&IP99q}rNH2%B#M$YxS=H|GKY?diDx7!fdp9D5>R*JFic(JQG=I<) z?W+^8`d`(W7RtV_`y|tSiu+wt>jfdb`4;zSB%CbqRP?RqRzDOaCx!b~c<8T2Lm4-T zaR=TV=`b1Ti~=f&_?!#R=X7GP4oL6b3)3$hWntQs{7+U)kr0k4x|_9O4`WN0emMti0Y=A zD-UT%T9aP>TiTFq$X;YaXUvQv$v7jnZ=?Go$zrd#qbRB04cg6%&6`n%xU^WrB_S@Ud|b+Y^7N`b81vP;3QD=Qg))y#oRl8&W&0vu z(v^1KF`>RF0cDDDy@d`4p{NH#hu?1hh7@FV?nsi?0_|_I1%W!6?7ct_m~3&N8ne=5 zX`lv1%K~j}v@*~*i}7oqQj1aa59oedqpE>c7_AdX?WVRY+=BnD)>3<@jnr;xBem+k zueH#=I|TieZ`BS#_T-gG(k;+F569N;<22fc)-=gz@Za9I*&{J-TO(TgUM@StWhy~l z%J?eRx0FB-kzq7E4mfcRUv3KJN6Y6P`EmyEr3e$NMgEy4h*A z5v~1GqqPozO`->s1}faDD$B&j?OS>w2EI>2!gpOrw|nSJr&&&qIX&t0tkXQFg-(Ch zyLS&I$m`we(-pN6*@0Rx&vNqalO4!5^5W)MlXSXztVDJo+mOA;hE~N&)Z=9@>iepZ zJfVEu>hZCKJ!_tY<=NG$Sg|a2Rjl)!tCD0^uwv2Dr{c;+bJ26=q-FmLf1wfQv6GDG zOYS$pE(f9~-{_&oJ{RxPzg=H%JLw#C&-2i$j4lmv7rJbTlS;733u*FtxUaPl^WD=) z-|y_{vXh+7bh^mtYNtD$9&>uhX_3*wkgsalwtrFbTaX<$FV=GRZIWc`gP;S<*V+cc zT<`m}A;S~(oq`N=xK4pO_Ox$92Fla;R8Ltt(0$M|pGTk-_=Es0Lm67Db1meHG7kuO zK;sPk~63RkCSx6`gDepPM zS+~b^+4(Qq3^Zt?r#+qF3PU=TCZ*lIUX8l%;&hPHp-#P>j&>U0bduBIw&TQh8{)E4 zo$zmS3_ZhTqnt)NjdQxxX_C`*P7}6^xlM7|?M^eCW;#9OG~4MJrx%=Fak|{|c*A9H zJKf`}6dhMolK$ztXAney^Q`Nn$rE)P`svS{|N6@gX>S~+Mnagnba zwCd1Gq^E~!#iCV=RyJDgJs~USIF%Fr>$-EMBn+W$w)66{TS|B zVDx*SPmGFtqV#_ltre*BlPKHDh_XkFI)+g7x5}qd`I7GanU&x$l<#OGuG&sDDh)Dx zi>7O!;?J!|1zOjrMSgpzh*9%J+nWgV!#vxYI2>)%&8TXi9_UyPJ;#XlGSNd{GP26s?;RuB!Cdo+{D0@_pGK0_ zq)BO48doc*Wh$!Y!djDFq$_DMuN9=fytvZ6Qu*)eSvqL9EPh*axY327Eyo#geszt@ zFov?-@T~soa9{mzV_R-%#I{u2-Y?nnv~XW%54~l1O!+r6hnBrz5v68LZ35l6B3j}D zPV=2UbE^7Xysw#4o;Ase^Xl8r;|@3K97>>;8EEC>f7w?z>K;O6og052d)fbFt*ssn zP5&Y4YPJz|`jX4ucUg-c<9(X>b}-%d>H{m;!9!t*M+TYVDm~?)d@G;wFF(Z@fGlV2 zpQCI;qrP=fs%?yBhO!)BM8Dhoml)c~h~q*JBaWs=8O;qb{u6n;VYw|1xqW4{G*Ehf zTt&kpv7i5Hp)9>Z`}`W;MY+d_^?1oi_u-4%TlP)tr*Bpt_j{V05M(2anDT2I+M9Gi zrms34P?9F61=%>i?|P@{PP3irH%^j~A;vQ)*5xdQ{_mYBbh^AGI7WRPN!X`cx|}`>r!iFtrUb-KS7J%YbDc5$=1wdU4r2LOx=F$*5=j``VssMjJoKsjm_L z(H$u>#t4%w2`S@A>KB1fs=-IalAaa_<>T5JwdDRFYEFVSNT~V95CiqSz~i#N{rBs( z?pnoV^XyAI#rIuC++=T`9gX@PyLI&A@KS39*#$QgB{c)BZTE3)KMyf_BE|-5M?L4I ztn`#eai;IMOiKj<%8}g2l~KDO6{UwJ``jk#Q4Eu{1!<6Z=iO& ztY*}~wN6uwm~vh%msn`SerV|{pRm+t z(XY)jIwHv4GdecVZ$<+H)v8^boE8Z6y)h6pbZa1aB(;%R0Wse77#|0chNKPY3j0EL z)klr`Z5d}R(pBD5rpv5+JVl+St10&NYW4u-k=N2{RkgXEWc^dV-fk7mS1DK2UZhFc zhIAmU$*yEC6>ZBrU8&txk6l&XUdp%8-&;;aTSmIdtFLS$&+71R9ycEgOVs$gN&V=l zw=udsgkt^nRG@JtqpeLcnj2)dyR1%w=mj=(>So0GJ^pWk{@^l`F_r86KAoZZ+-1w1 z^i5-ZRb^~L8{t~BCW?N6gx$Du~&{}y}2nvJ4NXW21-*)`lZ(Lx_BMhxuAkQBPh zhOwkwjQE89NGJTGF-M^t8pqLU+a^&5dl}sw^62F>$mu+%SB&^Jf^?tPGL>%+X-%4x zcGX5|x56><+EOj3R#jUTPH$C0Wd~|~S%lhLb|BkOo2#YsY(o}N*bdbCvIw=W+FW)Z z+mOA;4u)=AT(-(T*N8pk1|!aWcIaR;!6H~}{}+mq9ghcvCwze90gusScI*NApK8tE zyKfTHJId)&n}svClTAh%<#eG@&yd^dE}#C(0CoHO{|74^ic~HPy)e~^-R6l9|6;JKzSvXcZ&HJMTC7bYilC%mkt;SAh7JZ%CQZbZrUcR#D z0h`4d4Kw0@`smpR^vqh0_4~GdElDPYvfS#j8Ai0px)yqE2%Y1yT{n*@cQs;tk91Oc zLrun1Mti7Ap!Af7@>N-sp31CLR5#UEI#@j=U6mHx>8v;t+@g6LFLyGcUiNl6+=!Yy z+KA6F``sR`>131H<5&Bg?zGSRBzbTEWFNGMF}^TjDl3hcNBI(PwyBgKXjz&qf!C9)i~sAVZ=8N~ zO16!uOm%v~>0Kw}#^+(kjfC7t$c=>DNXU(Z+(^icgxpBTjfC7t&utg!6{ioKzHs`* zY0Y*qMm?uyPHmhzIqmOssMGOIXE;r8n&Nb?)6-7-ZXY!%+wHz%9HTb0wK&JYt4zjP zUgtE$>2{}koRsn+lX2vPhUh1u7ZUVBf?i0_3kiB5K`$ieg#^8jpcfMKLV{jM&f+SHsh`tur}0iV zJ3Z|5s?*0#E1lMCA4{;IlS(?mWM#7;BihE`U1E$8PUkpX=rqacCMTu*l*yR#h8<&i z&78Jz+TN*y)4omzIQ4Kk#_0s7)11z7y3pw|r|X@jINj~^l+!Cts!>U&SR=G5dkX$NaK$DG*4fLqdz(Dhjh6MWBXn3IF zy^52w0@XJf9cWeRtCFhps*!4`noAqfkhJ!nsIOLrllLu7eh)gBZEd!if;##kqW1x7)nKPmB(DqW0BKm zMqF*{eKp1XwpyATyAf>YXD57j>&8ehmN~5sJ_yM+E;BZJE%;V|Jvp%i!>=ct1M~{l}ha^xBKY1);c^=eW(4MdON|>FvcY=Q$M=OWmBABos6Nr^{I!d z=Ph^HFHR-BW2yAcBYHQ}lLwJkfu~_8MhFr{2om0Ct~UZ2(i@f&CR!o8wlQds@yH9cQN677Cqmt91tDlWnqaB`%ZMk;e zIQA&6NO3>1`}lw0-x)C#rB~&MC{xPyOm=6;xAJ9CDk`6HQ>m1)VyG-Cf#Rz4s*%!D zDizIFwo&iMIDZ*!7F%*gd5x>r=Eaz0asR5*!s#g$rK}iv=_y9ZQMS7t%D3Iy_Koha zZ>o25TU#jKV!~eP+2Ov*$53u}*0XmILModdU7WlV2z$)c&xD4Cn2a^o|H32R+99-X zDtU30vQk-TBMHakx&5L)&67!!Sf?}}8OrBAc7tPMNxK{uX=IxuIW^oTd%4zRX9n5P ze&59=J2%Mm#_KQ(9UEk${Jt-ZI1^lXd@QMAU`P7{6e>|!GzR3AUg;?hrKeJ<%!TWw z8maX17AkWdsq`vA-l(gQuJ8&nZ*;Ewitqo<@qBChb|q&ckM)o9l0mhTr1L1We%j2w zA`oallXVNU^9k|39SWWoz=?oCA%@aZDtir#sp!7K>7n)6w+hdORS(roEvOQxZmLmU zNhMR63ztA86;(7w;rsqyoP8a0HY^ddFFql~?5pfqsm*u>giy@BP7Z|G7eg`oB4PG* zY6!*b>&!ryeVrQ!voGFFf41s|RFxag}mKQ<-Hc z9}rUB==4|?%x;DTS&Nlva$cZgEcB{C1C6c^^njJ+=0NwE>`@PWE|5-B>D(dWE)Suw zCeAldf**qnxve<{b;~Qus+8cdbBmKMA?4?s<~zOZw8ZHPr*EBpbo$+C?ek*F>p3-W z+Q_MeQ(LEwPWw1@bL!)CoYNqup-v;6&Ud=P>3XMWPBWbzcY4|BZKowpUpf8gR5Ci& ze0`_JPA#3bck1NS)v3EvU#I>~!<^1>8s~Jm(+y5jon|=Q=k&1Cvrex#EpYnC>2s%V zoW6JZ-D#~cQ5&_LHgam=w4GB&r|wRDoccSR;xx+XVyA1I?r?h8=~<_FPH#Fba$4;4 zh10K2Yn&hJR@14m(^gKqICXRC>omyeOsDgmE_J%v=~k!dPWL%I?DUM&Jf}CE-gWxI z>3gU2f>^g2PW7FdI&I;!l~Wt1U7U7z+S}K*(*H(VRf{I%y7~ zy%X%Q%nSF`8Xr?>?9{@D>FwaOrx8kg#$fVdX%=%7KKH0|_e!5>^f*tQ<&KIgqe&AYtV|!peb!l>-SY2NG5eB&-}r zSUHfeav)*lK*Gv_gp~scD+dx*4kWA`NLV?LuyP<_ zkg#$fVdX%=%7KKH0|_e!5>^f*tQ<&KIgqe&AYtV|!peb!l>-SY2NG5eB&-}rSUHfe zav)*lK*Gv_gp~scD+dx*4kWA`NLV?LuyP<_kg#$f zVdX%=%7KKH0|_e!5>^f*tQ<&KIgqe&AYtV|!peb!l>-SY2NG5eB&-}rSUHfeav)*l zK*Gv_gp~scD+dx*4kWA`NLV?LuyP<_kg#$fVdX%= z%7KKH0|_e!5>^f*tQ<&KIgqe&AYtV|!peb!l>-SY2NG5eB&-}rSUHfeav)*lK*Gv_ zgp~scD+dx*4kWA`NLV?LuyP<_qhZx`JZc)Td>a}u zZYvMn-)Yi&ajtiw-*@pBNirtnyM~pZ6tvrRTzW={d!omHw^PjQRx_Y?NRyk8r~eOWJ@EiYdbjY z)AERJ{Uw%)5lpIi3pMiQ{hCA-BZY+)+-0jhM3b?JscI zrB2hFW;)Gwdfn-Brxi|BZ;g4>b!u+Jx2tikg*q7fb&?z$O24CpQns7NIM8K1occJu zYBVLp?S5O#ZHQA|yXDF5wiwj-!QUrkerVHaF}-b^IvPD1a?_0Q?BQwhbC4Z;d(^W| zGfTGB9mUCBT{nfNOn4WWU#t}6h3+^bol++NJOUilLO1 zUgaf5@=0NSoAanI^c6h?MrH}QZbZ@QdVwxWleDgC zc}7fcqS0RAK9xl!cx_I+?`x;(&qmqCM%*jEd2TG#wl3Sl>0qaGjGhg->Fl6Nfc@zO zAynm4nRTCPq*|)x(uOo7tx1#8uIj5+kT%p>s)y>P`br1Vi*zOZNvFzJxm8p{c=FWs zGFZvHmiFcUKx@s7vQnqUPRpK%p|$Lv%owA${lg5Yx!>2usl5|&`)rq(8wt6QkQ)iP zk&qh+xsi|?3AvGw8wt6Qc7MT60f!n%FQ_GDBkdXdqEMD`Mjr+0YB9K~ym|8&_f?N^ zxP@{C_1!7)eD;zK_9eWKhh{u$TomJC9>y5Qcv&#hqHKuE&h(T=yKJJ)kQaj(FAfo?Wp31&Jy zW;8Q|K4-){UNM>#WDAX$+b2#d{l4vNAA+Gpuf@1)J5BFwnhdFIU^3?0#E3EG+CJ0K zmqQ1=-Y8Cv3v_}}nTCu`46-psrv$Tj+=oihl-Y==Gk8zR!h`~@O^nHD-WGcsApeD ze7;iYK|{MV&)(N~GsL+3Hv2+W zpp&f3l}iQx6~8pZy~pCR6&`U?S)`%DrNUPP&9&K2DOWy~isq)2m0Mmt=B{u5VpD`t z6)t^6(^L5rWA&t5I2GmF(N-NCT?)rg`L^_Ric%>Y7yqBvIA~2Vlx}kO4AFZQx@!g6NNWSFKMLpD$i5XzzpK(KUy(u!rP2icz=(Dk;9a&h=p77)rUnm4!Y+@AphJ8T)?WRPM9;Mud8(1WNhzmbTkcsaiJt z)ZR1;9&=Np4+9PAP?UTcD2zCPp0dz2Cc|N<+B)C>NJ08lzr*+yVLq##LyN_ z?VS#CI?m~Ar^}qCJI!%g;PjnS)h}ai^_gsfa(=SfzERXj!acbq%(di(kwku+c?oNZ8CK&NQfhW7{ zL8n)pHvTTA($;CJ)8kHyoQl4WF&=eV;Iz~!T^aAI@3gto_D<(IUFTH%LyTM3sfAN7 zr>C9Xa9Zs2om1x@V|oWU^>b1yNV~OuiZM2G+R15Or^B7ja6(JdU!kQ*_iS5~92ojS zjkfk)R-pa=w72oYkf_j8OvZTx*2x?%?={((0Tn~CNz3C{`{0nGWS?u%-|}R~B_(C) z4KaHDdfZp@&bWU$y{IHc22uFjdl8OwMU-r^V(>!m6V!n^+UASgVrc1d$!rz=_DiG z_wsS^zELLQ3gZF~onx&~??zbSrd6ZX)-X%lEXeLO8ELWIcW{u&4q8=@ZM419u1;4v z-C#tEz0K)vCuv-LaQ8J!l7%6+gNqU=J?%_+hynjXF90u3f|n=3%ah>c zN$^7?czF`MJPBT&1TViLcN$~O{czF`MJPBT&1TRm5mnXr?li=k^@bV;hc@n%l30|HAFHeG(C#e;r zU3hth!poE38f`?&(LUnbg=y0ICRqCf zzwcV78BU6;P{}Hvp3Y7$vpl%E``L3lbKR2U^iZlJY%zUypwT8fKhPv2jz`z}eRmp- z525oeEH0y2CgTkLMW+v)esWqbi}y8iD&E@O1Pz33xqIMsD(YQ(y=b=t!TdrEvF*R^I$ zrH>I?|3s(ZP7{q-f~iI)PJuX zs5YcO)wgh;ezj3avLNVS?n!C#UZABWTO8;|BWg_^B-t=p&hcx++2)!iTN+}hEnl`> z-(^A8)Iw<++Zxd#x;yoAI>SkRW4z0-{$<=7TqgZVr_!@@ul7(IJ?*Ky<)k*3Uz4ws z|7+N|BuT@j!{CjgHV(CO&g|3JFKZJ*M|$W*9(tk4xJNM2DbEXB<8h~X+^cM7o^fxr zQ0Dfq5%uz>)5lKVJLP$msvF0+b(}VJ+R+J51DMDDE<4icY9p3vij%xD{u6WLI_Rs1 zT$CpJ2EA;yNz~dtMojs6qvJy;e92!u$oqa@lcurevUc^4JRhMpmmSDTWI3B!$}G$1 zO-qtlp)3=et~FwtPd8$(c))3n5&h{aPVX8q#tI{*Tz#`h^_{kK>g3eNX_(UmPJ3-` zJt~y1r_m>Y@Kl3&;Hd@)&oW4OmO;WOv^>N(xvzca;}*0`k1b;9`x()<%O=k>S>tfu z?pRQqycYM!XMqvn&CF)}^O z7)h8hk_yibHH$1fPgFmW#cJ+|nILn+OppYNC1LJJ!rYORH&4{612ab6hZ!SDR#N#H zqvnL_Tbes+=2m{j$b8WUNtiK`Fk>WXc2m(jG-K2Vp_!$|4~;3B$!MOaxg%x@EDL6b zq{3y!D8&0P3Xw2FAz?fsVLT#Xc0WP#z?}9k(B34Fk@sWW{f1v z7)h8hk}&>~Fk>WP#zuAfm7b><~IxF zYP(tMxKf&92btav>201CB})Ufvrx{n>lfQfJ;-)78Rz%ijX38YWW?u$V~zNm>9dX1g(?4XZ@ zvh*5-`udZ$cPx}OTI%=ZwRzp`V{Y>NBV9J$X{yuw9pY1*4~@85{MM=J4@q)#&`Y{w zZ2jNAw|}?|vdm3&g2d2dgp zms9x?d=&00Y(q^u#8PeDF_yHmQ!l5&wl>)Bo8%<#Gs|W3o#c_EA$g?27Q23@Skl=w zOOmFyqt~9XM@cd@&^1PE>ARd-wk}HU2%$R}-4p0>4}I0Bb~U8(kr6%37e;KE6;364 z#?aI5j?WWI-$;`OLwf62C}T8n+Qw-wk9&|)Z>N4vS3Q>|kA?Jxne6F6V~kj%tDNM4 zr<;uV;vJKxQH^Al$>^1zHEM0=n3H6o5$gt@&6WQrrVVQC52NQpZlmp+w@k0y-Z933 zPJN9SSN{IxF0nmUI%Qp>Y%{0!PTieObUNQ@vePuDr=8|IEphtUsrG&`-!@KNoccNq zb~?xDYNwe_FFR>0``l%}JFUBa%y(m_ot-rLb$8h?r%6t0cZ;cP?bO*x&jm1+eH2>j z1`Fjlxc)!v8QvXe>3T*S)$~5eV3W}gUFdX;)5}iUcmBgQ|;-q!nStjcr;$C3HG4EOv0o!&So-j}wIZ#(H9 zwU=8cpEc+CQ$3G(v3pGA2cyZMETD0OP=1i$uVh%v-uW$os4os+(jff#Rv7|(j>cSh7k%^oq8Q9Wb6&3-OU)}Ic0 z+2oj_WP?CDe{iwiH^u2%+l6Wr?ptWINuWGEuW?w+qp-%GwEI}M1y0y2r|b)ttYAvG;&%Ii2Bjxzlu~ zSDn6e%7(|3TRL@i>ghDlX{6H?PCq%VH6o_h&`CW&t*;i`-R`3$o@DfTXhD5}Yq-mH zJ3Zcan3G1oe|iJu&3K+>rV&%tn<{t%sx5=Krk67?ZJOlv|JUqn{k$^tuu6`^xFH zhV~CGp>F$K5JNQ^`S;D&jnO~L$`l-DwvHRtsx&7|e!^H!CWU*l-?soADNSW8=Caua@I1lp4C;&U5kE(zhmK56vq#M?>o+jPc?=Z@mcs7mtEpAc;&Z3ugxo8zl&n|hB%FJy2L?+8OZ~p7K}~d#SvY z$TrIFDDqsItVH{WdAp3*QDh7}g(X27Bv=zkJBm8-rky?Q_Gt%D`-9pu)IOs27Pa4~ zeaXCC%e=ix?L1;{ktN06A_;qoB}l;KHLerGRy<}h$QSIlHhGgdKUn@k(6Q1K+@b+`-s|G)P7^(y}-OZ zzViEx%eVU{ji(H`?RxH zxTW{rCAPHo7Pa44*oL%!sXa~Yb824_CFO3UN~)EdR(D$Q6}C0(0J4^OwuaqEhGI98 zq?5PUjid~_ktChQmHu=Z7dxZ84?CkI?2M9R_m}~2H&VM~+Bws1n!KKN?6ixgeLC$% zYKKyLhT6&0?xuG8w9BZSOpS=ztJF@R_WiUMsQtl;?nV~ght-~IMR!#T@1^GLn_>@* zErUI@vUYRQSb;rAhH6Z~P9|m8$s}PXlZ2g25_U34*uNxU|B{6LOA_`kN!Y(6VgHhZ z{Yw(|FG<+HB(-tE{v~DDza(M*l7#(B680}i*uNxU|B{4VOA>Z1N!Ya{Vb_v`T}zTi zSnOI-Hq2>~llCCBFNqyR#?abI`;ywL#J(i&!@eX5s~u9_Zlv}bwFjBELy6r;rh?r_ z5_Tg=+Ih^|mn^><$r#v;Bw;s_r2R(iL2AvZy-Mw@XpN|KW8Ua2uObhJH68QCnvR6M z1QPZyNmxOWuzyLy{w1mWZX{)SE%St(G}-%J%&8B&CXNtCI1Mmj+`JY%(?cgZX@5aG z656FGyl>ek7=OvV}fEDwFbDNm;Lph|`H;JqQe z)2@qp!Ag!A(rMwFZjPFK%7|~Re&qD0)B026S*tCKc;C)OeEzqehxYf-QBIow>8$f4 z553KZsodwXr=4E+(2tGy9`3guT5?M)OHHRnMyzEkr#+pHavJV*snay4C!FRx>D@Wa z9l!R_wQi01ZspX)sh`u?PB%F{=Cs&p&D&yndh@Td$@ug`eLfQuQeRO2DBLU5qhyJB{o}vc7g#qv)sW@Lnq*LmSxM@)dSQk)Kk=Z z)T7kP)brFE)kD>5)sxk`(HB@>^aT?70ttPAguXyRUm&3`kkA)M=nEvB@z=9g^aX~Z zFObj|NazbB^aT?70ttPAguXyRUm&3`kn~o7`U3vJnZ2UfwAeqkcG}6P?M#dsnA?*6 zx6SSCZ*Q&tKeqY5&o}9bq2ABa2z#Gd6Gvw~dzG*I!$N7NdOuIkRM);ehU)36o}_+j zp&SR-y(3afr@fu}ISq3<PU$IIy+TKTUS;VUhy5x&ww!dF^I_(}^2-w`1lH$9gA zWGDO^EqmzwcgF8%PPb6Tc-U!+J4=!?LSNN$kai}cUQRV)3_Woj?=t1Ph3!0E5K_sT zhh1`)jjJJah7n8km=T}kzu>gcsO+rTo$+ifz8%97OqmhO^1RarPTxDNdw0C=&UNEl zMel;@J-)*Gy0=;?w7Rc7y>a$EH_pR0z9;5^Jq*@urpXvXyBS~keXrabb-L6kof&0y zoLV^T>U5}6f2TX0o^qMd&2`WJ$PUeJTM6!m;?_@ z(pTKz$0=KVUYY5Y_sW#X7t24xD>D>cne?CV$~w`lQ{FoHjpxNW<;_xEcxWsiPI*)I zcc;7=TK<$bWjec{lO{UHt+U-a@2wLRI%S~~;)S1I=`2J=pJd^j0!v!>nHEk@@IIUn zC*g!R2`9u!I3Z5LnF$h3N|2-towm_AX=zAfluj<|EqlF(tMlGJ)QzLK&V}nlw@wY| zjFL`yYd=(H&vi;A@07RBSnC9~PFw3llumD}-E_)ZC%SbOTP>)T!O3OnPv4x<(?)%L z3MZF&AI=_;a8jG3@7U-YM|oeg!CR(`fs@)KoI)buq&5jBwMjUsP15rroJT5?dF$h( zHf1=EM3QafwYfAYJr_RdE={WRdF7K%b&gwSyLH}MXTWjFn`Oo+ZxT*%9OTc^Br@>}P#b!Iyo5cAO4Zk;pNiD{ju)(LE#%GTNLywlq{ z1FqBWnj;lH4W4(>J#XHmbHh6Ct(j57f$^-6PJZjWH%=+DRdGt0gj32SoaiRu#54&f z#7Q_IPQnRs5>AMda6+7 z%9TIwt#jNu+pY87Is>kA;W)j`TH^FJ38%M7IK556>1~oue(N;2PH*c(w@!KMq_)m+ z>uk543t(=>v)wq+&D?OJn}ieHB%J6b=>)b;W$UE2PH*c(x90LX`K{C7Iw77ntHOzH z=8F^EB%J6bX&rE>%W$Hbp*Yb^!ijDYPIQy2?vyw0!zpi4 z`BUDMX|AFQR}PSWI1_z^s=?Q z-k8^Cq;dK7ynXx1uW_`$uhoups=2LBdF%AHPITwhL#M%U%A0*KuWmTy%}|{3CjIME z-n>sIwRL)1C%SdYTPMHsN(%q1Q{GHjCna#on=+j8CgGGf38%bCIOR>!TwsUsah9f2 z-g@Gt*#kG_p*|8er0d1!W%7m9P?yic?G^5?x7s?*!@z=cmQ>cp?Uw~3Ry zOs}G+4fS14oatp;o$c0{Ha+#jd2imQQ&&3gtA2{#LxEe`t-kUO=WXn7Gt+U;E zC%<*x8>g+A9!^`A9)?{@oVKP+r=M`znlgR=6sN5z!)a?$`SatH>D;wQr^a=XeD$0k z&pYqED)v%&E0JyNU|-0-XBKq&*~4+a=SL^BAoqaYwZGhYFx>Z%{X4_sfzBSDCUXK+ zc_i)&t!Km-o4Bm45#NMsXkRm6=m3+w5#lP3wvU#SrQE@YJ2k}*mLxxh`}Q{(TkBXS zwf=CI>BRn2PemnAsZ>&xUNurJRdbb88j{we$-G)Fe=L5jHk}HK5q)b?Gmm#H748^ormAO$c~87PvKX{ejr%IqDNo0q z(#ZagV16jyIVR)2#yF?T{JyJ=_;$z?56yd`{-A|2-#45VJALO={7k&Brc(>2@?V)_ zdaAEJ74{$oiX`<5% zrx%?*cS>K2sWfqF?{tXMNlv4jCOh5lG{@-!r=OhGdEIk!+R^C%rxTq075Y=EvL`IBnx3&!rw9yO%xd`MvC3 zeE~gyzCsC+*v-vd~xRoMwa4`3=4?Ez>(#y}4sp$CxA14!rr zB=i6hdH@MMfP@}ELJuIJ2awPMNaz71^Z*ii00}*SgdRXb4f5n=qi;`>hL58K*MBEINoZtL)>=;Uj5r70)MdI)adF>@ zb&#I^J6QiGEZyV(gdYj{>i@xHVVbFG4y^gE=D?a4=gonYO5S`I^I}>=-pp4vu2R9; z`Hf3hJ4rS!yO*`+*^n$p_ADEh-K#ICf5>8G_v#C>UD>mGnQT|BpgyDiA$wNuQIAsp zg=KS22+JnHvPqij!LliXWs@{p(!5yT1=Bx3=nG-6Y{u1p+QPCagJqM@2TACIBv?BM z*3NH~J-8^^_*N~8l5tPKV$*k{MPSv-9X)>({p?khplI-v#2V(`VYyN)xQl?_GHrX{HH+}W~sgGmIz4j?eraXo8 zUNqUXK(84wz4!dSZ=H%3$GGb|ZQ|6*Xhuk-|M>VHxt&aQe~`Vre^K&8pnsT*dGs=R zHposenllDvImd|K%)Ho$I{4ANGQY&O;gXW%?GR(z&tn_y;dH3eF-9CyPIVgNbcNH+ zPIoyyV#L;e%W0WYwWTq1Bd6_*nA>hn`#Bx&G|K5FBj)jl%jP?McTw_ZNDm_uN%j5dSR2op zmDj-_0Z&`rBG6hSICNy~u_tZ#gP~v>_X+sO1z+MK)B?^wj3E1LYyh z$t$yRlTKwhvKQHqQqD_HsmO9<8?u+YRQ|J;0}sc!%DJyc|EK30BD|$BXb$|#FDput zVS$Rji_f%b8Bx~IWtETdy~U*mF8V%_&iQJDz>MePPy#$dHS8oM$J2(C_pLU?N$E=-Y?H!|T$8Lm_Q8$vxQoe2sUDdj+%&8kae?{vy zV6(V;Q~l?t=e|ZvMWOHSVgDu*-lIR>?^BG^U8WccRn66cd9uB1cckBQ(BE60Ufz8z zR;J0wa9@L8VwtZoVwrCB*dP7TZZQX03w6#~9zHl1yTYMK~v)|%< zdG*bcmG4KKi2{X?PZ zN9Z%W550nfK0{Irg-Qo%tvp%zKEw3#?knGCc%OQTde8mVQy7XqLsI`xpHV+TpW%Jz zGbHpGQu#hZSzdkfWEWU3<9vLQQ+b=bFL(i2ae15MxS!X8dD?*et#b~%kMyV9(4!a% z`y;KY{XJi>^sISa>GO1zC(CO$-Iv#HvOnD?Szda1seERw#oqI$5!)P35&sPJ%}YhO z<)x<*eAJ^TS${6tXwdI5<%-G<_%oKOj}dn$PcY&P>P(ki=(6jKIOaWU#2UTfw8Uw- z5!3s_i0SQDRHdxuM>(D0bg9#Hr>C4gb*h@iR2n;N>(tfhe{$XMpER3E~!jkfgIzLTAl+ozseQAy1AQ6tW{=Nh$3VUzdRxhg)fInZV@2Zu7BU~^2`{p)rg z^O#yC#+_}%{_(og5~r0;YpxORYvLrIC_gEGg%Mlck#ib7qm`e8e_?3e%(uLsKld1>3V@2zsmPV^GmBKQObh0q`CdSq5uyA@6O{KiYWFGLC`#cZ3 zQb{YCo=R2TJ2K^p%H+-D;pFw?3FRH-G374BzQ~` zJSGVqlLU`Rg2yDmW0K%8N&l1UR^DT>zVMi&Rk0>{M|n)8C#!?UWNz@7B>6x2MEObi zPWe;$Sa?kCw8CSSrRM~XNf|sQ2_BOKk4e&sUbK~Y>P=rjFN2JGJGHAuPrZ-H=xH`K z8U1}rBc|8UX+Ni{u_Dvg|)I<+ujdOJGp?R47#MP>U;Z<>rdPTHfwZVTgn z<}r$@$MhQ6lPr!nHJui&8SD1G(-NmIoi6z}u60+q>=&nWt(eF9P8&J3cIxER&8fH3 z2~KA@sb$VuJC^i(Cq18>U^3SHdZ!sq*tO(5?A2R~lZl~y8?95NjHFZTonSZehH&5B zcHfE{VG+`#N_Bz#8{>NO5Q<(_C(wfygJqfPw0PYrNw*OCt{HmQ9is z%d%zdux#E3%O=6HNwQ*DwpvE}h_GzNKzop6iLy>vtgKj;Eo)Z~P_Ix=fn_rfST+fk zO@d{UVA&*CHVKwZf@PCn*(BMn>{&Jrd**$xXA45I z2R+7Ir?;I{`m|=1 zs)wdFZrv6%zOm6=f%Jaa=(8Esc*g!RrN_P01rKV>mq2S$Q4S&xV@R+3X{+_am z#+9#w&tY8n`wd@4nalfog>rQy!gkV`PLi~OC%8wAdPosfG2#p#TA$T7~2$J4F z)@Yy+LZgP>qt~157#Em|+FT=vWPdkmFs{Z5jUN~_7>ZGYq;s@--}HU^#_G~n;VrJ+ zG@hBbw`WnZGRU^GHx9WAg|m4i#Zai?>Rn`|l6NXmF?3&EdVMyF{yy)%iq=D=s%SlQ z@<*kwOqr?iD=trxrk$bP4>pV=ah|MdgJYQ%FNX4A6u?Iz_GL@;XnglhDdTvRAA|oOizN^rq87r#c(Ons4N^rBgen z^8Y-+(OzSZJf_wknsHb3zPwd$-db00ir&9*eBvdq@|?-|wcnSGYQ2G0c;BdAps$Rm zm)~8s?j}`|#v!z!5kp%VF-Aw1>5Wp&S@&of_1D|!6sPe{w>r&sTHy4lQ&F>+p4v$5 zrnXf3q6KM_Xh9NMkc1W_m2W}H)NX1cJ)uGiR_;DMtx#L$J$;i-rDy40?V&bOyQwYJ zzG`#XL7tVM1z97FDQH2;(1IkiAPFr^kE0|{?DknqL>32!{?GatIb8xJJB@j${G4E>Cl;MpBlAgiijR(r`#sdj& zJTNZac%Te#Jdp6l0|{?DknqL>32!`*@WumE!5a@GyzxN78xOn>Z#`HGu?AtOeJDEP!zOb>p2dwS^r+qf7QWo0Rh|l$&HacTX+&9l?=9?gVtL}+F zni+j!p>HyD^D4=*zuZ^RRK|Q6pNL#)sj%kHyG(D#>CL(u?7k*%p-}f3wG6a+QYl=c z)sx4HEux{YFRD!&eRZ>}#YNT2!UzJ6ke@KgXmSmLESf|UJ-Z0u_0krYH5v}Cx zed9@9rI#n$Vapgp_eplDh4P%GLP3Wgj@;xAsq2eR+d9T* z;k5NJwIi7Vn{rl!{2&sN1?q@^iRPK6_J>u?4sC&`w4( zgB^4=q9*$|?bstt=7%SS6NeQiMeifulPt7)ppi!F1wy~9%g}{s(j?G$3*9`>H?<>kAX-8VdhD&HMkrgoF= zRf5aBPphA+@5>)3l{}kNKUYr{$zIe$)oaz0We3U)C9O!$Qx8?IRZmv$R*#n#kY^~| zYt_3|Qt4D>&eM=uRlQcJD6Z1W>!Iq6>UoM=I8?2me3hGIh5KOPUZFmiXQ%2P(uR74 zdae4P`lb4+`mg%5`nh_5dR|5QkxHfBsJ^AXsyqt!vI(E3$%Y@ngIwLVN-{r?G+tx7 zIFG2~B%5qve(0|wgx-`_|5YAa+p|8#=(1IDa@5Dj_gqVvbiUJgJDWn;MJ}6Q^GV7s zlgvx6JO;Ll{uH^r8S=oq_`N{5kF|XA>7u0hNR;3-i}6VagSda249}+?jvrx{yR4UQDTE%6vwD*jT4RfyFj0Og(Rl7JjEs)wnaiwv! zf?7uXL#?0|RI8S61!@SbKtd~!&wwyo?xkn7j5J<8?qBsMJxlj$ z54Dlnt)kkMuFkhNme`ik(Ek0Royt%4Zy(!S>mIFz@@BMJN4;rrImWNkp-S@OC$KQA zluAAY)pprNM!c`N(Rv~Dgl5HMvd?G5l5Xqw;XjM(hWpx^EF6VRx_W4Lqh=xWFqa+W zbdnKQXv2(Jhx?X3m6pl0e$)PfR&w&dc{Mt+W2^_-cW_8qwLH;6sqrCx-zX>5@&cEs zZmQ8G7Rvgn9Z=u`R+U;yYR##2sMe-h z1wNZIr&b=)vvzsrSgHEfg_X!UWwEkiS*I*kR;&`JR4S=Tuezzes-^5%t2Wua`hxn0 zO0OEJmaC^!>RW1QS+Q(GJxaYtwk8Wxe^YN%FRN(ZQm;_o%IonJZ4c>6?V&bOZ_KkM z#jR*=N?Exn6^8kdid2a$h~&ygRJZ&Djc zlkx}h5%L@ICGs!QmGmNANkh_Po~~9;DyoOPh5XR!$>ZPO&ub(tvNWldG`DM-jLC|P zTV^FmjbtmkrpX0a6_fNSTEirL?V2WIv#KUJyr`NSSEGhW>e@9;CS~gx*Qv3-$v3cTnp~FE zG)dzcwM^2)u4ytct8J1-HA+pgp( zedEn)G%)$*c1@E@vWB?7MkB*Jx&vee9Yh*JPU-?^R}OjVA6}!S$$Q&1O^(a9GXA-EYm@(E*EBgkYh{u}#oL(V9lNGU z|E#r1-Y#xql7)6nle4mIP4aQIwkG+=u4ytV+s=4#wRR?7V%OC6A-6aFu6PHNudr*H zoRjTnl81_SGRcE>O_Ou8osI7=Zg27j?3yOGX1kc=y=omy^1fZug%j z`Hyx@lZUedjK8aTpvk|tYnnWg9c27%)$S%=W>Sy1(GlPt7rn%tB1Hpv@R`=tglH9 zTki;y^s;N3%*>87-g3R8Oy0t-X>wn7v`N0Nb&N^Avum21ko7aJQu|nwuVL3T8JHbs zl0K!!o20K@?W<^6f0JxhI>02G+ciy2%1$sz%hG`+*~+eI@>F)B@s_10nY@KvZT^`J zGTyrMWRthDYnnWn4K~RZr9({8+^%WzOm>P%dX)|}$>Daj@A_oJOj5t}RFgEYYnnWp zoo13IrNd3KkzMU;ec1@(#-*p5d_%jY$&1+;CfTI)Op|PE*ED${8)=e8rDvI>p`& znheb@G06p`mzrd(UDIS(cA4?Hr4vnlj$PB_)a-KO*`-&Q{BgV5mnpJICV8^-N|QWg z*EHEbn`}I{^eU4-XV*08mR)W9Lg_UopJ&%JIViirJvnof}ND zxn0xbfb2%&x^-?cc|E(P$${Avlhm(svq>7*HBAoBrkZ5`I=7gln_bhScXq2uzG-lq zNtW3)P5NZhOtP%b?I!uwu4&RYyTc^Q>r6Mv3cK3ZP_jEs^7RIHndBS0+H-70Gc1@F`vwMtd)xFo`we6ZF$7C~2vVPtBOj6UXX|i>8ze#G;eZVB^*)>gCWe*y! zQ}-d0uWi>f*(RH1lC18-CRx|6Y0^4-#Q1@_kDB~JyQax`*<;4{*PU(h`|O$~qqE12 zAFca@$se<8np~PaX_ANQK4p?e?3yMQW>1^sp}NnQWR_jiWO6pgB){56YicCF*)>hB z%$_s;qrqI0|8Cbb>6blkl4=cKFiBOr+PAy1dB#;5zG(6_>}ucq$X+r@al@BQQexLM zxgmSSB!4z|)g(#7S4}b{d(9+84PQ4&YS%QmF?+*!!M;7}~s$ zUF}VZ>;sd`tNWozUa)JL49Gq*{-*B7CSPXPGT>=WZ#>V0bR zsdi11+1Y2tx7PdIS>wRUC_w1S`bF;6F@2dBW z$!FL#OWWSr_ znR_CRw+BVsn;t?3yNRvm)ai>!(FElAY|DCJVA+<8Jj!OuoNe)1*yS z#Uv-zU&AB=?V2X1WmSz&s$b3IgY23n2WQnyazy<#O>(4N)8zGREt4Eoe{GW-ZPzr} zC0oZNS5;rvBv;!tP1A@ZCOcKbp~u%5}=*)>htW%Z4pYS6&sPun$3 zw$B=xq;{i5CMmURn(UBmXp*c^W0TadYntqsH8IIU4L35$EW4)3PT9uBuM}-!@|W$J zCJVEsCaK@InMvx|HBH{mHZ`78w3*4DwQHKZlWlI2_4;mMlJ)JHCX2G>Ci%2a3zK|i z*ED%I+tMV<`?NI43cIGsd)ZdTmy~R6@(FfLllQY$CK*?|@g;3da*^GbFy z$%}SPlf$x|jh`uLZ}O+@YX3};?P8KAN;;V2al58TkF2Bdvn8EO{+wOYq-VCP@hv60 znS82U?U`uS*(5iV>~50l?P^c{vOP?4RmuOy(VfRdQTG8HpP3bRR|Ix;cXm#g#MY*|A3OvJgPnOw^cgOSD_?iM-@@NuF{dR0wtkER5A0KDkb!_CFiy{PV#hjA}a9-t_!7kbdYM~@H||1!M_a<(b-Wc3U52#)w(bP0L) zQ|Qg=0_3?7--kXGdCe61vbqlW-i+_Z>LBEGQs__r3Oz#K_*Yo%gPh~B_s73PgM4?# z52U|>{9K7Jh}9M768gmtX0<!B#@5ysJfM~`r^ z*1Plz$h{@Pc={&fOrX|#^eZR|KMND+n~}4KTJO`Zq9|MzCekmVN4Q+;1NtQtg|osW z`WfUqy4Ga+b>w%-2~+4NkyqW?Q|TEf3a5o>^i#-JtoC$z7>dHb!VLNq^a#~ze@J(u zD4Z8&($Aqw2(SGStJP5wE(o(&y@(vmYky34p(tDvX0v(~ISSPNgw+V-j76M7`7-`f z$};4PMV!mLI{q{I8svAci}RSjj-O9ofs#;PTtN9Mej#N!^4t~|QNE2|Oj(7J&_G~2jl$|IE0dW=cj`(lszoH~0imRCq#;>9OjgnA9TuV6={~hHpN9rKy^ z@9C$J-%&2Er<{xbfpQilAx7N5d_De0`VHiLEpa3B)%gF>|3yg%ikm2R(@C(I<9FfKCl*oi%DN)F=Ox(d7p70yJ8geWX zcTyY)yC@QJEE9J#S55ex?nFtbBJSaDJPbX8nD7Uy0!o4;?xj1BGtz`V>D5sZ?g{(o z_t7J`6aJ#RP!w(n`&qq-oXsX2pnFgf9t#I4kK_NQJVHshEga(G|3hBK5)RX=pd?fZ zN9d2xBaBZxN`DtcK@=-k70@G0NIXV=4<+G&aGceL$X-Ok33?ief>S)nYE@)MBHHy~Fr3D@X#@X7DN zyw2(|bP34`H|QxS3WtQ7^uLiS$Anw-Ao8yX2)F46&?D4H_>a{@6om@m4*e*4gyRW! z>BmqM_6hgseUJ;J~Qi9P_i;t(CIPDGb5D4`0ggONQbF^oPLT|)1Ks`Ng{ zj*aMK?v>!8_e8EfL^tJ?gld%j$X<{b&fGVlI=vrqek(>$h9yK&UPsPP#3;(p1P|pk z)Cm8gH$PSWdGCxYN=#PpB+9&m zx|I3I6^B@lGB=?<e^azr}wl3I=Fi;?T@h>RyCvB{Hy{MjQipL~2`(f{u#r%D}X7u$a36~?XDYff2r_@1?eGx5~|Et=Pej7PI4CFB1tC~x{kCO0TL>}c% z)mD_d$oGCkKIK8x)|7|HGcBTk`BBw2^h)G86H&yhEN*GGQwTL2Sx3eR?8uI!RQA`PUmQboAM<`DzB{AtaN)40*(^JN?!a`nik~+~7 zkmHo6Gvy(_41nhtibA}n3q1~bolkm!RS88QUFu4I26@)i=|+Eq95tkJRvRI&y-6?9 zs~}f2Qg@1&^b$oto|94!dNFdmtMf9eXHXP6NImK8k)vLnUi5P)3T>p`^aA91GpP@& z%~2FON`2`?=n=A$`q7)AD72IM)7v6nnWR_fZsgx-kp|H7k!!1@f%GU8g=eKf^g`t8 zmNb|ijy(URAGolgG&Iqpa^=s%!GI9vBaR?i@3 z*V0V-8f2%s{zvrV$Wct1MgI{w$Ef}>y&CfGO-i%r|3l6bs((VSj$ExsbLiirM`)J( zDLo5C;a6!ceLH%DA<3W72O~#SX&!wW@|vGKpWYKW>PZXeeI+%zh8*>zMf3y6 z?rZhMtad?;O41VgVRQ)}RR5gSNyu?fTFPn#a$Q{g3s&Dpj%(5~`hMi>y84%_HbGIC zAuVThI`Vf>{VRH7?q>Yqk!~RDpM9x~JO_X+FKT+DEB*aUbDTBg(rVK>Rb)_xLgTuDchoB_5 zrEQd6VZTs%qa;+5wp03q{YvSJoEJ$uDBZ(=)?rM;9H;eS%5qa;L1`v`?DO0lx8V4DA~wahodHsuOP?klv=DdM@g_8wJA9%bto;7t6E1Ab8bpq zdLD{`>ZnH#An)6z)TieoSLlugl-4OvQ3{Ydz8%SwXH!xrZILTtM=Epsl!o+nC<#GF z8l^DhX-XSpM@VYK|K&^c2t_H+&^w?gd?Tf^x)OO`Ahj_)i0na08LWPd{8>_)(3>MW zQBo%TbL4%il&17?$R3xJ#p-fo-!-KfeH*fqCS|kw1@fL$N^|;lWamn1L0^pQ^QW|= zFGb!Zlyc~sk+b5IT>Afz-!3ZUvHCM|{+!Z^{uA=+6_aM6^DbLbZA-@-2YD?dV?7F11qpwC$_+4sG-;KNzozj867P&J) zDq{70WJffmBdgyd*IZIDtCNtkf|L?g*CTf+NTsZPfF9w;l;`LhP~ytDjCn^&C;D$F z38%%*lxxY)Q?8>V{3CW@zM1?2{RXnHC3dCUPVPpzg*+>ya>||L7b*WC&seED^WEf^ z==YFkh17#`Klx?K1LT<_^<=J0?nQryJoBaAl*h?^D36fms??Vvru3r-$UcVDpW;Y) zg(4xZ_R;|6Dk%f$VaV&eG>F-mGMHW!*=>-9P~0i6Qd}qs52T^=`^Xti%4@7fpd|b& z4P*5xvKy1~Iz0+G^OuIxuOnwlDR0ojQ50@UBUrtG?31Lt$*KoMp;8)2e~6s5roP2$ zB=Y(xjbil<@=kQ>XjY#>QMf0KVf8NZ2w`tOc{G%SThdroZzG>c*gLF7B4<$IIOghM z@6scXb0l#*^Uc)v=r@q}Bg6@m3#so@&Li(Wh!dI5rhY&_hnz==lbElkPNrW&_6fx) zl&h&zDgPqZIN~(si>cG;mykcNID>LI^+U=P@&I#Md6Y(kA4yPo=TlhUx|`%URuEF z1?1g_)P?jVC<-T~MXa7ckFYp(F?|v8e3q85dJ5UqO#Pg`0{PserIfEyzo0BfQ8*_p zqn|}yB~rhnFGW!}BQ2+&M)poqzoIWg?xU4f&_6-0%2U6lFF;Y4Ev=+~jGWb^e#7c~ zOpm9Js-II^cItz|w{{vG`v6ovZII(j{1ceMO_ z`c~v!W@$ZTOZg9!pHURvkT%eVBRi|*Khl3eQFvY2NFRpWd*k{a{RL!~L)ygZSmbkd z{lw~g6ooO;W>!ZdXBrKErr$@7chVN-SA?zf{wN7vX&dvchQH8nBS%1KJM(DaSNbTF z1dp_X`MIjU(aVtiUTG(DY1Liy666>p?Pi`L{7#>W>?BKjC|#=lL3sf=a!GqBovZ#y zc^=uLcI;#RNcf9B6Zz^n_A~#Pc7VPQdFS16kn(rh-;_hhxwPXD zf7(&{U&uMRqk{Qx+A;bOvzXV=3{C9(2paZkLMKSXxeE?1+uU1 zIYZfzc9!xR^0($W_v8^;o`3Ra$PTdQ!jng6dGX1kAy>GbOHUr5<>e=jhFo2Gt}u@% z`Ir7Cvj6P4%KS#jHTrOrgl3-WlxxK|C|8jyV$V(H>&3U|H<0(RJhv%LivFWyB0F!M zJIo7#%wLq;r!PbHc{~r8mzO-Ge~FUtqNkFwqT~_fE9Cm!^O*VT5}^w3 zk0bYuc*H84?KGAs8OYrf9tY)cNfpWwWPipJ##~WSm3|c2W%4+g)0(;HPb24t9ycYm zSv5*S7trYi3bCL%#bQ(aiIk#n2ZZzq`a?)2ATUCXIvij>r+;5lf$h{7D(7INm`NM!YWWH+pF4SFSVhTy14{{XpaXk3fchsfPTj@ry- zMjg6=>@+%(n7e1xrN4ySP2{LY>5);N@-njb=x9JG&v=URB61IsBbm}OBZbln*$sB2 zGQW_~klqEk$Ip?*+%@BAdN*X(&e4d{IpZ11^T?fnj&$Ze8I9?^Q4)GNGAOTPG@

  • n3 zR3NYIjy#IHNh?Y<IjHN}POJh%$ze<9aRP1>*;hCDM}h0J!7XX!!Yca*s`RCweVp2hY)&)sDz+L-zBm)P-jJBaod*#}G#Lm7`;DLck7&&qz6{t*eM+B# z>|i_QQl{s9Mwx~j^&In<2Q;2fABgPqIu=kSH(p4Yg4~VcSj4<5Z!vu*a%SsV!n`~0 zbNcVdU22Y{%u2}@bU$*A=UT?s;a}uk*OD*kUgV6|wVV=P@)acxIh%E@VD`28n(jw- z`CKdcZ!aTfs;$1E2atE$U8`8Vfb3eg`j+lRt}I-uDQc@V6b;#Lajm69wEB(`iCjCl z*3oYuyW*|Br+bide%E?dZzFr-t$tuN9JzLIZJ^&l?uu;nBV9+X8eAJGF|GbbiAHvE zT$`B9RzJ}#2Bm)!m*9w>i7%AiJVI~wo}xOzfuCo zuDD|dWnl4dlmRFS%^f?LN9FILk4ARI9lM#|&i|c02H6#N?4cZK{s-kSa!%sdOF7j1 zPs-oOp1flprK0&?l%vSCiEBUe4^0oyHz2Qj@0=_8PPv*k<7)3YwqXCS-i@)hQ3S^v_f zBK!IBRmzmCYm~{zPXx%%*TqW&?}H*x+jdeOG#Dw3&@?BvXlAw5*NKQvKJ(~nafJ5(K{h` zyvyOtJxi+7Uq*IvM1Iqc1Pf;!)cSCuSng3~( zLO+Sz*W^j1oNm>Satit0@uV@wwtku(hkSqW!@azMnRUm=cBTl6f*H zQN>Ltk;r>Yo=o~0YP`*Z92Rwz8voiR|C&j=4~zCq5p!ss(8jxwzPbg zvK4t%@r zbEeV*$R33}joHYVPB)SLd3gp!%lVL^BYPC`OiIg~k0?3FK88Gt`Bu)y^qa_g0rG6h z;haw>hmc);c@E`h&Zm?k$PS4-mvSuUGfD;WewjRv`FPHJ`U&LSJ$V81ft-c({m6S~ z@*>KAIg2T`k@x%LC6vE%KBw$M-tCf?QvS^Og0dHR??7J0d@$!r`rpXDuDqOC%KeHi zB0rnpTtN|XzotCS`I<7`xsviQ=Nrlc)8fV{Jo^8@`H@-B>P1Kp3@$(i#bs~3^|WYed6pF(z=T$?EWH0=Kb_~?Nzn^-Q4Hkj+qs+4q2PB)5pvz_+{0X4@CUsk z@_ppo%Un|MC%qIUA;GneKV2g7DpBwktIr|-evWHDt2K~!L)sspk3)8rTnCx2miDkEL{;mq+^ zNGV0msGXPSm(V4ATX>ni8rds$USVEa_%D48av!YoD*XcTYF2uU)yc@6vCiwPo<*)K zN^h__4Y{|_d6U&j=~en4r6+Pmnbw*J}=XxlkkTXW7%se#LOMeZyQgHbwGjsivkC1yWT?+H7xdHkRevid1< z9CXIA`U`RnoEt~~3^|56<0-Rq6DXe`cY`|*%4@8+gZ#vylOI#ZdaEDARJEp-e~4%$@0!U_oO_ zEONh!GlMz4pb0$=Iqo|%DK8Z?rF2JrQrMYAdAXn&r3Z3W>CC3|DripWi5%sfEtq>3 zw50bzNm%I2!NtxzT;t5gwax?15OP+`?%agFXJOy8rr(wA~0|&@6aiBa4Uy*0y zAbAddzpu-4nTLfOF3+R95%M*80exu5Qh5<`iM#|m%1g0WUWTvA%W<&00*A;eF-cy9 zwdK`VM_!Ay@V-drt&^M&#aIwDkCmi+l(h%SZ4TxdPMW6Ix>Lq6m6(Hn(K^D6YGLpJfM^o)?HUY*_$ z`6_u$?Bk8ba<7eDy|LKc8;>t~6S14OCO+q_jV0bBEcVvJj@|}X>P_a+^1Z3dtwOf* zrcv65Ebum>w?pM$WpQmWC$2rVj4Q$xam82=SBfQZWmp{78N0@H!B%lyF)ywhbK|;W`?wxB z-`^8I^Y_Mi{=R%Z>-_zh*M?l+A3#}%Tr2qp;TQfPxW+#eSNn(Im;T|n*gpan`A6b% z|0rDHAA?K$WAStUI9%o*j~o3Hc+CGH_tN+$;wb+l%3S{x=1)-+KJrgv{t$Wh&_9ED zbjbJpGnvQvXW_g4**M-m2WR-_;&lH!9P3|zZ~GVF2mU4aj(;h>=U;{s{L9hutw6)K z5>4MK)O@Q^_pQY<-gS7^yB^PZH}E-}M_ze+8<}H~*CO90tnJ&3Nxm(Z=G%sKeB1Gq zcL)CC-HE5YyYYf|5C3gn|6b-kAz$?GqjX1Jm;C#gdmyhx{)5atkyj`GA?Du5^U!|; z|MFJg9`AAd!+R3SLKMR}sv$46q1-9_#;4WVtkGUK9O8WBgysvP5~gYr#bUW9z-`ld0@2|3<3gYq8odHQDJ2fkT2$u}D( z`{v*$zPUKtHxH-!7U287ML5B?1ZVh`;zZvvoZ?%~qjmDFU@i-p>03!@ioAmPRxuYL zuWY{6*xa`kTlm&tOW%5I=i7j7eH$^?w+Wm1He;4=3+DT_VYY8O=JNzf`SBPb;CGeB)yDh2 zBz)kjhYx)X(B)4?r#}_%_|j1HH^O_qbgcAc@MvCtCbNwE#F;OP`DVx)zHG`;Ukl3T zA;0kDF#qh!qi;o?+rE6}mB@F2uK?Hj3URZqE&k+dkL!FzxXM?I-}p-LdtVv;;OmUv z`nuq1UswFjSI(pD^mS+cE#yvrk0-OgC+_n1#$Wt>ahtzC{^}oq+x>%Zhkpoe^$*1@ z{$Y5|Kb%K9k6g+6N8nliNWAPHg%|u|@S=Y#4p+wE8_IYbp-jLxm5De~nS^gCQ*e|r z4M!_8aEvk&-&SVfSYvWBoT9A5smgksrfk6J%0`@_Y{KLI%~;{zg2(*Z(5GxikFo=! zl%42RcB8E9LBFyWKUVhPEM-4_tsKM^$|3wxIfBcT3Y@JR$FG!=xJWsL%ak*?SUHDF zlneN|atW6zSMUqvDlSy6<0|DQ&QWgT0_6^Vs@%i5$^-mNsl<88W1O#u)p!L{9QchA zhAR~(YKj|GB^(tc0s~4E4pd|ur1)^KqTmok#a9&_hbkt%rbOc~#m3i_Sk#qxG?YZF z^w-3@{@VD+pM>}P^{VmHm&o^yzX3kF00(@R6#4bu(d_ifCU6ms2rW9kjQi?AsW!PQmjJDDREu|}; zTQqXcpp@fFN_Xs`^uU*up4e0AjlGn<*jwq3N38*P*cyaKtRdJ!8H&x6VVI>1$L7ii z%vMHXyfO+Cl`)v0jKvIP95zUSVvigNy>7ptE|9!%1W%MtinuXH8xS!;s9kG zzM`zhe#!>yuWZCzWfSHpo3WL$1@o0{*jm|+16P%e0Ww-@SLLJMMcL8iiziyXgsahctwfDf0cN=t|a0$r6yigYU3Ft37-$t!xsY$ zFg=irX@OLHCXj}W0*&zLKsq)KWS|-1<3*<3Z4dkN~ zD8Q6JAw~t-q9@QE>n79uLLGwzraMC7?^}%>J)US)3B;K1FNVr(W%bDM(S*QMxBEh>Re1$=V4=Y0X_&U z!iRw+_+MZt-VQ9oJAvhRH?RV423F#&z$&~KSdI4sYq2u04$lVGR((tlhKy0g>RdM=uTH81PX@y9c)*D#0&YAO2*+?W0;{P} z$Xh%3DBwd;Rq$~@MM>4MfokGYYBXL7*myAzi5cdb#Vs*7WMyf>^p%!D5TFRrXP|KLV3i-9#nR%Jo1(&N`@k_NF z`>EY=klF+Lt3B}*wKon_`{Dq#KTc2w;QQ(z{6HOo6V;*EOdWD6Y*_z5+Aunox;2tMd3Sj8uQwa>(m*{E7h6! zjXDdzRcGTWbq>9*$BM;2Y{99Ih_GG3ru$Q(cB5)aCe^x&nu&D{-j03SU)M z<6G)l9I39u*VXknOx?g|(o@~Y{Bp=1>L%u0>So-oZeew&x{dj_kUP}v%)hETaICr$ z-&1$vJL(=Br|!k^>OOo|-H&tCgZPy4L0`)pBR&U}j>TTSw-of4KJ^WpLfcw-+9^o%!e?xtYdsKdy zU)ZZUBKR2@7ljlx-~j322!oTe%`SygeWs^b*Z#Mx>z zeyrL!Lyg7hYCNu26ZwDrfV={zHSvgA8~;|5@PJwm533FEkeZAK)l~dfO~VUnBfO}l z<0Ul%&#ReuS= zxJa9ci?vz!nKm0|X>)L)HWz1T^Kh!R0HS5K)HdQ<+9n*OZN>rG796N;!$I11+^+4wkF}jRTicD3 zv^_Xk+ly1QefXueAHUZQ;!y1nzNQ_)PqhjhrX9!EwUanpJB4p(XK;je4&T%+;Ck&6 z{-9mK4cb-wQM-=IwVU{hb{oIa?%)dT9)6=ez8K+4zYTi~rN&v9Feh?`k!1 zv{oC(Xi50CRu9K&4e%W;8OLdw-tLu6Rf*#~oUC+^6-xKee8?SL=-jwZ6DV>yLkE1Mqik5LVNMpj#V? zCE75|*M?)MHUf*Zk=Riih0keYFiRVYdD=M4(Z*x0HUXPy6ER(zge|oxn5Ip`6m15k zYBRBwHVYeRv+)^i4z||jVu3af%d`dP*A}6oEx~}c6eG1|7^N*okG2ABZ6yY^RT!(S zMp;{nUTq!vwDs6q+klO=jhLZr!Uo!Ad`jDb$=Wt-qix4d+748;ov3NMv8lEPb!{&i z+CDV3{b*?iFG1?LAtX1Ii+Hvfnox~TkQ&^~-!Cu-qd{(=FZM93-LA!$4+Esj6 zyN*4zo7hgfjm@(olU78 zvRZTtW+gg@?homW&ZGE3{-NhH|EU+?9=#Cv>TR)DZ;x&CA}rC1v9(@`1$r5_(mP`Z zy$crVU9p{Bj_vjCSfuyBJiRAAr}xHOy)WkL{jpRZfNk|b_^dtzJL*F*O&^9&>%%c! zAAybak=Rflg^lzv*hC+T8TvSUMjww8^a(g#pNQ}4lW?Lw1wYWI;beUVPSI!LRDBjs z(`Vx(eGa~-&qZ6GhcWsB4C;$8T3>>?z7$n`8EX1+d_iA+mUkJ=WJZU;}+4*3vg&J$*CQ*0*3CeH$j}+p(^`1IzWD*iGM!iTWO_q3^|-`aUev z_hS|9Ad1={bZAFV(kgI^ejK;yC-G?&U&mqk zO&qM>#-aKhd`-WHuj>!6pI(V0^~cy(7d;#+`H^&vQ+gP_sylIr?#AJIICj?~@FhJ8 zd+IXw(tY@%u3!&c#Xh=@y>$~`)}!%5-Nxy9EY8&9@gqGEXX!O@wq6@Q(UWkFUJpOj z8{o%!GS1LbFJ@sb}L@y#>Cb=in$k4@c|yI7TnPxAj8I z(c5ARy*;+ni!f6!#^!n{Hr2~8OYe-$^e&jKcg1)0avZ03$7H<+rszE}Rqu^&>3z|q z^~W%606MinSXCS1;ck3=DD$n5H}zr6SM=d{Rv&?v^pSW+AH_%BMXs#%F?dZMix>5A zcv&BhQ;Z2X(U^$u8zNhHPalqO>=bP}+rjpf9CV>dPn(Lyk9=Grw!Bz;}$57-g(Nr?Hxk zbcNK7wG=I6z*xsD8|zv1hO~_hl$el~v5{FdHlfGZjM2sxj4-zG@sY@@oUt8EV+V#C zJF$wf8~w%}G>pAi&De(yV?S0m4q}*bh)1Z3JkyLL_>ob8GmYao+c=3I8>dh(&hU{U za{jEJ!#9l!l#$4Hjd6*2c*tSK70PSKJ0`|e=2t_GGOklbha79%q`w{VE#o%x7~>8O zG4A0T#se%eD*5=1$m^}~7zY`mEDD1|mKzS4*Nu?R8DaD?}u%vf??t-Ml|*^Y#eCBVs|4R`xuEhz^I9( zMs18WlK8*GA+M-LJ?5H51Lhhi3Jr{8=K3fK&5Ts$EaaV8BaJyFWV+Fa(l}&oBb{C= zmEGqXjlKa`0&*51SbISl1}PM57SXjJB9zw8tc)2osEAtY?(s z1fvY!GdklqqYExJy7DNHW2eZt*tTr?EF=vM?F!wXJHV+q^&^E7N(7cMV=5>rSZ(_W88xzbs zSZ3bC=gbHAvr)-svKhH@F&^V?L-caaZ#Zz55r%sVC;nl$ajy~Xl2bpEeYmlopvon5acEMR@ zSL|(;V_&m7_Az_lV6!LAHGA`4O*Q*6PYF5G>`(a!Io_EAm_GUkE7x~$wvl|?|1hpG~8$Kb@w?O?!JH{ z+?VhT_Z95vzKTQK*Kx4>CeC-?#s%&>xX67E7rGztm`}MYnHz*mc0Z=1gnZh~FYXl5 zkh}Zb4(8O5_1$62_1sRZ>vm(3I~<>JM_{@;3RhV&eq;IYTT8+ImWqQd9s5}(k2%1K zW*!*wd&_2CXT{=rD;`H!i8#utiEml8`S_8@-CBsv`{K+D=8ec5@@6LU2IRL)n_0}8LiVznpuRm&0_q|EX6x!8QwBG;|;S5UN^hqU9%i(S=}+g z>Vb(?PpobA#+p`NtYP)X*46-QV-3OrYX}xvL$Q@L4D+nvm~V~1+15y$V~xUj))@TE z8jEwSarlWf9zV4vU=wR1rdyLR)0%=A)--Hv&A>0LnfRqO3s+jR@oQ@iF040(O9w&Szb4s2)bq`znFW}Xo8 zU26~XL~AdOv-V+$wI7SEgIH=E!YS4f{;SEzb+J`}Q?26|XPv}&>lDUXXE4<|hYhU@ z__TEi)2u7_t9g}2*b#D@d7ZK~egdE z=87r$Iim>quj%mfJCTqx95amh5^@D$I`N+A#z$s2J~kszu%fWil<|S-!~3R!qNSp3 z>1bLeT2?d$EgNI3Sd6yfvD`|;?p95F(W;FvSxMN{s)sLF4X~S)jD9N>16CRuRwLA{ zbkwX2RIE%?tt@O|Wn(j|1-7(uu(_3o*;YQzw+e8fRftQiw)nZ#9v4_exX3ET#a1bH zu*$H=>WuBJF4)oPihZqe9Ag}CFywx71pNT=9Ecu?jiN{4Pu3XRY>mas(c|z+^mr6v zCZHHI5#^Xk=#80z)ncZhBW4D^Sal|LuR05_N6*IF(Q|M^^juWR=VA5o1z4?o5#H{$ z1aEa)iYK})!;{^XYU} zHbVwu4pL%6Hjh5UoE?1x8^ly#{g~spCGsS0jXZ_hBG2G2k>_xG`tWq5f)^uIJQJzo*+>)5MMmTKNEFgq5wAwp z#J?kJV`XF#K8mb|N?Zel<2&*_5|@lxTq-3ZHjTMDazAje5%YcIzPn&L^A;3^zk?af z2a)T7*i2>_*)fRCVs?gZd?MtPU>@aPL^F02_Kg{X{bI&q|Cn+3O3Zj1 z5HkS>#!SRPF_Um`%oH3FGYwyhnSsM%W}-807P{hQV?^8>42zqKRpaJi7kdG|U@yY1 z_7d!7FU4|u8NO&Q$L{tDe92ykJ?vHZvb`F6+H0|wy$*ZZ>#>i$0sGn;v7fyO``erG z6?+Q~u(#nrdpi!Yci>=qCl0Z92Sj<;{)d-ffiVBf>{?FTr~ zuEY=Q$2iFr1MHjG4xD0#;Z)m+(`+|Rx5IIU9f2R(Q8?3<@gv)Zvup)FwpE;M>-dRn z;v72~KecU~Yscbec0A6r6LG#>6BpREaiN`ri|l&1*lvJJ>}34hPQ|5m8h&9n!ew?k zeradmayt{hva@i7osD1HEpVlsgWuSBxXRAQZ|wqHZ5QGiyDhG@+v9h35w5d~@q4=z z*V|?IgWVZ7*j?~PyDM(A%kh79cid$6z@O}%xY_QFKihqAi`^f$+5>Q#JqUlXhv0U5 zDE?{>!yWc;{LLPLJMEFU%N~Wh?J@YfJr?)a=}5_o{4|kv+$5T8xPxa@Q6JZkJ|IF!d`&K>_vFoUV+piT9xvJ(@RGd|FWZ~&ioF^CwYT6^dmCP}x8rqt2i~xE;!S%u z-m>@LZF?{NXYa#1_I|u;AH;k1Ant6*Gg^u|@DEJ{!D^g~2=6GI$T$1s`DhU?p}4KE|RT|7d|=2OSs; zhG9(5iM4}ntQ8E$I>87`3Pxegpp12cKCBT`FgmEJ>;VRK=Gc(&L6f42NF)OA3vttUec}!bu7SkSE#1vuMm}2}tNB1AsME$^V z9D3;%#4W0jL6K)%#6s4h=_>DjL3+Hh|J88h=|OH z%#6&)$cW60%*@Qp%*@Ql_`bfMf1Z!`9a3%;4riuYu!!Y4CUxF};Sukd0<8@W|@ zZ$>-KGGr9W=pe5{#@mceyd|Rxn=-nwJ7YaA&DenT89n%RMlarxv5{w8pRtKNTliGQ zW}21AD3sBMFK29_StGnNV=K*K;f+#1xmenUH%S9HSK5v@OM^I18p2zo9XMawiML9- z@GfZ>OQhZSzO)B7Nqg}FX&-Ku_Tz`r0qm0w;z!aU+#(&ukEJ8HRXU2FNXM{WI*y-8 zCvclIf}cqzaX=cy&!yBcQX4E$S~i6^94 z_>Yu_BT_#8D;3~LsSy8@X5*+d2cxV-7;P=aQ>=3_#ySsUt@F`fU4TaGLX5L6!c(n_ z(PUkMW@`z?TT3y)x)d$eWq6vk3=^&8IL2CmN!Cg{-CBjo)@nS%T7xOpT0GOb98;|; z@GNT`rdjLpZ0kxKYi+=B)<#UXHlbu~Mys_2Gpwy>v#vtBbu~JyYtU(3i?X#1UDkF~ ztR3jKcB04Hg(GBtwWe?-GS#>cVdop7oKk&#);P5c!6~fPO|RB3$6QbvUNXRWIcdW ztOxO8>mi(KJ&c!Fk6^C#C|+tkhSRLa@iOZPoNgV#%dIDIhIJILu<}Q4qGnoS@Jg!z zXIbO$Dys?etnqlY)q?rfM7+kDgay`Qyw;k6h1OKO&YFh*SjXZ?YdZdGwc?1?hEW*~ z{Ld=ms8zw~Mi0&~`tWk2il=1+(UPHIVn!IpWMtvE3?1*0Cg4&j8}F5JaG5j_?~^8B znKT*im!@F3G!-9^aMn#0oF)`_^31+Yo$5( zm{f$zrDA+snu{x>dH94hAM2zA_@uND>!n5bl(ZOEN=xu*sRSFOQhY{QijC4Td{!#M zCaD}RF;?KE#!AdJR$)p;HJ*`CgJ)*cVrs^6JUe3r4%_O|xb7tU##T?W6S+=hTS?x9 zTp6%6kcWgjY>hNuBV(Ga2?uS>_`R(KciUQd^b6Z6@^;}bw$(HTk4AJ3)R{__S?=rUBXCY$wT$!g|{%&6CKiZHqpey;N9diy=Q@GhnkV z4xh7`aIG!=Y<^=uaz) zdRrR(Tf(<(W9c^tyKL$7ZwTMCS?Rlxvmu)eU$;51*Cyk;HibtovU$jpg_CSPnhTMy zTvD-F3gYvUhAmPUUy!n}RnqZAX#%d2vhgJ;2UklI@nvZeu8}6=E7BBPD^0~$rCe;2 zrr|niI<`wQ@HJ^Bc1W}Ebtw-!rF?utD!?wO5Z{z$W4AO1-;#=Oy;O{EOLK99G!NgA z=3|ev0N<4sVz0Ca-;);OMrjE?7+ZqXv87lUyA&UZU4}KWW%zJxIX)I!f%UPKd^esF zz870X(<|(WttNjETZ8Y$*5anv<=7Xy0vlrM@VVG}d?t1!Hpe#L^RbQC6x)QYvCX`4 zd29>$eqmc|E6qCOdlkD1Uyoglug0#yj@Y%>72AeC8QO8bp#y(5bm9R+7yfDJ#$$%{ z_?KY={%h#L5koKjW7vo%4V&;k!)83i*oV=^Ef{6oilc^pG#Iy`$vA-V#_eb{4x-sO zgmK0lc&c$H+Ks#TnjJ#fI85Udx{SN&6=a=Y+=Cg$z34XXL#uH=s>TDT84qH>cnC9% zhcRe8f+6Ek+-W$5UmK3&4#Nrj#xR1r3@357VHCeJ@CW3gh7B?Jt-*k=8REur6dO$B zXNAuh;%SR}HE7gCPy~8ph&} zhIHI#uwtUohGUElOft&&i$THP3?BU5;KPFk6%QMN_^Uy~LxwP(Ys|t4Mja;^C*V28 zY`%sIj5*|q$j@{eCz5l7*~UpU=OHtiaWbA|oPsIFshDQW#WRi5Fx5C6w;5*Or-qr> zZp6;loPewlH>8K&62*)~VY0gIWH^*{}cdVc>3lki5G!~)c zs3+STD|s{nc{d#m9E~(d7#($%qlug*v^$!~*Em}6VMi-I=2(UIIacFR#~QZ3 zM|ihmElsI#s-um3k)s_ibadb)j!vBH=)#K~-FT^EJ)ZB_fD;`(nCs}p3mhA9l4BE2 zacstY_CEfVACZ01zJ)w!-%9>c_?5k%W(YYKwr|7R>;t&KzMX!qeUN;!u-HCCzRA7= zZ?W&>(Rs*RY~O`{*@y9O`)*ul--BP+_p;4r_I>05;Wqnznop54MEe2kw;#mM?cDW> z>arguzlr>nWcv~F8^R9zQS$5dW7us!j_d6waJ78|U$mcO`&Q(rw2zWokg?PrJ&q&S z9)qjwhH~Z9~ke|o5o5*(x7un;`7Q^PsX3^DQv$V8By)2Mf0lg6}wKqR`{}g0(p%+8`s%$@HP8Hw(PS{B7Y?O&_0=F zGcps|r{D+nskp_Si(Bo}u);na@3+rj%Q9qNwa+9kL-ttvEWFpAhvoKseAHgRqYv8) z$<-Jg^^kowxk~t;eGa+OUWAX>i}4BjT((((tm^Ia$jgznrF}j=W?z7H_Jvq)U&N!& z*cX!{a-_ zy&8|(YjD(Fi*b(SINz}X=Q--|7Dqj=aHnG>d5N&Z(Li$-vVwIqlEaQB@_3An@;REx ze&n}LI9kYF;dzc$nrxxsSViv^x*V(NWnq?M4SfXp9H3(@IfT(ss-uk@5N0~sX*8kk z=%7DGc&?+9Ji*b0IgV~DaID7~#|B*P=)rPFFJ9%?h%+6VaE4mv0cMV5zQZnjp{`Hrd4zdxn0;5ZJ>D*d4H8SoTr#@z7kJ=D>51=7F?_( z;zA_}?^cpAUrE7hlvM1FPQ$mN$MURaqtnTa$Q~PQB{v{@Y_yHM68X$kw1ZqHtdEvy zo)WH$R_NP=tD`;iFC)iww2%BMa$HBN#hR#7`&kF%(Q?7-+Ksi>2jF0>VO(b$ozWJTR% z7qUJnT2Iap`inNu_=H+f4}B)GS}y7(2ZY|DjWix%uxJx~2$^Nvn{n9PNAoSRLUwN< ze}}A@-CJ>oyC1)BZ^N(L13Wq;9CUA|`BE744AO@^Lp0-s=X!R~OhCpl&rWg{vU>OI z!gD;sG&-_|_w2@yXAl1C-b+6sJmKC)^AGa-_TBr*e+&O|AD}sgoRzo_lA}C_$kD=4 z_hE9O=Li;fj^eGJV{9`YIl4W^ak1wF-sBm<>pds2#50O_d7>qbDNhW3?>0z$lHU_Y zzF2sX$3!z(IMowRe~IuykA;2`^8R`faiS*)FYqMe`JNPXc~UXmlg5_gkiEq-mYjs_ zOP+LcGP3V^tmG7ApY+(ssmLDaao|{wj8>0=*LplWdb`I*UL?HDqmpf&AZBx8QAQYiSH`2ut&+mUL_yjQ3~)qr4aWhv++k|4(?ToaGz3)-z#(RCuJVK zuFU6O>_pan$^vqiuw7Y5vkv*aL&_rZYrJkMQ?=elb!$6bpP-OEvTufT}A4kx+m`FAfw-e31hJjdOD6WooM z?QY`H40kixh8(%>7P3RQ$fS0f{&JCA%VGG@B-$uryq>|Tg--HWi;y%=wF zFTtDKC0OJx<#kSTFC|-qCigNLGqRF#myu6J&dS~8uXLeD=|)*uk1k~c29zEQD!r&E8_}n1 z!Y`H0IH>gDc4Z3=DO>S#r60diw&4NC0RHUQ&euOp9wc8XyhI+N$wltLId_oLk?)do zCpk?x*13yjobXKNFny|XH_chXIC&5GRCzBN<$Y+D_oGQZz?QmvkQ@=7BOjuffXw^y zVR9C7^*}y?56MSqs*qKpe2iR)9PjdR@?zmK`2@|q!UyCL`U+%?EuSQpBBOykN?sx? zm!mTnH-z`dF&T^r$fzP4$YsJ3IgaKo;cc>sejzeT%JF!MY@wMYCz7ueULz-wua=YP z^W+rrRl+OeRGOK{u_LG9t@2pBP)?_xjO-7xl{^VK*4#GoblE|^OnA90)678j5T`;u zM|hsoLz9EiQRg~+?)! z;Wu(N%}!+fCg7Q!K3?W3;59eOh2-~zAIY<6`h=V0IrJY0Ka`8;HzWU3S23RJnv3VT=HdCS z`8d(F055PY#7VA2nB!WElU+;jLRSgi?JDJUN`y;XOKI*Bu5~S=e?_>?RYu<~Y;%>< zzly9zC$8EqGjR#lPiMctT!{|Hx}_L|%*k%58X3ZpZ)R4jh#`F~-$}QLb)`cCE)# zTpKXf)q@6CFB)ANG0wFKPjziZldBKSt}Phv+KLITezdr@;c2b`OmuC>F|I*Oat&d- zyo2wbc8lQd1p zSnV1mHz4b0SG0|J*%gClxD1%$io-KqCQNn3<5?~XrnwUFY*!MFbtU6CR|=-PQc-fH zq181OGhFFtb6L^uvZ2G}K&MMa*`=V%eL!V1Uw=0Mqmxf+f82zp+R9!j-ToW+p z%Epi@2Q}A3%ydn{uxm1ocTK@8*HnzSa#43p!*g8Iae`|GzA4YNaqU8$MeY!G%6T-e zBcqcmAFpy1V4kZGXSrtM)vh^gbGxgEya>6b;VLFC5Z>aNOP=qVhsCb>JbI(>Cf5R* zxxymXLi!t!8Qir9=eZW+x$+YFY~=WrOUM(EBU&yc=OFXDb14=%mtnE940k%qamZPL zUpXuBGiMcUb5`RQ&KlhAti=)Ma$e^jWL4>0L4FunaXIVAHO_kSqryj=+)a(DMn*Gd z1GyGC<8U^T-*q;TdxXC_o5_DVTkv~lEADZw!oAMb_=9r|{^(rGvp#jUk^6;nobBYx zogFyc*@-iqU3i7F8)rDz<5kWLILq0C)119{rE?=*=G=sHotyC{XCJ=j+=4rtTk&gW zKYs4qh6Bz4{L;A{2c3g_4N>wCIa>IZa|cZ~ayI1LN$wPOId{>#DeQ0#)4z_KM>u!m zN6tMoTaeYDb1(T5=RWdQ;qT7< zGcZ}6iD%2R*nTWBddPWbm-A7Q3s8{@F-@M$HbHp~IV8-Ki^yTQ7!&2Wm>|!?G4g!0 z$P4f^c_GiLl^2m8MSgBYUQB*c_^iByrV06!i(Eo(KvukRDY;o#CoiRW0y$5Smyw@B z?u^J~U>S-fCC4AP?PSYf8^mNcagPaR{I>|2~vy!I^%RSwA zk-VOM3bL=t8^}|U?|{1pGrheuVPTecBh7eW#Jh=J7f$eQrauQ6A-#R%bCFTeyM=t7 z@O%D@?_y8?>3qXgco@S=%*lKlxI8nM`Wb(43e+&4v`CyPtD^5;6Zt7x?;i3jc#>&eL1uPu3c9?hG>VX4Jwr3<`M>{p#^Q)49Z!0!_^-#tmZy3h+I(X%1p()TwbE?o7=%SB9 z-km@<*?{b0>U#31Feb2p<`m&=Y7cq7+KUU+jd-iN3GY%jW2xGQi_|UHpl-#d)qZ?d z-G+_o06wE`=asjsgXAxSU#UYhL&*E6?jR2ecc?pQz7~F??xNp`?9b{jKB?};I&}}; zsP4rgbsrY1`|)P=0M1np;!Wxyyg@yTbJQbvy?PX9tH~RLlsZ;kdw9lmh8! z3s~_f)rR$|16QgtPE-}VK=t6Cst=EgU5th55-0P8@LIKmrT`h+ z)lzakGV-fS$$7#l>N4_0Y8hUrmg8i#0xwo8+43^AiaZVZJxFRbc{=h}Lev`a4Bi*sC9U*T8}yEN-Xg<;GNz^T;grQyS&Y~*xQ1Oysh|{cNNxnS7WVr z4L<5!iw}6)u*}TU5{1X4Os2%!H2!Q__%Q+E;nw%M~$1Y z*4T%S8Moje<5qmY*pI&(x8V`v03J4O$5G=Tt}_l{w{Zu)X55MG#$EWPaTvRdyRpr< z2iF?+Vux`bzG~c$uNV*D8^(j!X*`6l8xLcT@d&|8M3w~})log7mDfqK7 z6~8v7;SS?iT;WZ}C%jgk+v2s6pBKL9b*TK*kYWF&l{)UYU5OV$(W1J8K>d1#_9Ni zaRxRSXJVsq7Opbp;fuz6Y&90(Q^rE9H_pZt#yR+eu?U|u7UN3eTzuL%4;zg0vCg;v zw;C7XC&oqiv2ihOF)qP=V+nq0Eaf}!rEw{F5c#~faT$3?_?@wgJZvn--Np+1##o6v zja69Zt;Q$4HTbHxmglx1|7-7Z@)~4s@vgwvymdI@t;c`7D|s~4*FZi~c$Tk`CJmXt zd`;xB$QbBr#&NzDnsj6g^tGbTw~EG(T(9u0CVP>0!Mg_k@~*{W-ZnJ)+VOz51Ap;$ z;?LeLe8=03J>K>Bws!+=@b=(gZ!iAt-H5+=H}T3r-)3?E`HYIMj~o(C@NJ(NQccI>uLWEplE{bR2IeI)T?0 zjo|E}lXzp%C|+6=?cy3~Q4C&HWN>j+897rfio?7j6BZQ3V}6kZuP#c&qN1e#XJ0bg z=ObJCQt%pIDqibL!$RL!Ebyh{(>^OU_-y!$&w({Qndd$#e9WiN)C!mTJoJwXpYZwU zR|xBTD)~uY5bJ#!KIIGJE50mz*{9K%OjTvm-zB&?n2ghz5?>S$V$dnNWKRd z^L?}N4&NMH>?^`MeZ@G>Hy7vn=Hbo0`RMd7K-s^L=i2;>$QeSre=&^%SugpPV4tr9 zKk}907T;3**td*rdVOW&cZKix%4vFp8+{e@?;%&MeU;=7kl$+Mt0KQI{LoiT?()^( zI$tfe`gel{kt*CzXvb$@5MvDefXPiKOXiSz~6lbd4(b0 zA@Y~PuY8ATb|7n7-x2blaKLwz<}+lb^Bp69F8tbeoV?F>0{8kx@JHWC{K+?p-}|B! zMrL0Oe&aLX9$y@O>oeglUp#*2v*55V5qJBN@CRQqp5jlz7=J3p`_u40-&lo}JaQJ` zPsi*0RxI$_@LInE3;i-)?pN4yhH$3eLvsak|H$tnUnacLuaYnI2kECFuB{)z_H5{gbi7KLua&PsMhBF5d5-#`gF5r<2Qs z_xNYflp@Eee9sUCHV&NixAA41i^;2yx!ymQ+>Fff{(0mkWR~~OC$}JDxPJlu>0d~5RCvt4h~_Wh zfBwbv|N58EoD{z5FCn-2OL47#DL(99#x_;LYJVBcBf=;B<@9yP$my>jFGogKeUx?n!qe3a^vS}o+C!g-9Jy*QdAu;9ZluwL zc6AfI4H>1?&1461jYaJv%g9)*ZXsKR1OBZvpCf+<(BDt~O!%yS8%-lJ5BdklE0KB7 zzn$D5{MtWAvlCf^`G?3mghT!vWP`esJ{DQksJrkB|1b{vcjI>d9(>5Zmu)JA75;rR z4+{JI`{_3$t3m$(@)l%W?LSEV0GUVphsYlxD?|Tb@+ZjHiIGcLY+%ivp>b8%V=T0%LJ%ARV&j(2l-mz^#PfDT|mLv0S{gs@ZnVf z74rf?yfUEiteMCx90=o$fh?RC(D9bQ1iU$rjm3c+yeTjdivp8yabPko2~5E|15@#? zKrY@Ln1&^R>G(ll2Cu&vnXdyg$r}T+$nPODZy=BSzVPorKKXc{0RIXU;-7)pcq}jn zj|Pg^zCTb*{zUk3U@py8WZfQ^N8X046$A6}hX9`#ih3@vklZX>6<9>`B63aam>j6U&Ojx0 z1*-71Ks9y*YVeIfEw%@iv;B&|3i1=eM+0>tKnwYC;Uj@onrdXtA6SJwfz{X>Sc7i|*5Zah8@?N8$Mt~@ z{3FnbM*>~=d!QSC4XnpQfem;t(8Ft5gT3Sop%mOmK0CMx#|AfJTCfk#2yVf%f?IK1 zupiTd+i-GlfLFLCxSgDjT)Peql4l_+_TUh?K$sWYL31^--v)Q0J-Ca;Aq)nGX#&WV z{NQeKCUWgJxQFZ#hJt%(G-Lz|?jy@WUvNK-SLhBNp!Xo7ckm!t6=nqw(To>Hf`{pK zWbG6@LY{z}Qv{FVoZvB<<-z0R$ApguPtdFo)&)oCpFqaF;7RgR$UUIoDEUcYZ7|xy z*cgoQFh2$jPI1!==G`yeGI47Y7^g&R`=h2{z$f!DcK8 zw&2~tRxAy!!aIViu`IX-?+dQQWx+OlIn<6Fp$=RV>cmx{E_^A}jjKcJu_d$tUkLSJ zYp54r3~j{cL!0oG&}Lj4>cdwdALF)Eaf(IG3o9o6;g41D2Q)| zG~5sh<2#`&>4Knd|VVNz=fegTpXH>w}gDre#4k2s) zU@OiIt->2ZtFb7w25$_l#o|yK-V|!bb3+}N9qPpLP#0E)y79r#dVC9inj}bG>$$ED7z}5gG?_ ztw1|U_6U92F&eKhLpx4yL&k0G1e&!GOw>-|Y1$~pYtcT&a4iNCGy__+I6PG|;TSC* zkAy6EIFyLLhm!D*P%<73rQn~TR3GDfD2;pqnNzf}Khio** zg(pJ}`u~JcnoK_$`oG6Q3jJTm-B`_oXJ|f5(^Nc53u20W6Fe70yo|-TPO$k#`O2|bmVH##8Ovhlt3=AdA#Bm9;Fg+m;&(rep zT&)0ev_j0*X5)q096Vnu!iZLkleM{6qRqnsZ9e8}3-D@fAzq^`!dtb)cvr#_EJ-NA zI}=KANy1XRFJT#$C6wX)3FTOxP=SRBm3VDJ6&55^V}3#nUYAgd*CZ^*8xvMwQ9>O) zm{5k4=1d~hZ5FcO~P8NN@&B?3GMiD zLIH(#z?|?%u3jR;e;MMC!rU|Cv3zU&6}{;ycvtkeP}js;a!eL_C51f z@@dHXV(!NT^ESN3Jb(q}?U-*K#F^$Hw!GTBgPbS4%Dj_&rFj?qETL{5rimb{MDuR) zImi_N^B!_QsG0YYRr5X^Z{Ckt<^y=H`5&Kg!7I!@yu_?xt~tmnUnU<>G&)X*g<{j{K8a7Gl=d-c*innJVyYQzdRNRpB91HP8JGx$bJJA^#-&*;GrjANd(W({l1K z@|%uKE6BeH51Z=9znkju2h&R2V`{+NrbgUrYQi5)&3MGrf(J~k_`PWr{%Tr{muhS9 z5^XI`)7mgsYsV|J4!lh3#EY~pyh-cE8@2UVq;0@rtp~HTUhFh)#MjN6@D1~3TxagX zcJmhOFmJ`R=6-zDybWJ74`7>lJ6@*^;%sdQ&x+rHsqs589KQ=q@xy42-;Htcd+^lw zz37SGhu--8=!-vq{`i9!ia&&l&4=+$^AXI7KZ@hykKtG2j^izs6L_m-1Q%FN;_a4E zTx5w>d6p#xmskvVmn9BMEGE3$5|5=83*K)@#Bxg#K43}43QGz;Xi3FNOBz088H-hx zbbQ=m#T6DCK4EcSokhkcEegJ3@!*RVAFi^fxYiQH*DM;oWC`PHOBTLr(Xq`k0oPfw z@nuU6uCYwScFQDu#xfZjEmQDW%T#Q#<^H4aT+3XV2}0d6kNzCtd6xO~*}@#l0`kd(h4^>E zBAjel%$64kr&*TJTq?ZGQbIpnc%h|~ev4!CKEtw{oGeVSte`nlc)F#IJ_%WI zS?b9d$WJ0$R+1e;yQP6V&eBMqE_7R(XcXipkuA++StwarXsklb(n=o^W?EL!tCrO? zeqq3}h9-#Y=N3Ni6XiqZVnZAG9AvLHv}2Z`10#k`v>Up3^h!fFd8TldVLds|umP_! z^q^wsMYmxidJLP;YuNn%*GJ|uLm%cEw%|0wR=m{Ek5diX*ya-CYN}xXFEDJ!iwuK! zgJFnAi;yGQumf`pJMnzOF1*k%%%j&Ec9Uld3k`c{Za3_uStz{Au#ddRupgHi4)Ex` z$Ps5ai1!!{VTs`|{mq6Wr`yo&LOdD^0fWl6V{W#&`!Fh?RNt7vvgXtU~@(c&foe z6DKqneDp@-o|-`=#~^d1A&57`Yd9-DOn(*fzQ<>guNGbtuhZlspFxVBK%Rl@E%Djp znZm;O9P;Jy6Y<*kNmvj+8GnwSf>rTTu`WIrpNpS{zsFAJ6^{c$zqGU0u3 zwPb7Ta{3IRGj;`yLuiYwqqifgzSw#kjai8&V;bRbX-E3Kb z%sX-G$;Q|XWP>m+wuk0aWIu`RCCA2YB*!4@y4X$Ri-i}(Zl;-n?A5V-_~p1QI5ci6 zZXegrqo0l2M&2g;C1HT(AhNDV*p7cB4B~GIL%1Vh2akS@yw?dkad*Nl+?6nl^DVpa zHp?DdXxWQ*SoYy!%YMAaasZcF4&uF*L%7Ux81J(j!7|HHeAsdft1ZXz5z7gzv5erO zmXla(8O6se(Lt^?Sz@r>V!)>?ak$cA!ly0q*kG|>wLv8echC5WvS4gX3E2l@RB!rv0J zXbvI2pCM5v|B2kCO`JgfL->1QHq8-aG)T-L|B9TgCr%`PpE!xUTevrIGR=>|9}=g~ z?-Bl;IFisS!4eC}zaU3$;%xFy$h%{hgO3=Bu*Oh~)rPrPWtfK#8|LGa+5)WC z7UEOdB3!90#%-1*_^G7?H(E;ZJ#){o*T`Z0{rk7KNU0uA~I8ugPHr;p;PdUS}dO^-pdZoqgw4ij_}TJ(54 zO}Aj8o`_@gBuvti@pL@}ll4?QLr=pLeJq}-r(>#a#j|u9rs)nmTbFUHuHZP`gXy{t zC0#|U9>fe?Lz^B(yPky(T}P)r0cAZKU3v~G`b2c=lhC72Mz1~vefm`N>$#}v(=eb< z$Dlp~L;6hA^jVmx=V4gS$MJdrX6c0((PyKs&%tx_BAlQXt#4qFUL#t3e43j@lw4Cr|H#rnO=j_ z^;*1KUyd{M6?lbShcoqhyi#9@v-AeMN^itGy$P?@n=xN+!E5wZEYMfswfbr-)Yss3 z`dXZ=x8e1AJI>KN@CLmTi}WtMQSZiLeLdc!Z@{^F58kZz;yisL-lA{9`TAzORqw+E z`WC!R---+Me!N}ZhKuw8yhGoPi}gXgQy;=5`VPEH--#vqF1%YG#!`JZ-lOlqrTSjH zSKo)r^!<3BegMn#gLuDw2+Q@u_<(){EA*rIpneQ1_2c-EegdoX5qwxbiPicjKB7l! zjDC6yKB^lu?lNb_{XYwQqLzlMwXwKL zOUIWqE55ARuvK&53!03Lnu5=29&FHj_>89F(^?RlH4UHF!q}u`;d7dfE!qU!tYzZ| zS`Kc}CgR81B<#~B<44*Q{7{>Uomwuwp-saMZ92ZL&A`{Rnb@t(!nd?M?9%e_O|1ae zYlYaO&Bk}NIk-V9!gsV{d|R7~?`!jLlQtjU(-z=HZ6Wq*i}2da#e63Vkv%YT3Aq5- z(=toQbC5kSvlM4%E~WV`a~b)N@L*;c`Pa;Hj15=t=uerI)Gpoo_W;I$fYw+~U zTDD2cTuwd<`E*3)3i7AI{>(b^mznkSL&!Qdb0rRDHlRDRk=}!hDw$1WMJQ)B(>R40 znJr{nW-Hn=SD_T)|S4LhZ-2VU9LB^$U2ic2k8SW(ek#Q;9MGhce zL%195;q~YUZ=f&A>>=NPtO>)t%wgW%R+=y^H**sGEt!+a^Mvy=r;u;WoJzkiGnagu@b=7UG>ecCICDDQ zkvW5=By%SDF5%M5Sv1Qs^JwlB=4Iy7A`5Y8WD(vQS&YjfOYpu(36@1l@&3qCERQV12O?!y5h=$9 zBNbQ~slmn`qWTX}ABdhSK$ZA{}S%XhU)?!1X4WEg$V`HQPpN({4Q=|)@i*#diWIa9~*?=vP z9(*Cvi>;B3_+n%eu8M5Nmm+<*Iv>k$!w7vJKZp2JqF$c5I6b;=0HXwnuj0 zYmuGU5!r>WM~1O8vK!xs?7^XS0Bk8z3V#O~aHXMvN@XLsdLlFhPig<8G#D`x;RNNT} z;x`cucSXYZZ6phaBRYN;nSi?^+4y}V2lqrK;t!EYxHmExe~e7QeUYj7QzRGnN2cM= zk?D9KG6R2!%*2C{S@>%t4-ZB1@wZ3;9*z{^?~&PfBr*s8h!o+`NHP8ynTy9F^YE|8 zd^{dmfPY68;)%#2{3o&)MQ^1F2{ev6?igSiDpAp zn7b|EYVt?IPs24d+mLr5Tua_690)I``3(6?b$A8&9pqk2xQ_e0{mp#K{AG-J4t{2uZt$8Zz*1LTv9;b!vt!q3AkG~0#!;a2)jgdc`i(f1+ySa>zQ z8(xFogxBIoxD8K)+wq@p2i_j;#M{DMxG>y}*M`^QHQ^0d5bi;fp_kWuI=qp*68U-g z@FsFS@*7ISo5^*;72!UbCxrKex6qdgYr|XV9}_+t?x(LpJ{KL{My^3V?-U*&R|+e_ z+i4yYJ`x_JuNK}L9wILd@4)5Zoow?sGGc^xk?#)=lgotV;oUS3Amd(m5BWZ1tsdTs zdEtF{b$CDikE1(|YodPqI4+rj8JJ%)Gcz+HBO)Sp((UfH-3DzpBGT*;T z%#4W4%#6&8jL6K4$cW60jEv08%*>3;h{%l0%!r7H$jtn`exHAykN4xf+rV-A+~+>G z&08~$;w>3HSens`Wf^^Vb4EWFXAEFb#vtC5F@z-<$8c80aV*FEe=a9&0{&7HzKGRDx)MLz$MF_v5*eA70L{FZGzzHXa< zn`{$tqiqsywoS%2Y*VnsHWfQ;iTJfG34gFn!){wLeql?&?`)~~y)6yfZRz-pEd#%` zNqEqfiCs1s57`v_(Wc=6n-llhbUbYH;ODk%?6i6DE1Q8|+H!EeEfcG5M|hU4m}b0i zf~|!9Y~(L)D<$8DJf^J-@3fWUm9{xJ-8Pq7Gm%+`Z63()%Wdm0-PV9=w_2B!qUi`$?hr4Y3_>OG=Ke7$t$F?DC zwH?C`Y{&6K+X>uhJBizEF%ri|+i?8UHUf9pVsVRY6z;K&#9YIGX8BbrSA zbu@+CDeQ};l7Ek;;UCd-ZtWKiMl)#s68;&L=m(JFW;7FzMrG`cD)hf1uehj&zeJtb z9@Xi;hFxXes$|;bYMmSKL9|8P|;;#2sSG)p3W(&k5_}j?g@VoMprv z#fRd0Xci-TW?V0MnQ%c|AI&|&2jlwb7a{vY+yJ>!SRFS=^8m8`9ydgO1o^B)+%fXQ z$UYx;ocx&Z{AdoRy6BtQ1tTQc=xHLoF*E9a$NeoF(BUS(%uU zCF7-83Z`ahcv+Sc)3S8DJj;XWS=o3+mKQU!41U8K6LQE=VNpUZ%}vOwCLxb}v+$OL z88jur(u4s0t-{#}CViQ(JRwYfoACC82>l%7SxP7%&lS!~m_>6Za@0;J#JdurH1mZE z5{hW<7T%LkOutZAnNUK1ukgNvQu-=kbwU~a{mA~4P)>e8_+Y{un#IB;33KTm5bXd@NxB{c_~kov;v3NvOn_gen}KP>rW1EW(iqi!nA~364lu zig5|cxbG-rhLBK09*xW&5|(3p!U~!MWSmb}Nq!Pf8CIK6i%%u2qFIHUxhK?->yR_| zgnFz`SdGsntf7A{VJ&$z@~NnVb>ub3=Qt7?$ZL_$dL%TG*9jXE*3-Nsd^w?sz7ZJ> z5}L{Dk?*KX*g$R)HYaSPc}@6w!Y29+!c7S+^lu{LOu}aJTgdp6&`N#-8FLc0kl#*d zBX1TaCTyj-5VG|9qg2|MU7M)u)^o#acAeK=tkUY4+%CQX>0u!rVy z;S~vc=`)bmQ9?UP3HxZK3-c59(}abQgbwoG@tycjd>0;zKY+*M58}V^-S}VpAv_s> z7*E6>!6DmG{M*)pWt>m5&kIXApXPi=coXN-yiz!m<{Xf7Xl9t4J@ZQ8yqOV(GiLUD z&Xsu;AmawtzE~sTsuyz=+i)DPjljFO#>KIZt6PkLT-V}Nz!fcydR)t5oa8DNuLa~) z!&NMfk6gcE-Y$HE>sK5NxpKv;m}^$NqLJgs$jRgxBd3sO3a=eGmHZgjso0;TBpfbH z!&9VWJXK1;e{HEaLQ2Eqwsd6a5JyT9{%6a?6E+!7+7v7tsi8U2$YR`TK*l7at|a_}@M7sp9?I7*s<2~q&hluSHb3gc)gg7H!T{w>Yo@s9~(rWeu- z6aFJb>5n7-is?n<;mE8{DkcvJPf8^;{|Wz;O6doMC!{j^e}$(`FDIWP&EeJ_X)gH} z;SbV0nnS`~se=AjbxKP@H_eyQJ zN7~B2V!O1B{DJTzX*cMKM7ax%NaFNuHHPQe+CJo|B zX$Y4~$MA9KIIfUR;1kkGd{~OPl2sIGI6fkcz-3Y_J}QmECDLeIEXCtP(iqH@#^N>7 zILwpADFVY)N} zB`JWJl8Mu$Fgm3Ox}*ZsrCI2Z3ehb^(JK|9M=HiFsRXm7QoKqk!%0#(o-574$Fv@4XV;wyi!_+%~AutCN<&)X+6F!HQ}pLGhQfd zz(i>yCP|y{BB=$ZNt^LvsTGr@EqIC4hAGlkyj0qTsnT}5Oxl5I(#|V6OU>Fv?m)gr zF>5#Z8)0YG9`dhQd+`;k9hcyw6KCH9)@fm9X>#ae2)*8aq)-im}I*x0s6ZpJ!5?{1pWcE61 zIKE(wz;#wE)>xx3Y>h_CipN>j7`(w6i$&HryxAI$rPc(TZB4{GtVuY>nv658DQH?# z@pUT^TdX8}%bJFptz>-LO2I8wD!yx_;d@p(erRRj4okw1tW4Z#$@sCQ;BHI9Pc0`l zSUSFBd9cyS#+NNGuD1-VuyXJ&D;MWmd3d)q0~c5UyvH(ep%un^tq4|H1$dt|3#+U` zyx)pqwN-=Qe146;X_tAF0tm|GHWhAY|X=^Rs}v{&BsTr1(;?n#4D^y zl&mVe(yB(qT7(X3G3wS5%(9lE-&%%Vs|Ite<#?^N0ykJIaidj>Z&<5vlU0XrTJ_j! zt;Tn(HP~jY#jVyleBWxoZB`?GV6DgPRuk^Bn(-5B1Maal;%C+-Y`0qQ3u`m(vs&>> zYYXnT+VCrDD}HBf!-Lj#JYem>@2#EqgS86}S-Y{@+JimTUi{T+$3ANx{%-BZeyang z6m;U$f-bzE-~c8T9K;I?x-qHX5MESp7^f8+!9nXN{$=&xF{>Bj4PhZUo6hGGrJKdljXenBi=Trdig3r6E51@V|t zFa|Fz7>lU|q{7V+$nwUqL30E0FQb0tLqxXn0nE6W{abI6vf3cqf4Hu242j zg|I5*CEp)1xOGV=hx`z-k`T%zKY*+ug!0G_3YUgvkRJ&J@Zpe&kA}i*Q-d6-LlJy3 zR6tWJToIZ@^EmQ75}`u!6T(%YDEaA75k3_v=GOS>CFIkQtC>bA`77bqMj1_xx17e0 zyrafDhwKwx8-o-fIT*7_tMqY{LQhdR?3>&;P__B97w_4s6Nhbu&}^eOTNy#ivCki z9eKC#6Hh&PmuEHo&+awkBf=i{TAE*xebT*-{0p)-x*M?1-H5-t*W+*QCUnWoY|~?I zApe4#Rhb*fKM8*}H<6E;E%>Xs8GFrE{LS3LmVcXVh1+KbPI+HrMgAI_Ke^Eh`S=U;LMR>+-rhunpC$_MZ+ z`5?{@bpQXB$TopPFHxgA--^Nu3lCA`x+nx+C7y}j|c&^rbfd&lCv-f>vz9gp{UCt#I# zB364R;r-sp_@H+RF7i&r2fT^+kT(hUc&72lpCRM0CmBEYq~PR0D*buL$Qei@pN|~z z1L@?mkKsJ3c^8Y^uyyP@tQox|O2${D8a>y48uL$JQqze-RdGr?|^T5Cij06HS z7V?)3m{<}BjLFCD=-J= z1m@yxfq57WRN(Bud@K(vz_P$XoE5I*ceq~oWT1*>rLZngP5+GW`M@IjHORXf0*lEj zkneN~EFrH#zWph%lw6OjWCoUzR|}U0YG@u2J{(w1zXW+NL|_GZIdTOpu##Mhyl){; zORfT)JTo+i2F9z1(Yk>xA4m4s@U_HJZXu=JFW_&fU z0oMmMVz;~rzn5Eh{IjNSCXW}MJ-wAYVfq%#3AJ(S)ySMYv=uWv+h}aa-_*06d<8PY z_w2ywo}KuOv5US-*lp~l`Cj;gv4{SU@PM(G{#)cTWkx&sJK;~pKJsB>KmKfV;1Qz} ze>A$VC3FDa3LWHLFNM0v4aoZ{Lx;%E3mZd+$uESC;JVOJd@wfBI^?NF=Poj53-LXX9&~n<7h5N)_(2d$(JFY*0)a}Un$%dnn?2{G7}3;B7Y(L zJT#eRuW)~83jJ5e>?kx9J3@*0btnlBhNf}r_rf1T$ux(A-JulvACRL@C>4JVrD1O< z9s5HW_(w>>-$I%Adq`&cT_J`1vGBu?Mzce>J>;bSK=@Her{9UpEkhpsB$SQ2Ltfky zGO*Q^gHv6(YE%B~``yNcP;aFvjK$oqI*rR1xGIj%DD)vj{%yXN3Xc`n<;3iDj^Xs!`n>#CrS zm*>-*j$8+k7m(wS>mc$%@@c~V$(1zYgyZEZ`ZJMlOqHw23COpk%8STn2+x)mlh2Zu z-~@RoPLh}5M7ajfk(c8Xc?I`6PhLr$EIePXB`3LX9%y58_4N$BP#NGZoN`&B4;Aki{)mrER^I8G}Do}y1Wq`@+MT}7Q9;C z%&ob|b0xQ8p1cLGmD}iNAZsJ?Rt(77Feq=w>*XEXT8NC;@=kJ8SS0VFxlvdk?(LpfKd>B8OcEuv|XKt+ye^3%MK1C() zkKkhoGA*_*);bZb~TqmF4 zUM~utkWbRA5U!MC99$O@J|z!#Fxm@O$s_2W7CtM-($^!$9eEVF4!Qm%k0!50u8Ya> zYhJg>T3c$m`{a_=-FUo8-y(syqc>lc!>{ zoQNCcBz#?-h8yH$+$5)9tDK7O$Z6Onr{jBa20!IpSt4%{_RY+s`5l>a&Xmc23jdg? z(DWnkB$=s^yM%)?oitz0)M@r1W8F*-xgBGMeKRwg+$rps>81G^S(%w>kiSA!V`k=% zzZ3pCGnb}E*gZ3k{s&|{oH>L1z3`Wr0h*)8X9H)NcvNo0pXBxUgWQCNNV4#_*Y^>1WtN8UxYT)W8;&x6EZ1K0 z^{#gMn_c_J#lj-jewv$*al_R?z7?65x;n|X2yb+C(L{yit^?%Ru7fzo)s45g4q=(= zFy8Gtf^%I*x$hmw8IY?7?{xKIg{zN#zN?>nm$1e)Kz__Mh|63<_>k)uE^!^lhg~Od zsp}*@;)-!{4(=L`D_kS+UpW?!%cC&fJ{rf_= z$WxH>1^YzuRAHih63vCei|mu>lZ2D(Q|Qk{jso_nWKH;tE0LxS8Rc9_ zD_rGDrg<6}wOlD!?@GmIU1_+%mCmiN3tx3*&@>5~T@w9k$hhRnB)@^InY(0caVfaT zrQw?{C%)y<@gC8Y)xvA+g*17{o@S4tWiP_8y%_WDC3u^?6dUbjZ22-Wy4uTe zqkRs|8_2)HJ{Ozq^KiYrg8miZtM>UcO~Tjg3+Oi>M+Eyq@(akn)Luz`5t#|wtFXad zP4kj)jeQZ#bHd&B#pDm{OYkH6Qru}@hTH8m_@R9{?y#@Gt@f4pzP%Q=*;nCv_B#C3 zUe6=%5$?6Gruhtc)!WyQKNo&sUrV!3*lAx!|21-6U~eFQBmCChNOJ%gXYA{7zr6{+ zvNvOgeFJ`H--rk8oA7&k3)^?NHj}>+?s2t}KXYyQ|DWY*BYz>><=RT~iEzJb8~vBU z&t2QedtE!Y^;6eQ@@`?fYZtl8wHv>2?ZK~Id$H5i&X&Kq_K|yqKe_gkkGMMMe|2?| zdxYP*x@Zmv54#S~|0w*yb&&oLG6uT3@n_c|nr_!&^7q2;Tt{dQB4eQIC=R-M@K0AS z_PP3Sz}1g`xCXG_HHg2vhOpay?EfF%ew_S+@F)8Ta-aPq{qM;3_83>pus?)<*@wG$ zeBp3q1pTSPkxDH62;{pFlu_hZWGuChCJzaZ+2d*c5&mf(Lq8zwwU4F$4f*};~G~q)aAHM6OCGQ}A?UDkdn2c&3ts2)dL4bSSgXuN1OP z4l?&vqNpiFn5God`;-#0SD31l(p-j&CrTMQm2$jNnS;}nxtOWULqn;+Y-K*%Uxm!x zl?7zG@DgPqO)@fDRw~IsWV}+U$kzx{lxmtwk@<|Wh#VG1l*Kgp!Yh;|^cli>WhwnL z!snD_^lOAKC^htJk@rt3%gN6Q>y#Db70OC{T&cyC$|`(Psl!KFs(uhlx^|)MV!iSV*d{Ehd_bMB)M%jc5l@@$j*^Cb;t$4q(1*?@dd`#Jj zk1E@6k+K~ZC_AuL*@;gmyYL=mH$J88!Bxs$yiaMzb;>?$Q1;_XN(a8EbmEY!i+}Gi z*8%e1!v970`zWjjPQi(5Y4~Bk@{is2>l42svpIFTs_#R^y14(ACA%cx$has zzO4`7Xnm08bY!2`hsX)Y>q0+ zoKr^n zos046JWNn4aH={VFHjfYMe0IKR4Xw_t-=e{YP?!qgtEFAUFs5kijIsn>QeNn%P?83 zp}zzfOV#D%i;>YxT|vGaSwmJ=k}pH9rm3~$ONCdct7y`NSE+U6EVZ6nvyt&rT}{@6 zPIV291G(a(t|hyXZwgY^k?lgS+Ca`x8_}<>=hiFLCUU0GRGVo+$XcbkfjnJkQ#aCN zAoFu|6M3$%RBfTT6`9qmo5{B$s|so>`8MHfbqh_IaGu&meCfI(0YsKH($k9-5`Xht<90htzglqVB_G>V7OzJ1}4E#IV|h1?mB` z)PopNyYV{p5Z_EadV!c4##`c5%`1}>*gw%<7zz33S_ib$KaFdSgcjY z;nV7PZmmN`T6F?>6>>(PPQ+)_N%)*PnSQN0h5Wp5jXIUQT1~`f)gRwDp{C(JH61sq8Ep9mGS^il@`uPZJ2jL1iSRR3rr9Grsw(uq2;WjQ`WEE< z462jdD%`5-H18v8EUJh6HnI|;W|QAV##q%$eh(QxRfGHiGQO!fz~ zG0hih2~E53GOd&*4VlkqW#n{Ws#Z>OsW4faLmpD+;=k%VJfT+L-|Bq)Q(b_kXbW+& zR*8LT751yuc#*aU2l*o8(|r0)@`b|l^<6Ymg^BuZ`U`~T>3is>AlLo% zz2wQr_^G#}U*Cs5eLr5Kci`1}C+6y1n4=%SYxRSer+4F3`XS8L52Hsvf?4`ebn88+ z>%BNr@56xJk2CZE4C;eu>O&aPkKt9?ar9~@Fi$(lZ*{GZ6?PBX2y?aJ9=_2+=+{Qj z8_1O)EtZ@kyxu;FrcfBQkEXu?`Tx7^@#O1-h1wXJ8-&+uW9erJ3$$_nzl}B?Eo}nk zYZEb|O=A0-waMgS zf{a~SD$du^@NO*~E3^!}N0ZoQp>Tie zzDc-ATSEVa@Lg>wdAqiZTR#-Ouhr0O6>ig((|>@BqS^}bd&uagt;AhgEq<)6!gsVf zZrvhm)#_>97QUserr(UL4ry!1Ey5mcEzK{&AGLM#hmmu0t$}=0ct~rc`9b)Twx0fo zuvcrM|5ezbHIw&g8}JKlBYvfA!u?tceyMH7ueDbEUfY7-X>E8=+lmLYZP=}C$1ZIL zeyi=oZ?s+5sqMx;v_06T?Ztkr9e>mI;qTgh9MC#&n4^>5Ek-!n(M59_G7HrXkpB~o zbR49KMaE%AH+d8?l52;^Cxk=VVVb{$e``nRj|q=!N9q3&{;BoQ4+@7ndg)IQp6ckM zA0a&7(N8}`IMp#ge*rRAbPSR&5nkvRqDd4^a~z|;7@2=Mj*~A!X84X1IN5O$CpcoV znDIJ>8+&@tE$IfR{TaW^padF^QZZ zEY&B|+=`4j`V{ib$he_TCEp^PttZlyA!Cc4L@pOr=+nsa^klqKPrZ$*S)$#UMQ^8Gs&3_nf^+l-J#IPLdl`gPe;!89Zs?f8Q~o|*^L~(93HYNbU3nU zG@-}gCFeK{yxNh2en&3mIr8vY#|+GM1n?S%i8CBw9%rU7=!nn+ka@DBfNUb~eR9kq zhlK@>LUP0rrMHlIrlSZ;9mP1?QGz!(N-^pv!y6stSmc<4H#z2VuX`Nx$P0uE9ThYW zI_A?XLT18_1>{O$m17~z{lbSGmGn!5)s8Cq2axpvM>Y8&WaM-#!bcs8aj9boKH^x4 zk2#j%GDi(AcPz&m#|o@Y<(yS8JIabj>gN&$-I;?lp<7&rh`Ub}u@{7ob z=U7XAN!a9AM}FPWfUi0lvDvX6tMw+fd;s}3>djcCZ=ks!8R7Mf_=LU**Xb?vFCyc= zz8OE(TWNM7E3Wz$+@rVQXZlv$t8c^4_3doaj*LS34*WvjiC^lwaKFAAztZ>M*ZN+z z>_le8dOI%H_hF5`A0O8{@G-p;Kh(Q$hkgKe>Id;7y&JpqL->t;7=O@@@MwpG2lb;g z-wD6fd*}}ckLbPhKOw7~dLQ|F;g5Ph&0%Ert`Fc*eGq@vhp<;ahQH{?@mKu>eqo$s z`+dm2%ZSP5IO`pr&EHq}uy+K_Qsl4ijV0G0{}%5kto4q@r@ZmF(mMv9^p3?ZJmc^V z`*{35FoApR4ooC}B5V&#qWJ=Oo&%G~pCiwIU<&y&X&@a30vR|Iknrz7CjJ?aaWJ6ZUjYq&4>++u zpyM9_5B3GJahuo6<9~o0J-r6`ec^lF9GW)a7H=;7yU1VGn@9dw_>p%8%?{yqZ-D+o z| z@-HS27mn~Rp*dAJ(!Z2GR(R4_M*knOdgiYo$0O@({^jH`!Z`m5@+kjG9PO{g)BLOO zbblRA@Ymy6{?$0vzXr$q*W#J}bvVx7fdBJ1@|ZJ2>&Y{O*M^$NW~dp@4{hMqslrP_ z8)=e}<6vkLc^YyY47HGxgr|iz(~L&eb3(1;vBEK-Ei?(j^FnR(Q-qU4Tj|dgo)g+e zKS>xL+D?DEFfO!%ev~jaw3B`$avTrsBA<#plcC+@Q-m?0Jv5hw_R^#X(?abumkTco z?W0c>%Ax&ad#D4IP$ym)>Ox=W02-l#=ni$GCv*t2Lx<57I)Ym0C|(unK{eEiS)o33 zg!<7L8bCcXh~Cf;o(LS{cS!dgCtr@NHTh1EQ<3?G?<6@H`OSSXSMi$*k9vn+#o0Zw ze|krd{}P_`#?t&J{N6i?zFYXGcQpL~@{0DxlMe__@r|JwE{ySwr5}bohrV&-Q;~h! zJDxlw{Lwps=CJTv??n18;XmF<^v8wYcqh|$B4ey~3i$`*FXfv`juVdbCDOzqBd0eB zfAUVlBi>{@=1swieW`fDn}+{-)A0{)2L9@mu-}`Bzk6l;&8uLKSHoVf6AyZIJk969 zK5sT&;q#)+XQ1TE!3M0zCu)eQFQx? z@G4(1X8TGo%U6n5`^wPcD@WZo2W8(}^!w)FmA(ozee==jTY#ExAv%1OX!xqo<*UZ& zzC}3Gw;1z$OEA;76a&6x81&Vk;#-am&kCMTC-P{XmFV)+(hP-Gk^e&eI-xr9KgirT zR8Rg}I4r!Hd@{5K{|l|f$2dD9!%GA`UmjzzwQJiMMfLO3eiL~|OlpM;z7jPM3b z2yetO;Z69gw}ow1BiGiwo5{~0t7qO;toLrg=e%wBymu?E@ovMI;C8k=MK~-=8&7lhCG z4f-|6bvJ(wc`35m;Lj!3BP%5SJn|CZV*d=92Zc}j1N3#mM!!k_lJI_in7&$A<&V(c zCw#zPK)(oihl76>uJ;$>EB+|9`HS!^e=)x5FTrMiDQ@9c#Gn4&;3ojHuk2tpBQO9=t#j%4&?se=W|0?|3v5P$9*o}Ycd$@H_*st%U`Ca&j-cCOtoao+1 zf41;6_kQ}(!Xdqb{x4)y)H}(4Bk!1Xcacv=Mo#?z`5$CFaUUd~fs8ZmZt|JPDujNB z{4cV0p&usyCp^o2gl2+pjQc2k0y5uo_mGDnM@DxqIZk+ryN_nLaD=;`{#4;e_W*q? za=gBKH(L$2}DH%^Tc4v@n!s%{_MiLgdGwH7rUgMVObA_^7p|=ZFw??lB z^W0AQYmpkYU5O>`D!j#A zjiv5IILo~l=eU>PXy;N)a4zGw8Y7H%*3g_T9P3<8KEt^J&vdS2n+eWZ@>#<1&Q;`b z&N}>`vmU28SF_ElRU@Ji=Kv^zJU+u4G;b2GY}t>|=aLCx8Q4(C?%IJaSzb30}`ci>gdotW#~#m~J) z=y&d>F_6EYa}U`o%yI6exf+>$IorwCBKwAOABLU#G34yPd}k+G&MutgJb>3Z53+rs zvzvUq@CN50nke!&bsokd=MlWcd6d2s`D;3R$i>1EXD`jo!rPpEKPQyB9GR-r>XPqfD^}-jOspJM{8ougG$0lb6zUGv$*_nwiJ7sKiD)@?1 z!}U%lZgA@Oy3>PKPR~YVx);^y2HL0RpgcVn5Bc->=|2kJ_s^i&D(vtF=)XqR2mB`a zE8&;^FwH*Xeck>Dxl`EgFQEAXImY>Ck-tZdU;aY!&%)3BQJTHNJ$`0$!#)%Kf@E3wyKg~M{H@tA)R_W2j%@BStDkAErl`g>A+T`geuz8$0Q@Au}ao7r7Og!x+2qQ)3T)V(i5|Mmz2@_Tg@0KmP0P zz~k;t{Kwse$J_^S$bAt1c6Z|m_aXexeHc%=kKi!RQCwp7@UtEkK4|vREJD^=%|3FK zu-fdWc>sB4%mMO4$V#j^h|A3(e9SzCkDJHw3G)PYdrso_o)|y-gE`#K{vh0Dj-dGf zSv@mj@gs8-&2Dov`4eRQ){G~AjLhrIG2~B$UzlUbpPS>b-5igHJQMIo&qVArC$arE z!mrKAG#$eI<`nv`gkPFd>Guh{%tZQck;gHU@Sr&jzc-Wd2Qvk`%~ZBo6i6dKAbc>8 zPEPP-;24jDV?CL8x<|%%kAi1-G|Ue<@rIDjBYbXn$a{tDMm9}x$V+n*a-J13$Tteh zLpkKzLb*7>lZR({X5d6m0MGWAIL;Hs|9K)f-cx{QdS>A{o~{5szFaTxAy1 zJSBY6ETOMO&P~ixtT)T>S+g8hn{)7j;9RyzMCM(=d6*Qez`3FM^mibmdT0Tr1{cy? zhRo=KmE=p2<7}{se1-7xU^Pvea9VH?{l&2*%Mqwb|dd@ z3f7Rbgs$Ln8eQlOuAsk4=m@T)cOs*1u$HVLs~^Etm=mnSykI?E9bApq1lM40a4pUV zuES8U0j~`6-ZRC;X3m5n{(cFzZ&%PG&)53dvn`ssb@AI|N zS0b+(-xl&>M`#+5J<4~KTrXVb>!Eo;_=>NW{F1K^*ZcbMW#0fc z`UbJdH-vBdj$yO!IKJvTfv@{c;s#$#4o6|%aNOt{fm?jB_>ONBzU3Q@n|<-v>KlVC zzOneOZydhq8;@jqxG#?;m$G#lg?#soUzC8TcHv>QN1#pMY#2bQP zwvP&D1tT=qAuA!l0`lX+JA<=mDukuMLi$^fy)hUi-;V5o!6Ndl!u(({O#~Ucf+gf) zVNtM@=0@T5!7}0lj?Stnc-tfzTO_+)T3eJ!$n7+izT2iM|r!FBj%umLv* z8?h_69@ht(@U>twZU}C`SArYyrQjyq8*IU~!OgfX*ot2Vx8OU$Hhe$06?X-M(`l+ z4|e0G;2~@X9!95j1YO!u)U_V`P3^@@tq-r%`f<88!1FLJJV^eZ@XYWK&3NQ!6+T9u zD4Y;JPIH#sT2 zeJpDFI8^lUsOl5Yu1`dlJ_()rWX#m3;FbDRoUSLLtS8}xu4$O$O2#ieDY)O0dNuDz z45X1a3tIx|G;ayt31rZ>BD1)FME*dyC6Gz;F7kQ|$oO$U!H)tOei(4#j)0E0+C6Mp zCM>sS)65oLG~G)-4f(C68{{Nm^7I^tzZx(0ui;+F$o}SEOP*@1BcCrk$7rCLB%Ek8(w{9n&sa}CML5}L zqCZ!7meEW<0l9);Y#@&m4*53H{3ZO&w~4+_c*560|F7_O-)8!L;efA|{tw|VzAf}U z$a#~mjod3d)!0fiTo`L?qmL5~`nJ>mDg4j3gZ`xOm~SWj-^le2V;4C__>XTl&2i+| zWbDCsV=ta=wBs;iAC5Nm<7q|*CK#PK&FI1ljRSaraS)S?ZcH=|;YG$_Of`;RvT+nI zHhS<BNgo9aBsX zPBXLdQq#-hr%gA=mkF;7=g`Q=^B>M7XClvYIFFnmOb^eXxg43XhXZ7r&=EGtYB-Eq zID*b_0lLDo@D9BY=ju`J&=x|Xx8El<|>SubvVaSk9Rm$V})Z4 zzOJmrB6A&&a}zReG#gMi8fo0fGij_RJCL6o-A?G#5 zCiEFCm~CvvtBh9k8(Yw8v|*016%At>hK%jpH!L)b9W+7YvwOx)@=RgG*hS7acB5tN z;nr7;z2qk3SYWi1*9%`a_K{nR{kYNSz&DIewn_DOkuOE|J^umnWx~t-2gz6ayXkY0 zW4HehD*nT$`j6nv{-b!4zXwbFy;$t;!yEkl81)Zek$(_x^bg@HxyN|4CS=BydmP`< zPv92)B>gr$<{IWy!mavna+^K^-_>LBJ$)2j>>7>9u6TS~A9D?>G01#CAB)@darl8g z9_RWeaO)ky+x!!0%8^gC_$QI)A@7s)PbQZN%luPlW+VHCe=7NQWG3uS#Jl`SSmB?B z_xO`>zCQ&Q_*2>Pu1MPd--xIupa%k2H*F4BeUpdAp2pYkZdCRVI)cpAbWVE zh@6M)=aFKvA@oK{Xs$x`rAR6HYUFdHkutJh7>ShASjgvqB6G;sA+O@dT=MnE-y$*( z7ep#>X=FYwjx4~3A`9`6NF^?bRN=#sYHW%u!dD}Ud4vZdOUTv2MUka64+^Uy%joYD z-XEzUKOI?)b&(bLRAeQtiqx`wV`LTiCE?4FI`W&5dfXIQjju)4U~^--A2AMYb%yzZ9|V|JGwnPQ1|TQUUgZ!$WIHO$=Xfxrh5;~CSj|4 zFU>o`x83dZn}sdzee`c3uS)lRY;$+ud+tu$;_kw_%mZw5iT5BmS(xVSrnwwBE_e@- zrz7(R?_sh{c&YaYO^PtpdzAh%;T7H<`gCEYx0n7(r&52a*8m`6O+g4O6Kr9zMTwNQOO)ZejHgl&5R{Kfvmk`jv_ybyl)|M zG}dOu<5QVqaAoFLZhbRz9C?$lIdeSCYsjdZIf48NGM~?!NPZca!)Hz+zbQ5`d5+HW9C%yOUUz_nTV~KNw_(48org8jPGQo;Fio(d^=+kiGW?ktJKGi0nPec)#!S&*!?Y`#d>?KIqUc8wtc#cLih@kuM1U$qv$7L+%T*!{qD89CCIPOS4`wS1yEDGb?usf$H$4U%3R%67m2H$e5!&Z(B zSlzJ+|L53(wH({4Wu@4(L4&VUCA>5LEg!guP?lJN< z?#ewu-kW=h{y^>-@_uB_Kld#8pzv_+d75Ln7io^7q?(m`nLJbYYwi`A8N!LVCG-=J z8OYpg95(#dVaF0j z8s2tf;4DX39OKBuUmaOE-cb<;J1XH&M-?3IsEQ9A)$pF9I!Bz=Wj(RxN(E#T<8sbhz4(@R@#{G^wJmhfVQAYtDcQnP54mX~0c=4P=#)}RG z|8_LPfsPiq*inef97Xt>BZ#XVVO;Bo;s!@6-0WzB+Z^psQ?G-c8RPtp#Mzy^A-@M23wp6M8QCjcy~)p!nGjbW@>S%SpsO$Wq3}Of zKbq@8sh~f-8rh3o#pIXBvBfozd>eUJU4zK?g|A&hXkH=DRb4~L*MyH;!)P8O^DV9s zlrqsdQ^PscTud{cPWHJ;{<@E_Mia*1m)stTrJscSl3aLvFs3T9#1 zf;m{GU>;@^EWj!Si?C|J5-eA+3@a9_!1RKZSgBw&Rw!7520$EZBsV3%1~! z1=}#KU2=Hy?d$<4n)ZY*q+UqaI~ z{~Apbp+EmRjUsH8e}g_CY@UCMz6G)^<=-I}A=kS3_i%Xr100tB2!GChfC?Enfb5DGlcxx6@|GhD7b0iOd;>nqH{#QL6DB(? zEHyiAWD_zw>a>$ngfH^bXkH@o63z^=Uic)xEX`wKqBE1;Ak;at=(R$Xvm(8OJYR5D zB5ROsHNOh^wb1CSN|PkCIjhk>$gfUwUubdGps@-c<=3QtD7=?niyZH)&CX?`7= z=fYfPHhms)edVl&?>QUbht7t`uaCky&c;~ZnTNHUPW-@Gfc2bBG27`zhtrF7oia9b zDwyMJhVMFCU;}3%zV9r;Ce9$n^1}GBGm1sdR``jt&Hwk#cKAhJ2W;=`h;5yn_!G86 zwrXc*?CI=^Upu?e_eSopoZZQNkS7Ap9yrk13&%No<5*`O{5h{LPIdNUJX@?K=d*g1;4L3q$Pn&uF4 zG1MP4mj=bS^c z9=UsU&Li&-ZgVc6*(%)RTtvSanI&*7A$yR|(X|ZoT`TYd*Gl}KYcFHMb_fQ#|C%<lM($pf zdicH4fTpX`klaPsS;?X4t2CzhR@g_$BY&ef>3>oR$U~5O8Ko(CsBo0xrujuUM)A^* zM!tWg$mEH_$%;ZV1v%a-&B$|<7UbE;osLpSULsti6p=0) zr44z#(hgTC9dM1(5qBz`aIexC_b6R)ztWA@9zgaor8^!}df+al7w%Jf;~Aw7URC^JLR$v87-$V9}z)GwiSWVLa*{=g@aD=jsW~6YqvVmrp zaJ;gKeu8kEvW0%EaJsUM{#WEEs_Y<7L#}d_UE~GI9`bzTIHv3)uMjR%4v?2Chj5#6 zgr(b&yHw>EZc&coX5|F#P)^|{JmXIy&sCL+cwD)Re<)Y*m{NkLlxuiY zxsHD-HyD3QxkbJy{7<<eAfkSC`B6FFU2K478ALaqY? zHgZ|y>ds}yELR$4x-zhwt1P|~$Ye|n5Xb*Mx#1dwox{gX;cr(HEMvL*KLTM>*iqBx{a|*-8}rF zt`oH_3sBdxDaN&QqrRmV<6Fv@&{Dzs{AzpN!=e`Wu&59p6&2z0q98sl3geTaC_XJ} zh0luGU};f1d{NW^Ulw)b?{eAKiF`@;x34pe*VmQCBlP*Yk^k{^r@tmF@%5m&D*V^i zi+tVJo26a-eaKyqZyNafl0QejFX8V;{tEeig1n#yWdAXmNy2IVm z9*|!MpZgxslp@#Lz9;zF_Y8wdDSZgJMpa&tTM9o>Uego`!-~|LITl5OQAO9BJ6Tyz zHVRF00(rjQK)(Q)XYd=zOZ+DCV&PK1g~sKx(Kv+#K0CRIFO9w_a&_d(Ap3n~$ujb9 z3VfMlMcB-jMQ-k^NZ-;|iCl#I$$eGGL1EZel_nzm*jJ6dg|N_9o&FPKcF0!)Tl;Ea z8(%Gq`f6j$R|nhqvKiSPxhD73!ydi{__ePgeQ#vH@a2$uAO< zxyjd!yu;U>yj{52*MnvYa?bMgB5y;kKzzM%r>_t0^7W

    D3N|% z@+DF)Gw~Kkp&f^nK&qYN=8`Lb+3lD^pJftmVXQ7$$#Sj;ln8z$sLH1X-AZAZO|a+) zN!Y&c#I+N2H=?Pfxl}V*Ra&sDPUpY#TiPeI*ZPz^nvxo3vQmNE%7md13Zyx~Xqi01 z=KK&gKbQlom>Xv>sti!oSmmatN6B%WQ^(fSVG2^FONm2M%qU8oW!x8;AW%olM@sqN zGF4zD5G!3=GjiBKiF4buzTxVjaE%(5;6$&jJTN%W-dEn^RdXBtbh@K}?!PO;gJDG! zMzSf6cR4o{DczHpq^#z|4WHyM;RZWchk*>{-}E*grAnLwRX^EnO;Z`683Ztnr zAdUJWxGZ&C?z`~aJ8YT2cc#-VS5uHIDu!a}yYG_QS&Xe%imK!nJhC(;?fnh zK#XseI_NC@4vUebV?_C`$RYiA()3}}|D!MsfXI8s_xEIls?)y}4#7oO^nU2Yxbg#w zaI|5|+afG{1bQKp$RXI?Rf!_{noFkPXxPaIfklzbTIU-gelqG2XsaSuAVIbdR%tjI zM_+;Oi}hlX@1L@wZ7ADwK8?pgKHh0Km|#z;(j0@A_Nft6+R};As4gI{KQO0uG%moW z!!cI-Emsm9i=>T=A4%H`DFL147_fS_qm+w#6CN4VKq{K3gji9k^%of2QUUd&BxwoZjK8e1EZ7tiYHW2JecGk(h^U$JP%T?Vy-a zTaqu*H99Cg9hE{a_w8_dSGjeh!A=)#6k%1gN149Orfz*jDlyjis0H@F;FOq>fT%T8 zq1NUrcH#|B7Aek^YGu-ia{+pjyAz-vPov6&s?K3sa*#mPn2)v8~tS((cvNtwmbLhLb1 zB%gS>qS!E1!p03m0bg4QY*cK#X>XoUjdI3Un9)ZdT4{$6>yDeuMGrv*x&|OixO?Le zBRgQN$$MUVs-q8~XU-&_Ey5 zs=r1w$Geef`pdV0=G6fs_2w#382%EBEcNBkITgCFQ64LQYq1;&v&d1xpDuKMnxHVA zz-X4qf1@v1_FyV2s1pUER^Z+i_1mkdeYOSiF0ljq+3e0bj zw-{`%BcB4Li@FTNHdb61kgyfdDS_#)D9GsxruAQAgF=&gR$P4wqvc!zit_F}6#@Qh z6suRGP~Uhc$tCx2>US&E7j^C8gKcu)$ZE)L{8bE50tWlxAnYlSe_1V$`WOi&&gqsN z)MkAoPkuRBC@4{ca<90pl^U^v>V%?cW(PwpprzBBBd=Gd^~jJLLg}YCo-N zX>$xF8I~c%LosXpbHb$ipVOSd4s8n?AW1u|J zKNJ0*D&3aBq>)9rhAg56ZC-K!q=MK`EMRO!x82GwqgN0xT7KG87K|#^?wgU{h>u?5 zaNHhSJKZ`*R1+(D@#K_Agr;8!k_uJGUS;Azx6ttk;UuxWHiY#VhPGy~7~>=`i$R}M zfhMLRG3-m4xZq5lrwJs(5HZXOu_8@v`YvgvV+fOIF}&!cPigm4_2UKu-=-d*F~0f~ zg8pMv=z#>f4|i1RY}UZm8arC0tv;%eupn@zk;jx)X-#y^I zISJ{aO&naLmjnC^H4knoZ`OU;sHsNtrI4=&nI+_Cp4#m7#>);;cyZGR8fF1V5>aaK) zu*PlU>Lyb3X2iC^QBsy_?YyKh7`@vHU43$TJLkMuAV#W+`*Ra(fhn;l3K(YTg(hgwPHxavM>x#vsLgA(T4- zRlTFj5!0=7tVmbl4c@#!Z9H7vq%5Jyw{~#@4M!|=9{pLzjMHSRPA7$A%8}dr`<;YM zj?^B)6*PuUTd7Zq$5Ets_~w ziA{I8)>)(qen+{t7t!5AcP}Gk=go<$i?&vk%SEh|lMw%i6Rf$K9#wYZTUM4|y^EM= z5iYZC>h=fvsHwWQ$axVZ>KK|DT$u28;MN4%sY9FKx_9E1a2ihHW{otoQA9<#ldp48 zKO6#YdF4-U>vCmWmZ*=6a*{4VLw`Z%0wS_N?Vh!&tjP`qA)6BHN?3eGaF)Rsueu~P zrm(+L$i|Y^JVwM-+IRw&J!X6Et7X!YVHtBt4aX!2GZIXd6B}L9@kXKVjMQ@^sIm@9 z!g=h7L~O%O+;{1Ts8&X$g#GQLq(z$Ku_zO=J2OefUbXzzi_eGn)EG5cNo9;j!?2_( zwR{p`mXs)dnIvN+Zx_P=hj*1p3n~K_jD3>936VxMNvd(@qF1I(rId_L(ixmdIfF4K z8BE5E7|YH$R$zuu&YMxHQkREr=4XtU=mN<%B5k|n)ov4GoN%b|vHO;g@dnLO?o~la zrW=1#3JqZ2V1K94L<>3`3H`$oxG|O_P;Ib!bJE&Hr%IYgxs7;=X{wP<5>$xJE?(UF zm{{zw(o)5f#`!9ebfZQZ*|_oP_=H%}K=RZm zhf|W4DxNgXSCOPUYP4@EX?-fe2*$iVaq$JoMhSnkE-spav;rx`bb&-7lDJIndLEZdMaPAbR(VbqUuT+dGSfT-NwTMe28ezbN;-*8h$WjhE1IMw#Iqt!At!06 z;>oyK3rIzhZq&GLo_PGTX-3>})WoGTNmkf;V-mtyq=YaHX|kk~G$ZbKapKaMBu7|} zl9HmS1S{wad=j#mG%IdBMhWRGk|)d)Oj_to6VD)~E1)q8Ig1ull+I)nnqgjCNd_S% zNEL*yjgsSAJmgTaX*4UY2Z)JaQ}GG0WTmu&&?LZ%2!o)n;u`fmhtwqoR1dErjH+#vVi2%V);^9@c~`8%ey)DN1W53GO7J;q$2W zuwe?)V|Dhis1R@|K{q*IP}VEz$drfS1#7|V&UZ* zCl=K=4R+$3JS~B#U43@Hh3v4&=HNJM>1wV-rn{4UQIO5S3a|r}ByCzdsVXWK;!!DY z28qsUqbVtdXk(|Ou#uG~r0TCT*;ELlK)p)R(P@5&srrMX&CXj)Lb1f;+UbK1v=355 z4I(CO@G%8$^%Wg1E~dsM8BJ>owf_7-u8a1U*xyFdqKpKbTWE>9Ilb)f_3Fq6Zv)X} zqr`Fr^AC2?fluO4OBZQnLVsVC@cF0PhvcHWH z7L_8Qa?-NUdx|8XGo&eQv>q%r5G&zQ*iGSe`3*8fz|?+Mz#xqPZ3U&3Nv|d* z^y0AB`c#df>*DE`!>162R~>PpRcG^y?|gF`c`j~-+&+l?@;I`OFO8+#6kym`OZ#A_ z`Vfxknrtw1s-sx5+FJYYF;ll^HmZ#E29q>D-DrJ+3(?Cm$8!7^_AHnJ(8zslN^hy^ z?ZR{$wLSR(o#m)tTKJ1iwY9f(cF9JhAtiS4HC%Y3pV+nUIdN0%g? zUw_tG0C?M5PUpeaCJ2Hc34%8eOs=>~M;=briwzlazyY2n#wlwVYOAIw47kbpN22}Z z4UE50m_W_5%YnM-BNbCn>z7`TOs3z8LFI2&TsocY4V*FE;9!ylh&*ZfeMr&x3WN6tL35VjE*t!MC9y9i zCAG;$s;xHti_wWlv{s(bv~<3Qkw{@C*rx4)N@O2l2GR`1q@*DY^>nT!^LMa%B=^@s zklTlmNY%Q#f?x9@DOr9@p|BY#r z?xw_=#x4B(B8`5^douZYOuik%t1!C#Vs~@wB2B(+VjWi#dMvc+8yFZfbeZBh-9B(% z1<^~XS9_5myn~Tpc7Ww{FJZ)SkG>aK83$sQ@3^{Th6(zKk1ZM|wn^+pED=8J=&@muukRK>HKEAJ z6b;@QaFKXEy}<=1ar%C>p8pp#%H-_A;BZ3!H7Gem;vO$&JmHq5) z0#?z7n5&RFGJQ$RTCSbW@}@$pX5 zl+IPJo^TIvYABv=2ejCt8`%wX}f&29Is}=3k3T$-LsfWGqBK3+3{uOQ!Ted8=)!m(rdbIay<37fTaQw*k_N` zefrUIx#CV@-;1Z*7vvEh58h*=E?m>X(=T>wxo3zQ_Sy`Z@#fM6?%Q#6J0JfW8_;$l zIC|uT`tE86cPg|jWCt-*Fl5@%m+`}TMZa6-B~GRFkwr~v^(6T&pDTWur8EPeDka(q_>q0tQ^MO#~J%C9Js2vC2QtY#{l6_f`yaoCMwBK zGdgmkBR$-PzG0h9y{2iznf~_h@V_@d*z|4^D`T<6VOSqikX{mok z!Uhnj8!)`|VY&fhb^DFPWhhdXFsdF-+2v!MACb`E7L1e?5K<(QP}ha5moglLhM+-j zD6UIa){>Gq?SX>$o`|5oC%WV2)j8Zga?TrW!mU=`9QC@H=~Mkjtk>_GqhKM@)iqT^ zJN6{1d-{WC*DQ8!;_$E^qdlFMXRDEzrq$9t0f3|T8D=4H!Hxs0##hA4Am#dk?+=TI zLV(KQth(3|Lv1!kmq|YlOtEV}8dlh0>+}KZ^C4UE?mITjHjHF`)0&}W8ojpUH|q3e z`5?FF(^R=tmG6mG!HVH!i1MCjB{c<3r!IVDrFIHsam8cb!Ky`2!3$a;%N1CxqvE)m2^dCFw#2TZVgw4wJUc4}@(>Gs!<*gi;5yW|QsBS82)@Sjx(I@3yBm}NQOSLz$hw!B(_%Y`3zSUG zcAGLrNj7B_A6Rycr=0i|Swvhk&^E8arMsXR5n8uV&F; zVZ+b9;*GMFrEGCBCuaLmB#(T15qmSlDcD~6196@~857;4AQYg;HRTWyazlW3UT}FW zfyyq|r4(9kRUvoMXBXRT22}`)nqRZD;i&X%MD7gH1p<;Pv5ko0BpS3zpuwMQ!!Z;n zC5%&ITTvguX(U7#PXS@p+yf1u1v%WZPV+aA%K__;4IrhWzGC;Z-v(^vAQn}cfn^#J3ZT|HJ%!QEK#XhKXtV#g1dL6Y#9`Iru^2MfhNb`lsRAY(E0xEU#VSBu zrD@>KH+R1A67Ry)TE<6rIC~1bq5~#a5}E`FK65&}CK)8MfJff$e#>1()iiM;U{6bn)tp-OcUa zg{-cpc6%>I#=AATd0S*`_ayxuUPnWXC|I`q(}u0tb8IU+Fsqn2w}y{PHz`W?Bdt|R zijaE3juK5zMcL2QyF`o?&r;VX)#Xu2I(jR_$3+D?^rf`|t|8MAHj!tjnEYKv^mzr4ooRm$*!e_+IDF{<_)f+&h)QaTY_;J1f4woYK9eiX6 zHV0=|2aXp7LoFn?V;j>?9XWt(uoz##TZFrYcM`KSK_tRu4Ft?PZWU~E2pm6Xv1Uuh zE^tO!5iYTU5=@8fkVa_}UnP*+tA3E9*SyM5kSSsA@5*IJ7aa8+xaJirW^^3W;#;^D z2u|cja=Z@uPL$_C4KPt3hznu^Q8Y1H7UEWhf@BFZ{M6eR<$=IXyM)k}ve#FTo-G zBKI(!k<^erQZR!Uf4@bOcgw90!rF)vrqpA&SgHVto}S_>@ak|z`#k$vVwJ&+w8Gsx z$m445O6jTw>_dzOYS6Km!2=ggDt#s*2@=T@AnbQNDfMZhQts3;gEAbXYiL&o%l=l! zG|SH>T^ozl99CI(d_pFF_2&hCl9f@KhQxveZz<;JtFmRd9P~_5B?X`=M*w~FOsN!3 z)iQ)d$F2$8^Q&N0>M90XK~p>u!&j!RX$d1THs?L%Y6MmXoSOMp(825uNBM9oy*4WW zVAOy>Y{0<7iTPyaRMU5$pB~QFlZ8i1i1S;Nn8QJ+Q#dE7z&A9K;N~gsC($|yX(CwG zc1^5KRg;d?JX$V@4I@PhSEx)WBdJ~u55qI*-R*p0b%k9`JhFfTkdlXP7|JbBA=^AQ z7a-uaQ`?7Yd!Yd9#3a=?woGe4;T7m<`ZrRt;EQI?v;kc}~mrYIRIrOBXlRYm^YAeI)RPv+Su;Kd<#wS8LT$ z&%Kx~RcW0*a_i~28ZDTvp-Im*V63E;ePJ8`CZ<&Jsl;5KV7ZgRd(fJSsT!}Wmzr3e zswO>yuzc-_wbBnowTW+@TIu$rZA6_g>fVbT!C|CmiK?`zA!_J=R?_NoY!4eoM$GrA z-FtW1GKI~S8*jF)ye}qr1<5LDSpip2Tw*SL;Pnq`yhfJ|0E7HM6b`^d zq*Zf6(3;F}idwFmcm=GfR8hvvR@ORg)sdm0m>{RDwimc+GMKU-krU=+L#*9OrI1$@ zImOrc6Ff*xKKHU3j;Is9hX@TO>_?=8!B|>9!csdeb|e5v2ih7V1#2zlliw8EhFk2x z>82h`?oTHH-ak?7hK76rdy2pZuEb-*lO!fZ+AFFlID|W-kn`iKO-l^uGT;vAu%@Rb z4sbPTSWqpZFNZL(AC@M;`!bO?D08vUI})CbJ1?!v~pk| zXJz*EI8OWrHEC1F1>e5(GmEiy7sWKwa2yUnCc8~Kb1OrsItPHSafVu^a~r)j=RIH^ z_dLQd5?lUeYbTrj4c8{gGC(#zqK#D%x6R5Um#NN+kFe=}=C@x@-ep?u3fMf#KO`l*4Dr(yU3s;2BZz=D=FR`{!&6LH)8<1<{^1;j_O z6s6V&1V<=t!r*`~vWZ~nUm9_Csg`?3#k*0sW@^tj30|6m;7*GBk%bl2V|sAXtWhEh zT8hA>ixQVsBPd^b6@^!h^%x2-*mlKBB5tum`xA&Ct+9Zx@q4eb)qyXZ@=h%R_B24@ zp}#XH2HHNd&wPj0!ym(yc;bX!wd_HMxcsr(Zh84ik9#NHeu z+>wQ!*F-|=%qMs09ifZY>0scWpK*bOB{Q@i=hy5}&TUs?xgSs5d216N^OTz2SXlg#@PESXiF^5l@fxGfa`cuDh z!Hb?1y(8IRdVC6pw>4Rtm4QUjEwG4?s1`67ITayKm4I>BZzvXODAy(cC8FPgl%W7O zs0WPbrGWk9(Dr_f0QC@06H8d++mFGDZMVL|oxH*(VF(uGAHsHA`_k{fWa*?=J@HQkiq z>yle>mP~}*G_X!s*d`CgC%#@L6MVjmRp``)i`uHQjVy+kCMxtL)khOmjyb)kK~LtL z#JItA{X39B=(B;S(#Eu*R}5fnOfj4_QN`dk5R=SLUy7rI47f9{N5_W1KEghRw%7x{ zZDG1T?4hR_TN+Y5*Ehwe)1XEx)Z_tdJOOr4UG)=^5zVMAs|Anul z_hy?p2_9#69O!G973UE4V9HSJv1FK5lj(+dhO^8R%^H$Jr^_#^&$KBr-fV`DInwhM z=?36nEEeeL$&)5wIqPVm^5{L#aq7nz6LZAex zg9VLh65KF?YY%?v-B1W{CL#z79rCEiK_%2~19n|G0A6hK~_*c9Q`1453v=1ifk3xNs@nD`$)%on_i=(0jBDB-9&>jhiU!y8(^N}0H=LGmC0B-1D!bL8+Z?C)JL)V$I>p|ALBH|zezn>5 zrZ5C@`(+3jGDva-i5?)bZ4n**y6X{e`N2sFO^e~7I0XE{Ts9 z?x?jDrKm5`s9k~u#616(?G~5J)dQI5;&y}QA^8>01VH7OEe*Qx(sqJWcKONC*ZJ)6 z7DMbGkBj9dKTvKp7Z)*;RIz%%5AIEBA-g_aujzt{Hl(T@OIBj^AyHc`t+@Miy`Ckn zCvo#AAdxm*Kx!gh`(3A!hN{3W6WTTdtKKfepgj!~bbArllpWLOd{xFCD3bRgs&%vV zyg3Xr%hhy(29cK{tL1h|S<>^VU2?m-rYCk76jYh+MM4+KgHj)>SnLl(mP-)xmo&&l za!iH2ZFyRnqF>DKa9;|JnqG>urAjYRDxX#|y=e1q)d$P!vCl%L#+6V%8L!F@fD60D zer!QAt*3@4zYs|ixWX~l3weAGvHLE9UM}E7;e}k%YOi087otS@J5>A8+T0xg*9)y4 zBdOM_^;i$B`%ZMZM(ZU`d1zv8bIBf(`N7#2>5pRf%a>^TLaR@AZ$z`;>ZQ!2XXV1I zhld^Rm*aCrFYzBl`Zzg*fjAto#WJbKSt`K`INeKeM!cVEO}HO#L2kj?fMCutha%o@w@<%g z@Z{nt?n~o>{67fq_>Yqsm@y#UTvQ6k40qV$n$8r&3{SgD0OMebsc_X=en8K$E(6S$ zGmHsbJVit53%V1H>8n6+Hp;bP%gjFvzH##Z+2PF(r#_UUU`D;n$-nJRiQ(9{?WN{L zSU-QmsPgY6vNEk!pXYF_*vvrB&n+5P*jXx%%mSy(`aQ24L<)jj%y2;Lmpz=bW&Kr)*x4bICH3PG%-lpX*+V$U*JdP#N()p{*~O=JltOR~=(Cih0rySJ;!YT=zY5eURR zc-{$A%{{3Q5o-e6!V05fL(^#DK*lxq<^0^?;V0->nkiV58$|RQmRth-L(7Fl!w+lwB9@(z$PWVe% z&OV#m5=i4hL8pgFm3KLwulM6%SwWK`lG~4D12y~m%WVuHobD#lcf-WI#Y{69O2e}$ z(BagQ#|OAjpW$`c{U|(5yjaV8uRyY%DK8s;qmq+T={|)42Fd{fJ3T!HJ@0{-N@f3V zNsEfJUOXsT!P*NbH4lSSya2WtH6(eFjjN1(0{UG#H81<~`!1ng?U)|xNpQnBhrS+8 z%4{&UWqAUoH>VVV_ttpXm(u*Dh5s>O*+29#1{Vd67@@Iu-q z>;ElrTl2%ZBiK`w52F}^!`d{Gvvk84FQu-^_rE7^OBiETq1g7JyfCblMGA^9pj-L= z24Yp%zk&a^3AbfTQ-h)&qEKq)A%u#%Ap~P5#SBjgA{&ascToQpy4IRHW*c=P25n%4a!T& z+q(W6v(&PJ{sy|`{x=Y-lKc()zfHI;gHB~ zJ(_Lw5H6K0P6%^$MMN;TCz@sm+VCoJ+8nG`U$F-VuVoXoO_{R9iW^cT?C+%<;;E$4 zUBct2Oox03kvfd3`!L(m$2ny1A1xlns}|%k=NptU;_kuPo4m&nE|<+?F2kYv`IgVW53U^E; ze=vqeo@;;VP_02Pb2WhJDhPD{99wJ?dqoP>AyYFbD4bH}JgPcW#Je$Qmo+P>ltA5k zHVK&8^bkkl;nU0o)tb)PJiWuZpg%qgrv$B_@5At${E=XwzL?-U^u?lG~isfSxSw?<1SWw9RxL-4-F z97x>?LY9&^%qUtiK)w2}A_hbh^W)v@U;paP#&FH`fbo}?^*Y>PUE>`bx*zK}a_}yt z&O7jQ2*+!L=`mxx`5aeO;M|>WRHk64%h}W^!(5qufjG)%^KU%P_ZjvXv)Pi5ic$~w z1L|G;UhOt|s&?94&(?TVk{ztGw}TFzc{8*FkN<+tgo1vuIqXzAVc_idRv&sAj%i>* ziPsQ!o8xcj_*@52_s)a^e-Y!&gE7`A!5-v9_2cYu^<_551M|YA48A+KH=Y+(u2)wN ztFOvG-izxRxVF=$Y!KHSH>XxOTx3~U%W$;BN!7wD=JyBI{zL7l1-m|oldP5 zY%a!1b_j`&@mg@k^REI2O|izrfNm`GOS+!U?tVJY#x7UpZWS4Mn7!}fnYFP*jm7Ic zGR&U30M_Z;MtE-;^1xc#s9YcTCg3feMa7F|1pae3gS&2vAC8Ok5UgcY2qwB3fAQN? zUNTJFG?}&B*lkg?40M3%1wxNRlzmSNIa{bFrml*v)&qH+-q9zrEn!i^MTqe?>$$Ze zyRuF5xU8!}#8c_D#A7J-0J{c^y4vAN^n7xJM|tLW%@&KU2EybbpSvGHy1thl;T%t= z|MIaL{di($|CpOkDX=j9MJFoa>$ExDKXh4J8E$dN%wE#LCC0zdgNsn=MJm|J2OZ)i zc0^)lPhg9He-j=hB|N?fM_0#+2kbH;1sHR&zK36o|9VsoF%B2I=G&P|U@_G&B5CG9 z)PvpT*>^V>TLc+9S}cyn&&u3C3B6+1hMhSVD@@deDGgU%xLivmRw_xsTrNVYv8aiH zD`z8>kWtXqP!%+M$I~IRSqG0o7k3wTcN{yo{DbryFE+EU4|o(8Y9D?WuJE8R%5{#X zoAGlEvlsq;noaS*q#zHwwLaeA3LRpuu>G^<2aEr4g)vH1$qzx|fnKX%I|5Y$xWmu6TQQ0e2YF?q>OU2^EaR{C{?HaE%QvUPDJ?>WxM`C>;RQl6D1Dzk1A-wXP4g z#l8UrWPo3&r?K4>>!~NRtp$A$K)>fscahg<@s(1)#Nv0sZjRAkCIC|Zj(0xh z^jOmf8awsz#(8QbDNu!KQ%9YFllx=LC78ocH?a{ZV z;Hq-AeUIL|L2Y8Rn|3F=xlOP`wov_t53|W>O zWQXXOT_yP1W>YE5$RIV1xmE_;EZ6YQt~QydDO5xfhd}Xrqqf5Si{+J|nFK)H;nS}3 z4KQmwo6gfS<2_sqEvFp)4|!?LC+!0#=fWtV&jUps+eZdA{$@3MT@3!q(aW#TA zk1C+f_a}_Ce~q=gZ?b+wF=FWrWfa{G5*&Ld7`bAx3`GoH2cvB0#JmCn$6shGl7}_> z#genWQ|fOkRmn-eES`$Zas*RarbR!C51ThgA002JKE{EeEmZF^bWatdezRC@fE4}2 zLTdOiRL~qU?IT5mxNtVO?Fhl^Wsw=MCoa971uj#rF@x9K-9VVdk9qYK=X1E# zM|!`mZaJIN_tpGm0*pDIPcg8ixFX2dKUa_Q6D;SJ3897rjy+~pAr&BEy}4b;lV|@TFWBf4PIsB30ate&r~rLt}|N~JXdc~V?-%=Fo}YArRK|$vsY?r z@o=d-t;Hw=#>I0$Acn<=cLAXLe2gJkNqq;;u{-JiN!tb=q|3)Q_OS*$2lM8f`aI zy2HAh_1h%9zPqV#`OQ*s`6fQ~p??Q+EYYUW<+z}WuCm_n4LB|%7!OmA$Um!~3v?RL2Qe=TCq#&#bt?_r5MXq5Tjz`y~ z(awON)w>CoC!Fn}4K)I@(Q+dhA)5)Mt4BMGq^bw}>I7hF+bG&OL|Jb;31}xl`~WqJ zIY&dnd@^uU^8u#PlJN6YD9ElA+vqvn31>L2#%;aC`YN(D9T@dsp_&te89S~MwB1=j zCVDwjMXum2shm-d2hKi3fE>E~sLfq96uYiGeBmBl8Dj@0+PU*OuLyDiFka?;tTN0D zJxo<3Caha3O@a{*ud`!EN!AxcDT0j6!>)Z17H3LCk8i?#e~)1QB-Hr`87$ZckWuy| zL9pPXElF9@hPpDutU%Qq*XE4pC&8#R^r1r#ojU2?`S=NI4qf7dr&i$PcqYf9zt@`x zH^n4^hwN4Q=fI&f+>$^C;3*1T8OCf9VO*UUKkF%1ZPQ286gtWucx6uBr&xXd=|7A_ zEj-S*<_}C#<+WS`#c=FK(#MwcSGv6{2yvi9x!>nqg9jdX-vBS+Ipfyr2#!nP9kGN z>q_E~PI=}ced52!K0xmlFt);xKj&M~KY(frP@ExZ`D)bD5u&FJoF<6;#5Gw-Ytwvc zN!>XBX5I;j!;YNZcQ7;L9VXs`2?-v+Vq)kf9L+!HM$G^_1jqWo=ccJH;RkX2Y(9R` zsECzz$FEHbw(qx(3pY`=(%3-^M>8OO+;aDF>)v+p#TQC&C_p1qbW-Rptom`3hLu2W zew^&W-WJV2yVd7FRb<8oih8(u;=u<_{*;_-@tB;tz!Y(jSDKi#Fs3SCblZkr&O)ia|9FPU`cUFt{Ri(L&EEX*?adF^mR{MY-N1;)$h=bn6Wx`qP=??IPd1>H z0+1>@H(bj@pVOgSs(Ol=t$+m|CU{UoTdZh!0JfP;u&alb;=*7+(pcuSQ)j(k(?wU} zzBvX`47AiQT=1pS751SNfJ~+D+?x^z3R_2;=usKAy-VNLw^Fd|UH$^(^O6|l=1HZbMJ zR23%q!SQt*)3avMB8>RLq}F7Nt4)5E&FYTaafuxG(y*mcP2@t_nY^ek33(eXaoral z4m42t*4(BxQ$*1zv3ZEDQR5Eakq4YZO+GVsNRdq&aj*>ACx?13Lk*Ljhpb_6RDeM) zV6Y;=sscD!)96G3HUg8+3yvL$CURoVoRi-#xw<%Ba-*Fl1}%hmnuf!2Z5m5zr9Ryx z_vKDa_JGR?XJ}X?@*K|s{q${G9katz?b`c@G#|5;S``npXjg}K1?M~*;N;3JOHSbc z5LXLUPn1EenNBwzJrvc_Q&xK!fkB~6^vDYyp?|%cjGwB6DN6Un|s>%_}>_e&gaoV2LXdSj@0#FzoC9&62beu%*-xXfr=eo&O`xUZGZISe@tZ zwKJL_As|UoZ2<#OMGQ10_gl$7;)5Vdo$4@k&;&7&BGT0aYeFc~Qn*sc&qE&gBJF?(#JJ$L9Nbcn<#n)_HiVj>*V_#@^PS#D9qBYrIv-N>(S*Aol%@ul2nShBY^uRa^y_Gh>RUS4wJcK=9OWpN` zWI&*VAW?zAxpiI2NW+paA&YZX5q_W6tA9h|eq7-kyJp@oIm619)TlYLsXkgPl(W~v zG4{W?L&O18a(+F&*RLJer%8egTulw}NtzKog3-iX2nDXafl}C zGZ?ZLPSj*De!cQ?*m6Gt6v(TLnP;Rfm4k6iPX%5qvHrVVVc%6R=!H;!2Wzmp zDqz%l!3XrBCffV5E>LrEtn$!XI5y>1l-M+p1=}ya2_OAugN_ge9(9O&FLo*%!$gh` z8hsp6m3`{NYJuLGM0E%T$HQ}4POz@^Ez7r19Ns$p2%@X34Q2&PNNK_u?IpAfwT5P$ zYZjDrmEV;T&8|VZ)22y+zeAla^{!TUFks zRC{>tS0-6hS~3y}1gDRt>Qf9ito#LJ&GDslhGNg)?Fm{nMO7pdv>?|eD55NjX6vu(l3cAVU*QNy{8bZc5+!B|x(-7-=C6VW9mjEew`r#- zO~;HD@tqMsON%lna+;u%mRz_bJwb>|7~Vz@0?zT(edD)?b}}^yKST`%U<|t2x|~1| z5XdpK@#TCYE44VR#X&7qGIs>2CF~g~tcvhGf;H{4ecJ5YzU}nfz7O!y=xn@1;Bvgi z0`=dxQm$lJ7ofi2Am-U3K+enXu(oL$Aio0Jp$KtFH}&ON6^c0HjhqS9@`+GhM=8>e z_#@W&6n{=;YMTvt*{CnIw9%U1Ju5FW$pNJxg3pw<6JxoJlF5dnmLTJ(gjhBPLH|c3 zVjM;<#)s`Q;seSBJw1hwZC77cVzHOw*1A@Y+IT4-UImO)9+VDP4ddZ%p1^Uq)2Z#* z9J`X;2W)zEQNUC>Jwy65y|dpj&cC!EzK84*WGCAUox*dpy<`jd_rvlbSWZR#{cgQ_ zq{4G;OjRi(&L^j(qf;WGrr?>^&?Hy}K(&CMHSYfw@whSq$#aC2E?jMR74&Jm#0hfAo&?UARu?pb#FmmrS1IKQgwMA!vqR{G z_&!)*${PV_-^chKt@%tauDt3ep+(w6uuOBMEgukoCAF6gTQHR=w>E|_hN)vp$*tgN>{n8kUDJvjS|vU= za617A&v<+2rpP$sOcdT>vjXGVGibxHr_q^E=LM$gKnG_*_dIY7>N=XpjoRN z8>oY$-d41Bpc7y$RXnPDfY{(IU5mr^=hqwni4quN+Y$dxlUJW-%;tP^ix@8Ur8THHv85DcNPU|Sr`@8>Kt&0UR_2SnY!Np6El-Z=!6*0ZbiB}_)QJ9RO1)6GK}#>{+KhGpSg0^IQD zpF50lB^}seWY^(3;HEj3!tZnorvNE&Pc`YsRbs%gU`YYibW%59gd^(Bh?9V)-UdP z+i46dP8uZE#@Y?e)d>!9fg=>UoA?{hEKALH)QF>=J3P^Z0o>xOYL)=wppko?+}p_s zK3sLn$R0{Su}Xr7li8Ll4$PBg>sWf6qHoxarN-tIszgVpniB|Bk}ghuRECfz-RZD; z$`X*vT~$db0OU?7aOIX|ktJm>Xs&){H~|l0)-?W+X&G45Fvg3MJfO6oliAkGyg7Kr35`lUv+BV~wXAdxS-rU1&&jN~FT-Bz zy1<$b&=MzQhhX%7{B&?yRIf8&UBm+i&yaWLBYpv~D;KKZXzFMPPsn%S5;KhmaP7mM z_YHsA7)s|r@Q8!Gp0p&2MG`p9%NA8#+*peay1@-TR5HOC1U>o=mr`+&rMt7=Wa1Kl z4x2^EZX)U(jgcy@8;5sR>pv-|iqo6dH=c zvcnPj)bMO8I#O>b4o$h>5uA8!iCy(Lu$IrMsg$m|s1-`s`S_c+FAQjWHPyn1haU4V zznyQ7wzhmJ!;JUYHfMi0wuDz8DySZin5cExc3do>0WpnnO;*8(=WO{jT+>(0o|Is3 z)=^?&v6hHewrCAlg~YX|0kYPYO&_eiIEyNeV%h{n|8<|G)>? z+^l`g3=;LW?YyAMvTEQiX~#mF2(3|31x%lVN>MScRrMWOpbBt)RRKbw3mE-Z0qyu< zp7W?p4$hryf5Z0Igz{~(;NCPw29S1=F4oX@{+!XpFrhi&add*cb%DK|k8`BuUBf!N!5@7Z47~1<5e@ZEmD`Ikb$9QYTH^lRqVmz?0AY*D0f3~gF>~; z?Fe)LXdrVgB_KyUZq{N$j$UPFd`9*Gb*li5Vz_V;A_hq{^3lm@p=D}jM0v+@^jIS}w_9D*VCI#`Da4B*%#R2#dJ(aU!&148Z z+)PRm2(}4N7P|=yhD$65?ZGU-8Wga}&z$gFz)n<)C2N-3yuw;C|;1OGIwk63S#FG`|a_W~- zGM_kN)AxM)+A^QtV#Lws4Lab@>Fbrn6Zq<<1bzKBeZI*EZ*#JrGQz9Z2EIyk`Q>!= zX>|GNbouFY`RR1|>2&!Sbl+k98rb>{90kN@{yHiPvb}SLw|8DPoY}$c0&j`D?gG^k z>pytXFLL-`6?SE@#!nY)>GvlEQ6h$rl0PU3e~_L(2v~k%>UC#7Kilt5`ayC+k(@tB z&L1S_4+3Hw|9__K8g7*q(+VX*3UYJ8~}}$(>=*3A>Zwpc`6FS&%ZsN zw7HZfTf7BYOx&?c&inA*DJie$m~`242uHER({Z21`6 z_1Vd+>|ula)@slynQ$HkZnopcCpi(duOZxwrx~eRhuL&j^z9r262|+>)I6#fsAC>) z0PGqx#b7Dl&fHIMb~b&&8wF_!?}lKRN+O;?CE;PBwZ;w|jQuiP4Dm%ox*|gLFMYn_ z3QvcCj>1wRFBm0VVr8PzUEIPrU)~7$5<&uTr_5H!E-Z3T03G|;y7id;a|1HgY#J+&s-I_1V z4KxdiVHdq<4de`6l+18xCpm{hkFm7nH%u8ebbrhivSt(s28|CAHJ6lxz2k9S>=u{+ zrXjv8RY9sHQ=%0V5@oC2RA*jE=)zQXQ%zfxlTRlKsvmE|`N4RHVyzpcX zRmUf3QBnSF6$SrxSoA^)Xs&IAfZEUo0M?b*aBYCB6SsfE;V+HPjD4GK6#*;hAzKeU z)QSR;bYqhcSju_D?rqWzUcu zA7f3KR?O~BboVsH)L#}uC%j7a{Di@ya&VN35fe>RqK?A#xLNE`(WC)4o~$oenosTx z;%o8>5iD`@O1I*XXVK4KRk5)S7uMpOpO&%?3>GIH#$VA9v(68To(gMjb_rqP+qwoJ z#+*r$jo${5lLz}Gb&4|Pv=Yba+vz5ni4BRBoU(*CDL}B*bGpM6K}OlWY>J8?qmGw6 zl^(NCVm9H<9-Q`I91~H+J)svkUIZat7y%fVV$B*mjt8dV3k0NBbduP!Afq6$GTv&aEF~K8A`dWa<#2w zvW+Y5c?qW?2Q;`^nX2uA6U3z@%VK5=I&du*r5lL1U_|{gYfuR`q2oGF1Ua; zhYz1P)5OujQ0ibNQT5CYjjB`JlQ&^6e>#`{%eOa;U|O~%ng&`i-< zHg0jqLauwtQ!{wPpP|P6EcdC1vE8vcK4leLB|zlc&+}-$&`T*7+&r7u^<8rJ9>#J1 zrA)vcW*FmlP6u#=H5C7H>geG^DPN*`?~UC(uHdo;CKfbk;^ksaO7MURrZUs7s4rQ! zZP>w*o!e1@vvBa?UZp22BuOn|_6j7J6DEWbx#~RFi9o6@)~eKLdKxUHtHJkPr#_Y7 z0>#@(xx{><2gd?2H?xnjZQ6tYQYKeS6$e&i5i4GwW114+aNNR(caE76cirLC8P1n+ zBTomReW(?i7k;Fxzrfy;Buxeqh*&ZGu(spqj=GHMvk~}l{0$d69!KyByv1@4ClwN+ z=!uOOwP0q_6yvIheVKQK^)i-1EYAl$IQ+9-54-o1M_$3uF-4cWWdjPGUi zEoK$MILEq7S5#CAXke^`P#x*fMPCw>ph#X5^-8v$W`Q(H;^Y|;m|y&a9eNLv(idqj zAD%bV`Dl=P{aRedCH>Tl^Tou~*Eu~j=o^a-*=VYyzhjBFqUrRB&rywl3F%s1fh^LG zlgemoI-9t9zK~nCpHO*SdDa{E@BMJ6Ys2LH9B=Z?0)c>- z<$ZdX&G4AFY$dFWY1-L~y81ePGIyvZKM+2cXkXj~EYCTsq*dN+nv&)qPwcCrz%eQ< z0t-m-`N&dwe@vx@DW?02(2SjCBwTJKO$=jv%!^U$UFvWYLNljb-VeENroU zHGv-ztjHr6Zlk1f@g{9awj?<~t{|1H@SMyEE|>C&$6y;ir3XT$@hU{j3rbAy@vGhB zp=|9`(CaehkM2(_XMqYw+e^3|M6KFLLT5uR+HlwTEq%_HQ7VGdcYL@@Tlf!>h^6;@ zXh4D0?fen_pLWHj_VsLw?XVkQfeWmsfeP8^eu)iu|hz;z`;aZ>BOI5-C0Qhf$M0vmxdISGgmUg5PwHCQC<;g1g2b@_*bFuVnFcXt70X@NMY7x@TS zV<$r-530Q5rJaZ#;{&r;JKFWYk49v?{E|LOlrIP*lvi&8=hd4MNg=~J-Q0#3+}mYJ zd%AfH=p&)V0igxTCQvpdiUNs)Uw#P=e)%QQK}i%ctedBaIr!m6!tp>tu^}1IS&70x zLcxHF!!hM|eRl0>))Flbmc`Q8=JV*to9-U{)P9o>etZ z1m0Mg?eqAXk;gOHIQgBFaYp6xzs54rf5}9CdE+Swk27}USbr8pzL`u=uMvHP?ShGN zMgv<3L5O7%P(-a{=Nt3aa0y+vabK_3Fs#7cmW=w7ZH|h>0$Zh{h(iBE@Le4YCYZ}x ztBlcqVK68xRxKk^04=b_)e+V_=Hh?2Q)Ub-^GTqc&nN5E<@E0DtN#<8!vD0Q6kvy( zZ(yh`yu-=ZUMxPGSmxJ@Xo1mggH^59%y^l<;bmc*LPt9+tA2Ctc)kFCXLd#Z6gzcu zOZVC&uz+|g{|eonDgTBIv?6$gNAGaOEO@y2oIf>}z&7MP){H90O$oXDY=yhoz}Nt9 zEjb30;{hcPy`?&ty_-)=_Ae%DYchNs2!&Osk5EUtj(B1=*WIR6kWp3EhKF7T)h+84 zmvFqsBp#43{ZcL{2q`eipYQlNd-ckG3~BZXLPju*EcEk>|DYc*3_;=#x`_P%oJ5Hq zE=H-v*csk*`Y(+UUq2G|v;GB~I#yt4D@3}ciZ8`{VFY#S>-YfJO-QZgtZP~i^=?@! zh*w=5e%*xM(7!juKgpSNGyjP{bz~`K*Tb(dHF1S}x`8t0KXK?EKX!#kLP(1c1T+h0 zA(*MxNj%DK7hTRe7nO!&O7i4gFf<4?8oHvXphC<;tC&i@zB{GD#Sd=1@;`h;+)*2w z?zWzKoz-U6Z{Aff7I-~#tmu5efQ60?BR}#36WJIs`~%=k(K)J~g($GW0|53s_OsN- z@ZtT-_KadXmT!;J!LM&AP>I2NrSH`?k)9GJuT$L>i*rOz)Pq~RO%t7@1u*l$*^sY% zcw$FeKVT?6eRcfE;Rxl!= z_4uSEW?mRs(qgWG7KkvwhLLm+Gl7Zffmof%HBe5mCzc7zIc;h$=X@}Zi8SBzhig*- zYT(}HrWez;sjDh#=oEAA#NVFsG*#%qR8JvLT=*6?WvC{KAbH4^XrskFwg9#dwwtmq zj_I%!H2J)_Uh#}VBS!@=;nsE$%*L?Ax5X@YQ61mY2M`=&4MjtURU2tpp=ouj-K?>T zlHfp@oSHZmaNi9uIHXRtQgUp7Q`UWW)(fzWV#z+w%(*6;|6siQ%r|DLW^klU#j6qCbOMd92oLl+{sXmFJM$n@j^ZCYhTK0Us{Hl9W3|@yipp{;*#~kwzX+V zFHXZp zvM9Y#hMKe~EKcN?VS4AU+c6ca$H2H~zlTo>^Nu2N&p7+%vjPkho>V@WtCdXLIH+$@ScnHy5xo7D0*B-9A3j4u19^oC>6Y1%wOm>K; zfdV!x_SqApVohCk@_CT0f$p4HN?&^`lHFAmqTbxu{{)2B4r^kJAu!Ovp~TVd^Ajdv zb&z7BihEUTQwZ?71-xkinr*@Uq)K0J!O24A;ze7$BcHD~A&x85oXUjNOy(Fxc}L+>CG6wW@hspK_C#4MRR^>ze1qvT7BvoPf(}iIao;XUU}rZc=_V-*-f_$g zSEH~{geEe(WtP)Avr1^6H_LH(Pp>qe$D9T7gsX`@q0lS=rVY4AVlxZ_U z#6H}(QUPcD!^#y@cM8Vt!Rv?Bd$9Bsr?DMh|KNo+8nNJ@6Bmy@(~?B#Q;9!~*K}ut zGEQ(pVZQWuLn()NO=KgB&{Pla&?<|dXM5e+_O{|*UR-h6!Ry~zQ|dzy97@ps)fpMs zLPgyyr{Ev2#($v=>NG5^HGeu8x;f(&fHMTQ1D$H*H+S7Qvm?Ezq&P2#u#L6W!2<>n zm~A5P5mmE=N=X2`(;RVn06hZC+o*vN$|L;qunv-~x~{QGnmMz~q5RdR@USG7jtt2B z40jzlxw?Wo1-1r8`Mg-Df%}rzSlIo5k6qXrpjn=bhv&)A%DVRfDZxz7;y z9sGmB*E#qtE`linmnm@Bst3n7L^JIIn`ac--p-V{h2vQ>V~?*rr?Q^kCq1ZPvXdvDa~4^2V`z2H!J*Thf&uy zKmC*Z7f{C=J;bVusVqdy92%$>q#cIlR8HPA^q(HXEK6BbhSg5-QPf$c&0@NA6t^<{ zlg#@ko|w_dn(MfqDm%g@Rpx=K+>%zE%cKBfacU_h)-xOIQJgAlPLN>C2rB*#vZ_+I z2`ezEu?FdO@d>I;cKpQc0bv`^;N{XdPZ$GfTM$!VaMeIKe!^;^fnrKVGq(at2KrF( zN_S>`0(whDi;i@EB8NyVhv3zYixcAY3UGk!oQExxyUoy1fCiF-S6g>|?Gr0k0z zvoC^PSJd5d5UH@8(5G-jwwVN6S)_oK&&gq@tgfK8)w+V0{HdH$#b5*4$;F4_`$cs~ zPM83mzTb*}432y0TyNWo@8Wn4ztAk$9-qgYaVb zyrGQ`3Kz{TyaPcyir#yrUfc`SzIENvMtDPGTUSo#NErJC?Cy&Y!6BEC)#jw_;;+v>au}q zp71b+7tD0`z(UB)8;+GbkVQiX_m@b7qKl<6w2EDU_@f8;vj_Q$i|Zmq8Tzw|`%7t~ z`0>j;-S+%^3~v`uC~zwW_e4d+^?C=NGYt?KnH8<4Zo@S-N2)1}@Hz?XFn@>JbH0x5 z#jSx};u?rT*ML7-0E%8?Sm`fm^mqhgo|*3_eZ|W49s2N-P*vuHg(Q*U(9PWwZ zc*UTO%d)2BFW-BEUm9R(6>Ny>SQBH%^NTKm82nC?A>|GCc>Ki@$?AJFh4^7{Nrm!d zmbR>c){9{ZTYFpM!;;HhCE<7oHRd6*iLs=NOCiQJ4q|OW+XE7_aUE-zJs>gVvDD)I zlTht^DFas3+-B&ZWqu>!PG_%yP%!A|BWE8Nf4%iwPg|fH!14 z@H1QTd=L9s3NdF49n?^|^Ihzx#~p=ysNnQ*8__)^m0K&eW%0Oiq;wkSErLCjHik_D za7n}@GPTm4*a3!1B3;Gj9vTDum_t-gY%=_4l?dsqB3<-67ArcacXq@oZ4Ns+>lz*2 zkv5zhr|+i+C`c=W>f0u^n3J*#!a@e_u;~X~6n9 zAa$t4bu8F9V5MILm@kbN)0LRm3oIO2&)_qMf@xzuY_oA> zk4X#N`kNq3WhP$A)*Q}>v7cVT(VL2dm&9OdfU#-6+`xG+DXL5rSuAJW8zeY{cR5U! z;x0WUk251XBQR}ThIM(}JRl@)3UY&4m+47gSLDkKDnJ!rac(xZS|sv5wK0UTJ@2U& zxf44FVZ^=%uf+Kd^?c=+l}#h>bG$q@hf^411xo8qV8|x3=KzaKa#&bmrds81l=@Vv z6eYP0-;}~0&NR2y6CKK0M&^8iD-~904v`7u%iD1w1Uh3N))3s7p3I-P@hVyv#yrHh z5xhHNuFvHD=|4lnG8;9KT;XmnGRFO^kU^KG3=j?nch3TsYoaJNL}3oUdosyqrwY8& zWsOGmeM2A#kQ&J}O3n}}Mq6(gtB0X#WpCD8M3tFBjDz-?Bmko;05QT|A`z$n(iDoS zz&$F5Qy9~!bybqM%3%RqJH>J10;_&_WtxnA#u8R%OEay#94{WP;77Hn3HX42Q&9jM{(%TODT726_c+R(%awkt`hvCQhK0TgIDgnDfD8iq0w~ z*o%_J{6QeZTCN{4TqOV4ra&+5P-j_VY`Q+O6K@FbN&a=dEY*hEj&mVnK*2Pb*==qu zo<#`#EeR(8eQCG&e7cN?LMAO*BDvl@Ves6GLlWpCd*c(0VWby$u&8~>65T=GMw=8r zOd$A8m0?xEVa#-EN{`2D63`2q0SODaG*FHhSU1AL?Y^K$s1K}Vjul}MEf7;UkxSVI za|uxKfveK?%&{l*jQ4=q=EhT0PQiCA1s35<@4+tW-Ox=cF@o5K^JGeud8c9)a@g|I z%W^1Ds*EfexS+)?A(o=zEAf;VAd04#DS<+a_XV>=hFW${Si_ag)~(X9dVXsr-)la?X+h4pyPUs_@k9{n4_Uzf7IudX=^7sRFrjo)H)y-? zEC(B5x|HFDK?7{oo%^Cs`0i7X3pwNKO&d;c>TFs-WHHqYKB+`UgBXtK(A&1^x@!!4 z*aF6c=gB|hC+gbv1v)MNVH!VsOv?xcID6s+RDMTx*WGX3?-~@a^TvC(`o?*Ozou(= zs+8YxPZawL+7wDl@ETZ$INhhk30F9qv3XR%tYZRqYDcN!9O{B44_9#D);hZF0`tO(z1I3h@x zBwmrE0*K%%{g498k>sK`a!!LO4(M-+vcJRO)-IvWLIKQRa63{R& zviQJI01vnhu`hsdF5@8k0tl{W9b{j2QcKv;3a@`*chtNv8x6T+WE>=e#%+w{FTAQO z`K_De{Ln@LezD5Z(|}?uy#XrjQiyS{eo8^{nL>wb z>mnO>Y>}c(P*M;&90v5}wx4g-vQR92LWn9zfT)KAP-UbLYa|6&Ef#1S(FFbY@d-Tw z!wi)0_SqKZ7Nd&v9)!}PSu#8YRA)s5THCNxUquAk+#yk~j-zp-T_H+`tBB0w;VN z-(YNsk!rgNSa;luGKeNC;lSj^A8E(&%F|-}oPwA<`u*Ev)u?pwER6zm2&|7w>|5}0 zNe{T0!9RE5CR$&ZVRCQj>FLwgue9^JS>uQv`_b6Rz30q({55jF!V5ExrjHquT>f6| zHc#`(oU`C#zSf1A9Fw5**hrr7(5mBv{ zkj`Iu#yeQ+8Kzk9c*a+aK(`yiMGK^J+}(DQZra^-_uWG`@BZC=#;Zj*4Y37OX5x1C zFvfd~u=ly=jKiO>#(SdhIjQF&KOx!b>qh5m9abh*8JITt2gC}S>er+09Di`n`4BYd z{LL(dOi4@cus)z<@gEx1b!li(4LgX+>QN7Is?3F66CLZ%r7jcU3=aLJoH96cR;jHj zJync-m2N6Wy@ExfTx*_M=VUEa=$$;qWnGgBYc%bhZHcwZd*29~7rJD6cdLcYj7OsS7ab2FN!ce4MGW4*ti|1hz_B=&lRbASIBn?;yBGTf7D#nu3c#)Ba@!mw}T7!_@qe!%HA3#eXuytZA=Gn^L1 zw{6i}+#zhcCX8Tp@fS-2!Do!bS8|SyIvp>3qal(16Nf9)Q3ivjKQ{9 zBtT|@bkBr${7(5<0G3^N@e9jEpNL~>J%;7U^4_g44C@jrkA#BWSXgtY7GN2;eXwkq zATc@w4^|cDyebixH5k2+ZXa;g%b&z=gkW{(ygEcpjajzMb{uFN*HOse6C5z(on-w_ zm3%bDogY@2(kA8yz`;ABoO4S8$^>;&{=-*dTHjUeF;_q@?#K#p?W;_YAi1cC*GnuY zR@g}*yGWdv9fAk97Uv8{A_H147EMZ~V|Gu1pvUSr@s_xFkL?KK!O1X&k~tU=d@$0v zD3TE>HuM1|gw{O}x#M@r-U7Yagf^ffH+C@p1QGkfQMV!?OZrWuBG@B_OJFP5u#lL4 zf|z~rDH}$@dy{?>u?Y5veZaK9(uiOY1koJY;Njjt#9N-}J7rLUs!TX9(Avtaz*Wnr|nTOmMC|seT5U8 zy2?p2glSH8#wpA3eV`cHC7PMEP25o9IvKkiY z6TB<7f}=6B3w=MkUBj6e<@x>m-CA)bX z;h}i6WX{6L8|g&$S0m})YZDN>K6(df~y_x-I z%;@+?@X@;u_Iq|_zvmABaAM($k^O$Wvfmqz|K#z1S^9&~x#ABFEdJo=+QKIu|K8!J z=2hyz^Evq7@C$QbbnwymIJk27wWt4dY4ra5Xup41{Nc!dkK9|;d;dK%{KF4saD8~; z;g5$(e|Y2J-;XW)*Khhg`qk1O{pMj$cjWmUpIEx%kH**Wwefv?V|=~))%bb$o8g@t z`0ufm>*T%Fi_+Xr8_;c{7=t} z{^cJ05v`>)eE_jWx$GWhw4$>F)z$N9O@KmTC) zoqIc-f4orroqKzn|8Du7e{%dktliFCj?P_vKX`s0TwXt%8l4XpmhQu)(fQzVaB*(o z%aOJJ<+0JdJTd&s_tw6bUhc~?kN?x!?Vlq{|M9}$A6?!*-Wa`)pRB&G9Pi5e)zzV; zyE-yDSI3s$)rr;XmFIiq{rT#`+VRTk{p#BB{xtrs{<8YLesB3+|7!Tx=T@)R-aoIs zey=~8oLoDdYj6MSzbxI&=)LOy=ESZ$+<3We{=6}`~|9)d!{6#8$p+ipvOkg zVI#CZbr85&3?^3{Tuo-`!f46`|xjQKlWYr zTlQJ@SN2u*Q}$8z&olJRGvKgKvOlsfvLCV!vj4H~vEQ-JvA?meoui+zkFkHTZ?Rvo zPq9C-FR>r753&ES@37yn&#=F+uUw*^u#d2Ruy3$muurf*urIJ5un$oFDf^Ur$~@(r zvQ9a_f{atXDch85$~5JfvP?Oq3{!q7yOdkXEajE5dIK0`l=4a0q+C)aDUX!JKOl#H zKnDMW{89EOca%B1=5dWjPkAm2k;f_Z_~~Ij@e6j(nD}tN6dutYIbred=@>)0p!l*S zp@$zZ(nkVKojtJ8vcv-%(eYS8ofUzx=b^r5TO0&m>eWB@iBm93n-0C`sTm$IJ)9TI z4!~^9SG5HefXc{m(wrrT6jOi8#-@l$gM<4O<~h?|F{Y@;EmsE2h|k7w$&&(FGcZQx z4Jk??#aW><*Vz1133CBTZfi~>r1`Q3oMjKGo>Fb@Ekml}#6Lg8U*40UyUUv`|4Smcv1rG)^n3{@&t?NcjGI#$ z^)n|WxHr^C4SnN*U5p9;y#`ayo-Gpl^&b zil+@Q(domqLn;ya0Goj?`LN5bGf&{V@f0?oIQl3&j4QK5)<~qF=b~`pqor14X7v!- zJ}#vDE;x)!e5YI8Hn3cKM34p??A*5VBFvsHW+nZ(dYn@PRbF@~dBFYw{jkGSs17B> zli3#LMA%Bhh`0K)6x$7Ic4mcr^Uqa5N$uaGgJ}P2dk@ zj8}GJ=xn@Q8s6;5h@Qjt%ZI zg7JU3;UWliHN*BiEP$n{v6DN|JcyE)C$Ruy?#H=Sz?I1nukKrRPxgDg!sU~x+S>pl zh(B)|vcV1Ve!RHL2^qTa#Qg3NAaIz-^@?^DndtTEVp@$VrQZX|s>c5os&#?PP&ETJ zHEmCS!7YllAbeWTO$v#?Hbvf2#;^dz2ef1P8gKz2GMv<`XR9!aWReQfBp!@Aq0u(n zyTIs!rjusiPf8`UAv6?an$ZSGnykx<118IGQijWg(3$QzYhRqoYo<$*dCc3~Rzxcy zHw1M>H-urmZCh49j7e##gG$3$8|P+aq*e4ET~v5gJ2J)}D#B3Fi$smcX%e2PjAtDi7^poP34kBCSF1Ph(1Je`09rryffO$=+)~c{I&`I z*o1#-!avvH*ROvJ`VfIf+}DRQ(m9HQ72H@4>)Q1N2|cyo#Eofbn4D&O8%4h>eI-!t z&oNb{*$yujSjr|Xj8=gi9efK5%W?O*{Zw!?PJE!ba6cHe(apZi@c>Tpx+g9t z)EzME!Rm?&+{F38<5N_n=}dZ$sv&SCRRichs)n4*8vv>N@v%laovbndrHVjq!gyU8 zR%p{+`wm1-apiiSko2kJW_%Kkp^C0x)+S}M6-`xDT2=O{jCEDERZ>-Jze;uazc1kM zNF1-L=L-j#BMe1Q^b%T1Xk}xfeR0F-Tp))N7Q$_fqN#=C5%yY1g1fKW9qAryw`j_K zgMWX*j|w`%raM_(uRdViTJ%&5N%EjjUWz~iMEzu`ts$u18o(;9A!xZ8U`>=^5Yh+? z3h7KvNJ=GC2x&yZfsm$Dm@}zLtTd*DZY91hsu>UW4;Q#-hjr9^rJZJ#-2=2ftdA7=+ z?8_>{viB+}b`8q5$ERgZ8D_V!aM4vN05Q0fSwF2X>&B=hMQn5Y7D`;sC6rD2h{=wa zIpDg@7OnnSvQy>U&s8Kn+0hDndYUuY7=iIRjTfk1G(~6Afa7{>!EGs7>9$}KY!3ZX zGY^K7*)bkOWH0AHX8m1Xf4)7ueSNt8q4ST|`gnV|eyhnH)*p}y>?q+mnQjDASBzj- z@Xnw_MpN$d!XMEgoZfBU*w5SU?7#4JgpK6CP<8lzI6}wQ%obfpcb8!GiYKYzg5GbB zVzT42vVoWZ&=b>xm{k>C+j&@h723_IiKgTLM?$y{$IsAQoDlkygsh}IHAxBPP*S|o zLGpo6K#YRjsVp!c_qt|DP-N!*hl~75tb!&vq@5Zz>NtxkK2Ol2P}^~Fn6Xpbet>&= zVg7q{%V=9=OGwXW)A?BUQAjk0DBlXnggeD4#JFOzB08!}cCbt^X)G zhZu)#P83EF{z>S2yvlnC%Ubuxm_m$$;}-eoVOHfgtdd}{7gJ6+67UeySh4AbAR#oM z%vH`i)5x`xYbNK{kSdClwveKsdjOUq4hq;nHXZIme5D_q0XE$@MWLp3(P1g++#13T zKYMal9V=L7u_ww>y*WbX*xg~*Y=`vsL#baxIo*6GdM{gLdq87|(RW)S<`_ck4mS z)>V)T)1sc(0!Zf{WweQfuhA@!`k5}5relE|B9{;`oY-EkpCJH7HpeHL1wE4<@^}WX zh!)Y!>)=X?0=yV9b9TgS{-jPbXtPAFfkZo);UX!Rn@=@%hJtLtZMY_M!gb*4Q3Aw4 zz+!nt-A4rjaKM`LzEcg>6?q(La!qPi)LDF9q+l;O+`(o0Bb;HOBTIoNRR-d7HyW=U`dZPzU9z0D3C}j>>`Wz+|dWgq0?0Y+muw&Zs1r&bhIGeN*glFCYFk5{nL&I4;>DO4a&m9hVa6g+q2ieRx zN!2I(Cyai;InQeJ%KlpbH+}$mWB;*xAbVW^G^=5SBKEEQ&#`aISiGeNoF8-Sk7evn ziv6hs{hvTT>;EtOe;`&4#Mi+q3y7}+@pYj558fUxaT^?a4odQ46AI1`MEyY24@CV? z1P?|1(5N4Z`k|;Fz9}gkDzC#TuS1pau*&gJrFppas63HqQ4+4h~^kMGBy=X}-=E{!0$e5`XQrb;@L zsD@SOzl}fdUZ)CB78R(6+!UC|2~;7MHHBHq6wXZ+vzikt(x0o{tC|Bq8lC`2xujH0 zbpj_rDozmbQ!j%ANvQJ;WF8MSLFV<}0}Fm`daG8q^QgFBsT>nRYfQohQOa-hN_`Sa)W`RaB4{4sxKgx4A2btd-ahlKkk)BVv9c-m;rq+osm zUHk8DUP%OMskO!f!M01LIr>ma1}0;1f0MnPN>B6=2uZv7vZN$JXyL z>COkdogUOU8$ZuvwQE6`PQdOD$0wQxxs`4e5Fcgi$zrwHJXbi(NZ<;3&O`JHa)lMl zvWCna=av!{RWlrD+YeXpJdD$dhu$5~HB|+&IgJ3ec@E)0OdHHk*k6U|OLu+s0MF(E zVgIW;4_aZQkS#DQXfypH-T)=a5%y^c1P0q^E>VmgV|{^h zg%#bx*F12^fDs3`31Lc$RTm3v+hF*zwIf>Q67ql|xcTWAwk$X_=1!DtD3-BWdm{;1W)h<{OMSO3y?arQ#)DxyA#V z;1&JJ6I-CjEF#LoVLC-#nul4+ka1(RUZe~z*Q~DbBDMy2Eug4~gXgF;Bf$IlUJVh^ zZ>xxb|FWXiXwT_Mxl5C3(E=r=v(`(XW@9a}7v$|{LW+9Uu9AtlRhP@W1sY_`pgfu# zkzzsjB^&k;eEB=KZu9|{08`kA0S-$%2rWL&sfKlcC$Dq|IHJII2s9K}`cigC^;>ba z(G&NZ)g63#O?Y~5HIG5ybbk~KLevMPks%x0Gq?S+-?6p9Ga-Y}k{R=QS{`_Nv18V$ z>J(JsIHDSTfi9xP_xK0C&bU4L=3I#S{_z|h)bIk% z9b7l4GoT(dr!GLurU;6oi?vuW_B#9aO~hjSVx{R}H0iCqHL+}EBr1P4O zR4&@^bo3HTY14a(Eo?$hHJc-zN0g^Pu_u@iCTBDtl|ul=17jI~cmPe3o(w>U_ZF6}YP1X6wayPSI{_ z^+a`t(WQO|_+#P54u5Z@V^Bt-{wBy?cwDK?+s;9`CguR&v*@GA`68d*flF1c;#ioE z$FUmH*oiFkT#0#dLdh9Uwo78?h!?828(rq5@6+U+lE>3T2pX+%#8iHJGZ9_dh(w>| zhT61vo-fg>(R&Ko6XPRZRRkq&{!W*wzorb$9Ki~n9Rajz7qkol%PW^5APpdUYfqWl zk-`l>%6{?s-7*cP8RL?gjgK_kw9;QX-F?zP87CJ4+g)6{{7>~+K6D{d} z&?aA_q-G4Nj7@A14;qMYjK%x-1x^bQj#EF?iE3u;t;qLrzNJq?fSQc_^ca>; zoBo8ul%J?{foJXWEK@vZE!SC!SSLqYiu#ir>1n3ps=_kFV>DU@?N6kEX4$P=Q!*!z7pm%{op>g$}UGu!Ti9lgAUCtZQs$Hd6Zfw>mF+?S9n`> z$4ooUCeUn$X%J&;??;?+TY2Nmx?%3dSti)JC>L`;GPn`{>C=b07yWNDRz%{IH(qHu zsM4rYf(_b!z+6KYfJz82_4-UQ0uWMO0u$8jgqCL&?FxgMIsFr-F01_zCOrJ4`+in= zWX1N7`(Qa|wA-lF7lW_2n z2VK(C)#4Pvk7fwCBUp%v^Z?egbiR`82!K!NLZ`;Ul#dj-^r$m#NVVkb{{W9?#&(h}7J8E!Mq7%@AfR(I z!<5bFVNaA&;T!c*uI@DK>05B`G?A4>RY3;8Lp+8pI~R$^c2B{`kx9juGPEg1m1^=e z##_N?PN_7cVOHWZo)&ZEG8*^L5DIn zQ^5MYrq|XrlY`;qd%Te<%8}Z*IGhHzPa$-HKgvtJXm#g)JY)yv>m1Q(3l`$pYD^h| ze_VVWWjqC&O8-`F-9D`!)|hoUEh0trwk&X!$#H_%K5ab8NQNWNAwcIOr zD$NrxrX!eplM&9#+G4yy>}#}ZS}@*RxnK#dg98pK*wL=8HhLf1eePcnK`#l6p@C$4 zIUU`7$EyyWF2POM%~6T0j<8nOuSo6vtdE?;_xxGj5yKmTh01yQ?h}N?5e(^S=C?zz zP~X}^DFeh7D6|U+c97x^5Qku)!gjVZ*buvyQgjOxn(ZCa9m*)M%+V5Lu7rAe4!jvYNZ znXlQs8=AM$fPdx{N_?<57VpCM_q-1O%)6<*u0^`5XC$ud0-fh2hF~F77X3H;0bf2X zxC08+LML5zcXIxSph{6qYF!5kTfdInb9uv6L=p{J-u6gen~)AUdf|p^{%pIY5~)dQ zxr$;3Shkc7VZyTl(xg@n4Pcm}i5%2zfLrRNVsc2-xQO?1{W}CXK)oBbhGCw-(HdMF zE^ZkN&Z_JYZtbsqJ8sG$^=!&r-QX0WFSH2s8m2zEFIgg$e6hfLt|NBjNgM;=0*YW) z_O!zQqIS55#}7hrfVFX|;1<4wcovdjq&cF*SKQX!*8n588t_>vI;d9a4fq;<^bN1* zEHE|9x}gRXByK6zy`3rRc=Q4Sinx-TDZpgbp&SHf4o7710*1P>Y3C zOH|D>8bmt~1?}UcpzYtr)m(4eK2@>sEn~AyKuxyHWo&x45VEw@C}cAES+4}Y(7iML zqjNC3Kh*&FMY`Ik;Zbs(8#@aYLUS5i$9kSb+WPLVb=Jv3rhVVq)&CvdFf%XZZ}XZ$ zt1BBF)8vQ12TvN@ST9q6U~SYZf<5Fcp{5CGIv%GlZ))Q?RBoLfTgtR2y7T zt3rJGa@*P)}&o{k*^mVFIUs<0JUC^CWTV#l$m<|U?XPYWFsFlLdA>8-Reo(G!ZBtH~OSWf{F;!Y^Eap5pBIdDm1N`3xdjVx8eJlG& zt+aqOBdjuPOTkkdi+4L;T~YBdZZHusU4xvpXRG?FLRR#ZYSgsEs)j)a`v8Ox9N<_Z ze>Uy*U+piR2?ToWKR@};um1Du7ytb+VtvOfSkB?@#Rb~e0Tz2mIR^L7y2n+;-R7bhwk7aN)ODB5#N-WJsNY?V4El9zLR%CI5tw=ZiP z1KyZ?ND-;!E>W?bb0!(tCSg?--*$XL$j7iI`P7h4BBT*-B7LA6P|8r_jAYTR;l!#+O|eapC1e`_WX+hs z>yAQ^2PLRjEGwZFF$G1IkfmH*KR<%+=~Cbzf0Ud`x>9yDw66K6?Gs%*8d;OLrd}~R z9#d3J-k^?0x}~gkw8pcmrgF9()v@QMeh3_ytLy6dqhW|oOl70D_sw#o-U4UMCJzPEC?(0? zP3m_#+rhbQu^EPiEb~E*p$}$9Xdi-lBA!^W#D368Bm&(TdDda2aT@d}BO)$Joz#>f zVuh%2y=L~aI_qjeL^%KnE9_%k71b{*PWrSx6@rszf+&|3;y4=h7N>?pKBB!A$>=kI z9LuRK!MwZ{=6DtPx5yI_DQEGS7TKve!J?iq2@*8gJb*f`W?YL`LmVg1+!k>JZm>1= zC-LhDvA;v)ZRQoMW|S>ZXh|fbQl%%F?#x2XDuD;&aAFt0u;RMZ4E&Ub{G^}gbshk% zdIzeh$G;^aLWAx->Dxh9xE?-kZYz=-5O&-AVbj&mj^X@Y+(9rdPi*RP)YXtzK^qyV zv z4&OZz&RE6Mx8Oll?n^*rGyq}5?M+Ht1tZ^HA{M_GQwHQ-K`e)0sftbP6;|)^8w72p z;w<6A01`XM*-h75_AVatwcaa?I}&SE#yprKX7$kN_Q&`-zj^GytZL;LpC8frEjc$W zZ(Bjg%1O1ij?%{7?Zw$_BXQ?)&DviFZ0V80pkhpcS|5`B8AKo0Fecbful*WQ;Gcf_ z$>2!QaWR-vn1zcpb_|jWwo}HSGLgAuM#lC_rfm*Y_8O|J(@*MI9)Qp``5pC)_nNr>f^{4^7o4`UKf1??BwP7i>0&y zP@dN5zM(k%&o&$iYjhNO%Eznx<<-QyaBy-6uzRB^7~|w z^qtc;v*uTaJkEZLk1t-v=Px&2{GZP+Uc{d&OP$Pr>)->r#W<MbSOhHPIW^6KbeB!2Z0lzpw2thRCXgTI((J)>(tBG5q;W`r|)# z)&Q%#Ra{hwHK*hxNJrIGC8W5wi?wcHb8H>1ze_6Rak-Sfi)AO@wzHK96<}`5jXXP< zVS?dp0deE_lA(LiBTF71AEZz|?WKWP6x3D$C3+O4HnJLN56vQ{yh^Bi`Fyi+O4D(1 z_qywY>%V{d>W5!{*mm#V{^K=2pJi$B@u|N-M78Q1}LHZ{IC(a$u7WQ~r?7Y8(fv?9ruzJ6LFfe%Q>|5n*>e!<-Rbuz6bEzLct9gTi!1V5;-7M<(q6Z+ifx z>ZaYTqbLLcdcX)M2N>;whk{E+Q;X!_S2Lt>SSvtW81!ad>&)7(GXqlN_`XK7DWxhq zodhX6o)(fqo+5?3)D-fx-=U}}k{QgRcJ3*(kG_3Q59zEO{xV#JPHJK(Q1uEsIO%UC zmZM{yb-I11D)v!fSvby?#*Kfcw}Xm~_Q}s4R22B1{w<{e!e>hT}vcM~fI2URfgV z&MtoZh7$6=z%e5x^UB6yzNE1n`26W=z-r zCcoUcGr%pQgV}Bz&A6|a%{}2~WFx4z+X=Y)zh@3Vr$72r6t#IS#iOujkA>^*fLjav zihBmj;(C?)F0Nawac;}ufTNzHuGtJ@WL+*Wz>A5&+#b4kVQU(79y$n@i;#PQH7cZ5o;%h?Q9 z7k0n%e$!$#hS!;Q_+7Y`-r$#@aQSqr1|V#mr?70RZMUOSu?N?^^yG4lRDzbD$S}j- z$c#)cZQv#)TnNz7G^ix4Q2vKpxaF&g)sa3KgHPm>tAV!CchHbEKlwDmX2@#`5e50? zJk%k21B-Wxq%l<*COe7Ui*buIyO857?(EX?Y`uDM7IDai%VFFG>Wt&y1C)jk*}#zz zwVDNJZ#EwFw_}QQk(T|jVMh3gIrgXqk@-(VHQ>t^-uZ*A{k4#nLK!GB6_UYhj=St1 z(V%VOfViYWA4-h zt4d!Im0C%%c(y5IJ0CT-g=npE$Ywi034kyT>_M6f9F6Ec!YV!h32UT##fT^IvGItZ zT2~c+FrV9I#fK=a*u_P)cF3f`wkr`^+w7_nWHKtTjGekvLthM7c~}{J6$&gLjRD@E zDc@^G+j&jLMF~b%UX1Su28F4ktS#`da1K)5cu_CyjocfdR4~F^kd04F8|SGkefaw? zJ=0*fn5VnjH@jO23WM)ZPo33aF7w3=4B7doF2y7rU$9c*&S8TFfPtPm#8 zGTe;Lu-}xRVr|UWTb7h9L^zkvW>R;xfjKZXnbBH)dn1)HMtwTv-pIO4hH7t-!??P{ zVVwFT6*!DL<{=wDxg|pBSqGYaaC*=xz>7dmIg%S^IeJd$h_azDmcWuQ&fIZE!#^Bm zAChXkni`@0wP#dP#ITvE`J-V>5yJ%dpF)VYkh(Qb-b?KV=PPIc8_Da-CeA0$3jLF; zG8c0#nyhDfSj?tCs`26Ce#UjX-@1-~KJ~o0qsS9;)uJ_Oe)z%`DY;nkbqnq2o^r!z zCSV^oDQw*0QX8I{c>qX~{!e%+f-m%T8mst#!zGFLiSI+^Xu%4+){f}WtPpGnkRICQ z__a0$=wnwD;K+N3Yl^HQfoESRsR4`XKQJ?6*l(X#b_T@MFE6#6Ph}Zv&Y3h3PB?|_ zIMx=pjn)MCI~h-4m;8MA;lqjD9z4n0zBfeR&@(xHUb=WTTF-Wxvn?(4q|y2IlmZY= zVLh&8Zp}uEb=_)>@;crmUx^;O>p_I$S0hHTrNqEa&3 zeu*2B9hSzdOmW2vZ%IMr1dEK&CcW_Es1f+-6b09oAjjt?kDh*=N%u2kTv2x`hd2tJ zj+;!C+>_tYwUbF}1TB7?NzzCg8=xtEO>{WJ!J1l+eyXXa?(I5jwKElXy7N0Wq0g(C zafIHxfvi$H)c4{01##(7}zJk4lX9w=|2@&j(vm9+qH~1JwJcr!CJe z;_DBWt9X25!<4@-%;Vn>LlsG6?nIm*HZM=sr+5aw) z#<*pRqh?tspO{c@!JJXI8hpKH_0TWYlfE0We$ZZF`7PYaGy!GDTDxOwvBP!|b^COa ziV3Y7!{uzIhOSoetb&zC`4J^(NOp?{xeP#4TY%=0xOx3g&Iq-exp@x)qGQlKJE+7jt zNbUF9qQ-3Og^dZyKh3C^Q?tlW%Q23%y*dL@8n5jl#K0{AyS$=v+&8Oo%3Du$y;3_) zskAMxB_c9U@nwxJDEpS8f{{kkhNFPR=Uv;@4}`WdOKd@eC}ZfreIzHja9z(H>U)TT+bH9|-M8#&)@*DJ+MUU`Csy8D

    RDxx~&&t#xf2Z7K%ZpD$JT2H<*R^umo%)Mv zv<_hRr?#A1IElTP^68O->-&CAW8e4B{QdB>IGBHt{SYVR`Qz->w~Hsl_x5%4WxlCC zk^LW(AZltL{Ww4e=g=ZP@wWV1)B;^2p3EHH*#9$PL)r3v)JmE@!Q6xbXrRu5%?en)AKupQ}vxQ zD9in1`vnQ^_RBBbA=Z^o+{WC84r9Gq1t>R2b@~hsSz+-KWEyM014pxZ8(4i@CTzJhq6rrZJqp+O7^bbWBF3sJH>|xc zsoA8usuoq(b5)EX(q{M}-ow}KMy0Ku`ee{~6Cm~H^mv%R8_&4<{J8Opdp!@mHmQ?c zEn85cL}vBH3^&AhDU$%)kz=3_<{ZD-u&@~7!qgo1SUT%_5<0IuhJhhNbe@LQpW$i9 zZOJmmX0Wpx)41^kA<2ib9EOZHx3`Ii+MdC8(CS4E-vi!PP|0&tTujllCY9;uqUFSp z*TI-=W`@)mwY{50t~DP)(gLg`6XymWCR9rDNnUB`o??0_uR&|#C`l3!q_286TmszyXEdtE-9*hvm`o^+O{PQ z!S3HOLp|FKwiOF_`_i5f2#zXGgJyE;PrLZ|U<)9(X4fViR8>*JJ-N{<>b$%yQp}s{ zpgK)w?wFaC-8MiT8pjW-Hr1r22Tn)z_WsCqYHB;#p6KcE#?SW|^~PJRt??qMbC|VH z&BAWZVd7Y4o9Md1R5s>&$}V}DsM*%V(q0N%oq0P>1)exX4AnToScp_n%kqml>Yj4< z*0tnYDpFuoCB{IjfP=jgo0b}pSJ#1=YRq;JX-fuNJZClR%SRNiY;~9Rg}DbewEB|I z0FkD`H%is^UmK}>4vx6=T?9_1qLlpMo{swDP##!WWg6ZXOzyiFsUw z#f7#?L;&$-rI+g~L!&`B=f^3+`^o&`FGp!G=bqO zKU0jyQc_(L426jnRM&1$S&Gldrn`dml`cxQNzYjggoT<__UlB*)s`8i>h0`Yog zt}(F^)w{Kt5gn0Pc%Ko;_TUZzD6H7X*3Eg17;R$JKoyPlp{^DYxTjC+AO|1xQtI(5 zs|GU4DiTKmKR2f_dhUC)k$pBj`mbfHf_wmMGgN)*>N8Ss$3-=5Bjo+4+%Cz5(X1?y zV#?cIOyV}U)j9+>@@OXd3q;a_E>ESS!Y|(3FL?SX#|#-j+OcE=Uxs<3*;q(+I;{JWPLdd!$*G|hJX1$? zCzs!L=nuJifu_DQX}PN*l}N7-_wEIB`S4tY(s_kTE_%B>sgm&DKI5|?9B;lcMKNEm z@yxCpAOuVgfgm||spEF4MfsPMs8Dj3ZC(;pX``h za4VSba&;Mo8+N3-7jY-wyd6lgioO{W5uQZf0LM)nui-f#&~`RXrRF;>u5)a^mdJ7E z`{lnwQ&wf`AyPrngP9V^r=lbrruFAksCTXsSi!0XT|Ma2seUt9)jw11-`8JLHT=6q ztN(Mii;*~oPXl3)Ha>4q5tgJ;KncV>2Sc%N%*32!fF0lIk|xRF#@ zw~o&luq1w6&Ur#j{;hN$>X*_3@QrsW zJ<*$t?DxfDd$3~G*)|K^1a<&+aVz@=*E$RKYviXcQCo0g7{e2U7DOx|&|>$UOzi~q zcSu%>OQ^n+l?{)$lzjW1UH^y8l=XQ|5>+$ckXBOMr=B@r_wnW-81bOz*L|KXWx%6! zNy#YsE|O|pLpL2qI1po>u03+$sXyf;xW6wY{A~~I>)w!fj0z|NmZMVRa;ecf(y^Cf zl{vHs zl*PMFrnOZT9+=C7*1QrHsBbo19^$4s{+(N73t>`hQJ*3_`m~-U@nD{O5Gtqaa)I5k zdU4h;d-o;@NAB& zS{O3gna|Hfn7wYy=c$Vg;Xc=h8EjTURjCoZA)5E?u}GRyyHJ%3x8++@`T+0MwQ%GiM?es*{ML=W*^Mw@Fw4s8bF#IHsXHrtK%JF z2u<3Ou1!^YTbE&Ueu~943qNgnDtOMh?Xq7vL9?JN={feI z%_ZDNUTKpBkVqzdt45iFSxgBjE)kDEdNCx^{jnvNRMLK2m2+~p<~2bMzM5}XQ535! zV?llQw+PAw1%ve*K5SM;S}NFYEpMD=57U}FfQJY~zOSoK1T_Ld{&$sCE(;*ft%#7uw?=elxTK93=I z;ce{AisF+;?E+GNrI71BuptETu^ipgwV;#+!&1oG$FwqK@Vsx{thG^|LsU{j+%a4H zRc7{rx#-xOYYWwYZBitgBgoTujLhNAZu7cn`!3W!LWnF<`r>K_DWP4^MBcu;kBS_u zc9MIYNLfQVGccV4q-=L~S!^fj#477Py?vH8V3NL}4NfL(eV7rv7LvbJ^@3yud6DET z{?2d_P_jIuJPF4V7cy~96>oiA^`~JUzSzM<#hmn>{U&O=z>Yyiu2&nm&3HlFvPSI- zX+%0GZ8lOJ=qhrylL)PUkJzHw05OLF5K2fZG<7#OSsMITXFDXM8* zmKzmVMr-ezr%+{*Fuo^9!SoP9HwJ{C|#vIYt_VCYK5&3VkpTF-;c|J-Ki5<`tA zY;Kl455(eXRtn{3>w?KzMz*UqKLmAb(@I@4KhL_`+30FF2KIYS5H!Lif_HvaV^0u*0`&!2(TtimdtQ zcfjwKixpGdn&96)!y0r4)%nsu-ISTWiSJ&X?w5Go<>d3?b+%neyvkk1(@r2XMOsI^U5Db3@0zNha6d1uEf*&oM;XGZB*Q2; z0klH%bH%Jz)~V4Jnx`6A7i`s7FV4f%LKGLCW;5$NxQ(}JG&9D~F(lWe;Wh|Q5m5!} z;oa9e*uk2+!XcMpP!FCCQKVeMEu^-RLMmQY-w%u0j#yBV#7*ycyoJPDYeJP(SH&Y+ zylI?q39-}Y*raGl(IwN3Zzy%l&ins#8Tyb!Ufz0X1I)IV3u-E}G$2d0H;iXY3P4oT zK?r&>8q3^l8$E^Dc!FnKikFBilIp=VwkuA*GJ3FO#(K+aAS~z>5cVlVDLAtEKz5{? zrwwbOyBC(u;}EW#rtkwk!cY10GWTTuLwL%65B!%QT=^SpZfEg(~d}->lI^&G(sXG)w^4R}KX{AKL=imgm_djGm45Y;5P0Z^=W{QOOoVa6E=^ zUWp8C>8UoRY&B-L3t!(&ldMhrJ7qeFj^goIa1P5;;yb(`-+Zr$=s z)5TN8>AS70qSdeyTM4XfC;cIw-9q;uAhy8mI9Q&)LA$t)Hxs*C6!t7`&=pnAsSb62 z__)L{YV|}pdnKo4`aUi?L*>HdO@*MUr}MAQs#etmh?S|vv5le|U$RvAx!KaCz!XB{ zbIFNr{UnV%O{OcUN$Er9aoz&u;Y$2&Y<39k;n8V-E<%eN9m`qBvF}I|wakN5c?8}Z z{zaA4$^+WTFA=V!L{i<^+RL*v!=o^qu>0mioHItM8+J)l8Gi+RiB*-f;^%~HmaSy= z2QlExAhVE;nwE&}>ljDfE9Yz)uk`D5ThiqWmw|}OW1f0`yS(Gfj~~(1qdY;Ogvq;K zA9)s=Dzo&dXD<6~cMieF_II|UIIBHNoOwG_H@%5(RV953o=yb%w(d6-Acd|AwfTs%HEDJqXHy71thO7?8vS*lKCMC1QW8cPTe+%k4fV zTDaAZd9&EbZCpPnKr?C_V`(x4DV=ZqtshDbRYcW|6LtP>|D<7?uF6!CtVf&b`H7&^ zY*5k4SffpwXG9CmbFIp;d{(&?;6xI2567)s(Oeks+@g|Y>Q+2A&ph=rS?H77RjU(y zaC(lh`M%pD9767Xt#3;xVl6Ip`7~~gX60heouLY?G@W8~@nnb3{Y&ryuG#KqCV?ty z?cJxR+gHDQIP%}aBa<2&;*pKFo|mgR`-SD&t5b;+*clc>6ZPt)c};PRFL8Ag+3&H} z;EAhyzOp|io7qHHyACT#S(r(P+fkA_OuHnR_DJqNkb$ju#wT_z2B(bWT$++4bmeE! zqcwYTOuERy1ZP-(jUa6~dVFA5MpUY4UMbVQD9?Ubbk9yOPmkV)&p1rDau5s z9FC&XV0M0Ovczx?o)GgL1oULMRLe$&u`mQ>dd{IRS5?U2W$bKp#Z|o5ET~v}3v!E= zi7SCtLB*zfB=e`E)D56Qu5xWqlnJBU5}7g@0RuB1c|gbqBT?))i!oGrAlpryt8%Jf zln@jbm55Np4aXvohTv4!c3^TBtLhU`N_C0l*V7G`+!uC_n3GJw4WF$c0>o-yZEvD| z-2g0XnSVh%TAK^g8>anRB&r|1vZo<{+tC=0MAhw6O`E9y-&V_&XpNVcvr`wQCz z(!!*4B7)o#rBt!?jcw_S%K&j17dGsRQ@Ye~Tn^nPr$%lmQ0MUXSjsCjQ`F4TxH_Bf zA}EJA!GGbNfCW)3w@+-m>AyW4v9F=uE%)!+HdQNYZ&^xgL5>ApBUOk~UICZuh*Bz6 zEv{>k5Ed5DK-&0xJH=)p`ANOuTrah9%Q+qVHL(y0VnteAONCItN{a8QX1V22J3Ah* zgXy1SKK|6(<{kNidH;Q**~KaGNWNH2L%$3{MLVZUZfLl3E0I~hS|%@+rPf_KDep0= zD#b~ew#Zo4wpuI(sb#o(mPWPRsaRWmtwSo7vg;#dlch44$gV7u6}BifrE{dp37|NPpY8sWR2RY?7;!s=&2Q+6q-n;)81ED<#NtH0P%*IQSwJk3)d*Zn2CYf+0`9oZI(h^y2Fue)?6t`O^=-{gS3S zH&I9uq&@=56&MjBu# zrNbC{U@0xMlS}vSlmq36dabeXqc-3hj|)MIi?mgxt0iJ zHte8b=L|cBtn#pwZ{<`%s!s{2JVHLQe6&3`07OPLPUKdDB1;2BPo;cvFExPFL+$R* zSrYR=s*Bx2?A!hPQ$hXQ%Hh?d!*M)%#yh<{r%TmlowIf0IO*BVR(IOa-9O^ZGrnvY zQ=PTz46Zm>A~b^(d!hw~J9sT|lEt}>X`fkZ@FwR$%P+>dJ<#UwuuynN98EVx;`s>k z>-^E>llsuCF48!6Dr|sWA!>6oyR%wQh>RcTnNwB@c|BFf=I?lBfM`1-!9Lk)Juj#V z@<()Qe65L}>~}sLRoUj1y}Xiti+enn@!ob7FuGjf9l3b;FbqgGb{#7E0lRrudO z|L_}^Jkr3pN3c1QI<(Fi}wi)n&@% z0KqzmyY#DQ4N#!HN*~It%4v|x>Fg%vJjt~z6@V5fAX?)j)2ue{zB+7CUeUH+c$w`D zFs-I1w#ipzk6adGoHrQ zU)7cH3UqZnE^hE>R`+`y@QgA`n*UlA2bm3-8s3N5v)bk9U&^ko&Zw@+G} zaqm>|WtK6gP36N5#-)e;rj?VuANl`X{r-pEsZg5!-`is;qV25_g+>kcv|e)3FC1k# z^m1`OTOZn+Wh)3j+m@o|WSUiWC9KyzcDVeom-I@WT`=}6l#Scclvc&)rsHN|d_Hal zv^sFEJH!dfLuw6HJdfPSzDJXwh1&(N8PULz5Y`P6Q1>;80Bw|+8M1at8x)?QEc!`A zaNHY=m!1eDHC*Nw$wJ1nnZ~fvhj}F(MXy_qRb_G;a(9(^A={Tny^bu)A73Yv$E7nQ zH#{A-;xP?bK${a;otMEXHc!*gw~KUL400j;N#NTB<9s2LDJt#0s${c#^Uy-x>ZV*v zIP2HtbI*2MuKA{5Zx?61SDPFH0n|xgoh#UX%3xQtQ|H{mKW^S3<>xBq1EvZHfXTNh z<`de~TdIkYNW8F^CcK8iMOQM>7SX6Jy~&M<)77!Q-6WgaR(f%7ZV@BQNi6oi*fygRhz|GJ zPR^aMvSEY!q%D!JT?AyORRXwCN*bpOupYASZ3AWNpI6OVq9*8umwMT+>JP(PK0ZGR zzlRt%Um2K$HxlJ{Uaa8PB94Um0#03$p-H88_^XPx2$=ud`JkSlf^Y*2SE0aK$i?|f!w|2Q>B za?RPQhNwcRc;D{+>zN16G_huQ+t8T!cdlGuM_fvqnv=qHUc-tG%QxYrU;4$!YkTLL z{S4@CoG7Tz9J`WDZ#D$*8@mL}aT(w4jPVqN6jau>oKLJtU9OCWZ5HAFA`N!1KI`)2 z-wob?6Q`_JU^k={O#N=UFl#1qa=m$D%r|?>*@dg4`{&2&8ck_SRw;2{k0Uf%nl-jn zfDVH;^<{<~+8NJ3BQcM8CGOw^38~Tv#z|u2f_QNNZ>I@El>pi1swa{YIz4jd)Av-? z9X;kbyrlws=(cE-t z3w-Cw=ehv>%Z;vJpVZS_RN3fxGn40Igj3XnOEWU^oarQ2O`~S6a;qwx^q~dFGFMlx z&V7_~9+I3@olR+Z8s8DM(7v5?hqe37Ez4Ne#HU0$VFU*Ap|v06+mD8cbA_j?N4Dh( zY2d^mzZm0H6$1fuZ$SzFvE1n;DLt)bY5!nh;_&{(e@IXvSWba3h%t77(Vry_$wlVz z5w6(0>doqm&v~hNCz3UKP$Bic)s4P zW<0or1>j=mgb0rfC6WkxbwWoZ-?(+MD=wka{x4nu_&4S<+#C7Ndz^)IAO3pmJ1nsg z&gi*#m)msLD|Tqs0M}Ruu(w9VD;r4d#@Rpx8KNA03tEsMYnZNqB|#dlPyYMt%3Q(2 z@>-xh*U7B~dz0DbfLM%ewfubvNdXS@Gyv1c7LXN6QYv4|4jZZ2T;`45aZh}~uUrm~ z2F?;w=Nzf!3*Lj_0QT_fDwXp1faoe_qwG!kK`z7S$fE))6Sw;Ds#xJ;fZi{1gu7tB zP@F$-Ab?0xOpkUs=P0bpQ%R$G2;1h>5lJBN#x`@dIZNe_KvXtn-Jv@!$#gE#v&!+{2V@`yZi0zTd;6)HQ!`5Zfs)o1x5 zv*snp`vuQ$Cs7aw5X85r+{hln&o;(32FNMsxk0CUlBrYE42J2Mqf7PYyVY|0euMjE z?HE@UWczMPZT@huhQYrOGxLcBjLt^=AIrtp&ichat?LY!8t-s7_!rr07EwDflapI- z5uje4pVL}yhD+|-?2`SqZ)BXdE|3uf<=Lkibk2&uVmHfuef|>M3>{KMyEdeFtLum5 zwGIn50tvTob~@T?SxtgLnY;m$E9^ zOkg+l9oBVJWLxpsb&n_le}J=~wvg_mL)wjZcM7TzTvtd{D}e?H2C>I}Zq;pzif}qd zFmkVLn6@d3scaCj&2k)H&wTyk(4Y53I?XVeVl`U5i)!VZvs{+Mbb0>=4S|1S$m86` zrKmo+5_{4%IBJJ&n%Xu3HX5B96FBHI5qtBZrU!G3Udl;6pf+Z_;!+~+=ywl0&4_3{ zY(6d6rSL$9-DmqjDjm_s5h<4{hcObB56bh}u6#0ZD$q`V&C#2c=KZaUVr(0x8X{7( z8!sF(va0K0%Qh^W4=hhl*pILUS;D<+e#zrZ0~{ia5R_BlOUC&Gf+meO8DJ3K#0fdE zd#eH}IBqAY7-#vCg4sfXz$hXkLO8Zql_Y6FvCQ(CVxc$-9Z)q)2&;5CO~G$*RgPGr zh&^H~$K&%$`!!zRUs{>$>--)Yz)l#$lm$EScS~T-TdK9i!e#aGCzxYEbHX}Nm7qaR zoG6xo!qlu-tp!FnTBLJ8El#47^6;K5(RN^N(KJzP) zI8|lWE!Q)J(QF%7*Y*4?t%5UyBh)A6cFmq?| zR&!y5>d?uEw!6eZsQ#d*612e;o@lVe%~0#TNEi%WeHW0@52g93lnlvvO;%j78m-iH zE6|6l;*lDG7(|1Xf;G|P87Vj>OVk72lp)BkYu$|ZoylsEHz#4J*s}Ttc@tX@i5Y?= z3&?CWajRi)A(4=8?9+%l@=5jf*Buq|Y_hPi22s}k6I<2hedqG86dYxjBI@*sMr@!s zGecF1wxIG(fq}ep2o|ba$9m=*32XP^Q&A}kEVsS9RKyf=nj_Xv(T-}QyaNhAtt#0V z0an54Q%fh?5{^Dt5S_`{IJ6JGf=) z*~%$tiujewkj~^BDeTDN+tz~nb>z9I1L&tbZ?S%hb7#`Omh`2o}VOK2>ZGqWEeMQhu`~t*kzeGFYe~ z8cvH>U=E;iU1B>;8*85c$JzIbwLDU|<`MTr4RAdOM^%T_9Fz)Yb=u+ron0;l4w9?d zU4Xy5ngR@=f9|xbmAe^9RZ5(DF{;9ed~CiS^ju;~anT9)996;Dnnl7H4qk7zGt>yf z;av(~i{Q`?JbST1DGr&&8i(O`@ugw;#Bp%lBiIPpYiPoG6#iD`(xr2iNzGEZ;;v!B zlNP5}OBf}jI8y>}W|4+KNE2Wa|B@5CI^@8T^7@xK@%GQnhAU|~X`9WDpO<=PXr`xu zUtx0OUq51CZ{si*AAi^l`bR zLVhg}?$g8=;`6(GEA6~Nr`vk0rn}(XJHdh83;h#>7Lm~z7Hz#@U*6vINqf^L?X}P7 zk^G%dqE8GSonqh7EB>8YZ=u|LPvgAs6i?rX8WU$!8+|_FuVma{XH)Q6ghVqffCXTg zx|j0!^f+~|*k0G0%I$@&f)>&#EYWf$R6d^e!&KH&m{AvFII7#<;V7SXu)XAOOKFDTdegACt#zWmD|9M; z+!>?M;km~Tv*)$#u42$VoaKsY4flqjt7PvB#s;E=3GdQ;@36%{xyap)w2-EU5p>_U z4RzD01w1S@H?g3Mvk#f>#X=5%1yW}#+6|h)IL~jY0)Z2=7mg(i_n!&99+=Ab_6hFfDeBDXbtCnwjXB5d%${<^g06eS zU5>n@Z+Y^SCOyIG%_F*6#F~o*ga7r?S&o;ikvC$AJ40r28!Q-+N6anZ9JaFCyrAA? z92EV3KJC)Tq|%Tn+V=jb(s(>x0#u10IPJC}#lPXsWj&w8JsUjj=E3DqenPxSotgYEtDMi26_K~@Hz7mEkmJ)xe*ZB5E8a;kEf%%MpgY?8gN)&Cs_Pv`!ehUgwU zx(g@{jWk4r!9zW|kQ3BulP<>`Dn@@CxdkK7nG@%kCx|0BY@ChtrN4#<`xT-3rZOo( zDqft=1rQ?{l91G=0IfN8nDS#D>m1{!ZYxNm5k z!`R813%tx~RpLf`tE8K%S{fR|GTBiYmMLs`rPcw2wzyiWO{BBk+n4q1ae3oTKroiSGSkwM9Qh_xeA?@2mKI9lt-uFUy4C{T#o)#P2`i_t*IStvl-8b;sTN z?xg!?_n|xOK6Yo_dH1jGqPy%qS+|D9yZ37fT&^UO@IuaK^Hd)`Q)Rg%wCPdz59)*ANWr^wwv!>f$<6yOwr$Q7J2sytXH7D0`E0=xDk2x8obxwy-w9cJ;X@i z61QyJl8exsSd7m6Q$X#X!0>KL0Yw;58M1vHZw^_ZyW`Ef&F(ASx!Azoa^-)|<=_`B zlscDh#KBD%8uJH<8pp^v3$tx@A^4pOx%bBJjkvRwkAEvU_|o(}LzYk5GQ%uF44i74Xe7dB}nVPstSk3|&f*)U%%i;`XB z7F}5~8H{q?+p98c)*gmZg^Lc0G()97i z5?P4r9qEBg-^m?5qqq2ZvvK@4Oqr*gh_!LYiTOEBuiV=4n2>hDstk^Y~W01=)v^zn$$KGP(jy%(3K;IG6NVDf(Czz$xJ|4yH;rzu(Uu zmO1W}?&n@FhtKq|W1HY?r!~J|NYAm9bPW-!v25BmL^}PG< z^G0^IsruDGNS=;UbnhqyE+1Y>e#^&_(}uZGI+%^t;u>3PPxx-7!6>8zKj*+us`~Ev z=DuHgpB&4=UXPVI{>*BB}@DIb77YPYS()np?{g9E9L>VzR@Ve zm`D&)rz&*kMW3+7_>h(X{D8oaSc6daluLuV1Stz&6LKTI0xF!*YR3qvD5l!w=2R$tot32)oYU;!i zZ0+Z)ShXJx;j~%P{ON4BiT;qH$n)cXoj5R;<-xNu1srhxyyI5T3Uxq3`T=T)KVY1( z*LS6k4sEA^!+a7Xx?p#_ZblD7%qOvQw^hKi-qXv4RF%{Xr<)tzc8o_fKF+?({l*LOsVWYA6%52DkRgFrjD4p_BxcSBAWmf3uk_DV2N9Oev ztzNP*sM0l~OW^XJnQfK3#BQB~hw6zpdd?F5Szo}Vyj%5%p9cK zdykc@7PGRD#Ukbln0H`WtB}O`3dWeTXq5%4S*(n~8)?{=kFtMifwHe$!KjY|HGuJ@ z5wuUMoqfef_;(r#55~4K?6^o2>@@iT*z*^>? z!ACt1?8^h0{xzMOb+@Z*{nm!XN7?EKexZ^d_mwEU-R5=@|OiX&q3VRI)h zLJIPWq&dC!+?}{hK40y+J5KAn9 z4Z+`wR`CD)hPukELa4Jq4`P&GB*v8hOD+0Ys}-^{T>@tt-gg|fPSyxp<_jJOlFj(l z#uOM`6rj_i1uf!u#}TDOSkNLEXf|(y=n7aN4KjBm176;5zUuJJjh8;p(Gx(jh(IfV z`gEX0Z??}{i$1q6yZ54db*7AOWQxqAyGwgZhTcIMS;7)B8u_@UyQ^@}Ghej)3yqh4 zzQW#)OdeVRJ}ls_9WS?Ud6?MbllIL;RTYYSEV1O8RZ$jv!K*`7M&^wbFfD$$g)9y?8$4#<2<`dlj%U;DLpE(RD=yoj zfi|tbGVT|fuNwAzOJ_aLT$}0P*lw06*a$P;Oguwon>02|`kMevU;;UWfbI-80yy1s zIpM4H@wzU{j2`|yg8XR^E3d*RVUPbPrAxD`^-C3(RY!svIqDiQb?8sT*Mm$9%ZHQI z0uc@-jHN?xkg1&_;3Ty%am@sH0;K5TrRBbS35Fz16$s=h!RVPcq4UwA#?X7 zRboBdrf^tFmqVlu-I$Vm=JzoW8%zT*g0 zgk(ne(W(@TD5$wa5QwpVhY6hP%^&NnZUq7@hn0Z_w23VMMPF?YVZC2IT_M*Jca1ED z;6w^eNEPKpM5a2TytD!JH&mW-t4JF}Y5pG6q-0QiEN^cCC zjBiBF*tV$YE|B+i4<$9x(s_6sA$6EqjGEXPmxU+KaEHc$yF(m+Bt@Mj=L3c#v3 z{`XwmZdf$E*v~Wk5XL}X-6O7< zb?fBr=Y}x$9nY)zpZ2OTTBqB#0EV+EewdnF7XktI5z8vVwJ3c4gvX~)r^io{=EF&^ zJF!I5pJ#pgJkeJfH*eV4S_<=Y@HrWXAfrCOPi{5l3q%wFL)~k+`qwi(6#$YIq=Wf? zcm1w~ni9tX^;22mpC_ZT)G%5J;$D_*_N z87q6!@KK`+-ng1|VH*9^cx~)h{j>gEGc9E=5hM;Ev~{c zsEp+n6x|=jFfF#D2;~$O6>)2YgkkZ`5=_B`@9G94^a-%AwU2d`gLEyX%8a3Eo6pP1 z7ED!UqQr5&sh>EUTOXx9)TJ~ITg)Eb{&E5WB+Zu4J~MRFvU>S2dx3w^0JB%|{&cn= zHU#-J2%>p4{rec-kM%o6s8ZXK8~=%WMlM&~$mNE+7N^sA5U~K>tyE#F#Yr!98EL>v zdmhQ=2%x$)tB;McTWvdU5P)fk4u`3naXBwXGEmc_49_wB76<8h^L-})si$f1l>svY zpJ8y>a5$J)!xUWjhdTT~?uVOi9J<{{VaAp3+fi=Zic0&SP8gs+#GGXESjXkestT!K z@6(ux)Y3WAG&G-~{G^G(p|qqQw}YV0ofjOJO`7R(D#_N)OJ41xnO=$xb~taiONX=k zm2CUwtdnl!a%glh$(mtVl-WdLv~EVI9Nb**Qb*+SRzDiy=&SnvLqb5RYs6 z1e%oKt|fTZgr0&c`T6n-?gJqT&N9NQ!#Vz9#%)pf+7Nz(t#~io&g_2j!s^@47>RzO ze)~|WTrTjl=4^2~i^=#Zy-8H$pl)9srV*+f>Pngyf=bnPq8&9#l}oDUfy|AaxqCOY z5mky@u^PJog^BvW(%xLBeMjF|KMZvY6>g?m9BW8z2T{Kd-(*CaqS(~0V!tJ+h$g|J ziE2}o8kHg(COj>_%x3NXq8F|56JTMVZqO^R?JtV-XbeJ|@Gkj2b@Kt_Aeg8$!N^=^ z5ZA#CfHvF)$otMu+W|r<%fU+?$U(`Dsc7e!B^ofsvl3v?inQd!l(VB#h-uO}B!o6> zbbJ}}aKzRiZ7AL|Qep)Woq~!=Y$L_xup(Kpy2fF40*HOVm=+wWe#C zxGLK!ASE=L>8^}uSS+qmlgfN9wR`dJY4D%Z;0x(n?MY&BZ8{?w6tk*=U7lD&a#f;B z8g$QLD#kKO5qS{W!jkfCgboG!zr?fOpGUEF(3co%A{u`3WvblpJnz za4MqKH?NbFb=UeivM-B%iI1psDdOdwtS=;ijJQKK(A*c0g~>miy>{ymI# zh==L-)(b}p=HbUy5}t}(-yU-lQt!?ct_F9Ve)cX zG5LzQ@L+=}X%@C^yX7@D9(^|-K}fgZbyoz+X4L~xD5x{sg*nwRI!T~#pQ5&>W4_Am zu0xPufn(es;3Aam{(Py*_nn-GRzVOj%|chJm(i~MHo27sn^ z9~lNMWek@?p2&CC=ct=r(jH^~tI_6~HvX zNu|q1c#`4CJPH;N#4!QoglN!C{+}c)VyNL}j2uno9;7%R^2riiThp$0l#xLpk{Ut8 zak%&kD^IaEL|fL?ewRLm`z5-Te!o1|*Pq=O@6`khGcZf%X-?J;+Q(~ep^$%Qf&&Kd{z-R6pq}D-7I97 zpz6?Kb%I{y_;O-HL|iq+jjF83jv}ORY)KN?|LD^V|=-r01Xlj z3*Imro09vspvQ3`p2euj1w1{1Q}OM<`F^9W&A*-(n8GaFTHCt8rKzq^bs62)^>sfo znI7S7W(}JVj^*fcPhYbN)ln>0y3h<#n4pzIN&0J~UQ4dsT<>WBq<_d$Sw(h_oik8sSWoJHnZ$!w9DgL#zg+Z#0lKuuSCK!FBYQ2&ZBTQABLRJ_-R( z#g5YE)|9GMb1<@)Li(R_Dg^tToJRdORa_zN@8ncSeu%WUXLDHzV}HB8(=Qc^8kYRS z{ywM})+p8f_EzjGQjNLFhzQ0gqjru_Ml~O!jK*$^GHOZ1466B2v4SCVR1d=)6>ZSz z(nf?~xP>J~M;f$n#u{1}WCgAGWDTvEkKp{Dn4-?Wrs92Qn)t#}#^6M`6UADx6u&Rq zh(F^Lgo0F1`QBm@+W(lFkKH)8!fsOa_Emq3xv%JgS*=&m!G$jSC{P9$Q;pq&IZ@~y z%!wxN!E_RCI>$(GqALtOQ3r!hlxXmM`THapm+RAH4EKpLhWk_*!T0s7>SS?y+F@}M zZ7IF?9aeIfs?TSy`ftB|`|YE{F&$8{d1nhu29Ov8KraU105p+}a38Fv zR``+{^OnmewDn{!VXm(c&R~6caE;&q*`0Yq#&*?hFkOPf*^IQRJ#Ihz;TH>0tzGqa zc@7CvPl7v=JbhWngcvy_B#n8F$^lP~v-}$wqZtD zO6q-B%1cSoFsaUUSn-U+!mX!r#sg632>WpOU^SreSVpu9uA3AN8mB02DLqtR``TBA z%qFKqU*CSx~ae* z+cpg^dFWOwRjriZ1EF#3`b?!y)iAH1)}jAYb&DnW8dN$)c)Dj^c;=`8FQIKOqn3DC z7th@hrD^@fGj$6+WXcOx+zg{Q&-k9B?g;1b!55u5H~q&C-~RDKrvD+V;Kk8!fLTL@ zt43)F2c9v9u##si_8GHTnha{Va3_(=+1lglGHuR(C%#QTtVx@C7~7^D*R4%Gju%(m zSMOn5-4i8lSfg?KCrUNqD5E;eL$yAT7jm9=#l1pJ&^*pF4KFpaK`B9HZXn%AouOK~ zU2R@;eb+_B*iHWs-&Upgjv?eN_Dn7*MMz%pKB_m}xqAP^HQ+6`V)O3PihDB_LKbIP zi5-1wf+YfHqRTd9*FJjLyZRt;4q47QbauUxk11nMhf>K>pIK?{tfB;)NOJ?=>wszI z3(alr4d`~6_NfZyj1?$JF&AHZ%e*WvR^`~2Bj)rat);u#-07Oyhj@kgptDcrfBv>& zMcMBV!|Sq76892*iR5L$VV52^`$L$DiLH_{h)+RJ@V>}Z^>?eew6izdx$If65(|~9e7))(5anv?QSOEkvbZhwuu-$i z_%=AV`wxq!drX<{yqD;)3Sv0V*Zs|IiI+%~i(|tGc^rmCO>7A(Ue#r{krG!y#ftEE zx$$l2vpH3{HAs}cdtkeR+T8QYK{zm zDkOsj6@9~flzUkaNtBT48n!_AE!D-R(aZoOth^Jq2|+n{IKcYE&`XHBeRr~+Zu0@) z{{sDh8Ni(M-|;;M*M&!fjYtDX7&=3J zOsq*586XVl8&p}Ugfts1x`Z#d&<+-fzx<}EI*b>Hr|X|SEWRvO%G<5tgj9hNmfge} zZ3)3cB~FyC&hWUjKqw^VyD3KBDUC7j9Kpk77W0vAUN1r^L9q=$X{EM$i2BKczn^4z z4`ISH)r;scWmJcAe3-=L_y{Zh@+q~+zYGT3U)Xuoiq!x_FvnK4vgimao_);btB&aM zAFCo8fH3GE*CRlSNPRWa=ykkt0FTFf74s@MHxXO_n{ttGj+qPmK+oRT9(=6)cDB0! zT2snSq|wLPRS027vkiGRlvq(=ov+5ZWT#L?Ku!|!QsQ6gR(+|~_N%dPhIu%g_0Uy) zUiUAVdC!gdG*5i%@)A;i=TNXD4ayKEJdaKr1!1)i;lK|w-x5Y0Ry?k-z9a+e^es63 z=muu?A;^#+DYq$@>qgYd*{l}3mv}KosfVczV$y%`Zm+3}q3i1W zey92nLIC8#F(gl>el<%c3#-Qox_R#&fKoB*NO~f-HOQeJ!gj#Z01k(x9sp8f^Ms|w<3hixzF9=+L-WWW zM%wm;CaGAWHT{DezTyag-BgFwI}#+RZSW2PPI}PcFv}Kf%gz@&>o*ix4vc!x=wr>X z&v!dM=cX$7U}BUS0DF@CC^h-OFZmr@b4 zXJ$-gZ=TAPpFr2*!uw7*y3{^oti7mL5~%##&QKig>^d&_D4p ziFNf5)4;zYiNk-PHT5ko87QIr92wx?`ae8gb9Fyk9;~+avujDUEJ%gXXS;!sf00*X zToV7mpyQ$`hgm7`>^ox*QD7<6Kc8{caSL&=G|Em_!_%VI_ls#UyPb8^Bl&W=J%lbGcP&q}wq9>aLQ&uqY_BcMNm69nKBJ~QrNeVh+v zyKcVFnN0S3vbGQAqfe-Mb19yTb7oD!Bp0rBDQ`5ma=xCqWC+n5AKlk#_ zkD9x?-)D{7NKcMpPY^KqkDld-qI>hQTds6`mZ!Ie4kvLBOe|Wz5`n=GpVkP& zAZ9bh{3o;Z`0(|Qc*p0pv7fv1H$VOOkM4{&UQTB>dU9s5)=OlUWJ(xn)q4nq>X68< z?`ErIcl^A2e15ps$A4zK+0&BOC6_NV{AxYIHm(+{=euV;m$07AXJm~8od5EdvcBg7 zkBuAdOPB+cb&4}a>^oQ`HoH3&{?FOtraOANUv7A#7FN8FUN&@qJLM$@4|Fci?(Vh8 zXX(1>e!thtE~mVSy;<2KYC9Mg8;d`ebll_hGgVrCU|X^Hst?38moF<+?>=$@S&|q( zzWqIAQQ4Q-JuTxLc!TGP%a_M%HfKkV8(w@kUd@!dI+T6NbN9z=*?s(d)1CG3C0c!c zKfCMCXZZ0aC(UFQG-k~e%!CS^6o+W*d+{7vck>`B^D~8=z@VV?qJ11b zdcCfL*)eo1Yba5&{UMxw^=U*M_JN<}!wshJ<;A}AB)BCroc1dx6_`K?dvTT|XP|w_ zd$yFeebpK?1W0=kVZB7`HJ)!ivVH1QR1L%NT`427tU)O|mCg)i`;DhUb88WY)$HZI z#M%-&j6Uh#u|&b5jkY0m z&y<)^r!^fm=&bKnr|A#xX}|hoVzH*+Qwf7KT?M9a85m@Kb9SS!JD!Bm^DlZMMGpK5 z$~l*ROnto(Vj8iMI>VJuXUny^Om7^U{~0l2z4uJ?LC-pawz@=Oe$Vm6#(-C+{*uX2 zdcaP;hBs!y!u^T|bahf;;2@Dbr|03jP%veF;e(1xqQ#ay5`*jRbPmk#AjT< z*5RsR)mh4eb&C;_=P4R(LlWOU&1`#<4BgGehSBZWjjiEsX3_*$!?a{Ab?u6ktRLBr zcy4mHfCOueh&h}SUd?sz?k zRaBm+n&hIN1j9*%-?Ek$Jk>4xqZ9Lp9{YR5{TT8#WfdD&B9)@5YP2eP5eRcN9NyR+ zoPtbH4l!(6#t`!YHU`_%ws?%mF{g3a|EvWW8dA2IqWZ+OtZaz!NnWyL^D>Um3U$Gh zv>Z$z$p)D{zmmH7Iom$gEg4k^W(Jn;;cq(weL4x+ahYk{HU^9h3^$XiU#^jraF`4A z;Gl9+Cql!wi@EYhM?1vPwEn{5?YLW(n9Q^nR{#UHXq*gRGU4L}%9UOJyh z6wEz~d&ijo3;Xh(UGT%z2D?qGY8_U5oOHvM-hR^IS1oIzSus{9()-ca63^}ye)8Y; zPdf>hJf!tNuPdhT_V)7GJ?yn;xu5D<)jiS_U-j}tW1D^|MXQ>zQlU+>mE%zno%k89 zw3m0bPzK*BfbykIu*%!Z^72^}x*@avfwLUzT^PIPB&CoE5N99NthQMn25qcE>$cG5?m;)i|Qt^eP#=4Z<=}gYFb4==Mi%_p5K+jjx zu@n8|K12`J7$h03N%nNYV#VQ-vvw>Zb)A+|k!?g% z9O9|Es8KP4BJd=}*_b5`_nn+D@qqL=+r`_0+)825>47V5svdm3?o9*&lL}syIXAQ; zO0{#3ES~2mm+x>+Q1?^g6L=KW%g1F4McU?z;h@KBGifd zDI5COOB)_BK^OQAF^keNh~@{j5M)CSQ?!74kRcuHrvW`?JQ#n0nn4_o`_xE%mkt^l zm>U1T;~{;&yj~)2dePA@lfkh)M9coKibT|?*J%epFb73+k+@J-N?Ad20lKBg87rWe zisUS^4ilfKL2>yT_-HhQFa`=UkB*^~P{e7NQjC2A&!eS?CZIu3y{pkPoHFf9{kZAP z+|_s5q@dfI?(uTOBv3L5KO4chj_g%~oWOF*;Fj;O9$jBA=4y8vaneUr&gN~-VgghW zPv$tzEmg`_%RM!&BTEUYNFCEur;aE|RGKTxaUQhyIWz~$LiD}3lwz(sCVA#uy=1*R zuE1_TBC3sLnb*AZCPCS?kQNYk!$UCanA4ITP+JzpqgwJt|w42Dh z&Ul!q3ih1r-a6+V6>5P~h-BCzS&r_XwqYQGqnNctQnr|zR4Er0TlfZj52|v}{GH9u z)~mtl$PqLAPv@M49?lS2m>*ahnCq9Z$G+-2HrXF7Z5)+t6@f~cHfhL?|BtL>V zuet`Du+lEGiO-p5=>Ggt-KO#y=cCfKo8`cg^B#tUa}=)j0|{q_8QrpAp@M@9&T3k| z&S$!aM?dg8k*59BKbRP zE~OeT$gtR{sQrodBp8;|4o^-r0-xa&NsHMjk8l?Hu8S{8CUOBZorCJ*THx)HJO#75 z&({C9LG+Vmm|y~!l2-$T`;IW-zzvMq(S(O-hWOJZk&6^*n$m$G0vU2yK_%oUxWlyL zbmKJ954OBalwixu5RPlZ4fjk<9Zz~Bt&jf3MA@{sNC;h~^sYfWFe=W7#sMqL9-S+<7DNln)YeT=9gQ#yT z*UC<4}0iMVoy2Cv%ryNfqk*n zN1Z`u4_*4|NOyq_y56PMUXjCrv@=i<;W;Qy37{GQ>I$UiogFR!>@LCFk|)5i1pc<@ zbzA?nNq4Jz9UL3?i!!M0&fIQPxTmzpG?SwOjxoze;uPIsiQ^Ut>%~|9pxlykoYK>2 zb|k^k0T#`(6-s*MTrmrBETWP3*;#i&Iwg1|gOJgaLg3DS1YVKe|KA`L_2R>~Q$zSX?Pb(D8qO!UC zVV?1D5{g5Xuo7nX;=XRcpxlal$uciNl+NI~E+VQvxmXhC^!ue(cJAYjQShrDz1PGB8Vmcd*_R_uDc_9c1G zid-6|POqdEmbvZS;!S$nv&DBMsX%iwi&$i}W_SJxx5iWcQi#m2-Xr(193b}zlIix{U;zzA|>E| zm8TBJZuX;E66XObY14a0f*U(QqgYpPGoBJvB2XKsMo=nlvf!HN9tRk#u;Y}F7Z*6T5S%c~S8lrjuYD5)ke4VyU z=h{uS9Atj1Tm%W#9xWA390YDhLXWq;NJFh;Wr9*NhwLS1Lqm-vPn_M?o*Qk<)8cL@ zw!tvF)ZT8avpz;!X2va4fLdvqt|><~oK-*CvFuH8WMMAcErYbHfubL^8No`zY+`%7 z^!iuFc+kES5#9{0HbY4~vyDQ zVcR3o4;(_W9?abC5E7ul6sh?Q1bsOUy(Bg+0h8sIB~2D$oy{?K- zvPp?j0^ypN%(4s#OniqRC>17QjUBR7EnD2H@K7{li7H``ZC1@shYlKxE?#Z4EsVX1 zh=In6zXRi9B z)?v+bITkiOJX_GCWo1gy(O|?1(OkYX5*&FE37I4zJ{@|AUC4vK@5T!50cop+oQPII zv?+A94w=!}I^s*#S!z({n}Ip+DBOQW(HRigOO;OU&7uj$EO>Olz#JQ39fVY%ojh}D zs{+YdKuVCII#7BRDq{@Jka6yxcFRgOQ$i{^hjRK1>GD^OQ;I`0ffl>N-7}^!YFiyH z@&BK)w~4L0%Jv2S4*4<=!#Nc9-E=3dpcbt{Eu>1Q+|024afF{x~VmspH1F)E4P za7+NCIF6iW<3}01TSBt25U4gD29qI&95Pg)1RVoO8KtI>YD+?UqXj4?tduDCU@UVedOKE~#x3(Q6Il5e z{s?xKz|Y!Neo25DGsd&o0-8U>zA4A0V*-Vc#<`LhVs2Sjitfq|IrCJtzn90m1uj#c z7Gp$eFy#`w%E|l;V!Qd#uHxbWoFv3S29zM#?=LAsg{kKQD3^H{78PiO@g8E(o59^^ z;aGvVl6XC%6zF&u&|>i9*wqs_dti;+0QGqBW-w+v*oZ{ceFCEV*tv$a3u~pLp&L$Q z}GFZ#Xtev`fuWxN=f@=-K-Gjeo(eTHinAcGa?)N(ME zXHAjuFkBpNo(~oANQCP~xF{lUOzrBA6F8596A+HSUrj@~a*ztkR^Dl3J}Gr_kBNdA zs21F(qM41SD6lhBl&B=%GnH+I^Sp{QL4St!tOJUtHRDY79CLW?7xlZaHTEuxn&3W; z8a{|+C@M)VJL9mJ237MM=DB?x!w~20ixcJgYhN(iX1CrU&-89D57Zd^MYJvs^AgJ| zY*Bdhq}XV38C3&{p;)`Wf|UT7VNlD?K+U|9}a{S&7D@A^kZUqo-1`^w;zxfUL);Fw7?=oHCV#1Q`{x z5fiC65o_IP^|JdMAp(#gFiR2Lj2C=jI@l^=SDA6&hDYgo94vBkMVd20P z*3^DCK{GnPa8L}}h-66FO`_8{?5f#m3FMk=dvLwF8eFcCh-zLr5QLRZPWE6jW!ajz*P60fQaXI#fH(&)U0>xo)bsAoCPWf;; zgBwtoMyz>b&Pje{PU+YzF8Gi<0gy@dZf<800trcXA2cYCplJ3;k;Dq4r+PnfU4SX{;J_=Er$eCGWs;9ZwvfE`YhnsK(sE z5hYn7Q9BM^%7;sN7S6}`1VD<@xX3Uji2cOB)ZrX1PP%#a&S%^stT2!8!ZiH`iv-|>OCfK)0x`f8&3Vcl_7iI8k zUIstq%+ednZiEHBMCmoMJkyU&PZ1=g0e4J^+yBNmtV76aaC zOAjV9fgeoDJ0l(-n{i|0ergoAT(LtTEt!;~BBCjTu`Grv0WAbs>ch2EnYs*SR0@}` z!AK=1@}&>W(7~rTH1WKgPVy5=c}M!lCRqa&v>vK*lct?>U8#GC$w1_sfk;Kp=!#5U zz|Hr#PKEV~&wq4iTyHLd#034>!?@TC{gRB#;3+Zh%;8?y8ns8bXmAUx&Jz379O>c> z6}f0aJ6o`AOj6~b*^DGfohZ-gO_GbP0B8H`2w^*z78TP(k~MLd1Yx<9L0xXup^j6E zDCJ&4k!D$fGJz%Q3}s+$)}WnedQ(QI@o))*n4Hn81&D{vxq=L?25v2P*VknFg zbTml*z^5bxIG0k$&LE`{r%`%@Qj4!1OC|~nGmi}D8DI7>Wp84r_cG8q5k02zb2U;+ zrqqUFsC1gwP!ym6C81EL2IFVPX6A5RhtS4=z&DLpDdkq441v4B0>6fM(;y~k3U+5K zGN2O6)$yvr9AKSN-x=2HGs9rM1ZOhcJ)1T;EtVABU*_eGq+PT2jUby**r*GzE^P7@$lT!{miAMx#OoXrw1}$YR zWTMp`Ma?AGIO!Q8POqT~v7yqC{P5=BGta{ZPK$UnCCj4mK^zB`hIDI|=)4e-2@w-U zz?hkVYq3U{NNhD(FM4W}Y7v?|+vkJrQ?#)0K^@*eZxNTm6ktZLxu`Zzx2yNN*uWt& z#QqF#JYt&2ZFmWX`C&Qr#e}`;J;Y#rYzgH~PXMv>$_spHKPm=ls zB=e_7bT6va=|^~kg11qj8=#FOHu`e2Ju8h-Tr%IAchwzM(6D7!!R}y!?&)_dy7J^j zZ-CL$^pYp=H)m2pixX>e+){8D!5E-VtF}IW`?eXHVsQ1pTrmMX{xb}kz^Wm4^pp1O%{R5z#>WSkRJEH4q3^RXuh>T;6!+>R6_i-Cd`6HxDffboR^`UaK- zHjp~PUa#wCqWF>2aPme-BNh|?+%nvV$6-~<>8lj=8nvj(D-m^Fv3yw4T zmdzrq*9L)0Ezb;9h;tK#)KN8MBqSw8kf4^mF|f!o%U066ipG*c+tGes6sZkQlM0pvw3p+ek-RjD#>jYmy( z3qV=K*!@mgYtKADr0vZQa0&#oN7|Dym>Zh~=qsIpKdq7iv(P#iMbr3_b<9i@)f{@D zle%BuM9L8iA@(JkqrgnL@|dOMX%mj&M4nghjD+jJ#QxYVPf2@CTq-AU#}vKqVu+mun91mi+2VOfJmJ24YA@W-Ka_e&As^CRrFWe$YRwe&?B zPa|*U)F6#p>k94KQx!(k4d*DV*9-2xhctqZVZu zD%u?2YW_K#QQ{6?-M5czpD~D3m{#R-KNI72-NgV$aRTp}V4rG2l)yAT;$>Wy##sZC z8mmm5!`$+1%NQv{IQsK69Xxj~Zv&k?kL@1ZG^=HF6MRGX`QEv6ZeiGt=LGH!>&K%y zGvOx2EEO{8W;&D6AiL>~td5}Qyy9H6rw<3J5KgbqymOK&mKN+TW<+<0mR^|)-;l+nEI zR(;980I*5Sja()36I-|PLR75u91&+gf~%`IK__{YU^dCO2hpiL8dXv5%xH|bEYQyp zra+SkvWYHIvomQnH!&k?&TJzgC(M*^)mA6P*u*CQ&HbaejKbG?>Q?yZ;#9BCYaeBJ z&)X(AUnTWP;`uEPS^Jf~X}NQrG2v0F=>B?o8}I_mY^yap({_vhHLfvKI0LHsEyU%K;-C!=bFjaZ1C)=hr*w+;0qGWi9?O z#9~Y95yS}6DQ2N?Ad=+f=%)vKE0`I!M>A;6zCF@~ZNxLMUsmS1;4EATC8_DmU%-LK zuDoL4n`!Lfj({Yi#b+F25J|L3$cR!P$tLiKonJFD6{kQJSrjaPvp`f7{nPMOS1w^5 zf5|zxH=2()Ixm{Ov%Pb^jXdEell77ttw;0_Sz;lvRXzw^D}_F=m zR9|b>@|K$hwDKy|5xJG&VYsxybhRK>rL0yDH4@H&OB;|Ele{L5>uXoz#2`(quXm(k zOq!c|ZBVP0YRUFCRI=GTjh;3&*{I0IWmDX)_{Zj(nqO+OtV%}lSO}*Gc(F3ORpczHyO+(6$ zGtdN^2h~!Ski>?ZB6vkmmydr21^Y6e0Hex7YLh0U)GP@yE}99#s)7VssAv*=Ue7fl z3t5&I{4^-5DBlaIV?xg(!NHUEKoV?I?cPijx)2FXR!1hd&07j1{kdd$!x9(-Olt39 z8a2%cw4k*{Ly8co5!DKDURs-rN6nN0NbJ2>Fg7#62Nbp(ZQ6_4zzF90>JdcR#K@nT zkT0gL@~KrXaix?MfEbnLU$KDJDyd?93_%;rzp<>P2@3siOLIa{C=Z3|dy^K&*yhb( zf@o@qjOgdY5Vvg>@PV8u7w;e~?MIg3Q6sVuL6+#@VpEa355&16_;H-BoZ&q>5``lU zK=zZ9={5CurZsv+lRr-ZTH@mfz3Ij*{_MPSO>I`5L(Y@U+f&Cfulh1i@5RV`bF2X`--(_YstEP5kWkS)5OntW5w+Vz{dq53OTbM4#}Cd+VE1up}9AZ-f`Am|9!lup3FR+u2 z`-^DHX7o-t9p9!fNio(?^f5+Ka4uVY9w!qW+F}yvyr>8g?jc-6R1m}D_3S0G8dPI3 za2A`vE!G5*1y(80(Z~JtM(4K#8-P@@DlDgcsfyqWu7t|M8r~qPZ1nczttOq$#%pnN z3%I5o^Xz)~otLQx2wAiJPLH^!5Kr^^JPvZRPGdYIF#strEaLN;{&G!8p4@XdF^K`Q2o-r*_mGL75^^HO;#eQYF;DynhcBdQ3?MiEL&K#4sw$+8V~^UxFwkEyEX+nbPo~dC3+7 zmt_nYW`vu?-=Ja(TTU*a4N1+_X`JesHk8-v$@$(4YPnDx3_uFGc~WPWU%@7IH(AP( z6M0EUFIL874Fr>ZT#V7Bm?DB9xa;#Qc2`TE0(T9`xp1-nGKOJPb7qREol!wG6hq-v zfsCb;I;F+KB?zZIN%n4Vf{oj~V*pl8q5$Zx2Z|^@r8(3Ybf=*UH&2bF9iI5|Ltplz z0O{ygF6zYQ+Gz)4m7=guP5VFT4;%|8u%p|4=+>?z`Zc1=R zAMWbNLliI!GsbuJ7Ibkd_@iX=EEt!A0*Qx2M1gsei_#R&)sObQ9|#i$Bx0_lE2U%#;h}f@E{4Ji9FRvN;8F z-N)I)VKY3#{DBj~3Vl7jp@t0|6 zqvHcFNts6Z@aSV%juJ-0D8F&N?1ZZDbdNki}I|BA0GVk1?Q}u&Bpz)ep7+p z)S4EwMl=(1i2Ltw;J8nDkIl+Fp{7I>wh4L@l+U1$UX?k`Ur*%|U!vKZLyna)8Uf8n zLy;_D#ppLtV^h^1!&Ugadc7ES5^x*U{r1Vx%dAG#NqUbsW;r&c_)g zi;YtQZq_M*Y2hHKI&U2US8m^OU0LV-XQa&);;G(%8n+9jUDtb=uEdc_e*m)@Nj=*V4j~%VOoC)Gt@oW^GQ&)8zVZmHl{%?nk`PhvG=Y0v zZ6cZ$lq6J;t$_5xdDcHqv;w1~Qh{ouX(->cY0I`*z z5?2Y4r%ltJH6~4|ED|T_EmLGEFB7FYDAJ^I`Q#NzBfXUIiH6D~DiO=krur!mAodbe z;w&LFCY2&>!qX&|C=gc>ERhv4AzhorMLAQvOH~H6L}hTslGiBgD8wl$;cNAW^ezxf zk(jZhhLFcm$7Xed=U*Tscj_VM>0#ABJ0wmoE*Mbt+tl5T)4xe)v)A067mYWumznkE zK6xB_GgWn_c{qUBHwoB`vY36VnCEA?$@bJ~?v!ccStyIH)ZT}vv(`Q!wB(fI$*B_a zh>-Q3ut`;-O1e|creQo9T9YDPlhag>mB%L$Bd`5Z)AWGxO2maFq*(-F(>lb0mU}tn zUXi9WjBAWZK*;#U;681cDR}T^hLF-EW?-mIjG#`Fn1JsQXB|QhPE$ecW!*hrAz4ZZ zDD?eOa3TV$vSe6gyod>dlmu)88G{xG>qO1*a0>@Fqwu5`b{=J3O2TWXs28dI@NzcK zD8d(9M!+d5JR&o{#I+VB$J?R>cRK548XR zb+UgBt63_oRT3&O5?9(xN?p`YSyCDp6g813J5@9VQgsA@1I(*~*}=>d!-=_BX{lvl zf+>e*;K8KsD+)08OkP;{mwYGazNK#V+O4=u}9Vc81zz1EO zmj#7!C5H|IfZHFr+Xfq)Wd}}8j#_jP@4$vKoa`+`PX`70LrRnE${8of5Q%|v$udOH zk|7FA>N3V%3Vjq?3R%?AP$<)b12l7o=erjdyR(zJtt*8H4LW*we_67Moh-UlJChgE zuqW~KaDaFk9BYZLa3W2BkOl(+fBO@6!O!yzAd$ELSNfCZ7iZ3#?Duhvz+Ac%RKkcH zQ3y#r+DSy^`!;c~3|-e|NnUKkiDK|Fd2OXSjVZIp>I$qyZ??c>C5%&yW>f-8xYsb2 zDG8>K*bE;hr_{lS@o936QF9_Ui@vCH>l5#*TS{<6k{B@Ll0awRY?DaL1~d)$`kf2DbsJI11ou9~43xJ6gmZ3>fa7&o%w z>fr@$VukATEk#cZAv>_)-{ovCwtgM*iwg?K0+UTdAaFrK~Gl)*@c$qj6c zu$zgbsxQHKMT{5@9X>~0XE+As@#ef@+Jc;klC!W0j(iM|MQZRS21#H_f!BBllk$Q) zrp4`lV;nYm^TdKRiQX6B^X^`4D^}qkoF^WPG)>(HK-{ z&z_Z`r`z(3DJSnuu@;E-8>kG-&YccxtY+|DkvRmZg405qY&hiT;y0XUg9ra)*u*#W zjLO>=Kqh&BX-Ccby&_H5iLS~}FGY&As2aevP*j1@21yH`T2M=BAkI}}80Jlw$3;8? zcR!W&5yV=8j~XyvwBf%5^K*laZBCM~GKr30tG#t2F;O2p3B5*L3}yS^Ls$nQ2iKX5 zLpl%_K)lmpH9CW2G3Wev>$6m-yoy>Jj5X-kA1}3C45Hx8@C@%&Sq|Nd-HdN@s0T=F zI@we*quN9UqiK}IC>R&7qQUKxHi!__)qo{RW0O-G0;Oge(}-Tdm0JZu(}+H+Y$>Zo zr;xQ6NMLGK$k1luc}%p^1B@?H%n6ytN?<2Ag{1u>L^OM9?zg@9g~blvM3G6ZF`j(& zlSY)KiDWaJrlKBFS^$es<^__e{v+6l;Kea43q%1*{bIqylcT3#N(7q}Q}r>`T_iQ2 zMQ2qK|ZpMDGL6o(d3^fHo3J^U5* zOy|3Nycg$Q`D}%#vU|3(IK2?2b>!Tg)FW7pE}^KDpwyZPl~4>KcOnF2o=r_?3mRoY zlwlGqLs^ho7P&681gaq|SP-(7xJ=4`XW&=*v*%7M&T=ciTI@?WZ9N%Hd^Zy?_^H`J z=d8R00YiAbGfzJ5ynmG72T&;^8Xy--onkEitzUU+wwc5wA6vQ?&cD2{Fn5AeWCL7% zHW;w(kQuY!Z7>pl6j)1WmO(YumvXV3NsSqhAY;p6e$(yF$s($ISB`#| zEA9-BhI_KY!XBZNp5S9n;MS3TkNsYrwH3<-gf}0fcR;*Rn>o}%xX%=yc^!VvNAl4$@FSM2hh}7HTkzJ3Q-zg9p0M=8dB-vwIZ{ z4wQM`HsNdD*(N{do#Z9fd=`L-2*%*B1bQooKv>(`t!2JOd^t)i>m(Qc`S`$ zir+oc;O6#o9K)eU%%1JkvAND<&por7!-Nh7k;6U|QV3~WA!sU(R=R~Br^T(z)lrU@D`<7R7UNtSCX{#Uw!% z3q?v%Dgp_Gx1(UAMRbFBK6EjAii~2)V6R2e%r+C6%pOx*u)_piv%CZw3zk`6LYLT; zVIE*xZb_><6~_{iUqqV_h7FlupiD;r9zxfWUByBeohv#;TvfC*JOhs%pelh@?6h%T zBhVcQoSHvhr%URXM60-F5v4CJVhXbosa}m$sM7+MwvU!e1-=2N6FI5|gJyCDI8s+A zGHId{YNr>2<;pWeQP%-mD$$wH#XK|)HG43OFU^I78A^=S+LBt(kmEJf=2H0xVyaL; zGG>kaC8J{<&diWOh(0=ydF$)ud1p24tDBQPD}n{xGr~Y(0!@r?iG$;kzO5@ z9Vvbt*Y_og&IxdTR)S}hCGSuf3z^V*08P#X%XPTD2YbkMPsK~!>4lD5)0MK0gFPtX z%>>VJNva*v6zBX-X+=q?TbwePz{^H%Q%LG#j}N;R_`aVE4}dlI#7u`bCdv{O>0aSg zZq9#f)`e34RD~r@&j*W~-U%{g7?ZguNamc!W_4?r#HB-76bpfgZDVVMddy*H3WiL< z!%s}AxXdsKk>$3xI@1PBNor_@;XY*^*|rz$5`c1bR$9V*EkOf1b#o}cf}awU}0@b3D3)}bN-W?MI**c|KQ)HIuqti4CYPJAXZn7h$g zl6K){nGkD*LKhLL3V&019K@8AgxfS(MtOt_t|}s05OuHzbqa+; z_l3DM2LRE`K1{yN=q<;NBn2k1h0uO`lvs95W3m^4Owey;`)6D!J&AYuqNY5>oIRVN z7$-nE^z7M;4Vbe*FUL_sCJY_69+O8Tku~$GVSF+-`Hq`dU;>)a(lYe4ugvO zr3clk*h^C##(#GtveK6W^e#V~OB$e;f}3M>I|AP6n_|Cfsq!zTO`zVu?R|!D{!?@E z2&ByF^EJrBowqP&jzaY!`j_*aitU8GH-^x?>FU(nG&Vg{C*SUKt&mZ^#g5H_U@=5` z8|Ni4An4CkC;IY0opL(f?PIS9 zpXpXQN$sTJL7MSdq`ZG&1~bkB(96Rp-6_9bjBO0l*pV_&VNh+L3Xm@4B=!^GQmmKJ zA;V3HY~`^U2&%c`n1nliz7L7y$wEm9-Ur5T0V`~?ki8Oe=*JuSxE zWCz3RSeGs)yVa5YN&KCHw7k(;KDsf)WyXPc)tK)9P0ErI zce|iDuDHG&q&?1BdN2S&gyo!zKAStJPR*JnpPFR`Qc~6N(f(W5RCE}9Zs_8b-UW=M z2GjUqdgYfeC;^WXYu<|UMO~2*x8yx-5yegzL$R>z1q?7xVdomQwW0BVN?}*}fv1kYnP4EllEk z1n;o3#WWNPa$_l}j$+$fb+m`o$vKGuRnmg$sNzJ(NxV2ZJB5trGj&e$$X%x#Z)jp) zP$??|hXM$u@-kSUfJJb*mD%NSrNu~WX>{T!rf#6rE&h!@+ zfRwdMbz6v2v%RzZc?pOu35$u3oeb&3vb8?pc0uXR3h97kAX2&M2iv<5`-z8|-U{ca zf-k{^$ATz<5e0BUZSQ6##0Dkp;m-8*8RVNZF52fxAf(ad$X8(#fhvcQPAy5bfJ=?- zQSlNy51+~r>!y%M16fiGBAqR6(~!{(rGjoySP#LlX&$jGs7zxNOzm~lQ23F}D=;~F zQSsV`K?7?H zPGk#^7bf%9Ll}hVF;8!xoqg7#E|C!cXCh?T+py@fQI)22=eI78rpQ4@&!XLV1uw*S z#v1rg7sai6xHs=#Ey5sQ&&Ehv^qdr~Dz|szW#Hp@`biPjLC>Hv1khN7kd{!OB$(}i z3yss6iO*7#Kvm!bBxy?^yjvn;#*Ll0t{H7*mP{AB=+e0@<|O&Z1x-^>sDWZ-Ix4TC z*vk|%Z$!glL{;R}d0d$?um&BGSSchCUY&Wu(QR2_V}LnNq4MfN=q~f?ey7d?47yk9#(ZL-TsR$ z6re;uxMLGGtS7|75^ElFPzIg+mFMSS~fQ>=(e&m=xI!1 zZ zPP^YXbfOum_v$UgD7Z{n7Gs{IJlVN~E`AH&nEXU+BbPkI=?)tK80K&hO2hDHVHwtS zzO*AA0Wep=+mfcFI(9^aCG^K;!#Gj5fXR{;ItOA4zQblB)c}mp)#7w2j|lKe{~Vuy zu*3;lHyv{XEsj5R%VW4)-}6o9sNb05c-0t>&dzdz0%c{C<6>Oy(Zx2*e%N1Ez_WK) z3MWF1p@%a%=yhh%5TRp_xe)aJB8DYA85ZHxg&}H6Lpp27gq07G3MSWsm1R;?!oz_m z32cMY4^vns#eQwH+i|*TNOGwI$pQ_#lbGJTT=`Hu%6Q;8XQS za826MG#b?2WPqo3QA2AI>)?bN60pC>hlqrO0P?U0n!+B)!yb^*!P-_*0dCJVg?%m$ z`&=#TubaaDIuHBnTG)e4VGrhE57xr|LsQs)$ix0aE$lxwh5g4o>_67R{!>%ff6BxD zQ!VWCO<|wU!#-aNyZ={Bf%pF^4-H6e9{ZbZt8QHT>%kk%Yk$qY0I9{^Xkq(nCI(0? zc%zZ+uUQ!&wcw3*w!da*fYgFFn%e%FtpQRC-e_(6Yvu+>EqJ5B?XOuJAhqC)Hn+cK zbb#c+4>Vfcftu9;!r+*-?k#ktleW^sXsG6nh$px&IXwXE$Q&jL=phXL8+2f@a1O)( z-l-Acn#%6%pvQBZwLZ#=ogAwX)}Uk+n!FmH3`Hh6h#WA^mdjA$6769OV{Q_^ibK2e zJi@vZT`hK`yAZ<}DDg)DW%8cqe&g62vEd>H0Y)Yh(`>(|I8hykkH8EXdl~8|4$5}r zndQ#(5v*)nh{M*9Plr-is-B#Vkha=$5+GhV&iYda$h1>rKiCGrKIn>xs#WTP@R!OKx8|BDLnoe2lQx zldfTMg<6lMkVS@r(L^n20uC)?0uC)-0uC)&0uC)z0uC)u0uC)p0uC)k0uC)f0uD8N z0*>?*dU{cP9ut?-SWaR&h2;d6(^pPjIdvg%zN}lij)YM!rmOUXzPo8~bP@Bh801b$ zi-c;L*92Bmi+GI|!>0Y_I#6-VjO!q1Rc5ON?*MB|K^xpNV3l+Ndu_W@ddmi<6kzyJ78{QlE({67Dy>ecB zIn^=1E&RFc;gc?B(2Uiq9amprvGs7`jy$n|uu$P0WGc2?4uuoyg##V4@F zmI2JNVRiPz;u+m#>DI~I;zobI_s^(MJJX@9p(?|6lmMqne~W1aj!OfS)O9FnIeW@^ zLb^G_?do5dt&9Df=;VYsQsq`ioR5f8v)t?vQ0A9VvfWx2*h1h0NU|t0zarrxDqxP- z>Kkf%%rkIxAFJ4%0VW+dJ3Y^BE}gfq5rs=pGIcpRKhJHphCNHo3+C7?7N4hat2eTp zJH@ywAxvJuv``#y4+c;&#RZF$n@+?oG=tpb1-K^;t$4V@j5mHkG+DJ){w@= z3TA+3_q7vI$mAqoEn5?8q`L$z_GgfY3Jd;f5N3hR5olU6nM(gjBafdniS0bBKGKFGXp2% zx%-I+f3a^WL~Wc4!O0AFw{Z7~=gXuV!RhSz-XtR?%62XIEt{;&xs^oHE^Pxg0BAZM zKmvJR#s-o~uMg6#BTRtT{R4tSHg}3SJ@+j8s&u&zDnNxfkF#W+q=In$xBYH`0TY-p z$&XPV;yucPY7+G-4&{r2u^)%kpZ5}l&5+%BnKPa|kDX||E5@><2PQ;+P z+JYuR3aDH3F)tfbtI9}@{S;m7zQeU--r-HvEftUmb}Nhfl4Js~i%Q)7HzA+`BYlz{ zMGO54O&crfsbhLJ*t;o%)Zj#TV)D_GDFbeFs&qe-yS zOuRI#Z@q`tguO%o;$_ngnHCKW)m+^n6+v9J;Jk-dt+%dPq2!ZQiK&ebax+beN31!q z!dwwr3rQKyE2PZtDv-FO*2}h~fQCS$6tk1MG8V;5!o-O#mtoI{7jH-9KY{4(I$h(A znR2&S91_=2O7rc9_5Io7UF0`c=_eM?xc=$@qjcG3ds4Pg(M(w;(OKm_e;u$pz^S?5 zb#hCI^yB)dEVFltcBw|sZEtm`v(Y+Y>>X&K4t7@j3c8oI7*sihK(C+gcHJS%h$AXJ z z?Qa5&E1C>pX5=ce4DHRQjP=&0Eo>4rHUU;=3DW8kZAT4P&$oJdk{mPX&Ae$XQr6Wr zGUM^}oJV@2@d=S)Q?K1kz{ZTsYx^iflM0KOlGJAK_?j$MXI5-tR8-hvaIqA}1W69X zh@@!O5bRxv%JQOR8LW+k5*bi(J=BRQJS^8Zcv5qFSXA9QP*h<%NK&;sSXzNQV7&+d`H#$tD)gtVhL zgfzb-&jQLIBl0qoOaXJUk-hW8!=a!ZSas78I%7<7h86T6-sLV38No-LO}C#r#T9{^ z@KiF+bh;Ul3Wo_~K9uuJ6<+Tg`2FuG#{q?v&EdSDKycNpPeVBvI!H%&#Win&lK^fb zfB($yC4ss1dZ+6AeebjW|na)kI=ZP|-3)hSW{H>qL^+5 zaWj|;X#OZ17L#Gz(W_ZL;uv0nk%un-=-2z*_Hv|&aPQ#JrJISFg*l8?IiNs!>QGxzxQ=U4H1qk zc~a&p8ZL%Q?YbLkIk(D%kdruSsxCH>Jn)QqXMC#a&BB`X!u&yn8I{QQ z4i;DZsS&g+Z(&u^-{h-@OYEQ=`pE7*#mOaWgRt%-m$wR4k>W^qfeSdY^1#T%aTeB3 z!(k))#?16ApM%H3v-FF2mc`r*A*Y~tlxv(6ooT-ciW;mpB~$d0D@?krZ$K_Ars_g9 zPL`P+2qghn6q#Rye!?L^n}heEaNOm>;@sFfIDI9p0kd8Y5Cxr}2V!xe?{4l>TnC$8 zLNhBMtT^`GLNV|)kgJe5?d^`vKoL0N%=$rdM4YHvFqwsHMExsnoU6hD{H#+1)*)|AN6ZKvoM2H<}w^ZgkGzG3m{T*InAF#@@|7eVt47Ppww&FXt%q; zgv8>ELV4cqw?JYbENi0N>a5lwUAe>$qsV$!Y>hIIP{}adm&0%K9HFaBnitB1yjbRIc|&zE+&B{ zj#WX?ns-NV`f8pY3s6s!p$fbVCpPfT9PaJF1`x`Oj=Xq` zq6Xkp9FOCX+D#|OG!2&Hq4X4z(;TSL;EoyHA>nw$z60!Vgu$qc>}Bs1hU6tMV>^!5 zrgZqDF8vzDk|l8SQG0sAn=TujBYNyYRD`+>MUJRoCeS$Iz7(cB_!6AOVR(a(ju*tB zNXv?e^s&gQ2FxiX!k9{PLoTh!cba#a~l}T8PtNVlJ^qA`E#Hvb@ny6GWc2Mr4YJZH5vw zV-rlAqy!NwKSAVLNsx72nw}p(r)-U=7=5E^Vnkrks1h%wSWAsQ*g;)(A2QHnayM$H zsOa2mOqLj7z(ctAV3u`wJV_k+r6V(e!zr?_7`0%Z7n;ar2NM^1bGR)Foersu)FwS+ z|4UXWrb5e*L5xPs-0-PSHl9mOo`$xVSUgVl^VV1Dk^)$%)283iX23#Vjv+DgFxiRU z^{LZkqNQOBxk`f2B;Yu$2_j9P zp&G?3iC7n}CR#E6hPVq!V7o2-G%1vRhIdr1cqA@`P?fk@oR!w-{G`}I^#Y#dN4L1V?Pm(kPql(6U zYTR>(>lZPso$7T&yRJWMD%T^y0@Yr$bDD;p6a5MFxrl?sV}u9lpm5O0g?G&5XTLsf z5l&|*(zs|4^D-Xk8`)OO;3EzzyfQ5vpkg{TXu>DqUgKcc8it$J(%6jF;x~wG(YHW- z&I)ml;-UUK)x_k9b7weN)|r zQOX43OHu+fsnXB}4lE`l+5EnN9K#Ok)B5uUF1+NR;k5hp{=m@TE#8_SSsInQkxP_` zF9>CFhS&@gsJJ?!`xH3K=vGAnfar6npT&itxUEe0q06R1 zT>XD&8vCWST9+j@H5FZMdn1CYktkfPOVwrxr-8U&1z1R|XW^sB*yJo6xv}Jqm19#= zI1@69dG&sEwlmY4UXos&XqJ_aR7@f}c9OCyBa;VM?=}htz_J(VrLbeTk39=<0Hz3Y z4{{L=t_#M7c^-K`i8>p-YRr;vhGSSZx+fOh-tfeeTv_BXmP9FPe3={zl?L=d3{VV) z2{hbqhLxi8eZ3|!0gy4)CgzX|n{JH#5^;aJpH_25DmUsTHK3pv>c~8d2gM9?`Zztw z$|i-7CKkm~k%^SR%kd>7Ni2qmW8yW!mf(aOqwi8ujY~po(1@ME;`j`B9G6z(%~akn ziCTnYi%jL&rNs;(Y4VP3@k3~$j#GzKFrjC>w< zT;bS_h#z^0#e87Ena3O%b?_!pcya^Q0EK|{h1od2pgDK7Csz2ipL#Ab(SWY7+Kv*+ zv>u+dTYQMpcK?nl2aRkp~k0BV)!T^XSV!a>S|{He*8aB%^bk*fdf@v zRwLeUzo$9&9UoXwbC6*qw{r%l#jF_fl47EJj@MLZ!8H#tSdEkkLeYhJ6vGM#8?eN{ z2F_z7;~tW*^PVJjA0`7TM+4TVd<;fWWPZ4Jj@O5Yl-})snGEMPCb^$9a$TgBK5ZQn zKt`eMWJIBjWdwLrgh>G8;d>pf0d`l#xhB~8TqA70IGnQeT;9|gMtVNS&U&cw))qI0 zl1~oRxa!ant;U_xstmkW-%n|1{3(R|Vu;3@LUJ07FQ$3Z_3q+Sm}h;wYpF~_EyW9_9}V@%31#sqG8Jb_z|3EXl_;14*p_m=g)M{PkobD$e%@7o0UQ)=}E>_p#@DL**)I5rHcecuW zpN&VvM|_z7QI~6HJ;rzm+ND+57lEhkPb{?6%;&KE+~nFZBp7^Bdz=B;-dq?3h> zSm+B%ooRPnIQgdWFaujhC!_Z|IfGZE^WKoR2{@9nPH7PbDhB3`AGhS?obHE6ZvC;e zB_8Ipra&8@RH6_?fCm_lclrLv_$-g$$H&dl737!-d!=x1m~;#Wi)XOIsEZA30V6in zo1L7-4kFBEdUmo3z_Cp=$*=B7I)aq~H{Q`TSKiR1JL5bY>=x$-d=>=6Ty!|zpIhWm zLx0B4VVgu(`mk~^rCOZtxehSZq`9td(`flgA*8|nW1fcLg$%m4lNzi6GfKC!FC%qO zj@x+xj#ru>lg`QhQ#ZP=!869Prz>MCumYVK0C7pe5=@?!CS-OEM;;8<2biKPGeOQpHHSSZ zHX&kLge4yWfy_Y34qCZ|WEQ*jalgq9rG6i0a-CsP?GFFq7M`C zG*F;=2{&1vp04slA?pAbCw8ENo2 z@f8rMLIIX$^+s8xfJDy+HQ%G!JRX`e#0xpiSfDTD0AboNQsE}(7NT{s=Bl%-E z)q*L$0FOBZYR!m@ypS3VQA>$}3tCk~#AeqB!Vu0)?Q5#(n|_yiMXOUF}18Rh4FZX%7g>pP*qBs!U8SMN#ZP|gu_rrk3?$gk4Lz{0y}jFUF|T*ts|^Q z$`}?zj@NOTNUARHCj8LSTxWoHws1?(v01N8p(IcQUDAzMmJI_@x0I z3BHO^pRJsDj~;`eUh5E+0DsXXj#bU~&fs=GJAb74Q_- zIy@zhT!$L%sqsJox4`{Y^ygB^jHI|w(xGn*{%Hs?{sF&vKMqr!Va8(7J4vIFyEm1=~>JdzD_AspByoT@| zV&u)xDG+;p2>=71K^I+Xj9!+^ols!YfpWI^94|7rag&y#2_yq2euz1V?&d6JjXEg4 zxPBGym*MQ59*>R!xd3kV2;(XpCdJgiv7vgg&;32ldSgg}j|0L+vw*m!7iZ*_EKEWg(U?Ro ztr1G1D1eza4m>uCnW0Rn{+{$$(QacpQ|UrFNW_a%=hRUgt-&I?qc0tdN$8ERCopfI zM(-k004Z?31(l|@0p3kGw<2R0uh%wH!~_7V#vQ+?VVKKkRio3b37zMdMC&}1(Wl#| z()(fB?s;R_Q>=YQU@GD$rLr~~ zc!?fA>q`gTbjL0z7LgpLbf;!#Tsev?7RQGB1@J~8S7wec zItOjfT?g&D>1sLye=&6i^#fkl;xVC^8PGwn3n{QE^w=?zNA@o-EX=VhEM{*WVkWqb z=%y{z=^#dhM!*%y`L5jTGgU2|@6Ge&U-a~J$nFS`R&{A-RdFH!Fe(UzWxTi*ee%4z zFcc@6qT_*Zf}t8r)pbzlbc{_+a9Ra&UZlDGJ_5kdpX11fv>zvsjj!c)N!zho+IU3w>-m7;r1I zYkSx$daE1j4?{TZtUNEn6>CfZM%M+MulZgfkXplo4 zKj_B7TgP=O5byEM5_>k(8ZQ7xH1lVAQ<&jn3>v3ySB6)H)u5qMrh4QCm%JfDPs+Ht z%<$7%(8pOU=b?b%EPJK(o6%w!XtIxTLA!L%Si9h3vJDe=70a<7Xd3IM13r38P#=Rt zywkimr~0&-+>`Oh8wMGWc>=jNINKAUwbhm~;Nm(pJ2&5_X%nw8R*Ld>e@rf6s*&4N zF-_>S70YZuNQIdeWQK@2@PcU3J>2U~Px0PmO^d8Z@qH4RQISUksNQi_?93Nv8##9b zJ@vP750Crx>SUehiU^bERZzJHfkvkXeP8ilAcduAv<-L=9c+2G3+uC2`u#br%QRbM zLX7XbyxLuO8`E`B2PDo`MvSKv!EGbrid-7TiuwHIVZl@J%hWyq?^~B z^5IyP-Ntxj!GO5Lc!7g(ykfo3n?s@U)HM<;vCA<5lmgcgVR!=>1K9VBJrjanC8KpY z<*SU4f~fVxyD%uXHj54)>WEYt=}!rqQClxIu+xS&MndXfuwu}lv1VRFPAs8N=wRFC z9xF82bs&yF=xisOp)f@nPtu@5k^1>09rCF~;%04^a4#fi>S)cxNC2IlllDQEZhZq3 ze8E-c=c-IyfMrlN7h2(JyG<=iy87-x1b2C&yG}3ljZgMxJrfR(-BU3vGLrBd#>lXW zb3vn$9ZFt&^GN%}9@)a~3Yh3Z zH?qqh$T>bXgM|X!tB0ioJf(|Q5>et*{V9annOK~eVWDMv@7;vEp0#L=xY$qp7+MOi zQM#oZ830cSX@><1JOpC$cE+?Cvl=6165ccBdJlu9B6|^QIv}}3sfQG?1a#g#hmim% zI=hRD^OJZ=!c7ioZzuyM!D>Nj@iT|3X@2JAXr&XNM#t3*Tw3H7RlGxM3;J}VMTz8Y z#(HL>Z-KsEHK#vaUf?L{rtvZufBC-_^GTG6xZ)B&r>_Qn=?b&b*gHQhu#-6Fj$)7H z#p-Ae?|#jm^9`(9ZOOr*a&%iuD8#8*oz4pFOw?C!MUabLXw6Ox26(6yUv>ZL`2+O) z>iPW@34Zll^~U)HCMztNuvB75GmvI`fL=XUMNZA4bYL2sSKXHBS{~Y+mj{oU@{;$=}|NEc+*Wd2`_5XWy%l4gHx3@lA+e)&nL;P&v=OKOw+`5gQ z?fmTEXD2_y{5;IhBm6wd&n|vO_<4*UFkRWUuWB!kLWU8z5Q%&R`r*}Wza$P{!ueex zJ;w02cFDKJFt_weNc&%2BhA0OhS>Ii#~#8ibqK?k?mObX zBku3T{XJ-Rf_CS_`>H3~x4s-|fABTYSNA^r%K!j}t9uFlmu(WmHgP{A?q}%!=o7j> z`UKpzfZGWRhmSA-2cN5Tec75clpV!kJBFZ@$(DY<`mOk0aFTrm9!k8Iw>{<|j-p*{RSF;C^0p_d zZ8-?$^QhyzWdwXZ7xA<%Z}VKdAM}q@TiUlihXcxGx_;zG1Yd56;LEL@v>&Ktc-Sj{ zIONE#C`Wc7|AwjKVJ3X}Ne%y`cy_CYhSOT!9W=d50Ii)gNyY&a8y3)$)UJs1H@d{u z{_t0zpfVKSk%x9xBP07#HSVja(L=l%_tn+7uc$`HS=H#cc(t`17w@MU_XRaRw7vBt zsu0PX){|SS3Lm84C~6diEgyZPf)ykG0UbeNhPGBPb5up}Z?6POb+wm2)1N;=h3(~; zZTq$i?fLs*eA~;t*7EPj^>;g<>i<%`d~^pC%U?y$w3nC7wX{=8Uwe7cJKjYl1_A!G zMS`@KHy+!W`pLQ@0-fHr6Jnhv;I!9w>-uS!SL-pS7v~)T&Gpl;2TdAi9(7tI!N@Sp zh-rQjrKRg`|3dfbU%<1y`U4z0kaPcfZ+Hv%wf}YR2;u*wI&wz@xhjSB>W>8eYpVq>I9&aK z9IpNV^|t?Y8ys7N#a&@B1ddPxVnHrB$W@l9t3QHjh}87_z?6Kn_IOk)e)LKEqfg^% z@}p1oxSA2JN3@O0)^h;Kbj^&?)(bK??|Vpo zTbG`BWZ%}I5yIe>U{A}J4J9G`KFzSt&@3(;B;}*~9&#>#ckSCskK;gNyYvEz1ZZCX z?3s~$JG^TIe*{0K_%X$AYhO~=2-+*g1nIOuwKwjm6HWZ3gTeViaE@sa6M_-dsS-MFSz7C^XR^9O#U+?jPlWaJDdmd4OggxE_KkvJX$^ETxefLDx~;HMZhZ>+EDdw zh>A8S_=dorRrs@(ic6=oEdP!52SqxisIQQFA+48Oi5DuGU&osWs3eYO8OO6y`Kg4+ zL=$O*c@iXq3d`A!-?b;U94pjMvArQVJBFH_)Mj9sR-kj<&D7kORh;zgLbr9STY09z*vCHiKNhauktD^*GeN!d4x2 zfd11KbOvQ$a&4GYAG~HJcdcbcc8$ZSHYo7@fJ2nlH5yuLMf&9W6-e7rw#e%vw)Xte z{a1`s2SY~NwgtVnWKM%htV8EvoZMG1gbQL4pfGOUb-Afe{_;9?*^#l?dB-4=G3 zoH33Bvs`(Wf~@RyI8-ykVvVFnoWLM3%$Ibqby3>NZnbn6P@8Tu@o&_U70zU??3J(d zwO7R2SDuE2)AZUa<0HZv9~ddT$aADl+9>=WtN?b8U=Xkiz4%?Ia8v-75lan2jEce!S6%_A1*4>G7tSO6`C@2<76HRVL3*4&;ONZ$o^+|( zD^J6Gwu~^-R#;ImCI2CmAb4FFqAMwhq(mIPV8W}4)bvB$!_>C=RF&#BmF-SdwmXS- zw?(@|E|X8*`MsgHZ@M^C9GTwmuA8O*2i_#YmuUOYMG$ZYmZPLzzgmu8> zQS!g6_1NW4ce39%(!TtKO7-tU?aMF?*XCgcI}h>?$wPeHXdEW#PTd zZfE=QeHJyi`MnP@FS}Ck722NHl$AJ>X#Uu~d^!hoa==Con8^W)UMBGCMDCf$9n)+? zaE_wdm;Wf=cjbFk(x7gc=DNJH3*D^CUm$Z(K8G<|fPN(O`N5Zx<(I!^HeCMWBha!Z zdE8A~v{pVHkuj+sA-7k)81d5>bfcoVr-N7DPh9y@a`g_sAC6)cPlv&kwt*vC9(Jrp z=%g{D?OVBvi9T_%l2OOVj-47*Y6|H^!Kh#=w?1!waFK@eDU-W$$J){@54-U#SxcD` z)>OyJ9h#$reB2L$EoshnC24L5ZAo)%AQJ8R%c$o51{~4rYOj12RomZ01m8w*T3T!6 z6NrMZ6t{cSeQQPf;VbNi>qn5+USP}KzVJP-f#@b4Ny?+x5#M(&z4Y=on2eSvac zd)CK2rjg1J{o0r`EGQb+4!WwxNpTQ%#yo}IfC6LuJU&c8hv5PX2WOLW?cfgh`Kw`2 zIe`Ru4dHfHKE;)!7^=FqpH(`0eAf;pRl1KFEwrm9g*6!9H>=fM1TRBIX5(kPsn4!pCII z;PbI|!PXcv+=xZL*VZ^l_;_h#7(EruPI#n79&Ug9E=}R%tLza8u61qA%`$z7%v#ft z^R-WCpKbiG(Hb6x*bfa2KmO3;4*LX2FCU+_mgeKr5`8z0zH8CF{Z zRS`dWH6JheU-VfRRpp{$r(+mdDe>`Vl=HrJGD&@4CzPt{>1O~ zA;xwcoici8QSIx)66f_@66f`n%f4?E`lSBsR)N0RqeL=(a!KK^jB((5eMsCtvAmD8 zucPkJ>i3&aIzC79;49lfv_M7q}XB^3HFkh$)r4pG%y=P({g6en1D zU+emE`!XswoqAVa>-xLa0ABxNMA^E&7_Cn&{$Ez=3ZtOwpSli* z&@&+yxBh{qUttMvYqdoR!SzKVmO~0xglq6$6~A>Pu3tq>iAv}G7vpKyAI@)ZE>GiC&X#{RSP9IyXiQLGNp(qQyIJWLb# zLE-`gPSl}nm+lK&v5WuhHSHxR$mdjhbr+~jRpbZ_kz*A&igTFVEJ(hSUo&b6&XjFP zZL{%t%k^u9+pA9_Mfm3-TLPrg<(l>?ra)Ksw^l{H;DDrV(0o_-^J5_+I_Pb6FSWP& z6jcH@zfWf%o!*nVzjf9*P{_f!t<3v{v7haPP(@y1LR{eVdFXH zzp7@%jv$2)cGdkC1rduKs-fh-CB^ZOP)lU^H})MmyZP{QRS0xPL)A z2!Nk^;;Qi@iH2vuItO&(sk+q}nFL!Mm+Tq$DrY!1;RcEb+F>4yOO8rUV)Zpi9Ws!K zbQ!2l=+@V2%o10Nfw9jLDKIFw$Py!zED63Sm}Lp`e}+}?s$_{c*fR-PLK&scvno^K z?bS~ubsN9%Lx9!0tBZlZSp zk|n3rJEm3AdR-^bPk&*>HkQ|HJIEFY18fAn!B{{H?P9NQQ&;bLJH0D8dDq$L-C(D8 zt>?aam#XEEW(_NDyVwJ0t?k;y#T)(t%JT1==&4k2%2%cy)`po4fbgsCZGJ6D$%bg} zYfsBpDw;LvYpgxJlT&Y4v}V}$+FtE?tYMD=mWtYIt=8(jEh8NIIyY8Kf5AnR;MHY! z%CagwwzZaU;#VQ9)vq*}81Jn9NhBCc3d*;86wk8#z0?ce+S~yGP_8lI_7!XF)o*>4 ze!GV{`--2h`T0_W;8)`Tn1O`_u@vZQj^0-PMERwn6&Dlv_`YopP9Ku_cUa9*LI<#f zLImOaEhA-`TdO}JhllXPibfQ^`jb_lYh%8jfpmZ|{>28o_Ph4l(Hw9}gk`6&wfd8* zB!n<>pOQG&cCjT#-Xr6kwZKISX|ElW?+X-mO}_^r^4d1)U~PuR#N|D8ArKW}9uAXW z4;tVW z27N7C?Y6e;dUdEo*4_``_oWB2c9rF7?W%g-7ti}UJk>BTk^6mJ=!cE1tswdxJA!{r z{7DwP+g{tiSZHL&jvd%Bh3^g<0j|9}()!@4&j%7RAJA5?$GmoT#|}~4T|^^*&mG|N z_S%}6`P$u}kGqmd%c8esG*%DOh8`B+8d{x)1+hjIL1!Y-J|~f{UR9z*{vXzJ3Yi{uxrmMz4Kizx6O~^sG;D zqbKWcH~h?>5Hd|Sq~gJsvW!xB_|pB1xSyeWg9AZ)A@_}^B#`vLZajs4)iAr&!{}V0 z!sX~oWQyHrI1LUYCbVUYbnEk^ow{+cePaxbuU}$p-$;53L?@G=1ia>qO2S6&7=9XU z3YSE0uUB?)zTmKS#i?O;+TpHv#4<^XlKX?yL4nD|cfl(EVA`x||5|UHgW#5I6o^ z#97+E-$ zpx<4=PQMFw`W+{WZmv!8XujYUi_FHcH(r}X` zK0DxELA>po??c4)&F_<--?nf5MS_0o$pyl+h_%TVfg~tK*W#VsT(cI|c6w*JfF*k0c+@MrLCt)sgXQn`M#y?)BGp&R5N5%Qyw`p@M1 z6Eka(&h=;D1O=T(g>FfrSQ5AElVHoRLDnVfD!RXWrblwAXD~slC3@USIO_3GiX1?qGZUlfQG@G6TfL zuT}~cOh;?|cbE=&QnS94=EZ#2?1nY z;x8Q2Ld{oZcA_J|czy~Hodt^kj^z8CBm!uJ!trsDEefuHh?r@=qD}vmi(Ao1qWobE zXdCr#MOK!t+@okHL09g!uUr-S&m|!&*sUvH5QPP}D_?uZpCs((^8Ete_LVzOI*eaN z0N7T2WyLJv%FM9N>&04#@%O{loGbSwLMb6vq=bk#?JH6o-B$(F?#q>Tb+Ur0SVU?> zBF;u49SDVWN;m-D%Sp~F7p>yHf=Hz=Dw$8*7h*M6?$gb-^-7PQ6|vtd_uE%EWW2J* zxhLgZ8E0y0V}@G5mu_vLHrPJ4@FhZwP9W_K3dt`?4>H!)#wj6XJp~ZHfLIowc++Umh}(%jHTBGsjP>Hw5cNjFo{n5A-Xrn-F*S4d&o~YV1UVz zfmwxZetJRLiS_SExBflGsaS52Dgok-0OAE{um320lyzyZHl$hDV5{ARn_p?c*S`vy zku4J&qg0$!zto{C#B_E7Gz>>K++dRg%cgGxlk!Jsn8uF@+%`=TfP>GQrzLNmP9zAO zn2r5Gf`h@yzDs+7)!<8$WS80$WT7kIi<3G|KZBAisNA{jG^9UhFQIh46B%_+jdIU8aLT? zAQ?kOUxjF%X2IK_zJS?#CrZG7Tpe}FQh+4ziIw~bFs zC;+6e^H9iVZV%*-Lr+vsRJ+iIq0XiUDChf|`cOEC`^y#(4m~mSSnLHcqL9z~&+7KJ zdkBRp_=yU79o`G~FX1L&h%OeA*85Udy#K6Dh=TXm!W#h)0gl-W!5j8dFl=6o^uO3EwTJ#MR1PrJ zIApT{b{7EPiWAd^6;Vm%5a4dr_B)9Y9R3_fgI!g^mcLH9{|*11heL7~5YOW=VyhG$9d}qMVYUF$O{?z8_qK=mZ`d;rA&lV?;hljUK5vf=!lK zOBM(hd`EDQ4%@kJBv^#mN)KkuiTKDgNa;J)n10DM%c>*c?( zY%c#zA`^+we?~n)4ieS&?fL@|_B>HNjO0PDV#~BLaVhZD4=@)sJ#oqGv=B<&Oc-pM z#q=jJKrJQec8KpIgmb%ol@u#+E8Io-SBp|yLO>VQzwr~M{vUdLuZ(ja z-@9FXJM@R!ihz^MdwlQ1>f>?~fRE~r42d7#%PkxLa?1jKIDLd4)O7rTo?bpm3x)I6 zF7If02ijOgVSZm7!%{8&ga&`lHh#AAvxA?V{BR@G9?mK5;VRgkNBP;s&qMrd;b#w6 z?U8sP$sWY2Kb(Ppk4eT4lZ>BXR6%>B*STl!c5!3&6%d?L!B?@Eyo4JoZ1`eM5Z_($ zg$m)uPAPn0Hu&yAM`4d98S_P{hced3J_yK% zugnU5_yT9W;E|;mY;gJTHTLz<%zpTqkjbeP+V#t?vEIWWtXpF&jtYT?^~7siu}qJD z*ky-6D37lhN$Xa3_%W=I2t7S6NLRM_v~I0n!Vv2xbU4fkvrEXqdgF(YeUA(c@7S@; z{Zan!GgkSGDFDOVEkirSu3ER)k(JNJPg{p5*cN^s;)kbzw{GKSJ3l-4*~!l^KM(Ws z2tSYVvx}b*ejelJaei9-wE200pI_jEsn9)JE7}x3U`w0A2W)9m_<${K3LmhgP2mG+ zXjAy?K_l;MiVoP6{Iv9ENPo8J50>MRx7*~qUA{ZyyHmc3eOTO&$oEnC?vn3A^4%g| zbVR^s&oIAY&O5{fo6_Hw`yFz>+uX010P6{8`{~veV0F4%7)-$@xA?wv(JzHR^*SL z1y%cFw-x#0uod}Z*R_O{bfQYvxObs}aZZRq<80ktYTbUfb^HC+?PY0eZeMNPUTNK4 z`ycl0Opq;)P)<+5Hsi1v8r&foY#W6dlFM|&?RUk!EZ_I#dsV(G^5t$g29TcO?N24e z@5@(aB5q61?)Hj6-j(l~e3#g#y!|N*|2B)oZO)zEzDmX1{#4eb@uM<7hSfXsK*AQ5 zvTlDGr-BnYgg71S+lQP;2n?kh|HplgY)*h!kT}plRD3Dg3O_8Tx4B+(oAbT5pP>f+ zuTS~?KYu4*cHZgcSKNYa-`*{Zc1!Y}f+5j3eBMHK=SH+lTkr|}???|~RB`X`vdx5a z|Npdo4_u#B_5bICLtz`Z=TS@wa+GLPOsCGAh7AWe+;F0zQLS&deN=2P2SZzaS0FH9 z6O)u}AO4I1V*@8O28=Pskcw&*8Wq(nzI~~dp;4_`MTPy|?{n{cKF^2EIe%Z~K6vEA%=>YQ@qt->MHU86$OTFx4goHZh`hYKQD&&`Hk ztwM905V{qO+o7Bm{n#$+x9ze{wYT@PtvfhTAq=7Hz@d`9`lq7Ak(&)w#}gMNJP5n&wI|KNvz)=uK9F*+LZ}3ID7$yf^kaf+q>K5$q!9 zCKx9;-zwwqv&)7BPCAV!8*|o4WhcUsXqCxmEh`CRIUcQFAh*koBN?RZvQDe4!7B4B zUZEjnlkl@4LCB@-6hvd2+Y)8Uou{!hqI320Qx zHqCl3<##Ut9AZ^T*`N@QR4XmAq!bfa#UTeBkY99%!~srCTPizz^`60w72<Ewr(;ny~ z+n@rHoNsRL1W+@C8z`fNYibeU!tF;p4NL80iL2$ZR`&|S@3;NcdSxMD>Vsd@-k&Pr z#qQDQ&xr{ton!lhZb|ro$Y!tlWqZhP?z9PB4?)l{6|y)gvHY2op`UJ`<@YL^<(E<6 z*AYvy(fLIV*>3YksYtY>&_E+4RwA(~5+{*36^WNfyo!kV_a{iD3dTw}N+3be%mj4V{4INr&oC)F|yGH`!6MV& zZ$Mi+WM18Y4PBPv8*w|RP4lkQ&GF%=VdL1Tw8b;PQ5vJ`;v zvJvp}C=HbZ$X=^K`4fQh#}aS{$RAA*PfP3fEAQ&0mme7Lht9f;BQuWReFX0(xSSxK z;0l5(2|hrOK=46=4-tHrAdz4J!BqrT6D%aShTvL)>j)MRTu<;3f*S}H6WmB}6TwFb zk_c`l_!vPl!7T(!2~r4B3DO8|C0Is~PH-E+a)K2E83eZztR%RDAd}!ug1ZRrCdeYV zhv4G`*#w^;_$0xn2v!k%n&7_(K0}a0a38^H0w2Ns1P>5ANRUhL5W!~&))M3q4K>Ihjf$`e@A~+3pD_+yXkiY{e<)Z|{ z?-7%WgZ1(gR{03ls$y{QLP|=kf^}sqzU*NC0>4%Et(f&+^O@xz}-<*e)3rIOd#DRIIm3 z=w>p7kcCQy362r;lYGgbSjCb-i43cVdTa}2%_a0*kc}l&rXiJSNJ<=2kz+8YUU{*o zP`$j}xe-wYn3CSb%J1oIp-%c742aid3Jd_@9BO>6wA3k9H2hr3g87 zdbNI`UDqCnEkaBk%!6aQ&S%%^BAgW?Gj1jzvWl2o({kDB&1L@qyD3~%mn}QFijF8+ zT@l)61EM49ikQ1$BLeQ}yP=crfxUSlVMDvX9_9xI5E#N9?LHwl6{~^QAb4-pc!@yN zbYNpE=o)K7wcSwTR&OGL4s#l+gFHH>H_R;1B%RZcD-CMMQxAG%c7w$(AsgEyUJ*rX z1&&g&ZP$<&8!Ct3$i^lhkuX}1F5%5Is@nJ}!hkD>-xY3>Du+ZIGWZ*O2wM%<;6rWT z9CrpF83yntnH4;tSnd>5r<7MvB~!cXhDk|1E@5h&-7q3>ig2fwctC{f8W^s_yWFU? z9Dz9=SATf)lE~=~Gyn%f&>xIz9whZpp@uX9G*l=;JAW!4q^dL6g4YWdCy~O%AN0Jz zN1(cs9?rJJ@5cW zIbr%oWltPWkf_fk;0UbuLnb7Np75&?>L0cJ++=_$YdBDz_1!-x9e$B?0OnHyMDdEjRH#qih|V32&(T9Or^jYfub_? z%F@(JKi5~XCsBZq%VHbF2x|l?OFE7)nkpF4Jygs*8wE<05D?l20R>uDg(|IjZZJ!u zs)R_DIWk5H)BUUskh$tsp|8ki-6|&4by8>XU=Bbwcrp~)GLPp3ArTVfK|zSTs#rgX z?2+gImtl#q{ZqlwX*JxK;DmU{1r|jy?fQOr2(FlZ`JCOAORnn0-m#Z*15L@5wlUqV zryxRLi!UIjcp?c%De5<}@JoI_JGDwII`w53Dkl7UsCcq&5&nas(@u8I?*1NE>+D*d z)u?5cU2AE(0wn9M4QG|L;V4ua9*)sk8y#uYhT^$W*b%;o12h}BzvARTUY9*s9oGOGDN}h!h z4p+JvE|pjUqXov9^GN7GI1WUGy0{{BmXv2l*mcZo)h!atA}N>wJ7d)*;*i42x72xP z#0@xLFqI2XmF3_qXiT4Y9a;$GFnRDi4?ag4<_W_&k4|Ib+htU>TXh{G@H%>%HXs@3 zm$YG&HGv^Btt$t~9aCFqb*qGY18!Sj^AO}gn8p$HFeZQmrip+&GsP<;XisVB8ubksHwaJ$*A9Z@51 zkk_Cc&r2P>TNN8GHrGTQj8(f>4NxiJC{=ALmIRJkNQ`wXX3Y(80>yK0P>>r>nDH&U zAsYMKu+$SFRzr3;vZ7Q2-*0r|pwXPV8xl+)(FF9RC-Bk``21l*JnFL=GN=%Mp-OTD248t9D|x$C&m>>4?eM`k)U*VJHAu&x8!A3I5-gIFUrcE6 z7a2EsXB0%wzq(;J4x7{X3&u56Dx4U*oe^N%0t7oc93Cd~&6K>QXYJ$w-WfrFcLnG0 z86R>!j&DNjo#`-VsFUjq6Gk*pzfRZhIJbC3DOdSm@nC&)}1*9W$(;Tv;EHW3q`DfT=Qm>l7o9N!bWqF02M5n zq-yoNmFusa3x%zU5rz|ZwDO`SEkll1RT6W+Htx(JJw%ue<@&M1Sd88XP4A%m<)(LEfq;jC1tAqLRaWKlqk z69oWfPkVPn%#0#Z}t3PCD2jY>zU#C*t zs`I$I72RR)%$3b!JjBnJ9ua&Fc9qDOLzRX&C_b|m5!`9DWI47F!jS7ZMgrE(#eue? zaF#S~F?zj;a|Iyvg%LDbqpBoaCCSy4RnwTjae=ss8e%t1pa*zhjbUWMRuktlyGhJS zb11{jcpnn&W7p7U0?KM?eUDZVv=ghNW|HAwQ-{^mf2r0gorblnO6#A?RylOgP0iwU zpc;gmP6(V-O~H4m^yOMpsog9Cra8f}^Udq+<~(t3nsbEdVKE@6V2+R)meT@8DJl90 zO|8z9p$c15hQ>E3Eqi2%lxL`eOPOzJkM9^GmSxxjStfnUEQt>pJnw&a~vVgSuLRwR< zZT6tI5(0=sCy0jXl6JE+ z)T3Vm2yUpXJM3o8uuU}teFT2)(m5;=(=!XsCuhI;1WRNdEM`JGK`w6`p*@lOPfg*M zHmI*+2%3CAL9aLB5^oqTE>NqAL>OGuH{}rc`2KHGrHclG@PkkQ>E)>xsAU7*jWI?L z$3~GMVYu>(uWRi*j$;_Po4<2>*1s`5qjqcOI4jvXuD^n{^Eg>57skprkqZqsf<3!@ zeb75?<;U#uKDS>+#Gu>vD?cV{uJTo^q}(`YQck;KQbapzCbx{!@>H@{PFrb}i`CGO z%M{`XRnANaXG+d&2@~Qi3%ZE-CL<}xC@XJ((qc(#m+J#rjEQn_m&-YuTID`D2Pp4Q zWkeavWk1Dg40XJcM!bFs6Vw=C?VOVQjnV3nAjKMEQK8)^BVM4@80(Cu#)U|sC>xXb z#vmoio?AtbPLM@FucbU2>B14Sbx5{M;CD^|$Zahf^)e$Bq&$~^TGALxx*#uH$i_q? zI}bRKR%3Ozn0$O^3>Q@#H$BE~%nOdX&Mp)p_-b|u@58`W1oNQDvyRlQDcEOA1R zKT>K~IUd4~nD)k?ZOFzdP;*snH&%(#G?okDa;+$mO)Cm=;BaJiq}>Shz!S6Dd4P6f zrb6?RIY3}n6ev_b8|DRF#s?7Ea5ZL`K(?@!A>E?B4d3V^YL_^_0*_5_i8bKR9s*N6gxrY%vXm=W`04W_0WhpWjYhr|z=en$dE+`3hKp=BtpG4+d z21Afx@_8U}G(`Ty(i%3>I6-WzH$$`_g9_5ZyfE_+@kr;gA z{V3CViQctUE`Y+p0Fy0nKp3i3QiuuD!%D}8MPrA_W+|25ZtP=$#y)5aU?gr;ohMJ# zWVBEUbeQk3xT`e&ts6%+C5f1qNYglhR!h2Z0ucmptC7=+ z)i@?~E2uD|#urc-?G_xGaHPN^Xb~eW&}tkti$sUE%0c#7gS{(gPhnT4y^C`O6A8^? zU+}v7omR4mbm2&)N?^4VqOG!bRcj^VSKSk^bli9&{kekqTRGm(0o};)7>>FHOY2xlk`@TdDYkCw|4cQeSk)?VCDi$OuMFIIn|NS zAY%HOnhF}ve%E9mN7F{r?I2*f9YN?XO7rj;Wu=|+6eZl%4~8v3GSJUK(G-tA?4}_* z{Y&hFdijuc=?MH&nBAsCia}g2wj>>Ya?hI)&|o~k+paN(Hv}E-$EX3j#=sS>G_ym{ zH@oOq?xJJ2s}r9v|Cp3`~u0qORrjWF=6F;&%=D&$ky)W9mWWkj-M#2OWVU#GuCW4DYLsXBJ7#rYbi)slgI zGLnEJzNVkLkQXIhMqv0_Ru~gNyXwqushR0+wf% zy*pVEBYyLui#?(43<}9}I8|ylKeS8t8qAphmqabo1g8k56drllxx1r6*t@$mJNN=Hg)N^p6j3vTzl*_x zU{zE>>7ZzYg~BS_{L=Re&=oECt*jQlu}D#>h~&zXW#(?wgI?41m=NoMuurQ;l1 zN3^B`?z}Xjol-KjNay2?AYBV*Usa1>*vnE2Xy{t_YKznY-6%a_J`;u@etv~t3KX*$ zf(ZW11f)~-WMT5^sL88`uSykF(=ITkm)$35vv&6hgg1upkicUCxkj*di(T6duMlDJ zhj)uhgq$$7zz~iKq=B+_4+@l32Fen{^@X*&A1&KWUsHvSGc-y-i?(}^fd1!h`lP!# zjaTM{oUgxvXjSGYuL}Xl4iMuDH%=;Z%sW*G8lMM2G7E@mC2UuUXHzK)1B79+D!JW& z@9+=7L*Rp+g2ZKZB*GZh;4of%(Gumylbj_T@`K+%6yMWyM>82kh3pjYW>@A454mn{ zy>g>nX+EGLVa`opmQY?{LKxFxeSh6*g6}3jO zWNWD2nP3`wb83!wiM+tw8bzugVeOs{T+K!~_8cwOZd$J0Q)mOOpjxc2Lbi}9;v}3z z_=NlRhFw{O6#^XtC>lNiRZ*$>2eFDlCqWJ#RWtB9uxc6K3#N_0=t2m`lnTv|Zg9n> z04>&RRg_b>R)wCtS!0J&#}iZ56Vp!DNG#m3N;+EMm1Zms(9IOY1O-qb8dI^DqO3>~ z7$-26@QEo2PiWzy+2Ge}SB9ci@wy}wj@6PzhFcY0ehgD(VJt*_Aj?d$l~v(*FVwxS zRarG7N5g438fN5ZIxR<&BZCU4X9f1JwU-G+Ml`s_iuE(%nMO2LMJv0ZGS;e)oyy8s zyHccA87KHStD;E-3_f0>@rau5wn8i5f8$8H0u2fFFa$XxUnWSNmXFBbHdhSsi|ZI< zm0qO|P3qA=TU}YBoVZMDEh@d0*`A#R19fRord^$(pR%HTW7zwT7iNf?t591@x ztqWN-^^T2gU5q5wBmpK0HW|q%T#;+sbBF+*iXJ4iC)&^x&mMB3(nBm-Nlm%Lqc361=6*vq!7piQmTabpPXBRqNS_M%!64AB*S9J`h2oX)-+!ZDA3_w8~t3Hy<-b;7kC98gCUCUk>VNSM=alY#d*bh8))vhzrWa zdjvCc3C>iHDN&o2QH-=q_Z(J{9;4PvlA`S^kf!VGigc?YnbxJnEb6&uaEUj)scD`cnO zJ2&!_vE+;b=?y)Um3Bzys4}{9R6!MC=XkVHVCSfe>>L$>v#Q8oHSXm%5a8w<69H6; z<5sD5dMm{T0}4Z>a+p7bh2f|QT2c`J2BN~?lDP`Nr{T;4r$EJ_hbDND-c&+@Q%=8e zUSYnbUa=mGz(0R zyP|LU7|3PmJXT-w=b-Usz}V^r(JGrgJh;rcUqYDCDd`e5t?x3D4;zc1rbo61mr4F!ZDMK(nFLU7mkStq`qjtmq= zD?yF$Z1_-Zln)?E3-yYtq6!J%TJI@?jfyH+d{tEG-;@GEl_efueL@^7UoW3#%p=GO zH#rW3norE)JusgHFoF3bfa9(u=aT@2xdcb@B?0oB8OW4f(aDr{fYNOCS?Ma_wRDw4 zvQg|(y6WI$|~V6fqejf8N% z=f$t-c=RH2+ksf)@`S_1D;w1RJ9>45rGze>K3b)onJ6Crcv zpd_-+o6jwlK%CccHe>gbUPAyoPlOhT&tdyO4>hQO`iVEGfzn#Vc@HxrVWPk!fwH@c zxsiC88@DXt+=!fni2@ZSNy4cDGX%=q`{a5E(SCBh%LBkoLuZF$#C~#9APJw}agxx_ zPi_*8;vJ`L__mq3!nDmBK!>}~;q2tip{id)WeBRG(wQ!VWGwEJjKzISE$%aOFy|WM zWHU_u^zPUQg9Dib*y@8C@#`jG zgvPJ4w&p>WWEv})t+-I6?3uMS7YO5Vsu;Ti%QIJwnjUu!bxpRW#~21hnz~!lqnoAl zA5D>~?pt%oRvyz-<+`VJ<=XHBRqo1x%3V23<>p)ljRNu3Y=SKJTwmO37dMcpVsi;z zFlve#^xAj@kmd!U94D0Lgv8w~u2J(B^29r#JSUXngtB3yv2pLUb7#%>0AMKQ(vP(B zI9n9Aa?dgk>C{6$?c8waVSEhsD`Cn!c05bqjgNq*l4>v3a|=SuvXEI8GL#BnB_V2w zH`EeOp6yvA@@ZE&_y|F|6y<#1+CJ+I^=bUpK}I_O zws{%q=keJW8R`)Vor(e`Qm0Y)>34fi=uAZTOhm*?gf$ZpH4_m%6A?QT5jPWo_o0Is zlk1}L)Y{nvJPEt3!S*aljCH!q(QGji5oiSwhtmj~Fou)#dZ|prya*b+F2Re``5)fBv z&wA?i-c8bvS*k|ZKpW7^(}J5(5#e#6Zv_plt$=0ircVd6?=7I~oDJqqHRH%Ht>}@Qwl_>?kn8p|1QK z=31hi!UFw{J)M+l>6i$5P@vfBJ%f^Eh^f^l2=`W!V}z+hmCU&p3%(F6ZUDpNT|QvY zE$9OJo2FNwQ|zyBdvA$yTcxiU6{?sGaA>v7I}iV$|69ty?0UY4*K3KYj1)Sj#uLWv(MgCmDLxtinjM=*?U(ZcOain7{%@* z9S#;u5=5$SiQPfASaATF2*CA10C}eA)t_VL)Z<$U~GC+Y80-BWm zy6!mR+agqK8GeD8F@9PQZ+n>7HVeyZp)eL8I;x5CHElx_w=_NEfyWGze_UOOg^++9 z$2mTg5!cf+=WvDt2+h8}3EQDbb?P{-l%Z$TtIXsrlptv8Au{Gnxf1lylMK$CT}@#| z9Lh#sk?2ToS~qms)zE(3z-8gC1}@WIt>{o4IY>XtNEgRzO0tlpO75HWTfAvIYl7f4 z0Nw4Qy4xXEk0Vx9qEly?)>*)ilcir}5i?!BNCsrNYz;`nE>D)rW_Sc{_HM>|IUED% z5t#*{{eg=XNW%|BhJuj2IZAfm@qq8j4Sp5kMol@l;5LVHa%7@9o!%U-Hmx>CFmY0N z*-XP_Z9btQlM)5O1M?l?s!NfO47H=!``}(?c2H#IP4xQ zWCv`K83`p3MiIg&p{2ZpEmS{yD`y3J>mq1{y)_{$jK1;K1oW}B1%?QI^w!XM)F=eP zxwENI2(fZij!Cjh35pP=P_(uv?b#x#v}Hu0%_~C4{ zk+t9Q)ib{e6rUaBd+ z2}_tmWkr}Uhl!yCG#Fbgf^dQ;0{7C+-rHe58G#V_Ee={06%X6RqnLcd?ABA9Qj3RK zS#bv&QQXPOiaYdNAX!1bn66iGN4OqvAz|j^3_VrchZnJxg<^#NIkRu;3{xj+VPWb- z4ZTo|JsfqDEJR`?+5@nczPhkOW)&kHU>vN$!Pm60&mE{meKZUkc21Qr!K@Oa2oHYS zUY@LSzPn1dQ7n(Q%Z-C7VOCilPl@g2SqYX6*4|c%Wp5J&RUS`XTgf%1aNOs%x7M)8 zUYSqYibO-&idX=U2{Z(Nq=mQR+Y(HGt6#w+ngEr|Zp&bPK!%efoFw5KRbAU+)ZJF3 zB2P|Xg41MmV4=Yzn!qCR4T52YY;Qcdw0qe~`(P%Z)#Ve$yRdsA^m^!*kZ@1CA=|C?)=?D`+hT7$A+duUto&dPw83k4r9&Giv1Dk2JgsidyyOJ(>hduR ze!wV7kj1VHG`7p9X7eTS7a-+D&k}Y)ck-;yyasu(=<*1cq+<0Tc>$6WR3te;Fzg0Yp#{i_ zz4kz?dPK{kSE~^b4^#zW zxsWGfnz>=AAv2JiXCEC8#5(MO@<6Q99w-UKCL!`bY`xvvkC;;6WUo@AWbChq4Em)S zuai9)y*d$yrP~AedYX|zk$rR$F-iUyjKoMjIL_)X5R2a*Ft(GQh@Sie0`9f)nT zkDd&W9Tl>!S~uCfBZ16Q_JH4sC5PGr4Nh!HiGB2x6HAV^2NImvl5+d#loLy?u?KPj zu_${W-ia+aX%8$6#47Eh(}7r(-AgUdI#F%+y7VR19$4h0B`>lE0#aQvXb-dp(vt0g z#fWJ+4oZUqvPwpkC!EYnz-p)yOOCS#5}nu*zuoJ~iSZR4NW+NA3dDx&fet5@TxAbr z2V$-EKxZK4w+A8+lM&q8?+kFSAdXJhYAn+mpeo0Qy`mIt2;#KNG zm3LYmy~ouB5V|eS>5H#UxcUPu96-l zF<~)WHb^isBm|Q-@>bH{WElpz&vaVxTwzL9l-)i>ksgoLog>i4uBE@zoryh;2z*zJ zPJVY5fw&Xp3{?_vE!)k-K(`diRnA}!N!y2%%n!+a!Q_Vy8uKav}*Evq0$! zEh>u?kqa$|UjRLe#Z#5RCAI_8Z0x~F!Y;2g84jNaIgJ&s8Fc*#MF4&`HUr9_DvKRNr(p zA%oQ=!x0abImET83R_)GT6~+Btvil%@F39v5hET#z%MCXeu?y{NS{QC=tzFIR~NB^=fVN=W|b2|WNo z6eO`VJx~H>00RS%^ZQ!c2)N9)|!0+@}Ul%l<~4yatDFrgdfESJ@bI=w!OTcySc7z-+t3Swj(Zrg!lV8Uu^7by12Y8#PA z1KF_J8c+vOget7^DkIs}CkcHbuBMkf{0>h2^%U1B>9bG%tyw47c% zBr>cboTIF+Qz{}JLD!UuOlj78cz;o52NtoqPRNUP*iXg&G{0YfTQ0O>AR_RXz+r)6 zoKQJZ!4C5XZMy;f6pa(@lyj{XK{lX^3kfh~_m7efJWvo&n(jAEZ!m!-oqIrLzqXUY zd)rA8z@7(6YPgBjx1AI!ttcb3+t;fH%i8;~+jHD6tV>=LA`$ylJvV$LoYWEiC!mDB1{b6FQ%FsrMFB=KPO zt?`8Y(n)x*EKqrsL{_7={<;QmnL1Wo;7<+ElCB*ea_{sbia{ zW7`R#*mgov`ckQZsL!+E3(AEL7B9;c5iEXlH+ScPnp*xW4m>b2G+Rs;mK|uFb z^gz4axoRdNXC}fo6OlUu(NkoMM!W3}cdiQHJAJNjt}C1)%GeHN#5ZN_o^lzUeDw={ zlh);ZKK6^f&+(B&3HSNftbMs`79hf1(Rz@yO%ur|^gLASdE2<^-EsDAo47c5=w;kE zO3IRKT)J^wFKJb5Lg<(ows#x^(F3skoV%E|F99e}u=iA2tukdCiUY=V)6G5ZBU7HP)ZNV z{9?DK^GP4ba2+b$*RzrFwjnpUAsj99q-Bt|4ovnu6ENMmKkj_IY8@FH^mV>NiFW6h zTM>!CEe1Wzus|Z>gu3z0H{ehWUawFS0M67)lVud)^m%KL#1MLhewac~gibWoAKJps2XLk(L3?lqc7$ekJjq624Uc z|5?4vselx37zgFMC_wO>zp;ySy zRke+XPDkqj(R&JkIk;QUQw0tXo=wwJ9T8!IH4JH`UEjVVcu8O6^Ok&THIIlozL$EBO#^6=+0xdDKX z$sH%Njly6i9(L8^jHx7(d9l=-jXYQo3X>kqB*iqUrEe5VI{7$L#t3+t+;)Osf(tT? z+O8-Durlk4VxzmF0xL5lab?yOWmaaAMT)4ck*+AUKNpJ^2CP5a#Jp>;o$R_v%!6ykmMX-wC(**xT@EL*}g8K+o6RaWd5!_Gk z0KtOK^{Rq!8(G63Dy%75EK$@Aov`?MuN{1JVx-}1e*v-2p%UWBPb`> zOz;Fj1wkdj7J{t=PZCrSJWWtd@MVH$2%aUVA=pN+onQxnpP-hYj-Z~PfnX;=Bf&0$ zCW2;y7J}Ubtps}r_7Z%Z;2Q)(1m7h17Qwd(juCu^;JXChBN!%liQr{|?-Ps={D9zx z1V17eCHOJHPY8ZWaGc;3f}atL5&RFqF9`mZV4UEW1ivEqHNgpj-w?b?@LPfjf@gmT zPy?U`dZixYi^P(MFJo-PC@dg7ILs3?Eiu}p!EaF}P0n9oA_FFkE)7gtZ>uqBg5YKo zH+;Cwi$h#JpCU+$!ud)&J*M6v#nS$GrXS<0BHc|9_y=|v;xyMA%NYR=nEX8!AF}Gn#vf2PaM3%$U5gDfBU?2I?U7G|| z;zpGS%6$=~OO_H{#%suEPC8&xT&YB#FdhJmMdJ!tEwBYI{5 z!^Df|;W&u`j0QwM%Hds&K^=zLw2cX)HBb%qI1MIB8f;J{lFNO^2MuN}X|TyvE+}cR zK~)J#8f;LNf|3RslV5*o%*B#;Lsun)?x#X}-AObip&=o;x)cC9BUBH#gB*Cv7z0y<}1WU8x*K#>__ z&+)9NRj$`-vqhcj%2Udj=T>Yi3=ZOOL`;l@Q75HC@mr}>MzBe42DRc#Ue;72%^yTt zarhU3_VEF<@szVi05{+P%AA<^?M07m{;GXvd8_^q(+ zBnw7gRtAB*o;S;jE>IPOVL%=1(ZkJLS4&qC#RWH7RbG=;7u*i^@C_tAu|RSNN%=`V zv=62tAeK3m+boji(*ewd^J4gcBe$`V93@i7Q4Z1-<>1K^lmlxbM>#NHRD=cPYK~Ai z0Sf3YkuS3=`AT`-$tMPXXcRUC=khH^`v7+r0EO8+GCP;7PF2$W(7F6cK~x;77!mEIbC5-W z^k%W4y*^AO($lBJg`i|li3@Q!9)-R3VcEkytVZNv8A^TAlA<2i=cJGiakj(8(=iUH zZYhd~GG@3v->Yl}MxR-u_T9dPMW}k2~3*62@~Kx9R#6R zX3cO^4pzs=P5}eRXCIn|`Jx!WF(6urVGV{w-oh}^eXO|*s$MhTi9IHBHFw_A1P&o@8Dp$q@NAMmF@MsvkZtWS$ zc|37Wqx+{F#qXa65vyCASUf24?pU(kKg}qGJf?&^CXo{=!cBO)e^NyzMf_s|PYC4w z1^Z|sdP+>$(M6CSOB_v<5=Rr63lJ#LSG>~&C2`~@F=pu%H!)VV?Pxd~6{jPXe(FXZ zjbmawk*rlGF4E6r{mjtMEd5+1eec7{(0CWyro@fPEC(_ zk_XKCvW(C_Z*YrW&ys#v67~_Y`0>sxE8dSL)t2eh z#w?&nJRQOpGIed4YJ9LZ$)Yz$yV(HP>Ik;4TdrNvYGcb&;TH>jF{Nj5^uEA_lms#* zK+(V}BjyNq>dF3*XtIAKT9AnbDJ#JvFi6Omr;t_;4Ll%Z#s}RyPBcB3#CX9Z9)GMK zkWx_t@&y@?fI#)rP@-R1Uw=5tM%w){O7M`khwy~cE15_d4OI_CS2d|$WI-i2<1-i9LKI(a2n~Fc0vQ`H@5=^CO9l%oRCk&XGJrH&5v1x#;F8x_J&= zW|1PAZl0!_7oeNRo{6Hn2wAcXkfl6~s|;Cs99f3xY$7JQ;S`g4LQGoS`r|c={p=lN z39yJHHoZUIuqauW2Y5D}(x-Cw>nR)RrpTe`{j$Kp`nJDX=vKSvRx7&I4qaxEBARZs zrd#bay`MgW)g8)=c!-{ca=afS7$z7Y7*&T65q$K}Vsmcn_eS9GAq0a|P9hiq`_Oza zue0=dIU2f-6UgjvNSRAoVCvhUX-J)C-eGd)t<(mG-%<_mY-69xFvz)h2vDYtf}qg) zv_>AfP(3fi3k&04wUuvMQkVGBmOLf}8EX<>Ipf6SRRbQ&pSCWQ%lVUR9 z0?@Cg8-3^`cUVvk($s-I9#3$B?aKwrB8DDucdQ;-5JI%MCv?vI^8x8=%5_~>3!vbm zVhF%Ll^up2r5in=()=35rK|$`cnW0qH7Qh+NP+iP>^>169)cPnXMKt@c(B>}(rkyA#NBcY^TToj|h-hv1-Bu%aMV zx2S`L2`mG1#-p%`Pb}wk94%h)zNhS(9s@OM~5kG06ty)Ma`dwfYOWr zM2ne4CK_fG;_0O1l=GaioK%@EMpeqOzI2Y269ne`sZV}E1l`fsfSLeZ0|q_|2TX%A zV3>t@fS2*#pa)DtV894D7|p&uGZ6cPZl8;8pQ796&}9}WqUrW&x_tqT6EHmxHt{LXAnqdw*GmIdFu%22D z2d0+8)#}|iGjQg~*BD%*F9;#yQ(o+JZ*s5YaC7di~@sRoh7&;m~e_d(Zock{NMaicS#f}0+KLI9f{ z9BbImki90^^B`kt&%-NY+3bICtYQDdqxL^M)IBDFyb6Vz+_L|nsW1m7VPw4k7Lgkt z{7|f{sD}_y`ys;!VX6mIA8zgAVwTDHEyozXX3xp|kY76Fke_q6Y?M)td(#~~mNfflyQ&GplQrQ% zqug~;MNU#L4v9a2hwwniT!bgd>rq|`RE+h?8`RrEMFqHjBa#hOf|UIm3M};e^I?vc zWvVhyifw46>a-Jd5Ofms$k~wE*nxA2jU7GUdW-Z(?kxhFc5jhO5ZqgUAc`D8Fbnel zFM=r2g3#L)a1|A~K?KY_>)sNf>$+!+B%$lvvz9DUMAI$NbV~vPE@AIt>lfX6uv&MW zv`m`ZuQ7dU)T4g2#Q{}TTO9O|)fR_GZ*hpWl#7~_tI~Ty_0!VNc>PRJ9}~xK665P8 z{P;>*HfB)uy&E8FIt#k=X`|8d>!UN1@S;C{=Z?O?6n~62 zP35oYxLDpF58#A^C3`vsNun19VYVi_nHn)nsfGHjQTVo=T9&6(x!z|@8=7l&zd&(F ztjD(L^h0U#5<9li9N826k$q_Mqs{Gh(6?Gf_e7HcU4mKqi;5ZFYKho zGl)6hMNeux3d_^|F&Jc^GBbG|_j|qJCacPeR1OuUbB92MlpHWzh;|7DRX}5bOvEQ& z6~`ZIL>Ij;J10`*H!)zA5mV#^7tKgZOcC>6%;Pg=!=7kv;;R7$e?;5Eg`^#WL0?` zE>KMCM_Pi53x$@Ar8$a|l#u`@DIVn0f@+F+j_E-( zqMxJsd7R>yGlw4joH>SbyLvRWT~EE+*XyZw`+821+t&xCUL;W#+t-_^SF$jVo_e>hS5xHn_0AND zG-W&nUF{kSv`d1jU4yz^gF)>YH0>I6wToG$T};*O!ugrDWP|Q@4XXN6#sl@IjBB1; zxYY3gPZCr-Q6D*m$AfqpH$08IcrvOBN)Aus4o~`9WJ)Ijb){soTB$1~Q`MD{>8=YI zl>Vh)E7sUc$x6N?Rka_*bo)~>UF}C!CI9$9`;9?Q3k~4X;AU`^N`vn~%4t!qv?w*$ z(n1{>rA0Y>r$s5g)1usbBZIauxE^WvmaK}pBO?^ke5XaZ_)d$`7GXj^C-w8BexA}Q zka9{Rru1`KJyW#{k*XV(8m{pX+H&aILManEKB=E4^>a!;r_~emWEuw@_0)76`kLX? zXkAaNW-wLz0nSrPGc{UEI>{yJq=1AaD4LO$q$QjbB;h0@;Ut%YnN=jrRHYedNsfe* z+!EGQF|DJ2sN{+Gl@4?oerlc(Rc9*ZSqH~yl4+Rx99)j(EkRSkloa8ln%Rf5gDH{1 zSpig1#^$Jc5tzem9znr|>r_{XF4e5kyIv{?!6%!$mbFe=hGH(uE z>6bV^p3g5IvY89PfV4N-<*^$lcWZLAc>h73uY6rG#p^6Y@Jo-NW1Y4(5fpB;C>Bhf zGZG{tiSIeRDxi6Ym!gMy$|BA5BIP%GIhe3^MvlN>O3`Ycl7xv(Jkb=49|W}-bq^8A z%b|hHCNFQLYm!P4@P0)yRyS;i-W$Mg>tb1mQkm-ON^T?1VI{@gPHjpe$SW**Qoj0= zg2AX-5q<$q7;uP)u2Xq3QK9Z+?4at3)H7ELAX7gR^)r{XQc~I&rWEOdv3L?6VKU&z zKoHD`gr(CuVW~E&DRCev3F--oYRzKIs#*0EDefcGBXricJ-D}ejNm&2-zE4S!7#x~ z1TPbOp8(feago~#kVvqA;3|Tv2^JDuOK=^*(*)H7UnY2l;8}tif^7ub33d?p32F)I z2@E3wp1b-#?8^PZRrU?E)@K1t&5xhb0 zZvZag`9nwY%}P8~S1+Ab3*eM;j8yK?p<@^fhuIhHh$jXY5+o%Fn@blde2rW8&|#u` z@>yu)Z_uU#0fTCf#9IT*#D!l9^+{JCi`P)iMHN>3n%JgDC?E4~Qoo%g3`jWeMNj2sTGNsk%geH(cIih^n@27bhloEaJ z$dFRrv~pyX)N*&~s5`<2NR}$4&%vwuzPYYdz1dJGcOysLkq)KmprKkcBA@Nl?JUPd zU2&kAOqERD=SG=Jr3Tu7fpB;&_)2ko;`L63Xj}*KK%C&b-nugAKdob$+j>2`(@8=K^~~e{-5(A z_b(l|=g2qaEWGa*f_(M4dtXXlvp047Wg{0I{e0#1f_&hkpXhq^WL8>7{<3>N{-vy| z1bL|8f}B@>wQ_lR)u&ds=l``#kZnINPQByaOVXda^To$&;$DANknMeU49|P%2PuzV z_w}q@g@3qKkk|g}gD-SGGkMF_E8d@X{99$)1i8EErlr3epI+Acubv zdC9lz@Kcp{KYyi#sSv$6_LrK^yx6-ht>lg47heDUh|2|8@_g_AetjTiY3nP|)1SEV z@K*$xncMZ`w?F=?rOzHo{^7^Au8tJsE7vx@xG!vBdfk7g&Wr!kWhH|A_S7rO4-9|z zwt=tTzwDlCKleL9erkKhcYge%KQ7(=V%W9cTpWXn7I{5a-9FM5to2H{`2*R$l!i$DDEy4?H? zdA|G&g$vR_-NZ6-@^c>W72LG}v{x6Z5fkI}yz8z9*FBoNW{oRna^c4O)gDiR*K_&l ziTCDic<_$3IjeoFLFb(B^}L5U@AQG;)xOh7Vaoi#nKPV;+;v{hRp*jBe@#lx2A}5P zGOy>|s!-m#N6x?krtT}xn0_V>Fq1Dhhs;3?toM2zJhxtP$*1s+f_0DNuJIKFb(Mo% zkyDhv`ax>My8L^51@{#O_1?W+&z=8=8iPB1<-@)L(K^xDKiA&&yNLU8S9JVj`?C|5 zhFvDe4;=p4^$T`>GySQ*-Pqgu^KT#Wczj;ZXZ|l71hn(bo9yv?!t2TUKh$!kZ-zz$ zH}&vC2g9y?V>qpKZri`Rt_b~z$MZ?A=bryleKSWvaD{bAPyZ!n=Pxt%UUS70FK&wc zt;qJOt2|?4A9`fT(=G4&TG7G;pT~2(*R$|#b0M_0T`+LbEjvD$zW>!fd}-s0565~u zNnXzlZ<|(n{v){?eBk8&tF$&Z!jShLSKqkgQw`}|AKQKP9e-Q-4MBz^d^+dS?T@9E z{`0^yP1SM#BgoR5AN%Q^sK=J|WzW6-y`P!5+v8c{_1yHfS-;b_x~QPQm%kd^ukd=7 zzA1rQa#nx#fr52K`D-u$*X9)DVQf0)_zVW~U0#oUr*D0cuW&>1>ear<!C8pImsW zPvba9i(p|_dOd09RC9of)X#x)nG0rAPDdx+>zN-^dD^-H7r&Yn%j=n|RbDvscxW2k znBZa_&-=Wd*cr^v%!2m4c=#K8{+@a7iswHTl{fO>+?CQ_2@^Mba`UdeX?s4mw0hCw zAHs48IY0W~|E5)J@vkUe@kr$t?|XF5|Cc20&MExtoxTTh3pXgU)? zd)F0wcImpp4GtZ8jPCB_q<2?t-otC5Gw=0!qK%}9=Nyq-@IaBws?x@r{&C)Se)GLw zX6&!q_JRIuUpV>}iW=zQ1#hBeLiP7e%f6CXIeSTINPT_n2XDMdkRN~Tir=>1pPW(p zqwc{cpE#7}@hm;Z<_Bt>saHbyy3va^+0!pAee!*;U3T)L=fh9D+3Q(+E^-YJW;fkZ zl)DyFn9z*O$~}9LHBW9?!?To*Umj`4r#%zJh|BwLq6!Q58FaGB>rL!|?t~u|u-;}+w(BoO=JvTcPEL->o4-~-81UK$$D}3|v zn+KLYXhi}>S%tQBl)c32u|NrR8%uy$VKfbH0?8?tPv3&c} z{eS-3y+8Yj$8(d{bN$;Br5S!g@V-4uzBTXbk1y}~)lDz={rX#*1ljSf1Mj{r|A*;2 z*S+iH!C$n&p+46ROYuFDyV`e`uK$&b+xK!n{3VlvV=#N#r zCt~Hb_huaYUEX)rblbo7cy91|u00oWE7mD@-c2p$q5E%r^uhNoE5732U%0r+XxvdwKy>{!TcbvOiGjibK`|@)z!MSTGU2*Ay@B7z@6=m-(SlnLXxmD!4 z;Act8$F?V=RqWrtc52xNPYAO5Tlc)`z4}B(>9_tT=cg45vBPz@*R%3mT6eo|!=o^z z%B5LXux#Ci!iU#wNG{s&AV!~F$hdj>W_{Sx!>i{ms~O3E=nuv3z0KoUevZ@PjGAs= zw;}ibGgRQY`F*p0a^+o1JNmxtd+xP+8_wMl-%(Wf;G0o>&*V?@o=W}N$|DO#?_c@o zWVA@_k?#K*9IBji%f27}^XjW_jr+j4>%?6f3pe=kmafZRlgrs%sGS_i{lVVQucSZm zlS>X9>TA90EnL2UU09%~xuyKbw~AwzePne?)fcYJ8(jQ+j8yQW_s{xm^%EOYORjk0 zcUzuY@_9ktla=rL;G9R79)9?y)b>Spf6?Q)4$G}`>G`{J^MbVPjmN)v!`*eiNj>oA zE9#!u^SA3f*!4b(ujb-EeZ~+;%UQi)UBO1RCOzl5{q#ZL(4mij)zR(e(ya8i*0UhG z=j>0uiFySQJ7dG5M3k$sNf{wq0|_ze_&!=*Ps-yXEbY)sEXthhTNf(KdJDxr6VF-cGK8w8w+$UDy!f{LalebXqowyskLLle=M%T*&q$h70%DOA9?2M#?8NB!NLXe z)AL~^a@Kr!eo>)sep+rp;RX_2z&#%|Hi~g{P+XCg>sz~~@SUvdjtAG}`wBliKQ#}m z;)$&RIvwB=9K&km`&PrjQZuX%3m+_)u)7rC3p4eb`vWMy0RtSnQ93022Wd}92-@`* zck(;gI!#wM>ceah8IndjvAc2~$d~ygf5S@5Wd%-x6AX}_2ZPRAI8t7i;qX4l}Xt+-aJjcD&u^xXrPvffFlxYcqw zc849+krpaUPW~FBzFK(12L@vC1UUVfn^Qf`{sW9Ug4ETW-dj4s>1G`d9!SB%&}lTg zz@?$OlUzD_DGqs-7Wj}&dgQ+_ljIbw#fE>h*K@Hu!St0{?gyn56>eCU=kXMmc|DJs zzBj&!+e-Zhq^E`AYS4SUo=X&WhJ`?zxKTeN?M%&b3MQ|`f;Gde$3V_>a|YDmcA*EUn)B@a8lbp6Qqu+gTU#I8$d{no|Im zfwRL5WYAG4ro{@c=dl!DVJ?<3(k1Wcnj?rXYu4OJO?Sh@xJI2=*E@2te#HLXTA$7- z2OjUF2CxPn;c_t~UVv28V&PE^4@^e#bHejoi~j!CE1z3<>r=NS{q9o}zsC*0YrLMsa~2^zQ=xPJS9ZJ+ zdf>YB>J1nEY5zUud{5OU6wJyGKz~kX%f^#M=zOhh$XxSs3&-~!S z>AODuvwJ^z^G7cfYoPWIuA#ufA6v@sH&0q*t=*Z{8m+$Y&pzbGW7Y!1B(% z+}2GGYqosWO~wY#DO`QvNse-{4!)wCyatYPoH z1z&oL^Mjf6Pn*Yt=;If@xHEs>^~)=Nb>OBKn_j`~(6b(WoJLe11&B=(fUU z^~TaKU7B23`1FxC1o`5-|5TFm*RWd;ul(WW{)qc9;NO;L+(+$?P0aesbx(gZ^{Ii2 zXW#JcbvXNn&G7BplxAOf=gQvFoo!ak>fyJkld?h+LeYsu5QD%Wi*zQ8uoi47hL({@2ouhqszW}$&;Hd z#tiu){I>(?%k$Sgny(Qvw1m|*@#;Eb9cd_rk=zG7s|K)EiZGWh>$^O}`xK;p5@qwKw`SFkW)9dCu zakr=Gx8HuN9e6V#%&bXWH<@uHf5Xy6>q4%*D5ImQ<9ioQ{rbOUwmF+?Tj1lKae*&A zFV9y{m@C)%%dkvCA33|r zaRx3_?Y#G*wo`8RJ$g^B@6oh^b$L8zV_4c75tJ-Cv-@w)&yM}{FVc&z`{zRs9{Kdh zTe?%Io;~AggV2dh+x+r-uP9hvJDf84!IvIN5aj;be)-4nvGH5>ANk+$g@3F1f*`}b zQI+}Vi=Vu;c;}oKhrX~JqC4wlIZ=ZdHL3+0CloV5M^hWJq{A)$s{mXiv zYJcIwlJonY+V_vkE1ys8xNz5(zOw4P%LRGy`Hv2N!?*U9XP>?9UrV!=-6zN^db6MH zxodOU&aeKXK~GF3a#ZC-_Rq*529&uJ3x^vgemX z6kRyy^B)Rm_ag!AKI>?s1AlixPJSUS%wW{5&3*X3b#U*U3s)R5vXHyWw;`(__nkDE zporOfMQ;9QIn^QN(k)_LmQ$`g`*00xT>-X2({UR_3q8`7`w4LX>tVdOW;P zhwE{7`#xvxJM-EYFlx8Wg)hc?KgEwD1#BkiKj~-dbEM#OB~K-&$NY z4$_P3&UObOh>oLI(p%NPyz-mByl!>+Q5(H6VnGN9-4(zocCAiOXVUgV17iCH*AD*NnNi$ z6EnPG#f>R#KRord|=zI6vdsiIID*C=% zSqMk@tn1)&V8Ahbb$8tTnWIm=zOw$kMZak{vAoRVxzX!cbZ(mA5}reE{j9RbJlW+L z?Q`aRxBQJocMAVChkv)^j>}_L9PFMD}SKeZ+ zc6y`qt@*(1f&WL`cR)3@JP!veDn5HJV8x0Jdn1qp0tunoTYxAi5TvMBQHs)}2?!#H z0@4&v6a*~TdoS2~?-je>?B08mdy^Z$_j~{Ian5@to88&j+1c6MXz{kSMcKUm*9YI)Qc=xSnlWdpvI8S2TxjsX@u(>-Sy%xw9Lf{b|si`Zk zF89kkVO03K(VNb#J_|VgJse}GZ8C1wzIV6Gb5Dfo=OlfefD4OD1YN(LFXv|V;SRqktMlV;L?pc{{8_;n zgoYeKn&h6|3NArZaRBB+1%Hw}DSrp&EeC^azGtBzewg0O{cp12@Wd-eT5TsXjY zOlzOLW4Qaf75rWjThW6EZO{mkzDe&MAkA2_;H-JY55cO%5V- z#_XHzj}4DBP4K(D_^D;+4qSNG!q#$D??qr}}6b zB%h57>vpUcSJGcwoWHm4z|=uUvvDE!WZK62dK)ZLWLckv8tRO~C-`0(5fYMvVGy*+ zZP!NTCHL`!SQC6{GC&?-PE;Ajpxwds9a}UqG7e6^9DA!RoEkVfTAcc*it7S6*&w?x z`Q^Vna+4r?QK%pl1Due1)5J_`@S-NGfgB_&a5yWpIG$uNSn2-{Z~~}Rq18l-(@@zz z;V+{6PRA5j=6Zdbydj63On3f@$k<<2a;ut+0KuV67WLHxb_5qE%5GpWVDo_G9{LvB z8lSH?BZ#=j;f$%u{gMJgG63~eLC=O-oVrkmPL{~^1%I^mk-CDdUgkML>I%V1m`_|c z?pr^?agasA-5rI-@8`q*JEll|kmDXbL3yH2Y#SW^s?-Qm%%{SOVkz9b{6e)j z%VBOY%k_e|E#Ri!|0N%(!0rdZaKvgOX-k(q;J~O&)h8UksBbC@d`J59MZe4!m}IUw z@-3ri)3krLz!iK{O>{PeF-bom^_?66xhs&HvzZoWyvB`$YFRZTLaq0&0I^;7fs3?- zHrj7nZ{ugw>OE}uwI}VXxh5&mq(0GXyhq(%HXX6D+^kG?|GjbjVW1F(4r&h@b?BB$ zpz)@KR}MT{dJ0T0)DDJZ2+{gK<|-9w#8@@=moD6Yyxl=z>=@JMU6%~8(zwEQk^l$MU|2$kY2u|;IP!<@M|DA=;UXIM~DvyH`N?CNi_tgH|is? zMwzk8lO(1vl@shY($b7MiTj=iL<4wEiR(YPMLnJ=i`ary*mm)4K-_Cxjeyb%W zu}8w&UM$Xo%OjwjYNa!Na$^(W%vhzTMpd0C&Mat;1cjuvj||0Lp|d0P z4J~hx)P0T*){XW@**nO3=obPwZUz_gIX)1h?cxYl1r$3%sLR2GX(u;>avar##0VSkG?`|O+4sv8ij(F%0>)ciC#S8z z$WZu?;KwSX25uI`=bicvT%Qb{F;!}d$zdu{)HJC8`e)kcmPeisGmYBu>}681Kd4@+ zRJXB%w)JsvbMaO)K0S`s5eycM;HO>QU1-#}CE@FIz;)2^i`(yU%kCX?-6{!u#o>Tl z6V{yEAXUIuPdROB3Mm-W`)!`Fog#G2Ql}nmZU27mKbVLEdwFr*Th$gP)!e zI#`C%ctFU8;}ddc@xllA)f)Xua)g7@VVKsOhU(x|7nWe4c#K8v2VwlxTK`B_odW$n zq$kqsBCR%n2`*kP4lb@P-o7Sa$DYFgUlS2W0IY&kxj^BQ45zoP3w*03rX;ah~}Km@fZgWN4Xu2Pr<*0}@aj^^YInqd)> z2pfg$K>sV_Zv+YwW^6Ds*!2Vwu~q4IO+Zxg6L!hb>}RA}T`?9cmkKtncz?!wwQ2n7 zc0ulm_LFg8&O2+%r+UqK8v-YnE*cRu2N%xgSO!RveI*G~W=6F!aD7|N<(%kN1j#ep zy=1Ds!2@pO508FsGkKca{M&$P2Mziq6>)kp;n#sb6Hc6BS?>R6I^-O~KVr@lQu zhzld*lV8q*vp~$&X`>wLtpxoj%)6d6cwv3={bekoRBn zP_}`?v8wVMK?p+?DW*mThJc22gH$xU0kUElAfqqgHe&CM4hSIf6wC2;!vnt)y5&lC zZLRw}_gY)9RCd?m=u+nzWpf0B)*2>s_w91+y*i2JyDkj~?0;xEq?ti-h|$vAOYUxf z{>O#HKZI9MmSM}APWMxUF%Lo_gr$)sm?*R7NPp|^cQRUCBy%inb{2Frnn97yc^+CE zN6@LDt<&c}jiv#h2x9^;V1oY8o&_VmG0@29{AyPd|D2yonjbjb6Bpj@ZdvbOZ+}T* zdGh^Mi}vj#texy+kT}eR0}XCA`F(KLJ9ZWPoYP%rjo&nT6E56*an|*BMI6amUPZr8 ztzNX?a8M{KV1#W|SRE|!RNQKi0~Ylg0a?S3g#L^6BONN98rpAksFpr%4l+;LkEEUp zqhlCS)ag_KnqIqF&;-dDh*SX@kBd>c z3xtg^u(ooVZ2S-rubl6Rc)0y}IbtLgX2Y)Y> zI&>2?W($&L2s96}>bN8CVGwSB*Zewdx{e$4jORbyam!N&^QIh5A1zJ~O?VLNX<>1Mzb1a!{GQ3$)0vtVB~nZXUL*)Ij z;;@OcMw*m)d}ylGkZXl;v(D)_cZY5RpAFjhifZyg8+ILM}#Q8ZQ$0m z>xOlU{kEFFdg11xiiYRlyamHuog5h-6&)qneSG)B$=9}mI|@5Udv_N{$oLD_UQY;e z04H1A+O6dB#ii>Hh<5M2oY-t`6%`s>xLg?YdxxQAW~bRs zwK;qV?$X;c{>jjv)A*r3+*Sx|PsZcIq@QC)-PwLjob1Xyz}q`C8oO&LPOwUn!wrl+ zYs&r@o4X;+&xFxdg{n1aq((Oe1H%MNbiAG3XTL{m|6Sl;xa7jSv0>Hz~!Et(X3>a&_mc#$`W>k2m;k2Le`&Nog$^yGPvI7Z1AV zr1L^gB%Alt*9OHO$S{RV4TGovf@&%Ne{MzZmQT;S%H9O?lJ}o9dA1~DIN=k6HU?;+ z+&VN4K9Fj#WKv)M!zFG@kXrD<8XcdS5CDJ347hNldc=%!{cy zvD}0xT_z%wk`;ABe)MlT@2h2s|J&2gzP|!$shy^2bHyi`vq*7zCA>xyrcsP)ndtz7 z^M}rfN`o2}ADSyYSM^8{Z7FKu=9%@gCtdwrDJVShqr=uN+E=S?jt_g5AYZX>0?;`> zIb&yj_9}~v?*;tvOKWw&Fei8N?%1`<71PWK{vR)QG4rXKOA$B`ST%6dh1+I@rTLeG zv*ePr-uK65;KI<7n~pcn-f1^Wm7Q)%2%uE$iBF&YaQtra2{VL|uYCsJ~H8PJjjs$}_8*qfmL-fwcu zdEE}12kM)z{SrBW&*2QD?>9I-C<`pGa?_!3ttTv7Zg0okv+hx4s_xEi9F9HBGN`}^ z{HeUp)X`an9t2PdiY601A)y$(6$;l<7Anu5WSc2k9BYO6r-<-x(6{$-frA7R7}Uc7 zU^7+N=l+s1;2`Sg3Cc(C!lFZ*pv4jYOJtQ0)e*JR;#mA^u*$Tul(L(+R8Q98Sp7?& zR-WLgN6KDwYL;SMfP$_wXsPc1lCJ8I(H_B^Hd`%@`M*S*O#Y`%VY<1e<|wPL5iCi{ ztxiogoa`(~UH>vjl4eObeIHUQq#FYNmp<`maK}OX@00En=$IDWY254&?^6-ert)`v zDESeC?mM$?bbuevr0`%b@%_X=Lf-aQD}<;lh115r?N2$LvkqS~ekQ#)jtcxUyvTax zC5%bkrAu^x_h&}3eO{ldH8^bek4isblz+bL~zVCY>rZtb>xzs27^wa=lpmH{`J zR{Xz%uFlN3i!N$ifb`c>D+EKLkP`l1{nd3vGyjSuOq1nY)G>~UFzGyEJr8kK$dE~v*3>Rvv z71Aw&e@A+R8m+(jYM?=gC=%=bEofI4e7#2-8IBQxi!XJMndEWAtt7DxulU2Qd#x{7 zK46BP|6NCPVTB1~ceBIAhxIBfH#_EjKVISmDoW5_|BHVcJxT)pY&3I<_{m z9pQ3hK>S1eOd^T#)BUq@d+HG*QCP2!Z?8r=d{p@6**baHNEdRc+aG20LrNi}M^^b& z!^z>TFg4B1A(y+uc6IJF{RiN40?VdOv_scg%i9>O9Co9_+zuNcQ4O*`YG!A~2uR$? zxQdeGHhp}u9tw8N)BbbKKOG_`!S1U_2wM#?NKkNk!VlqK+z$V``Ql5#A70ARriePz-y$D%o&Nz8+Y5BFPgQ6HW0|GtESq&jj z!)3rRWI44GLB_~7?FG3i3FwSQFqOJJ2Hp-myw{|x;Lh=gRxQV=Xq?ES9|?&L2-CHB z?XJf~ZwmzJYv1hDz7^aC7e1XF`_J)NJ|k)#An^1xY=6)>}Y&@~YE3&4j(%{&8I8k9s zb!`VlcwR5!ZCReYs^6k6qg6CbeAmiZGAaaiVz;+&&<&V5IMSkQYhS;vS;OP- zqFFSviAc9&7eVP>|IyLiJ$ter3abH6qK*Nc8*r(=&+-Jb+=qS7XG}W_d;)`LJEnW0 zQ}$Aa zdl7me19En;pI7LJpoNBC=VYui7*qSj6EZ(JnTg9@e96~-wMC?2{~!e|9h8X+97SLg z2IUfL;sC;A(xZ{zwmMoyZ!OX3b)kEKiW!*&1b`z}J#MdSdo{1XbD3oIY0Jwe0+Qc(e(^m z=&=7#R(F1|FeK}a)Pyb| zdG3!(g-Lm*vKM8Ry=6Zrt3bumj++k&pLcWbf`OJHm6^O-!;3cILc2QQ<=kbJlB|gv z{}jGmF_r!FtOk>irx-%s=A;w7kCmH5(0tjqkt*jI6iMrU34Q2LYAs6fv*mN}{P%+&3ikctU7S67`CNA9(ga(@-TrCIkeQsW z1}3pL&Tm+K#XFPfKv^B4#P4{-k5*1jp0GZQo8qHw+CF^DAJ4V?lW zPkAU<^;Y-Qv|!^;xD%^?rXPA*8E&~_+{x0%^CF+KAJ8=ooyPCXsEg{bqcy~y;0qX0 z7l7=kBa=OLOg<=HKds>{>9Fr`H252)0{=T?7^5>)dh?KnTZj5s1RwvQ+p9nuY-`X< z(2Q`$_)b2e=oK?Rhi;lN`0tpC*^4Su@p_zch&%4ciz&amG2iwuIQy^(KuwgTFJFx6 zgbm|It)Ek7;Xkg4VZl<_9~B2AazDj%HK3vbO{5-D9NB^|;xOKB_tML*FPmqP7;S%f z%+3hdso9hw1Q4;@2l7IyLYVaF^_t@!J_+~f9-OdqO<6M)pAiNc7y^x<`H|*k9&R^< zYn=su_O`hc&c0F6dZz_60`k+ddwj9$c1#pKFm7GPxRg7XEI&(5#GHD$T(Ih>zWl|* zc~jUGPXtVS>X(5ZC=%beb!uX9#nB7y+`ZuwBcsGe9C6_{``dc&TO1ce2llJ`ecTOs zRYbCr`#6H7lul;2IVzH&Q_FzpUq~Ye<3eP}qIDyiFmPrx(nhI2(I1a!uoMbkP0fAX9N?NZ2iQr03c4+^U6xfqFcH9Xt~YMWKBpbE zC0XVC9Zj@aNSJvKG@!zS!=ya$$fKxwM~{Ed<87&5VDQDE*F@aWgRO?f@voN&w)NF| zWYQuFqQl`1qloLMQAg;o$0DfMj8|0-96QQN934@Zk4pN>0kbal8+ERh(bg$PUI`)^ z!mbCeH>=r7tAs9e19wg^AT5AcdKPSfK7n_NK8Ctmnxsss_qJ!5MINS4e#N6{!D(?8 zL5JV%4;k(=mVFPXvS;f20bR&vHk&TI@r)Z5_U@EJ*5RMHi=e>iLrs$U3bNX-bUU$v z-;dqyS7jH(d5+LzsF1Ey7JGAIqouWZa^OA9&i#=JVNj>bDC+Jb!BFI zu5lf=28e3mo?7Kcw?AYWB8VBHBWp9!%)dqx#@+=uJ*atTsEnAcAy?|QK#HGEU|$%( z2iAKn8n!;vRJi)%VuzBT{%~M}!ftC~4cc#UG+ooLo9B#?`D?LHQ*Xf_h6#1MHTbsT&9 z{kCz77JV2xcTpnT$=Tc(YC!!e#F*)%q&nMN&_s%P&dkHt z-p(>jKiew*(eiaK|25uK$dLSbryDp7?qrl4@~pArq)71l0IQsuZLbEj0jsj(JcV*# z{ufcxjppvWoFjTh-RhSN!>gdBeZ#!dlV_PHJWEI)oBKGM!B`!eW%$6o2{)ll2AHoejnx|yBdHA*=Ce+ zW)Rb2YySoa8l<{g(Ind2(SHMtZK*KO1etZe<*LkMll9DVGE(N$kMSJHuC=j(B#p?k zz<@k+5m;1L7nGtX0z-KseZxCDqg#iI;vk!{))LO3Ud&AD%At{+f$uwdbDV^rz#M7W zVagSczOb~T_snPq$4Nz=6h%A8q=n)G4ET%S(Qh0pVqk^J6yMQR3jz}`dzYs)e(L)t z%{**_PR#bZcfiCTMUw-Fbf8j$y> zCtK+P*w}GwHHPneW%Bdhm1(@yo%Yu2K->Vhm8x&LHKrMDB#c8W_~99;2{9I^LRQuxn2?AbV?-R0cS`c^ z0vUSTV9Ai*@c0%*WZJH`*<=>J#c#EBoa`REiIugzKqiBLDs_%{le^bD{(BqIDnFx# zNp7d-;C`A-*WZ5kMpL8xO;4vEAA2ev7q0zXq#d=U6K`Kq8+mGj z%j#4tZwO#Ik~&1n5OVT z2Va^pz6bjSg%vDh5}wD%eGGKDp!FxVm-$f1`e!Q_Wk1q3$EbUUK1g3ZrN8;U(@i4X zH%V{f!gb#V^yYUMV^mVFpx(`lL{RB6!ZD~7NzOPqbGT)%W>KrgTAvUXt(@`t$GiRz zX~1UUpim}T(n*;wY!y-VY`G}EfhG5D3lC5=vnl@A0k9I$a;Wrav*1djh!D)DihqLzlDhSvtig(;FDYo7*7$VSi+MTOA zA9a@VH$HtJ96fDqZFY;98bHO!$FjJ9X{yaS%-FVfnK;^}Vx zjgLlJ1U)%pZ}I2|_#*(S@{?vggSyI%qNMK*@AY%v&#s1}Iv0YYgNr+{nAxKm*lH@q z1^wB-YS38~UrqKqAQYQYWy$Kg`9Pj>F+O@BEXRV)F#%9x;*_E*r_B4 zKI>r5ecHSww1!)_s^Fq3#92Vm^K zLL2f>!O$7=&N+&5Dw_7_+vv+H3^?Y*1k+eqJb0j78UDt{2Sfs!Gl@pPih%=;LCyMU zl^iM)Y?m!wpWwQ`nB8Jt9Vk|sbYGu)VaoW;!m=gJ{K`h0>5EZszWQxb(T@=0;81

    m;5O8hC08Gd-?CG*d!=_KlRmi~tfpY9~G-1T&ndV*Ih_`%`%G>A5e_@1X z9lcU^xtqvhvq8zqZTF6XdYDaxND)>8cv^p~B$n5E?V0Uy)M!Ho!y%RY4VLU~22>|P zy8K}5?S?E$Z$&HG5@0kMrNvS6I#M*EVNR4WnzA{*D4J@Z1p@$Z?)tZ-ZA0H*5*M_+ zyW{wSF-O@|-?na2NZ1eeRLG1A{|B!K#xWTNuI3M_(uDQ#vb^>~T3zeP7v`O)T_`us zIHN&sD?3*J#mq5(&HN6APM=J6O_|%3Uj!wG{0 zCh!JiX#sx~#mx^zm0_o1bU!4`-+B;L#wQqZq#kj0o+^yvB92?wd*lcTxdR_*KkI)2;&d8okyCCJ7pJ-cmQ5~beN2PCbBb);; zX~biGH{UaJt!2s==_jA&lDF(iRs~>|J`}e-R!PZ1Qw61{bLHOGZ`$SPE;TJ`-oD?I z_rKgRVrIS8v}n=T!!mxT^^I5QJtPDlkey9%@$`nw>k726U0*pLLqI7|lbVDZKQTr0 z6qAariUoTl;>kn@_X@q69<+NWUb(nsxyhn;#5MGOoiR;MrhYKnymG31cH;Z`isZlq zP$G(-NS17fs=CDY>Br>VB1-9@|GSIl+vnLup2ucO*D=)3xrWs+x3GlwOH#FlCM zA$a|o_xikWyR$moyP?w;J!6*=dBi$i#8)x6Podi_XlDou<%{~^Ut3jN5N|f*>zx(U zNmEJ2pg^An0~2m_$JBma+IgaoWqVCK2L@fhg}r8sc^%+V-(qE_@X7UFk9nbC`*Fj- zNL1MENb4Iu(|%lB&fQXRDd+oxo)EPRlxfvu*HpJht3(0Irqr%eer2qN<01i`0hg}f z37U4#sBr6i)5NEZX8ve?U=#)|itKnbHf@DjqCCEp*^#moT=@Ek^NQ1BwwQ+5k7ztv zOFLR6Vwg!Al#hZO5}pTTMiW{+n0s;}6tj-5p|AqfytJUEfm(HNAV3@jv~XzFcm1`o zZ3TJ3I{N*m*Q>yV4K6Qk)c@64)6KSCec!x12@)LEqavXnogolp8paH43|aOMdoKqA z_|MqKb)L|j@9yM*99$`n1k!m-VCFvNT)iygjR)g9c4)c#Ax3F*|4#4B_*UYbJuCX% z*w-Aaj*J`-ByAYrt-wNs+b#~!>-FZ(EXjuZv97t}PC+4?prf?~rv?qUxxaay*-9&$ zAKGR3jvi%aL9NHgSfh>xfKuSm+q;c(*05`WVy~ah(blg(L5o}@RWI=*9_qTDXty>W zj0+bVt*XDw$+dRiM|OuDw&p4Xj(IIIHhP+B6utLG^M5u8TVf(*$kweLd+m;3-M;Ln z@0K=!98PRPKnWcMv5*oPsky7150(B~e+X{4ai+IfaGe{8mp;Qpic2yG@DzQWr! zqx6HDKp;(qkHFIVX56msjDVM>1${<*_|hg1c&Q3@pfx5RDVZKCcaGjL z&?0{2!G89+Lr-BU>ep?w!|zA}KUKEAgXH{RU@_?E%LOyt_>!(Bd;0Av2<{?V!|o_T zPA$=q%8YFeoL8@?fq)lSOaA0mwilTENWVX#Hnk<1Li9WFJR~|#sd?iOZg-0JBddy)5 zv9C*Wl~fhXMXGR|WWO7eR8iDYA;Ii7&!Rp%Fk6!f}%Sztp|oMC)nmdvlF94K|8of{WBv+ zvL7bt2z&Z?fUBnl(nTBP7qx9UOt`8+@1)PO?7=wCmI{Ie+yc0Yb3IW~Zy0Oq`JC_9 z0*;x5j2AWPHq#)3U5};?g%FBxO;QW`Qmw057_WSta{6S`A^h0>$@>1>XW+;H2xT1) zc>XQ>yl{`}7io_9irDJujHpBx(}PnjnnoP67VWlsw6WHQQ=lTNVo}2c`FNn0s>tUm zt(NsTVbFnVzIp4A2%WcMK(>MgMa^XwjZp~yV+eUAYbmx-v`NFFP&)%q?aAdw_wa?S zO)d71SshCt70)QP`zqB+oqrhku^m&XrV2jRFgCVh1=W^DS%%v`8<$RW5xDSNJRwID zm=dXv1aUA^WM<#-eCfGe9MUVW#n9>c3vuDnU9Qh^M_HR~jW+9(7t;amb7N?!Z;94k zG@G+k<1%(~lQ|76}TY zQfegyoc_hj?b*=P(%xnzF6{U2*3XK^i+E8}#F0f7{^_`|Rs$FNoQCaN~y@p_fW|Z4&b2Qx{(Dw@x{|gH{m=>bpZGPyB7@$IEL~ z-$i%q^bHuM===TBhxz{elDE1Y49vz&z=h9;4~a@`#y8or*>Xj!d)NNB@MD|UHgDE_ zre1n{P~6V@#n@La&ZNsbN4f*US_nUU8z=v~MfNRQ<% zgIlOBgtn*^qr0w1wgCMOW9r!`&}woVmkm@!v47{Tk3=8xn>V9Y3t~xcpR$ z(Bg{`=7kpz;KJ6%$GTtqEiww8sT-GYs#Yb_T}?w5>I25G&W3M#V;YbxjvCVZrQl2a zWv1;@11um50*BKFftpjrn@%2|+;c?Z_M%H6f>`Jpb0nh{VTwOEAjyK6Y{Ni@9cA@|pW0rs*{>0YJ^i%VR8mO}fVq8<0Bq?YC*2 znX0U+dnDPIX*$%<1T7lG`IJj%Kg8TGHGmZY+32&#SWt^p2)=HPmT|6mQGKLIYhHthVa_y-Zfl3BHapSpJ=te>U%2U7%( z9`LfINjVXYb3fpky)&;2Ok2^@$iMX3)a{m8$++;r+MAZQm(HflgX>z~L~OdTfPuDZ}D+uYG5hbGCd(vnTp6=}@y|@a6LE$8C69e_8iE zRQf!X$c@ahoFTCwZZL7iu;d+Pv$(PHV3Z^tJ+^1vLCT3ekTFGX6eUf9CgS=-nU-V_IQ=4qf2|OeOYZaGNDQXp`y#(3C1^Mt%4Lf4GhxRpN)Ycxbf(&cyhq z7O-70^WD)f1V0zrTq+JVNTUSvVyMQ>V3ks6E$Co?h~*CHh`qp7qtk%BD&o~&kI zOLrHky8d8=-mMAWQ_A%c__(?vS8C**(Nv4m2p3WX=xhK{y$~(SsMj2FMUcf*O~ljm znh^Uy{X_#|ODje#cv4@;-Cb+kjJSCF zG`v`R?y|j+-{Z5ble#*A$9Gk_;O~1G+06RPLc;cOXvL_H(?-28-}7f@ z$`0eoFU+G^b#O6jVc>IexBpydc}!S5;r4UGpI)%R&<{pzaD;ROF(AfVRIy$lI(m+$ z)Wg}u(MC20t~iV>!)WtZ*)PWvGZ(++aOlaYnLsE> zjvIFBI`HK6pdUt?=UuieI;RZ=Cz$r;0iXTnJ@yf0xHoaUvT#xcE({xPQMmkMBtO~n zMc-HLty|$j=kYSX9sP7gyCUCx?)&Lid!{CnywfhjBRZ?x_qz=hty4|-o;{K;~4!p=g;wpRqYoS3-- zrapUO61;5ss;>@ryD*&}nO&Jf;G#QN!>ycQTR_jT!f+##bJpC6*}*Nmvi4@z6&DUN zZ+}&^hs!Su@Fr)i=dCMT{l|s5>K!+TTrk`*gD=w17>-B!n ziI8xQdyFYPCun1`<#R2E_E&g|m=`W4-GmIn(+H6yQ{C>Y`LeNCwK(I zi(_7T)n(?9>bc7n>QTTH-5H=`HgU*9_YR^Qw4j8dfcR>UzvFacIIS&D?gQ}{IMPrN z3s&7Y;VR+cCUsTx%NQmwR=SQ?Gmga$?#{tp1$~6e?3n77YM`r)3UgDZ0sZQiJdNi@ z|I>YGbmg54T)5o!SkQ<)o6Q6A`wh7@wI$(XkQk=bIObuopm^Y7m*ZbkN|_JFSJS!b z$Z$7bB^e$$v+cPXQ@xS}3-~6?r--Y82%cS@IE_2OE;dNrN8ZAOOF8Ka78Hqt26d2s zke$rJoxLm1ynNoTu|;O`ntq)l{Ncg{1nts)h~NF~Bh5=T*MA)rcLTO%C~Uq?_N0Zm zt+{{d$N~FAe+X;8&mk|n*CPfAign%^{xmBBLl4v(5}-X=?)2L-+-&ws1L0G+<3nM; zvd_J`g&7)eGx$Dbl(G8;=1Z&9jEb@Hv9S`4nWP2%#_@r1Z-=cBXHJthUVl{&rV2FM z!>OxuHGttr4zHY{2eKjMGWZr^RNscID!Tl;tx?88}8UB-r1`LNy9AAkocIOq7@-qHQV)DUOCjx0RR@hd(dSpW~Mo z;fg?fpryxSG+w5~@lbo?jFQMwltoeIqzB^I$6dMr-bzOCYJVr5)%&MOW`=G+6Y8W+ zgq}hGO#m!gt1sSnBw%`<34%}5UN%ED|IY?aH=U`?nL5evXty`NuI zo6EO&CH3Pz9^Lj0ZZ3?|x++c8sDgonzaH-LV&H4>s`-4|KefJq?VNE{pn#y@9(?UI zcJX$TdXP#q1v{ZhK`IM4w^_L?lDWcV4-_k4xgp*ip%-H*IUD4fj7krRbS{K4kZgh= zDYb)&1V}YO3_>)Kc8`IW4pzi*KtZ>H!)XH>hN;|6ZV4V<@C1t+^>oC*+8i>nhg)TxKPEn$bKjZYgZH7F-g*{J&nY=BFwJf>XEwk(6 za3Ce%_t5!p->>)WEMlJxj*7KD3rcIo4TZfca%wPutrJYPK1$nTxz=cc`04%AJ8)sg z#5B*9e&HrjW$Rx3Tp4&&m8c{H)1xk5OOE zlI+{Leop7ZVSw(^uYsHjKE)t-wm#dP9}E?5JNG>HQu}a2T$si4J7dzFW0Zf!caZCZ z&%rf9SUKw$M#8R}(JjuF3S#-EMvZrT8LD9sQ&X*2T`+EC{^=gN{Cpa6VQ=fNlDhjXP@{pip{8?t|sw!HefG}5x8&ok#dKcd8aKZ8=ci$M#3u~`>fg3Ok zd~n;M@|a|M%as;GdZs7;ypIdJB|mZKoH)#+NHXTwr*oCyQ3W+mUD8?Ev~ZR2Ca)=n z7Iovot$}fFqu5Y=Ffb)^P)0+b8#5P?LFX^>uKGsC8B0Gp1thisb2zJ@R)?tY38y=( zS3wZ6zDh*zyPa>(jXQhHcwL;6pN>O6UXAIi0LL6o_iuUUJ8Tj0x9*;wEf#Nqa5#G_ij4VV!6?^SKIj)T;!HUWH;*z_@q3)AwOsuSkp78(VTe z>h0-`3%}04&}Z-Qy27aF#y&0FLkBTaxBW%G$U|AZ&;1j-CQ5%-m~578`I6(M_Z0V; zSE?nR=JZ?~H&cGJ^zhOgTzD?1-pEx~X9~CdzBXk1w6=r-tM0OPvN!4VP1e;N{z5nPAjrR&ry{o?;Co4PR`6QUYYmxUelc+&i`UUl|9fWG$wU=3uyy)i`BE= zk6uxBhVUtJeC)IB(X=u_Lff2_Z7oHhFt((1rw=oUToW?%vl4dDCZ;Q{eF z*lvRklnk`M{(=sjbY~OQ_Uz3uFAc79!8^f#W0W|`Y2fm}l?10hbZFaotxKvf-saA8 zVUImKan0>}9D6J)(iMd)(R;GZdIrdD4PEkN9gsW>YNT&rSr)k@e9zpAbvbVG#@?1hSENPxjCf^E}Y;Vn#av=Ga@rA{FC3`|YXJ5T8S z0InP8O}*<$@ju89JklKbFov0i50xHew#vCEn48tyrifO9#0*-^o=DN zFxiylXY)^=a}|eN(00)aISGf}UbMUb?5#1)aNm_B$GPMGyc4D^d>{MptTmin=r;gn zYmt1RND97;z(NrAhO?1_V+x>9WbL_yH*c(IMEAmL27?;{xPV+AMKAe{b6XH+xDd2_2W<9Fdg)npzt?( z<0e8#@$UjIy^AUR3)-fXg-G&HTt?F)!OHQ3?A3@Uc5>pFZ0q6Dt&DRhJ>iGuW(xY@BNIhGJX;8Uop^4t{n3;C9VQlvaLwP@{+;-43why(bEh8YXaq7sGpo|)mC@agrOEP??=38n z_D$I%(KU?0ki9%S^^@&Z@HRJ;)IRK6ae&y2@r;qljaViXrIOK9ML}xD@rogP=_^1* zO;G-0^l;1d?XO*eyzzuAWZkz0t3ibd`5De4d?g)d(4H=T)a*OZ* zKZX)Jp5l_Nc@T7%^wD9Ur@E~eU%y0)m$or9x~tyAZn!Y6x5baWkjpc!UHrN8F5(H; zQpBaMz?yp!(z~Leuh5R7ZIc2_S?614L=E_8Q)?^hY!nIC^KucE&34G*TDD-C!2kwD#6inL?6x&H3(X?_+` zll8-0i_F?zzsj@`R@EGITHeH?>ne)Y=vBp*cVCSY26Vb@etT)|X53Fim%De*W%%;< zalLM@YkwUyhV)=c4gFxH5N>XArTOre{1M!2hXb8^ehe6o3wJCJJJZ^%yXBg9!p@Z= zoPY&J&;o?2f@uP8E-|DiEVt*JrIB0OS_{`K?$`O{m80O8%_5P}RMH8FF(jZVG;#pz z`n`p3CtX-<5j0+Ji1CkKT#RlOcc)lu=mxR>w}@`jR`nQM^A3plQgnch_o{1#4KGGB zh6b$G>DWc9z8yE&*!pPygqU{wFn-CU-Qb<-0idrbO<6%>{dBE++=o^h)CLc#jZLmM_u zYo5(as{Ob9sm{NB<2TLwCK>VkCiYt#`R){WIcX4)_{^^=TQO%|_+lyaDZOZtJY$LP zmb|lMX)j>Km(h}*c97_giduw=pDVmE ziJzKOph()UQ+(u;?^@aM${fXGwRX27w0}4Mlupq-c-SJiLyzUX$_vtn$JgOxh3KL?8@(SH1irWyqJkC9w~u3i8GkS z@ytX>_Jp>7f77I}R0aFH5lWVhy1W6`P&e!!-C=cQfDm$Q{i}8ciBMa9H6THu*<^ z!bB&&DCj~r@G&Pvy*6B=nGdzJp2X=E`0|0tp1!M$uDtOeTuje?{`w_R?}u5?&&&Kp zAKSp-U_y-&`)8*_mRRf$)oI*Y-trwYVTi_#RWxe&hDD9W27S}CVj9@&TAs6Dkf`t< zi%G*bPSRnTo0?Fg@1DGQNs6+sjVDNyN74ouu_ z!C6lx1_ul}^vWq~FHa7)GYfNQeymaEhNV?4Q9HROJPku*DA};O8CI)YxlxIp#&LOD z;MfcJ`qyD!I=YJ-<{uYkep|Qlh-}z6rWXPe&xy|P7M-!w zRf?23wBGE}hCk6i($6@!=ZQT3U6VKAcn8J9G)x%8_Df8^>aKQS;)jyGmH`$irtXKw z`cxF)W1xz{gAci093c`zh<63@8)^4Yz(ZF(boD3wg3!In24cQsp3M40UWsZdp;<(8 zLqt*1Dw7&1Rgg%yR98z0lb*$hAQUw~JU$J5z+}!p7#I;=JH}+ydONMAv(~=FlWF}u z+pvDLz0tlH_lbs?b3q-TzDY9R6JOZooTZu<-Mm!C)oAwjpwp&XT73$xIP@Es$&i*S zie)J5696Nb9ehG;y?Tf7{!=4QE^^vy%69ET4lFWu7qqv>8l8D+r^`(k^6q(P!#LOq zbs_SedH2ES&^h-0kN4}t7oRfT{X62x`ks;&;QzM@76`rGf9c9d`1WJy*fGch68Mwo zco~2m9{v!^0x{ZJN7cW}@5>7rU%6_oqX!&7)D^`T4xh@7PoI>}FM62w@BTv^|H-B3 zaE}ELQi_5Ek&J@a0#93bmD){aMtCg}tik#d;!coa=voDb;?58>NL4fT^@hMuq}fnF zL0WW;KQkeZTc;_MUvjbO9z~W^_5D%6Q9Ou(UkxVopYCb4(u05JaoK=r zY!gTDA>o6qqCI<-en$6wNf-WlozZ7YdFS9@tuFEiHY7Gn4hI5`!A{tq{seGW#wy*~ z^)5lnLu$XCH~aDjT~)3z9@fSfC2T0 zVKrdP1`jiY*0aIXA#_qk1(Ra5_2M#zX`Im(A&nX~_$O}lM>d6$DrUriLJcuIVf}_| z(|P_`XQdky@-UNM62) zP5G|cGa|Xv1s==8VuL{zw(E^*b0#S;7F$KK5px6L!TIA*>eT%n;70~7#fmgt7yuz> zloLR_b-{)KEXAP{92O1w7|bm=R2V+xp5c4k$t~xlJrY8bO|mCPjT+Xvc|0!cJ@w$1 z?j!OAvF=tadf(qShUp{6-ZL(x^^7JJ1Izq;^XZ;W{-&$vjs4v`_t#Eb*l*~Hc6SW; z=9zIT7n|9A{f!GHPs7iCn!Cn0;(_nB_mzndT?ANv>BA|!oIAyGv&D4p^_j(oap6Cc zb`PJQ>clIVV%s*^to%5eMp%`?3ust@rR;K~ahAo~CarpXeTWNr;`?Kcbh>GhGUDaSZ(25| zumDv!DB|I(GZsF*(dO4f20B|s_Oijm;im?oqiQ&WOBeV{s+grz=Y)`8G;|QVDZ~$w zdOX_m02+pbi`ik2gi6;@z0uK`UpumuB*y0+TNRqAUeHz1-6 zy-`d*u_KZyYKFE2_^W%1`3c8ff3}GFGA2m>=H$nimA-r~e59M#SyDKB*_Q5{`=GH^ zH>QyNh<%hV*5g-=R697ne?YULAMQxPxf?z#O-?jo(<+g$h<`xjx)YWuj7!G08T+5C znaSH|bbZg)nDudNLP0}&{DK+N#kt9@!_Im-e!`$yla6*BaT)BIE$55N1@yKWl(uI;J9;D8D?bpit>{a)d&H}~_x4sVSk8t)N) zy}n}>rrGMuCr+zIj+T_@N$npE9SqK^zTID*VW|-%77`0{Q=tyu8QNO=1x&dbi z86@w4lNhwt4r#HX=tlz!{|VVMEr(1S#CCsWv?g4*+3v3_)fiTePQe`RTK(RVzztcC zwd#%o$0K!V&H{sOgOLd)ef{LLiI>}05Z*W9hCd#{z(Z$_-0gkTa${D?-k(1^fIdat z9;F#BW7Z&INs&C95JM~tiM*|hc0kBxfg5#d*_;xG&B?jZymU-+jM_`v9obq#4vX_j zc6@jpHx!O0P;PUTKIi(1qQgvNhRM)cpF`0c_eQ8lt!-<#&Z>V-c%LY*ZSNuOA{DA!>;7i)njuTIiK? zZ+M$u-(8@k({dL^Ipd!@1?%*}O;@Ld#_BZ*JcXB@c@l<|dMw^-E*edlSTX}VUg6(u;26h+;BwKpC#Ep%s(wLK z^E!g;B>xsh{zG9{>Xrl5ekaJ`$xOz?sb6kY+rUFMUf$@*6DQo7yxkJVWP0E;v4DhC zsXG*l8J#B87au+@5La>H*iIFY8}h{jop#xq48=iZZ!Q${8vuKJ3&{8dX-#R`cSWjG zS{YMuMz*1;Bou9EWz04(&EB1CjqVMtBMJ0A8G88frd4bPHVR+3(?IwWcEY5JAXJQa z><~bmo&KS&B*D;pqjUV}vuy@~3lmslx-vzpkcNv=p@4*-jTQ&;2E+5W3%v|1W!?+H zlNR|Ahpe+Et}<6*l#f$a>w;cgoytzmU{U2UT9`LdjFS$Vd;v25^a2TS{#eN zo=%EbNSy?XVFjL13Re@v#{Uyge9d8SGQlSF0J9o1GKDFg4u*)bf-A&d58NJNr!*}z zG41W=8skR+R9j~MYS~iISg4157l;K#RHBZBI0J$^NLg>WF-~pm=}U4g3NKP^0jdLJ zDIja~0~5EV8tzUi;5vYsUCEaO64WyCi-QHShW*$7)8#>;p=og-PklA47?rURLh+z_ zHPcQl7f*Pm3!Lr1>H_KvLaK6UFJ=BM6aoVM;$Jlcww(hXMTW#2D;Li0WRcl3ZRhQ7 z;zqd8bdq^ixZzOq;D16ofAmG~EW<80bV`Pee718TTY)Ht!=h<{^TAXwzL5EE2wF;d1D`!V`2QfXTOUtU)n*KlqXKO z|LnrG3QPaBbIcF6$$i3f{Hy7Zs0B~a8blNBGHd^z@BhPO|yO0i{m$%`~ z7ur=`%`9JbU9_fYpSfAw<;|Fh4XVbSns&t!!w|K9NgwuUaYwTC^w0b!vTk{}F#qN1 zy)7p;uq<)jS2?nFKKLBc^Cwi@4RsEXfPxvj%wdQ|uTO7Dim)|Fy4<_*n-NRFS_b28 zo>=;|MP;;UsPpxU@!vYZ)=R$&R^1JpE8)WI#XQx+K2yU3m_3-7;C%0iEIx{pBYBac z9a(jYyNh_&n{%_)&ULZrySx;meXsk3alu|9lhC2YD=y93yPbJKuNrNFZJ4zA5G=L# z*8d_-N!Ls1`=fa!hqFYB;|{_V{FbDy_UL`M|M&z%;)p@x4U2Z_0V`!=M&Cq?52FY& zV%f+c#+1lNkAh|Cigp?WfakD=7d;VxlpM-$s#+d&HIl!sAOtdj0o?Tc+*g&p0%E1QcqJD0Ch{ z(O0B_fb11+IXIKv-=VB{X#ubkO^^ID`fENnM5m?0^&|6ub)oRj_-u(_PIt2`r#BVP zR;+HojApKmCWyJQ$KwL2D^m+nla>lS7~oNGSyeOIK zi>jKC)nQPVI+>IU3Py_eOxAJ9k2^xB!SC^{DMQFuP;?PaB zns9;4smjcIc(Su?v(2=d3HTYO61{I&ECCICO}L2x2hjw>I^=J;b>!83{4H}2KiZz> zwxMQoL*mMHg6MKm$5Y$DZuA;kS7GLsyk8@?AA}PgP|o_Rw^id<88@lbunFzVI=`ry ztRSH?C~Vzy^8s|EPNpu%?#gaX5(G zYwsP)wF@eUiVZ?Yfdmk+S4spF2-3lZfQkqxh)5AZMT&w2Q7j<#eifB#!`^$titU@- zbCR5Mazf(!)B8RD`@Hw{x;Z;DJ3Bi&J2N{Q6b$NXrn{>@#SAK(Ve-1>%FB|Xt2-ao zc)z(!JAOl@RX^&5)4Zcwnx1I_|fe_9V;N@tQeGPUiLzWW}ZG0li zJSluWXxoQdH9c86i{uZ&p=XQ~9gvdRnd-WqK_ra^|m8E?)otol5_ zYR|ZUG4qC(f&aZbWNEXYqmqZGea^LdyYIO4z0G;UE7BPkN10)kV|A-G8-#d55JWKc0l8v5HZ+ebJbt99=oWNlXSLq#HoFEt4%-I=L zMZrAmVDMq6anteK)#4DIM|M0iw`6USGROte9W|lqiPB|(ks0E0&L<=2t_qw@NSFB9xb}>B~E?vqouoh zCLcFO$2*^?r@LF6b7={?C(7l81p_$aO2e8y3k+@7FBgFn>iJhXc-NHZQ!& z?+)enO`KTD7!e>EI3hQ+*KHsO~DJa}oIRMolh~SsW(+px~R{- z_ErzT_%@=1-K#?~*4NiX@hBo$1{sbl@DB-Aw+R)jnj?`4GZ0uiD0dgEfK%&#CXaf& zMgy%ugG7?4LnD(~0;Iapi`Z2uZAW*|QbEY=KDpJPkZd+rlvsyju8lrGPreZ{D;ENS zHZssmSd^xeM+2%IEoHK4R@*NDAg6=IBbWsD>$$J*emo`0To>E;*owWxp#e4CV>WJ$ zb9>&&W~R8LAwS+SLBFnAw=9f3$lVjU_T+Z3%!@4<1qH)cn5pb;D}@I}Ahu5)h8>4n z#ohgQRIpy$BC4%!*>Mi1z7D4r3}kZy-0SMv)X@8x{@!BuQ`6=82Pz4z)5o!KL0QFT)72&Yx%Ezj%jk)UlsTo3 ziMmC9?(%9xmO(H-F;4fCCAYDWHss0qOYF*csoHJIfobe*p7CwV?8X8R37 z?+FvtF@rh1&=^){3yjO3pJ8$JzTROW2%Q>LM&YoWJqrA4>}q8f2OoD=D1(h}vy+}h zv`$!(eSxI>(Cp)PKRQSf?-_p7E6yPtnTXDNG&>&%V@@CN(|f3}d+kDEHKkx1Wwf9~PyE(0 z@Ik*xuf7dl53@;)+IT48miHnovC`CS%hv}+T9mY1(z18%jW=rT0VZU%xD?h8y0}Y3 z*_nMwsvsauDIrV7=8?hhtG$pAiwJ-0U(;$|_{Uf*+&j2_a*_Rc*ok2`Q@nCQ7{IR;WE2D5sRPuF(A!}GYw&Rw@~%HI^JO*dh(3uUr0s3keb z+#Hd|K}|&79QM7KwBV9;r(ZF zyP;-d5Rn2jO;oo9`2|vU5WuqW_w)7#cL2&dB!5B0tr)+kfq@bpKv%kuNtehC14*Hz z50`}24pNH&8kGWh9tVkt_7lQn54Vu%wQC^;`oESF)d69oUS?-uE$iH1;mID@Vt(SQ zC#LI@m+JnLxb6sU6x=axzkiuAH!*KcS+o5@xJm%a{LMV8>vLjcyvQSa$3$$n{0|4a ze268b20q#us`b^^^t!l9yg|pYd8Jt*nfm;YKN?`ncH%)+NcuyXlRCs8dm{(PjWwG z(JnCR4LAC)Yu5UKct>!ww4Y~_1(?)VeU3j(Xwk)T|ANKKzWH}dQ|p(OBP3CbmpTzG z7)sswK8F7q@df#FV{T18{5n!?yh0rmDodk=wprBsczv7DuZzCbvX2Bq2OfW7v&q!~ ztCkCSU84n7;+NcYS2}(9VzcpIO#k~K;bG(E$4ZI{Gv;48RGdpMb;7ck2-M1qm&$${ z+~>B-b>0OM``-#@m*S6U{=Hx@6x?{QRZw2N(c z)VUp(Qg*m;?L)jh_d1u(C~-QbQBbISqOA*{YQWae;cnAvaUYJ28s>MJUnE9HmCPBgSyKoSWFMvfX&jVncf2%rOl!y1%?g`7AM0K-@o?r$Tm;D+azTfj~Zfp zYN}d4jvSD`ub<4*+)e5{n=2!1RQsh%&5!9iTCcj2JARIs3vMRhRBX%cDeEg_;xO+U zm8Swah_!?(^K^pLasqC~wHgCT&o>aS7%}sM?%@W*)Y=X-(kxuu{V)XT#aW70p?~b- zBlD5tD|mf$9rx5WZb7#R%Y}oMcERJAdq6++-=!nW3qQVkwApO~4>z7Zl6k$`3S&v! z+kk6B!h*TlQHI_MlH+37oZx#z6^qmh63(WY39memM{Y)cIOUL@aBvgBKQIApDn4DA zKcJDg#A(F_@BR63w@8iqh-3&lzWI6s1~Yi<%hd}-88964uP+DK@Q(2oxo(^k_jX%? zrm-sEpe+kSXt#RQnRDCw^78giPcEo&1a5v(YtE@o4SH`w>c{nmDlvq?@h$H2;VBYl z%c6$X0~X|+gOvm0qjMlR8867y#UawpI)6>~n<)`}&uIkW z4)nUfS&j@DV<3!u2`oc3IRzvoI8y@m3~%qd%e`JQe^qQ?Kt=EKI~7wKDxcb}w_GZQ zoeQvBZTqpwu+NQzYPUBkY{s(<|Y zz;|7sX=01Ij^YM~Er?PPgbPK^N_L0_aKB#jcSFnE@)^vpASX}tLkQFj*EDukdMH74 ztG*nUr!VUZHvOa9t?J`FaC}gMk=2b-q-K~3B}DRZee>52JxX^8*4(@mm^v?i0{w8T zz@XIe;JJ46^@S_9OufHs*^XIyC$i154*kgA>D)U5Pg8?_-yO?O9ujV{DW2q_H|ZUH zN2wP4I7fdEV$l_h61WcxJs=9*pLm9UEd>syR96Zs5Hxy99?`I`DS1yj##e{(Wd&-Sv!sufm2=1~{RNdc zg;hcR0!vNYU{Ye$>V^E|z74uQT$~EYJ=A=Cbwo00BuV+-I#aVgQoab=4mkUl+1jCJ z>qZ>gd4=w()s`GQZ@yDZHa|NRCP@DJ=*rWfcl*;1H`K%=2rA`RDLX=QPYNmjuj&d2N0f17B zib`S>0C4VwmvJ4v-5}PF3Wwp;DmXBUD1W2D0U2t{^>_Dh0Yk`LE?8*KRyJb)m?L_g z3$ozlaS{~Xfe?xi%AJoxXL6$UDYXT4GxKnj!Rv@_o*Yg?s8|GFy1PIam$)1+{~H}X z&hfHUQO@S*NUw2d7G4m~@<68qdOU0palv$g4#(yc2;njg6& z_p31dO3I7ct0uq2cFC{IKLwS_dcqhCJ50XO+ogqR^4h6u28Z_Vh#Na}Eo{BbY6CB^ zZq2VwJKVwh@V}1`3onK`uut8|y|P=0cD?#}ChC0m*0}Lw!~)^HgmaQe!*<^Fhipjs zzl@MH@Il9tg%&Xehf^6NM_;M5$;hf5crZU>^8aNpc&%cndY?+STN@2D-_|1gQ}**y zaHo)(&GBneMQ8vFcG!s*Uw<5bEJ;4^cjRH>9nf{uI=$L}MXDd`dq|FhN*JW3$H2Sh z_T|RRD-!HV-O*Fm*M#t7TMqX-x_!Yos|?eiM+ZU3r_zpG^l743|V*ZmZJ-|E;Y|@%Xw@2Aa*}) z{4Q=fGPN{}pZX~7!@OEU!CywLBdHBXJ$;d`CZ24?AS?9BYz;cL6Yn}!)@H?*&VpZ; zVNYLF-NDxnUN=*?&E9dQ8?@;cX%jK{m{Hvs0Ut1`E7FyM6CsN%qKB7x_iRxUTtB}k z*zov>!c@S15)77qPuPn0v4?r&0h6~iE;WL*WiZ-)MGg>HKR+}AWHk$=9bTZ!AjqS4{^M{wl0kbkzLS-ItB63V_Hyu&3N>(PF$JHQZFdL`1S4uIc+F z*hEk=+c($~ELC_Jk}gp+V0M%uRcZ)i0HbnHKIJr!dgxVEYyv{*OmsZ9^>GgXTNgTV zJ!Ie==mc*A5FbDjx=M!3H1rcHM?=*3qW4GdhC3^|E8*kJP4ojDfEFhLJSGay+?_4F zT*2E%8wjLtXj)?$;E>ifaxJ5`nSA_MIYJD(3zX;~K2q|FJ}#8dMF&G=3;_i(hlC>k zkq!j%auk(Ps+(|ho~cG|L^>Q(4f_!04Gj#dxWE?k;M>R32VFPwBfj|S2lCQWwNlUs zygCubs%^;6i%%vxMOqi#Nod>omis#T3#!$OT?rLLOThy<@fdcSTa&q!*;#^|i$`N- z7-oUm)WR%A6tl=21~{ztv-D50#o~6RKWs+z|g#h_jx%tww`H(&d&>3`pVnb-l|FK*3p(Fn(2or= zWoJ5ZtPX6Nv1jxW129fmeYBLpqYQjt2TeSb8%L{J(`F~$s&5lB{>G{6_dNo%G6GcK z(Pk`kKZR;=p`e{>IE5CAqPGgQ{b7=uv2?8;x5b^}5#YP=7ctq0L@V)bm!l7@_OL zH*@FKjJ8a)Gej(GW6B+yk8xpDnE9o2C889QW3Dx)sJ0)WgiI)7MP% zWz%wNc$u%lg=gczVH#azT@gia8wd}LebKtd? z+}H(2bWXo&x)xI{I8<^f@a!AOI_te%?u5EPOkIr&l8GCt(?Ho$ct#l*MZ?`f*fX&F z+6VD&w>uW|E9*jVms%OD8jjnuZ~d6exjx=*iKn(&M_dUm*jh9kXs2E=)&?k$sSr{c zy@r+xMwSh)A&NRFXlQ$}IjmdIVm-PIj~UXrvuJmt59aNA6o%t#sfzUTYVaXzNZqoa zZPeNtG3@Zk?)~EkfjtH-}ypfgpgG9H*d1gK> z313N6jt_vCr+CJj8c!_hzUU3}hb9&k!J4zPz;5|mwezbtH1wP(B?!Hn)m%a$q zc2(AmrhA|X2Q-j0vUv92Q#;JyM*GL{&KE6*hd6tIA&(m>3FjW1E& zA4ny?|Gh-8!KYFYrNfy|^Efp0+&wBIAD;|?t>t5|Cv#5O24*b1aAp5pn3NGGp z_H>6-Kqv}{Vdj6_)^Fvl4}yXtH;qqyFSl3JO1FV$Qc$5|()9rMyd7Qexvj1aM;B_c z6K}1+f7tk-`}L4vsI~_Rby7d%aLC{%8a^4zBU_M~CR>_ANpJ{<@?{>7oXBHTrHP_5>e(AZJ@Lc&7i!cxrfxz2jZC| z_ZsVP>Jv@Aur%@XKZ+Zlk$!e5KX1!Mm+wIi(1rxF!gu&)1qF8Kr}7}d_~75@IDGWZ6W`R=*N@7^BS7_Q9dK` zyFrv3-26SAyd2#L?lQ32yN5{0m7^d4<@IRlr}!9MJXiS`*AO12&{w2La{WDK6H0}! zpeUD0NDGo?NFu=i$Vh7Cxd>>^X-y>QAW%MjFze<-%_6cVT40Qx$|m-nu)G=r0%9%8 z`}TrlGe#qOZy3v5K*?_h)bn zT?JqaQLBFF?F{IroFhgr1{&nyRgM}5e;FO{VyAG13=pFt2-Lx{cV)7K>`W4=mL&`# zL4)ibZ0qM5#Fs`5Ju*q1Rc$&>BsUe$b5$k z6SUEyd*Z}jWc2EH!zd*XSo`s$&g?y5IFnqC)Xy7#*Se@i#HBQc?%?F5rr)!HQ&NG4 zo|!mu`qzH_cscv7TxhSGmVq1jKf?D!U0yEE&#->d{F@zcj(XpM4JwsJ48rc-5c>@s z?{XuJbb~L(_!-d40?I*%Gwik6hp1#OOs zHkLj}OTpd^CmTv96oOGUvh+fj5Fug+ILUP=!lY

    4Pv~N~oO>CS@Z_FI0MlAcfiu zMVctBEdAQ(aGIkR$H3}`KrwoClVlQ_P?jIqlvKsosb$lGW?CMok^1Ub)HAq?XGpn= zCl?>I6qQ)uaU6JeTKRV@hsABTEa=jvo2W3i{xeev2Ws}QDHH}Ec_l6?EG_Wkw?e6X zfbZQCM%exQ=Fi>s>P1CLVK9ic7J%>r+6+KWTcV0z%uF#Wo_boEd4_+T-7sYggk%)j zLD1DrFiaUx^R0T<8d_W`Tzn<4QKLS0_FsfPI! zR0^92Lo+BJ>HfH4muTnCUaRt^8g;{sbsnb7x#hM;vgVd3Il5Lls0S_Bf*(s_44_DM z{Rpqf!fN}Tt|s+{mffIV#gWqr0t?4K93Vj^GP^!we1sT=Ur5FTcly5dnCts}ri*88 zajDPiL?mm?ZP9F;`IGw=30G^kS~nsVB3H=dXXdJ_a}H`S+PrL)hOU<(m1J{OlKlapQy`28~a|E;5hr zyTYT+#mGu_GHo59{0xwZ6b6$_D4a~bC=O<#)W-)EAqUQFs5@AVY%c z`c5!3OB6m3XL>z|!;MW&L`-~l{iONw!puw0&XeEdbmoH3>z)2K zISpjjuHQ=_LRWjA^n7xyZmeZS-j8XQ&g{R0zx>&=vhKf&_X@W@?KP&8VLH?@K#9dF zd?C&O#027giMe&S2B$x9OP(xmViB@%0B*e4y5Zcy$%_uw>9&Bl@)*RMxukdK z4}SKt4hEwPzCu767%(PxN$lR57p>ycepG&H)uoI`8v@(S-q{hnPgvQR`6|{r*6|Eg z&UXF*bI0hHfGDhbWZzcb6Vshq*?x(e^D9YVBR@CGDUVxlIH;o{{M+RwFH|5bT6apSpfzO72G z+e!|+YSSQUQQU6&?NSn+K5=^wKaa=Mm_t{LjvjDV5HDF`VH7*Hi2htIy}!WLp3%F| z>-|B$L+ymcf5*37@-Yh*F!gRLy*Jx_I6%L>&amZm%@3@9vf1%LP!Bw$R)&2uTSnY4 zjpij8ckJc>lByo4{E1A`w7~uUjSMc_=6b{`X4vFqHS~I{ueQIxs*y1An~|W)mhQZw z!S4r~j63aehF zbuB-c>V0U? zzgE^aP2MrrGSJ|1Lk2paAEGi%Z`O~z`z0;>pA+GHPT5b(}TE{!ek=UTSzni#V(9UKy z%hPiXznMJ<%oAF|gjQJSbr&MOJ{7+@Fw8pJ_uKSFTL*y|^Xm|aa;tI$KGv{=8@X_~ zAa;>^13jbKQ2GG*g4D@|VsafEeOw7I6V*(KOM7M6vNTt+`s2rw@!1t=|a0n@EINV()v+$cniaQfXobe~s+ zLGr#zQ=06G#Z<4}sr2)6BZWDgn)LTJxiH}x!QiTNdY>ztLo3KH7v$_^Xs6kJ*LON4#cLQ?IB#?>_*fzgcG9(BCkP| z3z$f+Bd0Cla=~6e)j>k8$;fq;3ueJ({ZSL*lV=%C8(wYq;YDCLW0r zfkhDq4hO|7l03kmm-PqI*fI~4019l{R3=?gi zZsHZaMQ4MWJ(}PUd88((#WVeR`+e_kR#Du@WoO4+Pnny>E<+@T>HSH6DiG0RR9LSi zg16i?1A_Ywp1H#oL-r3BMlaYoL!6pZG~@fmhX5JAoSyOa?5=VX;dZY(6`hXiJy2uI z5#$nXU3~Ku+z`_&fDqkTU-wY%9P7}g4PT`Rn{LEk_Gpqe z`Dn|Vygey`O{w$e!O;x53o^gkZSLF8tRTI7M__Cflz|<@vfYzoB^MkLZA=Go-4(;R zxp%6y*_@;N<@cZ7Sl6>Bar!uQ*8I$Do{i;!HU5Ef4%iXKc+*o3GiT1P;%`0wAah@? z$sWcXXHo+)FyalDi8DAf;mL%wJ%WM)v+WB7tG{SNJMyA1;WWIm=CHl*7Qwy=(T?1y z$B0whB4OO#SL=^j#c$%fyWOv8%(%==Clg=$q^%hvP#8=NC|{G*Ii$sNAgrW#Lq)FK zC6%p79{yAkx#@041KSg;abs`Ju6u_HTbO6=`MSu&pyxE)Co{@k z(3!~@Noss4xVoJ$&Icpdi94Sx{npgvOMAhNE|tOeMFU6RMrr&W7qd%UMLVNzT7C|V zw$==hU>xpz*frWPVtHTjTHCoxT_Zv|HEohr+*)p}?I&x(=@uFv zv3+@$tcbiYy0cX8?H`PNCY*TdV@$%Ui^Hh-pExM1>J zWS&GQm1wg=jwUIjd8pCmBo|dXV(jN%itT!PJru9@o$Wtzw+C$gjdVEmP*j|<6QRE% zZwc81ME4Z_eRibP3iJ3uO-{@{ac3wtqE)OaIng3j zCB&yKN?8*$Z4|oF@u4T#CTuwo=>yW!o+vy3qt6JMY^+^_WxkYfF^5CD0;m~+NCkv~SLDt&kRLh2Oz3dbP-QZZ6n;&FQ1nxUb6@hb&eMxE6v3q!}v9ip;dI?!bw- z#9!ZX{$CBhrNh-1WStYm6C7mtkWL&WXiaE|p_{c(nux<`1qmDSU+txyP`U$d^bmm# zm1bH;a~+NeV|6fC0*{`k@`PqXfNbiUj)?CfXv9mqK6dxJJAqB`r6WaYdvXSufa$ED zO&>a8sU?emV=I#pv5%XsrMpWaKJ)TAta^SXZ68D>&{4EGae8qS}Q$XwTns zBDU(n*@r7R926!d4u6o1=q__{cP76^))nys*?^PLU=H9_Na~kpJSdw1a<{O*1?gW( zKjzP{43%azlVp*SX4*8+k~6C5gej%<1evI6`_d>Pe6Mv_y|1l= z@(bp)5s&pU$J|-Iyj{ncRW@d8OLk8`mDain=X5faHoDI&SF$1~Xoh0z$W_KnMnQ^* zw%-$U)4B`b!Yovg3Be&zkZ;n!QMzGC6%x(Al<&LYjBqD^Fwd_4Sct>3XnrbWRl4v1 zdzhE%40)Moz5VGSqlTTvAz&oPk1LyH%vLPP21 z_Rc<1a(BtU^mJ66-CIoydjt%;7S_z2Vb`hlM~aw`L?glmPXtouBfobw69 zd^F{0E^@_FStC+Xfg>Y)DHMj0C%m9Zqd8+#iJgeB_lKbZ3y9XTu>jm)( z?yg+;}AYxXIix#4>lz_SXB>M1xTW@LNYe={c%6)GA@M z^%cDbQAB{-aPnQZ@D3*Cnix6B+rnKOGjthG>X--FZ76+EgQ&@&BQeELwsyPC^P1{ry58-5 zfO(rP5D}XW*r9SwFQM6tIzm-TuUIAdhyO{a768^=Mo2i$xGE%K0 zZ=C4lA2L{nei2&@kCfnGufwq}>R8%GN&gMl5g>?g&%N}s!RU!}rK<*{NG=j2B!vb< zs)wqywd}7@T}b;vh)D5NvZnqt&51f|qdAofA<0*uCpG892ah_{YMo-aD>>uH<@mP1 zdun|Jbu=l#GWg5{-*fD(q7~ws+=%Pbj;`8L0g^}!&jNTzZ1s@&5M^N$tVN@PG?lg# z;UT`Gn;3jbK?wkbul1XGxqD)}1a6x^{Sj~vDq7&gYwy_gBu@iF$rDpYPvdR0|7d-_RkQup3-s z%baNL+Vo4ULlZ^d7K9{VMdFkk60qM#YVPmj%g8@Q=C-|?%-_RhqPx@slzTfUfk$a@ zfNTfi(16V>g$IZRmzZW^_KED>fjXRCl*z|4i%B3FdG3xLGFRFpYUsiD2!@j$tp~XA z6s4kB$blFGxYU^DF)1%c1KwS@nq$P8^sNV7kb)F;hsLZ7Lz8YaB!oLJh0YqcS%N{}YDBlhET zX~eODKhBY6J=C0JITdHz`pp=~t_z$FT2g_LsUIgk3Yp^sveEOb#YR?<%qKh3L z^%&RrBp&KU*%v$R(x$wv?!h_Jd*{K?otmDcfQ)1Y&RFoO1d0Tr_rzrWKFAXaaL=18 zOYGRRA1^9!PjLL_dzXn@W6ViciXHCMC2{b_wCqdP(Svedr_Bz?#Em%y6*FoT-LlEP z{Ct0#xJyuNh3WvL5`!Ful$W6MUsUar2oIR;3+*`JxScbRrB^3Xm>z2J#Oi=seD1*3 z&G%yzkt;iNbARwwQc%}R)NsxjIDozC@7~~bOP5&{B?Uk5PtyI1?z*E=NR@Bg^-jNGk7G_O;4bf{^OO6R zJDgSk^Vpn%^AkHXx7zWr)xD%zpN`_j%1(WI8Xn&y+2C=!?8EHd*Kwm{aoQ7Gz5S*; zc^@mszS;@q3)N|;ikVm^xa-m5M{hk@HP7Zi&vRAlx4C7rs~9vv1ktuKZ+~xC`hjq& zq=+?;yJ33E9-Ag-T5l}uf8z3p*dFW)LkWqt^e`=d?|rk!cIQsv`lKoCBD`x5=ia&R z{Py!U>6nK;s(;7uwFN}V0GGu|%dOs?6{1)-{?C%ummm!Td1KkcifF@~YOU-h=`&)7 z*~+f=v-h4~wF5VHpS3@!!;LfMg)c80eBLdtl3q(+&N`8chg2a}E0 z40!rsI`8k+mL)-*4Q}mkGMjzY@eABiA3DYzYa7OY+tkG}x}NCvqo4Ptv#)FinZL7} z(B01g>bj{+ceg#2UFS8h=B9lzEdS!Psy*RXw+Mg|wa5!2e^}E&1_}q9Z)kp4euO)> z!LBHkk(x&#AMrTwT{yXWz_tk53vLTDbk?&r$)!41T`V$J?|5PpRkoOY5QG4jA=fE# zSkn3MSen*)0)Mx7b91w@glB&ffw2>f^d|MFc|)+rLnfHm@&T-PHsT1lC?La1T=&2F zW_DRvY?*v$g$`$7-B2uSkH3y+dqQezkzdy-d|$v)u#>16*m&3qGYNNiR#9{Dtgk$? ztiy()web-jaAS{E(WzPDhvH=k>wZd4mz*U$n>67ED1?1oQ~$&Htg|in>lgTonw+#u z#ynDFo&iRzu=Pb2F0N7mOf$9qEZPOBSA`T`oBPOoeeI#Zu!>L&6%2VADZ6I2R4?dG z?67c%UQqM16##fp&JU`gF%(FI{mKp_>Rz(iHL>;Do6ikj;K9b*HJq@c&t_5f8^e;( zF<;)QtPNrS6#7+GpUM|>8R%|V#jDr`j0P+gcW-|WY&4+F7hO(e$adcX%blqge)7|Y-a6rLwf8X|S5nT9 zo25NM_-h}Yt^C?_NGBB&SQWeoN?rQ7qdUX!2XoFwEq!tG-1$MG=#C>s>a;V02p-k> zrx+@gTnvaw>_hS3GkdnA+w45IXwhcJ{4g!x5Q$aPK~p_^O4KrcU+H)^snkPRJqNRb zce?D^%d{b;i$v4JhsW`t!WK1WUeTY_pZE{lZ~nm5PZNEval;Ic9q=u(v{c#W2o_TN zfi|S(B3nhJop3(%*gABy>$%`BYx-lbG0wF&wd*s=tk^$&=+F)a!Qluh9^HindmJLm zek1|N^2TXSV9I$)UEGnbmAQNQ!E#3`mhnB#7N03YUlO|mYggJ=fYs*ibjiFuy-bVO zPJEiMaQiq+ila*>$)|`kQAu1M<9kJ$H>jB*a@e4{{T0q*`Pmx7sc5v+ZE~v?+``HU z)~BPRV4SSeX6Nqe=I7uDci*Tp48)a~mWo5R8Cxawcv$d+^oPw$)xrZ+Y9NePR(o@p)&YV2I)bJlf0>rQpeLw6$R zNyOMu){`S_%+xm8;g;c8qJAguOK3^911?%NgtHYRA+u%a?}HNtfTpid7!AEkhQf7N zyUSy61WckJE6WdNekdk}XY_R8lsZvm2G;S03wo{X9N1OG=Aw^Hg)JD!xv}qFwy8Z) zk`Oh?vF2ZPurL|EU=|=W{$MDZ8=D&b>siZeYjLXWx6F7rVKEexS}4SVDeqjh%gNuv zrgUR_uZs^C!h)eDbgN9UJu0p554WWpAlrfp8WZzxR&o6s$wA`v9Zo&|?783*Zj5Rk zZg?W>$y13W zFj$4;i0woL{`&!xa|lZ>I7FkWLd;El@U>;5&s-a7k@4o|V`=ix&nm_R3n)HRRAIt# za%(-f{QPHLzRL&B_hlZi*?}PV_gIj;uGS3e<+WSSh?}<@j$+jd0_!T#vualJcvx@l zj(XqMmCx*Jud?N^P)Kc}+5n@QI};FBq&Z0;QesCtASGde`h#4e z7{@azLRdf49+(rW=EnP1>b@|GyW}-Ful-Os5>QiHR76sw)Eo@mMB9ZJ0b)846c|c! zi0zFA1U&JIn`f$oFjWDq>q00-hd!{M;|~?_aNPWN);&{#9yoYF5d4cVfSVQlgW@Z6 z{7`4ydG;U0k10IC!*VBjC6fIy*vgh79vgh3ieF#Pi*7-}HF=+Bd2 zL?s~w9%+tN3WKdwIvdL?Tp#!k1Va_wuh8~qB}Rodn)GPm+n*IB720TGrHQsbD`P6O zQRQteWGo|T8xKzd{t?ZK02>Zu)w`i9LDs`)*irQ#a5uxT_;)WmCLKylR0)p-ib81= z{jqh&BuIfsJ9>WmT2n_4ZI#jZgZD87*?(}t=!n$vhxXZ@S(g1k$1mcg=^p)O^0iw?zby(4b)M!c&J9|2LHk3$u_ft ze@X6)|6}TmsnjLHnvGOhv;T!&Q!q|}OnbWilcg%Bi?&Xe>Tp6-*!ABiwgCgF3}Pqb zKVi%OEjaR@sH*`qCB@E>|3otlpy?xaLjDsaG=Qdh*a`Vh^vwX8mPrCF6D40Z_MUJ7 z>(3tRD7yy>HtI6cK-r&MPpXvB)|Cdz{^SBvrHr=FG*I>@SDY$kw3VlUvOl>5RVkw` z#rZlMZ@K*c8BYd9j$(kUwbXV(ddGnq39^&_9iRXm!|!{b}sOs=+>Rz#qmwa6om~f4e)M zq3Z@x4dd!F5|9q2#YrLPs4U2>p>MSzAnJo!EFmCfU$&eE6tSfQAaSy?uf7Dzt3#sWVCz=>Wm%i7_b&||T_rMmM=#O}6p`TY9}=mT zKL&N@t;RI3YoOLuaWX9mU_| zi;acZPeIV4?h_P@{0$-BEL@Zm>Zo~E-0sO5A4mH~!`Wxy#LgqtHRZfU# zte{2FsMUd#V-+dz&_0H!s!hnJ>mi4exGBebcRf07eio+V&X{%UcJ)1IwLgYiU{ZV% z^0FB*Zycc}uG#9tyE`&37bvZYM2f@l(&0D)e|-ExlY(<_ zsyT?JpR8l@Cnp0|BoYA|FO_NOr^lQ)#kUOF`{_A)x#-!+96cd@h0NurPU>PEP7q{J zNnL&5Aru^N`-3B*BchUlPOV%==h*}q`0m{wq=SKpLI|qWM_y$jvKz>H5qj{hfNDEZ zm1LGHN@ZpLfY7BV??L_Vbfromg7!KOg$PPJI}wZzRES{tolXQO%)w_r7T6A2DT*J_ z+p=(X!cD9&Gx~iPUp%JNGPcwyL^o;sBo1d0WFaqVLDP-Bd?EkT%e9}Lx<4t3o~mFe z3#*@^{xBa&Ce9nzhq^?)f2Uk%N3@(+Iw48|Ve?@Q0^PFcO_8fbkS(&PpLXcvJd>kk z0Z%F)B?;pLkwrI3jx@}I!?D~lXD!Go-nWW7ZUE|`lU}8A*P~BBN zrjcjM+$xObK~5W7_w1);-st^FU7&Iqor<2d2d#3#b}#Ar9y;UA!)lg$}?w9dwF8M6VuGGQ%jTmSFs}o)-@uUX%r+L&hJ|_xg0J zNY78E2ht2_{~mfiguSHaBz1EPfP3N;f*Gd{>7d_uDY^hcuLJi?941odwui<}#ckRq=|6G`se{l7a!^1b?#)`^YlfKsK&kL2h z^!bs|?plEbIK|egXU_(W(#oE50?j8jc&sTd$k!b1;Lu%wn7EsD}d3axkp!u9vb_ zysK|saQ=w7Yo~)xRW2bAjG^JBEp^7Zdz`y8kT@TsIfv>9%ExWcPh?key~AcoO}*5v zFL8sPQJg|US6q%x=B*$cB~RjW5H4{0yCidtztksKZ>G#gFAz2_S)d*ikA$iKdg!9R zubzv$51ht5f+;c>nhmQw*}*4xte3Bsqxb)j4q&yfp0lGDNIPBt?q2?I1I;5?&j*(p zaOtN9H;K>(UNS%Q4MGW*oRD!xT(Hw~_fn@lAOQA(?vSfasXd7#pd;L|2j&y55s(eAPCa19A&m@_s?G8%GSiV&sH{syevdY1 zHQ$>-ZBUsHA`xtJ*3P)j1*VaN)&|{Z!3}&LnJ4Z_6beVR2k1W_is%JEVOt!-$fyu3Mx?ZLc|-hVZmcbR@VHlo1gFgiqpSGX$=@@Ja{4*4i7Yo1^`d}%0IeFkSNT# zcVK+Z{>HW#TW#n1I)+Cd@^asmM3n2+Ukz*hAjoe4Lw=FmgUO=jDfM%cx%mDcSD!+X z;nJrb1Cu^negs37yibXkh&Cx#sUIBbVbK8{P`_7CHdCdaGSwT#`Y_6Ho6GqT+{F(o zA9oji?WS@Op!(U7F9FP=P6pH0jC(XqoUwk+JXzIzxIzU8ysy`HsjR(JoE4PR`&6@e zz32to!H#1fz<1~rm8?v*y;= z`-QRkiC2IGtBDjw%AIM(r78wFaMyJfk%CFR@-Q-P`tCRPzT50uZPdM$-~kkHXE+8K zP{t|>GT{MmS{W~P?$DE8yu)PKo#M4)@j9Yb`C@bzDMkPaMQIR&a-bGsVs=s?UD25= zqcq_0TiXlAW?Q9HL^buFeQ&MG%}=P91QVpV8bdo>1hp+WGBES1D0|khN!GeID)GSl zrhA?~?3~5hJNH_~2)*J|mC0s6q`w_fT$r)@^zrZ9q&9O_T3h^pTUv|)EktjjpQi^D z=z-_dWzPP{AfOazN#SRmtJNrkzvYzii;m(OyD?QIOWF_KY2H`3xMJ|txnn}Esa)?Q z;Nt(MEHd2p?|yH)eY$5RC|*0vV)d==H&jk>l)g&Ok%Ob}Y_xXK62xHQ>_XOVMGwha z{jfg4%QnT061|#NJBQ!n7Y;J{cCYCdCzY$$6xh~aYPup-MVo{@W)rfLyALqUN^5!X z+WCjw)o={MQ9z(Gz3%kHkg!F|EVsBu#6R(GXoV?zBzqrn+EiqneYv8-@UIJmg_)Z= zu}A+6wT0Qe^70Rr`B&jD*K*g|-U|vBZaKMZ#*JI;VI?q%8WCd<;Xg=8f_!F$D59zi zBk3jAs6E(OO6$$AxhFV!deAIH+Q+ci6-8!2v{gPPkEu1VjzqMfvbd z0O0W_ICy%Aa1F_s?oiB`HV{U^GgUweprrp^6%c7JYa~fCBv$LW8j_R+1jsRwq?poO z5x)X~Ac0}OsQ>_tFfpxW0Oz-ZzR0;2&0!{fxHq`EbLm(`&R|MCK%sdd)*kw!?|xvv;fdLv0yNxT_I%3^9F}$ig(- zRkF7BgTGDHO$>BTEq9)7%83I(xN)IFz_4ZBI>HqlHy4GjypW-C$5bQEU<_w+ z+n&374r*n++UVws`wc7jxbe~ZD`&qv_$erPJY;#(Pq9#1f>Dux37malVOUeTFYO!p z@}W&^p?B1>cHO_o>ixNYuY3Sbm>$3V*33jLZ&D{KjFnA8`tG&Iw z|5!=<8OKqFNjfyQtO5}C+Zh8hF7Ee{4V@yj*_JbdtSu`3R-BK0``@SVKq*waq3v&UluEQ z3+xWttV_U+m3BwxE?PgtEaqwF)OO)|ghy)6r72UJby_am{%o4Zo}^Y#Fa!!t468=T zN&G$h+@T;4vTjxN3PvQ$I-eUcdyZtC@QTZ&;_I=v(V}s{=TnCB`NiuljIndh14J5@ zK7PUmyKdB=X>8H$T+a>*E%vkwnZ{o-az93++hn%!6z&+&*6@G3JRW{LQKfhRb5#2vle3%?J~FZ|2%4!RYu=YcMEz7z;+x>ujZ?Q0%|ql zTVw3%90PT}&?a|*aFliWlDWJ*sFsHtx686DKi!`$D2n-tiVWe569WU$BSNR}JMl_a1CddotTRY^hDKF5ivNl_3^U zb|Z>~l7wxY-MmL^fXQYYJeepQ9G&3#Y1T~@vm*atk0XJhF5;vIPllgwZ@vsScH4Wj z`-Z1aB?Xx|1^pY`hhqV3Z$D~Y82VSkK4zscV_rTA-}gZ!G{uTq&EWnXS;zm>AYIYc z^EU?9JadtUG0g7Vc0sw(W6SWo-k&4Gu7T`n;Gcuc)fHZ&SFuwuG~U=xCpNV(u!;W` zP^* zL<_J=OHVmi9mVld!-+>u8x6?+z<7-VLPuR|9Zq%PK+-~h;yU_DS=p`}8oV@Mp_xDC zj^3zBBY8+=1*trY!+EH>(=$n-xtr8^Hdhw(dw|J2on)GUX(zPcM8Lq%j-Y`$2k^FQ z!95B<^g^HppxVta0Fn~V-&O+-EiCP(gYV()jf}TyfFbGAj)QVwzm0=bfLd_SUWdci zJS{{)VhHB=f_D-s>(Z7lP2nLnYB$w-l-h6&MsYuv}#!w5K2Jt*?0<6;XNBs<3 z5J?2W`WU_0T9kK#yXJm`_naluFXJ!sU%Nz%P5f!O+SYmNx|2U31Osk5&ATu$NcF}F zhMm^@%jH8gx^P#=&A0wh1ag85&5)Cu2fuO}CD|bEd(ynWTaiXr6**v<3d4|2EbIL2 z!}C3sk)PZehIPzy#ElmIhxL}{oHQ@)elGX=_nJiDz;#safmaoCZMHScPT6X2Sc<>w zd6)fTD4sl9e@2}A>K}Di! z4PltOcU5LC_HSUFc(LwzS+4_CxUo~cno$LhW{9&V9vYE3MoM@^?pPnaVNrG5VtLV^ zhM_Aa!ee3JW*w&GFvN{h1E&bEVVcxx2CvJrkjSU(WE;#1z%-uJue3Q-gcf+*B&1!IA zGz}-m)?3+ruW9Q2f zcEYlG$gt6-SuZ*~IdHw@L)`ez^R>;|UNyzx?I+EQ_MB4_KRTz`Af=*G-5xOHkL5Wn zQuzDK(pK@-Z+Ety9HZaUF-0*t2NmeuCrF(ZVL&+j?T zZPB2?_wZp76ZkQj3Dp1lp5?YS@9*16(X0O!cxxN*(igM0OQt>=TaAp?>Hm6_ zhtW*4%zeeP+H_h-sKS6FKdSWKdGg~%Z0&xwq7~>Un8p=L-dC3QPB4vjc;=WBmXN9C zG*a=a5!}d-X;}>e`cir8g=i44S5~=bu8N1-BF+(v( zSBtE19p0@J?+k9aVcx}U*8UB; z4J%L5a#>evzhb~UzJ+YQ-RK&B^SVX_9b0hL;6}$*#S_C0Z4<5T!P^t-6fssM(Vu-T zh!Pp9mRNLYgVYT(N`+hcwX@3{bFm!b&@~;fa=u%sVCM#_EvK)(h9ou(?p$IX)QI&* zqYipN2%5#!r>@hz-9F zjau!;2(K@s~}7L_q^!%)+9`lm&k43FEiX&LwkqpEwkEV@Ramt{$c(dbBv=a598 z!5vQwQS9#Pr{dAU02g;LzV~tdCs9s%GuKnm+&go$q~wp%FKp@0*+iXINO1 zt*qm(#FRMkb64yAOsO?v6>eO5_MGpHgEP2sLjR{rEPV!Osn-z+swaF5(J!u2y5Skm zdif*q>0bZT02KqcMFB6Cj@&cWI^}yw_%y#2kRYU$Jjl_gF|7|AzT|DYOu%2|^qpg{ z;J$C#e{!gS!}nx^6Uo=eOhwuBRp zR);k?{Ayuab=u((LXVKUsrgrBQct8nDX4cu%?}1g$-iiH%pJpumMc%2AJ#Xu# zr#;u#ldM1AX58zf+!q+t!LRd=o~`O`nmxSr3+tIZ9JJhxvmGH9Ci0uV z-iI4|4bLy|_xCkRJrQag(#jeRnp&N$Byc01u-eqH(JA3j=i6PpEH*b?kvH3_4+Mok z+V^~0UUot6s>O!G2F)9OYH^3dfpa%k<3Ub|OpVhJ1D}(_ySM+_H(}H&vuDk%?9buG z{;hY_=@`)0Vx4DIpXGP*d*H@twQbxgN2Xha z?eOSsi+6fAkI6bU5QU`%#!<&-9+N=cw8kh@q)VOimA$H(EEeB=i=;AI@>vs5l)KnBX60F{V@n%c6 zHGohh`u6zn~U(yq3(flX}A=^lFDx{zW!x+V~mPC6`~cFiW)o=4rJx z+POQsS-7~X*@SCONk9IoRR}-F@W}Ou3HgNcEIGWNf8xcZl9hUy{*59hkISXD2v$}FsM<=T4hQ;2i7K2<)YfKF)6JYH2`=gF81b+;0{eH!q-roh#f1fa&UevQMj)b6%M549_lV z#jBmBrEz1AGiPLshz*9wA7?i=HSDaU#BNfIZt~C&+!$!Id~5wB`z=c6-7WBId*P?F~s*;&56yfV`>$jLm{<@whxfgWI)!H7Ka3`PXzeiIa0_jEW|a3EJ}RGx6F&)s>F zOvVT~VyKexHXl}HCi1oiCi8a{<=2^SP%1I6<->VF;B;;cuLNBiE$j{ zSZHT_2m4N<+X`3s_tazR{VTIKXU=4}TrE#Bw2S+$HLL zV_Ko7WSPM=Zok!y;6%cBhL?ROad7kZWJG~5xS!^A)|hSM@OMq^Q9knXjJvq;HE(3* z;z6Gzg_#fjshnj32R^NwkLU#?w%9R-IcMgIHJ=69rt7-6HCx`Q@Vk~GtRc*C>`{eN z{bE>yfzKMZtg);!Ms+m0%PFgTT}f8v{E3f@IpC^=r0nW)sfqo9K&7DRmP|Q z(k>W_0I{F@RRCIP<7gG36N$=3p#sZB8>?InON+s37w#l!L-16O?WgDZlcs5gjFU=yF9GwbRG>P;^cT8j-}?gSAtY?s8xZh-Ktc3N~OU=x=c%W z>dvAn@U)v7^(RghfZ7qL_FSm~PrK9-HAhMnXxa@|{TWdOpq9f`cRW;qH%6Nyn22@; z)1W3N>TtxGC7TA3{Zywyt9DbP=Io{dO}nX4e{53$s3m#q=P(*Hq#(50y4X)!G+^3i z2FihHp|`bUo>bk*Nrgh~RBUzUBN|A=LG2Q%*-k+;P>6rpO|6;(kP0;ItT5JNjtVSr zp=e>XvYcB~AZeGqrtWk?1E;;Ip#ES&1Bm8e0vs4M>lMw%4;tWKrIhWEK?8^=g+piS z7W-BY;kCC&aI95dv@4Bh{A_+$xFaZomp9$N&iLY6;DLiLbC(3_e_J@-X0No<+e+UL zeB5|*a`%u4g?DU{PHsM#_Q4avB=BW&c%G=oWpj&!y;;|CCz=p`))8)%KkNAIx5zcV zJ?iqM@cH=5j3TGy{Z_5yr8KYceP_yw$(p?nKC%Gh4A2+ZIR=u!0oa3ao4q@FOdiAS z-qrs_V5**Ae;3P>=@sqZ^a*4wU4P-zh#jUD+t;}U-Mf(r-Un#3xH{!^`Q7)X`~E#q zRc`4$3O6R+ZBb_1$XvMT;^AIvPDV_^jeCtxA6ZqW%zFR(^!InZtO&)8IYv?8)8_}9 zZqq$d*7B)QbKJP{;HZ>-Q@Pgb9;HpFXwm>ezJO@a2dg2i0*kG}o?lzT@ydlOOVD^I zP&BJy_(g81Q%(JnTW8zi#?vcwI`j6fHjlX*`O$CNm`k`Ze#NclEobx)7PS@FwOe$2 z0d8Eia&XJ!lJDa5I>TG+YM^Bo;f#Tq{H=%mU~;? z@6PL44xSRg{*S2N@OvHaS^s~`eFs!iU9)Jgfel3w8!8|cEPz-*u#iGR5=aCrs90!H zq)AahLFr9Eiqd-%L=coF3U)L8}6ZKeMINXDJruzje_3(F1xf?D)E>qF|lpk%f(B+0GBdA zPd&T&vAFI$cEH}L<3C@ORDi&={SWh2L*QYbifBj6ZJ2NA1(eABMcp|xd`%t(}m{laj7AznNT$ikg|s%BCKfwlJdB8 zkd?6CW3v67YII0PhzFu@&*=$L%s0yidanIT-h zyrvKz0T5049}&RF4!U^8#l)Xcamu>KzrJ0#-BS&?+LwqCc*`aA6NzNwYH#X9H|Hrc zgXj;$KZ%6IC%@paK>`=%JT>5u`5^^vVF^Z(Ly$_KL&?@Qb{74L680AurZIAwjZ~9C zuTW5L7-*}2;fyoH5D5f}Og44cZHlcYBbW<{fKd#>1!z=d;5mSePUm(if(T{+Zw0u1 z>gWwW=i>*)LQ}(y8>7cK=?3Y4de&k^0x?E{RSSxvxY>h(p*w6GY>>1Sj2LQy#o$Du zV^9`@0)7ITj70$vX`J~ksI?p%zSas}VR)m;`A`MV4}c1ewie)qnAml|DZ)b;<`HdWDzz_ArCG( zMjCLls3vI8;i7T|ADA-+1~Dxru2f3NZ+ZLO##D({ql%X`c?MA zQ2@Zg2oCOz`7*ZpHc7-AzSa^P&_Kdzult5iZBxVu6VM-fKLte(5ho9UFkOr=8TThL zc(VYO?&7Y(!_Zp-!Se#h!@0cVHbVHm(T9W)9YF-D*E?RQc~g1`rTSLTF=G>zU|~yN zZ(0I|7NUE>>rO8kM{Z8n3tm8aaS&bdu>*<{u<4-N69x%sui#AwMZ#!Suw8;8aAyP` zJHeX>QZyMc0r=1aFZ#V`7&(FRXAeAGU=l5c4bovklz}8;V0%kNI1{c=2m@s?!mNRX zLec~$|qY5J1L};Bnha0C(J~3*4T$$qX2lh%yE5 zZxGK2IeYRU9t;&Dcp*!gsf`0-1%hw>TQy(NCs}M<jjV zxpJRKAP^GyLlk!~22`XCz)I7*u>QZ3O4xV+dCpL8y^`|j7_6h*g zC;93Gy}ELEa(Pd(u)|=#ycDjC$WRx&==Q_J2#R0>VT>-0*_RzaX2v;>3^7|$&O{Bl z0s8{YRVEPT30i>AkI=&mWMYuDk@Ci76eaE`^YoXmq(%rVn_6{F`Q~oY@h11BbYX~O zej~=HFILldzZ;@!P$HF${)938Lzhuz zr-tjpy<_09$DjKRsocvA8MHPcM<@00`0eZ0H={WoM~gQ7RdP?)&$p^;amjpDDugr% znB`dmeY_&$t0 zJ;yUe`=EpBrdKBtQ3rg?^%#YDUQW!DK@nTLb=}VJ)lcrni&K9G60FM4VKY~Yk*md} zoI6cFpc$+kw}y7^kCr3)4Re?G-%HlOkJ01~D6*ZUslz%@M8?_G&D0K*$%l1HdB!L( zg$6!g_xAumv6M=>zbSSdpvI2ya#}y(@jeKg+kA2urQxb}jB?@j&TF~`5NOhHtTMKs zo0i?PI#r)3WhbohoYOqSjjS2fx$MRXcI-T5qnur#Xz(6o$moL2Ip-JwEvhm@QvN=H zU*2h29bY(4i+x&uy>3r~skD&glK1cr@vYwci_m)*$cnh^aJFg1ri&0rv=n3iJ*&V7 zR;!hclU2}$z~WlzRht`Y^}WZ|Yf9}q+75wIA#u?Qw8t}#Hag4A-Weq)WQO;h_aXK{ z(%HC`j1PL}#1(GGTq#0VwW;BeR`)+OQbPTrDh?dXTm!$Pygg_2Ty78X1m)|*Q?75` zKwzi$!_9kNBx#o_{Gi^LrA5KdBIp|py~Y-2nlWKbm@V`t=`o^*UL4kj|qX=V$-G)u@p1j6Lo{!p0pM23r=7C52Xv$T(ek5nYGA z-CMqRg6?HX>Tc`n8V5g)gXdbvyT?CRaTUMpET*$S{sj^WhV377 zg~($DO2+KGE1Sl%@(+M4m04nh-iJbzd&@Rp=zz@y3cG3A{Nl+LGOUtuSw_psH|&ML zmdK-NigAC5rK%?%#7kOSfItu9$cg*sdDAl<9FPC^+p-b@H>+yVJOh{NMckmKZ9BT% z0|LW|cRscft8_zsBHyQ$}YUMI=ndmO$BMlpK35d-c#p@JbC4Osq#DU%UMb?3wLb%$qdlY zU$Q>9GSN*Zwjb7^d z-MIAOXq+dbYN=z%^uinHerB^@d6JC0m0s!iU5hPzr@0GR!~6Ka%ON;v`@g$UV%j$4 zbg>KRXzS!h|0cOo@l%$$V}b%o0>d*AFmIh*`BnfE`TAY&ANkVqrJiiipEJG#w$EC{ zINfulmVWs(-SGF*mjEkiwirQvz+Jf4M*?yGWc|JT*~5^Y`Y>g9;BU4P1Xkxg>wc5K z)IUy^xjTJm&u0j+14Rq zUJ(SYe)!T!f}Fvuy8Ys&f<0x-4~)88}0 z34@uL{_cMbcRU4~Ism$F_Vn5JGMgGkF;AajEa@v`8uatfKoSu<^grx=lt3+LR^8q< z{sg+ejASh{b$k4rR&r_cVcC_gW$??$@lE#%mam~l?pQYLq6INjSYLqE7;)%8+?`YR z%GRhq(N8}%bN0>e@N5lyI_V|Y=iY%-9BNya*_LWCLkm1UZgq^;fxvFDc+U&%zMv9nZBz5Pye~qg zNiS*cG$|q^D&(y0Ajc+)caAnYh+0yO_unw)I?FI}W(1vo(_;dr$s93)f&dkB%B(?& zR^3m3*jhZ994FzC667`hq>#n4&j|yuN2=b~l~UnHJlT@hv6l7>J#@Mc`(Y!c+0H)Q zGEZ#zJuxuKLD#W&{9E7rg3dm;^4grbALj?yTF@o%XN&$`vh~}eg zQz-3Xz&;?Pydbzm}m|5`lmWh@gJMm9I z(7tQ2&O+9~eohle;>1)#ax5!PKSw`$%b!E^hW09XIg_jF z_o&c(I*05PYm^%YfrDH((?2JyVdWnltP!Caa7V~e2(yJCqOOXls~Dr8II9TX6Mhnk+7($JSWfx0!Wo)dgg`+4J~s&9Y3 z%hJx4EO4z3uQ>$2oO(L(nqQh2IqRr%?2KisMhFZ(_elNMlM0=Lzk&K)v4;VBftxL4 zkGz#;x0Z8_3aMB(cS@HmiDlNTc+;$=nvoBIiR*V=ykS3|6)t_nVA;uez;an2@Qx1| z?%caKNMUjQ5R=c-7SXb5A9?%kZCVL|bvvF-vSTPS^8;>2rg$mZ9FipH?OhBsf}O&Zd$4bG-cT;s}U6aWhI)?A1+Tr&ANLPapY&23$#mCP9E%6vi}(T(&fNvds` z_KKvZz@IJ9*6U3~gShsGZht-c_XIJAaj`;{@eOS40{!#7xFi^p0lN6ic!`yVt<`mE zUc1}J7{70VArq2l7%O-f)e%YhBM{`kYqnSz64^ntv$1lp2i_Ve$+xVFjhTBRDFLku zpPeOmT!Fv?c3y2`CNxlU3a$|5KfGZCfpgxEwx2vYQagC!?fw22+Enptmm*6H^h5K? z+|L|M&vDk6+__CB`J43q%hS}7P(dox{AE^c)(Jj#VTswyuXiEvIziUw*4`P!RORdq z#tH{kL7=_OzjF$!e-LAHf)*{wH61Txn)V9PPl&f?Os5`wuEos$F}-Qo=WmISv~BGj z>yt+%*tyx=5>|3)KSk^p?&ujxt}1`H@)`Nq`OD5-{%55i(UszhdJ2*9HBuzRf9iOq4lh*f8-&R$cp0Ie73 zr$9VNJg3*=i*+n2s}kv{pH=TkE?EBn71K>zCa$!Ik`;96_PnomyM!!peI&Wsqirw! zkrSp$i;|Eg&boT)sF04uQsB;w6OY?`t$yDp2F7kLXuMtg5DNEVdH$8pl&v~Ro6V|h zf4@8dfr_Ws&^5EZ5%V>ZI!t3}VCexDmAntCV@IJ7Uw^Xkg8J!J zN(pm=Tw(g-0tih1RlQQ-h>muOac$!G{K`rQ%sV1q)7i6(9J~Mf?{A@_Qy}o$P|2e5 z%U38TlTFHp&ex0;vK6o#U2S%_WBrHg$4HO9J*|%Ie|FP4=Q&#F40dxWxlC+ZrQ@S7 zrgE+R2yloAJYKIcwL*{j1@!b5`lPLt=>6Jx8%Ler4TY>o8aZ?Fl40chYDT#A=w)*t zaMv??^;zGZQo{~@==}D`^)&>ZV~)r+^-ZE4e$}}MQrog~iY!EL z(P-YPBL9|ATCqSr;oXW+5NPh!w$*jvZN@qG-^WdJn}MqUjGArH8-D+c+o4_V|I>ME z-3yfaV>3PZ9hW2-l_#EbTQ|Q0=mIwy5VUR0_0$+1O)lD!q|Qj0GK5k6(H%W>RctBW zGvU`1df7|QsywMPe}y%tFGCj!8N9%)(28JAuhCO_Jc_Z#3j(DMB|M6pFj6}&dW@{e z1r;p_e3UxQL)~~b>(uGz=c8^{y%VzX@uu!V{FGPO_Q?(=q;vZROzB@;L|Vd7b&1r^lBh_}X1{%@ zJ7*-R`1kE2WpB0ug@U%f`0?+xb!9s}_THfz^DY(c7h-~8(q|!o@rUJBw-1)kIm(DE zd~~XDIs_)VMzb$HA~BMx;=7)yp9dBzh{IAI&}o68+MARM39-ybfj-A(>sBi1n=Bt% znGS*9E>0OTpM8m(uCTf@Dep-j1nRwiTYCAsCgbpd*Q@rT`|n5I|W^9Lzk7h>U{rWIoF0AmWfCCvXYZo^y2yVU$e+pNVZo}qR* zp}NE3g8oYS@%Ec{uk4|NRYag2fRab6J`o7}#R!flWUZsFqqB_%ayGYP@7Uo2o}9Kf zbw^%*H?;#{z93u)yjJh#V7lAX#twM^3q~(FgXAP&JPLlW9XV*DR|5!Fp7WZA7{R`m z`Fcy>?Kl5lW9=kHfYp=MI-0D6U`k!sW+kSOHFk#`)R zc0CYL42XD9e--`s8z`bAB<#g*(3kR1X2vhx;Q2YqunfOy5Z6NQPniE!2(O-;V06BF zpaXm|33Lc^OO3$>ZMv26{Y?Bl=25%u8Cm4U6%c5@+O^I<;50S)sho-pv0MxSBgW+B zog8(C86T%o>T$mvC>o@_@I4UKCwp%uy@8u02(w4-u=`(!{WZUcyJ((8ko) zy26x+p=ji0W^V&t5VpXYO*0QgPP+8UjGCs^u=ZcWkD>S_O!=h*&l`hx7>(SltSnuS zu|>9a1aI45X|v5|7VomI(~WA;`=_9D*axaba^i$XJ6_+^Jty^-IYu>0AHS|BKf^v& zE{2x7+yK}9P1*T@{?xK@3^~)YLVOt8|G7|w!)Hre=nlvb##K1Q@W8t7QEQ0hs%=Xg zBGxqGm#*fKm6L9XOYF%V=i1?A#x(!wx$zgLb)deA(z0Vxs&gmm_|>gbyj~Hi163sd zFIBAV-C1^xcCf}h?^VFi6uc_))FpuU=32J7i3(Tr^QDrbRBA#{r}DCiVx)^Nchb+Y zn%CS@-<%-iHrj}XDCP<4PhQ>OadA7SCH|}KhKNU^)7<)e3(cl*^6`2Y1u=<*rPcB;?isf4T0+Wat7C2+fVk3I8<70)Oi{Lo6X4~EeBNfdw%mGa25fJ=9cJo zLbm%x+R+@P);z}3#Sr)+qOgM4)XYA3+I6{{=N!;~0#CyId}1Mr56qW@ZlWBFD0|m5 zZw`9cjIL|wI;)?n8!vr?u4uUjm`;GX)oQ863lCl~;<_HJ(HYbQZlVNQCzzOANT7XQ zOp2-c0ZK%y(#zznr^Z5{ebWgEWyv&h;f;v=n97EU5UBfjqwHdzQF>>;49fnsw2*-R zwrt-3*<)r%wS_u|P!!!XiHFPPs`BxHGmh|LY$o z2#g(+^!?a}L-hE|v%HpVZ}Ae=Kknd>H#_e6r`DC`k(r~)jOae>-7J}40!aqVpLNZy zox%(mI%H?^HRlQlZ26@au;9pU_Q}<%zFHkeoQ2$6atn4qcV}?4X-#lJsx!G?71Wp|}Hc0VbG&8NO zOQ}|OS2qNPZi;yIZ<--Fz2~)z0qZ(g&;`cmaB6-)RKg*dZ)(!>s4+t|KKs{P0w)3> z&R&w_E+zlFw6JhhuO;+ zQ^@LtaK>GPJ^A*2kRUK{Dix%Ix(~q#+SL-fzs+iDWKL1=qE#(8F=~3_tad2=r})D! z|7k|i4yP=PC%zjD9R30)Z(juxh&}$*>UGU_dDOgp>7h@UdgythxMkPRRWlc{E2?uk ztwznNgI|U{W~m&hT*L~^yZq!?i7faMuW%}NM)mO-INavxbU%7W5QtC~t7G5Ux;#Rd zlHqf&eJ&`j)6DUxLHakXGHRJ@;)1C;L1eUB6|c!mu`|?-GL|^6vCLf@0tpe*7XP@C zO)b0r{`GQI9V;O_9hy{(RxN?}Mh6;dZhWV)Vp38Lk`hBSn5Vdl$A6EpFkJ2 zQTOvT>c>sjKjv54;@`C&?3W<%YT%S!ZqP9}SM+Tj%fC;qZn)V&&Tbg_IPKp#4JfJS zxvyIfScPfl*%coVcN?+;0!hbfYt=3$({gLK?v|Qt3oO1Rf-b#z+4bA#6Y8woPG@%N zS4pi+S)dY`49PF})^;;$ZX-4Bfbos7-d)-dxVK%}_ip5R{es~NnosVW15PV}>-Gjq zGw!L5ddtk%b4DU9D(Bf=W^LL46>BKe*+%$ z%|P0(g9Ff;+#YZ|?Tzh}(@EjWfd*z5r30%bXn5GrR6Qa-^KI~*6txma4l4+oOj!qME# z9uS61l!0vm{$TdhQP9#L7?%m_U|2e@;j;Rl^KPK;-J-cpmKK~gu60D%a@Y}F+#Sq$ zxTcnl|k`4Ah=xt${?zXYwsGCEchqb2|!Kv>HD)8t0Z*t!wMzEzj>~`E~ ziH^Jf$#(P7?XPgK>ZG`N-}|@9jN-HMkKvCqdcYAU@Jz;;LL_H57i%~L-5lR&_l$C8 zW;NAsnXp$3-KiAw^_z!ITSYxNcV|9Dt{siBsye9TP!YF^=&ckh>*%EyBIFp$;lvp? z$gtpZcuY9sb$RELWz6J*KEHw{Rt5<3! z$&pn@-)4GU^MeX_W?Gu|c$*fbvdcvEYk7JPSaqL)wWxvU;NEY={r`Kxl}82Z67fz zkYB*kPPYL6v)N&T8ODHo=tRSzR&Ez*=S)uc#$2C!M#x1L#yW}J$!NGaK8cp$|LV0h z_3}-agE{bBEuAM$kCR0S9EF^%2Gm~=4HFC^;OlllHz>gw;xJr~`#mRDlhycjWyo_k zM)VQ0{o7XD16NgoldBPhD1YfTF2=E!NUg!k3c}QB6z^^qH!cerx}6@ zYK#r+fghkYIfe+*|6tV@P`#>`e_w15Mqda4(Hel;LxNS!8>jQ1s2T?kRkh&s^}eG& zUlW%IN(rF%A##U1qL;BeY5hYG*9*8X5m4%DR3im_$YwA?R(>&i$iz0GSY`XQ)>CL6S$EDR|r9(U$}}uW{cno zA;{+#wg`&g9SNS7F)Va{Dai$DnC-R%RSeNe2|UBGPc`7m^gpG+ zl>zBfsu*FpNHUO3fv4WZ(vG)>20;@CA;T7QXy9!MlE%kx!DFolRG_&@;N7ui6AlFNDd?qV*RV{>ZbhqLz)wW2O%uGo6re2kN!+J&uFh zOl}^=8b=pcPfyp<&Z%GZLzWnUDAEApP3RhUab*0r$Z>}@(o8UhrYs=*WYO!Xk@uc6 z!rTLdIV*X_P~Vh;gm&#u)Q~eQA;m|{K71j^Nd-N=O#Eo2{+CTliPhRVQuPyv1O!XY zz(wPDsADD*q*b!__%kha17e{6Yf8hzWoY2skeIO-o+n6B(wKVv)e^!&gHc zuj{}RGjjwM=UQ&THCH5O791^rR#+x;eZNl3WRy*Pvwv5>5a8Yx7+J4d{yIg$stw{Y}sBuy>!oVZJT? zTUvOnLfB*HHRSR!y`4ItFozN{p{TkVS zazm2tuRm@bcFmiXDN)2emn#=n=h8l z{q3b4CF%5hYwAeUe;x2{+E{(ZES+S@Rks~wV!>@B=)adonqQpvf1!Wof?>=Ju_=4; z-=4x#-~baEQVmq4x3Q%%M&RKbR1>SN?)gmANG&v-`M|-fzdh5P12!afjC&XGYre z6q%qnG0;#QF@m-zs|_!A+&NHmMm1%Nj1?(s>lAYChGA%=fc3i5Z^n8~CsiwX`zAyp zVRWLl79K|VFD1cYVBm^~Jj&8Db$4`gr2~hyGfy;EqMk-+{q(*W5U6`5wJ%Jx2}xosnrn_ja9CdiUZ%FwaC4y!S+dG=RG*Lq>o0?`eJY z&5Dt5J}>5XK?6_*7!RAWhgd$H@QakcW#OS09T#IDu*R>*%H1b`8a=yiQtF%yTSV_B zUhe$eL=q#c6s5D-&NjdSWNE>Bozi!Ev!`@V*SX~%sOOp`W>>%8RRKjVDh%JJ@*|m? zQqvKcy1o_!DuKpn`w-3Uwhg7FKUqG(V*LjtA%Su{{kO)^$ql_voKo|0(-Ma!?T`aE zeC8ExdwK~L)64mKF+q`Gd+t=d5)u~0OSmrHHJ)q(T#AEJ#lUs4dFk*xiwi~iFe4S}oz>E&iUE^P1EH-0;oUj^Y4qUsPheZd7UsLu=O+-URolGAvYnbonj zW$LjzXvlTg=T05zihAAHPev)l_J7dfYHi?k<*#NKrQA?unVwrSxQPd+;(?tPJS{>w zaxGWLciH$YQ>V5W=vNc}ggsezYjP@jV^)MrJKdsPQIRr77v$BL@csF^iZ zulsE7?QU|i^@iy1UOoYVKYgk3U%NeZvkNY4l&{GHkx~M)M|rt{ns2?sP20yp`c0soxp4_YeF|qQtH9 z7`v{?`WOVx)swsv+C7Dypwpekh_(TDHDDLyQ$;tltMbmvqvJB+30tIHjLv5Sa8EPHiCE-w7Vnajh2Z11LT%QWCo&G}-7zx0D zd+2!h{&I529(2mkLG>Ar96)BNT%r_%5o~zyv!DpTt63 zvmAbgz+-`7C|FFMBs&b2U@>{H_{0=~*_VLFhbg#$Nb;JFg$>V@AjkJCq=9^B+>0Cm zHz}A*IgVmD>;zvp;US_7$MHD!hmq_Y&3C#8^h0AG;?`$1k0?cv$-|!+hGP2vdMyL6H)NEO+#>i zpLg|u8#CY~C`E=(0I+}9=D*wd-TWV|tYCNhBSlXT&B2c^$}- zjvY#Z*Ps4K=x72C5CJ!-5QiHR!x^z)101+SJDr1q(Wmg4fn|h>CM`yY-FzxM@WdN! z@6bJu72S^PfUD5PQ}*}wI36V(PjaU(r;tG~KNukb`l>JU0wa|0PVPg*^p`**pN`sZ z*dPTAy1>H^E;^ssf>&MMqc)c_(gi{~4m~krn2FGFoV<$Os5k^e@Px%?VqgRmY|HWF zL+}YH*eK({#PAbr5aFgpVDJU6_J~CS5+5)afaAc)PINx!IH#R`p#*|WFkXDXwtwuL z@ZRKv4r4?Xyh30xM6$a$C@?e|!wF3I=S9;qpAf&(3Ke39UGFA?&0h$6PT4RF9lUjr z4ql)F1q+drgqsV_6*=I&p!i)=>4fX7N|U-f5?$U#a5v|BqXbC{0MQ;c4oH|c-Z&Wygu47^PigQc_A$=TAy1*CanI3i0J-iR6imxnhxq7ZyM+Zuz<2GImC9Rd41 zA>MHu#p_FjLS}%GqnooiHmnJ61>~T*IfL*cG;@$QiXPKyWEg|)st61EoI3utepv0d zZi>E?KLqX^<*|B9gDUONG~MTR)E_tS%c??VoGyfDHywX088+mUZi>(6#qacN#^UGa z@S-8Qgs8_ef+tK^d6u3<3t6lCItaaC()|5ML2SpdLEjT$~r$jrJYf#_`xCj(p<<+qKfn{<&qcMZ%O+4!@fZx$lEtmAOVf$ ze~!!Jl8EUZ%wR{NX-AGT4tdU_JrZBx4uP*~-h_U9+(Pl5ojE0V+_WbU z*pq*6iE}upMjiF8!E<@?2nc*oDdtt$T&8Oj8MV@ z3|&b4L$%g~&t~|f?MK;ZePN2+gTrjZKwyD%iT%mKGiU{tT$5Vc=-)oD_| zp55vSR)beVU{aG?eb1+zx~B$J=?y>g7L=d^t0G_EHxvVSbijOd#jjtHmbaMQW0FNH zc5MDxG*JhQR2ZCe%l=yH2Ud8V`b%wxx3Z9<-|g6$3Uf7ePscZOEo!yfiJwFZIT~7m z*8)Kd96He|Vgy&%H&Nj0Jz5otZpFM!L`txD+jd=`L zWcA10D*L$hsvNVuf^OTiN?~}lTRg@4AegIb<Wflo(xRvHfy&CcD)8oRdvHhkv^9t>`AX|7rjRpOQT??ZxZ zfkR$~aGObcx`uq{f8LXiL=ag4-Ge_3uo`gbaTNrywU)gY(;;n0OflZnxmms|3<7sX zuDkYRUpw=ZOO$r@;0Iva1cw^F`=q|MaY^>CSPe$wy}J}m;-AOFL(W?6BkEG`3TrNU z#)e`n+!ZydcIqPfq2ei>EwWcpBciduSo^R_1T+3AY0}4SgP-Bw+V;tY(pv{iOwOZ& zkhJ%08R-vmm34~cw_W}^G9U*6lT3RetA1}F9$c{dtJbzMP@G_v82=+HJfuNEFB@}V z`ql$31Cq0)DOjd~IxYvVv#|O0o*2A2WU9)k31$$O@MYC^)1M!ig^NdyXkLFzUl_?X z;L&m`U|a(qA0U|!B=K>xksd3|Z?4wjju3VHGLC&>gS3BGFz?>-xS~N)y7?1!e$>2C>mh8c8#$SxEKD3DH!rL^ zuYJT;!$Mb01+^#42wHD;H%GD0bZWPI(jxEUCyVyUi?|;+iTqF+e`mr{TK!*U@!93I znmvUFA+UY=i&4AT5A|yzWwhSa`<;crxI~o^gYBFsxru6V=|g;Oi^6G*qYVg!a)$Wn z9@Yg!+ka&L={ie7GV1q1;C)NSfY{FCq^O`IvBI++vG|1oc*J*ia)h0Qwm#@xrPT(z zR=p$L_bT6;tDF|r*XxixZ^Z2cnGf>$nSI{0nHK%=?8puKx6Q`)8}u=!qr;zX*%h*g zat9c95k>5JV7KwTiORzYj4RCNVEf{G2A1b@WRPICJcI=}xbT}!+@%ZpuQ)@2uSs}* z7an#zqX;7w`JH)YM=D6RJ=cjM`sZtsl%LK-OI+Qt-f1FR zZ^W({ZtJ?uBX%&pgRWO9dOxu+y#^d~e9>P*5INl-2kMUZzlGwdECHoYH?43Dbj_nC zI9v-gm^1qd1e(6Air!THl65-sh*VguM=%5`yH9m<-Vj6y4g5m;nL}~KPtoV0Pj>*h z5y(r0Xki7;gZIc9WbXngeoOr^ix!=rlUh*H@LYDv7zm7wrw=>*?XOO`x!az`yEhpS zIKJV6+BtoDN>#<^muqyhz@CP8jORLtkOB?ZC_bO(`~EzZ4I))s_y6FowD0#oRi*m- zt04D{U(6lgBNCooLLYPWuVeb z*9ynRmxfFtCSD!hvuUaL%7J|+y%Pj7_ey?mU^IU-Eh%W!B(>{Hrwm{T^BkDK@dskg zwbKfGd&`s=@U!IhrKF4CSPR;+QE6v~&qG6ER$l3&Nsi#Bd+wH_mp zJb(?>@8~svv!&lxeMc?G>Yw}cp~p^rpqCaEL|B*6K~OPhVN}uJgb+`4dJy~FXLjqn zn-J)3y`uVNC_wB2!9}du;*rOd3gL->=qe9&__MuqqwrQC!P%nE{Cs!N0R0I}P@buSd-%a@eUNsl<%LR& zF&~chG|CnHkU6&rA+;%x;+B2+npupVdPmyXTRH(6d!OIExKYdJTcIpBFy6F?a{P zboX|>+tHv=XO3GY2v=xWsSuTCsyt*fWX9kI?1VG zJ4iv!^4lgy*n%YmXf^C-Bb9DoL_D+NWw5X?N z%ICSSa(U5CAmHt!@I--{9}vs!#wM``yS>K^ zC zHW10|g^df@BB}a$#sd8#@8*1;_O_q`0^?isShM5Sv;6ko7`jbHX()j(17s!kH&zUR z`;AA#FT4XYe=%RMie3kQo~lkmof@yqpKtZLz^0cTR2k~}TXO>X1j{-HU{)gvfxSc^ zj1wb_=E4xNPzptM=Y?lYk;HJ#o&d3Lx=HvO0I2#4?^7r?(3UrKMt9QE<;yzD7wsZN z)$TvymnW+LDNZsj$+^V= zQRKfZkYAv_Y}sokWn!t^6yk^7RXyl<=&wg)f99;NO7B~cQw~ogddp@R#vDBd^78O1>-ACUw@q(9 z@!k84Y%(>+O6KMMkD+;xCTZo3yT!xr(}N=0OD)0&0iz0+Ca9T*yNzyFUUdJ0NjfQN z)Rdl`FMfcn1GjMioo7_VY*J_+yk#)sOw7>(S0ir!g@Tk^2{7ARKY^aFy_>+0*|wEH zm?B1)z^7MNcRNe?{j5)Um&=nq8D)*%SdXKkFGAo;Me9uOm9O>k4MK@ywyV@ZAhU4i zv54t!S%=4uoU4(y4{ViqPRzB|ASxEbq;RfHA?E%m@#ja0=jaFeiQPCTS*{6zgIdmK z+&8B(6MZGD?}{Il$6vNN`zv}Fg?N?c?^p+`v5655S1Ucsxf1^KCYGkGo3)CW?Tx+5uY3@{@YnDLoJA7LtlvAh5NgL2P_8iC;;wkR9OG+1gmBe_AQ{x7r-V0hT{> z)IkJKncZq%YZp?JUli)icyRGG1UgBVFZ%a)EwxBDad}ATp85EvOOy(_A@)064);@w zPG|jO_&yoMa(NS445`j)P+XKdL`UCetIv=e#m7LlB{)|cbO$FlS7kaCIKx~x+UK19 zfz>|XZP9>8+$gTPLxu0QhF7!WsH!>YBYva11!-x~YpWaH+VPv6k{i{dP@p13yQpP$ z4<%4KdZS{Z8JJ6Ww*sh~6h}8uUTm$Ylar+d-X1mb3;DXQR=R$&`VE_wn|j_}C7g)bT#y8w8p*%jE?=UBs?_^pSX={XFUpnE8)-arA>{l(5Rt z-dkrUoX1bUL)qwp3mV}0!ISoN;50W<*cHmrtt;-1s%-)cfp3#9@{-d-Adm%kGeC3z zGAbP%NS4;1W+d_wC*HL%2FK75Ewb5%0w$93FFn$qs#(;+y>eGKcYiE`jUAVLS4U0D zM>p%@yPpf0_Fee-WfFe@eKlnG*?)}5gCBCFvK>RVi0db! z-hfz}Reyd-oY6~@cVFlhjFb|_+l2emWA(lmZCItvXlAZu1x%EE6f*tM0m$g@%DQ{* z+8w0K1l1#VyXaT(&u=JA;Htput(l1@N{K4rbl=HhTi@gwfo%p{#PUU1qa?sgvT<@l z)xxc+!bcQ@0P)ov;m3!C75H#L7shNDt?j5cjqcO5bmG|Pc+e&toGg5Pf^>8!foTrk zYsVv<7ip_VzA;j-;G_4O3TZbv{6fq8q}SN&c65ab&(_dTzStH=_bHg<8Y(Tb0|J+y z9BMyE{V4fF;;~sDb2QNk$wTvtw;W6@(=D`POC`VgHy*zr1V1k*KmIb1`{;t7v$Hv+ z>{8aq#B_t-_-Xe8kQ`vLmM?3Xlw~wQFDveI-VOPAB-o(T&u_MRy6z$#ZmUzzYxyOG zZ~dT*cyEA4M3_A?jD0~r_k#ZJM&)F1GY8zveD&inczoRiyy<*?Sro(2#>(1t;6*Yy zV2SnpeT%hA)F-OAAAcE*ZvmjB2BuQo7N4frmY`ELt<}Wk#Vydmcvl`M6>weDJMEEa z%01yBS2GiMeD%YTU*Xvi4DZ)>%=b%rjAK>W?wOG9*nJ%;d<^rW#&_u!Qo{7CvzLqZ zfK3g2d2>5>n5|{K-ti~9rkY=W8v}s~=E--H_D|LI*>}C@#!~*-lN-agikc?*6YO^zr5GZap&DLK06Wv$( z%Yvi?-$f9(taSR{173&O1qn2|U;gWH5csTpYwBRKS4&uY^8$ zywnmzH7TP-uKSK|{KhC?uDNQ|sj!x8N`i*R`G!Mnz^c>7T?kQu{V4^ zN9y=**s6Hc&>i$Y;2SvH{p;(tPqe73?{2+1Ga&(gmDD$N-s$E9Z+^f90XV&HaJK0^ z4d0!Y>@&jbE7flc*>-5uE-)AXS&xSB(LRaC7-gY@92Y*n6##*Uz7VhEk!48blUj?X zN_VV+K$|VQPi0%HF@sG1RF0ZqybM- z#7OJ(mBmEopEgdK8$TveO5F$)PjEMLG++zHh)5&lmg6PZvD3Vs6PN z6EH9M%mY4LFf|;Vxvj&91SSEc|AAKs{yG=1`yr8P;Ev1^8y|&Pr@5cth4td|=tbeo zE-_@~gG(P?YK34Dm{v*vN{|@Hd0QnybHT#m;JVh@(%!P~fQKO{(ojGTBKUd-6#@A2 z?)e(jkAMKh<5iX$fZTvO7HKG^(rRoUQgkcE}yI=Y}qiI>gKPsR>B7i443w~*@MO!9g-A;SIHEf`fHek$9`H#b(jcLNEtc*eVDyWmQ-liJ4PEK*CnKKS)n6?{ z3kz`m1dj;xQw!YemHpqHP^28!kH4TfGHXGp#-b&|z9x*;p)>pC^PsIf*6c&NL6 zTx32&uR^6|$?pxEI(IB;_xxSI-_!ilwemLXnRHsf#T}0^LE`S*kaET}r}HlCT4Kpf z<;<}L;=s2GOrnx=nMQje9aw4PH9il5kIxW|GTFx2+z#3VkjR9P!V2>-G1M5Vb43N? zj5_gMMg3KRH4Y%57hgNqy$sZ4ABphatdf%V4g$4jU;lDxd_F1Rh1X7lS{2|{2c~gPp&QOPGWe+x97ckndS1I5k&JDFugchJg=3ccbE~U z>GtKArb_jHrUuNm0|nf;GSy3bOf56kbMWrf-zTs|TRPB|a#u-6X-l-n3#smMa)qMr zeBfoh5*|o+HxZ$s(bn=Ra#O!}z&dUv~$3mcWt@k9wN%N_JZ!T?+ zpC1ciSwvaX1R0HxY(US!!u87Ib!sLxyE@4*&>I}prp4DPdzR1>pUx@R+F1Vp9((!9 z5A~nTI3^`z@mpQPab>uIPU0BC%8KoA2Jm3ZR}TuG8cz3zJ>GP5ZGr^x^uN+<`30v? zcahG6yVnaJZ)S!1Jv4HOdtD3}uhx*bFld1RF}%+DY5wZbiTE*P_>6hYQAo`8uj-_! zU9IG@8K(`?uR7j=!2CsP=B-&UjZrnEd8>H&1Yk0NQFm~B?I~;PS)|;N%e`-nRHFSS z+T&jWF4ru4F-l^Ac1~$e*oZh}E`jK8p)0Eno(T%2OS}+Z(oBChxqh;5?h5;Ma1{?k z)+)}B8A_Y4I_K)Vf~c=LXhhJV?9Cs`PTDb&j{PDn?pEB0?^xwiU!T|)!r@Z<^3UW_#qqdm&X!_Y13TCrWJ-?#}9txBaLst(6_An&(e4^Nayy}_s63x*q`uhUaAuw;}oZx%^%5)MF zZr=+wXa_z^QMw=3T88wd9Gm#pnrO|=IQ05yT)j0KBwS^lzURh$HO85dp8w*)jnhQ4 z0Km>?1m4x-j*Oq$x^;Y-m@AteH%@6`Kki0sc_>l#s83*zdI&>1gT_ZaD z`<5-*>_O6pOuK#`b8&hHHgaqquuh;pYVMN)5sB{q_6DU zngzl`fu~LAf`qc@zaRmBpwNX8#pIvbA1i9x6^lO5{ko6sAY{Fq426qab25)n=u8fn zC0~B5@=zAOL%IK$?R#LX&kcmsd4?qKfA4v3UUZzD%m|D+;PVvSj%~dR9ya8CVTF6+;D7Vn7%rQRua}gVCt)dtNs3F9)H*gFBA5)jN-L{$Z*s{H=9=a0# zLS_cX4CA8xKj`LU-M{BNW)Sc<Z~N=LPP)AGa>OgQ|pgdy1!#q{`%Fyv@{5ZK-RAC z(&WoQw2Z|g-fW3~3a-k5HsI-OM$o+Q(2T8SN@s^m(SD zZ8aR4>zuHD3rNwkp`%0Fe6H?^aW=zZDkDciU{ZwX{wVk5#L(XozLm}%UJ!Ue!)CI$ z>|DJd+K;Yvr{;n#6ln}PI`#LLKx%j6^FM~ji_u~abk`Jy=76jXQI;)Gx|Gjv0?E;j z2hemSy;&KrZ*59X(Y*_S!xzw}T^M|r6943IYUim9zaY?XsUOXkv~}&Z$k|~x6mBy` zX6%NluWw0$_YYC@6%xdJspETh41Odp zDrt~y*-IKP%%Z>ehL(=b;9?7JC9^Xb_Q|lJk>P7rK6P1(Yb+GY`M9}tEd2*9@Pzuu z@{Q5JA0x`p;?$7kgzoU{;fvR}dwh0(s9$20^kq!x3_sEKFhGv;{tM2ed!zX1olY>F zo?c@%Hr_H9_*sC8i;JW5M+W?0W+zWCzEvI33V}X}YC)glHt7@?DLeU=y;vaHBGQjJ z?~q-HQ!K2%!i|9a!5xQYN*Z}1XFj5*jNU;H44z4bVi7kornJt`q=o+_%RIPlrX<>0 zfErl*c1`TVM$=$_6?R0G=iv9XVPNu#(qSmI{w54iq{hN#!u*|NUElEQ#S=bU2ab0D z{2ei3*tS>}E9KhwD}}9cW)L{+^W-thoY?fUEB21=x@8Cg$V6GvP{#aQ!$mcZ4v!H# zXh&|2wwWz;QxCG3bi|##{NG_#mFv87>j$}ln^;j?y9f(cvYn#~x_@Ig*beW!XY8I`w$k4=4nR` z3f$wy6U)mZ^{YqgAE7Hqluzgx4aFC)T0br8TqrH%(c2;S57wb)Th{wQd1F61>L+MN z-wZm^^BR7+f4|j=2C>`vrxwRLMlYH#AzDxIt_q-2>Pr%y)N18ZPW=wj^qr}Rt~5fA z=5)-N2XjS*7w6Gmuk?XTeauZX66z|_#jQZw9V47b7q?jJ93v7E(IC>rEtUpG29fUY zaBO%C5s`#|YZZ49!QhK@TZ_fV+Tj>#B841aR!%;xiWG8yA%T$quSP%LsDtQuMmC0& zNLP~_QvGdf3?b1vn%_{y5E1Em63;&VFHzw$b}>|d*M_e&433gH<}3zPq-NmRVi+oP zoES1b0s2`%_~T!szCm|hRS~+%E04aB+U$DUSPx#Y4{IdRbU8- z6lc{JmW9C;O$dC;;J-+Sf1Ae;!mHN7H}raUcfQpP7`A+Y!2@Dr_=1IAc(hvIp3dP6 z>`m~8>{fWSGEmNRqO-Y?rIkI1i@U85zN5s=d^raor4Nd_VAd7#+xB8$zj-m(*WNi0ln-v zm>{Cn9XmT4Cl^baB`C7)>gBxTu7DICxJQ_rt-oO29bk)dEaQ!yrxOiP;=Y za|UH%;qY{Hasi#fR}8L~J?A_8ktRqEUPO!>Qao}Dg*yOH8Q-e{{rH2$%n3sU*w@=e z#fbkhx1mHY?+~%X$0lS5DQTRuc*~;Q;0Qiii{BK_jwn`GKf=7H_{_xUx>aX!s9$c*<39 zn+oWa$62Ml%h*Od@uKrt^x{t-s{^kP4=QB;g$WW+t)1m@S!ofg?8mdGhOb(tLZI*1 zaqN0U#sAaZm&Zf7e~;6?M=EXFq|!qBsxmW{8D_Cmls0<`!=NZ--;h$L$fqA0Xz zl}c&5sgx+9OZ_S7k!PLA9 z(|m{v(Fv%cOBO^7S~BcM)qvfUqS+gcl(Ra9K%ipo#xI@szf%il>`z#)yZQwLny#O` zW~YBBGhFN4ic4!`!I7}!`Gs4tAok}q*Vo4Q7U^bxFx@@jb%-VehGseJ>N9Y&R?*^k z?S^z|SqMyOw3@U&3X~L38yD8uQR_ON*d;4h8MR_j!BnAwJXx5*5u@*=)z$yXU>X@$rxb~Cm_nKp33y{}&R z@~fm10(Z()C(XDJrBS}8E#ri9;cBv>!mtC^guCW_e%_j4qnVU`GNE>wL+xN?^RY;TF=h53hcS@-qS)d>5yQhpvPdtDK)Kg zF7L}#Pfxk%@j6S+90JW>2OF8KdBqOs*{r_kQDi*?DyeLH|6$ccjZ|4j@6=nB;KW<< z3W+qsH-;cCCGSSk`CdPD0t((p72BLaGbguK$AtTy z%yIs819pvX4$X4&jexE7YWTA2((HQmvVjG|FQ^qqk}Ys7Q)ixy>wFDRi36!$ z3)Uk@g7Km!_jg~fwqIjOrLLD+Y27QkYp2P?M(E)N zT}ep85u$>R&5h#g-!1IEp$YO&Bb zLg#iCWK9R#0pR<`%x{fTt>d-w*Bu+>qkUr^nR4}PL1bo~T{Eh8|>7{r%{P zi+jlSGd-@Yo4BRnXyCc1V##gYn5rJZc1v=VAY1>WMJntcep9E^DmA9i8=F~i%C8LEJ1xr18u`&{TX-jTg zLqk&837;xXY?;C-ot9{GX_!064j{Tyit#7O8l+GT zcn#7PzrGqzSfAo@IffE>JL!2|FU?DknUXM%#Xa2W={{xdo;}hm)yNho1Ejt-58UR! z7ugtm@2d$twpGW+^I_1C(>s#M1`NDY-{sLk7K$^&x3b5_X!_SvL#EB=pqdMQJNL*@ z{US>7y(2@Y5v#M|mth~RTkWH=Y5U`wss`wf2X?wLLBVmfs|?LeLB#{476sy5LG;gy z4kV_lKh=s|-}m0)DnAtn9I-r@J#?46*5QNWElaOY0(*&M1H*8;x3XD3E0pC_A9kR~X1ATm%lM7UgEq^3;u z+AY7&;`|FaNH;QT^k-_FEG0qpuJjy=;!`pc9xV;CnrDekc&lGnJmsnZg%WZ+eMKL+ z-ZqeGg|X4=jdvAvV<)WR%72^*JSD_t&;n1k@GH?eG3=45r8F)G^n+`-&X!K_fD_#k zNxwtObs<&+@)^a}_D>WM-T&!RVGXby)#v&q`KN0H#7^p&dg;|J(o?i9yBFvBgQFm^ z(zfX8!N6FyVuvh}4^0s)us$Mh-XMNCN(6oGX&!nzSMu>Z5iY-J^px=5q2dIUd_XDE zDr(FBy~HR!u5B=t72lPNdFOnU8CR0$SYMSkp3J-!Foe+{9H@@-a_63^pRI9}!t60M zpNE=~MHg&j4uzU&m#uI~T6^$Q0sPWcS?;4>r;a5(-Pr)bzMwg;xPWqoIp#kU2Nkz_MluBinu2(6K4 zjqqDT6np2Gzx)W+5%GQz&MhSJ4uV^Mq986me|C3; zA0!8I1VRd4Ta!raPgl}~ghbSZTi{4eZ?T63LJc6H6T)f-@Mx5QaZGS1B7){@zfU_%qohss@5p|YV18|+Q~bR`eVo6PvT=$bW;y4&+~ZJ?hJunpI?x@ zxTpsu|9ubnOkNOh6S^rD@`k9$qZCB91u)F&A%-jRoUA6eL+A!uPa7WiJ}~Nrjvr55 z|3IGzPY4X|wOXS%!@J#urK|AOOK;L8V3(fX=aR4mVsY7YGt$X zhh3$e*?;I|?Y%c)5cp(|?1vx2!dM|w3w-V*%mk-?M3xOkECyaK;R1meq5lq5I4luV zq68BL+=@_ZLHIFZ>H!5gxE0nU8}+C9x}T3K)V-<?;)^Z zX2VO{-V-%qqbnCqy)|eeu@|QYPBY>AGN4`uA|ckjB07{6eh*56fyZcefMWUx8h%`^ za9EL=`RofTy>(%)gc`rAe`p#IfafZBA`dnnXw7yzO^q6`!oI(>!X)C;9w9&Q55YT0 zPyv^w(O$)6n$Yte@oM#5CpALgzPx~+eWt4F#MPu%om==2um+T>HXydsAg_**R=O=s zdoK+Inwp#+G}ddLPMoFOTh}Ki#}Yq&D{LP;%>y(kU;x)`L@6*5@c6^3%QFGoDFr93 zr&gzGc+c&$wx03{IBG<;g7CphL4AHPQbgvU7#5Cka2-SZF-u^Lz&Aso32ADMWYnY9 z8;GY*7R`fTASMIBNCvC8Segp>)=8vXy_gK343t=PA^{qB1Cr+AuENw(l7IK%FFtpUUcf%Og&LSUc!v#@$NSP%@N>LaFQT>Z`2^7326wapZ{%_Z4Vl& zSYPK5b}w7kXM)b;_XfxPiIXJ^x0*UwI;rpzMWDPZXvegEa-P!z=CMayTi~^wIH!k? zhf!dK7A zx@wzpl9qMMTQyBb7DRQGq{W|(&tz5bl{8X zz~)MDmIXvz!`!XVmRL)VJdikto3$l~cx&X-LQgi(V`X$W678dckD<$n{g@~X6#KE* zOd(1t6e6HKi(49qOn>b6NH^gSh}LESg0Oc)F~rtp0S5f9*bF3E&2bnw`k+hH@iaVW=IU!QvmvdZR#=+Cv|l4PdxB`K22^Y{&dyI(oBT{>!T&*~889)Ox#nD36poLT5hB4vTjaGu9@iE! zd}`d@tIcYK?BjmDUiddILwD2rc9p3;`X8p1KYXENkY{-dmfR55JP;D5!%D@#3PgAV zsV6{>_SPVbj2M!z#JI4x5eE)jD*Fo(!f}g`U|{YGN#KHOZ;y5+2R^%sVdlT1gcC~( zQ=LpAPe?&r8W(w_0>jXMLy0r3Dz>pcE^3$Vxc#al-s9k$=evc!<@K!-H>m{5>b2v@DVlhosbEi2O@Vh>75I z^5==l1f$FaoEX8;_Mc4DZcxMt`sWoJo+l$!@FnT$??~V@g}vHLJOqVY5Nio1)Bj8j z$J?L96F#@`_ZlK1f#X6QQ~H2dL%>e3a6!(OgcB5}l)oW>8y;fH?7&Vgtg#BBZNlr@Vxmei$)M4fYdU}Fo}m-zNl#OX*S^cimXZP^Kv z+qAIE06D!jAHGqSV@NwPuu-X`)Z!v+O25LOBH?kCdQ@D*yW)LU(ELPR@Vz$a4rx|$ zzmC%t>mDq`S5qNwU$S8b+u8L=r!s>5Rx_-sb9lec6&xuk(1ViA45%K-Bt;}sux)=u z)t6$250#GYKYxcZY;pWewa0q~u3{bwOF2^7d~N^)F5Z})rIk5B*Dse|6r!eA3V}1e ze?7M&%8zyKW)dg<#;FDPdWn+6CA1l(q`*{LMLu?rx5x?1O%a(U$xq(%B+Z@{?i0Dr zbiY>u`EY}R;d9h^bYFP=P0&7RdbkTSzWmZNNBsL^WF19pszPyU-=%y~p32aT>lbrm zYttgM08GW%5plMfUTp8^{A{&z?V9jQ>n)d+7q5S%b<+8={2rSdRuHH$!&E&-d#`Tf z6dSV;i>y)jfFv1D=sJs)8ym_b!xS}eAtU#!ANTr_x`7cr$Iq>!BsdcSBOjQoQcGT| z5zl=;t>und4g}uNI_k-k&*6BFlVjdJkhKI~<5oh$1lBAhCT~_#sjNGbQW{b4Xn1z` zSP0akeQq0Xe3PBDuA%Q8PM=169m4LnfK?7y!MO7_nRAD)5 z``kWe8eYb6OTsqZ@Pfd~OUz3ut9Me;t`<4p8ojCEan8(j! zdF*_nZp>eSO^h*0M4CV9UV3=6_ZN-09-(WW-&-)K8!MfFD2eF~`R(yyEzeWx6f41biu716$U5 zK~d`0)~;0)O>I}7(gGqne>5?KrZ+}^kk)*^{E^dNS8_^E_Dh|6gsuUB8QKraffH zALJwfO`1EGJc>6N%ZmD*Wunp2336!u*ndR61*By?dC1Ohm5a19m7;#W804M-fkS)N z{GKCgK=EIvWYa&hdISXaeD~{f&D$-M;@_U``aVTqEna}Bw?Wud;_e8f)Sf!V^qluk zYV7V>DMR~B{t&3V@=`=c*}JDmEJwt?2BbDGV9eNs%x&}-u7yR==x|my z)+l0XBK@KBbx**d2j4VKa5R^FuTVh~jLL>io>JCqp>b+Ui}XNu%1g+B(Iby1yXHBu zy&4?W9qnZ$go1HbS@5c$}Tz{?j%waiX zVn)!JZJ>4`E3=QYLuSB+2AD`D%&QPe1rM^RE>>2EcL=R$oNtK@o#Jssf*Z(LwY;>{ zFp&C#EJo;2H2(_32x%!9LvTBi->H1)1Zk-;7^oN)Nz+`!a>DUBL|Upp2oQpMSl|~a zDUePsFZ^GGGKdB8Kn@en8E6c9K?yID7Pt$!hG(m3Zw{*QfXj&gMjz<%g>!@@OMrfi zlK`7Yisy>uV(V<<0C*>22wQYc0vaL}Fq2G)&}F2h27>G^L`CTHjbo*yMq&UIdkYX~ zu|$6Zi=4224ZbaY&$7T39B_PxlM96PgeknDNa*|{!omg+@mPk=JWEqMB3Vdr;45q5 z{RzT{!l1RV9mG?{O$j)mqApB4H=*JyCsNU3p_Bay;OkGs6pz6nqjLjd>C67(;k?k3 zo>9`6SJ!943JAQx9(3tPeHQ z+AdC&5j#W2WPss=voR1DD))irq}qd4*w);n7`zFjrGT^t@zn&;9N{E_L?)|;@di88 zadMBTD<>E~=_HX5ogffvaJ9bL!$sfJGwfckyYcDUDhT}GSZxvi*pL!-_ci0~effN{^HZzq|dnfmp$SL4y-+!_ZDe{0Qc=0_8 z>!vAMMb)>Rx9I4A%?soX2uoxUwNa~2?){Sax)B~Km0>08tUFL^J=py1SYZ?+mycURX?CQHQe!$Sf{!Ifh9c!342}pCzMg)`$^3VzT-BLJxxMC3`t?Eh5u45=^2IpsM zo>!XwTS{uYwA5%CSQniwF+{rvAq$DbpEX?}(bJiu4l{U~y7|g`zC|B9(hh;M3My0% zr4Og%$M=5zGq*TZyiYLg;e>#x50J*MUlgr1L++@bxwCCnWoC!F_|hSX2D<-3B2i~m zS4@m{qC^Gmo!vGi19*rE(o&ZVpDYA{EHBg=E|cw#Lrvk{_{~w*iWWLZj_9Tw$it_QEQh9`bY{;ky5B3A>c~d>vk+Li zY|XSGM+zzarLpV!*`K`JZL%Oa6V*hG`J+t>*BqxGtho>or{@VSB#Z&?O^bCW`aNRm z5&py<*RJo?T)yd_*UW7H=$P2DDj)I~I4NRSrA`Lp^v+{%_rC}RMqxKaX9L5q+mk>K zHYH0{TysA-T3yTH%2iIa`NZH%_NAKI@cp?0g7Fak1!lN|k# zFRSOKo5joKMyjWzO<6glN%4EP#aeCY>I_->N_Bd7MOH~S+pHm`bfmJD1l6P86RIBh z31J6&`%H9BFfcP-xReU5M&vewn#j2y20;ajEm-4l$k;0vWKD~>Fi5+izJbJcMSKGU z7aTPU>(r1n3s(}Mqkv#y?;nw2A`1vk((Wo*xJ2NvyW1=>-~S2`nW2A$h)gpaVt2a~ joentE?n;RaTpXejCSMup6$bd1c;89=|9}2pYvBI?BznT8 diff --git a/ModernKeePassLib/ModernKeePassLib.csproj b/ModernKeePassLib/ModernKeePassLib.csproj index 245cdbe..27a97be 100644 --- a/ModernKeePassLib/ModernKeePassLib.csproj +++ b/ModernKeePassLib/ModernKeePassLib.csproj @@ -24,7 +24,7 @@ full false bin\Debug\ - TRACE;DEBUG;NETSTANDARD1_2, KeePassWinRT + TRACE;DEBUG;NETSTANDARD1_2, PCL prompt 4 @@ -126,7 +126,6 @@ - @@ -137,7 +136,6 @@ - @@ -162,32 +160,22 @@ - - - - - + + + + - - - - - - - - - @@ -201,6 +189,10 @@ Libs\Windows.winmd + + + + 12.0 diff --git a/ModernKeePassLib/ModernKeePassLib.csproj.DotSettings b/ModernKeePassLib/ModernKeePassLib.csproj.DotSettings new file mode 100644 index 0000000..c54c126 --- /dev/null +++ b/ModernKeePassLib/ModernKeePassLib.csproj.DotSettings @@ -0,0 +1,2 @@ + + CSharp70 \ No newline at end of file diff --git a/ModernKeePassLib/ModernKeePassLib.csproj.user b/ModernKeePassLib/ModernKeePassLib.csproj.user index ca1d04b..5283ef1 100644 --- a/ModernKeePassLib/ModernKeePassLib.csproj.user +++ b/ModernKeePassLib/ModernKeePassLib.csproj.user @@ -1,6 +1,6 @@  - ProjectFiles + ShowAllFiles \ No newline at end of file diff --git a/ModernKeePassLib/Native/Native.PCL.cs b/ModernKeePassLib/Native/Native.PCL.cs new file mode 100644 index 0000000..de07139 --- /dev/null +++ b/ModernKeePassLib/Native/Native.PCL.cs @@ -0,0 +1,70 @@ +using System; + +using PlatformID = System.UInt32; + +namespace KeePass2PCL.Native +{ + internal static class NativeLib + { + public static ulong MonoVersion { + get { throw new NotImplementedException(); } + } + + public static bool IsUnix() + { + return true; + } + } + + internal static class NativeMethods + { + public static bool SupportsStrCmpNaturally { + get { throw new NotImplementedException(); } + } + + public static int StrCmpNaturally (string s1, string s2) + { + throw new NotImplementedException(); + } + } + + internal enum DataProtectionScope + { + CurrentUser, + LocalMachine + } + + internal static class ProtectedData + { + public static byte[] Protect(byte[] userData, byte[] optionalEntropy, DataProtectionScope scope) + { + throw new NotImplementedException(); + } + + public static byte[] Unprotect(byte[] userData, byte[] optionalEntropy, DataProtectionScope scope) + { + throw new NotImplementedException(); + } + } + + internal enum MemoryProtectionScope + { + CrossProcess, + SameLogon, + SameProcess + } + + internal static class ProtectedMemory + { + public static byte[] Protect(byte[] userData, MemoryProtectionScope scope) + { + throw new NotImplementedException(); + } + + public static byte[] Unprotect(byte[] userData, MemoryProtectionScope scope) + { + throw new NotImplementedException(); + } + } +} + diff --git a/ModernKeePassLib/Native/NativeLib.cs b/ModernKeePassLib/Native/NativeLib.cs index bce5077..866538e 100644 --- a/ModernKeePassLib/Native/NativeLib.cs +++ b/ModernKeePassLib/Native/NativeLib.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,7 +19,13 @@ using System; using System.Collections.Generic; +using System.Text; +using System.Text.RegularExpressions; using System.Runtime.InteropServices; +using System.Windows.Forms; +using System.Threading; +using System.IO; +using System.Reflection; using System.Diagnostics; using ModernKeePassLib.Utility; @@ -44,6 +50,43 @@ namespace ModernKeePassLib.Native set { m_bAllowNative = value; } } + private static ulong? m_ouMonoVersion = null; + public static ulong MonoVersion + { + get + { + if(m_ouMonoVersion.HasValue) return m_ouMonoVersion.Value; + + ulong uVersion = 0; + try + { + Type t = Type.GetType("Mono.Runtime"); + if(t != null) + { + MethodInfo mi = t.GetMethod("GetDisplayName", + BindingFlags.NonPublic | BindingFlags.Static); + if(mi != null) + { + string strName = (mi.Invoke(null, null) as string); + if(!string.IsNullOrEmpty(strName)) + { + Match m = Regex.Match(strName, "\\d+(\\.\\d+)+"); + if(m.Success) + uVersion = StrUtil.ParseVersion(m.Value); + else { Debug.Assert(false); } + } + else { Debug.Assert(false); } + } + else { Debug.Assert(false); } + } + } + catch(Exception) { Debug.Assert(false); } + + m_ouMonoVersion = uVersion; + return uVersion; + } + } + ///

    /// Determine if the native library is installed. /// @@ -70,10 +113,6 @@ namespace ModernKeePassLib.Native { if(m_bIsUnix.HasValue) return m_bIsUnix.Value; -#if KeePassWinRT - return false; -#else - PlatformID p = GetPlatformID(); // Mono defines Unix as 128 in early .NET versions @@ -84,19 +123,20 @@ namespace ModernKeePassLib.Native m_bIsUnix = (((int)p == 4) || ((int)p == 6) || ((int)p == 128)); #endif return m_bIsUnix.Value; -#endif //KeePassWinRT - } + } - // TODO Bert : Not supported for the time being. -#if !KeePassWinRT private static PlatformID? m_platID = null; public static PlatformID GetPlatformID() { if(m_platID.HasValue) return m_platID.Value; +#if KeePassRT + m_platID = PlatformID.Win32NT; +#else m_platID = Environment.OSVersion.Platform; +#endif -#if !KeePassLibSD +#if (!KeePassLibSD && !KeePassRT) // Mono returns PlatformID.Unix on Mac OS X, workaround this if(m_platID.Value == PlatformID.Unix) { @@ -108,11 +148,8 @@ namespace ModernKeePassLib.Native return m_platID.Value; } -#endif - - // BERT Todo: Not supported for the moment. -#if !KeePassLibSD && TODO +#if (!KeePassLibSD && !KeePassRT) public static string RunConsoleApp(string strAppPath, string strParams) { return RunConsoleApp(strAppPath, strParams, null); @@ -120,40 +157,121 @@ namespace ModernKeePassLib.Native public static string RunConsoleApp(string strAppPath, string strParams, string strStdInput) + { + return RunConsoleApp(strAppPath, strParams, strStdInput, + (AppRunFlags.GetStdOutput | AppRunFlags.WaitForExit)); + } + + private delegate string RunProcessDelegate(); + + public static string RunConsoleApp(string strAppPath, string strParams, + string strStdInput, AppRunFlags f) { if(strAppPath == null) throw new ArgumentNullException("strAppPath"); if(strAppPath.Length == 0) throw new ArgumentException("strAppPath"); - try + bool bStdOut = ((f & AppRunFlags.GetStdOutput) != AppRunFlags.None); + + RunProcessDelegate fnRun = delegate() { - ProcessStartInfo psi = new ProcessStartInfo(); - - psi.CreateNoWindow = true; - psi.FileName = strAppPath; - psi.WindowStyle = ProcessWindowStyle.Hidden; - psi.UseShellExecute = false; - psi.RedirectStandardOutput = true; - - if(strStdInput != null) psi.RedirectStandardInput = true; - - if(!string.IsNullOrEmpty(strParams)) psi.Arguments = strParams; - - Process p = Process.Start(psi); - - if(strStdInput != null) + try { - p.StandardInput.Write(strStdInput); - p.StandardInput.Close(); + ProcessStartInfo psi = new ProcessStartInfo(); + + psi.CreateNoWindow = true; + psi.FileName = strAppPath; + psi.WindowStyle = ProcessWindowStyle.Hidden; + psi.UseShellExecute = false; + psi.RedirectStandardOutput = bStdOut; + + if(strStdInput != null) psi.RedirectStandardInput = true; + + if(!string.IsNullOrEmpty(strParams)) psi.Arguments = strParams; + + Process p = Process.Start(psi); + + if(strStdInput != null) + { + // Workaround for Mono Process StdIn BOM bug; + // https://sourceforge.net/p/keepass/bugs/1219/ + EnsureNoBom(p.StandardInput); + + p.StandardInput.Write(strStdInput); + p.StandardInput.Close(); + } + + string strOutput = string.Empty; + if(bStdOut) strOutput = p.StandardOutput.ReadToEnd(); + + if((f & AppRunFlags.WaitForExit) != AppRunFlags.None) + p.WaitForExit(); + else if((f & AppRunFlags.GCKeepAlive) != AppRunFlags.None) + { + Thread th = new Thread(delegate() + { + try { p.WaitForExit(); } + catch(Exception) { Debug.Assert(false); } + }); + th.Start(); + } + + return strOutput; + } + catch(Exception) { Debug.Assert(false); } + + return null; + }; + + if((f & AppRunFlags.DoEvents) != AppRunFlags.None) + { + List
    lDisabledForms = new List(); + if((f & AppRunFlags.DisableForms) != AppRunFlags.None) + { + foreach(Form form in Application.OpenForms) + { + if(!form.Enabled) continue; + + lDisabledForms.Add(form); + form.Enabled = false; + } } - string strOutput = p.StandardOutput.ReadToEnd(); - p.WaitForExit(); + IAsyncResult ar = fnRun.BeginInvoke(null, null); - return strOutput; + while(!ar.AsyncWaitHandle.WaitOne(0)) + { + Application.DoEvents(); + Thread.Sleep(2); + } + + string strRet = fnRun.EndInvoke(ar); + + for(int i = lDisabledForms.Count - 1; i >= 0; --i) + lDisabledForms[i].Enabled = true; + + return strRet; + } + + return fnRun(); + } + + private static void EnsureNoBom(StreamWriter sw) + { + if(sw == null) { Debug.Assert(false); return; } + if(!NativeLib.IsUnix()) return; + + try + { + Encoding enc = sw.Encoding; + if(enc == null) { Debug.Assert(false); return; } + byte[] pbBom = enc.GetPreamble(); + if((pbBom == null) || (pbBom.Length == 0)) return; + + FieldInfo fi = typeof(StreamWriter).GetField("preamble_done", + BindingFlags.Instance | BindingFlags.NonPublic); + if(fi != null) fi.SetValue(sw, true); } catch(Exception) { Debug.Assert(false); } - - return null; } #endif @@ -172,12 +290,12 @@ namespace ModernKeePassLib.Native KeyValuePair kvp = PrepareArrays256(pBuf256, pKey256); bool bResult = false; - /*try + try { bResult = NativeMethods.TransformKey(kvp.Key, kvp.Value, uRounds); } catch(Exception) { bResult = false; } - */ + if(bResult) GetBuffers256(kvp, pBuf256, pKey256); NativeLib.FreeArrays(kvp); @@ -196,8 +314,8 @@ namespace ModernKeePassLib.Native if(m_bAllowNative == false) return false; - /*try { puRounds = NativeMethods.TransformKeyBenchmark(uTimeMs); } - catch(Exception) { return false; }*/ + try { puRounds = NativeMethods.TransformKeyBenchmark(uTimeMs); } + catch(Exception) { return false; } return true; } diff --git a/ModernKeePassLib/Native/NativeMethods.Unix.cs b/ModernKeePassLib/Native/NativeMethods.Unix.cs new file mode 100644 index 0000000..3d5e089 --- /dev/null +++ b/ModernKeePassLib/Native/NativeMethods.Unix.cs @@ -0,0 +1,112 @@ +/* + KeePass Password Safe - The Open-Source Password Manager + Copyright (C) 2003-2014 Dominik Reichl + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +using System; +using System.Collections.Generic; +using System.Text; +using System.Windows.Forms; +using System.Runtime.InteropServices; +using System.Reflection; +using System.Diagnostics; + +namespace KeePass2PCL.Native +{ + internal static partial class NativeMethods + { +#if (!KeePassLibSD && !KeePassRT) + [StructLayout(LayoutKind.Sequential)] + private struct XClassHint + { + public IntPtr res_name; + public IntPtr res_class; + } + + [DllImport("libX11")] + private static extern int XSetClassHint(IntPtr display, IntPtr window, IntPtr class_hints); + + private static Type m_tXplatUIX11 = null; + private static Type GetXplatUIX11Type(bool bThrowOnError) + { + if(m_tXplatUIX11 == null) + { + // CheckState is in System.Windows.Forms + string strTypeCS = typeof(CheckState).AssemblyQualifiedName; + string strTypeX11 = strTypeCS.Replace("CheckState", "XplatUIX11"); + m_tXplatUIX11 = Type.GetType(strTypeX11, bThrowOnError, true); + } + + return m_tXplatUIX11; + } + + private static Type m_tHwnd = null; + private static Type GetHwndType(bool bThrowOnError) + { + if(m_tHwnd == null) + { + // CheckState is in System.Windows.Forms + string strTypeCS = typeof(CheckState).AssemblyQualifiedName; + string strTypeHwnd = strTypeCS.Replace("CheckState", "Hwnd"); + m_tHwnd = Type.GetType(strTypeHwnd, bThrowOnError, true); + } + + return m_tHwnd; + } + + internal static void SetWmClass(Form f, string strName, string strClass) + { + if(f == null) { Debug.Assert(false); return; } + + // The following crashes under Mac OS X (SIGSEGV in native code, + // not just an exception), thus skip it when we're on Mac OS X; + // https://sourceforge.net/projects/keepass/forums/forum/329221/topic/5860588 + if(NativeLib.GetPlatformID() == PlatformID.MacOSX) return; + + try + { + Type tXplatUIX11 = GetXplatUIX11Type(true); + FieldInfo fiDisplayHandle = tXplatUIX11.GetField("DisplayHandle", + BindingFlags.NonPublic | BindingFlags.Static); + IntPtr hDisplay = (IntPtr)fiDisplayHandle.GetValue(null); + + Type tHwnd = GetHwndType(true); + MethodInfo miObjectFromHandle = tHwnd.GetMethod("ObjectFromHandle", + BindingFlags.Public | BindingFlags.Static); + object oHwnd = miObjectFromHandle.Invoke(null, new object[] { f.Handle }); + + FieldInfo fiWholeWindow = tHwnd.GetField("whole_window", + BindingFlags.NonPublic | BindingFlags.Instance); + IntPtr hWindow = (IntPtr)fiWholeWindow.GetValue(oHwnd); + + XClassHint xch = new XClassHint(); + xch.res_name = Marshal.StringToCoTaskMemAnsi(strName ?? string.Empty); + xch.res_class = Marshal.StringToCoTaskMemAnsi(strClass ?? string.Empty); + IntPtr pXch = Marshal.AllocCoTaskMem(Marshal.SizeOf(xch)); + Marshal.StructureToPtr(xch, pXch, false); + + XSetClassHint(hDisplay, hWindow, pXch); + + Marshal.FreeCoTaskMem(pXch); + Marshal.FreeCoTaskMem(xch.res_name); + Marshal.FreeCoTaskMem(xch.res_class); + } + catch(Exception) { Debug.Assert(false); } + } +#endif + } +} diff --git a/ModernKeePassLib/Native/NativeMethods.cs b/ModernKeePassLib/Native/NativeMethods.cs index a8bd252..9ce13fe 100644 --- a/ModernKeePassLib/Native/NativeMethods.cs +++ b/ModernKeePassLib/Native/NativeMethods.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -21,13 +21,20 @@ using System; using System.Text; using System.Security; using System.Runtime.InteropServices; +using System.IO; +using System.Diagnostics; + +using ModernKeePassLib.Utility; namespace ModernKeePassLib.Native { - internal static class NativeMethods + internal static partial class NativeMethods { internal const int MAX_PATH = 260; + // internal const uint TF_SFT_SHOWNORMAL = 0x00000001; + // internal const uint TF_SFT_HIDDEN = 0x00000008; + /* [DllImport("KeePassNtv32.dll", EntryPoint = "TransformKey")] [return: MarshalAs(UnmanagedType.Bool)] private static extern bool TransformKey32(IntPtr pBuf256, @@ -65,7 +72,7 @@ namespace ModernKeePassLib.Native else return TransformKeyTimed32(pBuf256, pKey256, ref puRounds, uSeconds); } */ - /* + [DllImport("KeePassLibC32.dll", EntryPoint = "TransformKey256")] [return: MarshalAs(UnmanagedType.Bool)] private static extern bool TransformKey32(IntPtr pBuf256, @@ -75,7 +82,7 @@ namespace ModernKeePassLib.Native [return: MarshalAs(UnmanagedType.Bool)] private static extern bool TransformKey64(IntPtr pBuf256, IntPtr pKey256, UInt64 uRounds); - + internal static bool TransformKey(IntPtr pBuf256, IntPtr pKey256, UInt64 uRounds) { @@ -95,11 +102,25 @@ namespace ModernKeePassLib.Native { if(Marshal.SizeOf(typeof(IntPtr)) == 8) return TransformKeyBenchmark64(uTimeMs); - else - return TransformKeyBenchmark32(uTimeMs); + return TransformKeyBenchmark32(uTimeMs); } - */ -#if !KeePassLibSD && TODO + + /* [DllImport("KeePassLibC32.dll", EntryPoint = "TF_ShowLangBar")] + [return: MarshalAs(UnmanagedType.Bool)] + private static extern bool TF_ShowLangBar32(UInt32 dwFlags); + + [DllImport("KeePassLibC64.dll", EntryPoint = "TF_ShowLangBar")] + [return: MarshalAs(UnmanagedType.Bool)] + private static extern bool TF_ShowLangBar64(UInt32 dwFlags); + + internal static bool TfShowLangBar(uint dwFlags) + { + if(Marshal.SizeOf(typeof(IntPtr)) == 8) + return TF_ShowLangBar64(dwFlags); + return TF_ShowLangBar32(dwFlags); + } */ + +#if (!KeePassLibSD && !KeePassRT) [DllImport("ShlWApi.dll", CharSet = CharSet.Unicode, ExactSpelling = true)] internal static extern int StrCmpLogicalW(string x, string y); @@ -114,7 +135,7 @@ namespace ModernKeePassLib.Native private static void TestNaturalComparisonsSupport() { -#if KeePassLibSD || !TODO +#if (KeePassLibSD || KeePassRT) #warning No native natural comparisons supported. m_bSupportsLogicalCmp = false; #else @@ -143,11 +164,36 @@ namespace ModernKeePassLib.Native if(m_bSupportsLogicalCmp.HasValue == false) TestNaturalComparisonsSupport(); if(m_bSupportsLogicalCmp.Value == false) return 0; -#if KeePassLibSD || !TODO +#if (KeePassLibSD || KeePassRT) #warning No native natural comparisons supported. return x.CompareTo(y); #else return StrCmpLogicalW(x, y); +#endif + } + + internal static string GetUserRuntimeDir() + { +#if !KeePassLibSD +#if KeePassRT + string strRtDir = Windows.Storage.ApplicationData.Current.LocalFolder.Path; +#else + string strRtDir = Environment.GetEnvironmentVariable("XDG_RUNTIME_DIR"); + if(string.IsNullOrEmpty(strRtDir)) + strRtDir = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); + if(string.IsNullOrEmpty(strRtDir)) + { + Debug.Assert(false); + return Path.GetTempPath(); // Not UrlUtil (otherwise cyclic) + } +#endif + + strRtDir = UrlUtil.EnsureTerminatingSeparator(strRtDir, false); + strRtDir += PwDefs.ShortProductName; + + return strRtDir; +#else + return Path.GetTempPath(); #endif } } diff --git a/ModernKeePassLib/Properties/AssemblyInfo.cs b/ModernKeePassLib/Properties/AssemblyInfo.cs index 0b2c71f..9b5b2d8 100644 --- a/ModernKeePassLib/Properties/AssemblyInfo.cs +++ b/ModernKeePassLib/Properties/AssemblyInfo.cs @@ -39,5 +39,5 @@ using System.Runtime.InteropServices; //[assembly: Guid("395f6eec-a1e0-4438-aa82-b75099348134")] // Assembly version information -[assembly: AssemblyVersion("2.19.0.*")] -[assembly: AssemblyFileVersion("2.19.0.0")] +[assembly: AssemblyVersion("2.36.0.*")] +[assembly: AssemblyFileVersion("2.36.0.0")] diff --git a/ModernKeePassLib/PwCustomIcon.cs b/ModernKeePassLib/PwCustomIcon.cs index 397b186..62885fe 100644 --- a/ModernKeePassLib/PwCustomIcon.cs +++ b/ModernKeePassLib/PwCustomIcon.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -18,20 +18,18 @@ */ using System; -//using System.Drawing; -using Windows.UI.Xaml.Media.Imaging; +using Windows.UI.Xaml.Controls; -// Bert TODO: http://blog.tallcomponents.com/2012/06/windows-8-release-preview-back-to-earth.html namespace ModernKeePassLib { - /// - /// Custom icon. PwCustomIcon objects are immutable. - /// - public sealed class PwCustomIcon + /// + /// Custom icon. PwCustomIcon objects are immutable. + /// + public sealed class PwCustomIcon { private PwUuid m_pwUuid; private byte[] m_pbImageDataPng; - private BitmapImage m_pCachedImage; + private Image m_pCachedImage; public PwUuid Uuid { @@ -43,7 +41,7 @@ namespace ModernKeePassLib get { return m_pbImageDataPng; } } - public BitmapImage Image + public Image Image { get { return m_pCachedImage; } } @@ -52,8 +50,8 @@ namespace ModernKeePassLib { Debug.Assert(pwUuid != null); if(pwUuid == null) throw new ArgumentNullException("pwUuid"); - Debug.Assert(pwUuid != PwUuid.Zero); - if(pwUuid == PwUuid.Zero) throw new ArgumentException("pwUuid == 0"); + Debug.Assert(!pwUuid.Equals(PwUuid.Zero)); + if(pwUuid.Equals(PwUuid.Zero)) throw new ArgumentException("pwUuid == 0"); Debug.Assert(pbImageDataPng != null); if(pbImageDataPng == null) throw new ArgumentNullException("pbImageDataPng"); @@ -61,10 +59,11 @@ namespace ModernKeePassLib m_pwUuid = pwUuid; m_pbImageDataPng = pbImageDataPng; -#if !KeePassLibSD && false - MemoryStream ms = new MemoryStream(m_pbImageDataPng, false); - m_pCachedImage = Image.FromStream(ms); - ms.Close(); +#if !KeePassLibSD + // MemoryStream ms = new MemoryStream(m_pbImageDataPng, false); + // m_pCachedImage = Image.FromStream(ms); + // ms.Close(); + //m_pCachedImage = GfxUtil.LoadImage(m_pbImageDataPng); #else m_pCachedImage = null; #endif diff --git a/ModernKeePassLib/PwDatabase.cs b/ModernKeePassLib/PwDatabase.cs index 24d63cb..4c739ae 100644 --- a/ModernKeePassLib/PwDatabase.cs +++ b/ModernKeePassLib/PwDatabase.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,27 +19,28 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.IO; -using System.Threading.Tasks; -using Windows.UI.Xaml.Media.Imaging; -//using System.Drawing; - -using ModernKeePassLib.WinRTAdaptors; +using Windows.UI; +using Windows.UI.Xaml.Controls; using ModernKeePassLib.Collections; +using ModernKeePassLib.Cryptography; using ModernKeePassLib.Cryptography.Cipher; using ModernKeePassLib.Delegates; using ModernKeePassLib.Interfaces; using ModernKeePassLib.Keys; +using ModernKeePassLib.Resources; +using ModernKeePassLib.Security; using ModernKeePassLib.Serialization; using ModernKeePassLib.Utility; namespace ModernKeePassLib { - /// - /// The core password manager class. It contains a number of groups, which - /// contain the actual entries. - /// - public sealed class PwDatabase + /// + /// The core password manager class. It contains a number of groups, which + /// contain the actual entries. + /// + public sealed class PwDatabase { internal const int DefaultHistoryMaxItems = 10; // -1 = unlimited internal const long DefaultHistoryMaxSize = 6 * 1024 * 1024; // -1 = unlimited @@ -67,7 +68,7 @@ namespace ModernKeePassLib private string m_strDefaultUserName = string.Empty; private DateTime m_dtDefaultUserChanged = PwDefs.DtDefaultNow; private uint m_uMntncHistoryDays = 365; - private Color m_clr = Color.Empty; + private Color m_clr; private DateTime m_dtKeyLastChanged = PwDefs.DtDefaultNow; private long m_lKeyChangeRecDays = -1; @@ -497,7 +498,7 @@ namespace ModernKeePassLib m_strDefaultUserName = string.Empty; m_dtDefaultUserChanged = dtNow; m_uMntncHistoryDays = 365; - m_clr = Color.Empty; + m_clr = new Color(); m_dtKeyLastChanged = dtNow; m_lKeyChangeRecDays = -1; @@ -561,10 +562,9 @@ namespace ModernKeePassLib /// IO connection to load the database from. /// Key used to open the specified database. /// Logger, which gets all status messages. - public async Task Open(IOConnectionInfo ioSource, CompositeKey pwKey, + public void Open(IOConnectionInfo ioSource, CompositeKey pwKey, IStatusLogger slLogger) { - Debug.Assert(ioSource != null); if(ioSource == null) throw new ArgumentNullException("ioSource"); Debug.Assert(pwKey != null); @@ -582,17 +582,15 @@ namespace ModernKeePassLib m_bModified = false; - Kdb4File kdb4 = new Kdb4File(this); - kdb4.DetachBinaries = m_strDetachBins; + KdbxFile kdbx = new KdbxFile(this); + kdbx.DetachBinaries = m_strDetachBins; - IOConnection ioc = new IOConnection(); - Stream s = await ioc.OpenRead(ioSource); - kdb4.Load(s, Kdb4Format.Default, slLogger); + Stream s = IOConnection.OpenRead(ioSource); + kdbx.Load(s, KdbxFormat.Default, slLogger); + s.Dispose(); - s.Dispose(); - - m_pbHashOfLastIO = kdb4.HashOfFileOnDisk; - m_pbHashOfFileOnDisk = kdb4.HashOfFileOnDisk; + m_pbHashOfLastIO = kdbx.HashOfFileOnDisk; + m_pbHashOfFileOnDisk = kdbx.HashOfFileOnDisk; Debug.Assert(m_pbHashOfFileOnDisk != null); m_bDatabaseOpened = true; @@ -610,7 +608,7 @@ namespace ModernKeePassLib /// it has been opened from. /// /// Logger that recieves status information. - public async void Save(IStatusLogger slLogger) + public void Save(IStatusLogger slLogger) { Debug.Assert(ValidateUuidUniqueness()); @@ -620,10 +618,10 @@ namespace ModernKeePassLib { FileTransactionEx ft = new FileTransactionEx(m_ioSource, m_bUseFileTransactions); - Stream s = await ft.OpenWrite(); + Stream s = ft.OpenWrite(); - Kdb4File kdb = new Kdb4File(this); - kdb.Save(s, null, Kdb4Format.Default, slLogger); + KdbxFile kdb = new KdbxFile(this); + kdb.Save(s, null, KdbxFormat.Default, slLogger); ft.CommitWrite(); @@ -631,8 +629,6 @@ namespace ModernKeePassLib m_pbHashOfFileOnDisk = kdb.HashOfFileOnDisk; Debug.Assert(m_pbHashOfFileOnDisk != null); } - catch (Exception ex) - { } finally { if(fl != null) fl.Dispose(); } m_bModified = false; @@ -688,15 +684,15 @@ namespace ModernKeePassLib Clear(); } - public void MergeIn(PwDatabase pwSource, PwMergeMethod mm) + public void MergeIn(PwDatabase pdSource, PwMergeMethod mm) { - MergeIn(pwSource, mm, null); + MergeIn(pdSource, mm, null); } /// /// Synchronize the current database with another one. /// - /// Input database to synchronize with. This input + /// Input database to synchronize with. This input /// database is used to update the current one, but is not modified! You /// must copy the current object if you want a second instance of the /// synchronized database. The input database must not be seen as valid @@ -704,27 +700,38 @@ namespace ModernKeePassLib /// Merge method. /// Logger to report status messages to. /// May be null. - public void MergeIn(PwDatabase pwSource, PwMergeMethod mm, + public void MergeIn(PwDatabase pdSource, PwMergeMethod mm, IStatusLogger slStatus) { - if(pwSource == null) throw new ArgumentNullException("pwSource"); + if(pdSource == null) throw new ArgumentNullException("pdSource"); PwGroup pgOrgStructure = m_pgRootGroup.CloneStructure(); - PwGroup pgSrcStructure = pwSource.m_pgRootGroup.CloneStructure(); + PwGroup pgSrcStructure = pdSource.m_pgRootGroup.CloneStructure(); if(mm == PwMergeMethod.CreateNewUuids) - pwSource.RootGroup.CreateNewItemUuids(true, true, true); + { + pdSource.RootGroup.CreateNewItemUuids(true, true, true); + pdSource.RootGroup.Uuid = new PwUuid(true); + } GroupHandler gh = delegate(PwGroup pg) { - if(pg == pwSource.m_pgRootGroup) return true; + // if(pg == pdSource.m_pgRootGroup) return true; PwGroup pgLocal = m_pgRootGroup.FindGroup(pg.Uuid, true); if(pgLocal == null) { PwGroup pgSourceParent = pg.ParentGroup; PwGroup pgLocalContainer; - if(pgSourceParent == pwSource.m_pgRootGroup) + if(pgSourceParent == null) + { + // pg is the root group of pdSource, and no corresponding + // local group was found; create the group within the + // local root group + Debug.Assert(pg == pdSource.m_pgRootGroup); + pgLocalContainer = m_pgRootGroup; + } + else if(pgSourceParent == pdSource.m_pgRootGroup) pgLocalContainer = m_pgRootGroup; else pgLocalContainer = m_pgRootGroup.FindGroup(pgSourceParent.Uuid, true); @@ -760,7 +767,7 @@ namespace ModernKeePassLib { PwGroup pgSourceParent = pe.ParentGroup; PwGroup pgLocalContainer; - if(pgSourceParent == pwSource.m_pgRootGroup) + if(pgSourceParent == pdSource.m_pgRootGroup) pgLocalContainer = m_pgRootGroup; else pgLocalContainer = m_pgRootGroup.FindGroup(pgSourceParent.Uuid, true); @@ -783,12 +790,12 @@ namespace ModernKeePassLib bool bOrgBackup = !bEquals; if(mm != PwMergeMethod.OverwriteExisting) - bOrgBackup &= (pe.LastModificationTime > peLocal.LastModificationTime); + bOrgBackup &= (TimeUtil.CompareLastMod(pe, peLocal, true) > 0); bOrgBackup &= !pe.HasBackupOfData(peLocal, false, true); if(bOrgBackup) peLocal.CreateBackup(null); // Maintain at end bool bSrcBackup = !bEquals && (mm != PwMergeMethod.OverwriteExisting); - bSrcBackup &= (peLocal.LastModificationTime > pe.LastModificationTime); + bSrcBackup &= (TimeUtil.CompareLastMod(peLocal, pe, true) > 0); bSrcBackup &= !peLocal.HasBackupOfData(pe, false, true); if(bSrcBackup) pe.CreateBackup(null); // Maintain at end @@ -807,7 +814,8 @@ namespace ModernKeePassLib return ((slStatus != null) ? slStatus.ContinueWork() : true); }; - if(!pwSource.RootGroup.TraverseTree(TraversalMethod.PreOrder, gh, eh)) + gh(pdSource.RootGroup); + if(!pdSource.RootGroup.TraverseTree(TraversalMethod.PreOrder, gh, eh)) throw new InvalidOperationException(); IStatusLogger slPrevStatus = m_slStatus; @@ -815,7 +823,7 @@ namespace ModernKeePassLib if(mm == PwMergeMethod.Synchronize) { - ApplyDeletions(pwSource.m_vDeletedObjects, true); + ApplyDeletions(pdSource.m_vDeletedObjects, true); ApplyDeletions(m_vDeletedObjects, false); PwObjectPool ppOrgGroups = PwObjectPool.FromGroupRecursive( @@ -836,18 +844,18 @@ namespace ModernKeePassLib // Must be called *after* merging groups, because group UUIDs // are required for recycle bin and entry template UUIDs - MergeInDbProperties(pwSource, mm); + MergeInDbProperties(pdSource, mm); - MergeInCustomIcons(pwSource); + MergeInCustomIcons(pdSource); MaintainBackups(); m_slStatus = slPrevStatus; } - private void MergeInCustomIcons(PwDatabase pwSource) + private void MergeInCustomIcons(PwDatabase pdSource) { - foreach(PwCustomIcon pwci in pwSource.CustomIcons) + foreach(PwCustomIcon pwci in pdSource.CustomIcons) { if(GetCustomIconIndex(pwci.Uuid) >= 0) continue; @@ -856,10 +864,6 @@ namespace ModernKeePassLib } } - /// - /// Apply a list of deleted objects. - /// - /// List of deleted objects. private void ApplyDeletions(PwObjectList listDelObjects, bool bCopyDeletionInfoToLocal) { @@ -874,9 +878,12 @@ namespace ModernKeePassLib foreach(PwDeletedObject pdo in listDelObjects) { - if(pg.Uuid.EqualsValue(pdo.Uuid)) - if(pg.LastModificationTime < pdo.DeletionTime) + if(pg.Uuid.Equals(pdo.Uuid)) + { + if(TimeUtil.Compare(pg.LastModificationTime, + pdo.DeletionTime, true) < 0) listGroupsToDelete.AddLast(pg); + } } return ((m_slStatus != null) ? m_slStatus.ContinueWork() : true); @@ -886,9 +893,12 @@ namespace ModernKeePassLib { foreach(PwDeletedObject pdo in listDelObjects) { - if(pe.Uuid.EqualsValue(pdo.Uuid)) - if(pe.LastModificationTime < pdo.DeletionTime) + if(pe.Uuid.Equals(pdo.Uuid)) + { + if(TimeUtil.Compare(pe.LastModificationTime, + pdo.DeletionTime, true) < 0) listEntriesToDelete.AddLast(pe); + } } return ((m_slStatus != null) ? m_slStatus.ContinueWork() : true); @@ -909,7 +919,7 @@ namespace ModernKeePassLib foreach(PwDeletedObject pdoLocal in m_vDeletedObjects) { - if(pdoNew.Uuid.EqualsValue(pdoLocal.Uuid)) + if(pdoNew.Uuid.Equals(pdoLocal.Uuid)) { bCopy = false; @@ -942,8 +952,15 @@ namespace ModernKeePassLib if(ptSrc == null) continue; PwGroup pgOrgParent = ptOrg.ParentGroup; + // vGroups does not contain the root group, thus pgOrgParent + // should not be null + if(pgOrgParent == null) { Debug.Assert(false); continue; } + PwGroup pgSrcParent = ptSrc.ParentGroup; - if(pgOrgParent.Uuid.EqualsValue(pgSrcParent.Uuid)) + // pgSrcParent may be null (for the source root group) + if(pgSrcParent == null) continue; + + if(pgOrgParent.Uuid.Equals(pgSrcParent.Uuid)) { pg.LocationChanged = ((ptSrc.LocationChanged > ptOrg.LocationChanged) ? ptSrc.LocationChanged : ptOrg.LocationChanged); @@ -963,7 +980,7 @@ namespace ModernKeePassLib } else { - Debug.Assert(pg.ParentGroup.Uuid.EqualsValue(pgOrgParent.Uuid)); + Debug.Assert(pg.ParentGroup.Uuid.Equals(pgOrgParent.Uuid)); Debug.Assert(pg.LocationChanged == ptOrg.LocationChanged); } } @@ -989,7 +1006,7 @@ namespace ModernKeePassLib PwGroup pgOrg = ptOrg.ParentGroup; PwGroup pgSrc = ptSrc.ParentGroup; - if(pgOrg.Uuid.EqualsValue(pgSrc.Uuid)) + if(pgOrg.Uuid.Equals(pgSrc.Uuid)) { pe.LocationChanged = ((ptSrc.LocationChanged > ptOrg.LocationChanged) ? ptSrc.LocationChanged : ptOrg.LocationChanged); @@ -1007,7 +1024,7 @@ namespace ModernKeePassLib } else { - Debug.Assert(pe.ParentGroup.Uuid.EqualsValue(pgOrg.Uuid)); + Debug.Assert(pe.ParentGroup.Uuid.Equals(pgOrg.Uuid)); Debug.Assert(pe.LocationChanged == ptOrg.LocationChanged); } } @@ -1084,7 +1101,7 @@ namespace ModernKeePassLib bool bAdded = false; foreach(PwUuid puBefore in qRelBefore) { - if(puBefore.EqualsValue(pt.Uuid)) + if(puBefore.Equals(pt.Uuid)) { qBefore.Enqueue(pt); bAdded = true; @@ -1095,7 +1112,7 @@ namespace ModernKeePassLib foreach(PwUuid puAfter in qRelAfter) { - if(puAfter.EqualsValue(pt.Uuid)) + if(puAfter.Equals(pt.Uuid)) { qAfter.Enqueue(pt); bAdded = true; @@ -1159,7 +1176,16 @@ namespace ModernKeePassLib { uPosMax = u; dtMax = ptOrg.LocationChanged; // No 'continue' - vNeighborSrc = ptOrg.ParentGroup.GetObjects(false, bEntries); + + PwGroup pgParent = ptOrg.ParentGroup; + if(pgParent != null) + vNeighborSrc = pgParent.GetObjects(false, bEntries); + else + { + Debug.Assert(false); // Org root should be excluded + vNeighborSrc = new List(); + vNeighborSrc.Add(ptOrg); + } } // IStructureItem ptSrc = pgSrcStructure.FindObject(pt.Uuid, true, bEntries); @@ -1168,7 +1194,16 @@ namespace ModernKeePassLib { uPosMax = u; dtMax = ptSrc.LocationChanged; // No 'continue' - vNeighborSrc = ptSrc.ParentGroup.GetObjects(false, bEntries); + + PwGroup pgParent = ptSrc.ParentGroup; + if(pgParent != null) + vNeighborSrc = pgParent.GetObjects(false, bEntries); + else + { + // pgParent may be null (for the source root group) + vNeighborSrc = new List(); + vNeighborSrc.Add(ptSrc); + } } } @@ -1190,7 +1225,7 @@ namespace ModernKeePassLib { PwUuid pw = vItems[i].Uuid; - if(pw.EqualsValue(pwPivot)) bBefore = false; + if(pw.Equals(pwPivot)) bBefore = false; else if(bBefore) qBefore.Enqueue(pw); else qAfter.Enqueue(pw); } @@ -1226,8 +1261,8 @@ namespace ModernKeePassLib PwGroup pgSrcParent = ptSrc.ParentGroup; if(pgSrcParent == null) return true; // Root might be in tree - if(!ptFirst.ParentGroup.Uuid.EqualsValue(pgOrgParent.Uuid)) return true; - if(!pgOrgParent.Uuid.EqualsValue(pgSrcParent.Uuid)) return true; + if(!ptFirst.ParentGroup.Uuid.Equals(pgOrgParent.Uuid)) return true; + if(!pgOrgParent.Uuid.Equals(pgSrcParent.Uuid)) return true; List lOrg = pgOrgParent.GetObjects(false, bEntries); List lSrc = pgSrcParent.GetObjects(false, bEntries); @@ -1239,8 +1274,8 @@ namespace ModernKeePassLib IStructureItem pt = vItems.GetAt(u); Debug.Assert(pt.ParentGroup == ptFirst.ParentGroup); - if(!pt.Uuid.EqualsValue(lOrg[(int)u].Uuid)) return true; - if(!pt.Uuid.EqualsValue(lSrc[(int)u].Uuid)) return true; + if(!pt.Uuid.Equals(lOrg[(int)u].Uuid)) return true; + if(!pt.Uuid.Equals(lSrc[(int)u].Uuid)) return true; if(pt.LocationChanged != lOrg[(int)u].LocationChanged) return true; if(pt.LocationChanged != lSrc[(int)u].LocationChanged) return true; } @@ -1248,41 +1283,41 @@ namespace ModernKeePassLib return false; } - private void MergeInDbProperties(PwDatabase pwSource, PwMergeMethod mm) + private void MergeInDbProperties(PwDatabase pdSource, PwMergeMethod mm) { - if(pwSource == null) { Debug.Assert(false); return; } + if(pdSource == null) { Debug.Assert(false); return; } if((mm == PwMergeMethod.KeepExisting) || (mm == PwMergeMethod.None)) return; bool bForce = (mm == PwMergeMethod.OverwriteExisting); - if(bForce || (pwSource.m_dtNameChanged > m_dtNameChanged)) + if(bForce || (pdSource.m_dtNameChanged > m_dtNameChanged)) { - m_strName = pwSource.m_strName; - m_dtNameChanged = pwSource.m_dtNameChanged; + m_strName = pdSource.m_strName; + m_dtNameChanged = pdSource.m_dtNameChanged; } - if(bForce || (pwSource.m_dtDescChanged > m_dtDescChanged)) + if(bForce || (pdSource.m_dtDescChanged > m_dtDescChanged)) { - m_strDesc = pwSource.m_strDesc; - m_dtDescChanged = pwSource.m_dtDescChanged; + m_strDesc = pdSource.m_strDesc; + m_dtDescChanged = pdSource.m_dtDescChanged; } - if(bForce || (pwSource.m_dtDefaultUserChanged > m_dtDefaultUserChanged)) + if(bForce || (pdSource.m_dtDefaultUserChanged > m_dtDefaultUserChanged)) { - m_strDefaultUserName = pwSource.m_strDefaultUserName; - m_dtDefaultUserChanged = pwSource.m_dtDefaultUserChanged; + m_strDefaultUserName = pdSource.m_strDefaultUserName; + m_dtDefaultUserChanged = pdSource.m_dtDefaultUserChanged; } - if(bForce) m_clr = pwSource.m_clr; + if(bForce) m_clr = pdSource.m_clr; - PwUuid pwPrefBin = m_pwRecycleBin, pwAltBin = pwSource.m_pwRecycleBin; - if(bForce || (pwSource.m_dtRecycleBinChanged > m_dtRecycleBinChanged)) + PwUuid pwPrefBin = m_pwRecycleBin, pwAltBin = pdSource.m_pwRecycleBin; + if(bForce || (pdSource.m_dtRecycleBinChanged > m_dtRecycleBinChanged)) { - pwPrefBin = pwSource.m_pwRecycleBin; + pwPrefBin = pdSource.m_pwRecycleBin; pwAltBin = m_pwRecycleBin; - m_bUseRecycleBin = pwSource.m_bUseRecycleBin; - m_dtRecycleBinChanged = pwSource.m_dtRecycleBinChanged; + m_bUseRecycleBin = pdSource.m_bUseRecycleBin; + m_dtRecycleBinChanged = pdSource.m_dtRecycleBinChanged; } if(m_pgRootGroup.FindGroup(pwPrefBin, true) != null) m_pwRecycleBin = pwPrefBin; @@ -1290,12 +1325,12 @@ namespace ModernKeePassLib m_pwRecycleBin = pwAltBin; else m_pwRecycleBin = PwUuid.Zero; // Debug.Assert(false); - PwUuid pwPrefTmp = m_pwEntryTemplatesGroup, pwAltTmp = pwSource.m_pwEntryTemplatesGroup; - if(bForce || (pwSource.m_dtEntryTemplatesChanged > m_dtEntryTemplatesChanged)) + PwUuid pwPrefTmp = m_pwEntryTemplatesGroup, pwAltTmp = pdSource.m_pwEntryTemplatesGroup; + if(bForce || (pdSource.m_dtEntryTemplatesChanged > m_dtEntryTemplatesChanged)) { - pwPrefTmp = pwSource.m_pwEntryTemplatesGroup; + pwPrefTmp = pdSource.m_pwEntryTemplatesGroup; pwAltTmp = m_pwEntryTemplatesGroup; - m_dtEntryTemplatesChanged = pwSource.m_dtEntryTemplatesChanged; + m_dtEntryTemplatesChanged = pdSource.m_dtEntryTemplatesChanged; } if(m_pgRootGroup.FindGroup(pwPrefTmp, true) != null) m_pwEntryTemplatesGroup = pwPrefTmp; @@ -1307,10 +1342,7 @@ namespace ModernKeePassLib private void MergeEntryHistory(PwEntry pe, PwEntry peSource, PwMergeMethod mm) { - Debug.Assert(false, "not yet implemented"); - return ; -#if TODO - if(!pe.Uuid.EqualsValue(peSource.Uuid)) { Debug.Assert(false); return; } + if(!pe.Uuid.Equals(peSource.Uuid)) { Debug.Assert(false); return; } if(pe.History.UCount == peSource.History.UCount) { @@ -1330,31 +1362,35 @@ namespace ModernKeePassLib if((m_slStatus != null) && !m_slStatus.ContinueWork()) return; - SortedList list = new SortedList(); + IDictionary dict = +#if KeePassLibSD + new SortedList(); +#else + new SortedDictionary(); +#endif foreach(PwEntry peOrg in pe.History) { - list[peOrg.LastModificationTime] = peOrg; + dict[peOrg.LastModificationTime] = peOrg; } foreach(PwEntry peSrc in peSource.History) { DateTime dt = peSrc.LastModificationTime; - if(list.ContainsKey(dt)) + if(dict.ContainsKey(dt)) { if(mm == PwMergeMethod.OverwriteExisting) - list[dt] = peSrc.CloneDeep(); + dict[dt] = peSrc.CloneDeep(); } - else list[dt] = peSrc.CloneDeep(); + else dict[dt] = peSrc.CloneDeep(); } pe.History.Clear(); - foreach(KeyValuePair kvpCur in list) + foreach(KeyValuePair kvpCur in dict) { - Debug.Assert(kvpCur.Value.Uuid.EqualsValue(pe.Uuid)); + Debug.Assert(kvpCur.Value.Uuid.Equals(pe.Uuid)); Debug.Assert(kvpCur.Value.History.UCount == 0); pe.History.Add(kvpCur.Value); } -#endif } public bool MaintainBackups() @@ -1378,12 +1414,12 @@ namespace ModernKeePassLib /// Source file. public void Synchronize(string strFile) { - PwDatabase pwSource = new PwDatabase(); + PwDatabase pdSource = new PwDatabase(); IOConnectionInfo ioc = IOConnectionInfo.FromPath(strFile); - pwSource.Open(ioc, m_pwUserKey, null); + pdSource.Open(ioc, m_pwUserKey, null); - MergeIn(pwSource, PwMergeMethod.Synchronize); + MergeIn(pdSource, PwMergeMethod.Synchronize); } */ /// @@ -1393,32 +1429,50 @@ namespace ModernKeePassLib /// Index of the icon. public int GetCustomIconIndex(PwUuid pwIconId) { - int nIndex = 0; - - foreach(PwCustomIcon pwci in m_vCustomIcons) + for(int i = 0; i < m_vCustomIcons.Count; ++i) { - if(pwci.Uuid.EqualsValue(pwIconId)) - return nIndex; - - ++nIndex; + PwCustomIcon pwci = m_vCustomIcons[i]; + if(pwci.Uuid.Equals(pwIconId)) + return i; } // Debug.Assert(false); // Do not assert return -1; } + public int GetCustomIconIndex(byte[] pbPngData) + { + if(pbPngData == null) { Debug.Assert(false); return -1; } + + for(int i = 0; i < m_vCustomIcons.Count; ++i) + { + PwCustomIcon pwci = m_vCustomIcons[i]; + byte[] pbEx = pwci.ImageDataPng; + if(pbEx == null) { Debug.Assert(false); continue; } + + if(MemUtil.ArraysEqual(pbEx, pbPngData)) + return i; + } + + return -1; + } + /// /// Get a custom icon. This function can return null, if /// no cached image of the icon is available. /// /// ID of the icon. /// Image data. - public BitmapImage GetCustomIcon(PwUuid pwIconId) + public Image GetCustomIcon(PwUuid pwIconId) { - int nIndex = GetCustomIconIndex(pwIconId); +#if PCL + return null; +#else + int nIndex = GetCustomIconIndex(pwIconId); if(nIndex >= 0) return m_vCustomIcons[nIndex].Image; else { Debug.Assert(false); return null; } +#endif } public bool DeleteCustomIcons(List vUuidsToDelete) @@ -1430,11 +1484,11 @@ namespace ModernKeePassLib GroupHandler gh = delegate(PwGroup pg) { PwUuid uuidThis = pg.CustomIconUuid; - if(uuidThis.EqualsValue(PwUuid.Zero)) return true; + if(uuidThis.Equals(PwUuid.Zero)) return true; foreach(PwUuid uuidDelete in vUuidsToDelete) { - if(uuidThis.EqualsValue(uuidDelete)) + if(uuidThis.Equals(uuidDelete)) { pg.CustomIconUuid = PwUuid.Zero; break; @@ -1469,11 +1523,11 @@ namespace ModernKeePassLib private static void RemoveCustomIconUuid(PwEntry pe, List vToDelete) { PwUuid uuidThis = pe.CustomIconUuid; - if(uuidThis.EqualsValue(PwUuid.Zero)) return; + if(uuidThis.Equals(PwUuid.Zero)) return; foreach(PwUuid uuidDelete in vToDelete) { - if(uuidThis.EqualsValue(uuidDelete)) + if(uuidThis.Equals(uuidDelete)) { pe.CustomIconUuid = PwUuid.Zero; break; @@ -1493,7 +1547,7 @@ namespace ModernKeePassLib GroupHandler gh = delegate(PwGroup pg) { foreach(PwUuid u in l) - bAllUnique &= !pg.Uuid.EqualsValue(u); + bAllUnique &= !pg.Uuid.Equals(u); l.Add(pg.Uuid); return bAllUnique; }; @@ -1501,7 +1555,7 @@ namespace ModernKeePassLib EntryHandler eh = delegate(PwEntry pe) { foreach(PwUuid u in l) - bAllUnique &= !pe.Uuid.EqualsValue(u); + bAllUnique &= !pe.Uuid.Equals(u); l.Add(pe.Uuid); return bAllUnique; }; @@ -1599,7 +1653,7 @@ namespace ModernKeePassLib PwEntry peB = l.GetAt(j); if(!DupEntriesEqual(peA, peB)) continue; - bool bDeleteA = (peA.LastModificationTime <= peB.LastModificationTime); + bool bDeleteA = (TimeUtil.CompareLastMod(peA, peB, true) <= 0); if(pgRecycleBin != null) { bool bAInBin = peA.IsContainedIn(pgRecycleBin); @@ -1638,10 +1692,6 @@ namespace ModernKeePassLib private static List m_lStdFields = null; private static bool DupEntriesEqual(PwEntry a, PwEntry b) { - - Debug.Assert(false, "not yet implemented"); - return true; -#if TODO if(m_lStdFields == null) m_lStdFields = PwDefs.GetStandardFields(); foreach(string strStdKey in m_lStdFields) @@ -1689,7 +1739,6 @@ namespace ModernKeePassLib } return true; -#endif } public uint DeleteEmptyGroups() @@ -1721,11 +1770,11 @@ namespace ModernKeePassLib GroupHandler gh = delegate(PwGroup pg) { PwUuid pwUuid = pg.CustomIconUuid; - if((pwUuid == null) || pwUuid.EqualsValue(PwUuid.Zero)) return true; + if((pwUuid == null) || pwUuid.Equals(PwUuid.Zero)) return true; for(int i = 0; i < lToDelete.Count; ++i) { - if(lToDelete[i].EqualsValue(pwUuid)) + if(lToDelete[i].Equals(pwUuid)) { lToDelete.RemoveAt(i); break; @@ -1738,11 +1787,11 @@ namespace ModernKeePassLib EntryHandler eh = delegate(PwEntry pe) { PwUuid pwUuid = pe.CustomIconUuid; - if((pwUuid == null) || pwUuid.EqualsValue(PwUuid.Zero)) return true; + if((pwUuid == null) || pwUuid.Equals(PwUuid.Zero)) return true; for(int i = 0; i < lToDelete.Count; ++i) { - if(lToDelete[i].EqualsValue(pwUuid)) + if(lToDelete[i].Equals(pwUuid)) { lToDelete.RemoveAt(i); break; diff --git a/ModernKeePassLib/PwDefs.cs b/ModernKeePassLib/PwDefs.cs index caffb94..6148841 100644 --- a/ModernKeePassLib/PwDefs.cs +++ b/ModernKeePassLib/PwDefs.cs @@ -1,6 +1,6 @@ -/* +/* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -25,6 +25,7 @@ using System.Diagnostics; using ModernKeePassLib.Delegates; using ModernKeePassLib.Interfaces; +using ModernKeePassLib.Serialization; namespace ModernKeePassLib { @@ -44,6 +45,9 @@ namespace ModernKeePassLib /// public const string ShortProductName = "KeePass"; + internal const string UnixName = "keepass2"; + internal const string ResClass = "KeePass2"; // With initial capital + /// /// Version, encoded as 32-bit unsigned integer. /// 2.00 = 0x02000000, 2.01 = 0x02000100, ..., 2.18 = 0x02010800. @@ -51,20 +55,20 @@ namespace ModernKeePassLib /// e.g. 2.19 = 0x02130000. /// It is highly recommended to use FileVersion64 instead. /// - public const uint Version32 = 0x02130000; + public const uint Version32 = 0x021C0000; /// /// Version, encoded as 64-bit unsigned integer /// (component-wise, 16 bits per component). /// - public const ulong FileVersion64 = 0x0002001300000000UL; + public const ulong FileVersion64 = 0x0002001C00000000UL; /// /// Version, encoded as string. /// - public const string VersionString = "2.19"; + public const string VersionString = "2.28"; - public const string Copyright = @"Copyright © 2003-2012 Dominik Reichl"; + public const string Copyright = @"Copyright © 2003-2014 Dominik Reichl"; /// /// Product website URL. Terminated by a forward slash. @@ -216,7 +220,7 @@ namespace ModernKeePassLib } } - #pragma warning disable 1591 // Missing XML comments warning + // #pragma warning disable 1591 // Missing XML comments warning /// /// Search parameters for group and entry searches. /// @@ -314,10 +318,11 @@ namespace ModernKeePassLib set { m_bSearchInTags = value; } } - - //Bert TODO: Check if using CurrentCultureIgnoreCase makes sense. - private StringComparison m_scType = StringComparison.CurrentCultureIgnoreCase; - //private StringComparison m_scType = StringComparison.InvariantCultureIgnoreCase; +#if PCL || KeePassRT + private StringComparison m_scType = StringComparison.OrdinalIgnoreCase; +#else + private StringComparison m_scType = StringComparison.InvariantCultureIgnoreCase; +#endif /// /// String comparison type. Specifies the condition when the specified /// text matches a group/entry string. @@ -405,9 +410,9 @@ namespace ModernKeePassLib return (SearchParameters)this.MemberwiseClone(); } } - #pragma warning restore 1591 // Missing XML comments warning + // #pragma warning restore 1591 // Missing XML comments warning - #pragma warning disable 1591 // Missing XML comments warning + // #pragma warning disable 1591 // Missing XML comments warning /// /// Memory protection configuration structure (for default fields). /// @@ -437,7 +442,7 @@ namespace ModernKeePassLib return false; } } - #pragma warning restore 1591 // Missing XML comments warning + // #pragma warning restore 1591 // Missing XML comments warning public sealed class ObjectTouchedEventArgs : EventArgs { @@ -458,4 +463,24 @@ namespace ModernKeePassLib m_bParentsTouched = bParentsTouched; } } + + public sealed class IOAccessEventArgs : EventArgs + { + private IOConnectionInfo m_ioc; + public IOConnectionInfo IOConnectionInfo { get { return m_ioc; } } + + private IOConnectionInfo m_ioc2; + public IOConnectionInfo IOConnectionInfo2 { get { return m_ioc2; } } + + private IOAccessType m_t; + public IOAccessType Type { get { return m_t; } } + + public IOAccessEventArgs(IOConnectionInfo ioc, IOConnectionInfo ioc2, + IOAccessType t) + { + m_ioc = ioc; + m_ioc2 = ioc2; + m_t = t; + } + } } diff --git a/ModernKeePassLib/PwDeletedObject.cs b/ModernKeePassLib/PwDeletedObject.cs index 2b0b609..d430e6a 100644 --- a/ModernKeePassLib/PwDeletedObject.cs +++ b/ModernKeePassLib/PwDeletedObject.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/ModernKeePassLib/PwEntry.cs b/ModernKeePassLib/PwEntry.cs index e7df340..d05074c 100644 --- a/ModernKeePassLib/PwEntry.cs +++ b/ModernKeePassLib/PwEntry.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,7 +19,9 @@ using System; using System.Collections.Generic; - +using System.Diagnostics; +using System.Xml; +using Windows.UI; using ModernKeePassLib.Collections; using ModernKeePassLib.Interfaces; using ModernKeePassLib.Security; @@ -27,12 +29,12 @@ using ModernKeePassLib.Utility; namespace ModernKeePassLib { - /// - /// A class representing a password entry. A password entry consists of several - /// fields like title, user name, password, etc. Each password entry has a - /// unique ID (UUID). - /// - public sealed class PwEntry : ITimeLogger, IStructureItem, IDeepCloneable + /// + /// A class representing a password entry. A password entry consists of several + /// fields like title, user name, password, etc. Each password entry has a + /// unique ID (UUID). + /// + public sealed class PwEntry : ITimeLogger, IStructureItem, IDeepCloneable { private PwUuid m_uuid = PwUuid.Zero; private PwGroup m_pParentGroup = null; @@ -46,9 +48,8 @@ namespace ModernKeePassLib private PwIcon m_pwIcon = PwIcon.Key; private PwUuid m_pwCustomIconID = PwUuid.Zero; - private WinRTAdaptors.Color m_clrForeground = WinRTAdaptors.Color.Empty; - private WinRTAdaptors.Color m_clrBackground = WinRTAdaptors.Color.Empty; - + private Color m_clrForeground; + private Color m_clrBackground; private DateTime m_tCreation = PwDefs.DtDefaultNow; private DateTime m_tLastMod = PwDefs.DtDefaultNow; @@ -81,7 +82,7 @@ namespace ModernKeePassLib { get { return m_pParentGroup; } - /// Plugins: use PwGroup.AddEntry instead. + // Plugins: use PwGroup.AddEntry instead. internal set { m_pParentGroup = value; } } @@ -173,7 +174,7 @@ namespace ModernKeePassLib /// /// Get or set the foreground color of this entry. /// - public WinRTAdaptors.Color ForegroundColor + public Color ForegroundColor { get { return m_clrForeground; } set { m_clrForeground = value; } @@ -182,7 +183,7 @@ namespace ModernKeePassLib /// /// Get or set the background color of this entry. /// - public WinRTAdaptors.Color BackgroundColor + public Color BackgroundColor { get { return m_clrBackground; } set { m_clrBackground = value; } @@ -197,15 +198,6 @@ namespace ModernKeePassLib set { m_tCreation = value; } } - /// - /// The date/time when this entry was last accessed (read). - /// - public DateTime LastAccessTime - { - get { return m_tLastAccess; } - set { m_tLastAccess = value; } - } - /// /// The date/time when this entry was last modified. /// @@ -215,6 +207,15 @@ namespace ModernKeePassLib set { m_tLastMod = value; } } + /// + /// The date/time when this entry was last accessed (read). + /// + public DateTime LastAccessTime + { + get { return m_tLastAccess; } + set { m_tLastAccess = value; } + } + /// /// The date/time when this entry expires. Use the Expires property /// to specify if the entry does actually expire or not. @@ -402,10 +403,6 @@ namespace ModernKeePassLib public bool EqualsEntry(PwEntry pe, PwCompareOptions pwOpt, MemProtCmpMode mpCmpStr) { - Debug.Assert(false, "not yet implemented"); - return false; -#if TODO - if(pe == null) { Debug.Assert(false); return false; } bool bNeEqStd = ((pwOpt & PwCompareOptions.NullEmptyEquivStd) != @@ -415,7 +412,7 @@ namespace ModernKeePassLib bool bIgnoreLastMod = ((pwOpt & PwCompareOptions.IgnoreLastMod) != PwCompareOptions.None); - if(!m_uuid.EqualsValue(pe.m_uuid)) return false; + if(!m_uuid.Equals(pe.m_uuid)) return false; if((pwOpt & PwCompareOptions.IgnoreParentGroup) == PwCompareOptions.None) { if(m_pParentGroup != pe.m_pParentGroup) return false; @@ -458,7 +455,7 @@ namespace ModernKeePassLib } if(m_pwIcon != pe.m_pwIcon) return false; - if(!m_pwCustomIconID.EqualsValue(pe.m_pwCustomIconID)) return false; + if(!m_pwCustomIconID.Equals(pe.m_pwCustomIconID)) return false; if(m_clrForeground != pe.m_clrForeground) return false; if(m_clrBackground != pe.m_clrBackground) return false; @@ -479,7 +476,6 @@ namespace ModernKeePassLib } return true; -#endif } /// @@ -497,10 +493,12 @@ namespace ModernKeePassLib { Debug.Assert(peTemplate != null); if(peTemplate == null) throw new ArgumentNullException("peTemplate"); - if(bOnlyIfNewer && (peTemplate.m_tLastMod < m_tLastMod)) return; + if(bOnlyIfNewer && (TimeUtil.Compare(peTemplate.m_tLastMod, m_tLastMod, + true) < 0)) + return; // Template UUID should be the same as the current one - Debug.Assert(m_uuid.EqualsValue(peTemplate.m_uuid)); + Debug.Assert(m_uuid.Equals(peTemplate.m_uuid)); m_uuid = peTemplate.m_uuid; if(bAssignLocationChanged) @@ -695,7 +693,7 @@ namespace ModernKeePassLib for(uint u = 0; u < m_listHistory.UCount; ++u) { PwEntry pe = m_listHistory.GetAt(u); - if(pe.LastModificationTime < dtMin) + if(TimeUtil.Compare(pe.LastModificationTime, dtMin, true) < 0) { idxRemove = u; dtMin = pe.LastModificationTime; @@ -847,6 +845,24 @@ namespace ModernKeePassLib } } } + + public void SetCreatedNow() + { + DateTime dt = DateTime.Now; + + m_tCreation = dt; + m_tLastAccess = dt; + } + + public PwEntry Duplicate() + { + PwEntry pe = CloneDeep(); + + pe.SetUuid(new PwUuid(true), true); + pe.SetCreatedNow(); + + return pe; + } } public sealed class PwEntryComparer : IComparer @@ -867,13 +883,15 @@ namespace ModernKeePassLib public int Compare(PwEntry a, PwEntry b) { - Debug.Assert(false, "not yet implemented"); - return 0; -#if TODO string strA = a.Strings.ReadSafe(m_strFieldName); string strB = b.Strings.ReadSafe(m_strFieldName); if(m_bCompareNaturally) return StrUtil.CompareNaturally(strA, strB); + +#if PCL || KeePassRT + return string.Compare(strA, strB, m_bCaseInsensitive ? + StringComparison.CurrentCultureIgnoreCase : StringComparison.CurrentCulture); +#else return string.Compare(strA, strB, m_bCaseInsensitive); #endif } diff --git a/ModernKeePassLib/PwEnums.cs b/ModernKeePassLib/PwEnums.cs index bb80199..e4fdc81 100644 --- a/ModernKeePassLib/PwEnums.cs +++ b/ModernKeePassLib/PwEnums.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -65,6 +65,8 @@ namespace ModernKeePassLib /// public enum PwMergeMethod { + // Do not change the explicitly assigned values, otherwise + // serialization (e.g. of Ecas triggers) breaks None = 0, OverwriteExisting = 1, KeepExisting = 2, @@ -202,6 +204,67 @@ namespace ModernKeePassLib IgnoreHistory = 0x10, IgnoreLastBackup = 0x20, + // For groups: + PropertiesOnly = 0x40, + IgnoreTimes = (IgnoreLastAccess | IgnoreLastMod) } + + public enum IOAccessType + { + None = 0, + + /// + /// The IO connection is being opened for reading. + /// + Read = 1, + + /// + /// The IO connection is being opened for writing. + /// + Write = 2, + + /// + /// The IO connection is being opened for testing + /// whether a file/object exists. + /// + Exists = 3, + + /// + /// The IO connection is being opened for deleting a file/object. + /// + Delete = 4, + + /// + /// The IO connection is being opened for renaming/moving a file/object. + /// + Move = 5 + } + + // public enum PwLogicalOp + // { + // None = 0, + // Or = 1, + // And = 2, + // NOr = 3, + // NAnd = 4 + // } + + [Flags] + public enum AppRunFlags + { + None = 0, + GetStdOutput = 1, + WaitForExit = 2, + + // This flag prevents any handles being garbage-collected + // before the started process has terminated, without + // blocking the current thread; + // https://sourceforge.net/p/keepass/patches/84/ + GCKeepAlive = 4, + + // https://sourceforge.net/p/keepass/patches/85/ + DoEvents = 8, + DisableForms = 16 + } } diff --git a/ModernKeePassLib/PwGroup.cs b/ModernKeePassLib/PwGroup.cs index d4157e7..40ea3a0 100644 --- a/ModernKeePassLib/PwGroup.cs +++ b/ModernKeePassLib/PwGroup.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -137,7 +137,7 @@ namespace ModernKeePassLib { get { return m_pParentGroup; } - /// Plugins: use PwGroup.AddGroup instead. + // Plugins: use PwGroup.AddGroup instead. internal set { Debug.Assert(value != this); m_pParentGroup = value; } } @@ -352,9 +352,9 @@ namespace ModernKeePassLib pg.m_pwCustomIconID = m_pwCustomIconID; pg.m_tCreation = m_tCreation; - pg.m_tExpire = m_tExpire; - pg.m_tLastAccess = m_tLastAccess; pg.m_tLastMod = m_tLastMod; + pg.m_tLastAccess = m_tLastAccess; + pg.m_tExpire = m_tExpire; pg.m_bExpires = m_bExpires; pg.m_uUsageCount = m_uUsageCount; @@ -363,6 +363,9 @@ namespace ModernKeePassLib pg.m_strDefaultAutoTypeSequence = m_strDefaultAutoTypeSequence; + pg.m_bEnableAutoType = m_bEnableAutoType; + pg.m_bEnableSearching = m_bEnableSearching; + pg.m_pwLastTopVisibleEntry = m_pwLastTopVisibleEntry; return pg; @@ -385,6 +388,76 @@ namespace ModernKeePassLib return pg; } + public bool EqualsGroup(PwGroup pg, PwCompareOptions pwOpt, + MemProtCmpMode mpCmpStr) + { + if(pg == null) { Debug.Assert(false); return false; } + + bool bIgnoreLastAccess = ((pwOpt & PwCompareOptions.IgnoreLastAccess) != + PwCompareOptions.None); + bool bIgnoreLastMod = ((pwOpt & PwCompareOptions.IgnoreLastMod) != + PwCompareOptions.None); + + if(!m_uuid.Equals(pg.m_uuid)) return false; + if((pwOpt & PwCompareOptions.IgnoreParentGroup) == PwCompareOptions.None) + { + if(m_pParentGroup != pg.m_pParentGroup) return false; + if(!bIgnoreLastMod && (m_tParentGroupLastMod != pg.m_tParentGroupLastMod)) + return false; + } + + if(m_strName != pg.m_strName) return false; + if(m_strNotes != pg.m_strNotes) return false; + + if(m_pwIcon != pg.m_pwIcon) return false; + if(!m_pwCustomIconID.Equals(pg.m_pwCustomIconID)) return false; + + if(m_tCreation != pg.m_tCreation) return false; + if(!bIgnoreLastMod && (m_tLastMod != pg.m_tLastMod)) return false; + if(!bIgnoreLastAccess && (m_tLastAccess != pg.m_tLastAccess)) return false; + if(m_tExpire != pg.m_tExpire) return false; + if(m_bExpires != pg.m_bExpires) return false; + if(!bIgnoreLastAccess && (m_uUsageCount != pg.m_uUsageCount)) return false; + + // if(m_bIsExpanded != pg.m_bIsExpanded) return false; + + if(m_strDefaultAutoTypeSequence != pg.m_strDefaultAutoTypeSequence) return false; + + if(m_bEnableAutoType.HasValue != pg.m_bEnableAutoType.HasValue) return false; + if(m_bEnableAutoType.HasValue) + { + if(m_bEnableAutoType.Value != pg.m_bEnableAutoType.Value) return false; + } + if(m_bEnableSearching.HasValue != pg.m_bEnableSearching.HasValue) return false; + if(m_bEnableSearching.HasValue) + { + if(m_bEnableSearching.Value != pg.m_bEnableSearching.Value) return false; + } + + if(!m_pwLastTopVisibleEntry.Equals(pg.m_pwLastTopVisibleEntry)) return false; + + if((pwOpt & PwCompareOptions.PropertiesOnly) == PwCompareOptions.None) + { + if(m_listEntries.UCount != pg.m_listEntries.UCount) return false; + for(uint u = 0; u < m_listEntries.UCount; ++u) + { + PwEntry peA = m_listEntries.GetAt(u); + PwEntry peB = pg.m_listEntries.GetAt(u); + if(!peA.EqualsEntry(peB, pwOpt, mpCmpStr)) return false; + } + + if(m_listGroups.UCount != pg.m_listGroups.UCount) return false; + for(uint u = 0; u < m_listGroups.UCount; ++u) + { + PwGroup pgA = m_listGroups.GetAt(u); + PwGroup pgB = pg.m_listGroups.GetAt(u); + if(!pgA.EqualsGroup(pgB, pwOpt, mpCmpStr)) return false; + } + } + + return true; + } + /// /// Assign properties to the current group based on a template group. /// @@ -398,10 +471,12 @@ namespace ModernKeePassLib { Debug.Assert(pgTemplate != null); if(pgTemplate == null) throw new ArgumentNullException("pgTemplate"); - if(bOnlyIfNewer && (pgTemplate.m_tLastMod < m_tLastMod)) return; + if(bOnlyIfNewer && (TimeUtil.Compare(pgTemplate.m_tLastMod, m_tLastMod, + true) < 0)) + return; // Template UUID should be the same as the current one - Debug.Assert(m_uuid.EqualsValue(pgTemplate.m_uuid)); + Debug.Assert(m_uuid.Equals(pgTemplate.m_uuid)); m_uuid = pgTemplate.m_uuid; if(bAssignLocationChanged) @@ -422,6 +497,9 @@ namespace ModernKeePassLib m_strDefaultAutoTypeSequence = pgTemplate.m_strDefaultAutoTypeSequence; + m_bEnableAutoType = pgTemplate.m_bEnableAutoType; + m_bEnableSearching = pgTemplate.m_bEnableSearching; + m_pwLastTopVisibleEntry = pgTemplate.m_pwLastTopVisibleEntry; } @@ -573,8 +651,6 @@ namespace ModernKeePassLib /// /// Pack all groups into one flat linked list of references (recursively). - /// Temporary IDs (TemporaryID field) and levels (TemporaryLevel) - /// are assigned automatically. /// /// Flat list of all groups. public LinkedList GetFlatGroupList() @@ -671,6 +747,7 @@ namespace ModernKeePassLib /// Specifies the search method. /// Entry list in which the search results will /// be stored. + /// Optional status reporting object. public void SearchEntries(SearchParameters sp, PwObjectList listStorage, IStatusLogger slStatus) { @@ -743,9 +820,6 @@ namespace ModernKeePassLib PwObjectList listStorage, IStatusLogger slStatus, ref ulong uCurEntries, ulong uTotalEntries) { - Debug.Assert(false, "not yet implemented"); - return false; -#if TODO SearchParameters sp = spIn.Clone(); if(sp.SearchString == null) { Debug.Assert(false); return true; } sp.SearchString = sp.SearchString.Trim(); @@ -767,9 +841,15 @@ namespace ModernKeePassLib Regex rx = null; if(sp.RegularExpression) { +#if PCL || KeePassRT + RegexOptions ro = RegexOptions.None; +#else RegexOptions ro = RegexOptions.Compiled; +#endif if((sp.ComparisonMode == StringComparison.CurrentCultureIgnoreCase) || +#if !PCL && !KeePassRT (sp.ComparisonMode == StringComparison.InvariantCultureIgnoreCase) || +#endif (sp.ComparisonMode == StringComparison.OrdinalIgnoreCase)) { ro |= RegexOptions.IgnoreCase; @@ -880,7 +960,6 @@ namespace ModernKeePassLib if(!PreOrderTraverseTree(null, eh)) return false; uCurEntries = uLocalCurEntries; return true; -#endif } private static void SearchEvalAdd(SearchParameters sp, string strDataField, @@ -942,6 +1021,30 @@ namespace ModernKeePassLib return vTags; } +#if !KeePassLibSD + public IDictionary BuildEntryTagsDict(bool bSort) + { + IDictionary d; + if(!bSort) d = new Dictionary(StrUtil.CaseIgnoreComparer); + else d = new SortedDictionary(StrUtil.CaseIgnoreComparer); + + EntryHandler eh = delegate(PwEntry pe) + { + foreach(string strTag in pe.Tags) + { + uint u; + if(d.TryGetValue(strTag, out u)) d[strTag] = u + 1; + else d[strTag] = 1; + } + + return true; + }; + + TraverseTree(TraversalMethod.PreOrder, null, eh); + return d; + } +#endif + public void FindEntriesByTag(string strTag, PwObjectList listStorage, bool bSearchRecursive) { @@ -976,7 +1079,7 @@ namespace ModernKeePassLib public PwGroup FindGroup(PwUuid uuid, bool bSearchRecursive) { // Do not assert on PwUuid.Zero - if(m_uuid.EqualsValue(uuid)) return this; + if(m_uuid.Equals(uuid)) return this; if(bSearchRecursive) { @@ -991,7 +1094,7 @@ namespace ModernKeePassLib { foreach(PwGroup pg in m_listGroups) { - if(pg.m_uuid.EqualsValue(uuid)) + if(pg.m_uuid.Equals(uuid)) return pg; } } @@ -1055,7 +1158,7 @@ namespace ModernKeePassLib { foreach(PwEntry pe in m_listEntries) { - if(pe.Uuid.EqualsValue(uuid)) return pe; + if(pe.Uuid.Equals(uuid)) return pe; } if(bSearchRecursive) @@ -1085,6 +1188,8 @@ namespace ModernKeePassLib /// /// String that separates the group /// names. + /// Specifies whether the returned + /// path starts with the topmost group. /// Full path of the group. public string GetFullPath(string strSeparator, bool bIncludeTopMostGroup) { @@ -1155,6 +1260,7 @@ namespace ModernKeePassLib } } +#if !KeePassLibSD /// /// Find/create a subtree of groups. /// @@ -1168,11 +1274,23 @@ namespace ModernKeePassLib public PwGroup FindCreateSubTree(string strTree, char[] vSeparators, bool bAllowCreate) + { + if(vSeparators == null) { Debug.Assert(false); vSeparators = new char[0]; } + + string[] v = new string[vSeparators.Length]; + for(int i = 0; i < vSeparators.Length; ++i) + v[i] = new string(vSeparators[i], 1); + + return FindCreateSubTree(strTree, v, bAllowCreate); + } + + public PwGroup FindCreateSubTree(string strTree, string[] vSeparators, + bool bAllowCreate) { Debug.Assert(strTree != null); if(strTree == null) return this; if(strTree.Length == 0) return this; - string[] vGroups = strTree.Split(vSeparators); + string[] vGroups = strTree.Split(vSeparators, StringSplitOptions.None); if((vGroups == null) || (vGroups.Length == 0)) return this; PwGroup pgContainer = this; @@ -1203,6 +1321,7 @@ namespace ModernKeePassLib return pgContainer; } +#endif /// /// Get the level of the group (i.e. the number of parent groups). @@ -1426,6 +1545,69 @@ namespace ModernKeePassLib } m_listGroups.Clear(); } + + internal List GetTopSearchSkippedGroups() + { + List l = new List(); + + if(!GetSearchingEnabledInherited()) l.Add(this); + else GetTopSearchSkippedGroupsRec(l); + + return l; + } + + private void GetTopSearchSkippedGroupsRec(List l) + { + if(m_bEnableSearching.HasValue && !m_bEnableSearching.Value) + { + l.Add(this); + return; + } + else { Debug.Assert(GetSearchingEnabledInherited()); } + + foreach(PwGroup pgSub in m_listGroups) + pgSub.GetTopSearchSkippedGroupsRec(l); + } + + public void SetCreatedNow(bool bRecursive) + { + DateTime dt = DateTime.Now; + + m_tCreation = dt; + m_tLastAccess = dt; + + if(!bRecursive) return; + + GroupHandler gh = delegate(PwGroup pg) + { + pg.m_tCreation = dt; + pg.m_tLastAccess = dt; + return true; + }; + + EntryHandler eh = delegate(PwEntry pe) + { + pe.CreationTime = dt; + pe.LastAccessTime = dt; + return true; + }; + + TraverseTree(TraversalMethod.PreOrder, gh, eh); + } + + public PwGroup Duplicate() + { + PwGroup pg = CloneDeep(); + + pg.Uuid = new PwUuid(true); + pg.CreateNewItemUuids(true, true, true); + + pg.SetCreatedNow(true); + + pg.TakeOwnership(true, true, true); + + return pg; + } } public sealed class PwGroupComparer : IComparer diff --git a/ModernKeePassLib/PwUuid.cs b/ModernKeePassLib/PwUuid.cs index ff1965f..8884444 100644 --- a/ModernKeePassLib/PwUuid.cs +++ b/ModernKeePassLib/PwUuid.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -18,6 +18,7 @@ */ using System; +using System.Collections.Generic; using System.Xml; using System.Diagnostics; @@ -27,10 +28,10 @@ namespace ModernKeePassLib { // [ImmutableObject(true)] /// - /// Represents an UUID of a password entry or group. Once created, PwUuid - /// objects aren't modifyable anymore (immutable). + /// Represents an UUID of a password entry or group. Once created, + /// PwUuid objects aren't modifyable anymore (immutable). /// - public sealed class PwUuid + public sealed class PwUuid : IComparable, IEquatable { /// /// Standard size in bytes of a UUID. @@ -40,9 +41,9 @@ namespace ModernKeePassLib /// /// Zero UUID (all bytes are zero). /// - public static readonly PwUuid Zero = new PwUuid(); + public static readonly PwUuid Zero = new PwUuid(false); - private byte[] m_pbUuid = new byte[UuidSize]; + private byte[] m_pbUuid = null; // Never null after constructor /// /// Get the 16 UUID bytes. @@ -52,14 +53,6 @@ namespace ModernKeePassLib get { return m_pbUuid; } } - /// - /// Construct a new UUID object. Its value is initialized to zero. - /// - private PwUuid() - { - SetZero(); - } - /// /// Construct a new UUID object. /// @@ -88,38 +81,95 @@ namespace ModernKeePassLib /// otherwise it returns false. private void CreateNew() { + Debug.Assert(m_pbUuid == null); // Only call from constructor while(true) { m_pbUuid = Guid.NewGuid().ToByteArray(); - if((m_pbUuid == null) || (m_pbUuid.Length != UuidSize)) + if((m_pbUuid == null) || (m_pbUuid.Length != (int)UuidSize)) + { + Debug.Assert(false); throw new InvalidOperationException(); + } // Zero is a reserved value -- do not generate Zero - if(this.EqualsValue(PwUuid.Zero) == false) - break; + if(!Equals(PwUuid.Zero)) break; + Debug.Assert(false); } } - /// - /// Compare this UUID with another. - /// - /// Second UUID object. - /// Returns true if both PwUuid object contain the same - /// value, otherwise false is returned. + private void SetValue(byte[] uuidBytes) + { + Debug.Assert((uuidBytes != null) && (uuidBytes.Length == (int)UuidSize)); + if(uuidBytes == null) throw new ArgumentNullException("uuidBytes"); + if(uuidBytes.Length != (int)UuidSize) throw new ArgumentException(); + + Debug.Assert(m_pbUuid == null); // Only call from constructor + m_pbUuid = new byte[UuidSize]; + + Array.Copy(uuidBytes, m_pbUuid, (int)UuidSize); + } + + private void SetZero() + { + Debug.Assert(m_pbUuid == null); // Only call from constructor + m_pbUuid = new byte[UuidSize]; + + // Array.Clear(m_pbUuid, 0, (int)UuidSize); +#if DEBUG + List l = new List(m_pbUuid); + Debug.Assert(l.TrueForAll(bt => (bt == 0))); +#endif + } + + [Obsolete] public bool EqualsValue(PwUuid uuid) { - Debug.Assert(uuid != null); - if(uuid == null) throw new ArgumentNullException("uuid"); + return Equals(uuid); + } - for(int i = 0; i < UuidSize; ++i) + public override bool Equals(object obj) + { + return Equals(obj as PwUuid); + } + + public bool Equals(PwUuid other) + { + if(other == null) { Debug.Assert(false); return false; } + + for(int i = 0; i < (int)UuidSize; ++i) { - if(m_pbUuid[i] != uuid.m_pbUuid[i]) return false; + if(m_pbUuid[i] != other.m_pbUuid[i]) return false; } return true; } + private int m_h = 0; + public override int GetHashCode() + { + if(m_h == 0) + m_h = (int)MemUtil.Hash32(m_pbUuid, 0, m_pbUuid.Length); + return m_h; + } + + public int CompareTo(PwUuid other) + { + if(other == null) + { + Debug.Assert(false); + throw new ArgumentNullException("other"); + } + + for(int i = 0; i < (int)UuidSize; ++i) + { + if(m_pbUuid[i] < other.m_pbUuid[i]) return -1; + if(m_pbUuid[i] > other.m_pbUuid[i]) return 1; + } + + return 0; + } + /// /// Convert the UUID to its string representation. /// @@ -129,29 +179,15 @@ namespace ModernKeePassLib return MemUtil.ByteArrayToHexString(m_pbUuid); } - /// - /// Set the UUID value. The input parameter will not be modified. - /// - /// UUID bytes. The byte array must contain - /// exactly UUIDSize bytes, otherwise the function will fail. - private void SetValue(byte[] uuidBytes) +#if DEBUG + public override string ToString() { - Debug.Assert((uuidBytes != null) && (uuidBytes.Length == UuidSize)); - if(uuidBytes == null) throw new ArgumentNullException("uuidBytes"); - if(uuidBytes.Length != UuidSize) throw new ArgumentException(); - - Array.Copy(uuidBytes, m_pbUuid, (int)UuidSize); - } - - /// - /// Set the UUID value to zero. - /// - private void SetZero() - { - Array.Clear(m_pbUuid, 0, (int)UuidSize); + return ToHexString(); } +#endif } + [Obsolete] public sealed class PwUuidComparable : IComparable { private byte[] m_pbUuid = new byte[PwUuid.UuidSize]; diff --git a/ModernKeePassLib/Resources/KLRes.Generated.cs b/ModernKeePassLib/Resources/KLRes.Generated.cs index 5f35502..74f4274 100644 --- a/ModernKeePassLib/Resources/KLRes.Generated.cs +++ b/ModernKeePassLib/Resources/KLRes.Generated.cs @@ -48,6 +48,7 @@ namespace ModernKeePassLib.Resources m_strInvalidCompositeKeyHint = TryGetEx(dictNew, "InvalidCompositeKeyHint", m_strInvalidCompositeKeyHint); m_strInvalidDataWhileDecoding = TryGetEx(dictNew, "InvalidDataWhileDecoding", m_strInvalidDataWhileDecoding); m_strKeePass1xHint = TryGetEx(dictNew, "KeePass1xHint", m_strKeePass1xHint); + m_strKeyFileDbSel = TryGetEx(dictNew, "KeyFileDbSel", m_strKeyFileDbSel); m_strMasterSeedLengthInvalid = TryGetEx(dictNew, "MasterSeedLengthInvalid", m_strMasterSeedLengthInvalid); m_strOldFormat = TryGetEx(dictNew, "OldFormat", m_strOldFormat); m_strTryAgainSecs = TryGetEx(dictNew, "TryAgainSecs", m_strTryAgainSecs); @@ -78,6 +79,7 @@ namespace ModernKeePassLib.Resources "InvalidCompositeKeyHint", "InvalidDataWhileDecoding", "KeePass1xHint", + "KeyFileDbSel", "MasterSeedLengthInvalid", "OldFormat", "TryAgainSecs", @@ -201,10 +203,10 @@ namespace ModernKeePassLib.Resources } private static string m_strFileSaveCorruptionWarning = - @"The target file might be in a corrupted state. Please try saving again, and if that fails, save the database to a different location."; + @"The target file might be corrupted. Please try saving again. If that fails, save the database to a different location."; /// /// Look up a localized string similar to - /// 'The target file might be in a corrupted state. Please try saving again, and if that fails, save the database to a different location.'. + /// 'The target file might be corrupted. Please try saving again. If that fails, save the database to a different location.'. /// public static string FileSaveCorruptionWarning { @@ -332,6 +334,17 @@ namespace ModernKeePassLib.Resources get { return m_strKeePass1xHint; } } + private static string m_strKeyFileDbSel = + @"Database files cannot be used as key files."; + /// + /// Look up a localized string similar to + /// 'Database files cannot be used as key files.'. + /// + public static string KeyFileDbSel + { + get { return m_strKeyFileDbSel; } + } + private static string m_strMasterSeedLengthInvalid = @"The length of the master key seed is invalid!"; /// diff --git a/ModernKeePassLib/Security/ProtectedBinary.cs b/ModernKeePassLib/Security/ProtectedBinary.cs index e1721ff..b8f2c4f 100644 --- a/ModernKeePassLib/Security/ProtectedBinary.cs +++ b/ModernKeePassLib/Security/ProtectedBinary.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -18,170 +18,307 @@ */ using System; -using System.Threading.Tasks; +using System.Threading; +using System.Diagnostics; -using ModernKeePassLib.Utility; using ModernKeePassLib.Cryptography; -using Windows.Security.Cryptography; -using Windows.Security.Cryptography.DataProtection; -using Windows.Storage.Streams; - +using ModernKeePassLib.Cryptography.Cipher; +using ModernKeePassLib.Utility; #if KeePassLibSD -using ModernKeePassLibSD; +using KeePassLibSD; #endif namespace ModernKeePassLib.Security { - /// - /// Represents a protected binary, i.e. a byte array that is encrypted - /// in memory. A ProtectedBinary object is immutable and - /// thread-safe. - /// - public sealed class ProtectedBinary : IEquatable - { - private static bool m_bProtectionSupported; - private IBuffer m_pbDataCrypted; - private DataProtectionProvider m_pProvider; - private bool m_bProtected; + [Flags] + public enum PbCryptFlags + { + None = 0, + Encrypt = 1, + Decrypt = 2 + } - /// - /// A flag specifying whether the ProtectedBinary object has - /// turned on in-memory protection or not. - /// - public bool IsProtected - { - get - { - Debug.Assert(false, "not yet implemented"); + public delegate void PbCryptDelegate(byte[] pbData, PbCryptFlags cf, + long lID); + + /// + /// Represents a protected binary, i.e. a byte array that is encrypted + /// in memory. A ProtectedBinary object is immutable and + /// thread-safe. + /// + public sealed class ProtectedBinary : IEquatable + { + private const int BlockSize = 16; + + private static PbCryptDelegate g_fExtCrypt = null; + /// + /// A plugin can provide a custom memory protection method + /// by assigning a non-null delegate to this property. + /// + public static PbCryptDelegate ExtCrypt + { + get { return g_fExtCrypt; } + set { g_fExtCrypt = value; } + } + + // Local copy of the delegate that was used for encryption, + // in order to allow correct decryption even when the global + // delegate changes + private PbCryptDelegate m_fExtCrypt = null; + + private enum PbMemProt + { + None = 0, + ProtectedMemory, + Salsa20, + ExtCrypt + } + + // ProtectedMemory is supported only on Windows 2000 SP3 and higher +#if !KeePassLibSD + private static bool? g_bProtectedMemorySupported = null; +#endif + private static bool ProtectedMemorySupported + { + get + { +#if KeePassLibSD + return false; +#elif PCL return false; -#if TODO - return m_bProtected; +#else + bool? ob = g_bProtectedMemorySupported; + if(ob.HasValue) return ob.Value; + + // Mono does not implement any encryption for ProtectedMemory; + // https://sourceforge.net/p/keepass/feature-requests/1907/ + /*if(NativeLib.IsUnix()) + { + g_bProtectedMemorySupported = false; + return false; + }*/ + + ob = false; + try // Test whether ProtectedMemory is supported + { + // BlockSize * 3 in order to test encryption for multiple + // blocks, but not introduce a power of 2 as factor + byte[] pb = new byte[ProtectedBinary.BlockSize * 3]; + for(int i = 0; i < pb.Length; ++i) pb[i] = (byte)i; + + ProtectedMemory.Protect(pb, MemoryProtectionScope.SameProcess); + + for(int i = 0; i < pb.Length; ++i) + { + if(pb[i] != (byte)i) { ob = true; break; } + } + } + catch(Exception) { } // Windows 98 / ME + + g_bProtectedMemorySupported = ob; + return ob.Value; #endif - } - } + } + } - /// - /// Length of the stored data. - /// - public uint Length - { - get - { + private static long g_lCurID = 0; + private long m_lID; - Debug.Assert(false, "not yet implemented"); - return 0; -#if TODO - return m_uDataLen; + private byte[] m_pbData; // Never null + + // The real length of the data; this value can be different from + // m_pbData.Length, as the length of m_pbData always is a multiple + // of BlockSize (required for ProtectedMemory) + private uint m_uDataLen; + + private bool m_bProtected; // Protection requested by the caller + + private PbMemProt m_mp = PbMemProt.None; // Actual protection + + private object m_objSync = new object(); + + private static byte[] g_pbKey32 = null; + + /// + /// A flag specifying whether the ProtectedBinary object has + /// turned on memory protection or not. + /// + public bool IsProtected + { + get { return m_bProtected; } + } + + /// + /// Length of the stored data. + /// + public uint Length + { + get { return m_uDataLen; } + } + + /// + /// Construct a new, empty protected binary data object. + /// Protection is disabled. + /// + public ProtectedBinary() + { + Init(false, new byte[0]); + } + + /// + /// Construct a new protected binary data object. + /// + /// If this paremeter is true, + /// the data will be encrypted in memory. If it is false, the + /// data is stored in plain-text in the process memory. + /// Value of the protected object. + /// The input parameter is not modified and + /// ProtectedBinary doesn't take ownership of the data, + /// i.e. the caller is responsible for clearing it. + public ProtectedBinary(bool bEnableProtection, byte[] pbData) + { + Init(bEnableProtection, pbData); + } + + /// + /// Construct a new protected binary data object. Copy the data from + /// a XorredBuffer object. + /// + /// Enable protection or not. + /// XorredBuffer object used to + /// initialize the ProtectedBinary object. + public ProtectedBinary(bool bEnableProtection, XorredBuffer xbProtected) + { + Debug.Assert(xbProtected != null); + if(xbProtected == null) throw new ArgumentNullException("xbProtected"); + + byte[] pb = xbProtected.ReadPlainText(); + Init(bEnableProtection, pb); + MemUtil.ZeroByteArray(pb); + } + + private void Init(bool bEnableProtection, byte[] pbData) + { + if(pbData == null) throw new ArgumentNullException("pbData"); + +#if KeePassLibSD + m_lID = ++g_lCurID; +#else + m_lID = Interlocked.Increment(ref g_lCurID); #endif - } - } - static ProtectedBinary() - { - m_bProtectionSupported = true; - } + m_bProtected = bEnableProtection; + m_uDataLen = (uint)pbData.Length; - /// - /// Construct a new, empty protected binary data object. Protection - /// is disabled. - /// - public ProtectedBinary() - { - Init(false, new byte[0]); - } + const int bs = ProtectedBinary.BlockSize; + int nBlocks = (int)m_uDataLen / bs; + if((nBlocks * bs) < (int)m_uDataLen) ++nBlocks; + Debug.Assert((nBlocks * bs) >= (int)m_uDataLen); - /// - /// Construct a new protected binary data object. - /// - /// If this paremeter is true, - /// the data will be encrypted in memory. If it is false, the - /// data is stored in plain-text in the process memory. - /// Value of the protected object. - /// The input parameter is not modified and - /// ProtectedBinary doesn't take ownership of the data, - /// i.e. the caller is responsible for clearing it. - public ProtectedBinary(bool bEnableProtection, byte[] pbData) - { - Init(bEnableProtection, pbData); - } + m_pbData = new byte[nBlocks * bs]; + Array.Copy(pbData, m_pbData, (int)m_uDataLen); - /// - /// Construct a new protected binary data object. Copy the data from - /// a XorredBuffer object. - /// - /// Enable protection or not. - /// XorredBuffer object used to - /// initialize the ProtectedBinary object. - /// Thrown if the input - /// parameter is null. - public ProtectedBinary(bool bEnableProtection, XorredBuffer xbProtected) - { - Debug.Assert(xbProtected != null); if (xbProtected == null) throw new ArgumentNullException("xbProtected"); + Encrypt(); + } - byte[] pb = xbProtected.ReadPlainText(); - Init(bEnableProtection, pb); - MemUtil.ZeroByteArray(pb); - } + private void Encrypt() + { + Debug.Assert(m_mp == PbMemProt.None); - private void Init(bool bEnableProtection, byte[] pbData) - { - String strDescriptor = "LOCAL=user"; - m_pProvider = new DataProtectionProvider(strDescriptor); + // Nothing to do if caller didn't request protection + if(!m_bProtected) return; - EncryptAsync(bEnableProtection, pbData); + // ProtectedMemory.Protect throws for data size == 0 + if(m_pbData.Length == 0) return; - } + PbCryptDelegate f = g_fExtCrypt; + if(f != null) + { + f(m_pbData, PbCryptFlags.Encrypt, m_lID); - private void EncryptAsync(bool bEnableProtection, byte[] pbData) - { - IBuffer dataUncrypted = CryptographicBuffer.CreateFromByteArray(pbData); + m_fExtCrypt = f; + m_mp = PbMemProt.ExtCrypt; + return; + } - Task task = m_pProvider.ProtectAsync(dataUncrypted).AsTask(); - task.Wait(); +#if !PCL + if(ProtectedBinary.ProtectedMemorySupported) + { + ProtectedMemory.Protect(m_pbData, MemoryProtectionScope.SameProcess); - m_pbDataCrypted = task.Result; - // TODO: Here the dataUncrypted buffer should be cleared. Now just count on GarbageCollection to destroy. + m_mp = PbMemProt.ProtectedMemory; + return; + } +#endif + byte[] pbKey32 = g_pbKey32; + if(pbKey32 == null) + { + pbKey32 = CryptoRandom.Instance.GetRandomBytes(32); - } + byte[] pbUpd = Interlocked.Exchange(ref g_pbKey32, pbKey32); + if(pbUpd != null) pbKey32 = pbUpd; + } - /// - /// Get a copy of the protected data as a byte array. - /// Please note that the returned byte array is not protected and - /// can therefore been read by any other application. - /// Make sure that your clear it properly after usage. - /// - /// Unprotected byte array. This is always a copy of the internal - /// protected data and can therefore be cleared safely. - public byte[] ReadData() - { - if (m_pbDataCrypted == null) return new byte[0]; + Salsa20Cipher s = new Salsa20Cipher(pbKey32, + BitConverter.GetBytes(m_lID)); + s.Encrypt(m_pbData, m_pbData.Length, true); + s.Dispose(); + m_mp = PbMemProt.Salsa20; + } - // Decrypt the protected message specified on input. + private void Decrypt() + { + if(m_pbData.Length == 0) return; +#if !PCL + if(m_mp == PbMemProt.ProtectedMemory) + ProtectedMemory.Unprotect(m_pbData, MemoryProtectionScope.SameProcess); +#endif + else if(m_mp == PbMemProt.Salsa20) + { + Salsa20Cipher s = new Salsa20Cipher(g_pbKey32, + BitConverter.GetBytes(m_lID)); + s.Encrypt(m_pbData, m_pbData.Length, true); + s.Dispose(); + } + else if(m_mp == PbMemProt.ExtCrypt) + m_fExtCrypt(m_pbData, PbCryptFlags.Decrypt, m_lID); + else { Debug.Assert(m_mp == PbMemProt.None); } - Task task = m_pProvider.UnprotectAsync(m_pbDataCrypted).AsTask(); - task.Wait(); + m_mp = PbMemProt.None; + } - IBuffer buffUnprotected = task.Result; - byte[] strClearText; - CryptographicBuffer.CopyToByteArray(buffUnprotected, out strClearText); - return strClearText; + /// + /// Get a copy of the protected data as a byte array. + /// Please note that the returned byte array is not protected and + /// can therefore been read by any other application. + /// Make sure that your clear it properly after usage. + /// + /// Unprotected byte array. This is always a copy of the internal + /// protected data and can therefore be cleared safely. + public byte[] ReadData() + { + if(m_uDataLen == 0) return new byte[0]; - } + byte[] pbReturn = new byte[m_uDataLen]; - /// - /// Read the protected data and return it protected with a sequence - /// of bytes generated by a random stream. - /// - /// Random number source. - /// Protected data. - /// Thrown if the input - /// parameter is null. - public byte[] ReadXorredData(CryptoRandomStream crsRandomSource) - { - Debug.Assert(false, "not yet implemented"); - return null; -#if TODO + lock(m_objSync) + { + Decrypt(); + Array.Copy(m_pbData, pbReturn, (int)m_uDataLen); + Encrypt(); + } + + return pbReturn; + } + + /// + /// Read the protected data and return it protected with a sequence + /// of bytes generated by a random stream. + /// + /// Random number source. + public byte[] ReadXorredData(CryptoRandomStream crsRandomSource) + { Debug.Assert(crsRandomSource != null); if(crsRandomSource == null) throw new ArgumentNullException("crsRandomSource"); @@ -189,20 +326,19 @@ namespace ModernKeePassLib.Security uint uLen = (uint)pbData.Length; byte[] randomPad = crsRandomSource.GetRandomBytes(uLen); - Debug.Assert(randomPad.Length == uLen); + Debug.Assert(randomPad.Length == pbData.Length); for(uint i = 0; i < uLen; ++i) pbData[i] ^= randomPad[i]; return pbData; -#endif - } + } + + private int? m_hash = null; + public override int GetHashCode() + { + if(m_hash.HasValue) return m_hash.Value; - public override int GetHashCode() - { - Debug.Assert(false, "not yet implemented"); - return 0; -#if TODO int h = (m_bProtected ? 0x7B11D289 : 0); byte[] pb = ReadData(); @@ -213,20 +349,17 @@ namespace ModernKeePassLib.Security } MemUtil.ZeroByteArray(pb); + m_hash = h; return h; -#endif - } + } - public override bool Equals(object obj) - { - return Equals(obj as ProtectedBinary); - } + public override bool Equals(object obj) + { + return Equals(obj as ProtectedBinary); + } - public bool Equals(ProtectedBinary other) - { - Debug.Assert(false, "not yet implemented"); - return false; -#if TODO + public bool Equals(ProtectedBinary other) + { if(other == null) return false; // No assert if(m_bProtected != other.m_bProtected) return false; @@ -243,7 +376,6 @@ namespace ModernKeePassLib.Security #endif return bEq; -#endif - } - } + } + } } diff --git a/ModernKeePassLib/Security/ProtectedString.cs b/ModernKeePassLib/Security/ProtectedString.cs index 5c3fee9..9b8f715 100644 --- a/ModernKeePassLib/Security/ProtectedString.cs +++ b/ModernKeePassLib/Security/ProtectedString.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -23,10 +23,9 @@ using System.Diagnostics; using ModernKeePassLib.Cryptography; using ModernKeePassLib.Utility; -using System.Threading.Tasks; #if KeePassLibSD -using ModernKeePassLibSD; +using KeePassLibSD; #endif // SecureString objects are limited to 65536 characters, don't use @@ -48,7 +47,7 @@ namespace ModernKeePassLib.Security private bool m_bIsProtected; - private static ProtectedString m_psEmpty = new ProtectedString(); + private static readonly ProtectedString m_psEmpty = new ProtectedString(); public static ProtectedString Empty { get { return m_psEmpty; } @@ -56,7 +55,7 @@ namespace ModernKeePassLib.Security /// /// A flag specifying whether the ProtectedString object - /// has turned on in-memory protection or not. + /// has turned on memory protection or not. /// public bool IsProtected { @@ -80,10 +79,6 @@ namespace ModernKeePassLib.Security { get { - - Debug.Assert(false, "not yet implemented"); - return 0; -#if TODO if(m_nCachedLength >= 0) return m_nCachedLength; ProtectedBinary pBin = m_pbUtf8; // Local ref for thread-safety @@ -100,7 +95,6 @@ namespace ModernKeePassLib.Security } return m_nCachedLength; -#endif } } @@ -118,10 +112,9 @@ namespace ModernKeePassLib.Security /// to the value supplied in the parameters. /// /// If this parameter is true, - /// the string will be protected in-memory (encrypted). If it + /// the string will be protected in memory (encrypted). If it /// is false, the string will be stored as plain-text. - /// The initial string value. This - /// parameter won't be modified. + /// The initial string value. public ProtectedString(bool bEnableProtection, string strValue) { Init(bEnableProtection, strValue); @@ -132,7 +125,7 @@ namespace ModernKeePassLib.Security /// to the value supplied in the parameters (UTF-8 encoded string). /// /// If this parameter is true, - /// the string will be protected in-memory (encrypted). If it + /// the string will be protected in memory (encrypted). If it /// is false, the string will be stored as plain-text. /// The initial string value, encoded as /// UTF-8 byte array. This parameter won't be modified; the caller @@ -150,10 +143,9 @@ namespace ModernKeePassLib.Security /// XorredBuffer object containing the /// string in UTF-8 representation. The UTF-8 string must not /// be null-terminated. - /// Thrown if the input - /// parameter is null. public ProtectedString(bool bEnableProtection, XorredBuffer xbProtected) { + Debug.Assert(xbProtected != null); if(xbProtected == null) throw new ArgumentNullException("xbProtected"); byte[] pb = xbProtected.ReadPlainText(); @@ -196,7 +188,6 @@ namespace ModernKeePassLib.Security if(m_strPlainText != null) return m_strPlainText; byte[] pb = ReadUtf8(); - string str = ((pb.Length == 0) ? string.Empty : StrUtil.Utf8.GetString(pb, 0, pb.Length)); // No need to clear pb @@ -218,11 +209,7 @@ namespace ModernKeePassLib.Security public byte[] ReadUtf8() { ProtectedBinary pBin = m_pbUtf8; // Local ref for thread-safety - - if (pBin != null) - { - return pBin.ReadData(); - } + if(pBin != null) return pBin.ReadData(); return StrUtil.Utf8.GetBytes(m_strPlainText); } @@ -233,8 +220,6 @@ namespace ModernKeePassLib.Security /// /// Random number source. /// Protected string. - /// Thrown if the input - /// parameter is null. public byte[] ReadXorredString(CryptoRandomStream crsRandomSource) { Debug.Assert(crsRandomSource != null); if(crsRandomSource == null) throw new ArgumentNullException("crsRandomSource"); @@ -243,7 +228,7 @@ namespace ModernKeePassLib.Security uint uLen = (uint)pbData.Length; byte[] randomPad = crsRandomSource.GetRandomBytes(uLen); - Debug.Assert(randomPad.Length == uLen); + Debug.Assert(randomPad.Length == pbData.Length); for(uint i = 0; i < uLen; ++i) pbData[i] ^= randomPad[i]; @@ -260,5 +245,100 @@ namespace ModernKeePassLib.Security MemUtil.ZeroByteArray(pb); return ps; } + + public ProtectedString Insert(int iStart, string strInsert) + { + if(iStart < 0) throw new ArgumentOutOfRangeException("iStart"); + if(strInsert == null) throw new ArgumentNullException("strInsert"); + if(strInsert.Length == 0) return this; + + // Only operate directly with strings when m_bIsProtected is + // false, not in the case of non-null m_strPlainText, because + // the operation creates a new sequence in memory + if(!m_bIsProtected) + return new ProtectedString(false, ReadString().Insert( + iStart, strInsert)); + + UTF8Encoding utf8 = StrUtil.Utf8; + + byte[] pb = ReadUtf8(); + char[] v = utf8.GetChars(pb); + char[] vNew; + + try + { + if(iStart > v.Length) + throw new ArgumentOutOfRangeException("iStart"); + + char[] vIns = strInsert.ToCharArray(); + + vNew = new char[v.Length + vIns.Length]; + Array.Copy(v, 0, vNew, 0, iStart); + Array.Copy(vIns, 0, vNew, iStart, vIns.Length); + Array.Copy(v, iStart, vNew, iStart + vIns.Length, + v.Length - iStart); + } + finally + { + Array.Clear(v, 0, v.Length); + MemUtil.ZeroByteArray(pb); + } + + byte[] pbNew = utf8.GetBytes(vNew); + ProtectedString ps = new ProtectedString(m_bIsProtected, pbNew); + + Debug.Assert(utf8.GetString(pbNew, 0, pbNew.Length) == + ReadString().Insert(iStart, strInsert)); + + Array.Clear(vNew, 0, vNew.Length); + MemUtil.ZeroByteArray(pbNew); + return ps; + } + + public ProtectedString Remove(int iStart, int nCount) + { + if(iStart < 0) throw new ArgumentOutOfRangeException("iStart"); + if(nCount < 0) throw new ArgumentOutOfRangeException("nCount"); + if(nCount == 0) return this; + + // Only operate directly with strings when m_bIsProtected is + // false, not in the case of non-null m_strPlainText, because + // the operation creates a new sequence in memory + if(!m_bIsProtected) + return new ProtectedString(false, ReadString().Remove( + iStart, nCount)); + + UTF8Encoding utf8 = StrUtil.Utf8; + + byte[] pb = ReadUtf8(); + char[] v = utf8.GetChars(pb); + char[] vNew; + + try + { + if((iStart + nCount) > v.Length) + throw new ArgumentException("iStart + nCount"); + + vNew = new char[v.Length - nCount]; + Array.Copy(v, 0, vNew, 0, iStart); + Array.Copy(v, iStart + nCount, vNew, iStart, v.Length - + (iStart + nCount)); + } + finally + { + Array.Clear(v, 0, v.Length); + MemUtil.ZeroByteArray(pb); + } + + byte[] pbNew = utf8.GetBytes(vNew); + ProtectedString ps = new ProtectedString(m_bIsProtected, pbNew); + + Debug.Assert(utf8.GetString(pbNew, 0, pbNew.Length) == + ReadString().Remove(iStart, nCount)); + + Array.Clear(vNew, 0, vNew.Length); + MemUtil.ZeroByteArray(pbNew); + return ps; + } } } diff --git a/ModernKeePassLib/Security/XorredBuffer.cs b/ModernKeePassLib/Security/XorredBuffer.cs index 27693ff..625e83c 100644 --- a/ModernKeePassLib/Security/XorredBuffer.cs +++ b/ModernKeePassLib/Security/XorredBuffer.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/ModernKeePassLib/Serialization/BinaryReaderEx.cs b/ModernKeePassLib/Serialization/BinaryReaderEx.cs index 4d34c3b..1891861 100644 --- a/ModernKeePassLib/Serialization/BinaryReaderEx.cs +++ b/ModernKeePassLib/Serialization/BinaryReaderEx.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -22,42 +22,74 @@ using System.Collections.Generic; using System.Text; using System.IO; +using ModernKeePassLib.Utility; + namespace ModernKeePassLib.Serialization { - public sealed class BinaryReaderEx : BinaryReader + public sealed class BinaryReaderEx { - private string m_strReadExcp = null; + private Stream m_s; + // private Encoding m_enc; // See constructor + + private string m_strReadExcp; public string ReadExceptionText { get { return m_strReadExcp; } set { m_strReadExcp = value; } } - public BinaryReaderEx(Stream input, Encoding encoding, - string strReadExceptionText) : - base(input, encoding) + private Stream m_sCopyTo = null; + /// + /// If this property is set to a non-null stream, all data that + /// is read from the input stream is automatically written to + /// the copy stream (before returning the read data). + /// + public Stream CopyDataTo { + get { return m_sCopyTo; } + set { m_sCopyTo = value; } + } + + public BinaryReaderEx(Stream input, Encoding encoding, + string strReadExceptionText) + { + if(input == null) + throw new ArgumentNullException("input"); + + m_s = input; + // m_enc = encoding; // Not used yet m_strReadExcp = strReadExceptionText; } - public override byte[] ReadBytes(int count) + public byte[] ReadBytes(int nCount) { - /*try - {*/ - byte[] pb = base.ReadBytes(count); - if((pb == null) || (pb.Length != count)) + try + { + byte[] pb = MemUtil.Read(m_s, nCount); + if((pb == null) || (pb.Length != nCount)) { - if(m_strReadExcp != null) throw new IOException(m_strReadExcp); - else throw new EndOfStreamException(); + if(m_strReadExcp != null) + throw new IOException(m_strReadExcp); + else + throw new EndOfStreamException(); } + if(m_sCopyTo != null) + m_sCopyTo.Write(pb, 0, pb.Length); return pb; - /*} - catch(Exception ex) + } + catch(Exception) { - if(m_strReadExcp != null) throw new IOException(m_strReadExcp); + if(m_strReadExcp != null) + throw new IOException(m_strReadExcp); else throw; - }*/ + } + } + + public byte ReadByte() + { + byte[] pb = ReadBytes(1); + return pb[0]; } } } diff --git a/ModernKeePassLib/Serialization/CryptoStream.cs b/ModernKeePassLib/Serialization/CryptoStream.cs deleted file mode 100644 index 481bc38..0000000 --- a/ModernKeePassLib/Serialization/CryptoStream.cs +++ /dev/null @@ -1,139 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using Windows.Security.Cryptography; -using Windows.Security.Cryptography.Core; -using Windows.Storage.Streams; - -namespace ModernKeePassLib.Serialization -{ - // An adaptor function to provide a stream interface from an IBuffer. - - class CryptoStream : Stream - { - - private int m_blockSize = 16 ; - private byte[] m_decoded; - private IEnumerator m_enumerator = null; - - public CryptoStream(Stream s, String strAlgName, bool bEncrypt, byte[] pbKey, byte[] pbIV) - { - IBuffer iv = CryptographicBuffer.CreateFromByteArray(pbIV); - SymmetricKeyAlgorithmProvider objAlg = SymmetricKeyAlgorithmProvider.OpenAlgorithm(strAlgName); - CryptographicKey key = objAlg.CreateSymmetricKey( CryptographicBuffer.CreateFromByteArray(pbKey) ); - if (bEncrypt) - { - Debug.Assert(false, "Not implemented yet"); - } - else - { - // For the time being, WinRT CryptographicEngine doesn't support stream decoding. Bummer. - // Copy the file to a memory buffer, then decode all at once. - - - byte[] block = new byte[s.Length]; // We are not at the beginning of the stream - // There is always less than s.Lenght bytes remaining to be read. - int readItemCount = s.Read(block, 0, (int) s.Length); - Array.Resize(ref block, readItemCount); - - IBuffer input = CryptographicBuffer.CreateFromByteArray(block); - IBuffer decoded = null; - - try - { - decoded = CryptographicEngine.Decrypt(key, input, iv); - } catch (System.Exception) - { - throw new Keys.InvalidCompositeKeyException(); - } - CryptographicBuffer.CopyToByteArray(decoded, out m_decoded); - m_enumerator = m_decoded.AsEnumerable().GetEnumerator(); - } - } - - - public override bool CanRead { get { return true; } } - public override bool CanSeek { get { return false; } } - public override bool CanTimeout { get { return false; } } - public override bool CanWrite { get { return false; } } - public override long Length - { - get - { - throw new System.NotSupportedException(); - } - } - - public override long Position { - get - { - throw new System.NotSupportedException(); - } - set - { - throw new System.NotSupportedException(); - } - } - - - public override void Flush() - { - Debug.Assert(false, "Not yet implemented"); - } - - - public override int Read(byte[] buffer, int offset, int count) - { - // Exceptions: - // System.ArgumentException: - // The sum of offset and count is larger than the buffer length. - // - // System.ArgumentNullException: - // buffer is null. - // - // System.ArgumentOutOfRangeException: - // offset or count is negative. - // - // System.IO.IOException: - // An I/O error occurs. - // - // System.NotSupportedException: - // The stream does not support reading. - // - // System.ObjectDisposedException: - // Methods were called after the stream was closed. - - if ((count <0) || (offset <0)) - throw new System.ArgumentOutOfRangeException(); - if (buffer == null) - throw new System.ArgumentNullException(); - if (m_enumerator == null) - throw new System.ArgumentNullException(); - - for (int i = 0; i < count; i++) - { - if (!m_enumerator.MoveNext()) - return i; - buffer[i + offset] = m_enumerator.Current; - } - return count; - } - - public override long Seek(long offset, SeekOrigin origin) - { - throw new System.NotSupportedException(); - } - - public override void SetLength(long value) - { - throw new System.NotSupportedException(); - } - - public override void Write(byte[] buffer, int offset, int count) - { - throw new System.NotSupportedException(); - } - - } -} diff --git a/ModernKeePassLib/Serialization/FileLock.cs b/ModernKeePassLib/Serialization/FileLock.cs index a598f6e..e99f604 100644 --- a/ModernKeePassLib/Serialization/FileLock.cs +++ b/ModernKeePassLib/Serialization/FileLock.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -21,7 +21,11 @@ using System; using System.Collections.Generic; using System.Text; using System.IO; +#if PCL +using System.Threading.Tasks; +#else using System.Threading; +#endif using System.Diagnostics; using ModernKeePassLib.Cryptography; @@ -41,28 +45,24 @@ namespace ModernKeePassLib.Serialization public FileLockException(string strBaseFile, string strUser) { - Debug.Assert(false, "Not yet implemented"); - return; -#if TODO StringBuilder sb = new StringBuilder(); if(!string.IsNullOrEmpty(strBaseFile)) { sb.Append(strBaseFile); - sb.Append(MessageService.NewParagraph); + sb.Append(Environment.NewLine + Environment.NewLine); } sb.Append(KLRes.FileLockedWrite); - sb.Append(MessageService.NewLine); + sb.Append(Environment.NewLine); if(!string.IsNullOrEmpty(strUser)) sb.Append(strUser); else sb.Append("?"); - sb.Append(MessageService.NewParagraph); + sb.Append(Environment.NewLine + Environment.NewLine); sb.Append(KLRes.TryAgainSecs); m_strMsg = sb.ToString(); -#endif } } @@ -124,9 +124,6 @@ namespace ModernKeePassLib.Serialization public static LockFileInfo Load(IOConnectionInfo iocLockFile) { - Debug.Assert(false, "not yet implemented"); - return null; -#if TODO Stream s = null; try { @@ -134,7 +131,7 @@ namespace ModernKeePassLib.Serialization if(s == null) return null; StreamReader sr = new StreamReader(s, StrUtil.Utf8); string str = sr.ReadToEnd(); - sr.Close(); + sr.Dispose(); if(str == null) { Debug.Assert(false); return null; } str = StrUtil.NormalizeNewLines(str, false); @@ -146,18 +143,14 @@ namespace ModernKeePassLib.Serialization } catch(FileNotFoundException) { } catch(Exception) { Debug.Assert(false); } - finally { if(s != null) s.Close(); } + finally { if(s != null) s.Dispose(); } return null; -#endif } // Throws on error public static LockFileInfo Create(IOConnectionInfo iocLockFile) { - Debug.Assert(false, "not yet implemented"); - return null; -#if TODO LockFileInfo lfi; Stream s = null; try @@ -165,7 +158,7 @@ namespace ModernKeePassLib.Serialization byte[] pbID = CryptoRandom.Instance.GetRandomBytes(16); string strTime = TimeUtil.SerializeUtc(DateTime.Now); -#if !KeePassLibSD && TODO +#if (!PCL && !KeePassLibSD && !KeePassRT) lfi = new LockFileInfo(Convert.ToBase64String(pbID), strTime, Environment.UserName, Environment.MachineName, Environment.UserDomainName); @@ -175,7 +168,7 @@ namespace ModernKeePassLib.Serialization #endif StringBuilder sb = new StringBuilder(); -#if !KeePassLibSD && TODO +#if !KeePassLibSD sb.AppendLine(LockFileHeader); sb.AppendLine(lfi.ID); sb.AppendLine(strTime); @@ -197,18 +190,14 @@ namespace ModernKeePassLib.Serialization if(s == null) throw new IOException(iocLockFile.GetDisplayName()); s.Write(pbFile, 0, pbFile.Length); } - finally { if(s != null) s.Close(); } + finally { if(s != null) s.Dispose(); } return lfi; -#endif - } + } } public FileLock(IOConnectionInfo iocBaseFile) { - Debug.Assert(false, "not yet implemented"); - return ; -#if TODO if(iocBaseFile == null) throw new ArgumentNullException("strBaseFile"); m_iocLockFile = iocBaseFile.CloneDeep(); @@ -223,7 +212,6 @@ namespace ModernKeePassLib.Serialization } LockFileInfo.Create(m_iocLockFile); -#endif } ~FileLock() @@ -239,9 +227,6 @@ namespace ModernKeePassLib.Serialization private void Dispose(bool bDisposing) { - Debug.Assert(false, "not yet implemented"); - return ; -#if TODO if(m_iocLockFile == null) return; bool bFileDeleted = false; @@ -258,14 +243,18 @@ namespace ModernKeePassLib.Serialization if(bFileDeleted) break; +#if PCL + if(bDisposing) + Task.Delay(50).Wait(); +#else if(bDisposing) Thread.Sleep(50); +#endif } if(bDisposing && !bFileDeleted) IOConnection.DeleteFile(m_iocLockFile); // Possibly with exception m_iocLockFile = null; -#endif } // private bool OwnLockFile() diff --git a/ModernKeePassLib/Serialization/FileTransactionEx.cs b/ModernKeePassLib/Serialization/FileTransactionEx.cs index c9a43dd..0b1072f 100644 --- a/ModernKeePassLib/Serialization/FileTransactionEx.cs +++ b/ModernKeePassLib/Serialization/FileTransactionEx.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -22,13 +22,8 @@ using System.Collections.Generic; using System.Text; using System.IO; using System.Diagnostics; -using System.Threading.Tasks; -// Bert TODO: For now, remove the accesscontrol from this class. -// In WinRT, the security of file has changed, and something could potentially be done -// http://msdn.microsoft.com/en-us/library/windows/desktop/aa364399%28v=vs.85%29.aspx - -#if !KeePassLibSD && TODO +#if (!PCL && !KeePassLibSD && !KeePassRT) using System.Security.AccessControl; #endif @@ -63,6 +58,16 @@ namespace ModernKeePassLib.Serialization m_bTransacted = bTransacted; m_iocBase = iocBaseFile.CloneDeep(); +// ModernKeePassLib is currently targeting .NET 4.5 +#if !PCL + // Prevent transactions for FTP URLs under .NET 4.0 in order to + // avoid/workaround .NET bug 621450: + // https://connect.microsoft.com/VisualStudio/feedback/details/621450/problem-renaming-file-on-ftp-server-using-ftpwebrequest-in-net-framework-4-0-vs2010-only + if(m_iocBase.Path.StartsWith("ftp:", StrUtil.CaseIgnoreCmp) && + (Environment.Version.Major >= 4) && !NativeLib.IsUnix()) + m_bTransacted = false; +#endif + if(m_bTransacted) { m_iocTemp = m_iocBase.CloneDeep(); @@ -71,7 +76,7 @@ namespace ModernKeePassLib.Serialization else m_iocTemp = m_iocBase; } - public async Task OpenWrite() + public Stream OpenWrite() { if(!m_bTransacted) m_bMadeUnhidden = UrlUtil.UnhideFile(m_iocTemp.Path); else // m_bTransacted @@ -80,7 +85,7 @@ namespace ModernKeePassLib.Serialization catch(Exception) { } } - return await IOConnection.OpenWrite(m_iocTemp); + return IOConnection.OpenWrite(m_iocTemp); } public void CommitWrite() @@ -96,14 +101,14 @@ namespace ModernKeePassLib.Serialization { bool bMadeUnhidden = UrlUtil.UnhideFile(m_iocBase.Path); -#if !KeePassLibSD && TODO +#if (!PCL && !KeePassLibSD && !KeePassRT) FileSecurity bkSecurity = null; bool bEfsEncrypted = false; #endif if(IOConnection.FileExists(m_iocBase)) { -#if !KeePassLibSD && TODO +#if (!PCL && !KeePassLibSD && !KeePassRT) if(m_iocBase.IsLocalFile()) { try @@ -125,7 +130,7 @@ namespace ModernKeePassLib.Serialization IOConnection.RenameFile(m_iocTemp, m_iocBase); -#if !KeePassLibSD && TODO +#if (!PCL && !KeePassLibSD && !KeePassRT) if(m_iocBase.IsLocalFile()) { try diff --git a/ModernKeePassLib/Serialization/HashedBlockStream.cs b/ModernKeePassLib/Serialization/HashedBlockStream.cs index 6aa9960..8bf77f4 100644 --- a/ModernKeePassLib/Serialization/HashedBlockStream.cs +++ b/ModernKeePassLib/Serialization/HashedBlockStream.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,19 +19,24 @@ using System; using System.IO; +#if PCL +using System.Linq; +#else +using System.Security.Cryptography; +#endif +using System.Diagnostics; +using System.Runtime.InteropServices.WindowsRuntime; using System.Text; - -using ModernKeePassLib.Native; +using Windows.Security.Cryptography.Core; using ModernKeePassLib.Utility; -using ModernKeePassLib.Cryptography; #if KeePassLibSD -using ModernKeePassLibSD; +using KeePassLibSD; #endif namespace ModernKeePassLib.Serialization { - public sealed class HashedBlockStream : Stream + public sealed class HashedBlockStream : Stream { private const int m_nDefaultBufferSize = 1024 * 1024; // 1 MB @@ -93,12 +98,13 @@ namespace ModernKeePassLib.Serialization private void Initialize(Stream sBaseStream, bool bWriting, int nBufferSize, bool bVerify) { - if(sBaseStream == null) throw new ArgumentNullException("sBaseStream"); - if(nBufferSize < 0) throw new ArgumentOutOfRangeException("nBufferSize"); + if (sBaseStream == null) throw new ArgumentNullException(nameof(sBaseStream)); + m_sBaseStream = sBaseStream; + if (nBufferSize < 0) + throw new ArgumentOutOfRangeException(nameof(nBufferSize)); - if(nBufferSize == 0) nBufferSize = m_nDefaultBufferSize; - - m_sBaseStream = sBaseStream; + if(nBufferSize == 0) + nBufferSize = m_nDefaultBufferSize; m_bWriting = bWriting; m_bVerify = bVerify; @@ -128,14 +134,20 @@ namespace ModernKeePassLib.Serialization if(m_bWriting) m_bwOutput.Flush(); } -#if TODO +#if PCL || KeePassRT + protected override void Dispose(bool disposing) + { + if(!disposing) return; +#else public override void Close() { +#endif if(m_sBaseStream != null) { if(m_bWriting == false) // Reading mode { - m_brInput.Close(); + try { m_brInput.Dispose(); } catch { } + m_brInput = null; } else // Writing mode @@ -149,15 +161,14 @@ namespace ModernKeePassLib.Serialization } Flush(); - m_bwOutput.Close(); + m_bwOutput.Dispose(); m_bwOutput = null; } - m_sBaseStream.Close(); + try { m_sBaseStream.Dispose(); } catch { } m_sBaseStream = null; } } -#endif public override long Seek(long lOffset, SeekOrigin soOrigin) { @@ -210,11 +221,11 @@ namespace ModernKeePassLib.Serialization throw new InvalidDataException(); int nBufferSize = 0; - try { nBufferSize = m_brInput.ReadInt32(); } + /*try {*/ nBufferSize = m_brInput.ReadInt32(); /*} catch(NullReferenceException) // Mono bug workaround (LaunchPad 783268) { if(!NativeLib.IsUnix()) throw; - } + }*/ if(nBufferSize < 0) throw new InvalidDataException(); @@ -238,17 +249,22 @@ namespace ModernKeePassLib.Serialization if(m_bVerify) { - byte[] pbComputedHash = SHA256Managed.Instance.ComputeHash(m_pbBuffer); +#if PCL + var sha256 = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256); + var pbComputedHash = sha256.HashData(m_pbBuffer.AsBuffer()).ToArray(); +#else + SHA256Managed sha256 = new SHA256Managed(); + byte[] pbComputedHash = sha256.ComputeHash(m_pbBuffer); +#endif if((pbComputedHash == null) || (pbComputedHash.Length != 32)) throw new InvalidOperationException(); - + for(int iHashPos = 0; iHashPos < 32; ++iHashPos) { if(pbStoredHash[iHashPos] != pbComputedHash[iHashPos]) throw new InvalidDataException(); } - } - + } return true; } @@ -275,14 +291,16 @@ namespace ModernKeePassLib.Serialization private void WriteHashedBlock() { - Debug.Assert(false, "not yet implemented"); - return ; -#if TODO m_bwOutput.Write(m_uBufferIndex); ++m_uBufferIndex; if(m_nBufferPos > 0) { +#if PCL + var sha256 = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256); + var pbHash = sha256.HashData(m_pbBuffer.Where((x, i) => i < m_nBufferPos).ToArray().AsBuffer()).ToArray(); +#else + SHA256Managed sha256 = new SHA256Managed(); #if !KeePassLibSD @@ -297,6 +315,8 @@ namespace ModernKeePassLib.Serialization Array.Copy(m_pbBuffer, 0, pbData, 0, m_nBufferPos); pbHash = sha256.ComputeHash(pbData); } +#endif + #endif m_bwOutput.Write(pbHash); @@ -315,7 +335,6 @@ namespace ModernKeePassLib.Serialization m_bwOutput.Write(m_pbBuffer, 0, m_nBufferPos); m_nBufferPos = 0; -#endif } } } diff --git a/ModernKeePassLib/Serialization/IOConnection.cs b/ModernKeePassLib/Serialization/IOConnection.cs index 4cd477e..4495320 100644 --- a/ModernKeePassLib/Serialization/IOConnection.cs +++ b/ModernKeePassLib/Serialization/IOConnection.cs @@ -1,12 +1,13 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the @@ -18,27 +19,32 @@ */ using System; -using System.Net; -using System.Net.Http; -using System.Threading.Tasks; +using System.Collections.Generic; +using System.Text; using System.IO; +using System.Net; +using System.Reflection; +using System.Diagnostics; -using Windows.Storage.Streams; -using Windows.Storage; -// BERT TODO: For the time being, the web functionality is not available for WinRT - - -#if !KeePassLibSD && TODO +#if (!PCL && !KeePassLibSD && !KeePassRT) using System.Net.Cache; using System.Net.Security; #endif +#if !PCL && !KeePassRT +using System.Security.Cryptography.X509Certificates; +#endif + +#if PCL +using Windows.Storage; +#endif + using ModernKeePassLib.Utility; namespace ModernKeePassLib.Serialization { -#if !KeePassLibSD && false - public sealed class IOWebClient : HttpClient +#if (!PCL && !KeePassLibSD && !KeePassRT) + internal sealed class IOWebClient : WebClient { protected override WebRequest GetWebRequest(Uri address) { @@ -49,14 +55,192 @@ namespace ModernKeePassLib.Serialization } #endif - public class IOConnection +#if !PCL + internal abstract class WrapperStream : Stream { -#if !KeePassLibSD && TODO + private readonly Stream m_s; + protected Stream BaseStream + { + get { return m_s; } + } + + public override bool CanRead + { + get { return m_s.CanRead; } + } + + public override bool CanSeek + { + get { return m_s.CanSeek; } + } + + public override bool CanTimeout + { + get { return m_s.CanTimeout; } + } + + public override bool CanWrite + { + get { return m_s.CanWrite; } + } + + public override long Length + { + get { return m_s.Length; } + } + + public override long Position + { + get { return m_s.Position; } + set { m_s.Position = value; } + } + + public override int ReadTimeout + { + get { return m_s.ReadTimeout; } + set { m_s.ReadTimeout = value; } + } + + public override int WriteTimeout + { + get { return m_s.WriteTimeout; } + set { m_s.WriteTimeout = value; } + } + + public WrapperStream(Stream sBase) : base() + { + if(sBase == null) throw new ArgumentNullException("sBase"); + + m_s = sBase; + } + + public override IAsyncResult BeginRead(byte[] buffer, int offset, + int count, AsyncCallback callback, object state) + { + return m_s.BeginRead(buffer, offset, count, callback, state); + } + + public override IAsyncResult BeginWrite(byte[] buffer, int offset, + int count, AsyncCallback callback, object state) + { + return BeginWrite(buffer, offset, count, callback, state); + } + + public override void Close() + { + m_s.Close(); + } + + public override int EndRead(IAsyncResult asyncResult) + { + return m_s.EndRead(asyncResult); + } + + public override void EndWrite(IAsyncResult asyncResult) + { + m_s.EndWrite(asyncResult); + } + + public override void Flush() + { + m_s.Flush(); + } + + public override int Read(byte[] buffer, int offset, int count) + { + return m_s.Read(buffer, offset, count); + } + + public override int ReadByte() + { + return m_s.ReadByte(); + } + + public override long Seek(long offset, SeekOrigin origin) + { + return m_s.Seek(offset, origin); + } + + public override void SetLength(long value) + { + m_s.SetLength(value); + } + + public override void Write(byte[] buffer, int offset, int count) + { + m_s.Write(buffer, offset, count); + } + + public override void WriteByte(byte value) + { + m_s.WriteByte(value); + } + } + + internal sealed class IocStream : WrapperStream + { + private readonly bool m_bWrite; // Initially opened for writing + + public IocStream(Stream sBase) : base(sBase) + { + m_bWrite = sBase.CanWrite; + } + + public override void Close() + { + base.Close(); + + if(MonoWorkarounds.IsRequired(10163) && m_bWrite) + { + try + { + Stream s = this.BaseStream; + Type t = s.GetType(); + if(t.Name == "WebConnectionStream") + { + PropertyInfo pi = t.GetProperty("Request", + BindingFlags.Instance | BindingFlags.NonPublic); + if(pi != null) + { + WebRequest wr = (pi.GetValue(s, null) as WebRequest); + if(wr != null) + IOConnection.DisposeResponse(wr.GetResponse(), false); + else { Debug.Assert(false); } + } + else { Debug.Assert(false); } + } + } + catch(Exception) { Debug.Assert(false); } + } + } + + public static Stream WrapIfRequired(Stream s) + { + if(s == null) { Debug.Assert(false); return null; } + + if(MonoWorkarounds.IsRequired(10163) && s.CanWrite) + return new IocStream(s); + + return s; + } + } +#endif + + public static class IOConnection + { +#if (!PCL && !KeePassLibSD && !KeePassRT) private static ProxyServerType m_pstProxyType = ProxyServerType.System; private static string m_strProxyAddr = string.Empty; private static string m_strProxyPort = string.Empty; private static string m_strProxyUserName = string.Empty; private static string m_strProxyPassword = string.Empty; + + private static bool m_bSslCertsAcceptInvalid = false; + internal static bool SslCertsAcceptInvalid + { + // get { return m_bSslCertsAcceptInvalid; } + set { m_bSslCertsAcceptInvalid = value; } + } #endif // Web request methods @@ -66,16 +250,18 @@ namespace ModernKeePassLib.Serialization // Web request headers public const string WrhMoveFileTo = "MoveFileTo"; -#if !KeePassLibSD && TODO + public static event EventHandler IOAccessPre; + +#if (!PCL && !KeePassLibSD && !KeePassRT) // Allow self-signed certificates, expired certificates, etc. - private static bool ValidateServerCertificate(object sender, + private static bool AcceptCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; } - public static void SetProxy(ProxyServerType pst, string strAddr, + internal static void SetProxy(ProxyServerType pst, string strAddr, string strPort, string strUserName, string strPassword) { m_pstProxyType = pst; @@ -185,12 +371,27 @@ namespace ModernKeePassLib.Serialization private static void PrepareWebAccess() { - ServicePointManager.ServerCertificateValidationCallback = - ValidateServerCertificate; + if(m_bSslCertsAcceptInvalid) + ServicePointManager.ServerCertificateValidationCallback = + IOConnection.AcceptCertificate; + else + ServicePointManager.ServerCertificateValidationCallback = null; } + private static IOWebClient CreateWebClient(IOConnectionInfo ioc) + { + PrepareWebAccess(); + IOWebClient wc = new IOWebClient(); + ConfigureWebClient(wc); + if((ioc.UserName.Length > 0) || (ioc.Password.Length > 0)) + wc.Credentials = new NetworkCredential(ioc.UserName, ioc.Password); + else if(NativeLib.IsUnix()) // Mono requires credentials + wc.Credentials = new NetworkCredential("anonymous", string.Empty); + + return wc; + } private static WebRequest CreateWebRequest(IOConnectionInfo ioc) { @@ -206,122 +407,124 @@ namespace ModernKeePassLib.Serialization return req; } -#endif - private async Task OpenReadHttp(IOConnectionInfo ioc) - { - - // TODO: Configure the httpClient - // PrepareWebAccess(); - // ConfigureWebClient(wc); - - HttpClient hc = new HttpClient(); - HttpResponseMessage response = await hc.GetAsync(ioc.Path); - response.EnsureSuccessStatusCode(); - - // Read content into buffer - // Not the most efficient thing to do, - // but simplifies our life by allowing to use stream.length later on. - await response.Content.LoadIntoBufferAsync(); - return await response.Content.ReadAsStreamAsync(); -#if false - if((ioc.UserName.Length > 0) || (ioc.Password.Length > 0)) - wc.Credentials = new NetworkCredential(ioc.UserName, ioc.Password); - else if(NativeLib.IsUnix()) // Mono requires credentials - wc.Credentials = new NetworkCredential("anonymous", string.Empty); -#endif - } - - - public async Task OpenRead(IOConnectionInfo ioc) + public static Stream OpenRead(IOConnectionInfo ioc) { + RaiseIOAccessPreEvent(ioc, IOAccessType.Read); + if(StrUtil.IsDataUri(ioc.Path)) { byte[] pbData = StrUtil.DataUriToData(ioc.Path); if(pbData != null) return new MemoryStream(pbData, false); } - if(ioc.IsLocalFile()) return await OpenReadLocal(ioc); + if(ioc.IsLocalFile()) return OpenReadLocal(ioc); - - return await OpenReadHttp(ioc); - } - - - private async Task OpenReadLocal(IOConnectionInfo ioc) + return IocStream.WrapIfRequired(CreateWebClient(ioc).OpenRead( + new Uri(ioc.Path))); + } +#else + public static Stream OpenRead(IOConnectionInfo ioc) { - try - { - IRandomAccessStream stream = await ioc.StorageFile.OpenAsync(FileAccessMode.Read); - return stream.AsStream(); - } - catch (Exception ex) - { - Debug.Assert(false, ex.Message); - return null; - } + RaiseIOAccessPreEvent(ioc, IOAccessType.Read); + + return OpenReadLocal(ioc); + } +#endif + + private static Stream OpenReadLocal(IOConnectionInfo ioc) + { +#if PCL + /*var file = FileSystem.Current.GetFileFromPathAsync(ioc.Path).Result; + return file.OpenAsync(PCLStorage.FileAccess.Read).Result;*/ + return ioc.StorageFile.OpenAsync(FileAccessMode.Read).GetResults().AsStream(); +#else + return new FileStream(ioc.Path, FileMode.Open, FileAccess.Read, + FileShare.Read); +#endif } -#if !KeePassLibSD && TODO +#if (!PCL && !KeePassLibSD && !KeePassRT) public static Stream OpenWrite(IOConnectionInfo ioc) { if(ioc == null) { Debug.Assert(false); return null; } + RaiseIOAccessPreEvent(ioc, IOAccessType.Write); + if(ioc.IsLocalFile()) return OpenWriteLocal(ioc); Uri uri = new Uri(ioc.Path); + Stream s; // Mono does not set HttpWebRequest.Method to POST for writes, // so one needs to set the method to PUT explicitly if(NativeLib.IsUnix() && (uri.Scheme.Equals(Uri.UriSchemeHttp, StrUtil.CaseIgnoreCmp) || uri.Scheme.Equals(Uri.UriSchemeHttps, StrUtil.CaseIgnoreCmp))) - return CreateWebClient(ioc).OpenWrite(uri, WebRequestMethods.Http.Put); + s = CreateWebClient(ioc).OpenWrite(uri, WebRequestMethods.Http.Put); + else s = CreateWebClient(ioc).OpenWrite(uri); - return CreateWebClient(ioc).OpenWrite(uri); + return IocStream.WrapIfRequired(s); } #else - public static async Task OpenWrite(IOConnectionInfo ioc) + public static Stream OpenWrite(IOConnectionInfo ioc) { - return await OpenWriteLocal(ioc); + RaiseIOAccessPreEvent(ioc, IOAccessType.Write); + + return OpenWriteLocal(ioc); } #endif - private static async Task OpenWriteLocal(IOConnectionInfo ioc) + private static Stream OpenWriteLocal(IOConnectionInfo ioc) { - try - { - IRandomAccessStream stream = await ioc.StorageFile.OpenAsync(FileAccessMode.ReadWrite); - return stream.AsStream(); - } - catch (Exception ex) - { - Debug.Assert(false, ex.Message); - return null; - } - } +#if PCL + return ioc.StorageFile.OpenAsync(FileAccessMode.ReadWrite).GetResults().AsStream(); + /*var file = FileSystem.Current.GetFileFromPathAsync(ioc.Path).Result; + return file.OpenAsync(FileAccess.ReadAndWrite).Result;*/ +#else + return new FileStream(ioc.Path, FileMode.Create, FileAccess.Write, + FileShare.None); +#endif + } public static bool FileExists(IOConnectionInfo ioc) { - //return FileExists(ioc, false); - return true; + return FileExists(ioc, false); } - /*public static bool FileExists(IOConnectionInfo ioc, bool bThrowErrors) - { + public static bool FileExists(IOConnectionInfo ioc, bool bThrowErrors) + { if(ioc == null) { Debug.Assert(false); return false; } - if(ioc.IsLocalFile()) return ioc.StorageFile.IsAvailable; + RaiseIOAccessPreEvent(ioc, IOAccessType.Exists); + +#if PCL + if(ioc.IsLocalFile()) + return ioc.StorageFile.IsAvailable; +#else + if(ioc.IsLocalFile()) return File.Exists(ioc.Path); +#endif + +#if (!PCL && !KeePassLibSD && !KeePassRT) + if(ioc.Path.StartsWith("ftp://", StrUtil.CaseIgnoreCmp)) + { + bool b = SendCommand(ioc, WebRequestMethods.Ftp.GetDateTimestamp); + if(!b && bThrowErrors) throw new InvalidOperationException(); + return b; + } +#endif try { Stream s = OpenRead(ioc); if(s == null) throw new FileNotFoundException(); - // For FTP clients we called RETR to get the file, but we never - // followed-up and downloaded the file; close may produce a - // 550 error -- that's okay - try { s.Close(); } + try { s.ReadByte(); } + catch(Exception) { } + + // We didn't download the file completely; close may throw + // an exception -- that's okay + try { s.Dispose(); } catch(Exception) { } } catch(Exception) @@ -331,19 +534,29 @@ namespace ModernKeePassLib.Serialization } return true; - }*/ + } - public static async void DeleteFile(IOConnectionInfo ioc) + public static void DeleteFile(IOConnectionInfo ioc) { - if(ioc.IsLocalFile()) { await ioc.StorageFile.DeleteAsync(StorageDeleteOption.Default); - } + RaiseIOAccessPreEvent(ioc, IOAccessType.Delete); -#if !KeePassLibSD && TODO +#if PCL + if(ioc.IsLocalFile()) { + /*var file = FileSystem.Current.GetFileFromPathAsync(ioc.Path).Result; + file.DeleteAsync().RunSynchronously();*/ + ioc.StorageFile.DeleteAsync(StorageDeleteOption.Default).GetResults(); + } +#else + if(ioc.IsLocalFile()) { File.Delete(ioc.Path); return; } +#endif + +#if (!PCL && !KeePassLibSD && !KeePassRT) WebRequest req = CreateWebRequest(ioc); if(req != null) { if(req is HttpWebRequest) req.Method = "DELETE"; - else if(req is FtpWebRequest) req.Method = WebRequestMethods.Ftp.DeleteFile; + else if(req is FtpWebRequest) + req.Method = WebRequestMethods.Ftp.DeleteFile; else if(req is FileWebRequest) { File.Delete(UrlUtil.FileUrlToPath(ioc.Path)); @@ -365,11 +578,22 @@ namespace ModernKeePassLib.Serialization /// /// Source file path. /// Target file path. - public static async void RenameFile(IOConnectionInfo iocFrom, IOConnectionInfo iocTo) + public static void RenameFile(IOConnectionInfo iocFrom, IOConnectionInfo iocTo) { - if(iocFrom.IsLocalFile()) { await iocTo.StorageFile.RenameAsync(iocTo.Path, NameCollisionOption.GenerateUniqueName); } + RaiseIOAccessPreEvent(iocFrom, iocTo, IOAccessType.Move); -#if !KeePassLibSD && TODO +#if PCL + if(iocFrom.IsLocalFile()) { + /*var file = FileSystem.Current.GetFileFromPathAsync(iocFrom.Path).Result; + file.MoveAsync(iocTo.Path).RunSynchronously();*/ + iocFrom.StorageFile.RenameAsync(iocTo.Path).GetResults(); + return; + } +#else + if(iocFrom.IsLocalFile()) { File.Move(iocFrom.Path, iocTo.Path); return; } +#endif + +#if (!PCL && !KeePassLibSD && !KeePassRT) WebRequest req = CreateWebRequest(iocFrom); if(req != null) { @@ -381,7 +605,13 @@ namespace ModernKeePassLib.Serialization else if(req is FtpWebRequest) { req.Method = WebRequestMethods.Ftp.Rename; - ((FtpWebRequest)req).RenameTo = UrlUtil.GetFileName(iocTo.Path); + string strTo = UrlUtil.GetFileName(iocTo.Path); + + // We're affected by .NET bug 621450: + // https://connect.microsoft.com/VisualStudio/feedback/details/621450/problem-renaming-file-on-ftp-server-using-ftpwebrequest-in-net-framework-4-0-vs2010-only + // Prepending "./", "%2E/" or "Dummy/../" doesn't work. + + ((FtpWebRequest)req).RenameTo = strTo; } else if(req is FileWebRequest) { @@ -412,11 +642,23 @@ namespace ModernKeePassLib.Serialization // DeleteFile(iocFrom); } - private static void DisposeResponse(WebResponse wr, bool bGetStream) +#if (!PCL && !KeePassLibSD && !KeePassRT) + private static bool SendCommand(IOConnectionInfo ioc, string strMethod) + { + try + { + WebRequest req = CreateWebRequest(ioc); + req.Method = strMethod; + DisposeResponse(req.GetResponse(), true); + } + catch(Exception) { return false; } + + return true; + } +#endif + + internal static void DisposeResponse(WebResponse wr, bool bGetStream) { - Debug.Assert(false, "Not implemented yet"); - return; -#if TODO if(wr == null) return; try @@ -424,12 +666,12 @@ namespace ModernKeePassLib.Serialization if(bGetStream) { Stream s = wr.GetResponseStream(); - if(s != null) s.Close(); + if(s != null) s.Dispose(); } } catch(Exception) { Debug.Assert(false); } - try { wr.Close(); } + try { wr.Dispose(); } catch(Exception) { Debug.Assert(false); } } @@ -450,12 +692,30 @@ namespace ModernKeePassLib.Serialization catch(Exception) { } finally { - if(sIn != null) sIn.Close(); - if(ms != null) ms.Close(); + if(sIn != null) sIn.Dispose(); + if(ms != null) ms.Dispose(); } return null; -#endif - } + } + + private static void RaiseIOAccessPreEvent(IOConnectionInfo ioc, IOAccessType t) + { + RaiseIOAccessPreEvent(ioc, null, t); + } + + private static void RaiseIOAccessPreEvent(IOConnectionInfo ioc, + IOConnectionInfo ioc2, IOAccessType t) + { + if(ioc == null) { Debug.Assert(false); return; } + // ioc2 may be null + + if(IOConnection.IOAccessPre != null) + { + IOConnectionInfo ioc2Lcl = ((ioc2 != null) ? ioc2.CloneDeep() : null); + IOAccessEventArgs e = new IOAccessEventArgs(ioc.CloneDeep(), ioc2Lcl, t); + IOConnection.IOAccessPre(null, e); + } + } } } diff --git a/ModernKeePassLib/Serialization/IOConnectionInfo.cs b/ModernKeePassLib/Serialization/IOConnectionInfo.cs index 4538ac4..428a200 100644 --- a/ModernKeePassLib/Serialization/IOConnectionInfo.cs +++ b/ModernKeePassLib/Serialization/IOConnectionInfo.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -23,11 +23,15 @@ using System.Text; using System.IO; using System.Net; using System.ComponentModel; +using System.Xml.Serialization; using System.Diagnostics; +#if PCL +using Windows.Storage; +#endif + using ModernKeePassLib.Interfaces; using ModernKeePassLib.Utility; -using Windows.Storage; namespace ModernKeePassLib.Serialization { @@ -65,7 +69,7 @@ namespace ModernKeePassLib.Serialization { // private IOFileFormatHint m_ioHint = IOFileFormatHint.None; - public StorageFile StorageFile { get; set; } + public StorageFile StorageFile { get; set; } private string m_strUrl = string.Empty; public string Path @@ -122,6 +126,14 @@ namespace ModernKeePassLib.Serialization set { m_ioCredSaveMode = value; } } + private bool m_bComplete = false; + [XmlIgnore] + public bool IsComplete // Credentials etc. fully specified + { + get { return m_bComplete; } + set { m_bComplete = value; } + } + /* public IOFileFormatHint FileFormatHint { get { return m_ioHint; } @@ -133,11 +145,17 @@ namespace ModernKeePassLib.Serialization return (IOConnectionInfo)this.MemberwiseClone(); } +#if DEBUG // For debugger display only + public override string ToString() + { + return GetDisplayName(); + } +#endif + /* /// /// Serialize the current connection info to a string. Credentials - /// are only serialized if the SaveCredentials property - /// is true. + /// are serialized based on the CredSaveMode property. /// /// Input object to be serialized. /// Serialized object as string. @@ -149,31 +167,9 @@ namespace ModernKeePassLib.Serialization string strUrl = iocToCompile.Path; string strUser = TransformUnreadable(iocToCompile.UserName, true); string strPassword = TransformUnreadable(iocToCompile.Password, true); - string strAll = strUrl + strUser + strPassword; - char chSep = char.MinValue; - - char[] vPrefSeps = new char[]{ '@', '#', '!', '$', '*' }; - foreach(char ch in vPrefSeps) - { - if(strAll.IndexOf(ch) < 0) - { - chSep = ch; - break; - } - } - - if(chSep == char.MinValue) - { - for(char chEnum = '!'; chEnum < char.MaxValue; ++chEnum) - { - if(strAll.IndexOf(chEnum) < 0) - { - chSep = chEnum; - break; - } - } - } + string strAll = strUrl + strUser + strPassword + "CUN"; + char chSep = StrUtil.GetUnusedChar(strAll); if(chSep == char.MinValue) throw new FormatException(); StringBuilder sb = new StringBuilder(); @@ -279,7 +275,7 @@ namespace ModernKeePassLib.Serialization string str = m_strUrl; if(m_strUser.Length > 0) - str += @": " + m_strUser; + str += " (" + m_strUser + ")"; return str; } @@ -299,30 +295,33 @@ namespace ModernKeePassLib.Serialization return ioc; } - public static IOConnectionInfo FromFile(StorageFile file) - { - IOConnectionInfo ioc = new IOConnectionInfo(); + public static IOConnectionInfo FromFile(StorageFile file) + { + IOConnectionInfo ioc = new IOConnectionInfo(); - ioc.Path = file.Path; - ioc.CredSaveMode = IOCredSaveMode.NoSave; - ioc.StorageFile = file; + ioc.Path = file.Path; + ioc.CredSaveMode = IOCredSaveMode.NoSave; + ioc.StorageFile = file; - return ioc; - } + return ioc; + } - public bool CanProbablyAccess() + + public bool CanProbablyAccess() { - Debug.Assert(false, "not yet implemented"); - return false; -#if TODO +#if PCL + if(IsLocalFile()) + return (StorageFile.IsAvailable); +#else if(IsLocalFile()) return File.Exists(m_strUrl); +#endif return true; -#endif } public bool IsLocalFile() { + // Not just ":/", see e.g. AppConfigEx.ChangePathRelAbs return (m_strUrl.IndexOf(@"://") < 0); } @@ -355,15 +354,5 @@ namespace ModernKeePassLib.Serialization m_ioCredProtMode = IOCredProtMode.None; } } - - public override bool Equals(object obj) - { - if (!(obj is IOConnectionInfo)) return false; - IOConnectionInfo ioc = obj as IOConnectionInfo; - if (ioc.Path != this.Path) return false; - if (ioc.UserName != this.UserName) return false; - if (ioc.Password != this.Password) return false; - return true; - } } } diff --git a/ModernKeePassLib/Serialization/Kdb4File.Read.Streamed.cs b/ModernKeePassLib/Serialization/KdbxFile.Read.Streamed.cs similarity index 92% rename from ModernKeePassLib/Serialization/Kdb4File.Read.Streamed.cs rename to ModernKeePassLib/Serialization/KdbxFile.Read.Streamed.cs index 30d85a2..5140b98 100644 --- a/ModernKeePassLib/Serialization/Kdb4File.Read.Streamed.cs +++ b/ModernKeePassLib/Serialization/KdbxFile.Read.Streamed.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,17 +19,27 @@ using System; using System.Collections.Generic; -//using System.Drawing; +using System.Text; +using System.Security; using System.Xml; using System.IO; +using System.Diagnostics; + +using ModernKeePassLib; using ModernKeePassLib.Collections; +using ModernKeePassLib.Cryptography; +using ModernKeePassLib.Cryptography.Cipher; using ModernKeePassLib.Interfaces; +using ModernKeePassLib.Resources; using ModernKeePassLib.Security; using ModernKeePassLib.Utility; namespace ModernKeePassLib.Serialization { - public sealed partial class Kdb4File + /// + /// Serialization to KeePass KDBX files. + /// + public sealed partial class KdbxFile { private enum KdbContext { @@ -88,13 +98,17 @@ namespace ModernKeePassLib.Serialization xrs.IgnoreProcessingInstructions = true; xrs.IgnoreWhitespace = true; -#if !KeePassLibSD && TODO +#if !PCL + // these are default values, so no need to set them +#if !KeePassRT +#if !KeePassLibSD xrs.ProhibitDtd = true; #endif - -#if TODO xrs.ValidationType = ValidationType.None; #endif + +#endif + return xrs; } @@ -199,6 +213,17 @@ namespace ModernKeePassLib.Serialization case KdbContext.Meta: if(xr.Name == ElemGenerator) ReadString(xr); // Ignore + else if(xr.Name == ElemHeaderHash) + { + string strHash = ReadString(xr); + if(!string.IsNullOrEmpty(strHash) && (m_pbHashOfHeader != null) && + !m_bRepairMode) + { + byte[] pbHash = Convert.FromBase64String(strHash); + if(!MemUtil.ArraysEqual(pbHash, m_pbHashOfHeader)) + throw new IOException(KLRes.FileCorrupted); + } + } else if(xr.Name == ElemDbName) m_pwDatabase.Name = ReadString(xr); else if(xr.Name == ElemDbNameChanged) @@ -216,10 +241,8 @@ namespace ModernKeePassLib.Serialization else if(xr.Name == ElemDbColor) { string strColor = ReadString(xr); -#if TODO - if(!string.IsNullOrEmpty(strColor)) - m_pwDatabase.Color = ColorTranslator.FromHtml(strColor); -#endif + /*if(!string.IsNullOrEmpty(strColor)) + m_pwDatabase.Color = ColorTranslator.FromHtml(strColor);*/ } else if(xr.Name == ElemDbKeyChanged) m_pwDatabase.MasterKeyChanged = ReadTime(xr); @@ -390,19 +413,14 @@ namespace ModernKeePassLib.Serialization else if(xr.Name == ElemFgColor) { string strColor = ReadString(xr); -#if TODO - if(!string.IsNullOrEmpty(strColor)) - m_ctxEntry.ForegroundColor = ColorTranslator.FromHtml(strColor); -#endif + /*if(!string.IsNullOrEmpty(strColor)) + m_ctxEntry.ForegroundColor = ColorTranslator.FromHtml(strColor);*/ } else if(xr.Name == ElemBgColor) { - string strColor = ReadString(xr); -#if TODO - if(!string.IsNullOrEmpty(strColor)) - m_ctxEntry.BackgroundColor = ColorTranslator.FromHtml(strColor); -#endif + /*if(!string.IsNullOrEmpty(strColor)) + m_ctxEntry.BackgroundColor = ColorTranslator.FromHtml(strColor);*/ } else if(xr.Name == ElemOverrideUrl) m_ctxEntry.OverrideUrl = ReadString(xr); @@ -436,10 +454,10 @@ namespace ModernKeePassLib.Serialization (ITimeLogger)m_ctxGroup : (ITimeLogger)m_ctxEntry); Debug.Assert(tl != null); - if(xr.Name == ElemLastModTime) - tl.LastModificationTime = ReadTime(xr); - else if(xr.Name == ElemCreationTime) + if(xr.Name == ElemCreationTime) tl.CreationTime = ReadTime(xr); + else if(xr.Name == ElemLastModTime) + tl.LastModificationTime = ReadTime(xr); else if(xr.Name == ElemLastAccessTime) tl.LastAccessTime = ReadTime(xr); else if(xr.Name == ElemExpiryTime) @@ -545,7 +563,8 @@ namespace ModernKeePassLib.Serialization return KdbContext.Meta; else if((ctx == KdbContext.CustomIcon) && (xr.Name == ElemCustomIconItem)) { - if((m_uuidCustomIconID != PwUuid.Zero) && (m_pbCustomIconData != null)) + if(!m_uuidCustomIconID.Equals(PwUuid.Zero) && + (m_pbCustomIconData != null)) m_pwDatabase.CustomIcons.Add(new PwCustomIcon( m_uuidCustomIconID, m_pbCustomIconData)); else { Debug.Assert(false); } @@ -572,7 +591,7 @@ namespace ModernKeePassLib.Serialization } else if((ctx == KdbContext.Group) && (xr.Name == ElemGroup)) { - if(PwUuid.Zero.EqualsValue(m_ctxGroup.Uuid)) + if(PwUuid.Zero.Equals(m_ctxGroup.Uuid)) m_ctxGroup.Uuid = new PwUuid(true); // No assert (import) m_ctxGroups.Pop(); @@ -593,7 +612,7 @@ namespace ModernKeePassLib.Serialization else if((ctx == KdbContext.Entry) && (xr.Name == ElemEntry)) { // Create new UUID if absent - if(PwUuid.Zero.EqualsValue(m_ctxEntry.Uuid)) + if(PwUuid.Zero.Equals(m_ctxEntry.Uuid)) m_ctxEntry.Uuid = new PwUuid(true); // No assert (import) if(m_bEntryInHistory) @@ -670,13 +689,21 @@ namespace ModernKeePassLib.Serialization } m_bReadNextNode = false; // ReadElementString skips end tag +#if PCL return xr.ReadElementContentAsString(); +#else + return xr.ReadElementString(); +#endif } private string ReadStringRaw(XmlReader xr) { m_bReadNextNode = false; // ReadElementString skips end tag - return xr.ReadElementContentAsString(); +#if PCL + return xr.ReadElementContentAsString(); +#else + return xr.ReadElementString(); +#endif } private bool ReadBool(XmlReader xr, bool bDefault) @@ -701,6 +728,9 @@ namespace ModernKeePassLib.Serialization string str = ReadString(xr); int n; + if(StrUtil.TryParseIntInvariant(str, out n)) return n; + + // Backward compatibility if(StrUtil.TryParseInt(str, out n)) return n; Debug.Assert(false); @@ -712,6 +742,9 @@ namespace ModernKeePassLib.Serialization string str = ReadString(xr); uint u; + if(StrUtil.TryParseUIntInvariant(str, out u)) return u; + + // Backward compatibility if(StrUtil.TryParseUInt(str, out u)) return u; Debug.Assert(false); @@ -723,6 +756,9 @@ namespace ModernKeePassLib.Serialization string str = ReadString(xr); long l; + if(StrUtil.TryParseLongInvariant(str, out l)) return l; + + // Backward compatibility if(StrUtil.TryParseLong(str, out l)) return l; Debug.Assert(false); @@ -734,6 +770,9 @@ namespace ModernKeePassLib.Serialization string str = ReadString(xr); ulong u; + if(StrUtil.TryParseULongInvariant(str, out u)) return u; + + // Backward compatibility if(StrUtil.TryParseULong(str, out u)) return u; Debug.Assert(false); @@ -757,7 +796,7 @@ namespace ModernKeePassLib.Serialization if(xb != null) return new ProtectedString(true, xb); bool bProtect = false; - if(m_format == Kdb4Format.PlainXml) + if(m_format == KdbxFormat.PlainXml) { if(xr.MoveToAttribute(AttrProtectedInMemPlainXml)) { diff --git a/ModernKeePassLib/Serialization/Kdb4File.Read.cs b/ModernKeePassLib/Serialization/KdbxFile.Read.cs similarity index 63% rename from ModernKeePassLib/Serialization/Kdb4File.Read.cs rename to ModernKeePassLib/Serialization/KdbxFile.Read.cs index 939f2e0..236452d 100644 --- a/ModernKeePassLib/Serialization/Kdb4File.Read.cs +++ b/ModernKeePassLib/Serialization/KdbxFile.Read.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -21,12 +21,20 @@ using System; using System.Collections.Generic; using System.Text; using System.IO; +using System.Diagnostics; +using System.Runtime.InteropServices.WindowsRuntime; using System.Security; - +#if PCL +using Windows.Security.Cryptography; +#else +using System.Security.Cryptography; +#endif +using System.Xml; +using Windows.Security.Cryptography.Core; #if !KeePassLibSD using System.IO.Compression; #else -using ModernKeePassLibSD; +using KeePassLibSD; #endif using ModernKeePassLib.Cryptography; @@ -35,41 +43,35 @@ using ModernKeePassLib.Interfaces; using ModernKeePassLib.Keys; using ModernKeePassLib.Resources; using ModernKeePassLib.Utility; -using System.Threading.Tasks; namespace ModernKeePassLib.Serialization { - /// - /// Serialization to KeePass KDBX files. - /// - public sealed partial class Kdb4File + /// + /// Serialization to KeePass KDBX files. + /// + public sealed partial class KdbxFile { - private IOConnection m_connection; - /// /// Load a KDB file from a file. /// /// File to load. /// Format specifier. /// Status logger (optional). - public async Task Load(string strFilePath, Kdb4Format kdbFormat, IStatusLogger slLogger) + public void Load(string strFilePath, KdbxFormat kdbFormat, IStatusLogger slLogger) { - IOConnectionInfo ioc = IOConnectionInfo.FromPath(strFilePath); - IOConnection ioConnection = new IOConnection(); - Stream abc = await ioConnection.OpenRead(ioc); - Load(abc, kdbFormat, slLogger); + IOConnectionInfo ioc = IOConnectionInfo.FromPath(strFilePath); + Load(IOConnection.OpenRead(ioc), kdbFormat, slLogger); } /// /// Load a KDB file from a stream. /// /// Stream to read the data from. Must contain - /// a KDB4 stream. + /// a KDBX stream. /// Format specifier. /// Status logger (optional). - public void Load(Stream sSource, Kdb4Format kdbFormat, IStatusLogger slLogger) + public void Load(Stream sSource, KdbxFormat kdbFormat, IStatusLogger slLogger) { - Debug.Assert(sSource != null); if(sSource == null) throw new ArgumentNullException("sSource"); @@ -85,7 +87,7 @@ namespace ModernKeePassLib.Serialization BinaryReaderEx brDecrypted = null; Stream readerStream = null; - if(kdbFormat == Kdb4Format.Default) + if(kdbFormat == KdbxFormat.Default) { br = new BinaryReaderEx(hashedStream, encNoBom, KLRes.FileCorrupted); ReadHeader(br); @@ -113,11 +115,11 @@ namespace ModernKeePassLib.Serialization readerStream = new GZipStream(sHashed, CompressionMode.Decompress); else readerStream = sHashed; } - else if(kdbFormat == Kdb4Format.PlainXml) + else if(kdbFormat == KdbxFormat.PlainXml) readerStream = hashedStream; else { Debug.Assert(false); throw new FormatException("KdbFormat"); } - if(kdbFormat != Kdb4Format.PlainXml) // Is an encrypted format + if(kdbFormat != KdbxFormat.PlainXml) // Is an encrypted format { if(m_pbProtectedStreamKey == null) { @@ -130,53 +132,64 @@ namespace ModernKeePassLib.Serialization } else m_randomStream = null; // No random stream for plain-text files +#if KeePassDebug_WriteXml + // FileStream fsOut = new FileStream("Raw.xml", FileMode.Create, + // FileAccess.Write, FileShare.None); + // try + // { + // while(true) + // { + // int b = readerStream.ReadByte(); + // if(b == -1) break; + // fsOut.WriteByte((byte)b); + // } + // } + // catch(Exception) { } + // fsOut.Close(); +#endif + ReadXmlStreamed(readerStream, hashedStream); // ReadXmlDom(readerStream); -#if !KeePassWinRT - readerStream.Close(); -#endif - GC.KeepAlive(brDecrypted); - GC.KeepAlive(br); + readerStream.Dispose(); + // GC.KeepAlive(br); + // GC.KeepAlive(brDecrypted); } -#if !KeePassWinRT +#if !PCL catch(CryptographicException) // Thrown on invalid padding { throw new CryptographicException(KLRes.FileCorrupted); } #endif finally { CommonCleanUpRead(sSource, hashedStream); } - } private void CommonCleanUpRead(Stream sSource, HashingStreamEx hashedStream) - { - m_pbHashOfFileOnDisk = hashedStream.Hash; - // Reset memory protection settings (to always use reasonable - // defaults) - m_pwDatabase.MemoryProtection = new MemoryProtectionConfig(); + { + hashedStream.Dispose(); + m_pbHashOfFileOnDisk = hashedStream.Hash; - return; + sSource.Dispose(); -#if !KeePassWinRT - // Remove old backups (this call is required here in order to apply - // the default history maintenance settings for people upgrading from - // KeePass <= 2.14 to >= 2.15; also it ensures history integrity in - // case a different application has created the KDBX file and ignored - // the history maintenance settings) - m_pwDatabase.MaintainBackups(); // Don't mark database as modified + // Reset memory protection settings (to always use reasonable + // defaults) + m_pwDatabase.MemoryProtection = new MemoryProtectionConfig(); + // Remove old backups (this call is required here in order to apply + // the default history maintenance settings for people upgrading from + // KeePass <= 2.14 to >= 2.15; also it ensures history integrity in + // case a different application has created the KDBX file and ignored + // the history maintenance settings) + m_pwDatabase.MaintainBackups(); // Don't mark database as modified - // Is it ok to leave the stream open ???? - hashedStream.Close(); - sSource.Close(); -#endif - } + m_pbHashOfHeader = null; + } private void ReadHeader(BinaryReaderEx br) { - Debug.Assert(br != null); - if(br == null) throw new ArgumentNullException("br"); + MemoryStream msHeader = new MemoryStream(); + Debug.Assert(br.CopyDataTo == null); + br.CopyDataTo = msHeader; byte[] pbSig1 = br.ReadBytes(4); uint uSig1 = MemUtil.BytesToUInt32(pbSig1); @@ -194,19 +207,27 @@ namespace ModernKeePassLib.Serialization byte[] pb = br.ReadBytes(4); uint uVersion = MemUtil.BytesToUInt32(pb); - - if ((uVersion & FileVersionCriticalMask) > (FileVersion32 & FileVersionCriticalMask)) -#if TODO + if((uVersion & FileVersionCriticalMask) > (FileVersion32 & FileVersionCriticalMask)) throw new FormatException(KLRes.FileVersionUnsupported + - MessageService.NewParagraph + KLRes.FileNewVerReq); -#else - throw new FormatException(); -#endif + Environment.NewLine + Environment.NewLine + KLRes.FileNewVerReq); + while(true) { if(ReadHeaderField(br) == false) break; } + + br.CopyDataTo = null; + byte[] pbHeader = msHeader.ToArray(); + msHeader.Dispose(); + +#if PCL + var sha256 = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256); + m_pbHashOfHeader = sha256.HashData(pbHeader.AsBuffer()).ToArray(); +#else + SHA256Managed sha256 = new SHA256Managed(); + m_pbHashOfHeader = sha256.ComputeHash(pbHeader); +#endif } private bool ReadHeaderField(BinaryReaderEx brSource) @@ -229,49 +250,49 @@ namespace ModernKeePassLib.Serialization } bool bResult = true; - Kdb4HeaderFieldID kdbID = (Kdb4HeaderFieldID)btFieldID; + KdbxHeaderFieldID kdbID = (KdbxHeaderFieldID)btFieldID; switch(kdbID) { - case Kdb4HeaderFieldID.EndOfHeader: + case KdbxHeaderFieldID.EndOfHeader: bResult = false; // Returning false indicates end of header break; - case Kdb4HeaderFieldID.CipherID: + case KdbxHeaderFieldID.CipherID: SetCipher(pbData); break; - case Kdb4HeaderFieldID.CompressionFlags: + case KdbxHeaderFieldID.CompressionFlags: SetCompressionFlags(pbData); break; - case Kdb4HeaderFieldID.MasterSeed: + case KdbxHeaderFieldID.MasterSeed: m_pbMasterSeed = pbData; CryptoRandom.Instance.AddEntropy(pbData); break; - case Kdb4HeaderFieldID.TransformSeed: + case KdbxHeaderFieldID.TransformSeed: m_pbTransformSeed = pbData; CryptoRandom.Instance.AddEntropy(pbData); break; - case Kdb4HeaderFieldID.TransformRounds: + case KdbxHeaderFieldID.TransformRounds: m_pwDatabase.KeyEncryptionRounds = MemUtil.BytesToUInt64(pbData); break; - case Kdb4HeaderFieldID.EncryptionIV: + case KdbxHeaderFieldID.EncryptionIV: m_pbEncryptionIV = pbData; break; - case Kdb4HeaderFieldID.ProtectedStreamKey: + case KdbxHeaderFieldID.ProtectedStreamKey: m_pbProtectedStreamKey = pbData; CryptoRandom.Instance.AddEntropy(pbData); break; - case Kdb4HeaderFieldID.StreamStartBytes: + case KdbxHeaderFieldID.StreamStartBytes: m_pbStreamStartBytes = pbData; break; - case Kdb4HeaderFieldID.InnerRandomStreamID: + case KdbxHeaderFieldID.InnerRandomStreamID: SetInnerRandomStreamID(pbData); break; @@ -312,46 +333,39 @@ namespace ModernKeePassLib.Serialization m_craInnerRandomStream = (CrsAlgorithm)uID; } - private Stream AttachStreamDecryptor(Stream s) - { - MemoryStream ms = new MemoryStream(); + private Stream AttachStreamDecryptor(Stream s) + { + using (var ms = new MemoryStream()) + { + Debug.Assert(m_pbMasterSeed.Length == 32); + if (m_pbMasterSeed.Length != 32) + throw new FormatException(KLRes.MasterSeedLengthInvalid); + ms.Write(m_pbMasterSeed, 0, 32); - Debug.Assert(m_pbMasterSeed.Length == 32); - if(m_pbMasterSeed.Length != 32) - throw new FormatException(KLRes.MasterSeedLengthInvalid); - ms.Write(m_pbMasterSeed, 0, 32); + byte[] pKey32 = m_pwDatabase.MasterKey.GenerateKey32(m_pbTransformSeed, + m_pwDatabase.KeyEncryptionRounds).ReadData(); + if (pKey32 == null || pKey32.Length != 32) + throw new SecurityException(KLRes.InvalidCompositeKey); + ms.Write(pKey32, 0, 32); - Security.ProtectedBinary pb = m_pwDatabase.MasterKey.GenerateKey32(m_pbTransformSeed, - m_pwDatabase.KeyEncryptionRounds); +#if PCL + var sha256 = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256); + var aesKey = sha256.HashData(ms.GetWindowsRuntimeBuffer()).ToArray(); +#else + SHA256Managed sha256 = new SHA256Managed(); + byte[] aesKey = sha256.ComputeHash(ms.ToArray()); +#endif + Array.Clear(pKey32, 0, 32); - byte[] pKey32 = pb.ReadData(); - if((pKey32 == null) || (pKey32.Length != 32)) - throw new SecurityException(KLRes.InvalidCompositeKey); - ms.Write(pKey32, 0, 32); - - byte[] aesKey = SHA256Managed.Instance.ComputeHash(ms.ToArray()); - - //SHA256Managed sha256 = new SHA256Managed(); - //byte[] aesKey = sha256.ComputeHash(ms.ToArray()); - - //ms.Close(); - Array.Clear(pKey32, 0, 32); - - if((aesKey == null) || (aesKey.Length != 32)) - throw new SecurityException(KLRes.FinalKeyCreationFailed); - - ICipherEngine iEngine = CipherPool.GlobalPool.GetCipher(m_pwDatabase.DataCipherUuid); - if(iEngine == null) throw new SecurityException(KLRes.FileUnknownCipher); - return iEngine.DecryptStream(s, aesKey, m_pbEncryptionIV); - - } - - [Obsolete] - public static List ReadEntries(PwDatabase pwDatabase, Stream msData) - { - return ReadEntries(msData); - } + if (aesKey == null || aesKey.Length != 32) + throw new SecurityException(KLRes.FinalKeyCreationFailed); + ICipherEngine iEngine = CipherPool.GlobalPool.GetCipher(m_pwDatabase.DataCipherUuid); + if (iEngine == null) throw new SecurityException(KLRes.FileUnknownCipher); + return iEngine.DecryptStream(s, aesKey, m_pbEncryptionIV); + } + } + /// /// Read entries from a stream. /// @@ -359,11 +373,8 @@ namespace ModernKeePassLib.Serialization /// Extracted entries. public static List ReadEntries(Stream msData) { - Debug.Assert(false, "not yet implemented"); - return null; -#if TODO - /* Kdb4File f = new Kdb4File(pwDatabase); - f.m_format = Kdb4Format.PlainXml; + /* KdbxFile f = new KdbxFile(pwDatabase); + f.m_format = KdbxFormat.PlainXml; XmlDocument doc = new XmlDocument(); doc.Load(msData); @@ -391,8 +402,8 @@ namespace ModernKeePassLib.Serialization return vEntries; */ PwDatabase pd = new PwDatabase(); - Kdb4File f = new Kdb4File(pd); - f.Load(msData, Kdb4Format.PlainXml, null); + KdbxFile f = new KdbxFile(pd); + f.Load(msData, KdbxFormat.PlainXml, null); List vEntries = new List(); foreach(PwEntry pe in pd.RootGroup.Entries) @@ -402,7 +413,6 @@ namespace ModernKeePassLib.Serialization } return vEntries; -#endif } } } diff --git a/ModernKeePassLib/Serialization/Kdb4File.Write.cs b/ModernKeePassLib/Serialization/KdbxFile.Write.cs similarity index 77% rename from ModernKeePassLib/Serialization/Kdb4File.Write.cs rename to ModernKeePassLib/Serialization/KdbxFile.Write.cs index b93e9ca..174db17 100644 --- a/ModernKeePassLib/Serialization/Kdb4File.Write.cs +++ b/ModernKeePassLib/Serialization/KdbxFile.Write.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,39 +19,43 @@ using System; using System.Collections.Generic; -using System.Globalization; -using System.IO; -using System.IO.Compression; -using System.Security; using System.Text; -using System.Threading.Tasks; +using System.IO; using System.Xml; -//using System.Drawing; -//using System.Drawing.Imaging; - -#if !KeePassLibSD +using System.Security; +#if PCL +using Windows.Security.Cryptography; #else -using ModernKeePassLibSD; +using System.Security.Cryptography; +#endif +using System.Globalization; +using System.Diagnostics; +using System.Runtime.InteropServices.WindowsRuntime; +using Windows.Security.Cryptography.Core; +#if !KeePassLibSD +using System.IO.Compression; +#else +using KeePassLibSD; #endif using ModernKeePassLib.Collections; using ModernKeePassLib.Cryptography; using ModernKeePassLib.Cryptography.Cipher; +using ModernKeePassLib.Delegates; using ModernKeePassLib.Interfaces; using ModernKeePassLib.Keys; using ModernKeePassLib.Resources; using ModernKeePassLib.Security; using ModernKeePassLib.Utility; -using ModernKeePassLib.Delegates; namespace ModernKeePassLib.Serialization { - /// - /// Serialization to KeePass KDB files. - /// - public sealed partial class Kdb4File + /// + /// Serialization to KeePass KDBX files. + /// + public sealed partial class KdbxFile { - // public void Save(string strFile, PwGroup pgDataSource, Kdb4Format format, + // public void Save(string strFile, PwGroup pgDataSource, KdbxFormat format, // IStatusLogger slLogger) // { // bool bMadeUnhidden = UrlUtil.UnhideFile(strFile); @@ -71,7 +75,7 @@ namespace ModernKeePassLib.Serialization /// be written. /// Format of the file to create. /// Logger that recieves status information. - public void Save(Stream sSaveTo, PwGroup pgDataSource, Kdb4Format format, + public void Save(Stream sSaveTo, PwGroup pgDataSource, KdbxFormat format, IStatusLogger slLogger) { Debug.Assert(sSaveTo != null); @@ -85,152 +89,167 @@ namespace ModernKeePassLib.Serialization UTF8Encoding encNoBom = StrUtil.Utf8; CryptoRandom cr = CryptoRandom.Instance; - try - { - m_pbMasterSeed = cr.GetRandomBytes(32); - m_pbTransformSeed = cr.GetRandomBytes(32); - m_pbEncryptionIV = cr.GetRandomBytes(16); + try + { + m_pbMasterSeed = cr.GetRandomBytes(32); + m_pbTransformSeed = cr.GetRandomBytes(32); + m_pbEncryptionIV = cr.GetRandomBytes(16); - m_pbProtectedStreamKey = cr.GetRandomBytes(32); - m_craInnerRandomStream = CrsAlgorithm.Salsa20; - m_randomStream = new CryptoRandomStream(m_craInnerRandomStream, - m_pbProtectedStreamKey); + m_pbProtectedStreamKey = cr.GetRandomBytes(32); + m_craInnerRandomStream = CrsAlgorithm.Salsa20; + m_randomStream = new CryptoRandomStream(m_craInnerRandomStream, + m_pbProtectedStreamKey); - m_pbStreamStartBytes = cr.GetRandomBytes(32); + m_pbStreamStartBytes = cr.GetRandomBytes(32); - Stream writerStream; - BinaryWriter bw = null; - if (m_format == Kdb4Format.Default) - { - bw = new BinaryWriter(hashedStream, encNoBom); - WriteHeader(bw); // Also flushes bw + Stream writerStream; + if(m_format == KdbxFormat.Default) + { + WriteHeader(hashedStream); // Also flushes the stream - Stream sEncrypted = AttachStreamEncryptor(hashedStream); - if ((sEncrypted == null) || (sEncrypted == hashedStream)) - throw new SecurityException(KLRes.CryptoStreamFailed); + Stream sEncrypted = AttachStreamEncryptor(hashedStream); + if((sEncrypted == null) || (sEncrypted == hashedStream)) + throw new SecurityException(KLRes.CryptoStreamFailed); - sEncrypted.Write(m_pbStreamStartBytes, 0, m_pbStreamStartBytes.Length); + sEncrypted.Write(m_pbStreamStartBytes, 0, m_pbStreamStartBytes.Length); - Stream sHashed = new HashedBlockStream(sEncrypted, true); + Stream sHashed = new HashedBlockStream(sEncrypted, true); - if (m_pwDatabase.Compression == PwCompressionAlgorithm.GZip) - writerStream = new GZipStream(sHashed, CompressionMode.Compress); - else - writerStream = sHashed; - } - else if (m_format == Kdb4Format.PlainXml) - writerStream = hashedStream; - else - { - Debug.Assert(false); - throw new FormatException("KdbFormat"); - } + if(m_pwDatabase.Compression == PwCompressionAlgorithm.GZip) + writerStream = new GZipStream(sHashed, CompressionMode.Compress); + else + writerStream = sHashed; + } + else if(m_format == KdbxFormat.PlainXml) + writerStream = hashedStream; + else { Debug.Assert(false); throw new FormatException("KdbFormat"); } - using (m_xmlWriter = XmlWriter.Create(writerStream, new XmlWriterSettings {Encoding = encNoBom})) - { - WriteDocument(pgDataSource); +#if PCL + var settings = new XmlWriterSettings() { + Encoding = encNoBom, + Indent = true, + IndentChars = "\t", + NewLineChars = "\r\n", + }; + m_xmlWriter = XmlWriter.Create(writerStream, settings); +#else + m_xmlWriter = new XmlTextWriter(writerStream, encNoBom); +#endif + WriteDocument(pgDataSource); - m_xmlWriter.Flush(); - writerStream.Dispose(); - } - GC.KeepAlive(bw); - } - catch (Exception ex) - { - - } + m_xmlWriter.Flush(); + m_xmlWriter.Dispose(); + writerStream.Dispose(); + } finally { CommonCleanUpWrite(sSaveTo, hashedStream); } } private void CommonCleanUpWrite(Stream sSaveTo, HashingStreamEx hashedStream) { - //hashedStream.Close(); + hashedStream.Dispose(); m_pbHashOfFileOnDisk = hashedStream.Hash; sSaveTo.Dispose(); m_xmlWriter = null; + m_pbHashOfHeader = null; } - private void WriteHeader(BinaryWriter bw) + private void WriteHeader(Stream s) { - Debug.Assert(bw != null); - if(bw == null) throw new ArgumentNullException("bw"); + MemoryStream ms = new MemoryStream(); - bw.Write(MemUtil.UInt32ToBytes(FileSignature1)); - bw.Write(MemUtil.UInt32ToBytes(FileSignature2)); - bw.Write(MemUtil.UInt32ToBytes(FileVersion32)); + MemUtil.Write(ms, MemUtil.UInt32ToBytes(FileSignature1)); + MemUtil.Write(ms, MemUtil.UInt32ToBytes(FileSignature2)); + MemUtil.Write(ms, MemUtil.UInt32ToBytes(FileVersion32)); - WriteHeaderField(bw, Kdb4HeaderFieldID.CipherID, + WriteHeaderField(ms, KdbxHeaderFieldID.CipherID, m_pwDatabase.DataCipherUuid.UuidBytes); int nCprID = (int)m_pwDatabase.Compression; - WriteHeaderField(bw, Kdb4HeaderFieldID.CompressionFlags, + WriteHeaderField(ms, KdbxHeaderFieldID.CompressionFlags, MemUtil.UInt32ToBytes((uint)nCprID)); - WriteHeaderField(bw, Kdb4HeaderFieldID.MasterSeed, m_pbMasterSeed); - WriteHeaderField(bw, Kdb4HeaderFieldID.TransformSeed, m_pbTransformSeed); - WriteHeaderField(bw, Kdb4HeaderFieldID.TransformRounds, MemUtil.UInt64ToBytes(m_pwDatabase.KeyEncryptionRounds)); - WriteHeaderField(bw, Kdb4HeaderFieldID.EncryptionIV, m_pbEncryptionIV); - WriteHeaderField(bw, Kdb4HeaderFieldID.ProtectedStreamKey, m_pbProtectedStreamKey); - WriteHeaderField(bw, Kdb4HeaderFieldID.StreamStartBytes, m_pbStreamStartBytes); + WriteHeaderField(ms, KdbxHeaderFieldID.MasterSeed, m_pbMasterSeed); + WriteHeaderField(ms, KdbxHeaderFieldID.TransformSeed, m_pbTransformSeed); + WriteHeaderField(ms, KdbxHeaderFieldID.TransformRounds, + MemUtil.UInt64ToBytes(m_pwDatabase.KeyEncryptionRounds)); + WriteHeaderField(ms, KdbxHeaderFieldID.EncryptionIV, m_pbEncryptionIV); + WriteHeaderField(ms, KdbxHeaderFieldID.ProtectedStreamKey, m_pbProtectedStreamKey); + WriteHeaderField(ms, KdbxHeaderFieldID.StreamStartBytes, m_pbStreamStartBytes); int nIrsID = (int)m_craInnerRandomStream; - WriteHeaderField(bw, Kdb4HeaderFieldID.InnerRandomStreamID, + WriteHeaderField(ms, KdbxHeaderFieldID.InnerRandomStreamID, MemUtil.UInt32ToBytes((uint)nIrsID)); - WriteHeaderField(bw, Kdb4HeaderFieldID.EndOfHeader, new byte[]{ (byte)'\r', (byte)'\n', (byte)'\r', (byte)'\n' }); - bw.Flush(); + WriteHeaderField(ms, KdbxHeaderFieldID.EndOfHeader, new byte[]{ + (byte)'\r', (byte)'\n', (byte)'\r', (byte)'\n' }); + + byte[] pbHeader = ms.ToArray(); + ms.Dispose(); + +#if PCL + var sha256 = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256); + m_pbHashOfHeader = sha256.HashData(pbHeader.AsBuffer()).ToArray(); +#else + SHA256Managed sha256 = new SHA256Managed(); + m_pbHashOfHeader = sha256.ComputeHash(pbHeader); +#endif + + s.Write(pbHeader, 0, pbHeader.Length); + s.Flush(); } - private static void WriteHeaderField(BinaryWriter bwOut, - Kdb4HeaderFieldID kdbID, byte[] pbData) + private static void WriteHeaderField(Stream s, KdbxHeaderFieldID kdbID, + byte[] pbData) { - Debug.Assert(bwOut != null); - if(bwOut == null) throw new ArgumentNullException("bwOut"); - - bwOut.Write((byte)kdbID); + s.WriteByte((byte)kdbID); if(pbData != null) { ushort uLength = (ushort)pbData.Length; - bwOut.Write(uLength); + MemUtil.Write(s, MemUtil.UInt16ToBytes(uLength)); - if(uLength > 0) bwOut.Write(pbData); + if(uLength > 0) s.Write(pbData, 0, pbData.Length); } - else bwOut.Write((ushort)0); + else MemUtil.Write(s, MemUtil.UInt16ToBytes((ushort)0)); } private Stream AttachStreamEncryptor(Stream s) { - using (MemoryStream ms = new MemoryStream()) - { - Debug.Assert(m_pbMasterSeed != null); - Debug.Assert(m_pbMasterSeed.Length == 32); - ms.Write(m_pbMasterSeed, 0, 32); + MemoryStream ms = new MemoryStream(); - Debug.Assert(m_pwDatabase != null); - Debug.Assert(m_pwDatabase.MasterKey != null); - ProtectedBinary pbinKey = m_pwDatabase.MasterKey.GenerateKey32( - m_pbTransformSeed, m_pwDatabase.KeyEncryptionRounds); - Debug.Assert(pbinKey != null); - if (pbinKey == null) - throw new SecurityException(KLRes.InvalidCompositeKey); - byte[] pKey32 = pbinKey.ReadData(); - if ((pKey32 == null) || (pKey32.Length != 32)) - throw new SecurityException(KLRes.InvalidCompositeKey); - ms.Write(pKey32, 0, 32); + Debug.Assert(m_pbMasterSeed != null); + Debug.Assert(m_pbMasterSeed.Length == 32); + ms.Write(m_pbMasterSeed, 0, 32); - SHA256Managed sha256 = SHA256Managed.Instance; - byte[] aesKey = sha256.ComputeHash(ms.ToArray()); - - Array.Clear(pKey32, 0, 32); + Debug.Assert(m_pwDatabase != null); + Debug.Assert(m_pwDatabase.MasterKey != null); + ProtectedBinary pbinKey = m_pwDatabase.MasterKey.GenerateKey32( + m_pbTransformSeed, m_pwDatabase.KeyEncryptionRounds); + Debug.Assert(pbinKey != null); + if(pbinKey == null) + throw new SecurityException(KLRes.InvalidCompositeKey); + byte[] pKey32 = pbinKey.ReadData(); + if((pKey32 == null) || (pKey32.Length != 32)) + throw new SecurityException(KLRes.InvalidCompositeKey); + ms.Write(pKey32, 0, 32); - Debug.Assert(CipherPool.GlobalPool != null); - ICipherEngine iEngine = CipherPool.GlobalPool.GetCipher(m_pwDatabase.DataCipherUuid); - if(iEngine == null) throw new SecurityException(KLRes.FileUnknownCipher); - return iEngine.EncryptStream(s, aesKey, m_pbEncryptionIV); - } +#if PCL + var sha256 = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256); + var aesKey = sha256.HashData(ms.GetWindowsRuntimeBuffer()).ToArray(); +#else + SHA256Managed sha256 = new SHA256Managed(); + byte[] aesKey = sha256.ComputeHash(ms.ToArray()); +#endif + + ms.Dispose(); + Array.Clear(pKey32, 0, 32); + + Debug.Assert(CipherPool.GlobalPool != null); + ICipherEngine iEngine = CipherPool.GlobalPool.GetCipher(m_pwDatabase.DataCipherUuid); + if(iEngine == null) throw new SecurityException(KLRes.FileUnknownCipher); + return iEngine.EncryptStream(s, aesKey, m_pbEncryptionIV); } private void WriteDocument(PwGroup pgDataSource) @@ -245,8 +264,11 @@ namespace ModernKeePassLib.Serialization BinPoolBuild(pgRoot); - m_xmlWriter.Settings.Indent = true; - m_xmlWriter.Settings.IndentChars = "\t"; +#if !PCL + m_xmlWriter.Formatting = Formatting.Indented; + m_xmlWriter.IndentChar = '\t'; + m_xmlWriter.Indentation = 1; +#endif m_xmlWriter.WriteStartDocument(true); m_xmlWriter.WriteStartElement(ElemDocNode); @@ -320,6 +342,11 @@ namespace ModernKeePassLib.Serialization m_xmlWriter.WriteStartElement(ElemMeta); WriteObject(ElemGenerator, PwDatabase.LocalizedAppName, false); // Generator name + + if(m_pbHashOfHeader != null) + WriteObject(ElemHeaderHash, Convert.ToBase64String( + m_pbHashOfHeader), false); + WriteObject(ElemDbName, m_pwDatabase.Name, true); WriteObject(ElemDbNameChanged, m_pwDatabase.NameChanged); WriteObject(ElemDbDesc, m_pwDatabase.Description, true); @@ -361,7 +388,7 @@ namespace ModernKeePassLib.Serialization WriteObject(ElemNotes, pg.Notes, true); WriteObject(ElemIcon, (int)pg.IconId); - if(pg.CustomIconUuid != PwUuid.Zero) + if(!pg.CustomIconUuid.Equals(PwUuid.Zero)) WriteObject(ElemCustomIconID, pg.CustomIconUuid); WriteList(ElemTimes, pg); @@ -386,7 +413,7 @@ namespace ModernKeePassLib.Serialization WriteObject(ElemUuid, pe.Uuid); WriteObject(ElemIcon, (int)pe.IconId); - if(pe.CustomIconUuid != PwUuid.Zero) + if(!pe.CustomIconUuid.Equals(PwUuid.Zero)) WriteObject(ElemCustomIconID, pe.CustomIconUuid); WriteObject(ElemFgColor, StrUtil.ColorToUnnamedHtml(pe.ForegroundColor, true), false); @@ -452,8 +479,8 @@ namespace ModernKeePassLib.Serialization m_xmlWriter.WriteStartElement(name); - WriteObject(ElemLastModTime, times.LastModificationTime); WriteObject(ElemCreationTime, times.CreationTime); + WriteObject(ElemLastModTime, times.LastModificationTime); WriteObject(ElemLastAccessTime, times.LastAccessTime); WriteObject(ElemExpiryTime, times.ExpiryTime); WriteObject(ElemExpires, times.Expires); @@ -575,7 +602,7 @@ namespace ModernKeePassLib.Serialization Debug.Assert(name != null); m_xmlWriter.WriteStartElement(name); - m_xmlWriter.WriteString(value.ToString()); + m_xmlWriter.WriteString(value.ToString(NumberFormatInfo.InvariantInfo)); m_xmlWriter.WriteEndElement(); } @@ -584,7 +611,7 @@ namespace ModernKeePassLib.Serialization Debug.Assert(name != null); m_xmlWriter.WriteStartElement(name); - m_xmlWriter.WriteString(value.ToString()); + m_xmlWriter.WriteString(value.ToString(NumberFormatInfo.InvariantInfo)); m_xmlWriter.WriteEndElement(); } @@ -593,7 +620,7 @@ namespace ModernKeePassLib.Serialization Debug.Assert(name != null); m_xmlWriter.WriteStartElement(name); - m_xmlWriter.WriteString(value.ToString()); + m_xmlWriter.WriteString(value.ToString(NumberFormatInfo.InvariantInfo)); m_xmlWriter.WriteEndElement(); } @@ -602,7 +629,7 @@ namespace ModernKeePassLib.Serialization Debug.Assert(name != null); m_xmlWriter.WriteStartElement(name); - m_xmlWriter.WriteString(value.ToString()); + m_xmlWriter.WriteString(value.ToString(NumberFormatInfo.InvariantInfo)); m_xmlWriter.WriteEndElement(); } @@ -657,7 +684,7 @@ namespace ModernKeePassLib.Serialization bProtected = m_pwDatabase.MemoryProtection.ProtectNotes; } - if(bProtected && (m_format != Kdb4Format.PlainXml)) + if(bProtected && (m_format != KdbxFormat.PlainXml)) { m_xmlWriter.WriteAttributeString(AttrProtected, ValTrue); @@ -667,7 +694,6 @@ namespace ModernKeePassLib.Serialization } else { - string strValue = value.ReadString(); // If names should be localized, we need to apply the language-dependent @@ -685,7 +711,8 @@ namespace ModernKeePassLib.Serialization // page area if(char.IsSymbol(ch) || char.IsSurrogate(ch)) { - UnicodeCategory cat = CharUnicodeInfo.GetUnicodeCategory(ch); + System.Globalization.UnicodeCategory cat = + CharUnicodeInfo.GetUnicodeCategory(ch); // Map character to correct position in code page chMapped = (char)((int)cat * 32 + ch); } @@ -697,7 +724,11 @@ namespace ModernKeePassLib.Serialization // in the low ANSI range (up to 255) when calling // ToLower on them with invariant culture (see // http://lists.ximian.com/pipermail/mono-patches/2002-February/086106.html ) +#if !KeePassLibSD chMapped = char.ToLowerInvariant(ch); +#else + chMapped = char.ToLower(ch); +#endif } } @@ -707,8 +738,7 @@ namespace ModernKeePassLib.Serialization strValue = sb.ToString(); // Correct string for current code page } - - if((m_format == Kdb4Format.PlainXml) && bProtected) + if((m_format == KdbxFormat.PlainXml) && bProtected) m_xmlWriter.WriteAttributeString(AttrProtectedInMemPlainXml, ValTrue); m_xmlWriter.WriteString(StrUtil.SafeXmlString(strValue)); @@ -716,7 +746,7 @@ namespace ModernKeePassLib.Serialization m_xmlWriter.WriteEndElement(); // ElemValue m_xmlWriter.WriteEndElement(); // ElemString - } + } private void WriteObject(string name, ProtectedBinary value, bool bAllowRef) { @@ -742,7 +772,7 @@ namespace ModernKeePassLib.Serialization private void SubWriteValue(ProtectedBinary value) { - if(value.IsProtected && (m_format != Kdb4Format.PlainXml)) + if(value.IsProtected && (m_format != KdbxFormat.PlainXml)) { m_xmlWriter.WriteAttributeString(AttrProtected, ValTrue); @@ -810,8 +840,8 @@ namespace ModernKeePassLib.Serialization /// to the stream. public static bool WriteEntries(Stream msOutput, PwEntry[] vEntries) { - /* Kdb4File f = new Kdb4File(pwDatabase); - f.m_format = Kdb4Format.PlainXml; + /* KdbxFile f = new KdbxFile(pwDatabase); + f.m_format = KdbxFormat.PlainXml; XmlTextWriter xtw = null; try { xtw = new XmlTextWriter(msOutput, StrUtil.Utf8); } @@ -843,8 +873,8 @@ namespace ModernKeePassLib.Serialization foreach(PwEntry peCopy in vEntries) pd.RootGroup.AddEntry(peCopy.CloneDeep(), true); - Kdb4File f = new Kdb4File(pd); - f.Save(msOutput, null, Kdb4Format.PlainXml, null); + KdbxFile f = new KdbxFile(pd); + f.Save(msOutput, null, KdbxFormat.PlainXml, null); return true; } } diff --git a/ModernKeePassLib/Serialization/Kdb4File.cs b/ModernKeePassLib/Serialization/KdbxFile.cs similarity index 87% rename from ModernKeePassLib/Serialization/Kdb4File.cs rename to ModernKeePassLib/Serialization/KdbxFile.cs index 10b42d0..8fce7cb 100644 --- a/ModernKeePassLib/Serialization/Kdb4File.cs +++ b/ModernKeePassLib/Serialization/KdbxFile.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -29,6 +29,10 @@ using System.Diagnostics; using System.IO.Compression; #endif +#if PCL +using Windows.Storage; +#endif + using ModernKeePassLib.Collections; using ModernKeePassLib.Cryptography; using ModernKeePassLib.Delegates; @@ -39,10 +43,10 @@ using ModernKeePassLib.Utility; namespace ModernKeePassLib.Serialization { /// - /// The Kdb4File class supports saving the data to various + /// The KdbxFile class supports saving the data to various /// formats. /// - public enum Kdb4Format + public enum KdbxFormat { /// /// The default, encrypted file format. @@ -56,37 +60,37 @@ namespace ModernKeePassLib.Serialization } /// - /// Serialization to KeePass KDB files. + /// Serialization to KeePass KDBX files. /// - public sealed partial class Kdb4File + public sealed partial class KdbxFile { /// /// File identifier, first 32-bit value. /// - private const uint FileSignature1 = 0x9AA2D903; + internal const uint FileSignature1 = 0x9AA2D903; /// /// File identifier, second 32-bit value. /// - private const uint FileSignature2 = 0xB54BFB67; + internal const uint FileSignature2 = 0xB54BFB67; /// - /// File version of files saved by the current Kdb4File class. + /// File version of files saved by the current KdbxFile class. /// KeePass 2.07 has version 1.01, 2.08 has 1.02, 2.09 has 2.00, - /// 2.10 has 2.02, 2.11 has 2.04, 2.15 has 3.00. + /// 2.10 has 2.02, 2.11 has 2.04, 2.15 has 3.00, 2.20 has 3.01. /// The first 2 bytes are critical (i.e. loading will fail, if the /// file version is too high), the last 2 bytes are informational. /// - private const uint FileVersion32 = 0x00030000; + private const uint FileVersion32 = 0x00030001; private const uint FileVersionCriticalMask = 0xFFFF0000; // KeePass 1.x signature - private const uint FileSignatureOld1 = 0x9AA2D903; - private const uint FileSignatureOld2 = 0xB54BFB65; + internal const uint FileSignatureOld1 = 0x9AA2D903; + internal const uint FileSignatureOld2 = 0xB54BFB65; // KeePass 2.x pre-release (alpha and beta) signature - private const uint FileSignaturePreRelease1 = 0x9AA2D903; - private const uint FileSignaturePreRelease2 = 0xB54BFB66; + internal const uint FileSignaturePreRelease1 = 0x9AA2D903; + internal const uint FileSignaturePreRelease2 = 0xB54BFB66; private const string ElemDocNode = "KeePassFile"; private const string ElemMeta = "Meta"; @@ -95,6 +99,7 @@ namespace ModernKeePassLib.Serialization private const string ElemEntry = "Entry"; private const string ElemGenerator = "Generator"; + private const string ElemHeaderHash = "HeaderHash"; private const string ElemDbName = "DatabaseName"; private const string ElemDbNameChanged = "DatabaseNameChanged"; private const string ElemDbDesc = "DatabaseDescription"; @@ -190,9 +195,13 @@ namespace ModernKeePassLib.Serialization private PwDatabase m_pwDatabase; // Not null, see constructor +#if PCL private XmlWriter m_xmlWriter = null; +#else + private XmlTextWriter m_xmlWriter = null; +#endif private CryptoRandomStream m_randomStream = null; - private Kdb4Format m_format = Kdb4Format.Default; + private KdbxFormat m_format = KdbxFormat.Default; private IStatusLogger m_slLogger = null; private byte[] m_pbMasterSeed = null; @@ -208,6 +217,7 @@ namespace ModernKeePassLib.Serialization private Dictionary m_dictBinPool = new Dictionary(); + private byte[] m_pbHashOfHeader = null; private byte[] m_pbHashOfFileOnDisk = null; private readonly DateTime m_dtNow = DateTime.Now; // Cache current time @@ -217,7 +227,7 @@ namespace ModernKeePassLib.Serialization private const uint NeutralLanguageID = NeutralLanguageOffset + NeutralLanguageIDSec; private static bool m_bLocalizedNames = false; - private enum Kdb4HeaderFieldID : byte + private enum KdbxHeaderFieldID : byte { EndOfHeader = 0, Comment = 1, @@ -261,7 +271,7 @@ namespace ModernKeePassLib.Serialization /// /// The PwDatabase instance that the /// class will load file data into or use to create a KDBX file. - public Kdb4File(PwDatabase pwDataStore) + public KdbxFile(PwDatabase pwDataStore) { Debug.Assert(pwDataStore != null); if(pwDataStore == null) throw new ArgumentNullException("pwDataStore"); @@ -322,7 +332,8 @@ namespace ModernKeePassLib.Serialization if(BinPoolFind(pb) != null) return; // Exists already - m_dictBinPool.Add(m_dictBinPool.Count.ToString(), pb); + m_dictBinPool.Add(m_dictBinPool.Count.ToString( + NumberFormatInfo.InvariantInfo), pb); } private string BinPoolFind(ProtectedBinary pb) @@ -350,12 +361,6 @@ namespace ModernKeePassLib.Serialization private static void SaveBinary(string strName, ProtectedBinary pb, string strSaveDir) { - // TODO Bert: Needs to be implemented. -#if !TODO - Debug.Assert(false,"not implemented"); -#else - - if(pb == null) { Debug.Assert(false); return; } if(string.IsNullOrEmpty(strName)) strName = "File.bin"; @@ -370,15 +375,28 @@ namespace ModernKeePassLib.Serialization string strDesc = UrlUtil.StripExtension(strName); strPath += strDesc; - if(iTry > 1) strPath += " (" + iTry.ToString() + ")"; + if(iTry > 1) + strPath += " (" + iTry.ToString(NumberFormatInfo.InvariantInfo) + + ")"; if(!string.IsNullOrEmpty(strExt)) strPath += "." + strExt; ++iTry; } +#if PCL + while(ApplicationData.Current.RoamingFolder.GetFileAsync(strPath).GetResults() != null); +#else while(File.Exists(strPath)); +#endif -#if !KeePassLibSD +#if PCL + byte[] pbData = pb.ReadData(); + var file = ApplicationData.Current.RoamingFolder.GetFileAsync(strPath).GetResults(); + using (var stream = file.OpenAsync(FileAccessMode.ReadWrite).GetResults().AsStream()) { + stream.Write (pbData, 0, pbData.Length); + } + MemUtil.ZeroByteArray(pbData); +#elif !KeePassLibSD byte[] pbData = pb.ReadData(); File.WriteAllBytes(strPath, pbData); MemUtil.ZeroByteArray(pbData); @@ -389,9 +407,6 @@ namespace ModernKeePassLib.Serialization fs.Write(pbData, 0, pbData.Length); fs.Close(); #endif - -#endif // TODO - } - + } } } diff --git a/ModernKeePassLib/Serialization/OldFormatException.cs b/ModernKeePassLib/Serialization/OldFormatException.cs index 3d67a7f..46a8aa6 100644 --- a/ModernKeePassLib/Serialization/OldFormatException.cs +++ b/ModernKeePassLib/Serialization/OldFormatException.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,8 +19,8 @@ using System; using System.Collections.Generic; -using System.Diagnostics; using System.Text; + using ModernKeePassLib.Resources; using ModernKeePassLib.Utility; @@ -41,17 +41,13 @@ namespace ModernKeePassLib.Serialization { get { - Debug.Assert(false, "not yet implemented"); - return null; -#if TODO string str = KLRes.OldFormat + ((m_strFormat.Length > 0) ? (@" (" + m_strFormat + @")") : string.Empty) + "."; if(m_type == OldFormatType.KeePass1x) - str += MessageService.NewParagraph + KLRes.KeePass1xHint; + str += Environment.NewLine + Environment.NewLine + KLRes.KeePass1xHint; return str; -#endif } } diff --git a/ModernKeePassLib/Translation/KPControlCustomization.cs b/ModernKeePassLib/Translation/KPControlCustomization.cs index c7faca2..2e4ad0b 100644 --- a/ModernKeePassLib/Translation/KPControlCustomization.cs +++ b/ModernKeePassLib/Translation/KPControlCustomization.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,21 +17,14 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -// BERT TODO: Removed completely for the time being */ - -#if TODO - using System; using System.Collections.Generic; using System.Text; using System.ComponentModel; -using System.Windows.Forms; using System.Diagnostics; using System.Xml.Serialization; using System.Globalization; using System.IO; -using System.Security.Cryptography; -using System.Drawing; using ModernKeePassLib.Utility; @@ -46,8 +39,8 @@ namespace ModernKeePassLib.Translation private const string m_strControlRelative = @"%c"; - internal const NumberStyles m_nsParser = NumberStyles.AllowLeadingSign | - NumberStyles.AllowDecimalPoint; + internal const NumberStyles m_nsParser = (NumberStyles.AllowLeadingSign | + NumberStyles.AllowDecimalPoint); internal static readonly CultureInfo m_lclInv = CultureInfo.InvariantCulture; private string m_strPosX = string.Empty; @@ -116,7 +109,7 @@ namespace ModernKeePassLib.Translation else { Debug.Assert(false); } } -#if !KeePassLibSD +#if (!KeePassLibSD && !KeePassRT) internal void ApplyTo(Control c) { Debug.Assert(c != null); if(c == null) return; @@ -271,7 +264,7 @@ namespace ModernKeePassLib.Translation return m_strMemberName.CompareTo(kpOther.Name); } -#if !KeePassLibSD +#if (!KeePassLibSD && !KeePassRT) private static readonly Type[] m_vTextControls = new Type[] { typeof(MenuStrip), typeof(PictureBox), typeof(ListView), typeof(TreeView), typeof(ToolStrip), typeof(WebBrowser), @@ -313,8 +306,8 @@ namespace ModernKeePassLib.Translation if(c is Form) { - WriteCpiParam(sb, c.ClientSize.Width.ToString()); - WriteCpiParam(sb, c.ClientSize.Height.ToString()); + WriteCpiParam(sb, c.ClientSize.Width.ToString(KpccLayout.m_lclInv)); + WriteCpiParam(sb, c.ClientSize.Height.ToString(KpccLayout.m_lclInv)); } else // Normal control { @@ -402,5 +395,3 @@ namespace ModernKeePassLib.Translation #endif } } - -#endif \ No newline at end of file diff --git a/ModernKeePassLib/Translation/KPFormCustomization.cs b/ModernKeePassLib/Translation/KPFormCustomization.cs index 29d3855..4d0f7dc 100644 --- a/ModernKeePassLib/Translation/KPFormCustomization.cs +++ b/ModernKeePassLib/Translation/KPFormCustomization.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,9 +17,6 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -/* Bert TODO: completely removed for the time being */ - -#if TODO using System; using System.Collections.Generic; using System.Text; @@ -69,6 +66,7 @@ namespace ModernKeePassLib.Translation } } +#if (!KeePassLibSD && !KeePassRT) private Form m_formEnglish = null; [XmlIgnore] public Form FormEnglish @@ -77,7 +75,6 @@ namespace ModernKeePassLib.Translation set { m_formEnglish = value; } } -#if !KeePassLibSD public void ApplyTo(Form form) { Debug.Assert(form != null); if(form == null) throw new ArgumentNullException("form"); @@ -107,5 +104,3 @@ namespace ModernKeePassLib.Translation #endif } } - -#endif //TODO \ No newline at end of file diff --git a/ModernKeePassLib/Translation/KPStringTable.cs b/ModernKeePassLib/Translation/KPStringTable.cs index 1f7b40a..ea55bac 100644 --- a/ModernKeePassLib/Translation/KPStringTable.cs +++ b/ModernKeePassLib/Translation/KPStringTable.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,9 +17,6 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -/* BERT TODO: Completely removed for the time being */ - -#if TODO using System; using System.Collections.Generic; using System.Text; @@ -69,7 +66,7 @@ namespace ModernKeePassLib.Translation return dict; } -#if !KeePassLibSD +#if (!KeePassLibSD && !KeePassRT) public void ApplyTo(ToolStripItemCollection tsic) { if(tsic == null) throw new ArgumentNullException("tsic"); @@ -100,5 +97,3 @@ namespace ModernKeePassLib.Translation #endif } } - -#endif //TODO \ No newline at end of file diff --git a/ModernKeePassLib/Translation/KPStringTableItem.cs b/ModernKeePassLib/Translation/KPStringTableItem.cs index 1dad3f8..4bdb234 100644 --- a/ModernKeePassLib/Translation/KPStringTableItem.cs +++ b/ModernKeePassLib/Translation/KPStringTableItem.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/ModernKeePassLib/Translation/KPTranslation.cs b/ModernKeePassLib/Translation/KPTranslation.cs index c79778a..6e16d28 100644 --- a/ModernKeePassLib/Translation/KPTranslation.cs +++ b/ModernKeePassLib/Translation/KPTranslation.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,9 +17,6 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -/* Bert TODO: completely removed for the time being */ - -#if TODO using System; using System.Collections.Generic; using System.Text; @@ -156,7 +153,7 @@ namespace ModernKeePassLib.Translation return new Dictionary(); } -#if !KeePassLibSD +#if (!KeePassLibSD && !KeePassRT) public void ApplyTo(Form form) { if(form == null) throw new ArgumentNullException("form"); @@ -253,5 +250,3 @@ namespace ModernKeePassLib.Translation #endif } } - -#endif \ No newline at end of file diff --git a/ModernKeePassLib/Translation/KPTranslationProperties.cs b/ModernKeePassLib/Translation/KPTranslationProperties.cs index a275d68..0d0e721 100644 --- a/ModernKeePassLib/Translation/KPTranslationProperties.cs +++ b/ModernKeePassLib/Translation/KPTranslationProperties.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/ModernKeePassLib/Utility/AppLogEx.cs b/ModernKeePassLib/Utility/AppLogEx.cs index 49a6a63..0e2dc56 100644 --- a/ModernKeePassLib/Utility/AppLogEx.cs +++ b/ModernKeePassLib/Utility/AppLogEx.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -49,9 +49,9 @@ namespace ModernKeePassLib.Utility try { string strDirSep = string.Empty; - strDirSep += Path.DirectorySeparatorChar; + strDirSep += UrlUtil.LocalDirSepChar; - string strTemp = Path.GetTempPath(); + string strTemp = UrlUtil.GetTempPath(); if(!strTemp.EndsWith(strDirSep)) strTemp += strDirSep; @@ -64,7 +64,7 @@ namespace ModernKeePassLib.Utility strTime = strTime.Replace(':', '-'); strPath += strTime + "-" + Environment.TickCount.ToString( - CultureInfo.InvariantCulture) + ".log.gz"; + NumberFormatInfo.InvariantInfo) + ".log.gz"; FileStream fsOut = new FileStream(strPath, FileMode.Create, FileAccess.Write, FileShare.None); @@ -81,12 +81,8 @@ namespace ModernKeePassLib.Utility { if(m_swOut == null) return; - Debug.Assert(false, "not yet implemented"); - return; -#if TODO - m_swOut.Close(); + m_swOut.Dispose(); m_swOut = null; -#endif } public static void Log(string strText) diff --git a/ModernKeePassLib/Utility/ColorTranslator.cs b/ModernKeePassLib/Utility/ColorTranslator.cs new file mode 100644 index 0000000..ad5fb13 --- /dev/null +++ b/ModernKeePassLib/Utility/ColorTranslator.cs @@ -0,0 +1,57 @@ +using System; +using System.Drawing; +using System.Globalization; +using System.Text.RegularExpressions; + +namespace KeePass2PCL.Utility +{ + /// + /// Replacement for System.Drawing.ColorTranslator. + /// + /// + /// Colors are stored in the kdbx database file in HTML format (#XXXXXX). + /// + public static class ColorTranslator + { + static Regex longForm = new Regex("^#([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})$"); + + /// + /// Converts an HTML color value to a Color. + /// + /// The Color. + /// HTML color code. + /// If htmlColor is null. + /// If htmlColor did not match the pattern "#XXXXXX". + /// + /// Currently only understands "#XXXXXX". "#XXX" or named colors will + /// throw and exception. + /// + public static Color FromHtml(string htmlColor) + { + if (htmlColor == null) + throw new ArgumentNullException("htmlColor"); + Match match = longForm.Match(htmlColor); + if (match.Success) { + var r = int.Parse(match.Groups[1].Value, NumberStyles.HexNumber); + var g = int.Parse(match.Groups[2].Value, NumberStyles.HexNumber); + var b = int.Parse(match.Groups[3].Value, NumberStyles.HexNumber); + return Color.FromArgb(r, g, b); + } + throw new ArgumentException(string.Format("Could not parse HTML color '{0}'.", htmlColor), "htmlColor"); + } + + /// + /// Converts a color to an HTML color code. + /// + /// String containing the color code. + /// The Color to convert + /// + /// The string is in the format "#XXXXXX" + /// + public static string ToHtml(Color htmlColor) + { + return string.Format("#{0:x2}{1:x2}{2:x2}", htmlColor.R, htmlColor.G, htmlColor.B); + } + } +} + diff --git a/ModernKeePassLib/Utility/GfxUtil.cs b/ModernKeePassLib/Utility/GfxUtil.cs new file mode 100644 index 0000000..baef385 --- /dev/null +++ b/ModernKeePassLib/Utility/GfxUtil.cs @@ -0,0 +1,115 @@ +/* + KeePass Password Safe - The Open-Source Password Manager + Copyright (C) 2003-2014 Dominik Reichl + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +using System; +using System.Collections.Generic; +using System.Text; +using System.IO; +#if KeePass2PCL +using Splat; +#else +using System.Drawing; +using System.Drawing.Imaging; +#endif +using System.Diagnostics; + +namespace KeePass2PCL.Utility +{ + public static class GfxUtil + { +#if KeePassRT + public static Image LoadImage(byte[] pb) + { + MemoryStream ms = new MemoryStream(pb, false); + try { return Image.FromStream(ms); } + finally { ms.Close(); } + } +#elif KeePass2PCL + public static IBitmap LoadImage(byte[] pb) + { + using (var ms = new MemoryStream(pb, false)) { + return BitmapLoader.Current.Load(ms, null, null).Result; + } + } +#else + public static Image LoadImage(byte[] pb) + { + if(pb == null) throw new ArgumentNullException("pb"); + + MemoryStream ms = new MemoryStream(pb, false); + try { return LoadImagePriv(ms); } + catch(Exception) + { + Image imgIco = TryLoadIco(pb); + if(imgIco != null) return imgIco; + throw; + } + finally { ms.Close(); } + } + + private static Image LoadImagePriv(Stream s) + { + // Image.FromStream wants the stream to be open during + // the whole lifetime of the image; as we can't guarantee + // this, we make a copy of the image + Image imgSrc = null; + try + { +#if !KeePassLibSD + imgSrc = Image.FromStream(s); + Bitmap bmp = new Bitmap(imgSrc.Width, imgSrc.Height, + PixelFormat.Format32bppArgb); + + try + { + bmp.SetResolution(imgSrc.HorizontalResolution, + imgSrc.VerticalResolution); + Debug.Assert(bmp.Size == imgSrc.Size); + } + catch(Exception) { Debug.Assert(false); } +#else + imgSrc = new Bitmap(s); + Bitmap bmp = new Bitmap(imgSrc.Width, imgSrc.Height); +#endif + + using(Graphics g = Graphics.FromImage(bmp)) + { + g.Clear(Color.Transparent); + g.DrawImage(imgSrc, 0, 0); + } + + return bmp; + } + finally { if(imgSrc != null) imgSrc.Dispose(); } + } + + private static Image TryLoadIco(byte[] pb) + { +#if !KeePassLibSD + MemoryStream ms = new MemoryStream(pb, false); + try { return (new Icon(ms)).ToBitmap(); } + catch(Exception) { } + finally { ms.Close(); } +#endif + + return null; + } +#endif + } +} diff --git a/ModernKeePassLib/Utility/MemUtil.cs b/ModernKeePassLib/Utility/MemUtil.cs index 53edbce..0ff5093 100644 --- a/ModernKeePassLib/Utility/MemUtil.cs +++ b/ModernKeePassLib/Utility/MemUtil.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -18,21 +18,91 @@ */ using System; +using System.Collections.Generic; using System.Text; +using System.Diagnostics; using System.IO; #if !KeePassLibSD +using System.IO.Compression; #else -using ModernKeePassLibSD; +using KeePassLibSD; #endif namespace ModernKeePassLib.Utility { - /// - /// Contains static buffer manipulation and string conversion routines. - /// - public static class MemUtil + /// + /// Contains static buffer manipulation and string conversion routines. + /// + public static class MemUtil { + private static readonly uint[] m_vSBox = new uint[256] { + 0xCD2FACB3, 0xE78A7F5C, 0x6F0803FC, 0xBCF6E230, + 0x3A321712, 0x06403DB1, 0xD2F84B95, 0xDF22A6E4, + 0x07CE9E5B, 0x31788A0C, 0xF683F6F4, 0xEA061F49, + 0xFA5C2ACA, 0x4B9E494E, 0xB0AB25BA, 0x767731FC, + 0x261893A7, 0x2B09F2CE, 0x046261E4, 0x41367B4B, + 0x18A7F225, 0x8F923C0E, 0x5EF3A325, 0x28D0435E, + 0x84C22919, 0xED66873C, 0x8CEDE444, 0x7FC47C24, + 0xFCFC6BA3, 0x676F928D, 0xB4147187, 0xD8FB126E, + 0x7D798D17, 0xFF82E424, 0x1712FA5B, 0xABB09DD5, + 0x8156BA63, 0x84E4D969, 0xC937FB9A, 0x2F1E5BFC, + 0x178ECA11, 0x0E71CD5F, 0x52AAC6F4, 0x71EEFC8F, + 0x7090D749, 0x21CACA31, 0x92996378, 0x0939A8A8, + 0xE9EE1934, 0xD2718616, 0xF2500543, 0xB911873C, + 0xD3CB3EEC, 0x2BA0DBEB, 0xB42D0A27, 0xECE67C0F, + 0x302925F0, 0x6114F839, 0xD39E6307, 0xE28970D6, + 0xEB982F99, 0x941B4CDF, 0xC540E550, 0x8124FC45, + 0x98B025C7, 0xE2BF90EA, 0x4F57C976, 0xCF546FE4, + 0x59566DC8, 0xE3F4360D, 0xF5F9D231, 0xD6180B22, + 0xB54E088A, 0xB5DFE6A6, 0x3637A36F, 0x056E9284, + 0xAFF8FBC5, 0x19E01648, 0x8611F043, 0xDAE44337, + 0xF61B6A1C, 0x257ACD9E, 0xDD35F507, 0xEF05CAFA, + 0x05EB4A83, 0xFC25CA92, 0x0A4728E6, 0x9CF150EF, + 0xAEEF67DE, 0xA9472337, 0x57C81EFE, 0x3E5E009F, + 0x02CB03BB, 0x2BA85674, 0xF21DC251, 0x78C34A34, + 0xABB1F5BF, 0xB95A2FBD, 0x1FB47777, 0x9A96E8AC, + 0x5D2D2838, 0x55AAC92A, 0x99EE324E, 0x10F6214B, + 0x58ABDFB1, 0x2008794D, 0xBEC880F0, 0xE75E5341, + 0x88015C34, 0x352D8FBF, 0x622B7F6C, 0xF5C59EA2, + 0x1F759D8E, 0xADE56159, 0xCC7B4C25, 0x5B8BC48C, + 0xB6BD15AF, 0x3C5B5110, 0xE74A7C3D, 0xEE613161, + 0x156A1C67, 0x72C06817, 0xEA0A6F69, 0x4CECF993, + 0xCA9D554C, 0x8E20361F, 0x42D396B9, 0x595DE578, + 0x749D7955, 0xFD1BA5FD, 0x81FC160E, 0xDB97E28C, + 0x7CF148F7, 0x0B0B3CF5, 0x534DE605, 0x46421066, + 0xD4B68DD1, 0x9E479CE6, 0xAE667A9D, 0xBC082082, + 0xB06DD6EF, 0x20F0F23F, 0xB99E1551, 0xF47A2E3A, + 0x71DA50C6, 0x67B65779, 0x2A8CB376, 0x1EA71EEE, + 0x29ABCD50, 0xB6EB0C6B, 0x23C10511, 0x6F3F2144, + 0x6AF23012, 0xF696BD9E, 0xB94099D8, 0xAD5A9C81, + 0x7A0794FA, 0x7EDF59D6, 0x1E72E574, 0x8561913C, + 0x4E4D568F, 0xEECB9928, 0x9C124D2E, 0x0848B82C, + 0xF1CA395F, 0x9DAF43DC, 0xF77EC323, 0x394E9B59, + 0x7E200946, 0x8B811D68, 0x16DA3305, 0xAB8DE2C3, + 0xE6C53B64, 0x98C2D321, 0x88A97D81, 0xA7106419, + 0x8E52F7BF, 0x8ED262AF, 0x7CCA974E, 0xF0933241, + 0x040DD437, 0xE143B3D4, 0x3019F56F, 0xB741521D, + 0xF1745362, 0x4C435F9F, 0xB4214D0D, 0x0B0C348B, + 0x5051D189, 0x4C30447E, 0x7393D722, 0x95CEDD0B, + 0xDD994E80, 0xC3D22ED9, 0x739CD900, 0x131EB9C4, + 0xEF1062B2, 0x4F0DE436, 0x52920073, 0x9A7F3D80, + 0x896E7B1B, 0x2C8BBE5A, 0xBD304F8A, 0xA993E22C, + 0x134C41A0, 0xFA989E00, 0x39CE9726, 0xFB89FCCF, + 0xE8FBAC97, 0xD4063FFC, 0x935A2B5A, 0x44C8EE83, + 0xCB2BC7B6, 0x02989E92, 0x75478BEA, 0x144378D0, + 0xD853C087, 0x8897A34E, 0xDD23629D, 0xBDE2A2A2, + 0x581D8ECC, 0x5DA8AEE8, 0xFF8AAFD0, 0xBA2BCF6E, + 0x4BD98DAC, 0xF2EDB9E4, 0xFA2DC868, 0x47E84661, + 0xECEB1C7D, 0x41705CA4, 0x5982E4D4, 0xEB5204A1, + 0xD196CAFB, 0x6414804D, 0x3ABD4B46, 0x8B494C26, + 0xB432D52B, 0x39C5356B, 0x6EC80BF7, 0x71BE5483, + 0xCEC4A509, 0xE9411D61, 0x52F341E5, 0xD2E6197B, + 0x4F02826C, 0xA9E48838, 0xD1F8F247, 0xE4957FB3, + 0x586CCA99, 0x9A8B6A5B, 0x4998FBEA, 0xF762BE4C, + 0x90DFE33C, 0x9731511E, 0x88C6A82F, 0xDD65A4D4 + }; + /// /// Convert a hexadecimal string to a byte array. The input string must be /// even (i.e. its length is a multiple of 2). @@ -116,6 +186,63 @@ namespace ModernKeePassLib.Utility return sb.ToString(); } + /// + /// Decode Base32 strings according to RFC 4648. + /// + public static byte[] ParseBase32(string str) + { + if((str == null) || ((str.Length % 8) != 0)) + { + Debug.Assert(false); + return null; + } + + ulong uMaxBits = (ulong)str.Length * 5UL; + List l = new List((int)(uMaxBits / 8UL) + 1); + Debug.Assert(l.Count == 0); + + for(int i = 0; i < str.Length; i += 8) + { + ulong u = 0; + int nBits = 0; + + for(int j = 0; j < 8; ++j) + { + char ch = str[i + j]; + if(ch == '=') break; + + ulong uValue; + if((ch >= 'A') && (ch <= 'Z')) + uValue = (ulong)(ch - 'A'); + else if((ch >= 'a') && (ch <= 'z')) + uValue = (ulong)(ch - 'a'); + else if((ch >= '2') && (ch <= '7')) + uValue = (ulong)(ch - '2') + 26UL; + else { Debug.Assert(false); return null; } + + u <<= 5; + u += uValue; + nBits += 5; + } + + int nBitsTooMany = (nBits % 8); + u >>= nBitsTooMany; + nBits -= nBitsTooMany; + Debug.Assert((nBits % 8) == 0); + + int idxNewBytes = l.Count; + while(nBits > 0) + { + l.Add((byte)(u & 0xFF)); + u >>= 8; + nBits -= 8; + } + l.Reverse(idxNewBytes, l.Count - idxNewBytes); + } + + return l.ToArray(); + } + /// /// Set all bytes in a byte array to zero. /// @@ -123,7 +250,8 @@ namespace ModernKeePassLib.Utility /// to zero. public static void ZeroByteArray(byte[] pbArray) { - Debug.Assert(pbArray != null); if(pbArray == null) throw new ArgumentNullException("pbArray"); + Debug.Assert(pbArray != null); + if(pbArray == null) throw new ArgumentNullException("pbArray"); // for(int i = 0; i < pbArray.Length; ++i) // pbArray[i] = 0; @@ -274,6 +402,31 @@ namespace ModernKeePassLib.Utility pbBuffer[nBufferOffset + i] ^= pbSource[nSourceOffset + i]; } + /// + /// Fast hash that can be used e.g. for hash tables. + /// The algorithm might change in the future; do not store + /// the hashes for later use. + /// + public static uint Hash32(byte[] v, int iStart, int iLength) + { + uint u = 0x326F637B; + + if(v == null) { Debug.Assert(false); return u; } + if(iStart < 0) { Debug.Assert(false); return u; } + if(iLength < 0) { Debug.Assert(false); return u; } + + int m = iStart + iLength; + if(m > v.Length) { Debug.Assert(false); return u; } + + for(int i = iStart; i < m; ++i) + { + u ^= m_vSBox[v[i]]; + u *= 3; + } + + return u; + } + public static void CopyStream(Stream sSource, Stream sTarget) { Debug.Assert((sSource != null) && (sTarget != null)); @@ -282,19 +435,54 @@ namespace ModernKeePassLib.Utility const int nBufSize = 4096; byte[] pbBuf = new byte[nBufSize]; - int nRead; - while((nRead = sSource.Read(pbBuf, 0, nBufSize)) > 0) + while(true) + { + int nRead = sSource.Read(pbBuf, 0, nBufSize); + if(nRead == 0) break; + sTarget.Write(pbBuf, 0, nRead); + } // Do not close any of the streams } + public static byte[] Read(Stream s, int nCount) + { + if(s == null) throw new ArgumentNullException("s"); + if(nCount < 0) throw new ArgumentOutOfRangeException("nCount"); + + byte[] pb = new byte[nCount]; + int iOffset = 0; + while(nCount > 0) + { + int iRead = s.Read(pb, iOffset, nCount); + if(iRead == 0) break; + + iOffset += iRead; + nCount -= iRead; + } + + if(iOffset != pb.Length) + { + byte[] pbPart = new byte[iOffset]; + Array.Copy(pb, pbPart, iOffset); + return pbPart; + } + + return pb; + } + + public static void Write(Stream s, byte[] pbData) + { + if(s == null) { Debug.Assert(false); return; } + if(pbData == null) { Debug.Assert(false); return; } + + s.Write(pbData, 0, pbData.Length); + } + public static byte[] Compress(byte[] pbData) { - Debug.Assert(false, "not yet implemented"); - return null; -#if TODO if(pbData == null) throw new ArgumentNullException("pbData"); if(pbData.Length == 0) return pbData; @@ -302,20 +490,16 @@ namespace ModernKeePassLib.Utility GZipStream gz = new GZipStream(msCompressed, CompressionMode.Compress); MemoryStream msSource = new MemoryStream(pbData, false); MemUtil.CopyStream(msSource, gz); - gz.Close(); - msSource.Close(); + gz.Dispose(); + msSource.Dispose(); byte[] pbCompressed = msCompressed.ToArray(); - msCompressed.Close(); + msCompressed.Dispose(); return pbCompressed; -#endif } public static byte[] Decompress(byte[] pbCompressed) { - Debug.Assert(false, "not yet implemented"); - return null; -#if TODO if(pbCompressed == null) throw new ArgumentNullException("pbCompressed"); if(pbCompressed.Length == 0) return pbCompressed; @@ -323,13 +507,12 @@ namespace ModernKeePassLib.Utility GZipStream gz = new GZipStream(msCompressed, CompressionMode.Decompress); MemoryStream msData = new MemoryStream(); MemUtil.CopyStream(gz, msData); - gz.Close(); - msCompressed.Close(); + gz.Dispose(); + msCompressed.Dispose(); byte[] pbData = msData.ToArray(); - msData.Close(); + msData.Dispose(); return pbData; -#endif } public static int IndexOf(T[] vHaystack, T[] vNeedle) @@ -361,11 +544,81 @@ namespace ModernKeePassLib.Utility if(v == null) throw new ArgumentNullException("v"); if(iOffset < 0) throw new ArgumentOutOfRangeException("iOffset"); if(iLength < 0) throw new ArgumentOutOfRangeException("iLength"); - if(iOffset + iLength > v.Length) throw new ArgumentException(); + if((iOffset + iLength) > v.Length) throw new ArgumentException(); T[] r = new T[iLength]; Array.Copy(v, iOffset, r, 0, iLength); return r; } + + public static IEnumerable Union(IEnumerable a, IEnumerable b, + IEqualityComparer cmp) + { + if(a == null) throw new ArgumentNullException("a"); + if(b == null) throw new ArgumentNullException("b"); + + Dictionary d = ((cmp != null) ? + (new Dictionary(cmp)) : (new Dictionary())); + + foreach(T ta in a) + { + if(d.ContainsKey(ta)) continue; // Prevent duplicates + + d[ta] = true; + yield return ta; + } + + foreach(T tb in b) + { + if(d.ContainsKey(tb)) continue; // Prevent duplicates + + d[tb] = true; + yield return tb; + } + + yield break; + } + + public static IEnumerable Intersect(IEnumerable a, IEnumerable b, + IEqualityComparer cmp) + { + if(a == null) throw new ArgumentNullException("a"); + if(b == null) throw new ArgumentNullException("b"); + + Dictionary d = ((cmp != null) ? + (new Dictionary(cmp)) : (new Dictionary())); + + foreach(T tb in b) { d[tb] = true; } + + foreach(T ta in a) + { + if(d.Remove(ta)) // Prevent duplicates + yield return ta; + } + + yield break; + } + + public static IEnumerable Except(IEnumerable a, IEnumerable b, + IEqualityComparer cmp) + { + if(a == null) throw new ArgumentNullException("a"); + if(b == null) throw new ArgumentNullException("b"); + + Dictionary d = ((cmp != null) ? + (new Dictionary(cmp)) : (new Dictionary())); + + foreach(T tb in b) { d[tb] = true; } + + foreach(T ta in a) + { + if(d.ContainsKey(ta)) continue; + + d[ta] = true; // Prevent duplicates + yield return ta; + } + + yield break; + } } } diff --git a/ModernKeePassLib/Utility/MessageService.cs b/ModernKeePassLib/Utility/MessageService.cs index 35e0ea2..77e087b 100644 --- a/ModernKeePassLib/Utility/MessageService.cs +++ b/ModernKeePassLib/Utility/MessageService.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,9 +17,6 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -/* BERT TODO: All removed for the time being */ - -#if false using System; using System.Collections.Generic; using System.Collections.Specialized; @@ -121,7 +118,7 @@ namespace ModernKeePassLib.Utility Exception exObj = (obj as Exception); string strObj = (obj as string); -#if !KeePassLibSD +#if (!KeePassLibSD && !KeePassRT) StringCollection scObj = (obj as StringCollection); #endif @@ -132,7 +129,7 @@ namespace ModernKeePassLib.Utility else if((exObj.Message != null) && (exObj.Message.Length > 0)) strAppend = exObj.Message; } -#if !KeePassLibSD +#if (!KeePassLibSD && !KeePassRT) else if(scObj != null) { StringBuilder sb = new StringBuilder(); @@ -161,24 +158,30 @@ namespace ModernKeePassLib.Utility return sbText.ToString(); } - private static DialogResult SafeShowMessageBox(string strText, string strTitle, +#if (!KeePassLibSD && !KeePassRT) + internal static Form GetTopForm() + { + FormCollection fc = Application.OpenForms; + if((fc == null) || (fc.Count == 0)) return null; + + return fc[fc.Count - 1]; + } +#endif + + internal static DialogResult SafeShowMessageBox(string strText, string strTitle, MessageBoxButtons mb, MessageBoxIcon mi, MessageBoxDefaultButton mdb) { -#if KeePassLibSD +#if (KeePassLibSD || KeePassRT) return MessageBox.Show(strText, strTitle, mb, mi, mdb); #else IWin32Window wnd = null; try { - FormCollection fc = Application.OpenForms; - if((fc != null) && (fc.Count > 0)) - { - Form f = fc[fc.Count - 1]; - if((f != null) && f.InvokeRequired) - return (DialogResult)f.Invoke(new SafeShowMessageBoxInternalDelegate( - SafeShowMessageBoxInternal), f, strText, strTitle, mb, mi, mdb); - else wnd = f; - } + Form f = GetTopForm(); + if((f != null) && f.InvokeRequired) + return (DialogResult)f.Invoke(new SafeShowMessageBoxInternalDelegate( + SafeShowMessageBoxInternal), f, strText, strTitle, mb, mi, mdb); + else wnd = f; } catch(Exception) { Debug.Assert(false); } @@ -203,7 +206,7 @@ namespace ModernKeePassLib.Utility #endif } -#if !KeePassLibSD +#if (!KeePassLibSD && !KeePassRT) internal delegate DialogResult SafeShowMessageBoxInternalDelegate(IWin32Window iParent, string strText, string strTitle, MessageBoxButtons mb, MessageBoxIcon mi, MessageBoxDefaultButton mdb); @@ -318,7 +321,8 @@ namespace ModernKeePassLib.Utility return dr; } - public static bool AskYesNo(string strText, string strTitle, bool bDefaultToYes) + public static bool AskYesNo(string strText, string strTitle, bool bDefaultToYes, + MessageBoxIcon mbi) { ++m_uCurrentMessageCount; @@ -327,24 +331,29 @@ namespace ModernKeePassLib.Utility if(MessageService.MessageShowing != null) MessageService.MessageShowing(null, new MessageServiceEventArgs( - strTitleEx, strTextEx, MessageBoxButtons.YesNo, m_mbiQuestion)); + strTitleEx, strTextEx, MessageBoxButtons.YesNo, mbi)); DialogResult dr = SafeShowMessageBox(strTextEx, strTitleEx, - MessageBoxButtons.YesNo, m_mbiQuestion, bDefaultToYes ? + MessageBoxButtons.YesNo, mbi, bDefaultToYes ? MessageBoxDefaultButton.Button1 : MessageBoxDefaultButton.Button2); --m_uCurrentMessageCount; return (dr == DialogResult.Yes); } + public static bool AskYesNo(string strText, string strTitle, bool bDefaultToYes) + { + return AskYesNo(strText, strTitle, bDefaultToYes, m_mbiQuestion); + } + public static bool AskYesNo(string strText, string strTitle) { - return AskYesNo(strText, strTitle, true); + return AskYesNo(strText, strTitle, true, m_mbiQuestion); } public static bool AskYesNo(string strText) { - return AskYesNo(strText, null, true); + return AskYesNo(strText, null, true, m_mbiQuestion); } public static void ShowLoadWarning(string strFilePath, Exception ex) @@ -423,5 +432,3 @@ namespace ModernKeePassLib.Utility } } } - -#endif // false diff --git a/ModernKeePassLib/Utility/MonoWorkarounds.cs b/ModernKeePassLib/Utility/MonoWorkarounds.cs new file mode 100644 index 0000000..9683d92 --- /dev/null +++ b/ModernKeePassLib/Utility/MonoWorkarounds.cs @@ -0,0 +1,324 @@ +/* + KeePass Password Safe - The Open-Source Password Manager + Copyright (C) 2003-2014 Dominik Reichl + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +using System; +using System.Collections.Generic; +using System.Text; +using System.Windows.Forms; +using System.ComponentModel; +using System.Reflection; +using System.Diagnostics; + +using KeePass2PCL.Native; + +namespace KeePass2PCL.Utility +{ + public static class MonoWorkarounds + { + private static bool? m_bReq = null; + public static bool IsRequired() + { + if(!m_bReq.HasValue) m_bReq = NativeLib.IsUnix(); + return m_bReq.Value; + } + + // 1245: + // Key events not raised while Alt is down, and nav keys out of order. + // https://sourceforge.net/p/keepass/bugs/1245/ + // 1254: + // NumericUpDown bug: text is drawn below up/down buttons. + // https://sourceforge.net/p/keepass/bugs/1254/ + // 5795: + // Text in input field is incomplete. + // https://bugzilla.xamarin.com/show_bug.cgi?id=5795 + // https://sourceforge.net/p/keepass/discussion/329220/thread/d23dc88b/ + // 10163: + // WebRequest GetResponse call missing, breaks WebDAV due to no PUT. + // https://bugzilla.xamarin.com/show_bug.cgi?id=10163 + // https://sourceforge.net/p/keepass/bugs/1117/ + // https://sourceforge.net/p/keepass/discussion/329221/thread/9422258c/ + // https://github.com/mono/mono/commit/8e67b8c2fc7cb66bff7816ebf7c1039fb8cfc43b + // https://bugzilla.xamarin.com/show_bug.cgi?id=1512 + // https://sourceforge.net/p/keepass/patches/89/ + // 12525: + // PictureBox not rendered when bitmap height >= control height. + // https://bugzilla.xamarin.com/show_bug.cgi?id=12525 + // https://sourceforge.net/p/keepass/discussion/329220/thread/54f61e9a/ + // 586901: + // RichTextBox doesn't handle Unicode string correctly. + // https://bugzilla.novell.com/show_bug.cgi?id=586901 + // 620618: + // ListView column headers not drawn. + // https://bugzilla.novell.com/show_bug.cgi?id=620618 + // 649266: + // Calling Control.Hide doesn't remove the application from taskbar. + // https://bugzilla.novell.com/show_bug.cgi?id=649266 + // 686017: + // Minimum sizes must be enforced. + // http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=686017 + // 801414: + // Mono recreates the main window incorrectly. + // https://bugs.launchpad.net/ubuntu/+source/keepass2/+bug/801414 + // 891029: + // Increase tab control height, otherwise Mono throws exceptions. + // https://sourceforge.net/projects/keepass/forums/forum/329221/topic/4519750 + // https://bugs.launchpad.net/ubuntu/+source/keepass2/+bug/891029 + // 836428016: + // ListView group header selection unsupported. + // https://sourceforge.net/p/keepass/discussion/329221/thread/31dae0f0/ + // 3574233558: + // Problems with minimizing windows, no content rendered. + // https://sourceforge.net/p/keepass/discussion/329220/thread/d50a79d6/ + public static bool IsRequired(uint uBugID) + { + if(!MonoWorkarounds.IsRequired()) return false; + + ulong v = NativeLib.MonoVersion; + if(v != 0) + { + if(uBugID == 10163) + return (v >= 0x0002000B00000000UL); // >= 2.11 + } + + return true; + } + + public static void ApplyTo(Form f) + { + if(!MonoWorkarounds.IsRequired()) return; + if(f == null) { Debug.Assert(false); return; } + +#if (!KeePassLibSD && !KeePassRT) + f.HandleCreated += MonoWorkarounds.OnFormHandleCreated; + SetWmClass(f); + + ApplyToControlsRec(f.Controls, f, MonoWorkarounds.ApplyToControl); +#endif + } + + public static void Release(Form f) + { + if(!MonoWorkarounds.IsRequired()) return; + if(f == null) { Debug.Assert(false); return; } + +#if (!KeePassLibSD && !KeePassRT) + f.HandleCreated -= MonoWorkarounds.OnFormHandleCreated; + + ApplyToControlsRec(f.Controls, f, MonoWorkarounds.ReleaseControl); +#endif + } + +#if (!KeePassLibSD && !KeePassRT) + private delegate void MwaControlHandler(Control c, Form fContext); + + private static void ApplyToControlsRec(Control.ControlCollection cc, + Form fContext, MwaControlHandler fn) + { + if(cc == null) { Debug.Assert(false); return; } + + foreach(Control c in cc) + { + fn(c, fContext); + ApplyToControlsRec(c.Controls, fContext, fn); + } + } + + private static void ApplyToControl(Control c, Form fContext) + { + Button btn = (c as Button); + if(btn != null) ApplyToButton(btn, fContext); + + NumericUpDown nc = (c as NumericUpDown); + if((nc != null) && MonoWorkarounds.IsRequired(1254)) + { + if(nc.TextAlign == HorizontalAlignment.Right) + nc.TextAlign = HorizontalAlignment.Left; + } + } + + private sealed class MwaHandlerInfo + { + private readonly Delegate m_fnOrg; // May be null + public Delegate FunctionOriginal + { + get { return m_fnOrg; } + } + + private readonly Delegate m_fnOvr; + public Delegate FunctionOverride + { + get { return m_fnOvr; } + } + + private readonly DialogResult m_dr; + public DialogResult Result + { + get { return m_dr; } + } + + private readonly Form m_fContext; + public Form FormContext + { + get { return m_fContext; } + } + + public MwaHandlerInfo(Delegate fnOrg, Delegate fnOvr, DialogResult dr, + Form fContext) + { + m_fnOrg = fnOrg; + m_fnOvr = fnOvr; + m_dr = dr; + m_fContext = fContext; + } + } + + private static EventHandlerList GetEventHandlers(Component c, + out object objClickEvent) + { + FieldInfo fi = typeof(Control).GetField("ClickEvent", // Mono + BindingFlags.Static | BindingFlags.NonPublic); + if(fi == null) + fi = typeof(Control).GetField("EventClick", // .NET + BindingFlags.Static | BindingFlags.NonPublic); + if(fi == null) { Debug.Assert(false); objClickEvent = null; return null; } + + objClickEvent = fi.GetValue(null); + if(objClickEvent == null) { Debug.Assert(false); return null; } + + PropertyInfo pi = typeof(Component).GetProperty("Events", + BindingFlags.Instance | BindingFlags.NonPublic); + return (pi.GetValue(c, null) as EventHandlerList); + } + + private static Dictionary m_dictHandlers = + new Dictionary(); + private static void ApplyToButton(Button btn, Form fContext) + { + DialogResult dr = btn.DialogResult; + if(dr == DialogResult.None) return; // No workaround required + + object objClickEvent; + EventHandlerList ehl = GetEventHandlers(btn, out objClickEvent); + if(ehl == null) { Debug.Assert(false); return; } + Delegate fnClick = ehl[objClickEvent]; // May be null + + EventHandler fnOvr = new EventHandler(MonoWorkarounds.OnButtonClick); + m_dictHandlers[btn] = new MwaHandlerInfo(fnClick, fnOvr, dr, fContext); + + btn.DialogResult = DialogResult.None; + if(fnClick != null) ehl.RemoveHandler(objClickEvent, fnClick); + ehl[objClickEvent] = fnOvr; + } + + private static void ReleaseControl(Control c, Form fContext) + { + Button btn = (c as Button); + if(btn != null) ReleaseButton(btn, fContext); + } + + private static void ReleaseButton(Button btn, Form fContext) + { + MwaHandlerInfo hi; + m_dictHandlers.TryGetValue(btn, out hi); + if(hi == null) return; + + object objClickEvent; + EventHandlerList ehl = GetEventHandlers(btn, out objClickEvent); + if(ehl == null) { Debug.Assert(false); return; } + + ehl.RemoveHandler(objClickEvent, hi.FunctionOverride); + if(hi.FunctionOriginal != null) + ehl[objClickEvent] = hi.FunctionOriginal; + + btn.DialogResult = hi.Result; + m_dictHandlers.Remove(btn); + } + + private static void OnButtonClick(object sender, EventArgs e) + { + Button btn = (sender as Button); + if(btn == null) { Debug.Assert(false); return; } + + MwaHandlerInfo hi; + m_dictHandlers.TryGetValue(btn, out hi); + if(hi == null) { Debug.Assert(false); return; } + + Form f = hi.FormContext; + + // Set current dialog result by setting the form's private + // variable; the DialogResult property can't be used, + // because it raises close events + FieldInfo fiRes = typeof(Form).GetField("dialog_result", + BindingFlags.Instance | BindingFlags.NonPublic); + if(fiRes == null) { Debug.Assert(false); return; } + if(f != null) fiRes.SetValue(f, hi.Result); + + if(hi.FunctionOriginal != null) + hi.FunctionOriginal.Method.Invoke(hi.FunctionOriginal.Target, + new object[] { btn, e }); + + // Raise close events, if the click event handler hasn't + // reset the dialog result + if((f != null) && (f.DialogResult == hi.Result)) + f.DialogResult = hi.Result; // Raises close events + } + + private static void SetWmClass(Form f) + { + NativeMethods.SetWmClass(f, PwDefs.UnixName, PwDefs.ResClass); + } + + private static void OnFormHandleCreated(object sender, EventArgs e) + { + Form f = (sender as Form); + if(f == null) { Debug.Assert(false); return; } + + if(!f.IsHandleCreated) return; // Prevent infinite loop + + SetWmClass(f); + } + + /// + /// Set the value of the private shown_raised member + /// variable of a form. + /// + /// Previous shown_raised value. + internal static bool ExchangeFormShownRaised(Form f, bool bNewValue) + { + if(f == null) { Debug.Assert(false); return true; } + + try + { + FieldInfo fi = typeof(Form).GetField("shown_raised", + BindingFlags.Instance | BindingFlags.NonPublic); + if(fi == null) { Debug.Assert(false); return true; } + + bool bPrevious = (bool)fi.GetValue(f); + + fi.SetValue(f, bNewValue); + + return bPrevious; + } + catch(Exception) { Debug.Assert(false); } + + return true; + } +#endif + } +} diff --git a/ModernKeePassLib/Utility/StrUtil.cs b/ModernKeePassLib/Utility/StrUtil.cs index 0b936f2..5287919 100644 --- a/ModernKeePassLib/Utility/StrUtil.cs +++ b/ModernKeePassLib/Utility/StrUtil.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -18,22 +18,34 @@ */ using System; +using System.Collections; using System.Collections.Generic; using System.Text; -//using System.Drawing; -using ModernKeePassLib.WinRTAdaptors; using System.IO; using System.Text.RegularExpressions; - +#if PCL +using Windows.Security.Cryptography; +#else +using System.Security.Cryptography; +#endif +using System.Globalization; +using System.Diagnostics; +using System.Runtime.InteropServices.WindowsRuntime; +using Windows.Security.Cryptography.DataProtection; +using Windows.Storage.Streams; +using Windows.UI; using ModernKeePassLib.Collections; +using ModernKeePassLib.Cryptography.PasswordGenerator; using ModernKeePassLib.Security; +using ModernKeePassLib.Resources; +using UnicodeEncoding = System.Text.UnicodeEncoding; namespace ModernKeePassLib.Utility { - /// - /// Character stream class. - /// - public sealed class CharStream + /// + /// Character stream class. + /// + public sealed class CharStream { private string m_strString = string.Empty; private int m_nPos = 0; @@ -208,53 +220,47 @@ namespace ModernKeePassLib.Utility { get { - if(m_lEncs == null) - { - m_lEncs = new List(); -#if !KeePassWinRT - m_lEncs.Add(new StrEncodingInfo(StrEncodingType.Default, + if(m_lEncs != null) return m_lEncs; + List l = new List(); -#if !KeePassLibSD - Encoding.Default.EncodingName, + l.Add(new StrEncodingInfo(StrEncodingType.Default, +#if PCL || KeePassRT + StrUtil.Utf8.WebName, StrUtil.Utf8, 1, null)); #else - Encoding.Default.WebName, -#endif - Encoding.Default, - (uint)Encoding.Default.GetBytes("a").Length, null)); - m_lEncs.Add(new StrEncodingInfo(StrEncodingType.Ascii, - "ASCII", Encoding.ASCII, 1, null)); - m_lEncs.Add(new StrEncodingInfo(StrEncodingType.Utf7, - "Unicode (UTF-7)", Encoding.UTF7, 1, null)); - m_lEncs.Add(new StrEncodingInfo(StrEncodingType.Utf8, - "Unicode (UTF-8)", StrUtil.Utf8, 1, new byte[] { 0xEF, 0xBB, 0xBF })); - m_lEncs.Add(new StrEncodingInfo(StrEncodingType.Utf16LE, - "Unicode (UTF-16 LE)", new UnicodeEncoding(false, false), - 2, new byte[] { 0xFF, 0xFE })); - m_lEncs.Add(new StrEncodingInfo(StrEncodingType.Utf16BE, - "Unicode (UTF-16 BE)", new UnicodeEncoding(true, false), - 2, new byte[] { 0xFE, 0xFF })); #if !KeePassLibSD - m_lEncs.Add(new StrEncodingInfo(StrEncodingType.Utf32LE, - "Unicode (UTF-32 LE)", new UTF32Encoding(false, false), - 4, new byte[] { 0xFF, 0xFE, 0x0, 0x0 })); - m_lEncs.Add(new StrEncodingInfo(StrEncodingType.Utf32BE, - "Unicode (UTF-32 BE)", new UTF32Encoding(true, false), - 4, new byte[] { 0x0, 0x0, 0xFE, 0xFF })); + Encoding.Default.EncodingName, +#else + Encoding.Default.WebName, #endif -#else // KeePassWinRT - m_lEncs.Add(new StrEncodingInfo(StrEncodingType.Utf8, - "Unicode (UTF-8)", StrUtil.Utf8, 1, new byte[] { 0xEF, 0xBB, 0xBF })); - m_lEncs.Add(new StrEncodingInfo(StrEncodingType.Utf16LE, - "Unicode (UTF-16 LE)", new UnicodeEncoding(false, false), - 2, new byte[] { 0xFF, 0xFE })); - m_lEncs.Add(new StrEncodingInfo(StrEncodingType.Utf16BE, - "Unicode (UTF-16 BE)", new UnicodeEncoding(true, false), - 2, new byte[] { 0xFE, 0xFF })); + Encoding.Default, + (uint)Encoding.Default.GetBytes("a").Length, null)); +#endif +#if !PCL && !KeePassRT + l.Add(new StrEncodingInfo(StrEncodingType.Ascii, + "ASCII", Encoding.ASCII, 1, null)); + l.Add(new StrEncodingInfo(StrEncodingType.Utf7, + "Unicode (UTF-7)", Encoding.UTF7, 1, null)); +#endif + l.Add(new StrEncodingInfo(StrEncodingType.Utf8, + "Unicode (UTF-8)", StrUtil.Utf8, 1, new byte[] { 0xEF, 0xBB, 0xBF })); + l.Add(new StrEncodingInfo(StrEncodingType.Utf16LE, + "Unicode (UTF-16 LE)", new UnicodeEncoding(false, false), + 2, new byte[] { 0xFF, 0xFE })); + l.Add(new StrEncodingInfo(StrEncodingType.Utf16BE, + "Unicode (UTF-16 BE)", new UnicodeEncoding(true, false), + 2, new byte[] { 0xFE, 0xFF })); +#if (!PCL && !KeePassLibSD && !KeePassRT) + l.Add(new StrEncodingInfo(StrEncodingType.Utf32LE, + "Unicode (UTF-32 LE)", new UTF32Encoding(false, false), + 4, new byte[] { 0xFF, 0xFE, 0x0, 0x0 })); + l.Add(new StrEncodingInfo(StrEncodingType.Utf32BE, + "Unicode (UTF-32 BE)", new UTF32Encoding(true, false), + 4, new byte[] { 0x0, 0x0, 0xFE, 0xFF })); #endif - } - return m_lEncs; + m_lEncs = l; + return l; } } @@ -282,16 +288,21 @@ namespace ModernKeePassLib.Utility // { // char ch = str[i]; // if((int)ch >= 256) - // { - // sbEncoded.Append("\\u"); - // sbEncoded.Append((int)ch); - // sbEncoded.Append('?'); - // } + // sbEncoded.Append(StrUtil.RtfEncodeChar(ch)); // else sbEncoded.Append(ch); // } // return sbEncoded.ToString(); // } + public static string RtfEncodeChar(char ch) + { + // Unicode character values must be encoded using + // 16-bit numbers (decimal); Unicode values greater + // than 32767 must be expressed as negative numbers + short sh = (short)ch; + return ("\\u" + sh.ToString(NumberFormatInfo.InvariantInfo) + "?"); + } + /// /// Convert a string into a valid HTML sequence representing that string. /// @@ -308,7 +319,7 @@ namespace ModernKeePassLib.Utility str = str.Replace("\'", @"'"); str = NormalizeNewLines(str, false); - str = str.Replace("\n", @"
    "); + str = str.Replace("\n", @"
    " + Environment.NewLine); return str; } @@ -479,59 +490,59 @@ namespace ModernKeePassLib.Utility /// String representing the exception. public static string FormatException(Exception excp) { - Debug.Assert(false, "not yet implemented"); - return ""; -#if TODO string strText = string.Empty; if(excp.Message != null) - strText += excp.Message + MessageService.NewLine; + strText += excp.Message + Environment.NewLine; #if !KeePassLibSD if(excp.Source != null) - strText += excp.Source + MessageService.NewLine; + strText += excp.Source + Environment.NewLine; #endif if(excp.StackTrace != null) - strText += excp.StackTrace + MessageService.NewLine; + strText += excp.StackTrace + Environment.NewLine; #if !KeePassLibSD +#if !PCL && !KeePassRT if(excp.TargetSite != null) strText += excp.TargetSite.ToString() + MessageService.NewLine; +#endif if(excp.Data != null) { - strText += MessageService.NewLine; + strText += Environment.NewLine; foreach(DictionaryEntry de in excp.Data) strText += @"'" + de.Key + @"' -> '" + de.Value + @"'" + - MessageService.NewLine; + Environment.NewLine; } #endif if(excp.InnerException != null) { - strText += MessageService.NewLine + "Inner:" + MessageService.NewLine; + strText += Environment.NewLine + "Inner:" + Environment.NewLine; if(excp.InnerException.Message != null) - strText += excp.InnerException.Message + MessageService.NewLine; + strText += excp.InnerException.Message + Environment.NewLine; #if !KeePassLibSD if(excp.InnerException.Source != null) - strText += excp.InnerException.Source + MessageService.NewLine; + strText += excp.InnerException.Source + Environment.NewLine; #endif if(excp.InnerException.StackTrace != null) - strText += excp.InnerException.StackTrace + MessageService.NewLine; + strText += excp.InnerException.StackTrace + Environment.NewLine; #if !KeePassLibSD +#if !PCL && !KeePassRT if(excp.InnerException.TargetSite != null) strText += excp.InnerException.TargetSite.ToString(); +#endif if(excp.InnerException.Data != null) { - strText += MessageService.NewLine; + strText += Environment.NewLine; foreach(DictionaryEntry de in excp.InnerException.Data) strText += @"'" + de.Key + @"' -> '" + de.Value + @"'" + - MessageService.NewLine; + Environment.NewLine; } #endif } return strText; -#endif } public static bool TryParseUShort(string str, out ushort u) @@ -550,7 +561,25 @@ namespace ModernKeePassLib.Utility return int.TryParse(str, out n); #else try { n = int.Parse(str); return true; } - catch(Exception) { n = 0; return false; } + catch(Exception) { n = 0; } + return false; +#endif + } + + public static bool TryParseIntInvariant(string str, out int n) + { +#if !KeePassLibSD + return int.TryParse(str, NumberStyles.Integer, + NumberFormatInfo.InvariantInfo, out n); +#else + try + { + n = int.Parse(str, NumberStyles.Integer, + NumberFormatInfo.InvariantInfo); + return true; + } + catch(Exception) { n = 0; } + return false; #endif } @@ -560,7 +589,25 @@ namespace ModernKeePassLib.Utility return uint.TryParse(str, out u); #else try { u = uint.Parse(str); return true; } - catch(Exception) { u = 0; return false; } + catch(Exception) { u = 0; } + return false; +#endif + } + + public static bool TryParseUIntInvariant(string str, out uint u) + { +#if !KeePassLibSD + return uint.TryParse(str, NumberStyles.Integer, + NumberFormatInfo.InvariantInfo, out u); +#else + try + { + u = uint.Parse(str, NumberStyles.Integer, + NumberFormatInfo.InvariantInfo); + return true; + } + catch(Exception) { u = 0; } + return false; #endif } @@ -570,7 +617,25 @@ namespace ModernKeePassLib.Utility return long.TryParse(str, out n); #else try { n = long.Parse(str); return true; } - catch(Exception) { n = 0; return false; } + catch(Exception) { n = 0; } + return false; +#endif + } + + public static bool TryParseLongInvariant(string str, out long n) + { +#if !KeePassLibSD + return long.TryParse(str, NumberStyles.Integer, + NumberFormatInfo.InvariantInfo, out n); +#else + try + { + n = long.Parse(str, NumberStyles.Integer, + NumberFormatInfo.InvariantInfo); + return true; + } + catch(Exception) { n = 0; } + return false; #endif } @@ -580,7 +645,25 @@ namespace ModernKeePassLib.Utility return ulong.TryParse(str, out u); #else try { u = ulong.Parse(str); return true; } - catch(Exception) { u = 0; return false; } + catch(Exception) { u = 0; } + return false; +#endif + } + + public static bool TryParseULongInvariant(string str, out ulong u) + { +#if !KeePassLibSD + return ulong.TryParse(str, NumberStyles.Integer, + NumberFormatInfo.InvariantInfo, out u); +#else + try + { + u = ulong.Parse(str, NumberStyles.Integer, + NumberFormatInfo.InvariantInfo); + return true; + } + catch(Exception) { u = 0; } + return false; #endif } @@ -648,19 +731,34 @@ namespace ModernKeePassLib.Utility Debug.Assert(strText != null); // No throw if(string.IsNullOrEmpty(strText)) return strText; - char[] vChars = strText.ToCharArray(); - StringBuilder sb = new StringBuilder(strText.Length, strText.Length); - char ch; + int nLength = strText.Length; + StringBuilder sb = new StringBuilder(nLength); - for(int i = 0; i < vChars.Length; ++i) + for(int i = 0; i < nLength; ++i) { - ch = vChars[i]; + char ch = strText[i]; - if(((ch >= 0x20) && (ch <= 0xD7FF)) || - (ch == 0x9) || (ch == 0xA) || (ch == 0xD) || - ((ch >= 0xE000) && (ch <= 0xFFFD))) + if(((ch >= '\u0020') && (ch <= '\uD7FF')) || + (ch == '\u0009') || (ch == '\u000A') || (ch == '\u000D') || + ((ch >= '\uE000') && (ch <= '\uFFFD'))) sb.Append(ch); - // Range ((ch >= 0x10000) && (ch <= 0x10FFFF)) excluded + else if((ch >= '\uD800') && (ch <= '\uDBFF')) // High surrogate + { + if((i + 1) < nLength) + { + char chLow = strText[i + 1]; + if((chLow >= '\uDC00') && (chLow <= '\uDFFF')) // Low sur. + { + sb.Append(ch); + sb.Append(chLow); + ++i; + } + else { Debug.Assert(false); } // Low sur. invalid + } + else { Debug.Assert(false); } // Low sur. missing + } + + Debug.Assert((ch < '\uDC00') || (ch > '\uDFFF')); // Lonely low sur. } return sb.ToString(); @@ -669,22 +767,24 @@ namespace ModernKeePassLib.Utility private static Regex m_rxNaturalSplit = null; public static int CompareNaturally(string strX, string strY) { - Debug.Assert(false, "not yet implemented"); - return 0; -#if TODO Debug.Assert(strX != null); if(strX == null) throw new ArgumentNullException("strX"); Debug.Assert(strY != null); if(strY == null) throw new ArgumentNullException("strY"); - if(NativeMethods.SupportsStrCmpNaturally) - return NativeMethods.StrCmpNaturally(strX, strY); + /*if(NativeMethods.SupportsStrCmpNaturally) + return NativeMethods.StrCmpNaturally(strX, strY);*/ strX = strX.ToLower(); // Case-insensitive comparison strY = strY.ToLower(); if(m_rxNaturalSplit == null) - m_rxNaturalSplit = new Regex(@"([0-9]+)", RegexOptions.Compiled); + m_rxNaturalSplit = new Regex(@"([0-9]+)", +#if PCL || KeePassRT + RegexOptions.None); +#else + RegexOptions.Compiled); +#endif string[] vPartsX = m_rxNaturalSplit.Split(strX); string[] vPartsY = m_rxNaturalSplit.Split(strY); @@ -716,7 +816,6 @@ namespace ModernKeePassLib.Utility if(vPartsX.Length == vPartsY.Length) return 0; if(vPartsX.Length < vPartsY.Length) return -1; return 1; -#endif } public static string RemoveAccelerator(string strMenuText) @@ -740,6 +839,54 @@ namespace ModernKeePassLib.Utility return str; } + public static string AddAccelerator(string strMenuText, + List lAvailKeys) + { + if(strMenuText == null) { Debug.Assert(false); return null; } + if(lAvailKeys == null) { Debug.Assert(false); return strMenuText; } + + int xa = -1, xs = 0; + for(int i = 0; i < strMenuText.Length; ++i) + { + char ch = strMenuText[i]; + +#if KeePassLibSD + char chUpper = char.ToUpper(ch); +#else + char chUpper = char.ToUpperInvariant(ch); +#endif + xa = lAvailKeys.IndexOf(chUpper); + if(xa >= 0) { xs = i; break; } + +#if KeePassLibSD + char chLower = char.ToLower(ch); +#else + char chLower = char.ToLowerInvariant(ch); +#endif + xa = lAvailKeys.IndexOf(chLower); + if(xa >= 0) { xs = i; break; } + } + + if(xa < 0) return strMenuText; + + lAvailKeys.RemoveAt(xa); + return strMenuText.Insert(xs, @"&"); + } + + public static string EncodeMenuText(string strText) + { + if(strText == null) throw new ArgumentNullException("strText"); + + return strText.Replace(@"&", @"&&"); + } + + public static string EncodeToolTipText(string strText) + { + if(strText == null) throw new ArgumentNullException("strText"); + + return strText.Replace(@"&", @"&&&"); + } + public static bool IsHexString(string str, bool bStrict) { if(str == null) throw new ArgumentNullException("str"); @@ -888,6 +1035,36 @@ namespace ModernKeePassLib.Utility } } + public static string GetNewLineSeq(string str) + { + if(str == null) { Debug.Assert(false); return Environment.NewLine; } + + int n = str.Length, nLf = 0, nCr = 0, nCrLf = 0; + char chLast = char.MinValue; + for(int i = 0; i < n; ++i) + { + char ch = str[i]; + + if(ch == '\r') ++nCr; + else if(ch == '\n') + { + ++nLf; + if(chLast == '\r') ++nCrLf; + } + + chLast = ch; + } + + nCr -= nCrLf; + nLf -= nCrLf; + + int nMax = Math.Max(nCrLf, Math.Max(nCr, nLf)); + if(nMax == 0) return Environment.NewLine; + + if(nCrLf == nMax) return "\r\n"; + return ((nLf == nMax) ? "\n" : "\r"); + } + public static string AlphaNumericOnly(string str) { if(string.IsNullOrEmpty(str)) return str; @@ -965,85 +1142,85 @@ namespace ModernKeePassLib.Utility public static string VersionToString(ulong uVersion) { - return VersionToString(uVersion, false); + return VersionToString(uVersion, 1U); } + [Obsolete] public static string VersionToString(ulong uVersion, bool bEnsureAtLeastTwoComp) { - string str = string.Empty; - bool bMultiComp = false; + return VersionToString(uVersion, (bEnsureAtLeastTwoComp ? 2U : 1U)); + } + + public static string VersionToString(ulong uVersion, uint uMinComp) + { + StringBuilder sb = new StringBuilder(); + uint uComp = 0; for(int i = 0; i < 4; ++i) { - ushort us = (ushort)(uVersion & 0xFFFFUL); + if(uVersion == 0UL) break; - if((us != 0) || (str.Length > 0)) - { - if(str.Length > 0) - { - str = "." + str; - bMultiComp = true; - } + ushort us = (ushort)(uVersion >> 48); - str = us.ToString() + str; - } + if(sb.Length > 0) sb.Append('.'); - uVersion >>= 16; + sb.Append(us.ToString(NumberFormatInfo.InvariantInfo)); + ++uComp; + + uVersion <<= 16; } - if(bEnsureAtLeastTwoComp && !bMultiComp && (str.Length > 0)) - str += ".0"; + while(uComp < uMinComp) + { + if(sb.Length > 0) sb.Append('.'); - return str; + sb.Append('0'); + ++uComp; + } + + return sb.ToString(); } private static readonly byte[] m_pbOptEnt = { 0xA5, 0x74, 0x2E, 0xEC }; public static string EncryptString(string strPlainText) { - Debug.Assert(false, "not yet implemented"); - return null; -#if TODO if(string.IsNullOrEmpty(strPlainText)) return string.Empty; try { byte[] pbPlain = StrUtil.Utf8.GetBytes(strPlainText); - byte[] pbEnc = ProtectedData.Protect(pbPlain, m_pbOptEnt, - DataProtectionScope.CurrentUser); -#if !KeePassLibSD + var provider = new DataProtectionProvider("Local=user"); + var pbEnc = provider.ProtectAsync(pbPlain.AsBuffer()).GetResults(); + +#if (!PCL && !KeePassLibSD && !KeePassRT) return Convert.ToBase64String(pbEnc, Base64FormattingOptions.None); #else - return Convert.ToBase64String(pbEnc); + return Convert.ToBase64String(pbEnc.ToArray()); #endif } catch(Exception) { Debug.Assert(false); } return strPlainText; -#endif } public static string DecryptString(string strCipherText) { - Debug.Assert(false, "not yet implemented"); - return null; -#if TODO if(string.IsNullOrEmpty(strCipherText)) return string.Empty; try { byte[] pbEnc = Convert.FromBase64String(strCipherText); - byte[] pbPlain = ProtectedData.Unprotect(pbEnc, m_pbOptEnt, - DataProtectionScope.CurrentUser); - + var provider = new DataProtectionProvider("Local=user"); + var pbPlain = provider.UnprotectAsync(pbEnc.AsBuffer()).GetResults().ToArray(); + return StrUtil.Utf8.GetString(pbPlain, 0, pbPlain.Length); } catch(Exception) { Debug.Assert(false); } return strCipherText; -#endif } public static string SerializeIntArray(int[] vNumbers) @@ -1054,7 +1231,7 @@ namespace ModernKeePassLib.Utility for(int i = 0; i < vNumbers.Length; ++i) { if(i > 0) sb.Append(' '); - sb.Append(vNumbers[i]); + sb.Append(vNumbers[i].ToString(NumberFormatInfo.InvariantInfo)); } return sb.ToString(); @@ -1071,7 +1248,7 @@ namespace ModernKeePassLib.Utility for(int i = 0; i < vParts.Length; ++i) { int n; - if(!TryParseInt(vParts[i], out n)) { Debug.Assert(false); } + if(!TryParseIntInvariant(vParts[i], out n)) { Debug.Assert(false); } v[i] = n; } @@ -1131,7 +1308,7 @@ namespace ModernKeePassLib.Utility Array.Reverse(pb); for(int i = 0; i < pb.Length; ++i) pb[i] = (byte)(pb[i] ^ 0x65); -#if !KeePassLibSD && TODO +#if (!PCL && !KeePassLibSD && !KeePassRT) return Convert.ToBase64String(pb, Base64FormattingOptions.None); #else return Convert.ToBase64String(pb); @@ -1249,9 +1426,33 @@ namespace ModernKeePassLib.Utility public static bool IsDataUri(string strUri) { - if(strUri == null) { Debug.Assert(false); return false; } + return IsDataUri(strUri, null); + } - return strUri.StartsWith("data:", StrUtil.CaseIgnoreCmp); + public static bool IsDataUri(string strUri, string strReqMimeType) + { + if(strUri == null) { Debug.Assert(false); return false; } + // strReqMimeType may be null + + const string strPrefix = "data:"; + if(!strUri.StartsWith(strPrefix, StrUtil.CaseIgnoreCmp)) + return false; + + int iC = strUri.IndexOf(','); + if(iC < 0) return false; + + if(!string.IsNullOrEmpty(strReqMimeType)) + { + int iS = strUri.IndexOf(';', 0, iC); + int iTerm = ((iS >= 0) ? iS : iC); + + string strMime = strUri.Substring(strPrefix.Length, + iTerm - strPrefix.Length); + if(!strMime.Equals(strReqMimeType, StrUtil.CaseIgnoreCmp)) + return false; + } + + return true; } /// @@ -1267,7 +1468,7 @@ namespace ModernKeePassLib.Utility if(strMimeType == null) strMimeType = "application/octet-stream"; -#if !KeePassLibSD && TODO +#if (!PCL && !KeePassLibSD && !KeePassRT) return ("data:" + strMimeType + ";base64," + Convert.ToBase64String( pbData, Base64FormattingOptions.None)); #else @@ -1283,9 +1484,6 @@ namespace ModernKeePassLib.Utility /// Decoded binary data. public static byte[] DataUriToData(string strDataUri) { - Debug.Assert(false, "not yet implemented"); - return null; -#if TODO if(strDataUri == null) throw new ArgumentNullException("strDataUri"); if(!strDataUri.StartsWith("data:", StrUtil.CaseIgnoreCmp)) return null; @@ -1301,20 +1499,25 @@ namespace ModernKeePassLib.Utility MemoryStream ms = new MemoryStream(); +#if PCL || KeePassRT + Encoding enc = StrUtil.Utf8; +#else + Encoding enc = Encoding.ASCII; +#endif + string[] v = strData.Split('%'); - byte[] pb = Encoding.ASCII.GetBytes(v[0]); + byte[] pb = enc.GetBytes(v[0]); ms.Write(pb, 0, pb.Length); for(int i = 1; i < v.Length; ++i) { ms.WriteByte(Convert.ToByte(v[i].Substring(0, 2), 16)); - pb = Encoding.ASCII.GetBytes(v[i].Substring(2)); + pb = enc.GetBytes(v[i].Substring(2)); ms.Write(pb, 0, pb.Length); } pb = ms.ToArray(); - ms.Close(); + ms.Dispose(); return pb; -#endif } /// @@ -1358,5 +1561,72 @@ namespace ModernKeePassLib.Utility return null; } + + private static string[] m_vPrefSepChars = null; + /// + /// Find a character that does not occur within a given text. + /// + public static char GetUnusedChar(string strText) + { + if(strText == null) { Debug.Assert(false); return '@'; } + + if(m_vPrefSepChars == null) + m_vPrefSepChars = new string[5] { + "@!$%#/\\:;,.*-_?", + PwCharSet.UpperCase, PwCharSet.LowerCase, + PwCharSet.Digits, PwCharSet.PrintableAsciiSpecial + }; + + for(int i = 0; i < m_vPrefSepChars.Length; ++i) + { + foreach(char ch in m_vPrefSepChars[i]) + { + if(strText.IndexOf(ch) < 0) return ch; + } + } + + for(char ch = '\u00C0'; ch < char.MaxValue; ++ch) + { + if(strText.IndexOf(ch) < 0) return ch; + } + + return char.MinValue; + } + + public static char ByteToSafeChar(byte bt) + { + const char chDefault = '.'; + + // 00-1F are C0 control chars + if(bt < 0x20) return chDefault; + + // 20-7F are basic Latin; 7F is DEL + if(bt < 0x7F) return (char)bt; + + // 80-9F are C1 control chars + if(bt < 0xA0) return chDefault; + + // A0-FF are Latin-1 supplement; AD is soft hyphen + if(bt == 0xAD) return '-'; + return (char)bt; + } + + public static int Count(string str, string strNeedle) + { + if(str == null) { Debug.Assert(false); return 0; } + if(string.IsNullOrEmpty(strNeedle)) { Debug.Assert(false); return 0; } + + int iOffset = 0, iCount = 0; + while(iOffset < str.Length) + { + int p = str.IndexOf(strNeedle, iOffset); + if(p < 0) break; + + ++iCount; + iOffset = p + 1; + } + + return iCount; + } } } diff --git a/ModernKeePassLib/Utility/TimeUtil.cs b/ModernKeePassLib/Utility/TimeUtil.cs index 3937678..9963dc3 100644 --- a/ModernKeePassLib/Utility/TimeUtil.cs +++ b/ModernKeePassLib/Utility/TimeUtil.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -18,8 +18,13 @@ */ using System; +using System.Collections.Generic; +using System.Text; +using System.Globalization; using System.Diagnostics; +using ModernKeePassLib.Interfaces; + namespace ModernKeePassLib.Utility { /// @@ -33,6 +38,11 @@ namespace ModernKeePassLib.Utility /// public const int PwTimeLength = 7; +#if !KeePassLibSD + private static string m_strDtfStd = null; + private static string m_strDtfDate = null; +#endif + /// /// Pack a DateTime object into 5 bytes. Layout: 2 zero bits, /// year 12 bits, month 4 bits, day 5 bits, hour 5 bits, minute 6 @@ -138,17 +148,118 @@ namespace ModernKeePassLib.Utility { DateTime dt; -#if !KeePassLibSD - if(DateTime.TryParse(strDisplay, out dt)) return dt; -#else +#if KeePassLibSD try { dt = DateTime.Parse(strDisplay); return dt; } catch(Exception) { } +#else + if(DateTime.TryParse(strDisplay, out dt)) return dt; + + // For some custom formats specified using the Control Panel, + // DateTime.ToString returns the correct string, but + // DateTime.TryParse fails (e.g. for "//dd/MMM/yyyy"); + // https://sourceforge.net/p/keepass/discussion/329221/thread/3a225b29/?limit=25&page=1#c6ae + if((m_strDtfStd == null) || (m_strDtfDate == null)) + { + DateTime dtUni = new DateTime(2111, 3, 4, 5, 6, 7); + m_strDtfStd = DeriveCustomFormat(ToDisplayString(dtUni), dtUni); + m_strDtfDate = DeriveCustomFormat(ToDisplayStringDateOnly(dtUni), dtUni); + } + const DateTimeStyles dts = DateTimeStyles.AllowWhiteSpaces; + if(DateTime.TryParseExact(strDisplay, m_strDtfStd, null, dts, out dt)) + return dt; + if(DateTime.TryParseExact(strDisplay, m_strDtfDate, null, dts, out dt)) + return dt; #endif Debug.Assert(false); return DateTime.Now; } +#if !KeePassLibSD + private static string DeriveCustomFormat(string strDT, DateTime dt) + { + string[] vPlh = new string[] { + // Names, sorted by length + "MMMM", "dddd", + "MMM", "ddd", + "gg", "g", + + // Numbers, the ones with prefix '0' first + "yyyy", "yyy", "yy", "y", + "MM", "M", + "dd", "d", + "HH", "hh", "H", "h", + "mm", "m", + "ss", "s", + + "tt", "t" + }; + + List lValues = new List(); + foreach(string strPlh in vPlh) + { + string strEval = strPlh; + if(strEval.Length == 1) strEval = @"%" + strPlh; // Make custom + + lValues.Add(dt.ToString(strEval)); + } + + StringBuilder sbAll = new StringBuilder(); + sbAll.Append("dfFghHKmMstyz:/\"\'\\%"); + sbAll.Append(strDT); + foreach(string strVEnum in lValues) { sbAll.Append(strVEnum); } + + List lCodes = new List(); + for(int i = 0; i < vPlh.Length; ++i) + { + char ch = StrUtil.GetUnusedChar(sbAll.ToString()); + lCodes.Add(ch); + sbAll.Append(ch); + } + + string str = strDT; + for(int i = 0; i < vPlh.Length; ++i) + { + string strValue = lValues[i]; + if(string.IsNullOrEmpty(strValue)) continue; + + str = str.Replace(strValue, new string(lCodes[i], 1)); + } + + StringBuilder sbFmt = new StringBuilder(); + bool bInLiteral = false; + foreach(char ch in str) + { + int iCode = lCodes.IndexOf(ch); + + // The escape character doesn't work correctly (e.g. + // "dd\\.MM\\.yyyy\\ HH\\:mm\\:ss" doesn't work, but + // "dd'.'MM'.'yyyy' 'HH':'mm':'ss" does); use '' instead + + // if(iCode >= 0) sbFmt.Append(vPlh[iCode]); + // else // Literal + // { + // sbFmt.Append('\\'); + // sbFmt.Append(ch); + // } + + if(iCode >= 0) + { + if(bInLiteral) { sbFmt.Append('\''); bInLiteral = false; } + sbFmt.Append(vPlh[iCode]); + } + else // Literal + { + if(!bInLiteral) { sbFmt.Append('\''); bInLiteral = true; } + sbFmt.Append(ch); + } + } + if(bInLiteral) sbFmt.Append('\''); + + return sbFmt.ToString(); + } +#endif + public static string SerializeUtc(DateTime dt) { string str = dt.ToUniversalTime().ToString("s"); @@ -218,5 +329,44 @@ namespace ModernKeePassLib.Utility return null; } #endif + + private static readonly DateTime m_dtInvMin = + new DateTime(2999, 12, 27, 23, 59, 59); + private static readonly DateTime m_dtInvMax = + new DateTime(2999, 12, 29, 23, 59, 59); + public static int Compare(DateTime dtA, DateTime dtB, bool bUnkIsPast) + { + if(bUnkIsPast) + { + // 2999-12-28 23:59:59 in KeePass 1.x means 'unknown'; + // expect time zone corruption (twice) + // bool bInvA = ((dtA.Year == 2999) && (dtA.Month == 12) && + // (dtA.Day >= 27) && (dtA.Day <= 29) && (dtA.Minute == 59) && + // (dtA.Second == 59)); + // bool bInvB = ((dtB.Year == 2999) && (dtB.Month == 12) && + // (dtB.Day >= 27) && (dtB.Day <= 29) && (dtB.Minute == 59) && + // (dtB.Second == 59)); + // Faster due to internal implementation of DateTime: + bool bInvA = ((dtA >= m_dtInvMin) && (dtA <= m_dtInvMax) && + (dtA.Minute == 59) && (dtA.Second == 59)); + bool bInvB = ((dtB >= m_dtInvMin) && (dtB <= m_dtInvMax) && + (dtB.Minute == 59) && (dtB.Second == 59)); + + if(bInvA) return (bInvB ? 0 : -1); + if(bInvB) return 1; + } + + return dtA.CompareTo(dtB); + } + + internal static int CompareLastMod(ITimeLogger tlA, ITimeLogger tlB, + bool bUnkIsPast) + { + if(tlA == null) { Debug.Assert(false); return ((tlB == null) ? 0 : -1); } + if(tlB == null) { Debug.Assert(false); return 1; } + + return Compare(tlA.LastModificationTime, tlB.LastModificationTime, + bUnkIsPast); + } } } diff --git a/ModernKeePassLib/Utility/UrlUtil.cs b/ModernKeePassLib/Utility/UrlUtil.cs index 8dae2b1..a41f1ca 100644 --- a/ModernKeePassLib/Utility/UrlUtil.cs +++ b/ModernKeePassLib/Utility/UrlUtil.cs @@ -1,6 +1,6 @@ /* KeePass Password Safe - The Open-Source Password Manager - Copyright (C) 2003-2012 Dominik Reichl + Copyright (C) 2003-2014 Dominik Reichl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -20,11 +20,13 @@ using System; using System.Collections.Generic; using System.IO; -using System.Diagnostics; using System.Runtime.InteropServices; using System.Text; +using System.Diagnostics; -using ModernKeePassLib.Native; +#if PCL +using Windows.Storage; +#endif namespace ModernKeePassLib.Utility { @@ -34,16 +36,30 @@ namespace ModernKeePassLib.Utility /// public static class UrlUtil { - // Bert TODO: Temporary fix, most of this class is not needed in WINRT. - private static readonly char DirectorySeparatorChar = '/'; + private static readonly char[] m_vDirSeps = new char[] { + '\\', '/', UrlUtil.LocalDirSepChar }; +#if !PCL + private static readonly char[] m_vPathTrimCharsWs = new char[] { + '\"', ' ', '\t', '\r', '\n' }; +#endif - private static readonly char[] m_vDirSeps = new char[] { '\\', '/', - DirectorySeparatorChar }; + public static char LocalDirSepChar + { +#if KeePassRT + get { return '\\'; } +#elif PCL + //get { return PortablePath.DirectorySeparatorChar; } + get { return '\\'; } +#else + get { return Path.DirectorySeparatorChar; } +#endif + } /// - /// Get the directory (path) of a file name. The returned string is + /// Get the directory (path) of a file name. The returned string may be /// terminated by a directory separator character. Example: /// passing C:\\My Documents\\My File.kdb in + /// and true to /// would produce this string: C:\\My Documents\\. /// /// Full path of a file. @@ -54,8 +70,7 @@ namespace ModernKeePassLib.Utility /// of X:, overriding ). /// This should only be set to true, if the returned path is directly /// passed to some directory API. - /// Directory of the file. The return value is an empty string - /// ("") if the input parameter is null. + /// Directory of the file. public static string GetFileDirectory(string strFile, bool bAppendTerminatingChar, bool bEnsureValidDirSpec) { @@ -63,14 +78,15 @@ namespace ModernKeePassLib.Utility if(strFile == null) throw new ArgumentNullException("strFile"); int nLastSep = strFile.LastIndexOfAny(m_vDirSeps); - if(nLastSep < 0) return strFile; // None + if(nLastSep < 0) return string.Empty; // No directory if(bEnsureValidDirSpec && (nLastSep == 2) && (strFile[1] == ':') && (strFile[2] == '\\')) // Length >= 3 and Windows root directory bAppendTerminatingChar = true; if(!bAppendTerminatingChar) return strFile.Substring(0, nLastSep); - return EnsureTerminatingSeparator(strFile.Substring(0, nLastSep), false); + return EnsureTerminatingSeparator(strFile.Substring(0, nLastSep), + (strFile[nLastSep] == '/')); } /// @@ -151,7 +167,7 @@ namespace ModernKeePassLib.Utility } if(bUrl) return (strPath + '/'); - return (strPath + DirectorySeparatorChar); + return (strPath + UrlUtil.LocalDirSepChar); } /* /// @@ -214,13 +230,22 @@ namespace ModernKeePassLib.Utility public static string GetQuotedAppPath(string strPath) { - int nFirst = strPath.IndexOf('\"'); - int nSecond = strPath.IndexOf('\"', nFirst + 1); + if(strPath == null) { Debug.Assert(false); return string.Empty; } - if((nFirst >= 0) && (nSecond >= 0)) - return strPath.Substring(nFirst + 1, nSecond - nFirst - 1); + // int nFirst = strPath.IndexOf('\"'); + // int nSecond = strPath.IndexOf('\"', nFirst + 1); + // if((nFirst >= 0) && (nSecond >= 0)) + // return strPath.Substring(nFirst + 1, nSecond - nFirst - 1); + // return strPath; - return strPath; + string str = strPath.Trim(); + if(str.Length <= 1) return str; + if(str[0] != '\"') return str; + + int iSecond = str.IndexOf('\"', 1); + if(iSecond <= 0) return str; + + return str.Substring(1, iSecond - 1); } public static string FileUrlToPath(string strUrl) @@ -232,14 +257,14 @@ namespace ModernKeePassLib.Utility if(str.StartsWith(@"file:///", StrUtil.CaseIgnoreCmp)) str = str.Substring(8, str.Length - 8); - str = str.Replace('/', DirectorySeparatorChar); + str = str.Replace('/', UrlUtil.LocalDirSepChar); return str; } public static bool UnhideFile(string strFile) { -#if KeePassLibSD || !TODO +#if (PCL || KeePassLibSD || KeePassRT) return false; #else if(strFile == null) throw new ArgumentNullException("strFile"); @@ -259,7 +284,7 @@ namespace ModernKeePassLib.Utility public static bool HideFile(string strFile, bool bHide) { -#if KeePassLibSD || !TODO +#if (PCL || KeePassLibSD || KeePassRT) return false; #else if(strFile == null) throw new ArgumentNullException("strFile"); @@ -300,7 +325,9 @@ namespace ModernKeePassLib.Utility return strTargetFile; } +#if (!PCL && !KeePassLibSD && !KeePassRT) if(NativeLib.IsUnix()) +#endif { bool bBaseUnc = IsUncPath(strBaseFile); bool bTargetUnc = IsUncPath(strTargetFile); @@ -319,21 +346,19 @@ namespace ModernKeePassLib.Utility StringBuilder sbRel = new StringBuilder(); for(int j = i; j < (vBase.Length - 1); ++j) { - if(sbRel.Length > 0) sbRel.Append(DirectorySeparatorChar); + if(sbRel.Length > 0) sbRel.Append(UrlUtil.LocalDirSepChar); sbRel.Append(".."); } for(int k = i; k < vTarget.Length; ++k) { - if(sbRel.Length > 0) sbRel.Append(DirectorySeparatorChar); + if(sbRel.Length > 0) sbRel.Append(UrlUtil.LocalDirSepChar); sbRel.Append(vTarget[k]); } return sbRel.ToString(); } -#if KeePassLibSD || !TODO - return strTargetFile; -#else +#if (!PCL && !KeePassLibSD && !KeePassRT) try // Windows { const int nMaxPath = NativeMethods.MAX_PATH * 2; @@ -347,7 +372,8 @@ namespace ModernKeePassLib.Utility return str; } - catch(Exception) { Debug.Assert(false); return strTargetFile; } + catch(Exception) { Debug.Assert(false); } + return strTargetFile; #endif } @@ -379,9 +405,6 @@ namespace ModernKeePassLib.Utility public static string GetShortestAbsolutePath(string strPath) { - Debug.Assert(false, "not yet implemented"); - return null; -#if TODO if(strPath == null) throw new ArgumentNullException("strPath"); if(strPath.Length == 0) return string.Empty; @@ -426,7 +449,20 @@ namespace ModernKeePassLib.Utility } string str; - try { str = Path.GetFullPath(strPath); } + try + { +#if KeePassRT + var dirT = StorageFolder.GetFolderFromPathAsync( + strPath).GetResults(); + str = dirT.Path; +#elif PCL + //var dirT = FileSystem.Current.GetFolderFromPathAsync(strPath).Result; + str = ApplicationData.Current.RoamingFolder.Path; + //str = dirT.Path; +#else + str = Path.GetFullPath(strPath); +#endif + } catch(Exception) { Debug.Assert(false); return strPath; } Debug.Assert(str.IndexOf("\\..\\") < 0); @@ -437,7 +473,6 @@ namespace ModernKeePassLib.Utility } return str; -#endif } public static int GetUrlLength(string strText, int nOffset) @@ -483,7 +518,7 @@ namespace ModernKeePassLib.Utility public static string ConvertSeparators(string strPath) { - return ConvertSeparators(strPath, DirectorySeparatorChar); + return ConvertSeparators(strPath, UrlUtil.LocalDirSepChar); } public static string ConvertSeparators(string strPath, char chSeparator) @@ -595,5 +630,106 @@ namespace ModernKeePassLib.Utility return false; } + +#if !PCL + public static string GetTempPath() + { + string strDir; + if(NativeLib.IsUnix()) + strDir = NativeMethods.GetUserRuntimeDir(); +#if KeePassRT + else strDir = Windows.Storage.ApplicationData.Current.TemporaryFolder.Path; +#else + else strDir = Path.GetTempPath(); +#endif + + try + { + if(Directory.Exists(strDir) == false) + Directory.CreateDirectory(strDir); + } + catch(Exception) { Debug.Assert(false); } + + return strDir; + } +#endif + +#if !PCL && !KeePassLibSD + // Structurally mostly equivalent to UrlUtil.GetFileInfos + public static List GetFilePaths(string strDir, string strPattern, + SearchOption opt) + { + List l = new List(); + if(strDir == null) { Debug.Assert(false); return l; } + if(strPattern == null) { Debug.Assert(false); return l; } + + string[] v = Directory.GetFiles(strDir, strPattern, opt); + if(v == null) { Debug.Assert(false); return l; } + + // Only accept files with the correct extension; GetFiles may + // return additional files, see GetFiles documentation + string strExt = GetExtension(strPattern); + if(!string.IsNullOrEmpty(strExt) && (strExt.IndexOf('*') < 0) && + (strExt.IndexOf('?') < 0)) + { + strExt = "." + strExt; + + foreach(string strPathRaw in v) + { + if(strPathRaw == null) { Debug.Assert(false); continue; } + string strPath = strPathRaw.Trim(m_vPathTrimCharsWs); + if(strPath.Length == 0) { Debug.Assert(false); continue; } + Debug.Assert(strPath == strPathRaw); + + if(!strPath.EndsWith(strExt, StrUtil.CaseIgnoreCmp)) + continue; + + l.Add(strPathRaw); + } + } + else l.AddRange(v); + + return l; + } + + // Structurally mostly equivalent to UrlUtil.GetFilePaths + public static List GetFileInfos(DirectoryInfo di, string strPattern, + SearchOption opt) + { + List l = new List(); + if(di == null) { Debug.Assert(false); return l; } + if(strPattern == null) { Debug.Assert(false); return l; } + + FileInfo[] v = di.GetFiles(strPattern, opt); + if(v == null) { Debug.Assert(false); return l; } + + // Only accept files with the correct extension; GetFiles may + // return additional files, see GetFiles documentation + string strExt = GetExtension(strPattern); + if(!string.IsNullOrEmpty(strExt) && (strExt.IndexOf('*') < 0) && + (strExt.IndexOf('?') < 0)) + { + strExt = "." + strExt; + + foreach(FileInfo fi in v) + { + if(fi == null) { Debug.Assert(false); continue; } + string strPathRaw = fi.FullName; + if(strPathRaw == null) { Debug.Assert(false); continue; } + string strPath = strPathRaw.Trim(m_vPathTrimCharsWs); + if(strPath.Length == 0) { Debug.Assert(false); continue; } + Debug.Assert(strPath == strPathRaw); + + if(!strPath.EndsWith(strExt, StrUtil.CaseIgnoreCmp)) + continue; + + l.Add(fi); + } + } + else l.AddRange(v); + + return l; + } +#endif } } diff --git a/ModernKeePassLib/WinRTColor.cs b/ModernKeePassLib/WinRTColor.cs deleted file mode 100644 index 3794df6..0000000 --- a/ModernKeePassLib/WinRTColor.cs +++ /dev/null @@ -1,49 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ModernKeePassLib.WinRTAdaptors -{ - // BERT TODO: Whole class is just a non-functional stub - - public struct Color - { - public byte A - { - get - { return 255; } - } - public byte R - { - get - { - return 100; - } - } - public byte G - { - get { return 150; } - } - public byte B - { - get { return 200; } - } - public bool isEmpty - { - get { return false; } - } - - - public static Color Empty - { - get - { - Color abc; - return abc; } - } - - } - -} diff --git a/ModernKeePassLib/project.lock.json b/ModernKeePassLib/project.lock.json index 78475a1..8936cd5 100644 --- a/ModernKeePassLib/project.lock.json +++ b/ModernKeePassLib/project.lock.json @@ -522,7 +522,7 @@ ] }, "Microsoft.NETCore.Platforms/1.1.0": { - "sha512": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", + "sha512": "+XHS7n+M0uDgC28FAzPVRvDG2SvxtkprfAdbd0Cf9Fqa8YgMuXPXvoTB0SW/W/Z6kbuvp0fVeDItXnC9rnL+XA==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -626,7 +626,7 @@ ] }, "Microsoft.NETCore.Targets/1.1.0": { - "sha512": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==", + "sha512": "dUUadXhJMY9VZYrGVdJDKzcXsYcUmadCTd1Kz4VQgLuZhaC+QlbC7tDkFSE+snB5TBLxmRU3ZfX8ur4buLawqQ==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -638,7 +638,7 @@ ] }, "Microsoft.NETCore.Windows.ApiSets/1.0.1": { - "sha512": "SaToCvvsGMxTgtLv/BrFQ5IFMPRE1zpWbnqbpwykJa8W5XiX82CXI6K2o7yf5xS7EP6t/JzFLV0SIDuWpvBZVw==", + "sha512": "q0mF2juY/56CMT5b+bi8uh90ZiH1DB8TCoaK6nOTRZPQmRiqz+8JuOIu1upvy21SZHoesIl9alCFXK5MlfKFuQ==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -776,7 +776,7 @@ ] }, "runtime.native.System/4.3.0": { - "sha512": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "sha512": "HhykbX7CxJfRxeSnztqdszl4wvsxTi3Q5vhPitlPQt5LKBI6q2cvXrQjBS1FTBgdA3O+rliE86qsDCu1mzLXYg==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -787,7 +787,7 @@ ] }, "System.Collections/4.3.0": { - "sha512": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", + "sha512": "odtewSKaGFM1cRV0i2f+fF1wDTcPLisgZVNa1Jrm88mDNAxD52TRh0U51jwqs73RH91GYI4ogCkF9r7W0zVoDw==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -852,7 +852,7 @@ ] }, "System.Collections.Concurrent/4.3.0": { - "sha512": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", + "sha512": "574p/+ur5xdbM7fZCoFJLM2pqCO4B843KdXjrxYZC9AGSiDwAtlq90gkgg3xg5YwcDPa/C7Y0Uylh2n7QIZ5nQ==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -917,7 +917,7 @@ ] }, "System.Diagnostics.Debug/4.3.0": { - "sha512": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", + "sha512": "1woBURpg50IpEZZ7BK8AZe1T24GsBY+e6MyEufMAPVMZoVzRDRwejOLLfIIkgY2hgw0bk6CXAFg4dB2iFF5IVQ==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -982,7 +982,7 @@ ] }, "System.Diagnostics.Tools/4.3.0": { - "sha512": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", + "sha512": "cNBqRhfTSwBU0OfXuTvV+sRaE8EfJRYrkh1giN74UvENZb6SHLJw23GroCIrvyV4j03gp0a1028I4dEsRi0XoQ==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -1036,7 +1036,7 @@ ] }, "System.Diagnostics.Tracing/4.3.0": { - "sha512": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", + "sha512": "sE7+yUZUrkcebditDSxZLnsCwG/oI4RELRdhSmen0ig1AH1kW5b9ztJ7HQbK3sCIuY0Yd5OvqyX0pOie4T35fQ==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -1123,7 +1123,7 @@ ] }, "System.Globalization/4.3.0": { - "sha512": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", + "sha512": "VqCYVd4WTRcRl/U08cJOFmyDFPs79CFfcEbav+p7Q5Sj7Lokf0R+mD0TEc+f8+GVBRtaff6b+mknJnIR44LvYQ==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -1188,7 +1188,7 @@ ] }, "System.IO/4.3.0": { - "sha512": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", + "sha512": "YsCDVvNbX1fQsiQuBRb7Wy/v+L14iJ0JhzInNXsblcU2wUZ8fD33Q5RBRZ4PUu2iZKQ6KnrfaOxWScxoGcIoPA==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -1266,7 +1266,7 @@ ] }, "System.IO.Compression/4.3.0": { - "sha512": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", + "sha512": "+G+M250pfD6KOqeADMPvbO2jPqV0UMtE3YECosM/p5bU0Krytlo0qNBrqtbk7uHJS3kOle5kk3T7zlxd/z/pTA==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -1334,7 +1334,7 @@ ] }, "System.Linq/4.3.0": { - "sha512": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", + "sha512": "w9wJuI2T9KXZmY/AS7E4PUVzGPS0jhlx1YlKsgzShgNj6Vk9iN7R8qRwWB2kvD+Ki58cpRwM87fVD5yivijJEg==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -1403,7 +1403,7 @@ ] }, "System.Linq.Expressions/4.3.0": { - "sha512": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", + "sha512": "EjVvFE83n3Ih05PIJ611aMBS321nFT7FS1yIpcnVHLVB3GqaCWaVPMg7/kklhlohrUPXJ4PS5CeUlIBmXMva8w==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -1484,11 +1484,9 @@ ] }, "System.Net.Http/4.3.2": { - "sha512": "y7hv0o0weI0j0mvEcBOdt1F3CAADiWlcw3e54m8TfYiRmBPDIsHElx8QUPDlY4x6yWXKPGN0Z2TuXCTPgkm5WQ==", + "sha512": "wMTk4xwcImunKYNGcMC35TFe/8LKBhzc1INgatMHmbGt6hNu3IsxcwpYD8r2zstiv64uKK+GTgfxJ7Lh91Qnqw==", "type": "package", "files": [ - "System.Net.Http.4.3.2.nupkg.sha512", - "System.Net.Http.nuspec", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/Xamarinmac20/_._", @@ -1519,11 +1517,13 @@ "runtimes/unix/lib/netstandard1.6/System.Net.Http.dll", "runtimes/win/lib/net46/System.Net.Http.dll", "runtimes/win/lib/netcore50/System.Net.Http.dll", - "runtimes/win/lib/netstandard1.3/System.Net.Http.dll" + "runtimes/win/lib/netstandard1.3/System.Net.Http.dll", + "system.net.http.4.3.2.nupkg.sha512", + "system.net.http.nuspec" ] }, "System.Net.Primitives/4.3.0": { - "sha512": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", + "sha512": "Ds2qmHelD5W4JYm+FOub7/4OWbVWKXXsL4+pVVhZxd3urA9yYI6UFPMEnIbK9mCG7rvoli+PVpbczlcy8H+Jmg==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -1599,7 +1599,7 @@ ] }, "System.Net.Requests/4.3.0": { - "sha512": "OZNUuAs0kDXUzm7U5NZ1ojVta5YFZmgT2yxBqsQ7Eseq5Ahz88LInGRuNLJ/NP2F8W1q7tse1pKDthj3reF5QA==", + "sha512": "ZvKLMYR1iGBh3ianvGnqMojG8uLtq1jhviCrojW2QUZEPUYKhB28gtLt5iW51nsvmGhFh1WTHvh9CenMuxzLbQ==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -1679,7 +1679,7 @@ ] }, "System.ObjectModel/4.3.0": { - "sha512": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", + "sha512": "yXnz+D4S6l25VS9SuCrS8cyVKWgeAQJ/v2epBlTL1cM+Xs6rx0/6gUAXTTruCZiO1UjrhX56isX8DKL267D5gQ==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -1746,7 +1746,7 @@ ] }, "System.Reflection/4.3.0": { - "sha512": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", + "sha512": "gWKa+cLy5BkkDxp6iuKYNQVNlxir4VYpR7siMIW8vQI7lR9E5PsR+Fmm6h+ZzTCu2XFMf9sNvRYRw727QmJ0fw==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -1824,7 +1824,7 @@ ] }, "System.Reflection.Extensions/4.3.0": { - "sha512": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", + "sha512": "MZ0vyVl3i7SpA8hLhKjb8wrJ9s4a/bggVHasDqNrbpbkbyMaaYxi8dUDduh5K7RFAHJaR45BAW7+TMbpoQ7Oqg==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -1878,7 +1878,7 @@ ] }, "System.Reflection.Primitives/4.3.0": { - "sha512": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", + "sha512": "QcIJSKt4ksNWnTWkNc7fqdnaARA4or2omXIXVi1hzccV8AixhcW4gVNfpdz/jE1cldDBRSeySM5PbF8M3GUHbA==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -1932,7 +1932,7 @@ ] }, "System.Resources.ResourceManager/4.3.0": { - "sha512": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", + "sha512": "DRxdwZJGYZA+sp8Ht53dvNPr8NLsbBzctIrpbx4UFylYbDsoDQzJwchNarrRnwiIfsZHkXYA3HCKewNr62XiRw==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -1986,7 +1986,7 @@ ] }, "System.Runtime/4.3.0": { - "sha512": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", + "sha512": "a+38DiHlk4UA1NMs7Ty0/izJb/ukQtEhDgoy2xrGppdA/nVOkOC1JtR9HCcYYHfxXxQNNsjQ66NNvrbM3oVTrw==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -2075,7 +2075,7 @@ ] }, "System.Runtime.Extensions/4.3.0": { - "sha512": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", + "sha512": "P78VOZ2fZUq3otcfcf+6zd+EhWijXhI/BWk/wd9RnWFAddhO4hnlpiqxAIw1yPTZJSWRG5VboYyUmB8xcmcHpQ==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -2153,7 +2153,7 @@ ] }, "System.Runtime.InteropServices/4.3.0": { - "sha512": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", + "sha512": "6CC8BIjVaMtHM3OvOOO0cirqqF6CNluOPtc/DNBkieZhMiz676cszc5ciNCiIWcTcNW+Mb0Cs8LWZrhK7W+rdQ==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -2243,7 +2243,7 @@ ] }, "System.Runtime.InteropServices.RuntimeInformation/4.3.0": { - "sha512": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", + "sha512": "rf6Ebmg9wgokWKK14uiVNdyBY7g4yLaZ4edbiE6XcNX5fyqtgHZTKuP2MFkkzQWL9NGX2LSIfodKQNVnOM+qCA==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -2275,7 +2275,7 @@ ] }, "System.Runtime.Numerics/4.3.0": { - "sha512": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", + "sha512": "H73WuUWJAH5UQE1MIxWLdqg+skdOBBwGA+fLu4JgPHJ+0tivNLBrN4TQdJGDvVeGPxrN229R5muocedVVAIfbA==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -2382,7 +2382,7 @@ ] }, "System.Text.Encoding/4.3.0": { - "sha512": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", + "sha512": "3hnC4XGk/ip1HnQuDpA5L3aOsYXSl4I7OlwSb40WlTIEVtOP9VrcqPN4kuT2L3a1kXXr8emjPePQcbtYVjRvjw==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -2447,7 +2447,7 @@ ] }, "System.Text.Encoding.Extensions/4.3.0": { - "sha512": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", + "sha512": "q9p8y7bgIQR7IQJQBeOL3TT4H0vg634anhTKgbao9gHvFmmGJkJF6eNhX6Tfcu5vFbKqd+I1+kW/6hVdZXqPmQ==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -2512,7 +2512,7 @@ ] }, "System.Text.RegularExpressions/4.3.0": { - "sha512": "RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==", + "sha512": "SJ9qrjcnDx6YwpMpIgeKL1K/4/uDAHCT6Id3aey/z66H9SIX8PcG2TQ+gYNg7VGm7tI0wkLsV+8dMxbxTam7Yw==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -2593,7 +2593,7 @@ ] }, "System.Threading/4.3.0": { - "sha512": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", + "sha512": "cm4+iLU+Gvodk221rboVLwWguLuPOl/bkcCtr+k9hc4tvngnw/dJaoUPqIEsU/FWcCusXk4po3ydFxmRp2lXyw==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -2661,7 +2661,7 @@ ] }, "System.Threading.Tasks/4.3.0": { - "sha512": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", + "sha512": "1je8yxoIxd0iVjfJbb9DXNIfTt6ESMRIwNwoaB0WhxSfJMLOhfJ3mb9UQsa6Q/98g6jEOyFdSAbr+fPEgwbKUg==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -2726,7 +2726,7 @@ ] }, "System.Threading.Timer/4.3.0": { - "sha512": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", + "sha512": "BzzEELyI/Jct8o0jOeXisFR5uawc5yhFVlgboaxWWWV/Fjahi/ESRRaHlR1HMWAyZsNnybq7v57YgWTVd+NAkg==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -2778,7 +2778,7 @@ ] }, "System.Xml.ReaderWriter/4.3.0": { - "sha512": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", + "sha512": "41StQbCnhTjv/daEuN55cqY4rUYP1NQI9a8cQktBxDbF5QLFsIvcr9mIFGQ2nrzrk3DYHKwpJ9AkVuMiYymtHg==", "type": "package", "files": [ "ThirdPartyNotices.txt", @@ -2847,7 +2847,7 @@ ] }, "System.Xml.XDocument/4.3.0": { - "sha512": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", + "sha512": "WT8lBJSEINzk3c9dm3n0vlqb9Z9PoORD29n/rbkcNh3feSZTJeYQ5+xgSbJhdsyvpmsRsE56fdsH4fchJt65PQ==", "type": "package", "files": [ "ThirdPartyNotices.txt",

    +46}Bi!ffPjkRmOtW8j z&^M5L%r}Vs59Cbe8-k~OLut++XEfh1yyY7~a~qj+@QuQ|zR@)IkfW||EI#m!r+J7R zb$t`bkCEf8Z!$jhO{J0K>135qEzh9Q2zBx-daW={oI(Z42 zp{o#xEbDk&(SaK0;Q6&E#V=&4nKMIK5lwl~2(7 zkbPM`g`dc0ut+|OE#&j~v3wDO@?}PbkY}dy73?IJ(Dab6k-rjtDPO1Qj+__d8`x96 zg`dlJ=sP24ANd~n3;6-LtFW8=h&)(+LO(<}RDMSDlki8mlztGhoy#wAxcnM_mZcW# zFS4cu`-^attRw#->*+@$$8b4;JQmptWCMBd-^3l&jMm zm21!(5$=&|((D!PmTS@PLT0Pv+T;VsES6k{yia&s&ZhYjITy(F$R~w=$PH+Y2@lB) z=?^1Um2wVwCvyEMHzsdKX5{2NJR>{tFS!8E%1!Z{?8Zy77ca{)UX&F)FE_(eatk~y z7qXsvauNA1ay=;r$^RnPA##}fkMO1(rMV@%A-AIcPxw%7L;pzlL~cj_7@5zJJCN@q z-zJhfl5Y#I%AIIRkb4ukGx-W~o|3!bbGaLq%H8pW+yh_Ay-@P^Mzy~Ws{DQNmD~@X z%Kh<~T#Oq3KrHVcgk}9hu(E$B>#riL>K{h)Ch~;WKZ5**u$q4q`ECDbe9J$UrSJI1 zldB_7;`|fIHH0<&lWE>X?n?Yq@jd@^tnHscU&lX-{JyZRe-2GHavbo_Bi9o)^e>?K zK=`455q*xZfqw~oePLr|8GSA?1E8$Hd}Sp%mDO0FtidMAI&>);7+GH4M9xIM)gx~q zmqqSe{M*PYgv%WNG{g-iv{|avLm*7_aHOB1m zUnlPt?(*Lt@AcopZ{#~H?StIi%lF8Ak?T_V0e&Yx!l?WN_xqo*^Z;_d>@OuB@xLS= z79RD#Cja4=KIZq&AWsnd8uBUO3BQi!PvIHAp8S_T0Z;o4j5+T&lFtb*_)RpQDi)d! z!gh*{raf{Etl050C5>jPoI#!Ge#S7+%8iG>lg-F?hLs*VP!JbRi@(m%5?gM$_(-c$Q+0=i(DT$!YFgd4&jH& zJaUe*02?Wbu&I9uV?Gl4{L5&($ULfl1=)@Kdr$vLa)Hq4Urpl@=KI&s=Lr@6I{E-| zC*t3L&HbCOg?|ec`nTaH{vG(Se;1nkd(iCKhx`=?_D!#b{2y{O@ao8ygcrPenv2L8*_(j(yas&i zHR64*2_JYZ_|R*^M_xNV@uuNZZwBsgm&KRvOxE*C_`;n#l}Z-PQ45cMV29aMvW?7d~{?B0qB1#>ehD_{5!!T2DPjrh6KY(}WqGhBRf6 zz0#9|Wj&2)>U;9Y^^mJ#kCWU$nBys+X@p!Adzz9zM7BDQ8}mJ0%=O6F*rTvi_B12= zgdR@|8ZR=>;3-7KQ-oDLLHh69VRB#O-}btrsxm(9Omwg!`*#wgu5?G zM+(Qd`_YU>?i1bp$)kj0-Noeb?twVYJqYKzhcIRyavpIHB`-kE1@2+wmBK~t5i|>t z>sa?F@?zxP&^?;GRJhzdmSzPqE8-qcUX9F$xF?d=AoC&a$+*rv6*s%5<9hcD+~A&t z8{KnolY1U+aWBBF?nS)zsCx<|?$vn8y#`Oa*Wo$$ z2E63ngty&Wc-1ZUHu6p6nC#g>wj#%B&n~iAX!qpq0{+(#JshUXZ$ zBJzLVc#e}Rp`@zdIYG`6W_nK1lt+%Vo-^@l+$f{H)N1hrq4}}*zHR&%3FMDdyUlRW9sZDmf@QJ4>KJ~cq zna7J7uZ+(<3YL1B;R{a-)@kz=lC8oNZxK1e8>BCT9N)ZQtl*8(R7B4H-d5P$+lHnE za!&NNBNrmuiMIn5c{^fjZzuXT$adoGj2*pQv8%Tm{TIl6y0<&|b7VH#+k@N%d1~hE zh26Zp@k?(X{L0&xr9F^4cW*y(FJW(Qf10n6D{5~s`5WQ4-ht%4-a+`CcL?_L4#gk5 z!x%YGILJGK=11Z8-cj`Zg~i^{^aF%HdB>86ddK5n??fEpos2(wr!syRat!oN$FbfS zG~;-eu&q!u8%2H0y+?y({U@ zAV(+fYTV>qgPXnUu%>SVOW#HA;C!3#J>M2|__op4L$0QLJID=?t1RCxZ0OsA%f0*P zS0G1A?*SZLc!*|AR(J|07M{Tgg=cYm z;dvZecoDxVyo`Mdui${f66{}i4a?M+VAsND*rl)(zbbr*JquqW=ddESkU|aiF4PrqT~w$iPZCZo zOdwAwG~moaBhDx^;mSe_&MCCv>_R&(EKI`%g&DY}uq<}C>u z_f*2Oo+^wvhs;-as*>Ays*zg@+j^?gv_r0_JvFesrzTeO)}ntKxhD74#wmGqXiB}= zueS~PU1UbW+m8G{VZOHmO&)Sz@9ju#EX?tCqG^O|!`{y150NV_Z&&gM!usBB zH1&i|Z+EiC+XKDcUg-1oM%mj3{ocN)c>AHt+aC+O#n{9<5Ch&p*wi}&Kk^Pmw|5xE zc}HNXcN9M{4Y^b&ySeo+4x!60NT*W()Tv_<0cQQHbok|}OhP=~hg2JeG207-P z#nSfPIplW24&Hg>&%6uhCEp^l3c0KGE+M}Xs(s67G{~RLw*s}km8kQrrZ@T4kduW; zzI8N4p~1I-J`wrek#7?@UTF4hAzOUg(CXWPHs3DBr2F=e(}Z^4KAKcvIo|>Lvce4C zA^I}NJK#Hl6@14q({~)p`%bWQwD%PG7vUK18S-rJS^7D`S>E$BGljo;FVfFIt`)tP zah~@I&i9tk@AO_H?+|YDUZ>fP+z@Phr-7>2J({} zBRrk^*1%}pn!GAhw-z}l4A-qqj?}G#AJ@&s=5^~arUkP7*KL5!>NZ5B zZVm?OHfCwNx_RWb!ZvlC7I-D65KD53 z@M=yF|H%pC{hTOz>$XBq-8Pt+*AA=Yb-*9;J7RHuCv4;FjNj#T#V*cn*wNXYKig-> zm4mYfe(vl=)5G1H{1x&<*xiTxg>Y|PUvjatAN>!)0nYw3{e|B-i^)Tr196aZ5M%NJ zL&&*8S70bj0rIyC3?n;*O#>rnng~A%j3RpiqtP80i{8L^M#_PSWS`I>1cZ-%Hpdu!a6B~M*dRRC9s30EAp-e zc9FXYI|la9d@B4ru#dhoa-<3zAa_Ep+XIJiVBiS;5IBa#f#WzJa00&%oWlNrGuSt9 z7QYRg$9{o}_+8*K{ua2x+Exme1xjd^B3CSdYvkp~U18uld9iR+;0F2kz%5)IxPxl~ z_i$a{0VCHVS6qQdZ@=sy<*T`lNC!j7&&`cIMV z&{ah4B5dXg(li&gbA{>K3T0Q6-Y<-}TG5AvF;^SC%}cJ!@Fq}E_L-_%ra#D!PN^7x_aYDS06m=>Wf=l{cx|V zKkjoC<9^pbJm4CH+gwBNv}-8-;Tnd2xklg_*C;&Y8jY)6WAS&_c--Tfh`U{rai?o4 zo^?&fU9K6p!!-*Jx#r*|*F4RN}# zTpRF+YZGpFZNV+BZFs`91OIgG!sD(zcq?xo@4#*3yZ3nq@Mhj2G`Nq@Cm~lF?qlQ! zdB@53g%9&i&^!`8$vZ{=SeWHLLoVk&i{;(tG1Gk!Yq>9@(|v_kxsYo!cM16;0I4qV$KU_E_R*`g46ZrLh_`ON1+9HR)F&TUx9Z`FCV%iPgrnu{yXomW@+m^>9k80nUsy zWaKR5SP{!1&k#1k@9`ceG3m1lD znnlR?kV0M{oEvIJGe_Q#LgOSfA)RFuX@=1j{;jmC=n&HSN80v~6LfvRag}ReR3V#Xp zpcyS38|p9U6}(BNOpdWHQzZPi1Y#Let4d zg@-~jXbuYxhGx+p5bg`jq2G@ji$e3rdy!*BXaNomF2dsA68ay61A@zF`V0F7SI~ct zocDt($=?aT4X&o?BkUbqL;sEN>)<;2UdZ>TgB!@*g*}3s$UTEw=wF1kkxPY7Lp#XN zLc8#JXb*l8*~ge7IrE&K$}gr8x2q?Dxz$hUnWFL8b3HExJVVa_QL4ep8Pa9voBOM?kGA!rD* zPT`oKk!G}Ta?nIS1=$yZ7V>=I+@OtSj&N4cPCr{XGnhs{1DQPtW{{@~rv}T?OhdNz zU?z?VX5lZvia0h{3C9Ji;P_xwTo9~=3xm~hQm_VQg=%7Ys21zVK)$OVs!dKsw%$-3 za*EIt%BD#cnnU%-mQVw=mt??mPqA|1(1BAv(u!rwxjX;vcF523EOI@Aq+4|S(sgB*cFJ;>{X8$!Kk z)(ba=ded(bZVC0F-z?l3>Px>3Id_Npk#`_>C6WFpM~cxO8Hh?`5K9Bd`7tsCW09dW zt&sWN$S|xF8G)4}qp*EsGY@_mhe8tSdpzRd;n9zhiL4`JWu!t zIZc=mK1P#{JV_59CzlbH3!k9LM6OuEr^s2tis3Uf6@+hu&yp*J&$Dz-_#%0?aBuiB zd0+Sn?hlvXf$%lP97L|-!q>@%k-ua31|ALHqB(|KjfC&u@$fzTFY*9yL>^)N&=U*? zpW)76DdTq`?^W<6d53UY@HNd=;pU(e;ae8SwPH|%8-hCA6x8G1U;_F>2D}tB;@?3N zUI|+8YS4xyK|B5vOv7uz4E#4(79*id>>SEs{q=(t$@PSFgOzBqh3^Ne(AO5$305UL zg4M7=usV8zH5lm?x`Q=oK0>}>7_3EZB6J07(-a7u!8-K$!bZVt`o_qf7_5hR!3O9I zHN+aB9DEjRjL(C4SQ>QVi(mnM7Ho>0f^Iw<^y1N=%-W72?|e`pA4fi;U^6@tY=M6U z3+YcF=hk2m`4sZ$1cP`w7{)WfDE<{}g=d3p@LaGRo)31w3&D=O>RzxD`L6JOurv8V zuq*vTtHV$Rj3zP3iU>Hs1IsFed)ErxKKYDolqa@Palu$ zHKAg1qA)2mkj5aq5gbIm861MQfTb4Ed2&# zyNZq{Z$gey(TU_O$emPdGP#?ub8ITj=fclo)9E`2JH}?ve=6(}n?>IhnbC^QAr~Su zFtK^)i7h~HY!Sv{OIRw$mXUoze{2Pfg3QUpR+5_ui(;#3J`pyLts%FFtz+rO$UQ=A z0~W?MVe8lyY!lmtEn_x!FG4h${al9El!I)dZbJ0^YXN7-7&yep%&*GivdAuFHi07l18GiwJQXIX47o#OK zmyqvCMz7)D(d#rqqVM4TKG&Y4jf;-vo7NSsM6>AkBKOzPisaqMU3Rn*c_(rNh*lvV79NaNr8ywn7p+FW zA2~imtCNok|A^M0IVL@ECBFBwbGjgIZKGuRpFVw{f>En=NY_y2{9Qhn$L9!OP28)KtuY^)8 zO2c0OOQWsmUm!=JSQ~sDZHGy*4ycZGL}RQICdWGC<7ihj#k%2>Xm@-X?SUz=UaZG1 zw8eVUScU1aKJ*#L89dgPToyUk$NG`ekU57~e=HX(rl}SkNPbKBW^@ouRpg2&I)q$B zSTj15=6}L>qQmHG2&+d&(7%m*|1CO-{I2l5=xCbS$a9D2SgaErkBws!>2s0uRBSTY zg*@$wO(lPbJc)=+CpQx2$7ayv2@7Jg$W3B%@U7T9##9qljV+*gQ&>5+h`x%jZfpsC z9pnjJY#F(>uvTmZ&3nRkV=L)v3Twnx)Bg{778zSZeg~P^i><@AV;iu3Y!hb3wxA=n z4eP~rV5QhDd?U68heY@B+Mk4jqX%dP35P}x(f=&`F?xi4AaWNOJw`4T_KzN?86f;6 zdV+qGa76SJ{Yd2AJbH#a9J%X>o+Xb#?nWf_lITU85WS4n=oNY!a!nX5AzOr| z=rx*TVM_Emy9}7t0}rZZ z;bGOB%C%K$X?5j#s*k1Bs(Px{(l*SMW?;TF3tiG2Y$DCWkE8|Ykrts(T7rIQ83v>k z*j!qPU8Fv(f^-G{kRIWm z(i1-E_UZ)5r;4d{*jlZ}wrUN2sy5(fYNI5pzEM}luhg0NxjGBGs4LPq;fx(fDG zSH-W@)g-^_2Xz__P}}iawF!SzXW(FUS^Q3I!SB^JsYta^?ZxftX1G?}6nCmy;Cg=1 zK#^**TE?wvMQW+qtIm@`s>A96JgRm|5!GpRV?3$Okvgf$X&RtaQwz42YVI$}r@#+I5OMl?}NFV&Zt#@JKi#IH1YmhV*~H6_OH zRl_w`jK!+?n(I=rYOdy*G*oq3lc64}I;ly+KQuP{Q)5>TQ$5sl#^)kGr5~nxtm%rc z7(Yz)g7L#tcQx(swx$E#)O5uAnojBwDyz0JmeHnRIc)}-wK7#b+C!HCc3mWFrcl6&9x2Cqpgh}X=|Zho2?$F`dT|$8mIbRI~fOPr{WLV>G-2| z2F}!Oz~$O~_>FcfeyJUX!?p8pq;>)RqFsbzv`cWDb{S64uE0s!l{iJa8o$zxz@M~p z@LTP8?5Q1v-)Se}H0>JvRl5#nYd7Is?G~J`-G&RbJ8-df7cSNA!NJ;D__KB(ey$ya zU9>~+3++&8ylS_0gnGQ{cWpmhtL=~LwZ*tmI}kT(2jN!j5ZtaEiaWK#aFw>Nda~+Y zZB_h7TLu5qR>Pax>iD;|EMCxN;w5bsp3_#utJ+HHX{uM+@%UUj8lP%M;S23p^{*@6t8SpKg3E$RPu!2sno}VSYOvoJzv#UcR-r2`ciiWzt&yE&veJ|bKP<5qC0_K=uY8Ry0h3*cOKj84&kS| zBlxZE3Vx?6!EbbzrG=`Ix_dZWcLRUY-NK)BcR21Y);+=Hx>Ed2_Yzm>UgJXDBm7+_ zsh6nM>NL1sr^BVXXY})R52WR)SGofAa#c!P5L4sAm>w5JZJZO!#I?e5acz)aEsg3p zH^#+zF+NVl#5e_$;+kP{TnjYE6{0n+NWDtsid(5(ql(2X!cXF6VavEV7>b*Rk+=o; zaoh}S9k&GA#x2A4aVykYRY&7$Xtt{Uh^vWz#?``;akcSuTpj!?E*sCq)x!&M4e(N& z4gZd7h*#rs@SnKG_-|Yu{uk%O!*SK|U|coLHdTr~4J+%b;?1~w>TRlIy@hPn+t8}F z}`bzkQz6!pGd(HUUaS!lr+#|dn_XHotJ;SGQ zrT9GVC2IA0#wY1bsM2dtt=HkJI0@tQ2^g<8V4~ir*`az%-$AoW^}fCn*41}LhrTPm zr|+oQr)s1hq&cJ-u2*oJz6fXP+u>||0sg3Oii7oT{7LV{pY<}1)HlOl^eu3Vz7Qwq zgE&ba#wq$JPSdx-U-fM?hgCcESJa19oAu}MH~lf3uit|U_4{zK{s3;(U&QVD%XnCS z3zzB-;d1>E+^sLcz4~joUw<7B>TlpG{c-$Ve*)L)PvLs~8QiEpt3Ihx#Rrp4svhdc zXPs23Pz#-w9puov}%LSNtfx8+ziq&==nW{qemp5Z@b{$M?aH z;IC#)%d zTlHVU7JQhn4R0o_!`lfP@NUAU@^@9*#2uKFcmNX<_n|rQ2qq^U!nnj;7@xSO`~y`= zqVA1Hs`SKX6(6bINYs$aB$krPCBDS+iLbFjqVz_oDnGHP{A*SFL??ccC}WpIFMgd^ zh;0+|@YBQs{4B94exB&Y)`^WVmY9QICMx(``7T{gl|Xe7rP2u?;Rw?0}0CgE%uWjI$G?I5)8sE=+8Ps}eio^2Cn#TVkj33DWP0 z{mUDqjfuT+ePSQnoY=R#QQDo@ue?>dlsE+cN-V~|6Nlo}#9??LaS;BSI12ws9D(N& z2bQ-<|0T{SZPQ<&3WAS$4XndMD74IjG$H$42%cn_khUw+YNM=KW3S}g#p&_Oi zaw=4lat(^PnpD@|#PrLq9fks|Z)l1i7~J@w!HbOyGUgkaq07($n-~hs??}xJ zLHyVdHrJ41hI$w>)WL`$8`~OcV{1bLY-wnS?F~8jsiCp?U8#$qmbsSnrSJ=Fj zry**7U;5E-UjM!{(ollm7>?oBh9mf`;W&P0IDy|APT>H<8T`R;76%(H;!lR_()-fS zhRfvPhAa4s;hMg#wAo-Z*OfLJ47k-`!tDkNt}kSF? zzZ-P8)}S{#q(2OIOb+Rw;W{2R+`yxTTc-NbzlPWNiZS*1+DZbdlMJX$GGbhk3FDJ2 z_>iAcUwX<$1r`MNWu>SheV}5RZ=|95*ylHrZw+&D5uHhNp=g-qnYLb*`ZYbp^ zWuPmmEc%ivp+Bh#HczUCA177EPm*e2Zc-WslB(i|Nj7YhWXF$^ve1)M(cDNHnIxMU zNn?_l;V(&wDPNkKw5@W!G(TwvE=<~0*(GgG+JbA7*5Uf34Y)CB6aJpGrm|PMpHy1O zE8R|df_Iai;lD}u@L|$Re4O+epC(C+e4eDi7fCvNm88f2k{+=1X40cdMN*t`Nm`Ml zH7>$L;|feNuEb>HYK%87OAAVG7@uKfV=2CAe2MQG_31(Bf5u1T3dSe+mhm;dZItNW zF>0{9QI{T)-Z!323rYFL8|X6L!Y0N$_>u7*dW;Y7J>z+F7%yU7;~A`Pyo?_hui%Hq z5^Q9=hPlS;X|1I(#)S0N(gdRoM;ZlflXT9wCatsduW=Jz zHLk;dj2qIrO6KH!n3TK=lau#g`Q%e*O+J7r$%imC`3R;bAHy=q$FW@U35-wPf^o^) zFfn;YT2JZCWR0b#^j5MC-{$hJxAb0e4!)b*(9&1xnQX^jl5632$qD#*vH`m!8}W-| z6MmU&!LO2SI4QXv4o|LuQ<59tx5;Jkv*b+tJ~;~qBv-^Ak}Khl$yIQ0a#j2(xf=eQ zTphnj&cKn$HE~RGZ5)?e2PY(FV`#nMqm4wU{$HdP)d{he&UtI0;Zl$=m`i1ai$oHayx zk=zQOCr7hJNU5gL+zY0g#-i0U0#i(*u$*ZkmNAXzzOb^%pc^H;9}D?Txz8g1k{$n15Tg|O-r@0;OHg~|i=8m}E+zAhwJL6$syNOg*g*nnX^!3sfcPzCDdA~V4S5Y##^dklBGH(TWX-$QWLF~ zT9{&~jj5J8m~P3&4=rJQZZ3;uEcLLQr2&?=G{g#)9IR}~!#6EXe9KaRZ(Ew;I~F(o z&*H^*Ei%4mQSg0BGpuWAfeuSybf?!@ZV)xYN>K zb6mP_8ILzDqwua}EdFa5g10TB@v3Dg{$m-2|5-+8PD)nmER45K#1!isOtsF#bn5~v zV_k%a*2$P;or=lU>1ejj(43Xtw)RLmE4^dwh5xhm#&@lK@I7l^eBatH>7o>~uEzG( z4fv^b6MiZBPpnJGEv?HiWL<$DTUTOh>l$opU563tBK*v{1wXfL!!Fhx_yz0#Tl&u0 z0>8E@_^q`Weq)vKM{5|rw-(|6YZ3ln4JKWY#s~*9{)+Sq{S|2>W3EW!7=K0jiPv6{ zer7#aq~Wajsx*@^SEacuy(&$xw!=x*4micy5vPeUzp{p_(rngTA}zLd#rf7wxX{`e ze`gIP(o$35@{{3y(S&DPQ|^}vAEkh9`{=(;z8@=q#M$o z{Hbn8r+L*4=>o61Asyv!aYH)E+HOdH@F%|^{l(9^A)RAwx1@ipGw`Z)deR-~p|w9g zwhqPH)?&PC9f+^2qw&6V5Z<&7!Kc(umv316AwyrqA)(t1wy5kgE51eM}g}>T*<4jv0oNeoib8Y=_zO6ql zv=!rG+dy1u8-&YkL-04-P+VoJioe^c;aXdD9AFFM54I@&XlsRoZEf&pTRR+X>yW8Y z|I0{?db4c?{$X2f^8dKvhB#!svp~&Xilk)Pi+Nw z+g1<%vo*lGwj8`^Ylw*{MHrXT0^?H(F)5`gKDRZ+7dAJ(vU!nT$A;<@1+^*7Fgc|f z-nTWzhqk;-o%#)aqE2m1se!2}wJ<%UHkL`LgXL1Pu{`V7sVneWojN6@W~M>CDrFdM zq&KKH(;L)VS&u>ed&&r0n=%U5r;N@_QXiyGQg2VGh`Up&;9g#pq~6b~lGHm>DrK6~ zf2O#zOzOW<6g-_G9g(~|TRNLpF*1iDa?29noz62BP%P`5l0+a14(QIFh zR{Il7u|LC9dnu;dUt$^iYb+lV`9xK}u@J+h`-?AI=ZMzBIv0Lze zb{oEHx8r;EG<@H_fwk4OZ$gKC3)Z)9!w>8`@I(79Y-Hbqx%S4qC;9d~blIKQ#J-RI zBl`jL*fTOS)cbj_GSr(HpP}B$_zd-S#%HK^GCo7SoADXyy^POLkF-z3jjTUIJ-|K` zf3Oe3AMGP>uzeK%WFL(`+sEQ?`*=KPKZ3v5d*K-SR2*lYjuY%NaFTr%PT}3oP*3CC z&QSl#yPct)$-AAQp3S?Rp`OdTouQu3yPct4$h)1PUd+3lph-)Q)ztsmuS?a`SM68y)ztslgIU$o|JY0PHPo-{g;_Oth+c&1 z)az2Vx@~HUtZa4b)Mi-?)yq>$$~RR1mU<1Rq#na*smJlx)Dt)}^%TxdJ%e*o&*J>l z^SCheA}&t7j7w9m;HuQ?_du0EHh!^3IM$~Ra4lV&2HOnXf}ohFelr0MZe zS^^$TdqV$rnt^;Z&4_=bmD2o~_7eX}(_|H@|4XY_u26kDtqR^vtBUv2s^QJFO67v; zGU;BdkX{SlOwY#jbQ#}HZ-DQlH^l#?=is~Pjq$zoJbXXh`F|YUXIPVG7r=4IlRQsY zipWTU?7e~{OecgHkN{y%_uhN&z4x}(x@)afYpqog1hrONxcA;#wYF8OqVNCp%kR3c zJLjDHoRfZNucj5FRjC-OGGYr=2KuU^Fi;hT-YPvdQ-z_sD!f^ltd%OHS%s{OtO{8L zSrsw^pH|3{__RWnLJt+PG_opW>C~x^wWFU3nTcu@vTXXPkeTVHLY7BA6|w^QsgM=X zPlc?6ekx=g=%JHrmFg}oQ{BWBs@phARgZI2=W(9uA}&x}#zm^DxI}fmSr^$p)kJ)$ z`W0WRe#1Aa1Ne`s65pz-@V)9Veo)ooC)H8>toj`-)PJB%U59e@DHPRbaHnb{?pBS) zJ*u&|S2Z5bsfOcz)nq)Vnu>>1)3I7L6Khnn@rY_J9#hT7hH69o6@EPxS*nQ2mIHR6pSp)h>Ld`WauS zereWK)=piEqnM?u%vwDXmFm@Ks~(Mw)ML?JJsus@6VXvU8J*QrQKg=a8ud(UroNBv z>WAp5evIDgr|7GGj{fRDF;M*qgVldwsQPczs{h62>J6wu!Z_Z zY^DAQ+o*S8y!vM}sQ=%8lKKFqs4Fo|U4`lD!)Q_;#ccKOXjZ?&JoSHAp#F$O>IN)P zf59@frCV27g<8N4Y6W&uOV~wih27LP*h6iHz0{4dkGcu=Q#Zu{Y9}0|cEKV1wb4~J zjK4Oz%0{TwZrx>*)W0_CAzQ1yEA^1AQ{Tt+>W4T-U5{(jPc3`MR;h1uo~1s6^VH{Y zf%+mYQeVa;>Z`a+eH~Y*Z%RF7o5|`a+epn`vhAFE$+l9tmuwrAd&`b+?k(FvwcfI0 zUvG9(v$w38$lkIVvUoF3?*)*$v+9C%Z%^{bX0@aG>ms+RA;P?6q3Lw`x25M{R>I)e84PGP%YQ->cub z4U&CO|BDuy1{5^{_n*}NasI6Sh%(I=x4|-%<}xxi6M$5k&iNLKIJ?_-B#EqJ8+@XoX^_nnTrwPGrnkd|^ ziE$q%JE-YtIZk#+)7x^Q?3kvzwlqZ9EsrTDS_>%2k1FTqTTmwenmc z8|P}o39cD9#x>P*oouITBJOrg_S_&l>zd%XRd&y{zvWih9oN2=KgeFXcE%U39W77F z_PD7Vos{i%bHQzHjd8nM6Wrm}6nDBgH994`1B^ z;65FPxVN@=Dx2rN9A|tz&mrrnY?Aw8oJIUo*%bGsIE@O=WlO%g$bBW}WyC+1tsv&5 zY@PdP-1_yroeD2y>)prVM&e(}HWT?$w#|LK#cSDaZeGjw5%XHM(|tbf;nUZ$z2v@; z9dw_F)!e+1)qK4TY4C)rzKKFR)Z z=l4>w_e6e{DLs-==8=nXj|3Dw{(sN^xYNQ?aOP7>!GU{A!QP`SHu6YBM`8q_88?EU z@i3x0F@oUv_1>E-g%He*LePFahjOnF0*O}${vN6Ph$7M>17o?7gcd|fLK`9_A=)Do zTM=(9qzbQiV*ZVvotp$@uDQ1&vD|Gp4CvI$oZp7FMWgcCz2a&cyg-1v1 z;L(}iz4h~Gj{`i)aS-v1gdyZM5=Ic&NEk-0y)cKfy)c7&dtr)4U!3*zej4%i!UT_= zILYJxzqecF(I3|l?;xxp-a%MPq=T@ENC#ns$3R@-G1$UM*iMX-u-RiFZX?D?*h;*M zu-juQ?&HQq*y%AF_Y>(N?EU)bL64D~_jpXVPz&cg;yl&DS&taJ;1P}|JR+5cYW21J!|oV=V4i_aL#k2 zqJ?nHb39)09II#}Jn@_>ZzDYNoGnijoV{Gp+RF_!ULk1f<$;a7ywKju2OYfp(9tUZ zRbD~zB*E9~i;yG)dI_9^y%gx_^^qHQum8~7s{#GJEafSJ!OI0(c{RZ#FEzIDYKrk* zPVzLNz{`kvUa45-m4!uK8Cc?#DbEzZuPn;&cc-pHR&w91Tb6y?s zf>&p}o1{D_~i93e)f8Y@4f!U4_>c?B0==FlNSjxZ!1)KH%7U)4f2C6d8yFI zdpO#Ak3qT4(b;>vyj<}0o{8Sx)8!q7SntW$!h5Q`yHMhtsOT;fc_(1D zcO06%TVkGfYb@|?tLPzg^UlI9-kDh8os1p4jo8UM1IxTq6}^OE-UD%fcW)fz-4};= z_gC~5#(8(d3ErJ?ig$OM=G_w~d3VJz-t85AggM^BahCT`oZ&rKF;F<?^eQhe%#@j{xT<0?%*ZVBQjXsNUv(Hl8>a!fT`K-k4KC5wu z&o{W!=Ud$E^BwN-*?@a}HsL;>Ex6z3dpzj#10M4E5vzTEQp^z^P;HLz)~6oN`TUG0 ze15@`KEL8=pWpDT&jGyPQ;C;+s_+VZ&JnKB=N#b%ea;bX(dQiD4t>rM?$PHQ;gQc_ zeBx7!&wP&J3!mTdrOzMu+NTcR_?*Ije9qu|pY!;^=OTXcxs0EEuA+tSb;Ufv-gh=O z^IeV(zH`yhcRo7%E<}~@V$}F9Rjd{^`!*F<3k!T3I4|=3f=hfYxmo5b;0j*_uJV;| zjjt81^|iruzIM3Yw=r(?Z6dA_w)y_6SR?H8{fOIr|HiGp?{J6je~Pujao?wwYlRx$ zKRF-qeTBz-|H4DQ_i?}PLp)D2j8aB7U8q66<$jIvy>Aoz2=x0_{9fqbSBl<#E78|)HTwH~ zgH!yfFxc-q4E5W9TE9)$+;0o&{JzIXzaKE#??;UF`w3h4?ZQ@mKVuueUohV9S2Xzj zhDm;HF~u(d)BF-K-7gv2`K6-C&xqN68EE#)#5}(&Ebz<0BEMWL@yo|Dze23=E5=TK z<=DlqJ$Cc!h&}u|V=uq1*vGFs_VeqB1N?g9Aiusi#IHXN^BagG{08GFzo9tBZ#a(g z8;KMA4&WreN^zH9?VpcI|6FY3UySztrRd;aj*kBA(b>Nvs{A{n#=k2z^Y4!C{yovt zzc+gO_eEd-{^;*N5Ci=OW3c~F4D}z5TK|#w!f!mj^qYvU{U+lZzp3~SJKQC_Wrw?j z_v~<&@PQrf5S{&hj z6i4~D#WDT~IL<#2C-^7hB>z;L;%~%hR6Zcgpz;A>7L^YObEtekn8#)g2n*QK0b$YC zSC+7)1Hv-4bU;|amJSH3*wO)E4O==OtYu3FgmrA`fUuq|9S}CMr31odwsb()%9aiY z+t|_pVLMwoAnagE2ZWt$>431CEgcm0`u{Fg3eR|}Qn*JamBJ?~R0?y^T5 z-mMf~(nF>2naY)dML=Ja1@uRGz(5oO2BR`yC|U;$N85mr_@3S>g(pl@DLi7jO5p*M zRtg{Jwo>?qDJq3GOjIenWtK|e7MrOQ_WA#T`~BG8>tko@QqXo*Z4*%g&TY$hlEA} zZ818aJH`g|#5DRpB-jTephG|+ItC=8b3iJp0{)++3CO@^0h#C?kcFNBIp`gbi@pK* z=pRssfdR!B98ij(0p+L-XphYUI-)M1Ge!n<#TEg*u@xIWB(!0}hlF@Gd`K{`;X^_a z8$KkYu;D6U9`{v31szri9q6!1=tPHA!Yp#DggN9^38sL#m>w__+Xc+V1=Oh$7Ez~4 zSn{>bGA6AO%Gf}akR31|%>mOfFJK`Kq5mqOAYd_eVfHGa8?#plJ(#^p=*8?+LLX+Y z68bTFl`w$WtAs(!UL_1;>MCIbQ&$P2n7T?B!_-y6IHs-=CNOoCP!zBfO9GbTBsNeb zOyOIo5~lGjR0%WKMzyeqx2lC|I;j?pP_0@xMzw0;IMu3!6I81fPExH}I8B9W;Vc!Z zg>zJ>7A}0PaEYB%3s=}lwQ!BSRSP%RL$z>=JyZ*K*h95&k3CciHS}C9tYBBw!YZ~` zEv#WD)xuhKQZ1}wC)L7wwoxr?r1NTFGo4opTiIT%jJC8`u#W z1$IXJz^>>J*c}}Md!ln-Z&U^LMfbqL=ovT^y#t4%Z{SFL5a1*o79It-;FAC~K4Swl zLIp83f;KP}n+FTs1-xbJYkb%vB?#Gf|Duj)`i7;J`#QF;|U{&0IBt znYn6&Jm#tq3fOavP{f{VgWMy)W3No$2E?4(wh z#!hO58El|dn8#eT!UE>16&5j9t+0f-YK3KNtX5dTbhW}NrmGd!FjuXxmbq$$b<9;O ztY@xTVIyYKyX<1e6CQq8OBn%Ai!V4l<%`PzE*%%0&C1EOZFULC2t6bPmc#RZt;n zf{L+OP${|xm7`}+d-M+Kh`vFc(LboGSSO62t2!Z_SL%dO%u*+ep~E_%8!>f4JKn7m zOuSnsWbx2s4trI%%Zk^DHck6^Myjv#> zVHErM z>VzbARVSpdtJA`iAXn+EFek_lX9f94=Y%CeUbrI24VMLZNSB0-L8X?Lgv~+amY0QX zL4~+IsMzwhus^6+x-C=(J>|SFsF3sCpnN z6ojXPLhwXTI9>>fz)L}Tyb=_J*Meg3Mo=8y32Ke^g4*JPpagsrlqlU7RKcmJ3C>0P zU?VyNXP{$nCOQXaVWZ$2>4D%G+#dadyQ6n-XY>v3itfQ3rH4XjaDNOA?khbKw81^G zd2ny(u@D(N6m`MFrFTMT$UqDZ87zGehK0<;AtBRoM96HZL0A_u6<36e#5ExkaaqV{ zTop1NmxPSPwIP!w3;F(#g}5(dJ{}BNjC(`oN=o^)kZ;f_ zFGE)2vykQZB4i~#30W%H%dJCiqAc_xDnqZMZRl-m6#CTCUTz&c5hMtm~FouTKN-BAF=qoG;eTwGL=a?7zCw2(^4~s(o!cL(du}f$Jb_@N2WugCK zN$B6$Bh*rI2Ne)315YP=Qdf)7HQ;GNK>crVmR z86cO1g`sU&2x`LOuu+&7%ENq64D&-}SO8jw1)+UdI68zypktUGox`F~6&9lmlzWFY zM$a%iY!+sP?qN2{=5ljbUn~k6j3r@1u`FyjW{360ys-XQ5H?U5DW4QJ6{mzv$6;Y( zaa7ny91}Jk$AwMA31O3QMA&F$w0u?AY+M^QA6JCU#5G}al`Z6(!`fRW$q$D8q)d_@ z3NvC&SSD77WhhhRC&Ieo>9C%7GOW8YUH&$#J-!Ib$CqJ+_$(|J--MOoKVjwgKCB~t z2kD{S%jHU*R(CU${d1 zH%`*t#5LM?xK{fguG4+L)#d4YMbCbts1v$?QplYDeloa;a;taRfYVBR>I?28$719!fLI6HChE8 z)P7M`$PZ~Pt=h{^YIE_lHXko&OYwxZ9M5Ts@vOEGFKKhEI>@hSe^+*p-_q9M9qlQ+ zr#*vLv`6uV_77!8`9InOtB!J6cou%r8j(Lj03T`f_(U6p&$Kc4LK}xKwJq_rwl%)d zw#B#FM0~GJ#s}I|{Gg4%&)N*DPI7s;n^hOND*Upti`+519v#BZqjUI0We<5-_-|+q zuf@FZ16UAViACX6SQ36%*;C#lJjkl2yhFGL_6rZkF5!OID?9|dg$H0oxEJ;b55rF3 zK32ozN5Y5V@$iv&B78JfhY!S>@WFU2e7Myp`MvPo_#nKm)oA&X@cvd~<*&oL;y>XX z@lAMld>P&u--h?J8Ylk{-rj1w{B!tNv}iuwYP#IM`ES0TF;cL zn(wljDR*xElhs`Ll8EndS;P;xBH~A@dGb{e-&!q{Z;RM~TO+>1?Gc--7Rz@=Y_VD@ z-yg9Yt0TU_gApt7P{eAh3YEIU_#vVeZFNVnk?wc2*ZqMGx;nJh{fy4KGpN$lqegcgo9Qm1 zyY4c2>aL=8P)AhIhQT|Mqg%5N_{Ge-(FLXKh zR#%EIb-DOjmyd6Bh4@I9flqXq_>Zm_uj$(2JzXl^(6z)Xy4Lt!SB{r-33yAFh<9|! z);r{%bi1s7l3VC!qo`kqO8sK|tec54{alpm=UeZT+v>kZYyB4M-SX!8@u<^J#7O;Q zjMYy^fBj(e)epr${csG{kHk>@Xw>S*Vzhp$_0RHn{d23In)BE5hm zdIgs0C9Kd}VF$epw$VQ%vWvbk=WhBY*hAkGd+D99kKP6Q>D4$u?}`TfpTsBWUtx;= zFHF<_jp_P-v7P=Mw$eYw7W$`X(*K9q`j0qB??#0odJi0?_rei+9~`Ck!!i1&mOslo z>Fun4kx$VF;4*z2&d`V8G<^`x(TC$aeFQGh>v54j3TNrVaEU&~x>9~bf5y5>epdfG zp4R_?=k#@WL4V5nu>6X?-nv$PM}HU}=#Sz(eXaFT`D=X@zR(}Qm-=tQ*Ws#O>Ao7eniO4hZl&_I#k*_$XNB)KFBL7BH zI-$%ybhsc)rDY7+wj%gD^`PrZCU`>B_2 zWCQi`Lu{j7Ud_(y*Z(JXTAI! z`>dB=U|03>OYEv%euZ7t%dfGkdif1@RWHBAuIlCYzHaFb8#^zzj>@#TD7TL?qC-@M z%~g45)J5y7@)l9|v3b;a)J9##;Haypi@J`HQ8zI<>Ndtk-L<|UZx>Z;b3>jTRgQ+J zEKG{Z!IY?6OpD6L^r%8KMU~pzlJ|(}jNPI-Vwb4)*ej~5&24#~sO~m*y=l=n(x2YNCI&`7GB)S7K=N0h=%K=FwF)az%&eSC|)lAB&=At(dqv;0krV@>YjIHYQ5+Wi2abrY!y(bX zW54LbHdcx`(dThS^ckELU61pkPuW;27DQjPu~)2*{ukFq|Ap(K|F&^ZY>$42JEH%y zQ7cYFXWFV2)zOJ~JURnwqLcAZbOIiWHsX=!RNNok8V^RdwRKfIi5Bod^cNdf#iM9T z+h&Sq(I0Kx6fdG1Y`hh+7`?5x!XhRDAj9CJwD*TH5+3{9`;&71J04W4tgp z#s@=V{7@6q6r063p=XR5ePi6vIi?A^$GD((jH|7mA}QvnrJuqOW5>Bgi~?K5NZ2OE z3gcsJYy%YSVnQ%GCLGgag3uHbW*ej^i3zZcP|S(>hznxA;G!5yy9mXS7y*~XC~#KH zf85WAd58028f^87Z80nD^op%9%W-?mYTOa?4epHj7B|Ms#dR_Baed4}TpP0(H^(fs zi&k8T@xV(lZg?xk4==>H;N`_#6LA}RJc8e;#nH7Gj7+SnNsU1BBd6l-OdsOT2^$~IBaEB0^f6Z``13`@5}Cu{pM{ol&th zwm)u+?TzbWd)lQdw#8nzO;>D>y^1?xZ`x)k_Qa02%TVl&9gBNoC*sc7(RP`NgRy!% z6dQ%dW8319*p^rm8;8eYTVr)>j9s?kQtUvxe8oSpBk^VIP<$Ob7~jMWw<}WE#?{#t zDeU9w(IM_UI>uc@=eWyg9d`;F#htM&Ry2#dkD9o<=o$AIRdEl|J?^$`i6Ss=rd^4` zJ8m}m$4$rJxXI`nH`T6OkrLM))8aZ}d|WBEi|dL>apjmE*BMQ5-O&(NY}ZvWC2kYW zihF9=RWU7Y3+EYe-{YjX4LBk0JG*I$AuSccG{u0HKX4w@@<*J|vI#enS~kTIEv;}| z%f>jYrG%qe+TfU$cET*hf|hsfW+~>iylq#bn9?esagAbHt00`v$_FR4^22ehyc!=- ztY{U3Yg)C$b*I<##(UtJcsE=X z?~0@1KQ_9r7!%)s)cKUQ2z7~SZxVqHQ4u1`qBjS0!PIUyCdCKz#BLI!S6$iy89S-3MH2X`mr z;+}+j+?!B{`x1(Ae?lo9Oen`g3GJ~up(EBLbjBkIUGZ2#cRZfZ6Hg@c#*+zs@pM9e zJex2O&m|1T3kgHiIzCC5iO&*d z! zDh=PGwc!V}HT;N;3_qd0VHY|Wenv;bFX(Le6;+1cP-8fN%?y?3Zm2>}!(sF`)S|E9 zDEb?I$3Vj$7;LD+P{S$I8qQ#ILp|yY=P}Z75u**4G1hPuTNtimE5l7}W4Mj+hP!Am z+{YxtLrgI|#x%oIoR<)eGZKPuLV_1gO7Ouc34S;&ApjR7MBumt51f?{f{POLxFjJ8 zmnFpDii9{^mCzE`B(%o032hs_QcN=(ZTw0x#_&DPF#L|g3>$ESVH1urY{7AcA8>-< zN1S9hj8hD?jbAHP7=FSfeEM3k%CHO97=FgJhF@?Q@vjwgsP{$G3)&_}(xY zKN!a1C&PIBY?z1^iIY*5I2GlI(@{*EiOR&;Xq`A0Z4>8Xqr~NCpSTho5?7;R;y37= z_-*5lig@aLRHPICQPGb0j|vm<9~Ifee^i)>|ES0#{-dJcYkUzCeN-5D_oE^-u|H}P z2V(QY!Kh0dik^v`(L1p#`X+Wq|HPgcoY)rw6MJJ4J%3cB(DO${8a;nhv`L(Zk%_}G zI&mb%CXU7yiDR)<;`qi5ih1Q|HYkP>*`OFfWP@T9kqwG5Un9p+twAw? z=^7N1=(a&Ig%=wX(|EB#F@qNy6tkGRK{1D^8x$Srxk0gjsT&lFn7To+gsB@8%b2=B zv4W`^6rGr;LD7YY8Wi1_s6o+#SsE0*n5#k2hix<{`mv1$#Q?TpA)e+H3vut)^9~{{ z#Lc{7A)cfM3-L9Mb z;_IZL_I~26q>gwesWaY7>WUANy5pmyp76)5_W6(nkj4-#X^ z4H5&13=)IM4H84i4HBD^6(s7&3KAp93KFBq3Kr9e4;ItDo?DO=EVd#mSZqU9uozFx zV9`Ksu$V+{u$V$_h?vc%Az}$xAz~R7Ld16DhKMF|Lqs!KAz~g`Az}epAz~3(p<*{~ zLd9NR&-`hXocmBARO~=jsMv{`p<)+uL&XZJg^E4M4HE}&4im=_87593D@+_je3&?l z$S`pPHN(VFUn9p*IZPZv9j!R+tBZ)&ic^T!ij%0L6=#s86=#v973Ywp73Yzq6&FxH zTwKMc;o?TJ!o?-Thl|U|4Hs8XEnHkfR=Bv9tZ;E1S>fV(vUFl~@_4LCo{UG5r{WHB zb>dEPb>ePvb>bc>>%_fO(24t~pcD5~K_?#kTH#RgSo=uvZ1QM4nLHd%Cy%s`7O#;N zEncEdw0MD<(c%p%M2okm5G~%JLbP~~3en;NDnyHq=p_i;eVLmZOw)ILkxo$|`wEbdLIw9gYCq`(p8P%15+FZLlvBtyACGSBQ?Of1`8izvz(qmwg9Ollq^1C(%3g8}v+F zZQomLkt#LqEykuQn)Vgjq;6>1Uo@l^HytRZr9O8UDCVW!#`M&?*e>-xno=KPcIsm^ zr#{6Vsb8=l^-nBHeT5~de_>hb-&m3QFLp?Mhn-UY!!D^Gv0G|`!zgiIs?c1gpF=h5PR&J)CQsXmUA#5<{ecq=skZ=?n}P8J`edf>fOH++=pfjiSO@nBjp?n%qRy=l3)FD>7R-&Lh0 zJ1rKEq-}9rDjrY!-f_8jGOg5UrD!nz<+xHTGum*jFxp`UV`J=OY=Z5KANjP6@lR}J ztVdttdGt44#6aU^3^rcHP~&yf8gF8A<89O#?_#9!K1LfKVyy8owlF@$B;()M#n_Zr zx*46YhtUOl8P(Xw=!*S}ZaBc`frE@*m}2~wtTf|0G#MK(-S{7R8=qsm@fBtpzo6M@ zNqnABzyhNJi;NPM7_FREi&Kn0JFXTd7=OY^#$7nW_$!Vv{($3*KjJjwFOF-(CB`tP zHR3#D04_3y-~wY1&NBMo9HXDpI&rPB(s7-*&RFHRUfgP|#m&aUj+?}t#sj#+_?zQa z@uab}(^m0>u`Ql8Cg3?^BAzz3blN6fGKM>C7atfS@R2bF?-})Y#~9_bLwsh8bJ{6> zHr6@r6lLjW@V)UUelY%ypNxN?MfxenUq#RK)lR>Ps`SOENneWY=_|2W`f{fOqAqg3R4tB4-{4p+j!WN!L(*5{u=HN?J_PpofkW0OmsXiR%DFD4jJRIEMv6e1+ia7M~4eypN#g{Bcl`tWOT+s8C`Km zMtAI%QH;GZ${ntXYcnz&uZnv!I^({KuDC8E6W3>C;l_*{+?@(TkTe2b-T$}({3srX*V5@wVR2@+s(!k?dIa?b_?-r zyHY&Yt{gA4Ymb-O{lD6kc8l>^yQO%e-EzlAqCB%BT4a`^EVDhnZPy*&x9f=?+V#dy z?fT+pYCab=#5@EG6!R9=17dr9FEO12ckB!zvBn7Q|9?5 zAH)us^-VsBb25LxKAE$zU*=pKkU1X*WiG@anTv5)=29Gyxg1AjuEa5!t8rZBH#i~l zTbz{n9Zt#IfYUNJ;f%~JI4kpeoR|3{F39`|7iI3kC7D0tvdmv_Mdq)#D)Tp7lX(Ew zW>(_*%qrZNc^Efm*5cO8qqr^ecif)&2kywM!=0I@aChbz+>`m#@{_nOb2{fcq#KTUdgPEAuwq$-ImAGVkMq%!l|W^D#cjeA+~i0!@FT zx9LyxHN8TA(_a{EvUCunVAH>xLrw2cYx)nHn?9n>)PRwuFBoeQh-_g}ILM_WQ$41c zZelCbd2D04i1DV&XfR#H6w`GFg_Lf(+*BbAF@3~ArvI>y>2K_1`U|s7H_>dmjd`ZK zSYW!3MW%;XVtR~arl(k8dX61Te_|)oE9^oK3aQ)IS9;KiLKLlC;b;7+08vHc?7z zO`~y*X=D@rs~Xc(TyGkS>rCTuvuQGJG)-(`BkeQ|#2u#oO&UqZOg0XUq#BciM@&`@ z_R5++F$4O62{5np0X5!az(hC#6j+1Vf z_;s9g!Nf1(q_d{pP3)y}CVnF)oi_F5e93g4^DWbLNhNt_)iza0o>@oHJ?rEjBcxv0OR-z_LhO;f7&~Rp#V*v#G_J@VkMpwo;*9M6xGH-huFIZ|YqO`~`s|swCVMh2%O2Y_O4^a#8TV%Q z#?9HKxHY>RxABMlL`mDTJL1mluDCn9JMPKu*)&Evmi-N$$X<>$*(>o#_G&zy{Vkr% z{;p|jsd-MEV{55ZPBOO1NyW&V))<}B7GrY~utiQH#^)GOm(vo1bMzRR6NTEG7{_?Y zl+)iSUdqcEisqcbn3mHM({p-byPUq5oiorWK`P3bjs-bWoeWZ0PIoNH>FSgyRpbnJ zN|HL{jC4wtI^~SUZaL$zN6tj-l`|Q;Ih08Ia$@jMPD|XM6M=hj^td-C z%As63O-#9TmQTy2<6m!15MM5xB(hvOmUG6TgQPQmgR$lf7;XLzHRh?<&hoh}|BsMaSMhEj)bTp4gXY)iDoo{sM3ndoVrjo#+D=xd&j{^o@k zXkLuL=A{^FUXEJxN^EXk?a)zbWB%TulN4`0;Luqzn16HVA|;tmIdqc>%v~|t+#b#5 zj+kfejOpfLEHZb;cIHwvnadq|NK?!iIK!NU3(SQ$!rT@|nG5;k4VT|cK4q;9zro##oz zau?#X-0!eg?o{lPJ01Jw&cp$^vvE-FTpW@+AA96Z#u2%Taa8V79Fw~o$K|fX3Aw9r zQtmf6CHGtB`O=KsADkCTtB7AHt>@E)($?Hxa8B-zI4}1nTu1IgX+iETT$KAWuBGNe zX)_fTN*k%RP+CF{3#DcBuuxh-&kLnByuL&_p4$UwmN+D@Ee^{|z!7& zWjJq_YVt;6b>47Xme(1N(&W}(Xlzj8`swycsKMF(hV^lR#bbcJh=C@QGlg#;v zXv%Mk+4%|BF26PAg6MN-nsZL2F@)zT%{G~W1e>slJ zU#U7H&B`B*bMnXHqWp=tB!4n4%b$uX@~7jf{F%5We>SeopNs4A=i`k0k+>j#JkHA> zj8pQ5;`;oBI4ys;>auh%e>FbH{{|oBf2+DCz0S|am-)H)CcjX1LwcK^qq;2x7YsyI zL3`8`bi`%_ozcCZD|!}mNAH53=v&YmoePT5p`a8U3(C>Ipf3g%^jAHT4i%iiJq1T` zU%?-^zn~5e7M#Lu1qZOY;Hl*^X?sB>=e-5Lr4&9zUEyVnExd^> z3U6bp!n@d}@IJ;DK14&|V@xW1YWZ1;EWFA&y6`%N7S^M-@H{pzyr}vjwJQ|VU!?3p z3C)F8m{(|nrb2~URIVv3#;t{&aa&Y&wpWTpv(dU}KH3&7L}k%jv@hcC?UfEiOF26hEyqShi&0)QQ{6=A zT(nZ{tZY;CBep8~L9JF+6oq3!Q2=%*ioi}qddw~g!7fEnSX2~*B}HCXRuqQjA|K2v z@>6S+J&NM6S5ZssRurRlRZb}Kz)5uCsvK72#CbrG9ri0~jN^*ja7a;898u(ggNmBq zs3J9vDRNaeQ%)&rjWdc8a9UAYwTE(9(H2}ww;sxkbmgI3L02BiRdnT{TvGHsuAw&% zulO?VExxEuRqikT8BZ4<#k0k~S`?j?88v*bSdmONHxD`UUff(qG6ZOJQaPGq)HM`X4#lE`djG_PbULrea|;F9O+ z9A%r5kC;v_|1}S}Im-Bw1~ibHqf8<oSHE@PERrTsC!v^N?``(m5Yo-X5*DW%+;rLS;a>0dac z^eQeY{TG*%zQbju|KW(zn>ecUHZCar8^@GhcAl`<2BvPRjhEFUY%GO<%x4t6Qa#j>(2 zmvzcvWxX})ltapTYBnerly${LW!-UJS!c~A<<7El+fB;#WqmnsEbEV(%Ld}svV88h zl@;RlvSQp(R%*LhSxx+A$|mEBvgw+=%I4+Yqpti1j4b~VQ_8C_w0sk4%eP>3`A-;Iz6)EF|BS85 zf5A58zhZp(Z)hk#fJx<*XfChAwDQB4US5ms%8#O{{CCVQ|3kA+*{%F4mXx2uvhp)n zQC^Q7%Fkn`@{8D|{Iceta!L7ITvk3G7nRS(RppCuP5Dw>TfQ6@l+VN!rSiL)qslww*YRHYO?*&(TXRksUm>`jQ?{wF zMBj?X|KsQ`!V4c3nJ#;~0&L-wSm0dxdTN-e7ybci6%21G@WtLJz+$=;`+jz5RZm zkKZr!_4|X}{r)w$RAr!FGv`ZHCi->6$$p*C&#w#4^Bac!{hHulzZN*uuN98;YmKA* z+Td8fb~xV84X65b#_4`uINYxh2KaTwK)-G%^Xq{je!Vc%uMdX%^}|TN0XW-l5YF)% z;(WDAjGrFY`5AGgpBh*DX`OFXvG_@GgI`@N_7mfOe$Ht1tB!WRnz+fYK9>5`#zMcU z&bO;<^&5fP{YE)IsnXJaCN}k-fsOsAVOxJWw)Y={b^OO+J^u;Vz<&}p^q+#w{r%C! zKL}m@gPosM>FFPZ-Th~wkAE2Y`bRjwtTNTVGEVmwaI$|z=eJej{gt@RKLKO?lbqjI z$?#u`S^f&l@sGna|23H6zsmVj6}$gj+~mIqOa15L2LA=l->Mw;Uxr8hSKvYaCC-1V z-1a|$*ZmLRP5(pAWrWZE4*crB9^d=h@T0#O-};w0mlOW_7vXRJ0%s?IZ;D6HfX&X; zg~)&%7#gqz!vnVA?0{X)HHD=CXD~Y87%mJrfr|r9IoB3q0`}nQfPKz&h2(%s7$0yB z69XxX_HL*@$ZLAkqx1oSQ#e=3OF^eD*6V#VzPVS8|)eQ4tocFz`lW>&?oQ< z4h;O}+*Jq&yoZ5-4=^+(U>A9MiCeure?RR|f`TOrRXs1%~15 zz;U=da3;ry4SNgLz+O#y3zonhSRB}`Ngv_A!1)dP z2%7@u;)cK|v!k}Ht|5=a$sfh`9KHx zYM?;A7+4Xn2Uf+KfnvNJC@nuo`1n8H(hm|ovtf|%p3_0XS9T5(9O-BpOgQQLUg|R_uoEnshIX7D-beC1do-%Q>xR>1 zJ21gq=?*)B_Jx>ES>e{PU%ByZ((rLal1x#=olH~lJM zFU=}pyKD>Ylx=IeTG&s&S~y6*MmQ`x*KCb&lxB@^oF+y%DZ9`tMmR0IglFkvg!A-k zg`5BLvg}&3wZc`|4ZP0jTH&JXO0#vsUD+MHExU#HW%ux*>;XQOJ;JB5C-|KCb;3*b zD1^6Uh45PTs+mG~PZKMAls#(}D}4Q5{>*8jP%ijPGo?@?SkY7|)Cx|*I>Ab;7My^R z;JBt*p+oR4Y#+R%X`0YK_*Anrp?B~x>>GTdS&ncp_(jtkAuV_xW&|I=tl&eK6MO{o zf{$T-@ChsoK83}>XV4OS4z0l#&>nmVOM|cAhTvOg;Z>oD?DaTuJDvSxx#by#LerN77< z%M~v3#&U(Lys=#2I&UmjxXByK6>js!a)rCRv0ULkZ_Fgr3pvuPP#7PQjRQl}I5b3$ z!$XWXG9(p8hos}!kW8Eyl8ci=OgJ^90DFfNpW%e}Br-UW;0UC|=%hE{nGw99*8 zsk{$vkoUt)@&Wjtd=PGx55ev7VYpL10(Z+tHQz0~lrLzpTX-#BgwN&kTkH|u%je=- zc~pzN!dLmK=6i+D@)h_|zO4B^;kW!-vwgx(`6v7?|I%!~P$pDpv0wNruZ-nFtF|~G zIEB_mQD{x96e`9Fp;D|8TD`?VK@$3}`9Yyp=pU>WT9&3pXnCv?TCv3;p>gQ1=7)rO zpMEx=(}bogrTA8<|l-~p-Su@nt**n<8XMW7DtBa zv1jO7>>j!Xdxt7;U}#eFQ$lFy2Mi2-g|g5$7!vvp!$Y5;U+5rQ)Qpcqcj47g2VM_dj}Jq4;N?&oo((O+)1d`;Gjt=~4&97* zL$~1l&~44H2rolVHNPf&4?TomLl5BR(0$Es2-U)j*f7kDO~Y*1Jj{VD!`7oq*hX{> z+l+0)wqX0PZP+1f2fBytLXWUL=o$9^+Zu!wp-#HVbcug|&Dl zybnul`Aqm2mX4ppGVyJgvE>V)ZTLN`6@CKigrCBC;b*Wx_&IDCegPYYU&5y0SFm~b zHEbDv18amIL)Y*-=n{Ub_=A>j1ds4XE#C=!!ATJ)eYy%zPGN{^v^i&%!z;KMSil{VXgGUsL9b5F5T0lbQJ< zs5t#1#54ItNMz=#kVf-WF#IoT!uci$A%)4Wf{vMQLPoe8^O^Z3Wc{znVe*@h$IN%Z z{y&Su7my3X7onBY??Ne``MY3Y{=2Y&yFY}j^go16;Y!@jtslb9|MmYd^HVrV{wW-$ z|0(PaAA<*(|0(PZABX#y`6ZmC`6ZnGUp^V$i+nu1AD-vdFX18^ehb$*{Vm*N^0#oC z{j+rui$p z4IhE;nfxof4j+bJ+3;8R&W3+Ng@_(y{s}+BCt;Ku*hxd?MzP z`*XLv$TuPiyGP8$o=lb(_5R;vUv^dyjb)~SXne#H92%j(!4XL~JR%N9|8Hg@J1dAr za;u^!fLu}J$E}K@$q`zd`oDfUlT}605v^J|i55mIsVEjLj#z<9BUV+Eh?Ykzt5{tW z8zF90U6dG672_kMxGthPCP&mnRYYynMASuHM13?wIAcmgBTS2E(yEpyC!$%aI->lD z7Ok8`6(Y;x$B1_=okgD`KA=-1e+?8>iL6NfJmLw>%ZO(vimXiYI^qTSZNw{lAMpmi zMts8W5nu3U#5epM@dN)x{K86+<+)WZ@*lZOSW$fB3E%M|P2?%xiK2|i zbC?!+#&@#F9=QVxBORC*xgPT)H)3(*X0$|ZL2KkT-)W-lkwv&a(uO-DO}IPKjC&(X zaBF0N?+nrD$OCvhau1%2+=oXaclid0ZbokL3J~3o+=JI6x8d!`9e6i#mzP}BJ!(s5 zxoBY2J{%l%0NtZ(=n>^Wk26SWb2qc)>=R0;Ns+J?QOc3|JAUD!WrPv=>pl~M07 zCh8N$Mt#Hhs2`XZ^$U}u{-7%AA8Mk?dd?E*qRQjCs4q0jqu!t)>J_ez`p|i?=x)>y z&&8tWQRDD_)G&M)H3A<;jl!ot!#tadPLw#$gvs*?P&KazHS^4=NU0& zoUOU0OZ>9}rQCdSUo#`t-;E?J`I^B&;)c`xweyjS>n-Wz;6?;bv$cL!h2dxWp& zJ;As0p1I_Rs?5LEI!7d$e*>N7-$Kd!E3G$(4$iOZxI_wtxoPQ60 z&wqe_=RZQH=yxcJzJnE_Utp!^S6C(b4VH_3hLY$HSS|V!)`Y`D&<7hY=!Z=g48Z0K24TwuL(pZxFmzoo0^2Sah3yxN!43+w?*z330wZ_zUhT=WX(E&7Eai{9a!ML$rs z=naN0`hek!K4IjdFF1SAw@wYJ-d?hgFSw0ddI0AvJ%Y2B9_rY%YRu9-xN_+ZT)lKx z$Ffd+SC?&5-f8IS>h9&82CtU7S9BV?`h-VCr_rmAd3ZR*uleWd;k0_q4~$*&2j{JM zg)7&5!rE5On@-<&v$2o<@eCs&QDLm!}hQxg7 zINoVaOjY;sPP1bKoEIa;$e7CR6P%)Bes!GSv@qrmE{^$!OJmBqPjp%xQxR9jly~Rb zvt!abg*iQpN$oV>Y0la+9`l{%tv!dc*Pil-c8XrR&0~Sn!nHd*7CJ3ndjOZNJ%r2G z9`RV@w0i9xj9I%6SFYXVvDhhg?FC%7_L4`bQ%glq=TfHziYeGoF%26lW?)l=KQ>p) z?7ZH|UD3*Oy;Dy`XY8%;!uE=0*g??(Jr!+mtYQ$lD4fw%(FofrnxKcGHF_)Bp^w51 zeH9(CyP^~JRdm7rimo_N(G3SHdf-q+FC4DugCiCFaI|88=LV+`MP}y>PSFZ8hAXl$ zQjv?HigcW8F@qp0Y)$!VRUvgdzJ$%?9&s1Q)45PNQMO5>lSw>YIJ zs$+(tHX0OC&#g}Riu#zRsO!1YX_KOS`<+hv71i-SMMW%C{A;(~?yrc+qaR z(?i8Ge5!bb&lPXl?Qwdkh-kmp>9yiq`+ZK|6`kDnIsH_0#*d12_*vnG?-gzEtD+;m zRkU{7?^GtXEB;n^;a^1;w*yYqVsCXg;3SH@f)!%VVWrp$SS9unI>lZ?N$iad2c4S7 z=DHnpY8so34PuR0FE$k$#-?NA*i5%WP9Cv0ux0EibcsEKuCeE^ZR`bXAA1Qq#9l%7 z*lTWwoxEf3pl9qYwwMH{V(cTF9{U0($3E$N%qcLomFqF5kk~dTi*1devF%)s zJI#qbjk!f9!&Te}lZ%VRs@%GgfrPCCWJDmtHZS{ECKv9SrA$BUQ8 zwQ`vv*2D?jri#JRw4Nr;iyMGBas4nOu2<{n;=;IQ zZDxqAakbrNh%Iq7-TlR-aUa_Gi#Nr+!wqqt+69QW$9==CabMca6z`4ug}dW^v9{$kK^U|G(HTU$4B7L_!amveipus zpNsF~=i|rt1^79B5q^zd(m7RJDdB~0s<=wRE8i@!Z-TLNme@T(i5>}R^iI&CPl6u1 zC#0fhLQ>}(@#usZo;l*d2@`N=!XzA?Fa<{@O!G8}0~3n6nZ&XLGlnFTU}%C3!xJ1B znXn#bCv3zy37c_V!WNvGkd4z5a?vlrgaHW!-3r7D6M{X>;{1fNJxau-39Va|h<7G* z#{UxBaBD(G+>p=)cPDt^-h?iAIH3n_N@#~i6MEtCgg$sOp&y=37=ULJ2I2OEPIx|H z2wqGWhL;mY;MIgtxIdvQ9!%)g$}aAmxUHLAJT~zJ4oy6OeG_+J|HNH5FmVqKPTYs1 z6OZBK#B(?@@dyr2JcQ#DPvOMGGu^g{GZK4s-XShdyyv+?oR@e53lr~Pe&Q|6NxbH{ zOKeSi;JHU!nwaZ*NPIN$jqefh)x=NuJh5W8BjTHh-^foB%aboAz9U~w{D9XJzu@h} zA9y$M7v4|&gAWt`;p4=z-Oh@CC)VtCPFy9aI#x=OVud6zmP@MI?Sj}fsUtQ_YJrlZ z+E^p0KGsTd#yUxjuwGIVY>?Cpt0mRN#!0QPX;N!!p40|gCbdJCB)4vt#O_H-?2wey z?TUDCk{(AVWn%v%H4aTO;=m*=4o^zOkxA*@?uaKR`Fq|GPfVJLQ6ROm2d&lbhk&_1PLD>~6DZ616We*f7d!duE4@#8%u$poJ z)=&<@TFN0!1ZDMw%fz3!RVosqo*Kluh0Cf~y1O|+~VwGy9%X6_oCC3z17_L)ILX9d2 zV^vcyUNsF9RWmSI<&Qd5Fs7*@Fhey9vs6)-qnhjTLR_j^gqu{$@ITcG+@MDlr~bN%5$vIzCl(!sn{a_)_JCuT@>}xT+?eR@KF` zs`_|d<%}0qjqtLn30_q-!|SRRcvIC1Z>w74T~!;ruWE-6Rc`oL)e+ySy5dJwkJhim zwba$yyb{+?OR=%KJ~mZ5V{>&QY^iR7_0%=7fx0#}RM*97YBAPPS8elJ?4u59_gd_! zo{8S-Y3Qz=fgWmq^i>D9dn=x-p6~irJXO8G^__UBdVQOB;$-y!)Txi5L45*K)Tb~_ zeFihs=P*ls0dv%sFi(92HR>a%QXj&FY8x(AJ8-#rBd%0$#?|UA7^B{X>(o0iR=o@3 z)q5~ey|2xC@lZ|8cJIX})yB5(#i!M&cvhW`=hc~bQJsyK)wy_8ZNls70=%g%!rN*y z-c^_2eYFiAsvY=Py&j*cH{x^kW_+pMg0I!v@U40WzE|(UkLo@6S-lUxs}JB$^&$MN zK7wD>%doNL86H>bag%xl4%gJ?Gmq5N#nGDj_*Z?5zKrGsmeZWV3Ys%mNplXzYMhxF zuW5u6HBE4`rWsbzT;Nosxr9!dD=5)i!)lrvSVMCQYiaIa9nC$gr+I)4G>@>M<_R{{ zyujv~SJ+bX23<7o&{gvR+iE^xd(9W@p!tUGnjbh-(}JHqUDFEvG_5f}(*^@I?a)*6 zhZ%3pKlIU*rSa92$L^Yn*i%y(dus&jtEr0pHDVm7k>X%Yb^K4gio09YYtTdU3%9G+ z;!d>!cdO%YuQ~zutCR4cT8W3%YCNjew*4U9q}kTtgLtQAAMVy1z`dG7xLu6VDJ?$E7pk0d%wF+#kjl-te z1Z=KN!j@Vkx@gtts?}m!tsb9i#$X3+D!Oaa(LcZs z8HD#WL-3(y7(UjFz^9r~_+B#wKWe7oXUz=!s`2meNxV|~12<{gb^Ihw(|#kb*8aj6 z?H^pH{fDvIvYf_i%VVOpA|`7qqe?5FMq3qiS}_{5QcTfS#|&*v%+l7z9Bp09)7Hm) ztuq#C8)31w30kzx(5h{Lc5N#x)waeB+BO|Oi%)B>wD~MPsl9|-wOaSj;_X^J?$jD_ zw>A~`YL9WcUwZ-%YER)|?HN3(J%`7&7utLgU)OGS{~~^@-G?=FZ?Kl`9k$f{!^XNF zSWou}uWC2qP3;!Et=)!qwL9>>b{9U>?!l+p1NdBf2w!TC;A`zMe5*Zy@3p7!qxKAb z)}F(!+6(wydkKGPui$U(HT`fv&|6o%(-(0A-4}90-8a0fU5`z5zp%OP5BAkL&_!34NmpHYY^$q??RAy0gHAwq zT~+kZiP2LhMIT*F^wrhI?z+0zQ&%5*>zq4%70=UE_V_A}*EPauoq!8zbiO*8;7&R%q9?_V_N|uj_*U z>Du8|of~e~b;O;zPPkjw8TabEJbs9e>NdCgAwI0zh*k7g+WZh-*Bv3>)E&dyx)XR; zcM9+8&fr7cIee_UfX8)P@T6`Vp4RQaO8QG|IIG)5KCjz@7j^sasqPX!*ImJvx@-7a zcLOi$4&YVYA^fPjho5y1@T=|-e%C$0pSol0{H;5Ie|4v@jQ$Lk)1Si%`V070cZ;u&w?Bw%32c4*DYrjC{Xep+{sM~hm(WRn1tt1x zSWSNeYv^y`NZ#{Lv9G=?pRJbu4vn||5BAreq94f9{S*)8>3)ib@^rt%WA$Asz2o-wGG&rMOgI9hd8Cy8RL7=r>}XezV(Oaj{-#^H*G`uiWOJ zxKuyE<)7HDALmj=vQ^*7wTxuHzAGNq_rSgSF1SlDR>fhi){S$nxe~0(=kMO`fucNhF|zw{{^cV1o|3=s@T*}AFCM3qR3DloeUMR zjNu29l??x|mO)HY#~{UehU(bBP!k&(YGY$V-L~Z=o`%eJn{ z!z^5Fh{71dTwG_EkFkaY7;jjFiH0SZY*>aW!wS?GR-w+Y1}7T^VTwV4X@)q=FeG4> zAqjH~O3X8;G2fuYLW3TQ4MwyWQqgKiN4p^tHyCnplfi`l847T#p$NAd%(&A~g1Zei zk1CSqhF5sea0M?LuHjX~4ZLo+g*Od%@V4O|-ZebH`-VsO(C`Ew8=m1)!wU~V(%jgi zy&&mrtcgDjweh#1F8(#t$1+A|EN5(l6^u==lCc?9F}6UFu@yQQTcgC-2CEs{VGW}j z)-ra)I>t^|&)69o7`?Eeu?sdfcEzT~ZrIY;3tfzT(AC%v+ZqR8d*dMNU>t((#$o7T z9D$z3QRrABaLD0 zMUs`qINWL6jJu6n@T~C|o;RMrgT`I>pV5Ia#$~w9xB_F1t1#ZU1`~~IG1;gDSNPY%0BFyasd0M9O_<2;+Jv? zr=}dk=_x0=*OwSl?qN*I8C;ig4r5a;V0_9YOia0g$tl-Rm2v|$DYsCUa;JME$@P?f zcs1n@9!`0Kms5V>&Xh;EJLL)PO?ig|-l@INC$$gyruM_0se{lnwTDkXxH37e- zCi(Q0G)UWnmC{PEN}3HtX%2KsTaS{ojaV&hGuBAkg0<4NVV$%cSTAiCHcZ=xjnfYJ z43M~|9l;K1htMPK7<#6i@EIf-nf43=(|(~W?GX-7dx8OJKX7!~3mlvF3dg6t!HH?_ zaB|uQoSOCtr>A{EzqD^YLnZUl&fxO2Yq&D)2Chy!h0$r}aADd7T%2|Zm!@6u86n9? zyMt+Iw=gU19_FMy@R=w%nKq&8M9J~AadLBwU=X>>447O>g8AAu*(P z#F+FZxGudJ#;3Qy#Pn8}oZcE$>1|Mx-VSx?Za$F`YkF6-r+34`^v;-{-U*A-z0i{0 z#b=ged-{m3vm{&7hjpDJsh05wMHzR{DdQeWG9F;VjCa@|;|j6m^0+gjvadpNIzx;nGphQ=OD<)N)CJE21j3Jrj zF);HVy)3hA*Gx%F<_O8EKeC9Yz%$(qxB`M9Eiz%5?FfDT$W@OI5 ztW1B*$()IKnL(JJ8H|OQaxBgaLrZ1^S~F*%Ju}KTN3uP0K5ori;A@iX&K%}rlI+hM zg$Fao;Ni@1cr5rE)XX4e&AiSO# zj5jmocsn!9Ctvb4b4J&E$>+>zT?-`Tva0(QNGfF2$4Xhw_&c*E{>`k7WwPq}7D{Sl zHNje0&9F{Z3v8U#4y$D~!g^V)ut8R9Y?#%?w@BiV<%K?3-OxL$E4IyY!}eJnu|rlT zbkFLHo>^Ud&625EYMh?62>WL(!GT%JaB$WN9GbNXhi9$9ky&eTbe00gX2s$7tOT5x zm4uVCl)hF;c$OX`vy2#;rS)}4)@5bm>a28JnU#t$S((0@B^g;qyf#bHvJQFelswI< z?7dU+JWIfI?LXH_I$%=$n+pY;hZXMMrzSwHY*)-SxB^#|`}{loiNWto4NRo;7_ zPkQ7yz;Iq{h9LtzvjHb?>Xq{%;&c_P5bG=(geRAEp zw2=DdcI@II4b1I@0l7W8cuD8v_QTn^eY*Ham*)<^mAQku^pv{heZiJ_AJ8T56E@6y zfo=1?Vf(xv*dgy1y662tkGy~AnOD}Qr?he2D{|AkH`qMyU6%pUHa(i9?jc~2lLkB z;k=EwJ+BD&=Gky(o*8%NmEeDQCfu4=&}ESHe%>{&LDJiKm+)rZ1-zSg1s~?!z{h#F z@Os`ke4cj?U*pebV5*HZOf9gMsTGzp)$|@JbuqQW=BC!z($vO#n6!gw6t*{w@g6SqF-<~W(-iD( znueaHap-NDfIUq!yhlg}oBVO8X{Pr`>1dM{$C~usqok8fMx1I&^&Tw^G?`ImD!~9# zk@pyBr0EhaH$B2=(=A+Rx`T^N_i(A{0fw6{;B3pI)w@iPT1@rPZfb<3rY2}LIb)%zHWr)ec9|&MZfb@* zO)a`ik{&g6!IP$Lc-+(#_nSK5K~rZuZ1U_+x$3epPzso z@{`a#Ux^<1YV^$4qIbR?ee#Xyo1co^^V6|sekS(L&+al+>X*L_W%+wBB!3@H&)Cyr>Twc%#R~B@})dgM{ zQ_uz16?Dbef^N9Dprcoe)LJkEHx!J*oPr*hSI`Ud3;JMTK|d@m7=V_7L1-@+hNT4~ zyw*uC7EHpM1^#%uU?yHJn1c5Ug7IO293K~i;njj^c)ef--Yp2irv+p1Y{57@UogQd zPWrPT3cnZ3!mkAp_`6`PSAw)&;R>u%xC|wQ^RYqUDy&wx0BaO3!dit(yppA!g$nFm zsKlOyYIHALgFb}`=v$bC9))YsyD-j6EuCDLjS~wqacW^MjxS6{zrq5XUTE^tN+S!+ z7+zR}a|&%ZyRgJdFI`=@5n~EBVg49T`{nz8_J4$;MAf{IJu~Ew_@qMqCOa1 z)UTUay0mBjt}GgYtBZ!=@}fcAEYkR*5tvvs3ROkpFu7<{~ny`xno^fyMqfxOgTGEe^st#R<5z_#Ad9 z9)#}2L(rpm77+AavWyLEnq<9sE7q7+0Vg=4Fj>CDyNf=$M#D&FbTwJWhrNw$&UTnmb z#i_WuI2~h(GjUyUHpUj`Vtla)6N?Klxwr^b#b(qLm!PiLhK6DXrWCKowBn7JQM?(m zinm}+@ixpW-huhWyRfi$4;B~iLrd`iv=$#id+`x0Ek1@DicjFC;#2rv@tM}8(x=6r zTuP;1i_4QA7QZ8ZFRn=bTwE647XPAoU;GC@7XQQN#b5Ao@dtca{0(0h|8Q9^tz_1_ zt(R6XYuz?V-Oc}6Zbg*ueY(8=7BX zWAhtqYJP{!%^zBCmdebFT(?N0%`M!wNF&Y8INRI^=a`$|JaaRQG1tX)=1v%E?u-k~ zt#GlqH7+%`!R6+5xYF!~tIZuT++5#%tMs5*-Daya#~guq=2@6;j>1CoTr4)v$D?LF zTFeX3YF>nP^AapIFT)My6}ZW~3jZ^&!L8=CxZSM4o#r^)ZBD?w<|N#2R^nl^7O$EM z@V2=GPnuKlv^gEmnltgdIU6sUbMdm-gvZTBylyVSn`Sc_%rh~?9E54+V9YSfG0Pm* zX1nyKc}d$H()Jc(yB$&|%L1%tS%VEMYq6n4fsHM3*wm7MBFlViX;Gq!MUAc&Ew;7j zv4bTQt67#{4a+jDWm$oBEUU1&B?%>#Mfle&$1;{MEN6+p3YJ+|$r6QCEOXoKl=ip0 zaoZ^!XnBW&Eg#%=N#|LdJM5B9wN%8_mNpn;X@~19ZWwFni1C(Am}u#Y$rdkES-Rk2 zOEc71x}wg~4FfDyG0-B$rIr>r-BKB6TfXtLMp}O0Xv;4gYx#qI7J<{{mR7jZ(i+EG z{?SjglqFBLlt-CGiXoQj7;34B;g;GMX{n3RmPRDag=6PuP~WAl<+Y*}JLmy!Z>Eh)mbC1z}2Qi2^yZ1~b5M~{;A=vlH6y-PNu zPstYaE!l?eEwk{WB?>=V=Hge&eEe=%fIlsZ@V8|N{@VI3Fp0o_Y)0QE4)-nvwTSnkT%P72T8G~0X zw*mLPm?3GTQ@dc7pbeUJ2L$rwCdG7e9c zOu*A6lkjZG6g*!t4KJ3=z{@56c(r6E9xNGxdrOAl{*n=RxMY<3UTHaNw@!Pd?$$8$ zuts1RYgepb?SYl7y|9Y44~ne)(8)RgCDuV$%{l~YSchRP>j*7?}ox&V7x z7h!Mf5`0|J2%nZT!RIB-@MTF0d|lEC-Xf>hCT7V(eqE7pzrPf=x!FmTbS?}S0)(5!N`UtmM zpJ1`|3g%ePV4n3H=36gdq4g44tk=+Py@6Ki3Cyyd>U2PQ+*;A&fb^)fyvIT5O>0TJ zgVKvu6W+Gk@Vqq}&suZwzI8obwie)3YY|?zn(?mH(T?xPwJvZuBzBtLv3?$ zxNSa;v@O8VwnaG57KP(&%iNDk<8481$E7j08Mw~okFmCyZYQKEwg}9z%}0$b7wkXW9&2>8|-Dy+eZkrm5ZA;K%TZUHK3bfl+VX18mZm_MzO*RGoXN$wF zwglX6OL99U{cOADa!UHqb_Gw{*5g^*Mm%rZj2CTN@Um?iUbXGO>$Y8Z)3yh1+xFpI z+X1|9JA@ByNAR)j7(TU~z~{D8_|kR;U)#>%TiXSEZ@c7jS~}f+$n~_ep}kkz)6&NF zKG@Sf6MNf(u&+HB``hI>&>n_^?GZTCJ`0E2qj02sE{?X($FcSWINrVpC))S0d9r;U zPPHFEKl>33uph%f`w5iUPhp7t42IgzVYvMQM%pjoZ2J{#YVXIk=Jo+t!QKkX*;`{J zdmF4`Z-*kg8#>uLqQu?_tJynaOZyde|qR zr+pH7+ozz9eH!}OXJB``Ki0B$!8-P?SkK-K8`yiaJtIxAH*-BBO|!RfJtr-+H)(rL zT5NBI7JCcKvpZwHy;0i>((U#Vw+qq@b`$Qj+iD@nc-p=P&)W~+b^8gtY(Iim?Z@!2eG4A7Z^M)JU2d195AC1uvHgqN73pt# zYnLn1*Yy%T=6cgC-FFZ^!rf~97 zg(62EbaM1_xh8GE={0FR@^xuT$1rqpj6m1_HO(DE$ZeUqE^X=<9~R3j$1Cb zqyrs8TyIGSJBDGTV;1&y^uusR1P*nKz}b!{9Pa3YeH{a^zhe;2am>Y$j!`(;F$Tvv z#^HF!1f1xYgp(apaH?Y(PIt^eKZidCIA&s?BM4=VU<`4{G1L*}dRwY2b#~JnuM%M;%9SuVWA9IC3%1VZwYz0Tw!nu-IWn zi=zas4jbAX4lH%7#|@5+_@84lZgp(I?T&4@)3F10J9gnk#|7N)*oOxl2k@}t5N>j0 z<4MN}JncAzXB}tovf~n7bzE_MD1Gnf-0q?Dr=t(Pc6i}iM;H9)=!%~m-SDfU2Yz?- zYWGAcDjkB7(h=xXIt;6oj=~zHW3X1~IIL4T0qd1c!Um;NuuAEmc2A}KOP_UoDs5YO z3|&f3plj(VY*~5++n1ih4y6~+z4Q`#lwLv4(rf5ldINn*Z=rAL9UNKu0Y{g9!hxkP zaB%4>>|6Q-yO-X>o}~}4cj+S>TKWcum%i)xOd43arqeTNbg3T0OA|1%GzkMrSD~zQ zEzT>|;+#@7E-W=-XlWdVlqzs`sj|~^>AKQPj4jRX^jf;R^iu2B(w(IjT7QxLEp_Yq zMOtQkNBmvd4u6)m>H1aLaJ@6uTVEGN>jiXLUlm=}x58@crC4Kqb*#0%Ce~SB8(r78 z#s=%_W8?LWP_kZ(P1iTU=Ifhb%k?d~{vT;y0vK0S_5V;%5Q=%I2qFTOR#c2wkiAQq zZUZe1P1*t?GD%*Np_7?7Gie({MO0K&R8(9(QPjGjl_b?HGflI(@B1$9`>uS7xcz_U z+xQQQuOFTUylQwH@S5RC z!1IUS2zcS}n*c8!ehc8G!~X-gYWOa|HN)=!Ts!d!v(;m;WFR}!_NhL^l%mM=;2<#6Nd)@Pa56>__*OAz{d|iZ&}#%s^MQPJHP4Q z!#`MdLDNGEiJn0(XGqyGU6 zM*jx*kkP*b9y$6Cz=w_gYguR0@uOD*9yhvkSy$8J@Vl$&(WC8vCo$&4(e3zs!swOD zqNdYnO_z=SXxXl&j?v!$UN!m$z#XH% zTUKo9M2N+vZrD?7x*j$Zo34db#ir|ERew|8=r5L)nu>tsrUAf#rW)XLoAv?@HGOUL zcPoaP=0^Vj_~X$f=MFXfd^807!stJM`O@gW0KYZ*P+-0?`XBuM)ad^L-Zy#-Fy9$H z3h;-c#{zzA^iRNlV)QS7-y3~6Fh3oAB;e;p{|?MAM<0dXzaD)I;BQAC3;2!EBLF`$ z`nMG~H~n?=IC0=N zfQJtJ3Gm>7Kb-f_@P@JHu6bx!85;tujXe+W#<3;GKQ!za>&NfDu`*zBtO{5f8w4B} z+XJ|J?D>Fu$9{Fhk>T4J-VLcE!<)xmxaP?4ma!KBzGUphfVYml6!7I^F9W=7>=l5o z8ha(+?PIS7eC^n40Ph%k9pD?rUJrQZ*c$=gJoYBQw~oC9@NHxNv*xJqp0OtZj*dMY z@FQc-02~`T7x2AfO99_MwhVA$?3sY|u?qkX!m6XfL$K;m^m~@%xu!+W~(&b~WJd$DRfF$FXMv{(0;< zfPWq90(@XB0(@|+7x15B1;Brg?E(zO`vD&^UIsjJ{JDS+8?OQ$Jw6Edi19su$BhpG zHjQ_|h7-mkz(BK@zW`h@@hiadCVm5W{>1M9FP!)T;Mo&D z0bDmx0RM)GU4R!){0W%N6HAUiIb1u@3(TbxdB9Z@U4UyQBEZK_d=)%TnD{#2=@Z`s zeB#8n0neQHF5vQs?*pDS@dLo8O#BG&vWcsYJSDtl;<0N^39p+t1@QWbQvo|C9s}4t zaT;LH#2J8n6Sze!yaAz~5?(uT@|sh_8^L*MxSM~!0Gy|WH-q!k@D^~M8omUar-pl> z^VIMrXgf8mA(Yd?SAqYu@D1QUExZ%_r-g3?=V{?>OuZfar-iSD=F`GEAaz>!W@tMj zyc^Ur!VmNBcR|A$;XZJl5xy6kXN2zu=NaKW(0NAqA?Q3K9EQ%N;URD?4L>�e*=w z9|Pyo@Dt!%8h#3#OT#ZrbO9cO{-xmzbS@3&pmS;X8HBYw{Ov?x&GPW4;9nm87_!U5 zUr+P`{(fQ?;2$BoJp4KIED!$-{ma8&veb8=ZF%@TguXny4?35JKZMS+!eH__fd8C$ z7T~`po(=fm#MNt_7M?%(vXxH@&zpQH;5m~o0$efq;+4(erIXJFTr-&mTszqXxNb56 z+%VY-xM{Kgc-iDGz|E8WfLBbG0ox{@3%G5v3fM6@2zb@x9>8lRhXAjgd>-I+lg|gd ze)5HYos+*hqB*>H@>%%3WAbXiRg=$Ic~1C-$<|fpg!?9!9Dh#u_Q@^yefQ*6z;{hv z33&VDO2F4nt_HkgvIX$Y$@PG5p4-{&DhofPbBQ z5#R%pF9v)N;hq;BS10(8`pK)$3y-Xy0{F1{senh{CttG5Dn);9un*K>e9^~(XTs;>mxTz>}O74>rg+v?8* z+*ZF}^#$QTed($T!k5=C0j$)Q0oLkI0^D7HGT`3&Qvq+RKMnAv`qKf6_0s@L^)mop zP=5yCZLsHp@aFot_9%#NWyuJP}=y`4ZKY(}Cj{yD+^@jq!s{W5v z7lp(14*-6oz8`Q5{1=6z^$)JPIQ(IK|H_NQuhriP_?`Ou0KZay2jIc_D*zAGUkNx< ze>LD-{WX9etG^EL6ZO{veyaXPz|Yj*1o*l7TLAB?e-QA;^?Lz-S|0)YdHn$3FY6x# z{6_uVfZwXW2k_Uh;o|Un^$+0p7wXvL8h)vM*UC%6-`2kmcz^w8fPbz30`P(QuK*vc z{|4}%_1^*hyZ#5jpz$Zbhcx~Icx2;$0Uy@*8{pB6zXLv^vE=wm!r#|_fZu6E72E4TKS-@3|&jYS$d=YSMMI0o?g z#<75%jU|BHjYk6ZG(y0>#-rA(4qwuE{p!_WrST%bTI0olw>I7gcvIt*fHyZ@19(g0 zb$|nn7XrS#@g~6Cjh6xz8_xqQHJ%T68!TKMzM%1H{NCGm8Q_hLSFCOcha1}gKip^s zoM=27@L=OPfS+g-06*2(1^5}rwuFZodHkMfbOFvaBEZqcPQZ^et_G|(wgP^raV6l# z8ohvHjc2W18-B0x`IT$KFEnNWztQ+4;C+oR0{*b^WxyXdz6$u$#@7LV-uNcqFB{(m z{53*c8-A6QqN7%=( z=ion9J}3O}!I!RjPB?n-6@VWB{yE|B!I!P-3BPx69PnEQ4*-7W;70-PJ2(mWL+}*C zBd7kpsu(_G>TiG#n_6;wEnLO$(y6Dfu7wv*Jq>Wh)H1;Hrk(_N{?wBJ&zV{Zc;VDj zS3f_jO;rK+LhAY9?y14mFA8s;+5`C7sUg5SfWI~T@YJcRZVf*)bqe4xFs}?hGxfi# zUm1Rme}8J~FRR}a-aqw$HE#<4IQ1UDzfOG+@PVoQfDcaH3;5@$_pNzrc;2BaSH3k| zacC>x;}2Z~_=H230G@tmCEybetp+^vPz&JlL#=>k9a<0gltUW<&pwm`Y(8{3;5mo3 zth_7SeCU{#yTVRT?+Uv?y({bi^{%jwsW%{$yTT$uyequy(8IyG>CjPtR~$MPu&LtO3--;TK49o~(&>*GzVIMy*cTpx4g10w*sw4B1j5}Heg+}#3qOYt_k~|Ti2K5? zAgq1i*Ep1P3+ zIQ?wElct{oc;<8~^gM3*BEZK_Ujq1q>6L(|Pp@8iPq=xytL2`sV|o|hRiNGzUIXeq z;k8V?4%XfiUJniTgq^VYp0FD>-xK!0=6k|E*nCfT18lx0EW+k{!V+x0C%kMr4{bXT z;yvLN(-D5RP4@zBn=Z8M5ATMC{oy{y?hkLB9$B+Ld@nTY58n?B`@^>*l>Om7(6c{$ z7ed(|zI^%scy62iDB!E6#{qAjo&|njfA&A zY9xFKq(;J9AvF@d98x1;+stV#BjF36eq1iTSxH4@&0v>FS4KXVG;KWCl{`0tsg0tT~B1ANHr(*b`wb28u`XHEtD^UP_0 z_s^UG_}7`GfDg_vc&pS=X| z39~B!PoG^4c;;*?;PTn^fM?Ba1boVD4zPK43*b4kTLD+hUI}=@>@!wQh1-Cc3NM`9 z4%h~ssqj*0o(eCX-3izM&Z%$}LYWHJAe5i9*9|ic{*;4@TnLQ2gL$hZ9et32%Al%-7 zADMkJ;MnX_0Vj}~p9sG<``IO*2!A;HMZj;(eiHD$+0O(1eD+sId?NhL?5FYj$FpAs z{Msz;Gz`Bn`*FaZ&VF^tr^EYarvd*uI}7*#_&*n(Fh}qabKhL@x$wBTZv!^XeIM}n zx$goVJ@@q`UkFc}n_BYa@a(w}z!h+yd^x-jQeO_wo14V%^XD3XPno+HuzBtP;5l<2 zUGj}^$J}F2_(s@0w+ygzZYkh3bEg1y%smG1+PPB!ubMj<@VdFv0I#1r1902iqfYpC zxOeW6fV=0G0Nywkp77o9C38;#ymjuWfG?kW8sKenPY1kZ?#UBr&R z+~i4r3V%NL(WQS1e>!&n@Q-uTfIpra0sQmaEa3ff^MJpfn*#jh+&JK0=ROYjz}zPR ze>>Lz{Po-<;Dd9Y2K?vTX90gWckj}_gpZqlAK(+_KL~jG{C>cb=HCPO`1ubky+2$& z{|dkr^KSw?d;WER&GWAZe9HW50MDF%CE!`}uLeA4{*6oj7H*na{|xYk`QHE*=YI!Sn*Re}_xvxG z{wsXd{Eq-{oBsje3+BHHc>DZM0B@fEI^Zqy-voTg{I>ybo&PT2%jdtp^xxr~^Zx_* z=J~q--#Y&ez_-o66Yvf5ZvlM!{JWPPb;76Szqs^aCwyl9%S(?x;mD7De(AkO1i_~t z76f0#bL%65;HYDR;CMWb!Lt$1uH%AW5YMf6ZpZT#Jd;a;;Ny6=lys-f@cQL=kR7y?34)ilB7O0EV_gtD10Tg$ ziDx68_iPA)d-43@a>!m01naj3!IgNPg{K!!70-EXL9hnT%(fu-44x0P2f+~?L2w_Q zU*oxZM-Y4n&jg--<9WnR z5d0%T`t}6D{@x%sx-STZ@pKe|py!4ln5`guJi}F#uNunLU=V!v#vu6S^AP4u$QwL) zJU8HZ#PfsTL_9e>?Rb8O=eKx{y%{#(xfIXN7X`t{OA*goL3>#clwKYLd-2?Y=T&&_ z#B(>EpS~gp{)p$Fc#gg;2p)~+bUbI{xe(7fJZ*ShkLQ+G2EnUe6$Ed=^Bz1Sc&6}t z8qe49{0PtQ@btYFamMo!JX`NT8sCX`JlDM`2#$Pr5G=uS@q3VO??u_h^S}p?ulrFS z@I39q$ZtIB@mz`L*?6|y8w4N4bHPXuwBp%{=UI4q@l^3VAJ2X~AHmbW^Cvu~eFQ}p z&z~od?s&dk4}u@#`3;_y2FfCyy?B0u=hp{=;4gT7dI)Jei!{db>Q5kz@caYMk)H(r zr@)WrlX$*_=Y~%sY&>&#K8vU2GpJX1-izm6Jf+VD!5%#C_yWoZp1K+kD1Ufv!t*jbP2WQu!*dg!m*F|@`zWh;?z}Gu-ihZYKMI21 z<0<|a@kROhkNy`t1a{-UN2os*kM|?+oUZZmXWOyeZAzrW{MuoDU1feD`l&){x2_8HoO8;*UPwxDQmMT09b zjx-OLUll{GnP0n&>~4eGYku8mEWOG6dcm>LvsD_rz-Yc%sF!XjcMle$Rl&|esk^+V zDu0{z6iWTwL4UQYTqzbhgIr7Z?x<2LR12lvE%{QuH>$MP^0h*jm1rNT)}sFA?bWE# zRw?%sicz3Y!Pd?jqOMwyR1vH%4fY2u#eAi|rK>BdR!QfeRoOByP%LyIm~shrM#bi} z`L12PmGWSz8y2yc!{M8iK@M{5QLTnpR9nma{rOV&hJ078Tp2PE-=1rBf)(aKerTzL z8c7YKzAayhG;?)Z^xVOyS~E)0XbTBO-RpNprCLj+x4MvyG`98Kz0u~fN<(Wj86Xx* z%n0Xm1nq+Z1LaCB>fRZ3B7>0bwU#c*jcTxEu!!8xS8MB{V$_?jMSS9~lc=>4btAb7`J(2t2(lLO5nC)lH0G?zSTv-d zI2>BYP!j44B~z;tX_d5rqu-5`gEqD%!b7c4*;I9Nl?%_hs3)pa^2K0rj#MQ&P$|o9 zSxeKn0DG!>DUE5m(qk1k)pSQ8+Cv&p3ROGSjA~3s)mHVRG{o7rRtms!+Y%?W?sleq?0$Z0Ks&4Js8AZF?u;_hj&z5qj*5`$0^|;&) z){TeDqVvI1R+Uz6bAGVY)u-B^9Z{u|`(n3$N8N6!aMkNC3?sf=U2cn9q zaJg;KKr!DHWfA+!yVGfofC(mHIYt`k!7dc)wkR`DJL*8|WJf7Ei(kJNd7Dx%vN-}v z+F7pbYAsi5JMzWB$ia8ytGinBXl#l_PPJ`OzFIED7&`hYne&H3}srx-IH0RBJlFe66M{@zE$ry%i)6cQ+E)0xaBD`*idg1KdF`pu^{3 zB~FYaF-?Q&2VhKhMBGGJ5yS}bcQ09Dye=&x{I!FHB1T4@)=Hrl!)X_V=C>P-95Oo= zf)-C$xp10L1ij2jNqI5MCYPjS(3nqpF z8_Jdbd@WAef$?DmX-j@DQ_*6Vi(IMV!r)-l4o5C#B-6E7G8BrdN#%(vVpA4Tl*$uV z6c0Vn40?>QJtrkb#l)Z?H(1RV(cg7c&|+?mc1J~%{2OR0#EnDqxM`4m&DNE2r(S|}) z?CuyEKuRi3MzmsV)k{-Hjcmu}W|BC6=@mx^_`(rCHSL3Xzb%F)lXPOop_m7t=T~ zC04@XMk|I}-=8lOFUJ(X*wP zC#A>>n=!)cy02NReoW!rNi zY2L*eLBKv#05p|oEznG;K56k0F7cvKD^)S;TS&u-AVqtSBk?wPtWaYSM+|;zL+FcW zGPw{9wx$ba;a3Fd{2Wj^NvqO+8Z#(j<~UMWqp{-2ayip*GW>IbcSir_XUe!`A)1>o ziDV>%pLTA##1q3yOo(l&^%qsK*c26!RnlI@@hE%6!a!#kB}rHeB3L_Ai?&v%2a;0X z4&NfOzq!3uiSqr`05iWX^bYGwfaqn}LX7JnLS2`MyRuFZ+~3mNQL-kfVh~YxR?vtc z7UfD5)2b*+tNQI~HPk{CGqfS62N3NNwT+ehKp#dM7Ti0AjeYqPMTg} zb_FLAH!Lm(Puf~a-J3B`8bnS92}Dff%E72IWU@pJWUNA_#zWCaih*kjxpp_gt&CAQ zcO()gxW00wfk7DSaPWkR$Ni~DmsJweVf0i58{peV+Sk-*hu9sTeLHzMFj{S1PxH}% zN}(E2c?@zSwJqAMebKQ2Un)^#Xkwnyqe$MVM&9X1l(LuOoWdT)#EMIM25A%ejy?HG)PYrzl8vrfK0|DK zV0GX#<>WQT3mY_^CHH{T)O2dFwovQO5408bM!IV=ftj{D*PrjDen_#l6bJh9Jik}( z?6e*zt2v{C-+(Sqi)<@vA3C>tJV#QpYiVjq&0DctQI(xt!8A2mzqioiH1Mprt<;Mo zM^^G%N1>;O#s)M<$gRoRbqX!9oLxqOu zN}c+x?P^6bb-CTI;z^)2`?`pRB4(tcm^D(uioNogr%J`ybv)x}m3(fU%+QA^NGzbmMJ3E!ERnA$ z*VyGjT?8lix~K-f2ntk;(Ig+nY6UDJPz&AK7j^B5XWM_TQLU7;(V7s(&OL?RLA{ia zWkRMvrqQM}=n+ts<~U!b!q}KJOP^-TPEErQ%TZn6Y@4(gJzgZV0yVC1M#SlQ5^Ndj zbY+VdT^*QE*I~u3JVYe~y%n$Xs46JUmhI!4Eo)$Zij;$r<#l%W$`wo&s4LhKl?DU*E4K|nl+BhY8XHI>mZYFt9_)etN`g~w zf>qs}8ed5I%Y>COz>G}Vd4k+Nh@~p5F_cT*j1#M}{?f4GZf=G5fwmOU+}es_3sVfC zS*UmBx$b7P^@CV_EObfBC8aDQB&~7*1x^rlbdcznm1X`YA;ILRVrvr&R!cfPt^lLj z{zA>$sIfT9&O)s(nNG2w7uKvQl+BpdzH&8EJqCLUtg^*8wYiQeGg3gf{5_;^AlE(?UPoz&kJumj+lGJIn;ou2*X9U6lx) z0%B>$-lG71>PYQ^?TGebRtlFJHVot|L&On##nOaJMcX%+FRoWZJ=#p_O8Ue!mx;&k zv&X`fGUXemu^8-nnxyy2`6^Q^NM*o0%Zrwl3sSMBO-L8AWSUB8O$M2U<3$Mx(qT{@ z_LMj{JYG3f{x7En$J^sY8Q2tAu#!?r!NqZDj3yJV9K;eYx|UsLdh6IkZkJ-StFyVi zkDOWT4GgSoj?rf9jT|R7^Nw=qy$9|6RXs1{`Kt+AO@pe@<=D(~S+%*?a+%0t%uBnPETw8m8>5=VXP_N+ zvQ#CBHiegXI5l|g9>*$gO!wxf)QfF|t=LO8h<)=aiH$0XFXq|UTiKmvi<9iwWf&Da zZ@d*aY?=&FZd&V50&>X{HM@ueE&Dy+giW8@#-En5#`?9&vSwSozTn)?pGsb4Y>GWQ~n;VdbAw zbwgS0>*Fxgi`ieGcH?LyW{X2b%x%)CYV+4NjGiTUPq-cHJKb2|p*26Fzzs6MkpT9i z(kL5V&~ix?5OhY^5LASlud3`2^P!6SBmI{#jWo&;# zKAD0=$!K0w8fe$HlCi4XuwxR&6en+}A+$|^Thmg}S?o03fUsJV(~{<0LZIZZA&^MR zZsddbXobznaVDyaM|0%9x#2-AmWX`1j5J*t6H`X2*(+KD8XW8DDkVwLvhX$yR7N=J zj0ojd8s3pG{T2Gy^za333$!*&6XJnT`YQh(BPQkvL>VZmS5WH~6gbwLXhgZ|fs#Z6n z)l}_iZ$;;c+!Nn}pMoPg*Ix}tCM+PP7I$*5yskV~ew+_}UA}O;K2U|5aI|S5k2kXi^ z=v-+Fj*L`>k{ScG1%nEis&?3rinFzt%&W~{id@xfvJDm^5{i@}s=X++}@Bw zBsTVr^Io&4drN+RsTkGK>8Nr^R~xRLXnXXQ7L{8xgivANotqo|Mp_+adUbd`R&}no zLmgb;aje2%2&T?0sIjfbhC<0Z9JG`aEDtF>Mo$9ai#dF;#Ts|PN{5(OuSww%^@pQP zS>7^;rB2(^=_Ai^td9G}w)O<8kJF6t!LbS}j@8V31|y+2juqzESYByPjLsFBClv|J zaje!HAHORVaja%eDz%dlI)^|FW?Q9Drk!MVpsu#a;K&oYHn{Tw;gsgPqkxkt>x=mT zw97JYRNQUla*?U%7eWz>6nZ3s;2 zH?!g7XTF#AwpvbuQp~)nEjFV0$2QDLo=>EjErmig2v*&Z@3czsvYB`OV#mVX8r&Nq zL$6pXa9=qPJ~hh3u1aA5tBsf~;c|wO+OL5#n^-SPO&pRzQ(46h_!A*G^R6h(zVLk>L zrY*y{5;=*F{@3i`MZRM|MrS!SR;B?_ja&Z>QPeF{me|_12 z70sz-OmjSWdzdRm$t39YpR|zF3Q&?lB@^vSY_U3v8wpB2Z|%lcY2eztFqKDhNfXql zE{P}8u80b~eVu4Gd2^-l#Bg@G0n@?$TDhxSOsXL_XBH_ozDyDJ$CN1ytild6Q#kx_ zXbMAe0-M5Q=a_mfo5I8U9`apO^QfOl<`3FXI;)sT$6gh6GAoh5nFORfdQv)|E33mP z;T{f;K25rS7Uf!8fWf^sz#OhmF(;kRJ93{Qh5DShAOL&v9dwFNYEa2j{3()-UK5wY z63hrPb~(Udhq$<0YJly1^4SbV zMSfrb@l>LSw!trxEt^3VVV-5K`U z4m^V)r^2UG6Een>zFp1Pf+T~H5eb8!&RLKmC+~*I3@$k4G`sPwTwm%YW6e6d*y9WW z)L4VKFoaD=r!2E4c)So|DsX_r=T9JDVoD%6jN5f)!|x&kLfZG{m~IAr4o*jhHps=e z**BTvioXZ*yOdXbsvo7!52k&v3TF?^jP0hDtdyiPW}Y;LjeLhlf`HQ+eD19h<@zyo zu44JuiHBlOqrg2J52DnEjf+K$JSr9JZQSm?Vj-4~H(S%=;wmL#Ithu87SrX^)OG)lp!S-T0 zc59N<7-oxy=9IE1YK?*zLh~U*W2#MhBq&axzBN_^lbr5BjO=k+N*{bkRGP4+mRSwR zksr~_h=e$qHVhVf3dJHN0t}|}n458s2KSAnZDq-|@;zWRq^YpEOCz+Rgf`qoITAFl zL*cFt_ES;8B7(MA1&en-D#;Vk+e;q zwC$mpt~Ce5a5nm*N&VKV3Jy-BAmYN)zZZ_E5J0DPyMD`ME{#d z{b5Vc0a}Hkg;6Rr`_m&DE9qDl^SGE5HYP~W?w&Rruv~|!7O$Mek_qHMvzUXfBC`!c zt*By#x|+?fd(>nwq{X;fMb<@1j9fl)v$jXQ+|+s*L<9_CqJDUI3tjZaI})U>UsWw4FqcP)vWKM8VdQbc+(q_rnrgv>s(WK}f>%qc3zd-LqC+uep!Ir}?&Ylk zW*sahEqD{Uk1(MKdMz%2td+~?3z@}aeqhW))O*4@cBG$Yy zD&ahBm#HPl35;GMrLIW#;`&N4POv99(ZlfiQ@NrJ)RPTRpl<_F_tO!MHyf$uQ7J}k z8Kk8fsu@%~Fv7|aqnlu+A4?EY;;O`bQ>EOoW}n0wto8hgB?KIKQq6;2x1x}@VPQ_^ zu)N}ypTkWTN0O5WX2fpMQ?ZkD^lWwvUB zn&K@u@?XX+euhGqSj1kXOYnJASdMa? zK4>LLFRM|uX#!P#x-*mQRXCdXkoEda{qYyE6|Ra~j!?OONsR7WoOzU5yTWM_>hul+?;f@EjMFOY+3uJ^=~$gGOskU!T`N;b zPHfb$D=vjgw0{c{JyFL1FBlh}B_I~Jl?K%Gf=6BPa_VGYGdM9N5O$r~neT4u8YW57 zY=jenSZKqM$D3z^PRKtFLOLD@ZY9(4UI>Bcck}9QY=#dfU9=YwgzQ}MX zju7kPd{_YD8sx&j}mUg3n;o2D@YYS8gCaQiW0lT58B3Og{&dp5OVMzcT9xY524fREZ>1bvZr6i*A5`%P zAYz*XRZ@XcM2Z1b1%sepywzCO9lUP9sU7qN7NIsB+xNBDi5TTey6==x7R^l|eFgPF zg|2j>6OwnpjgR=}Aibb!8!Pye77B@|F=i)ZveFMHX*UPp#hY~cDMJ`X?cqcy#cot^ zlylk!O8s7HE^{D0-*&os84dIx%{GhV1K{80>LETzCuhrjY)5&p3llnhM-el6CP)$S zkmx8}Gj(vzdXhGU;vi<(-|2i3P}1^L!;^Mn6C&1Vurao(d}HLt>O4Z7!rr>V04hx$quG{0 zToOgzFYX?c^jh3Af&m{|0o#B_2~n1;jM`$=&%C~)rHIV>ilYN)>x%~mf; zfaHY8TMF)G@d73TlLg)9(G7) zP@Q2)*TFGRgOju%bYV>+Eh4!#U&6;!)b-!VQkbStDn=TuCEvdrU&P2#mzq2~up&^d zv=2mGbUE99DV$Z+(u`B(G0{+^vHtg|vPjI+0y*4>r^#l-JB>9X+NpWrwGU~^JO_FAQ)cA-c!%NOS^H+ zPA9V)CO&OuSuA5Vua`q-wDgQo742m`41J3SzPP%>ih=FC4#PaloMB&vQQ8vsL>a4+ z6$K7Dld8fp2}#3vtl+6EQ~}0m0e6&oT%-Ng@f^}r40w{vUIux}&|{Ssq2i?0fN`bu zV@#|=!ss7Y{j!72!NR30pYibwQJdJZgW7;C2%Wq|!7e?-qJpy!^pQztZNiHRos~$? z-LxRP#pCQ)?4n(EIDgd`M%}mVNMut;mu%N_b@?%o+Ujv^;V!n^k9~1=2AjxaEL+n( zuJldC2w&G!?4r*@#(4NpwUMAPH2IG_35`rl$vq|+D(42$Q zv{3S+=;Dy54hQxgS$1Pb5|@acr^N`SXuCR(V=3ZVNTDY+Zybu{kU_v9A+*5!lECAL z1r&>jRi`mY87v?V;HF?HEczAx9)+hnHi#}7{nt!&!Y*p`J7#uNz-)RgrfxHiu3)nR z6>qW7L17E9rDGG7;g#T%sHDY79#5@Sm6TIf$%c?EdCWrh(vAwU6?@81UrXeeNo7lL z<+j=nkt(7@H$lMKNt`!GU?c&u2+8PVai#>Pm3sw0OFR(}Hb-Hfhr^CEi=+G$$RKCR z;k<1u2&K;nGhtPh4GYP%_v2PR8o^U~L>2EYRB?b99^Coivs31S8`TH*46yoN##+ zk+!&@%1d!JM!7_58e**?o1w;XB5`mHJ66=u_0vGfQlJC?LKn8=O6fG#R2dw=r;gGYNEq(*bfS??=b(g43Oeyf5_SHXAW_b&IkZUR z6=%Jh&gXEEnVB3q5<+a8n`gBmonLDbP;IVJW5PxUPib#@-(5cdY3l$(RFStW5JIxYWE5NJMC^QT=Q zN+&m?2%W}h$xUdyWTaw37NDtuWotyB|c~7=Yn^V)R=zzT1yZum%Kh9|!Gr*ZgYVp#LgO zNsNb9cuKvhzz7L-1zr&qH2vle%hDmdGL}ba{D&i!G6GQkLmob%#o#yP*QJ38?hL`7 zYM`%tz*kUk?wffGiPYl$05ZTPj^4g+5xCQ_)>I^f)vGv;bD1+JsZ^!8l^~7^&PI8WMM|rK zd6v&yz>|U^{|_y2RIt|pll9)UQ6H{G!7&I^YAlV-!u^gI9bwYsL`QJQQB}5d`dTIH z_jVO=lhJN`M9U)8CAYb%#qbp-_LWNt#TvtJ?tk1b*{IKPZ4!qN^U^jW_)X}W$EtwA z#enG@rO@@y(7)k~rQh}(m3^aMSXbrp-j**^uE!A$?2p%f=*Sj+DnWN%q6;rc+e2ZB zjd0N5a??6K&@rs&K!{d{3Y(*2&MNY@5B)`tc=aJev$;X_i3xES>vO8$6G)s0y=JctrKWk|BPGC4iBn6SRv#A@d4-Uip4)&9W@Dv1IAC^q zdLOfDCVCaesnxe3=`BT8M&d4;QtE|+7IkQA&(0{qN4mXG&{FHYN5+?vMMrOj4`|X| z@j3k=Ik@np=}jSVe@)Ahw6acTGc7YV-?(_(uErZ7i)#Nm9ipj%U;S)zbelf9hDJuEaB1-BQ0)IQ<2KOSB68dHu0R^iw8>V|Wb3q6%GMs#DQ&#_`PAkCUys zm^n)Mu2Pqv&p~z#8LhJ08kTHp+CzFMPDajW-wtNr|Kq>?)7zMJwVQrIrT7G^=Se+B`+unE2EVE_g%L z#>R~yL33nr=nvf%=9G%n1Zxy02pFr9qZ-Ptpe9JZzo-%(MhX>o40aRJ@*50X-t;*{ z8VwOnPA2BumyF+49&HtFL`v&!6_ZHlsA?rtOZ<1qTOSK2dzuNU*t9TxMmO{JWeUx4ou^Rw)O}6+w7saC1>_W|b%U5u?M)$=8ks^v`qPR7 zPyf7-HeoYu+h9pP+ThXf)eu^#@}*R=t5YG_lw{(o1m?peNusNi^2aknh2^5->{;2# zp{3`yQbAiZR3y+&_$SlY-UaA!1)j-PPS6?bYBZs03Ln4LM+#{yXWHF(Wl`*=OggVz zSyWxI>tl+p3!8c||Odv`29e_s7vW6BCw-O>(Ewq70cTct?De_<}^!hZ*Sw>`IcX zMVe-lLl6lTcL^^Us!e|-sBhcR<%Rh*N~frKb4DPT800-cd!SLF>GXRum3wbc3w)m%Nu}#2hB~ws?TTR&B^_!}3<+tMQ{APJ!RUk% zusMp`jDw}eP}#1Cic#Gh&E12~qzE(?r|aAG1=H?tmr#w>0mlZdM=B3fbgW|}rBE4{ zN=g@VY!Wj9G<>CQb-=-k6+DBKAGGL!q7`^A@KEzthxG8?lWP_t(nEgQUs6CUMK!!C zKU3;eQg=t0Y{rB$Q-;Is#Jco0445;y$b?0iWWkrt8%@jnGt&SNU7XSy+j>6$9O(t<+l$ zl;dasQqd|soD(63$CXef+ZbSoZIR=;4vUG`Ym(M7I$L#&oUl(6s#H>Qy`-sGR4>)h z&LP3`MK5Cv(qom*UL}OmF1R$tEQ?ZVr52Z#N`)YAK2d7CYEH0RgHvun<0)5c9d~C4W0|vpT|tiI0+Hqv(Q6udg2zVs^av{b+fF8(ck!vx|yUy#qiiy zrI(GPyIih>H#~+(GELJbpR0?R9+5+Nh2WvIj=ePiio)F=_rG>bZqQv;= z{~)qpFk(!i5nCvrOrZsXS};)-P7JAj-1Q@Lx+Mb>G+pP=K^Drfk*>-&wIWVaPkvX7 zE@_As%T>+AA+RzzIdtTBzN&^Ahfkp1L=7i!{ZfSn{W6?N=Z%1X_nl zG&XS}_HL{=|2#yDZZyJqItkmyA{_>z-W5r<7@9sUjL%X^AU3_=gwCKyfEi@H^FOIE zlOPKDbU=!n%HzV`NIU*j{+laD#G{)buC*gR)PUf-F4zK*$Uy7`&!%|=M;tC*>;;)9 ze3VBLJujMtFNh= z`H9+_%lB>Jh&awO(^ptFR3dD)#5#vIODoub&mOw{w6>0CMu$n0Nt`Q6n{41O-(2V~ z(98>0Gw$u8^Df@XwQordH;eEUe9SKs@5A9)p(hh+K6f~JBx~ewn5V!5%_T>ts+zUn zK#G^v7OV1FC+Z5^*1czQ9@hk6!lP1xnn;Cov(H7ftNg(yWH|A$Xv;c0c1`PMq;SMS zapmGVU1iS5HkW~y;P|$0nwPU>61u!V9{aHfh0c%P2ze9CfF5NqvbH#vHU0B zM3tX<1Q8gTAaWgL++r$k-b)VWw5o>Wz2w&K#ik@U0Lb%)!x3EUM9D(5T(wL?GIpp? zmnH8a8-HiNZbyVbDj2hn7nU}G!^uP!udc-nAhUKn;5wr12wQu2lO^_DqmsrDnx$%aM3Z7oA*g&z)Dq=TNTRu9B+y)TJggK1bl&K< zyLVF}b+fQ8As#pCrPMht%BI|_3hGufiBO8&sul1QBQW(*SRR8U&GhMqW2e;GR6E_e z>laYX;6FGLh|F}H}J%c0zqIUCg*?3gIk=$6gY zzQP8hPycEsJ9*`|MZ5J~NiFp0f>N|6Uvwu^sdTJDr5hxD(6*=(ms4Jm>}s-%6+u-T ztih5laeOi&a=1{8IVsCWNYH3u9DbStpPaeWe%a!WU{R#FD2S#VJKEsccW7 z27d;B?hS_~`QVK^@Jq%)62Mi(!J(F*FRM8dHXTu>dQs27*m|aQ+2++%MFoS(o@bkw zpc}9(1i33#9u(+$naXu&2Z(jqC7~xp8CP7;T-R&JzQ})OJ&t zXad2dirXWUdhK{|wiPm2_-RChG2uWSU-YAceiY6&_3Z~`slmc~n!y-T7_5c6u^0P^ zOWiCC$1&AV^cvFC>kkvdR_A7G;Y|^5#UT=XATg;M%fMy6yemnPZTpVOb>%%JI+TEv z;oa5_Y5Rajz=cckXy7_T3^TXGv4GEzR>;d>VyJ6~B%PI&0P&$JIG8Y6t70e=2-fWW z#y+_JMys;b*Qsz;qZ0uMj$Ghrrmb+2LGnRw-nQ%#W(qG2LJ=)GkmCj*67X?YHKN}d zibTT*u^PGKx`hNxj^`v^R#y^*z!NDGLwNRyPE~3PUFs5F^e#3E87!U}i8~ejR3)hl zP;r>4VTMGh$|aFAGA4yA-MAA?;YySQkDwyRLqb&uXd^$y5K)B|CY3{u%7#HZ<;NzZ zgOr4EP!b?Vn%#K5#@wcI4P~h2-&Dr^nrz})oFiQcr=Z+pgX=HT0@6Hi+Ac&*B}#6$ zqTMy}tyoY*1mWhY`Z3bYi`KLl+k)nxq{Y4upK71nQ2XETqHQGyr|K5STZxVXmvz%g z`VF`_1fNEby<93j{JEdS=%i8IU1_zEb4A_xZvwC=%Z7fYr5EYx*dZvtb{Z{0#*x=5 z<|%Ylj>;f<*B^kSqp#*gYLA0bbez*GVv{qgpu@5oC>geEqD!r;wtal42;Gn7ua zo?WL7C0+W^s~u;bA{^|Z)+-@~LeFyqUN+9+h-!K)%BwC39jfh5prx*)YR!=Gn)39} zU~yFQ_*4X?bn~(aM;YbQ`_6~rlO5gWwpWEV{VXjbvv_;8sE`qIjc$$Q135_U0qXF$ zaML$Ts_4H;-Fph%xWJjl018J(kMcOp)$bW6HI&U)R~l=xafEs?PQw!S6vV>vDu8c> z&I&#<;M{TbXAxo|Cibo# z8+RA07v5Bsh@8ui8GI~E+V&2Q8chgzpPOf@5Hpnt1Eftm#M`W#)f(3-KZ!)zi;N(} zAXi*yu03h=EQOgirp6j6Ws9^VkHNS$SU$RHKxYd3a-7lOmDf{Gm_E|8ia7h z8C?_Nw1g7PkW#}{3MN9+X=3m?QO&zp6%%)j%BiFR<_4^8Nvg>kMLjccHenjC;%s29E5`vX7!OEIx+s>h@6_K|!H~#}U=Mx@!ok z`JDra{c6F$uD7JVrv^UyDp_>^8^kGh9C;7VdKSRMbn>!X59!2eim}MSvcC9xTLGPY zx1BLCliD$)t}ADR&KeXk_f8^8OEsqO@=WzpmPmQc$>A96rh$)67z9=~uSr{~ITr7* zBn<;wR`g8w6$?_5lS?(6KT%B;J5CzcHfj$k@HCt%m{JbOSU$;QilM02GL0l7vsfy87z8~{5%0#?r zl0Qv$wP72OzA2osDplMF={@Ls@+GZ{*08HJEW*pgg9j!&_r%%9622Wo;V8qbNPK<+c(_{jpc##P~Btl~~Y?F({BSpT`;cL9$SG zOSp3xG?+AzrZKu@AdyRpjxE<>U!gES!-0!7#A)S-y$CASkX%BBj1N*6a< zyRpq!BBK*Rc*-TMdquEdkPC*WW1&=wWxr#<&bE{Yuie= zndY|@JhRU>%=kIDTab$pofl~q9282ctyr+PhR)iSV9F)E=5Eq1$!?=*EO2s1ABW&^ zhZIqXBf4oEBd3~g(#i=^S{n*FO^fYbk-Qj~aEl}DsZ^R~zqM%ITB3b-_;_+oe(B8v z9n@uGhOJg57o=u>1k`pg>74mbzsvYD3M zShiEUgY4lx6AN2ps?FPTNqO8Ug)|VWQq+q@DI^>pbH65oGO0e?VZ)?b@>Lq4ikYD| z56#Rsp|kJ_0kI@5po~W&7YiU6q;TR3;nnIMYz(y`X1J4(27xL|z=PP8J< zMRJ#A*HN9cz{gP3B|$^Yt=M$I*T&HJ2tt(a>JCIT)S-QWGK?fT-*%_Zq)3Hvbf7CU zm)i1gTm**e)tq8URUPA#N|d0WEjPC4hD@g_@8npBiq6W)y1y6JqmqgyV6kq(H6@E_ zg{prx+ytX*NRmiLXmL*)_Dpi}Y>J8~KvFHzXw=!61fr`Q?HMG8aOEJp!*0mTnLuDj z&y9f9m|~%$R%v0I_G1S+{{1hF@Rj7Yi> z0hezUA#%8N6x+f32L@G5_Bn{CSj?^(sSem>mG3%CEc~3Fi78_3L;a{J_$VS6Q^+mV zh3Rd$>W=)(-4GWGC3Vth{6$|%99&~r>UKsCQ8!O<^jtcF>Zj}aQZI(J650YZH1uwM zD7lQ}6?K#YDd~}x_9Bu-TPy=a_WvuJM9KeGUW$^%a@f__ zTdG)q+ja7lA-LAje#tSkg~N?CO4i-Y-T}9MXqV*rJnzoMo&46prDq9=2`3I!u{(mD zq!G?4cd@1V%LV~dSsfAwZqY%(?Tj+GRu|LiKtRI6HLl|*@4;*vx1i&O|1Nw7yw^-t zd|_%#arG5CU3KgX*7FC5z$N-IE-fgpTava3%@}TrvxF`Ay&|`P&!*A13sY`KFIaLV zc*ybL-`Ws$;rN>JF0CPla9fM?RRXm~!Eu(L5fqw?ueIlb@DvSPP~D|BNn*@(_}CSc z)GE{z%^B9j?w&y$F#N_uJ%-1$1>G^7nl_(mj&YbKWB@Tx(@JjC-JARv5toZQSXH=5cV$612hs)wJb!HKazcax=*Gl6M6-JGN7=s`S zD_Ht7&5^B{C}P+LgQ1GzK$KB0^$Xk`&QDw{(`5$SfSrmozlhmJgyg z>jUt(L&xLVQK-~#`#Bmu9Qjn2+2W|7;E>+^orQAMDbAAZG4-hD}nLMj*DdCb&8qs-U$L%>D zC^j1^c3)!ngKCzLLtIf6BEtzM)j+-rRl{P;FLkOZh`pL~d6z~@ z#tcUgJp*}zmAatKCbApG^AH5EqUI2 zX*S6c8i_~yz}e+l)eavU&IUB%_UkT$wa{&{rR4%cGW{_}OJ!9e~>MwSG4$ znX! z+sjN-*5BEz^(DIa)7dsbV{#`L{qbrC!(Wr$RH$`eN=W^?`2q;OA3@(W(7ER6R1|Ww zpaV1u19|}!8zVal)TSqCHs+ighmg$_6iDeCO;#