From 61169a28d7b047dc434ca77222d613e43fe3fc49 Mon Sep 17 00:00:00 2001 From: HirotaZX <55805734+HirotaZX@users.noreply.github.com> Date: Mon, 23 Sep 2024 15:55:30 +0800 Subject: [PATCH] Sharky Patcher 2.0 --- .github/workflows/build.yml | 25 ++ FFXIVSharkyPatcher.sln | 25 ++ README.md | 36 ++ RELEASE.md | 10 + SharkyPatcher/.gitignore | 9 + SharkyPatcher/App.cs | 210 ++++++++++ SharkyPatcher/Common/DalamudVersionInfo.cs | 13 + SharkyPatcher/Common/LoggerUtil.cs | 71 ++++ SharkyPatcher/Common/SharkyArt.cs | 65 +++ SharkyPatcher/FodyWeavers.xml | 4 + SharkyPatcher/Patcher/BasePatcher.cs | 68 +++ SharkyPatcher/Patcher/DUpdaterPatcher.cs | 108 +++++ SharkyPatcher/Patcher/DalamudPatcher.cs | 227 ++++++++++ SharkyPatcher/Patcher/XIVCommonPatcher.cs | 82 ++++ SharkyPatcher/Resolver/CustomResolver.cs | 56 +++ SharkyPatcher/Resolver/DalamudResolver.cs | 22 + SharkyPatcher/SharkyIcon.ico | Bin 0 -> 166435 bytes SharkyPatcher/SharkyPatcher.csproj | 28 ++ SharkyPatcher/packages.lock.json | 464 +++++++++++++++++++++ 19 files changed, 1523 insertions(+) create mode 100644 .github/workflows/build.yml create mode 100644 FFXIVSharkyPatcher.sln create mode 100644 README.md create mode 100644 RELEASE.md create mode 100644 SharkyPatcher/.gitignore create mode 100644 SharkyPatcher/App.cs create mode 100644 SharkyPatcher/Common/DalamudVersionInfo.cs create mode 100644 SharkyPatcher/Common/LoggerUtil.cs create mode 100644 SharkyPatcher/Common/SharkyArt.cs create mode 100644 SharkyPatcher/FodyWeavers.xml create mode 100644 SharkyPatcher/Patcher/BasePatcher.cs create mode 100644 SharkyPatcher/Patcher/DUpdaterPatcher.cs create mode 100644 SharkyPatcher/Patcher/DalamudPatcher.cs create mode 100644 SharkyPatcher/Patcher/XIVCommonPatcher.cs create mode 100644 SharkyPatcher/Resolver/CustomResolver.cs create mode 100644 SharkyPatcher/Resolver/DalamudResolver.cs create mode 100644 SharkyPatcher/SharkyIcon.ico create mode 100644 SharkyPatcher/SharkyPatcher.csproj create mode 100644 SharkyPatcher/packages.lock.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..b92aeec --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,25 @@ +name: Build Patcher +on: [push, pull_request, workflow_dispatch] + +jobs: + build: + name: Build on Windows + runs-on: windows-2022 + steps: + - uses: actions/checkout@v4 + - name: Build SharkyPatcher + run: | + dotnet restore + dotnet publish -c Release + Compress-Archive -Path .\SharkyPatcher\bin\Release\net462\publish\* -Destination SharkyPatcher.zip + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: SharkyPatcher + path: .\SharkyPatcher\bin\Release\net462\publish\ + - name: Tag Release + uses: softprops/action-gh-release@v2 + if: startsWith(github.ref, 'refs/tags/') + with: + files: SharkyPatcher.zip + body_path: RELEASE.md diff --git a/FFXIVSharkyPatcher.sln b/FFXIVSharkyPatcher.sln new file mode 100644 index 0000000..f6d358d --- /dev/null +++ b/FFXIVSharkyPatcher.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.5.002.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SharkyPatcher", "SharkyPatcher\SharkyPatcher.csproj", "{E500130F-BF96-4B7C-91EF-EC5420FF07C5}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E500130F-BF96-4B7C-91EF-EC5420FF07C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E500130F-BF96-4B7C-91EF-EC5420FF07C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E500130F-BF96-4B7C-91EF-EC5420FF07C5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E500130F-BF96-4B7C-91EF-EC5420FF07C5}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {8526ABAA-32DE-4974-A0FE-37C37810F443} + EndGlobalSection +EndGlobal diff --git a/README.md b/README.md new file mode 100644 index 0000000..39e7552 --- /dev/null +++ b/README.md @@ -0,0 +1,36 @@ +
+ +
+ +# FFXIV Sharky Patcher 🦈 鯊鯊補丁 + +[![GitHub Release](https://img.shields.io/github/v/release/sharkycorps/FFXIVSharkyPatcher)](https://github.com/sharkycorps/FFXIVSharkyPatcher/releases) +[![Build Patcher](https://github.com/sharkycorps/FFXIVSharkyPatcher/actions/workflows/build.yml/badge.svg)](https://github.com/sharkycorps/FFXIVSharkyPatcher/actions/workflows/build.yml) + +Patches which remove unreasonable ToS, analytics, plugin bans and integrity check from Dalamud and XIVLauncher CN. + +鯊鯊補丁的目的是移除 Dalamud 和 XIVLauncher CN 中不合理的服務條款、分析、插件禁令和完整性檢查。 + +## Usage 🦈 使用 + +1. Download the latest `SharkyPatcher.zip` from the [Github Releases](https://github.com/sharkycorps/FFXIVSharkyPatcher/releases) +2. Extract it to the same installation directory as `XIVLauncherCN` or `Dalamud.Updater` +3. Double-click `SharkyPatcher.exe` to automatically apply the patch and launch the corresponding main program + +--- + +1. 從 [Github Releases](https://github.com/sharkycorps/FFXIVSharkyPatcher/releases) 中下載最新的 `SharkyPatcher.zip` +2. 將其解壓到 `XIVLauncherCN` 或者 `Dalamud.Updater` 相同安裝目錄下 +3. 雙擊運行 `SharkyPatcher.exe` 即可自動應用補丁,並啟動相應主程序 + +## Community 🦈 社区 + +Discord:https://discord.gg/6XQbvNgn + +## Safety 🦈 安全性 +### Diffs between goatcorp and ottercorp + +goatcorp 和 ottercorp 代碼的區別如下,sharkycorps 只進行了必要的字节码調整和移除,請自行檢查。 + +https://github.com/goatcorp/Dalamud/compare/master...ottercorp:master +https://github.com/goatcorp/FFXIVQuickLauncher/compare/master...ottercorp:FFXIVQuickLauncher:CN \ No newline at end of file diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 0000000..44ffc76 --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,10 @@ +## 使用方法 + +1. 從下方 `Assets` 文件中下載 `SharkyPatcher.zip` +2. 將其解壓到 `XIVLauncherCN` 或者 `Dalamud.Updater` 相同安裝目錄下 +3. 雙擊運行 `SharkyPatcher.exe` 即可自動應用補丁,並啟動相應主程序 + +## 注意 + +1. 啟動器或者衛月版本更新後,可能需要重新運行補丁 +2. 補丁可以重複運行,自身也可作為啟動器的入口 \ No newline at end of file diff --git a/SharkyPatcher/.gitignore b/SharkyPatcher/.gitignore new file mode 100644 index 0000000..44e9bd4 --- /dev/null +++ b/SharkyPatcher/.gitignore @@ -0,0 +1,9 @@ +# build files +bin +obj + +# log files +*.log + +# Fody - auto-generated XML schema +FodyWeavers.xsd \ No newline at end of file diff --git a/SharkyPatcher/App.cs b/SharkyPatcher/App.cs new file mode 100644 index 0000000..8715c7d --- /dev/null +++ b/SharkyPatcher/App.cs @@ -0,0 +1,210 @@ + +using System; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Net.Http; +using System.Net.Http.Headers; +using System.Threading.Tasks; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using SharkyPatcher.Common; +using SharkyPatcher.Patcher; +using static SharkyPatcher.Common.LoggerUtil; + +namespace SharkyPatcher +{ + class App + { + static readonly string _launcherName = "XIVLauncherCN.exe"; + static readonly string _launcherCommonName = "XIVLauncher.Common.dll"; + static readonly string _updaterName = "Dalamud.Updater.exe"; + static readonly string _dalamudName = "Dalamud.dll"; + static readonly string _launcherDalamudBaseDir = "Roaming"; + static readonly string _updaterDalamudBaseDir = "XIVLauncher"; + static readonly string _currentDir = Directory.GetCurrentDirectory(); + static async Task Main() + { + string processToStart = ""; + + try + { + // render sharky ascii art + SharkyArt.Render(); + Log.Information("【鯊鯊補丁】正在啟動……"); + + // patch xiv launcher + if (CheckExists(_launcherName)) + { + Log.Information("=============================================================="); + + processToStart = _launcherName; + string launcherVersion = await GetLauncherVersionAsync(); + string commonSubPath = Path.Combine(launcherVersion, _launcherCommonName); + if (CheckExists(commonSubPath)) + { + BackupFile(commonSubPath); + XIVCommonPatcher launcherPatcher = new XIVCommonPatcher( + Path.Combine(_currentDir, launcherVersion), _launcherCommonName); + launcherPatcher.Patch(); + launcherPatcher.Dispose(); + await PatchDalamud(_launcherDalamudBaseDir, _dalamudName); + } + else + { + Log.Information($"【鯊鯊補丁】<{launcherVersion}> 下未找到 <{_launcherCommonName}>,請確認目錄是否正確"); + Exit(); + } + } + else if (CheckExists(_updaterName)) + { + Log.Information("=============================================================="); + + processToStart = _updaterName; + BackupFile(_updaterName); + DUpdaterPatcher updaterPatcher = new DUpdaterPatcher(_currentDir, _updaterName); + updaterPatcher.Patch(); + updaterPatcher.Dispose(); + await PatchDalamud(_updaterDalamudBaseDir, _dalamudName); + } + + if (!string.IsNullOrEmpty(processToStart)) + { + Log.Information("=============================================================="); + Log.Information("【鯊鯊補丁】補丁全部應用成功!"); + Log.Information("=============================================================="); + StartProcess(processToStart); + Log.Information("=============================================================="); + } + else + { + LogF.Information($"【鯊鯊補丁】當前目錄:{_currentDir}"); + Log.Information("【鯊鯊補丁】當前目錄下未找到啟動器或者更新器,請確認目錄是否正確"); + Exit(); + } + + ExitSuccess(); + } + catch (Exception ex) + { + Log.Information("=============================================================="); + Log.Error("【鯊鯊補丁】補丁應用過程中出現異常!"); + Exit(ex); + } + finally + { + Serilog.Log.CloseAndFlush(); + } + } + + static async Task PatchDalamud(string baseDir, string dalamudName) + { + Log.Information("=============================================================="); + + DalamudVersionInfo dalamudVersion = await GetDalamudVersionAsync(); + string dalamudPath = Path.Combine(baseDir, @"addon\Hooks", dalamudVersion.AssemblyVersion); + bool dalamudExists = CheckExists(Path.Combine(dalamudPath, dalamudName)); + if (dalamudExists) + { + BackupFile(Path.Combine(dalamudPath, dalamudName)); + DalamudPatcher patcher = new DalamudPatcher(Path.Combine(_currentDir, baseDir), dalamudVersion); + patcher.Patch(); + patcher.Dispose(); + } + else + { + Log.Information($"【鯊鯊補丁】<{dalamudPath}> 下未找到 <{dalamudName}>,請確認目錄是否正確"); + Exit(); + } + } + + static async Task;c!( ziHYbP+711?bVo$LftWdN0%r02YueZ-ESx$WZG)R*b#EuD*+K@OO%i2B(!PP6C p5VtnVPKUJ--S$ByCMo7Ymj?Zmffs2M^--58wPVPa4cXA;Iq{r2? GY>D~LWK_4DF3pSW=&bW50Fc>lq$=h=vXju}qH zMe$5bjQd~5&+%ccUTVm6y^Kl-?8|?1i9LJ?nSqMb =4Nd_ z{NR!ZWT$W9zV=n|x-wrnJA8Kk9zMKzDe?7nykXzwSb6`#PBiqY4rjZv(AO@BPL1la z|H|iEk$+MCX~Zj5D^=#Ql1!t5$hnfze=lwqXObGk0q|VdM@_|`nWn0ttfa0faVaHS zB0@uMzG9t!zHvmt`zZ3N7=sjkX}!$6=VYD7hjS}%bLR}ikL!&MQwQL|{<%`yQI!2# zo(WIqdS_u|SYhX8P13bA4E+bT3nCXk)9wYgKe~iWLYD$9T^<(c$~-JBCE0EzXV-{5 z3x^key08*C_b+ld6yyDO>t(i^0?JLY@0{WuMLx%hIqEapi#SIW_lmrW^VJPg`eS65 zX2?#9#jT@p2&x-+m>)M(`!D9JA911x(^iu(pk{6AdLO*8V>&)wh>`O^+?C?|SL|Ez z-#x~st9zvRRguphxq_GDD@UQcgB!;8Y0G^k WtNmS931vN* zlYMDf303_O-5Uqs@&4J;TKDsf!`#n4pnQmP)x9(LkhG>a?<{9g))I+wm(wS%k3XJX zj6?GW!n2G!s=8Iep_P%yr9AIr@(K)YA0*^#HtHPvH8`&S)k{y=SSCnCU0cTa#HECq z(G7J~Lxcr-;quZxc*gVQSCr|#p)B*w@dbE$f<*VtG13u+ADoGodnV)2<}t`vJ`lSn zgknnP25`4^hKEa4?wvc~W5!10UfYU?rxPg0uDO?aE}`|4XXF2gKk3|DNjf)oQCBi- zrmJq~qpfcAfqe_A%K8W_ `3WttZ$x9nbgP5m z4XU7#yDO?WIm6A$0oG 6Y?5BIo!E#U7Jf@ 7H0+2DA?+}zU2_~-J4aeWi+Nhi7h>*s_UHjx1T{-zE=nmYYf~Qnb9=-;&h^(A zTnBMB5Ocdmtr?T1Q4n2#cMmUPfBan3spgHkUV#`EHWJ<23_{z+J>lk18SZY?5Ib)U z4y>M!i#uZQ=58|O!^FDsT`BK$bBU>#JU03b5%q1PwTk**A9KFu`rA8}i+oPh@T^>O zMFwT};(B=VGOCxW3|mVVtX<4;F>xDux9ueL4_7C5JjgtY?3ec>Or~h(U*~9npUS5k zcvZfmmE&Z7i5fCm-+u6KzZYY&{Om)y0`axiJ`mIUjxyh1|N8Lp^v8k3&B#1|5_>nU zf?Y{Rlya_s$CUdj_B3De&TFGes%jH8{ZEzs*P>8TlH)PWjV#*| zAN?|inB;htd+mz8TtAP-A?ksI_m4&e*UISGt+%vK`;zbC_Ad5rzpPo8U%|~|6;rlU z=61`3Ypnm>C5a+c?JOO7&zd~##r@kiu!#E>|LXpzU8OcEm-k1TX6 iz!hPUOC#jPGo+i#j?`>pxl3_Y*bD3%tCs1>6v_N|AE4kGpD3;j^l@qeA&N< zwo{OwE5|FwCFC>?Y E8aXyA(63>lkzUCT%<=!Sq5PQw5{=42Lsi$uzGSI(rJXADu(xvStfOh%kdvu^ zmHe}V%b&^Vzj6O^2}qL _ABD^ zQ&M`8YbTRQZd9=={L#hF74ETO|2?{#79d=oVwW%H9-}`>CX@12>?+gEwP$ugzPJPt zE _tWGK2pdd4=CD;pcuLpHQYkkX8f0ZRAQ zk5I`!F;z4F)D-RflhgDHj!rW~`a)yeTxo)P@utXHXN+5G%yE0Q1#ZWe#Em#BT#d0N z$=xe4Hn_UN4p)}jBV(Bp(wDl@bwS1wH>Tr8*BO~h?MM#DT;j+LGijLv$)04(aC=-? zVT;Slt&uv{3K@%R_>K)OEw;gx#a0qsU1AA|7Sk29$P%|!S~5?hH6@X?#*FzjMCuYf zTv)7)i%Zn=?;cWKy>O;f>X9L}bvo6m)F`-O*|zn{xwZ3lcJ4&HT-Tb8PTh!~8#1O< zoheg78!VdAxzTd!IVSWA_BqzQzISS;K<~8nb?FAwzSOya&lO_lu61wZf1^tSznh&K z_}<_-{mm{7d~Xp$ce{HdzdJn}*SSx;+{0dt>pbB7L*m~a_6YLJ63@bd{O%Dum&LIA ze8zkKyWJZ4@;%?XO!ro|20k~s)vtA RjbFE)8oHuy1U~MzLesHCWKSu4j~Qxw3sq8k)D))iP`m z(WItIXzhyT9cxy!YFXXgI BGT@H?x4qSuV!`{M9B3pA?*hypuTXQ?;Q>JQZVgrYgj7PtM9QckP$70vM*cD;U zOj9Dt5S(}~NPNeMeiti8IaxcxnfI=AOA$j~%GL>PHqMgYMGA9bIQ=$G5|yF+%G${K zjHRw|bq{M>>r&>HHg-nl)~329mO5I77Jt B9f_!eev5Q-AKxnu zyK`VR?i`pynvL6(e|@F7#o=>sm*+}Zhv(ygpd*47;34V$p?SDZeJLrN&+Z>yfV)iV z{_zzU(xY3hwwiu~lXYoTTQi40V)@H+LxBa6X)9@~=y&cA=<_ml%N%0esOw2ATrM$k zg7S!o%OeKw70*e}tcpe=_1iCPpMlRAYmiIb*4)fh-;n$r#k)Dg04nZ nmiMw9*s;%SuEEzYWRATzjk5WIGouy4{tARBOh|iq`*YJq5M02(`2^axx}%G zx-8~f@FVe|a79`Ch%bhTauPU9@vbP_E58t1nMfQXb(U}JBEFJ(%eVI<_YQTJ?;a(_ z@+1l$p92A$Jfxz$ );kS;k`lnW~GMz1z_PG2?LWz&u {@XYWrF?)A-)_a-w%T!!WPC`0ynyIHxQ_uJmZc^tY?;T~X+}jF$ zTPk={C;K)=^y~MDeV|DR>UC+d48FfKRdl%t6MaKnn>fz73uewP5?I#vJd^r-ZPzz- zD%ya&zH+Vz{c>VpMg81AO} muHixUPbaPpR+rn&&0NWsrwL?z6wjI*M^ql+#FI zbaRN=d;ah~?%%kATWKlC Rbv?g;-%m5Q4C*DLb(s9ZES zq&`|#Ek}8`={-$#eHR^`yME8Vz`7DY$F{F!M1AI6vnNhrekp@x{t9SA ?QOH6&P7X9}xU& zlGyfxdv@yjUdZg$#>C*`t4FNkw^F?dS+3wkq0cF>vyUHS;m(cg5PDu0PMyRNw$DAR zv-NC;OJ>glZQ)4R c+?7= BKTM|D-)X#sHxd%O))I~r|$`HGB!uaqJl*_J0So_YzhYrNy%?a4GY8h@Moy3ND zldwLzJE}N2J6CLxZ z+c*6p+1%N@b`5b06R>pFY%HWbfd#~+E}c0Wmx#gTz=Wie$0ZE2;B&>i1#F`$h#_8& zecN|RddF!OlW_a`H9URvkmJ@Xe17{(!k$Aq58^oY`5B&Op2n_qt5BW#xC6R{p|P(I z?wyE}#y~|oE8rM;E`AhhyE F8lABIY ygYbP+sLht+GoogJc&*H@X zJxE-)j%79<6CxtfqeT-*uR+Y?Q~R~TtBf6A`y0oUg6!A$$aBvbT^pcn6*nY}3BrZZ z4H4bc3%%R4Mz0Q`2=CbwBm4Bij1dDdvRg;AtXJ>7m5EIh`Bz{|C84g8nmGjyZ09_0 z{r1u%|EiK5A*y^Um1q-EzwwQ;M-JlCyVnxGVr i;{ymt?`h-J=5 zNtXKa?!@g_L+tpXS@Wc}KD^%`4C>JfL%ViHmyi&&s26}yU0R`kvj7BEtBeiP2jb+a zDC&;Pm(FK%xmJ0{bL%|n11Qc= sR$S+@Na3P1LnrQNgM7GRKlmvx!-7B3_03|M>h- zo#mn;(^FBAX?Rs|^;qA!aqG)n+I7CwsddNO9a^-z)iSvC_29se%sRCKlWSC}ebU{n z$^i$fQU@Jv+}=zX6OC3uO%XM4AeK!SO}!!?ETVgQ?JPuxHo?T+ZE$<@cq|*-8e_UO zr|!x+ #x2oHPORCQP6^8FR))(r!&xY@0Wf`;6I0+cJ$9_kqNacg^>&R5h7noQEFU|9`?r z6C1=bFkpL85^YBq{jej6je`LDS(Dg^B-y@LL `#vfp~cDuA~DZ#*SyiAc^rq*ufF=rkqzXjtKgW=WqR- zQwylC{DGL%hs5C}_VGu a(Jgs zA3SaC8Y~<>PF7O&&*7YZT>uicM9IRyV#$n70T>_RRZ!E>E~A8+VHm65)>z*%k-FQ` z=qLCPW8)Vhp9=hsBJ4l%`Yqqz+!yd1{$s{wV!9_IV^TBps8tS=npQ=6R1kXB_CSlk z#;EUJ4sC1KfW4XB34ixWy@RV%8{qBWWKz@KLFQ~MRoAcC`e~o8tcq)S+GjJ1T0gNr zUhSNSlhG|Pz|TF~#l-SVHTUYz1@2F*gZ>-de(IfKJ1K9D&BLwvoj3>jpst$}dU=;e z(+aLw+_erxW&Mz}de0O zhd@yY+^OIz`B?^GNa-3-G6DuQhglUjIEEEtBj z2WLt4EH18&hJ%^y17b@3nPHA$0(bY m!cyV>nK6yiOoq?+1r4f1+5-4D>h#8gh@I(`0DJ<{#dkjbV8&m*%uBwB04HKUJT9 zrX6rRDfs*XS;V#N8Qqd1;J(s0@ctzEF2>sl+}#7p%v$@@z%RZ1ac*=F#s^m^tYT}O zqN`@mk7KkIF+pq(V!Hb6-uI7-qJ+#;N0J+9J6YK!Brcgu>|z}Hw{D6Qu5;P>|55() zxSxJ6+T3Y@hbK1mi(Z1jsIu;fSzJE4H~RQiz^!Gy@nlOBvSRz;_}Jzc8{(N?%f%^` zxZ!#R5^n6j;h&&y6?JwfAsdmo`PHbEdUo@2+N5lSM-T27uZRD`9QJ4G`}?@mhsn8r zfqX72#{PZ9<%+P6 GQC2%eMIN_UG+={pmhJyDWv&H a0q*ax4T z+k~zyT47p?8hErJT*5+rqVD(eqYJTl+5j}E>3Pr6z@nd)8l^h4>!SLXuxkPqA&n)< zERFtco43sq>zO~z*Y|b&dw#Bc^4?_O{e?KzsT|`e*T-2R@%i-3T8!z_6Hca9*gdWj zK64y+L>YPFj6vuS==a>-)Oxv=vUY{i=DJE&dcWTDi2D3*E}=If@aW{f@xa~#J{J*J z`_ufhE&p^}sZ4UHlW`0mL^~(O_$lT30%I-4J7KSE_l&_<)WI8#E0)Ge>Q^or(XAlF z+v}FCvDG|vW$o%3s;bo0P?0@bE|&0r&!xuofSSa=O3TP$ku)YFU%!g=k0ANp_~*w0 zAtU?YJ7V2W8QaIC)woR?2Ip6g! ^IhID&+YGdf zyQ|7Hom6E?Dr)5WuUxc2#(DEADbgZVws^0s5;COk;2a?j5b`mhC!cZgytF?S^MSO+ z7j;NJzO8eG%uK>#6YKSgc6gq1Z%~jY-}i~Kke4I%FmJQ&&n`jc=1FMf?~Oh4!qG0k z7yA}Pa=u@Qr`w`%JTe%SY;3NuUs}@Ulp>q|wW~p$eJ%2>sj8=;p{mC-GTI=ZUtB_G zhx#JI&aXPxSaSqEwO5y3c>3TT#tt1$TxWI4h-g!ex-DmqAET@+N7BI-JPFyTa5E_{ zxI($LkYCTFeYkF|J3x%1FP=OUs|bkw(*y3C-eg_Er=$edGxZqQ-WP>;L3qceSU9{h zZI!i>_ 9`$5iQSX0Z x>H($E zX6UprQJBPdz1oLTX3-I?s1J1Pz&@$|cWvH+I^F?rb|_DoXAP_x-xqI%eLC`=v^E-{ z4g9f-=U%f16Bo|0|NYTfSTV2}an43_Dp@&kk7~d=({D<>Hd8gqdDQ+3tgn(>r%1`t z#A#wh*Xj>dRCGLrz5;pHqpp)tG5__5>&q_VQUMmG4rtl5m6U&hcigjeE5=hs9poE` z9^C&=89f#)8Z^f8IrGr8UIR(ywSaiShJJxqzF;ABjYPeJc2h6HftY5lSxIvIwwa+7 z4lEXJojPa-=aBcI)LUFg9hdpiTHxKuh3MbBULN0Rr6JBW)C{!9{}9@8uqRR1< E6Bzg1Pr>)2tQSx=?|X z {UXX)MSBu< z5!F--d9Nq=M|5t^wYJbTSt{xCi2fkP1ThEP+A$3^%a-NYriP Y`8m25}jduo$PSWxkBJ$|}l6%EZ$SEumrh-jQegn`TE) zp7Zp}Sf?ll!Pn>aa+|+GekjH~5hjg~EGxyhDE#x;S2)(7NrR@C7Cnx7WybXDVrYk^ z#r%J}?xPJu?swKuZ^%N=e6fM5j mC-ez8C|{w2jzK)XTIF^t~_g@`3u%xzB_hjj#2ps9#A| zF6mSKcwLb9;s)1v@mM~p2eBMZ(AF@Kup^WDw8Jav&M4M=@^!Dg?zeDlTgKMqQ%OV1 z#nde=qi^9RD h$nNV#ZTQWq6Tq^=`#GqvPtv5Jbbxy}5|(+5fN zhYu+mkpJPu@07vs@c!x!WqU%eNxql6x@|g+tr(3 H3DT_%AVyIP{okq4q;>A@4m!1O41;eP>iYC>gF;F?kDtAbjmmP^}2JPSQnAE zPnT(bNXT@5*ba)zKzf!-yGU2R;a%Rp#at))ws61YTXFx6a+lE@6QjZ?cS_@V!Icfz zxMU_QOl;SYZ*3LM)&Gl&YXezn^OCY^+!k|RHEe4C_WANX>Jpxp?`IkC{PRa;z_5bc z4|4rSv9FQp{numL?}Z7Q1aV_~!bH~s2^0GwUtkZYTlg~h7c}y#cb9y-s;hGC_7Ajy zAC;*RwN8XCI&~BbOWQbX+c9UDG*^rKf4Z`ZeSw$;Q3eX)*@oE9eY!#P4hr{2tFz zINO3~4~aZ8a Rbo>ow|uX;#(1>%Dtdy z2fAwd>O60qUBTH6XJSX=V{x5+OeF^7VXCBenfLN0KHofo4;SNqGoHzL7ww%S+Py?# zze{~a&i!wW%*L8gorG)?WgR`xF0d|fU-O9X5m=!(-p_@Phx=vnUs8j1YiWm8k;Q-1 z6*dTXrYdwFTWYHte-vw$YR)b=G_fNd{}PE8d#6#?aUuDMCDBHmkm0ZmOY$q>3LAF} zdq>-AZz<1vEA%1{&B80nd7o?
a5|j(N^lQI($Q2lauxA-KD3zjlek_HsBJxzEoqIF zU3`!+u{o~K?uc89yW`HvzPOh#2wAI#;{KXp$XYcRS@8pLFQzZ i@Y*@UO`=k*1PCAos#sRb+;y2AW1=bvb7X-W5a}J7`^{4DI@RVM{OSZ}GhD z2+u8#4Xe-d%RuZNP#5cIS7>f)FAT2ZL7O(NC`(;UJ?d<7T?tp}WV+dvf`e6A)b|cS zjq;wDF{C3tUE7I5ac;;lrKpIuavncGfOp;dT$fd$o*kWkw*IxrzZ&`H9@v4@O-W{= zqOGc5+11?ksfB?R`4@W^L82`5q0Y6u3CqI4xFkxMS)#PL6`V~hQBvO=#3F!c701_s zI@i3e_GRE(trn`3^F%=H=BV%2mil6qusE_S#}C@h61Mxqcq-P7TsN dn=L zXNBshT&6NAm9E5oTott{d7-YS4;p&ck$7%euL f-a1;xSH9=fV|og-;*eVQBCExmqf^ 07Mk|3R4=YSBKagj@VJH~;(lXff?_-@!{+Lq#`i#K0jR zK7V{GwSyfS)^fe>#P-@0%jYhl9nOomeI*0C8SYcXOX7dr=;-3|`fYoc>YZgNWQ(&W zO)0W8vP{%a(y}$t)FDp&@89eGmC{p|+v?RZGqjvBciMF6Z0yyu$LQIr9cAPG2yHb4 z`*-ZboGEkBGjuF!dDNyI2V(lpo|X3*abEBpiN5rXxNrX7Q@)9w#Rl5(anaz>1~FQH zC9D6;yDH**T{<5$DQRN8Z2I_#xgXxXChqYf!dM2SY|C*DsEz6#KB(+opZ`x$2Fr;5 zmD}3+HSY@CkifThZr$;%wwCcMj`cjp=WH*TUHxZR`0J@^Q3fN al2^P4#PA(V{m{prJdSUhV^VWqNFQfYgk z1MxR3Ty-)pm&g9~eExGOlvOfg8K|)(sF&b>>9nZs;dyf2^jUc~Xs=Dkg9~`>CEE4Z zOYmGEVaBg!q=UK#h4s7xZc;yd3MaQRls@yk`F|tV`Fl%6sI}`8cOtXVP}A$ d>*}(u4>rk}?V}HD%rQCVJN4B~2X1nH$ bdVJ-Vn*SZaOmC>juOot2$!nrayJU{1oXeS@`Usy`wJqU@&xVp_t@f! zlDkYt^6R5$v }3r*MxI z`@eIGd>PL8#oztvif}u=f9xBV-;o%M`o _qDf+?{bDDAcPF{57WD7+ZwdTc0{@o4za{W*3H)0E|CYeNCGh{> z65#q#tU!N5KT{&VelLe<+*L;2IThTA*FfenO=K=CLAy=5xErgBI|&B39cPHF1bsZ+ ztcz#cb#Qls5&yW?7}r;s(dLvXZpWJ9W=u)imLjdRr1G03F0Y{7DRIA&wxM{Rx!hK= zMU}ad_NSIQAY-v3$yuVb#jb@(3*8Ho7I_pVFZL)(SzNv-WuZH%a$(BCs)fmOD;Fls ztx}Y-z@sR2VQHi lmGsq@9XE6JJRE|QzE#18389FVrineXzw zCCmfq(sCQ5(2mu)>6SP<)e0$dZIHUa2FVNTkwQ0Vt^;jdStD((1ybf%A!(K%%c7)N zC6O}QLfj*Djs-I2nIW0?>GLe;w?y&`KAUb%zd5eOSl~*WIWEUrAT!PamtxIvHNgnC zSLx$^ye{5sQAa_NGII8-py(d!;sYsP_BnBc?DN*Kygx_U`>Sf58CqW!JE)~ xAi%SRY zzPMuO!HY4&4<^M9J9KXO@B D-JimPS>C}YC^A}=9oJ&p^c`+$IA}xLO=u645 zBQq|>MqEmYjmSK|GCaNbUidGcTR!a4g_wvdDXT_ZOOB7Yb}@FuwUqdX8!2%k?xZD* ze3%wL;!%1+#G};sk@r*LM?OeN82KQXVJY$93=4mh6f-<4IWFR6Qf&COl-Tf_$+6)# z`2Jl!XL$I%)Kw8#>8r)N5qHv7MczzXHS!MMyO|UdekCbp#I@wu;kT3HhTphI|HYUQ zms8^+(vnvWPfuDpAT?#hpp2vyLozR}94^s?6~i)9;=-?|#16|yjT@Gdo)Dg%9v_~X zkuV}9Ghsy1rTF0&GgpmFO^*vtxwvBR+4O|rsmZZJlli^WjQHV6mlDF0(-VdzWv+`% z$y__;;-%H2lQLF~PP)8y?1jr~$DB+{h&YmxFk%n$y`Fr_1>;d+iEyE?(}kW+V17#w1;${s-45$YIY6>y U0Xb0HSY(UkVZOvH0r*cjWumhr^B9bFqEYbngZ%ub4L$LHdi zh-1h1?M$qt^hDa?nXN?DyeILQcweL~(h_-a;JtWX#J6P}dy$voygBk40-q(1$MmE$ z8Rwg{MZTr{^F62Hdnumc8w?Y1oM}tVwWJ-%UZT>pgXU&wPjY~(C>zER&-p(xaANtC z; eq~A} z*K~0{?QUat#I2;wK1&1hL_=+(O|+4=mTe$z?XXs|ZDTtr4GpfQH>!=F+2WqTX0zJY zF`L`1p~<*5z7_)ms#>(GQrfJeS9$X;ewEBSR4;GZv08bvE;TBc^{Q3Lq?dOElYxGf zj7J34FzHy;-MCHVa>n(`mNv1}HFdPpGYd9QH#|gaZ6UF=C`JB+Fyku;9L-lejRIfv z$F3p`ISxmj-dB9mAHV-Ialgg-DDM9kuA)rDw-mS<#dp7brU=vJ|Fh`AT*v&8oxVkH zeRciPrX_SO%9~r5SZEuVm((*hGuJUPC8pcVM9aX$T*uhRLeJPxSIfYVnCib-62zk% zUPf9*x@Al(n;NJaoUzb1LqK&;)bXf@a&}G-w)`9|+0LzKE0C^pG4X%z;8c=*$b$Wt zZAG{abVazmneg)&`-PQ>m83&qVPwU4wkT!I{$MTa4ziDmG}t$s#66!mi@w8WrENtV zc|12;N0eqhgzIJ_><`*Y 5YEPOfrtE`>@iZm8l?8kLDLt-xm 6&O~LajHxIhg<_@#HSf(7#=j%FfPybuO@Wa{+E}qF~k3m zQes;)C~aoh(n8z#x`(|3cFl{#d;WLNqtk0~oB!{1i*^-n?4BXnRJ=+5%{_B)Yd38z z?wY~ynfy=V=@MPvF%{RhPr-G`FKjT*#=&Ky(YLWb!rL`MGVRk{-!%(&_R@wT{|8E> zDW$Q8_83JvOz$Sc?$CDQ-Tia;KftuR$oo6Aog(~##QiOX-Qqjq*=^xxp6=4kIye{i zX=m{s u5aTlZKHq;pdPw~Vd6+!> zA)h~FT8|V&8;_5u^Yobi?ekc~74PubL-9W2K4RD-g-adLM@JSjjw0S%JUu=iZ!&ga zB5g-$sp{n!YZ=ZoH?*;JvT{?gGna(j|9CS{p^YJ7Hb!6FSkp+;pds-)*FA}EJslH? zf=B#6&=;3!Uy(Kz#eXo A|Tl|dvT)vl+L7QiE C87Nm;Vp_ O5k?#s6dTzq&=-Z*5P0N#h4LHWhWj^8IRqGY&$(KweMZhJSzmU44E@ zON4(DSMmK{xvM05soBD2DzWT&Y_ECDcP{HMCv`PGB~u5Mc0b>q6GUAH(i_^}c+LOi zd-W??#_;75y`wJHC;l(I_-}TJgq}cJ0`l)2!TwDfK>QeJ6Lus2>%fINv#LUG_Mf^~ z=Q0z?maM6=k*0A?+8MlDk#p1e)e~@w|3ja#hqhj6*Hfx{MSTeyn_tRJ+_POsB>M7d z_G{KVZDH)DKIrh)jWDi9YosU6;Ip+HH)wlM{6D%xtp8u7CEA0qU&%BT^yNFn_4Iq; zBHn*`_I*0v`oFxVXuFE`Ec}AEwfsNl7_6nfZ&deI7#Z3W!`e1RpJolvG0+b!eQF}8 zMl}R`)<9z~PrB6+RJ|%1RIQBqq(;1NRILh{)~tcx8vLJ0x>5Y^! P=A(-@A&s`Zin?H-rDfxgfj~^&-0>c5E2uw?0@msW1O4uOBwe7=Vq!oz@?Tvj=g` z8;C8WP1E~g6T^=zA4MC;9J>_X;x|5XT*}WngbVyHcRTK#^)&Q$@c*#OX{qX~{N44h zO}v)6gxS(maWgV=G14&DXKiGG?KAsxY>UNi=K12jUyyhA2+NK3WWVi~in5dHUyOgT zxWfJ&L*18A9hzYI$nIRb&E`9D{U2eMSk$|mM0v6 wR z=lUftQ>=4@U&IrB(q*wO5@{Cqd#N1xZQ58Awu$rjfA<5r_8=}<=eePlVLMG)veW*X z^@gY)#I?S@GWYfthHCoprrIWjE7*>6(qeIQ*K{l&KLVflKZ}yx=kM#kxXp@n+e5CQ zH%9lwk|CiuuyiCI9bd$GQjGJ(ZAQ!)QW>*c6|SP*gkRi$2^Z!6gZPT)3Rm%ti2I-7 zE1rLGMVSj?-qJY_iN0OjzvXKYJ`?R+)VqkIsDF BR%Bmg7~LG<@_9DnWz&wfct?6yq#@F}B-TW$QIK^M=MV0MrLh&) z0eZ3jAA45;7uDLlw^(wU20;`A3&d_ju`sY(uif2^Eg0C{-GSX**TincZUq&jWd6^b z-KC7HUcc{pzrXx^J$v??J$v>%^Ugc(yfe>$Bg@9}E4<*}J1}s5n5jf1h79P;B&y-y zPW&*WWp(5}&Zby!h0hz%nojQAOo?}P3HPIaCU`E!=Wmo(-0K_Ui9SPqAnW*qE4Y8i zN-Ul?H~r^6gQw8P_ }4=zP*>?BM(yiy(8d~K1K=PB @qx13`vv?$bBMB~?S{C+ez)3_nl_WetN z! Ki&|lvK41wbvV0iB^u=_KWyB$2WoPU`V4ZPli z>m2zy{JaHhP$O301?T#!%;ySzpp0?-Ld-YkxTI?azD&e_Bc=<@xaHSr8e*lBIZq%V z0sQK5l!&~L1aR~wf+s!^Jk=i)`1_1pQ=Cr{kNX2J0r=&Uq9P$%4~SwO(z0oj34HJ| z@bk4ZHC3w3QSajK{IR`fz+Z{JUs)!yxZ+o!DBU?8j(&uC1ZQT`7T72k4(&$Y-=Tlz z8SzhtC*#hI`z>Q+?61bHvCkT12itVxE9+F~jLWN_8^Ki%Jei9>?l$@* J-FmvJ$puvB5%{pOA!=t><}H>wVigZT}c}k&!<(hX40Yw6Olg^ zLQ}veG-+TkP3YI3!UpuGacEPJU$uGWG #6 zA0MBjJLitUH<=y2QspGnR#s)?h5uezFkmk=7pb$$MON#bu+FhBd?RG-iGX3usp<6O z1ajh^UIZpQ9x fMcTE3L_Y+R2T2wUmYfxW1Od4g_$OaJcWOLYI{b$WE? zw(uR%;1x &{Y{u9>SE!#5e+M?dfHPyv z&Cs8X_#5>#<1h4It_uSD=Ee^2WFOS)VT_%Lub_XU9spnHHjIDC_#Pqy#}M*pQgo|; zUk2QM P-sL>xOxd!Z{=pw7jFp}-M(p#2}ssZOQp6i}=T*DxX<4_~Z} zWk)?Ncko@f1HbH)CmYtxvgD*(sCng=+XriCK3GF`AQ#N<>y$%1>+C+1&CV6;RN1Ic z{UGvl&qBlN_){@Ycgm!3BrCb*4AywFNhBKakK)huGt8xGshLFS3_hwQ4p?{F8y+s` zLjAJ`W~e2S`06_BC)iL=P$%Zq4ZXd~V=mjK(9eSH#2CX~No_{G`*j?lXlQtko`igS ztchAez6;RP$Xn3Otk=I4f8%#$I3Ht1;_G|hw}OrS>H&Rxj~s90?LqkTJU=*&Lb8Ia zCqq^eKfI&2FQ3t4=;SMBPoq}NR$4W0E=>s;O9N5oq+L_+GzSKO2cQ^vdmta)$rJ08 zS+O38`en{ovja~+N#w@bf+NB|e=+LWwiAU84i>l-m!WRRjt%RH>oZ(EcMdu~k`8VT zr#S=K(<|86FHuvzb>$M2BTEhn>DdD{ 0E%f8(4 MI%5!4qoFPhbEL_q ?AM=j(hi{;}m(CjQm+0pCvovE6c;Zm=>+RtQ z)T}}=GL=}}!aDz22bIk_CzbVfJEcw3#+hNXW3YwI~YK8N+UzL!xC z@V@@NWaxm{=vT0#!8?W8Spe36E91z`Fo$BSc}@f!%(hV!I9MOtx{h)9939=go3^c4 zE!2^k6cS2 ?p7sUF0ZuHk|q*FK|P6>4go!klh(&XjrirPa3 zgnB1^J9no^qsP!njLrMDY^HNZ4$zIA^JqEzxXg{yp-BsR_xvfwc-*HTZ-#q>-GZAJ zuw6Q1I>ze~v}esqa _lt;K$c#EkO$6JD<@VvNYc!>Q4}m8+>cDtv;8y_i zI^}9}xz^R%%3ABBw$5s6q1@UNTnx{_9d~1FZMre84xJuR3*51pNg`Eu0j=LBb#YQa z{>lpj{$}v=)HV?*UJdTjmF9$vrxN)J(H^$_KQb>SbRzV8V)R3OzyDHS{KEUmke_7q zL!Qg%pB492Bc_Ia%a|tfI0IV~`Z*f4HXfqiTs@0^iahIG>(|rrIdf<_Y8Vac-Jg22 zYEMmT)(8Jec`D&soP05k=FF0tJTV{gcK1e2qJmVWP${Z|T -5%?8vmxgfaC>}TEN^_Dd~e{ge()#wu%=L( zDy5)zwG>daG&O;~=!JSIQ^AR`b@eL9;2G!{uHW{NE}uGuIF6jO8#?CP;XSbbZc_s6 z-0 n6kxN!k_+G>F3aTUBDbSN$_pFk9vuD z@gwBK--YhIKoQ4}(XqX|XczS0ih1*B`q*&-rajwsq?YxXQ03AU$*(|3%AX@Y##bN8 z>*)jjDBy{4At;~{H4H)>qULQ;bF8<(%R7JSG}^Li4ISOHhc1DK_TKfYg6;aA?Kb$) z5-^{7|KbtuANCt`%G~i25liDhi!j&bzvZymoHX`yYUNP)-j_hu?+UV-GR7F>IuUb~ zm{SYr?Bf2EllvX)l>C{Tsc>e*GTML>O6h=DrfgKUcv%|Qy)U(>(-=5vsBDoEG-r4> z+Bt6|{keWB-PpH+?i|@bk;gXC-J=`n x^qF 4lr zDVV3O*W0pe-(=Khxc2+Yn=nRCqN!c#V*N!;LEav8sBZ<@)2kxtx|E`!Rr6Ebe4gZG zW6!w2mh(sR15Vi~KVqeFJ7uCgh*!&pc(Q_7vrvI7Zj=x5 XHWp(DNO|I7V7hQA?7i<+a$1(p~2%ZJx-8+7_{x=iB zW(5D4xmZ)iQl@#eaOzayc^YjtI6&y!@x#ETK9wn0f+}ME8CbkDxS+~X^?-_0yJ8SE zs8WlX)~HME8Z@P8sA2W~wVo%JYu~+n@tC%+Swq`auZHhq6P?(%mm*G_pqr=x_yA+x z3(SY#;ruw*L`m?|5$phgKf|bVjXDNnLkiD)I$Tg+6MjGT|9u1}XTtqI@%kFzkH!4+ z3?;%|Nlti6@9v(Ws5|E<>fsHlQy~bPZA#KvIl!*V1ikNsv0qK4eSHv%GDq Kq-yzd5o*p+2 @8tt5Rc;Nu{y3v(h*^s zB#?uwa 9M{DaBw zpWwUk{U1<^GYN8pd*-^OAKt!(pX@Pwu@~q7>W;RBjH)elG@@;7+COIy?U~)54$d8j z_=~($!@m$}70eOVd5rS^$$hXLgt_j!Q;VSkrqG_@jVO!8ma ?0$zv-^&*~6v0ht*{ gaHOp5{&SaZ8T4}EBW@=_Hlgn+s4(1OWm81Vl(I5jBrc#X`xOb2G!r!oa z;|8IAB4Z=0KgFOHDljwRC156ComNMteQm_dxc%BO!#M_7;P1f~K~B;(gUtaOOtAam zm;LY#cK-|1WqWWJ_?`zZ*=}0DWC_g}H&K|Qx2*RE1;REggs~>8qbE6H{>JgaqdU|` zokG}n@LR?s1}_ooRSSb#(Bz(tu(rJb`s2!%ZCv0l)N{GA6} FK(GG`wm7VH~Jm zAUmBJ$T~nT17` QAddQy26evce za_69OsDYN#$(0Iucp%PKc?mfj?JO*8vdAo~ lGsR5{$P&qGUcW|LaV?zbs2G372J9yCG4jrjlnevp?*@OPv zwUsuF>p@#X+Eb&Fg{gC(A8AZAH?*d@Y2d0KfLQM?n4h)=M=k0g+60=)t; JL5Td0@f{Jz@zvEH8ozq-*W%Pb-IC?A!m-jzrJe+ZC<&87Ehl^W3X=0 zy=`Zq7IJmeVep5I=;N6m&m;$Yq*(~{?nz;0M_Ma8@^;HcC9>zBiuru0LFr=Tmn#=3 z%{0`fULdU)+L5+T>_!KtccE>FpK`NxqT%gp3vrkUSd&OZykP>kwmA+r7Jc3rSD6x9 zg_s78=SX;V9{3t{)@Qcd|9K2}16vgFeo==f)4e%u1Rh+}XQtv=-RMy7@_IX9NM)MU zuoyWhY{&* e=DE{oSy(8Y+_aKL!|or~vI-Ri|8joJ zEj;WqQH^2+ldBZY|1q#Y-lPB@?*vDs{W~iY-3y(i?Mr)=!&?`d%x|sCZ0^fVG)+V@ zgC6(+{P`n#PF$5(F43A>$+aHf#U8AZYa>hKfjl;CO(XjZqH$QWoQn0X(7{7!)PO-4 z)B0oH)|&=)?M2;Mb)pVU+n^Q `X8oSl$8n`ugVC^}4 zL~GiI7__cc%LqAAx5Gmy8l2PTW_6+C(>u_TUiHB>ZAa_Ez%S1H>Ow3Mw!)ee$AK97 zy%1B$x&X%zpOf(PoZxf%D*l3O@SOGyY_zo)1E$fVRek9EuqxES&l|d3L&2zR%67nc zv_9p1sATTEw0pr+8Ua6UZU53#ELR>X;FXJf-QoL(kGHUwHx=;6K{+rs 5L^B$7Ng@!tPA7Kn#C+}r?c2B(ez?qZ z5^Lp2uOCtD!)s_)Xvcz?qyxwDqRHcl5Tg C=#+T0C^*Bs3&%D-Dn|}J{ED)yjB$_#1LQ&60tq;w>f?QYgCVU4H7 %Wl~Pt%*oEA;ZtReF5wBHe}0_a=N>ces|)g)?;b%znDFcRoEjJdfUCjQV&3GI@P9 z#a~@Tu~# musEP%(QM6W?Bz(Q*Abtg)SR7gWVOTHd!sCc5Y@;TUS%5tur?h zsf~k)*hXg})@fv78w)d;tx{=ft2USETv2 d?3`)h|<$RHkb95qxQQ+a}b&zbN_V z#u^&t%UaZ2X 3m0MxX-_RtPmJeFl}lHk8Wj*j-=sNkX0GYn;NQ+8tP2*+R}3~o18{B!Qelj% zLFKAY$7ZcDJ`JVqYgf^0#7D3XO2Cz|HH_PO%)iZkO_2|yoTT02dI>L4^9D6N*$#Y! zS_wP`97Ij$BCg11hA(k_hca}QZ9&+9$1o4r(y +D!AdV7A;zov?Q7m!}{F6evP&YU}N}Z0tIFXl(qEcj;*=)56%- z0(Ui%F@Jo`|HtuVE>DFhyAFCnrclcys-hSdibM9Dt>ikni9{#1GC^GlSt^&m6ts|N z)?$&>Vq2XHoq=DE?MMA{hW*I?0N9WmbCdJ|YXFdmIQVUO-TmdG2bkwY(ksLxuuaK6 z2=+U~M8BlhPag?$hh)TB7;RKxewr4qpZyy6bIc&u{oyg-)$TELd2C(yeJaz0+C>nP ztEHC3b3+GIPHF5LIuDz0K!v>28uHzvaTCOtOr`Qg12Au03O8mvb#Br;+1gxnp;^_S zsE3FX32xh(dN*m5l;6Q&aJB4N?ds;v25vu;gcNw<|6Z)$k7LiDRETt_oi39otifNs z!c3-##@r+d^#CrInrNn2%C*IHmOAs6xjazQ4YdY1j|BC&P>b3dYy0QRf;XRID!z&n z_g@2U!dx cj@lbYZ|ZpLtDll>!I(@uL1tkDC*D@;(FR=;rBb-2kTL8 z$Ya*o)3(lK=p4@l(bz9=41VGg@bz|S-kO$T&7w2>s>N~^ph+V}(3{8is7<}b$(B;Z zmcab^FCX8!i3YcBiCoyA4|(nE8`bmilm@uF{XN)z+NXiPg$B4P1AzV8t^s*yYJ(Eg z1T{~xXdRd@{waJ3)6HbsypRPM^aJM-C@}Un7K<#S2V!2C*2nlm82s!${XN&?@r3L8 zVl6 nOSuQk%{Xt%^E170BDsiE=q)qCMTq zLI(uWdFcN|@DJHo*iue6Z*qY@GQUeE>V#(%R;w7*%;N!>Q6-~(&N#V5=ayTe%aqsN z!9AaYlTFDi+2sCNJ;bH5z|8+8{uCkyC45FE%0igOznIXiIlVoC8lM|S(9Owz(8b|Z zX+wtqs_ujMM7cH&bH!a=P98nntTUf*!hH4WS;W4;Z}de!+mB%K-~5ch56JbvjCIf6 z?4Lx}CpDo6*nt-y1HH=Tfge&sVXy~|_o+x@suiYOcFw?9N2NWp(qzmHk6~Q6IkgEr zS>BB<% CXXy6jHqq<-nZSM&T4|uW(E%i}l|3s1f|tvH!n`<&S)q z0sjxT_6u`BmVs!D0e5D%L(Q;ikpCds2>ahbVN3a3Tqz)%J1I~bs)(B_O{iOhPQn(r zGovY}(T32Q{S(o5rqe_4QxweR#c@c7?JVuon8*G)aA&v^6P8QVYhtgV(o{9d)z*bh zEggyY70ic_&mV>Q-VfIdq|2do1YNMDQ+W!4F2KBBh?Nn>{(r)5`x@41?9IQlM>xI! z`v1dC)P=?G >ys&(jz-fg!)Giw<8=bAfmP=4%c=Er-F4vI9dNEk1WfFU(*3Uww zemSCTLp}aS@jNgVL?50_&o+;w8&m$EYon^u)Oy8*wels1wbal1e!@KbYj}S5F<| Bxo3?iipevy@>F$C~^m5lY z;rZ}0;(C#ce++WRH-vV@SgC`*OA}=((~Z?wTD$o;xS%F(>KyvlKp(vxz8twwH_c3J zr_@?uy={Hb9JwhH96fIlLlMm~fIbn8_8PS n6>Gj)s-D}EY^`jQF_%7NBGcBeFwt3pgF!5VFGc#3bG-kyJc-Rk zy-ODo*(x-(6sDSYv--8BSk!@L+>LsX<=_o+zU%oFro32-fBEDwVhR4``1AZf{w>8` zTt_EobQSDeSH$|~&Ez7~!ras;fG&-!Mt9*Ce!6}L#zU^5%6;N9b%IeV_Ez|KtP^-q z(X5&2Xy1x7x3M2$3SBXeW?i6Oq%qSLGM8&iBoa$eJJ0HW8@8Wz0jY&(d|6*n4m)e5 z%2c(fC}I(BZ=Fi-|3s}=$Tk1oclg~8woe2PnmaYD)e!!?7}$Q_+26iZFaNjBWBiei z%e8 )sD)qP54nf93#r6Wp$@W? ztD-`>LI=PvCe#S#--npyvrC4O6Jp^);rB@O`TmP#0QO&E^aJ?+=h2h(1A%vYda$$` zJqaI5ul7#F_{W%Yy=0>v{7k>+zJV6Gc`Oypo*ljdN7~b)Jm!wo1pATakQWe3xUqd1 zs-NEr_JnmZa ?6R=_qsN$WMg!M{e(W>sry1un_Wx)c z V)Z0H9`#tPFwgb@K{W*s&htCw^ zLyNg(M%)m_j<5z;OPT=vF$Xro49peA3u}vaX1Af6VfE<3sA{yXV>#+n8hND1H-N8T zx7 ZenI)RUd1DuY$XDq1d}8DF*gnC*(HdK~CiJNB95bejkik zJobZ!Am&myaMxq0x9w7G`iy;@=XrYESx4YAe`0%K6LoIX5dL5d&1+JUF2QefZ&@$> z+)1#VQa{6MjO-_RxqS@1+A^GO% MEi(cue$bJimYIxUY}<5aR!k2lwtYV!(~~e?`v=vLN(% z#-4Qr_%g3 @26;rE7h-?e?~4|PTGs-WMqG_peRiww$Ltr4#`zyEZ=lPEwo@MDwH3iS@d4QR zmqyp1#~TI e3~-;$IL@ct zH=KuaV$ZLpr ?FjIq{@_jT#3Or@fvf;9g})eRq%%@ z&2;fLR=OQoZR`WU?=BQ-{!F>Y&tUT3d`r*)f(*zcR>i;>ejIC96gFbyzkKee*Z&;* z{qEEv=;^fh E<~rYPi) zyu-Nu9`k`1w8uLqQuvrIRNucO*(x29u^w<$YoQy8{Lt)bGacf;*!N@c-|W!e{auW` zp{ap?9}BrIX~%|jz#kIuv*&WWj>zkAtfPPSwT;&^Tt5k1j_)H@3pSd5zOT3ExPQMp zVYKhk>VCY2Y~0$rgu2wNNB$mev;cXb{R0cIZ PQJ^76{k7vM!XS^k^p3(9l}g zCSXl1!p6#aF!(>b9F?}x>~=1|fn)#l^*6p7l>g!f(&CR;-{BgC1Dycp+24!#;r{mp zTTK|B|C9LhwZR2<|D=A*7yNpRJ@ sc 5V#>vPEa{@3b%$QS2`aJ;90FZ?r%`#boy-=CO+^^HkX4><^Z zz-j&%cKSQKXY>gP@er81-^Bdx{Lmo5x8J;24wAwKa7O$e^7&%m$BEEdXeVY;*_1-e zfZE%|3D2MFtSB+B`<3E;zFjQjs1<{z1ee?x2WwZl2rd+k&raWmztX3_)Yt#+``;aR z!uM#%`-godtk(kfEnz*WU*l@v!wp63#~kY0s2cOI(BS5EDC(%u_s{1;KcIfg&1uc) z!tiQzVOTY)lh>1LV#R_RWEyg}0 -fjy5w-^?k;zAEnf;5-vzz2TQ* z{NJCLPOC6_}B|0YS0<1 z?*wFXV_t_VYIBVf`aOJRtlxjlKRGypQkuE7@cOUrRPT>)0sdNZ=>K5mPCK$|m*D?F zXTm>Vk6e$-Ck|8p_8n<4IEJ3zyG4(|_m_k`2th~SJbjE{MxF7ka$(Rdu-%M#A &bQrEc}BA*N%V(DzveqK{2SOk_v8II1Qc9#DmR9G!R$xI<;8F+&ZHzj~bi*l{^x z{N!B+2$-8f4y@p3#9Gx~-j4+Ffg+K;SSD6GBHwF;3^DFrZn>#lla_P|+@~OuL!XbO zft@;%Gv-4%Gka1o-$GQWWB@q7uA`483Osr5z
8Af zG&pFcj~PpwvG#cF pPCqALopFCjXSxQ?w$0tj zBQDeia-*JWtyGI8zm)GT6vq?L|Mw=lAW@F z=d5f|KYDWaX3DkoxF>;w;uW} @i-rldA=`l*8~kWxFN&Prj25&C5aJ+#e?R0*;Q@kk9ev8! zxR#T#efo6&d+#v*mgw`~gmkr#sZPsf%94z~32F^}?T_(?ZetnnM*n|^ydNP3mg8W# zalOmdjhdl t3Wl&1yU*SgDsv8jyC9uMaY+` zRRP>8;O}Dn!1-gd#*P&@_n2!63Z24+45gyE^HCAx($ub4g>Ibr6FGG)X>{*ibOyQR z?wOEd0Y0`C^%~MWaQg~z$jk|c&px<*1v$CHsC>zClp`y+0l^^{P{fadTOhA*#VBCS zag7|WskZ^5IBxgE3_38gAJ$@Qs9W7C6nAnCjYRDqHFA&-gKvcWIXqwBIpFi~!Sr-R zHyTjWkGb7G0OP8t(TYc@)MJnOO=c!)m0YHB6-n^iO_5vq4Z8MgSp1!1Y`-g6=SvjT zzy%S5)(JUXa6wpz#4`5re*TZ~2j-mf*8 Cea31_*fmAT3FStEDsCzT;FoUa%Ip1ba2!rf^FDhBD^I89&IkX>~ z+C?!ZGuB>ZIn}@B`_JLx34WIDf^Syv`wHU#@IO9-uC5)4I>OG>tWp`+d~+#$Y&W5v z*R>5}(f`>;0G$E+U+ox8kJk04z`Wkjcgnju3vD(pTN~JZhW>A=HZ_x}dt)xR6Ze6* z4#ZghMPK_o0zczje7DpJ7%J?LkG9s$-V sTJwfd$K=DtgStv(J|Z|5a~1L)9>O;kIuDtNNJDY!=;S_KY3FK2gf z`DCHBix<*uaOL|KE=Ds$Mw4H@BH)! hFKF zBaCX5C`{uzHx~5$>qDsBiT6_FM2~;;!HIMMypbNLcWY{*+L&2mZJx)$7W&kn`%Tpf z;J*lS$Y(OCs=B4Q4$t?Wnir@<_A1~jR&=sfxyFy`G8Xl3b0=Yqf38SsrQ`n37<0@C z`ne}$xTsME1pN=41{v;V#9yay0!K_Ys_0)1&y@R>6^#S`LAp3_w%yPt-@krN;mej& zZSeGE1D7^pou~jfQ?{e-;Vty*e&EkR%_|B7|MD|%XFt1hn;KQ+Iyjcpx=vl1Gj6=V zC0QUxULmJ)KsUtYgVQdFc_F#aL)RO95Zw1Cj~dPT826Nlw^0U+TRz76pmk6ne0@g0 zpTQPD-@d;sjGm*$t3Jj9zF@4?r&|ZWm=SY)IxXzq96kayDa|!lw@1i?LHEm{`ymr( z>OA1`?<|+AOq?8;%kL+bZssrjra#yqLOm%f54Dx^g*pNCkfZASOf0qR2>jvLG3VTG z=m@OyNL0NLix!T1#d;*?`Kmc9h;4vCjQ=tG+;Y16K*vYYZg6c{$gS}#6%+=p$aMI# zUB~l6K@O4-EAj^X-1})v@KCCXew{bFFZqH8*3&tguzu!bof#a(CBXe#4E-B?Y2XRU z;g*xifTOZ2IKtK}UIaVtCWiQU;LdZ0R2yGk>jhlX;F+#cx||@7My%6sSuRqWXC`;l zD;}@6>(khSYzJ~nhq+;{pnnfOpu 5~_ hV!6&Q}hv(cg%*7a3lTkv`) z#L9dc3;U-UEBhp=SkZ)SRyD9UMLe<+T(s~3SmE mc&Z;(@t= zl?CcY) -RD5M~$Xo-MgZXv+b{hZKk71BS+JN8<(hOoAxRFpRwmw4Zi*t z;Qu$S?R{PE>t%!IfEz-(3A|*;>kUIJk6C7&KDYnZMgQ}6W{NREEV2<<$aL`Ss|zBo z=Um(RsCU+L3U~{2378X(f-Z&q!n%Va74-J2vr=PeAycj@?VA_tqsV&}*3lpX@QpE# zp0EZa*neN>w`{Ys9e}yPliN20F6x^Rr|8AK8_)r4*QK%TzIL6IWBSh|fy3+K`Y_53 zZc+Uhpd_V*9l68CG)KO^QTH?UYUuv;W4oa5v;A*uf8GC|@0~)`iWWwGm-?}*&b}=C z8wldy=knKnbm1ZXLjRe;CuGiR0+{ooJ`L_nUd_|h_kE$ )yhdYNE9Va%ViX!E$PLhcjh zeNPbA(aTX~>jADlD~VJmL*qyEFZ+|QZI65A7&J@f2t9)q2VX^H*Z_w2Q-2bC !o(w8cgq}0^0msY x3N8FO(1zTXhD zhkMyMtshk`T8MP0;bDR~3Tz%yfvcx@uH4{{Zc8urPd8xC`2TgkXBl~hT)>*RCa(t+ z%I*y=W1Bdv`5i$#Ut_6EV=I qW2L#eFY2~BW88rw;L~UJ$wU0*-hi(cx*c=Ah7yT#A@rod z|MTf@k-(pUKXIw7u9 u~)YX_J_Xj zXTTBn!|_}(SjXWQY@WC4ZIuk?eWm}ijBs4o`Q;-hmrE8ZoZX8ecZ@@=fqCHbT}K!9 zZ={MP{MlZ91^l~1Z#tmg2(ezj9K>I}A&dcn9#BFVDD6ao41eCHL9B}iISV5A$wgUo zHZ7445 zc!}|?Wnfw8dmXJtOi28BaL%8dC$z*H;S_oHFxDJO!oIY;4eTqSS+MT>H~q1mM{KXi z6g~nqY=Kf=xp~yQz`Q{}CqT}VwT-2AXF<>GbZgT%!`iyBe<7ao>`KI3Jo-7d0Q;8U z|4n##8#cyTJ@zSfhw(dq@)q%aGkUck@Lp2Ga()yAUGU)?<3Cs5P;VmX{vkTNWgR(S zy%TfKX?T_(^8HkAe&vz=D-W3 z_zQ$}9<2GqKZ<}%El-2}*ZRKk9)4`g t9 zae!kb)8Ya>z%md8-_SSshd;6P;1l3FE+1|mM4tWp4A=fKY}4xZ&%I`Q;n=)j@)dju z`Z;9PVntAEi1B6_Fv!6 + GSi9eun={zvq0-tE)y)V1fJs_Hy`;%M}P9XI*9* z*R=ucexv@!mhl&4V6I>j_HSAP |wU>Cx7%VUDj@EWyPxc)rHXs3+xDgN2CW6IybpYO@& z^W`nabmQ8GC(+rty{SSTZ{VmD;+jh2DNdD<XPFce)xr3N>iB&l_YQ1^@Z<{?u%0 zT($(`f7wi~b#b)S!LRl!;V~(c-vJZWb~N_7lmKrs|&Xi@s$)yA^z_BU;v>mwT8) z63;fBoo;ykr z^@`a4=bM6QFX}&*0Jkr%Z*$9+y&$y+YKT~wOf;=`6ZCP`^;}zQkzNK2_ iql%{)=6a^&4WsMa3N@B6Eql3Ak?GDv$@s>+bAl=hq<(${<&w z6S!lCflC^3bb`+ nRX> 8<^B8~tRDp7A9v14LI z3Dg*jwgvwY) )T^=JeKdcVSn0xS}6D z2Dj?-ts(Sc$5`~w@$?Ec;9l*WAYl0#+gH281it0x;LUozH5B}e!|Cz5K|-yL`%Ajf zow@Dk)~r@^V{$X_b~dD|W9raV@HAfpck7>nD$({XXwBvsT_nF4!joV=HNzlSQ}*dWPNWgx1kEf1F2_|F680jP1Z_VT0FcRaOe5{ zasls;h(p)=CgLCik*F< Q^p5YOi=wZih_Z?zTm2F~=x!|K_G34PwHAN(E4b!bK3j#bcEfIooEX)^$5j z*CyR4ldU_cEUjs3-xl!eptdOVe8Q6m%u9^ebF2xkYw|u~k@5cM-hD9dSG-5xZ!MB& zE&tcXe#T#l+Va3#h1xF*5&M-a7i&+NinK*65H}8=hYqoDCtTHzLQJ6EhSHCv{Mx7k zcx>hVhItWXfv>!3E-&g8ke{a1FF_l?i@UpPS=8LCKu3C4q@!rZ!JT~^*m7S!(5oWq zaF(Nu?Ml<4rX?s8Tw7hr_yTJ$D(K=09#wmeS;BWQ&U$%E-6{!r8A5HrHudUL0n{Bt z-V0*abyTWQB^uH#g#M`B1~KQ(WRDsTa|X2r*XewUyRsU69J$5tL8bFa3jS!$GfSYy zx2{rt#IXzUax%3yYCOpP7xC9J&KLt=@B5fYG sd$rW&zSTCxYHTsCVb CXn-t+;A&5 XeJxHR?l?hcBi- zYIi1UjXS>I3iX>kX#3P26bFBP-1TtyrXKtS_DS>vdBw$0(^D$8I%i^{DlU MLBue|d&q)RhInwqyCGjhWKz2m<^W1N*nvm$WOk V;3YU&lWcZ$6K|M?sdbLAdr_&*m*@c(*Q8wn#~i(;_$L+|;suci_H^dbS-w zURer59yl&cN#zRW!~A_X#b3l+K61aluJG5^si61i;|H2HdL&|hRPo@97zW%OLGa4<1fup>Bw^g4laaZ>Yf z(qe8LH~2mM>s0*H>j|SwSph>8S*skuLr{R)Vr&oT-GlnKYeU6R=U!{&NS;{>Qp<+@ zX#B9H)V m7an zPvp=Sf$lf^-|qWg7G=iY1Tha-`(EhlnFo1TcPRnf(D#q*pc6}H(8gKQXz|1eG+|JG z>e-@|koR9SPa(>TJYJQRJ@UtNg5Ah@oA95fG~UPBf{ i3O2vhJ5!me2mA(F6Sk56r*;3= z@CT0sVxD9otKK$BhmR-r>_yHEvTncy_3YLaT0LzH`dJ{=EmMl>Rjf?ipqoeZ=tX1u z^rq3s*BI8R3k74m=ndKE3Eq&dsFmHdNmJ_8tQ8Gt)rN+4>`bFkV|HwxUKG-+Ck<%V zj@s94K$S~^haTg)E%=CB9CA>pqSdKGi($ZgF%9lDoywN1LpEwR=GCWM9=WLja=`)% zKpzB_q_ZoBQo^-Wl=uvDyZHCt9GAd-fA9J=%;iZEsdB4SuF55mp=36=bpF5oF*g|S zmt$KIzQCu`LdWQHbkT=6zMtpFZxN??bbdc7nbQlrAO(dvnA+S<(9y1TStwVQT;z?K z@VT+|&6bCJJbeYu4$cA2>g0*oDmTo_xkiExF&5AZup7ZeMLDzNr@rmR(};XmHP& zRI^fRa?9i^=y*G=Gt~$TqM4x~G&f` P_9DMu3j7R&sPdO0re=GTOrtNj<6k# za|j+6G-P4s1kM*9a 2ba;Bg*vdX6vQx%@X^p9~pEh I9xaDaaF;1GdBiGOIdc~^ zuhou{95HleG{wnm3{t645gtc53p1C?QK4;_w(Yr^qVb(+{lr1OfrtmrpV`)YHh5RY3 zUw<0br6Yw69Zn;A_ou#XI#5-=02 ;B{uc5dFCRW0)J|m33Ea)NAV2qAha) z$7w9IVVLi^V!kK)jeQ#64KGdQ;E4jy5SkVIVyzJi7CmP0Q0QgugX!%oC NQ}XSIU0t{ZFwszJvaOm=KjzCR1gC z?{}G}Yj%n_!rXw&)5UWwy&Ukka0d2y<$}nk#hNT*s>V35Vd-L=n@Bs?te~kw`_baC zku-ToKYIV_8O1%gNFnVTGv^M@PxT=)2hsYa%kjCNQ;U$XPl}JFIpCv2O|N9Nh4z3} zVN(j uiSP^`H z9>7ygS;5mVc~~$V!QAlqgFE1MK1OHuZiO8QJplRP@gVl;E%=BU2%KShpRf{Z`i^ws z;6dTIQNDh3D_|e@p5{-OKz4{1L0-#ITcvdg nWIOO zEqLF-aq=hPS}GwQ+Vb~!pNj9dyb@#pa)7M^Vk1UCkH*XxI}TVz3w@utyxE_2 z>-e+Fwtb!a2(L)Ph$S1wcj9QmnQg{G7*S7|Diy9m|ruR`Wn z6JQw_J!mjg!?*kKJ|`n=qkee%n#KhWCXI#7NAP4HQJAT!Fi(~V_`TrU_?Dmj` qAg4)}BXb)H168uX{eHS1C$ z`Xh5i7s($;>(}0=sbh9fWxwj==Tlr*`^%RrKSf?Q^1i3HF+Yd%=iXym es## z+j>dJ-P(-U<}xxVit?FTh)v}Bn%HT6+V7X&_ynLkK^&!!z-Q`-7`bJ38pp(0 h%N9 jn)06%{{;VfrHcSvJ%Ih}FE4^ju3V}PeQa~dL9 ifg*m^{%pN?;dahZH+4RCX(JJ_3d5tmMI>R^M&b|Ry74-h)V_H0EGG#{% z0n9z`iKVK6Tz?s{yXGRqHX*L{hkozx52b$sj6Zy}%pGWEDpPx){=@{#;oj6n-PEf> z4SAM 6>G(}^P!IX$~ki>ChC>YCs~)j#a#c~k^Qu0-aML$b-WRM`hZ`26m43u9Ao_z z*pM+e_pkN4pzGNm#Qi-Pb)pcneKX=u8rriLWpNPJ5FUWDIaDms_=uz$IIlDkw7>sD ze_!E?Pe6khQZ%WxSYxM^sH=b@VI#O0W17^cLnrnkC-?(+-JzRP8sve;XrB86#P6Ep z@wmXBON6a)>C`dI9|sF@2Jja~!;iBL@qe`tyXuT)@~hVE`Qn587a!1JE(QFhTB+6w zvES~ e%5+>HQ8t}_% zkSwbP*RWzZY=pDW2eD-e`_qVi1L@$lt@P;DEs8_T9R_Z}PB7{M)(4DrGGcMLkH5wo z?&66fv}*ob>ei|~70pu=wR`Ln;9I^4J--lZQ+1_cEjapY Sop?Q<1(rnZW z8b5p_^=Oa!+Cg;?i(izSZQPR0 A?~IlWIy?u)j9exXT~0Hp&I>Jzxm;t7{7VIDQefdpt3VxI8QOpK zwts)w? Gd~W|hnh)^t$S>~;*GnT&!VRXmVHJNq%@5AFADsTUaJe++Tk_#F z`>yHt^{1yEH|(c;zp$U|m$EP1UE2L~xL(@*(fn;Lspkv(%D%?mZ+e`MD+?R B9Qwm#Tp??hAO~JB;_AabJ%|>T%<~@%Ovx?=M9F z{l2ho)M3Gf -8!m_44`~O1-@P2K-V#FFe6CyL`d4ALk3CJw5HIKlycNwW{S67LHu7O;NEzKn*xc z@lq@@!wQP1QTLUtdC0C9;9slnjhFL!&24mb(zXRfKipZ~Z2tMSM^3kG*t&IyTm9qV zhbt>PPFD0Qw58eEY}W@aQsgTfo+;nWycM>!^bNCbo&Q?CDj()2B=6X6>h93|ROU8K zJ~p^`@#1Z}pm{}WciC%_)&8Jaxje%( %QGzNaL4jp$4%ZG=3D3J zLNBur$NW*5f}D?-9g`@V)+$vie6TX&=^WXEBZZ${sn#KCoqySbio0z}1ysv*&ACqF z5oZU+9xZ8;HO@0nb5Rqy*Nm=l7Vff&6$_WkRNZRG;=Lgi3s+rRdZNfntR1q#aiRYm zwWCRZRrBWJdvy~^iL5V0bQ-y5WrLx6#!M|cr|wASiRCK0dd=H;dhDRUa#2?I_VN9- z866%SDhdg`IIFScN^uVBD&?m1Y?N6!RnkgQz^lNRFn_PQmq(ORgsikzU3NcKJ zH+g#m#Tn?6!P3WN3i{<-&W<3Ew7r8rr77 zn$npAgBl$fbAQdkOhubpHEC~OU*hcHr3yA%v}S#Hz52^S8m=p7_u*rs(B^Hj=dD_{ zjnmw+VLNKC_ScSE*`St<&vf@mIXrF0)~sJMs8eV3ci{*p6n3lMmDK5Tv!Km=nApwQL%-UZn|IGAyu8oSG($#BZu?u&(dWq&OemPov zG0TWbmPI%E#IE`{<5-BeZ|IU85!1Uy&M2!YlyKeaL~~78P2aJaRpq31HX556tMZ;) z{oLNKU(qGUs rmD?AG$R*mBx)6lH75A>5@TR zf_&y|@3>@8u;;wQo7eU cj{~DfTyo+mGNF6-)gU^B@2*@^gi -pL_G!9z5Nft9=#}F^CF}0(VH#)2PC#@W@d8WvnQp~xwvA0c5mq8 +fk9+y!F9R=hh9WZI;VkBl9=u zKJ>!P^XJZX+I@ZFU@7gmSFU%*ddII+S@W#Y_IqQRs&l=s-)wlu&gv3swy<_Y<9p4T z4@tiN+PSHFov6~yj)?XIRP!isbVa#w1u86P8(C;^gQ11Tk7=^@sYmmc)??P#pX@NZ zaP-u%g%b~17LLBu!lBqM#}=8ZnOq(^w%E%y?<@Jbtgvb&vfAn9o>V5fPp0I&bq<=z zEJ8A8u^-yA&-~YSN_O7;K%5-6W ^EFiEF8d-z~L@W$9xZLTkp4!-upW1vS!t`O(< zvxb=s9g%BE@>#2(wYQIy=;Qrplwb1fD_bW-K1u94ZtR#PSGvUx+j}N% z-AzjRIAPTLw;%`3Vopzl7`Of73&7~)&MR%5%BCMVUo{ga-J*=uI;BqZVTK8pfN zvUR`XLB~2Y>ESVU!mO}e=S$T&da-RM*ZQI&ZI}BbH`x;z8y~glaAW_<=gX)EW_|cp ze6vr_s3-dyo%>km?&;;8bs~1|w~0C!Qg&|dT3zxKj2peWbInQlBTTkvT5Eb9F)Qw8 z?}jB5yr7Jo}|u+SZAyZAv&z2_Em}cW`x=`>O)Oio};*|1rX}{=n0@_Ut&=wA-j1 z(O3Qtvp`J0fUgn9R|G>y)V0wYL;zK+>cH>M$HgDEj3C^nK*D{}06Nk+9=U%7-}}Zl zS^nTH6#6@H#GnS>!a7m;3mV)H>;}?=Da0;7M}mb%9wP?eMM6ns3l&{E$v9Q6U`MH% za*zqu6y7Mx83rx2