From 9abc8906e41f6f077e86c3f94162d2c6605c18ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=B6ller?= Date: Thu, 21 May 2020 17:53:08 +0200 Subject: [PATCH] Migrated from .NET Framework version 2.0 to .NET Framework version 4.5. --- .gitignore | 6 +- App.config | 7 - External/Aga.Controls.dll | Bin 144896 -> 0 bytes External/Aga.Controls/Aga.Controls.csproj | 8 +- External/Aga.Controls/Aga.Controls.sln | 20 - .../Aga.Controls/Properties/AssemblyInfo.cs | 3 +- .../Properties/Resources.Designer.cs | 34 +- External/OxyPlot.WindowsForms.dll | Bin 22016 -> 0 bytes External/OxyPlot.dll | Bin 373248 -> 0 bytes .../OxyPlot.WindowsForms.csproj | 6 +- External/OxyPlot/OxyPlot.sln | 26 - External/OxyPlot/OxyPlot/LinqBridge.cs | 3115 ----------------- External/OxyPlot/OxyPlot/OxyPlot.csproj | 7 +- Hardware/PInvokeDelegateFactory.cs | 15 +- OpenHardwareMonitor.csproj | 31 +- OpenHardwareMonitor.sln | 25 + OpenHardwareMonitorLib.csproj | 5 +- Properties/AssemblyInfo.cs | 2 + Properties/AssemblyLibInfo.cs | 1 + 19 files changed, 110 insertions(+), 3201 deletions(-) delete mode 100644 App.config delete mode 100644 External/Aga.Controls.dll delete mode 100644 External/Aga.Controls/Aga.Controls.sln delete mode 100644 External/OxyPlot.WindowsForms.dll delete mode 100644 External/OxyPlot.dll delete mode 100644 External/OxyPlot/OxyPlot.sln delete mode 100644 External/OxyPlot/OxyPlot/LinqBridge.cs diff --git a/.gitignore b/.gitignore index 395d08f..7b4a702 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ *.user *.suo -/Bin -/Obj -/.vs \ No newline at end of file +Bin/ +Obj/ +.vs/ \ No newline at end of file diff --git a/App.config b/App.config deleted file mode 100644 index 736209e..0000000 --- a/App.config +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/External/Aga.Controls.dll b/External/Aga.Controls.dll deleted file mode 100644 index 404d3bb93dd75e8b8c7e5e230f41737d2d9592c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 144896 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.5 - v2.0 + v4.5 publish\ true Disk @@ -42,6 +42,7 @@ false false true + true @@ -54,10 +55,10 @@ true - Migrated rules for Aga.Controls.ruleset + false - pdbonly + none true Bin\Release\ TRACE @@ -65,6 +66,7 @@ 4 true AllRules.ruleset + false diff --git a/External/Aga.Controls/Aga.Controls.sln b/External/Aga.Controls/Aga.Controls.sln deleted file mode 100644 index 72815db..0000000 --- a/External/Aga.Controls/Aga.Controls.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aga.Controls", "Aga.Controls.csproj", "{E73BB233-D88B-44A7-A98F-D71EE158381D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E73BB233-D88B-44A7-A98F-D71EE158381D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E73BB233-D88B-44A7-A98F-D71EE158381D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E73BB233-D88B-44A7-A98F-D71EE158381D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E73BB233-D88B-44A7-A98F-D71EE158381D}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/External/Aga.Controls/Properties/AssemblyInfo.cs b/External/Aga.Controls/Properties/AssemblyInfo.cs index ada54b5..853e88c 100644 --- a/External/Aga.Controls/Properties/AssemblyInfo.cs +++ b/External/Aga.Controls/Properties/AssemblyInfo.cs @@ -6,10 +6,11 @@ using System.Security.Permissions; [assembly: ComVisible(false)] [assembly: CLSCompliant(false)] -[assembly: SecurityPermission(SecurityAction.RequestMinimum, Execution = true)] [assembly: AssemblyTitle("Aga.Controls")] [assembly: AssemblyCopyright("Copyright © Andrey Gliznetsov 2006 - 2009")] [assembly: AssemblyDescription("http://sourceforge.net/projects/treeviewadv/")] [assembly: AssemblyVersion("1.7.0.0")] + +[assembly: DefaultDllImportSearchPaths(DllImportSearchPath.System32)] diff --git a/External/Aga.Controls/Properties/Resources.Designer.cs b/External/Aga.Controls/Properties/Resources.Designer.cs index c2139b5..3dafe9d 100644 --- a/External/Aga.Controls/Properties/Resources.Designer.cs +++ b/External/Aga.Controls/Properties/Resources.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.235 +// Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -19,7 +19,7 @@ namespace Aga.Controls.Properties { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { @@ -60,6 +60,9 @@ namespace Aga.Controls.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// internal static System.Drawing.Bitmap check { get { object obj = ResourceManager.GetObject("check", resourceCulture); @@ -67,6 +70,9 @@ namespace Aga.Controls.Properties { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// internal static byte[] DVSplit { get { object obj = ResourceManager.GetObject("DVSplit", resourceCulture); @@ -74,6 +80,9 @@ namespace Aga.Controls.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// internal static System.Drawing.Bitmap Folder { get { object obj = ResourceManager.GetObject("Folder", resourceCulture); @@ -81,6 +90,9 @@ namespace Aga.Controls.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// internal static System.Drawing.Bitmap FolderClosed { get { object obj = ResourceManager.GetObject("FolderClosed", resourceCulture); @@ -88,6 +100,9 @@ namespace Aga.Controls.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// internal static System.Drawing.Bitmap Leaf { get { object obj = ResourceManager.GetObject("Leaf", resourceCulture); @@ -95,6 +110,9 @@ namespace Aga.Controls.Properties { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// internal static byte[] loading_icon { get { object obj = ResourceManager.GetObject("loading_icon", resourceCulture); @@ -102,6 +120,9 @@ namespace Aga.Controls.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// internal static System.Drawing.Bitmap minus { get { object obj = ResourceManager.GetObject("minus", resourceCulture); @@ -109,6 +130,9 @@ namespace Aga.Controls.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// internal static System.Drawing.Bitmap plus { get { object obj = ResourceManager.GetObject("plus", resourceCulture); @@ -116,6 +140,9 @@ namespace Aga.Controls.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// internal static System.Drawing.Bitmap uncheck { get { object obj = ResourceManager.GetObject("uncheck", resourceCulture); @@ -123,6 +150,9 @@ namespace Aga.Controls.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// internal static System.Drawing.Bitmap unknown { get { object obj = ResourceManager.GetObject("unknown", resourceCulture); diff --git a/External/OxyPlot.WindowsForms.dll b/External/OxyPlot.WindowsForms.dll deleted file mode 100644 index 4d9a6dca27ce2e179c0aa5a12aa0bb6a9ebcc5e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22016 zcmeHvdtlsEmH+uZ=KGzQ%uMo~Nz;Z>n9v8)ylC1|D6ckcnl{*X`bsI5Nit1`Oy(PA zCT-JN%>88E6kwHWzzAwE*bU#Y|tQPo(!4#@v=l?~F?h8HI za=*6m(Uu(tv&H0i!5t~2$C5+oeBLc32Q$gSL_V3#CwsQ^C&%33OlLG2Uf`+Tx{he0 zW>DheKiuZ`_6+GQby^)NzzHgDY!qb@-zj|Ax+Dr+*$qtW=aL@47kvI0wEAYE2Km2Q zdZZGe&tFfph4Cryc@k!RP7_7II~Q{2&aC@Gbh2W)NCiP}sFCk1Wsa0UH@*S@buw1Z zZcy?`5?$9>C>Dl5iEUFrEPOZPTk~0s3F$0kaxMhfRyvI@>)L^D&1W^yni^8j=P@q+ zux&a8XwFK^Wfzeq-2XnfQ9p(W4;!un*sjlR_2@=74n|Y!irV_trHXPBsB67iFE*k) z&h7QoEM{R1m+16*&kViD%;RuZ(?hXfJ{n+j_VF+msX45oxD2y(91{Y*+svH#@4THq zXI7=)RaOm&R+gSR2QsOcpmQ08#o%Jq!ztJVbRMIy(P}+UPr*OAJQhUy4EfH^~(i=KRJMV8<~S7<2(MiRNO?S76TJ1CD--r+Z;IH6L}D zUz-K>V?50rhS8>}8GqWgQVSsPR7Hmd({+l{+!UdS(s_MFC$F2Y^B6qZY>((tHo6PB zADP_tC8~56fz@7DfH~vE3xRvX)s?IgI?h_EX3S1u!7Yr%w`21)%8oTWD=F@y$rr(R z4bT5E-V_vB?qW!|XdbR>Yqs4sAYsdL+fjBHW}9ZX9YAfjlNmpFI&8OFwtEqXr+l@l zUxya1Ak5YOZcg1L&|EVXe@-tmT z>nZrE^yd0!e`v0oTm88D4U*KFyzhe<=m8 z!wSlBJ~N{WYbPzRXTnhun8Gju|g(z&au zvyXK){bAd${;yTPg4Hz2c(5N5OH9I0`AFpX+K9^3CV(V6{qMA}Zn&F4=H~y$-7h@0 zX>jYRy;gAx7bt}=dg=iWO@3|_w{kLp4y4(oSwog zhI8(2)_x3o#FT)Y+5>uJ8G}E6brNYC31~_UfL+`R5KdjgD8d1TJLgs`o0hN~s|g`~ z_3G1(H5} z;GBL+D3R?E(CoX7Shp}r{^)75jzIl8ny)W#Md4aPK0uF-F`J)5t3}COocL-m23b@I? zM4>7W_6d895Phg^gV)>hUy8O};p3~KZA*OoOOdt(KE5i_Hm8Co%r@Wr=f9LNgTcL_ z&|W{(VZ!zYy|XmSL$KmjiVujrdJ0o&?Tv(LYwft5;$s7~A+C*D?Q?=&w)XHU2v_l_ z9t?3#W?^q#k0$dkd&80+zHxHhRVzBI_LyT@- z&u;Ja0_j!WLkPMrXSdF2ZEiiMb#CkI zR*82vqXvHN6kSniq~NrcI}QRq$3d+wuBC23nNwsWuBQr27K?yx3BdA$q$Yl-!4KVu zT7K1M-9xqfs^7YYncvzwGma`7>#dfCd3y0xKojr_s|nL|9E20J-5aHBb*v84vD+7*tn>Wt?k~0Z z&U*K%L`Zi+>da|vY?VCoJggtWyJMtY4INL<3ggfo1XjTQ98XOFTl6%ws=O7V6b#ZV z#C{DI4ursP>mj{(6UyTtaPxsTgpW7LX>kkJ@-?IpB==>}9cUj#UuHY*S399 z^%ICO4Vd$$aLiIZ^32VvFVSa*V`eNcdcmWQY~*YYo)oStz6B7Wz;1Hi3e2%_*JRf< zZTA%DXni>KHk9qdaU=D1AUQDJfie+{2UE8LSurPW_`Fa&B)rkoJ5hrc*ksif;dnUp zt{E-r;&s9sO}!g67hsMlVa9?T4PJK{X05)4d9#$s5k6Y5Y0M8(A zq^Y|q(xwe3<#6IyLHGR?w)+8~Plto;;9dmusoK1;mAaR!{dY0!7=k(Pz!&G4d~`rw z%QATHui?){zO@g0hxb^Ab>j!oq!kPAg(q*}%^AzC#$>2P=3`LS7Nx9M@k3A&t+g%W z?TJ=ev{jjOwb71;H4;}Or$!7vYPcUpL&LpW;5`CA0w|d`;x^}o3t?+qY{e57h$dL^CuX`IX0`s5q??m4EKY8_7^DKzXSmOdB(q> z@GqjsxnEMm142B=1fRc&B_aBIj0+>G>RkB^9%)@H?42~vuUfvb_+>PShA!YMlKT*F z5B*9N{i`baRYqgjXZ~HZ+He>1BzlG#%e%#BWaK8fzcJgxvgb11gJL^fZRz$5EP&tqb zgHZqm1{VXlI?LK?+eqFY=f+F*)CTs&y-Xa{WmD?1DRuWA@N~CkQ?f6egMONM-Q~HM z4$8!r%QmwK$@Q$(*P+M1LsJw_sN%b-coIbleuD?8sQVs}4(w~7PjSW7Fhj2MQqLLfO=!kDHjDB!m&K<6Ss8QH`g>K1Q1v`l0dk>#F0X0(Qphal z=4|c7jMM@70V5G0&oC0T?4UIevIoRhxC?Gk>4IBTh!wTOB^5%o+>55XC^?k87V0YD zt>5La>0BN&4^~I43-izs>sl=PO^oaIn--$DfkA2uCacU`iGUDa`XnZgbJZO5%!3{? zP<$4B;F9t~6m`hsB6iGdYQod9e*igN-QJw zV{qK(0BVE$wB%ER;W{$6-kr*4b=>F&(q3Hbzj}>E8mv;ksT^9`xuo;rC6_G4?C=vh zws!{t_WT?1lM~A22vqa?ONDHHq{tG#N)cf@()^wM^uS`tRcQYDoqavveGBw*8+B`P zocqfMo~Z3U|9zoQ1mtfPF5@7@y^rGyQ6}a2!y%N+$H2scv5Y)#!V99T$2aED0k32) z$2@qWvFKfN3e^2{7bL$<4*)(6Xpye{1o)7~oVNhR=`rmgEljuREVtE z0Q{A3q9*fO0mC$G-UawRfoA|M`k{FWwZ9gb<^W5s28>h4en^YaBAffY+~$7Q0*}#z zz!Sp1!{)Xh1Rke{ARni13;emXHG?eg0LJOcAlGIA!_dI}Qs~*BMMuL2!xo(s_;G=c z3VcrBO9IcSW0{KuZWcHq@a=Us)qR6LQV0K{zpwj?I*Wb-7^686#xIGS0)G==m<~s{ z$BzjA|3#jNSTrxnwY#F1MB&-dp8&rvdMEIQg`bRZt8c}4R-cdYC>GZ9D7M%0C`JG+ z8m(syx7FW-zU}}Xrw<7Kvx0v`aI1m!T-d;R-r2x+xPvd&u?d5rfqeyGu+F9OEtSKvT?)@PtY zc{4-)uK_t>2X>rL$p-v{*@34j{97gOs`XNrpru0X0OcT$T8135fv%Uj*?4Bi)Qujs zjasN4ezI+O?P?Jk5Lz- zk9gF7qAp1HdDJXp5G(n4k7_qYK>d|a&uM9641W6~k9w^!iJR$vdej|8GveG!9`zxi z8ZVHU(9RfT)EyM+7Wz8s8t8ei?g`@-Q0mrj3w_VH4W4pvzH0YFw3|hr_o#n1-iC<# zh)2C-ybIpFe1VcY&wL+F`V}6v)ci2=imXTVm>)+5@G7Bhp+2)2vH3e5wawfO>e7Wu z%e9a^kKQ2ESEy)y7CvY$;<~TUt3h2rdpzp(pyt!(J?a#w1r)hZN#1LI9=DCT%)0OQkS*Bfqr>K>-dQ>6s57b7v z4pmnU{FK`1!$RF6KG;E@oJRePqNves&^qY5LVcAkvYWI{x~-G7e3iD_E!an^FH+Ps z_A>2K3NBI92qah0eIE63d%d=n-p|_^?LKF}Qrkr5E@P@p58ET!HoC~8p0M-UcG~Ju zKd=vJ{dAK@{n9?J?Vv{F2CU^j>}J|Y@9?N|g0Itd($78W!r)u9UGyD3M$yCO;2AAV zdse7+yMtfW25HQr_6M8!dAhVK)1`^a0z>pFse2o_!LMt>^f`}u*nUhqKwt5wC+sJ+ z5&Drw9SuIK9i*^i5pSd0g8!&xsiQ)@pj}TJD%5{!qm=WgJA$U3qYr!3UBRfHr}>w% zoo}Oig0u8-y27LG56;tXpqo7E8^H^8ByET>k0Cwy@5Ao~bws4^0U8tyv4-zLk4_1} zn*}Za)M+uGLG8l1NH{A5ugYk2rEoR~+$2!7-2&X8?ZVkv!@nlf&|uJ@aEAZa@PKF- z6<7k)X%f(&8v#waS@>@fK64D=nDjQ_0Xhw6(cOR=DVdpV10rdOr0q%mzFzKy9-Y`8 zLu@eV)4&7tML>(b258e`fI)f^FhtJ)hUq7OnzYhI-Vk|H#`*e$s795si$`noqu%vZC@=PmQsLmp=qph>&J4GjUhHVprxl^UOd-GD!(K7rc= z4hT#O%nH0g;H1E^z!L&b0>@tPx`@xPZu)AZ7a7VUk!E^QdpE&1atJUQeU<(!TK$v;=n10?&QSD(el8u2-k~p`*G504571kqp8|Zs*iA2L z4*=Kn$D_^A`F+3v`e&SY4*fVf0;`^n4(XHhn`l2xk`ZHACvX;EH|+l!^z@jwQAocq z_D$d&;1AHM*mr>U34V>>*FwgTGs>Y{>{Gf!g;*IQx-s^B{cd_AI4kL$u^)lYCs!A} z5B!z%DdF(x)kXIU=c~fu6U?ERXM)(6Ai%we^=9U4nP%h5Bye4El-qFNkE7AbS=~JhR+yxiznPos~R3O7HiuYeyuOob^~q$|2Ddtu5GX(bA3Y@ z_)&px0Gxy+hcN0-L$WOR34td)_yS~3>c0WJT~9dA8h7feo#%`PQTtPR7_dy=7Q9`0 zUoNmk;2HX`GvDNS=rGUF_neCXFS4&Nub|&Lm_0of-wDp#_&&geaTo9!oAE!ZpAR?! zNuH&f%@+Zi=|z1{{Egt};-}0WIvW3!9y01;9|ZoI_{a1Y#G^vS$@o2H$e0EG3s|Fm z3K@5R^P>JiwB1JA8v1D)?FKwU_s2g0ZQnqxV=U4>1N=MnUjTeA-b^oGcl;b0c-|hQ zU&nuEK1jb6s3jP;0h^7biC|!(?1&w*BSP3OpD^2rbLZu>E72X;2MxOe&BlSmwSi%g z%!y=+#ye#>=Na8ojjbv+4`1n#ij#zcM-bqE=Vmgr<{+rQBqqxC$(lI&+eu7?Ob>hj? z2Lb2fca=`uzgXsS`X)GQg>wx(4;=ZE-A8rizZqG9e@?%Ih7%bKcF|5bIeWVd(GxROJGyrc;J@6GRvGI`o1mqblAin zz6|JsDWK6C1ewmeOL)^;K5&-YmGlr##0-6>M2>+;ucHC2F)*SX=0^ipY;uPua+#}W z%aO^gIk(igJDVSN4;Opg!dS6$IG3Xh>EgluOzFC=mlYvyM4QuNnc{eQDAR+NtJfFO z;|H@t#qF8=aHg=<&C5I7C=X={rA%Snky0jK%)0p^ZOxCYJ2LJv7cXIt6^GnHE;~s5 zlf_bIjJ6D3pBXB7ly6t37)GqM;O2ajsE^I?nbSI6lP+d_9c$fO4l23t&h?pmrjQ+? zo~$s^g~{udQZZAa?%`okpU%RY8hDpxkXlSBE2v=#2;HvA$=HK(sm3mogc|%=&0+CRVihZzZxT%(*EwD(nLC^Ok?^LnaM#n zT^Qb)&TnuF*`t`^bgsXY8Ru#F1GO{S?!qc(hhDzrv^s95dT0F#TRTxGVyd|cW_T1= zS1GRBi=kC*tPy+J3cp2VGG;WG$@k@bYiEehVD}FdGMW5VH=8f{F4Eb3BvYjBBiSOY z&y<+xEx2RTMf%}=5b_F$DXc2EAv>JeQAiJsVskLgL#tRyRlku9xFs+1xAq{GJ~K?1 zE&g_6`)muM3^@VZ0r{O$st`m?EE^tgxfKEBC4l=1PM<36_gUh@hWku8Kr`1qx6^4~Pik^;4iV15bN+rApafz4M(}iAfn0W6Hr@{YTbC<-?>4+@bpQS}@CWSj-fSi}JWbShO5U$$ z3s!c|*;TwqGq=*qOI4gtxy;K8`F8vsncA51dk0E2HNHNHLn=m81|!Zk({^FbFjaWI zCS@7*BD}FT^rj`a`-c`Gpk_)wwIf|XFkpwl(SgX|; z8Zkgbm=I*Eo0}Ygi*dV(O;k0xJC_~Fk6~w!Z(WtMc_Nof59TuJ;O%F}Wi{d?n=`fW!W+I>%vK#NjlQ+2O*B>NM~;WZ>Xd z=GwCpEQvci+}c1pjZ(u?nFQfXp2*O6iH@W>{;FJ}bNfWTlpV`-_8}Q5xZ{Ymhq6Nm zzgs3s-6i}SIXF?u(4@4;Wyi9mnnRX^dt?b6=^~usrSuV1O!9e-!%6}vPUJKdXuONY zm#S(ypd9N6-Z3cg#vbv~A}VkgJ&;APEFy;)MK!Xe(R>E4o{sY=Qlw#|Txw7`->r~o zq>G5`<8%Oy+nXNC<|YLd$6(&>Om^g8i3)BBVTul-!APEGgNw2B5s@3BG!@;6!cd0r z_i}p}3^3T89WEVYWP?&NNr&kmxyb0UB~ElOY2z+Zk_?GH@z^2R5rg7=7)^$AKsqdn z4k|5!2v#EncOpMrS%%C3F9D@E#)%RHSpOznc`3(JI=Y<*_DXc2eKm* zh4jl;Z!I9F9jaMaU+G$RY&@Nxd^v^VlLel>v#W6a4QIyEh0(LC*5ZuBEKRTig?oD(BBV}BR2@Pwn&E!^zp{ff+RwIM>l{vLM% zgIP0i;6SDTFIF+QD0$w7H2ecmc0YUQ=H314D#Y$8y15_6v>Kr#?r_DL9@dSG!%eFx zk?(Fh4&uxn=B#*=o6m9%zm8p*)*ZnPhk*!Mwf6=#qL%g)ZW+%gPg{3nC?g)}>qn5S z+$Yp+#mizVd<1XSD(O()y8Of#t8xoqBfeH?5yGVK^?>?{)yViVJyDGwjO$QlGe?&` zgw}Dl$P2|q;l3hRmVxAmygkGBavZ+WwkBOxO}#9c2Qxiy z<{tM*UpQERZ*_}Vj?zN(75fin50qrBxw5awK?V2t8cugk)$>YK=4Iw`A*C1^EvodQ zwhpObEy)v!>r*X@yY0`X)ty!)LR<1UN-Ie?=Pr_0d6T`yJ%SCD&bcGrrKk^2NR};C zk4fYt&5 zq#9nfOX5>Q`wv2Tm7i2=*hjn7b`iK<;2J;HV$e6>ppaP2;na_}z%gxV%C6uCLr9*l z8r;9Xi?SSds*@|~B=Gc3SI|x3MNsqDDalx_I=iGpx#WO7S3ASC*V&<)Jao-=KHQCY_0syyCHyCy=71WFV zy+V!Ob8c>nN0ro{#`57axdX{@7SH*Uv=whSx`byOfWyf2bKt3(H1GmAY49h7n+Kdg zs|?CP;T6$pOla0|5Lf|qZHOK=2Qq_mF4%PI=EvuZz3 z6lw8h<}DO-VO`SDoW%`s{K-a#oz&x9&SH_&L#T*%IE$UdfuycQRm%=;8O*mv{~^C>;^F}>SXmq(ynlPUQ;p*iC8=xi$Bi}fZZCx2g;)O!%nPB zkXd!IL_p$GCq?`ua9FH6c!5NZI#Z|cKjuKX!c=fq_;CaFOx=z$o(2a$YQ)oG-Bg)H z({cQ(8#*^#tm7vTr^UGvB?bc)ehiuCEQX1v!W6(##)3hXme0SxWO9j-pr1#1a+R40 zvOPb-3gf58ga$dxxCUX9H0@l&*4V|gIF_E`QI_I`4<%_uf#V;WKSGiH!vd;)5P^cByC--C)*r?cDfI>21KY;S>S9N?i`YLxbW7F)Ki$ID{ZwLx~ZvJ;JBQg~KcLS$n4xDz$zGV7WubIW-V9!31P(-P#e-0ZZl zOuP)g*R@y#{l)N8Q!Ezaxj0^z3}~@NO zEQVI`^0g6-Y&>|8hs0P~UP(awWQM60R}1qZDo+c+TsAc#qr{LSG6ChWFjthDxkj`$ zqjC8Lo=2X|@Vv6Y=u#^K4eaGh03m1rbopb|%$-h*FbL+f*W`cP61X5U}-m zkzic|92n-G)Xu{jKo|p$<)kX%dx%=L$@T`F#o~7|NS>fN_S^C)M9hR10(Lty;Z^Xw zIn524?&+)+x9jJT9tiV(RvjvY9enE6IkqX1K;{3F%E_m0<;w!)ueqap5%o)>9p|7IOTie_N%I2Yyn!IX0E?Z$ znuvbjpW!N}1%J$jXbVT1x;;o{JRQKt_M(UEoU*L^EFLd5hK)aW=R!x=2-;A4E%Yh> z;R@`Sc=ufV#{sKfAMZ}ffQ&;N~jaN--qWqcn+M|w|U); zY5YS79LrhAbE=8zBeAwN8Te2_m2 zq}2}8rokab+ny}};@&M!>Cc9nUv&ZV%n3-9}M0{UO( z@1SPb#H&)0HhI{es~N@gF?7zDk=pqfMmyXJ@Y#pIG}G{260Vw}jaOhCbHgJY!7ZZ% znX`FGy!XBqZ@VXF%v;j4eW}d(KCyR;r;9y;?e)jal$!njiQQ^Fw?a4Hr6#a8c(J6S z@$B`yLgswB{LGpEee=Fr+IC}&_&zoUkIl)A?2m0P6a9bSPiF?MQ-9ysz<?m~?Cv142na?lRuNR% z4v5=`fQq;T6%of7$58~A8FAblw{aO{W^@*ejLzaNjx(b(YWRJ=@42VyRwqII{r}JN zfByX>_q^vl=e*~f_q^vl?^)~Y+1CbzAP9>5fBf+v_z154rtJH~pPL9CT=~(#;6v4~ z9`un#XMOdcr#6NWZp1108W|m#=E=xMtN=*Q`3}DNkMXy!6?Z zuNxSM56MWMdvXw*wWtsb-}jyKd~S~h;X!?i`hws+r67nL_9tHgUIqLpu1Y63bma!J z^2-fYkpR5@3c=LNgJ6mM>$;iOMG5YK?wNw2`(`m>ufHhh2e*oN2kaI01c+5ZP{{>X z@Sm3Ruebx`bUkX}~)?b)V zfhcSw*UPCVH#i@nCEwHJba`=KulIiQK5l%F+wdu^}xLi5gz z+;{3f-|(`n$rZicOLLKfAbF0wqsc9DcK+?6pqSh$aAllq?4k}AnAPO5t;rEtjA?VH z>h*f^Yry1!-e|K~wC(1u>O{M`H`+Dw){`g8aV0pWH^NqV8_COZ*dvTztg%jX5u3{API@$&ooM zSvDQ^T<4r^fm!oDo}8NZ-k6*$??`f@VNH~RbEcBhb6#qASg&^yugPB+oZylme?y8> zaPn77OiW720`YL7<&sbt6Rp8wa=W89yuJ_|N+8^*g>%S!F^>Amg=B;tavk2~{o#v+ zt&}C~%{VG={5Hi1_Lr{yMCs_J1HPLY0AkQ147l3$$;n7PBBobb-+haEC~+72xCVe& z;t>XbKo2=BU;qd>v_}{K0{!ZU8UW&0k1zm4>=6clKs&o627oxuBMbns)guf5G35~kfH>YG z3;=-|b3_dQfj)Ey13;YQ5e9%jak>}=fH=h?3;=dKcd;E@MM6_-SCKZ7odDIj*3S1DR(GwK=iaTNI3)Xdx6U z>Z=>kJiQTTrVT`rKG=^sp-Aq%)}(Ql7yR1b9uNF(^-;7x6by3uuw6& zs2NwLz3`qq8Xl@>@#u)Y)>15qHu^fgVVt^`f=^PCg2vP29Yi?l)p&Q7;c_8GhsW{G zN(b%>lUEXDa=e^n{n*x-1ic=wzU{{!zULR8zyG)m<G>h11`xx1fHlOV;`V zpx72;%94Ln8NF>0L-}yAR;-tArN1w_w^nRK9ujLbrap{+@Uajv8kJRXjl+iP)p2;lbNVpuDtA12OlsZfJKgMh9(hKV{}+E_$bG!!K( zuwjM@=4>7uDrA^srO;7wfD4tAg$hg#?*3XlQO3(~8b3lM54FtpouwBj zEVW99-NUr+Uy$gimm!j2@+!dLzFObO1-z(`fI8WHw0Urin9n45dbrwL>OC2q?`@q0 zEhHnXV$`ZsOyvb0DjU?v^29eoQ*qaI;<^~3d}CII{#yUO%24rTs8EK?lP^O>NLL2H zjJeapm4#*4+)zYU07di#0IpTr%PIJHu!z{?2Jkp#QJIEt z(Mh#Jv3(g~=*YohI#nXV=e=TPvS6e#mgCKl9LAhsbF^ARTf7Dx^vuo^hIFmWZnFljzr=Ym67-mnDd^!NWX#F23e*@pklSm#coH z2&T3TINDWDoc>=a%+AN;ha$*yS9N+`1qdV4Y{Ml)L3(dEs%1mQrURrZtQm(~GY=CY z|8S{!O()j6TB#Pz3}+IdD3XX;d3w0iNk7#|x4DCxaOpBhA%7!XtIXs|K%j_0v{rJ> zT8mt3o5W}wD+K4#rlH9#MvUaYP*itAYLzy@oQ`8qa$O!4+81V&%6WOI_sB~jkOqQn z^sS7xlY~yQK~XKx@%M#m%q-2g9c8>O(lI)Pq4QXrZNiG3R-OU+g2{1pf8{AqS4v@j zh}6eiWf2Y}KeI>%ou^cVa;KG7A;c{W4K`r20r@5iHf zsXPqGm*7;YGqd!duu?0!kv_BC-cOh#p~9MP6{szDQj##atP`rjnopt47cD5Pa?2Gq zv*@fuj`(T$!XA?^EPWlL9&X|gCcG(&jqE?ogjcf4&0*g_z)Upp%I~!)IT5?$%ibnRQWhdl5bttBvUaculpBTvjV$!cHGCR4cAXUdd|ra1n;2 z8z7N|RI01KR|tX)pQ*@Fr-gESPySZY!t!~I_}JH3aS^GFAQIL<;_R@(VAM%c;P$e!q%+-JP0K9r{>ng9HSblLL@nPqT+K>XoZ6QB0ZbWa zZmJbW*Yz>4T8GT8jJr{=53(pVpQ?i@RkxMbk5rxF>94vOOR?JDd~IcXgD=s@l#^+nh7(R&JZdA&qq>TQVl4Pxnmx zhYk~kGW<lbSIYNZZkWx6tPiOk(v^3iG~h?J?$JZ`u3h?j&}X}wB+_^>1B8vBf}?HPtcb75 zCIl7^Zj*2rrAkxYZlX%1Q{z)nfpKGc`>ZCG zweFBSy?#qAtJL~+f<)`cVUIhaS~|DZXH=A2Ds;Q6;D-B@nX1arTPwSsb8xNPQS=*@ zg4IAa*-zdo(sAdq@lrfDeKN?=!(vobDfx2i8A+C5{Mht_ZVyg zi0w7!3*7*&NuLein&p{UkGadx?xur;xM`q;^jCUEflZ6X%N3>&R`seZALAjA4R@oI zV-u4exl%qZlm$R>YMa{58MT{#h3y%WI$)XMiLBqpwRV)Fa;DeHSCKO9gW;m+K&|<>*Yn8{@KJ#Q^vX=fFWWl~O+ntm?nohA) zlK#vB^vwtKh3QW%K;L{of0+K*0`$!X3`EgvxjZ{vsmxAStFnUVH4IO&pQq8PK|}ms zIr{8}<8bAYXFuE*u6Xvt{o%s{QMpoe<-R$DCF}ZHXNymYilJz<-R6s8vV5>F7`EtYUTb~Nl=9prMMRLWlNAWM-6I7ZeuyW+`Zxo!0~_Oo6vo95A(LTp2GBYSzRvuMXu0tMygd&->2H4|RID)3 zcVp9Ol`v7^HXc|o?zqBjTwE}2xWcg+P6w%vW>xPjT(k8y5_SM# z4?V{hF^*P_re_n*+lv39lAS8Ewn*N=jkOy_-a^>iy+CdfjS1!2}Gs3mO3J0nkz*&E| zgmed6y3iEsM1Sj>2wapr75808*?QP!!txUJ<_Y1bS}LSAVsu!DQhIbOK8NK-hH6abkjieb zG#I5!UZQ9ezBQ%`=`@Kpe2_+5zP=J{hCa)7locbAvW}M1S%9ppN<2teyCr_Kr^K`{ z3M*u1=a8l=^Y2i9wnl!p`fG_Z9?_?6i=Bn_eL*V5@E0a4ATwB+T+-TFV0CJSPa7*& zn>4C+dxQzo{6#cRI9N(HDsD8fC7cr`6GCewN3B?LA%oFKCvc>mF4v@M6(2SA#lEQx z*x(YR--YtH_bgM?qgk3b4s4iUW1Eeqav$X~3S6>mWiwmI#L@aJj@D~k4AsGx-~f@` z>G13}sR|>mX#M)?)sjmBTneJ%-oEK^r}Z)MCjZ`SHY}@nY-a zG=UCA#_?daG4(DYMz>$pnCaVchrse({b3~&M-FzddTSLaR5BSIEDu%&tLZ@$b@8G# zwz)azwb2z*+g6WGp7gX|9aNo~)qX*oZ2+?+@WCvBX3G0XaB(idO!8qOmMK=be(aUZ z+sE0Ist=d9+(jX^&VCp3##%8~P!{K1No$^|zh_Zd2V~24cIJ03YL;NyidrkPJi+9v z1~a#AQ-Qs-{i{T8XTdced9R(P_A)JF>#mT|K1Urrro%CNMoQ-** zwLnHgYBlXtVe84sA_^;H7axkt{El;)ml8L3PIH8Q&pAzDIj33J*E!9F>9FqO>-Lw9 z-gTKuqqQ~zK%m@< zcY8j;E8<*EnR0v@aOYWtg-^wO@o8Z?wMQ5L;<+AS0Eq1#VSx3aqTP8wlxkt2kzPSL)=X9rvAV%=G_fv9 zmvNE}tGkf=If|*TT-=O|I&72<5f-H*eA}n#KEQ|s|9L(i1JoDXCWy)6GV*OIzcq8O zW>;bji<|QT7*=k@VX7gyE(X*h!0xKG?_|${1K9Hl4JWE)i&j5O9c2d#35zJ?T8E5M zdRlx~J&Upd1K1*`$ahT9%5}>r)HRG|c~A5P?S{}`v935Y$2W%wXW-ee-l688&}{Qr zM`qd2@!kL`$QbVs27tKMBMboXe2*{yM9U)#0MYgc13+Bo5e9(R;SmN;DRLi(&v2{c($99Wd<{Xu97MmHFs^w@`hAKuUPrEu) zb+jpnjw^O)$3yX6wEKqo9Bswcnp-qeEzh)1!W^^yQVw3TCcm)T6ekKcqznan zmdXkrTC`^=#=mFQW1s9_on6VeaiBh2+`=kCP+*S}b;Z635Z1cEIu_$fpOy4YRPLy+ zz(@A}_YU}=1(cFoiN&5WE1L#YirNoOPUU=+Z7Tm6+&cP|#AP!%`3pS5gF}PKQxwd8 zM|D$LtFo100gHzgC+85r3AGHfWN3+DwhgmTP%D{SYlp=F&Ob9dO^A--T8IJ8Pe`I8 zmbEH5vE#eF);Ha+`f8r6NeFs2-ul>{#~-hDShQ(y?%Uz2qGMhEP`~3TMp|{#0PB@3OV-M&w6AfWo9(@s6P10OsO)p| zy2Ij-5(#L?Ekll}fug*O9^Yce=BKT9;z>W`6~1AGdvQM&=o#Zj(=T zO38(+&pZ~gx;U|lv%)%8ZD)}thDs9yB^SdGtWIU?Q;UKP6*&_KHMy0!bB531zU(y+`;g~;6FLgur=3#YQ1=GmD82&zk_IhrI0GCiq3zE ze`SXELi>Xh(^W%ilfD@S$Kf8OJk$3OjROVmm1B*RGQ6|m!1@BiI?IrS^iM^}^_3s& zbDd!imk<{%Y;}Nz1B5!eKUrDR1iG@-8HAe}Y`^+h4A(pA84gCjHt* zF}MMm$EZF#hS5(LM~$ekCjB5J)(oJ{KLk)sKdIbyFlw<@Gci^s!UKvhEPek0AclZ# zh*FLXoRL|KDitHdTU7$@8oZO=Lu-`K8l`NNh-O&=WmcjOc%JM3OyX+9#L^XU9F;Kb2m?4u@fIa$V@1Wu#|^}Oij%((m?>V4;eI+JM}?eSW&q@F@(2S!FnGHd z27tKPBMboXQjahI#LGOwfa_VFV&)bmpCHd$&!w(m@)1DoLbjk%?KAZeGF`7CYsHo=a#P@sD9GVQ1j}n}=$#gi<5!n>0 zk(No1r*Ni1Cq})JK4~gF7Hqka9)mO8=OT5eZi*v^xqLca5Om~H5{V*-9AK2l%^Lny zG<-zEN3P++ja=6|;$<>qnh-l`%Rge~K4DOY#- zwyu$dUao@z)mkaqHtPzO_00zPokUIYvP@d}SH00c&ilPd#2{DDUpKt9XYFS0eZCz~8_ zjx9>BC&&Kga3y^KKpdshDE*0Iqi=V;;u!p|yW`3Pt+ST!N9yBc=`7c``h%67^~_?> zk9?uWkgqR8*QPhRTh8Uw^o1lvTK*b*e`TV`T8&OwTJ|p@sExXaW%^Ynrt0+ZwJwal z%)cWtmP@ z?aISLU>RppGzOE`zNnEwoGWZz+&+=+qLVBt&IG68s`WjK(o;c(i84WQUrIXhy4gNM zaXH`#n@hUS9jB**A<9W|q7-rKFubziA)QUEmN&eW)xhR++D9ufJhF@?GbWcklex%| zUI1s)<3vini{v{2Uvo@Gw2C!lVPWzG3T6>q?KuH~Tw@}-g}us#*N-2}y|!Nx%gwva zLJp_IH_rrAyJtr^GMN%H)*@H7{ZkETUaO#M-^|P|Z}_fNDcbOj%J}shZ2vHa+U96~G#OUnO0=#xGO+t#!c0;9)9$6% z3n86HqT3y+qH!-Lad7BH9i5R}M8O5PC#Zgfkh@V$fZ@+58*Q8KDI(1KgUnbHlE7Wcx-!A6VN*l$uC-5%$t_bHSNpZ4TnBZ)KHbhum7KX#2h2%T( z7w0J%y*6f!f#Uy_-Gx+*B@t__5uNlO@tSFoyoKT?KXz%}D)^^@trT<# zvxiU1WCEK^ws@9Z>re@UrEDDz7+Gn;)=`#$Wv|j^70MUrjIedQMS35mck(?VxjuhB z`J8NWV)aS>mykF*xd58s$^O&9g61Jq?^3E)NS|%ri}}{WIk7igr)uxTf?MD|ZC@ne z2~=UEn3Um6GQbC|Ba>ToU5>uKmQH^PW#HbVcnEkir zJsH&45+`@9mkMX)Mc-PO!wLO4{!B1eP+OUFzs?uFkbVT*#Okp1HjmOp zR|!G-8A5Uupo5lZyu8epf}@awQ(<`fUJ4vXt@lACOwUr)t3+;nTvQJf>)y#{ZN0B~ zX5?<)^;hcF$?mN*7~QOs-CG%LeU=3GR>s2gY0xO&WmN91EHgs)R+2yLkaG5uMMIar zCu)7kvYy>v)=}$+7U9DENBE6JxM=?oswLI#2`H?#2q3HCSMW)GLc5Q@F>KuQkC-{VOj3Gs9$b!wm zlD@9ENFEt1>@RHny{Bv{`#bmwrr(MaPYzo@@quCMmw--thpjLspO{akKUc{=-tn6z zE=?q1>saAju@}TCIgOVeI$Eds*yDGx526~d3nIrU-;B`t#2QI{BgRPAhh~?YPWxnI zbup=_uBBwT9Bv5=n_Eh>`bft)(7aK?#h9qD0~%Tm80Em$P3mI@DKtv8?wqU!mR$m~ z+<0dI2nJV&FaQL@t3wz7f)Ums3;==pbO-}LAaM?100?xZLl^)8wdoKBfIv4ogaIJ# z@dyKCqfH`HXBaP5Q1}U^6ml`s4#0_9%qp(!V-uAlD5~Hyk?~2cj>*GxXcciL3nR@8 zOtEroGq!ar$*|)N?uHBOhQF3@CIptAgJ??>sC7x}0L{7!$>GzF*xo`$(WlTlbSH%} z$WjRJQm~+_dZgPZFICev+X2>#G+iJY3%r=Xduvgn!iO_Ze8;MMmeoppm%CIz$Exc^#^{(snPRKiw zY;q3r8|iY4ktigVw3t|uQesh&V2jIn7>i8tQ1GsJ27o}JJA?rs(9I5E00{J)Ll^)8 z{pJt`=x#P=2=v|^{pc_XHSsKWA-ly+WB!u%;e=T$*#S;YfO{Y3v6@{U=dm{8OJlW0 zw9L`We94U%G;mT8CeF*U>7Em{V_)5DbnL5}O}Qr<9sBBLQ}%>a4zp$^xoOHM9k)J4 zCB{rt80*5MOTE%Vz0yOy;^`TQzlDT*IDCw(t)9NnfBK}y5y_nLCGes|tV>}wv)&WcP#Ti%ip zSWVw2FOyO;+=ioawOqZkhHk1iwXSCDSWlF@Nh#}W^5d9hxhfS@iAs-1?iB z)%sm-whVIy_MI&&R9v2{!?---uvXzs4Oa~eL=-`6Rx{S(oyiGe@$qVq`@nPJ(pF}o z4G%cRl7$uPPKwo!ec7L_#<+%Cbb#!}=LV;Kz}t=g5L|n@vlYJ+P7bu9J`J_EKzT_R zvg>x(K(W;i&Z7#AnT?=Ex~QU)1$QR?9JSwMzfFgW>H8rwUdZMoA)*rVe~AB0-P5^W zp|}<+baz3D)1%ugfSUtZ2s?I8)(*veie$}2oozn=ff!Sg^EJ+jF(;jzr7vUJ6O zGU;4+t^I*4{wA*fBqzhc{;0y$Vpdc?NQmiU)_KdiD(!rFHYF}sSZn2!gUfZpXQTAb zz)~o!S4j__r!qCBRgy!))-pJwCs}lGQX>Z}COB+Z%oGnR^6ld+!1Q5N3NC@# z@I@^oYEO=Y_7^61p}fNOgM=n$QPi+?uvmVXu&o380WT1CB)LSGk>m{d+~b5730%F= z{{Dvh8Rm6lxvp_>&Kpc6=l6P_CT}B|?!}&)^YS?1rSjI3bDVRboJKN>BSk~2I^Avn z2wKS@3;;nhID`Qp;J!l`0D=Z^2m?US4h~@e2%5kl3;+S+9Krw)u-+jI00Ao zI}Zi&XGZ;YEoRS|Fi@BBSg+kugCzQea>P1af1QF>E2w`9)d}d-hv3^jz!N|TPm@N~ zY9zyO-CQ=CbW6= zR7tKPj-DYZBu{4#^r#=@%IrAG@fscGu#1ZeD?zVSA?#4Y{;P8-rFGRg(3x(FYl}P8 zS-jusEFOh-FNAznsl{XXugUqB;cw;q%kgi|`47NtF zIBccRb7&)La-F{L2Q{MO|61$|ImB@bb8J38KK|&?sMXN>$A-poor4ol8Qo<=%X;E1 zA6jnx({~~t?|`8Ldg2{8bfERqtXp;Htr%L-6L00vO6$KaUbWyZRSd7Ht#a2YYLVTj zsI78WDr)7->$wXrl zBO!6`)aKx!gRM5z8PA8+L#uOq?DG4Np+j8EX&-aV(3)J#z7EZ`Lu(h%eA3X9ay;tq z#7u^g1vC#GIy4t^z%yaIHl8uT-A}2FXH4jGOc>vr3H61HY}T3?jeeJ?nb8=?yiY(Q zOlD}BiGzK~-GDS$s0}i7`Swe`NV73I67%Rkq)+$&*8qHYhlu;dzxz zSl11$b1^$iK5Xc)T+Ah&A?s`Fv&t-XrC*;_W=ZDVyE0*N9wnRY@MX&_`7$0pbhzd0 zOR`~TLoQ#=!qrf?jJ*@j7#bR?W#=QG0>K%4?rf#`xb6qiOWV}!LVuz|kcHY%t>n#| zAV{%)B9wyWCP#nkSEj-1Oi$`=dZN3CS3|V@X~L5}G=UyBZw@allwtQX2pOp@?KVSw zXrntmS=*TWH7zoJ`~gm{Urc?EMFG8)|6Z@_PSijl&^ovt#nbyhIC>r^_iS1WN-qTA z=)s`OH?#T*`};RulIq(}3~y+2UzMpsSDy|LUw3p?e`LkWe|X+UzQ(II*k_rJMUD0- zSsmTYDcQ1@0p^5G27HO^O(EC*RVNOSd&DTi@ty@N;P0`m^<)_n+Ik~h0_#0N&Q@jw z%Q;eUMk=d)K4gCc7pk1Ek*CjucQvw1c(tcfo|(O=_htF=sLwtE_m{QLh6(O|vQbOs zD$(DQ&BDO_Ws@m{i30ooGydpKFvU%EE?L?^UtO{3R4;j`qZ%e>d=WW%>Wf&MaZgXV zh8pliDo*#Ha|C^7&Nt)u5Krt__nYCRir=Rci=Zyaa$^!11aq9-FEc@7^; zC)?L6F@QXS{!-9(QOA0CF|lKJ3>@>}h4@&Ry#Z%{wF(X6jRkWczCGCY#?-)19c^4K+>y&WjZ+u-TKIre~|R9(*$S>o451RI@l10ACDIHff$Or<6QT4y(Csb4y8TZj`*p z+;YNE48kkP3ve}y$3k?IWdlH9r8$HFAU@?027o|wyBG$5_>4yw0OGSAVE~A~^aumA zp2$2}=aOso@{i6%Y1U&8d;yD39@ccr!(yw4HFt8b&Rp2UncQNl)aQJ52H5(I_Sdl8 zYpt_cQgQ3~_8h1Lw7b&WoxABd(C*Am&w+O5eOhVm&I+~M-<>l??p82;D-0&cbJk>~ zM#qKfTj>)E(c@&)4C>jH1x3;Q!>CVOLl zzEA9rh4tsr${XJ1PuWBpZYxKXLh^FB`u~@*-kg=S99#xpFO*DLOGWK3!mPfPHxzHb ziV=V13F(*cmsg(c+=_0{#O1o4UhFt4Z*bVKuyPg2O7-LqpkB78ia5KZCU4)^;msQI zJ8z%u7$yUBav4OoRR^3;{vf74)6(kxgLLhl1r78`V>KuYSUN7iyIaW(dKSeYg zhwwxl#-nDhx^Vo4oj2Z`LBnB*Do6|692uojgZrx!yd}X0_=}P+~ z=Hu#p-W_*q-;AgG&TqSm{e=0AWfXsx{K8c{#1y1oRq0m&c@W5hK#x0$tDbSyHLD!B z@(|N7dSEL?0a+D#9CkWaUYsmp_sxlVM}sA|OOD|#O2`c$27sWWIfMZq=xGjN00^>i z2m?0r%O}vPr+=U+f!%e}8vXGU_#*Wu3oWFd(uk^u({GZ&=KRU6B*X}Kt(Eo~{7dq>dbFOg`nTOP zMUl8V8bGCCu|pUDg2r+P13+MlJA?rsSPgUt11Qiw?-jm-BJXvt@E#%ky~1~OV|4Eo z{vk+ldqme9-;PJDcqgtDn_Y7>Wcp?WrP@)?2cN?$EedzIggpTnp&HNVZP}ebg{Lne zBzGs!a5oCK@J^s*ZLzy|0u5)e7v2f%((c{~?9yI%C$LMqdnd3<`-$!ZvOK4|#S-*~ zd}|m$z(vM;HL& zpFF|<5RZ6-0U*BR5e9(R?GXkb7yZFaVGvxb{>K>jZdC*E{3x!iawmTZH2*iG;z9%9 z+_eRG@G6~s!g@B$^F3yAEDYzmQIn6M80P<$q|JtC{$(#s1!U3Z1lvZ7)?lB8P8(VT zaK3;bITz>hnCNF^5tlYHKTmK}TITwL*}eCS6h%)ov_RaDL=Lhp{Q)lY7U63}x^AgxRuY-KEERZ`17eQvi2{=mid#Q zG#1=JfiFQ8IV;(b3B8h~i?PK`oU#?RTYh&XpU9Fr6CiExbs`JvBL`ER$X&^^i@NM0 zThakuG;v95xi@J1t^b?DHrhX)|28zU-Qy?JpN4*iC-3=F>d`q?Ku5Bny@@?U0E4?-JBV6n^ z&a5yRQn~f(cJf9q|7O3ZbdKR|cM9C-4M>1sNu&`A$ zGl%)hZ&~5`t?O9X^|@F4KC4ykKHBj??V9{R z*piEj3i+N_AqIf>zDF1U;s+jK0Ei!YgaIJvOdzgJXrI~Rm#3#})lzfeIkBu?IDlt?job4m*q-N1iArnU*!4o+a)E8w06Dbn z9k`8=EcPUVOI zsP)uH=f2(VPT8)a>u@u!%eZbfV=onC)w+tGF*yKHSJ%`SlcB|pC`sYMyp43XV}96O zQZ~NoDp%`y*rv&-Kz?swEv`nzUujg-JAwv)__aqEz)w5=FNjI1rN=r^LNqM*RI}?t zOTlr8HTk}pyD_h*C}yq6zm>lFT-wmxi7QNwL@j<>I=g$7(qrSb&GVzy>trwUTU^jd zSxV9Ibu5&~p5R`$A+m?;Tkj%L=T(*Lb!}H`J+SM#Sv6(hC0<*cz_!O z-Sqk)V4?HVBvad_lhtbc*3ZE6)MqAf44FRQ7X;+uXVHHHHXl1f>uwr%YPwfi5gD_~ z7`N>&Z1E$vzAOWPY!hoII7>h5Fxm{xFk`~F-QopW%Kpv9c;30f->3 z5m76dU7^eF-I=tHlihx_H7}<*1zMF zjS0(dd$Q)*GKgA_gT0rr#C0K{(bn=MhGHLBy$aN_){`7czakX(TkrM1c`L!s+R+b; z4g6{$@3+_H2L}21Pf~j!3pO{aP7O>#+o=J&bv9V`@@?ttj>bUPI+a*eD?R-P|2F*a zQEfWd5z$~XA#H^?b`N?j$^%h^yiy@vxZaM3>6uiNlZ>9rpIQfFX+3xz?NG2Q2r%+b zNHTt)F^@Y{tqv>mae(7v+1RLuo|sR$*SFoH__v-$ zv$z-W4NM+^VZ7K`Sj?Cp62`D(6<8}Wzt!T7hw$56`qALtDAHUXY@G5%Vug&j(=_e%%fHu+aKrVGilEcuSozEbfJVfM~5xE3U+g;nXg!*qM}zRS5pL zn+KV&%>rSZY!>M5shlh@lW|rPPVM!gI4JU$MAP6PW-qwZ1q zDC}oxI=f!MbeLm8$ypZk&jgu0f88#y{go(9u&P)QIKzU!qu|Z9dyzwI0+E|KvNcz# zZs$=ME!6p`!llSWCA&Jpw3_vUBYG)jT|k;47b4O=gabFZkS&DV%X^c$Kx@AYYwLl` zvbWbFd+c#svmf$Tozw49@U6e*#Yna$v!CLQ-A{3|oL~e3C@!7l*-uMor(~uc#Tt}4pq$_DaDa`$et&~u`&I8X5Yh@`>H9wxQ)dd7iv@; zG8-Uc!k%m-aA~50`@CTd%+HSV%}y~N19;S@O+?&vA0b%UG*QS}O$QjWl4dP3(8vnv z{iFC@y9~H?=^N_j!Bnk1;4C<23r6QJadgZ!CqHgIfY&?qduzXKj#wWW%w|o4*&LD6 zB6hmA({5XL(C+NfM7)LpYiQs9oAnUV^c)9vKalr*-If?A_!0Bbt<~9?a;Bgj-O5jI zRx5Tsln%C^2GChiDa*s)IB!3gh-=@esh?zT>Wy_xHw*muyIm$L*pI)1l^SDNBU|b) zRd&0d>1&Zf2QO%3C3fo&hR{ok_M&EbB$Cnf9U&icl~S-19z9=uz&2ARcDNFytiQ%> z)?B&77$(P)_fF;!?nf;z!q@%*K{p9y_>{F*Mda5NqMc|V7x7u0h(a0OM^wkoc1KvH z)tyS6k9#X+X<1q9bgC&KEl+lumM+=3@DqFJam2=AFnNjxn#WZ2^F<8473*cTKBH&# z)We*IYoF3-Hm~GoQ(VX-Y5J=EVsBiX;6m_PaF28kh|@N@;ALLN`Hu}AKlcMCQMG3#zbz% z7pWodZ1uJNfsxj2;zZ+r<(g}f6-hOonnkYDl=`Vc+mmz1f>lsbE^)N;4U3Tg&Npx% z-Oe@0YvZp03}+Ugski}@N3yvUx1zc{e?3Jqh3_ubcW=e(%;ubkIGw~#xEra==WfNn zA{WD6=E}uMSia}y{4xgp^6?H}_Y7~+-A#?yHD6u>Kn!_=0U(Aw!T=B>9$^5yK(%#$ z9me}vO%NXb-2gY4kH1(>DcOOejF);U2AsmdRsx)cpU97UYxv3;?mlBMbns z)*}o6@g$Eh0J$p%o3WpEnC^c&WzdlUtXMi16%}Hk70aF)A#bn{;5a=7eb$3`vJ_p$ z2v%$Q3j;&NXnVz3scsQln@Z09k-1tcxp%4T*DHHS9SNz-=8?Uc%k`*S2=;0&MCI{m zm@wu-R4^a1tS96MLh?4QyEd*zRTmn$Vu>?yzx4!0uJ#Qotl?d6d{q%rwjOhaZM`ou zeeWU66(#*|VhmTdJP7OA>S803#}q56SdiXJtfTHxn^aQO+#z1$5UQ|4>~sj#(;=Sc z5Te1uw|vdY<@Z;ON+nfHXZRL5*`f(Djv2m1=PTw6U)oHy$MkfDZ;4AA=|(6xt#~J4 z-tK)1aG1P}Z)W%I0z8W48AQjmyAWKA*4ULbzV2PQ>Sk?JZMb53@2IPS_l~*Zd+)MJ z>RPdy%~XcU{BVI;#HGC~;*zt7OZ&5knKk?_7BMf_PhmjuVyjLk$u97Fl*b?(y%%9R z_vH?Q3typKe#QTOVEz4nZZq$v@yuq%29|c}+Q6ovuFlL74gpyoOW7!o+iZ@mI{JJrgV8#!-vKNsNaQymJ)J)PQXp|WdtBjW6@ zF!}etcmB0&W^Z`>V>tI3ZfF;G@vbLsVHZD~BSaxX6nD+ebfdVCnQh~_WIQ3*n@ouP zBs1}{5B8k>p_YOY|I7T3_+RC}{tEmr@*lA@Sg!oS>re3%U+I)yboA%x3LfSx!nFjx zkalmsS(nt8`+*?0w%XUh^>?6w+VbVL7dEdNFSjRzm|l9MIMwl}x*T|C-$y?N;hx`R zWuoCQW;R^Q{hO5gQsRL>UG#Yo;4j9#EIL@#K)(#Znz%hM>`^Lt`+P{M8nuqQn z3;l2<&wtdG?}>Kl);v?cm>;&ldsoLh$YVe=!;817@RBXt0K(dm+Tw(DF|K(7 zHKq+V85^#FYD{;71@}Z4;@yWK7k79+gd~?wNXQ~MLI(0uK&ig#qz7rr8mlAK#>}o0 z-ixO`ymSkyIw;ka?y3!+bc+W^PPh?p*>HUeb}Oq|>p;tP zP0#v#e9A|+lHV@=H>R^t<<|`*-(CFggi6Y4ou41okG^x{t=_o1xjM@(AGpZ^m)_k( zX~2!URq5e6(6NuA=Ns_pRC+_LKHR7ekJjqT)>VixJv`PdG=|4mUMbcZchbWX+KR@^$?9e5U7PuTCI8>d|1a|&X$lUfF)rgj$2fy6pHj*g@lP0;8jXpmqs zmtaAW25O_Vu@v1B_tgeF@W2-O@cs%lP#dc?I!Qb{u;mN6Bnyf)P;1miJ4rk|u;orA z=?2CW!3Xw(-)GU9m*zs0!pBkyUm8`$!vp*Pb~i*Re27x`{FK7O1A|2#%C4&4r0-#L zG@(JPmL2!NZytZVwiFRs$`$7#@BM)U>dJt;C;Tlb~k-I7fIx1x{(xjrmZUk`ADLaizG@jj?%tXE*_u}Z_-;+ zV!5q4bgx`}nlN#ELcwCN0U+o#4q*U@bsk|r9F8yB$=*oJl%AELrOYDRA>JD-ho*R` zRk0v=5pAHKRgP2kGGg1wh&L{^4UBl@o{fEBeLhw|+$`7i8|PYJoMRy|o*&?2Qo^E3 z%)VS0ycT+xalCz_Bzd1w2N}kg7<9U{YxB_eV<|Yn;$!{mG zwYbE|5v>r#@468CaGvFyI2^U8jd=H(ELE0d4a6ot$=jVos>i!ISjE~-{D@lvluh!= zSDG0Tz%3CPU)E-=2g6fkKUl@+=&VbXr|4$$cgYHOzfSFHX4M>96erP7rk3m zMEzKtTOo24?ecb>y`h*_JUbjvJ$KLt7R|F*1nc$H4|&S9wM?xcsGXn}%u%+Ld)llS zsRia)DuVfYwe67Bq&sc<;stHXuxxG1Dw1zofv#;?w6L~izYtY<5&5T?)r{u0}SyWNm3g0}Qrj*~cEvqZkS>GMv8wV+!&o%Tag^pUf ztf7sxOK%O$(h#d4Swpkfp@yayY8$onop*NHTD11l)*`y^wifOEw6*9hY-=lBuC2vt zYikQ|^>%H|G7R;cpY^}~i*tLfGSduwx~ z%~}n;`|85g`X%VAXI60t@5ZY)>?;nZG^JIXY@G(Z8yCn4Z-VoKz9^kuB}vE z${Plw887H(SuN*P%cwA~3UWbmKTNkB%dFptpEoVwC%WDG9b<>@cLE(h89}Vyq1fYj zl(~3|3XkUx6D)qN2QYqKBDO)>1~n3O`1vFSoCcSSY<(V+FE&<+-uwnWuu@^hN{h5+ zPLW`xoX|YsoU+{TMdPFr^>9*%g;H;na-38}Gr1BkUqV^ojJFB|GM zhjT0?@`UPDa&xq z;5Bnfy{4a*6i`V|TcleJe9@O;S{ zwUewF_4+*1Gs&8WI$3*`5Dg1%o=J%OPS!4VQI%&nXPz~4N^Zg?ppss~cm7gE7&Qu+ zj9FfelF8V+LmdsuWbD~My)yRhcXwn=wDu!oBD!xG6Yc%TnCRWg9(CR>v(n{cOif`j z)-ASV%ox!lV}Iae>~bqeIDZ8$0&}IDyo@~u1iwGZHz#ASl8jvqPD!4tBy;-iC1cw` zwx7pGSMr+Uabf%xDY3j@@gCzCVeM-aYnfu@lqqIcCv({gn`r%8l=rm+DDUUvMsxZ? z_US$H-2!QO7ZWz|n%wdvN_Xm@a&!|E@y&IUbF=6GrBQ!;8hIjqJ@bkk(3ZSkkDJN6 zKqv1n0FsQq5O@AXe1LBdJm=sS3!WFOs_q0Z*=H>zlYNom^y0ey^4Kx=gWY1A221BH zi~9VH1S8s_?1cU%AsQCEtAnA{7fq&M?TpT=kYrF;;6 zWz^&z_MH6b(-rbEh44F#avYgCq0*Nt@D;+2Su*;}F&Tv{x%HV3hRG`}sTEA9qc6aw z3zI(p>$LT&fYg(`&HLZ~-RVc7-_wsY-knFAxE8Q}q}iFD-^d+zVSVM%?rCyaY|W}B zKPt>40+jzF**(=Gg78R}r%ojtGUZ_AL(2cwn|k}5HAb%ANhGY_S%5Ww`kmF+`rS2I z6FIgh%(&a>lPf9Qt<(t{;}&QkHS@2=MaXZJQ=Gp|PQG{C4x(dfm_039<2Ln=*AS$n zuT`2keG%|pTjO;govm@8ME$qf8Y_H%5bqiBd-}s2&{BV3m&5l5fv!K?38X&o2Hg2K z@&SI6;5Q3ag?0ffur-uCr~en)8b-Z7e;2WkN)dHk;VnWm<`rzVhWxG{yj3A{%90-< z(Ra<9Qd>6=kl7kd$SHXKZHhB$l(KQa@|-h@Cezp&cN57;@7sZT$AO%!AzD51doVn7 zwy%ipdmIq${fq;mx6szG(&gk)O=9xcEw*INir$~-=g+I(a0lbha{UZV zl>RY^xJXe*-wiO%LppyVH`MR&A_H#Mi96E@ZE}h1PjUP6Ke}7#{Lb{)x$a!lhH&S5 ziIvc&ns)At0ymR`Pdk4`VOnI;ai`uW#`wIIj@5;T(>k!=C+DEaguGj;+*JkBz zmNOu$*Uu^g`Kna?{k!9W$>;Xgh3$b{T@K0Dr8fxSbae^!+a@y87uLl%%L`x<kCcaOF2gGD#Evcu}`i*OZRzNNwV*52|VRJrmoiR<#ZHz-k%ALJ!j?C*F9$mX1YP5=5i_z=WE8D^7ad`7J_#gy*-{2fc@CM4?{t(E%a$)|% zxV@z>&k0vQEFR+FL}YDwWxUfL*0?|?R2yPld{d0-c;o_nMfOC01`XHOtPUo^d##~S z^4uEQ8!1;;NAU9nkdWT~2ySM_2y}Y;K_KbskK)e%1s~G~9|J&Fhrt)9=bI#3mYVB( z>-sBW$7n9N<(+&m(v4L6<4XPsKK#-FU(?eA&Ecx4WsnMr^h4Bfb^wweyUiVdbP>`| z5kCKEKIml8Z5|eeFP1;~j6y!E5T1Gz{Fj2qEEYeZyCzGJ#r_%$9S(2~6UHEt$v0-d})1SEO;I_~_# ze1QK(@ZSoS#`rq`WUpX%ZQp9VSMvUft<9IH6oZlu90gmj*d>BSofoZ$#uOMZXNFnooub87o%|y)+&Xav8O#XpL zPSlivM6F}vzVCe<`4XwUk@%9Yf5OE^ctlQ*CjS-~uLoDr0(VQsc3Y~#{I_vsBRqhgdRn$h z$>xmr?1Sd{j^@&^elP40ZHEf9e4hFe1N|%_y>Z;;~xT;-u*9VyS)n~$3~Xi z>%SB-0%Pv`aJPJh4}HLL;dK*YyFTzEAo_st%?-%2{LV=Ju|jyW1ZVyyf=4Y@BmUM) zM9Zbg63BR%{B)?_V^kUy)RBKoh%rYVEj=f{BmXlORgNRSEF+JWb_ufBMjI{tAH;O_ z_0NHN?du=?sMB{;)SkX`5~X#0N0sc@*P$xGe>VqI!5?w$(N`YZ#}1it_jALsAYAV9 z3xlJB@K^^kH&osW`fEIx zR(lbt=R-d1+!o}7bIQdDT2Tn@zJqAC2$A0j8plb{;QCtAOk$)c_2gMZ7tmb89lK7P zG*a05JZdB@E7;MP=NPNHf-=hHf>uVCp~>n?c$tPsPFDHt=moO+=%XE36|EjwJ(ya% zxuA%4WVOeR5bgcwdC^-ae^$Dj{HX~|{<_7Mj2XXrWb6-}jP*fNGS-iaj19;cXA_(KIKaw1!IMh+&HgnD3UF6X#f>NZP>?l$##eK8m zE9rV&tRDcR4qR_NhVzM<0QME^r)z4{;3Ql{8JEypoiY7<*RPLB=<&IT=tK5?XKK#2^M^^+KM_hU)65YAb zIpJKLViwYdeMkA4jaRhad;KH$)*b_=wV-9VPn2skrxa)FY9u*+L0JwYLLpsY-<5o`vRpwM{;|rk3LLjC<`2SsqO$ZhXf&tz3rfbN3F8W7 zJDAY+YCg#cDvy(!Y4W6j_aQgG=txSKpVdxAZVDSECqku>Fd#JDJeQx~1MbUDYRlRB z!Rp}9vz+bkM7oHupF-sJAu7(PKorO1_!3-H)`Ie=qTTY8dg@rnM7Y1Xq~Zj)s8@I( z%*vBV<@a{Sl?jfht3y6g;stiXl%G4Fu`xK{DXwfLn-~~PUOOu!rvvb7sae@HA6P<~ z_o!@o=~q)n9&b_b-g=+a0cxZ)vRD3;G+mv+H3{;U-cN8dy)V$|{X>DI>&J2Dn|y#L z1WyW<-d_h`_R0g$c6wjQ(fdUZCH}vX|H}Az{NHjjA9TOvz`t9c49)vRz-^BGyx=6b>{wwdV`Y0O8`L7Rp2Fw+l*gwx*}fO>6>+@6kT_2_Tf zE7RX1y6?4U%`-*6tHTcn!WA7GLNpiZa4TWAJ?7OMro+2Mmkzf|N@O~Fhwr5wu@g30 zVc4g}MTZ|D$J#?CBIe-&*_95?tq)sY>TixXS><;E(#;TlKdV+!6+-tD8oXf5U#+;VaLSe#y!Rh|=WvJvih61Br)em33ySIS6k_r#`NhP%j;oKebeFAhYz{VWcYF42uT4Ul_xV??a>vnshvq87d;iI3W?~*+woO=pL$exQ+ck7R;*CEjTpy-|lK92NL zrSbez`KXLf!)-sEkA7IgEq6X0Ah}=x=?jR`Asw15itdL*_ZftFy3@d-JA=C~y3Y_@ zx6Xsr5qy~RU7f(jH_4=7XnEyKNENUB0i>g=^ z5h!CL70xNCGpjEKLU{^rXKyTm3pbVUupPEhEUzK$*pd(n)te>lR%Ko_abpo3TI)N~ zVV8iU2J@HVMy}fRJQ#sL$seu49wp4cHH*!_{?9!M;-5(l)9bbNiG7a?uo8dl;;caED&i6 z2n%~9W^x;_uR5oc zXA87uyxb$}Iph^WcBV8};NpQ zlW%$>AB@Jin}jN+FOk=+yS<)zJSh3P8Ju+KOL4j4JpVFWRc@eX@EYs*qB+GR!kP|B zcJHYjUo`iBhypPX zv6;NL#~Uwzgbx2gjCkWkvNThfUX0z+mbYQ%mz1_kz$tB)Vk&KK#eDX(iSk*~rXaSK zwznyG((`uA@yqxmuT~1E&ssr>qAzbzZdi~`ccMdYueX)cM3dZN>Ap}59-meW{8+0m z>f5AW0)wAUAx_0EaX*}XoSUe1Nqp!~tkJV8{)lr{QNfi}!w6%(|X3*R!-Li@{>gb|9rp13yh(D+INh6kE zx2zj+dbOoK8U4JOYd*3rPtv`6YP1I7Y!WHgk8Uw94#P(`EMm zuA2Jv?Hz63?2i*m-yyB(3-$DyN}sEz5+C(ahSgIE0=taXdit#`WD-yA9;ET+hBSmS zyh%g#^siP=R|V4ZMEVhepAu?PpM>pFS5J-U7ql>~dMa+Lo*JNfDw&dPGN#qjnfTlz zM1FpQPoXCDna1Z(Abm@NPoXCDna1a#;?wF6Yns~fnpS?d2TT8(UJsM)_4aal1Hj4D z)sfJl{=TKShW=z>G;c+-oW4fo^e~Ic;$k`$-LaLpthy??j(S(cMMr%-d8DOJeRz7| z3w`RzrIQbB9gdrjlvh`>Y6+U+~H!b6;X)Y7}OoPG?z_p2WV94whc>J@73C$OIk zV}5{nZ;K$tKZ$Fz-Y$%G^J}7N%3mvayjZ-b-YQ&IZ&}}ozP%Nmtm^I=a`pl|kADh} zQ$kJZle|tW1SxMWb0uq)z-tByY;Y^a`mu2k*<9n zj&?YqDQ`>Tk*#S|-Azd2ca%m~cP%I?tC=g+%PK+;GE{p*-}T)s{ZW5`UHxVGq`Ki>*Wbm_ zyi8xWQRVe$i_YR>3Lky%S>m%gtSGGxTa?t{4gY2x&W?+>kG36dmMP=o*uY0l?^HzJ ze-=LC^s{78d;K}(^hN+*kKLHDAswsBHfDrDUzfk%T9-BCY}Vz)(e7TiNp<;b$>uom zq`IuIU0r5PO>a3&Yfl@o+SFlkpOD+!Ay6Fu9G<6yGJGNAbc6UAqvKHs~Ae0s;f0DDyCFJiRUXP472 z0Z^!uFAMLB?r&R)Zs?B}MGG_a`5cwmS6OrxAL~HT54RSdRc1xmQSYf(l+%FQD89yflesYoc`O((+iPKvMs=c0+)2{;fN_{KfVA+Yt z#?)T}(IS{1v$o@T^rC2`*LfB{QduvbBEN1YrHN(O5q% z8Ptj<`f2IiH(Hjd+m_x}x29KhyH0w4tn|9Nt>CE1CfRQS52(9VydY)RU_12J_irJm zc=CWCop&^(Bb4DyI;!7dzc_hdAbqDuzeVU%LK!|eH`H%q{L~i4Z=g1dnSsSV>jrwj zNXFPr)MDMH#irNBa&9yeuLlJNu4wQo)TBPsczs?VeOH55p(gd2#_O1PC0;!thOa*GdvEc>;+ot;oZWBKh!AU$cib)pzOh#;m+j+diBW=%P zpu2@IeL$Xj`?)@sjSkW>{&NuHoA^xpf=@jDpuk`9p_1#4ke!g_Pfgz3YzkVBZn5Gi zV(zE^jafv_ZK!;eN4aP|etxEMY-G7{dFhJMhcR@yq3y~jfbYKLlA0WQwh7RhBIBIX|cbI-}N+5ev-M!^HUOn9qZcP4K~<+~19nc;X+JZ2JCF2KkhWu7ZX( z0A8N~=kqCc$mlrC`fJG~xglY0RI6@OsZDtj2n|0zox1!wUnJ+JQ3*GrH;W&7sy+Y*W&Kp}0&wuKUH9P}t~Q$X6+M$@+^G^n_yRt=4xc zS$wnrBHhSqN9dbet7hMhwtrBxcD+6xm*4BD7K#e}i$$2@+vu|`pL8)FYd7;c2O0fR z{44?2M&$BRDoiN+65BtPQj^m7cA(haoKXDgHJYb{OU4eU>~`_Q_6nk8va()b2kaIe z51kC!Gr$ujQg(lK#L04LVkrnl^EKK$oVkZg$|w$tm|UOTK@e!BV#w#R}kgn z6^6raBIx4j1qnMxC$56Svl-UcsxPHm{Ed2k3iVM83anc+;O$%>q&wgJypYR&e-9lx z#!txTO@1d|+?x52tlZBn+I(^e25k`u_x>_>UQ=`*m8Was9528;EPr|J%j!bv<77ZU zp};I?OTl;=2|O79lcND)0Eo2#VF34t|CWFUw_#}q^IINu#Ee*AM+{q0+y+J~pM z2smli1z0fsImJ@dlO2`}Hu5Hv!hV@*7MYLX-kTw zyre`bR$3UmZNCLY|8ggRixyKhB_y?y{rzm^a#3x5b1ZqezbDr?vuD_uJ9={;ZyxH+ zW1V^Hm^aUL=8}uN{q5fVUT=PESb9F!M^W?}@}s9aKR(jNHJ#k;3rmyXuX(5MP#RSy`G?9~(~4GQk!zYl zxARJhKG)p6N=9Mg1RXO--mE7 zA-IP_xHiG@=lpPCb|!?AO=&Cf1X}kco4KlO4&#V5L>vUe>X>J^no+&4Efn`4^6v z>Ue9Lu)L@zqxq!q$pmgWW57XiQpMffv3`=A$h-}K!~hVd1cU(~UL6nyfJg(v01&4J zgaIH<3kU;1D3!*D0U*W#!T=EC0bu}$(*wc)5N8C00U*u{2m?Y>V&$(KvAG*PY~}9- zRNS0mij5ycyM zS;mK!)_AzUA$TaD0q1q{z~c)Wbn*a;cu0;X_C2p?gyOO5bYXInAiv0pp}qa)(Z@ky zFTgpfDXdH}U&g&>=@)3L^dww9Js+zph_(Fue9A?(4eNq@dQrx@FrU6TW3{`&)5T)5 zGNFWO&8QqLMt+YVzwx!STOAdyAHu1^WkeY6Z4JFO|3-MxlrlfSr_#8$+QO;Clbs0C zBtQ8apq|i}eznJ5O`4D_(eGNPmXRmAs+^N_MJ3$>8^e}UQAQgAWaTcs1fI*5Ond&J zTuS%ErQx6i&*-3}&*&f_c!#CjTW-OHGa~1;YPVIa1T>PjvQ)8h(BBi*DbJ23{9CYk zC*cV4SbsTV+S$V$>dlbdX&uMUUrGHZQ3Kf%V-hyyaRWxAOs9uPqhDyhT8_* z;_7ohEKA9fQ*x|dNG$CQl%(%2*3bFJoOPG|rK|B(dA+{exNNqvw>2Z;xuSL=32!%x z3Ho6BF67(i9&9aH5jL@`X3*MXM%nA{@2}-Gu5oYT#>ozN9!)-rb6}}jt2&lydB;W7 z@l-2#>wnIa%Fql<8Cnw3gNYg_WtsA?^?EtA)!IB$MaM;(XR73_|0z@9{{8l?-@l(A zK#uN3J5Y|=RZ#iUI~d1+`z9EZ2HtXE#0i}UHbC_U+= z6tDiK^)0Q|3tO!hw_4AWm5Ci=G1Ne!->JQ@ced12xYpshvYAMQ{Fw~JOm%VW%JWbwelGhp;;Zx9hCm@ebmTs;H6K=+FTsO7+)iw!+gNk z9De8N_-=>aWjcPY!;_5GaArIFZqx9VGM|`ziBaFkU{YTh!3DKc(av9=fVM&c- zGC&Zv*7#>=A45*L0q&b=w5n%AikK!bc1A2r(7->{n-?nSHY)whSg!EduCDRdRPTArjqW%NdJ+@9yKcMN&%Wk!Ml>a=_4(DyldUNPGnceqs4e3#Sl zZzscd&OthzwN4jq&G%)UE?_UL%wxYT?Y_&s89IGBbe0f8-?=;G#h1nh*Q|A2I}c7& zx+*hMxPG>)8s4)knYef*j&Qn)X6bUc(c}PdddJe00GIW<=6dSQ4(bq9mMw=W_P7tl zb15=j{Sxl1XW-a2Py(|I3=72jvXDRlH2opecOrI;TKe2}N&xD#{~z|bA-D9p^wv7r zyzk1k>}2yZ2%*v6GIE=iOUx03DV0aV+mvpww>5G4Cn|M&qH8z|V6sPJ z-D1}F9+|8)+H!k-f_6I3@&#>NzW?nxI=fta_PN5H{U-aK&o}+NR(f*DzOY6Iq4(Ht zBaie)Pt5raw$@IuFH2p;-sBb@%h5H51f0Ia@T2xcAuzbU!MR>&c=_%1-pf5^YhPJ%FO@~q$sj}7i^>-EuuPCkcb??zNYYC{(V)qnB z^_#;{3|aCkT}#EOwy&$2}|3BxT8Xi-fv z@HW=7Bmi$?Jxc=iHhbM&w*&B(j3^@I!fK?|cxy@P zmSInmqquH_ZLBuJwv;r&HbJz6t#yHe;9r0KZF2V@`B_SzFI;pJXUjU)GuN;9HC%?1 zF}c_~-pOkLB~C`MPFMzjVD9e_27q`+Kp1dPoScMLw*vTfIYIKyKw?jNX@!o(i0L1$O!T=EO4+sN5d>|kU0C8177y#nxfG~i$ zPD$sgB2?{|>%4)KYK`g~O!uav!>I+Yc9-g}tCi9t0UOVg51inLi|Kw0E#kI7}^+eC>y1tY8zC2wBhIoF)?JF8Lz+ z)HB`4SfLLL)&eq$md`1rf27x}pvSeDNa~%X^bZ+(cexg3J8^O%zC$R3`C6%7sFiD_ zk?x8QxHI#Fd9^;jR@~5Nj7Ll9BYMfM`0f!sOKyDZlHp@zS0mn9MURnJ>rKu)CMLED zFM3tWBk9Frg=wA&4}&;XK-mN>%9$M<5N`t?Cn?{7PC2yI^vvGd4QnD^5E#0(ycea+<8n)6wup}+qB`MvNB@E;c7UT109$TtaZA8N&U%U8kGk~CjLwAO^W zCtZepG5@HtnqCSGHR)ysDBLvaCeijdIIyPB?xAojnq&tDhJ4;3tmy~S!p}!k9@AgQ zaf|O^tRXMe+YbUl_{xo)frw*}}KRtQuY_WYQtl~JV+QA|6=kJeVB*8C>K-VjNR#*Yz>;#X^% z5aX;;T4H?tt8OkHs|E4{DZ2>^4fV-uX!T4J;4-2ZKM4GkP=?ngbiL1ZDZ81DC2zr+ zu*O%{hQj2v!RO`jsm;hKp$wl~AW~_|^FCgF@`Hi&9Su^U44)yT`J2|9beD?hAEg7)^ zSzB38n5u0Vu{kmmv!%umg+;>m>{Zg|;djlMRK)tLoy;e%3yFVcL&8ECJ}Y6~9?M9W z#esy;e7z0xB1{T_VlS;^)k^@)ij49qZ*Ox zlZ!q^*=L=Ke&Apgh$#Z}@4cTZuvykDS#$%cf^EITmC$FU&&N}Dq5cw@@k0PRDrYcP ziB&iT_O5X3m^Qw+%L=t=YUSOF@H@JWF4Jt4{fqFvgW%EmYPoNOhe54h8@#6V41eP+ z>+v55{aMNONd7`Pa>f7?5H^rPpOtwSIp;QZJ1V`5B9X;4mA+DbLwXYp$~6@(j~171 zoaG+9Z7=s9VNcjp2dlXxvvHy}_HbmkfH*sg=??fK(j-pQ_Eo_sq(%#|l8NsbI1G?g zGOM}HQa)}x?we^N@1VG%7n!^Qs(Abb%99uJ(ZK3ZnHmfma8R7QNUpP0&F1jwKSFvx z8>obvdykd|&N4VKTaB76z35grNP2!%4dBc%GUJzGqV0?k9Omaa{H5qYjlj+#UzD;?o8 zSY}SmW-RJ6hRmg-VBOsxtS7EjFkZy$ZC?!&64Uk6EEAIfH1$`>L33D^P$G^c(vS30 zcIn>b(g>iK{v6qltShFEVXotT&O{y68FwH&RJL|y2tB@zD9_5^`;UzaIomEm86s~$ z^52dR+so8ksy%u+t@8hvoYxVc>+bz%ud~n`?)5Qs(&Be-r=JwKA_$-31gSd3rL8&A zP~gV^!0r|w`XE5ptl8Y%1rdg3d?TUY4X*?9LNIZ1n((%4H@AK01OL*K?Y20-nb6FC zZ+rdtXOB^yU5umVqp!Wb>$Cf4@)&&N@+HDx5r%K4eJSa{6!nm2JhxizD)<+p3-)4k z|JQj^Te0tO<-7IwlQqf5%u0g!qnO+v>)7AIgh(akhEQS*0P)d)Fd&Q;f@%GEcFaJI zyD@`+FlJybp5J&lpUg-gJ4CQ4cotz}hC|($AwE4-M?XMi9p%y_YfLgYyNfn&Yu|sf za&@5zT+QcyKBoBg^fARtHGa^_^n}rK&)XlyZkxKZ{4iE^#ovd;}SW*9Qqa3fIpA%h=C1g!JRP%I2LO0}v* zYQv2{RV(@72Bq5#F9vAD8E*J~Jq$P6ml{J1H^zN}5xbxIO@1o){%pgyP=?R??&4kL=7_Mf*5Su1o&V8zg;CGHH(u#xzlV8& z-a)T9UCGWuXR))CybU%xi)X0L&La7~ecXIC{p4n5LXHbYKmv9y6YY7~a(W*i@61*_5W-S! zxvu|ucQTtL+5n z!44mw-oR~l;ml?*X#vju7hLNMimB%=aO%0e$;~7x?n}NbV_xz_46fP=Ir6dm7%>e3KL8*_4I5B3dE_ zx@3WZVSl3-9Z1~zD=?60>bb@V{UYjTUl8x#A+E!UODPFV$VOd(^=s@cI-z680Yc+!4nz<@|%D9Ce`XVsS~EaltA$}0m6 zi@}A=ERK+mY5I-zh*&X0GI(-4mI-@H_y3B=PI)%}^?%{s7LUEI;XjOIq$bUhe^8Tt z&f(v?>W%{+-N%_v?KA$+tUFg9)w#x*+pg)|@HPHddGjD|9=T@G?Wgg-!JB8Vd5QhK z!<*N6^PArM(Hf+|--F%^dfCyip`#veF7oDpGpF|P=Aq7f@JMez*4s~X<`2&t*1G#& z$nbwqUV6HV{7*ouirq;_zG1-?{cV?+#=W&N1+GL;Szf})qD_6 z`UkDqqZBV_ad6_kP7VuO93uOBQVxq|aM))Uhi%QlcZkStkFsiov84B0^4qT1);p2` z>lo6NXu=su{gCo&>9A*C@{21CIs#e8l8@09vUEz@;5tXI^_zvG%o8G;mFcu#55G2k zER;p{L0|dmby%0j`t|{sPbv*F2RRs^T~Y!K95 zDO+!no`MbD8Gdfte0YxDB&u)UMJGoJs_T#a93tt@4Inx=mxUwCFp~=FC--8e+i`*> z9Vf=VkrlXoUv3$v9FJw4E)G}6^bYsqn*2y4^pSD27qVi*pye#-QPggoB|Q?;pCuLO z&XS%?t=9Qbb|~```j}F{%fX`46-%GdpG%Y%&Lye{>!+PrkTsWnK;X}O*WFva9^%$}s~>E>JD@~t<&2{eTrK){64mWm*Q-0L z75!GuI9hlVKvTNN8AB+HafB?TW3Nsq$LzXllctG4*HxP+=w}&|D6jEsdCj>}pNl>N z!K+QU6q9UXy-OJ}&_*FYfl?~f0#~XA7J+&xs8!vW^5u(Oe;2A9bcQbocq&bpV)jhYC@`fpXOVLU2OIuZA%&Zw9C;V*TnS>vMJT|g3 z&2wi4t^-UceMPRE-pCHO9v(jqqf~TyGWEG2Ug{9>#+Lz@IzgeKLcb>M(K?&rEkti1 z(r1Ww{1h@wZBK4Oan(@QS41pfDyCWeo%z*=Ksx?vk^xp@jU}tOuLx1Ho;0*9_gs!9mwx2e(2ytLl5z3 z#MIH%Ve!Ywb;`C{*<>=>%1&ojXOo>F2%G+Acg?otH0OV$)!&@1IZc0@EC`9Nb=77_ zbXQlGQ8!spdPYqK^%V`z-Cf-?c<$-yF}01rhZEf9Vv5|yU!y`ay;QM4Uw>}QLjMC4 z^z>V#9?i3I^0Q#;&a;z>I2&cLY%OT|S_0F`d%3jyYd%YM9M;yY%GN+<^ZeRZ*9vRZ zXgfc`w`kZ)VNZo!-4W+%A^OTCLOOcK4@)oX=&;2?ZBkR@2x}E9)piW>>yYY_-M$e^ z1$r%PoHrP@O1Xi`rx1NrWKCH0Q_~~nD6^u~WdQz`JoD6(&m^pr6{qf^uUYcr$Da1q z@5%biGm*D`U)CQ!bB?$Ez_|v$cgy;~U;pY|?~(Pk-#p{3_sU9S-pc-Ze#u>r1=k?yxhBPlJ$Y7g6l72-K*yT@A{yuO=-E=P@2wBX8ofLaKP>CXpTF6=J|gRd(S_dnsI0r3{1R{dt@*tuF!?)Kzq|b1-t{qa zZTS7YtY^LRx8C(}Sug#{rQZ64tQYQmu($p}))&2K7jJ!1*1NwKnEa!x_ePg{*FVX6 zSx;c&&$2%A)j-VrBEMw)`t_dpujcyJZN2q>WZi!I&v@(KWPS4K5Y$uVdg1oo^?%K8 z6kMN{^??UMru^MppL)s@|3lX3$AS2tvM#yqr`~n5tW#4{-ujFYPX(UoOpx<4ANQ`a zWPS3PP`qPVZ(JWj&dGZ8(RX>`ysYO&|K+U(tc#y?b*d<*iyjW)lw^JS;fFnCS=PTk z8G^0I8vWyJ?^>1hu7+gVWPSMlz+tsz0AtG9BvF2Ce!Hw8AjWIgMuVC9Hie#s4=S>lO%WPSR3=Xon-y4(1~K6oaj5f(|lQ%-?iLZ7s&cB<-ieh#!qcR;9-&Zji$WoHnQGu*NNV` zt*m!7DkJCXNbF0#v!)C zb!4fmZ<>3%CtfD&sq^Q1>rS#h{Y+>B+274C`DLRGe2%Q2Ygqeb{rIMkz`CqcjU)`n z`tV=>=|dirHEI;yon_tOl9RpbF6Me&2#UcT#0LiJZnEBYYN!RvWxe6iC%oSkvcBu@ z@AB4_vOe*|C%tudSuZ>FXWqI>)*t;LguI8WU;JsX4#~RaO`%fkDeHG`4X&$Y{rOct z_dz{Z)`uSq#(fd2Zjc7Us=bdLP6S3 z*5f|-7f-yutVdnAv$q}~>l1$s5gjP&;1O4O*Mnre_10Ux^?9;B)+qT0%X-(^lf3Km zWqs?^sou)qkHXNXy#FQZIgP^q0$Fc7_aIOFLRl}mG4xZ1$~rX_3gL@nz5lECd*Z`n zeclOy=fh=1xh--P=LlJU@Zhi~{%={II5%YXi)H=nrcgv*f_1L*ccfhY+UUTKl9deb z!Hmed{H`m#brh>6x4&R;f@bdHG78C`Wcbt4j4@)n`-EPfmHhAO$ZJpXh$woJ$DCo_ z{79;2*m<9qJmnn!BEvhfVE8{+HDg|S_goJnzB3;^-cfG_~W zaRFffh?fO~0SCp&?}^@Na;}vVB*zC513;V*5C(vFc|aHd;uQg50EiOJG=hkqH1(1`&e(pXA}8WkZ4mT zzaou;oWnqMMqrcRLe@q#qCH;wIE*J{YGP6y*ktQl5MoFFML%=h3~A_b3yxik(aM>fWPhjh7ua1l62cPhaJlTF<;%C*S$CJl_Si*?bq)3VavU z=J2)S=G|TBT$*|;nw1^p4Ye*i5MHgdx0xPMx9JhBei@sjs1kLfAKUHpV~hRaJk6&_ z_lMwsHllH!M)i9Xy#8|OEVAFF=n!wQ1nr$ma}AeWy~SL1$PX;ZJ5s0k)KwVhC^!m3 zaB*9&<|+$!ZHrDL-dR@Wtw6m>vYN%R#N}iF(>oz~yk6+`@z*g+>liLa>K{UG2*n{(nzOCyoYkm6sc}kS7h`*Vh)jx;zX2}VxyJ$9>`WUX%tAZy(mlJ9 zzMj~-yXq$})jwAtgo7Qx7ZSH+uxc%#aT&>U=GPWnow?dmCB$YpRp7m?9 zPTeim7949p6}R?8c|>u|6pP$Zl8h>lE-94Ojz7|sacS#{*%ALV%|otCo7+sLDWi`EN(pZnS-?bC)drzZ zh7W{~itv;`*w!Ev%J7bmQY;asoHVbp{&XJ5zSS3J2Xxnz=fQbn3E!* zHM8gcG$XAX7wq}!Jb7u-<$ck~R|lrs8%zsjcw-vXj>$9-bu@^CGQ1}$Or9EuIvYen z8Qv2WCu!GRKF)3s31xUsRGJ(ML~|NMLK)r>aXB6bwOQxZ9>ixzTY)s$xpLoAG+OPT zCh*iVZFclf_nr(<1T`pWFI!7Kkd#kXXKlA9byS*X$m2@2Qrb0~4v#B37j8xOtF8B! zph)l!3IO`VPs^}oZeV+7#>wBoneKf+{BJ-s@;-?UJjHdhtl3?t!qFTCcOwIhKF5)O z4TB9}g}h4+GwN~5r4hgkdYl?r1wGE&8N3BO&ITSmPLAD4zb4k>u>u-;oa)S)dYnaT z7uJc=j%`qAUr+M>FX?f{UV+mqPkQA|3~5wmnpme*$zgU%LYF*Q8@)B<&#n0HZ9|VU zc=igS&mQC4HuN}Kc^vsyK63doqGD@?FTD%j+4h~o*XLOjm3pV^ags3qH)q%ZK~G@1 zIo*A_{a?{fcb{&b9^Q2Obo%M`9sdRY|H{1?p31)TT-X=mE^4RyQb0It%bKpy^D)=) zJB8ml{NBdzGyHDjH$+bq_4M0`{aM^==0!he`07$$qv~8;@&w#k)AcS27V*8WFv_;Uz?LWdqa0JH(sk z(&208cQLI1GxcqJ`$13Z+7AP0P|gep0}zMyx}*cZ7{i})y`V39d0etBLHSdceQ~m= zX>(^;&-ARjqs;`wUf4p2rcPH(XQB+HUd3Fta3D8f&8~RSVf3@t6z4gAX_W@+nqs)4P6Tsz z4malgkg(j1dAjc|6BhT~Wy0btiQQ!BZn(R%7MO##7mm(Oz#4!&*U+N%mOk z^9d`6T1fFiND>jDYA>@%G$>oa(b66ViM=ie$N4y4j zMLrp6&3_hYZ7KN~q}2?W+W|8nx5}<5@aeK^Va`kPnmBndQ;w+WDT`{C^npX@dItI+o zVMIP*;i{}wqi>QI3~x1OP=CcpSsiSgtbp8h2ir=1(y+4Z0mF!Rl`sOh@u`#?1duB* zdB`z~aNo7`v?XleTw%dn%J%&u^6^)o$oHZ6p3NL&G&y+YaF)YRYdCu-MM)+cRbM)- z#=wN?yPs(0CHr7Vkdr}f27ovxAPfL86%Yo1czr+^zzo7-7{7=CP;#IT_S`^Y0G=qy zt{pP~#2W*`fS@{n>~$vT5;A~3g7(6NJw+aMRPyO5m|<$aY&cCb)*Xk_jj|>$QUVuV z{Cdr?ULrVoG2h;Cg&}4BI5`x1x*ltdg$)H+%lqan8BQm%_Oc6$1LA_V{xOa8waoE0q9mrzm z1#Ev7J3nCIUJ`L3EC^UHrx06T`kDq!-<7@2=7ht1E-Rcu@?Et&Wu(FdR$E1&G(xBUs zjkn@?3k8LeVVN52AyX^KI)&lIzvuAyQPi{KDB;Ggq6iKmi1Px%01)Q~gaIJl5)cM}xF8@50C8bJ7y#m;fG_~W#Q|Xe2x^S0Uk2<)C-h;} z`^9@D$9vY_87K@WaznZ5T0S~}I#jZY20=G`q=M=|ol^iZ0BwlPA;j#FX zef#3_N8+O0;_AFed7+wK&&P)uN6QKG1+<~L^yAjFy$l|b18Co*(lNVKzLJx3=EJFJ zP+cC2(;Hj}+(WG=+{K>VT|ny_(ec+f*8C2Vz`+q2@tE?3s~muBl#okNo-8Kw0xvGS zT>2HT=|{mX%cWlu{4wBa(QW~Uo8FH4t4o#M_j|(k;n>|?U(I^l`vuZoqzAx!CH=Up z)R6RGtlh;@rBt~b9a=6AK$SM#A6L8Y`2F~_$>z;WHrrXFZFg(5WynX`D}CIYT3mif zHnxtTH<41-0WHE(Z+E%AffY-|%B_VKEd|^~t4k6N!eOw-B?f}4i8);ZjvH$@qhBkt z0@>=gH;$!R`SN6gf^17p#z;Sbw;Ixy##3?mrA}HfA>LP~?h1wu*za)c``np@!fDJ4 z&(HgeoA<`Ndh)K*X0?+5_K|YYkplRO2m1~W6wH66KvmGYXi^QwnxEIHV2B{iRZ5}x~WOeJ!PnqQS) z7r%NxcLp-{|kVb@Ny0H=8M2L->#Rgx4i z3(Y%h?D@p=etFg#aoFuPnk&K{*o9smv+S(tjjUUG@GDL5CcxfayD<`;tym1ZVv)I- zg9fpYzVZ)hY_q($G{OI;Mu6)PQ zb7p=0F$W(KyInEc^Kus-QDzF!MWn7>WoGi-v`e<~IYw<8zl6-363Xz&r4-HNt$cVb z#I(dtg@}!jOCcM7E1&jK`Zf#}y_Ru%-P-{>%DlFsTaqwzXOf-JvCX3NGMu5h9AohA zO`SZj-21}DQhM2+Gk<=x;%qybLLDkcC{#rq@M&d>2ft%fky94aI53UMXR*IDZ`#IgL~dsk!FB)J&w#e}l9U;7r5~s-YDGm>+1% zr+X85@8-BZORe_MT+rpgT&~XPHs^Ls`VNzsVdvy&Yg_Pz%HVU0g~5vFzg~$;s9evG zqIrg-KyrM`rRh4dwNjclx?(S`h76u6&M(mzz!UGdIk;Z(kz@j?pHLyb6}uD$)@~Vy zm#h;+*3-^g(uPRl$~+fah90+$N@>k+*b}n;Q)>gCMo^vPb!UM^E|nmE-PY*Zs-aYx zK*<_gyr+l-5=<1U{Aw#?=`1hD#{;mbxoG)NXD5DE@BU&ufx# zfxB}x-VvdhXzW#jkD%X8bo43ieaa33)53tLCq;dhD?I~qee?vba)a{;6baTJ zH!6D+r_2mmQWRQdK&xEF(GYUvd=hf}0WnmIi$OL`i8$nh%OFpVbn;I&GW|ZXyEYE$S?f12M)jbX>sx>L3Pk| z+781kTM|WO`&(c~+vCk}$>NyPu4dl(ZYIi7MHn)+HH^I_&{FIRa zJ`ng^elO#fg@=9(!bj2D)$66DVmHz@bbHgSud8oH#)qzL(#-3c*TTEqukFL0-!;D_ zcLV$N6FtF#t_9f~Uf8v8t2ta>?)@z4T9nP+ZMwEG9%stlQV_Y9pS$K$?L>RT=>)EJ zVLjE=K16z}>IS3v14B-$2G_?t0fzFhIc`{om;3NCxQKka2Y@FnB|%@jqTzL;)%wb3 zahvCZl)6gB|7ZwzPAh(-3cX4RDj?n`xB0`O{n_Cq(5fJ%Y3M}zCb^=!G(Vpnrv^Fs z3OLh9O!D+MoJefguK?m~qJ3}S+la%7Xl{A@U35o%$rhE;Z^_KeF-V941QN ztucIYXrW3?F}YIxG3Qj@gUNd|$$K%|d7<`2NWTM9%}<3JX zWE^w@87@XUBh}~fV+-5<7E(XI#mKP-`H!Ef18@vJa}$cG){&o(Bx@bL@%v%7{?e2CQd#D+YGbqdm~@FNRgp#CeR7xR}-ZGCnQkRlJP)w zl|ilao2AM93g#H(w)$rzr!cUak25wG^l@-^RnJwmP1xColCRgOPSwwBFxf0M#gV|0 zGN?3S)B6zOPa7e+%DnX$8j_ehx2x0N?$qh)a>>`J5hz%X`xZAmJ=%L!K_QVTy*$nYrRaQx^6Vn#4-|5gD}$F2BbDYYLnl_ zT>Tv~4DOZWRV+0mw~4IE@+8u?YU|ua8%NJaR?YXtK=WO0wP^@gtFk_Lt3=&}!r)3m zu~egAxwWjNYNIpUZp~DB4aryR)vlOb8!_$Q5YT?S;lw^IrAvpq&B*d*=yN0mp4!EE zv$SS8-;PD4dl5U?X!|HPDX}9#$B8UuUE=?UV~duhHZAL_{osMZ2Kyw&aK1p1DwhI> zlzsuZzEqWGv%8^xHj7`g-Qt($*Gr-y=~X>l@lq3x%Zd>nwuL;6N|6OBMdriuxx1

DO}_TRe{XgC!*FY7spI6mq`X^` z7tVPX(~sa#Yp2mLwB{_b3DRQLj6s%d!j z{?5mgw66LNOt;wIvr{6B3qL|Op`2b!KV(2T{U9bJpMYfWhm2Ct@jj+8N`XOZd=7Uj z?=>2qnrnQ@x+7OIPCtpyRda&1oPG*>A2$LoHD`7LMdgVX?DJ}^dJgQwvaWe7&3DE; zXDl#doLeJY)wT6ex5hs)YuAs@vLO-0YSx{1x;1{SPn?b{`zUABt)kW1CH9?T-!8r> zu51Uz$v+TKoNVUn1{~WN2{jIE90)anT?7e(KN%zK*wxiwmtie)N2P4)SB+sZ6@aB0 zD!|DkmI|?tTMZteinco zhdBKR;rZvPe!Hn!9>B7UEPueSMN!8NboEqw8iy0te5-5qgIzICSr8?}?aRKYNDm>S z2f9n?e`DrX@S1hZ1(ILK;v=~)8;Pk&%v*k=#-^@am=o>1Pcyy?z%L*^AJ^xIt9Q2@ z(YGgYcD2Rt0Gu^k{J>~gw{p9&kBw{E>$|fxYUw>=HZ3@dc{`TUqsc6S;ITdcXKe;y zcSm@Jzma9Q(SGd{?R!q(vlOk!(T_~ybD!-%QX0e}M=YK+PXEN$^QT6_q{s7E4^Y^s zHEM0q$(IQCyc1N>8r(fkpn380a1Hh|%Pc&cXVafz`X;D(T+RW$EqZdz%F|mAQMBrW z@VE`N-aT%Eo`zV|*(#fc*cjKHFDbi6ZUTiClQh-MQe+d><6o8Y0cx2k!>bmSG+QX9 ztQNv6+n53xyzcvBlG%cbqW!-CE^y5Bz(305BM28=Wccw9HPK30n$)CEO|*l9|}0 zY+D0A&y6m#M@1TAG%b4mfkMBGYLgwKaU398WOZxET2Rete7)`r^*T;Zp%(iJ`@3v~ z&9nm@b&fQt9bnfaPG5-!KSZJ3%e>F$`hl)!!GNpZakO8w@E8YobFOVQMP(cK`M=Z; zEaS;6QltfG%`us@$!hD*uJV{wtIiU2Sm786Qf|8G*WD(GY>MkI< zu4r52*hR(rl^P(mZ5pk4tJ*e=(l|GTt4C@DTr@0LnIAP;8na=4xJjjkN?rq%S|SbM z+%sm3!_SA7S52nPRR%pKPI^e3dgP^6oytz_QdVVAc_cX$BUt?~QO%p;Y&xnYdPfaJ zjUm(D4B>i5HDivugMF|rEmGkWKJryjE<2qDR z7lyKBbSL@d`tUtkU5OPmZ&zQU;xhtS zrX*{3!iu>kQ#YZ)J7P;G$#2Dm@0`>Cj;h%-I4sVAxF%{+c0Q5~v!$u1$<1|Fy{bl51s*Et-eQ?l7X*lVYwI_Kd<8@#-nbjnUUN@ZNGS+#+$y{08lUao(_{U5TT*>ffS^JWY zJ0^afafG#BG_7LdmyYO*O>6|wmorwF_-e+w>u_>!#yV#>`BBEYWH`C2)%y92b!a&G zX2uHf?XvbHpLWJ)GmfO=a~Ug|?03rAn|xo!;!1M2Ot-fT_8YRzO}^%6ek^1Bixh}z zaq*!`uA~K7l>Ade&o6;1F1Z85l8gEDX0hKDB8yqPWbq+OI3F8js3!NJAi7{CSy>67 z?&0uQHZudL(+(b6XkvBOhr=cx6{C&fnLLhFXN2D>bS^0=i}T4pg+=FARX}I@oQ}v& zwx)G0xQvbniXyYn5fK(0iX78Hp7U(g5t;7KbSVC9e;=GNK4G6dzNWuyd|UV87y#nC0bu}$y8^-h5Z?<313-K~APfNUgMcsq#N7d50El}6!T=EW28011 zei#r2fcQ~B7y#nFfG_~Wj|0L05cda!0U&-75C(wwX+RhN;%5P200`DMoCpm7@$-N% z0K}$%FaX3a0>S_g4+ew*AbuGT27vfgKo|hx*8yPwh~ET+0U#a<2m?So91sS8cqAYU z0P$!*7;q40fN6=FJB$5bnoED$YorxQk7c&m|DiZ}8vEp9gkTH5d*O5Z%k(-^LK!}J zH|?^Txa0%!O8=sL@sBg-T*7!~{6HpXQq$Kh?5O%kUIBDWO_y7vg6_#ZyZgG&nKGqCO zOO5GQNJe*+z^b;k*v@Rc5m?y=R&54WC9rBEupc%9lZ4Wn6<8ZvvTZhD?_j3h2(01) ztDJ#w+`C*a8fU|R{Vpytx`=}y_UV~7{*o#o-9kvo|Hb zkCuir5?4pbodJF#dV@bNp?#R=LBE~y_%?#57ROiVh)kU9NEzYwQac7yN^c{MV(&@m zH)W20i*H9Iy&a=Fzo}XrV3o=iZ)=PN+DPQPW+Fd@pRz6%WKAgzHy&spLn}?c@^kx09UK4T+`ZZbUOYVR( z?+~ueokp*zxfV87K|e1`ulckbL@%XVAB<+wn#?Ht`C0m~7&whStN<$f1zGyA%!i1Z zE3vhq^QdWTKBzu$w*-4*@#@n-mCs?_ zmc3lkFEO+Pdo#v>VU-$(yq1YeB zbfN8OiVlaZ{vjCgp&=?$>9TE~b$7Gd@@)dCb+4!ZDm=91_x!MVzfP3stzIj$;9?o9 zc#i8OFLJKF?bd8j!OSO=o)F65{9?D}i*o40VXkw?_v+jcyFR>*H?l{&%)-b@F0miz zG2H0x1BM%2wIjGCK5>=&VS_!SOuG^$q*CFq!5j$+yF#Z(uce(^xEi}cjXSP>OKPq} zU~izDhBZT-W1|K0_hR2bN$0fK)wHkn2&MqalF)YH?lJD7b(CJ^l5tqKxOxoxE4gTj zuy&vhG_Gi?_E2UTniWoUqFCRT&91AFM|-)WGO)6e>q|#z1(pt0mQ`}S2J0Biz=GMl za+)rnZYNAn^^#zZ^v?om)6dNYm4mdgW5+n-`JC8(+wtMfyqX`eS$^>9pKq zPa763QyH-wX0XtFc7a+G)hoKlUa~@2%;n|MDv&@<1 zCh5z~a>3lJF0gWBb%DF}eJS?^9K8DDTSy%{>p?f9yJX5Cak`SKmDyF`h~{imWK{L3 zC~1Wj6{}_6qg3R~DKfVw>jp{{JXNgNNxQ;4`H_}9Wky~@Er{5t}9D(iSm!*SZH|nJ=y9Hld0t)74 zAdW!=On+=+=$_3v-at4*!)Fhk*aRsL0eg}M$=gD7elCgzl($YmlTQTkuaWqrT{R_? z;jIKF3vme4e+bmW4Qin#^>NhOWT>AE)cZE5g__jIs4W@E{EU}B1~2Ftx&YD-Q4;dgFNf zCk*|Tc2|vC)Xz*R=5;kyn>(h)cQk@F;|;}8g)_tn(WsY8AAC5hIoqAnqFyFTfb+D((U!R^nKQ)aR4Jdi7ss**GEU??|b+abu-f;QcpQep~l8VlzyKA zJBT)-Vjb`ex_9~kPJvc@G-zdM(wdW_ZL-x-pC5W!mWUi%I>XK=z0u`vg0+?|w=pvA z?xdscv@wb4et%dCBEGX#N1f?x`(0aee!Tq+v2|T>v^clyz?_GV&26*M!Q02Z6Pj14 zjbF&nUsKgV>Tz!1RoSL4&v?eQzD!~6B2Pl&tMN=rx;}$q}S8b(KUE`s1-M9!?G=%h}?2fs8_O2!=K^{#V2-5Kb5X z;^}}e0L0$|A^^z+CGA`aniM#{+Lg-WWg3)I9#uwaS#Kjh^oSy?r1qw zt7FHDx6cE%ab%#kyHH=OLl2j=ON;(~0qR5>@ms~~kyY&{AFhq*dpAi1o*)ZVl{o#Gs3oOA}lcw#Ac2j!EC|>en z8X`r|m-c^E#IVloCZbGn}m@-y~bglNr)Nc%U%XO|S=dt(=&S#H8I-SeyE z*>{r5hAravKsF%{{jgnDD1mLW%*6Jo)7TcFc&KD~Fw0CljAeLWj-kXG5AvW;s@YJ? zGE*q0XF_>$O*0gEP)gbqN=S)WW=hGK(^4Wr@z9>-!7MZJ@Y)Oy*_6nGLg~ncVwRag zIcqDS$b&-Z%!Xo?nL;^xE1}4PiqvdO6)Bn1OU0!8nhJ^)DI*E3y7siJAEJKh9fE@} z^%r^q*Y7YIYW6$ndCk72;h?_8JBYF`wfzc?{;cgkiNPL?g)f#n4ks(HCA+BoI5ucf z>^RINj7E*tLGYsSCe1M`8Ry}r@fEz7J?aE z=;BNs5>+Pl=MJyzYz=#MWV?3Bb_$eMs+v5kKo9Xu(|+3DW}7$1c9D2pYpc0+?p4%k zuDD_Cw#j*tF_c>Wor@W0_9VphSsDVCc2qq62+>SDs<@8LnKtLZEP6;GxW(bO!mo~V zr_ZCM%qK_5YV+wsVTk*7nE&^1;f`AO?#d9#{~Rc>Ccd54$L;Zzp3D73Y)UWzt+LLh zfYaacxpp;%yUuE;{cAOqVB7y?^djoJlgv0Yl@XC2j`7F zK$duP$(r5q1;llhyb#(G1TuI%hf1oOdp9%=l_VcPHr)jc-81pG)t9s5WbyM}U-8O; zZS*a>;Q$ZbmXaq4jV`pD{!suY6i`fUb8&o=INGvta0L3IqZ!(!3~Z~*{ATIupJ~Hl zZmr^avzDm<8Mp5XG)|177x7!i?*@Ka^U~-cT-%pK)xq~w~_o(Xwv28n{!b+Yy) zAC}RZT;YuCF;sTNH{&<^L!(KKx#S%({OvnFB4gfPzT;8Gdcg(A-i8ZN;q5zPczL^= zt2ZNyyj|4gF*Akst5%NkSwR-O#rzSyrK_{x*r5B~MvbBd=LUe-HXsZDu{a z3;?lRKo|gG`+zV2#0~*r0Eis}!T=CU1Hu3h%L2jx5IY5g0mx2oWPF{nwNhhG?z#Jj zN>iM?OSzI<$rs$mFsdNmYsmLIVnIA<2H z>l&nMq4oafF#rxBh`T25X6)U<9%UDn8L8L>&<^9v3Nxl} zu|l9LNIX-LLN?X^R-&mdjrd22_jw`yqg)R7B>4E1C)46@tM49!q6(H3%D_qcdiNFrCb@MWiRoIyTY9#*8Q=%w~}!iV`;Y9DeKK=`lPVNLOVBQ zW{}cWYai1KevF-)EEny`3tBznI-eh$6W8(^_f#QD-bn!U&Zhkx*wuRO$-+ER*nzHC z?I~?!F5xhQR!a@Rfhvbs^;%R=5GW@h`Jz-%?C}rSah|+4PL2a}O|8;b;xiB5a|q7H zR_@(_T4g>9VwDBKQ_?q*~5OwUquZiDoX=#q8;6fsDVYU-!u$M`pkbKIG<8V~wKi zJ+@MhsXo}c_=VA4e$6{(rS$RVgfsSQW-UH8z^Bhze3^sa z>{|Zj`wZ4s`1cvCCva;B2a+@TV{EC0Ai0oEI+;+md&EUTyv`xiU^ohHJQjr^jAA1Q z%}X?=Zo}lq7fzNOygfh1!ANkW3-C>1ZS5q+J>J}Y3+#j=l1Pa zQ&yY$V{>)$`9d=H9SAz-ZW!gJ=9T$MwQSEjmSel%cKHJ(n9?{+>Qv7q4Ayn$?J}z$ zgUd#JX=U75Ew1OX-jViv*@~QvYV+=?K!Zm+g3FDt7+eH%L^xPA6sGWO80B)*LO_b9 zmiO4=Z05TZlNU3{qJnjy-iPheMp8-sL1G+BQzs6u-C^F~0Wbdhb``bsHQ&}x9XY(J zvtc=Lm~nK&cI2%qvrgPap0nmcqvANZg{*T;Q?kTr8@=T(!KtlgKV}mkKskND0hRPY z1JZxOlk!!1e5YdWg$z6My+^pNH{FbLdwpMq|IYwbiyQZ$fyx(>@8f%*KUds1jJ=Tj zK-PS*ZPRj4YnrHXXTI+U&6xOmI!w{bRLhoyWhpYRHy)A8MhdB@U{qd8E-9M`jLU%>C6eY5W+2F z!o3XXWx_2q!)4~j*kT}889b%*{}A^cV0Kki|NohD?mf56%$>P2lRN1X(l|^B$s~j% zKxQC_g7lV|2_+y1(ZIz_5=xj5zy{Jpq(q8gvlTN_{V}$cie#S$X-r|YQX4Pw-jAru0So(cxLW#6P(pR#Z6A_T z5#qwD^_5k%zB1Ctm1o*_Q!YA@Pji0OLi_zqxe6YQ6WfTuLFRsa1|_H>ob& zo{tF`>KTh5FO1M0SG8BNUPLPF2h>A8{NltO@5-$FWs zp`C;u z0ui7F9wJgpcWpTEX48fT)y^tG^h*+2^gBZX8vThm1DgCvc>_$J?pE9*dqyv34_oXD zO}~4$!$xy-xgxrWWfdzi*Q9hZGT|%L^0>bpJ*{R$VsZ}BAi#a^-U62~et;VmJXz$q zu`fi=;M5U$HMF;~9WnM$aC4iBwEx|ja5djnN#}l~Q;#+zyY31!o#XArzvm$KyK2cy zw7OZaEmJ}BO`WDo0^718sCDB=Jb{{{m?niDI9m5scAKMlGJhU%XT1mMtcttEch5=( z_F32ljwo5CC9uyzKVwfyD0Qds|8M>?@tNhjb=;(6_qMyFRtt0{f73yb=Ai+5n<7rxjL9PQvA28syS*_e zvjR~d>^0Ot`KUhmh*icXr6A$?flkNqEOwx0cKmzFe^F%iw(|DxDgPN8jho_Q{f4i8 ze)KM~MdDP3uGk_mHj@29iVQQenCu!v->wBAaXNAPD=PxORJtKgeH9usz0$ z7La!Te#D@WJSgi3=hO*e1^ChC?Fr}A34gMXUcihWrFDcqCWQK3kNs(H>AN1AkVVm5 zkMsD(cRd8UyB=2{o1(iO=R+BjVS)*7gKE6uZ%~Hpf!K4)3xl=TqZ$Iw=D$RHWbSoX zXfBAVTC!`_V`GXWMRpB*Y_rIfu?zV0oC>f-z+l=TZ@9?KCfOK=YV2I$ofc7NcM{_q zbAS>!xpS_0q6fJD6I}jL5ZJkpoT&u$UtZB9t^kt@6S^~F1mjYmDc_x-1}W!qFnVNbgTA7H=-fmoqS&T&=1US;N;g447dW1?;<#V(=pJ+PU#pEfG{ti(7V)?O}2Rq2GUVzK0 zWYf{N7liW&E zv4YG-EL-L*Tu|}IH#}Iq5N9qcLG>EEYn+hW)e63^RzCXtj_wRM(0U`3aoWu-qMhm( zXrw)`i(7Gciv}0*M2_Bji7$LL>Z(>v)IodqiwXBNsq%5@k@lf_A*e{K5UwLZOadl? zM;+EhAp%`8Mdy$)9jcd+2R||yyqYUvfi8&3l~@t6tCWz0t$FSuJqKEQl(a&2QMm5E z+7SUl%%IidWy9lqqzu@H?2hG{rd)ol<4aH{)McJzspN?UPZ9j5wRJL}Hk0dqF^TL)Gl zSChsXEgtT2SOh3HQ9L|HsUqbXuVtICGTw(s*WvYa#VP5UW-fVE@m&9kHM!v#FOmJI zmBRQA9c~C(f6&Qg-A8rrU15g#8MyFHd^Eyc;gt6tFq@>EEHtJMyxrCo!4c!mUJjnul!-rX%Br0#12fAg@Wf^x^Ua5C;k+X!xp zNJfutrAsDbDeEfl2=Yyv!4X22liq1b_rr+^(3t=g2hf)SJ7snLI{s~cCI3-dpPWXV zM=DNh&6`J(v`$f4Cn&8V89lmWzPYu&9-?Z>2gW2GX)df$|L3Vi zDjcB45ELKecxP`b4Bf4)E*RvuF>u@_CSK0(|7_)$OT7ux_iQO%9dJU?yL35Mu<~|K9V(O z**6mw1e+6>{XDMjvmZN(D6;b!x;cs+ zWMXCf;PiZurB-*^pZYWHMsHL|UP2p}BHu(uf%fxF;M&Q+PIVeQql=XKT;8^-(H0@m zTypL51D`y_`_sOS&CHJNvK%9oGw3r!9Gx(_Fo#z~n}s+`C$M9ntA?ZXeAGPOqXi(} zIa=gg?Yo}7M`Azn*k8kBm@H>ydfbN0O5@Z!2rrOYcgz4 zYp)RX6K?OpJAT7_F?Mdk*Bj=G>KGcimw??Caz{o1Z1>o^?0T2SVb+`@dths*1}^W%KS50~%fN6U%3wtP{6txa-o0E9CVf&mcDOb7-*s3rshj->`a zLRBF-B{PUV6xW;8pIg6Bv)-|^yZRYYTf?>qI)`NKG7`j0yMQ-bjeQ5RIJ%D&VBcOW zq73L~U!RFyP2zPZ>}b=aSMRep)2VQDnCzJB!$q(J8p~nPp5tZMFdkw5dvp|KbDGw( zj5al%S%dM+I0uV)W(~$O8)ikEiC#mXO?f8+P^@+0ri5LAu-Oi%&krn4sLv13r7ZkB zykJ0aP@CejyXL~I%YXOD_x|OE7djF*+*PdAk8pAHD{W&Oh=Z%4PCixpu{(=$aF)@i7bH+1n;uPoDeEg!NaeOPyovds3@#{%vJ!=^? zIRiDfa1qB)dhn9hg_^}yGHds?Yb-vJ>;Hn@YtR_W3f3D|Tjy)Pq%m+TTchdK&&#l7 z^Xt-gJj16;g4J>oiPi8(4dWhi&6(<6uTAo*rln`RKe^>EuH zzHP!?N(N4+Ad?m@J-x|!{=~uj$f{x@17lcS3eBBSUPG2f$h%~&eJ69B?Ku_Efwxfw z2wbBiMncxPd9!0_Yc4$LdJ~(THWQMDSw9in&2(Wb*4$k9_SJ+R9fXbBv`u2QaffIe z|56>3L5XAz_I+0)xtw*9%ZvtfH6-ylW|OyWvlBmF&N0PVjAR^Byh#JvTT#y;)J*iL zi0I6bq3G2F&FX09E;N+NyDf1HfMDV3e8m9DMr%ZJ;m+rG9+*W}Ov)Y6zNv756ll20 zC3%ho4VF&1O-1&Wxr^EG=nqQy$&3~9A862!pI~IvB;}U*(MdR9)E;K2Qzq6WnK0l| zo)}{KO%^bS%bkEbMtm;KhS6&I`5>Nu_R4N>!HIF$eXSI_L})jA#Q;gfXp#s6AgoUa z22hSU@5k(0SJBp-L{cxJVB$QA`O#6V%`*&aOK!!XA4xw}zRDt-!y$(-*$B0ccRjX+ zx_}EDXPVXaM20o%WNlgdAQ1*Z9SMRy$OFWqed3~=8;J+~#7Q}icmkre*uaw(f&f4r z;Z2TsjA$KPRH+RY?S&Y8en27v?w$tOvfsex_#mWPT&1@|YJLXp5IMo0AK2&J;Bmsr zT>T{K<~UWLN=YeBeYttKy(La}xiriphb`rnkuq-`;;39M=N27Oa56!9K*N=iOi5m} zxl(Lz_tD?nUVqt{m#|8R z=tb~rk5hebx(McFlxN<6ac?lU#p<191rH*a*b|&-FLrP|4b^7xJ_ORtizvJ>Rre1= zD}_a`p=BW1?Cej(akv)?!uSDmJBlL0FJbg?w>BEW1 zGUa1D_D$}1&iq0?F8VkTIWif`Pt{Wmf77z_0!4|USh3YCfWj*V!0jjVrF^|CfS%X7 zAOaUetvxx1vGaeOn2zYnmKuwwfwUvZXh|bi^}I#0iNoYRaM&r~GRg= z?xd_mB6nj-WI5axUZpFqQuCfy2!X>lNHG?e6e&ewfzk$<4#93FjcS9 z=rkjQk1>_Na@FtSDsN_7#Dv8b7sZAZw1V zb}u_eGIQf@cPG)ZMsf0pYrM<;wYLU$+aYoc@Hp zivrXCq0zw-I+;TYjShxP1*uDV5tRw9w}%+p`2-X}QAOzL-fJLX_y$6S~vNgCZq|Kk*HgRapDfMDGnD?)8 z(3s1af<8+;zN|PYp;U1eNwp*w7Vz&mC=(x0m$IEl*WgU$=u&pV(aAw9yNJ-euhETI z8djY1J%_2&_?crq|Y>{rTU@RU6|a5cT-Q>zE(H`U<# z7d7JXRQWvh=)}pE0|pltOPMTGtm@SJ7Zsq&apq`PSaFkjejqbE5@be(x(^Bt^E1PX zi~0;L3Iczn^@BzauC=$iR(C~hSO-~g2GzyXOz#`RzPYY8ZFggv7FTDrO^wacJ+ot1 z>L9M}tY+0Ugu2rSo&n7V)hh{jq_%W%uMb?$@kCrW$KJ0gX98=JfJaW-SanoSrLpLK zAcwjco>sztbs~d@BQV-Y6)NTj%>1C4uymo^jmeI>oOMrHI1e4>S#5U;^X>jw-T=1z z&%tr+?ZOe-j@UPifi(Gu4RO@|5g;MBs1Y9kWc8(kix3Su&5VSDsRx4YpS6 zqFgvUFj+L%-b4Ge0>wRt2kNb+!hye&^8g(v4=QE`)809Sw&u9OJT(xVPGR$C;&zmt z+2!o^v~svTg{hCU^}dQgXCmpzWdvIcxkZ3**Vzn5<3W+99>+Q0$;&$K%3#vGLkVpz z&ptM1%6TUXQeZF>Aj&2)RDh6<%#FwZ^9uyC&6pO2#4ytEr z9CHU;TeNsNr@TkNx(aPYHry1j$do(MRzY=;#PpuW0#6~Yb9j4KrF}-v@#U`aj2qUr zPw>kVa`|Wl{k3;RP@dr8tfb=fiwEJ(u6tj*L*U+6-g_MqwC(y2=tTxvoTnD zgkLrWON;Q!$6%=te)$-zcX$51G5Af^0Jj^1*?q-haN81&OnDz^{20tNqIe9}2<^sf z#@x%9=ax-{^0HA`cN_n&jmmFTogG25`PZXzk4Ei&6j7DKxpV&?jnHkbQ{Uw}bsL?! zEmrHd$#RmkK3b;mq-DNMxlHV6nZo0iS$|{pKH4E`Rc``qE@_+3)MU1!Gim>`9=rXl zeTt9$Vjwz8m|CxX(YkSV>%qDwZ{8r5&2)c@eJ5|;7^C)`y!q@HweRH3=ftRewRUdQ zTa_O7D%lS)*B5)k&FiJrrX}G&60P>=OCKNsnRO?y!mLhbh1u7dS$9f;EWHa$&a|}9 z(pi^QX^mVJkXGSRwiI?o=aAN>5-N{P8jR7^x?|6b#nsj;`@XPkwJ-*-C? ztfQN}$s}06m;0?m8_3#RW`_XT%>$e>FGv+sb5Jj+-WkclxTXpmj~z;oE2B7dE&(;R zjMdW#guR@4@;AMm9dqAa419b!i~KmH&Fbzg+GuZjD`tuB+xXTR4$p~?yOQ9%;wSCe z#i=%t_5MklIEA=I->LmPGp0YL$jWV{%$VW<$d1V~KyFNN0p!P&uu3s#43cfT=QU?a zVe}@72%eR|QGwhW0zAV}L%^z0>1Er(tHlQBqJ_2RO@lgeG}-D3THx+$v!SW*>N;WJ zNmoUVoe#Jj1+8WxlL?;XNXxAjsp1AOYbhJm*qh;AUVcxzLZBsp37QAt^8q9Jo+ER{r zBaZeh7Hy0+^_-hs_XhQ-Pm$)Z`e~&ce&B?KZ6x4cVXdwpiao7a-r)}8+_5GqCdUZg z;7}v^%#>S8p^LAaW13NXNn;os8fq*+QwMU7$L5;Qy`>T!xQg*E9}E}VW3r@9bK_oo zPu1L*$##~qe)Uc~j-t>@7YnM`^Qu@TTYU@Eu*&^2%)K$wuM8xzIBnka`A!x`dcpQ4 z+}Ep(eTAqS{hZT5el9H`XL1p_`1yjIJzszdnXfW+71PRU!}zQr^t$74)pql=-P6=h zoXEuJOlo`VJjOkL^fqD|J6GWJXpD%0YDoHZOuOzZO1|i?yNFLs{a6^SM|&|k$li=w z-cEZvpGJS(duwh?V2X>b8Ruf%6WCNt^P3~giO$E%l;ySYyeTgh&gLAGxj3xheva_mE)7ZzzVNDaG!S*Rkc`%@8)e zXa|ZmlMN@)C&5_4b=ufeABR%UYZSH}Nul|7HgPjXM{l#z*rcjKCTb2;f8Blr>g4>I z3uLj-8CncU9q_nhbP3*c2BU)!-pIpT0UyqvdeU#Ck>agu$D)9E^D>gkQ+46UemGH&ZRabr`((`Y_$VK-WPkaT*%Xee%F@SHbG~KJU)_~BjZy%Jlcrb6EBxI zU5&dE%4Pdg4cv6l2xxk?ik&8Lsmpw7I$^G^f~y+gq3;)Il9O@Q+__fa>)2}D-PDfh z11#Ez&=@#q- z&l#2%9l;hyd+^J9%Wns1Z>qF6FS(n7pFo#!6UQJi588}eq{?*+TNU3KIvl!zB zGcHV_1pjHGS#HT3p&gv%3x0T8Z82nMvXeteO9!JA3xOY)Y{djWpLFIGDemKwDk)I*+V|Q`J-b#X;!X@;+vFbDQGK=U6Gq1wz zIwg8o`|IeV#N{^REBy22HaY?>LSqo}c!TV0V#O4XBz^srs{{nY^;h3Vk}eIjZO0CTHRpR5 z6ndG3OlJn?*zOVla#oIFYBfH^dYvhpPKLBqcfLE{>*u=*y}%s|sidjV8)a{Zatqcl ziph>@YX@gsb|3&}B6VYjXj}o4Ll#M=Gt4v>O!b5t)s`tDcR;3NES<#LQF0BDwuxA= z2z$J+x`-Z|jBthiFS+bh_fXg77{i5}tMHr!jrA@niHqBL?vHc8QO={tic@y(q}X|! z6%1odfM1K#g_Tft7%|dh8l%c#|E+$+({iZ9*7=^Y934b#I>t|*xDLb%~Tx(99Do5Cf!VH~ob5+btJL`4FtLU%zcbz&8Iy(YJ-uo$RfQ$j~ zRxFG=$i;-{AX-aDoVe!)Dk$K2kj|ncagBxOJK_^sUB31scR0%tsGZA3b|f3=G`5p* z)t$zc>@-#h9UlN&h*|(#m3(;sF<-ab>W*`1e|e2n-kWHDco5@i*47*Jdw5_3f_PRj z;n@M?p2oZRVckvb8v0P;;#szQ= zI#heFWSJ$X9aVnq{`fO~^keIc=tVIFPS$~{i|Ib`DC0-6@}pa6L+JRzjCcpp?4q31M2p84+@ml>MkPC103wYLh z9goZMvmn4v2>!g_>QbT$syB*I)$rNVQmArringD8#v+cdnLL}mW)kl`kMyRTk-U?# zi9bG`;;kv1GBw1p_u|S2QF|S`B}UZm#%_xd^|`TI6&Ui_oKO_m z%bBmNbCPl1;LeyM`fx^Xz|G~h7Iow)3O zDbQpo;w7hV%tx89FUa*Ym_+dO6MJU|hh+~74jbkrG!m3KYdM=Xw2x}|KS=AMX2>BQcdb(boD?Ocik_c&bG z85CB+I9!>^{E{XXu-U@OlF?HovE+|pdvtI1gYzZL8JypPnK3wHaP%b#&t6HhVw75e zlT}}0cgEb#nuX?XX)bbmESO>bCM9Z77~#fRPW z)#!Mq`P>d_Yaat3ye}ab0O5{=U;u;fbgM& zU;xedB$^-siSDMyMn@--s}EF zS``6pUGa}JGHMy_q95V*el07U;H{>pM_A+6@&oNe(VTh}$G`am@pZ6oibs_HKle=# z;Ym9G;HrEfg&2c5dP4P=xbUJG2nIl4o$h*{0T4c&5Db9uUkSkg2%kv^20-B2gbTv}2%k#`254`H6qAk^XdKStNruk*7mFISuMxd`MmO$^##IV z%UX;N^^3JVs{(q3J*#WC&(+#3HOQK287qmg&nxv#x#OZzNDPgyHt>} z<lM9p%v?qJ5jsKvnJ1ZL}ANnkW7g-#rdx>D$j!DvbfZ5@oJ zrBH-%aw#+#jIz|4de0Zgqs>ePK=@)pFaW~+3BdpeUrGoDK=^V(FaW}TCjZCiwT&+#mDxCi8ErFcog1UOwC!Rm-DHO0 z>Pu`hvu&nrH)C{G+br8`rW`s+9?N2NA2QWGdkI3mUU_zPxiF`@DiLObiD1PQuJWV5 zlGG8H6OtZ+g%DQHrX2ekll*u+jHk*-Zlt|YjuMMOR-h90PqY+{I1Am#M5@0OiwsLP zES{)i5n-d)H0`91Djel;__!yJnYU*;h3qiMR*qUrwyw;xA75=#KLo}iRNc0^dEW&H zo2BezlG|b*h3$QakV-9h4=v>oGefI_+ri3&ECdqQN;Z zt{uBQ1AH$2Vp6y&F8<-c5qG)f34(9$hzmL5^rFbS(v_sBc<+v&k+IvZ#Om}^F|>8I zRjh>lXga>?o+?(%HEP<+MC2{C*yrsvd6}?wWC)6C#TsNV$+0fxl;^~X@+yw4Fvl?* z%AGM9tFW6GquUpgcnEEi5aV=lO|8W>F%?&N62f5G1CpBUIj~8q^~w_}^Q9U9>AAV_ z%r@7g9Q-Ils7rrEpLgJYTnm$vzVZA3&qov3@CbcJ04MxY+NQ>pQl3&TS=WG#k}B0& zV%vE`>~A!_-r41*_Gz)Vnl0)+r#Xa9H`G2YC{Ha<-dO>Zr!klB8s~Ud%Q0gE+=b$@ z$Nz59ma~!NnO%G9bYI3mSgqbR{+w)heT=DzOpfV@F+=uC*rO&lrj#*uP$Gg$oo8_Fqm_`d3{3mxAe)KfyyzUoq(XE|&wDXyL$W9vf_ zS=|t0cWma&r+SVs?MbrUcS!qrmaZDxNb^>8KSCT`fgwE?Me1ks_mWAW4{UUQthR_` z^eV#sayUZ{zn?gqS92(m(G!RNpvE@;AaS^R&7nv}PaNhI;$w+Jgk<8VMKXHq&_;E~ z;Hn-#V!Dk{C1ywWqY2X^T7q{jrSGjzHd>|+m(rKpHybUsZx}7&t5wS5L}3%T0T6ze z5Db9uql91pgdZma10Xz+5Db9ulZ0S^s{>7=Pcsks(L$ouqlG&ATXzbJv8nDrJ%kCn zCw4ZT-KKl&d(|=SoG-0oTxQ>=j?vcl0J|;Z0U-sx-5qz?^|H&d_^v@8_!NuJ?zq?E z(;fGEe7fUak1sbazFZRD`1|h{bC+PUh1`@MmlNH8uZNr;7jk}F$no9y^fee;$D9y& z91z+F+Q$Ey`o>=@yOh*C;_??mSbDogxJ`8-$x_dG zOkuOBm9?n6uN7LniDLre}E61EtC6O?4(Y^YHf!e zgJLwaIjxXG#H zzAeMmgp>?^%aRMpY`Gn>CyCu>8J0=9 z;QWUkY%CrfL(efQZf~xpww>_#$k3Ra%T9HJohG81oukeA>z7_P z`H4FY9vqRH*SwPrZ=7I<_Q_pP3fl9~Po1tIZ}#A#SrwLv#kj_f9dwg#dy0u#?CD9{ zH`kH-7nN&>bX^xa+qvvvg3m13b|#R{89O2bZRL2bD?4HIR#yc#Il0wVs-U$#*Kx+L zxsIHBm-2s>e=^sJuA;w&?>G6T>AwPh1OFp}Ivp0^Ot@a$)V444*IZBr=3RAuk&R}{ zlCZ?vxreWQF>hyLbUH(ppKu3WijGdB7et4r(U+oQ)93}!kwQ2BfI5s0FdG*(8{!e6 zozbECRHB0&cBcEBrH`u|52vRHofw^*qO!F;!MQz7p9#_H`DhAxE*b3&fbjc-U;u>Y z6M_K{UPuTAK=?yKFaW|I6M_K{UQ7rEK=@NaFaW}z6M_K{{*n+3fbiFZU;u>wO$Y`+ z_*+6S0K(rBf&mczkq``k@Xv%`0EBG`!2k#^B?JQ?pyAw2x&}Z%b-5!L00E8Vj$i-; z4u~DWfaI8j?;Bk$L~Hcj&yQB}4Vdi?+GkwofciHN!9oO5y~dG@yCAILpoX z`3GQALcpr$$Hc$1Ag(|m?YC7)ViHvr$}Oox;c$KdWdW^2?JYe&@==q!Ej(L=b|6`d z?w~rNt1!lXN8gOwAB(nn!x9TdCyzbsB-QAu7pet{{o;0>)~3e!5HCiJMLw+In~< zv*S&(wefL2=CsYR)?JI^0>v@6ZSGFv*tKm}Yq7OB%tzD~x!v!PM2}X4DIM0!VGApF z<#Jrs^HB#Iy^1nOBsqqGkzO$KwU}Xf%C_(t36~$FLb6Nq(eYTclciOB`%<%YN6!@P zvR?-|4*#iv{$K*_YwZYph$)*i&@8o;jDwxqaz|TRTYEH$x22j+%k9qh7JIcKL9~s9 zYm!*$t&0TF{Ex!qla#F8%DdUU2hGh~MDuzk#z|p#Yww9!SA?7jYrLMY37zfKh_cqX zFqn|QeLp!RNE*838bz^&J^kJ=Ka-hM*X$;*^7wbEQ!>8`;NE}erW zHd8g>>#d8Gh;>~}5!YkYRW(ucpkbUk8oGs9chpYHS1ibYal{VG z(7p7Ma86gb*kR&~tnBPou8V19NZ(+|nvL~ES!%{t5OcoC1=fl=I-f?HY%;yuDYS_t>d+tcj4G!P>#%8)T#%Ho z_|Ya(5Uo~0CAuUelj~L_9O|*5a*7IGqxxokwIjV{T4E=!*#Hi_IgLL*F#l{-3fc}n zOThR!7SHx#W;;4g3a%ll5gn#LQBjjybO6y?iug#R&gKbAMWRN>DbKNrrusO)uC;_O zCdy%ojaC^>esG|~7A}^vY1G{hkJ6&d{!Lj#lcZvqWX{*necHn%pHnVF)7a7MC-Q;r zHM8qT&(a&QCvB;MeTPa=O1PZf8|BRDm}jAsrEF>~VKMCeJcO>|yd#3`g~-Yo$7_ux z$I96l{dcALBqeEl@6he6mblGrO5c@}w(ETrR}&oQM=1p>5=TqK_h6H5FMU^OE5zb^ zg;@G7xpT0$_pQbT+lD2};cL6PqHERUuEOXVjBXHowS%_`z6OK)fZTVn`+)YHym?lP z+IRA1E?=0feQk{0m7?b!aoL~bl!Jy9lc$D9WoMYTg%dX~N2vO?Fq%c1bMgi|@S{E1 zEBfh5;+a^B=V!5>soRIY1GnEB7k(`*p}mi6>7P;yH+I`~0b-T^WZ6L;Oi3+-7@uT# zOpIxhO}-~>c6pg>dsCQon_Zr!zP#-AOv<62 z-k-;Lb74%3!=AL6-7{fN-uzp$f8}%?ZEia^XXA9a`j`}_Z*m;wlsL@o(xvwgP9a_T zB{CSc$!@0fV)^uyV0il)XR((37kESeJ2S-=3f{X5eroovT zB5rUt00Ngi9KiqxT;^~D10Zk}!x0RCz_koVFaQE~EgZoB2;6;e1Op&&3BnN!fWSov zM=*f=Ywy_3mG2~WH*l8wocBWkBNVC+^ z$;sh2BCzBH6ShCYv1^!3$VKp&uZl0a%gpzh`4P(RJ9xP-i?rt6utC9QUlJ$(o)>2l(!u}6EO?$pMfT@!lDQo}9p3D!cFe3QI2ma>`y zUmm6|H>SdD%AeY7VH&-@R%=d$DV@BsZqB-BSg53w?%LwGJ+oswEsW6_#F~aeI)uW| zi+888C=eV!qE(YiMsJp$tT~RpFkGMA%Q-zbym~y*%~i3~GX8QnIRPg_|DHd0+PE`+ zdct{ld|+{W?wPEerE};0y1!gIrun2AU?%#!K3Nlyjy~n!&+5aG&42OLFuwX46 zVAbyk20-9;ks}xYfm=q7U;qT}7&(Fg*ZRGc42uDjigUV`l5n8K>i+iVJ&IcW+&8`0 zsE=T6b1y`Dqox?n&^ZSS&d)*8^9!$Kzj#ue{29oXagD+^=P8R%%i^+>h33k@c&(f) zl!Hz#xp(p)FsTi%L8q02I&bFY1UKI1KkW#?m4~winDZu?okJJu6R_Rr;Rr%LbCsKI z_t91Cf6iW5XzD~Xw$QntDR0-t>>i+G8|AogP5o|MlP&Oq1>eheAL(}$FIT{0a^xya zY0XIn+vA`^a{uBF@R3Y1AMO45h@mukKdm~}(dP8pawN2TFMRUqLvxO&FtlZ|RZ|R0 z^XrnI(T9=9ig!aMon;QWRFdVk8Y^VFOHy)vG$nrlxLJil+i9fmGv+BVFJ@t;9?I;xoR1*U*(QrsF%$CMJ2iFF@?N( zyrMtW2i%-e03Axhl@)q#3-=qf)};XLo1Zw;#C4olvGafXxg8|M(%oeG_&IB1zN}6r zX`Im^i4;^STwP+yW8IHg*Sb)hqU39yWx?ZJg1;<-uUgvtx!F<{{mquK{z;__pxWI0 z615P@LJbjFB_gr{n&j7mE#;%HsK#9BP=vLl!~tf9OW9S8Ad1S6L=k%_Gh7N+HOH|z zti3j|!s6uWj%8)z+L4|_0D>VTTZj9b3ND}9IT5QCHb!yHTJC&tH0{9J<6P|cTJp89 z+0FNGS5$?zaV-cPBjHov5HX!v6y?xds$g-coq0J&6f|i}!IcGUAJuclMRV8FPdKj(Si=`}zOlv;d8%qQZ?xIH@s?XGS zMmapAoI9hOKSN4V>61;?U#zle*Sc49Am2+*_oiPNj>EycJJk-+?g&Vl`K z$IfVegq!vD<;#Y#)^FP5epBtJcNf_G-=%r5a*Gb3+p2{E9tvpf+MNEY@S<gg-FyLGxxmFm_*$)X35yYb_2%BBgMc%YWogon(9 z(q?Sbfnu*I8+SW!|5yxd(qK8eb_7i=JPFYbuQY2gGdv_1R; z=Re)yQ@$8aa^5iEGkcdySyiuN1~9i;W@1e#w#W&cU>3=&=OrvOTet^PK!Onn#;`GnBtAPZFKT?*cv59?5p`YExxOydVs~BS4 z^Wo@WH1$UJX$nUV2Wt*(Zs79U5n%1vO1lbMO{iUKO*JW0ExXyjT?;=oB@V}{KcP*u zmzO+9vJgXjQdnb&MaWTbrmV_hrHiG)+Er`Xo1m%&TVf^ij>@faUg{|~qYs&T=cVeA zB%v3XP3FZ*u%u2wD zy4pfR$k(X(m^uM!p?ZwDZS@O|s;hnMB_-D(LCVU47MOLaFIi|Rr*Al&4<~p(+|%)U zG)}&cg1w6RYm-(b8x7pdXX1u!4e=DlN7JDrCKt%!Im{7*x_4Eb5&d{a!eYg>NXPwU z0pt3-+XZCY?javzZck8%F*V+fN~e4ER_T?Dz&lBAOU5=f+VTQwuVPmYdRHVCylDWa zeU7u}PAs_L0H_U#v#_QfTe_k2|7KaRA{lghakp(MQkACAeB|3~@XKtuHc6r6LarvDOdR(qvP z-coDhOx`ju98)yLBowo#O~)gST*pUIaspIHvSt+ZoqOb`n#%c+)Xi)h#)VN-Bl1 zP_=X&*}#+vDyflFGSE+uWH_CSY}|EHX}4-jXLa+={KnlrMh4`%wn((mdw5^|YIO7qMs9Hi3QW z6gJ)QTiI?Cx!BZI%O)oqkS>kxgDUwg!)Puf?{&*%V}B>-IRbQj6w$QKEw} z>TziauxK{6HTSm8j}A9i@gyG|3-q7gD9?O)w`rFg2A+B|A?19R35)m2zU`!n(+46|JSPmMDf z_CK2Mmb~b3gr{G8yL^$R_cgs(tbiezHeS@kkRW!t)nNWP^3KxuVxGSBq1S6 z$on`?D9pevuTzAqM|{)Bf3Wsh(T|+v6?o3{&d7*;){)C^MHcR9Y{KesOEca)?2mBvT{K4CI?M%D^Gu!i3_~9E3EWS z;S5WqUwt+0XLl|dx~e#ys&J1fo5;4S%fR$jvSgwz|AZenNnG;biBX5a)-=44_gYCO zzo!O@@a7Z|b8tNWN+wveh;RH7fp$VeyM|sV9=Mlj58s|7)h(1M|$sS%kfn@p7 zPw~@tQgFC!Mn@MY31M*fW*Eorer5*siY70)MI@s~@26m^|BchIdLn^T7EBLmaRT9< zujUg+&wyA(_!2dJM@afL&b`K$H&~YFLrFrv7{36o66>9pD#pr!83@kRN|kXU@j~EV zBPTsAwLk{qK)yM?N1X*)+Y%&Oga7n96Xi5(wISw?YcHd;zJ2;$8rT=jHtYyCU5H9$0;r3zOkc1^53F|tAb*&3)TuL;)ppzw)mYWj)0uul4 zk^imcU(rh6oK9=zrYj&+hZ0 z`~1Ouo_C*LyU%lcq}r_36l?;pU<1TUvudZvBo(6@wAZ=|gDb=z5d1+5_Fy04vl-5+ zYuBONpG*~P5y|M$-E#e5jHYr&elwg`=QJm$uai@ej2?YNPT8>aL?6Q#Q?-wtf)gZ? zbEDU*AlO`&JI2%~*kzBYMJ(xMwE^q9j|(N+!W*5?c~hc7pB8`l*{^Bi+S z?i6d;`A8SZ28x74ormxXiRnGHTA#6% zPo&;f8%1klwIBTi`Vi7;zu}8yICsK(=D1m<+){HNXSd~sa%p7v)^ZE%P&k^YIQk!{ zw6`wF)7D4dt5W64cx6mO#*)X>FmDwN>DzMKmMFOf)*eMN zx@(W+ZQ*UTTDXr|=sU~Jo4ifeX2VmQY=_+77IdxYV%dH9I47xk<63(4Oln|f1rt|h z+Z>CC%2eKJ(bkH3pp6PFw^BU3mzR!t`O`Gvgis|SfAlQONP}Mm$?08qR1q+CQEs=1 zgwLCBRBk6c-Dpo$aR0abG@7ajSKBt4MlTR#oFhixzk$87FB^QL-~WfcY^;u+{SSR< zXh*-x%X}qzxo`46eN0fI@t9sU210ME)-uu0@Xwq>)g>VgafuwAkrM6-nQ@ zLG``N63sow6{={n(&b~D*Lx2RH)xVZh30-a>+97~LTu`p>wKrepbFq0y9Y>LM-aBw zPTA-CABh#R-8fDm8|iku^yS{^ce=aPzaA&dR-(Pf3WZt))>>dRQD`OVaGy3lTG7M! zcZ*&FAi&*s1Op(zeslx_Ai#Qb1Op(j8FmB%Ah6MM1OvujVPcKYb8hZ({j zU9ZkOQz@MBIOMJ)yN)pd&Zt+kuA^sM3U$VJFdTWI$WBG@5`pzvUp5|{E_B_)WfbVV zPK6OWL?=#Ew^>{VcL!86VJqlr)Bp%j`?11KKSGp8>%*Wbkc+w|SCVscIlzz=I4M=$^as}V;qfI#|dfv{7z zKv4K*2-GHKg3u~am_lC(yb zG`Fd?6081#f*JS%b7DvLk%3byRt%y^P_@ITm>kZ;!1Hd@m^1oI=+ScW6@z;Vw6sLB6yW< z#_9$cgt*gbH(u3#yPUmY$jSZZYiCk!E)HMfB=0cys=9N+I#msng{+Q%T-zu&8WNO?Isslt+O2;^i>y%h zG;=9t^bk1>%8hchd(Bnfj$EM)0`gKVx4AxLjaP)Y#TBZxZVCb5zIXjeiQ1`|h^k66Dc=@L6N4)lfzmpaPY`|n)wjGlF?T}l6%EfeN#pI#Am znqIAD<9d$M+vd_+YHLA^K)i96-XSncZ{yC=+fpw5%k-ikr#((@yU91ZJ4y8hKd{?B zUwVl?5_(^!$cylkSc}_{ zL|E&of&56F7gZR^+wr3R@}?t+BviB4`pu5Ly{s+C8jv}8*$CBCu+s$ zKGxlk3V02`Zs`QZ1G&>pGJQ=jo22GuOcRZpGwL*(H?D|PfJf)kL}RuQmx!o4RF*k{ zsl8cCnO6I0@^x&UFv?ndHFVv0H`!WLx@~$lxO7&}W_TGr2SXZb=9BWxY$)8G<|wey zbFtbYlF_T@f#PsCIb=iN93EYBD3Z|=hboI$5zQvNk{Id#xrnsfY-!GNoM{Dph&3aW%ZU;^b%;9|)(f(kB}ouMYz0EBR_QN8!1Jhyf4?#SsjEz&z*( z20)-WI)VWZXqt{-0Qpjx4Dfv~_2b^b@uLwUtUgM4!Vq?EdNk%XTtMA6<$Fu4501k= zQ@ucW$mw=P{KyEw)4W~q20);JJAwmXrM{pnlXcVc4R1KQRJ{tPv_9w50P!SgBHpcP zH$n6+9Qo1ZY5^D9*nK)_&|zEZ0C4u;iu>{5N3v_?v@LZMh@B3;8Qf)QyEr$&7^=fH zjo8t3L?F%HM%BTZ8`TX(U8xO~=7_#?C2o7WT%sI?(B?^+iW}@xeTOCVo#UJd!x@`L zInyV0rmS^V->k8ZItfkh7qW87`!!g_dA|UA)4)K(eFx;!d(ih2mYoG^HIS%aFgHrL zh(Xod=;TkRQxwC*X^yn;&>AClq#MOTow9}4jc#|Q+~^vxP#2K&NvKHrTFIZvwvn%D zhZvOWK19Z>kem6cX7G?JAiQbQN3@1&Ny<{iUAjZ6k|{A-<t&Xc1dSkr-Wsrv-qf$GPJl>Y5)Yffg>0| z-DN!ZQr`Pg>2hVN)>^NIX47@I|r7$s(${ugQg?nbSOr3cUT^+ zP(B|(IXX=lk(+Up6GS<=?#6;~f!WJJ-HSP^-@*`5MMA1**shupNK>)9h4f~9x;mn_>O0GM=hXS_LZ?UP^HKXIG}oLBfIygzU;u=- zBm@H>yfq;h0O4&3!2k$vPY4D;xFjJMAUWdSu}8bZ`b@%G`Y<`5;!O)k7dfY$8_XtJ zV@gfQ4KuC5qPJ%<)n9T|jJGlza)59+!_d zXjm+Kpk1;bT};TkGYjhLC~pB;07c*STme`1BKbQ&xpo7Fq;Ot>Qkc=Pqb^u z;$vf#?Kmg1;cDlVc8&3TY^O8XMtU#}?0)n%BIt}BVCYe_;`y&Fmj;%n*y3x;O#`!a z<}rnFNRw<_;2nd*5VRwy6WlJ(k1in8M5HwuboPT64BEBS_NhVJ6qnYib^$Zlp?Cy1 z#pPwHdz!UYwZmvRO1(eXIyeMD7cFBK5NwXH%hxkl^?B7SrJW?<`2o9_5umlnl4gv& z#4?q>BtEaRvu#?uqnl>e3A$07ti8lJ1g*P%otdt#6HhM2os+hiy5`xKjqfmwZ?fUq z5uS~Rqj-KGXVN+;bTw^h)sSn_HGLQLvRNhnq#f6=}*lheglPgUghN|UXK+g z41yx()`9m{@b_E1@8tledZ{8koYycwg6ccK5O27QPvhuU@Y2My2E%MA^VJ8y&=E0u z0VC7c&A8@S3`|Qs4`vuaWJ}$XTrDi453#3!qK3-}O=D5tAD{G|dvl5+T<%Ha+x2Y<{3q`1*}LO}fu-Jxq0)oTfAOi@r8`lL!j=?g8D z_0sTN4z6?gH5c2$JL@H5d9sqBzSM?3O#VMaT6F8inhCNl)=WZcCXG33C8$fZrkzhU z*g5T)xGk&sR<9>YTFC^qAU7!c&PSoTRY`&P9=?4)=R7#Ot-@kAIS;nBU%e5_Cs{)$ zZ9mT(SgGzxYmJNHCLD0z&h-kdpVZcTv`5Tb?<2rTS6p*R478v{AV@>oMOOVi_>&n4`Rh{_K13g1lL; zKIXvv`92Q*?UTXxTU+I0Kl)JX%3JR1DNG0b+nj}7g}ei*@6QIH>3Gzy_agr-&?qSH zHPBI};33wcy7eF#6XO!T=tuEr1m0VKsRj>c7GA*jc>ae#Jje&66HjQ%%+!)Dn|ZkDfIn=P~!nUA;pcT4E~ zW3p_&-XqG{y>j!%Ucm<~>{%Fkuidi?F|G+qic3Q8uLmgnnTN~$YmSziW6Zo~r6?mq zqC7JsH#d$5-uEP#TTW6ep9L;?$6vDilF&Qn64C#5!*e%;-Yr`%-x_)!x?8qg_bHrv zKmG1chu+Qi%T3`cvYlb(K4uz+>JrhTPCQ@PWSu zp|{4&x0!j{0}B76W`5^^`yU9s+=HS_GIODsXFjOdFEaRMGe7)QrSMx{mCNs$`QxuD zch4ET&CH1p$#(CD<>>6M3m*DLJLx~`8_LB^-w@@`m?iItM=xo*xWR>g z=l7NJ1AibhdQxc{cv3D`nt9cemo%Lgr{r%x7k%uPGVl1Ma(BYhGB0{sl;By#Qu(z) z*w@TMe=YjSzgF6+nAGxf%P%Q;8_j&Dnb(>5am>(r>^ZsbdS2#oGaq_hp*>~hHlvLF zQMM2M@%{%&-ZOvv@gGaxv=?PYnB@IMrQsUP+bzxNC$6_>e7KOFUE!tGEU?46z1{{n)z|e+TPLR_<2**6fZmf5YDI%K)vm7(VMgf_b{P((HZ=)(bXb*w4Whd1s)TKruWA zw!}M=moJFI`#V^(w~=!~*%ccmG-SO^U;)^!*k`>l?_-vhJ+Rx~yTJRTVS9lc%qa7q zVF!R6?p@-2->{?2do;Rz&;OlmUo-Cn_-XOuk5|wTkKy5TlXhmS?_Ldg-dZ?(&}Yo-*tX{H^x> z=5++h?MKb!KfPT8#r`EQ&-8z}FOg53)?FHjzSY4MdBR-4^(U|Fx+a5}?%tM_+b zB{8AlO=g!5RDu&4))`g?yW5-GaDibn%x-eSn+@v)+uNJb@XkQxIS?q!sNt@Fgn9=M z@+7bin9G%c+C8@^~^UL0HzWWC)R9t7*Vr3A zlgWdf3^u_#tl@KJce>df-ta}kHfEH+BO1PJ*ac>HRKwRT%y(IsD;pj)Y-^1Dz_8n6 z>_>*(9b->sRPUe6%=C7nfB)RDZ)7yS3^hD$*yCV_H>_%S!Tddq%Vuv?!~YugV&*`< z*;_4)P%>Gyf>UCw47RtorXiP=T^HCX4QDs>8@3>;x;>|1X;vk;EUPfjYZ%C0h|5F4 zI9mc!8$1zg0$K_7H|#XSu4q_kF4q(0z1&bd)v$}ewlv(?aGk|)HCQ*R^IHtN1?=q& zA8feG;`?}ZcjEha!@XwrS+K(!?u)U9z?v8XzG*HWwUpi8@RO`s>l2o;Z-6OB&k*Ka zXrg)2uouDR@iK5Zl*?`Aa=kw}w6P#m9@hI)LglX#YJ54{pBXBYnPB%eoXZ;>!ur5I z4c2YgK45oy=lQ!Ec6g{Bx7lB2*l~tk-=iCg;amUup7XXmaiDL)gKL2N8cnZ&EB8n%eoig2B8>R11iRjw8e_NQ)FPwcBRS1L zA7)RS^_B#W8}>=V_6mM%*q04k9{k+G{0{Lod;12zu(Uj7vA+t8!N>a>E}Okq1;4WR z@_EH@P>fab%EK{%hd5}fx0_)@K{2mVS_+o+hJq&SSaru(OI|5Eik-+F-l|}#`CDyv ztAgow*xl^5{Bsza9*wTA+QPFS-~OZ@B75J)LR#v;sJuTJ3>wyp-MwJ@6;vyWipt-U z!TyFFSX7IARv7+X2X>?PyV!0Wp)~WH={e?dlVSN7dxv3-F}BsPi7|G!VN+u4bB0Y9 zMhuUVmb<-Oz;2~w{RBJDo0;L%47*>0Wx*~lsK)*jV^^5JhDN1qPUa@VS{vnZ_sl(p zbvCMRF3Q}GzgBOy+3k_}vc<3jjH}w2A6On<3)T$wn7KUGTrLMw%1&-nSufB0$grx# zcT}dSD7y=46#oB6F_Iswmmzso#l*tLc| zmwDc>2Mzmu<`0HV`>tI6CG&T~_BZUWnSUC#-Y_qVL@MR---b10^M>v7J^5?Owi))M zVV&72h6Uf3-NfuP!kv-9{iH04SU2T|);ppti7Q<7&R1C*tPcgeIpO(J_JLef;tFmX9or~}I z?3w282fvcPle1?TmiwPHc5n?--MUoEr7)My)3fUgoA<0@Sd(3E*joqdmCuB@-k-ej07>+7;N8@Bup3Uh1r zy@nlW*n6_K8s_qFbM|(_Tno89dj}V=J4$!3Z|^SMg}J|(t4kjO-c?!ugl+2HlIJSJZ)&tR^YD#|HlzQxQt&3wSjUz*u4O>U-}IWSG}zRuwD z%)H&q2dCWw{po3YGPq`@%l)p?_Xgh2;1j3I_TuTXeZNt@HGKg1_tV)Cdo5jZzq^@- znOW_U-z&_#+svH_hC&;dA-|`Yd6Aj7n)w+se`Mw#&1~OAE*I<~ zzsKw%zvmj|Rx>|m=8tz#yur*PFn5`GH0JV|Lzu&6uAeE}Yi25(duA#<-x{D5C^wn;1*81TU~jhEPcn1&*$R1Nw)}1}^G-7#GV^K7vX}qr zH!%-3a|>pJ_nF<~{@c6B@87zou&iwEkvYT6g=W6CcW-|eZ*A{G(9Z;J@IK%BH1Piz z?Dahd{6wGf`}aQC9yZToPj-%(x0=~CUwPSUzHD6{kDafSZ!+_H^IwnqUHX-hJ)cSU$CfLi_d}7hwDB9&g8VwlA6O*BAdB$}@|9g}H69(l%jFrTqPS%GdpS zDzwLdlQeisO5w3v<~7L-fg32RHcXY(E?#-5%4+&j`RZMIJoMi#ErmyHnYK)!ePG%D zK>5lt^|&7`Q`%lw_B$x9Czke7%Zc{-0~Ezbd$SU7<#5?v3Ukul^5t6WqPz?9yA!aQO?p>12tUdKCa zK&|~Equ*}kSIqp`fWmAZd^c{o2USWd%sgdKe$O9NI5(L&VL!q1&3uiSuQzk^eqYD0 z8*{EV%6*u-c+D$*1pON8H6LDa0_)&(-k<8)Sfgy;He6Zl;{9^Ph522)XICiRmsY4G zOZ&_G=l);%|0uibxGu8qar}3B5KubB#9bFVKvYZ=u>lbYTS<--|daM&uQux1dU z&3&iCkm+F<7xF$^cogeZgEm;h=r%Z&_%=BFq&Axwmh%LLKh67G)Ny9Jbt@u*0X0-u3(=Y zSFn5DmDLbW@hDyW0^QZGVxM1m_rj}7>f5ukJgV2;LwAj9*rzY=UVLpr1ABIXN8|c6 z=&p4g`wZaSyRTCDiba`$G5@mg;6`4OR{xQk0AaY^$*12?RG=|pW8Kdv1c1^VH|L~Q;@_u zwZo;LwZ~YtJ+?zo`~Pg&HnvYSBT}~VxSz)h5DT^&kJ=|d_6?8!KvbAj2VDAvJ8XoA zzq^08_Aed2xD@;@#4kdu|4%yLI$+fiV_6=9coe^{AAb?uo78bFSQ~qG#M<8HQEbo4 zME|GeLD8LDBT}047zWXsMMdW@Zx$W>Kv7wj=(Aqm=;MaU(s}nZ9_RBuYkBup z9uM$7=b#(b>S&y<-U*{Mk41PK%%kW(;)ksG^@*)?r_MN!V!a*F8Qc8F-`(uaxaZp1 z8Gmt?`H(-Z$?tieuA#D<`1MH)e~ z$3J&nR36iLoXq1~9vAbt zn#avN?&5JDkNG^F=J5uPk9d5~<2N3ye&sF3V_6=n@>qw*COo#`u`7=;JdWgXGLLh4 zT)^W>9@p`>mB-yYp5*Z|j}Lf!%cImAr*6+4M^^}+h+JlgZ<#$!<)f8wz+j{!Ue^4N;U zNFKZJ_$!YwJSOm%!sA39r|~$C$K^b(=5alb+jz|7@hFeydA!QwZ5|);_=d-i5aGs}<~_vj zEZ+YdkCh)`pI9E(Llj3ZF0j9w5A{i>qYErq>_^1$!+t)koBgr=?FV3t8-T-17=TAy z;>ced+y6BHx4q(MzkJMLC{y&oJ&43^#47NC@UJ|248%SS2V$S@15Jpj0}DgU;{Ee@ z|3^Gp4N^P`j<=5w!lUl{JbvKuzaN1|q!fx<#UfIQK*as>!4{z@<)Aw>rA{19HzY0> zru9G1r>e2ZgK_Sb48~=&WiXyQ92<;hVJ~Lqj26EkHXrDU35FsdAMUmH~k;%A=qOvZDN8p$}7c03ME#?lt@crY2uzs0-1^K6L}%r;Ev z1pCKdQ))mt<9VMP9*^?)Bqad)+oa-<_P~;{7x{ zZt3ToTWv!_=?N+^#VAr|yMGr2GHzsBQz9^di!4@8L>Q?RwIr#^!2vQu&G z+Sc$nbhn&}u?vsGdHn8+ebU1)&X|gGkuw$7^CMI7e749mrI^IrrrAIg=VfBMab`N6 zf4!TI!#ihSclC@>Fie|_F%bJ?;Jk<~0Sc*4`Od zhYd5ZO+LYN;p}@R#*#ex@+j($TU|J|=kdoadE1$Vio+FynbvpI1ch~D7h40dPX71b zR6$#vS{~>Yk#e5Lt2{p9@fDAM^Y{;s@(LW%zLRU{Wy0$Hbp_nVl7JAgnPYNJc?_E;@ZVGzfmyE zkJk*v6-#lo@Tbi zGbsA5hRYgbbBJ)Ii(i@lwgso+vK6Daha$Ga;^@7}*7aoyO3?k+L-}L2;+FivR&4n< zTX8wMZM#zju7+)U2H6VRaGTj_JI1u_Smtj$?&5te@c5QTJg(5$!TeJY|Jen57Iu)w ztAC_dfak}LPJ%dXS3T&z{}{$Rh>lYD@zAP{($9Cc1UX9I?tgFUD7|}Bv4x}L{kR%L ze;)fh_J{6~kFkFS^nvy{egUrR4L*Uj8U;~je!F_XQ@wjmU_5qWBh=yIiDOma$=?&F zs{U`oA3ll0pF4@e-#96T$C7_6e{L>LW#uW13v-*m)9b&V!uSXD`ETVf$-UsDGw0J7 z?RMi>rA}k4z~h?S_-g-cEWcg5VfZ~KFs{k{9m;=n8si5()^}c-^_g7gvnBTvFCnV> zzw7y930rczR@d2_GZ>ej!Ktr5gZ0@(C9H-1xw&hhgr~>*`2OF^$<2-Pg(tz!Vmy;O z8sfmS7}L&TnN!YUnZKQlg3?x<#kw6lI}Nh`uk+}24omy#9F|t~9F`;6O{_&2|F;&q zf9`{y&ff46{yFy@y8mD6(D8i1bpPA59^~S3xqKeuGv0lVcfUH1b^gMmaREyx1@XU? z@Z-{Xo4dnVXWnEEo|khbcOUdWliRfB|5jSbJvdgxMU1^K zVjZ3YVz-z|#XVbV!P_2t{8JHoq1mlsiU)?JslvP$?XO4 z-+kWJ!E*lR`g7=Lkw!SY2gHGAF=pQ^2l3*GhK+FeGL6OhhFb<4vdpc3#yYEXt1-mi z_B3{Z_JlPYYr6sZ*xlX^vBYg$L;P-^v-AnNeFM64Zrz30d@pW)F73xSBKLX_mV6uH zxm|E9M_Z&5ccO#gy#!v4*hZDV*Q04cA1nduhTG~NfBT1yPH@**xrdwiR%KB$EE)UY z)pDIpdbl3?;FWEiU-8x%Uh&rXm2jQyc#PeLdA#)aa!VXH2l|L{_wIb5>-=c}c;n&8 z=vF!leS-5CxDW5&Jv}}s^nca_$NlA5I1J6WI=63o$(wN z<_^w(byj#6&Ykx@TyOO^rAp!OLp$g!VF$K3-tW*^;+spIu>Vbn^WWTq_+$G&fAb3Z z{PX6$C0qC{)~8_Ue7E%fajaf%)y@T_iQx~td*lU6|J~uPI{WM035bV|o`v}RAl6gF z|MU+jfzODgxmB@^fi@Y*m2TFsjRTD()wfLmO(iw8O@ueoGD#7($)IdfcgQJhB`FSa z3fo9ZwM~PkLUwSCF{jy11nsBX0^1CDF6Ag`x$SJwInp}YEU5QY(jT_jpnF_n&7)9H zgMB7lhN&COvm}GRvF0gH5c#1DR;^)jyW@L$~~}409ByeSID`rwj>+-L{K!z#XcF-i&O$~ zt}KQW06AASloSOyHWPgx8+S^D)*+G)-U;q}IgC-Sc-$~P<%o5D_Nvv5pP-Y2cN6L3_mf#4Jbj85~RFd@Ep#;3Q^9$*_ zgAb@G$-yxZt`gNEm2pf41(N(B=gpdvnnTW;g_Al#t_Ct04C?8%5d)xu4lM(lN-DWphYZxUxylV92s;73m+xICy(wBS~{g0PQ5%I{8XI zY(L4>sW#{ssiadDe0%*I$=@j(bdA*7={vmTb&u4`Nt4R6=cJKNiL3&9PnzqL4El$( z8FCew_OnZ~6r1#;C{JSoFD3!cAEBCT@H28|`{ zb^Z?bl%|mWbk-z4mPvX6W!7K|Nv2COXeFt%OCmf=zJXK)a{g=wsUGBNvVEjb$kk*= zN!=k=i=E|4Gh-lEi(RGMaF>QsZFZNG?h*`oMw;njBL%Q`r1dU#ps%E(F0G|H@H)6y zMps?hfNV+6T%x49%$fAXB^p$WWbK;B>am}=(oAR9WKbo_6?g3})n_#*SHZOps6ORt zL#_b}rd(6VHDIBXi*&V-8nSkzzOHtlZlsYgy+GENG!3Q~$Oe-ZyT-9bERpoPYXT^Z zbkKF6)R;{sopntB%_iM)&0;}p0qKovHfRM&af^eu!q<~*-4a0CNv>{*EST*jRdP!P z9U(Pw%Yy%%dWIC?mJPZ>>Ir2wV|Pe{q0DCNDJd1oY|h@2W41 zn>!)bg4vKxLYXa@6X_n5*^+sYKEZgcSQ(PFdorjZ$;&;CwPt>#U)&Qw^+>*u3t>%2 zbs-nRLP$;AZKO~ZMe6Bp2kOc-#vJ3G$ii43(tMa+7>grqgky0e9M%v~vQEJbcS#oovXx4=*Upnj&!@97Jd6vF+dT55UhFrEPDy>(My_<`>1iYNW%-mV z>vUkM*-j#Sx3iZ4#^=JJpN``lGVS|d}No_r! zO0ldMsiS8M8_Yt4SU1l&&@RfY_4r#F%x+k8N=jg_N&P&N*-++PRg~G!Q<8_V6w*M@ z2xeDJ5HWtRPsCxIhl1NUG%h< zQ&@RFk$V72WwZEK6lSr%Jl*8cEYKfwd6HhVv^dK@RzSKpEyw4dZ={M@Yy6UVbLU8pRJ%?BuB_CWicdo$Sq|< zNyQuMLCDfZzzWB0^_Y`Ur8}OH{^{hAW-Cn`#g|;XZ=Z|eO}7j*do$I zpAYg*R=p7pna(nyC3dsvT={G%e4uPMJ3_goKAMut8Z{O}u7M%|tF6Ubc#K!^c_L%Puq#L*DbTSN5`^!9wqRT$Oz+oa-Sx z5*)|&vHc>)*Ux?MbtxP&l?5G{S#}?G!e72^t8zBdegRmv-O80x{-c<36_rDlTw=Mp z%2A8bK&LI5T`mk?+~I%u+TwD(mFpI*hcfS3v>VENWYM4HMl0~*2mj00Zk1c0{AJOz zatZ8{MIXw=z}xKNFJJpsZl&@cS(o3ae6i%5%kNj9%MkvqpJ4P{DZE5~lQ==kg_N2^&ieTf$EAZ;Hd_OV|?dcqRYK*RUmuN^>cP zEm7K%!LB6qM{{-EdiI4sT6F90Li}@GGD@$s4vwbVM{cS0!Y{r4WxP`Y>9?a z0}{4GOQ{hFTcVW|%!S*mlS(V;ppZGL{8c4fI!>Ba{ubzh5L*P}wUzFWR&c%KdMIt+ zfWuzE47n)lCWJmOXEq{61}7|B%JrYQfvGK5B#dOLz(eXN3MK^EfFsz zaiy{iu#ARD^SH#)94>7UKEyy(eu2jgx)}!BP%Mc@>@1 z@lt)#8PG&2l5`z3nbxdB+QW)P)u~bp&xsa<|7y+u@@-#MjKlwNP0}m`s+0v+)Al6<*Gq$l@v+2 z0LZP9x=^lhl_+Vo)SD~SY+WT9G>CHTs>HE1(r{9*DhZ&`q`@#=jx>?R8wum(NHZxn z4#rz6%_Gf%@zzSqgxKOLvFbW$EmuCnrMXU8Pq}R#L(~n@Y0_GcQR+tNzD4Qk?~>96 zTksIWCB0cPNw}mpOYKOwq&G_)Nw}o9NL@&{q_;|&NVuf8N?S;{Y`03!xzgAcsOMH` zUpP)LjpbFD2I?3g^tj4Gb-UCh5|sxpM66SHN=HbxRd=YnB|S1CDb;_{&P(C#aeDcZ73hK##g)cfs>iU4Qas70 z`b+hqbc8Dva^xazH?OVTLPnCfjn<4Ch0cUhW7S_Zkx(p({4 z$`$Dl69)7z)^+>UPt=0Qd6VhTMD^{(r(f^zr)%? z>3(Odi)yasMys8!4Jp-M^^*PKqTpfZX5GC{nn8416bR5~(NGT+$GKI1-mu zkVg62NuQ-HqzuS?kq%h&Mg1zBB`t;AH|Z9aIClFk;T*v7(>C~f>u{rswA;U&E?IQU zzbbsxydd|dzrU_nbjQD*u3GfkKSgiBBDudpF%mcIknorkho3 z_J!{%7b6ALj0OG7mCuiNZRFY_$J*EYqT0wExS*|})`jIn64ttiJd%X9wv%^|u-5jn zO;4QOLkVl`AeSIvtsUi2B&@ZQyo@WI{R*{qk%NB~-{j7ZdR#vM*mqZOsZGwPmn9AWvvWWRxVD8s5Ki@mejdcB79e^ zGO16kWKd1g;99Zp|H&JW#?-QxedJ~&yuVpa4kO|H&2n-F(r}mVQhB*MDcz+Hs6T0D zts8m;Ii9qz)?Ls@68<(T%3}+1@Y}2?PbJ~;OC>pzgvT$HQ? z{HCkOPx@mkiQjD%`6CzXi)*)*s>txEJl=wRYPSJdagAY#wGE@HTvX)vufLky*CHFE znmmWb+gTg#BgomL!?oc)g1m}^_fTre8%cN%rKY@-bg_08t0nIzJ*=G#I!3~KD7EEt zB)o@GTfRp68^#Ne?~%-aY|wKqab=;7Tql;#5!Bj6uOqh-GEW7xmg>q8q}u^)K%Ke7 zFQ=Z|m4v^X`f_&?{&E_~*(ChsG?bT-@Rt)P-zDKMr;&W0guk4|@@o?QR+`B1gRo{9 z>}^0YpiW&QL|(>~!J5=*Y=p`0x$qYN=f3jx z!8l&J*|iQ_hnDw}V(P%PX88yyu}&6?kk63P>STkikYfEJj7a$oX}Dh(&{NWsI^S88 z{FXGYjwVIPUr4KAdhKK-UQ9g~rq@okA)SR>d)bNf0CMeRFVZK-b&$)Dtm-C%Dw5pm z#<7mFAIZON0;nD-vTi>kT5dx6weBEL2x(|t8>y2VMH*Ar4%C%24RW33KBT3P>nz8S zw%5&KUE~p@19h`OV@N0KCbF*bB+?zIXIFU^=`YB2ljoE4ddZ+wT=@*oMZ3%K!?0cQ z;i!3-(Nhi>&c*N?ueaP{ln|a3^p$(2q7E@UF7GcVaiuZWdR>hE^4iguOJ(KjjWGtu z)p#kX?EcX<)-iJVF_^=(V2u$gj}$Va8YIG(+{Ti6HGpg4@>Ehh5ic zI+Qt5enxr$Wsa2JlfFTjqvWtOK7XcF!$kPTTzgWHhRL8FTw?2%EMFEm{(DcBON=dO zmzze4T$wAAIRxG}QswKU;Xe0`G4l9y95Ry)_jzZGl|Pb-27WUp$mPe0T+zTH=49D> zypTiSJ0nA$$(7E23G^~&%k#N1Se3w1Ae#v|B>YlA^X2ngnXE%#MRTcqmkYPT0p>FK z4OhB367EGVmp^f(n$zH3n340^#!5m#e2%H|}@rkl1-eawxr9m&-x7UWLC z`P(FyB;ovRl6^>c#{Ropm4s*Pzst2rIPaU~KoZXTX1N6k&)B!f;Uqj`-y(MrVt97F zRo=vf_oQm5TjkAM;`+;Wc^eIhXY4!W;})f>f5=Zscy7O2W|MLL#MyPOd`^gOuXE+A zTz&m7o1ElnuE&`2cBMqb=qk`50+eqg|l$B;3p7%hyP_m&up!lMX{&4$IF;e?naj z%YTt@3w=cXhlE?`BeFhKw9*5p%Tc*7=?&E7sO-j-&$q(I~B$PF`4;t1)K z+?^}k^a-+&PRad9&4TPe@ua>%aqP65L>e9hR}bW|r16kDBTpgCf!rB6le8k}nR!-T zNcuhKZ_rB8o*>ogoVYc?Y>$U6!L}3AxrQY;|33F&ib0HEziJEJ|QE zoFlnsYb59KJ**5CwCSJH7P^O4+#bPdXU zB*&3(ZG9|{AmQ5jSRO;dwe^WSiG*wG6L}WtS#Vpcr}BJ~+_VE|Imx|g7JDYIBb9BM z4cbPk(X^Y@b9oP`Y12NS!=w&P6XE~xoF?^cnhd&38V+T?ly8$JLYXh+C!~2W-YfYH zX)BEPO8!hb-L#+aT9)UCWpuOYAdofb1&sGbb|mS|l0ijD_=|fhdz0`N_g1dJm1Y)i zmc`!5^+=VPeFwE61vXQy-pL)g#M=5!-a*1G?O(G0Z&(*`rSxwZ9s`5FLkzEKev-pU zxbA+Io#tUKjYTx8uYQ*O=L_`)eU-nG5}OUO`X;YhfVn(rJV;WWbEUC)&0^p`iZot` zIb5%Qvr?5lLS}SJ8_84#k@~l^1C1ahwv1y|%4pK$mIp>;N>6{!T|swrK#9$Mk_ zswv$m7wczNsG8D`E7ctC=K+eRTy+?)x{^c+gfgouV@YAH`?03VM-pxenkpOD zit+F+R8u8j9V(CE+S*hZNW!(XsWO*@`^KiqajsO>CnQR0rnKf|X0VpWx>aeWzz2cg zFN1XgwNTFUA#vT6tOklzF6h-${kSlx3tAVXjIWWi2T(Y*L{%%2rahFnEeh z$tCp*gQwV(d{R8*+A60=BO%vTxg^Ao93zxl|I(v>>6Jxu3PmV38*q-&O}w(uPH`gP zm4$YS7YTogp1D%G zag8xu+hnn5r7x*`n{3cvF(jX(PD+wR*@ZeOrz~1usJn9CqTE8gl{y>w9Km?!3&kiA z7Qy{~rIST33&kswgv@(w;G9{RNqPY_8?MYJ{SCPh$}$oQhjV6S9my&@ktHfyN%oLS zRQ8bEA(y1&lS)A@NjY6G9;|gEl}jXC>qaWKxy0HtN-4UjU>;)FD5bBEiCfcAN*oEd zrlXWZ5-y`;WeO?Q@9#p%%4{y&eoEHK%0kNF_A^CULBj24in4)(+sIU9I|;XusmeYQ zZox(?M@YB@8?Brr;TCL+a)pFjurbPAt}%QImZm%<;T9}SdCw)bL}L}d%{aGtQqA!5 z(m16BmpHl~uOw~7oH(ACsJL%KiS5f|r4k9ZC{vUcB;2A*Q5x;QAv57y?8U98@Vy%R zXEInPs#(t<A)+?3j zBFDytx3ONO^e0URtyUIti7n9@WuF+&ToT^idX4gcv_8C-^;)ISUYuU0xgK)sl}cP< zt=p)y^u+IOkq?5it zZnH9#q_<55&Ed*qDQ)Adwarheoxv7?wkadIGT9o?cBREZ zk=q2?q4ej(d6q`%RZmvvLCSs@cRppCCXRWU*&(DY< zD@B~OzNvVh71OI5vD)Ug62g_i0wZ?W+*OWHu4TkYoBPT|i>}x_Q0|f1K<<(9+M+8q zj}>-KOraZ;@>H3{mC5?Skk6IH7G1G zK;M=7T$$_~v>;PUUlQY;gEo^@yDMVI>mXGP=7MDlEvTzWq}LIjZA|qKi!@s+^$h7l zgqy9kYIjwX`5~gTt&LiY#3KD{3#+rPizyf&J9P(FCUcBzVe6otBCYf5XzQq6BY8x| zSv#rsE$UM~Lkv{Ey5y+wZ%X`${Tb%J(jtzNh2 zQjrjK_kAoggAIthR3uEr?~vovQzM@g30FfN2#t;WS|mc9YtfS;k?IQ4gh<1#oqEC| zC%X=6gNI_g8IeERby8bcMNo+^7R#>UYwk$k%qmRja3>E{`Iu?Gx2fq?eEzrIxqI+CD{{#g)OnN0zrAqh5F>#&eAFvmK}2 zwCIl_6VxXpFUU<+-&yoWk*Vr8l6O>7`wZ3kxhTaus)zkdwWLL3?K9Q#7Ol4bP2EDO z5_R5wf%@Je-C>D3^Mxp-QB*yLRq7dw5**g4Jzk1jtEkNmo7LSG?RMCro*;!qop#u! z2D}nOhDBX=*siu9wTgP?uv6V_(N~9E>IKV?u8zCa`L7GcE9;o6J|^WvK6BWshQ1NG zoXD>Z`_$>A4UjvaezNGR!$H-2TTstH$3toti&{A5s{=`4QJo!+sJAWZ?RZpuZ5cAr z@wnRKT|p_69Z#r9q_C)!j;GW{?+fa=!|}8_os<)q=y+EBWYJ{DbE^MeV#p1UyPz(% zXtLu)bt9=&)Op8Cs?CRj>0NictQIAOLGG$L-JcRuFdlQdsa7Y2 zMZI#ot+I~=^<++W)E1P!SuYHUZ_1tt)gl;y;2`r6zud`WnT)0tl{)lJ!4U@(>t~3SCPw! ztl{*RI@Y3Krw?i#X#?awsulhzsAsU#CpCc7DyqBF7j?cxF-~9AwWKh}eN)SSE0}tW z(|0w1)GBI>lcepoDAP&SE?9;f7;32NjZ^YoD8iey!nmW!JNoUCsV`s z=206US4gv$3Y6(&t#v+*rDU*w&Zxe&TKpBE%=6o86w!{7mY%;@!(J=O_aqr?!-YtH zN6nYC7v!Wl+!o`V203dc-$KK)8W(TXbkS7WM!vXstd^_RlD0OhFZl+zX}w5!Aa`vd z>DHx&0Unykw*?vO^QB0CPwg20ZDz0umsi#;s;%L_#tgO(fi#)GMp`@bx-_O}qMAeIKnbUt2R+KB%1LM*4L1Vg2&jK~ni^ztyj(ogj6- z_ON~>?E_y2GuVu4DGjPABf(#aMV|K#;Er~P%a&@%&e4P;I z0rj*JLTvYqrh)Y|Khj&SjDHP@OC8S6Z2xi0bE>B;}`1C^o#GbI*T`*UOS?5FY2; z+oJB_$+%gDCPDUhSc!P4C4JWMOc^-x;sbIf_ThX0om%iQjB-8oU~%Z1B*pL3EnT?n4^ zE#xv%%OmZLy6H4Zdm_fO!X=%oeI((MPS#2)qD)*TQZ#ri9Ban%qFh~4wPCu*U5={k zGFqF(bw_#|RUeeih3iB+&=LM}O)6-xOS;w-zCwca#IBW?6*m*?)vr4>JEX-WHs z{ALlZFY_$I@v{Fl-Xcq`LHI_OB^KfOvfLsZZ_U5P%dzAdgzs`$XA!P1n=HcdwrhoW zOJEDyNjo%mAv2(zjkHrMNov{74&-AQGKTHaT3fVQ-lg@l=sMf2rCF5kvQJwlWKMuG z^R=y{Y$!8d+e6ygE|DG9@=5val0m0Qm)ga#BO3m%FI-z+wo3rr=E`UIuIy3G5xzQx z*NO1W#ABKZm)K4m(~4Pi&gGa^$)am6C$&agnasB8Lzi<}OVaZ8&t1-IQCwmQ7qp)6 ze+Y02_{Qx;?J-v#y!TmJ{!?4PU)vJXyR03w=&j3T?X{5U&>@lC&_0qpJ0yc7TQNuY zgw0LOiiA(t+|(RMc-{1t=0U>irnj`xT;lrmZLJ&$uPEKts*~`F(j6^;gjbaAXu(|R z4By*Y)SHC&l3!}@|JwOF zi1(6TYQsr*FZq?0O2T`|ue6Dz6+!N&sisv=>VZpG|wGHFDsRZgi;X`j@s$h~L5asC|X+%N1NV{jBxmuMUdqreC!S zB)o3=kM0sHK&a-df1a>zK%F^hnZ$j>(`dT;jU0tv(RG z5LqyPMfCCT)l1wm;M)-P`g9V$4PmeUMzW2LV-EUal6!OlXbqRRhU=(r7CBx|C;bmD zyf0cqb<)p@A>nzV-mWhCN0DP!qoXA^{Rn)+5%1qVh>mr2*P9j>`VgJsT3nCf!g(L( zT1p=(WIA_BWIyTYq!OKyL7Ai$aChfteIY3l?(Y1ouOyX&@yhBONY!Dyvic5E9mxHn zA0{<{+%NhiQYhqn^joBMkn_a{6l$zR^)m|3vEA37&w~E0(}H%4GdJO>-@; zx3TCq*UEYVS2~*zx!kp?zSyE1*XsHXE^$@bS9dDOml3o?GV|3-STxSnPp>D$+ohJ? zgoN!%Wq)C2H#fN!Str`Y;l0fm&#A9pCgJ^@`uZIb-p^^EzvB{j#~bKhD7Ubaozy^A`76KaCf>7YsN0b6o=rpD znS}SX19dMF-q#M)e#y&`FEr|qB`q;s9JSYy2&>2arQP%xLcuN|a^Q0^Pd zQIOt_g!hP==v_&8kEn^>mxSB8U_Fk6+qz&qk!0IBjy2WCkcxIr08Qo^YpNl+uFdpW zB*&1$pamqn%iUaGPQts~&Gq$MY5cxZ3w;|2?>n{7_i>5)PA&Dh-eTF}lPj(DVLu7s z)4ZX&^UtV54DV~V(aVwWIhJs}5ee^Wx7E$EVo2P6w$&H;2;rS<_&6Q^%hSqrKIht2 z?_Caad6IwU>#prAIlOn>LC>cg-i_~|Une!`eAhMFGGtii_pUwki+t)C?A4tEB5Scl!kQ*K3x?sf%@YfZl>D-Hi3~a2ue9bK#xB(x7NAafd%f zpHITQMU3uUfzJbfHZ4YvP1GhY8f!WJB+s})7fu$6}C@s&_w>Lc~#LS`yV zeWbpQlm$~Csc$1~hTJH959t8pM(G_ZV<}?an5>7uH!<M z)CaU#-#{AO?V8(m{S=qDuCYUZz$Mm+9lBfx$4fVBch6!w^g^Vj-LpZCq)5o^)ICW( zAh%QZCJpNT&25)no;0$%>b^_&6=D;*Tf6_E546Z$*{%1l$EU|;bhmfU)hCnYclQAO zTpx4d>}8L>g@oVJ*`o&rVlIuX?OxpdfZmF<6Le5d;u7^OwYcprNepv>F2&}K#fV&`gV3dqPHY9=-U$%L2BJMjvduIk-GFv0R2iD1i52+ zENKknj_Jclvmtj}Pa&;<+;M#ZX*=Xj=ozGAkUODgk?<+Ylll@8K4p1Q&mrCDn+5+h zK9_{gT%OVok?@(zQ~D_qK680m|C5BzT%Oi%k?@(zGx{SEK680Se@((?F3;*8N%+j= zSzT%=S`eSPJf~Zc@R`eVx&!I&zKQI-?!lF6s{N8dr736MFOgl)%TcZvN~=OaPM?ouh<54h(GIoQ;#O$-sz^kg@oJdTYA~H zVo2OO-O^LI;ElI_L)~xb;SrciV*&jNTRqeV^YQTMsa?$<>8YenpeOn?(&mS|nm^MQ zkV5b5YW_mcA$0@2(gXMuGT1X1@{Qh%BtP2K{GA>}atHmT_aa4s{?_A3b3mVT??|kf z_@#c)YYXuw4ZrAtBz)5Fi{64u>^r{d;ap6H}F|3I3i$$y5ix{nh%ys?Y>!U^lX?uV8`l!)`E1zFIa592A z6_gpnoQzl@^LhU)&`{Ff{j)(SBzXXQLCTmxavYEd$|89UNCqt>{XF11b1`yAegibg z#n?h>3^`Zh2$wjcbv2%IKRrfN6 z1F1vIZICBv0OWo$N|Q!G?kA%>XyQEc& z%Orf4w5oBPgzu78Gs^eCwtgt#yQI~P$|QW3)Yph1;k%@M#y}FjOIpK7BH_EFHI1^p zuoQfkw2ntDV=@WfC9P{b;lk};4Yh&so(r#l^mYw2%J#wWW-^z!NRP(G8H)ybG&6Sh z6J?f;o8ZyfaN@ZPw*2v~7Li8M0L+Om1VtHJNce@IcE)oOej%v6;TzL4-+ zLcI;Afmli^n-dqq`WjKB^>O<>`WgZ8BDcKKF^_(ROM=k;xQiY!Mq|>MxccfqR4lrkeNF;gN-v5k8+OzAc;*Mt1S6QF#J^Q08Y4-L z@o{XDF_u(1J^?h9R4qP{O*S$~P2!V5*(Ch_(iCGOsYCn+_bJ8>u2geS{8!L^%Hi9N zQ;nmP!?zu$8s{iCF5b;^nsJphC%zQu9%*H~jWpeOM%o{52YOGs7GJ?L!}vpWZ!-e!B{xh3t6eE3#ukSh2_?e^)3G$p}R3fZc1NCqt=6;Fs`^NbawiU|pz4Wv2=iEO^HofHD&%{TUu zx+i3@1;!E5(1dKzS<)mJZ=rF8vnwglz@{G=;<%!v#-lXk`vFagXAXln+ zDA8U%WDKVqez`i|NG0KytMiSCB>ZyqVPggfzg&ITm`B1dS06E!lJLvbM~t4N8R<4?-@CtU^IqFiWFlyt&)M7eHB z(V*9q8w|OV#z)GfLGGj>%@)gOc2Z~eQ-&2+s<|eqC&+;-&BSj`pEkTndy`OgX~;j5 z?s%RydUK_-$4LR^X(OKWIq9)_#)z83r@)Mn@Lsa9o8&gqPC8?pCwYU;8qZ19Mn3gC zXDrJS<24$Y#V#6GNZ}*DgI<$*kNn&7qA_`%7!uDSFBvPi#98YlV?E^(N3x=qj3W!h zkf|fBie57wlfG87ldc)V7K_}JkumJL@tCw^q(jl`M&%`#%ab-k?xqn%%H^8NmCBBA z+1G@6jw zfgTxQq%6>5Bbs#W#gvdIMsHHlms3KX8X>E39>i6EXGTXZaRm6x=wZ?EqR)&}ArrrH z^wO9>!mk{?G-iqxJREE0Yl>6NjRG=6+{>9vtVnm@h|Xp0b>TLhSIj9ji%^9~I8 z);L7^07Jet&T!>3{KmvPBWMlQI-lV;Cf*xON%)P4_l8>z<}%s%30I2#Wpp7;n{dDA zC&OGTa!V&XE&9cn%q8aiyRnFJ>nHqG^t*AME1iEmPcpBO@auV!d7rd(LL8IL=cK#| z3824(_;=_O({UY6Ph3?|O;4_Le%(ejOOtS4rJChQ_$?^StWLsjL1|_k67K(WvoQ(x zf4bRrXXU2ZnTAZ7c-7rBe>;s5fnHr?0b{H2@tzkICCpGkR8ri~d%It^vom_12XC&K^1F&B_tPK5u1 zW9E?LN$`Jg%zGqs8jAYf-XSdGmoq)4VF1#kPtzbDFZy%h&vgs1m9Aly;teW(`t{ zDV;&}NmdPWylR-iq#_MBfkH`t2IhGAo9#%~12=)Xk$OzY@v3R|B@LXi2{f3L1i4yf zB56G2YME)IzP>qLwav+-c;8K+*`yX>IbH$g0#anyCeRAftSNBc-ds;wGzIS4o7+ii zr`Sk!&Ap`EQ|v%TNGGQ3@TzB?A>Ey_2XviFJV{dDT(ccpP<%h6p?QKUjeVSQ$g7cg zVF%{Ym^AfIuVC}>&Vr>9!&;cpyF|<5cQRU-JxO?-wuKo(!l$5Gnkl4`)10N2=6F(# zX&#^qQp;)Z-!;tNNZqEvf7dXVkcPr|t<5#02{2x3b2Dk)H0NR=<{zYW(>y_Wq`lKh z6$>>_kd90%54uP?J1vWanKwuere%X3lJJRwHs(tbK2gxd{G0R%>KSf+Cl#6w?a>5=WbpNq8@$lX;sfgT+p-QLK~s z(W1J=x|)^u<9Hct*z~5wdYJKCsVrrBn_|7p9S1O%$}*<+F4osIowXnFE-4yIn2ec`HwK2NVqPIFuh3s zAA9ct9#xU84cG4OBzt!y5U@d!TN(m#2^S?IDmsY-6vYEbR8-Wopo5BxVnooW=^^8Y zgQI9bzyN7M1r6XO%Eh2*i2@qAXi(6I-4awZDrmeg;`pt#>g}YN2*b>o|NQ^={3p+o z_13#;)v8ssYuDbp_NDpPy6&{Qf$^_(-D&p)<1ZB!*aN}%ON9mY@4)!`M0eTeg7Len zciE#1liB8Odu$_H*6D70ny|U*_J?2S6ttHKo2_O%ys^^^d(Jiv>%6rh>1h$j%9<;ZE zeN1@|*}K3#rM!piPr!JT&$hn+<551_{tk@qxjk(EEUd`pdu|Wgp0`Y#e6Q{iJ6Twf z+^c)UZi76&6IyI{L>}J>Ew;NOkMD%evHODYozOYEofp{sg$31D4|CpfVdhA(z<#cg4Yn89n+&tZKSIC5VQ&MQ z@<=MNU0^}VE3u#x4>@Z<-NX zVV4^wzkssJPJP!{9#=e|^C~;DhS_X&VsUoo=j>vzF2(0}e%_9N4Iox-XY4SRql!m& ze#!nB?E2!domboG@0q+?i?8Xt)*jc$uJ8P^JrC@U#W#0eZ|nEj()4wuy$4>p?{9xe zrCkim-2LZY@|t~IoaF{P%`mlMU`Km{eb!-lqZ(QJP8;kAjcj`7Dtnq?_5;Pk+P`iW zg3T))No_m!Hp=Wpyfu)oaR*7<;) zx7*|`nEOfR@9c3O8}{VfZ#p;F$q{Bet}WM(b_c`kRderD2ko=L)(N`;jK5KE&>j!Q zPm~|DCxP)3<$tsD!T5>tzuAR`sp`3t)z9{O!pwTX&-PEk=GyPg{iXBIcB^PCmZY>_ z>@>sdALq76`@7u(Eb-AKVkb9RPFBC#xs7Zpv3nZXg^qHbK)Jz>(l3}gE5OD+O21(0 zyabm2=&#D-yaIOrqY0MB*(A)&&`?Re)nu+j6*O*_%)AuOoI&KsH5(dqFeTL#s{ zd6%ShcFOh}Hl6aiIQ_p9FET5pJ2x0+-#_oFv~=edu*c?ILu@)&8Rd0z3c=P;UN`4H zuqw*y?mP(gKIL_H9tHb?@=kIVf&D~zCppW6%~gr>f1lRFsczs{nEg2|(`f)ZZvN7= z-#HcEOPs3f{Abg0oJ~I(%boLIPrJ}b`^m76=f9ga#+fFJ$Kd^HtTXE%=LPLv3r1R( zImKWD7mOiRCTy-cXF+}1<<2Ky7cTfNZJhJ7uzTg%gR33;Z{mfns}7}I?Mwi>dV%H7 zb9RE=xWMs`ch39SSmrNC^Idpfr`v%vU!I=47;!1!ymQ=Elh z{I%LC&XZt#zI&^)5{%DxZ*^9K@xGbwyb8wqX1=otjQ7pkoNZvdZ{FtY0^_xdsZJD( z*Dj_yUx4x2{q4@TV7wl3yYn+xyT|A|vyS^$ZY_O7@iF?&tdlIv>?_lqWcj$dxpunK z=_}0i#9hvLhS`(J%U#YWu)E01UCw1-vmTqG?sfuTC67%dM!!lY^_5ZHJr1q%2&l~2jvOTXE6rT;HZYp@4;Oxhn%*CNu0BtPK~UU zYqoQFBm4954?Bg1sjdr4{BxahTYM5*=3n5{fIax|6UUc0(MI;n@r#^8!st853(NhB zogBx+a^}Ky{*W^Q?81eW#4ZNAdf`axapy{~$@J*iHe6Ssq_oNd7+e>**I!}Xrzi^}fDd%~xq(yHN zdl`)Hc`tJ|fbl)=Wll91U!5&?YQXsFY`OE1Vba%6J9`gfsb1+9%6pdTK1HGq=hVm+%#1u1nUZ=dU(*o=r$_qQkgYgXZn$sDK zXRz0t9>UE2zQL(%!CuS^_PSFi%*4O2?#o|N+`*q=)2o|N+q*gVSH#RH`XgUYcxec5JXMrK!YPf$@7GZ#wP3_`Q%foi1RXlh3!DUSQvo&$pZbV6M=e zs@gdd?D)_<#B#tgDDQ1&1lZY>_qKB}*r?DHwZ*v-?7GlYV%LEcP`RznWUyi?x7E2F ztc=QSbM67Fq;lJw`@r~Xi`$)t!1!y6+nxDfHB{~$Cj_>a%Dv+}4fX@&z3V&=mh$*i zVlRWGKmMJ+#@PVY@9|%VRfF+$&JL#rjIVQcI3I!Wh~&Jogct> zM85C*3UYy;zGg6o`&*h-@-|O@h%h~FMPg`B_sWTXCbhOnKpF8J+T|?{(XDryQ#Oj@M#i!YizIH}7vesR` zc8Uy>tHB0m78qX*HaK&@_~`V#vk;7rPTxCEg7Ny&56((3USImbSq;YPOFufVg7Ny& zkIp7AUSImj*#^ezOFucgz<7P>pc4h-^`(POy)bhX`8TKiiLy0mPCm`^H>Za%b5(H2 ziFAzRO;&$*K5t~9c7J#5PEC21ccWp_cFVgJjN5K`cYZxJG-T?DGMR&HmTfn+KMR&Hm?}H6|YE8#h-jBgXJ@pE)&%thZ z>cTFqz5Bs#eQFG`gJ66HPj9NHnQg>p@W*+*V0;Ge^R@=#GkBl3Jy^k0$yOV0SFl-6 zr4q{kE1|r$-b}DE%4_Q_6lRWb$9r?SbA9F**UnocY__U+>hdn_y+g$^Nc;O1E6sZ$ zSRFCH_hK;rfh|@S?{#2(5B&LxuHMl-n#OgycVZ)(s?xpF8rg+TH}4F?e;% zze?Q0TP)1Xd_BFJda_Rwb#E^vnWbFvbdl;4V+s5`Llfg?7Wy~lUH9~4bxI?fav0;M zBAW6>x1Z5vK%*r;KQXY8jcb3Uby_1UdiudGgBsbxPtWagdLvu(bSu{xjqJwum!zH9 z$ZjTfws%DDre4bS<_a_SytBP`2%BqHJYCWy+Z!}__SUB#CpHs#pHSX8-iMG^PkHBf z=OOP0${XTcj6C(sm3<^YfS^ygk79dCU>slfn32 zvG>D%+!JPxyVPstE-+28?I@>%2FD zbuYV9{oZ>kSZ3Kh#0rG*d)^;)ndn_A%>0h@B(FU{;#Bj>_IH`&U1XSCz1-w27dBUw zmwn&mCU54cY&lm|m38QPySE-pXAJCmk2igw$*V0J+V#&~-yp-jD!a7nL*7YXYDIq6 z1>OpaD5Q0%}P3kYu9k`Vs}|d zzdx@+)G) zgw3$8TG__Z`oF*?tvr#~rC>ka(4|wdz8cJPV+OH_V0Ta(QuNJWf2KC1=;>gsZtT*j zg${ysqH-- zScg?zIZQlEFz4?e3sMAr`7q~^UPAawbg@#nRi}K z(D`7W(pPKR=|W-msykM7=ysys*vLA!>!|Bt$#2JY(o-&ApXTjYzb+6)zt}=g#&yx> zUC4PGTvhFpTwU~`jioz7gT@!*15WyK2sRI7xHb( ztGnwVV0*sxUwx9E4CeoCz|}qUonV8$8+vt5y%ucbcY&*W=>(~Lwz`h;dh7dgxdtH6?`;}osy7kvB!8Q-Okk|=eJhPvy)4+IUKUohFW@hhGbk|GRipP~DL@xFPc9tg(!=9&6;VEoO8!TMY<{^rAAJqnC}%it_M7A#2R z&e8#}vga14v-S00;pY|;n*#P8<^4_;3*N30W=XVi_| z&eh$)jvJLvtREPEf8soS8W?|n;yj%t%$(B>*NAIZjuC@!OT-^k%Rv-yK~drh941zo5A+Qx#!q3~pf`c>Qy4es?h~X%RNvZeH|nzt zvmbvk*_y0}f<6CYDzX0pd+o(L)gSaFU~j#653xL9=4r{Bb^5jJbFNaoUh8&?p4rGY zcAKIfZDiHmZq-jTvhCgSb!8)azuRp(^SYRq+HO;Il`u0$-mW|TUZS>t_tHq~cHIqZ z>`P;a^#!}-r73Ef9tbx5rK!Yz2NtBf>H1u-Ig~eDj{;jxKJUL2AGm>AWR4Go`XOPn zRnqG3y8Ti6Zsfe#%17+a`aWSnpojwK8T9pm|Co-8K$b=*kTpyt4BBG&CwGLQ=2y__Z;n>-jp|2 zCmTk`v4{H1)p@I%@*dR_4O1K6JoA)C^pH!_?WiA z&U=HNL(=7jIX}Kt<$Fw5Aa6kRWc8S?0vjvL6IS#WbsnjnO?j<^@pu_SUiu3QsxQg1 zL>C)Nsl7zkf^qF7x(Iz{|tLv8E4OpmC<@W>37b6$y6TrCkh59dsIoE9&N$e5iaqSEB0x+(9 zp)P?X*S=6M7iMZ-sFPopHb`q1={zuQ?IJx9jO$yZcNivpy-0tAJg#q%t^?!x7U@r6 z$@MML-w8AIEz*PNW&YU6TCB4SQzN$CJz%je7Z$Z{+Pb)HNZT7tWE@LKr-E@TA^o{w z&NEx9d?CFbc^pef{{+Udg!G_I;zhQ5NDmceVhQO9!h-7fZIjjGdTC=Gvoga}{x(nM z<2r4#iKXnVk(o<%J{U)~R2P78WJ~pkH%)y%zBP_4a}AR*u~d%(T-QE z7)QNaPXptqm+RuUV^QBkmL-Ns)XVi!Fphe;_H8ki9QAVT7iOYfuCs&%Rr&VG>S;X= zY^$&(jh3AEjA5!_``rVc)@fT!oV?x3bUqlzS*8oXILD?9j1jE$$ckUjrLf`OiQ{E~)#W3|J z%3Gx~YMSz%)0u{;GRk{S?-XW6@(Vg`2V0uG_yyeqj9c`AKH)vdlaWl8hDnRa5{z5) zf}RLVZqW<+HesekFX&=nLFK$VS(WRz8}pd$FiZ`2_wE7Z`n>l|EZo;G=@KyR>zDLW zFplgcJ#A-GWH0GL!z8ko^nG9)*-Ls8EIG25^bTPrvX^v&u%Nn@B3rF9<@?^IuUG5A zhN=50vei20gQm#V>Um%s*;-u+#*wYnLU{w$Ffe31>;!O>Ac-dv8>Y*4U<^b>6^hg zmUa4BSaK}u^m<_?mUX&TSWp#H?Jw)85%y_%>1BPlVXC2K`=FP#E83J-p}mHwb~`RV zy+Sv9!g*%Yt=H%6F^r>LuSbD#)a!Lxo#e@=Td#W^7*T~2bETYca?^XFW>hlegp4g~IgKe2{S#hQ4js1DV9z8V#Czf z_j?WAq$h*jN^G+(0Q)PkH}z}vP37LwZyKh0@7(QsOYZ?YZRf3LRqK%a7KQ2EEqb|O z>av~gv$yC>w?%IFd@1kLt@=JNZtYh65E!?1t1j?}B^|?WBFiGfq_tc1EHG~ER$UEC zZtYgROPFcxR{fK(pn7`uWVKBXlJ90mEv{jkZZOQL-raxbHhlbP@cD=bVj~RUzi&|@XV!IxcBuw>+yf$>Z-W8YkuC6mo zT@cwf^j$qgH4!yo*Q{H=elVR%2=-y%P>DebWN{PVwh~rTKzc~_jRrA@jGM5TeDX87iRjpR*w{Bw&q8=S5{MG zAL&yLV}lJ-kA3>W`5)=gQ=2R!dYobE)6XZXh|aw`K5v3ys_nkv9jPV|f0$a0xs z(l2}TvtZmWd-RA!#*+JGkIofl`el#4RhT(DtkVyIjr(%4s?*Pa-7c&;#9qvZtkX4y zsoh@=_tfdDo^Hz9t0x+!#((|hMSJzKx21OL%x?-V{#5S=;}(6Ye*)tceX6%_F>&7W z&7JB~y~{9Z(Wg2B#x43(e*#Nx(Wm+wVWvf&>Q#H1V);z3F^sOx+FkmY9wtxMnl|jy zqYP8Q{Wp!>r_V}rHMZ|7oo|@(9VocsEB*2Bn)1HZpBbjkJfN@oT7N5R#>VG2`frD^ z3uHz2UbW)D=U08BU53dqV88Yr#_oe<>bD24+OJ#3!{5c@kM3&|Tv4zSX@B zV?J3yzE|B&mfz~1s{(wO1srhBt6Qt*3|Wn z-b^h?lAB7>rH+$yTS=Q-Q&&?wmg*=r=_31x%oO`UB;9JTXtG5!@*mP}b+u@&6?v=3 zc+Vzn_7}5{WVB4B=jQTgulenL=eK*$#2nu<#&dkT;_E&7_?bp=y40N#?cE}aMBXR* zStQ-+A<@KJ7E7+NH|e=zIgg}AEf9OwxD;#L(3FT~iD;fCX{j=i&x(9WB)7s+mu+JC zDy3bjilkd@UdwaKHp%_q2>PzW*q$xjWXbk>NhYXoNG7VEr0lWV99}Q`VQ-1zEeYP# zy5CC$>M&LZhn=aBTMb4ezsQ6v-9Z4~qZhTWU7x zU8?0(T-UEOi+a=}q)AY%PUkomQTm^4&12tc$FfC^)X(w#xtyZQK7o7Zx5O?+Lvb@<56?d4;)rHm%NUNcTOa!bXhf0an$&n24I>w1|>*(6;w zk8wJ+G3}PoOXES#4cffSvs@>!?=ChOk{-}#Z^^l+OZB{h$NXuM%bsI;bM!GsE8cf3 z*@G-~w%806**wCdYcgnWVn3;=)JsS8U~0@28;;Ngdrn&tb8HL7*Jw&zE~Nq_T{ufO z>FY@2R+C72)RZ_I)00L{Z`51LlqwR9$u)b*pGDI~r0LaF4|7xxiiWp{=_Qw%FX<;l zUM^dN=aX3E&xqzl$z3DT_~bdtQf4%o@zdO=IYThg^eUfeSc>N{ORXbsE*U3$ykiZY zQ@PXz(!14LQWu}gxm1m4-ls@B>I0GqY6I=*i6|A{xBp)HW2uX;fLw9~AE{Jxef-um z+ua4wIfKbTzZZ5Q-M_rv4LoIf1v z)f2~Nu4m(qsyt3ys;~40M`Fnth}riKZ}pKz)W52a-;M*MH_Y0|k+y04d6yZnW_C68 z#;2Ql?ARhdRchZyb0GKOKW^pb?K)HJQ)RpJN{dIGwVsc*W?yKYn?`#|EH_Ka4k77Q z!$^A6aFPjX1bIk=ha=grpO}qlrY(r$GlNspRLGC}MuS-(0`Zlbz{ zER)2WrS70~ti9%p@km>r+hVDB*|ZN@Dn4ym9Td;^#rco#pQg2i_;rR@dLETBXDOC4 z=|$q_@i={a+N@DLEjC9_m&e)stLgPrmS(Cr567Z8mZaQE{~_&e zmg`nYuQbKO_D17rW*Ljn*!*KH$L{Cw@ngL4h-zMAERy)~79Sz&6Ap{>__(%optM{4 zwuaW+q-Wy$wkaLoOR-k_<2=Wwo3?MvvPl!W-ZUeG_x+gXrn)TEl#b;Z`@V5Cnzl4) zVs$m`zlUqgd8zTkJr>LT?QQp;&i%(0dDN-WmL~mgwfg9}$J&;EHV)6ANL(t5Bpp3T zdeo&P6EGf*mYax?b~GDH9W6KJf!h-6^CNA+|Ftn&{QqzLW6nZb($j~unkVP*tT{X# zf7NNyeE-P8nyRsnm&V4dX7IUPJ{?=Sk7#*2d8QQ)@!yno%ekfJ7)rTSuvuBwc*H}(F?;Z+ zdyn9U^$FsQ?o!E7z?|!vV>fT>*t&H5dFfxoTYRor`!%J^xQg#>lWu;DW_u6%-|Wlt z$+KJW)-lKW1mrf~Udun`*q$M2Rz6+o(g>&Hx75+MW78I~R8#u@hOJX7{cpBN{2lOd zbnpAO?tmZuR0;R(3fb#`r(8Iuw6R+WbDtl~?lEJJR*3S;gWNIhW!! z2Xjy7Ur8UmjYq0IehZqbRAXuG1@OuSJvkyr0kg_sG@E3Pt0w7D8T6&71eLnhMeCyG z=?-(P&Bp@X*4&oFtJsew8NcEbn`7f+XrAWP442v=HJUXIzBaeiPSUvK>NtKyD|Ro; z-20BN_YSJvqi!X6Z1pyeeIa0KIk100iG|fUD)s=d~QvFG~)Y-4{Ov3XLKQCwIBA(fdjhX$} z(k+(1WfLEBd^$E$aa~7BA8!BKPZ^mxFkSYb_?gh0W$~V6o`#CGD_(yAMIO`VN~_~* zH0jHl>6=F8;ZJrMOC!0jT|r-|QR{?)nkx9=3t9UqD|QQc26NzIqY z&8%zoDHG@aWZKmD@9i&UHNNFlJd(}5_#^i-Z?B)|C``}z$yj1bmwHmRAnQGG`rn!x z9LsxR8P(-d6;k8Y|Mr-PKU?_E+^hAdJrY&(JGN$zXnr&__eAQc zlv_2B^r&A*CMa{4?O1XXE4i$fBt3CNGC{Q_nJBC7NvbWSZFn>H>5iqhH_P$bT$lZK z((S1B*pY&J+kM!vgXf}HE+0Xf(mck}!_#IK z8ZM=drDy)v=KniAVD5llB-_r&U)S;T$P%4P17vrmV2EZdR~ra6;pO1 zo$a{Pc(MG0NWRLp)RX&Inz_PgjzyYhkBz*ml4mVGmvH0ksCgg8-_4I-KM7JKE_FXi zx(i0>mjg5ISs)FkBsLi71=aF3MT}j8+Xy*KQjY*sH_U8J3Ph(nS z+G5T?;$_UI^h~n|IoE|JwByrtWJ&k##r`Krn{~+eG(X)$cb4gSY??8oH;xPQ7CgGX z8`-#3zcBY6mr78kR4h*R@b9IY&V|gqITvQ*rZYOXVjEg>plup|rgymh->dydrQ*+v z;v+OMn0uEu(j8m3I$e4%c9qnm;c*zdgK!qvxD=lSxfLJTJ!+_wGPR76zCAtcB7Gk9 zumzu{-icxvpSHhYZ!Jl>Ra=rC)t+R6Vn4B`5Ka0>t-FydU23Y-Yb^Qs|JYTqN#7&6 z=Gr7)V~s6VyPr@Im#-r=wdpN%5wA%5RCX`Xppa#z=_iYR7}nn}`9@%tCA zVDR%cymg9Y44+OiK`j!hil55MkcZpquX>CQFx8=ndMvoqNE+T+t^<}_Q@JX>N`VECT9 zTb_Z5t;00em}`f(r3c<8X-0VL{tM4|ZuObyn_6-BTx71_%^7UHSen?5zLH~X;zwgs z@5RohnxC(lb(H;Rrl9;fBzlH1a%H+=pKQLL!MjQ z>P+exOPP6lK-@gjeBnj{7 z2@-9h*e8iSJ^e^}2j{~)Khxa-IB%mxx9RNwlN;+jUNv>$ zjDq)Bdbf)-ZfMN9x_O4`8tM~TotB<48Z#!1hg)TDx`T3Es!(k170Eu$)4Z0NDY*}m zq<4rU_aC3mibWN_HII~zAFE~zn=7Ux*&F@QN4t5>$5@&@+B{Dl@6%k@^EY%3kJenj z_!e>xv?S?Pok)6AJCd=H-+b-y8R?Ui;w^sfHfNjhn)n!wEq$zWX;Ur#?ksw2@ig_= zzqjrF)mr{N`(qg)@$0KU$r0^eUG4d;wP6|}yC1{R2{8px$-d8cpB)drE~zP7QCKe8JQzyIjQnNRbctPu~#E}MHe7R{0R z98c9=!4dAENIdFGl5~`$^9{QHBJ;L+3Ywq$rM0Qo`0R+^!uw~Vh(|BIKh>-hzthU>}Tm4`XSlRhCO7NU20Al_aHXywPde z&ewfrD|loS(Oq47CO=W$txJ-(AZ@$_Y3$9)Bwts0WZNZ3sYEH2B&BRAZ8|L2AvDLP5-dobC}-j_2!z9&lVEYDYUKWjUF1ANzw{i#)czXIW`8)Ae-2g=D9L{ zE|OAwA0dhEDe(BoBaNeOq8hzw21%{{N}B(i2eZ|9d(nD}Y_;awt9h=uE-=?e+*0a) zYH5O+C-H|!CMkXs*;Y?Uv|Niz_7qF5uVd#D<}BK5Q*$&inzPn(8~N-y{wZZk)$)t~ECiz!w)=(|6^?~@bnZu3b`;RX53R$}44kKL=ymGXASn;cB=E~ii zDIJSEmiW!6Hftd9XO+Cw{@J{DEdGz(CjR(kuJ8U+?+)-gfb>oW?GbLZMfOL2v+SR> z&Ya~ZmD(SH+rGs3ywELAJ-yYU%E@P4(ir_bnxkkfMP!qurOdh$dp z;fZR3>PY%dg#FYS(iYRdPi4_DGfVkZwrWBDiS+MR=cv~7?^i=qTl)8_^QrU*DtV#m zLjSGl->?2lb*KNf^zT<=$=B87E06r%M0gw3F`w```rk!1yU1pjy209|rV~2q1JZp! zx(`VA0qH&<-G}Or)`z6~P~A&7ozPLWWLHbNTC%GpT`lQ$lWsTZc9U*5>2{MYLUBh( z7g4WR5z<9Sw?}<#?IGPB^)2CaLPzbTvU^Flm&)!X-Cok|Bi%mI?IYbj((NPNm!$iW zbYGJ0OVWKwy01w073sbr-B+ahigaI-?rYM0O}ej1_ciGbknRBK4v_8u=?;+YN7DUB zx*tjRBk6u5-Om)?&!qdA;`^C&Ka=i|n(R45=|hxuEN_Bi`3YMPPA7EKan{)h$C2(h z>m0)AgpO)!okRbA`X5IB)9K%#ZMc)Zu{GS{@2QR!c^S#6Dj@QDk++DPE;1-`rpVbM z=Zg%9Tu!p0`&yD?tT4&R6dlXWlHP7Df4x`7UDle{H*}9$AHBY{`!4G%N(WWL>woXQ z&$@4>n||E9#T&gk9w7UvDqm&ic4~9b8uUizj`U-{mmYr-+jJs1=i(>ScI%q%RCX1~Y}b-rACdq2X8t6yKCMjps$BZ2 zLS1-9&z@BhVYTRML?4jexZd^Prki^1vr0Ej>Di8AyS?W@YbC{V(0ZQaEz-si^}xcO zlcXPRadAt-7vgNeWqvzizY`jBP^~rSL8U#9p8I`#qAnrxi;U@djwfd>pe*@hDT#vhxyb$lhu6J$jzx% z$Tfa*hm85INt?T5tfk-Z=}B@mjlH$1^PrzSYgOi;4vA}3wxn|hvHn_-w+)&~>AMG| zT5Hv8NzWFWC6wk`PS0@EHSMRUS<=#CiN8eBOC?<jET@W`tn#I=3PhHRpXDxhCfEDO=KWpvS&xxq&tt3#@xRYn zN<#xSuGLPNQ4D425P02I?1gkIY8H0-)(-i zPlKeNqn>=HZ?R%cSb8<=S~0MrJ=@jm&7`D5v_-z}d%d*cdipK*7hNp>;$@lGkLB(p zmSe1BDO<02%lceAd(_L`_ngXnGt}>7t9AQj{lcVK)vr#rd!4kRr!a4 zMg6%a7m>Vg=5zf!xOhyayLe1yNG+Kz9$kY;c50I&=@ByWb0v42q$f!32p5m)aW0N( zlH}%-9H1wWKBwa(*PF9OcPtS9MdE+3*bJuJWo^evS&k%p@+{F8OI;=6f2ouzlTsz( zf3w)kcI}~lE2s4Nr)+oK|JEg^R8V?=u5$I>eC8?TByS;2cJ9D7)vh@gSNM2OpQd~%R*R3LXY}C45slLur>l(O@C4Z;B z*0rPh%~NV!Z&p96YF%HvRpYC5@%Q9wUHo0f1LCvR6{+5GNfNXj0PvIi;MV}Qpk^NCyL z6F0~2b94MYH`nfSx7k|b^SK{i&$7!_)~8mm}2;+Z7zOcKo` zH-Ec5U*buYtz00zQ6#YyNo+;ptw_8TNo+;#N4Etsi^u~@{@#0$`-yF%T}AG76kCyd z<+d8%EQzg%VjD}j{EhY^iLFGum58?z@w1ftlx3DlY~>PLxoFDW{Pp$HJsjFThuXm5#KIPPUD$DZb?SCY>Z9Pl=E^xiO zX!~eay?fdA^#khN4{WdTHApM!-5a()NV)U3kIg&;%@=Q7Pa6Jid%c^#z?l6QJ3!FQI{@d)1_>>hsQv=hsQuV*|X#^ zknZXD4qKk`&U(^xf2W3QcypTCuO_$%%u(%y3MTrQp~q;IRlXBE=?P4{Yvq*@}W7W-70>OW@di3H)7lUjp}7 zy7*5Q|LNj6gERwlruZD3AhTk^t7CWja!9kqmq~uSZAXYcm(p}hOxU)*a?pf?Uyh@3 zNcw?o^2w4$py=}x_&e_f;DNLagL2IcaX;A;<)7bNm1DoEr}R6x1(3q6VM z_ty_7NZhuLC4Wo4Ad$yIk>nOh?kq}Q*0wk?e{6%VgwnK+Ctmb^hrwluJc`N^`An%K z@tYx4zH-W)tSUrSk*sV}EwWtfYbZTHmnZT!<7*{dm&o%~eIn0S)rmYBD@bl3Kl~;6 z>cmUVSk|^Yk-sC~AohpE+aa;^B&F{hb(SY-*eh3@m7K(5(wB7M8M}R+q;2c3JF5d} z2DV90;&{@J1$A)-XxiOlWy3VY)wkKeJ727%H8727n?~*+)D+bDG-|iu_=<=S>mBs zJd{X!sie!qvP>+?q-?p^mx;FuNmq$|wb<84x>nM4QnpUY)=AlVv9FV|4U#@2_8yxf zPqw*F3MAJj>3wv5KE~=`bL-N@W}kXI*H1qxFsJrxlA&7vIT@0hDY=7fZu?-H+dh~) zZ1LrYpTRb_eV;o2qgF#kh$h#5^P?Ahxpu`z!-tH6hL2Xcw%X0|Thiy+d=#5t^VzJA zBB3*FJHfZbH_3jhbB)hWX9!bOPm=cx87;Z__N=jU+Z5Qm^^5G3FnGnG(B2@#gI(lH9hQC7-2~P+#3j z=^fSQvBp+{cNLuZqG~2UmusdH?;T!Dm zESK!??;kYSCtWtQZ4Tw$+BWDajwB^D*f&M48rEQ67U|Y`wrf%3CQ9>IJ*bvM>PfDO zjI@HTYufkq@3UTxgoYhd8%T3dZ56po@@ktI}@#T}IQ=3T+kB0&&RV1YfNR!jCz~QUESq`6-6-%iqmuvGG=aq=fQjuk% zFPE|vQdgDKRV+TMMPK7gAK3MT8t3l=`;h#@z!OiXg?_;&ZHCu4Ge2oDyiUB;O1(AC zJE9MhzSgPAy0T-v)Y2f4BH!}R7dbI9NT2)(9_vP@* z+;7!QpJJPbOo+9~b)UpQbZGZkDiOsSG@9lBEWu5;~ z57Kb|Sk?u5Pa)04B!lYrdoMpf;LhKhN1BsUZaUxN`@bXq0C%rUIY)TX#-zSJ=ovd{v%XMg-S$C2+ljT}|l6cOS zRuo7piX_)V_FH_jB%Wf4r$iztk*JEL)GRNLs993uQYl*|WoJq2ZgJ~fWf*!x6g%6iLmcjqsj95vmY`Nb3!lra``U-CuSsG06-+VAhO+{No= z^VPj=_l=rOxos2YyYC>&O!7wOkeZJgnOcq-;xk90+GqXnrT3x{Qe(2_ZIP@whLHQ- zueV>c+)&pj)@#_9gVy%1 zdCm5;UKflRN0zku;k-KQ)Q;mQDq7W%-Wx~p-$X%g*A0o~8-iK&q^}&mIeg4t^ z;`O&(7cZ49QYQX+{kdCb)^{3HPO%NpyWAJ-Km8JxIhRz3=6W@8|D;Ri%StJaoLBoy zcb)v`2bYZS@V2WGn<~vcz$-btGCA|o{ynNizt5WXP|?_G%AL}thBT8Y_vDlvW4ZUD zV{4?JE!VRBKacgh3OBdBtVZ)}(9XK@Yu{zhxhwYbug1uB5zCXUclQsxY@ho}(erkx zqgKqxsh90iZ?=W>ScSUej4yJNW&JH#*4!GzPlM)tvq5_7kZ3%~vX3Nl+kMG0UnTP% zRA;TfgpQ=L;yRs1U2Qi{GM7y!OS-NX`}AaTC-_HpE4S=(H*N-42T5I>W|^9V}wJ&q@?@7%G9 zJdE$1Po4+1DU+GGAem>~5?NU-mX-WsS=FzQRuqY!St5%`(lxuJmx?Tdp68Pav)U}0 z3hI+-y{n{8s*-u+7gH^r+EiGJB9qkwih-q^P05k8T4JuDva~lzJawX}lisTreS>(e zm)@(F-a8~c?@5uKmzEx+d8Wrn2S`q#yGZwc*NgVkg(Q;RSN#}h z<(bwnmF{Hn7-;30(a^F@PtRg18?|0;@Lc0ddA*^^7q#A&^vj%5u@}#KYuJ+wi)P*El ztI?F(LXCCJO>Ch`T*oK1P^GR;B$v9nCfTaoHJaoa@lZh?QdBE_f7(I@!(s zPbKM6r@Q-5?oiPW7yX5zA1(TT=&u$1^`gH?^mmCqDEdE%ex~S)-8oK*noqeYYPr~~ zrQ8&?-o50+6cu*&BmL{{LEY&|EjP#cHp$j%JK3~WyTtM%v5bIP(*@AEqU6 z{}d!}{}hS-KGDw-eSHFZ+b{YC(f=ZvghbYFN@PFPiR@=vBKxUHWIvuH*4s&}PflWe zY7*;xN&VW{>V%|Bk{yyxZ`WFN6w9=vvq_VlG=yZ2r1MB-Bwa|df6_(mT&{3zerB>E+Lyq-ZCnClb36m zNiv0gkC#V6P_t&I$Xd<)5YcbZ=t@rhr9+BJO}0C_RL5j)*Qv>DdAi6EB1a{&eQq-M z+c?qWiDrUmCMI)FPD<`az4rj+rl{G;JO<_@b5!$_c?>K}=B*PFX{WIN%3I1YeXv7 zH7b?s%1!0E#-{Q(AD4O&$qC|TqWHO4()p4ukaVG>>m>cTr0b=w{Zdzh)K%4r7FNWy3Yw*d!G||WS)GY?5!keY>ON!`r)F#P&A_@ z9T0h~Xs(xZoA&I#UHhv!st!Dlo!)`{43+e7O1DrmJN(k2g?gaFMB0mIceuT~OKtDi zhhk{giRa#%I`f|OTxa(4V&_3*bFlMY$=gk7-1E!R*xL$`YelXX`L@XIBvVw-{|L4E z0g-F{C6r#+h1(eF!nsd$d4$r-DQ&B87oHjXUAf=7iR>w|4@v5WuG|l|h`fztib_al zKTbNQZ%KcG(g!8IygPeXA@VtqFOqDn)^=wPn@?i-Hc4CkauWB6)q_3E@4?;{O8WI4 zE2$qg_sAx>izKz8XF9d|Pd&NROp(h)t{_QsBgqtXSueJ^vKQL~NV?Ruz50;mxn8Tu z^JdbdsJDCZ470r#A7ys*;u&UFFP>pOBH3C+rPMFIxZafB*_3-(Z}xvBNvd7aGetTX ztiQew>u>7wmdCG@dPKe9=}XwFo53^Hxz{is0-T|q6W$ekfU57w`Mp)H=r2%{1;;>t zqk2&It!lC0ood-NS!B=kWCQbn0bn682rLDLfR(^7Fao59>cnpvFbkLmECiMUL%=XF z3bb6tj~|!~3;=_`5U>&$21bBUAU*IVaaq7LpdXkG%mW61g}@-N6c_?l0>i)vFbdp5 z$lH+~>NNEO(|~?p7BCx_2MhoUfk9v?Fa)dwhJg`a6i5$@n)-o$U=}bNmD3BhZH1Pn_fPP>WFdI08vF&X`^1uVY zLSPU$gYdDo_YNrq4*@HIVPFIp1=3}@i3gYl^aHbi*}yzt09XhN0!x7*;1WiPKMWoL zMuGIQtEnHD2J{27fZ4!2U;sFt@Ugb@h82Pbfu+C@uo4&sMu1Tuy>4sb0Hy)`z${=k zFb^0276OC7QeX&J35)>g#a>e%Fb$Xm%mW61g}@-N6j%w20O`?O;}@6)^aHbi*}yzt z063nI$8jNe5LgNf0V{!FU<4Qi(u2Py4qzJ459~?U`lR}vS>V~g05Av)0V6=w()djS zW&!hn0bn682n+$kzzu}l&IouEs8SI(Fb(JjW&yK-dB6a0JfZX-co0|$3;`>FVPFIp z1*%qv1DFQ%1G9kHz&v08SO_cyRsthHdf-~NPZ}@_mQE zfn9;wz#+f@a6GUO7zBoZdw}jP@C)n;%mxkt27u#%LEsEv2)G0o25taGfqQ^fSM(#$ z59|sY0vr#V0bByy0E__l0988t0{y_Qz--_UU;sEC7zEA$hJayU6lirb^#p+-U>Fz$ zTHVpVz${=kFb^0227w`97#IawC&3>u8yElvfgxZR7zJ8AP#%~C%m(HG1Hd3K1gr#x zfe~O7nBCL(4*)~JXpHwV`C(ubX!S;1z-(Y4uoPGci~#8ocbT8kfLXviU?H#+80cf{ zgTN3l42%M;zK92y15EulO0z<$`U>FzyMuAo)`~$Or0bmdq z0)~N6pmi$B1G9kvU=SDrhJjI_HPDn#17-p9fQ7(HU<9a6Lph)ym<7xR<^co1LSPVB z3Jd`&fni_-7zL_9s23Oks?(tdW&!hng}_o^B~YD-a=P5i(#pdXk8%m(HG1HeLHDKG@A1creTU=*lE zqF!Jc&=1T527raYATR_B1EWA|6#5OA4GaK-zz{GDi~_CEC=bjA<^co1LSPVB3Jd`& zfni_-s4g=8(|}pPFwj57F zVPFIp1=8#OX8!=D0sX)%U^Xxh7yuRmgTPW?2v`XW10%pFP+f-lfoVWLFdG;E27#r( z5U>&$21bBUpt>CO0MmeeU=}bNm&$21bBUpt=(A0@HwgU=}bNm-04ECdFDrN9ud5*PuhiSQ510u};GftA1rP+gC5z${=Mun-somI6b-Ffa9{3t1o%5=^037Zt^hSg-+$A{OMechSX;zE`W`AwTUb2rI zB!|dha)hidWPY-j>>~%sA##|!8LW>lLVr7bbrFvrEa#8xrJhaSN8e9>2{}Z4E&VY4 z&GaMmx6@Y_bAMoIZ~E=%d+BG>_mhLvm(UN43E{q6LvAomB>{kR={Fa2!# zKKg$8LHZ$bm>ePF$7fPrTe6qzBL~SLa+n+;t4o-l>?QliA##`;A*)N7kL)G;$U$<5 z941G|>N4ghw*%|*;iaEV-$&n1KS+NG{Sf^yc{BA0{q6MCQnNn`Ea#nmJNjPw+4Oz% z{q%$Mm(UN43E{q6MC<=j75_D{bZeJ}lN`ab%8`a$|3a+n+;t1H-^WG~rA z4w6IUFnKdr*C#@MJAJi`^#x0P>9?crrJqgTN8e9BNPh|a5dF3E!}K@PkI>&vUtP)l zgJu8p+tK&Z&!+FA@24N6zl45>{#yEB`kU!T=x?X5uHyc|vVZ#R=zHmB)A!L2l9x~q z(O*kHOn)=|2>tE!)z#cDSoTZ59epo-A2~=~!t@aRwe-XEH`9;M-%ej$!~KC}fArhY z_tMX%@1yUhAEdv8eu(~B`eFK;=||{qr?0N%{=u?;`t9g@>1WgT(f892(qBS9M1L*) zF#XN+BlNe^SJ#>Sw$QX&BCjQf$(zX$@^-Si-sHE)ZOQG(UUD|sM-Gxh z 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

- /// Provides a set of static (Shared in Visual Basic) methods for - /// querying objects that implement . - /// - - static partial class Enumerable - { - /// - /// Returns the input typed as . - /// - - public static IEnumerable AsEnumerable(this IEnumerable source) - { - return source; - } - - /// - /// Returns an empty that has the - /// specified type argument. - /// - - public static IEnumerable Empty() - { - return Sequence.Empty; - } - - /// - /// Converts the elements of an to the - /// specified type. - /// - - public static IEnumerable Cast( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - return CastYield(source); - } - - private static IEnumerable CastYield( - IEnumerable source) - { - foreach (var item in source) - yield return (TResult) item; - } - - /// - /// Filters the elements of an based on a specified type. - /// - - public static IEnumerable OfType( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - return OfTypeYield(source); - } - - private static IEnumerable OfTypeYield( - IEnumerable source) - { - foreach (var item in source) - if (item is TResult) - yield return (TResult) item; - } - - /// - /// Generates a sequence of integral numbers within a specified range. - /// - /// The value of the first integer in the sequence. - /// The number of sequential integers to generate. - - public static IEnumerable Range(int start, int count) - { - if (count < 0) - throw new ArgumentOutOfRangeException("count", count, null); - - var end = (long) start + count; - if (end - 1 >= int.MaxValue) - throw new ArgumentOutOfRangeException("count", count, null); - - return RangeYield(start, end); - } - - private static IEnumerable RangeYield(int start, long end) - { - for (var i = start; i < end; i++) - yield return i; - } - - /// - /// Generates a sequence that contains one repeated value. - /// - - public static IEnumerable Repeat(TResult element, int count) - { - if (count < 0) throw new ArgumentOutOfRangeException("count", count, null); - - return RepeatYield(element, count); - } - - private static IEnumerable RepeatYield(TResult element, int count) - { - for (var i = 0; i < count; i++) - yield return element; - } - - /// - /// Filters a sequence of values based on a predicate. - /// - - public static IEnumerable Where( - this IEnumerable source, - Func predicate) - { - if (predicate == null) throw new ArgumentNullException("predicate"); - - return source.Where((item, i) => predicate(item)); - } - - /// - /// Filters a sequence of values based on a predicate. - /// Each element's index is used in the logic of the predicate function. - /// - - public static IEnumerable Where( - this IEnumerable source, - Func predicate) - { - if (source == null) throw new ArgumentNullException("source"); - if (predicate == null) throw new ArgumentNullException("predicate"); - - return WhereYield(source, predicate); - } - - private static IEnumerable WhereYield( - IEnumerable source, - Func predicate) - { - var i = 0; - foreach (var item in source) - if (predicate(item, i++)) - yield return item; - } - - /// - /// Projects each element of a sequence into a new form. - /// - - public static IEnumerable Select( - this IEnumerable source, - Func selector) - { - if (selector == null) throw new ArgumentNullException("selector"); - - return source.Select((item, i) => selector(item)); - } - - /// - /// Projects each element of a sequence into a new form by - /// incorporating the element's index. - /// - - public static IEnumerable Select( - this IEnumerable source, - Func selector) - { - if (source == null) throw new ArgumentNullException("source"); - if (selector == null) throw new ArgumentNullException("selector"); - - return SelectYield(source, selector); - } - - private static IEnumerable SelectYield( - IEnumerable source, - Func selector) - { - var i = 0; - foreach (var item in source) - yield return selector(item, i++); - } - - /// - /// Projects each element of a sequence to an - /// and flattens the resulting sequences into one sequence. - /// - - public static IEnumerable SelectMany( - this IEnumerable source, - Func> selector) - { - if (selector == null) throw new ArgumentNullException("selector"); - - return source.SelectMany((item, i) => selector(item)); - } - - /// - /// Projects each element of a sequence to an , - /// and flattens the resulting sequences into one sequence. The - /// index of each source element is used in the projected form of - /// that element. - /// - - public static IEnumerable SelectMany( - this IEnumerable source, - Func> selector) - { - if (selector == null) throw new ArgumentNullException("selector"); - - return source.SelectMany(selector, (item, subitem) => subitem); - } - - /// - /// Projects each element of a sequence to an , - /// flattens the resulting sequences into one sequence, and invokes - /// a result selector function on each element therein. - /// - - public static IEnumerable SelectMany( - this IEnumerable source, - Func> collectionSelector, - Func resultSelector) - { - if (collectionSelector == null) throw new ArgumentNullException("collectionSelector"); - - return source.SelectMany((item, i) => collectionSelector(item), resultSelector); - } - - /// - /// Projects each element of a sequence to an , - /// flattens the resulting sequences into one sequence, and invokes - /// a result selector function on each element therein. The index of - /// each source element is used in the intermediate projected form - /// of that element. - /// - - public static IEnumerable SelectMany( - this IEnumerable source, - Func> collectionSelector, - Func resultSelector) - { - if (source == null) throw new ArgumentNullException("source"); - if (collectionSelector == null) throw new ArgumentNullException("collectionSelector"); - if (resultSelector == null) throw new ArgumentNullException("resultSelector"); - - return SelectManyYield(source, collectionSelector, resultSelector); - } - - private static IEnumerable SelectManyYield( - this IEnumerable source, - Func> collectionSelector, - Func resultSelector) - { - var i = 0; - foreach (var item in source) - foreach (var subitem in collectionSelector(item, i++)) - yield return resultSelector(item, subitem); - } - - /// - /// Returns elements from a sequence as long as a specified condition is true. - /// - - public static IEnumerable TakeWhile( - this IEnumerable source, - Func predicate) - { - if (predicate == null) throw new ArgumentNullException("predicate"); - - return source.TakeWhile((item, i) => predicate(item)); - } - - /// - /// Returns elements from a sequence as long as a specified condition is true. - /// The element's index is used in the logic of the predicate function. - /// - - public static IEnumerable TakeWhile( - this IEnumerable source, - Func predicate) - { - if (source == null) throw new ArgumentNullException("source"); - if (predicate == null) throw new ArgumentNullException("predicate"); - - return TakeWhileYield(source, predicate); - } - - private static IEnumerable TakeWhileYield( - this IEnumerable source, - Func predicate) - { - var i = 0; - foreach (var item in source) - if (predicate(item, i++)) - yield return item; - else - break; - } - - /// - /// Returns a specified number of contiguous elements from the start - /// of a sequence. - /// - - public static IEnumerable Take( - this IEnumerable source, - int count) - { - return source.TakeWhile((item, i) => i < count); - } - - private static class Futures - { - public static readonly Func Default = () => default(T); - public static readonly Func Undefined = () => { throw new InvalidOperationException(); }; - } - - /// - /// Base implementation of First operator. - /// - - private static TSource FirstImpl( - this IEnumerable source, - Func empty) - { - if (source == null) throw new ArgumentNullException("source"); - Debug.Assert(empty != null); - - var list = source as IList; // optimized case for lists - if (list != null) - return list.Count > 0 ? list[0] : empty(); - - using (var e = source.GetEnumerator()) // fallback for enumeration - return e.MoveNext() ? e.Current : empty(); - } - - /// - /// Returns the first element of a sequence. - /// - - public static TSource First( - this IEnumerable source) - { - return source.FirstImpl(Futures.Undefined); - } - - /// - /// Returns the first element in a sequence that satisfies a specified condition. - /// - - public static TSource First( - this IEnumerable source, - Func predicate) - { - return First(source.Where(predicate)); - } - - /// - /// Returns the first element of a sequence, or a default value if - /// the sequence contains no elements. - /// - - public static TSource FirstOrDefault( - this IEnumerable source) - { - return source.FirstImpl(Futures.Default); - } - - /// - /// Returns the first element of the sequence that satisfies a - /// condition or a default value if no such element is found. - /// - - public static TSource FirstOrDefault( - this IEnumerable source, - Func predicate) - { - return FirstOrDefault(source.Where(predicate)); - } - - /// - /// Base implementation of Last operator. - /// - - private static TSource LastImpl( - this IEnumerable source, - Func empty) - { - if (source == null) throw new ArgumentNullException("source"); - - var list = source as IList; // optimized case for lists - if (list != null) - return list.Count > 0 ? list[list.Count - 1] : empty(); - - using (var e = source.GetEnumerator()) - { - if (!e.MoveNext()) - return empty(); - - var last = e.Current; - while (e.MoveNext()) - last = e.Current; - - return last; - } - } - - /// - /// Returns the last element of a sequence. - /// - public static TSource Last( - this IEnumerable source) - { - return source.LastImpl(Futures.Undefined); - } - - /// - /// Returns the last element of a sequence that satisfies a - /// specified condition. - /// - - public static TSource Last( - this IEnumerable source, - Func predicate) - { - return Last(source.Where(predicate)); - } - - /// - /// Returns the last element of a sequence, or a default value if - /// the sequence contains no elements. - /// - - public static TSource LastOrDefault( - this IEnumerable source) - { - return source.LastImpl(Futures.Default); - } - - /// - /// Returns the last element of a sequence that satisfies a - /// condition or a default value if no such element is found. - /// - - public static TSource LastOrDefault( - this IEnumerable source, - Func predicate) - { - return LastOrDefault(source.Where(predicate)); - } - - /// - /// Base implementation of Single operator. - /// - - private static TSource SingleImpl( - this IEnumerable source, - Func empty) - { - if (source == null) throw new ArgumentNullException("source"); - - using (var e = source.GetEnumerator()) - { - if (e.MoveNext()) - { - var single = e.Current; - if (!e.MoveNext()) - return single; - - throw new InvalidOperationException(); - } - - return empty(); - } - } - - /// - /// Returns the only element of a sequence, and throws an exception - /// if there is not exactly one element in the sequence. - /// - - public static TSource Single( - this IEnumerable source) - { - return source.SingleImpl(Futures.Undefined); - } - - /// - /// Returns the only element of a sequence that satisfies a - /// specified condition, and throws an exception if more than one - /// such element exists. - /// - - public static TSource Single( - this IEnumerable source, - Func predicate) - { - return Single(source.Where(predicate)); - } - - /// - /// Returns the only element of a sequence, or a default value if - /// the sequence is empty; this method throws an exception if there - /// is more than one element in the sequence. - /// - - public static TSource SingleOrDefault( - this IEnumerable source) - { - return source.SingleImpl(Futures.Default); - } - - /// - /// Returns the only element of a sequence that satisfies a - /// specified condition or a default value if no such element - /// exists; this method throws an exception if more than one element - /// satisfies the condition. - /// - - public static TSource SingleOrDefault( - this IEnumerable source, - Func predicate) - { - return SingleOrDefault(source.Where(predicate)); - } - - /// - /// Returns the element at a specified index in a sequence. - /// - - public static TSource ElementAt( - this IEnumerable source, - int index) - { - if (source == null) throw new ArgumentNullException("source"); - - if (index < 0) - throw new ArgumentOutOfRangeException("index", index, null); - - var list = source as IList; - if (list != null) - return list[index]; - - try - { - return source.SkipWhile((item, i) => i < index).First(); - } - catch (InvalidOperationException) // if thrown by First - { - throw new ArgumentOutOfRangeException("index", index, null); - } - } - - /// - /// Returns the element at a specified index in a sequence or a - /// default value if the index is out of range. - /// - - public static TSource ElementAtOrDefault( - this IEnumerable source, - int index) - { - if (source == null) throw new ArgumentNullException("source"); - - if (index < 0) - return default(TSource); - - var list = source as IList; - if (list != null) - return index < list.Count ? list[index] : default(TSource); - - return source.SkipWhile((item, i) => i < index).FirstOrDefault(); - } - - /// - /// Inverts the order of the elements in a sequence. - /// - - public static IEnumerable Reverse( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - return ReverseYield(source); - } - - private static IEnumerable ReverseYield(IEnumerable source) - { - var stack = new Stack(); - foreach (var item in source) - stack.Push(item); - - foreach (var item in stack) - yield return item; - } - - /// - /// Bypasses elements in a sequence as long as a specified condition - /// is true and then returns the remaining elements. - /// - - public static IEnumerable SkipWhile( - this IEnumerable source, - Func predicate) - { - if (predicate == null) throw new ArgumentNullException("predicate"); - - return source.SkipWhile((item, i) => predicate(item)); - } - - /// - /// Bypasses elements in a sequence as long as a specified condition - /// is true and then returns the remaining elements. The element's - /// index is used in the logic of the predicate function. - /// - - public static IEnumerable SkipWhile( - this IEnumerable source, - Func predicate) - { - if (source == null) throw new ArgumentNullException("source"); - if (predicate == null) throw new ArgumentNullException("predicate"); - - return SkipWhileYield(source, predicate); - } - - private static IEnumerable SkipWhileYield( - IEnumerable source, - Func predicate) - { - using (var e = source.GetEnumerator()) - { - for (var i = 0; ; i++) - { - if (!e.MoveNext()) - yield break; - - if (!predicate(e.Current, i)) - break; - } - - do { yield return e.Current; } while (e.MoveNext()); - } - } - - /// - /// Bypasses a specified number of elements in a sequence and then - /// returns the remaining elements. - /// - - public static IEnumerable Skip( - this IEnumerable source, - int count) - { - return source.SkipWhile((item, i) => i < count); - } - - /// - /// Returns the number of elements in a sequence. - /// - - public static int Count( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - var collection = source as ICollection; - return collection != null - ? collection.Count - : source.Aggregate(0, (count, item) => checked(count + 1)); - } - - /// - /// Returns a number that represents how many elements in the - /// specified sequence satisfy a condition. - /// - - public static int Count( - this IEnumerable source, - Func predicate) - { - return Count(source.Where(predicate)); - } - - /// - /// Returns an that represents the total number - /// of elements in a sequence. - /// - - public static long LongCount( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - var array = source as Array; - return array != null - ? array.LongLength - : source.Aggregate(0L, (count, item) => count + 1); - } - - /// - /// Returns an that represents how many elements - /// in a sequence satisfy a condition. - /// - - public static long LongCount( - this IEnumerable source, - Func predicate) - { - return LongCount(source.Where(predicate)); - } - - /// - /// Concatenates two sequences. - /// - - public static IEnumerable Concat( - this IEnumerable first, - IEnumerable second) - { - if (first == null) throw new ArgumentNullException("first"); - if (second == null) throw new ArgumentNullException("second"); - - return ConcatYield(first, second); - } - - private static IEnumerable ConcatYield( - IEnumerable first, - IEnumerable second) - { - foreach (var item in first) - yield return item; - - foreach (var item in second) - yield return item; - } - - /// - /// Creates a from an . - /// - - public static List ToList( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - return new List(source); - } - - /// - /// Creates an array from an . - /// - - public static TSource[] ToArray( - this IEnumerable source) - { - return source.ToList().ToArray(); - } - - /// - /// Returns distinct elements from a sequence by using the default - /// equality comparer to compare values. - /// - - public static IEnumerable Distinct( - this IEnumerable source) - { - return Distinct(source, /* comparer */ null); - } - - /// - /// Returns distinct elements from a sequence by using a specified - /// to compare values. - /// - - public static IEnumerable Distinct( - this IEnumerable source, - IEqualityComparer comparer) - { - if (source == null) throw new ArgumentNullException("source"); - - return DistinctYield(source, comparer); - } - - private static IEnumerable DistinctYield( - IEnumerable source, - IEqualityComparer comparer) - { - var set = new Dictionary(comparer); - var gotNull = false; - - foreach (var item in source) - { - if (item == null) - { - if (gotNull) - continue; - gotNull = true; - } - else - { - if (set.ContainsKey(item)) - continue; - set.Add(item, null); - } - - yield return item; - } - } - - /// - /// Creates a from an - /// according to a specified key - /// selector function. - /// - - public static ILookup ToLookup( - this IEnumerable source, - Func keySelector) - { - return ToLookup(source, keySelector, e => e, /* comparer */ null); - } - - /// - /// Creates a from an - /// according to a specified key - /// selector function and a key comparer. - /// - - public static ILookup ToLookup( - this IEnumerable source, - Func keySelector, - IEqualityComparer comparer) - { - return ToLookup(source, keySelector, e => e, comparer); - } - - /// - /// Creates a from an - /// according to specified key - /// and element selector functions. - /// - - public static ILookup ToLookup( - this IEnumerable source, - Func keySelector, - Func elementSelector) - { - return ToLookup(source, keySelector, elementSelector, /* comparer */ null); - } - - /// - /// Creates a from an - /// according to a specified key - /// selector function, a comparer and an element selector function. - /// - - public static ILookup ToLookup( - this IEnumerable source, - Func keySelector, - Func elementSelector, - IEqualityComparer comparer) - { - if (source == null) throw new ArgumentNullException("source"); - if (keySelector == null) throw new ArgumentNullException("keySelector"); - if (elementSelector == null) throw new ArgumentNullException("elementSelector"); - - var lookup = new Lookup(comparer); - - foreach (var item in source) - { - var key = keySelector(item); - - var grouping = (Grouping) lookup.Find(key); - if (grouping == null) - { - grouping = new Grouping(key); - lookup.Add(grouping); - } - - grouping.Add(elementSelector(item)); - } - - return lookup; - } - - /// - /// Groups the elements of a sequence according to a specified key - /// selector function. - /// - - public static IEnumerable> GroupBy( - this IEnumerable source, - Func keySelector) - { - return GroupBy(source, keySelector, /* comparer */ null); - } - - /// - /// Groups the elements of a sequence according to a specified key - /// selector function and compares the keys by using a specified - /// comparer. - /// - - public static IEnumerable> GroupBy( - this IEnumerable source, - Func keySelector, - IEqualityComparer comparer) - { - return GroupBy(source, keySelector, e => e, comparer); - } - - /// - /// Groups the elements of a sequence according to a specified key - /// selector function and projects the elements for each group by - /// using a specified function. - /// - - public static IEnumerable> GroupBy( - this IEnumerable source, - Func keySelector, - Func elementSelector) - { - return GroupBy(source, keySelector, elementSelector, /* comparer */ null); - } - - /// - /// Groups the elements of a sequence according to a specified key - /// selector function and creates a result value from each group and - /// its key. - /// - - public static IEnumerable> GroupBy( - this IEnumerable source, - Func keySelector, - Func elementSelector, - IEqualityComparer comparer) - { - if (source == null) throw new ArgumentNullException("source"); - if (keySelector == null) throw new ArgumentNullException("keySelector"); - if (elementSelector == null) throw new ArgumentNullException("elementSelector"); - - return ToLookup(source, keySelector, elementSelector, comparer); - } - - /// - /// Groups the elements of a sequence according to a key selector - /// function. The keys are compared by using a comparer and each - /// group's elements are projected by using a specified function. - /// - - public static IEnumerable GroupBy( - this IEnumerable source, - Func keySelector, - Func, TResult> resultSelector) - { - return GroupBy(source, keySelector, resultSelector, /* comparer */ null); - } - - /// - /// Groups the elements of a sequence according to a specified key - /// selector function and creates a result value from each group and - /// its key. The elements of each group are projected by using a - /// specified function. - /// - - public static IEnumerable GroupBy( - this IEnumerable source, - Func keySelector, - Func, TResult> resultSelector, - IEqualityComparer comparer) - { - if (source == null) throw new ArgumentNullException("source"); - if (keySelector == null) throw new ArgumentNullException("keySelector"); - if (resultSelector == null) throw new ArgumentNullException("resultSelector"); - - return ToLookup(source, keySelector, comparer).Select(g => resultSelector(g.Key, g)); - } - - /// - /// Groups the elements of a sequence according to a specified key - /// selector function and creates a result value from each group and - /// its key. The keys are compared by using a specified comparer. - /// - - public static IEnumerable GroupBy( - this IEnumerable source, - Func keySelector, - Func elementSelector, - Func, TResult> resultSelector) - { - return GroupBy(source, keySelector, elementSelector, resultSelector, /* comparer */ null); - } - - /// - /// Groups the elements of a sequence according to a specified key - /// selector function and creates a result value from each group and - /// its key. Key values are compared by using a specified comparer, - /// and the elements of each group are projected by using a - /// specified function. - /// - - public static IEnumerable GroupBy( - this IEnumerable source, - Func keySelector, - Func elementSelector, - Func, TResult> resultSelector, - IEqualityComparer comparer) - { - if (source == null) throw new ArgumentNullException("source"); - if (keySelector == null) throw new ArgumentNullException("keySelector"); - if (elementSelector == null) throw new ArgumentNullException("elementSelector"); - if (resultSelector == null) throw new ArgumentNullException("resultSelector"); - - return ToLookup(source, keySelector, elementSelector, comparer) - .Select(g => resultSelector(g.Key, g)); - } - - /// - /// Applies an accumulator function over a sequence. - /// - - public static TSource Aggregate( - this IEnumerable source, - Func func) - { - if (source == null) throw new ArgumentNullException("source"); - if (func == null) throw new ArgumentNullException("func"); - - using (var e = source.GetEnumerator()) - { - if (!e.MoveNext()) - throw new InvalidOperationException(); - - return e.Renumerable().Skip(1).Aggregate(e.Current, func); - } - } - - /// - /// Applies an accumulator function over a sequence. The specified - /// seed value is used as the initial accumulator value. - /// - - public static TAccumulate Aggregate( - this IEnumerable source, - TAccumulate seed, - Func func) - { - return Aggregate(source, seed, func, r => r); - } - - /// - /// Applies an accumulator function over a sequence. The specified - /// seed value is used as the initial accumulator value, and the - /// specified function is used to select the result value. - /// - - public static TResult Aggregate( - this IEnumerable source, - TAccumulate seed, - Func func, - Func resultSelector) - { - if (source == null) throw new ArgumentNullException("source"); - if (func == null) throw new ArgumentNullException("func"); - if (resultSelector == null) throw new ArgumentNullException("resultSelector"); - - var result = seed; - - foreach (var item in source) - result = func(result, item); - - return resultSelector(result); - } - - /// - /// Produces the set union of two sequences by using the default - /// equality comparer. - /// - - public static IEnumerable Union( - this IEnumerable first, - IEnumerable second) - { - return Union(first, second, /* comparer */ null); - } - - /// - /// Produces the set union of two sequences by using a specified - /// . - /// - - public static IEnumerable Union( - this IEnumerable first, - IEnumerable second, - IEqualityComparer comparer) - { - return first.Concat(second).Distinct(comparer); - } - - /// - /// Returns the elements of the specified sequence or the type - /// parameter's default value in a singleton collection if the - /// sequence is empty. - /// - - public static IEnumerable DefaultIfEmpty( - this IEnumerable source) - { - return source.DefaultIfEmpty(default(TSource)); - } - - /// - /// Returns the elements of the specified sequence or the specified - /// value in a singleton collection if the sequence is empty. - /// - - public static IEnumerable DefaultIfEmpty( - this IEnumerable source, - TSource defaultValue) - { - if (source == null) throw new ArgumentNullException("source"); - - return DefaultIfEmptyYield(source, defaultValue); - } - - private static IEnumerable DefaultIfEmptyYield( - IEnumerable source, - TSource defaultValue) - { - using (var e = source.GetEnumerator()) - { - if (!e.MoveNext()) - yield return defaultValue; - else - do { yield return e.Current; } while (e.MoveNext()); - } - } - - /// - /// Determines whether all elements of a sequence satisfy a condition. - /// - - public static bool All( - this IEnumerable source, - Func predicate) - { - if (source == null) throw new ArgumentNullException("source"); - if (predicate == null) throw new ArgumentNullException("predicate"); - - foreach (var item in source) - if (!predicate(item)) - return false; - - return true; - } - - /// - /// Determines whether a sequence contains any elements. - /// - - public static bool Any( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - using (var e = source.GetEnumerator()) - return e.MoveNext(); - } - - /// - /// Determines whether any element of a sequence satisfies a - /// condition. - /// - - public static bool Any( - this IEnumerable source, - Func predicate) - { - return source.Where(predicate).Any(); - } - - /// - /// Determines whether a sequence contains a specified element by - /// using the default equality comparer. - /// - - public static bool Contains( - this IEnumerable source, - TSource value) - { - return source.Contains(value, /* comparer */ null); - } - - /// - /// Determines whether a sequence contains a specified element by - /// using a specified . - /// - - public static bool Contains( - this IEnumerable source, - TSource value, - IEqualityComparer comparer) - { - if (source == null) throw new ArgumentNullException("source"); - - if (comparer == null) - { - var collection = source as ICollection; - if (collection != null) - return collection.Contains(value); - } - - comparer = comparer ?? EqualityComparer.Default; - return source.Any(item => comparer.Equals(item, value)); - } - - /// - /// Determines whether two sequences are equal by comparing the - /// elements by using the default equality comparer for their type. - /// - - public static bool SequenceEqual( - this IEnumerable first, - IEnumerable second) - { - return first.SequenceEqual(second, /* comparer */ null); - } - - /// - /// Determines whether two sequences are equal by comparing their - /// elements by using a specified . - /// - - public static bool SequenceEqual( - this IEnumerable first, - IEnumerable second, - IEqualityComparer comparer) - { - if (first == null) throw new ArgumentNullException("frist"); - if (second == null) throw new ArgumentNullException("second"); - - comparer = comparer ?? EqualityComparer.Default; - - using (IEnumerator lhs = first.GetEnumerator(), - rhs = second.GetEnumerator()) - { - do - { - if (!lhs.MoveNext()) - return !rhs.MoveNext(); - - if (!rhs.MoveNext()) - return false; - } - while (comparer.Equals(lhs.Current, rhs.Current)); - } - - return false; - } - - /// - /// Base implementation for Min/Max operator. - /// - - private static TSource MinMaxImpl( - this IEnumerable source, - Func lesser) - { - if (source == null) throw new ArgumentNullException("source"); - Debug.Assert(lesser != null); - - if (typeof(TSource).IsClass) // ReSharper disable CompareNonConstrainedGenericWithNull - source = source.Where(e => e != null).DefaultIfEmpty(); // ReSharper restore CompareNonConstrainedGenericWithNull - - return source.Aggregate((a, item) => lesser(a, item) ? a : item); - } - - /// - /// Base implementation for Min/Max operator for nullable types. - /// - - private static TSource? MinMaxImpl( - this IEnumerable source, - TSource? seed, Func lesser) where TSource : struct - { - if (source == null) throw new ArgumentNullException("source"); - Debug.Assert(lesser != null); - - return source.Aggregate(seed, (a, item) => lesser(a, item) ? a : item); - // == MinMaxImpl(Repeat(null, 1).Concat(source), lesser); - } - - /// - /// Returns the minimum value in a generic sequence. - /// - - public static TSource Min( - this IEnumerable source) - { - var comparer = Comparer.Default; - return source.MinMaxImpl((x, y) => comparer.Compare(x, y) < 0); - } - - /// - /// Invokes a transform function on each element of a generic - /// sequence and returns the minimum resulting value. - /// - - public static TResult Min( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Min(); - } - - /// - /// Returns the maximum value in a generic sequence. - /// - - public static TSource Max( - this IEnumerable source) - { - var comparer = Comparer.Default; - return source.MinMaxImpl((x, y) => comparer.Compare(x, y) > 0); - } - - /// - /// Invokes a transform function on each element of a generic - /// sequence and returns the maximum resulting value. - /// - - public static TResult Max( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Max(); - } - - /// - /// Makes an enumerator seen as enumerable once more. - /// - /// - /// The supplied enumerator must have been started. The first element - /// returned is the element the enumerator was on when passed in. - /// DO NOT use this method if the caller must be a generator. It is - /// mostly safe among aggregate operations. - /// - - private static IEnumerable Renumerable(this IEnumerator e) - { - Debug.Assert(e != null); - - do { yield return e.Current; } while (e.MoveNext()); - } - - /// - /// Sorts the elements of a sequence in ascending order according to a key. - /// - - public static IOrderedEnumerable OrderBy( - this IEnumerable source, - Func keySelector) - { - return source.OrderBy(keySelector, /* comparer */ null); - } - - /// - /// Sorts the elements of a sequence in ascending order by using a - /// specified comparer. - /// - - public static IOrderedEnumerable OrderBy( - this IEnumerable source, - Func keySelector, - IComparer comparer) - { - if (source == null) throw new ArgumentNullException("source"); - if (keySelector == null) throw new ArgumentNullException("keySelector"); - - return new OrderedEnumerable(source, keySelector, comparer, /* descending */ false); - } - - /// - /// Sorts the elements of a sequence in descending order according to a key. - /// - - public static IOrderedEnumerable OrderByDescending( - this IEnumerable source, - Func keySelector) - { - return source.OrderByDescending(keySelector, /* comparer */ null); - } - - /// - /// Sorts the elements of a sequence in descending order by using a - /// specified comparer. - /// - - public static IOrderedEnumerable OrderByDescending( - this IEnumerable source, - Func keySelector, - IComparer comparer) - { - if (source == null) throw new ArgumentNullException("source"); - if (source == null) throw new ArgumentNullException("keySelector"); - - return new OrderedEnumerable(source, keySelector, comparer, /* descending */ true); - } - - /// - /// Performs a subsequent ordering of the elements in a sequence in - /// ascending order according to a key. - /// - - public static IOrderedEnumerable ThenBy( - this IOrderedEnumerable source, - Func keySelector) - { - return source.ThenBy(keySelector, /* comparer */ null); - } - - /// - /// Performs a subsequent ordering of the elements in a sequence in - /// ascending order by using a specified comparer. - /// - - public static IOrderedEnumerable ThenBy( - this IOrderedEnumerable source, - Func keySelector, - IComparer comparer) - { - if (source == null) throw new ArgumentNullException("source"); - - return source.CreateOrderedEnumerable(keySelector, comparer, /* descending */ false); - } - - /// - /// Performs a subsequent ordering of the elements in a sequence in - /// descending order, according to a key. - /// - - public static IOrderedEnumerable ThenByDescending( - this IOrderedEnumerable source, - Func keySelector) - { - return source.ThenByDescending(keySelector, /* comparer */ null); - } - - /// - /// Performs a subsequent ordering of the elements in a sequence in - /// descending order by using a specified comparer. - /// - - public static IOrderedEnumerable ThenByDescending( - this IOrderedEnumerable source, - Func keySelector, - IComparer comparer) - { - if (source == null) throw new ArgumentNullException("source"); - - return source.CreateOrderedEnumerable(keySelector, comparer, /* descending */ true); - } - - /// - /// Base implementation for Intersect and Except operators. - /// - - private static IEnumerable IntersectExceptImpl( - this IEnumerable first, - IEnumerable second, - IEqualityComparer comparer, - bool flag) - { - if (first == null) throw new ArgumentNullException("first"); - if (second == null) throw new ArgumentNullException("second"); - - var keys = new List>(); - var flags = new Dictionary, bool>(new KeyComparer(comparer)); - - foreach (var item in from item in first - select new Key(item) into item - where !flags.ContainsKey(item) - select item) - { - flags.Add(item, !flag); - keys.Add(item); - } - - foreach (var item in from item in second - select new Key(item) into item - where flags.ContainsKey(item) - select item) - { - flags[item] = flag; - } - - // - // As per docs, "the marked elements are yielded in the order in - // which they were collected. - // - - return from item in keys where flags[item] select item.Value; - } - - /// - /// Produces the set intersection of two sequences by using the - /// default equality comparer to compare values. - /// - - public static IEnumerable Intersect( - this IEnumerable first, - IEnumerable second) - { - return first.Intersect(second, /* comparer */ null); - } - - /// - /// Produces the set intersection of two sequences by using the - /// specified to compare values. - /// - - public static IEnumerable Intersect( - this IEnumerable first, - IEnumerable second, - IEqualityComparer comparer) - { - return IntersectExceptImpl(first, second, comparer, /* flag */ true); - } - - /// - /// Produces the set difference of two sequences by using the - /// default equality comparer to compare values. - /// - - public static IEnumerable Except( - this IEnumerable first, - IEnumerable second) - { - return first.Except(second, /* comparer */ null); - } - - /// - /// Produces the set difference of two sequences by using the - /// specified to compare values. - /// - - public static IEnumerable Except( - this IEnumerable first, - IEnumerable second, - IEqualityComparer comparer) - { - return IntersectExceptImpl(first, second, comparer, /* flag */ false); - } - - /// - /// Creates a from an - /// according to a specified key - /// selector function. - /// - - public static Dictionary ToDictionary( - this IEnumerable source, - Func keySelector) - { - return source.ToDictionary(keySelector, /* comparer */ null); - } - - /// - /// Creates a from an - /// according to a specified key - /// selector function and key comparer. - /// - - public static Dictionary ToDictionary( - this IEnumerable source, - Func keySelector, - IEqualityComparer comparer) - { - return source.ToDictionary(keySelector, e => e, comparer); - } - - /// - /// Creates a from an - /// according to specified key - /// selector and element selector functions. - /// - - public static Dictionary ToDictionary( - this IEnumerable source, - Func keySelector, - Func elementSelector) - { - return source.ToDictionary(keySelector, elementSelector, /* comparer */ null); - } - - /// - /// Creates a from an - /// according to a specified key - /// selector function, a comparer, and an element selector function. - /// - - public static Dictionary ToDictionary( - this IEnumerable source, - Func keySelector, - Func elementSelector, - IEqualityComparer comparer) - { - if (source == null) throw new ArgumentNullException("source"); - if (keySelector == null) throw new ArgumentNullException("keySelector"); - if (elementSelector == null) throw new ArgumentNullException("elementSelector"); - - var dict = new Dictionary(comparer); - - foreach (var item in source) - { - // - // ToDictionary is meant to throw ArgumentNullException if - // keySelector produces a key that is null and - // Argument exception if keySelector produces duplicate keys - // for two elements. Incidentally, the doucmentation for - // IDictionary.Add says that the Add method - // throws the same exceptions under the same circumstances - // so we don't need to do any additional checking or work - // here and let the Add implementation do all the heavy - // lifting. - // - - dict.Add(keySelector(item), elementSelector(item)); - } - - return dict; - } - - /// - /// Correlates the elements of two sequences based on matching keys. - /// The default equality comparer is used to compare keys. - /// - - public static IEnumerable Join( - this IEnumerable outer, - IEnumerable inner, - Func outerKeySelector, - Func innerKeySelector, - Func resultSelector) - { - return outer.Join(inner, outerKeySelector, innerKeySelector, resultSelector, /* comparer */ null); - } - - /// - /// Correlates the elements of two sequences based on matching keys. - /// The default equality comparer is used to compare keys. A - /// specified is used to compare keys. - /// - - public static IEnumerable Join( - this IEnumerable outer, - IEnumerable inner, - Func outerKeySelector, - Func innerKeySelector, - Func resultSelector, - IEqualityComparer comparer) - { - if (outer == null) throw new ArgumentNullException("outer"); - if (inner == null) throw new ArgumentNullException("inner"); - if (outerKeySelector == null) throw new ArgumentNullException("outerKeySelector"); - if (innerKeySelector == null) throw new ArgumentNullException("innerKeySelector"); - if (resultSelector == null) throw new ArgumentNullException("resultSelector"); - - var lookup = inner.ToLookup(innerKeySelector, comparer); - - return - from o in outer - from i in lookup[outerKeySelector(o)] - select resultSelector(o, i); - } - - /// - /// Correlates the elements of two sequences based on equality of - /// keys and groups the results. The default equality comparer is - /// used to compare keys. - /// - - public static IEnumerable GroupJoin( - this IEnumerable outer, - IEnumerable inner, - Func outerKeySelector, - Func innerKeySelector, - Func, TResult> resultSelector) - { - return outer.GroupJoin(inner, outerKeySelector, innerKeySelector, resultSelector, /* comparer */ null); - } - - /// - /// Correlates the elements of two sequences based on equality of - /// keys and groups the results. The default equality comparer is - /// used to compare keys. A specified - /// is used to compare keys. - /// - - public static IEnumerable GroupJoin( - this IEnumerable outer, - IEnumerable inner, - Func outerKeySelector, - Func innerKeySelector, - Func, TResult> resultSelector, - IEqualityComparer comparer) - { - if (outer == null) throw new ArgumentNullException("outer"); - if (inner == null) throw new ArgumentNullException("inner"); - if (outerKeySelector == null) throw new ArgumentNullException("outerKeySelector"); - if (innerKeySelector == null) throw new ArgumentNullException("innerKeySelector"); - if (resultSelector == null) throw new ArgumentNullException("resultSelector"); - - var lookup = inner.ToLookup(innerKeySelector, comparer); - return outer.Select(o => resultSelector(o, lookup[outerKeySelector(o)])); - } - - private static class Sequence - { - public static readonly IEnumerable Empty = new T[0]; - } - - private sealed class Grouping : List, IGrouping - { - internal Grouping(K key) - { - Key = key; - } - - public K Key { get; private set; } - } - } -} - -// $Id: Enumerable.g.tt 71137f497bf2 2012/04/16 20:01:27 azizatif $ - -namespace System.Linq -{ - #region Imports - - using System; - using System.Collections.Generic; - - #endregion - - // This partial implementation was template-generated: - // Mon, 16 Apr 2012 20:05:53 GMT - - partial class Enumerable - { - /// - /// Computes the sum of a sequence of nullable values. - /// - - public static int Sum( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - int sum = 0; - foreach (var num in source) - sum = checked(sum + num); - - return sum; - } - - /// - /// Computes the sum of a sequence of nullable - /// values that are obtained by invoking a transform function on - /// each element of the input sequence. - /// - - public static int Sum( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Sum(); - } - - /// - /// Computes the average of a sequence of nullable values. - /// - - public static double Average( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - long sum = 0; - long count = 0; - - foreach (var num in source) - checked - { - sum += (int) num; - count++; - } - - if (count == 0) - throw new InvalidOperationException(); - - return (double) sum / count; - } - - /// - /// Computes the average of a sequence of nullable values - /// that are obtained by invoking a transform function on each - /// element of the input sequence. - /// - - public static double Average( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Average(); - } - - - /// - /// Computes the sum of a sequence of values. - /// - - public static int? Sum( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - int sum = 0; - foreach (var num in source) - sum = checked(sum + (num ?? 0)); - - return sum; - } - - /// - /// Computes the sum of a sequence of - /// values that are obtained by invoking a transform function on - /// each element of the input sequence. - /// - - public static int? Sum( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Sum(); - } - - /// - /// Computes the average of a sequence of values. - /// - - public static double? Average( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - long sum = 0; - long count = 0; - - foreach (var num in source.Where(n => n != null)) - checked - { - sum += (int) num; - count++; - } - - if (count == 0) - return null; - - return (double?) sum / count; - } - - /// - /// Computes the average of a sequence of values - /// that are obtained by invoking a transform function on each - /// element of the input sequence. - /// - - public static double? Average( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Average(); - } - - /// - /// Returns the minimum value in a sequence of nullable - /// values. - /// - - public static int? Min( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - return MinMaxImpl(source.Where(x => x != null), null, (min, x) => min < x); - } - - /// - /// Invokes a transform function on each element of a sequence and - /// returns the minimum nullable value. - /// - - public static int? Min( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Min(); - } - - /// - /// Returns the maximum value in a sequence of nullable - /// values. - /// - - public static int? Max( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - return MinMaxImpl(source.Where(x => x != null), - null, (max, x) => x == null || (max != null && x.Value < max.Value)); - } - - /// - /// Invokes a transform function on each element of a sequence and - /// returns the maximum nullable value. - /// - - public static int? Max( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Max(); - } - - /// - /// Computes the sum of a sequence of nullable values. - /// - - public static long Sum( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - long sum = 0; - foreach (var num in source) - sum = checked(sum + num); - - return sum; - } - - /// - /// Computes the sum of a sequence of nullable - /// values that are obtained by invoking a transform function on - /// each element of the input sequence. - /// - - public static long Sum( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Sum(); - } - - /// - /// Computes the average of a sequence of nullable values. - /// - - public static double Average( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - long sum = 0; - long count = 0; - - foreach (var num in source) - checked - { - sum += (long) num; - count++; - } - - if (count == 0) - throw new InvalidOperationException(); - - return (double) sum / count; - } - - /// - /// Computes the average of a sequence of nullable values - /// that are obtained by invoking a transform function on each - /// element of the input sequence. - /// - - public static double Average( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Average(); - } - - - /// - /// Computes the sum of a sequence of values. - /// - - public static long? Sum( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - long sum = 0; - foreach (var num in source) - sum = checked(sum + (num ?? 0)); - - return sum; - } - - /// - /// Computes the sum of a sequence of - /// values that are obtained by invoking a transform function on - /// each element of the input sequence. - /// - - public static long? Sum( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Sum(); - } - - /// - /// Computes the average of a sequence of values. - /// - - public static double? Average( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - long sum = 0; - long count = 0; - - foreach (var num in source.Where(n => n != null)) - checked - { - sum += (long) num; - count++; - } - - if (count == 0) - return null; - - return (double?) sum / count; - } - - /// - /// Computes the average of a sequence of values - /// that are obtained by invoking a transform function on each - /// element of the input sequence. - /// - - public static double? Average( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Average(); - } - - /// - /// Returns the minimum value in a sequence of nullable - /// values. - /// - - public static long? Min( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - return MinMaxImpl(source.Where(x => x != null), null, (min, x) => min < x); - } - - /// - /// Invokes a transform function on each element of a sequence and - /// returns the minimum nullable value. - /// - - public static long? Min( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Min(); - } - - /// - /// Returns the maximum value in a sequence of nullable - /// values. - /// - - public static long? Max( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - return MinMaxImpl(source.Where(x => x != null), - null, (max, x) => x == null || (max != null && x.Value < max.Value)); - } - - /// - /// Invokes a transform function on each element of a sequence and - /// returns the maximum nullable value. - /// - - public static long? Max( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Max(); - } - - /// - /// Computes the sum of a sequence of nullable values. - /// - - public static float Sum( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - float sum = 0; - foreach (var num in source) - sum = checked(sum + num); - - return sum; - } - - /// - /// Computes the sum of a sequence of nullable - /// values that are obtained by invoking a transform function on - /// each element of the input sequence. - /// - - public static float Sum( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Sum(); - } - - /// - /// Computes the average of a sequence of nullable values. - /// - - public static float Average( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - float sum = 0; - long count = 0; - - foreach (var num in source) - checked - { - sum += (float) num; - count++; - } - - if (count == 0) - throw new InvalidOperationException(); - - return (float) sum / count; - } - - /// - /// Computes the average of a sequence of nullable values - /// that are obtained by invoking a transform function on each - /// element of the input sequence. - /// - - public static float Average( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Average(); - } - - - /// - /// Computes the sum of a sequence of values. - /// - - public static float? Sum( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - float sum = 0; - foreach (var num in source) - sum = checked(sum + (num ?? 0)); - - return sum; - } - - /// - /// Computes the sum of a sequence of - /// values that are obtained by invoking a transform function on - /// each element of the input sequence. - /// - - public static float? Sum( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Sum(); - } - - /// - /// Computes the average of a sequence of values. - /// - - public static float? Average( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - float sum = 0; - long count = 0; - - foreach (var num in source.Where(n => n != null)) - checked - { - sum += (float) num; - count++; - } - - if (count == 0) - return null; - - return (float?) sum / count; - } - - /// - /// Computes the average of a sequence of values - /// that are obtained by invoking a transform function on each - /// element of the input sequence. - /// - - public static float? Average( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Average(); - } - - /// - /// Returns the minimum value in a sequence of nullable - /// values. - /// - - public static float? Min( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - return MinMaxImpl(source.Where(x => x != null), null, (min, x) => min < x); - } - - /// - /// Invokes a transform function on each element of a sequence and - /// returns the minimum nullable value. - /// - - public static float? Min( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Min(); - } - - /// - /// Returns the maximum value in a sequence of nullable - /// values. - /// - - public static float? Max( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - return MinMaxImpl(source.Where(x => x != null), - null, (max, x) => x == null || (max != null && x.Value < max.Value)); - } - - /// - /// Invokes a transform function on each element of a sequence and - /// returns the maximum nullable value. - /// - - public static float? Max( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Max(); - } - - /// - /// Computes the sum of a sequence of nullable values. - /// - - public static double Sum( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - double sum = 0; - foreach (var num in source) - sum = checked(sum + num); - - return sum; - } - - /// - /// Computes the sum of a sequence of nullable - /// values that are obtained by invoking a transform function on - /// each element of the input sequence. - /// - - public static double Sum( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Sum(); - } - - /// - /// Computes the average of a sequence of nullable values. - /// - - public static double Average( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - double sum = 0; - long count = 0; - - foreach (var num in source) - checked - { - sum += (double) num; - count++; - } - - if (count == 0) - throw new InvalidOperationException(); - - return (double) sum / count; - } - - /// - /// Computes the average of a sequence of nullable values - /// that are obtained by invoking a transform function on each - /// element of the input sequence. - /// - - public static double Average( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Average(); - } - - - /// - /// Computes the sum of a sequence of values. - /// - - public static double? Sum( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - double sum = 0; - foreach (var num in source) - sum = checked(sum + (num ?? 0)); - - return sum; - } - - /// - /// Computes the sum of a sequence of - /// values that are obtained by invoking a transform function on - /// each element of the input sequence. - /// - - public static double? Sum( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Sum(); - } - - /// - /// Computes the average of a sequence of values. - /// - - public static double? Average( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - double sum = 0; - long count = 0; - - foreach (var num in source.Where(n => n != null)) - checked - { - sum += (double) num; - count++; - } - - if (count == 0) - return null; - - return (double?) sum / count; - } - - /// - /// Computes the average of a sequence of values - /// that are obtained by invoking a transform function on each - /// element of the input sequence. - /// - - public static double? Average( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Average(); - } - - /// - /// Returns the minimum value in a sequence of nullable - /// values. - /// - - public static double? Min( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - return MinMaxImpl(source.Where(x => x != null), null, (min, x) => min < x); - } - - /// - /// Invokes a transform function on each element of a sequence and - /// returns the minimum nullable value. - /// - - public static double? Min( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Min(); - } - - /// - /// Returns the maximum value in a sequence of nullable - /// values. - /// - - public static double? Max( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - return MinMaxImpl(source.Where(x => x != null), - null, (max, x) => x == null || (max != null && x.Value < max.Value)); - } - - /// - /// Invokes a transform function on each element of a sequence and - /// returns the maximum nullable value. - /// - - public static double? Max( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Max(); - } - - /// - /// Computes the sum of a sequence of nullable values. - /// - - public static decimal Sum( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - decimal sum = 0; - foreach (var num in source) - sum = checked(sum + num); - - return sum; - } - - /// - /// Computes the sum of a sequence of nullable - /// values that are obtained by invoking a transform function on - /// each element of the input sequence. - /// - - public static decimal Sum( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Sum(); - } - - /// - /// Computes the average of a sequence of nullable values. - /// - - public static decimal Average( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - decimal sum = 0; - long count = 0; - - foreach (var num in source) - checked - { - sum += (decimal) num; - count++; - } - - if (count == 0) - throw new InvalidOperationException(); - - return (decimal) sum / count; - } - - /// - /// Computes the average of a sequence of nullable values - /// that are obtained by invoking a transform function on each - /// element of the input sequence. - /// - - public static decimal Average( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Average(); - } - - - /// - /// Computes the sum of a sequence of values. - /// - - public static decimal? Sum( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - decimal sum = 0; - foreach (var num in source) - sum = checked(sum + (num ?? 0)); - - return sum; - } - - /// - /// Computes the sum of a sequence of - /// values that are obtained by invoking a transform function on - /// each element of the input sequence. - /// - - public static decimal? Sum( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Sum(); - } - - /// - /// Computes the average of a sequence of values. - /// - - public static decimal? Average( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - decimal sum = 0; - long count = 0; - - foreach (var num in source.Where(n => n != null)) - checked - { - sum += (decimal) num; - count++; - } - - if (count == 0) - return null; - - return (decimal?) sum / count; - } - - /// - /// Computes the average of a sequence of values - /// that are obtained by invoking a transform function on each - /// element of the input sequence. - /// - - public static decimal? Average( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Average(); - } - - /// - /// Returns the minimum value in a sequence of nullable - /// values. - /// - - public static decimal? Min( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - return MinMaxImpl(source.Where(x => x != null), null, (min, x) => min < x); - } - - /// - /// Invokes a transform function on each element of a sequence and - /// returns the minimum nullable value. - /// - - public static decimal? Min( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Min(); - } - - /// - /// Returns the maximum value in a sequence of nullable - /// values. - /// - - public static decimal? Max( - this IEnumerable source) - { - if (source == null) throw new ArgumentNullException("source"); - - return MinMaxImpl(source.Where(x => x != null), - null, (max, x) => x == null || (max != null && x.Value < max.Value)); - } - - /// - /// Invokes a transform function on each element of a sequence and - /// returns the maximum nullable value. - /// - - public static decimal? Max( - this IEnumerable source, - Func selector) - { - return source.Select(selector).Max(); - } - } -} - -// $Id: ExtensionAttribute.cs 898b3d493ed6 2012/04/17 20:09:57 azizatif $ - -namespace System.Runtime.CompilerServices -{ - /// - /// This attribute allows us to define extension methods without - /// requiring .NET Framework 3.5. For more information, see the section, - /// Extension Methods in .NET Framework 2.0 Apps, - /// of Basic Instincts: Extension Methods - /// column in MSDN Magazine, - /// issue Nov 2007. - /// - - [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class | AttributeTargets.Assembly)] - sealed partial class ExtensionAttribute : Attribute { } -} - -// $Id: Func.cs 71137f497bf2 2012/04/16 20:01:27 azizatif $ - -namespace System -{ -#if LINQBRIDGE_LIB - public delegate TResult Func(); - public delegate TResult Func(T a); - public delegate TResult Func(T1 arg1, T2 arg2); - public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3); - public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4); -#else - delegate TResult Func(); - delegate TResult Func(T a); - delegate TResult Func(T1 arg1, T2 arg2); - delegate TResult Func(T1 arg1, T2 arg2, T3 arg3); - delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4); -#endif -} - -// $Id: IGrouping.cs 71137f497bf2 2012/04/16 20:01:27 azizatif $ - -namespace System.Linq -{ - #region Imports - - using System.Collections.Generic; - - #endregion - - /// - /// Represents a collection of objects that have a common key. - /// - - partial interface IGrouping : IEnumerable - { - /// - /// Gets the key of the . - /// - - TKey Key { get; } - } -} - -// $Id: ILookup.cs 71137f497bf2 2012/04/16 20:01:27 azizatif $ - -namespace System.Linq -{ - using System.Collections.Generic; - - /// - /// Defines an indexer, size property, and Boolean search method for - /// data structures that map keys to - /// sequences of values. - /// - - partial interface ILookup : IEnumerable> - { - bool Contains(TKey key); - int Count { get; } - IEnumerable this[TKey key] { get; } - } -} - -// $Id: Internal.cs 1567e00f1a20 2012/04/17 16:09:51 azizatif $ - -namespace LinqBridge -{ - #region Imports - - using System; - using System.Collections.Generic; - - #endregion - - /// - /// This type is not intended to be used directly from user code. - /// It may be removed or changed in a future version without notice. - /// - - sealed class DelegatingComparer : IComparer - { - private readonly Func _comparer; - - public DelegatingComparer(Func comparer) - { - if (comparer == null) throw new ArgumentNullException("comparer"); - _comparer = comparer; - } - - public int Compare(T x, T y) { return _comparer(x, y); } - } - - /// - /// This type is not intended to be used directly from user code. - /// It may be removed or changed in a future version without notice. - /// - - struct Key - { - public Key(T value) : this() { Value = value; } - public T Value { get; private set; } - } - - /// - /// This type is not intended to be used directly from user code. - /// It may be removed or changed in a future version without notice. - /// - - sealed class KeyComparer : IEqualityComparer> - { - private readonly IEqualityComparer _innerComparer; - - public KeyComparer(IEqualityComparer innerComparer) - { - _innerComparer = innerComparer ?? EqualityComparer.Default; - } - - public bool Equals(Key x, Key y) - { - return _innerComparer.Equals(x.Value, y.Value); - } - - public int GetHashCode(Key obj) - { - return obj.Value == null ? 0 : _innerComparer.GetHashCode(obj.Value); - } - } -} - -// $Id: IOrderedEnumerable.cs 71137f497bf2 2012/04/16 20:01:27 azizatif $ - -namespace System.Linq -{ - using System.Collections.Generic; - - /// - /// Represents a sorted sequence. - /// - - partial interface IOrderedEnumerable : IEnumerable - { - /// - /// Performs a subsequent ordering on the elements of an - /// according to a key. - /// - - IOrderedEnumerable CreateOrderedEnumerable( - Func keySelector, IComparer comparer, bool descending); - } -} - -// $Id: Lookup.cs c08984d432b1 2012/04/17 16:05:19 azizatif $ - -namespace System.Linq -{ - #region Imports - - using System; - using System.Collections; - using System.Collections.Generic; - using IEnumerable=System.Collections.IEnumerable; - using LinqBridge; - - #endregion - - /// - /// Represents a collection of keys each mapped to one or more values. - /// - - internal sealed class Lookup : ILookup - { - private readonly Dictionary, IGrouping> _map; - private readonly List> _orderedKeys; // remember order of insertion - - internal Lookup(IEqualityComparer comparer) - { - _map = new Dictionary, IGrouping>(new KeyComparer(comparer)); - _orderedKeys = new List>(); - } - - internal void Add(IGrouping item) - { - var key = new Key(item.Key); - _map.Add(key, item); - _orderedKeys.Add(key); - } - - internal IEnumerable Find(TKey key) - { - IGrouping grouping; - return _map.TryGetValue(new Key(key), out grouping) ? grouping : null; - } - - /// - /// Gets the number of key/value collection pairs in the . - /// - - public int Count - { - get { return _map.Count; } - } - - /// - /// Gets the collection of values indexed by the specified key. - /// - - public IEnumerable this[TKey key] - { - get - { - IGrouping result; - return _map.TryGetValue(new Key(key), out result) ? result : Enumerable.Empty(); - } - } - - /// - /// Determines whether a specified key is in the . - /// - - public bool Contains(TKey key) - { - return _map.ContainsKey(new Key(key)); - } - - /// - /// Applies a transform function to each key and its associated - /// values and returns the results. - /// - - public IEnumerable ApplyResultSelector( - Func, TResult> resultSelector) - { - if (resultSelector == null) - throw new ArgumentNullException("resultSelector"); - - foreach (var pair in _map) - yield return resultSelector(pair.Key.Value, pair.Value); - } - - /// - /// Returns a generic enumerator that iterates through the . - /// - - public IEnumerator> GetEnumerator() - { - foreach (var key in _orderedKeys) - yield return _map[key]; - } - - IEnumerator IEnumerable.GetEnumerator() - { - return GetEnumerator(); - } - } -} - -// $Id: OrderedEnumerable.cs 71137f497bf2 2012/04/16 20:01:27 azizatif $ - -namespace LinqBridge -{ - #region Imports - - using System; - using System.Collections; - using System.Collections.Generic; - using System.Diagnostics; - using System.Linq; - - #endregion - - internal sealed class OrderedEnumerable : IOrderedEnumerable - { - private readonly IEnumerable _source; - private readonly Func, IComparer> _comparerComposer; - - public OrderedEnumerable(IEnumerable source, - Func keySelector, IComparer comparer, bool descending) : - this(source, (_, next) => next, keySelector, comparer, descending) {} - - private OrderedEnumerable(IEnumerable source, - Func, IComparer> parent, - Func keySelector, IComparer comparer, bool descending) - { - if (source == null) throw new ArgumentNullException("source"); - if (keySelector == null) throw new ArgumentNullException("keySelector"); - Debug.Assert(parent != null); - - _source = source; - - comparer = comparer ?? Comparer.Default; - var direction = descending ? -1 : 1; - - _comparerComposer = (items, next) => - { - Debug.Assert(items != null); - Debug.Assert(next != null); - - var keys = new K[items.Length]; - for (var i = 0; i < items.Length; i++) - keys[i] = keySelector(items[i]); - - return parent(items, new DelegatingComparer((i, j) => - { - var result = direction * comparer.Compare(keys[i], keys[j]); - return result != 0 ? result : next.Compare(i, j); - })); - }; - } - - public IOrderedEnumerable CreateOrderedEnumerable( - Func keySelector, IComparer comparer, bool descending) - { - return new OrderedEnumerable(_source, _comparerComposer, keySelector, comparer, descending); - } - - public IEnumerator GetEnumerator() - { - // - // Sort using Array.Sort but docs say that it performs an - // unstable sort. LINQ, on the other hand, says OrderBy performs - // a stable sort. Use the item position then as a tie - // breaker when all keys compare equal, thus making the sort - // stable. - // - - var items = _source.ToArray(); - var positionComparer = new DelegatingComparer((i, j) => i.CompareTo(j)); - var comparer = _comparerComposer(items, positionComparer); - var keys = new int[items.Length]; - for (var i = 0; i < keys.Length; i++) - keys[i] = i; - Array.Sort(keys, items, comparer); - return ((IEnumerable) items).GetEnumerator(); - } - - IEnumerator IEnumerable.GetEnumerator() - { - return GetEnumerator(); - } - } -} - -// $Id: Action.cs 71137f497bf2 2012/04/16 20:01:27 azizatif $ - -namespace System -{ -#if LINQBRIDGE_LIB - public delegate void Action(); - public delegate void Action(T1 arg1, T2 arg2); - public delegate void Action(T1 arg1, T2 arg2, T3 arg3); - public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4); -#else - delegate void Action(); - delegate void Action(T1 arg1, T2 arg2); - delegate void Action(T1 arg1, T2 arg2, T3 arg3); - delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4); -#endif -} - diff --git a/External/OxyPlot/OxyPlot/OxyPlot.csproj b/External/OxyPlot/OxyPlot/OxyPlot.csproj index caa1cab..c0bb576 100644 --- a/External/OxyPlot/OxyPlot/OxyPlot.csproj +++ b/External/OxyPlot/OxyPlot/OxyPlot.csproj @@ -9,7 +9,7 @@ Properties OxyPlot OxyPlot - v2.0 + v4.5 512 @@ -22,9 +22,10 @@ TRACE;DEBUG;LINQBRIDGE_LIB prompt 4 + false - pdbonly + none true Bin\Release\ TRACE;LINQBRIDGE_LIB @@ -32,6 +33,7 @@ 4 + false true @@ -93,7 +95,6 @@ - diff --git a/Hardware/PInvokeDelegateFactory.cs b/Hardware/PInvokeDelegateFactory.cs index 88b05f5..accb3ed 100644 --- a/Hardware/PInvokeDelegateFactory.cs +++ b/Hardware/PInvokeDelegateFactory.cs @@ -29,7 +29,8 @@ namespace OpenHardwareMonitor.Hardware { new Dictionary, Type>(); public static void CreateDelegate(DllImportAttribute dllImportAttribute, - out T newDelegate) where T : class + out T newDelegate, DllImportSearchPath dllImportSearchPath = + DllImportSearchPath.System32) where T : class { Type wrapperType; Pair key = @@ -37,7 +38,7 @@ namespace OpenHardwareMonitor.Hardware { wrapperTypes.TryGetValue(key, out wrapperType); if (wrapperType == null) { - wrapperType = CreateWrapperType(typeof(T), dllImportAttribute); + wrapperType = CreateWrapperType(typeof(T), dllImportAttribute, dllImportSearchPath); wrapperTypes.Add(key, wrapperType); } @@ -45,9 +46,10 @@ namespace OpenHardwareMonitor.Hardware { dllImportAttribute.EntryPoint) as T; } - private static Type CreateWrapperType(Type delegateType, - DllImportAttribute dllImportAttribute) { + DllImportAttribute dllImportAttribute, + DllImportSearchPath dllImportSearchPath) + { TypeBuilder typeBuilder = moduleBuilder.DefineType( "PInvokeDelegateFactoryInternalWrapperType" + wrapperTypes.Count); @@ -69,6 +71,11 @@ namespace OpenHardwareMonitor.Hardware { dllImportAttribute.CallingConvention, dllImportAttribute.CharSet); + methodBuilder.SetCustomAttribute(new CustomAttributeBuilder( + typeof(DefaultDllImportSearchPathsAttribute).GetConstructor( + new Type[] { typeof(DllImportSearchPath) }), + new object[] { dllImportSearchPath })); + foreach (ParameterInfo parameterInfo in parameterInfos) methodBuilder.DefineParameter(parameterInfo.Position + 1, parameterInfo.Attributes, parameterInfo.Name); diff --git a/OpenHardwareMonitor.csproj b/OpenHardwareMonitor.csproj index 7d2462d..1cb783c 100644 --- a/OpenHardwareMonitor.csproj +++ b/OpenHardwareMonitor.csproj @@ -9,7 +9,7 @@ WinExe false OpenHardwareMonitor - v2.0 + v4.5 512 OpenHardwareMonitor Resources\icon.ico @@ -34,6 +34,7 @@ 1.0.0.%2a false true + true @@ -46,6 +47,7 @@ true AllRules.ruleset AnyCPU + false none @@ -56,24 +58,15 @@ 4 false AllRules.ruleset + false - - External\OxyPlot.dll - - - External\OxyPlot.WindowsForms.dll - - - False - External\Aga.Controls.dll - @@ -178,7 +171,6 @@ - Designer @@ -210,6 +202,18 @@ + + {e73bb233-d88b-44a7-a98f-d71ee158381d} + Aga.Controls + + + {d4554296-094e-4cac-8eae-44eb250666c6} + OxyPlot.WindowsForms + + + {bcc43e58-e473-403e-a84d-63fedc723040} + OxyPlot + {B0397530-545A-471D-BB74-027AE456DF1A} OpenHardwareMonitorLib @@ -305,7 +309,6 @@ - copy "$(ProjectDir)External\*.*" "$(TargetDir)" -copy "$(ProjectDir)Licenses\*.*" "$(TargetDir)" + copy "$(ProjectDir)Licenses\*.*" "$(TargetDir)" \ No newline at end of file diff --git a/OpenHardwareMonitor.sln b/OpenHardwareMonitor.sln index 735977c..7e306cc 100644 --- a/OpenHardwareMonitor.sln +++ b/OpenHardwareMonitor.sln @@ -15,6 +15,14 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution .editorconfig = .editorconfig EndProjectSection EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Controls", "Controls", "{D6DBF0DC-C594-4030-B478-6CDB75E59A5C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aga.Controls", "External\Aga.Controls\Aga.Controls.csproj", "{E73BB233-D88B-44A7-A98F-D71EE158381D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OxyPlot", "External\OxyPlot\OxyPlot\OxyPlot.csproj", "{BCC43E58-E473-403E-A84D-63FEDC723040}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OxyPlot.WindowsForms", "External\OxyPlot\OxyPlot.WindowsForms\OxyPlot.WindowsForms.csproj", "{D4554296-094E-4CAC-8EAE-44EB250666C6}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -29,10 +37,27 @@ Global {F5E0C1F7-9E9B-46F2-AC88-8C9C1C923880}.Debug|Any CPU.Build.0 = Debug|Any CPU {F5E0C1F7-9E9B-46F2-AC88-8C9C1C923880}.Release|Any CPU.ActiveCfg = Release|Any CPU {F5E0C1F7-9E9B-46F2-AC88-8C9C1C923880}.Release|Any CPU.Build.0 = Release|Any CPU + {E73BB233-D88B-44A7-A98F-D71EE158381D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E73BB233-D88B-44A7-A98F-D71EE158381D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E73BB233-D88B-44A7-A98F-D71EE158381D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E73BB233-D88B-44A7-A98F-D71EE158381D}.Release|Any CPU.Build.0 = Release|Any CPU + {BCC43E58-E473-403E-A84D-63FEDC723040}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BCC43E58-E473-403E-A84D-63FEDC723040}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BCC43E58-E473-403E-A84D-63FEDC723040}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BCC43E58-E473-403E-A84D-63FEDC723040}.Release|Any CPU.Build.0 = Release|Any CPU + {D4554296-094E-4CAC-8EAE-44EB250666C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D4554296-094E-4CAC-8EAE-44EB250666C6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D4554296-094E-4CAC-8EAE-44EB250666C6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D4554296-094E-4CAC-8EAE-44EB250666C6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {E73BB233-D88B-44A7-A98F-D71EE158381D} = {D6DBF0DC-C594-4030-B478-6CDB75E59A5C} + {BCC43E58-E473-403E-A84D-63FEDC723040} = {D6DBF0DC-C594-4030-B478-6CDB75E59A5C} + {D4554296-094E-4CAC-8EAE-44EB250666C6} = {D6DBF0DC-C594-4030-B478-6CDB75E59A5C} + EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {0DCCC854-BBF2-40AC-81A2-10387E4E2868} EndGlobalSection diff --git a/OpenHardwareMonitorLib.csproj b/OpenHardwareMonitorLib.csproj index 97cd5a8..63ef9d3 100644 --- a/OpenHardwareMonitorLib.csproj +++ b/OpenHardwareMonitorLib.csproj @@ -10,7 +10,7 @@ Properties OpenHardwareMonitor OpenHardwareMonitorLib - v2.0 + v4.5 512 @@ -31,6 +31,7 @@ false false true + true @@ -41,6 +42,7 @@ prompt 4 AllRules.ruleset + false none @@ -50,6 +52,7 @@ prompt 4 AllRules.ruleset + false diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index 726dd1c..788af06 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -23,3 +23,5 @@ using System.Runtime.InteropServices; [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] + +[assembly: DefaultDllImportSearchPaths(DllImportSearchPath.System32)] diff --git a/Properties/AssemblyLibInfo.cs b/Properties/AssemblyLibInfo.cs index a609605..acff993 100644 --- a/Properties/AssemblyLibInfo.cs +++ b/Properties/AssemblyLibInfo.cs @@ -24,3 +24,4 @@ using System.Runtime.InteropServices; [assembly: ComVisible(false)] [assembly: CLSCompliant(true)] +[assembly: DefaultDllImportSearchPaths(DllImportSearchPath.System32)]

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 diff --git a/External/OxyPlot/OxyPlot.WindowsForms/OxyPlot.WindowsForms.csproj b/External/OxyPlot/OxyPlot.WindowsForms/OxyPlot.WindowsForms.csproj index eba348a..9dff4e9 100644 --- a/External/OxyPlot/OxyPlot.WindowsForms/OxyPlot.WindowsForms.csproj +++ b/External/OxyPlot/OxyPlot.WindowsForms/OxyPlot.WindowsForms.csproj @@ -9,7 +9,7 @@ Properties OxyPlot.WindowsForms OxyPlot.WindowsForms - v2.0 + v4.5 512 @@ -23,9 +23,10 @@ TRACE;DEBUG prompt 4 + false - pdbonly + none true Bin\Release\ obj\Release\NET40\ @@ -34,6 +35,7 @@ 4 + false true diff --git a/External/OxyPlot/OxyPlot.sln b/External/OxyPlot/OxyPlot.sln deleted file mode 100644 index 0493461..0000000 --- a/External/OxyPlot/OxyPlot.sln +++ /dev/null @@ -1,26 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OxyPlot", "OxyPlot\OxyPlot.csproj", "{BCC43E58-E473-403E-A84D-63FEDC723040}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OxyPlot.WindowsForms", "OxyPlot.WindowsForms\OxyPlot.WindowsForms.csproj", "{D4554296-094E-4CAC-8EAE-44EB250666C6}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BCC43E58-E473-403E-A84D-63FEDC723040}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BCC43E58-E473-403E-A84D-63FEDC723040}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BCC43E58-E473-403E-A84D-63FEDC723040}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BCC43E58-E473-403E-A84D-63FEDC723040}.Release|Any CPU.Build.0 = Release|Any CPU - {D4554296-094E-4CAC-8EAE-44EB250666C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D4554296-094E-4CAC-8EAE-44EB250666C6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D4554296-094E-4CAC-8EAE-44EB250666C6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D4554296-094E-4CAC-8EAE-44EB250666C6}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/External/OxyPlot/OxyPlot/LinqBridge.cs b/External/OxyPlot/OxyPlot/LinqBridge.cs deleted file mode 100644 index 91afdfe..0000000 --- a/External/OxyPlot/OxyPlot/LinqBridge.cs +++ /dev/null @@ -1,3115 +0,0 @@ -#region License, Terms and Author(s) -// -// LINQBridge -// Copyright (c) 2007 Atif Aziz, Joseph Albahari. All rights reserved. -// -// Author(s): -// -// Atif Aziz, http://www.raboof.com -// -// This library is free software; you can redistribute it and/or modify it -// under the terms of the New BSD License, a copy of which should have -// been delivered along with this distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -#endregion - -#if LINQBRIDGE_LIB - -namespace System.Linq { - public partial class Enumerable { } - public partial interface IGrouping { } - public partial interface ILookup { } - public partial interface IOrderedEnumerable { } -} - -namespace System.Runtime.CompilerServices { - public partial class ExtensionAttribute { } -} - -#endif - -// $Id: Enumerable.cs c08984d432b1 2012/04/17 16:05:19 azizatif $ - -namespace System.Linq -{ - #region Imports - - using System; - using System.Collections; - using System.Collections.Generic; - using System.Diagnostics; - using LinqBridge; - - #endregion - - ///