From 8b7536f0f8295c2da26fabaef5c4b1bb44beb04b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Skaziak?= Date: Tue, 24 Mar 2026 10:42:39 +0100 Subject: [PATCH 1/8] Add automated installer build and GitHub Action release --- .github/workflows/build-installer.yml | 51 +++++++++++++ tools/prepare_installer.ps1 | 100 ++++++++++++++++++++++++++ 2 files changed, 151 insertions(+) create mode 100644 .github/workflows/build-installer.yml create mode 100644 tools/prepare_installer.ps1 diff --git a/.github/workflows/build-installer.yml b/.github/workflows/build-installer.yml new file mode 100644 index 00000000..22c21fd0 --- /dev/null +++ b/.github/workflows/build-installer.yml @@ -0,0 +1,51 @@ +name: Build and Release Installer + +on: + push: + branches: ["main"] + workflow_dispatch: + +permissions: + contents: write + +jobs: + build: + name: Build Installer (x64 Release) + runs-on: windows-2022 + + env: + BUILD_CONFIGURATION: Release + SOLUTION_PATH: 'src\vcxproj\salamand.sln' + REMOVE_PROJ_PATH: 'src\vcxproj\setup\remove.vcxproj' + OPENSAL_BUILD_DIR: 'D:\a\FileManager\FileManager\build_stage\' + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup MSBuild in PATH (VS2022) + uses: microsoft/setup-msbuild@v2 + + - name: Build Solution (Release | x64) + run: | + New-Item -ItemType Directory -Force -Path $env:OPENSAL_BUILD_DIR + msbuild $env:SOLUTION_PATH /m /t:Build /p:Configuration=$env:BUILD_CONFIGURATION /p:Platform=x64 /p:PreferredToolArchitecture=x64 + + - name: Build Uninstaller (Release | x64) + run: | + msbuild $env:REMOVE_PROJ_PATH /m /t:Build /p:Configuration=$env:BUILD_CONFIGURATION /p:Platform=x64 /p:PreferredToolArchitecture=x64 + + - name: Prepare and Create Installer + run: | + powershell.exe -File tools\prepare_installer.ps1 -BuildDir $env:OPENSAL_BUILD_DIR -OutputPath "OpenSalamander_5.0.${{ github.run_number }}.exe" + + - name: Create Release + uses: softprops/action-gh-release@v2 + with: + tag_name: 5.0.${{ github.run_number }} + name: Open Salamander 5.0.${{ github.run_number }} + files: OpenSalamander_5.0.${{ github.run_number }}.exe + draft: false + prerelease: false + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/tools/prepare_installer.ps1 b/tools/prepare_installer.ps1 new file mode 100644 index 00000000..8481f9e4 --- /dev/null +++ b/tools/prepare_installer.ps1 @@ -0,0 +1,100 @@ + +param( + [string]$BuildDir = "build_stage", + [string]$StagingDir = "Installer_Staging", + [string]$OutputPath = "OpenSalamander_v5.exe" +) + +if (Test-Path $StagingDir) { Remove-Item $StagingDir -Recurse -Force } +New-Item -ItemType Directory -Path $StagingDir +New-Item -ItemType Directory -Path "$StagingDir\plugins" +New-Item -ItemType Directory -Path "$StagingDir\lang" +New-Item -ItemType Directory -Path "$StagingDir\convert" +New-Item -ItemType Directory -Path "$StagingDir\toolbars" + +# 1. Copy base installer files +Copy-Item "Installer\setup.exe" "$StagingDir\" +Copy-Item "Installer\LICENSE" "$StagingDir\" +Copy-Item "Installer\x64" "$StagingDir\" + +# 2. Copy main executables (from Release_x64) +Copy-Item "src\vcxproj\salamander\Release_x64\salamand.exe" "$StagingDir\" +Copy-Item "src\vcxproj\salmon\salamander\Release_x64\utils\salmon.exe" "$StagingDir\" +Copy-Item "$BuildDir\remove\Release_x64\remove.exe" "$StagingDir\" + +# 3. Copy lang (main app) +Copy-Item "Installer\lang\*" "$StagingDir\lang\" -Recurse + +# 4. Copy convert +Copy-Item "convert\*" "$StagingDir\convert\" -Recurse + +# 5. Copy toolbars +Copy-Item "src\res\toolbars\*" "$StagingDir\toolbars\" -Recurse + +# 6. Copy plugins +# Find all .spl files in Release_x64 directories +$splFiles = Get-ChildItem -Path "src\plugins" -Recurse -Filter "*.spl" | Where-Object { $_.FullName -match "Release_x64" } +foreach ($file in $splFiles) { + # Extract plugin name from path (usually ...\plugins\\.spl) + $pluginName = $file.Directory.Name + $pluginDestDir = New-Item -ItemType Directory -Path "$StagingDir\plugins\$pluginName" -Force + Copy-Item $file.FullName "$pluginDestDir\" + + # Copy plugin's lang files (only .slg, exclude Intermediate) + $pluginLangDir = Join-Path $file.DirectoryName "lang" + if (Test-Path $pluginLangDir) { + $stagedLangDir = New-Item -ItemType Directory -Path "$pluginDestDir\lang" -Force + Get-ChildItem -Path $pluginLangDir -Filter "*.slg" | Copy-Item -Destination "$stagedLangDir\" + } +} + +# 7. Generate setup.inf +$setupInf = @" +[Private] +ApplicationName=Open Salamander 5.0 +ApplicationNameVer=Open Salamander 5.0 +DefaultDirectory=%4%\Open Salamander 5.0 +LicenseFile=LICENSE +SkipChooseDirectory=0 +SaveRemoveLog=%1%\uninstall.log +UninstallRunProgramQuietPath=%1%\remove.exe + +[CopyFiles] +salamand.exe,%1\salamand.exe,0 +salmon.exe,%1\salmon.exe,0 +remove.exe,%1\remove.exe,0 +"@ + +# Function to add files to setup.inf +function Add-ToSetupInf($path) { + $files = Get-ChildItem -Path "$StagingDir\$path" -File -Recurse + foreach ($f in $files) { + $relPath = $f.FullName.Substring((Get-Item $StagingDir).FullName.Length + 1) + # Check if the file is in an Intermediate directory (shouldn't be there, but just in case) + if ($relPath -notmatch "\\Intermediate\\") { + $script:setupInf += "`n$relPath,%1\$relPath,0" + } + } +} + +Add-ToSetupInf "lang" +Add-ToSetupInf "convert" +Add-ToSetupInf "toolbars" +Add-ToSetupInf "plugins" + +$setupInf += @" + +[CreateShortcuts] +0,Open Salamander 5.0,%1\salamand.exe, +1,Open Salamander 5.0,%1\salamand.exe, +"@ + +$setupInf | Out-File -FilePath "$StagingDir\setup.inf" -Encoding utf8 + +# 8. Create SFX using the existing tool +$ScriptRoot = Split-Path $MyInvocation.MyCommand.Path +$SfxTool = Join-Path $ScriptRoot "Create-Sfx.ps1" + +powershell.exe -File "$SfxTool" -SourceDir "$StagingDir" -OutputPath "$OutputPath" + +Write-Host "Installer created: $OutputPath" From 47ca42daa1babcfcaa850f90759ad8f471db6cd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Skaziak?= Date: Tue, 24 Mar 2026 11:22:26 +0100 Subject: [PATCH 2/8] Fix installer build: include missing binaries and fix paths in CI --- .github/workflows/build-installer.yml | 10 +++++++--- Installer/lang/english.slg | Bin 0 -> 231936 bytes Installer/setup.exe | Bin 0 -> 262144 bytes tools/prepare_installer.ps1 | 6 +++--- 4 files changed, 10 insertions(+), 6 deletions(-) create mode 100644 Installer/lang/english.slg create mode 100644 Installer/setup.exe diff --git a/.github/workflows/build-installer.yml b/.github/workflows/build-installer.yml index 22c21fd0..28783895 100644 --- a/.github/workflows/build-installer.yml +++ b/.github/workflows/build-installer.yml @@ -17,7 +17,8 @@ jobs: BUILD_CONFIGURATION: Release SOLUTION_PATH: 'src\vcxproj\salamand.sln' REMOVE_PROJ_PATH: 'src\vcxproj\setup\remove.vcxproj' - OPENSAL_BUILD_DIR: 'D:\a\FileManager\FileManager\build_stage\' + # Important: Use a relative path within the workspace for reliability + OPENSAL_BUILD_DIR: '${{ github.workspace }}\build_stage\' steps: - name: Checkout @@ -29,14 +30,17 @@ jobs: - name: Build Solution (Release | x64) run: | New-Item -ItemType Directory -Force -Path $env:OPENSAL_BUILD_DIR - msbuild $env:SOLUTION_PATH /m /t:Build /p:Configuration=$env:BUILD_CONFIGURATION /p:Platform=x64 /p:PreferredToolArchitecture=x64 + msbuild $env:SOLUTION_PATH /m /t:Build /p:Configuration=$env:BUILD_CONFIGURATION /p:Platform=x64 /p:PreferredToolArchitecture=x64 /p:OutDir=$env:OPENSAL_BUILD_DIR - name: Build Uninstaller (Release | x64) run: | - msbuild $env:REMOVE_PROJ_PATH /m /t:Build /p:Configuration=$env:BUILD_CONFIGURATION /p:Platform=x64 /p:PreferredToolArchitecture=x64 + # OutDir for remove needs to be specific to avoid overwriting or missing files if not handled by the solution OutDir + msbuild $env:REMOVE_PROJ_PATH /m /t:Build /p:Configuration=$env:BUILD_CONFIGURATION /p:Platform=x64 /p:PreferredToolArchitecture=x64 /p:OutDir="${{ env.OPENSAL_BUILD_DIR }}remove\Release_x64\" - name: Prepare and Create Installer run: | + # We need to make sure the expected structure exists in build_stage for our script + # Some projects might not follow the global OutDir perfectly if they have hardcoded paths in props powershell.exe -File tools\prepare_installer.ps1 -BuildDir $env:OPENSAL_BUILD_DIR -OutputPath "OpenSalamander_5.0.${{ github.run_number }}.exe" - name: Create Release diff --git a/Installer/lang/english.slg b/Installer/lang/english.slg new file mode 100644 index 0000000000000000000000000000000000000000..4c939f0da4e3e5d6ab1c0ba3c09ad0c472976bcf GIT binary patch literal 231936 zcmeEv37lO;m3Q6OSzdQKp%b>2CA_dS9Uu!~YxaaJbRdLh7HAeRdm6}Q5=evF>qMkQ z(1-%%uXE44RrlTMeh-=X=9}Ml z`H|DFZY`%yopb8csZ(_?yL!8+GsX%pV~%-zjCrj7*$KO% zdCyK*)Or1;!iJ6OS8rUpwy=EZx^?R}7nZFoY`ke*;rexjS(h&?tX;oi<>b+$8;*~w zo_)soKZ+JDyi@=G_isINr@`-k|JEz-B3y9&@=m@h&NgPnn{#Ht73;27toEB@3!`#l zPPV^$*o*jSval2p@b8>4BWzLv%}(S;I-i_bf~-E@-z>|kAS-?SfE{d8ldPu{p`<8mZe+zR;P&A^d^>^#$vk3W^Bqw)6| z{C_&?Jsq@Z=F1ZP%X;E|DLzNxH}lKy<8NNSX7kz=_|3XlXPkcPt+%dNwwm=7Q1zKi z2cE}IJ(WqND~##AtWMLWG4209|9upQ%rMh&rYW^yD99?i0fz(b1*H764>KhUr|GOu z^Ta`B3?!(8^yz@TfY$-;1l$PN5BMIyy?`y?s{??u0Gk?2X+B^p;D6@9jDSt`#&iH4 z54ZtvGGGtj`v7+UZXX351vn4Pwg(XCI8V;pdblzBkp5agGb;W5MzaFR%}DPAoC^3Z zz;?iU0G9yX3)lttQ9!g+dJM1+@JYbkfKLGq0QLj!2mCroK+1cOPQX6E65vMwdjUTRxD)VW zfc=2KgL>Kv_!qzffOW&r|0eJqU@Kq~;B>%40XqPX0Nen03}6r7@qjx3Cj#yQoD8@J z@KnHkfNg+gtSOxX*bI0+;8eg@0=5HQ0k{Nk31AoC4S?GL*8}zeZU)>9NIo3^B%kgF zB%kKT37-}K=izr7Ao;Zj_&8uE;FkeQfIk831^gA@PC(Ou{sTe=%wE7t0S^E!25dUm zlvV(?0z+He}0^9@G54aETIY4uWDg6UrGvN0D zrvm;MupRJcfJ*@P19kz9ft+mzq`dV3{t)uC8}N641Ax;ZfBOL`hxtR%5AXS)nU3ED zq|X3s1H|-gihvt2-kpG(084Eb?gxB3V7?i211tc(1F#M7ZoneoI{`ZZ zDIX=kdjNX@?*-fmcpqRt;Cli00=^IM0O0!pn_eOE)Czb%eoqJ70oVcf0N@6|4+8c8 zJ_xu2@FBomfFA6~V z?gRV}Kyx(Y8L%1f&wx__{{q+!XrPCd07igafH}bJfOUX42vKb^uNT+yHnQU=QHwfI9%s0Ne$5Cg2{xvjF!2wgH-gDV+`240sOURKV$g z?SL}?mjGS_*abKfa68~Ez&^m)fV%6sK31EH#^cY|P@N&R5z#?D~@Jhf= zzz)C?;8lRVfL8Uw<*8?^K-T*ii@J7IPz%_tN0M`O`0j>kw4!9n$ z4{!tEZorLz1AsRH?gzXXFn>Js7hnOf3$P6ktvOF*BK#_5q%%|J@lICzCvyXjKzdIg zy*H5F7f9a~Nbe7%4+PTp1=0@$((@TMx-u@ZWKak!UNN)?Iw+GTY0_mNB^sYd9PawTF zklq(a-xWyj52OzS()R_@4+PTlCkE&rNN)|Kw*}JM1L+-s^v*zfS0KG7klq_e?+c{w z3Z(Z3(gyHUH9fk67cK>C3|dj1rL z^!Cq~{(G>%E`Ulcm1LAM2y{ekp>K>EHw`hh@terkaJf%MiudRrj9J&@iJNbd}! zcLmaW0_nYh^u9p)u0VQ!AblW^zAun|AdsFvH9-GBdTSuPEs)+GNbd-wcLvhC0_i=0 z^xi;vUm$%~AiY13J`hOX7f3%4NY7X7w8!>OAiXt^-WEu252SYl(mMm`U4itTKzeT= zy)TfyE0EqFNFNBK?+c_K2&Csv3-Es+y)}^D7D#Uoq;~|;I|J!mf%Kk0dT$`TFOa?~ zklr6i9|)xH3#1JNZ%Dm?+>I8 z1k(2f(hmgE^JfI;A4qQvq_+jq+XLwxf%MKmdRHL5Cy?G7Nbd`z?+T>%2hs-u>H7ld z2LkDN#9{eQtp5Y)t%3BmKzcjUr+zpx+;Y`t@5BD@fz)r4%D+GLzCZQ5kjj4`^}Z?f zzB%=KUn+lV>U~@4cRuxdPpW+X$0GBaVcJ{lLGFyq-9lEIxUa*QMb7W(R~vJ!^LziR zB4cBA;wpB(Ix?p_?|0sZeNpFk-@CCt>HOZl!BIi2 zlYi0{aYvhj%yHCnNRY!Z9sUF^SiZV%%8CLs!!{i@Y^ZBd$}>+cHXx=fqi9X zy!L$17{*HJv-25a8lCd}Uo&RjNPP=jzk={er@pSAU_aO?-~1fnSDp8z?-=tJhn}4; zU?1Dbzx$tzdC2+Q`E&H&`Q7#l>{C1Vl>XV6A3E=QR~z#_haRQRfCn9XOW#NT6ZB2T z4?usXzUh0hZ|(ffN8mqaJleakKkwAH9RX~+oc5PAM&=Z!{DJqO|L*$_81tV_`)v<{ z{_gt^`@eTgjy!(Z17>pR({pZQ<~j5oxF9lLaDF$P9T~C5y-xpj z_eKc*(Aog13jGjyEa9p=+wXa9g%TElH1-39&yUIBVdoQ0{ZmdjF(RP z{jY_7tk<__e?(*$YoX7cH$~2qKS@OSd>Uly4@=XWod-5uY)wf^|@z9#bIwg0BblZS!zk;gCF z55ssm?YF-oGCy&C58M%%3B|cb&cjJb>RPIluQ_SZ8i^@(+9~G7Fsg_WU3+9S(l`e;RrG*zq42A1D8gUqoh| zlfUU#k-5Yf|9vBK=20hq=aD(Xm>qrgPso|QPWjG>In(dR*VHLFPv139%bB~K_q)OD zT~2@Yz9wf@Y2|=z2td5n`Q3}(F8>r}=1har{vHI>?RDzk`Kg@Q;LyMK%A7gH`Q3GK z&V0dXe-8$?*LlC^@|>CO)V~vfxDc`O(|=9QT;R|n|LUB9iYq@GmgGEs>4kDQ$*Hfj z3ivwtmvrXL2c7r%8*}C-PW}BWFdj~R1{ltB@ZGmQXa4BC&m$1f<1_m&fM#iFCrk+#lN+bGruaA#$0$<&g^vXGjGb7zjyk# z^Q@d1}ocvQ~=ghYqeDWC28=UqB#^=moPX6X@^w+6x z$0)?IJLOx^nTMS6)1jQ-|)9gSX>h~S~ zWB}^-9enZ_{13SGe;{Wba(?$A!1Ot%{_W5YE0XHXehBmLoZoG^oY~>z-?_-|f5*@K z`L1m)4@q&;gu#B&DZl5Z`0c#k{sQ!^ zga7_t<_xCz^3(OJoM+GM|4q((*Xe&h0%IR@ez(=vnY>fJ?Yx}%sMEi_;HP_?-_3P( zW`mQz>!3Qb%&|wB7UaxE=Y7w@oM~}>?`^K*Ig0YraeSTmu0x-xt#zi+wNGK3zsqg^ zMU1DDzh_vThi?(e#+B#kpN`CYXMFd37V9qupY5N)eD3_-y({wMx&LwBUMpg7<~!|| zz7&}cIOTUd9hv8y--TyjKRUm6{jERWHGMTQi^|kMj3<8YcYb$#Ei$({zX$Mpl~dnz zECyYBx^IuaKHLCd#}rn6x*&|#Ipq)B4t-dD3w??J_de(MbQlMBI_38upqOVb^cgs_ z&V1Q?U$+e-RivWxT?-HIsDtX z0{A-Zb>2{C_Bs4fM1XLgL!SdsR?{7P+is~d2b|wiw}O5SeRsSW`5k%RduN@w#KC{+ zU3H%Qx##V5hOycDG{3XXT#K`kU{sGxMGPcJ8P%?M{9BU|gK( zlrN0VnM)k}cRpBWI<;}Y>F|fV$?4BnGXvw%VP0)!nYs9Tp1Isyj9>Hc_f`0NaV!my zJ#{J-^_%|f!;yZ5IW8*Nq|40)v(l_H1+&mB#W}*IW-b0-hnZ!i*@zr@`aGh`@Rm6` zk-7%|70~7yvsx;R|BXyt@mh1XnTA79?AD7fmdtF^V!F)rX0w-*KceD2abA*$d0Wg( zvmPyPM*el?CbX1(a>WK5<{1~|%^N_67hl|po^&GjCg8IS`8Naeg1OmZz6t59t$-X$ zZH|?|WCKz+;{6IU8E=Z{!%F*hC4Q|y{w*l625>2U74R?VP_X!Hvb9U!Z$dpQ@OHDU zDctrssSeZu|HCc*H^=yIL5o{}3n@?RH{kE(km@PGxNi}fwGN2J*amM+@M&1G7qDdk;z=ug)1*{paw>57vKD{q86Hs=Xc>-1~dFjO$Z}Ui$1HZlpR5%HB zud?sATHfDeZbT~iioCeVD?=VX7#vO>k8GI|B<)f!4|)5tIFHJ~OpN9_^qqM7PgJ}; z&daHva?oyb!Pyo+m2|z)oL8pnV${3Ip-1hsJ=ddcy1u`Tz8?T3TmB!SZ~L&_(+`6F z9A{3Bes1Z1F=)FE|8KPNSPOOQz$@Sv$XuhD1ZEK(M=eYFDu5fPpUAzdq3u{dHJ|7# z`ImB6sXObyU+~VIs-USn{Gip z?2%x?zt}q460Itd!91&wo;42%{!$Cel2U6?i~9%;Cz;;>hbfWbu-HmR0snHITMF6c zSc=YGi8R)=9{*B4*Ws_5@Gs?5_^;MMKIg~xY23}_Cb0g^tnDB+byo(MT!dMmFUy;;4aR=3y?1hNRz`nKFpjLT@c&0C19DZ zub^neunsouL~}aq&ux*?BVA@PG=OWF;~a3lRGfiwdr=PCS`|8VBy?(IE(0#Du}&o} zq}XgP5H zrA8rDD67mDZj16j4J~;oovdX8{-X^gv=!Tj+DhggwzLema^~4&NK=tVjuC%R-qxed zWpNEmQ=Kk0&j#f5`Ia;rZr*KU+i%i9m)e`kF9ew z$m6aBpp;9`7GjUlwkP+lK`HtND8U?UTDFO_C?90^mAaf*RMtc(5_?kgtynvi*y^`{S_vREF9uSFu+Mv38z|xp)!& z7VYlhR2%)s>6N`qb0=^EKBt*a0H3X8nWnDcSV?)c$VDGB`3AJgh77W?PI0HIi}<$5Lu=SDE5DlXTHClvq+yF!JYY%B$FOTw8Lc z6kA?6Q`SvxUn|FLHs*l5^A?ag9rAs*O);h1!d)QGb!AMV`_$6drsvc<=;s`;a_%Bkam#{V^C1CbnBG@+t1X+JfhhgtTi0Ua z>@M>Z=Wf+j%RRiszasldT6C6~rq*0^_J zPMBuqS-ff2Eks_<$+Rq2;4fk!9<<7u-G0%6Q=76DYSKIDKlIJln_ld+HJaIxuHohY zAFf^~1%A6Ora}YupZ-|tO6o6C#NU6SKDYyI9Dz12wrzC#NMLRAVMG{h#F);t@3*2Z z!GP;ddhe*4INSQP5)9hWCM_}AsUfef^z&g;0uFO*8zt+j;;w9U{iK~rALC#>g@3{J z^R8%*!o~t~_jl*5j;1S|^&P6>TwtbS0;61mv7lD9^@BtKCKzhO7IMJ$KIV z)NutwbkL)gct?f1n;?6%YjRO!?u>0Om+z^E8q7hcv(elV+qB>7dY4dC*AiL!Wg6 z)(6eVdu!PipNYKw!+aN_&cl)KwdH*2+GH>2LezIG@-aS9_9o{eK4u>NOFy~d&G6A( zioWRH5?d}9Y6|Y+Qx0js-CkKy^qv$vh(AY=D41RG5VE> z%v~AdT5reoOmiVWGJF-C#>ExY^$#B^*ZQzVPm&jpA48Z>!Z z22F(57a|t4(QGOAODvu_;CaDHwHAN*a;rL+*eD&SsX5MKv57}Sys@-ZSYEufiG8GV z6>S>vfoFMY({yP7FCGiJFwTrVnilxdXr0q$yB^jOXHxg!ygv!=DTA-GeeHH%<8RV> zGgd`;^VYb|8EAvJD94GmT3~saex780QVYF+oe8zWXCNPWW0JKZ)d~&q?){+4TQE*< z&lo4-)?nU*2)euxf5lcvDE&h+cP=VZHJOWb9^?GQwkuaC+ltH0R`Vs$V_Se84d$KL z4a=K5Vw~JIY14Iq0=2YgFb2!bJ8YW>vB$XiW5774e>3;PHm`2oDFeuH`=pJH(zWyq z$OKp7qHo0a=MFY?#U%4-^B*O))nkMCBT15*sr<>d0)VORVkxS zGIrm#>sayCZH2z%*irsD`z10Vwiw@~pQzZ5D4OwT14jcaK3dApnJYen$nxo+pZKP? zdb}r=q?S~xEW5ptk+iopqrLR}J`S_T^z!_^7`!GL;W9wRN7g>4kHD^L-drDvY+nZH zmYQUzPxKJ~t>o&lV;=xNG{J6NV{l9swA$v8NcNexVWz;|wtZg$jc!5<%dD*`_$Eb| z|Mf=luZirz-)&9=4Rk+7 z{0&JYjj!EgU30d%&-@VmT4LMmPC8-#sw*B9-G{f0_UsRB3;$u8AF*T!m>I8s{pmQj%yE*$?z%C0W<&QP(`wwLGq? z#m>~EqIg`m3a9jk=6>PR@7g++#dR=pPIqA4=&P1sEn-u?-h3A&8_kVzJ&cZ)6&h(Q z@dTWE>D8)~Ufs(`MlCJ>dHAC*D9b-RtF()X7(3FdHou?v?I^$RHJgBMEq=QQI{jcz zW)ufsTFA49!84eH-Gif+74s0N23h%(<(19$eJSa@{fn~lwD||LrLsc%)?KexQbERA zMqPF~$<>VZqhIkBl%|CwiZ?;%Gwt}u{zjC@gf1YvqU(P8sU=8?FXiIsj zJ&ACqwd?B5H-O7GQ8XPh!1%%jaP%I~>^b|sJ8nS$W4w>Xhz%9v-4W-(RBmmD!D77M z8Rx~C$L6J-w+1}Q=fA7pjE9$gZ;kuy$HV{M?)M0s?PxYHzU<>YRKKa0euRkc!(mt4 z5X+DqnD`&k<>V^(VO0(M@IVdxAawct{}sCY5OPA>CPbGLs-VlOYoN=!YoJTBIR-NN zqQNyE_Ni7sG!CI35`Nj1DJMhmi>&{TH@iW%9|AM+H!(Vsc7gbzX@k*Dp&dq;?7oUE z&iKqJcGWBMQf2f8*U7Y$>67DXR3p_Zy-A!S8qBFy-;q|t=W^I2ta&4B9L|2USBM37 ze`JQzJy}NUFwVlqk*ieMOJd91pGa23G9z>5p+(0Yb3S1$%;`UZ+XYzZG@2imX|>R< zGiBzX-+C?n-<)Bab{D6^LZV;qC$?<2S2^qM#QWpW_n+GLzP^*TFEw99`5(n?7cE6) zrKRx*wASf&5gXwY^k*h|#+Z0gUm~hk7^W-DW}~O{yEEpRl%)kitIa=uk@hPIJ{?%| zHp0$OzNy4Wb`?2F!UN*n(LHjGiW|kv-2<^JNPk*WI^HYnUVwP$=EKi32UejQnUsy+ zO7k}0w>L;HJs0QV)`FhPc@3tDk3YTkkhmsPTYiKd8%+<|djY8;M{~hL?2&Lj<%bj& zueWfqV8B>P?#?hD_eF%F?oMSI|a$AV=&1}t>yBjxD0h|2fs8#90Q-9xE`v9KWHA_>sl?VtweUR>Tk03 z*9Yq#k6oK&y|n>`JvKQdei(a<$49MPPQBi2vZrd6WY-@q-o5qo)XIP$T z)ZS$GWr3}KWT5_f%o;`XMSa<`fve0(Dudkpq3ntLB@|8c68|EfT?1R@z2GzTJNr4v zXPd3xO?}1U-=`Od`(X4E$cz=D*F~^f8252Dc5v%#e|)=zy!;^QI2`@aeGA6xvevX* z2;XnBwAKBFbl+*6B>nZND`U6K(zY=`+p*>@Tfgq_(4Xe^vKo$*cJ8w6jLv9>bjR&F zxDPRVe;HR4z?c6KZ%#=3dj1IUeD=0D@6h`DYug*4zsJMls5`vXt}}8L=TX+*jH@Io z<}vyyCgB6Rr$%{1301zA@`u~JMjXLZ^cz=JR`iQ@$F<;n+8yt=?>Qe| z2HnCn4%Y(I)afTG_Qqv!?IG$cr7}dtZ^!RL_CVSXlSgd91l;g~Q>6B(W!y&q_ahv- zYeY+$QYFy+SmZqewD=fWN!voewKxK^AnQ`P&xUTGw|ryD3Y5BzL|x71k&L=%H=Q5f zxq&If(uffl+?nQD#ebq=SDg3b<-7~ywVYsQSmo% znQF(Q{(s?k6lxfcYvQ~E4LWx2TBveN?v3+TGk)KU^VTwcjX0}A8Lf8wMq>Pqg*?f< zGu7L*)MNh><%xPq$D|q>>v+^cV;z?ejjbd>l6CaOZ!UEH-=eojXQdrX1FN^(J6Fu_n<{_816e_`#O&@4vt>RP^(hs z3AWD9Wz;F}r`Y$qGTw8(<+)Mn$PxBE?U<`Ftn>(aMDl&UoG)wEj35V+uNr;x%{Xr@ z`ld0G`a`?}^k9Me`iAo|_4@zkAD?SWmM8x@{!zXdihql0;%Uzw#I_wD>%F09b#ZisPsRh8q=8|NE}XTKHa3-N4PAN_Bo(@^|cE1ejR zPq|)dRYbC?lxSNF)1|Dn0fCh+Duvwb*N`?xV~>L+}ghu7+POhGpF}2)~?zn9OSVWlNm5I)0IQYvGsQ#`RarFGs>FdbIf) z^LJK%_%U@ez#Emj-PLl5v3~Y*v440gtWDJ)wwdxj+<(fOsm>TLw4SU2_IR_}E*FF? zURP{Fyw60`|2rhhzOui|pX4^k9~Cb}{#NAweK~(Sq=4rbxDV_<%>R1iKMVQ)Sk9l` z(cnIV|FB#WXnHEj{h?fr{yG0HN4J#VHs0d)uW=dr-jX}5+}zTa*P{*M2GYiTuZ&l4 zOUa(cIp%5n1Q5$fdkGs^%EZ4g8WMzbl z=(&1$>mLDrS^J6fAvD0_!8rorYWwZ_zN9Y^;w>akNOvcFj*4%H^JeXRF`sKsx0}-T z2Jpf(#G%v2!KZpH&hu6E=Izi<6RfV;DixIf%@sd^)?N!A%&{5o+4t9B&(H09cu$XQ zU4d9GtXAW?uE1z8Mk?!U7{|Q<+UU#3uk#BvG~@0VAEhVWKVk~d$7kcevvA^U8s?j6 z&?0g^kla=P7czo?aXF&f*e2&7?s_r;ju@mLw!Ow2g0@wkUI|>6rDTqN&ts5pI`TC| z9Q&<^*2}&x+;4&PZ$Si3qDRTogW)T2-;DB>dmebt6XVvmpjS-uAJ)Is#=@)4A%^v)CN4~_EjHLx*^Ti=8am|cbXTW#Il?11yI?n7*e_5%jYOB#(2&J?N}=*)tTa5sk30~#Ai@Ihb&xA zwsoqFPJPa?kcb@jyo65)srzJGH$FKPsQXM?x60Qd$TcOvuL+}X`+g?s!r7RNy2w+* zaMt%y@RY_4IRwX_-5uj_XKg+HrsyW>XS3@ z;``6U@6XA253cWMiWWg@H5+_pDFZL!eXYg&jLi4M`&vuGZCK2bkLOrTKn@K>izwdL zTD_JnOi>LTZfS7K@?H%37`VlU zv9?%V#@H`sP;NX{(~YK3F1Hx6pGd#equUW4)k_W6Yq@H+JoVOZ1aR_4CPJmbPinGE98 z3aN6}t?ms7#E|~7%ClCKs|#^X=}j0n)n|%}K>8ogu;cbOAT)Kiev>PqpIahVoQ=7p z1YEvg^UEC^jHLD-;(Q4#sARqC$}6>toMDpl30x1#T~n>_%v}zx$vexILuRSXXa~yL zFTJj2|8B!d^8)lw^@58BeNgn(od-F1qTD~;8ltt6WNubj#V7kzr0(0+IlAF)@W(w#!(M2cLkLxWyPsMf19Z{{QZ!vl@7kATSm3gf# zv)jRkm{7OQz-;T6V3VZ(omO9{J{e43kd7xH68i(7qv{tIaq)rO`!eg3591!$us#`w z(^*65lX-ETYV^sQdt}H=AF^-y#;POT7=(Y7?1<4z~VNe#25^YnJ6b zJ)fud2Z%<|781$>SMXv1`l!*|SFS@=lRA${Dc|m+9=Z_a9)zdu-L_n%9{N0L<-I7? z>LKz7Py7EcAZwfhCdB(mXwvpK%T~NL&Qr~p-52N08nc8-oE!7@z7@6U+z~6-n>geq zgrtnIbM9%N>!;A4v~En>p`&mn`Z(-1++-_|8G-tWdP(o=nvdV^_fKev(MwYM{4>(t zMW=mP49%F_mMc5o%fUtbc9n~P&jCaBP)EE1-yTYAUH|Kd z)X~CS>?6;S>TQhl$f@;|?C@wFuH3n+Am7ZQ*Mt7V*MNGmi_8@12UkeRF2pMQV%#`) zm)(bW9)}u|xg@Lqf}?mfNf~!6h!L@y>{e_4X5D8)eHFK5(A`I?AteGa7)SHyX$k+1vXydn8= z<$&M8IRW-vTlsz($^q8`;_t3jFOn}YpI949d7Sq^akl3TI{s`7k2rK$of&PqF*Cl` z(#6+hQs2?GK9ytMdqmD%n;I3V>qOMG+`KQNF2=At3Yl2|et5rqzZI4h&r`0g;7a)0 ziuKWOtlS#yH^9?=K&k6cTNl4^Oq+S|x(>E=J!tcmJj|u8<7{2`S5?;pTh~K@x*ov} z2k*e!QB_@tcSRpR6s+q)Th{|s)pfqD>*0*LIKTWDGIDWXevxsWXTK+*GFAP(g5103 z4i7C&+368`SRiYz4XTL4z@aAeSCDPdDPbB-@zs{c|XofCAyI-U21M$L(Bb< z(m&C?-0$F7Qm*wy_T)=Q)RgHs4qsC-rl1aZJq-Jy(R|F}#dX8r@f3CN%Q4R3k#hb8 zz;p08hdO+{oo#%)TxReXj5^#E)`I+>i1QB>7cm=spugsm<@%}9(x+Vg(PjL_Z1jcY zK3y(18x;5Ne{f4lnI~agNojj>gmoGTaVHQv(9`Hb`F3j9sp;ka>z z=B>5-=Gr-vJN>+!1Udfe9aRG_X$zz@`Oe^XUm{kE>%!MX-)U0XIDpQa>?D>_O!> z?ue7;sImAjwIuZ@*Du+=#>4IcKx>R{Sgb(xKXD z({b%SvBIijKcF|z5A`J`{g^gnKR7QCC-(*zcUJhX?|s@zWq-b5j>0#^)W@+1bf?tI z4Z~s$a}DW#eTs7%`@%hWdOk%zB;&-9&{;5>%A6Y*AtCb#XD<0A9%h+Ml6&GfqsiPl z3FFV1R%R5zkFCp%#d_nO;+Nev`zO&9n^BM4DkS}Jzb!@_ZbZ+BS39_Ar0s`^KAm!HmAa`_y?3%o7YvM^skJ@x$sWR zDL;s0?X0W(rMB;!l|&;f$CzwH3lh0O8u<_Jws{BYnvJ@Cn5v88&Dl--;2a-P)W?;2 zAi_OcKZedxd-`%vm{tYXeJ!?i-d4c>mtvx_ZFev+!IdYW7V4od7B`krUOx4HnH)yvRdiT#;{S<6jzY326LSe{sk zHSKQnU)Kn34&jNFw*UW>!uh53f2HmJ&r)?&-~U^1lT5PLkoF;kddhJ=%e)@Gn{5B7 z^mCi-=TB3(v7d}ntyZH@pNvLCAN9!#sk*eE{F*s!&yYruI^Jsz!CezSkL#EPEI5nN zhM-m9>olDk#P?6hNbDiLTZIzYad@p(Q!=u|^!4Cn zo!@+4B5f7&hi=_b zvmNmW@y<~ZZ?pD!$K@NwJ>w=n=*QvFd`py>)_#;7Z{C5P#-bLD$$0R3tbP*R#W8iG z5-NKsbDb+}dhhOc%niYNcV9qERp_2(+Bpq4(Ru^u&>!=Gd{aViNTn8)6-UxriR9rt zM}5wl%T|LH>s-X}H)Ay(Hxtb9=;K#y-TZ!?)<@qPcgOs-6ZdE)WAumGqq#oLQ_UXD zLvh}$J({fX9*^_AH^+Uc)@#K3xyEtL2%pJ6$9;9lA@2{f?|&71Kf%8Lb@2Tu_Wf^y z@6WRD|0Ux+{gsW_73IBVzmMN9!uZkanf?YN@W%O{OYB`_`!nj|zRkU6i5;U5{nK=9 zu=l}T7wOFUzmcx0n{_87ZD$NcR~e(L?HH-f9ej+gvSakS;25nRbd1QK>2VT$_fvQt z_!Pk%^gvaw*U0A$;IYtm1VmqrgJzx@&{r&fl8w7jddj{p@u0QkQJ~Q33e&>S!SUo+S20Bqu-CeXq_e&G_@~11oWx!R1e#h6$&w- z?plrCq62+jr?f2pQlA}dt{GCFb;Nl>@|4sW72g@>twx`Xvh&wZ@hvevjD(;D{;wL- zQwAB+R`|5sxz5EUG_KPyuImRG*NZSh4d$Ze>~Zx+#UDqW?@>y~SSA#fzsQGITVJKh zqKh%t6baw>JSpGGSOMG{O}*v0Zm)9Ai=PBH)e^%feDvlj_(<|p$48R48a}EAosU3# z=wjQG1y)*;TZOCD<}A!}&m$41m+(T?Ifu0EBRj`FomtnFsEg-)SvUU*jjlwwHR#vy zNY>JBz0&R(wq0Fcx$ikY&qG9~YeUUMZSuV)$?58S#-$8H?!><_1Ki0SZSkkp8l6I& z8<}C&ro1b@cTs)u>hGeyr3@whF7*NVQtMlXjAe;XH=|1%&D+X%I_f;7`j~c&dfO@G z;!|>IB=sBx&qSknd$}H8!bP`NTURSq_l;(Ixxa~iQLI8|oawpII4OE7crS5!|4eaD zkK5s9x;d=8u2nivpK>;%W-F9uaapm@-dk_yu8RP>P;vFr%QfK$8<#N(N`pQg-kBx$ z>nnx=6W`4o(_r&v`EIVY@m-bkeDXDnw8V41KLdJs1)_OJ+Is!@o-+F-M4euMUa8D; zwqFG-MPHHYDo+!n+o2909$k&ykw%lZ?R0w`ly6e6flp{^Ec+#o(ph#v!K;BkILEx! zuIp7l485-JM*nZI>)PQNc+szUXmks(ZZyN}`%?rQXP z@NXQl-6w6kf3fv;`_mt#4Z?QV> zFk5$}&U@6n)!Nsp^OW8k&BXie*GwJv1AOWCQjFo@w%%@!muRO((Y>gl`WW}bSMKUX zzn^L8^%}K0QDm_;ohY(+NJc+ICyFc{Y~PpsCT*J{i>ec=^K~Y&I5ya>$l|z+c2yRO zp#P!q`@dEekBIAeIc1T=O3Pz|XLnTYg;1CI79@3o?8Cpbs4UtZb=F^cqV40>j2)PC z1f^K6?qEmuo4lhj553*A*m^4El>0R2faeoAO|+TDSGXMQOO?SsXE*Lz`#2)!aOZ?= z!DyipR(mA2FpK1&1+81C{Md$qeXMDTr}rf_F448o zWtGC2wt9`I79vc9c@AGgum60b@5 zWnKB!GFPJ9x8bfl_jWcxmbjlLQHtE5VH)=aXc5vnbRVgEEWWpfy9P7r)-}D_ew1mc zIXm7&dMdU%V^Sm%o3WL$3Z@KeU5hNvH)4%U-26xIItDxSjpnuGH9dFfw6|PWGZHen z_pAWibVo|?ATP^bw8zNfLNjWm%~oF!tMtibw*3%d{2RVfcdi+zz z)bsT7xa}yXkh5h)qp`0pUlO+@3YH#%Bnp-_(AO_qAp9sRBaOQ~1-`Ncc%K!kTiNaf zs4F}2mv8(%U!}6nHEBK3l$vMcjtj~HXLQ~sR=t)`9q|$H$E$L(Mx6tWlvr~51cdYb z$fH)fdqNqNS%&&wt%-|JhMro+mNCASt8hv&d4YSz6FuIM_7B2pztLP3x8H)9M(E0z zAfd0!+#E$>!uAxiEL^H>_eiq??JkMiU5M7W;-x*nlj&~swb&AjQC9s(?x8l2@71^B zjouRGS{|&65ej~<)rWba*^l;DmiwJ(=Y&tGb2zHh!PE%KlZj7L;{20ad8UBtlRH+Y zSc)kgq}>#Z4K1gHmfDYWB&_0jnz;>lt}4?hnL}JG7!#OSZi**$FY!*|Ga@>X)ph*m^~G3T2j|Pds-edPiip`u0T^z7n=U!HMyrbu3mH zzv;o6IWziC9qgJ{VFz-ISzaDX&FkkZ;TxaRk#{fhuCRH#y$s?byBRo)ckC11)F~~K z``Et3ZqCIoj%E790&ObdT=44VTriR|0pdrm%V?WxlEWj;6piN9aX;J&gg)=FxQV^P zxuOMM!0iOx`L#@Xil`AN@9BqgL?2FoC-GpEx6E%x0?(syrfdT6Sd)pTDPDxS4ntkr z;`nTS0hG7nxaSDddUKekH!nr*TY&R=;LP)1)$2^oOF8UqXZw)C+|{{HTm-{`$T-xPhIhEfzw!wY@a3glT*Dd?9U5vu!W5RMI$LnPElCk~7?X zNU76oDenJqUST|g_BkyD+<8iLsEmRuM~sK#E%ayLD}+7vHL)hW-7g+d|Byp!ld0i| zojTO9A>~9b^_XwfGJfPpINV=EEAunfc+_L#v2idO`r|VDz9b!q|K)o2x9}u$?|q?t zztvJkG-medm3nzNV&qz)xn(<9EJm51xqgtfwbvA|WZeH0tOy#-q8JzM?{FkGc-ki^ zhioWwzV*p2j>}NfOZ*8rgptO){WOVZPD;z&Tcc6>NVIuHxlQ#5__XAlFa>#kg1p$M z&e+4CpXyRe%gf7kxl!`cGX0oSaI%wk&o3zFn}I%x#YDao8;Vj&Ys7yT+b|0}vd>Wq zw{s2|fjQ(}@Sx5i$q9DVtQ#SVyrG1;lRGg(;Y5pEPBi(W42g)g*>3^>-ox}gqPlPh3+cFQ7%Pc|(+A!=V zC5h+WLS-e6>cMi^1<1|4J+3l3Q;o5$b+#>JkNJfwQR?CJ!@S)#Z*BaNeXpXf;cDfH zkyuswF;XhGh4L~PIWHAec=b&zTH=*8^?)jJJKSH+Vs_(obn&f z1V6fd6YZss(b&`8fwE`7ySvfcYuodAjrw^)757qIQ^UPf_tbDN)zP5wII}ex9g$3f z&%(8i-*9Mre*67g>(AH+IGcojPLXa@nmRM&Z_Gitg}ScS@pW&rMP>AGJlfAw}e?mZUf2U2#(vO_$CYU zpIpvQ`IB?3*?hz@C)+ZU%VlPwS8_&Qy!P28r9FvZx}aP(ZLwrw$~Jii^cZtWxg2$j z*d#vrn0JNE+ZN|t1S&{g`t0cmNk1&J#g>^=uAjR>I$Bxz@38r&#Q7O-!LZWVe3rJeP`d^e<$Xm)8LsQe&+=1`k1XtV>M==$H`t}+B0i# ziy!;^Fo`wwP%V&tQ*2z8<4eoB{8TY5LFV<+z zw)J*rjLowaPd!ITf1P-Uba%(ERd9V4xE9PA8MxAR8*YAUPC=XJ+4s}~i7)B|$PL$T zT#ty?i~qVhjH`xhU;J?MXIt<2alNdy1@&w}4O%bf`?a z)p0Ge3}wFFTUdvkR{4mY~6Kcq{&S8UzT~T z?F8j5@lB|;$+4C78Z|#}yP$m2YOZZxnla!X)U)`Pyz;@Q1=d<*0+ z;FI6mvfUQj#TZMSH$6WWgNJpN)Je=b?9N+{xsYEAA;?l zYTN(gpzYV;`^uMldL?VDx5Rm>8SBU5yjf$d^dZlVz<3=Jh3`tKhon6Z`ud)+Esa;-&GaPG9Bu*cI z^w`%G^U-2pKiYgR#^1$@w%PfRuk(=O+wuE$^tT1Rwn-RA*Kno(vXPP&;=~J<*Gz=Qx8@8VGSkytc-ER5xYjHbVPpz=`o5&9Mii~-; zlvqw{-?;@NFwf6|-q{nk%as?Su|*PH`-*FJuF@xZb<{U)LmeM6 z?~Jr$$4|`_njMk*48}N+BT#&DWA2QsVn_j=jIXcx4#B`eIf2E^?#PU zs@A1vk*i8Z*3%Cp{4N}&QtER*?%r&A0AqEinH+5}Keg?oeL)pkjM_M zZb)OUB)Chm$?_~MTcv=u$sIX4?XJGrNStP7>=7+v*{6}HBhHG9Gm@AK z+3izWlLpM|Q(W;N?n?PI1`*nS(8|a^S-Mk~QyN(&+bZQebaz}P0`GAi%Cc3y7U!wP zR>?(z15mK_4Q7{)!#K5=Got~^_X{navb(}>@<>z?EeY8ltA*R?%N%8WnZJ*Dy|VV? z6jOTjL>?Xq9&U}UHNOk+@JP^<`$_7{4_gCV-*3j=6>Q=d7u((PKg6|U>r%d%XE{7H ztFyk6t#5y@zPH-?O2aq?TcMMZuWY9K%6aZooFgE9e+brhpRG@09=Spod=_NqSnqwd z-hT{<@5#_+aS^asBOn z%~A2LxZGf}`b?as8d?2woEKx|&mxu{E!nM74`eM7&7|4M@Ns+^ zEvgLICd&U%w+_d-yhPq+K&I07Etj+758kyr8gYia2RSOQcV)M%fH?5sY{$RP$*s0~6&be|q>S^-mBr93zyZi;W zBf-l!-&ZapmWKF$vT!@n;&w!wpB5zLig$+5Pn^a~@H)}rHKN=`+CK2_TIRT&fPHJ8 zg;w3*W5RJe8>gj{dwnQZVpGxygBsg`k@pXZ`@_4qlADLq z`5Aw(4c1_zX^Qh-hJI7?aV@153GHIF0{s!t7=*iV2Dj0S4c5W?6C{czUA|P$_x>2thp-U#7sumJycg+EiYcAK-!~s+dE{=?-)Ihd3FSFAod-K< z48}|MC>SZXKE`DwTPCYhc=b-97}(VT!g#2!UI zbiaZA2x<)ON6OBFZ`ZDX?&AA|FF6a4FL^&6=gyn(H|I^-u1ppGt*mjSvS za(ZOwQ%kj2wdAqkSS538)b5;NDNLQ3+$x-PA}%d&_1m{C7!Df0J$jA#_d1mqU0H_r zkY(@acKBBt%%4z>G#Be-3Py?Z7&WH&17!!39z5>$v|8SoXxDYJCaOHCS66&9B9A%t z{~6cKH7a!uYuuEv#wQOv5tsRMxy(ZFBW<+w6BYju=N*h+PL2eJYWQVYoOdXG;X0pR zq(0sph8y_!yfl6(K(i%lK<>)vnzANNvV7EtH8|J_W5_ekv#q}8OiN!q?O;kQ>FBTc zlQ>sB6E@iSxisH#ZAHFojP5co+VR@v4HC!mHTa?$d0?WlMKGe$p(^Ja|^8+YZJ z<5Z8kM#h^-aa@=`PQ00W11KdLuNInfoj20%<0i7}TBAukWtwKN6!G1pk>-z(`;S?j zxYeT>^}tcCTt^n)nKaKLo;_T^K^N6iKJtlR<=gkD15=zE| z-+M~v5RRL89&te|r{hE`gqEoKw`M?dWyM=O4||2>bj(8gxLi*?54@T8l;g?HsY5Zd=bM%JsN5lSrOhmkvUje?}p~d4_o~dbiEMH61NTYC*Ah z3)U{6Z&mlOtKF$!g`5LMpeA2- z&hL%y7y4Y8KDut5gg5Dj`4?L`-WBIR59=FpqB~3YrEt;m_M#y`d&HMSdPa)fc^jZ_0Y4Z-v!^A|v{ zzT}#Ndw!I4IX$ojnp1aWxUxu};ZF4uG#r7w>pvp~;Qb(C`n#~w<_WkNC|O_n+(l2# zP;L5q8pEe|qs=L3^K5fJ+N{Q(Ppmm_FBibRfdHua7@9Oyuo2NU1=tCRFEP=lq^@|- z<#dwz&geO##-rs=eVL4T8Z+jRo81#zLr$rQuin33TUHR_m2-Pa-V*-hi7~$SedDvc zajz3}z%kL4W-RQTYR6RizZO(Ybgk=k5qkS$ke<6)2c>{>^SF$4KG$P)u%?fNzfg5v z!U4ip-H69=`6|mt|M@tN^3z~(^1qGqhV)XJ??z(>V-dcj^L>k$JEJldo)o7X>$gH{ zoy$hzOr%TSm&RXQ|G0Q?t>8YhySIS{#$umtr5RZR56C%?*P-0(@)^My;8}^}ve-GO(Z+WNN?GpZGeGl7naq1(= zjm`P`Ult}i7ng&K)EhyPFX=*7AI zg(3X~x#Gb%d&X~>H^hCbBF& zLyIqyEc5$*)ywilSciUjP+5MwDp{U|FMxj$?S^IfnVMvI7WRQyUzRM3ZrB66Bk^nM zo^DojLRwR>{4Csx%lgN}@}Y7;NSS=d{A|ei?fY?_q35^%dil-c{ygbX-AL1dGV&Qk1u`pm3ox&lH6rMPn&yAN1_QNzJL~( zV4+%+c3M_kA7`~LXg*4!L>RM2=|}}iD5Dd229K5<<&;pcar3ifTE7y#K`pMf9eso% z>GTup3V}6M+H%B!YXy1>8OPv1-0Nt-*OkA6xn^Fx7HWZaJsq!6uxn2@rkoaIvWv}D z_*=emK>XMmDK<2IE=I7afX^&M72zyu8K1efB{}m(s_A!X1S^?k8PBb|(>yII_h1M< zKFurJE86zvm)on{o8`(o-Hyh6hHDr3JRT*7vOlkj^9(JYQL#79tM;er6SrT~8zT_y zNI6iun6ckke8%;L+-0OOZ;51NO9HOdLtK+gsN!@2rd>L)YaZSE4kluN(jHD%w z9M|*A3m8{jpEG`uBc}Gd_LLe$*6O1Bb$rBb7OrPr_0Di*E+a$gGnOHV0p*yg^f0zg zO1b=##PU%R*vsT>T6$$Bw2H8k@o%8jm1R25M!o7CsJ=fka_;!O%GTRa9s}MhEaO)# zjodng=9}%APmOt~lqH?{WSv6_q^VAcqK;6nwCpG>MNVqvEfw<|ZCyn6W3}Ku$m)GKJnQy7oSzzF4ll0}7Fs>J0o2yslh^s>Q2ysW z^y^)M^6vb{y_D?pnNe|PoVU5$)&fvAdp*K2-52Li=1oSd(!xtWQLzvS9-(yJ;v zUY2n#!Rst`5%n=`NU_Kzj>k3~|3h2+Ae?LY5cux;vW}|6Ml4ZT1El9o+Rq1J{=>lj>q=z|%Jn|y{I8_84M z*ht>2u}P211gzH&Lsa*Kh}00POl*Ey*?+x7!nvUyI_(i>?wS!xjQSN4OU)gj^vZ?N zZt&po-UUog=n+LD%fp@{B;fH%U6S*J#l|8LVs4{KUw>ysVP1L zJ^3^ESQ*rPo~>Kg8}m`C`X2tOnlaa216%4nz+3l^TwYAZofi5k{Kwu%|0yq(bgZ2d zK}Xo)G?{Ob;`jy>@_65ZTGB<=xwg2Wkr%+$GSW~p1%?~KLnn? zBgpfw#aD_N&6i@HO3PgJr)ZT&-;a}Yjo4EV84~*?Ib|IhBk@-ac4D{ScFlf&YpnU4 z^|AguZj1Iu!ngEpC1;E(>89f(J_T864z1TbBtYMzaR#&xW2JG+*)xN1fmkV7e5<%9 zAE$METEC}trvV<@&1Zmz#z%+n`0vr>#OEWp4J&W{){f2Az>GN*U0yDErc8YuIyZ0j z#rP!qdcGgX9bd}N+1Mxg66EI>aXI(B%o+a(FGr(Y&vMT2qw@y;Hsf`;x&9uM{byTu zw_A10-@m}>q0#)xzL&b)I7M>OP(BLY%XS^GXFI>nXoqJM`r(Z_3A9;d-*2@(V*02< zUr``khM5u30np_)aT$Q}L)&eP866E}yUmUBRAalnDbD+Cv_d+!ly_#!&BlL3#i!!D zS$3Z0MwIdNeDo03Tubo{E7mFYK-v!E4W8GU<D=k&lX?!f^}Huo&qP~~`dD-> z^u1xWR^ZfXzXkl>U|r|hy422G1Pex@vMOprUFX=k_{~@yAKME4p`W7{JU|{BjDOPO zIUHvM#$!BZ*@`Nu{Bqd#|C7g4=q7jJ)j~Jkp)(%eO?kDY8#zF1+*z1oxnn^;nA*R} zAGJmH(O;6so=f7(OIlfl`YSDe_3r5kKzW0ZI_eteysN<}%4_a>>h6PZAIh=F^Hh0F zIv;(YH_3l!vmb<5^P`Y=cR4Rt2ia!@55i2tvw}~T^ODc9?R3$lvoLo@<^2-3b?VYl zu!o1zrM!J)C|QttBdmiYZ85?76jvg~##u!xZm**W?U$u06 zraX3GzxoAn-oGv9b!Y!9zkOY?DU$jl(2nyMy&xgq`rJ5g_2X0*b=X0kZCC7Ef08~! z?E}{`iqs!p0@l^>8t>b$H-7*II(IAvM#&DE_#VY3rMGaXJyQBQ*emW{aTkw}R*+aL zwB(d?)UVEbw2>rUgEwVxpND)k8EL#PkK9C_qAkj`0P%3!5iKJ*YHNXOGwyrJex&%; zb^m~;&vaLfcjmdbSMf_f$qiWPeTnL+CG~U9BDw2E+vo0O;_>%SVpOaypiA@cCEN(v zRb86({p$2h(OJ|=%PRH4X4K7Z#C_Guk=S9PtN1VdfHQH=_!#rGSk8RRd9qMALAb~D zulsTI+}rAm>-xL0%qH^9dp1ekgcIGm1f#Tm90i}!35a5l_;6%h2k)sybtU!{rFI$qXA7ILQ!kN~jEGHh8}V#HBwNC3iy*O-Tl$!n+Oi_G;$x$% zRD%uop{aRX91{7|C@?>om-|U_7Jzp|rZE+o9)lC&iO({CTS_j z!Dl!TJAuh}3Qx6rmkZDviOD*+u-wvCb|cj?O72VbPeTk&FX43kmu*i&bbjKGn`YY< z|Gl)w+c?+9+Lt3;$)%*#SorgAMm_4IIIW_d!Du6+r&tMOowLo4P^bFoPPcV(mZ5z> zuMgL;3#>*L-6xzxjYtcI5>8#rnXGIE4CIcvVg)4L(-PEtDtz8nu?h)$zR_N2R>6$Wo^h{TADO4RX@c=zf8jc*(uE z>eJ>tD3(7Zrhr`%#wtmyl*UYE%gI_qsJebK%B|8RJ;znw{|n>cNbBVW>}MQnmP9M; zd$GT{ir@|Zax#=Xb0hu5f6r(aMqz2r^R0M}O?xfUx8#=K1D^=o zr@_DQF^iKwFH4)}%yWxdjW`pOGduqhCd}(~~UojRX zJ67X|pxa!_i$l{*@`dO|>TnHkA8gj@d0X<<#@kXR#M@cpH^E$o8~6FlhWt{$)B0Xu zC7G)PSqqU5s+IlfC7v|-G|p#|Cc}V%$UEDnM5H51qT+AjyrKTtZr~sC%LvrTvpl+n zQZGe?e1Q*+Mcy-lGHX!Rk+v?i;}c5xwUumLN20Fgpe&vr_hF!HOS|h|?SaCm*cIph z$2h;6o2RH<2~CghDCpml%+ly8TU}b8r?r{xjnTib5%Uv0IyHDIK=V4#@f?TdNljUI zJXX?f2FDEJ@ENq6_Fa}h+Zphx@ICL>Ouq+Dp#2kU`#Mfnf`2)458b-4dUOWLv;NOz z)GzH%vF~?fyr<8J@ekzXq4dSIalXOy1=n5o#rdk43!jVg)}k*)M}luip3?j@4BotH z=I@{>_$2qaaQ1ii5EJ>Ro`dSZKfG6C9Q=zvjOSb1O#Dv??_2Ty0~pO8WV|Q+r(m^F ztuDDC&Kv4Gn|1roIQ}Lx9q}zEN8CH*e3yLJj~;Nn-6lD8LqCdoe3Q2qA(dZ0u3oli zFQb3v2aar|*G!BQqXp>RPO%)n5)Z1Zrf9E+@TM16zDJOSx7=}&wo@6i7h%*|qPgXm zJ(n7^1^q{2R=Us^jdkZYD_s6rQKltJQ-bLwr-jehbe`PcDpsN{ZibBWguJXceVy`( z)4H*TInf-7dn7Nw1oPsH{(UH*{@x7zn5)GD!v)No>3Ek(;*JIU%JO?Ud^>v3x^?>W30OfPdS zZX0(RSyJvc5FYgXB=lVPPaVz}f5x6Qoo>f*D^{Pfu4NzCBmc=2 zUyu9;0S~>4P9)RMMH~NZ$TtD`X2kXSUp3(uanet&_(_!Ew^%g}BjFv9^0fYIHm?3l zs9wt|k9$beW&1Fui^@E}Gf{H?g1c*_T8MTi*OrXFB$ueAqIwe!SiE#AwNgeL4pN6==-=kM=vAExs8hqA!s*PU| zeZsqisasntkCT_VOP9XKKdQUZX1nZp%A41}XOn*hkMTGl!CmrXS)$W|F;)vOVmij8c3A4ty``Ktn38!naGVz7D0e}rbS39JWoDOilZoe8`A+5| zH=>ran#_bQRg_QeG#^EqXU1*1ekjgwv^zMfPQt&mAt%`sQYTw)sC7ho30H~Tv@T_9 zFt+J4_^KNB<k<6Z8W#XcnDqTBUCM@NbPG)lEVymP~+J`Fbea+m3_TCyP z-L+?Ox|!cpl=j$0(r;G>vxLscQc7jV?VZy3ySTBe(e%XaEkappRQ6BnYytI%Z&ItA zA(njsT3&MQQ}!LXX5oy*ev$lDZ!{NX&KcBHLKeKuSTaE6yC7V?Eii+tU@(k3ZE zUtNMa*v8UW7y0(CN+)fr>uI9wDo5B z0HxkmTd(p`GP+rHwW6*{UvQdVMq-_j?T1h6lUW#h>Pyv+^e$AMq0t$lcK#4we6_mf z-Wq(J3Kc|Bh zJAtk07=7>Z3H`=(_$F#|*>5~IwhgK0X~)q2!1Y)ymH}-k@uNHk9NtkLQ|bqfr_?B? zd(|sU-=J8fvp{-Qs!RnHdgDAABp*e z_wbw$T^92U{jrw;ckwrIPN#Rwy=|pH(s&Pj&xe>%QK8H~GpeXXB5_3elUObpJFfgV zGf*q2RZOcwtYzA|vRa}4gXyv|pw^K1wK-Tx7g1WR5|&tqv11y2DQVG`1$(Y*U}|1j z0f{{!v93a&#FC=_gqU)jbUCn=zp|nc9Qx$nZ(l zreth}t~>|lCy$lj!*~pFVx7>PC&%^pUT;Q?55}E-+_ft=T<ZEf-cs%yyf+4%#r{mT?VKKLXRdjYIqmzckX4EEqy~`K zPmyh&>!jtF#E5sei2;z6w%CIXpMOx1(?lZx2REZ712!9-233 z#c-7WC(MAA{4O%3V^S@@yOI&&Q+kp`4m1*0=D+N@Cpj5Giqh)iX>xkeIUg$xHU0mv z_olISU0HtLr9=&+=BXr=s$@zkagf9-QnOTD&3fWcVu=&@o}{X->Xao8rEak#HJ{Xy zx>SH{w_`Z%1euTz32dN)APC?gcAR|4&~V(HcI+ew90U0j1o@BviIczq>^OFYM%Hit z@Bgm7&pCH^kB>F#5q!fvdsutTYwfl7!FnsVfbHt@JXUWJ&wpnFJkPs^8E=T^t+4U2 zZi+bZ?}lfpcnu#*T!LPcKS^FMwRhrMejU`{X2>xE9p0o=QmZ@yR7g&(~O3PK%eNOuk`fc1FC( zJ>R2Z+AO2@{?$p_As*=B|Mu8{dvf&O#A$uLjs<4f5m_Fu#A;s( zee+i$R&$J3hMIoE7r!BH9jpCcrpyz>T@ed}?c_+@%IqwAr{&=tS=-&$XB@2JD856$Q5tSWZ3i#~@ z;K$m>@9y3xzpxT(xq0+IPheOr+@uqN-ua}${Bn4t;JW?_ngtF{2Glo?{+Gf2yTd!z zyO=dbI|6?1Z$zZPc_0&*n|KT@6hw#q% z|83eIJG!y=oI{Tr12ca!=;8hIdM4!Mp4dTOBrj(sZI+Rj-~zWpBy-Lutp}V|ah7i(Y`Pb#$9AzYA{6#HKk0Y{@D((FEUMI- z-bRtM;fr=p$IT`;j{fna-O&nDH8_TfS+PGTuHgV)Zk@TE?6Yc%>S?C_0oi_@8Hw~qerf$`a| zy)oVz`Bt1S|9{GJ){OoFc2R0k2BQX;`uo2S8BB1vEgty14O$fHGqSn3?niF*k0$-B zySU2>KSk%bR3|fQl&*chY3?}^a_H}t+M9L{2fT8}<3{upXJK?kVo{CucP8!T)oA}T zoar!KbVg=pRDEU6!IPb9}OOQF7(b{i~;(!^wjd-TgI|KaU^&F9)oYYd0EaV zJreC-*tTP|av$Tha`9Qn#iQZxF`xY}af@^lS`F=k{7Dy)Hz3+^&874)dQhA|YdDk$ zM)!Pfq;4=P#BxN*k1`cLA7|VO{-+E4j#sIIC7-UEFrPZpE;VbA9YG>EZA#3BO>o5- zz3LgIvssbW-{wadO;tze4zwhe!POGE7ijC!l`q~C_vc3cRd@w_eIsD8wLBd*?qbjr z+HORS(4jYuemDM`o>b)KSS`nWHu_W1{?51wCElelz#sU7H^vSqe%-0^9K9x=xPUzQ zhF^78_`!?(DzcTdv2L1G%YYvHGn2MMepNm9kMsB6-u_HX_j=^fzZc(+h8|uGZFD+x z>-Xa4sfd717jXWQ?f>A9Vh!>8b>+;8fAR@m+v7htsK5TlYw58X^v2@iZ4u`XOCFEE zkh{_7ZocL(a*o%_r>>Y_>}SK1IS?c4jhdh5qBULx^|jl|`jsDHyi0*+ z-)nO;e*Z?~#Eu8vUWxW!4?f)%s|AC2Uutid_=~(MC+g~cbLEZrK zLGT&)OH2*nN%U{~C6*S`|Cb}jVEzF^XnbPR6M+Rd(eIwqE(;Z0_}xcj~lbH5dRJ}Uplg$8Kj_k%9yBF^Hgo=Y5Wh@mUcqW`H;?Y}8*9P;S7 z4u|y8|6*_tx*O=%VtgzDyA6CjQTR{mdL=%)6zx>$(dD7h=qu6QV-NyZ=4?LrH}6H$YmZF+{*G85 z+Jq{4>81Z5+Tc6pZTWSZvl=+Q-yZF$-p0BUk9i*DEB><>1zuyH4S$??Zb#%SlviMv zo8PqJKa93ij&Tpkj=*vKOw;|Xd(Xs7?P&5+!5k7m2C#;6c&7jS-cvD-W}4rB2#UWQ zaI#7yO^{|y_|SZxjs8ybKtB5I`{RE$`tPqf8qjg`Fr%*oO{g|M7J3eB=exnd$zO?) zt!3(UA1(;{>-W~TsLLxcefo4?Eq(a*+34T9cQx>1tnP|gf#Xtx+m&buJhX&MIZwma zzdOMX-d%r|W2Mbsy%#v-|J77aE<6?OJ{$eDrd^+tvi+H84>XP*ndUzYNTg%l3td~U zh^PAcOVI{-{kT~h7GgB|%kgY&!Y4I$k$r#t&1l2OiaW_aU=uF}MmXd4ft$t8-;b8Z z%BPp2)oS1iPDX?7h|dqkzx?_yqwOpoua8sgk-k0~{rl0AT0}Hq4f7k(0Q?~Lj*TUw z|6%lihji}0`xao$mgE0Hv`(Cw_gX1(Rf0H9UiSN;t$li76j|W*9peAR6b58iHbq#0 z3w|%2z8ar@QjNikvW7lepw$4Wa?Bf*jdrD@rDedl**d--ZIJH`!Ikpz)!{lr*Z#aN zH~{a7vov?d?`=gwp2V#+;KA@cY{}pgs#5q@^Er}4?gpvES3)jd4$ir=%%Hbwq5E~` zjVs0dM$798SM83TA4NWcd`Q1m^F+~H7s7uO4^s;)+vg{&^p1FHd(B-MX`Q)01KoF_ z$m47qdn|m!>tmGE1K`OPCh=k{;v*`1`B7A=fhX4Q+z)PzkUkiF9&vZ4VwF4Bf4P7t%Sf4C|nvNaJo78K=kG4$c zwWs6E=1P3lzmX$brR9IR@Dq1C$tU859FLx@UJQ>A|B1ET9RBUF4{>`ufg5)RzAjBi zNjrKpc*ihM)s7c}cUNP+rYLKKPla7Q7TAW;M`K;sLeBqDt--&x z1s1j2;?^<-v|tqM5N}9UPAM%x>KrIwD51bJ!9D&PD8L+NOiWwjw_WQqu>+YNm)jhR zh%`>m$F7#D2E>DXK6ox-Hgt+SD>N98yfC^aWB|YRy}$sP1p7=}oiYoKr17xf_#1WA zV@(_UAilob(WqGM{y7YFmRh>l=dRmI?mQldXIsqoB(kLNT#LKaqBHBa511OKqAfR$JzgXON`eVT z6x~+)gXd%~#Y0$axZLgKQSJzwYt+YL)cQGavd(^la(C2XYHqZxYis*$kA%cv7kn7M^2Aqt#Kh}t~OiSHD(8u{3MITbhz|JZ* zgE=0Faq4*)MY+3OA@{(AMRraMom$h*{PcL-8bsA@%cYweYk$B5CnfjR;~1wvGEB7^ zCOBa>Ov{h8zxddBLqm|F6WXzRRJDlWuF|5dENA2Q&lzFncEnpA_kgSP2Y#K^c;(vDRvEwr)=Z=_BEyHi=Tj$l4~PlG1Oa@*E1%Ch${}n{s#LH zXcBaxa&C-rI{xMpZZHsrGP9G?qcI*WeBV~>_SX#0_y&iXQ>@K3*1iHy7n&mhVb^z` zHC~G&*7)V109kCb18YNzTnwzWQOq!gkRm)NWp?aKVIAd}^{Lz9J6HF7Xo!h9fATs5^m_efwOM)REX1E(TW-z-aP26wtNs}k|j;+6FVt-tVIuI z-W}t^{lErYiH`9~*W<}MEjCmw4-DgQE zR@&xN$^2+l7X!B8d@5NJvNhz)g;8MiE+4b8mf8Jx#tcY4+6sFnOL1F#wibUQQTzm> zZv{S`Cj+uR^}%7b`9icg5jeUSBiGaz9udB%^GQj);r4ZY4QdWU3t!BJlUwn3msO`^ zIHNWyS-Y3xDX}h?>B51`;vvem&88C>H2g=`PDyg-(*&NkRyS5}i#6gKN%MA};%#}Q zdkP2WretKCmzR6!kEyk?@eU6SeXd?m zS9`hG062X%C#VM!Pwp?dec7xv)_S=wauw`Fv3Km8gfy7-8a@I!B>Z<|7X2akkVLAl z(f2+ZvR1Uqdc1GFtD%)iUv5tYuN@x{OYrezwp)U4uxMCKxJrJLF?CDmHgx?Q?BBwepLrQj7`3zaFcVkY)M$XLE9;dAB(V&lZjLB`@ zH_dq|Ba81eZ$>I^hBA}$`~{w|x2Nju8X|V8AD&_d3rg0F`Ua@zwPbWy4Q_MVq2|MyU}ke9Z7xj5^`z$Zajy$T&BwVMQD3zq#8&#CB>SOZWY0Y?V>MiK4NNhhLWUoEc-_ zGY}8Wi!#3vIZw0#@ju$=>;&eTUaY9r=KRf6;Z~fv?S0mCzPoazPs_}dFeb8BzOjam7-*<1{&80mqpyeBt_6LG z?Avjl9c=4dQQP*p36A*Dk5e8F+9@Vx-|J}bJuw&&F>xUgWWJqlrNjehrj$cC^!sH8 zbR{Sc?GFbxK(@voy-?1c(U;uo#pz!}&_9@trj}nVBdeW$SF2B#hUiO0i&8HPre!I- z3a^1Y%=f1=>#tAa-Qam+j(d0|?K+61E=|{g$MoKGw0a$Cr*){+r{NhP!+yJy#~%ko zU`n{v@1GX0{jF$E9HE?=SD=wi3H|ly6#g8wh0QS7&+4wSOWj*SbJp3NS_h3Hdv|QY z9l8NSv4%L0TcNRsc;fIL916~m7qk)>lOE!^PE=6;10Q4ciI9k#;4C5-e0unL9NvUA zbe?o%M0T8zK(yS&GCKaK$40Jhui(|4Mo1$0hrRJ+HE@6Jc5)n%#?A#A2g{@U3?2?JLDAvd%b_@P-RdtSF8QH*Dv76g<3@iKhYEa9 z2>Nka6Bu+_6HVn4n?%Fb-f&Qj&6<{3(?om*7mq`)_2-38_;g>)@_0IWh>5;h@d0$A6?ryC}nS zZRya(yyQkR3zGgQha$(ax4@0}yRY-tBU3$H;~W0KE0(k^!@ajh_Tuf}es0adAHfRY z@ry(8a;T(|S9g8&`T3CZJA-;?P;d%H@X??G_D&W;EH?%P6w(2Qudw$0Aa!pw{I!`h*@FGuWjHh$LU-;V}_SzF`$f4(PA{>IIvpDY=3 z*^aMAB^?-&JooKOl&#}a=aO$LP)n!T zN2;G=o!I$d)?pobZDFk}Etho4HoJ?;4aldY?;PxZ^8Gq!6x2atb#PMKYb!# z&@8$;{n6;NFIIvTYIpMB|53~Y7bPy!`bgIB1Wm_UzMW?`&#IriJLRBhfldIMPz||7 zqwpCT5-JJOo#i?FL*=ivjAsQpB7SrtyvZm;W>6aZj7R^*7OkO$N}d5Tb|C=5+V_=S zuJdp7GW@Ns<%#94#UWa`w&3YqrO(pJnBGioIvH=G1an|f@#h&iq48>bruwF^xANMg zS>aRqo$P$Bu`({OHR+#m|II=vc{6$cB;1#Ika`^HE!KgQ;x&lUe2z@w9qCR>-Doln zuV8QZUPxlvXK{w*U|+-@NX;j~JJ=_kt_L^S0?BG~p4wlyB+-cPROiBLifa@diMGxy zj>{Oy?5#q`$3u zI2bw}jEhgiA+rBuPlx=Qu6)Smb>%VTh0~%5*`3wz-F%t;#&fx`cz?`}M#Y1_Hgqta z`u6CLF5&dpgGHas=0I!`W5@?iIYVC@iW>K0g(IK>zd74txjYh|)f!8A0BV(Me65F! zD8o)$Yp?Z^qj01r457UgRS+e%e#Mm4Vr`Z@dx!XKd9(YF9v#+**Z_MgaI1FD!N$-n z4n$vM(U4oZC9xZ?)aF1KP|Wdk+`^??r5n;(A`{G8iG!jRI9{p{Ne z+t2>Ub$={~@*xj2`cnEB{frK)dnkAHaIAf2$yc=ffVH*;tVR;v?YBKFzUI!j>(<}} z_QJZlM;dWoMfQ&_@U5Dw9hCuX=WcZBLV!UcLFjrgE%I= zDEK8|fCsV6-T9GJX>i+MGJMLs*dvFkB?tRzq*BI-ZcF zf}2!{`tYKF7R!pA;?&U>7uZ+o3{~NfkQ^HQsO;Y$PrAP?EhJEDrQj-e(eQ$}DFm+G z5pA>*X)mC*wC?C-@$kjqBAvv_@sSf}Z1g@jabTT20e|R5#rvM-R7G*0kl z;04DmDNS{*8SVwLT2^?=hHYVH&*x!JawJojMWo)_rEnS{v=aq2NMRads~%O7R1bCFLR{4~pZRlT{vv_;OL} zaqRIQjaAf9mpIh0c-1X#EL+`H_LW5WqtJ50tVN>Bwr>E&f2}s z2pyR@8d$-;k$pfrzZ5nHdYp?-kpPc}e}6chez!~@w;nyAJ~|`wnRS2iz~2o{ zWAvSYWu54&TYNX3lOXkh$Iwx= zr0p%ThA*mHZ=R2w-Z-LQ>LoU7Z~yt|eKcnAP7gST{=gyGuzo}5xvt8Qtvp3@u_Ox% z0@bncKik&)&jfB(V=Z_SLpg+BG<^K2z(-cKrqB0_hKGM4@URwM01=HnN+J%t9^P~1 z&(Ijks9;g?YgP6A^DQ-Cr{)sdx?w-^7mauRY{3qiUJ>kYJot;HXYKXeT{1#gAAAhQ zO+&eEdOSRBjc!(EpdZB(GqwAwoXYe&fv9S7E+KdBv1j$pj&?<{kwh2Vg)nP2c}|WF zuYODaFGLoD2&(pI6#*WMPqFTb ze8{OkP;x!GA!t^wr{mP~f#}IDIGz!Cfv?QTubrRrbvK{V&v^CmVZQ;7YUB8DZ+s%^ z3l#IaqM@5HqXq+CmpECn=$lp^ob311p3iXZMj5a=gEEd9RdO-Nb$9%X72%M~x{PCw zYBgYiHh6c$Jl3^u61ZKl7{in(;{3~&$)@9u%PkAU` z#7(n@%UI5s0ke7=Mj{%~!Jpvk6Q{WX)Nwd{!4%YD&K4T?CjW3UaC#=P9#6+TK-7hu zDAf^IeO7H)YPvpK;tg=&7>pevVaK0zb0vny(GX(`DzZ0udtxo)oMY2h8&4b0qS%nF z@ovo*g1#BY!XaSP{VWN?t-G^yTkD<~=Q6z-_e!Z4N5-&*g6ta{WGLz#Ty&A1XaBSV zhLgGs%AcFel&xu>JQH_=qyJa~vsl}a3*)f;r|kqo{9C;G&~veWTuy_f~sSv)*IR{@1L;9 z9(a}3c$U-57Ay0XnvmQDbu)KQ@)U41`AzBUggA32Hw30>gIz`2-Z;&FSpRnOGTuH2Ilb@ozP7 ze)olXVasX+c#{NFYDPTcHzB7Rzv?2oay?G?Tthp@jqVa7|NU!Al+JJ3FN@P>Nm zO*rWKw_`-j;9WH`_d|US$1KW+><>(V>sp44?fvCbpfz;IqaPeVkNxo*I-hKwpRdJp zdUJ za#yss^{H(!dA9q5!ekJwN5toSU77wd-rrE4kAj211o96Cz)0Qe>1nn)p8|pB!V3Yn zSYRs6v8d#k(w22C7d_Fb(p#+XgJPGyGM#BCFD45Q_W&OjT9w)Tw%u%N-i-wH*bhB6 zS?3>XbP#W=L#{uGr(G{lK0&J+TocviY`Hm@6?qKL)mqNeA>qtr>~~wY`Qp^l-FBQ( zPJ7&6X+K}s_UMn??{R-;4(B5c3m&9uu(hj*CU5iZnZtA+X+*Fpy)RArgCRv|rx-@yJF?;K;# zflQbrH!-1DDJhYAc3!i!A7i9NM3c#9&%VQPmm(zZTJz?+BY}mpa)GDczZt7So3mcU zP?G+{F!*Y#DMcsjgLq19>-uAJ(1+0m>w^~scGXgzvnuDs2h2cLP@bK2%P2H`jq|=F zbzui4f9VFKVR>r%J-0xXE;Jb0h#V=pYh}jp>E|QO3cnG!s=fIWg@fSjwcy3{=B-!p zY?NoYeVZlG{=0bC_?3-Rl|S4Gk7DhH_b@CG$Ou}>J1&mpH5xM^(cT5B_vu^yQHBYh z(KfqVAz8yCeTcSzonEYF#m_51EL1=Xtg-Oa1`gD6xt6 zgg*gZbiXoK)(Gcg730zWQ0_xP%TN)c2$k<}t@E1ubO z1(7A|R=huX7SyAI-`bDp%aizVSe6z=3d-(gZ4Dj-S!=wWk0NI9seW;xd;(-xd_s;i z`6J;bY7+O0Ze0oJ^V}@Hac&OlCViq=OmlQ9n$4B+ny=P%(l{Ci55XEwQGBacua4X( z66JlWt%ss$2!BMjXci8B(z4U~68!a42=z-l%_?8px=;b`KL!iS09eQxib}Q zBOO(9qE06sEY?N%k#61kIl61Zj`VF0`iI)tD_xOi+flS)YvCRWAB~zHy>pRO!}GQ6 zLng5T($mPNxE-v5<#D-(tlgt9EwC%fj-$g}f5?4WFGpWlHQ(@|GrpH%Cf~)!jP+^F z^~s$&(%9tppdM}P)13-<@=naQudwhZ26H8nW$jRK<^|!nV>*R%$q}f=-2+ zvM1ub!!h1)j_b*3b{A~IuU^a1qBG!9KJT}KD^;IrXj&M-`_Rdv@#uGcW^u3*)Rv7V zrsTI>J^XDRFPr5JxP&YzkD1|(89NbrWBpoS!~~k!W&ogiG6@P z|MpVIE;(`_cQs=^btVL#6L~dO`I)vWEzr;|I_F(#yl(C2dt!880iqhCbuMZn&^|uR z7#UZl7wgq+u;3XE>Bi>b8(<;QB(Bx&J$Jx9b4BCoq#@(mGf)l2&`fs)_uwH*M&QgN zgYdRlHR@|w5iyymtZ@_xAq|RaFGT&q(SQUi1U$?1JX2cBlHXiz((q2%*@7wUCFxd+ z%*T;K)OxXw+?(Fw9Y5(*$c$v`bYL70oby25=Yk578zEquCp_PC8?@4K~H$DR~0Ww6><4p5Ll*Yfa3!`+I!5 zEB3*m%$|S(t)RFF4O+_|dKCW1y+%AW_yvv2N#}7yQs~UAD|#;?B z)_#_nsD+Ho4e^|Gm@;8_hVA_5an@l7!F>&)j$?E#xQ0KmoU)BK^CBFKa+tdY`q^$N0 z@IR5h)B`)GGuNL!S;=SZb+b;+pIi)mBY!y|5kB!($gkmmfF$*Lsp)Z8CvFr+j)CQ&8z1EF5!S34ciLKD(ge8FU1qpPtA^8 z61VK-5K}1|hWmE}%1#aM64cy!OYrXL(CO^TnOm&&sSELE zmXJGodC9(Z=6!*=>(RH6pM*cvpVc$mGkw<0pY>wGF% zcxUJRG-2%bxm+Po1)p--#}keb@7sinZWz|l7OFh%9a$Nc?J?3S|ba4C{;XtZ}* zdpeIeT>Ajx&vWH(XW-Dab;g6+Y^1;Z#NNB*5T0YiA?fx`3LIT$SCJQ_nw1&eeKWHg z-;Px=OMRjh{k~{jXft_O?H+}!PQ6OQkJJMb_71K9YG~t~L1?C2l4@3r3vR9fn~Ey% zx0IW&&)PZ~?4A&MKV|~QvvNDid0wrx&ze;l*j&-h{zUMxqby-WcQS!%aK4Owq>|YB z@wrK5@p{5W&5r-L+@>uu?c2W0~-8}c6&0f-BrgW9$po4iRf=jbcN zS#F7?=QCu&^R>I?x+xcbK+mr!e02T9C#pZYF;*bDc&r9EOdqX>{3OpxW$xbI0{>`#G zvbX$puxJk;{Ujg;m-6G-S46_`wa;5q1rt8 zhiKkmh?E`CUAycxo{N@yV;1L4faIN(StBIgfnchyb3rz*9H!JTb%4Qe`76y zV0bmi)`ihm((kTEl#v!`J0;{qf84I^PIfJ1))2Xt~o zgw^M1LO@l-&hUse?uDL&ekJf=uiPHvOR;ZtAn;&lhTA~ZkE50AgSMA((3N}3S?c-* zQ|7Jpv#l?3j4qMilpdrsn)h|aQP(W*0zIW1lTLaQACu{!YJ{4p{@tm=GfUg&d|zG? zV)X;}(BiGaO*e&Q)Zbu48h3Btg_`wu3kAJKbOBH9554$!!LDtHyiz<(A{W{zmzNN7 zTa~CQ>3uA;>f@2OIv#V>(c*VXU2jHs!%)zQue-`9kHvi03_M@gZOE&)hTa)#WK8@_ z>Fix`zWt6eyCYETYawA&8^DK9s~aO{%~S1Rn4jAinYSZ@QAZeU-yuIlQqhj`rzf6^ zYzR6XJmy_5?OnshJ9BcQwr|9cHb)}x8|xepI|6Vjl?aPH7-(F3`?{g}Z1iQ9ThSKu zC-etU^RiBc~%PDp-9$VFY47++;%;Rp_unaQ%#7!;F?l*2#qme>i7RT`(ZQGU1 zoZ$<#F$nq@C{(Y{ZsYvS0aBdam2(HThBWj~v-^#NWcQO}hq(Ni@D$-&)fChjcye@? zLesK;0Ecp7sI}&8bq1P`tPF1?;)ZTfkn9Ycwl8kU-CNDY-{|$M04QoXcyB%y$Oa-m zeZ1GWZheH~1tug8UOy5r@|*Xokkk_sN*pS0rP1w*yk7%}&>1MaPFrBK5dV1lCDDrS z6s#?Y`(`iMYjC7mfb}@-bhPjQoPIiJpoo+zMKqgis^Tx<#^3+)AkDGGoQjmUfxbf9 z5=B4>JPq{5oADej(q3HV1Mu#!#kPW3|EYKnnyO|?ns7e6@)mPE{AAazWv0p2O_nEh zxu}=()|#pdr>&CKPQ=QZF2#JV3;Q6nq;G%VZg#yvjT~G5{s%ld-ufqBMzT{!ieH>Q zOZ-@?$tUjjS&xc+j|japa#`GS6gkh8Lc`M)4Us7#j7#BZb>-Xk__2^%#nJFN)39nBa)>`9h;l~d{GbF{P+dMc%fz#m;yZ%X6 z*6|;p)Wuj6n6Qsw+49d>?{E52$1@`;kq>JOqtWfZ=k6eT-mOoUJ@E&Tc6rO0#qfw| ztHm*e_aVolKM0Ql1P!YJ`a{l)FUaWt+9Hx9XEv;V!AJkwR-3Dyh z&<<_sH_YfMd~+_OL0YcPn%7w3)`s5=O6d8r_+d;eDLxtSC<6orQ{&WeAN;I4wz67X zo;ETo>j9SP%6DOVKHc>eUyTGdd}i7fgL#h!9+X8lMSy$xmFiAIEK9EKY^=GxKl_%@ zIjcc|w}S5Wd5;#E(@E`%qaThQikmFw`wcZ^Y|)2(_Euy3Fs#IiAo^B%ur6JCAE$|`>T zjltbZynQ?-RtyX^FT=lU6Kb_jfS=azj3VE(&DdL4c0;+3W4Dt#Q}&jd7I<$2mVyil zenOtlM&1^$ADGTe_#VktHUt@f(>&K^Ms_^qI1JsYRd#X0{jhj?_=V0VTN9&IBop$l z;0c{Ub}opw&wnFE;5<9>i@#}`d_(yiy+iH$$C2AP9lbA9EpCj}3v1vRKX4T9(8a4s z3P>NLU#S?qG>J@=op>kib!;>FNT$3ZXzbHR$vE6Tpq)|Yz@X&|p}U?AD%SV-t_4Q$ zQEv-xSy>L=$;;Z1Bi1QxKkNBgv_yi5-}@DOv)(d;2lQy+U}6;bL!9ilOx;{`Tz%69 zG{XzLDJTWC!58Nh{5fmiGx}ygaW+0BCh6XJ{6;|fZsBM2KdWOD*$MnlxB>n?81Nj3 zjN!h>o_ah{hbPa(zmrjgK}+qvv3lfcYv$Y&@L%~FxET zdA5Fg$^%j=EC~y`D-uhQyd{}~>xD-}C8__Z{z;qHwcf}iv*U5#C-|KMZ6@mRz{_I) z2S}i!U=^PbKN$jh5MDi=3tp|D%UV0$#^F!Vw2pZ5eUXa9gx_mI+FlKvE?*Gaa4Dqh zmGblbqU%?Rb^w=pPdnZQ+K6}1)R8Qe`Q#?S$x3J&G&OfJbEBIifWOJb^VPR2f~Wm{ zZAb$rFRl$6b1?qh7Nebvaf!L5&DLUUxS96@U5?rM6(<^zs=?Z0+}r%UFS4WLz7$Iy zFMNZHz7`ZkKJc2*_~eT985GqigneP{hx%gw{eGXie|}z%!3je6h*>;8vPsYGyUWnS z*gTzjfX8(|I=^*m+FAYGF*beL7=9@8uw&qC#dU!xTa3I>oqbX1Y4ca!yPnT1XJi)0 zj^oR~3-X*;>+6MXoR!d?O-(`fW(_*!BH4zk?Q>XO;4$(>mWJ;872rMXu=)%Lm3%K<)T?;&+v56fT)1g1OMjdn7@)QOmj!}aF`caAtI4BG+yB^XPTC4 zjU|$`G1Z@IFqc%3PTc$|ftVa0UP998g$@?CZaz4C=uH_fT&4BR=9I5qwKdM?9HcD2 zGDnoQ@NA)k&Qmx-mZi~ZpL#n_wVv%Cg)N*VR^9+3MTF zmV=4eIeI*bv^}oux-CZAUGgfd!gIUL%yvJpfO@Rndo%o-N)+-6IIX8V+aP`dVC_rA;O?S zg`4J5)~K1oSKJr2?(ifxz&(A32is7gadtYIxS4E$atG&w=eY%hPw?8Gj4Z*>OxK3Y zu7rM>{q_6PeKV|#;-#U}Ddd9i@`+!`(qLg^d(ehZA1PG!0WCmFxW0bU?#sh3SU38A z5-Z4<3;t$oa$M}pD~|{j7_~c}BLrs+hN@BPcTQ?PaqE+@CZa_1E;_iItGpOb6`R&o zsH_xwh|dEA=fX-W5>d5hckSeL>P$Y~sWJ`t@Z(?THzkQXZ>=QI@~&(LHvO*ZsWWP+ z{j;4p{lG+0xSy9dU@DWPcujdtcR=CqLJm(L0@R+oLuI!_65hTMqR8e z4KsXm(_>Nrzc2o^W1a}xzOv~tpN-5LXBFEqUkjN7C!1OO<;Yr|iFKYHfYlkwjgOmo z&hGk6w~ddPbb6}cgfo#H`<3vE&IAUwk{igy*4&WuJQ;Jn8usASbl%Oa=0N0o(T4|{ z^_c6fd@WCh7UF()s>ECA!A2e35`01Fr^2fCIo)$?95*?pWM8K;u_3B@qY9TC`prQB zRTk_melgYr&7xhtQ_~#j6T#njmhu{(nBFPzMBso?*$1}OdLpQs)FMDdL;M;k`|FrMabj74Ovj1K*XB1KPsdNMo#;y~h~-;Ca8o4@2uz8?KpA8=Cn z1)Rie+?&Mw?}nZAUwBs7t|xj=$QxgZKC99CTs*~&y*t&tcpPs8yq9B4t#dtK5md*c z9kB-3c{{Y0B1?L_9QNHBU4H=~@bSbRnEtX?r%`|gIsqqCA$Ngh=ByNW%M79L|8ZF{ zSi2N0RrQ1 z-Exhgwny92mbU$Qf1ykAv+l>JD}pk{$D3yt0N=XL^LqMJ8J^RtP#!#Ew*|Q*25#gw za?bl-JCX5+;xBP{W|nJ@t=nIF?|Bb6V_i3;8Rx&rxib^7uXg3l(RJi`EbL>Q`BzJE z`>bg7Sm^cs=%#5q`f~#<9pSVspN;!d;Y+Ya7Hk-2WHrzaS>60#$QikvSv}xCS8Mir zJBpIbwGbT)EqqrZ+8aU)T&$#3CPxU<}Tac*3k~_%r6G_ua>dM z+kh2mi1j9G@LEt#xi;chxXe1Njsx3~p9-te&w9X%FUDG>p~$=_P5^gkrb{uevU0m3 z?#a_^^m{h`woT#h=b~+GN%-uA;Ky5Hgthp6HQ=-+ly1~*1-Dht(f!yHw58kJHuGK( zW`I&HF06^$^*sb>EKV@%&!^*Q4a|5uF+7#W_46|U>tF265irg2yuX<*5+JWGu)N||r z4&~u$sOSY%t$jsRBv`kA#Ni`3J1Z$3E~eA&`3p}Apd9 zeGTAip1!DIQWnq_;rXpJ358Z`)F8J z=kzS8I?tii5aaM$))*{*VgOyBNP%;89_Mtd7%t~*gZ8G0Bj5?%|EW0T@z51$NZyrj zKH8zrXb)p%Yj zCm*ae=0n)hS*v3 z_Vn_M_Yk3DKMbm!3;skKe-QM%H0{s5`%o)0@!F5M7!s=pO7Rmj@fniux@c~sf&cLU z>1E1KE1A3US)6|3z@Mc^Qj{qC3>X;wWTzLcX{WIgX)K)xRcY^B7bA7lkwIX$bV_l>h}eTEm# z!2?%aGnNKvWh^~mAD6mjtUdKf2M4LrYBaLQ^;rS?NW>oOV<&BxE$gy$VrX1)B0z<9 zx*V&-GoF>@;Xch-ZQ(dpQD=OpzH(*>-3v^dmZ+)aPpR_GSXy#VJ<+j%%kMexnPS!G z$i`nEFd>_&J0HbPYQosHCwUTWHqXJGx{D26f(H7XqI>JlypIRY`g8E9JVgA6dIw%! zq9PZp02-0i;U$X$hDW50PNlWy$QGTi*BLoDe$nWXEvQq^pqooB232{Y{afR~Z+ty_ z&GABW`F>sv(zSSABtSQ1fNSbJs4pZg(mh1qEEpmN0WY%09=XM`qHrCnV`{=}5 zkToXi1CO4=BkOHE-8X3f2j|gzLbiL_*!K)Dw`gkXu2rPZ(#P>Ie^3kL+13NnTr)WG zTXTrn@mDSfM(TQA;J^#9^ui5otcg!gZ?v!IXRRhYr+mquBC~{kWgKOhy6-{M`0qx$ zk78Wnb8(!wSG1YOMcQ2%x_L2WO>@i}MfgV3hzFNlb#j9!B&j4$wox##0sr-_&6z7<3DR{=V5Q-d}@!q^?B;QZVdjay`ypD zifSLKTX9ueb!3CDUz++Cc>K`jT<{{C1)rtofHnbd_AbQ-NCLjpBAs5_5NV!6v7;mW z!UcU#1>Y48L6U$9Jpe@bZ_+K;A@RQS0&UZS8AqfKF1j&N3yF2cytUiA5saM7BB#+m z>oaslb9?yKvYgvvwQ$Xa@RU}fKVIhSvzB?Lh|C%Dv1Tj{QpndACmw_&r+K!^X=(utx9@JOS>x(EyHO3|T|$IJVAJm}mt-ERMq$ zVHE5qWAgS-u#^6G+aJzF8*rWgy#x=4c9QDt(;Vscps!->?bBRCA#nM|DGK_&UB(di zc*lE)x2_A{b2Zwt7EUelJ38Wn9CGp-cXi9#A>v|&J{En8pD5Fp5v`>+bms%k(ZRKu zgXlD9{v1A)T+3EpqNv6=6>|_Ro-Z_!XAM7LON@I?KfG3?NZ#wB*2IPST6}-gHHFSZ zjbMLw%sL9KNVYC@G_$@G@_($fJzs{tYjSG>x=i-te0;JV_Z%FE|GM#j+Ya1L@7dEn z%}~2LCgaJkxjZ=5?UOd=1GY~FTX+;C=tA)P&`ftuMxinoJ@NKnE06Ta1QSCexea~_ z`evvN$a=YOG%I5_5iBCd$l6Lk0JV?AXSEGe);{+ki0A4(NO{Wb9q4EX=@wVD*LmMp zBFa{tg_u+IAMg|!L=Z`1)_vH=d8*V_><%o=-wS=dM1tr!_y*m9e#_i0afWX}No%)1 zAgFJSZ}s6&r8o4zcH0VrHERI8LS+tW-GDz2m1zgwbxP3@3b6Li5vGRNU9$REaj$7P zZwa{SXhU{`6FcBY9`G_FB9%kYDC70tzl3d|`dQWcsXxFtc|I}@!;tCb(R!WY4lL`* zSPR(y0qeNv@TJM_?+4X?mVk=Ng4@0mX*}Awx8M@ zF6(woleYrFv3fJE1yYDi(5*0gDiF*tB;0Sk9m1>AG+vb@f(pmJ;Rr{E+COC ztjE){(F$#%w_fpdt&GB_^%r-(qD{JUVfAx1@>A^k*YjOpdg>05^{4_M`^)Hf#(F1- zJeBq0LCk}Vk$x?DOAFV~^?y%~_O4OCF9#)XWQzTGJ<`)_StjgnW1f;JsZ))@Hy3l^1*FG5fSo( z?;)RpXiU}L@QhCB5_6r4zwn6B{&f%QUS$KE(SU+2F zMF*$NLI2=qFr#j^w(VhLWWTSddotY|i6V|8mi=ZU)HCGB0NFF`NOA^5D~r$JF03qP-WT&MH$1|v?DX{U zkNqX)s5SL37MF7a;F-XXa(3Y2XkY{$y&PH4<3;*E42+|>iSv*rtP~oDoCX>2ahxGI z+S3-=Ta#X@tsZiwcwG@p?J00Wnxa+7M`nd=zvYpSBbs`+`0QvSv=r7;o`P5NaC{~W zQ12_Y25Uyf!sBTnqN1kFix86td#aZ>IQp}L8TQtzN`F#*iEiNpR{J{#V1j)fV}NXQC&Nd+3*2+nMi{7ipCCCh{PLe8`YwikM9+$dFox!vy`tsy2yem#zvLv~Wwea+4LB$A&Yh~m;T>^G z`b_jW9C++UPH1;@0@`9IrbB;8f@nvq?VXFHArc}zg)i$GS7B3h-5c}AAAh9ayD>M=V#;cvVG?w1e;^{EDR@gj!x5xvb}R2;q7%m;nD8Vos@E&1pUv`dca zohE(ann(OS<2v6;X-KdH;2^d1lhK};Gs0o*t?u`Je7$!|A4L+ZCFO8D`dX=21}}ma zcs_^``3|h65K=8%vl9H=q&p{e!3JKRYCxoG=i_J`UgZ#Xv7*G*5NEWqoH*vr2(&); z65B@BSYVCLJ=2o&=;P6!FM2oQEHqHvatLp55j^omVAXyt9G{e{Gv>OBq_4T#b;zn< zi$n|X-&$J5DaJc9<9Bu%Rj_zc(-L`T16{F|EJbuK1=3=C=YeqGR5W&JAareOCOaY?$^U*lT5VNE(>w&$};Z zTYDtZ(AX;F$A+|tv6zxn(_B1$f7~ep_70X?(BX9FG}Er0i5AF+&udQqY8TDT`n$mEIz45>I%Cs$h2hv%Yt& z_AHVbvK)9N!s|G)DtWr_RD6ns0z$G2EnT>EVg7ULYU}*A{}<=XbRuY9#}URR)jz(2 zY*{$(n)a9v?}O8Jvqzo{mtuPBQPWDa2jAwmHjmJ!nfJj|BVmiU5e=Gqg+sr6+@T^; zjyFsu%ypq%e;64-2f&f?V4a7;f1veSF-E&nuc{q(P>w|Jtk!0Iikap8>MSzWD|G-e zrl(kXo}gK@Gu54kjE1<=ZCj~06!W!wx6Fzkj`ceF79{Pc567&+ifbtruM|DSS{^Pv z>&lA$*zgbhkBvAVcV6Vz-q3oquX7FXmgKZs@hDx_?gBcm&pV2_=XsGf|I)yWu11}o z*Wle8%jQd#8}UGah3cu)N_f=EZxUB1cfy-SmWO$>c>mRcck*AH_>s-B z#^`5~au!*gJy8L>r|=*Co9zlZ2CrUY%72h`)vk`mpS|+$gkM8uE@4uC@QV$Ul+~l5 zy%aOlP;eu-AnbBuz3-;6l|{L-H9r(KjUV&x`J49U4y=G`t98b~bLG4&3@)%$KGkZWg=% zN@qY60pvO!Z1AAyi3o_DEiwW4wRpAk?_+@*3q>2S#@J*w*%Kr3?at-9{)j)kL+0!) zH7m;7+!B0cEEBo$&PTW25uU9wEQX151?(%(LUjnj9~qBJL67#?YRmx#IsdAxf^(kz z{&$p!t9{-bncicOJUuLy|tvv?E~YqE$%Jn;n+{4`a6u1ZGt;7_W?=tRV4x-sL*$W?3T1!!du}NV_kp4!W7z+w0p^5qDuc6G|>#+vThCr>`O14OpgI6!bX!UcC)BX8z$rPn^5FBV)?UpRN`~2Br0UWdv1BYnmGiyPyLaJavih=gs z1*>lPr`>^(Hdn5cESTD=-op1uI6pgot;SmN2pmpsk$Y@i2M5lEN6*=7tc>G~``Q$) z`UzYESHoB4UsLGkgRbvQHN&iR|7=sX)&2jt_$}CL+c9|-UGA}V+&iJYqy}q+ua$e& z$rYTMkVchk&)+q~QepwI8jR^Tb{~qr+B$URVwXo6@l@yntZQ5UU>WeOh_1b z12ebeT2^Gq(KVdUVQg2o6ZN>lLVE;Vi;1n%KHwt!+0wHXR)S5zgK+g5(HnLT4~&Xm z?G&kAPM_in)^tmXc$F<>+MR;`ddlVK8{QvjedFHLG@|vmn+yo+Sim-zw$@$gg;;a@ z=B!;|ZOK8OjOq*Y6>%C^GRNg8^_<2KI)CVlx-6c@5Z_3na=RoP#M?2!D!QCoSBW~{ zG0|?ltnZ@&(R|*7CcvPbarh5hb!&X^JWQut2cHh%VLk>AEvUHpdzE&!WXjXRmLYfe z2zeVoz25@fuwn8G@D@xTXv8SpT}aj89*>b#|Eh`yWQ%nQqs$1u@s}Z5yn_y384~f4 z`x-yU>&G!NvQWPlm{suEq3|SkMy7x)@u|=hr=l*KIv;zz<_|~f_VIH6NjrC71V2dY zf%E0n!+rRzV3Xg#n)mt)gFW^>XFW9Ve#+XrmmiQLf{&D1AQ;E(1G?jqJ#i%egW!$! zPFdtBpX$WcFmH4l!U%Vd0`$fq|7ot6*K4!5xFN714%6Fm?g$GFUC3Tx zfw*sfwdh^$dLgQPA+i>EtMUFOt8#1kOEwiAJ`yA4c}8wM6Bo!UpxPjJ-V?{QrzdNG zenE0oH_z#xuTCurmI-RmQq>Ubgkv9+A+sz&QD(!kKx=HR{&Kui_m^hTjlQ(g9Ey!k zhV)aXnY;!y6(uQ>wskvQAVQ9ZPu)ukadw!K2#YnCPrAW_+<(-amujVr&Y36LpnKlU zDf|g**fLj?@|z{oehJZvvCEpE6K~AxVtAI{r5YMZpz{yh7>7(liM9C6cPm|(yag(C z5P6_lCrN7IuG9{P3s)<`^%v+t|>>3 zbu!E5I;37P3U+op`j@BpNW9g$+Pc1vXC&0KpoQBQJMmMW15>6-*~GL-*3{TDOYolX z{r1HAcTTZ;CAlrA&B$m3=&Z{3WgwP6bhIap_Iol)hEsk${(G0j7|)wp7TX{}sft_0 zLE_;Y<4{1-)eMR2K2(YU(8};J{NL@3|6Jcr!#d0*;(cir_(L2#9{s)EC^@sJNkoB< zgU0Nx0Vvu`0Mdn?LBkpv<^~7MP6U`)X|ETlO?`>Xd+u6u_AMn9^^)QmJB((XocIQM zEUtW{dS+q8P{Li-B8o)2c&_sZisEXl6V+Udd8}_VIuV9uR@Bplw}nB}N*KqZwQcjE zu;znnStFQH(ufabItU-iV9)nxt`41nu(pflyq`@vW4(OmI9l{dDUN&-O~}S~ zan!E{F_<$@?o?eFgoGV}u`D>Ytvw&! z*4>RI+mlXD^>)ayO4#F#+~2xrmP3I9Y>#2J*8tZ6H+~gfIvIwKVs763E*hx@M&nB# zVTo<0mfe{@Q1S@mX5??kqa-wLme6+lm@NQA-j^yD@M#Ul}$ ztGdA}Ln1E4h#TW_QK$R;*i6d z-diFe#Y5O`@GakwpU5?}Y>Gm1XIuWcbG53I(~0HUI~>}RK!WM*K1i{~fx|R=#^0hI zF&Z$T8_7y=e{QP@lFC4xIn_m&uwKBk*(f&b(>T|byPM9ejUq=le-8?MLJSJjtX{lY z`&nH-o~T*ckZdxs$%la%dTT9Yi)KkrTRpHZc3EED6nwSkNba|mY(uA*PxX4O4ELe9 zv&ule7Ch`dTgE;X^oFO`BPYHZKka{dz5HZ+?+s%cbB|R~OFLr=anj22ls|bVyYffu zJz3I+YMdUKw#;_eqc#r%#jF$2PvZBCUkuA5O}^feVmayNs9G7RbN9It-eHoNx>JEi zWwp@>&UFz7Yj58ki{TlK{_Uye>uPMW#zQ%xR#&XW>}R5-^vqhUPk)nrLR#^~=iSo< zob#}$alx%~Uf4IsvA zXRU$s6P|$2v=Xo{enrQCu8X4~8<>!rOab|`lR9?_Y|len1}RJ(%Ca1QSa8}rYlSY8wj{GH z8qFWQAKAfA_-PNt_pMpqkUrSjH7=fE-a7XzuzEUiai#58w1XwSQ=O>b7iZ}6949^G zHisr%>gtyEhA!JL_myNE3cbQkHI=EnyYqC(s9p{mqnp7ljQ-r@X$?u&E8u;m$UA!! z$`wlwcrN@#oyI1g!w$fX(l+-qz?Z8jc64+OQipe|?02ni(58&YTI&5#B(0z6%zYi+ zg{pl{dRiyqhgcF>3x8#wZuB@F{j-~pxmrstBMJ6Y(UIC+W@XfQP?f9ft#3`dQth)0 zJZWRKubmpm7K3-E4dqTO5$SWLHO;>Hn|2N*k^MYh#%%rCC&{lc#&@iYH86kIvYgO> zRb#vBAvm^$3$^25{y>|<&v0e!%cjSNR}C-WZISQrn?r}BR5IDMh1kj2yWY|bimH?? z)hz{<$gaF#U6c3gdrw{rtyZsLC{mv7$${nh5mWn4LG;C;c>gZ7RN@WnZ5NLTgV*!Z zqG6I4r?H- z+?BjkZKCaUzpdq0=VIy#El!5;z90CnmVDiv3M6$_%a*XVZ@?@IS7(G$g4?%y(K_up zzSL)cCgzHy)Ou$g7c8lkNO4e#*wx_LSL? z>f|9H!Dr`AIqhaDXN&iWhQW_A-=7X1(u#+@bWs2v&5XQ!sMV$-$#o}W&>h3JcK;^@ z=P2q|*MhEE$ugYRk9S+nQ)a8Kx5i=-^N@AR%=NGgjN{FtKS_9oy@ZS&XUXF@cwnpH z9`XzD?5rKJy~7smN~P-XH1A~}*SBCzg%ObsiPgZC4GD?G&BpHsg7G?7m`AKuD$Et1e!9FYd1}->vmLB za!%{kB5QDbX1H^=+TmWJzEfXvo$b_kjA$pJLJVT4m`-)6<=iD%&#%ZrwR z!bF(J6HlbK!Fv}LFwHq1?&^`0J41}*wx4t{jE~$M&ucrdiSd9Q?oez@MiXqfw!GCX zhvMxthl96t9$t59?QvBHnFl+D!npxqmC8r1tzV1(Bi!1w!6nxx45-%sA_J= z!023+C5N2k4`Y|)N0T!vJ|#Ew2K6sbTcRmu=L?7W?pn~dtFwL>e4=;PE5rDs@Hh?U zW@fi;e6(n}KJ1ItIqc7M8 zK__u8<(`4|M8DbE^R0(&=#LGawUbS4y!H?MX7Rgwy5>|wSI45pg*ScF8hc*LBgIbG zFOjGE^^zfBErt#}Un(nQSCBn~+y&Gr@cB7+w789OD^?COveXu0M{w3J7MS9m#kbgf;>H97KZ_!p1a+V9nX6ljTCkcF&D8-l;J-~GOe zXK(Fye}r7)Vp{ckFP^`(->(D((tgjIyS3kKzs0k*_PgypZ`Q6(XnQW6S6Z|FenTgE z^s}!`H7oHkwGHz4_Y~c-C-|bxOi`0l=QH4ADgZJ|$Q}NCns4hM8b2DJ5uIHwcU}+^ zWnT2Y>G@mkK_NGSPTmpL1c)w`D#^FwQ{N)+bi9e>=v05xe)obN&y?ln&4SxYe8((L zPSy{^U|m18Q%;ttuEi&Q&076#1@ifVskTk7QTV<-@;Qvn$aOWDp8oN{Too}0_E{&F zF2*d#Eq2~sEi(hRa}eH@AIfS&Um|-d+3UM%$keQrNDW(BebGu^~u@vO(Sagy@!a0*6L_dXO4W0!gWT zk!5I+xrsjRGq<}qU&g&QI|IYckQ047lL#fq$<{fve#NLWO>OlW_xI(>z(##~?YDo7 zxPYoUVLCr^_>;ke^(H^R5V$5Q={h6$!1XQgqBJVI0Nm1hSLjXZxY_N8d!$$4WIWjY z@l3hweFLMSsp!*s(NLaRCtDJ33i+hWO0^%ky+~}(nPOq_;C4mLsk{v;D?f;T?u&G4PrtT>s!>Km zxE{@L?H#!L%+IE}v%;4Xt5PG+MV=9Q&WLYJ5jyqpQ)W+Q04I)r}>sN0RR) zFEz&lD<{J$={9=oJ7cl~^8J_tk5IlCZ~A&Z{_zev)l=f@D9?mXIgU~Cwz1{cq4Q@{ zB#1uDO~iurSq!}^L-BBYQvn`kyGs0yZ^x$}#+Z(QiKr|;{Dh;Z(Nb-X{Y`QrWKUe9 z3Fhrh9iH}(*N2bA8a$ILT$qW~KqpnT@Ee~n8!^7?Fcc4{b${mZ=%1O6J+zAc_}wv< zhrO=+SCxjKqT-imXEV^>vCWtnf_@`30L$s?cUK9GJcAJyl|fGrf~eW78t8}J;n#+<^^(5=Ynsz0Tk>i4^+!4 zyD`Lxx~XYz*h=E6OVf%jqAJhK@AZg_@u0DZE6tTeYx&pSLG2}JAz$JA3|MEUg?tqr zr94v03No!4F!-p(S;p3Qg}-02Rnj;^TC+Q^WQ)1GTtNIRJQ2aLN@E=l`{LwTU5f~h zNcTY-JwZ+{RkYC>+US%B8%s~y%vCX?+5t21fX{^Ojk&=BZ8L_3TZGFt_oK)SjCG+J zjx^d_o_erR}zKY+|a3r+J&~6GC_nX_G25s(|Q~=5!)UHI|%YP|uw90+0p-6-l^P%`8Y)jih z_IPNtJj*|{%aO2-BhO<`%RVS}3k|AFUD_rhRWh_#sP;s$J~1@-FIjCSADK_!X0TRg z0Q-IVXNg6n|86iF*m@DZF##|6WY9)$Tx$IQ{6Qehy$$4$9(a4e2wi~!?@Sdl=_3xw z-28}0(M=0OE!9J_;U%bI|9pW+_g=6kwmYlJnB& z72R?uUspI$ZeKpM-hP00c`2aF_<(&xPKgM6KD+BW{BhLFw7VYU<%l=sH@Pk;D;95w zJqex@FM4gRcf2!T{3K@M=2hlB7jW>CdwO#Oam+sqzeL!@%LU%_mzA63Mjh9hL+h+3 zmB%IT%h>Zy3O#g^zwKjKTaRy}x!0N-t?9kP!Y-5c)E#q5BeihUD+PAw-rmeX78$wJ z`R_WndZn4(77}3u?y2WkHgmOX{`Q7#EuH(?SDX#k{k&3qXw6rL_Cqt-M*+h~+K-P5 z`p}F=|LAkMFB);H9)!H3J_KM% zIV>n01R#-d{vc1;5RH zMtyH%W~cC>hzS()bEfjiz*JpjB5cqiD=ICe%V6ZG4o03?V*JhFzB|)bmzXJ6V&C@4 zF$hOJA9QzZJiHF=i66D+E}Y5_?mpWb)t;{AYxT8#PWUT*;LUQ!eX);+$1@DVq^H&{vnbNUuETr^;>41X)UkY zG($cvjJ`gJDxDWl^+1zNe=IfS!;4r z#FGm~@~wW^M?Q=w2LBUNlMPTFqvfYV!TIwcr7ze=&Y`018Kc!yGe2ZKCES-fY)D7# zi>j-Y>4>U|Rt7+K1uG)z@}Az54!=M@-(R4-4f2?4t#Oh&K)D8HS< zzQn8>dx_2G;|_a}oDXDq5=ws2a^Dwm`9?TXGrm1tvvEYk1GStlk+zT@Nj)ptPLvp` ziyxM1`D%>oy?Jn;cZ)I>TH~$2Io8fQn8$)6*5Ynk^mD>i-|L`?PWX-8I&|Kn!JGd2 z;dEuzE$A`r>q29#;rnH7EJyCg+4rZP_Q2A&({7CKWA*L9^>g+`$)*jxdk-w?c31Lp zz<|Gpd?bw0eY6~|>a+&K8?ZN-IpNgfj}7K}-=Aa`5~IQco;JP{@F5q&-t#!l-djfC zX!3HZIF?TFs9*`N!+0@`vvx*Q`ggY3%USg9j9F4^E8f~b!-1}NACd zTm{3*ls97qSa{n%xL<`sptS^X0e`0`&mP- zsFN5$^|jOy@bxR@92nJB=u~u(qG5T$uf(`Oai&mOJE4+(B%`&Z@DjUatW7&ksdW_J zvpWPIdzH2p*#~^czv|9xy~oJo@Sk1}NM}KfgtEgT?WnWRtP4qHocZ&sS3L%O*mFWt zF+Uucc?Kj#`(AAyV_4d2==*~q|BQ`h*PX0rQz#1MBn62PwUVx&=K5fHACI)T-c5xq zk;Jk)1aHur)ry-XoBi3e;v*qttI=LI6;JbnSmp6p8#_M8s8;Urz8ar*HIGlhX+)jV zX?xwfL8xz;1A(6n&0~Dq6SmG_=gen^koQ_fh!P9u4+M(^4rf_d&r|=rBX*u& zE;5N;gJ1bqpRIg3_ULw3HBZQwy$8!$-Tpgq`f_(z4ZNPW3q*^0{AvN{;R*I$4hsVR z!)<#PXw&ZM_f5Ir)tDbn;Cx9vURNvj^>~ZVeUXU~U&$^>x7K_Il=kh=a(D>nK4jxy zc~8O1r9SWJ!0R(5zxQgu1U+Rh4u&VF_Z*yz&-kabN#mB(}A@Qf*ySL*Kfxfc>^la&bomZ?W5ci z`bbzsj(9E|Y^jtba5j!Hh_dvip0%EKbg%wS@6K2Y`l|Ih-VbOb*Z5S(bL)p>R7biZ4IBR%B}p1|+h zzG#*2$fTVl!&=@^Q`)6hqK7I7xVPeTNESY?-m`WoK3R>i^F$@FI5Sg^Aq>106hrdB zp)fZDvA9w)WZ9)3e1JV*g}|nq09*hqT-TN-uC(gBy%@U#-mrPjGMV$Q3$5tgZQgso zyZB4w9mv^S8eJcsuo~o3(cXVN80nzZ@XYEpg4OgQWYOAveXUjarZ4_5>-62m_@&5o zj?!&WN2|!EvS<7>kAq3)4TYJOcQb-yw)uLd&g=PYQ}SS;lQSIl0H6~(0_@kir^U;> z73~fFSq&@qjnKfn-}kjxm234aKZ*H8;}T_^4_wF!s2UqBnK%>I0Wmii5S1ovR5zU* zT+jA7ooYIr3)_s2geUAVgEw@L<&P}5-#!4R_IY3D6iqKUy5@%Dv0;kT{&h_$Wr5K9 zZxyYAF7yoy(ECKl{izARJsz^JOq*p%-iF@uVNC|NV439ECtR~QK66I0d>>tNIMzQa z`_lUH(jmZHzv0o=$WbJ^7+*~}A!Lvi@2t99C*Y+5%*p!`id2RdwC`JBi_|8?Ng<3J&ISz9VRc$i(zDKkc+*g4_G=I(0zY;b znP|}*eya0grcH~Fp>r~hdvp!7FHWi9{>BD!mYd)R!{T%4*ih@`7zcU@|uXm z@j>5@)t(#uR)JA`MkK@&IGA&J&=L)@5o&dB9DyRvLE?ubKKi<*%XRXUjmevBzph_TfC)HcM`5Ke$ihGgGUJU1ut|=gYM$)NIX&jG@iFpRugYl@~@nc=p(i zSeB7Rcn*C=9C#^4&3wXl!)ijOcjD=L!NK1xw^#u)`cOFl?vF*Iuf z`g|&Gfzv;@eXC(xDKozp8U}t_3n~IRG?cY(VL1>IcTe~QXg5oY_Kt@wI5z&P#fNun z&bY+1L{Ars=2KS9T5KpjBzIwH@ot0U0R1R`A3DDcyBl;vFag9~>p8eZ(p}CP_YS*uy{4PJif1#7ll>u%mTHZ4L zXrTlg`+ndHkK)#W=cdH@xW!r6rKK}2PsV5Zx_`z~WQxo+Fn!SU+c&x;J`s;%<8@BY zBj<{r3mXMh<@4lN_$p`xcw7D!@q7LDAnk}?6&3p-r__tQ9DDH4Sn<^}@!K~hpE-6N zm6I&1F(;$f^PiZmMVZ6rgZ6L4_^gf-7sxGq;V2iaEo}-vA=%xk5b3P81_(U~SGXzz zONK^1pJ)lr*&UKaH9%&1s>e(G`q^OACqI(8XKS;Thw3N*dZRbdU96b(!rQhU^TxEl zvWzabK5h5wYyYz=?RcYDGUXD$TIPfDCcK*_8kT)Q?p1-BXyY?sodi1+#p5K7b;T61 zu6Yd3!lTVR0d`y&J9wO&k#>!N$lPL!D{jEc8>&NbJOXd9R=7mbKyt1K|4+6p8VQJj z71?2B*b3~peFXW=*yWY@Oi#2*_D&^@m=RebJTgKdi~7Adri5e&OOZI zlU_r52j7J#44hyO%z=7WE8NT%XF%l7*Yl5q3dE6k`SN7oA8T!Bi2T)0W&h<}xq=9u zrtPk%TRj)w`_X~!XOOOOegt`SHeH%Twpb8B1M?x#1e~YmbwAr6K{_9|8Fjfeo;5tp z3Z>1_BFL-9ov$yDqBAi@`kv@Qc>(i#W<-z0Krf~yhlk+ktOfAOk-SR<(pn!mRss%o z1omEI$wu;6mv}Q}nE8ZDV}gAl@(Y{A!tnyJc@L|A=4vtSmZD7`BDhC4 zVXjU1c~(o!g?$7HaTpksjjR0?WK$k0R8UJSqGH~>TSWTGS`TZZJu~IrEH`!L+ilJB z?TspoEPLox57U86hBY%1Nt7|4*N1lRYPx8RiA!@#>NNWmi!u({vjBd_m|6>3Q9EDW zT>;CQ5o~+KSI!aW3ui1-%XYO$;;^f~YrI(Yu*Ax1pjE*E7~iOLGbi+wY|F3ca!t#J z^cd0zi?m7V3T3QL&fv}2eAvR_2#ok}Ji5Q^+&^0M6tN(RZP0`M=H`P?WM}E#9@m)>t<}Eqq(#k()Yvb z!-7gnrEk0v6yQ_%!J{xTGT}Xq+OiFg9Q?SgjrdrX;D(;vnD1(@boQInk%cbZwYvhG z8KER6NGrY@PqiM$VzT4d?c9gYNJ5zptQDH(p_0WrUb6eh@f(31?Fyi4RY5ABLo^`9 zMRr@v*LMxz5or%fQIvJ}Fn!=x_)1(1W$`aHSIb?%g-)drqUlTtHV2 ze=TGXSp=iW+ln@JMGX=;P3i)vFXEk+8{rx0{*CeFY(9|YS5&<*N}>U8DH)@@W8b)x zZbmmkSLD+<1#`T-4Y)?K2n6rMe>^C7OtCF*26KhCVliv~S_^NFIt@h#H%u~w{=06) z@88%aZvyG>Lt@_0IRQoONC`BzK6FHCJy*w<;u)S`Er>brG?Zh&!XQ~`4Uq@M*U8UV zBw7h4Z^d6k#*C}glgnTXqGe8*k*&t6t`rQXre&8~8r8bDt9hI|0Iq%<$!P^DCi+-H zdeV0X66HqG*!&LGxIJ1KCuE1!p-Jg!EVlkH5~V$J?WL+(6dNf|&Ao_XvEW4Keg<{G zhGxLp)EU-#&WsL`^kE3;5AN(u)1N2|O^L+S^RO4}yG^ve*TRzCC+pU|{&)t=0nFSD zxFftxbCP29ec{oZDXUu#Nq`Ta!r_8*v=#KH=1Sw?&G7&IX~raJBe@he$Lx6nR_EWrc8dB?-rel1{ijf~>}(MA~- z>=$y%PyXLg{_0{?d}@x<3=aiOo!RKN&pcLIHT0NtOzyosSoYqO?~sk?uHE^t97jG3 zu=-Us;CBfmjJ@orR#z(J~JAcqQP%9F&8&HN@i3eJ(W@JL^DWfnPrK)c_lQihLzj z420O%c^Ks;D!nO^aW|(iKi7{x8~PCo`GsO*u?29jJyduQPXk^{E?kcjRB6@QC$_i%D1$G)_#Zx+Rp%jZCUU`_E_94GA$eT>!59P7ieS}ZQ@#6jbDs&ln! z{e$oiYM8v1hfCf^?>~pz(3FM-?1Ka0$G2^eGu6&CFuGzpEb^#os;I}jdFiLzldK?^*4;s@Jz=-z?)uW$0x&224*ps! zSfa(B&dSXQO6~&wRfIKE|Yd9W4|ze3hpQ8M~1&my89=jq_o=ek$Ddo*E4M(pY7?tAOhsq^PMf2x|yBs{{- z=6+1)`xV!WId)<>UQ01 z8@z7wa>{CxMV+qey?=z-UdraE-EaQ$61a%9xE251O=5!_kG;gII#+#;W}7Yn<_L4f|o(f(LO2Wc=HBZ1-${%RKUKVDQ~IN$$IMYt(;s z8TftE+2OnEne^Bj8u5);x3qj(2eD}W768yZx~7`ir=0QA6*In3Y?vyDWSGdaD%K$4 zqVg=pk-2 zk^OHgxXNLWQz1j?U9@C3$?bqE$-nR((GL2hnv;5Yb#96?^&nK|M(WBf)&al9)orfG z6%?eLzVGdhIuMX-i+ls0lMf-YXKLKx=Ufi`A9P+R!jV-1?XY{x`_Gn(muqyxVC`KU z>2aGhQyoa0p+^LPXQ*o=%vT6Iac15b*TA--(k*~2XmyN$hk))%#*$v zxTbhuCwPHZr919=NSkeYYhC&=wPvpMXs-A|VR^7i&bi;Sg|KbE$L;lMv@w{nht$P+ zojV!}xyO#VBZ)}WlXy;yu@iiTc6E4BBmH5mu~cVF-Nvtc2S3+5$`qI=kRXROI98^?Kv$C#FL5s^zv#Ves)<6>kdsnmO5K)NNz z_q!N13@|-c3ejRCpj34=>*D$W*$no_uXZl6~ zx;yyx;`%CMXi$L8`LbS-6JQ>^!@aYP!Ci<`tzRH$x($)A?cmAdcz%$P&_hrbe4QIh zb7K__I^yjj*V=b9nw3WK3h|h>NU6_s3mpwj5muXaGJjnNcL3zw|9)uAbsEwbxlv)A~pJ zg%FUepR`)zGLn%9c}Sg#Cy%LI4>=P>EoptI8`l*=W}<#uqEVwRf0LVN5~grp8NBv4 zq0v{|;t2IY)%W@(K5w09vB0YPd{tS^5#2t0P$&E(;(N3}v(+`>IZ4{67bn(JFE!p8 z8_mB(bi3ZFP~Cc0-6^$okDoibK~7kd*6SE)xMvpcoZX?qQon^&V{P-4z?5OHwe@F{ z6+g9j(b3%cMQ4F)ErNH_T_kev{n->`wOXtXKV?TnTPxGNX4-4yZ>tF<=H-t?TJd6e z`jBP5l_lwi`YfF*Or+Z)kugrqt|TLkn(pP|RmU-`{wO*)81KM}!q7?m$j&GpFdx5< z?A-6cRqb!8xvHpUJ>IgyWA4_RNGpp4%ALYV@5kWw@i&qU2v_lWNC^8Q;7DyHlD@c_iV9^|N48SX8aVC z}{WggE)Hu?IKIM7cx&Y#~BOgAKGe;w7Wf_Zk430n~jjS)EOv9t~yVNqZD&% z)$sIqPh%7$Ti#!ut=8vx%0`(8b25KlDA6aFw9W`=H!YI#SMV(5$QX8hszHXsrVK@{YU%7DRaoMfF3QbADjp!BL>xBYYWaR)v(7$TH#D2)QWNvAFJP8C&OsAs0z4Hp*AAo>+eHsQ8RUG7q3E z>*lLwX)e_j1KnM9EOj0-wmcx6TdWt9{aUh=oQLyG)T-+{s7H{!r|r*~u&MGArt(Ue cF)h35X(~B8UqvUs+E?(wxyIigg{BPSX*9yM!FQESZ4}Vfzt{%tL^>F>8%e%*~NGX2z_(@mI zn(v=G@474JT{g!* z^oNQP|K~mZcxW^6yr&-wP2fB6$;9`uP>G5^9=clPKNc!h-$z2@)c0YPKQ{g0qQ4Wb z`}1R=v(@*CBFV4&^8>2f`LkwRC2b{oR$AzCU4DBf*X_$IXC=~FT_?D@rS`~lEun*3 z#;N2L8~CKDV1QH|PIb9Ds-)!C^#lNgnEXq1l~p7vIdw_ZKoTD*=cGu`l^#lUJ)uGc zuF^_c+BnYjh@lenpJj!vJv5p%B-J&kUGm|<){In_M%2l9BE^-{>F`p?`0(%*3&TXS z7SpC6Bz<@KktpSNxypvmyZo~7WiHpQH%SGitDf&tzU}@6V4vZ-m}|y<{eQkFnrz>v#+C|(9#7>U7h*vb@M0rFW_>GO~(HJ8EVNZPjS8T&O0sd>u<67 zc41ZhtsO#ULu1K|`eJiak-fIq-B6UbcD_-Zxh`09RF}%l;jT-1hHOck_gzzptH@m4 z2#iqGx`;cwzOiL;g@PF}*MzF4bPiR|O$${o?0Z3QQt-l1>{;t)+YVLia&>XJLZ)Zs zd8w{YHU+C%Vb73hOeiHGmjC+ohO5|YZt}cHz!j|Z|EUwn-uhkxUDiz_T(0u`dsW82 zgdu#D0fsnazGp48ZM%3zYgN7Pj$=tGKQqr)X%J|t+QDCneBM;GQK~c*qz6c?C+KP_ ze8pAMDc)uD&~TR`_a`;(%KFHU1!iL?7L!^9nav^dqeAx@>$8KlUE>}-G~!XkLgxFG z^ z!vHIly0NqDVBVS=y2s9Xn6Gc~cF=K%V2wGE2^=d(&kC7qL$T%3Kie?wNTEQj5Qs^R*GODIj4GRdPWGCIR)nW zkXa1u*m5C3VRn6pe7|jkV<|2Mv+7P#fj_@E6jNhX9E%ACs#I}I4Q?oA-0`5G6KiE2 z+r~wAOJuo3V4VM~8tk&>jS&{09ov`z;E>&11WZsljWPTOAG&pryqXXy|0A<(5-+Jerzy%X0hs<4}=&rdTb6;~| z7C5`Cxi_D0};FmtN#Z8C9d=D-m)P>yJam6=ts!8bJ?o z{Q|)@9z@)R%#yuKH(%v#LWEdh4h02DKqwb0Y=vJB1u9UIAT9)iP<0fwqc`WI#-?uI{HQ)Li)WX{xW0WLe88`-daSTAD6J z$+EkgvS%GpcGvO!Qla5M%7$VCH{74%YA$4{6t-AzKyv5l{!>mpch851%$gxu?_Q(FZ7)=*V_I8&-uhhZDDSq)&jiqBCI zRyjrp{2fr?19NJ6AY_KqL(nZtaB7UlW&KdNu~y9OTU=e{zaV&Fa5C#fU+HVbu8lH} zO^%;!w7~O#6YVuW`rV_V=VzF1~uXXZlDYL=4Y@bk0rI}l;iNx}@ z-r6Uc|LoVjSv{&yx?HvYVf|_8mZ*=Au>P~xw&SNJU=0))Gd9u>5m{NG%(bDsw`E|m zZaKTj?XpS)kG!Txzq+ZyPm*E%ZKAXWW zj-2v5CR(en@^}Gj{#etkeBab?myq35)1z`-mnzZE4Y&16&yX$M*!6hB~!gQhN&XmaR0{8Bc83&6h><+Z!i=NEi zu}uY|vl2Kme#Pbvp+UD;XtHgDm@)Bw*_(^ZcWmQ%A_N$fP2ad&Rof%yNAr7qrAFmd z&{3meZ7vqXHfkhdB>~%5q=caNjsFZoNPAv;e;6vlNI^e#0l7U`mZE!8eN}%%9f;3S z*h~%5?~bFVMm$1*jv@22N+h7gsu%C@Y+AU}3ea}N$3^q+{gT!rIeKiS&~mZaMB}V$ zK<=R1E!6FfQSFM<*6rS>)&dq0#hc8*Pw9g!BEq~ZA}k>Dvr5bvIkJdM4_-R0(aL_s zCHfZ(z7Q1@27eA_bR%N%1$o8!&;J+B6v5>Ul4d?! z@}he?gimi1!5{3=v(j(f2Q_t93RpH6ow3p#Kb`sHl#^Umr_;%1hPXdx7Di0f3+aJi zBt&jx+>emXtfbr9){y8f2HD6i6p9XfcBZJqjZL1%2qe|vzjZ<#o_(@(vPv?-Crj_< z3z9STBCCCR2x>;3?6M-vk0eGPi4@M#Xhqlfr#owx|AGr;^(s?h&~xlrZInbS2jBfl z^f89Aloy#+am@SVeX>WGTtuM^ehwTGRmD?^&CWr4 zlP{-<{Ql)@|jFXZ!~|91bme@(iuU2 zL3IiPIeT(1YQ^%e;OncLEd0X8=J6k7KE1~hYz<|gg<}EGIv$SoRh~#8;aXC@)G0kx zN(WzMX97)CGH(F$IlCS|+nubo?M^~-aJD;APH%UDcD?oe?!XO6nwZlHdv%CIlyg_`dZga#%~H3G1SKNf$YAt_qc8S!WR_MptxZkuEojwL_RB zTu^&7;>cQemUM%KKpIpVG#MS+n8P-|;(#Y08ufBXS^?!ebx!A91fGjWN2h!4tY_FY#BR5b{ZnPFM2=R{uP6*WK9TFC#{{5_w(4cX`-gL zX?P_iHt>f(IJ4Fwkesy#+|1h72Fa{_Pcp(+$gF*%H8E??P7sb>3gxbp97V0;M2pE`J$!@=I`akHRT+|GSHDWgg7$jsQAc#~ zgrMr8FVRKMAzkb%U3@=Xy145y>Ec-F;>X`7x|nfT7b_)4b#Y9d(?#33l`bXmUv&ij zw?0qN!!=wjKh^L!Qf!J~Dkg?XHJ59c-P`nL{}ApsHx*ZhACUnR_jM+iM}9Kg*G<&?1+U!=7gemxmM9FX;RaB zE-C--^oCXeksHx(h0;Q2cg@);q1Z$r@%s?Bavc_y)I&(DW-ONJh==&nP?Yxe(QyqMd%y{|^A_CksF#vIb#dD32Y)!rc0UZyZa z@3!`OmgnV#yGz=M$Xn!e|0JV)=1Em;_yl$q z*2?Fl|H>Y?41uqBr>U^i6?}bYQ&kxQ;0msizfDzh88|*d!h|tz86w;j?;0G{Eate+ z)Ry=MVHQ2LVb*#Zu{GVZ4`sEqn$#n!$70g5vavN;AMgCXR~KBJ z>JR^as4jh^I*cy(UnCG8d;WMX3j@4;Voffj!h4S9>Mek7@(LLbuttvSWm2>G9 zk1N^|EWkD~V_j(0I)$g3tvfoR)lI;gP4V1l{=*-LS~i>-V^AmJY0>;@l`?>i2ktdVlwnUQmUX^>$C&3-wkn^rYJAId+buzKC5sVe1HK zTgNiU#$0%ORAMfaGa`lAU!%AlII)9kW{s9EC!VCfKmT>G z`res^>c2A^2Fe}udHzsW*khH`P1Ad@xR)#1(AB!{8c{y2_xV__qGU4Im1(qJE7Q#S z7s=?N6@7iKmEb_w_(fJ_#y12ut%QqX!%pbd-DP#5D2@CDxIuGIq5SuY?~bnkQyd#q zKByNI`4C;O%v$yzhETNd;`CB0DiKLN3mkRQXcZ#qdC8lxmXn51#XcD|U-Vg!$hHGZ z7J18b;l)RmsiX`gx|hlb^9M+Cu6DU{^H*-}joKYDy?1;x47S{hgm#L==E_|7`5W7Q z6%&e%T|W?n5NUm!gus#<>mn8jA<*{}5BgpkovzqlGrP2pmJZNEV{RIxTC!`uVKLj<@udE`PDe2 z@C~1&kv8AMj=4Z)XE=f*_g+le5oWw#M24RXO{|M0G-GX3L9Q5G-nAx3 z++-+KJ@dU{w`HBKz+mJOKx&+=*Jr8yNuzC4F?nO-4i?#K@;q-$V1Kf7FpCYG$qH~6 zrQW1l!XsNb0fId?@o|4{eSa0iJsR^FrLLhANmCH|#HQ)k9c;&movULHuze*K)Un6l zNn+VLwgXj|*dQHy=-;+&RU^$v>O~Sweso+1fxlNNQbz3bRGF|t{xO8v`vkL^5;yN< zP0Kk3lwQw(V{-;||F;`+0|Ao*K<3BRix{Z&Rs&cwG4`XUo6T`$fQZRFl!@;7lb+}@ zQJLr*3e3l*b5p>v>jbCC0f99c8P{gl{LT4p>G|F&U`@}# z5ztxIxPDBGoRNEWdDt^{q)k>;VUTfO>r)!I^p0(`tWM1~5(q4bAl^O?Ecxd~#x<}c zoL*YvlLhuYt?+geGosSQO6rr_#uZ=50;QHGr4{RaW131zD$2TEOaMDu$8zcw)O=Tv zlNZSrHNt#9-dQbU3JR9-AGB^=s`RzJ7Za3T1@nM>mB4Y^HrdtUR!SvRkp|N zVV}(9u6n|m`{EvRL$P@<6!TpASC6Y|T_`p(9cj)IE9$Ku-Luv7Y#-mtCDv8%YJV?R z!IGh!ORDVfIW--N&7b03(MY=%*-gQkj)GZ1=1xsxG-%?3Czt#bl7XZWgqg#iOgvV%)7am5tZ z!QF%5Td`USTmCM0bKW)4(IFROb%!y_-t8?mD(H30e+M}8&3cam{qp<*vRuuck0+wD z@(J0`b zWpUpf$I&Wtdg8INSUL;jA9mPwk@#zE<4@sHGMR=t zyV(u0(xhAK=qjm4OKOIgsz@Db{avL-!pbmlxHqxmeZ*@2g7l!T;55ajJ4lCmwgGxdaR(CBHWw(U0 zvEG#Js`fHcA=PXQRx`0Nvs^V#=s`!OtH2@-wdh+O%io2^bPy?|l!_-mlQGlbKMavk z)8S*Gy_n9sa4O^x-N03SoNA?|Kjg6bKcLo*#2njZJq8>!hD9fdL^2klmWQH^zlc0A zu@7{=j^SEYRgd7>Cg*9gTshN6@oQh$^+Kj=fMq6><#4B1WX;{h<_}ESuUOe_V>@8dtzm{FQ+?(xzKnJ=f1+BwOZUbAO51S|`OYBQY_2w(T63Y;e70cl`CYSGKrQ`~sf=VQwXlCFCd|>ZHnD##V{{Vx*KyY@b~xW zbyH}YTsLtSnJ&i!iS;sOG~OVvx7o&}8aYm1>j6<7pTeAbNoB$N!^wfVknymxJiOGze0E#ct*!nTyjlQMx2q7|ltX9AqfY|Lwn9Ob0MRU9d4{l&mzU#7BpM4*O~imW6$gqR`@*-qBusTXnE#Z z!SN<=l(UofDX>!30qGdctwoxfAKAtwS|#hD2x3eW&Ndmr3~d`?}~i`ugfs($~d}iN2n{_ILXFCn$VGU%$TR(7uY&s%(yk zs*kfbYlXr`N6<0YYnpp?%CA?;%)np54qqv9@gf;bbTy?+OtEI-07L3HNrnD6Vz9-v zN_FZm7WmTKg7hho6AAeVrAPXy<>5^Q7506NfI>B{GyWnO$YAslavvb3vXbBt+qgnO#Efrbl5QI%DlUE=;WXQroXAD}u-^w6WdIdb_DI{0_HmhVi2C?U zMnWiyqEq8>2U1-)D^xxpaxG@;!M=|DlL)l>xT&yA?4OuOUmF@6)pW!LOUgMLtmC%m zjad^m_Hk`Cc6OFn+3UlDYP#a9by+BLH4YEKQ5(WX;Vu%2jp$p%W=OVRvfKMw@Ak?Z zi0^(VTefUeLSN;6HG8yj)AImUweo{l;BP`a>_w~}kcs8UX=JXNRqTDrPym@%SBO}N zT!m+08AvC}xV~ z(3h^kPHi<&Li5w1=7DdP>4m^C5BS^r4k}wHdRBJJ6M|k zbW(x~TC3z-*p-Hyik$3BwU{J|RQaRRmegj^an36_t86FIyl?qB2(dE!iiYbTBQZbH z(pAU*<+d?^*)9_gjWi+-eUGhD))Fa20k+q80Ex(#38yB@$}6S9dT80%Hf|vjM>5^O z7j_TSK8~p+ui=J{W&?*O0nWSfHu$1%0|=wWwiA_2=E9SQ!nfT^fz1X&#^x!pqMF8C zI{$__$0oC?b=GS->%fo4Apn()Lsh&+=RToxr}a1~S+P`SMReAe_YO{GjnrA^>#QsL zpPbA(MrTddS-bu;B$;J%q};NQjfi#QQZ#gtYkd#f3;NH1D|W2Iz;w$UiNX9JJu#RY z*TNg-8zJ%wvwsSj`_#5QXl|A9fkK^&%`ZifDHQ`kVf7h!b{;ZTXzZMK&lL61Qo}XI zHaZfmO$BK*;J*wODsE((v5c9)RJM(C85T8fmrIg56}N819M{s3&WJ7kY&c5{6*XAi z-~eCcC=#k{UlnYlZAV}sMt*VQ%-)>9hbp%5rJ8wr6R6xoG=WP0Lr^I(*Vx7yFg+ZV zJ-C~-%o7bDc0oC2N!z#W5=T2{T(2B33fOMzMV6e7F`ZG{o4r)%|>7#XJl!*Pm6ZPCgM!qbo2CZ0G0s0<~~ z^t~=SE8U{+^+oCPe6NSoZ?K9qJTPixEq1^tyP+Ee>OH1Cdapvycu5sdC|gbMi6GSB zj_pu#00<{5wA>9KnM6rcsC!V(69_G8htMAdp@r58fs7F&W{mw^gvuchbo_)uDXLIO zEBjN2YC=S~a`cQtiP)WH$!WDF>jsXbAZy%_WDjkctOhsmGgL_pT?_zn>@$6?49 z^T&9J%zU4Y=7qj_beY zBw(v7Vf}662S&WEGuZ`ZeQd&)*4;lMW#qPqlDE*A(Gqbc3t&JbnqaOZTAFH1Ni<*8 z{iNE)(*P^T{bvA?5V=`+Ctz+A#4mDa2lFY~aRcV`{}KKx!i)4)5Y4lVBBJrI4LdO4n@u%hp~ip#>6O2IsO7nzjT7=B8MPXU;8xJ*RSRkpF7k}92g z?bGieU4fcMKp`-T01V)(dK=}oL6NAK=l5YEX|@)4PGpm zJ(8Y<#=?e8mh$#yMQ7iZMYE`B`vFtY?5x%tbVJ zBZombIblQYqvbWu|55MM+FVP>EAkc8$9HO*mxiHCS>?I@NM|}!o<}E8S*=Nc^;1 zKX;Y7x4=C&zjK(6+cbj+gKRsdjX?sE5*yZBHI9sTS-)-`#4e(Itq@GF`y9&7k|^I_ zIoA{saUywh5HM}-2Wy|w?gtq#e|CM#K&9RorvXZ;ou;ZAjofpQXn&&FKOyeK2q@Mr zS!|doTJfiZh(3|tw$XR0OkuqT=$bn+_IFOpACKoMp`lEO!4>)l)flyX043Qn|5Nc| zWK{0R>6G?W&5zZC!y?PXyM< zD%E(huWS>By_{=M-TO%&iH$60K?^#LCbQEsO3ZgT`&>$q60=DixN{$8N(x)%g`^3i z%e}E8^V8A8llx*O+VF@U5yiQewNWIfS7B{-3Z!YN@#*Av!qb7P(mt(k`?wpMSaE)ggC7EO;xg&r68;ullP8lDq?;WbC ziX}VYh+CRGh&`n#>5HrAPc`dq)E4C#RSzQH9<4CFZ>TVfcL6a7sSt6Rf9FDl@VmO) zJUT|Xb5+b!Cba}|e>{(0YPcmQC-8QWpD-(>bSTL>IkXgFW#SRdg>GH51JX zSFY$LB%7d%x^>ZCFxCO}-F8JCkS9>i`rAnMHy)W~(jFwiQx$4Q zhSB}u0L7kmL5duUKTXjHwkGdfUE&awDZGzl+gM3qBELwPnAfQG2s&ekB`|l;xkr~P z(B*=*8tJ2tEO(7AH&o@k3#=cGO2UE_UOv5z6#^73&wrGJQ>7=yincndsN=gAql)IB zYR~R|L&Ym#Ub3=VRW56*Y_?UdIK1)-U3p}(a?>P5p%Y2ruykbJ6T@8b9?T%?E=+IL zo=oB*`J?!fLCB1gQ(Y_}G2=J_lKyz3k_y%goxfwT$5lP@vn3uEjw?8c5Vb;NwTYMG z7zr{~NXEJNEXWqC+4EN_peP9SF9c<%KT*%0`rfIoHQM%k^kEn7#^-5yrz&l%&TW>wS8UeHc`S^H4wfBU#p^TjOT07*=!=G}9pEL56 z!Kt`6<&ON|MMQ+hx(h!?$5^y9U9CK52gSFD%E+Za<_Ojz#NajRQWDN9iAzbr#GQud zt|_7F&{kPGN_P}j2dv`i5Ie0|a8j}9neeLEgT2qI5m{R|RxNE}>Xa=8_IR1LvV0w5 z8&^`Jt_uo@QpLZpIw4G1Kj-MxH*W|!Ju zj7p?5yF^)!4@tzU(>MTeN;e}R$m=0GQ8}Sz;Te~?8k6o6$A4cPQ2D*Xx7k#^}zJa3A^8t750ZsH;RgQlwjvxe@<*`W7#x2j^KMkWs~Er#dO8 z7QP=9b;ftDJ1dd$g-%JU8<$9VPp9;)D@dfgL5ee0Z5oC?FA9h)2>&96L0kqjze4`? zuPE{_qHi2_)D;UP)bs@TCjl@)ehU_APyQu%c!7L=C~BpIhpNBFhK32gSV_enBCXl2 z=zVmvThX~kvzts;ykoN@JBUWt1h8m}zNUP?9c5=%Po}&+#SoS|gvh4}1y62APmzhqK8}# zD79a!J13EJ9!W>cixD?Tg-6n_l2R3Gq&MyC|Jn5dBg@=26XwoR4K682KTU1cZDR%W ze#$+0n3_1L>IZ zSx4)3q~g=XLR5;%l4cv95rxgW*~SNi9D=qTCqJ=J%j$Awown@X#7!i*g>=L@lK3Y; zz>X$e!7=MR8UN~Udmt}1x_FAT%q{2Z?Sd5j0- z$|*X(ZOmhOuxt5IO-Jt{E?irUD}{i@T*7Lz!7`zY6fnJQoW=y9(GzNdRO=!D6VpdSG!wI;LyU;6vNe}!uSe$wj>@R4o6 zdu!m`$^uQwjJlP?%A(6Vf4gfUE#|CGG2hp)Ijon z6Uc{5JDHs^qZ5@x$S!8Zqw3{SHB(oe@|#s3qADc5j)qlZKXj(Xz7;}D;~T<9VtiFw zW22}fjbRy(#(tKnt8~@)Z&n?q8@uhtLAtS+)L5!(RQzU*17|0CRzf9d>_x@K-WsWT zp00Y!Z&t0RDn0w>je~V#X;R}jU8BQq*0`gsv2rR&V*%aRK&krm>xw8nf3xaD-I!%( z=*AxIM2%NQld2^_vN*XZ>#<;=;cGzZa=d zsB2vPn>GGH4d)(l%=oHmh-zbC{t zd{=oob9aEn%Qk%DrL1^+_$te301Bp`CrLcXFfJq*8<$fMG()C^zoSmNF_E;FdmEA@ zw|Bn{=Zdq-2=N>_C6SKmfzO%!A!*{n5O9T$lFWHzTm=I;2Qpl{VVDdI9Y zYHfH<`Mv;lYfznmv-^@x@@i7T?;RgytiDS+i5qY2-({LFZF}M1i|h2*izs018TV`0 z$H+Yi_4dW|##nIU=q@+(hy~vq-S37@`Xbn)+1tza4T^NfbTbE%wlqRsX&-aKz%oVS z?^|9bP1Rj+OSB~`JXcOl{vdxQ$)B_2PmcTiB2^H}off&0^qNXs_`THOg-8uK89qM6F=x zfzYh2qAqi-pwAPmf$pt1*RVC{D>LQOSM`KqAx9BuwH~}0xOnY3@Kw!333Y^> zYydcaOcU4CzH$L{7o~%~yH^Lz)$tu|dMurt3$rfd&7b65xFrw-UA9!Mk)C_liYm5M zZy6|0Pc4ynT|nmlvGh_&k2)EE;G6t$SuX)XCh2RyC@?Qi&&u9jSoO8vw`q0 z0p@C{NI#AbE7@yGY5Y253Ku!ab5wHp#)8;<=87@KNxsl2jWd>%&UBK`bdoc4a$hGo zLj&ne$u3Tkp^_p~3iI~dJdwfuC4?Tc3wC6J>D%$vwXYz-PmzYD&~3;k3favC)%iQ% zUkgTcnfPO5W1;apw-g`FBDM-a^Rt$}DJC?YM8}k#J%{ZD(IKth<0Rd$k|LK2-~q+4 z1u5s4v-b!!ZlHje_HNL14#~UJ$-7ur9!&A^PSSXi!~xxRZ$r@id9`=4XDDC}whY#o zWH`;rDV2jsKPSnnfrS&@JU+ymSH31(PP zsnjV_s%t4KCGv8dyb-#3F4!FJBppwZL#1l(Xu)DDEXsKLAL{LbZbfeHx_;tYdfBfG zyt^=)tEn71skbm>UAhC2p{#cdJR%iQIzNErE_BGXvv)+HH8+*#W<@S6zcFQDgr#A1 zYMcj|7Wv9Y<=)yg*s!BRFj~Jc&SmGJmyPx;NOMyD>RXjs;I5A!O?r^@KE73n!s`m$ zA`H}we=TU%t39abC-MwNmfFjCT5Tw)Z9jfe&_nRcD-iujOmb?akZrZ>!6GE<3og8Q zpr)HTJYl^z zP9(j;e6fwOV`)HEEs@Ed7xkKzXl2sAISAYU#+^O0e=~!)yqBT8@rL|IV+-=Us5I0qIS2l~{6vjB-@*C7}QVU9p-#xou2km38*$zRIx7IhGw{zFQhEP&(+z zw647)dSGujQ_LDZB}`E<3OKtPNv(VWdlqpDW>dKX32g;qA z9`IG|0}IqFW^AO4%WcK6E6Q+eDZ}IticKpE@iJR^!a{EgLN!RjHAV!RWzG;q&G1&4UZ8?8ph+ zt8+*_YpsZXz>T|X98=_jkbA9_@jQgJo8q+W4SQ%_9S5uCi_Ne2`fi&+qwzC<70$rN z2E5m0vd-4i+t@_h77peKb@+njtE~1b>&@F zeP%7XZ6JF)4(Fs=A#-PQU`IL4Lj>g<+8o#_d?zi#^dJb&8^)c3)+gcgZhpxafv{TT!4}kKD(`0a0Q2R^xEhH zFonZoy7VyM`67ec3buo{NSElQ;I-p}Nu(FYkQrtplfu~#9CmNIIA&B$9p{Q8BpM32 z4Kz5!y2RpB>|51ktnalBY2*3RvmmoR{8_MJ?{UHCj)Os#NYu+VUYafXb68fV=&sTt z9A&G$PkPaqhT;4pl6YheqGWA~Y}kenL>G(=>`9xeWJ0Sh-UGuf!S|(EBvtgglt_#A zn;j3|QMe!~N1hvH4Qcob;zhl5#fj?+BgP4(o<>`3_MH1mrVL>47C#R_>*0AZB_bWso&QN3ZNC z(UYwH5=C`;1~*;=!_l>SSYfQ?2V{-&-hJONSBsq1S)ot$)Y(rYn*ZU8Y@NeH+YVpP zVUGg>_kYQgmYb;xAYZPh{4Q+1X|*2#F#cjRe=boj)>@Bp&6YdzAHyIr!JbtR&6j`} z=>d>~S94DJMIm*1ik50!e7-JME@=E06MFncYYUyEjf-+U1Eh_sYCjaDcVNmxtu;3~ zUN0t(59Gl4@eo~UUJmi`P-IicI?g>M#cYwI)oRbX4n&>czX>A8R1A48Cm3Jq!Yf1; zm5GR-jr>9y%|#lOsxu!YkJOG|E$7mb-#YGT@k3f$WUnj6SEw5sJiU z0JWXSAjIRXhw3OF`~*%(-Ka$Lpv2+haL&biRj)u3&c+%z)ChOsrm21*rO4c58_(oA ztB%rH3rz1hsWL{!S4g)4?(nG?iVpWuC@H%je_gKVPjUkG2a*!Eg(O2uHnRHf89X>VnRl$r>`4r%q`0KL zucKe*4byq4ZF%sa)EQ2CY;1>W&qZ0|Ty?ua4hU}5Ow9W?I;=2&+gq^pNriMOKm>l5 zfU#MG)PhKF+$}SKon0Lj7#8H&AIVw4oRY;pN7)e5rSJq}k^ z=@)CZ@*Hq<=Q+O0Apoe@DY~Vv@<05QgW6DZ|6pI$W@1GqB6KyfD!&S}BfYSAPer;Y zuF5`*Nt)(agqZv*n;87xpP+`w+~dh<*(d$1IDk8h%U6Y`BL1wRu*K%vJei{Q@8%ZU zxDVLs#Fxb23KS^%3hz2gW*ND)+eAv#NpDa<&=KmzB%p2#1(4qf(;ouFdYY@skZ6Dc z2nc~BGQs4nhG2L6L;%Nu)O1j)Tg)Hs^GfqV%hL%kTy?(+)|j}uitZm9cpV1%D!HOHx&Y-X1@e;}*6nSZt$`?F{+U6Eo46gVaJ+X}^PDk6n3AZ?>KUs<9ZY87T zdWviFMN!`8zABjl`tVy3N`qBhFgFy&#&;KTolCv){7G^;@2eDtWtqXb9S3cu`3>Rf7 zrG(narrsb;4XABAr-G_2+jvw(2L2?*VmSzl$(g7%ULk7q1)O*hGe4{mDoJ{eh#K4$ ziFtqg3ro?_lE63)(WaM#4)!uzA2r?wM<{&dP9oSZBnEQQltA0|m?Dcbg8=%oz-uC@ z<-}yq)X}Z=4-qB^;nAWS=O}&?&gPCW=kFjoS4r28Pm%6NGHbsUPHq*>(k~nbD1z}2 z3f-Tr5RgdAGgmXfCt=rS2wO5p9X5MG>&#B!m@Sf1{gg?1o#S8h; zXdB=$01nm$879W;#y>K3W6Px#)$L7mJDAt(s~k&{YA~!5=qDbt!*%Q^Vz3hLQS$`X zF*?nq)9{-u%G)r1G#9%90?k=-htpn>vSg@N-dHQvTqLdWa)St>iZvpS#Kl?+*p`2? z^G+7nw|{1H+4qn`uc5F50L6hvd`eEYUQ|y?vF%~O+ay#oCwC6<&O=DB^IOM0s!xOc zbu$?~eV!9PF}goBGPnfMaDrO@ie$!r0!y>Z%cQ?T23i140ia&#q*+<%Iy%@-kvKPc z`8fNSq^zBtz6>+LTq$9CKK#x>y|Apv+^u}Xw?%gz<*QskBNaP;VI&AsRs?NHbZ2V# z^yvOUzN$%N*R{Zaw$W9(mDd`ngRmN#Ne?`I3>A8OYnxg-0N8|j=ovJce#ui{Q2N%$aZEPD( z1bqryq>494oKfw_K}nW8BJ8~raL8X7)Q2Dra*0tEvd!e%(ke5P~c7P zY+@|7U)<+*Iqt^tx_!)JBhj?q;H#O^tT9m+tmj2Xs*O}J&o)ZQ{v$&dU95{{>7ozP zZHji)MPE9!=u{~h^Uk7OYXp8;gs%X!m7&AasA~-%Yv=G&W~BtC*WB3>qf%=$Q_yH)DRX1j;=97YCKv!^5^e_b-gcCJ6a=r zL5|`JIZHGCP7J1)j@%4rL2P<&r7%lr7HI{1N8ry6(in@2gXR_lt?V@}p-d(QvP|}@ z?C*gh56N&(W4$TT++3R+=Dms$y(cG8xKN`Y+m5evW_L0HZX0|8)_QZRE9`c}a2dPfY2Ie?X~C?n2fWGM*A_0neQ zD*ro_n+V;#ZXPBOamh(IYQ*I2s z$--0@o7jQ(fYgAkm0{n7SR~6J3zpGiq_jqPyW)N_P0y)-;q8pk6#MRWxR-Spdi2*Y zq}a0>#wIeA7AfPbU|<&Ya6eSCqieE~K6iTWn!h!k>8k4rt8~j>N07ym`?m_#TA9vW z2-bDebBT9|6B)^UY{(w;Z^V(dwFgu|Pj`?_tidW}8wQR09}}EGN)}rgDs(z|5$gSa zXhXweDcCs$xbsD)`iyse^PKeHk3sr^YN z#b&O;DDB9z=U3XNnJnA5kxhy~Me@9M{V;j(ghrW>>kIp@3;w(<7;Rv}cA#546rvkH zBf2j&e3~>;?TJ6?VZZq)f2Dc7VKOF4ofWhZ)xoLhb+`&sl6tfuPiZ(agY ztN3oUUAhYpdb=dMqzv{vtSM@j^aw~McS)x+`_;Pb9d!6E=~`;Yl5`-QC20l`XD`xQ z76j2uo&%By#@m%Ty1}|dtpYo4?d>|=v$G`=M%t>vUlMMS4SZr(!p%;Zmd?(^SA{jn zRo9b_@g4>+m54M3D>2W!x<{z$U57vV&)fR1i+<6+qTw?cf^%DJd*y2SSuF3afQafx zz5s}gd>bm0RBUcghui2Eq_ce9jv65oR8G8YBTXls`b+!70~|F_FIj5m;R)MFFg@Mq zRyR)ye|?oaYYy}LVzCph-2rkDPwnS|tm(X zdOx~NEe6VLqUDn{8jBkO;|+40zH*Qs{-o`zJ&(60OaeE12cD}hcMuC*DQP)XvY8cSfBUAsA>B?&gcdQ<` z_nS;geX|G)PT#uDGHHdw&QYaykf%#+A>@cSar?{4fzVWuIN1;v1#qPgG-qCcRA&Lq5$Q79N)fNm)(?Gqsq;4%54d$ za_<+lFSlFDJwiDwNdNso^hkISr+nj;3FBN=l#KXQoCN}cw5Pt8C%i-ecZoKnS%s{m z$UvR<0Ep?lZqbHr*2yaG`>*t#ibiyv5p77dyyVf`?KD?=3|$rvz;nE!oodv!_O68*QDUQ`DQ<8|EL|)S;iCRi(6q_10T4f#DduFKx8ujCbBbVSP-V zy|nq9ZTXy`N$%X`EHD4NSGvKR3xDVd+>ytx>ftiux11wdnJ5v~Y-vD+hHp!RKEY80 z_QR{nx{GXXN?^}&V+7b>Rj9cAmP*;3H|%)8E_#)R5JR%2Gwiaamllb=$~DZrJ(M6b!txUNJ-Ablt`#JHZC>ZX%z287TNW|8g42?eu#G<&J(bScyVSU z+Bp>MS>v`F#80jrvP=vHj0T*9PGf`%e|`TfA8p>_%# z#D4Is;BI=Bf94RdYMC(Z8%k-xlE6bUohiYKgwDMZ{rYBIFG^W!3#2aESiBRnjtx$R z{81*600zKv*(*$uq*A?oWFl05N2{ng0ZG0}j96I`nk#R=l!-@LRxy8aY~uyysd!MS zndy`J>7t`NMk@PFQN-AUAo|~8PV!zHzi*;+ZyeZ?@5RY)rKtzw{K~UUXJj}J#*v27 zz+$DImXo4bnH3D@ZMpZ81>0Vh6IU6bj|}zgV~6e19wHZx-r-+uE`p zAYAiV)KzaV4g54g_wwCxBF+o!lZ1latu@##sxMD3;GJ{p{+HA-*>Svnz6{rQU*(hN zXhasP$a0BLG*sgm@)%qHSpJE8cp^Rc2FSVM6Kd2$R7LJz_0Ru_KVa<9vXj6;do#$R zRPJr+vdj8H_gmJK8U~3edejz}h`RDC0Mre-|I74&GhY@6PSqt(c?FWZ&*cS=V(<_X zq@=Mo%AozuBB#x_h{-vQx)#nN(EV5urs~dzukw8sc%H}J*ava8dFj)R+mb=1BK6gl}r<-@O2dC z3Ag~yPY4T`p9b^(d&~8q8IAmMXgk`{Cdk}}%2e!D$Ap-&{L**T;*j5O@!AP?oabRTXbh(-hX{}?0~Mtv8VUoSQxD7kX~edGI~__Xq+$guf~iXC67Oh z@>M-ex$>J>`6_wW*70Es=KXxj$wf23a(O$nLvDTw>+BS3(+=Uh@O4nKAn)L!kBVlz zg{@cU?JxkHYe1La7kpKZ@K1(Px^pGqd$@ylK;)|?X@tsuat;71D%=ovG&zM=U;b&*b-LPiDJb} z;r%FJt5XO^iQPe5iQ@$X>V9O}tG=%z#$LIrz~poef*`T)g_wyVoF_ibSper>8UVZ# zJRla4(a*&=zq`Y_EtfQ(h_YU>%UHuiV_- zqnu1-zx5m;eiawU$){s>GjZhUm@9;ZXS}DROla075k^fNPUDejOmXOZ^h2igROuuJ z%7qfgp2J7IEgcXlV=VICG=G@>)e1%LMPRDzsIke|@qSh$_D-P)kD(=uca#zH*~dCF zk4$#eht{@@e@QMzInnDxq0;AAYJ2Bd`$3Z2q$Ey*ICeh(nG<{L)r6xvGs3r2>>qlo zoao$54@1@7>f6j_$`i`TK)P?-*aZyA$L2;zu%{Px zAvXO+_Q>gwh>y$owqUx4PTn~Hrz={v;Ls4iOi8aTKuJokxlCv!QO5T=TzY*6(gJfN zIW1oiaYRyyA{HF_HISr%%gaT0)hk3=No)BBg_A<$FT_CSGwgbfJ+zyKAU4$pC{Jbs znJYotB{tGsDovSOZ`9dOlFjR*GF0y+Gmp}lRb+w&Q_``ehjscK(hsxKQvZ8oF%6cI zDd5UAIN*{leMp)Oza1@jKaxI0Mp~N>rz;TdBXSb)7>#0#{^?8T4T^8}|tG@Xm{D%ssjNJ*vPSw)#gIR~{<~D8+ zAI_|!q&r*Xd4Mp#k2G?x7adOYKT42+LnFFXaD^<|N~&z^Et)|1XuUl1MnJw~%|D~5 zLl*CnHF;jAJ|$tP8z?E{kZ#HB`z%i~9!W2kxIP|Wvlz%tp6}{+n%b?S--3fy+dDjBa zE%%b+@a%(1n8LGJ1d_|qZN!*kjo3hv%V-HCO%!1ny%fASH`V|c*>nEoCZ0pQ{WAJ5 zUQUdklwkVE0P9NJ?GjMXb98lnX8_>8vu-)I=(5m^ef%2ylKId%FTZp5aV}r%N})OT z>zL7U38|iOW0%7{bcQ*vSwoyl91+;VNp9YfWHCf6RBJ|4;`r5ZUnm_(3PB<_pM27IQ>UF261;Fc5 z0RDsm2T46d0!{0LAW8QPUE0uU zhn%ytTL&)zP+}e22#Hw-wevv5{$Xk@{Eh-LaOBCFxau0|bcW#UEN|BLh$!|FRUc5I zb}tCC8O-9KKrNNGG4q(ikAFc0y=@5au3lQZrSkI0^a)r2C0?&tTSRY z!V}uw*U$90tcS4QiJFI)y`N&xz5eQ?_!7y^gPBw$hazE$$U1vPd2*dyLfUVyvo`?A zS!e&OV5@~ROE+^7nQiNAWiq>`&K^a!v(8?b%zOc{3yK3Ziph1hyRPIR{m6B8v94sz z((7zr4UYGNNZ0GE@QExeRlM^h3(FzTwJ1GH&My3-+_Am%T)G}Cgu@Uihx*;fwmrIY zl&^9t6m!;_i`3EGIpjDlH}?xZj?2wWOj9+y=XXKW?_xF8bZ%E2{328GpYO`4SA7zvxn7!GOu@FL<>uOrQj$H1%-1DX=^d9a3-_TYt@l*3b@nVL z8@$OrQL@#Zszhf`aI*D&tpnNC%X<{uEOP2}t!X`E_~Gam$WJ&MppITaH0f-B9*WW6 zc+$k#0K1gz15E8~;J4oRyzLsPEGdloo!LUlsoGy#ByG}PTeo5ywM%+VMX)zyA0kXPR)os86jb2w zZ;^G#r%PW~wPxeXt`dfS0A zNa3rhR`9$NW{Rv`q`?-|OpF2@_;)@Kx42Utz{*i#t3px~~j7 z21T=N^Jl^SYpRFLrk3FXe1>OGGtt<cu3XPb5^wfee$+U; z+^QDJZj${E5Q8hO09|g0&+yzwA<$Vs>TjUK6SFc3ZRlhjj*iHC2b~cb9bQzYA=7gO zIPgxSAhwpDm+B{=%=Jl=&ZiV_`5G>^8(PNkx43%b=F9Pxe`}ROvx#uscaRJ_kpPYv z9RQeMC6`K4zsimmmNXaKC$)%R-k$&;(pj%)Y6O1>T$Qq=9@D3^gttFnDZO_D6`mEf1 zKefYSg!{iCH$H-@18Eu};_~Q4Kb8io^Sh8nR#*AxjPFxb#$INJEQjjdWRZ&thHKlU z_BxT57W69%iQgSk=Spn{9WSImpf3SjCBC=#U#qCh$7%@R)I_f=wT_{boHmKNR!W}C zX?3V{m0ssaAJK<&^CLoY1+ap-vZLB`UKHYjX()33&*IR<`CkNsSx49aK^lM+mOQGq zmgWZPW~>$HW+_6lN~OZx*qt^b1bV9<(2Gf`_1HRPGWT-HKJTD!>3PhqcuxVR9M!oi z57U@i<>W9X^bq>?VaLSwRp=#WN&4sIobx2~YYXLCrj$S4ksm(h>nP5mk2t>*sD62? z46CcGN(gw!zIt_n?D8ui>SzfuhviMqH>R*U9ThbwLgmEyH>oM`vbkkHv1 zBo;J(;r%v-p*WYqzRE}GsUC#6!4=#e;cX<4mlQ<=C+$}0kh;0Xp@{Dc2}DdRYW1o~9))olE0cQd8jGB+00?$vyomv1Op<~c#|0wrD2-0x z`2y`)AgR+&K~pztQn)nD-YgUggv+plbr5XTf#&&A1peYTFQ^A5u$SLv=b?Va>ioX4 z+tF|W7<|>cvhQ2VWq73?$7XH6cBRCgtt1G9Y@d$rqDLx zfAp);7*R$ULn~7n#TDe2TCJ>GT~31f>|AN&#orAgDpdb5Bvaom3 zme^Q$#Kbd;6w`AJf2mOI`2&G?N7HjL-(1fW{@z^VTvpfmF3Vs?s#E*aS)LK(!-q&r zbYZ6$WO93ZlVM#t+fj*AJU-&u^02hc!Qna#A!2o;zI0CS+i|wY9q6I7uS(A15Ev_1 zHf`fcn~2zHJXRUqj2VAITfrYzC3`>6X)lU;R_)n93_Fz0s?}Lf>a3M2t3+o#rnBzX zSCCx(g6YWt@!OpixX9?;jB12ES~opMXZR`$ z)tDM@iE1YMq5;A%rnf}$W5y~;uJ(*4W*aFw>olFUQfG}&S>Ip>EjGQ!NmjKdgAYGY z>Z`OA`uRTM>{vdQ7_+u=69Jh!{yOzLb}|ct_9n@Bog6eie}k1O(LYIzSU8;@q2=AI zjy$QFhKS)_8RrqaU?t?9FH#nUbor&|z3EwLl0`=z=1hV72}lfow%rhS^X>#Mj{ZZH zC^GR!sZ7txLSU(PL_?x3%#|uOKg1q`b;+_8AUSzdD%#XJ@4!6X%%aRtdK!v0btsB{ z&$W{)$!}+CTbdpax-+A19wc4lbr9m5+WK+V7VU>Umh;Axl8+*=o)B4TdWx}RIAbT$ zHG8|Yg~o*l4?_gyifoDVZ1(2Z1fHDua2k}>ZV>YBBy&>4W`+!=bbb}t@o|W5WK?B( zDapaw91%8@EU-}Sgfyz3<)m77%1!J;fgs2#00I}*+QykMO>}QBw!nBOV$ULqet8#Q zv?EhuJy@JB?LU(Kiu8%~fKTF_DY+K-nfT^zd?cq1bKR1Gayf%T$qga5v5o}m0lYE5 z?F75AqFLlk-oRBPFZx&nrnq$>`Ez7yP1nDO8gJ3}d9jdst0^ceRZq?v_klpOXFe(N zui0~bTj&}mq^A|KNL@l@Ak;-P)6)p8oq;HWHoR}eI}hfz?9IUyBNPSsA=#kWl5JaP z)g1A}&h1Ql(zHIgP`^^f?`1keqNpxgj690OkCVFtFl?#y%9{?!=`3za6!?E=dlUGm zs`K%CvJ4p@!wgC!2M613B(1(B1#)Y>QX7p0Lqp)iDtNtQmw7s zZEIV*s%@3UEdflzDvL{ys<_n?2Q+Af;KID$=iHejp#A;-zt8)=`XO`gxo2OV{dvym zWMI1ANV$V1K^wNKfv4Is_twkje|%1B7!uuEBHfZbHslOF%hGS{pmw~S{So|#C?qG% zyAB9!ZH<2%lHEnC1gRD;K;SDBErKw08d*rs21Vdwx@fGls>5SsF0_z+tK-h;7#Q=| zxessv^n`^v!LF^LCQcwt9f>4EZNf{8&NOK0gA6m&7EDe-EE0N;9Q&Zan_5Hrm`WfA zs8UG5(2m5c{cJW(j-`u^d?si98J3jk2}=bOez`TYLkb~u?-Q^3S8ggle&fHs3Yt|- z)Vf2{4nl5F2j?IE8C}OBT?czObJwRyEDk1e2P2nl`-pUc=z8MpCukl0g4oSP30ZN( z_4N9%+4kw5BxI8VKYGyE@itqL#BAb(X@BO&9ZBNS#^j z)|;#7Rx7iV4>r!uQIFjqnvN?=h~r@8`?KVOB8s;VMm*>}Gge?EpOWmFz|G_Wu#|e3 z8H>jiFhg_N9Lt|BTGk~~*Ci@DSN&W*AlSL=X|0I*)-~e(10_|p5BZuLNS@R@`VcfV z1?>^gT`g;roKBW^4rj7dkp-c6b-;Yt^~3eC<$>o#Ac&opW9=B`V{8sT(eFrPzca{5 zgX$@nl&XC&O2QW(kv>UV`Tw=8h1s^=uIX+IT8-wQ{UUisLf*4tzYI%sjmCyuuKGKe z6545`9gKQpf~-;9pKa-%RI&Ut6l$mG^{e=uX zI-h{vo)b*m_yqo4_||Y#e@}`Y+8f`IeZv?%RIBOLqUUquTWFt%Z1TVXpXin|TjjG) zr96BQt0>3Hkd`EY+uE8W!B2X!L6%nDym|x3$^+5!h1u{Rub>W2pewU4@I$8msfC(D zSa*<(482G13f@SlIGFU=_I-M3i6~k2FtH8Hp}lGW-Wg$+o8uq&br>(iYW!U$;5Fa7Wrba;;Y*)xj|pMpX|LD zKzh9rKhCbieX&472NM9*^{8i*v z%T?sB{r9WLGm+!BT_TZ#j$p?Y4&q?mR(FN9e|4dpFruoXk@i5JoTq_rKZI-tDhHuBBk5W@w zBz{X(HNldI4J2J-b672FByaUi&h|*%4ZQbzx=@+z0(2IS$FKegCm*x=y}cqi^l}zi zeL^l}&*G}1wBJqcz5IA~`De4z7$lf`goeyboG*pgqR!u3F-lar$KgOWkH&$u`1>7{ ziP1PPS{|_Or=={hvGm=v)xhneS_cbI9S3@t4_B*nAV4_Pma;q3$4^; zR_ayWaXR%-e;I;vnw7eb4I)+Vvr+?A>dm2mPTfo@PTW7!ifH=}nH^ZZuR11Jv})qQ z&v|s!+hjJmPJ0p;6hum*>MuGXO3{tFl*IqIR(65J|B#28w!cG^1fA2oZV4&OM&Xj) z0;8yCBuFOL{gvS(&=BT5U06&30FG#b-*4cS-|NRX(88ja~S%q(8M2x`(rc?UEk z8ee%~XcA$aLde%X7Rzvo6}g1N1*<|YT5~cE<$Wv2Uw)YjfRC{1G3y4+cbP7^j^`eahC{Ijh3WI_Sfjm6Qa##nqW9SrM%u5bPkSEJQ-*&l zCk1pW)O-D(=$iDW^BUQ1ow}>Ke^x)S$FlatLj0C_GTY)!M^S7qoD&~AEOer%86Thq zb&!c#`YCgn>Y_h zx41Za=f=aVCi61e!gHxVWdU8aOv~8M*NvAQI`&h3gXTe3{fz>In4#@>_%K64cjzdb zg6%xEl?C63@B9?%AwRCBs3t$Sxe>ctlvA4UfFS8bwUoWCCrpzJXG&W#Ih?w3<<@V` zC*c*8p?lG0)EyBifGaNhyd~%?r^`jFEM}q{KVc+H+5`k#CtV?ut}FDWDqDsSVXp`{ zq-wKG{fMIzAAA37j$G{f)Nr@1fn`(bGm$sMib(uPcj9iH7@ed$s-C-ACIsxpJWyld zso=DQWrF3L87$|~SkB78H;|u%0{h7@tYbQ=J)t1ZQMtbzhdm2qNY}8<|3SuzS$p@WZP^P#5Kbgt% zBP&lQdAyRLG8<&y+MTbzbft>| zIuAh-;kNvitOi|^Mge+<+ikz^K>?(!w10d#L`rhF;wM!FyVDygwOYxfrC9+zOjVQCPjz1mFRw6x4tYS8Eexv#ui8jp;f zwU~b4>)ZcYV36g;3EsVPmsIY2;XZCUvX2Unl7)ku8v9Wn@cp)5%EzML@R2-2`Kms; zoFp`$e_}^znJ~NSlLs-}=q;kN_Kt4P!hX?n1+E{`Wt|UFH6+a#5h$3iQGVCk>2!8? z9udTg*bGUlwJqZ!X%!l}M}F&vLQY=zW%C3U59h6-?`f_bpUS!qAc>1*;80xU48&Hp z!>H-vcDPb-n<&5_z^tp%01*1JGVE;Lk&PL(OT#B>xKVU=w!(5Ml)iA-u|g4_P+4%! zM%{i<3c|dd^yo1w-E$|HN9^%C-xf|?-wI}_3VSWoznoN1w^8cRy$m}LTqh2L=rEv{}*)gSrwROt2|nOyT=;Jd~4qnbZ9~L4e_!68l&lldnvv4S)mMm z{(D(P=mu-wXv@?fV9KH!mg}$1RKCy+C^YC{FVbNvb0VZe0Ma2=pnmZ_Rs#2lM{nL+ zTyo-SfSS%Cn0rff@7a|fYoZ^kL>Ud2$nm2ohrN~$h$X9#1C+Ts`i0+gPk_Y5uN^xU z%Mf~FzldKgGdUQ&ZKb33$V_f!-h|#O-K5`QpVWHwRnpb}yQ`#6t(FNvGJdc2_2mAs zeR@{_U?%3&dTp@>1w`?Y&d4b{mGKD1ljc}>=@AOQmIz42EChP5&ScZoo`Ylbzmp4$s`hX3%awZ{Q`O0goZ$ToG!XwcX6ML zb%_>?-YO9|n*zzJj_Mkw>F?Zz(-gg&&b4cPrA-loMk_KK?xwMDvhX6lJ% z3sLoXQ*`!r{bnE3J9{Ir6@4e!vj|JOwrL!weF}v$l+B8LCB?IxAt{zGp$wvwEhBP$l%ZXS%DS9e5#8<)0N=tlPibn^tKS1a>#<(Twh zzBBwK=cH<{-r^Z!Ce|xRC-n5Dp0Z?+8olacWuN`C?%{fL$`RE4zhW;ipI225A2A-I zp2?NNe|G`$sR?VJ5t8A%LJMju)D!utdr#ad24c|+ll5ok>Mt+gI)o|Z&KD=h=X6@oRcn&O z?-7%dO4_I#zCh}-E5${n8oH@D`z*Tj-tIWu+9`tFWyqj=u1vA)f#54()+_clo-E*c zCtz5V$94@mw8mC+D>FBsk_}<4Rb-UyoUk&#Um)EUXv_%{kH4X5#YaX)FMABV%1QZz zQ?3q8k`Zh-yVQQ3%DPf#HKZ4xO-jmr30DitrBaa5Wi2c79Z>cAA)Sf;o!*dsNnc98 zTebwKwwD0{*;A?Xh{?d7tW6W`NUsYt^kQ2aVq1V`UzeTNwytkJ7z>JeCIRgB^F>_J z9Iyr6wS(EMS4BO zB9iaPCc+pw_hl0)xU_@4lRlbGuVQ3)Wr@AhTB%suE=gkPhRiTaGs8T>bO2NxbhO-T z)8qUe&8wJnhs08PKV8PfI7>6*d|&!UTyRNF*dJdnV|$3d*4Xan$r{^FGEdp=%GiED znt3Hlml%}8>t@i0s><{j%PI@DY0loSvBBATxt~AJSTdb|j$5 z*+Oy^{ZYQqUS&^vbEUo6J?#P4up~IPy*nwEZjGmNmp-Xmyw0)r>M-qcd zB63!%D)vSgc5$R^N0n>B?i(ZKun~y7Y*oJ93r?C7sC&oOS(W^mtrJ=X(@Rog80Aow zS>^m}bju>@|9aK$a~^pphpQos=4SVt!_9;~&)Hx!Z*q6s4WP}QSAEjd(hJxT(*W{F z3YU)K`C@r)SNVRRpX{qdv3i1&f!JVyzUzx!RLmY%QvhUYfK~8U7im;`xqeqwB(iiO zyZ=x!jg=-GB&t05^D1dH_JuU|5zo|YS0gUr?ODma8Z-5!7H4e%T~Mb|jxoyl z(y|cXk(@34{x12|UAj(5>^OD2l~?9gaCW&Kg?fUqNYDgfDgC3<{zmw5bv-XD+fC;) z9If~f{E3E>fXHTYtNl@ucwwg(jgq~O9)i84&ZnP@t>2n7-#Xf@3|nQhCY?`7hW1JU zGjk{{;3Vbnug=kJt=yuLq^L3UR9j1VZP8NzjN0CjDL6sX-qpDr9WxI(kJMG%D=$Hr z+7!BTnJ)HSe|66oa!h4nT&vsFM_w&X0x^k!jq{oF(`j}0Pr*U$>UOeFrrKYh21Q*+ zsft}s=BN@n0}LNR4p}d9T!iPkN6=Ufc`TudpBaUuv=-r~PzS55$NPB%&-=-^ir-Ej zzuEPfLdAL^?gY$a*6d?846}9`A*b?3h;+o@@TBa9uPr*LqN&qxJ?ZoV}T^eNBxVAs#dH-!BP36n^J?+k0$7szF6eFMtbVQCvx=8$nNplv7G=w zo4F@;6YIO^W_6?0lTw^MN|>nE`Kq4s>mBFj{T+G#oqms=OA8fqT({f*D(qUkE&Zu$ zh5e6Y00{q`A9;tYm)3X%6v&6Pcp87GbefZ7Q(_C!b z_v%@>M@{3DRp65m?O(qaJE(h#{*Hu;iDVp>y>ji?KagTuxhI-mzbjU#MhAG=qG}Mu zWe3c9S$U24*t^IKy|D)&O+Lplg^?c;Mdz&~tJ_JCwhUL0U}Ed7Rxspx5nE;qBUU(vB!`AgYAW-@p=`gRE zUx95O(5w-6lqe)_@{nuIK}A!gJxVJ?f|UHDzO>2>m*4n^+o;Bp<2lfZ{H4S%2Ca4b zo7jNno($P>7j3h=`R0~wXRqb(5*v{g1Xfga2G;BlxLeRpF<$YLBC}!s0#boleW+an zp)HyUI8nY(&zLM$PVUoRb*3K7Oed4tEkbAkJ;OYBggAVCr&Qh0CZ)jM)kdO0nvss^ z#K4+|rBzMeH8e^;=ji|{RteJ97@ zq(NHpV-L!sFm3TKa-xo;k*AsgP{Q!-V5T6+Wx}w1tlKYLkRH)zZKrtPRhb#y@I%{S zvmN4whr-bd8RzRKb^k71%wK2qnaS#aCF*s%DL;{4c2 z<`tggUHd-2_1~CkEi58nlK&^L@2&Ybmk4(Nyyz|ON9i!sDm&=7vN!w>WjVT8dljwy zaSJcx`VHdtpt&nh_sMs^cVjqE*ZIBZjklsd!NIL!lRk2;--P<_;M51|4oYs!KN`}yK+5cG8}J<*zpy}dsI5@+2@$aAP5)??q%R{Q0=N{?IZ5uS1-Jz=lp(Y5Y_K?{bG z>0|UQJ)chDF)_Tv$}rRw7ZXhy%GqHwzvD6b1LCH8C_2m)#|Dwp8}gjK;gSt5eQ-_t zely4R_kHm;N2`4gj{;i~_Sbj{9BTGNXT{q*t@b8fIb7nu%F|k#EpG?i{yopZGd9tm zujt^z^5)wV8?75yf64mTY2>+!)VT8={`$$cH!=JU9?5+(KPk)u?ce6XweH`87Ze(< zb)5+F?bApJxYoUM;)2QDRbfT3B>+j&+~FRPMlKhByC7k|TLf zr0aGL;76<<`g5W83r50ubfr~c(E@0&kcW2mow%ScKNr5s7dmk*?$Axb8`H;)Ze&KH zI2D+^_z>1W4*|2~tco<&+T3z)sbwo|$))k-44Z9XQ{m&OQGgnkaUd&gyr1vOm)DKcK%^8D-U`tx6l&7>JWs0c;~Ies z(8i#eL;C~C0NR{@#Y*KhQKwnBA)L2Wjbs-D%>nY&$ZNum6#1$-h`R+R`NMfHYqcuR zu)0Bkso&c|{by4o-RkqX?m7p=)bTuxbN$n^{DjThJ>jzb9lzokU$UyaO%u9Dn;=cz zWVj1fFj1c9c$^M_P#2h+Wn!2X!>8t-DtUNVaFXP9SMo2`Umgp2ER1qtS-`hr{#M_K zF#|R>-6XTxMEUrb4Hzex`CN;tVy8;|v9nTx(U3CMKw^@?trJ@cpUkPs+lYT29`R;g zz}Mxv3pKbU|I(6cq-MCje1qIN!_P4C3_W{-`j+)lpzLge)cy=LD|}AQYBIs}rhFBg^dHOh9ZbX-#Cj)_)^5}$DU;?O356|xBo`)+Eyk}VkDZ`4)l zb-p5g2gm}>*fYvwe{cx6Vv*l41LXqZFE(I&xvXcPk#`x4bGTIBGm-M7PB~#7)a3W8%4-hiW$%*IvRK2cgv6{H zfBD3T`=Te*jjx)k9XY!afpdZ0g-3V}?bc*}U4RfYL zY5%^&j8b(!ylj@2K_SC{nmqJTkg(=AkyA+;XQU@>rd5Vwz5eUr$F0Qw{w^{M-~&Q{ zAVhi--o}Bg#~Lx z=&|i=OGYKDHV{Jc%BO*V@L+cJ;ps9c8IT_1iBg(PU^(ZhVVU7&;8^yqh4|RqyFsZj z0vYRz@3A*&1^PG-G~g=RrT4Odl^`~A^zJ6BKC?45%XDrbhq{Y>OdC_z)zVsWa-Axo z8PoYV-z z=Euq`_1FMtN2o-N1TiM;6Q}?QIF60UqD!AbRMw_ae4twcTJ3)%LE3|BDo_qOnc+@# zJ*Kmdls$r#hAO2<-1%8OlhJ)JEnY~1Y8Tx`J&@0^Za?GS=5>#_IK}N&GXvB1g?vtL zfGVB8Tel>XrEZC1k>#n(;nn0y$(@X+N_L!bb!BM!1~b^S^L$d_Y2WJR#{LJK;}QR) zu|Ga7oesyhbFK5+7U~I`_36$BC)!qpiM>((H+sR65$=SCDqpj!{)ar6G2rpf54TG; zxy-tMn2VYln)#BtrOJHvu(#O?LGcp0P-YCfh>fxo?bH-oPFxJ$;$2tAMqvO~fTEAd z>3WCB74!s-QJMx_%xkE%W6u1TNuw?$uSNe%Axb zP|00OpScz%X`jLaV~EHYOyMRdCk}1WvIx4Da2~SHKi;5Ev$ZeeHgxAGifQ2#H4U+9 zI$3H8P!n}fS7EmB=w20Fq$}!G&u4E_PcCafJ#X_&kKW-&9f2D;uAUF&WMn#bbp3I( zKG6-5&L&FY2aqgUEwys6q}Ja`b$_Bd_;^;0o;ipsPF*QDfxl6Yb=0U>TplgnMCf=7 zOT=^*H^QWIg;Y!n_V4i^t_I1XTcwG7nov`vtB3=1-Tl#7;dhy-{yc{JwUbO6=Eg|E z@I(@Rh`wqFE5mUGjm-lk#Amkw*NuIAQ);Ae!^l@>n0T@YlKS99t)BJMtSw~)VZrUK z$A7RFohF?(?pGhVtZ^W|6~nig?vS}LWbQX#N#4og7rqcq=9@uZ zq&R- zL?tG_65XUU0IltE2a#CFJsD<85Ng8fazo!ErtHJNsbbmbKgMoC1<@x9UExP=bZg1m zh(7k|ZDoIE88}#+v_h_kIeigWrvqK2%gxMT|3;-Qx8ZgTq(#5SH8AYvwcIr@;NjiR zyL_(Z-Ou}M-m6{i##(A7X*Nlm(OOvsUgx<6Cgh8esFM^L@}3}|xIazb54Saq-(PXS zuIKj;ykE`lYS+`D75uh_%?bVtGckb(Bvn6#1&<^`k6YeXiRmwd%@Z__VYG%`5{e4@ zlNaO!RJp{E>Q#hn$Zq!0E(}}tT<$Rv1J&U}eDckhv7o=&FOQ}%17A0kT2mZquOuX9 zu=}!M4vvw<9I@`d^(~$eyHGu@3s=vOTQAQt%x}Sie2&E!kPh5=QtE)Zue-8t0gC$D zNDY@o9(cPh518pqYg%b@GilxZRuincBy+di7HFu>vC^dg>6RTeCw?w))3WJhS6l;~ z4HMc4C`Gx@p$-X6nV2!#FlTvHhxIa7?UM&{npZ5F%ocN?VQw?>s%I1NN0hQ`!*bb* zT9>WQzFGpMlR2t#PC?4j3%^DZy$D*NIjd@nVO0Xdasp;PRtZOA{Uc^>*xan{l8vD! zz#6N7LAusdY}S-53# z&7gtdyj_Ox_4$qf8hT&bd?oPi#6U8f26$|S`z+4%7S%%PGqw60eHeRSzE}kncMA&e z=LBN4qtB0s1Ad@#aemZQRkJu>?E-g(lYuQob5aHx+vI?^!hL;eJ- zz~JE5e-Cpmc&h$9$`JU~RWIC?k)Tjp>iR=@j_A-ZX3)%&t6sBMl10KU7>NO?@zj_T zog6l&lYxGICW|W>_VZ9xb15R0?dsV_FuaN{ALMW~hzP@|9LMb)@?Z`KC$Dm-mk-MB z?9*`{X@Sb+#Zgzd=DK3_2Fgufa~_H%^Cj~wIuN@cT)B)Wr9!&uR!knqJ4mXLPO5}d zg>8x8$n9$4BhUmsDHHv!gtWbZV>(bZNWEafnoH5bSTiV_U{YXZpOXAT+y``cPr4a7 zBNAe4+H*;*Ec2>?mt*kXuv?@VYA z-=ut3@^T(5k-n>86IF>=-_-#2vY8XRr8Ta5G?x}%QjYQSZ~3Oiv4BQ=u?LCYAEDjV zx$tB?r-u+ltjoNyQ zdW~l)@v7}Suzs55neD|MfUzLVDuRbopXg^-{SB1v@bM?YW??QaMbsf-ES5E82l!NO zc7T88saFqN_xw~otthm)?rvhf&4x!9B`z?U=0UTxk4Rr~PCVkWnFFG8xvTb}vu&Q^ zTF~y8<67PX=~K1C7wU4wS5QIFT-H7(>{qJI}viLbM(fWg6^aVY1d_iM&5eCqx00j><1Eq=16zye07uq zB8JfOBId+$qoyyroEcyb?x2-g^<#DnTsD!ywi$7%$PYCfSg|>f-Wc@VxGH)(RL{d5 zcfcL2Y!KOyz7pdGB4dl|9$S=Hd?4`|n0e3Ux0e$mD#$0!OLCx_M9$R#P z8X#k+5h67Knm??>|@m7_`W$Y`H)?BpdIe;z`U;*PKaKaEBr(YtF zd-(^=4Vj05ucUfxYLmp594k9>;l;JjNi7_~Ur65?9^tP{FW|*XR1PMH!Y_;6cBz~b z*{$kM@~9u|&zvX#w~1aFnsmayNUGZ?u%!nE5!CSSNLaThFGh?k`D5y)K5`0*qE`cZ zCsDo0#m_BKu)~#JVPIjYm zhC3Rn8>hvyW9!CgaqWc$pxR5J2$t8(2onX`&@=UFP{ZZSxmJS!T%4eWA4&^m2-qP2 zl_Ik(upq$-tP)~7Ms*o*z4sac_yJ z(ZnckUN@A$=Im=w;!2>z4>ezDL5lj4TAB^`T3z>x8lxAq=yKiv7g8Xq9jH$C_W~CJ zDySK;!b&6W_4tx}TlD-$O-;V~j9rSRCOS0K@E+&n-@F<%Q=sIUh0v&F#$(q;%tuSy zboEf4KQ^t`#2V%gON8!XZUOrlm)$q?8Y$Iv)Q|8VuDOgqBfaj9XpQY9&Js%j9 ztvirz5#%g067>C3V_DZ-`!q8Cc}cO%6AE-0c6TVwSsT=Qr)rY6Csxp0_zo);ML^Rv z6??TI`iF>vDzCvCxKn1Q=KJ~TD5o8Jf=C|mibdcKE#@+67Uiq=`M^x|5gKoc`Kk9B z2-$UHI8;y@?RO|-b6X@M`3I`Ck{3#%W)kz&DU|Q0nKY>3kWj;h?_hLF<@NbwzV{n4 zOIn1S;dqlffHsXJ2EtE|BHDghgOV;EyJ&gqO+sI3G8Evza#?FuTo~ zM)d&(B*N#?fJwgRv&c zvjFtzq|EPkXkrO*-tL#JH7S3Nt6u1B*_*EVC8Wil)#nSicbk<1b#LY1*u@d^Qja(^ z0kB$`Kuy=&LJr?V=$h~FfP_UjNA5H+H>fqBt&WkT(xp>^FqZ*j>aKe)k$k=>ln_t@ z(^;B=yn{%m-fik#KwAePe&|ghX5!gi3tE{!D859alxKwEshOftiYJ>x#^t)}IZB!n zvq*;$- zgw6xn1I`54Kqw2sfb0|^^$}8pGi7C8;)IokF?SNsn=bm!lhEDViBzxiXd;FaNa;*H zR6qeKx3XS00aE5vQdZp#6RuURA`hC4D9DW*DB}~Ky$)U7JWNhr#|F3qpjH;nkV#kk7erqcstxBpc? zf{`Q;*l~4#`y1;nle)7tvY(Uo%1j;cW=F>__}W{BlC%$%uZV~fIp*t#!5r#NvK-og z3Cp@-nNz4s&ky8RD|osumKEFLZZciVf{%nM(t=++!PB1AKr3>ZIO*^ryoGY%K^QUT zLJR{0RSs_mbv;I+zNASvv#8og{Ig_@ex77#1ckYbU$%t?q7icuW#z6gHv7%*armC& zkH}TjKlKCp#6Qb}S?xjRi7gZs(&`5Xq}6>I=te46%!m$awQvwS-KLi4{Kh;Zaj)(q zniSF{b{@FgP>&$$6@`lICj$&D9ZfA3=OJBsET!YK{baHF%^?+z2-_ARA-1c}aCnui zDZ`H>!ye=o#pY%CX5W-ElAOxxrN!n|`R0Ih(ds|RNoDF}mP;cDTK(DfB4EjCq44m< z+NzFn7!ftZMrW)C&WSHat6TyU=+-I^HiRiXK--8A`dK}>g*SEIyE0viJ*t6+NMbHS zl5LMHC~Wo-n|v?~{gu5quLrgC=*1#tUxXroxW~3u)V_hrzOioyM5`TGBS0-S3?Zv0 zP}U@>ZMR`gC=FKzN@IOm^JKClcZJR!8yPUe*xgqiGLfHmBI%EqN7N`LDMBa^SvJkh61to_``8I+N*ie? z?Jti*r_`sUW43H$R9sX46P7OJXds$+68ztbF(qY27wz0%@K zxz8dxOs(yeX4G7pldt|DDR~?85Lk(8v?H9j-l=W$Pc`-`kgX)zE6u9pJ3W;I*2qL^ z2Cz-_fo8AV`D+Q4(_i(iGj#ORmci({tSx+ z0F6MP9z_P+{jPpa&wcI7&&b3UGhjW`KS{%It0$Atv?+Jb`%S!yTn=iVeQH4@%M?iK zdouDo^ee(tczVMpPS%GA^RygHEL}pQ(Un(@cHJk;igF3DZ|(@2q4G%0?80z-V}2y> z9o2YQ|oFJ^Py`+a=|QLP46!aVg7-uNG^I4OIhslB^wOlZ4DR1v|m%%)cFjfq`#m z_;FhLMS?aC@}0Nz@2JVG31{+qY1vSte*mfrgR0Z}=u?=Oize*gj*!_L#xBK(-{BCP zw(&*wrz;e2fXBZ6-+#B)u=4)*?;_8(@V;naf-DK3^91mvI^j*`a)-B5xDlqjn5#;)jjov>a{o zlCho`76F8E3nC4v*RkjTj0RdRb>xH-eIyF)7A3OR6xs+Fg4~t~%t&_g(x)D=9)q=T zymSB>Lc9<9DvbDG_|CAkOeE2QhSu6=wmDN!t(BYyUl2en3XtK4a^1w@Hv1a!4(gy^ zGuWVhKmO1VQAkahCyyvbP8a2YhaRSj&Uut(BptDG%+8o&_7}vK)iOh4a&Wkf2xWv( zoW=k$bzUjq$8;Azii5wEf%m!xOm3&?NDZkX6VnjJg2q|tjd~E`xVc$8_NgTSW^l)DOIfn_2i8ew(*`5vx_c(7T_D*^TK}?9)1L z5?^q0i932{ofiVVDSAtt7XZ=}y|&Iv{-$VEoflfEDLSss`+)qOSLc0Dem!;Gf9CQ# zu+EDBuE~5Y=3hr$w$w%IgwRi&x2{2cO4qHFpVQXW%g@Q{>g4Cdb$828;kvl|*w@{~ zPvQ!fd4U#G5 zpncz%zR`=Bj55h+&y3WiW?tMgNJ0tqngu}Cz+N9rd z1pRUz3<1+XhNb9602`X7yH>z&hL2c7N%`;8h`AZlv;|`k<8da!hdU#@oo6(^omb_0 zyp7X`^F^3IdBeha+~37isgs5SMev?#SA_%R&|73qZ`kC};jRN$XS_*Z4a|e0rJ786 z9knNC;YsSxuudEvo)3c;8L{5GI^eUiG$127pv@nOD8Svw1W%-Z05-z9h_I-OQpEad*s38a5u_@|UdBXfnaMOY z;d~bF*Vz79&^1=byiTSb0fpyFmoH>7H0TH05qvOVA4y?;ocxgY6svu862Btd?bf9K zSGft0`5>kOX3NTxQX^_VAB*WMkwx+C0VUHaLY+YE7+kRqh0{&QeF7`pI6b|_9ISK5 zM*AzfBGcFYwEs(luN=v5N6b%C5hK2h@-NnoIae@p`o%G0qZeAp%G{=+x?q>!fvK7a zKuXZ2#uduGxZZu-J49)>GX}vE;4uA z$Puz6)uNOZt2#9W&RNz0S(UG6F*F`VE^tJAwA$1zCoLscfZc$2KnSV#c}eRvtJER% z4S3w={LOtVqh0+$H`i?sYkga8eKU{w=9TzJ9?jJyoe^@V$N9brsl+6Cd0xMm&dKs} znUpl07xBzy@^%Dx-`XMi>|^$m$~jLuXn$VvC5I1|A8{`Wwd3dMdOB~6XHj3^+yyv5 zMo%AedaQs4pkgb-U7=6)lpM((#HR9^oYZ#74j9vp@1JI7J?q54#94+kz>J8w z(=IV~)dFVBc*MkzX!dNwUVC51585L(+XQ*l<@&1oD92o*Y}4K}v43aD2S8WGpC%%V zrfxHA?t!H-`>8gZYFCLML~M0e;SbuMW74Zt4NuwVduqoHN=^{%#4pLH`Ph5xhwo*M z%pB8!ioAlU+j0$x1heQpN%rlC4mR83Z;v-B)*HJe&|JkXww0=-`lNFYSyF}gQp!yc z&UblJqmj+fle{=Y=!wwkXJV<(w>0gk%>vAlMQ2z^gZNRaHGG@skn96m?2D)ZQgEWX zg&#l$e4RKttrDuaSZgONXkCpFkI0)57YKOSgQZ1mvgjHv{u#}2qQ-VRSyjLo^>VT* z>2b0el6A6jXPm5}1#Ix&F)=NnQaT-idJQRlJ^Xg^3uPJV($qOo_Y)y3N2*>X#y(l5 z6N9d5hnhu~R>ha$H+zcOQvuL|h|3?nE7ec^m^aY)57*0A38PQ98DRCS4KykAeirAM zd+IT>C!XU^WC7dc;_NLy1(a=300w^2MTLA}%Ud|Iy!!;P_Ym0|$Z>)q&o63NCjfwW zcMnTNkrJ5|95{43_LNdRDKg@rD>69*8Wg09D)_d_ntf=mH&#MV>Dw5&)dyp?j(H4H zHUTd=9W}hr7xo3$0OxjG$*aJFh-q&Sb(Fa?QfdDgHN;L0m`y#@nz4IxxMBx5V+G%6 zs&s=I!N!q#Dt2`Y(3MI($vRt8I{nA=czk3}s5@e7LUz^f9_MuSFhI6Q6+)`F+5|tV zYuNg0OL^2-i~luehQ8O$P7Ojghc?iE!Wah_K^oB&?QN}cJN_kg`VMoGAY{zEG{*|%!ti75BcnzAhk0Ct?m^*6U$vyP?&`t3#($R~csVc=;(G&k7 zH(I1lfN9B${Q46t^f)|#^HeH7pgqZS6{&)_^Gn?A(#e20k7^TgXzi2f;wnMI`akI? zM|fe8dY&oF)Y(5%r{f;y{zfd}vBi{*GDC0kYVoAq)9UGlL;iAo`d?C4FmNDKe{~lr z$KhcCncq-0KU=mH0!){^^qb4}vdPU_r~Kwh!;Xf{Ltxi%84hsG1$d_A(I?v8CPxyHKGKULpBjIr(76-}tnpJrIC+O7 zV76fpYB50OB)aA1WRV!ga6W-WUQzlAyf3mD3K+amfdUtP@_cgf{jKA^zhqQ^#$cN6 zq_U#s?AKsfQ`jsBtZZYpjEdK(K}gqY+^IaFkgTK7P0q8?gpwD#K8+r~dA*>ztksG+ zs6)H20X3%4qV%6&MirL`+S&b**tu0;EJ@1*rsRH&uUz*C_97dKF7iaMax+s#Jf+=F zuLSwvvk?6_EVt8DfV9*lcglR*KfPQaQXk6ct-$b^*``QEKcixTL+^yPD&I@6OTHJQ zPii+j_LG9POa0amF(fq6OG<*UQP&@=x|oPa0)&ON8xQD1vQIdw{twdvExHq=_|t|7 zwvO8v%2wb-7;{pNqBq<+u@m@*5#K~dI5AOK_y$caaAO9rq!?JDfFmAYh+91lsV}fv z;?01*^O;J>zku7Q%!wgmvZpT-*oI7pz9jtI-}d z`XQ@nklQ|xnD(sI zvw6-s!w9@lY4lc^gsjeJ_!ZJu@KFVrPJVwIuzp|S1j+lSm>0?KO_(Wld$!+kzF`VL9cA;d4pPRwex+t5c|$cKK{N z`|@nWM;u{%_{dvn)1|8ThyyxJVxf>PY^7E5LrhCai;uWKUb@GeEDHUTGExL2-{%AlNoJ*m40nEFJkL?I;v`gZi^)B~~g{GA21L|j&^ak#o>5poxN zsMt!Y^mpRc2;^{zI70+XvEjkS9Q7v1B?I5fnByL7Syk5DBfku|p3ZkP5+5j>1EE}M z#6Qf5rKl)2JkU5${Z!X+IxVRW`csEIY23huw{V&6Uy8m;-}y+|@G4%_+Frk;0z$YKN%a%GE9aGL#W?al4U#@VT5a z$S&mIdc_y0fDu7-D{(^YX)puRvi>Y^OG+%M5Uv&r%P8&<+Mqp>$mOY#`H3VZc_M&k z^#j&d9?0tvp8o*v=G}tqAIl{aL0fJ@zqCv$&6Q5ju_*FO-HD#|WjXUW$YHVc96o22 zYjw^XX8OcAzFZXe@n$gn`ds-Kd!J9P)&0suGu!i@Y>bPv4j2)d$R3=pgVNJQkKU&_ zkCV6u`+mCBrf%=YPrG`IWhO8{mVD@`DDwoA`H9d3*$>%s2t9ga-=Z-zrzs=wXFC+z zau$=`j*x?V*I2y+hR}tpsR3Pt#Ht-cKV<8?oN}s>wB2eG%2#hMO~B~+{|5SD<5`;a zC=m2!*2%ngrfpClwo>ZTvuRD_e=9Gt5I7f?Oi5pL9g8B2)Ou2Tm(Jj{Z)iVgmAA04 z39bdj(x}Go3>@|*rj6+uJlwJ_+1VHbr5dmdw(LQP<*g|?*d|V6oacJ;f zZ6vB-PeSZ*4dSgUd^CJVdu&UD1hi+q3zxHxd|jGyO>q5K=w%u^2%;i&U*a->?tA|t zQzG@Tk)2i25#AE3WFK4UjneDn9kr^tbRZu8xJmt%_XyNa@KZ1A=jY3E$UnZ0M_2jj@Qo^6l3O}R8=&R z?yfmzr1B*@!hPJn2K6XTsf8l*coT$*EKK3#JWuWHd6}U$_Poqit9xGNsz3F-80r^2 zFV$*Q&&y&J?|w}E*rkW{uRm6f~+A6`#lhfbRiIvu%LBcXG zLQiWxN6Q4b@6qJkIv+xgDGs-2lm{SAt2hMMC=_SPTloz0blbW%8r2?$s-r+k)JO?H zAsO9>h}sb$!0KSdZMSMAfp3FNXC*nw@iYmt27i()?Dj3Hk&aR3Ct@saek!dU zMPKku-nW^4XGA9uS`d{9;IH27Bh^gJV%@J3e9rI35iAX6BYMCfvg`ZD@4(j0t}YN^ zPvTcrxxJ!{+M<4VuC&-AaMAeaYF%@;5AzI22!U68>ybg3&Togc6R*Cwu#eiHg(~6@ zJV@rGpL#&HBalfPp}iZ_iB=^V|Mc+TvK;;j?kpLbT0*bSF`fOhwc-!ZN5#5pHKbO% z8Y8uuU8%}+(c1}uxTbTDVf6#EHYsvRcM%Y}6zOXf5oy3LDWYB9gdNqK=r{ETNmIpM z(^;3PHy?3$AN6j902&z|8aWx?-(_1dzJA7c-;&LNi$J%a(PDC~xs+umeiPfZ(cXta zssuG9>}N>rU1=R=sz|+WO;${zarI^PQym#%Na`@1hww46{H3p?aNPMm?^%jaR;K4a znNY~n9u?gA$c&M8z-{^PHwDxPj`w?)NT7qn5=YBKcaC8BCG3XREJWWyUo1r52_K&> z`YwfJi+D5P)Me&+>*uq$T{NSxLkGRza>t6(MH46nhEH7Y5Nd*ZDtVWdU`~?xc%dJQ zv3vTRy>H1a$D(e3C&0)s?KfP?UKY2yhJEl90XSYR*OVzCF5A;qI3^5Itr$pZ(S4Z! zP3}y9ra2^70w0NVG*2G=0#)7eRL!A)TL2I;aY4C+=X$ytF`p6xP|>IQ3Bio4h5KV= zCRp-|q?i@S(GW$nKO4VEoIN0xKq3(|t5Uy6A4RYc(Z-*1_C~U~2wt@gvSfgHXxg zH=h2z9F<^mzK$_b_jxgxYf)tFD0<1)xA|IeC}_T#yaQcYb9kqUjz83#6HXfGuq)Iy zH92hHlw|%MpF4W-{DP|F6**V~!Dpup*F-Q}SA-jD+LDtG#E%SI~1O0EntocNIe$?8vBm!hf{R1DG11Y@d^^&`dY5{3`qEzvVi zCO<^=6}n#(!If=;^XuV%z;>ebXLt$qWDum@FpkhGY)@>xx)O3Vb|mB7QqfDWYO%K zF=}GmoQf@KJBXQQyeXZ(U8-qztp-aM&AQ9ls5>FsV+`_mvRz`+EYR`^NO|98*N+iJ z{CAyPsNxV;3u~(22%U_T1ikZ1CAiFFxAI~39&B7t8c8f5aOwhXd0OD<(DwS?^JB9k zmGg^Z)xEM8X0or%WzN-gVl$tZ$O5$)hxZKKb$D0&okCXC^-we3)2}v80jzB21@GQs zu>~;KckH2@=p?v+v^@2IxYBF)4UE3T+S6lh3nVY=r*OaGAYAcAi-tuw5<_vT=__pl7Keio}^h+24} zhov|Uc4Tz%qDB;$YJT00LTvT@|I_;X3>S;9txo{VGbdPie(d_MEzm8Q{1z?x9B(~S z@PD;HA7mCN*vR_GnqW4*2?J8hfS3inSQWd>ZF;rTjWQA0b(&YJ*J(OHNj33@bwb&~ zYFq1cRj+k=5tDDdPVntRj_Kq7cA0$HWzt>EY@>2>o2(jVQKKEPImj&6RmU$^wP<~3 z2$-2IU}i2y-!EEUft|g*cP#D?n`a`4>9f8oHdwt54H8JsItfs87QT|^hK?Pq34bH+2kVB@mM>aGbgHT~H{u`$AvXhfizD6ee@uwY-d zkIT{w-!kQ@w-~R(w58NgtEp4REWQrOzRxdS$CDwu& zQy7#+kd7y&S4YYYL+XZ`kLHEbEr#!C^z?`cB|vnk=8$)cLsaa*!6sZ`cN)Hy*gI0j z5-Z7NtB<`wM=bW{3TV>LK9W~Ddz9!$u+Q(yyYAToxFt0UarEf zB5!)N*iByrhG68^L1jRIRn3^1C@HVX`#>xJBECbhXDT*@6SHh;{BgZLue%rYTDp7+ z3393}j}Nv+b&sVqGTY;E_(Z&VH0`8$$Zoo%m)(517%|{iQbBAW28fO7+gLLAy<^Uf z9oDuC1mrRDK9uOEKDE%3oRCp&vPb929)$$!WvRQND!Di(lJ}L^wk*(is$EQjhTyMj zIsdZP)Z}q87p{g^nD?r(qs(lD-UQpK%#CVP=HnXKNajL!FuB+fsa)uAH6&%3D#yjj z0_JN;BVY4pVw}=P^~JJUMDqa32}a^l}a0kqSU+6#6e(@z)W}zH3h9jOh zL_Cw@pc@`C5c~J^mANC&8#8KAKg0Dr1`NO5FdrQElDb=;S=OdC_GWNpZlJd7k{D`W zuJuB-UsPpUDp$$bMS~sK0NMhz>O6t(wOykY6^1jlJ&`j%FR-%3D1)V{+Q&f)tf?mN zq4uhw2O?*DSg}icII5TGgijH`<`=?#o;(@yr&|8ZkUz77jZvJ9Z=^u`)R3IjirA+&?$rj%E`S)$Lz$zT5-&^RMi^z|wh6cEAs*r?AKddd7i%VYay= zTy{Z;!3L7i$DUx4R`I)re?Zn)8~=6$8)NMX2XUGRJ={I&lj!?nVi6Ep)oaifsg5)B zpoe_zb7stgzV@Me$jRx_exVx2;f|OwRO$^)KtSl%&9#;1#!g)sK(Zfmd8fBWFA>Q2 zAr{uD@-gSe?B2_Aql$rZ7Ga*%`yh*;so48bZ>T-$kj&4KSuFRxS}`Odh$)N392WVK zt3j?mkO)0tm=6c>2aV>>QKWu??52!6tpJco=VvfRq2#3wwGpWlM=4!2l=8<+?YC$G z2~}C`vUZ!*s3A7slJ{dY9YiLdiy45m4CnGCAiYh>!4R+6!e7h5*(e7maGkyr=sJ96 zg+Dw-PSz4Arg;KSecvHk61&Ttn{vm;9{KJBY`vUthK1vDB&v6x)Ks-r;70<eO{t>=HqOR4m+eJ4}`) zbE1DZh9d1v;y~SW#}Q+=@Krjn^=#oj>-ImQ!H9kEg<1HxiUWo)g$WC+vCCmgPOnWD zy%p1^X;8Xo*+Sj@??7o2sqj&m1(4!gEr)=^p_kW|h)E{>tCl~o+C-PaRd$|DtreII zc;X690a`(UT19L}zl|GGNiWTu;8dkL$78`PZ?ME~!L;nh%=taZDyP9+_7h-8fR;xf zmcbFORViAeVlZh^1}6J^RRD2+n>>JcvPhWWn9K3BL~G(~iZWjP^)FfT|}FDKNK4(}vUo+P}Jgn0@O-bund zNq8r}pLfDLNth=I@8qA&`)q>PlSE9Xa3_Hb!tsur*wZU*jof}&u?wn<(WqZ9VGkJ) z(;2PgL(qy=%hK$z{k0E~@zY}#$@$nEtH%T<-4wk}dK~%xrjuyRo=y#y4%(!HHtFCW zp!_o({EsHT2#O=~IM7nbQ#m)<<~($ngV*3vC(OKH9* z23|%+FP(@t7iX64-**V2$J(XPwR$~Z{Zbfkm{A>HF7cp;y_uZcXU?a8Mrc2gPv+;5 zvL+}cE(C5}87K}k1|8)_U0Qa*Qbit*Oj=nxIS5v}er263c4K}2(Q>*8ST5P#wE!p5 z5X%m-7c8h1O0sT$Ey5sZrT*t5QBXWFQ^%Cbu&RR9` z;J+{D)m481NfZ&<jh>Y#W*fAS%}{*$vV@oy6V-Uv{oJc{4pm~w9 z)<`lb-y>xZNe@YXpbUo`%FT)Pt97^oDvTv-DO5oR++uifG z0^ek@1inRnV!=0A&9A|?tUO{Kk{>JHqa|E_Ok%;Z1!N4tl?c*_sS^fE`FJzfvyLgy6&%1}@(!0qjmVFXEuH#2>%OSO_Tl z^Ag!PY&Q>D1w?=ut%Bfw=D$bx^oaly`yVOXpb5I@iAH>_P=q!y82O2GKXrq3+sg&) zUvTcPEO0MJ*LO;EocP9^ZXu35K^!MBCH;saBmkHk5`K9meG+apagSA$5rZBy^s{O{ zSKu7=uu=dCt;Xv1F;&a{r7gntm)4Gb==urJvJsR3>O5LVIKNK9=G?5M3hWkyOSpQQ9h} zkU4|2xV1zsoy=}j#p(Tv2{G6vYwf#VAkk(%;-q(H966$|_PhNYJ^0f|RRxcW5+hU)YQ}gRO9%bW4&y9EFW9{4FjGo}z zhRzwC?didqMPmqQ8!=@mORqYL)KPl$c-PU06^wAf!n2rSHi>*?M8`lY!;V#P?Z=qNx3`p~sH z|FVV_ZAxHWZ2t|EmPPBq2hPY4d{nPPAZsOC$DJ%5d@DK~?sc6jYis{trkHB|(Rz7@ zm#l>$cMSdIO}2a6qG{3K8VO;|m%OvcWXKc{hXcIsradDMlH ze&VPa?7gGLs1qFg*aa?0#H{p)RdYa?&7=NG&C!pfT!;L5PyW0me_oeAugISrqb@v^ zOq--^OZ**23JnVU_SMO{;#}Y_n(Z#MZSA^~0oRY#SET7*AiB7xtG8KQonv+Nda3kV z@@Kkq6&F9NtCOs*`gK=RBeR_=mz=$a$Llaj8!UfLusYYDK1BPt)_qdI@xXu^M~P7V zt_ZsUb$3(56>8<*OZb1nPvj=N5);e7C{6e&e+UE&sC8e@tek$6)`@0mkzPKgS~rp| zI>NLO=-v`G3yC4jIX233D$BV^lQRh6G^a8e!l{f{yCG<)7jx%S#%!^71=o0uvXuNH zd3`b0*!dM*2%;T`TG|05R^Y8)0cayNod{%L%KK~4$Wj_jJ*bwo%eEA^GHrS>fY;Pp zx>_pH)k=L`=Ba)(@v_G1NZb*-c&IyL#Z&#w+J~$U111y6 zqHC`Ch8Xv&1`24#x5fT|Y+_>EyL60uF%T(Xenvw}>X@`OM6xTa1y7woH9WR4<d<*ZDjJGIf5+ppbpvX!Kk|H`}Zey+yNf zlxTbAW4>Wm?ZIEWS)H1>2d!eS5Y~!$A{ZUB2mCD8ev=@H@*LMg8#E^+%3FOF1Sj?) zCe|6Wl$_k9ZUK*GcT04pk$lX?VH6{DF!$ne$m$&^TC95lB5uCKr*(mMrwypR$=QYM zJ#lgCB#v#rel3#<`}rHs*Zd0Z6^!OVJb64e+x)Xt1cLh+u?|8V_3&GeVw#?zQ%H?Pwg*TZxxo+;CLmx$kpY87LnIQUfdFR61ZH3Yk-LJDkW5GRV}F zYpJz0_Vul_wHU3{1e63X7`(=Nv{rWG0s|$ZJWML_ULu1D%gy45b+#l6a*nu*Y6{-04qF(@dd?2j`>Ak8eIGS8ls5!c^2`Q%=^ML`Hq_@%{K@(S zn)?QP(4GD(e}J&Ce}lFMcYcmI=XM~@6DMqgIWdqa`L++H2R&CAZ(|n}^{kg*)Hgn( z*E2G=*L(hBICT(bEItN-YA}%S7}gLlBZq$9MjFV*pRoI!@C-TXc;hc%ZI?!THV)#| zXQ6QbR|6_5a5|6bfLQdU?~U)&8Sgk_k92GND&#$|6gilYo7{^A=Dy5cO4lAdzlONc zNt-n~4dh_#QR3POTMu%8ueGfwJ#c|>6$iC06qH<#qjX^4NNdf$c{>o2=1s(1z4Vet z6LFH;p0%Id^(l?IY1V0P#)PxNSXGIdO#}bnxH+XlAdTf_PufOvlU&iYL5M~p!@clk zFHN=k>*AlHT4;}Z7eh;D4!S&#-3O@f<9k z*|B;_D~-M{V!Xegxd&whLy(kjp4~-l@~rvC5nkCRAa%Ew9>aZXb`h~G1FE?f9JT9n zyTJVS(lJr!-j$lk;WRRnnvwCZnavwPYe<6WhcX0T1%tAH)s;`V%Q9t!OK;zM4f_2b%)r|j=??v?fGkW*y z#dt^H^JH-QB%02F6MD^RTk z@g8bA;KcQZ^HxQy;uq7M4q5h=>x%6y-U=MpP>1&T0ZuEnXFp?y{y*-SC=k;dT3YrO znv7!*TYVn809WR9T>2mf7E_ax4G%3u&`qgfQGj93Y@oKw&!+Y;ktbQ*~VkW z?S2EshfUx?22w-W!gsH_EAIK{F~mK`_{j^z9a2>HBz9@w+l?X)`JxzI^RC~1>;UiunrFE;IIx3`(2?U%CI^! z5X81TeODjl9Vw3!GM!xmL!mJgQkN5Q?6>Av+lP?@|G1kcqv&QA4bZ|dZF!~O(9Jg( zLY7~I;lDEKzzKF()xhkf#e&fKx8cuO$D>HwAO%iZfgPT05D-nFNOC(p)pp(2#|bN; zo%-uhH)X=He+?V2yrYd@Jtt}`g**9#XiFCiCA5iZ)P%hh!X)ToLuFBb1UmF-0o z*#bBe+Qqy2sZ|?urTY}*G)VOZ~UPr5s;F_>^GUiG)Ddmm)MRAuHX5J?L7n<8V8w|IK1A zr{@aU$NCfA+5yMZ^>yP&R^hM}4J_F>M=+12?)Q9yuke^jITnWcdO8m z4vg`{H|X8P*e~OoAA;n-VwA$n!_kApq8$Sgn z(Eg!sPDWi&s)D_7n>3vuRQ_NP9QTLS;V>T}79-iXkxe8_h&X&la4Xvh^KK^!GyAQl zM!^l(b|LzBd@zd94zHZ@iv`-BC_N<5FVTGat!-3R?!I4+_a0rr45;f?OmM+ z28!CY&c(OIe-!orJw15H5gt4%5y5Cgz#jyAy(um-c^O$izbFSb{SV|qK0Or&t?@XA+M}K@`aXnA!A_@OCnMN(n68jgK*CbI zAmC*n#*>(*P^dUN4>I@l6cm^UpJE~fY01?qsgDm%y@Kg%LG^^AKS%g<2qNqzvR#6p za=scVpD4m%1C$=@O`tPou<+6E@SP5NZpKal@5M;k-!YRw!u|q+gna~J^)DV{Oh)49 zSY)IRTk++w$5{B(o5TU2LJb7sG}5Gzhp?040S5bf#UzM87OEF5+|YT*jg&0_3w9eF`*377m(uo1p+A0ia(sp%C{m8hVqPzN^Av42C_dcya>8QSV2OEsI= zPoUEjf@-Vtb+Q8sv<`RH1RLm=e0gId zr2r`SHv(A-IiYV|aNMw~kpP_R)ROS&63p*I+=}qXuh_fa4JVMShk_X52;n~nd#P_N zWIS?$LQMqnv1dKYsTv7IX3q%Y$?ws@Kh#t)Ld|{G`w{-&*r?q1JeR;|5O=E3t|4}g z3&IUQJYZ2h#g6kINNe+*8Myf!MI*TolB^A_zbFb3^?A@TAf3qW!_j=z}pB8{2Qr;`cVI<7_I*<>WnGxA$=+IGITu9O)|oS!*He2{klV? zo6i4%gQ4RGb>0uw?Y{lIpW9{cPr@$n%u6A*ByW*qt0WB|RO={RSVM)ZKk|rRC<4(5 z<~X#x!Fn);)M)FlL+X=Q&n5I{IsKVPf3UzG=gIedf*S^WpA7Si@SVoN{kI@#zW!Kq z(<9;~-rPh(DPR8xa}&;c!pkso({1!}D#o)7lefF@ZdmZ?bIQepiTJ)ptd+S#Yh~AA zwG5R5%{zHlE$VLP`*fK?V8raT@tB?96jV$h=1L~|2*Z8Uw{D%Ot|>k}!EgZjQ2x%En``4?}yrx)tAr~#N9JA9i=urPU- z8%Gag@|%}}FG>S_e2m9{yYf=-?G+BLKuq`6P*(fm9dVc(C+`zTWSl-%=`?G?LQk;? zO}Qf_fH7i%HwmM{7Tn7wQy}sn&$rlsOi)UNGRlu>B#A_fHEfiKq7<4>95J?L;~SGG z-#6o(GH_gE;JLziq+l zj-#RB5&)^0hHu7t-7&UR@9Z>^+hRP+^v<-nxv}1a6P;M?FhBnO$olwTYycnc{FFva z)Ka8B+AjzuyPyfXB7FjG5D!{W zhRaZfp2d1@#!V()DXw(T-SCpVJGgTejbpw>G)|fobV21AT2z0XOo|kq!~x%uu_@>W z0%P?2v901-CQrhEuXOC!YJwwHlfs{AQJ%B}lENEui^YaqB*!=J_PO}To^?;|9hlpP z_vB(`M+a*@gY04eF$4O%9Y!j;QhcHk=nPPcOv^~rI84u@3@N9}tGvzKg@6i3{j*!Qf(I@NZ-KXCp1&E|=F69?Qok=&h&dYk(vS7kYVt zVYyv9Owg=O_)pl{OS|Rqp*2S^JHj$-f*+VRav2kH^ss7`c{3@$(z)-?>drDIGXsE3{cty>Vq+Qq%!EOju-PTzB^ zB*}4r@dA7sTACPD=*bT(poo)38u!5j>A73tI7F8f9CwWah9ZWqQoWcyCpW;_Sc0;^ zplmbVVJqbvaE>|5Y`BLkL%dI=_s|^eDl5hFrhRs-XS^;nwRR``4c~LG$!Plm!O>}c zJnCRSn7c_oi}m=9A^!d-{nee_pPq2hoNvZ;oAmR_o8J=G7qf+*Z^X4s`nxB}-?yy+ zp?pt>!}l;87sF3F{O%(3w>Tuo+%y3%wwxK>F+$XH4iL7mUeTY3mx7!d)4k~Ko-;BZ zMG~>!(WWm?f*KEL2YD~SY-1d81H%xDlXh2NUiG5!Q7k(0qiA?$oKSZJmD@S{cR2{m zi}NvXS;hS@F&`XO-ZH$OMil0Q5VFK#5pJe^M~O{ejLVZx#q7+m=Js#D7}`eg0%7gr zBgo}{bl{Xe@!b^a2s7Rhi#lk{`Kk6&9QmKyUvIYMY>ANnP%uRpwJbaqG6OAYY|>+qgKX?=4$yu-xAjnKf{J|Jr3hmn%T4+a}g5BTi~ z5K*A+%Z-?;#fmoqPuLQV&%acD%c5H__ES>*6Cb^bMl|T-=h>H1sX+vG2r?h+NrDvi zB`bvXF?cuZ=7Q7qlh|u@!g&$qT%UQ9>|GtyEc>B1P5Wv~htXwUFB(f=<}B?n9~=%v zYb!1LfdTe2XvpTy3M`^>BW5T4QK8<1^UZQbN;J=3(W_G zmUm}b$J|EqZW>c!*#7=ioqfaf<0H|#VCQ2OZuqW$y)gG>_XMPpRMb8<%7Ss_8Mo^8PGhPOe>XuLed$)=@7i^$qwXf^MOhohvC^l$r)3=Id z@U*s!1r$VWTnNr%dLF;^JdC!ocAW|ak-`M%N>c56%M(|QyOawVxuezyBQPz&Z@ zEGy2ThnNqo7k7VPC5e~2VH^smwLWCT8fvGvHJtQc$8BH3>1)r~L?{hj}*9E!;ia)^<^ z?Iez&Y>CU4b-RB_4DL9g0z$KaZV=9KzW>O=teCEaB2FQkM3b+eCXeF99e<*=tGnvN z7|I8E9F83rXZ-rf(0t|O6BwFf@Dq<)l3L+KXe~Vdd}x(z*QfS)D!YU|sEeYlH>Kg` zPz^;aw$7dw*Sj3`BAGAY1lOW)$UjBM{nNl)s=FT*;&Q+DX;1L{3#EnwDw(x?01e%! zvy+YojWsPOdNy1KLx(RIYrdr)hK}Hi_Lh6n@+e~S!)NR*52fYMJ9JNRdsP-*X}Ix3 zS~}juSQ$r!Qj>hfaT3dPYq8M(mC1Y?&6x^wzuw|n;-7gr%Eqprapa!dYB5hj246-` zV-3CnX$m%1nwLK3h&zKC>&Ojm`7@4-feh6F@y3OYjQ7lwZ1f#~u4vLZ&GF|nLq%$N zjDwb=KEb|TgunHEYKRux0fNK%@M3NrhAd!v;q%yp_Qdm)$^P|JqmBn~nGlYqcz3aX zZU%~7M86Z0H{1i)<;?xUlU8n?)PzKfE)Es0$DZ-B`CwvmthE_;C3J}GM}MKDK`Ks3 z--#=9!+|M{VWsGgx7%SQ{a8m6vnB$7V+n(Xf{meZMbLi*MKRzT14ZAu- zc_JfbA9a^bJE1C>c_A~V=0%FUshg0ST~AZ{Q&N6v#^Mok5Fw(&TvA*rk2|=~zaI6TOHCYqUh>XV zBUuazHykcRCl0CWTbROQ@f$lNXGdATvF*wUI-onD2JWn$$Zz{}qnZ(^b zoL!w!9dkoqo#MJK*bEy+RITpDnr#M^wmP1J@9V3oIuRA6P;pAz&jijEcqm#_+%_BBsD}A|nFnL=pp& ziHrI{+63PxPG|GvHi5R zO)!pNT>p<4;-*gIs-H$-WGm8@5V(onhmqB=KrOuwr}yE3QhLWt*_7Ee^ge>#M+l~z zN~HJ1z*S^ElHNxKvguu9IVo@ny(g1-a^QS=A4Tt@0%m%rKW~@=appBgF;&?8K9Yly zS&@P(cn^U&hb42oS32~Uv2BYgW(s|ov2b3Eu7G&egA?8$%zFSnBdtki&-_F;4tvTt zB!rE=!IZ6!*)on|wqf47ZGpb`2h9=8I~@~nAt|S01J@IY6S+JcA1ES}5O5F~7Fa-J zcp#UEDKL}Bh(IQh#K6TwMg}GkNeZMANe+xAGAckEIxTYfl6m#BsN*F1pN10@%FQ+S z74xsI17)EqgqKFZd7>?Jcwdnn4d-2m+@TbRra-JXT;95JQ;fC_zm51+;#Y^?R{VD2 zw;R8`_}z)$Pw@LWer@{h`28L~h$8w? zcw$m1uFS}z2|Cs-&5Vx%e z(!Fia6Aq%)oZgyPi(sS1J#> zQV;;{KtGyr@C0>-q$_2zm+pXA@~;JS8}=s{_&{og^<9iCjv5EXLQvL)BTlx*>Vr1j z+koryNP8;Irq@Axsu9_@=`V`;>9Mn@PtAso1I~{q6`P>k82n&lW{*SnY9}GO{rnF5 zMV;oRd1MjRm71s2sO(Uq>fRbh?Z@~2090~~pX1A6&v>6ysEWW%b5jDmvKmz?omx=T zCdQLz)1@*u^`fJq>r$Z{MoAXJ05M~<>c@;9KnIJ?l`uE`7S2dOiY*ctd9K86Jd83x zvoO>GNvC&CQa(~ zSD=zsA*W+kiE!mXLfB%a^+PQLeZ(<)+)=w9I#;?$SBd9FvM zZAhl%84ex*&%j!I(Z`4QW*mgh8D-5oA#k~nkc6^*58HUo$7TSfq;|P6@mG*PUn103 zf~3C|vcf)1SY@9GB%s?&m0oz$Fm;~<1Ti*-HfjwEQO@NH$cbd z@kEWsgBV(g5yEjgNP7%a%xTa)WPJ8$Vj;GV6__85EA+36#g1-|#czEI8<_o9TObR0 z%Dm_}fc`8FDZoHxQ4h8P>z%k))|-em2aM5h(!t~3-18B>tAe^b&ywu7uybJ&b}Kyj zXXMf!f1$M!}6Hj0r#qUJIAUQIOBNWX^wlydM?(suy}Lrb)eCwjZSZjV6H+e0?h9=9 z@Q)Q+J>;f^i;PpGYeuT>2eL?Rje0UMIL zHi~X+qsX-T(RR=&6ydj)bV<-0X-Nvr#3B}~sDasyuQAhte(Z_=R%tWx9}+SPF{Y-n z(VvbyA@I2X4TJ6j5#a+X3uh2~vwGYlWV znO}vNk#>HK<%8-jyFYo2|4a}|2u|!@S*$np*X_&K7VEY_bp8b&rlNddlqkZ<3AZ z?>aiaLWI|Sp}&s36a}}p?6}kV1p0c7&vV%A2cXm9PGa-$Gkebjah$~0q|mS=ZtvTa zq`aKjo>9R=bb4H{(}5kt+dqTE#ry-3xh>I~J|#B`%m=2*=deA=o% zopGq8;9;j;@H1z|5oal`3F$W9?#H(jZ52g#t%zzYM|D>(1+yo%*_Mn|lTI9G;mAF< z{R>PucTU6_UeFPDtPm9tD&QZCBU#6)2N1-$2m)gWB=|HEVu-{xZ;zQTe80B+V~j#@ zL_-0}r{HxRg57_{oA2rfcG&bjXfHcaD^Lvz;bIjX&vmEK6rkoihz}TzBJ_fXaol5R zw>|E!{jp#Xg!D_zPd;Q3`9m+_)C-ZZWA@Tc+@WZ`{S!Drd=F#v^Pb-2JEfu;h=}T8 zL%N->o$m_66A;|iyLON=wu`!h3c3Z~ld zEIWr#m(uaZN2uwP<6W?Y)_LIkLj7rQneO}{`^S`h31ts803YKV`jbWC;{+rY{56Xf zRiHnQ^D*wk`A3D18dp9;XJCmj%O&vHvg2;CngDj+O^W0GRc5E|`WWIm+)sPCP?l*r ziNLUop0VnwxYuwbify*{Zu2dlz_4-0?TOy`;$+$KmV(>E0r~TAYVfMtMJOL;%20j_ z5566DL)!i@-hx;`>W+nE6=5f*Q{Th0WR_{W}E zqVE-LalxMWS4HX-Ts-aqg8)BZ3XYqI`oh9Z#B4Lu+zk)26pv&deW&A8Q!u8Cn!GS_RuIe&z}1aciNs|DF3;M-Vwn? zrXz95*bgY~H?{kl(yl@rP=>32on`*$cIEyCp}?2XOWkfBRAaI67W>SmQAv5mV3{B* zW>GxOh{2%pAN4;XHjIZIofy_-*Y~DT%83;>B3rcIi}Hw3i^ZXD#weN2nt*1&+4#`6 zLh)f1>d(LCgU#~q@WJeBLIH$$ak=@?VOY-fI3>#5TptyRd06L1Yo}^8Z{3(nZD5QJf2g6mROjZ^8-W28@G5cPk)XRjzMg>wFRxm+cF@%MxS%=Qo-l*Q4u%iQDuxg{{T8@E7MYFB(plS%z+)e80Z&31GMz7zB6aMnbsrLoEWRGWTu8U zTHCQs8vzE==n=!AI*dI++hDFgjDe3i_sV@}v+m(?F)KD3Vli*_w}e8iB3k^$o?08Hrm?$>VI{j%FfyAF$aKhGyk<){is!n|0sP?kraROrVB*w3iZD@I{%50D-E-f-e0iCc4~HWLHC*NxiMQuUkJhzHdQ}b1=v3 zhn||2vn1U+nuguxyD?=X{qv8`Cxr#9$Iougfdj8u`Iv2PdJ`FFDICBTY+#9=)VEl7 zo=OjnE1N36V}F3H`N_g=THL%9@3iA|1XKacyNeLeQhyqDRP5-Xg3SH9*(c8N*1fM- z(dx{PVtKKk+qev=H$Pg~T@FRU*;e#cwifRz<-Svi-iePTBSd2a9Edk^ajrFZgdE^o zhgMsd`_KB{_hYRRy4JT`jC2opUv5^O6JQmi}Ey4RH3tCncUeTjWqZ{VWjjHf1`7_0`j1JW^=wo|P z@A`d^s7B>EUgY_Ntve^rlh8PSf@c!76b|bGW?eG2m@ z8gM{un`SO42t%kfBgbMteX?;qW;t@s7+8RQ@bcW`Ry0BP#n?v=h5n{g%5HcceG+s* z;t!b*g6qD%yucV^Qpmeeb+3p^h&JrLDdZ1o)RU2??%)v|o7A;HEOo;S>)3k2Us3Uc zJ+yW!d_+vv@tWO%eiFNg4neyn*wHxGqm_ z=Lqp7&6Tr^0`#r0L??sMTOa|;VW=s@9;s^utqr@7QfG-PV4#h2)O$IzmO5;EOVNOR zvfWT0C1dhEa;A;6arKcEB`FQZAQ-oACX1qq7^7{()}Tg(9P5b=>(g?4wmT+y<9F;-K$tv{CP!A$g{>en?)PgA? z*5|vCi%Srajf(Eo;JCxEhJ+u&!L?FC1&I^g9pIB^j1p^x?tzdpGXtyJtx{&@B$*lM zg|pl&x%V77mR{zMC&5`KMjX_Oj4()&g40Gvas3qIKp`JHgwW0^A6x4z?L>Z{t9Hhl zO4py*aQ{h!_kNU=hTgK+mYYz5KEb`l0RgUm+$tnNe2_aLwsPOo zYa{x|&`~+1ryvH`Uo_g0ThTGbXTKG=7IpCfw2Q~k;xu0{#ycXfsl6NT-sId?3=K zu@=$crwyAs%xjifZ3yQN2q!SyrYAgv7mSoobi{bBgwOkYgTuF9mVLAx6DLHJ-Ercu z#dASd!Y(+Yu|rpao8M5WQ`SKqj=;)bB%w;Vq|Q?7TvRw`Tqo2AFwD#w3rYW4%z`^o z9dR86VAX|sQIa$FrTRqOZi;)>nR~o`lof(JUq^aD?sN4Yh*N38VT$&{Tfp9cBBv8a zk)jNYnMfEuFjHtxn^2iDZovnNMAc?JFAb+io$T@T#fY(zC-Pa7*`aSt)VXCAhki{CsxNfa?AYr`P5u}(W}N=~c*9tL)>{ytR(?X> z4J2-(>9xgm*mmc~dq$HA6m>RGuYAF1yN)X4&^>z*YT?iK>(D(4voB)3K+MVCFy2}k z44%l3FZU+z$}M$Q_d&mXFoq5~pfClOj53mo;La^$op@t(Uf(0kSzeE)E(Q;&tRw9WkJ;v@(`mydF`Xc&q>f6|_0Yc3jvyX9kH2L}fi zC&I2AmbPYl;$htMTHazh+^Q$S?}B);AJ#(t^5S7XjQpu^BZ4GvaJm5E9t4vY8;<|r z;w0$~zLQj}9HD>*7vr;`HQP-bv~+!#c~B6zJ>M+`Q|mgu4!@RTRuQ* zaNy7i3)FAN(~Fj>ZB0IraO3a=TC91u8{PUdXKG`g{`t<@s@Ohq0M?stJ&bmM3z8ka z_a|Yk&VozV9T~?9<2pkQ?t=pk&V1WEF0N2{A;?7hmRs=W+C2Q(Sp3Y_H;=&YY772c zlZQVg#W3H~h;Tsf*e~f%IwZZXkLcGow=_!n!~K%}xI@yP_kr4Xb&B1>yABa?>@p;g zS@1QWCn@yXk^cAl3ZZ)08Aw>9-}93mQH|cT2LDWX-kYew8QyN*JA&U}W(k?`8_e=T zX8Z=T;*c4?)jAU!DKO^K(%U1Jy(mYB(zPzIaiwe*);D3bC%1g=y^8m0b(E5iIz>$# zJd&tYA|h17Bq9QIKq4Yk-y|Xe)FTlQpgxHNsfwWvMT3SJ>j#@t#y~5`5!Y=_v5g*p z>T!z0XQZ6yG<#CPJW`!8r@$_LwADO%1eU&?866nLJ39M^du}ve8WR{Vizgi3rPdVl zr6WXW<`n1XKKrhIVuJZnYn}O0M=@F8QUvGdJV)>-42xihbG&V%adU!mv;`(vFtLzH zia8}|wD&hKLYn$+Hm7&WnBzSY!u0{Cf>WX?g$U3)0GDP@oEe@+N9&IJ(I9# z8lQ+D=?(xGc)ti>b@(u}iQ;i^%puG_V#A4b#zBpvhtoSWtuHopARNy%2&L)6=Cnl5 zGQ7#ulDRcx{=FgQNH4obdJl<|lk+hlV-w!`x1txIL`4l4!u+OL(#bdM57JoGV=iyq zlLE0y(@UNWZNt5PbF?dFJ8)LMWG~LgK`~=^X>!IrYd`stBm21HqL)1e9g+ioS7RgZ zB75g2DR`fa_v!pT8Sm#x<3t?8{ut&wrXbF2v6;?@zh8^L{}g|}5`RyNzo*3C!Ke&G zq#qwc3{r16*(q``(R?swPJE*GIuxEG*zH-4@>yz^mfk-*{@BQm<8jW}8Gn4@)Sy|@ z<_+S{R!lQ+*AxPHR8%UTVcKFYq_6tP9>+zUj@^enFJdH1x^2Ghv({hS>n+aXfvO!& zK{&3PjE&f{(@G;jNEPYUZ?efgx+^C^(>ly|b?TjDzJk1^lVwXG)_DuF8h5PKJXH{k zV$OrvI?n9U3(|Mxh!G|N!6w{>)Oha_VcKA^B;0u(od*Rc4VK9Spm;C96aa6U@jiB4 zKx&Z=IT7YE6zE!$frC|OT$*mI*@+}}65ctp7(l z+!%M3MX)~1V!bfOh{t-8Z-+%Ab+Mn4V;;TF_T2=&X79R5@^lPd1V2aMMes6}q))~> z1wz4RlD=$OubqPEV4|w0)~QF ztAg1(G#I_GLfO<0u@UF_%b2ejYC&yJTI3D2zyO#nE+GrZyA%T;9HchUZyw@7nV$Mp zWX>9Q)ZrLAc`U$tu=xhxsCtFC@?)%^h2ueqPz_Z%+CL;<@~3Q$wJC3C9iQlh#YkV) zb^VWqj8UyV5z=>=@YSJ^$UQ>JlO85e^r0t|-{@8^0y+FVlJAOsyXZi%whnVhXx`(NU=?zR( z_#Je+1D=DwEm|6@!a zXWGW}4yHSq)-f$(dVu-5obdvtSxm<;H8DMXy^QZurhQD0G3{V_fa#BzZf9D~bS2XT zOlL8@jH!j`D5htwlktAS^j)SeF+IZc0Mq-J?q#~2X$8~OOcyep$@DU&7cd>gG?wYT z% X-O03y>9tH3GR57AqF$#ly?|*F)6a{f{Xdz0!1NWSPcr>A(|eh=GOcI2p6LRn zGnrn@bPQ9C>6`0iyoZ?nn&}-(o0!%yy`Je}rZbsNU>eW#^K~-ZSD2|=sq!~0DxBYOd-)a9eN20pKFxG7_e-;wrZXMS zG?D2)*T{5z&h#awPcr>A(|eijVY;1Z8PnxV7c!m2^fIPXn5Hn*n4VZI&-5;)w=nfEEoZu#=>n#g zGqo@s!!(}hms~y{FjeLJESLM6Oh09MkZBuJ<-YH@CWg0)=C#BKTpUG}`wli&IQ<3b zUtvXypO@yTY@byt!!`0G-FJMCm%*4I|AEOBq%SW?dsud}(Tmb*4Bacz@HVZ6Ge z%IgXx4ndIl!pf?U8DU#xeaH!CM+*lhv1!t6i5fwvNB|&((S3=MtRX9a5!=}UF7m8cdJY4 zp+6O7_tKJTS2SMjf*X2luJRIZl?M^JN6 zLZ6DnksJFGXQ8C|w6_R2KcDGxqV!C4PZR$oLb&cVwOeP+M4wUWawBJ(5sM4yQT8jA zEnK%W@Yn6Us9HI{HK)immL+@&RTE~f{DRGwe!t?^LY)SZO@B?Zfu7C2FUHm8&D3YUj@xytRTFRU$d6*QE(M4w(%i}F$( z1fu^=cT*8w9tDbLeO(Fqbob?+2EiW9Ra2H(Tb?ORVee{im1b^1C&LU7*d6K)w9I;M z&Bkr+@&*x_rcIB)nJD+^_+^%X;+I)jrcK9>(n@tOv(gRh)-p@H+I0L>g|^IDuT`N@ zP>>PzLsnIn$5PNxS5;f@s$Y*Dr*yN$S>mlJtsuvEEd0>>l&S71MCqxi^|VEO%7SzB9$k5*mwj1@H{b?%B(By z2Ni*3kfPTT-#Lk?7o{&-L4y_E@tqht3?MUlLf?;w58@E>sE#ntRa#MNsVy&0PMm`- z0Uzh=ZvD9hx;%5saV0iC&kmQA&uTIx51BM}?s1=VGh_3WCA!hSU^eQMdI7IwE{ zo7>~6=Jre-t_S?Il)2oc^_8NvSt{KYR3=NwmXgY)^$Brmax@W1FE^S$-;_-b=szCOfB@}{jo zPr9|F-nBl|;aJcEezSl47I!OL^;=46JVUxtZNt>Esa(wT9a&X_rUGWW>d7_t3uiH3 z=BaSi7gd#b%4_SZMdI*B)@!a&mU8gW1tyE`bKX?+5u($FyZY*l+Qt%(mcOiUMNvV% zW|^LEp)fuiE9Vm(1Tbv)C<=cbg-4Q58c&D#t1Z-`>|>&E$KHH7zV}Niy+PeB>RI{b z&~bg;<8u6sHCFL7G9J#jIm&(?V^RyFr;V{3o#QO_D2!9qM7olsbFDYZ|A&l+vHd`l zz4k}xU&WUag)NL#dea%J^yDxe$>H0h{AWKjbpElD?Mcu~PcdT^eg$JL9<7S8EL}~j zi^85L_YG0@+oNz}6mDj$%IB^q`+ba6dhUs`-yenVk8`Md1&lun~nnjlu&_`0r78 zkg?*|KclergyfgvM|>1EMd1|2s{UJ|a28`#KXVwX`eJ81Ru-RD9A#g}cnsS&GroXv z8{>(LyQA!lD0|bNWd4-@bjBC4|02c{7}qhjFy6-)`oH37XM8c^z9|3NlQKRmwu&c( zvEu(&#tCe1iE^LCSfy_zW7QuOGgkbsV?2t(Yh@0d-^f_?pV9qg zYn1yo#wz@7#;ShxF;@K1I%WFKQlJsWVYgLo8H6HtY-L-uu^dQ6EoY^ZlZsDlZx^5@0uxN=jC3xg9p z%9b)_sc~%;hV+gBr3-Q-l7G#|X#sQRYT9JH&x65a{MKD3U1FY4Ujl&+p-i}=`jml6 znwg0oz2ir1G;{uC8m1K*g3;!}Kb&gwL8pPHU#e+4L9fSeJAN0#!*;w}2Kx;BGVz;^ z-&FkO!_!;@a53Ju<99uN^b~I?_t5C|5($AfMqy&=C0eluljGWQUl0zu3meQ(Pl0s1s z#Z)&+>c8DThac&^5<^wux$qx~KNNbTHTWQ^mqjN3+d?7!Rn~jF;6#}a?345H~scij*d z#SlM2MppJ+OpSJTR;E&XVZMKZb7Afeai{nn#pg)Za9_3!^FA~Un&efY=lH&>-hv5` zMb!&s59xA4rI=ZA1BrBna6*;mUq%;l_irVR^8F1yen0bt(Y7p8 zrdSYs7?;*=DA`(4sRS0v-Q0Q9lcB#Pp_|3V^XgFdpjj4Bw~=2};&w;aT1q??`6-FC zx7OE}Y-7H%7ked=Q(s!KEyA;KVS&uJj(TXzvW+*OiCajT819y|;*y%$nr+p!Ud-+> zZ+F+Bwvxvp{;st$?O|G?)oGRJv8y%6ue7aruK_L9YPEXJg|~8;Y{Xl=u&>gtfSLS> z>}%iU-wi2Q4Z^E{Kk0i0-m;`;{M{_VuEF0bEn8DxH7zP!>72&M3#;5#h`LHc0pNwr z7uLI^_=hpciD@||tmeXG{G%xB2R22x|3MVKJqkl5Z-{$n+zqv*v(?e=uZqOBn+^K0u1(2ue}>D$BWLwK?Wk?Gi%BFD=JLOgv@_=#oGKC4L5w|N~{(YCqLJZYY! zc~?tX$5e%D87Dr(VyeuE z$Fu{PN|An4&P1t>rs79DPsWetZ&dcf@uNCHb%rRJ5heK$*->3rb`&o8B}(m^!cD=C z%xFF|hJR!}89y?=5b^OTw z8ZeN?^r>J9@n>I`EXOvc?M%Cw-hduEQ(LT2KI!?s=<)Nlr4pi_uZ8^*k^iv$N{#X# z`RspI#&bW@Hl`0TJ;3x4rtM6hVEQ!E9;Ura4W@r*sy!#;Nn)D9bS%?UrWY`^Fim5c z&U6~nET%J=<}l4;YG=BV>3XIr{4&N>Og&5+nYJ?B$Fz;YA}sqCJ!>! zo|pMIF->8b%GAO%ooN=+Jf=lViWDdx6u- zG=*s@({!eJOpBPR@QWGOF>Pep%CwDXJJTMfA2R)v=^)dTV=_HCOpBPV@YY}rrAAwc zamO0WwO3YnwT1PS&?E3@uq!LsMr$mRQjx%&n+)N$M!v~{g1>rU0SN!XAK4%rZ#|>M zB{kYY*G8=n3K`bAdeCj!V#L4LTcugOo3J)kr!9j3U}^0Z=mC_9fZ+#o-EHKrUcA5* z{!1%B5k@8TKM2D`ju8%03v=%#tR~YNt>4yRU1_6QMyBv<2_cS1V~Q_?t%VqW;zv(m z;qDxrOgv;Q7(2Bc!R%l+a)>?>uqy|PSfhmz|@V89h z3YdUb=qW2fSD-(lBujr~Kr&qEKa6EKZiFFS$na=98a6{Ph>yajQLu7JrYgR$nT(fQ zhRw*`VuVlWUWkx4f))Z(pKe7DPn0mFa53kTD3yg3bQ9NYHmd;=_z7L?}hj`9X!R#J8~0F51G)vY4}=_8~SGnnUG8A z+OFBPIY?tQ{<`r`JuZ|=rnU_K-+`A{;!Ar`!^3C`0ek0|HvN>KHC1+<9~eO zPftG8(Rt|b)6X2~>OT7HbI-qU?8TnrFTMQAtFOJ@`^KAZz5UL+@AbX^!Jj|;%SRs@ z{htIr{p|BE2LAfx-~RrO6DJ2xo&M^dII&lYiH(a-7&hEAB5`C=@+fo4=rQMv9XI~m z)bl2sf5F5HCs`&>xhQSw#h0XCdRfM_%*&@|T`?nj=9RO)mos}#E@U!S<&|uNfWCZF zMdb~ftEy{i>u!WTo_EXEhHc+pxBj~8Hxz%n{Y~3%Bc}?0EGd;jG z<#je^s^o6_8TT=@^s+mq2biY3!RAa4FjaE9ZpM8~2bku(DgCKDe3yKVMk)05_F&Xh z4XUJcO2+qH{=ZE=ID-@L@A$8Zh?k^;GvW7t#UI7_KjV+$qI^<(>iI7JRTy`bB9-&Otm10Dy_$I?tp?!CHzCAn|JGl`yafeDMGKQ>B1mBfj8eLL~X*^3~whCYu(p?6m zLL?siyX8e;&li!$4YzYS+er>ao@PI!?yrZf{b zhqi)nnNUsJ0vEK(5Gmh}l>2XlJ#mB{O1YAW5+GZrfa zA#++@77C;*Yn}NH8=PvSQvfwlsplM4a9-)Eudb{SJ68%_o{CzU&W0X}pPsCK*{_p~ zj-DLGaT02Ij3KrYkDW24hn}^JLwYQXN#;pU1!IzZ(o@HnWQ+7PFecd}J&lY>R!C1X zW0Dop)5@4+jP&edJW4`sKV!9S(#AN2?GG>}*(5#fjEU#;bTFo}p{JYiSP8Wr#!8Q) zmodpm>FHxkGGclR#^*_>4KP-EHiL|n9*g#gEDw^+(qm$b^%3!;Fuss+Dr2R`WMOP! z`*g;W8D}w`!npVq8Q(>WbJ#wOaUSETjO~m`2ZNp>#+OK_tz}FyVtR@hlgyW%3dR`{ zYITgKF>YX-$+(g6bjHn$XEAPN{5{6|80RqF&v-WDHpX(5RnrbIzKZSJ8Rs$XU~FaF z%{ZTN4`a~~Vb;rdA=~#cUc}g7>|i{=croKa#!DD$0a-pu-fd#MjO|kx7cov{yqd9v zv66?UGrpGXvlzP==P!L#s*_E<3YxB$0a?cPbI%cGgj*pV;HOTiE|jI zviq@&(;1IroWpoLV>{zi#%md$$GC#=1jY@F&u84s_yWfJ7*Ax}#`r?U?TjZe?q+OZ z+{<_}V}tP&#)FJ6Vr=?M@+XaPD&wh)(-~jPIEV2ijO~msWxSR#ojy)a1>+3H4UDHT zZf2axct7Lmj1MrL!MKC*OvXKouVmcEcoyRU#@}PCeJ=A$ccapi!gw}g3*$MAvl!xWVvn9;#(9kE7+V=PGR|k*%Gk!Zjd20vcE$@CcQanZxR-a~W4K-psgxaSRX8niF+=aUx?o<0Qsw8Bbtb!8n(3BjXqzFt#!t z!FWI8M8*dgCo%3|Jb`f!<6OoD;}{-L4l*9W*z`A<-$cf#j3+QoXPnD8k8z9zl?+c2 z;}I4CwPMDJjO&zt#*NBfQd3*(q9={`%jXPl?pGcHo@XG-_Q%01&c<(_e)a-SpJw<>$a`<4A%X@5Z3 zGwx9KdD6Z|*)#4_*e2}<6t+vO{e#QfDRGLzMG{*W$8VQ7i}3`;d5q;MqlS4uts-JS zHD=WGDE$mOuY8qa22Kyj10|IsO`2WPL+fOcN_Qmpqo*7*Z+a?t{w`NxHP}jbB;TNi z^h4+&JrH_oINTb>b&PQkm#`(*{$Osk;ScL*1fN_Qk%p{Ei# zqK9-C>2ZhhBjc$OtEi-RBXK#Wa|`FM0&*F8O29FCT%4Y2PDcqiK+k6OM^Y_%D%d~i zd(pF*-EZdb+>jR0>%{OuWh|inhp5#iz z36cRxPEjb7ACg_I5PC|4seWW?3p6$Vp?Z?36@=DBseWW?`I?%KP(8`S>a&{vkQ|0^ z0R@IfN@W&>^nIwlWMWlX&8Mi|5MC~wi~5rZTdwZFUfA2QGAkddPh`I$gh}eKk`4`o%Osps?d#Y!YUll*qw@e`Ap6VT86+hKKN{@0+^^o|d@=x_K z6WmncyTNU;SNx#*nTgb@=1o#m!YVwfuarI&9@SgQA9oK(4aK)AqP&RT3xwVnae(SI z#i#g7GGi(~6+hMUOr%cDH>ti8R{W!SPw}brQ2oz@Yc-#xc0l=KH4eD`zQEVwuM@}< z>K}-2;d(>uBon?=zQ|oBYLS)8twHc5jK44V9>&zZBHdFv%S0_z`I1uPg`skzc1QV8 z>8=*}EDYt7GzmyDERhs(8El+)4>pJjjK(5~kAWq*<%YA;ex zBb+{3&!E`WvU}N|EC`hgeRrt8QteIl4`KTnk^jj4f!r5G)Dz<03YZM7-?CkY`?1J& zkT3e$Dv=^t&%*6r*0Tj6en-}uNPmiN1xPzRk}n0J`X|5J_E3A0e6ohpE%{^(^;?op z;r1x`gbOW2=+tk7^BI{Anf`D-Rl16p!!ljYP`i=oS`kX8OqVkv9aP`K@yc{93Z+}6 zOO==GZ*i|mD4o?9LxfwdjNcZjKQjKpP(PsJ5BG-@f4IKM`13>kos2)6URryj+H1w% z$o|cZRR>CkDp{G1!caOT{~e)vDB~##*~@qexpWo(&mIr;0IG({cvgn$kBleWo@6|> zQ2u4P%5aC4YqjVJhNgcRT9SNZxQin&@nLl+Ka_tmQ8h!R>za_g^pA^!L*bF@{D^eP zo@c0k)r-h+Ch=YMzlwjVzm@SV4uvPBRZHes> z^?>Y`Mtt`P7lra49_Pz1J=KfIN6C#1o$&zU7a42uGX7T?r!anrv4!!2jI$U&#yF4h(~OH4zss|o8+aYyQpWq){y!PFGv3TNhuu$R+{5;z%AVJmVi@@mj_`j4K$c@p1#>4z_P*{4(Q4 z&ff^e``G?C<2J_cFm7l3I^%A}&ob_1{0GJc<4(qdj9+1F8ZP;9KjT!!|IIj^@q3JO z7~jd*&bW{9TE>55T*3Gl;|9j>Gj3-57UO-4-(}p!_zlMGjE^w3b9=mqaW~t$7^`(n zwJzGr_El_O%>FNCY_NR=<7O_OM8<<`?_|86{a?=5WRm=JGj3)7BN?Z%{auXH8UK=T z4&&c2wlh}W_qB`+GqF+u8nM#@&q7_+UTBm(2FPY`=_g9mki>*kJn`7-zBlB*uemU&6SJ z!ym=iG(wgSi{Z2bY;R`!RJQ*Q#_5c&X57y1QyAy4y_$FL*y`AmVSG%3eVRKbmnmyT6KY1G{fw+{}1|^3UK8SiCmF#Z|iLB?&$p2Hu{*fdh| zdoAMuwm+9~D%(q`0@iW4yymifI@|ANoWuA5#&*VA7_Vh~4`YqX_dLcGY`>0i9@|f0 z+`#r_jGGxh$#@^*!;IS)A7I?hxSeq~pHrReWV4dw*Lv^3dYwl?q>Jdj2qbg`;3*IN*?28w%@~efc@t% z-pBThj0f3%Hsdz7-^DnU?Jr>5&i2FobP#-?P+|6;~HY(JB6D%;=7IE(R3j4RmvC5-KCU&(ka<67mOaUA0Y#vd?l zX57knALE}hZe#pA#_f!M&A6NKLdLy}>ljP;WzJXU&6yD6MCkj_V+8-Hy6(n(ym}DN2xE4~3NPJ_IJxNO=?Md1hiIucl z#lI~gza;gPQo+&)d7w0rf2&}xLZEf2Or&0gFV|tzY8|c1koq)-Qlv3U+RNc^ z*Kf)o?N*r5LE%N>@IFB)Pouw)_M`#EOAX#_;sOr zDecuNoQjXMh9kod*K_Iq`=NR$gqTt_al|iL0Ue9T{FtsQje8T76XE*G2G?@+0@EhU2db)m!PGq~np{d!y{P zM1)83c2@+Z^$!X~K5{*(GQ>~0eyCQRY2BID>(pwiT!$uptNJPBtl|2juZ7!;#(KGYv>pS}&&jtJQPD z)Lu(M^;fP3s?}_{zE1Hee#!NYaC?n$LZ$;Y6_7=7$Tpg-^avhNV%15pbEA0cRj}TdZXhmy@qGa!(RLB zz4lS>H)~Hd(0e?nzo#_RmulCZc3?Q)sdt358AG#cBVMy>BT~Iztvw~7J}05>f>6t+ z-tTM7k9t3+ar~(E#`36k`qaYHeNgRb3+?_g?cCA)>73eFBXnPY>{<-keG)AN&2H;Y zHLB%EyRXn_r~B!&Yeh>>8$a}RDte|t^-=G0{PTRMy62+a@29W2+nztw`+8dHR9@<@ zT5ics_kC&Cik2VB18JydZuNd`V|}YTwruTm|6hAbg`Vf2(l_=W^?3mLR1fw3vG()} zJtso#LA&|YLw#Pr)NuY*dyo2QTR*n$w&hjt@6SOl)I+@w-I~CpS4WU$ z*TSpz^oIPXcG{t%9;!XJVSZ5UmWK1Edf&e>{Rh2wsdTs<)2=O>iMScF);Acr!Mdoa zz3v`==LYY3ZQ(3jqy`_=puR4i|~ryuP#=+zyv zjel&bsP7u|yUQs*D;Mo;{Yf>La#@Cr_XFA zmO6&KKrH+0hb`PL?JXthPA`9vSYbC|E9cCvFAh+f8=QxEY+)=^t>$>N~tm?$tZ; zIrZOt&sn-F;2mmEyQFV@kkQ_bHaJ8PZ6 znIwJ6so&nQoV(l4;naJ7%Nh1t&-cl_IIEDe^vz?OsGq&$UOJ;rNy{QgN!R`VNY>BmDqB=@q3#hj(Do#U*i z2>FQXZ(Pl(_p9bC{luq&$3HHTGwFj&&O-N%oGkPsPS0`YIjs?1ACrEm_Yls)sua%R zS*tibe}9`(Km4R>FLL;V^s8U*$657G0;hG$0?xwhZJcGgO3vbUFLR}y@<($>lpE>oPH9Nq|v9KR!RmXVMURt0MKR!?XEb$BUZ;Q@HAg2+pv|G|tk{Rh;@~c5!+h|Bf@(zK&DZw&NiRSL_wWS#dR$v-*?eoUGtA zPV_&{($ZQ^Q_Hq|J}=7}%vrd58Yerwh%@%aR!-Bc&p69|KhJ6X!0k&)uW+G1XHxI+ zoTVS;a+>6goYo!XoVvRwIQ8-!l^I>WqVQph!Z}Tashrl#CpgQZUQz8%UvO5udx29w z-o28-#s280GG-iS*efPZ{iP>Wd(XEy3uBIQdL~}wWbtjkrtnEa2B~bG$jQFV=QJ%S z;Vf;tm$T~m6P#ABTb%mb4&P9Cj3dt2J5xE6dMx0q9=2I!*nZB!fRmh6Ubj{EpF4a@ z;j2o9a+XF+nB@P31J%&*F?dkT=E`(?-tH{x5T4e&DRw_z7p3 ze3;Yv^DmsHxqoveIp5(debVg++aB_9{zzDE#3;9bY$UqkEg#0&B#g_8g==*&`EOe%NM3x z33dDE^sw~E1EF3oA58js#f{J{{#|rADR)A@{@_IUs&RjWw$VpiJXXZyHwyZ0Z{^@D zANcO?igwR5lkH-TzA<;y8==khgRIJ&=JKc497p_^ayqp2{;^#uB}e(AU$2d?zI-9{ z&&%yQyUlZvKewwet$3*-bo}SI^W*O+H_!h1Z#K1!ylaoWsrRy9LbF~9e*67Np7OX0 zj-w8ZZY965|HT(hM7EXtT)6(uD`}nNi?^?bRPVkPT4XgHO!(t+=-Xcoad9y_$ge!o z^Y?Y8PV(>XKRWk?U%JRij;^nK)YDm3^U+qGI(?SswLy;Z=#&MQTFq)H4@oKfX1DAj z|Gc5iABXj=m0z0g|@oYoSxUI?G_D$<8>w6yXIuz+G2Y)riZJ$9WZrQV#~*M0oWJZoFvX|%q2BW1>G>f=IRWyn?XQiQHFc=man9P4vwW?g zf3+Vn;KxzJlcY8tc%JgXJEHJO6HeYN)(- zklo}{2L{WZfB9$iAD7$9uY2@d693IWdGGsu;w|F_%L&Vhp6(gsBwI(Hbz@W9MLYJC z>sJ5uPIuN_EcG=Hy2b+h=yAqdGS8nSszu;PNWb4wQ^5LnU)Rw)h zlS{5m^-cOAR32n~?uiy}Im@TND&F%@kt|=^*!i+ot6=%r7F(w+@8U1N{Qlq=^V9w0 zGl}xNr<;YyLH1iN^tjYtcA2<#^40jk^2h@d>vBF0main&w($L`o4hqX^n2auf%3%K z70HX@hR7{8AFaPVF+@J`W3MIt?s~cUm#7U@tuBRbpM0Tts%LlE>&Ji=`TjlRZ|gkU zAD90Med6oU3r86rlDoc97?VG>nQX{@>!@G}}nA4x9 zjK2`7_P+sg(VQ3ijvY2gUL5*I^~>k`$h*3>wH_?%Bd1M0Wm(l(FKgP>3~|kTHDe+2=~+oVK6$dQ{7c_=d;Bu5kNidUl0)O>c+1xG7Qcp$>mr|h zx*+e%r0bz0#ut9KFzt3|&M&ikt_2Q~XFo1q_I$6u+{)9iH@j%C+u9o3|SJ=Q`WC<*SyGU zn0z-bYt6~f0dl)Pd{=z`H~Q(R*-O_??k%tC=|5xaPag7tfsTDHy?iM&Xjs1@Ys7GQ z`iN_aM|Q**ve)lD5BkLTzKQ##Ho{pFfs2Z**>$+_G); z0f(p#@`jP$d}918O#XV{@$lB42g(l*ojqawHgjm?$#8p@n>zW*@v|72gyg?57X~& z*G;aySTO(M+A#T#Nhb&Ad_Gp5bjAIZryRz}?%QAf=7+~e$$KY#=3)9lFS~wlzGdbY zQF5Dy&OYVSFI0|LGNV=3&wb^`EGNdw&-Rr2z7n3XrS5j<0Ow0~uf%kff680DVDuXg z%dWqt-qmM3EcgHW_=k?C!{zlIFD>bt?k6wU_EXU%ry=q+^T&QcH^SrxeZQlt?t;I1 z#p-lhT2xW5w7eSKL6vcQc)wl?NoVJ`BU0Eukg*g%FOqyuMK$eu5vE+nU~vJ?kbjFr7wm| zx~t^2KUwhPkh@A}et^{y{_iR)m(`v9;nzFLmz_#aN?+blep>wgoTNAJC@U9reyDc+ z9VMt=dBVGM?{m=Yc3b)VD`{iahqsj{Pfu_5_O{zf#L8P!daSywbo~5L{NGlV#dsXvka%0M)_p3i zQ{Z0eKX^}%+e&rCVtc3Nx0O|Emi_(s)mzGS#|BSoso&V{k(!umud(&q(l{!vblWx7-Nq?=0nZQ=O8sg!p7YtpIv8|A>3yau=9cb;@_n(?a-7Ev<)-)MbsyiT zQiwAr;I9l&HC%II_3TK z75jTy>J;x~$@s5RT07={!p7Apr#{?0@0nqBO6j&G(x^W0=SQ95=$%w3Io2s*i=;cv zu3T3-jhiyQ`-JA3DI*Of!t@)wU; zd0p{1_^g+6!FA=WSA))-oOxZz%9B3%a^iJmc)Ld|hoi46Ywm`BW(~To?EiWAqF&vu zD=rH*XXUrLu9z0PO{=!MuCz<4ZJShkP5FFK0&(9o>zoOhao?@&UenlDk z_iOr|L#`;xyL{h0&F_jbe)9AldvsTn*8D(tWAnpHoS@&TOp$I~R-AUd9I@{2%ZlBr z=l1tIb6GiudAhPSGIy#u43FDoB;_8oQhq07p<;ufBwbe0`@i_X(rdNK=)-qkeE82=<(b0K72T_AmC{&0$@P1%-{P^izNl5a z22ELeLmQvDyA+U zKjv`#k}{@z(XcBumlR96GW6n^OUehM{AXT0c1h{9c_g}-q zM(w+#oZVYHbHQ7el#TP-C%^y7CFKRLY9Hx^OUmZ0s|({dTvC4OTl{$0%1cU1@5Nr; zi!Uilf9T+|a_%LiAU9%#WA-IQ3b-A+#&AjT=$SX8^VCbq7vJA`>HYDSl%Zd{HlH!_ zlG1HN(3S})Ua$CT#j1XnltBF>zb8I)N$D~26(4s?RlU8}OS``b7Fx@uL5H~%*KYK>L#N?J0(@tjrJIDFj>-A`6!$O{7}Mjf##Lr?4< z_vjZ^<V~h5bT#?=ADK%E9X+TzlkNm0K+fHt(5bRc^m}>B!g=tFkQ5 zT>AH9tKty!0S0bskbVB^qza$(95bg zJJ>A_(^-{4^Tr2v^M*b@tV$tXwCdn&rSCCtXvBNg`l-*4bu3c%|A*c8evTUIKl2%u zqNa0i93ii$>5de<*Ps1g%FjR25e_w?KJN7o6Zwl3OcYEKOc$hZ%bs4!Z(GxS9(vBR z#?Ow`_>is9&mHF0kdgj&Y-IbUejenG8${FKH%<7#i64Kjkl4|c66*z-0XYHr2vP>o zL%xPQ4Os^9guDbXK}JHX2>b48iS2^C2zd(f1msc3Baj%#K*(=vB=!sBFyvFn9>|N3 zHIM>`5fZUZVnZQ*kS-7}h&|-$T8aG*IS%=+IBa9tk%@b;eeD>2d+32tlYWJbf0d1y z0#O{=LHE?i90s9yZ4cXY3lT=w&yL|YjBHh!n8_yuI@%En^Sx=4AH}7`ZJR#DZ+mDu z0@tbjZRc?q%?@-gHmi2VkMwS!E7Btz06^kX?Y z%5mfA5N_IF{3KOEaO<4%F|8{Kau;@}#V(gvHOLT8B8u<%jKp-X#>Gd)yY}7r=99+@ zM!vVE?MM2mv3E!z9LE&xwG@;WlZy*X~g?8Gp1RxOw&^GGBOP_a`F3srfKSD z9DdIdKgBj9KR8Hr@i!S#5D5+xnG2awP3nO>>kB02PrsMmEsHSM>O zlqR=R3!qLg{xhWpH~#1h&KHa|y3NVSv}75eOLP7?^g$7R-n@B+6jVQ}8epf^zuA)7 zEhe1j=U5ZBDLg;bwr&Zk-uWhOs-6{YWo?j7zMAjS5q9{!1I^wIodW%Tq#avLZfd^> zAh$BOc{jQRlG`D;+4P?va$~VLcVP^Pu)*9d33D(`VE$^7d`^pn2e)@K^SOrVOW4&1 zda~?TVsbe1PZ7VdQWeQIQ@%|i5-Yj{)nl58|DGyO2X7qR(PT^NUsp>@1u8PU4kBCUEuF&ZC>qO=@4@;*(Yi4 zdPleqa6;Xj)$4-J=yg)HUdx|#8Gbp#(~)@^T$pE&Gaia?SJOVQ7-<(G?L|m?UX!#d zP$tR8mHC`=VLldT=3{VTKFGIEKpU&%Br&J0NUuvX<`J}pd7up(O^x->>&$GYSIg?m zT;ovIU^mu1Xt+;zX_(Lb>beT&E}xE$h_5;GFuPPcnH-a-ooIga!TQWeY9Wz52@|AR zen-i+{5o>)>cmL_UGg%NMCDDo_-%E=51JP=N(jN z=PfO;)6%JGg*;O_=LVr~1*3fjqJ4wVz5%RttmykxE?yr)q|QNurOr~2)WYgft;JuA zbD4yfAGS6$XRQ-FSnD8n)_T3C$)^p*!VxQ7_9H>V>=e zxv>t0{;WfSKkE?W$2y>Hcwe`vAE}Ew>tgX_T?{QSE}OG1=EhO0<_Gyma6^7vS!=VW zNpg2&xIe|*1Ju@*S~#*67JKGuuw%`FB=l7`*43~}>KgQ>)K%IpwX}LxH?L?Mw>m85 z)o~k-aT|wmJ09b9)IY{;81)}s)}n^8(z#tNs~%O2f}uGRy} zpWuReKpVxOU3i`MMLzE7yS<&6w=|HsSe>eynH-X+Pf)o%9n}+W?>VSnOGEt@(>bUU>OZJ8YjH$vp@wma`Jk&o z@7Oh=zhl=Rf5)y;A4l7<7lyO9Iv?a=ezahI%*Fg@YM38szERuQ4e`6O7H0I{j_$0Z z!IO1NXu&$7Pj_q_t0o^l2f9fugIuMSlB1-}O*)#Rx!)MfkE1a^j%=JCseQd&F{eS$ zx4qG~y#v%-s(C}c49FMe!h7?ko*#Pi^E%D5YF=HCS7+8D4*ikOhmT@DG+{o>!F-sF z`7pC#K8)4Mhk33A#sjSY)OXV=_Yq$woJadJPmGf${g2YNJfE z3vD&4p{>HGt@wH(0ew9lef{AkeLacVoz@cv)?pp97IV`Y%uTB?Hx;RKQ>^Ik4Rg>6 z#NTwjm7H-cfxacVNX#V#Dq?)9OMlfyI3p5@-g6x^|TlRKYokr$tuP=BOH;Zi84rd;kO6+lSiCm ztmH)J_*P76(~PwV+RNHV<&4&0QX6O1#sCR&Vr^Qgt1ikP9Xy{N67yKnnAVyTxYmUP zBQ2ujWY3%;?D?1?eYM}B@8Uet5ovb}XqX*L>fDMsHNgpUt0QY2fOAY+SJpPc9rKMF zYa7sT21)YiXpb@5k=Y@SG|o^gF*oCU3H{d4r*o8xH`ek;TI;pC7=0S=ZG==Jf5e8i zKo0Hf9GHDu=4h8BnS44sv(9ntt=`pbt6EpIGf%-z7 z-CJL@KD1zci1zV8or(2fwF`H5hr1ixpcB`|+N#>CN=x&J^Nj8N192n%E8qzTQM0>H zn_H;e(dKA}HUVDMTK)C8fa_HV>Ap+kY2mzyxyT1|kq_n~pWQfr_C&f;cXq#d+#7+V z_O4i0wPx*ix3yvoR^?gI+~kqu9xHXlTp9Eb>x!5AHmQBBFW!@{Cg*jWr+J-Gy=j7% zO1Hwi(kia;j3;$+XPqo=xSnujoiNvR!aUU}fM3N_c%eVj+F{yn_^#%F#Gg-p{U^kS zm)~pWSGCNjTZH#PcprpE9asCb!1^rCPETP?2%F@phWEjX z4zfkl7w0~yr5$T&c8m3DB{4Tq?(-sl9X-|j-7o#O+$FXTqNRU7oxk9J-A2bpq*+}= zza+?*Z%c{whLD+4z1A~zrE@gq8y)i09}}p5Xa(XfM>Amoy0#tU? zr%7u=Nz-w$V=n9MVkM&4F7|$T_G=@tP{_Y3*BkKv^xx=Qg@5<9|2m#5=*+i?M?EJU zK!5xc=cEstoRg|?jimN#whU+6* zEBbV&dD{!~wkK2 zvFDUqRZJk+!uVZ4hDn+T~9@py@P*ZkW@N^Af`^Ori}JZEW#wOU)$ zaU0ZeYpicuvNqL7x49i_9^k5%ydAOT!u2HPTCBN}eEd8HcCoa^^;#?5maPJt?{>91 zS36cYRA}eBMAV^IKiH(3X+bHUfuM_F~@gF?jYV(3k-1nC8!#Iik2+?V2 zsC5u~zx*_dmsk)a_+DM=rv@*S&y%$?x3YRwx2W={aO34b_hDTpNbCp57!hvJM2U@q zX!iS!-8o2S9Yheqb|?)gB9gdVLEupYN!9jacdh-(==%Ak%dtj`lLzJkyOwqvU+`oFY-Ia?j8 z9jfdqXk2(=J=qo4jJ+*S;2L}xYn`y1IR_Q7(qzo_DH0nNtGwnLb=6V`ySgdbxzPMjI z#5{_75|Ecg9Z9WmKKkU|l>owaaK?3QbJiiQowZGMt17RG77g_rGavWqARlRQP#=rK zcQUw^=pN*YwMBc@+=?r}D(4DEQ?n!o%n7kLublU=V<O2;P8;w2#@I7S0M!POS8|=DBYwa3mD^({6I%?l`;oqfcec{YPtfv>D zpNc%%IoQ)RvZF%;>Ydj8pcfj|GYH@N;X6Mq+~LI%`x$akD;w42*8A7xV@q+afi%=5 z)k8}=y?TA1evhfe`^IwIyMfR>8zLRm*Em=OzWcuSAeUq0j_9oqdcZA11ynt)L_N7aeT{`v?vZ93wbIFkNt=;K>=A-` z!Ipx~f;XqD>D35U3w|S5Ay_83QE-7^nqY!pgkZ2>A3>d9bHTfhsOer1{8{jb;6cGM z!L5R;1s4dW3r-XqE*K=(N3f${b3r@77esxn6777FBl*gE0`i!B*>NV;doCxyTy3f zF1SgsO7MW-C^0Vu3-%IhE9feCdy<;3zXgv7ekiz8@CCt@f(rxJ?o z3NpcK6V>#86Feb!K=4h$&4MchErKb634+4~g9W<@wiIN7)(L95)q+)m<$~J;HwZ2f zvm>b0QSZ#(t<- ze5TQ8V&SA0nP)Z|vn{daoKz!j@gJ3jn~laX87byua{=2*8e?+|d6^>aaK=uN8>xpI z3}y<#uG){uNj8Wu(fQE1$z9@%xjA{}RFtu~18Q(~qy6({@fq`sIcbe9S8U@z4Btw_ zc_ofT3du9kIBc+b&7va|1 zv}t@nuEm(etCGb~m?#8L6NRR14;S)maCyjKY+j}%Bci~94lyaiV2n&pHnX`Dk{Xf< z#3oWrM`s(xrKxS3uC-WfPDZxHh_;x@HK<)st*Dt&3a{2M1$j6*i^^K2_1=b@KTP37 zTQ&4xXbz_E_i-Q3OO%m2o0>D;l$?ra?}*+m+8UupQ7P#esVHMwGDl1g-Ht7H1nVC7Mj5VXSOwNom3cH^T|c zoa`+0w28^)jN}v=Z@qXO8?#KLjNEk7>^3#g-EmTKh6RlfpOHN?(>N|=76vbiwkdT& zI)=4@u~(>uR7 zj>d}CtR4mXKN*BHw>=B_6g?X?A%O5 zC)^nO2>Ho1C0kO{8`Rh{lnXVA*c{Z|1d2uEin0EThQyehxkfYU;JHR!k)J!Ht%i=H zRt&X^$yJNjn8HW)>bT@pfVtS5OVepM?n^i3my+&@*s~3d;r80WwXs0#RfaAta!PX* zWBa+r_`D2Fi*;p@$(fn9O63TJNhYU2b!27s=*)A4g}q=$t*Y6kBKN9!Vn%KTIyByC zq@7`?9YrIuNj7z)RzxJ~$(TAD^%jw5vE*c9yirYPR_FBXFa8Rk6SaF{>_K8n4V%#Q^|Z(MPyhoaKl+Dx2f3< zXEV7iCN(EJ9BOx&>kj4gK7LyysEpicMoRg7ij7&D= zvhT?rZ^0Q<)0mI?$wcjG_9awb5wq0_XFJJ8T}{|OrtqpN#=(fF7?Je}c5%j;k+g6a zZ7g8ZxQ#E7U=3%FG_liZJ%wDW^#$n&dcKdOUXtj5^j6K#zwKN zC;Rw3qq%?w=Ie&7Qy0oyfITI!1%r;`QbYbC!S$Vk@ZpCaq2lMPqV=gO^#^mJ8 z&NDSQiCl$8O$?9K3e8fa_>rg&I_FTIjfonQk&EdRPl$5&c#|;|^YHMTOoI_~St?)0 zF}8-qkHqYjJ=6GbjwK@vFLQfcicdFYW=7{5Q?UXJXGPG6Fz3w8r6q$J9I=j3V^!_q zJQqJQdW?2L7>_eOax)ea5l*gsVTY$? zMXzCAiC|VeA&pm#7%5at+b>sYVm2 zV|4S?PC1=#ALxCoS%T4wN3zw08ee|0a{HKEF|bjKSg#{rv1Vf~W+b-Qfp?c!qdAS% zhNvArM6s-jpdKz(L531weB}ds<~QF8;!E=`_ukfzR4ER&zY{ijlOiC_|2- zj463DXBy2~P9z?OB^ecAqA6h#dzsR*T`A*=pdHngT20aUI1iu_jpj%!Ofs;3ipTIp zO<_-u{TO5N9OFOS`-@rOUXP77xxB|OJlhbD6^J@`$`sesj%s4IZ7362v3VsaU6K%hyc~amg9E#)fugtQD0pHZ>uKYLV&-tzoa$jzPQj zd9kr>NQ;(*h{Y0~RcqG1=KS(K$iylkn3*;IZOHIn^xj82b z9Szqu*%;xBG%>krE|b_8N9{r&A*bQ$0P`gDY*xJLYLBiFzvEX|_w#y+MoPS;q0Z(} z9K2^1n2gL>tx>ELXC}aom_Ct)H?-~nGDBT$-GgLnXx&fA#w+ld2lpHF&i0OCSY!BD z_<8x9{g_CsXw}Rk#dDM+F}SEz7<+=Z2*2=Qk8`tjQE&*U;zUpRkH||)!zvDU(J4Hp zm|RRxRGG*{4zDX);`6;uGQ}jVXqKmZ>jp8g7@n> zg92l}j_L->l(*NA=)V^3xoMs!pTJz5dw7!5U&{ zRQtbRQg@=>?^8`o_rT--LT3I4qD)RnH5k)orf1BWotc%LV|o-Pn!Gu4^9$ywnF)`G zjEWvUVr0yy(PPFwJT7*8TztZWiIWm1Px&9n?0;jD_v;a=o0^FSb_?BqVf2-rTUf}s1NtAobmAqQ>iv(;#n{71 zN0{KA|Db-j(0>>D-)=p(wLSZF>-nv;JG<%85dXp#d5H1N7#n|L`UxGIabnhqfTqf@ zE&lG<&((M~cECb4WYV|ld4c9?IyByE=AQrJV^fA5KaV{~<$v1$-h7olAivdz)%r;K zPG$AyD(?;d@9g??wLYvVDkDXJkXfodD~l5|(Q*goUyD>D{YCaokVOf=j^}8MszOJpX$%t$}Ht_rl%7$R#S`G6sa4W2m1xG-2X z7lQK#F;)ln1>npO)tnA?8jO3LRG(lLgu~4G!@#x=qg@9e&)`K!KJ=~NbK_K<&7gws8#Yn=V5jle=MA$COo32- z4B)2_ivIvOIZkc&Y2coCJg9+rarDv%A(DF-{IB5yDg@r5tbL1zJY1w#2GKAwhm6+mYx zxFH>F2XhtZH5>awU~Uagflyhdfs=9Xk>Z>NR^#r^Cd5fBF=Ox6Ae03hor`Nqn8$!q z@U2T3%+tVt0*nFZ2Z3KhtZ=UaADXAe-wo_NAAJKl{Xma}xN8C(Pw??V)w~ou1)=;@ zgJYJUKR}=8@;DyzguXkt5<)tw!M~QG>~Ob&K`Zdyoe<;!yt7i(VXM&JAy*I&@lVJw z=+}UCt06EGQ`X?_A9S!)jv3aW>~JR*6r)byz5v|wq#9>AIO!?07u*xUXCYMQo55-b zuQ#yk2G!gRoCP7BOt5mJ+OLQoZ^Cn%i01%!`gybw(me-;Zec6|WeEePKsLZU4Xk(( z_lIF7_TQ@JK@Z-641+s+3D0vu&cS>V{Cu05?jf+n%Los5Pq2DBW4#8Wp206)K|R2| z670Q0ZHsa>}ejtw6jW$Nukzm0d=s{-z_|Utk2e@|w`@M%aVJ5bGA9;pOYjDM0%)M}54c0?8 zz@6=b{(i&>GqIA)7AEs<2ysSOV%kTHZG$--{IvpQhR%5~ zLA7)+$+I9K4;8fDEcAjeMlWI z!@wO78W;4Qn{yEAGsO44z_Sm~F9$0j)Gow~FEJOuJrg_*=?C*kaO_veE6ns9eHMiD zP2g9MD7aUH{*`zp8s;!?IwTQhdaq8~uhn$D!CnvwOAHt0C~(g=C=2w2%d|E8wv0Jeot8NI`1bzvjdaeZDzYQJA8yIy*b*}*Fy;xLN#5E8T?+!ZMz)cXUf8sX~3R?xbV{Zw$6QdyM3fdQR!2XnxFcW`=^n&?3*amx6 zsa)RR0*EKv%fK24<)IE7h<&7F4gt4AHbCbc@C;-%%;&(d*!M~CB!R0S`{BL;{1$Q^ z<|@z)du`prkT-B|bL`{5xnMtdxP@vy2ln)oSS9ph!A+0@Fux9d3!ywzfz`rH?Bu1U z+Y3w=X5yz1(mw`zv{cQWV1I}ndC-Gz3imS55&Nh}-*(R_?M2OpBtoCK9FhrhG3eMD zd%`d_W5LysrEo6;o40`-W>0V&qypwxa1EqiIKqP8L(akd7&xdc_5#5@1Z>t0`(5Df z4EBQTfSK3{8>q`+)`8zcDBWYA;-j{87&sY1`JV>90HJ3!$>qfX)2Szp-w2276zU{hh;afPcX0kd%mOi0HLxF%Y>PjKUiWNp+o!=LhC3t1a%7` z{c>>QP>dbuYy!6rQ_Hvmv_h!f+(RW62_f?a@Ka$v0A|SQT$Bm!ha5sYM1vx+V=%u1 zW{07D(Kk%suMkR?g-h%Xq+2A+5$KPRXkW~Y#7Kw(+@rvy5Sm+vYojC<2KQp{HiY^r z(LY+%(SsqwG3P*s`1uHoBbXCLO6u?A8OGx6(5h!f^2&@T~v2xdLFA42CE;@Zg)D~0Y)w1*h9}(sx z@M&S*1b!jRm7p|D)pr0FJfe=Tcfdzypxv?m)B^5<&{)_HKAJ2s9l3+gL8v}$_ovdn zRd1uj5}-p2fmmP;181eF^=1NHXJVYd-4i@C3w;abD$p<+^#wEW>1@Og^Cr+g2lW86 z9*lxey5-;ulX~t*0!tw0p;HF-c@$#?=6>LN5QpK=2V>0WXK)__{xS!7gL^gj`&{%x zn9qau1*+Kr%%6w+!JYW@eDrykH-Voo#2f_kA#mOzv>(h1zz-qRmny(6g=#*BfpHK| z?7hqfdoEVzOg(6Vbc8$c0;C(vHQYSDY z{s@UhJjcM2Col$K-VA0eQ~Pi+7_l5>hkGgb7i0m=G!M{T{k|*I zwhIFzAaz*tCxK}YhCW#cE`#V{E(0qdRWK9%idFY8unMvX^G`MS%#(O$49sO<;(C;a z<|XhiNFnAEdhZRr!=@N%5$PQ>`e?16hBJDLN zeIo5ACo_@u`jVMQ`=7~7`~i}Qenq6c!{knMdPa4peZP7Lx&QC+zcujRTLUf(BcCPW zl8t(w3A6``!De6u=m>^jD7%CCU~>?|zR(lg0eXWKAYgM~T)}qiAMSQ68}3%P=YYp({Y)Y&7y;7G6= zXafDfO`tzm0fvBxt1tqDZs8aZZiPu8q|hdlFgmh@_$-3^BCrfB1doA>K@`4l3D67N z55|Ik&4F_gZ29+bH^9C4KJL^`J09R(aUXX|>=-pdlY?SGIUnF&_W*Zi>I6*=H6FYI z<(@-z@AUxpkbk)2J!6PrB;1=hpdW%RVEO~}@`YZJ(A)F?y&XcYT<9HofZj2ocV6h# zJwVSHnWX%AgOoqKO7WgUEeE}8nDj;py~GFTr3<}$p;z<(y-h-IhtMm3fZidYcTDJ= ze}G<{&~tWH%i#?+J=Ajaf;*KXMCgrtfL@}|OBZ_i56~+TdYgpajtA(K3%x@^@7M$M z&I`Rdq37(^jeAcFiVy*~KWf5$6c) z2&sx64sDG?W zH0xz!KYuN%$wMgVC!-i%ebjIyc8F%@Z0oNsitV-WxBeJ~C-xiESy-oN>?CTmC*4JT z+T@pg5=G~~#=|$7(X(yZp|^`>U)qNM0Ohx_@8}-QmfF}^vuK8&_h>vSnwCf3t7-m2 z&PTB_oAQ*OXll=I9!=|uh9fC5n$E`!hj*W7b#WkEij$*RwoU#wB}Oyb^I6f*Xr{O6 z55?wacF-oiO(UY&U0T$LW0PMrtMSlmpfQ@QwXqjZk7f&P%3B_W{$gWKoEwcjOiu@9>PkzK@0}`B|B|IoOZV2vi!sJI#!R)o zGRYX~OM$V6HQYeIrGmZE$#|89D0^N;cq;AU3-wJ)&dfE6wEH(C*ECi&$wuFMGt=KD z)5H2VlpMi^VPu)GFEb@06J`4MRnbJ9hNGG^cI%@>`TkDsfJVs8Gnw%60;6GEye`HN z>O0>UpdT+0vH6a7(# z4dIq#ouA(WqYWH5ATT6laI)V(!(c?4mSXS=F$Ng?k^_Q*^Z@|_(*_47|1;V_|0>F$ z5w2dDZOf(ILdl7o_ije#Nmj56e3ML8fXcu;WapkTic zy>WnFP(a{dKlJ$&zmPzKJ}uawHzW_bUzGj>{#B$QMt$0#uF?kY$JxbW~H%4vodA>o`k7f!pEjy!c{#X$vF1~;p8`w#j_dsjAn5##jtVg zVc28vIUHs>K5)2*yTiEe#J`DP4b)EMv}DlCJOF**yox&t*hOz<891xYM5qjw$&83O zo24=OuHz&E;hR1d1R2bkf=|Z6m?zvLp_7I0Uy`9;fZQa*W~7*rD-%rFOo#ZB5hwYO zmI1D2_$RQo2(P6V1=n1b%JX4DelifRy2|+1@lfnW=;zUQKrDdK_d;5n6M0IxHgOHW zli-7pdw(I6&ji*UVW_+ouAj|w+gOr+mp+BeMOZ2$)f|;=7;{CO<9KOi@|q=IEnk#^ zT1&YNdH07YAA;vDST}?n1M^HCC)KbCbxSQYlcggiJQMN{Hyz%Op~L$M2IFrK^FvMO zA%Sp9KrFdL2#!7pZH#if8OV#kTLwLUpkSgun?d411l;j@NgLa$DTnbaZ5cu@uxaC zQ5!oIvidc}#JTHM6cO`_T=sFU!j^sJWSzh27tZDTeyJ-ebg~vbcFbvRp_8d-E{?)Q z*NgItii%85bMwuA$Yu_L7LW+Gkh?H5dMBgAvxlsP#6k@h3cr{WCh#)rIk52;JyCN&dl8%@A~$_ zyN}!AoxdGBGGAX`*1LCahToTEW5L9?c)%F{kTggMq!LmOA*Db_8l(hL38{xrz(7bEqy$n4sfSQx zfsiyv38WHIPj<9#38a#@b0CrnMAU(ZCJ;da(c(x983=@=K}sN%ka`GZDiD$eDS=c% z>LHZTKu8*-1X2m9hfwANA!(2jNF}5m5{Lq&K}sN%ka`FrN6KmZuLPf!ka`FeIuMcu zDS=c%>LFASfsiyv38WH26%zT2pHzt@ zs8IT=q{^k5fgPGiy963=LuCg-(nt@igw(?vh_GoC9#RRZhfsqALehBpaEG~GG*TcM zDh=imuo6-)8V)tXYXGkNj~X}-jhO~1fmA~3A=J2mkTj%U0#-umVWtKTgrq@AAeE4M z2z7!$NE)OBQVFSt-~)95ccfneRzm8@4XIPjAZNTY1qPx;ASIAWNIir)R3Ib`X_tVN zkb0OA5%K_cNC~78QV&7o$OGIVC6G!;JtPqGOd8TG0V^T()V9+2Ccr9ejw(!=3YlQS=Fz}PYM zu=Cv2Uop?>kf|_;c0MY!`ThXTjYpw6 zUu*L$8V55i{=omh`H13in%fu~S@YMN!pVt_{5qTh7Og8fRiZj9T32XtT3&bOcnQu< zs{eAQ{6$5_H>q~`=g(cfyzY3>sxr+#KR@5(vT7f<3x7N~U0&GWUxYIsbjVKr`TJIs zIW1q#{TJ0+m(MSM?t^;GzuuZZcg4OB>aH&*b)40#%a=d5@6@_=`OZbi0_;Ua^FKIM zMENc?fcdlk{aeeMwIvv)V(D_Y8MeyPWvcT;;X8I^}s;|H9T;zmPEgj2g ztRMhf`9WDgSZAkNoUd>i=2?P*Q*HU zH8&Ir%m1z?{&zj`zv~H{)Bpdop1_hMGBT2;f%_d7F6`TP`jf-~O*Cru*YD>G6?VbN zN%hxnv5BGv-uoF=0v9e~g|P2*;sE`YEj9{j`0F+7&x=slcbdFwYa1gF;jdq~hyw}e z;ftd|K?{FjKUctZliFIC8vWJuuV2`|9~x9FtUql1dH%20Tv$&B`CF~f_-FXq+AUiW z6LBlydcD;)Je>m=!q>t#E;o1Y#p_P>R;x{T@~?pcdFP+rdyy0xylDl+!(YFU7#Ej& z`t)8zaNQ}Aucvr!RsZYPuV3K7;eYWu5AJl4)>k4t{Mny>B6|2oMxp>%hS7S=*1x{~ zFC2gVNip(+`;#g|@auf-MmFu>@uN#%oyz?wJ57#@Zff-PT!Ak%dA`L5q8Cx|7=*5t zcsPRlE?p%Xe>G$^i|VPaS?IpK9nF$G1BlFgE8? ztmqCxKEp=MkFdG*du-gohPXbHdK{igV<5_f7*K&z^IC|eS8*B0*HdB zP;W%MVXKH}E4EfqvBe4@5R34d0HXQHg}YgN;% zl`3g;jXFI033XWJD%B!qjcPjaFY1`v)~d#L{zJ8y_PRQ3($lKN-Twe);Geio9dXAC zs>$Sas(rsZR3qSNob#M&a`Ox7h`fzTWj>=0$0mqPZhc7|b`L&hzoZ)H0$a{{)%ce6 z`0h>B2<>e&VU21u2`^x4de=WxP33azGj)ej3*J@xzTdA}UOh#veD_Orbnn~LE8D+T z)z7`5HtqaY?f7z!>UrB@Jg~V556*7IgKY1rlfzr^aMIgK&EBM*UGt23;n{WAPim?f z{`yYrOLx0cOWs!tHhhMMs^7!IbaZdqpn; zX5c8?sv4Jkpqk(Dq&g?#e$}OPtJ<<Q%kZ{*+Kt5uIaqQ2j^Pkr|3r|Ox%{6&5H?YHXDnrijNKmM+M z|KjKBzdLuT4X?eX_P~6qKW$N=a8jT(5S2^_6NfXpTzy?PRqN<*WPOQeS@gB__$eqpo@WQ}x@mpQx=n;I5{M5wyIV&AK_u* z?W)NP$oaze)nQ9NP>pB5p;`_vR(C!1zH0gKdn#10S+$>Brhb0kQ|hqF57n{YVTU}( z=i)8ug4-)p%Ud1+uJ6?ugYs0f2REzaf_K#s;A;|irKUco4hK&4&_C441Mh<@J`Fk9 zr}pprR<)h+FFZ8+mTIzaiyB<^hB~hJO?Ark_ox$Zd0aK`cb^K~3R(XXXg(XXp9I}o z^nq%Even#IRrA?zs>ZY4R#@8QfWABvaOmw21rAZ*5CsyZKuYPHCFRo#!{K?8+#?*G zS~z`4!JN{B3p!XAmd=@97+x@F_KFoVXU@IaJ?74xxnjlaK?|l9&i|joIcNU#sf%X& zfw>^<`OMi1rcN(kj8(UP#A8Nj{?rA7W?B>poUItNAb0+cg)wJ!?tbM~S_ zoy#6ntfljF2PMK@gDU!c=A_*D2UCycPc3d30sT;C7EdidIFy`|J86Z#t{?De#iYUm zPRyM7^9~$9-L@xIgb%0+l@=C1Q5(@_u9!U#_ItrReH2eBo-})Qz+A?W(V`MBxl@=_SpAX+tmw}o)DE9!ce8%eB*|8ALT>-+7ltRTs72Fe=dLzwYvB8wm7Y&Syb9U|zvYD~CJUd+2 z5X-R|IOD+_SXhq+`!AgyC5JNyhRYk?=$zGsi&n%`zPW?^H7EKhe?dSF=MFjm)?!ZX zqL@Z3QB>}Ai^BoNte7{w4*hU%ukE~i>YzaD@v*iW;`|n1^W53F_0f?yg+{(!oF65c zk>3(MDVXPL=-lFl%XGXd3&MVr7Vo-v-%t15K6ladco+Vl?+biJqkct|hTY(6?t+FG zn#5|HQ)r2i*d5+g^Id_STby67o9lb=;;9B@eeNt=;fUg-cw9a}kpO@dgr&m7G3Ly3 z_`D*9zn_s)l&NOCHRG*Wi5IG`Okvl#DvHD%_V)4xtkZt3HT1{nTw0zUh)qyPXbG{J{AdO~o>EihrkG`tj8AXS1P`BW>4gMzorn$c(T83tV&%s$1@=J>PM zCB*Nv*LwF9fRVrNO{*y?-58fzael}NM?`UEI7q}<2BDxcf7_hBE&)oWy=G`=Af~4S z^R$|cL1M;%X1*@9LC)-e!I|||pUvkQSoXa+jy7kcngZgz&#JuLg_sVUtFp7RSKV;K zBhzYT)d!^magjfGm^G{Kx}RBONlC;OIodoPt^7W;Idi7tq4?!5u3{hjVI|$cQwiXaBT$5-mdzWV_9MV>B)Bm8Ie& zpD4as1R{DAwD>%1k?l&_tP2$9|Cr`UWBO7pF=D;~q}-C`zbE>WrQ#xthuR}$?7B`s zXwVT`1lZyB`1PY>Yg5i~f)Nm#8?n|n{V+FI)>ej65xY3gXBBfQAGZiCJ`2t}>-b{7 zS`2wge{Fcuvy+Y`M?9E8lE~-tO zQr^>Az3R+kk03@LN*^hI>ee1OkN9XG#GJ9~I*`d8dn4cot7YK$b)Q=FvQlGAUwgQS zjEj@RbYKQ>IUn;)7~w+9nbr5vXn-!fqnx8-ZIOjo$L!y<0y8wsn8c(ZazOb{3%p>= z$LO3{eI7R?^eAZYIpB^uQXd^N{AIeIQgUg*)7O4TZF5n2lIf7rz0Ex@H6d--`F7S@ zsV`~`7JP=eM;+A?_yiXJwlK#jwO~}5j;qc-ie&|HiUJv!4g%k)QE3;VQW@v4G!LN& zpQfIN&tNm}r_^S|i7|a?tCk;1aeiuAiwU{(0kaB&2*;4r6N=iLJH8Sk?)e&Ip%calGtdT%DLJXI(61?Bx^q~Ywy({E zs~NelJ!_jvYc(x3PNMudV3OgUSOyWQ#nKr+)6o~z_q-mWCMZhEGz2u{i(oT56yg1Z zw`((xO7+X?nSLjP7iH-}h3A@>5mTg5Mq!kI>Ao+fm838IB{j?g=}D%bB*#6e^xcFHp7kzvjCbZ{@x>ORRuYedL>L9HaWfpJ=LHK7 zd|n8FJgYGatA&)%oxp8Ma;z0j2UgCyUs@V^O04k-{UZ1X%RL&OUpuRns?543eXTCa z!D%=SvD7{ivRX(2Dvx+XSNcy3X8V(Gux zbArY8+nl~H>R5|XEkra3Blt994F%hpqxFfk1wB$h%_Gq4W=$x z9Zt_0yV+A^4bb2-B507|o!IcGcH}sDg6^I5mmmCu&XiT101^j_7M7D7+N>Mp@!d5? z?2fC`8Al05Z46ls%kxMWK^TBnh2zAF`_$@Wq~6M`-swwEZ`Rm=44@RxbGQ$q*qwn+ zF5TxmZ4iA#3?Os?5}h0;W+VU+Tc7uY+B9Q{K~g$W>0(^0qsF=U_Peo<8ZjgZEe#C? zBkVQM^!vz>RVUVEcT61%(RaJHtu))CCO9s(NW%mz&9!_NGA^=T&B|~gMwsj&j1bTQ z94QANX4+C}KU;XsH8-qnCMXTdHA*X$P64Gl-kE7lsC85FHwdjfn}cs&(tX z<<*uU*wXD;zlE>$?!C5q+tv||3oVUQ+AF7PGKTFJb5?o~jUc*2jD>LY=&Gs>d3AX} zTS4S(W97IkpzPALs}tm2$c)_ckR7&?axjFH9=0)X~gpA!y*`$1j*Pp`E-h+K`7`5>nGkJ z2uJhNm2In9pY!;-n(>k1>VL927cf_4Z$0VMGrKf0?(yi;x}3Q-QkKpIXIg1|HN#UD zO~bY)w7>9_j?Hztn{?5Kjhce0pe0nh?XONb@)s|@FfOffaV?#Vk!or^*|;QaT>q^1 zt|=+$y>+QRvTs<`^BQx{Vr_UFrS6w(h7#%DtlR(9yJYK0Jk~z{ z@}uJxrd66^4#0b5&BAfh`rm$o3?i14Jo1_;w2;xnOzUE1t-FAHZru3f6W-3tsL9RE z&o7^qlaiu}`t_^Kt*NO=(?g{-Q!Cwm0#n)#eV@}0Rj`JIs43T!wupVUlguYP$ds%l z@q`mrX4El)VedJ}XF5fA!Y2K*GAo_8U@(#v(AvI=Eq_UL0 z=L6yiHU`A3{@kfy99U>1w=iFh={Rx=3+Fo_@xj1m$}A?vT=NP0&ykE5o1VG(;YpJQ z4U}ULP6p{elZqG3%bi|O@FPLg0l1TCr6dDl`*kTA^qi@Kh)N&8IeYe?NsAWX!HxVS zIkr&;|4fHGPQsenv~e?}@Hz_233~{EZxXRh&oBS6Xy>+E_vYnBzRAf$kaM!v!8sie z2M(H49L5tbtLvHu94X>}pXkhgruAw4k`XbSJVDn}IuGQVms|d$@-;>a=hN~yelWE& zQu>qg^jP2gL4(59i^sV6NBT-zo?L7H@&K{*$$77``ocle|EEc)sld?j2^%@~TZxVl zVAQ`A{tpl_2XbGkF#Sp+(0@v49S6>de9@;flPbZO6S3=&pAY^?&XW0sQ^Qkpr%#_> z;4x7Sd-0cPkxGOwonSqBe6h z-RX#0$Ml|g>EG&Rc8<28DVfM~4#c4qS;|Vu%yi471$V;R3FI`7s=VNw&H#>nsTpJR zLS`8mseQ&D05dvc#@Ifo85z3Fbs4FaMgj1-5A&W?!6Z+PJ8r@ zXYc*}y*z$@@4v6Vqawq^a)C<|{FtH&GV<=&@bT!@q)%1rwwG*}fP7C=lVfi-1W)Pn zwqP7Rdi2QkaY4>cd*P|y|KTPqvW=q`j_Yo^saJJg!*h#Qi}J_4_;FcT+3&rhtZXzo zYc@#3nQpC!v^6C)0#So>g~D8v@>bg8|G4Qo0jLoY<)3=>y7u~vOf8}2%6hz~-TvXW zWy_Y4D{=rYVXn-`6t#99qsh=1LB-Ld%gRRnEjo8inNjoTKi-)l2ni1Gc-)Pn*R_Ka znhqF+eb%_1Z%+9G4x+TAEJIh^NR0C^cyz{r^R&JQL^k9Op>~9x{Zc3FD4WvDfoK3~ zkk^fgsy~4*W~KGMdCE=1=z`Rg1WGYIR;^Pe5Ti#%3P;)K4S7(pzGKJt?F*&LyMEap zuDwq99HAl6@fbRE=-q#8fa%A?+^u(c7-N9Mp6#HcRqK8$9f%^pAo%OoUq9iF>#x85 z4`sjqg9lK{p~qr@2ZT6!c<^hQdp<0QX-@0$l)cO3|6DCvR(9pPqHtTu(D z^a(-)^#tJ`0MQ|$VRM9le|$+FL#yjAkQkD?dBBY~UPn@TiW6ZsD5){dwgGOcRu`BZ zhl=_(LiChH%#BM!@K_MO^wQAl>rcnZ{v~UHksv)%Iwr`&=uFwl&~)@cw2ZcV_NW*k zqCp6Z4~#cVN%*~JTFIR>xL~(c9LsJjg@c^XW&|0YWfVIKt8W+`gNQ~=EWlfCxn;np zgrP+)EE-pm{S*o5prp_7jJZ-i6P~gzfYCw}ZLxedH1r|7<(8KkV8n~k($jDIK>G!& zIhNf@!Ci+VEmC>lwU5&gjgFWcaeLa{ICA(BXsC~d#1)mdLuq;uB(yS$-BB2c(9;*A z(vV}TEh32?n*%h&Dt@<&$g~Yk{H*^q*=q!(u-nsa;dV@nMi?Et7@#6BS{ix;1j0Z6 z`H!{Ejfx98?V9x4fKk|O6vv2U?HFS)nkFYeMU9aFhYh=>0T!IVmt=OP?FyQBsUKnW&W;%YOOw+EEzcv}YJK6%C^eL_%g};!?&geDRqf&s2|zi*g(Y`N5woyTx^Dk<>OkY)j6wI_(oiAEOOK+M5Uw zhYT4q?3vhpa7Jlv|GVxPjtgEI5ido8&tCf2(-A@%cGHq;e;o^BL>MEnm}RtxqRVCg z#BobJ`(5+$_P-3rflI36fn0b^`YV6Dn;^B~KyNgW05S@rCyfT;O%@_CYFUheCrDTyA$AVU+%|YQ4V`Bwn!9B>z$r`*VA{SIvoRfjvE+}a|JL)$mqFghm4*^`}r)? z88KdJ&bLNFpVd4+{2^l0D215Mq{arhq<`=9RkscGoFaosO)4ypc=gpz9Ny;*u-Yh$ zL=sUDV<3dScv3dqoooz{OZxv)lTly_HHSSA+eWE!fV|=6#|AtX(QTsCeE?2A(|5ha zDAMRa94Z+BFbbo|XHCT6x0+h>bA7x{$z1rR3(;fwu)zUhn~wyUzVxX913bsAExDcv z_e6oYM)kWx=cuGH^A|0Rk#NjQS~Nyap9SKO5gru_=Gin@mzn$gLpVGl%A3|6&q~f& z9jRGP`t|R9L;9*$p7TKJ^afqc2y!id#!fKlK?I`J7mYC*;qYOjyl%ZY^K$)l&YAYl zhyRMhkMq9!hD;u-FPu{t9JcK@4YLi??|e!?>Ieu+w!&fCeu|X5KS&DWnnp3+qAxKR zZ8RGFTMGi+W@)cH{N$5QK1`f0HK975EzP%8d#zhM4UdhdXWw==vM|ZPFpQ6+%l7xE zb&ke}-7!AU5k{BMLvDT0vx{#{9pvY9%93e+p9qW^CU9Dw-#5evaM*tffNmT|N~W(} zBPsVy&>41A*nYE=3`<52qGuW{L>J-kTW=jKY{QJ>fw>+n%v;(k4@{Ip!*o#&^CrVi z4{tPAN8UMa6VH0xHKmvKHuxUK$LW9U^X$FR3KNMK9bpu08Gc_Rjwl>B&!^K$&FMe! z0eujsrlv)C&y!+*7B83{!4^45dxRiY-G=^QNF=_-*vAT6ct3RBiBbp1=qXIZ>Uc&c z;-d=(P71JX#=;jL7=eEdOo!n^1`DJ@|MR}`W!ifLnSQhG#Ku?C(I4)VKEX#uqtsEH z)`s!czgsE}3a2Gh7pgl989h(!D76pb@KMI-OdU8V z%Iv7pagW?FN*|Lwq#7i|(ok}Eg(SM+*N!j%HO-e$$?~@`H7f0!v zR|MCFNWV>gz+{Da@-6@Ny&iqOK4~&6g&CklOW_@h1n1o|5_&=m{-$!g4^;T zA1>PpWJ-n~qvvCY(U9@J`?dWoU4+5|E9OXvY1j1p*Mr{Sa9l{~fdscbXIfAU>lMpJ z*6=}cDRIt5WP%}yE~f?yC9RSY`RJqL4pm++&1z4rjW{}FyhkvSM+@x0iB}ljDqri_ z^JR>R@yYxX0@I?z`t9O-I~K6nNzHAj%|rJO*7cVb17xl~_5A@I#XjO&JhkV{`%vTW03F#2WmpZh zb`1D^@DW-bLB~nKaEEoE!{LUWk7|q-r_1h$MBYD9r<=0C$~- z3@4s2Dibl__W`4%2umi#HojPUqG!*%F&3nzrGRwQh92=Dd9bQ{5(qgjkX6E=UUSXT zH3lQhxEqZ3z5eb99j!QeYE6v8u~7()d9xi=Gi9k)Vb;>KA_#F}Fj8?e$OyBCFPF(i zoc0^V?UZpP={FCEl#8w@*Use`>uAK$QERe#xa6MmV|Z$H46_`_w2cO zj2wf<2v7@ByBi@SOym$RQr7NZlFwz8*7WRo+tW8j=om1OFh2p6u@;0*RWj9|R~VJ{BNy4=%xuSK7VDOabkjz3g=o()(> zjZs^0O~(807ed+sB4^{^8+tx&Ao5+K6lRM=lG)ls!XMsK;oUiX0q641vlD>R((il> zosp4(^*&2O@sTgH&(hIn+I^Px<9oh%aId9ru^-NN*pp@#_O$sF`|5nL<3sh~yYHy) zzxqP$`Qmf+_3mBj-ydvI`@j84?fvds^~Ha8VlS$1aWD3f!M;1(i)Z`xf2-kdeXDMN zf3KSH!Cs{v|5AmX_);}~a<^*y=Py;0NB^S^fAUM!6t8A~`BJrbYL`0l>0PSLGrQFB zYj>*-&+b-dJ^z*Z>5Jc}GgiE(&RzeN>h#1%>Vg-)Ru{kWwYucBZ`I|meyy(FutyDe z;~O>N#T_bp<2On@`h`-D;Z^fr6U>9 z?7y=O`v(18sk>i7IlEP83FhI^9m`pMGI)Y)j)uUCGl zM*a0Gb@TI|sD*ETqrTanLuivfid1aSc^C4*XAnu#Pdp}m{zO5=W^WUoR1K8_l z!Dp%oerq!4W7TBVN2fx7nsFF8#sXI%aQm<_LLcRa_*J}HxpwEo|Aa%t4NB6#u zy^}U$Pbs{nVLz(7@S6HB>{W!oD~ zV9%_(H>xJs@2d&+1Z#4~2Gs=ng*BP-l1iHT57jL1J=F|*h8=P98r7oL6xI5=`_+l} zyrNFJd9^wVduE+6`j6_e(jDqob6!^|MenGrsyEf}{N?KIKW|nKuG^v>T=|mv^V^@R z=l-!-y|*1Sp7RO9E#r~{Pr#z%eo_<|@@zpnK_4yLPMh-rJ)0z1q8Xuilr6dq91KeWkDgqTW{;yC5p;_s3n|)Q%lH)V6Kg z^uE*FfBKzw-cfJ8^_KeQKmV!z{`bGDS6_Wq!TqWA>({FnUU)%0|NQd`tF@}9o_b25 z(@d>gxl-?6y<)`*g_*kw-c7-QC=7h7l9CdI=PQ-7H{GGrLlihffkPBHM1eyTI7ER% z6gWhI|Em<(bTAvXY4g_YpZ<5(?%lio`|0+rn-4-=Zyx>M@AmE6i&Pbv4^F<_dGwnH zwndxY`Fh_syFc5}=7YE2Zt_8!k3Zl2-M+nFy|eki)v~G0H+#SObgNt7rfr{ny>IWH zj}8>Y-rc!x_dB5f*s)G6n?o)C^Yy;(cE0O;*YMLO-+cQCDtPJn=hy$;t7X&QURe0I zjhh;MzIX4QCJiq+a_6@1cfB79J@jnFYZb3OCv0xL@GpOPYVIxTH*IQzrfiE`+R&42 z`~LfGXwh@8zWVs8RaNDG(#0%(>Zv)^)vvw&?4LHhz3Ycp(&YQkL!pWbH&d??iN%YEPdFmk>7&F61!dg#yPk3IJ2qmNcTQueTB$jeVX zwz6u~~qcfWbm!{y6R{0b~5Gqd<5-Hw0GUHa%_D_5@4m9&2Q z>%Cw601^IZ&(>B`SC^uKnKNh1c;N0?{d66T)|S>hf?Cj)>en6$wb}dKNBaAQ{CV@c z9jzCwDXU@m_o92QXn|MC!q@Maxq`K;Jm`rA4hGHSna>;+J1s_~Jia z{@cQ}&-8!y>%B+&eogelrZ0Ddrp}xiN@~_D>4+m*$Gz>9wd=u=hKbhZJ#U2;EZFqv z&QCx7_qMlcaTYJ$y7`0ezH1QIw|*JwKRfq`xUQ&WldW%&3$0&%J+1Zby<6ipw3Z*X zf4nKJ@HX#)v6)d3o-_+nSfu?z0Hd3^TxaRaXHosx1{j|*)>THShm#?Z+( zXWtbL7v4Rybj{c!zuT2Skx`d?xhXXN&YOp3q^I}lopRYF-FjT1FA+6aIPq#$k~4k! zefQ5Oc`&p2H@l+>NZ^YvL!tQ-CJ#;T)eDWdBF^!H;ZKk#ZTT zIRC=qxUvQcDHW}Jv>fR3az;4;%4t`3bp)Y@+rwDb~&~G zVeqc+zA*R3A(|sae+=ztm=11zCzLkqS~P=%y13bA?}5{2oPJt|Q%>&Ey&1Loy$zEF z4JFqLABIufN_N%v*t|28Ir2I%{L%|9J?@B|2(m&8JO1paXP(-j?b)q9VVLmp-0Oyb zSa;3t7uvnIK{j#I=kJB?7yxcuaNc>pYWg3P`QGhUoO3oRNp62}Q#!tXtwkL-=Y>R11-FX*YbYYJky->$pw}sx^{cVFdu3P(2n^6CYda#aD zPCfJNPRDfiXq5~_>~_f|DX1fRM8D8~_BA|)3vGf@^u4@Wm$vPaQO7x*u$u*VerAW0 z+jcqcf^L_gj&W0_hTi`cCc5FryPt26D+Mm*)!>Ju$u298! zXvVcYZ@W0O`Sb68coiTQY)Ytar=NFedt&?c?N2%$ggWnnOM3LUVrnS#{_bynD4|4H z-u>*~I7#b#8VWzJOPBM`zqH$>7mh*=t#|DC;)k(YD&XHuZFYWux3PV@cRuH$t`}X= zc}yBZls3D*IbeMNC~osRpKS-loMX$5T?e!;gGImj;b%K{Y}?Xub7)h`w?F*&%dfxq zu$C~}0aLG2^ez4Slh42W^2=Rc9HhRbdciq#@gWKvqQD^v9HPJ>3LK)qAqpI#!2fy* za4zg&cy+`p8Lw`5h44=w-kW@|e>r!yK1X9r*W{}yrib!%6kjN!Jzj0`x)86)cn!xi z)WhGw3)3JE--y>5yiif_g|9e&H=$!sX#alm!tCAsd|^f}UU%$Y|^fSLJwO*~yKV1D<{apPnv`PP}RFcZa z4ZTzv?oCr8)QxI1{w1sK_&eOYhHtG@qg18Vs$QXx`m8bAe5doPK22?^o>wzebNt5R zPIZMEtFqM1YP=eWvPP&0D7PH1^VCK7ccD5*by1!1Iv?NlRp}~QjlwGfXIa3Jta{=O z&Yun(sAmJdZ?5t@94vVP?#WiaROjN~gs8GQq13Tz41V(;q12_IN*8scrq=%bx&EJ3 zD0P$fdkDY8`u*sT+}|khdywueG~EY=uG2N70?h<936vQM+K?`pz&rw<)72ETJyU&( z@3L{#L^T9|$KyS5UNr)*4pYt4ufScyi(g<~1Y8~O9>I8~52K6dMsO>L3Nns*&eZi>>EKG!bQ%vH zI}ZtHfV{qozWz4>T=DLKGNdM{E7ir23B&U<)MaS>SbvjoT~F`2-|Dh+)fuY4N)H7w zgi`ap>v}}4OI6q5I?DT4)iOj0@E@VnH@thU^6udsXP|xVJ;{)uSoO6F34SA!X(*pE zOGNcs^W6E98GFkQXu(PYi#N2pVA=kG#`^{>}^^b$&DfQF-ieUg?E@_Rhm zkgY9reY6ur_hIo@hfY<~V#aojQjY+=uEXnY@Avv3(afXZOS`%ioT( zK|RU^InGv(hh9;isBe@5dZ!z;lnYHrX;bcf9YRW-hJW{Zxc2Y& z`+SLkPt`H7u@RAG=@Yi?e046`w$CfW)#-SaG#NTJ5v`;JOawc1G#l3nT{6LMBfZqJ zPoW{7dNlIW^2Qi?dmJomilYl>KqhOGD!0A4YAV{BqCQkD)%Uu+Q{A6&9!d>`dcp1< zrS|LJ86%~Fhhu?p1aQ;p2V)=7FjKYm*H+mLUpvNv6O^MdpaLzG(UxQ&$wI_Wk1z6R{2#r5^&6ydM+Y(UKHf7) zw?yLlmhec~xQ2ew+Sjx2X^PLP(bH3kgM5^h1nnbS9**CIp49K%!9(&f6EO?3DC%#b z87>QGl-d%q{0#K#bkCP2roWUzQ}0N~RBT!GTOjgS^q5kRjND->L)bb)Zq?MD2xLf?Ilueq7)tsWO1tly?=S#8Vqouk_eWF@K;-IVR zp*=1gtktC)8Ty#)*0prTG782Zoq`w}!>+Vc3)E!v0i2=vM7wf5=r%-4-4tjP>plWn zMISK+T2JnpL+&q8@8JG3Blo8Ts7c<~BPe%C`X?iIHlIJr)8uT*G@>QS`aa+~Av7L$ z)JGQU?~|D$jzlX&^F;n>`(jC>Z5hv^eX?KfX_t&mFmjlf{F<0ZvPc(OdXzUha6Y&r zbjHT<%-yX%<$;g<3U0Ph9E- zBNRq9)NA^L6THmJuPee0>mNkNqkY-+D2M)zF%+%JD3m%B=dmNFDOyjMubBQQKYe1` z-xlf@h?tBX_@hEbC1a6^j6yzgFl7IB@Yu$qjDoCPiT^<|n1Xl^ZK(L1fXi^6LWakc|KWS}$^*(ZERU$r{%;;#W5hV$8S|S2ORRM^6O}*u&3EXe=VEOq@wPMvb!(mWkq~K&NRB>09cO z#hU{jzk5<4Xx0rm)iCvC%>0owEmx<*$L`X<-wCV178?yA|JAk`yz3(BvJa z6v`nb%(a>(GBs2%(GTln%{H!Oub7F|gJnpcRWPoV_@6b7K{=FM(;CYswwBf|+Plk` zgx{+uZ=5c=k0NMST4bH*jqR|ufb^C8OroE}xXWxsC}R3hC5x5O3HIbl)DMg(intW7-&GPqeHrx*|drib+QO0TK6Z4`$n~{io(pDd?&Qh0#X2rDC z@#Htiucn$*#_se+>-_pi|64E1(}2F~c(!M33^XHM*6Qa*4h7|* zvDV+KL+f;9{XHKjcD#OaAboeQsGq1EUaa6RjhS04{}N3>@yoXLa>nw{Rx8!9>SM3` zzL3>S@QZ#+b0Nfdo19`~K+nLqMEJu9E4qiD@h15hYTv5A&&nw#<*&- z8sX{3wXl|)pT+284E|C6>Z2v1BmZ`EBvy%x^e3Wp(?6YtdZcIN9LF!S?_o^9+E8Le zPo8!3q&ra4w{!F^8GUi|^2|dRt5JWFk!Os=Z|s{&)7R4LO~f~}c|7O+{_$~Uz>JdF z*H6vnyJ$@^;>x|akMTri9DH|S3@@lh89I7lX$C_&Fbu=z4wyS|BkCgF@%Th`e6I~n&9?>U(3z)@}@XLiE+SaT+_EM74YXPlK+ zkI2UJk0a|bwwo9R^4c8Y6VE{0X~uMW0yjDC(sPKWp+xAU9A_Bv3bBin0rHz%l?>GH zrwzAx2RSeV_mc0FDZ??tkJ!8*TKdCoq1wlJr9b><>S8CCud6*qMx)!62sN2GUao1u zY)|-aTV=|=9F!RiYEkwnne4|fdL+?~nn zpS^aZO_r7s(G9nK^l_w#(2}jCwusJ18w_&xW7zu>;Sl={XazFy&vK>%M!%)~9q{dB zwGFK$0+CQ_)rM-S@;+lpMSgiDF--t{l2t#)=8}5;Xk|3oV=z9d3L9D?>t@-Ji0NJ&b`7`#)L>t(5Q4pv_~<*&_17vIGu{pA0M zO)~k{z&i4;AkTvQlKDgT#E64TXV1mA882pzVx1q$0_Iw?+ zTO^0$P>i1aSfcsc(c$m4j{aF4HM%Dn5v+llL^~l?jWLh8-qlrOIXOFowvw265AUQ+ z6w71vlf8rVZ=<8^ULyXdHvJO{P`1xkSEB7^o)M9eUM^~De@@rGnRd#R(Vi+ch2pm| zXg5UXg7b-tj76e4Kadu2ue1g;|o<_W@*!dq)J0+iS z7CoWs(~SJn8cf7188a(t*HLbAEOa9BZ9pQi4L=E&vT>(m4gR^M{NDIi&SqjJFZPfzIOlisITmxpStxIe`bx_i zYY>lL8$Ef=1Yl;aFXM&$hIJTZLE9vp7A*_faT#|vem70qAdaOT~RAFK93fco?0L2L40*wmUzxcH3rbbA4(= zMh#v{jLK|La0KmHB6gT#^t+sXu~5KaD5Ub$&41&O{MrYBq)W!zI-!w-^Dj} z-yOAc9FToiSw8ZcvHMGXWB1YW<+};7RvVNQZ_M6Cu13;hNrB|;;{&4+X8iuTnB({I zv>Ih7m_Lp81H_XfoWpRB`i(Poe;Is-n=xcUCMEmw-(8!}4(eqRM&OP|e~rvXWKPHU zU>jbN)w-7UDo7!10sBNmJK2LU8p!LRnGJ}!t^&Pm)Z+G|*j^X655-SP(a+PJxGR=^ zN?t0nzerQ&jV9+}PYQM7bfBP(lU^1>4aQ)6a&QbJll%}HTzfv`*WB9pW!jR6ZXX9P zFv!tuJCDrBU9!4T+YwSzzOz=%uZd1p5(`9K@sKcaPwJvV%^l2$`{4JG=p zzC|)7+7;5L_IzfTrY$38u|vTKN$5-al!@A;M3L}h{b_>c3!f}x4~BajI34VS-fA1S z)7G%XBLjZIj5&3NU2@01gZys+`+QP_|G$BqVbsL&Xxd_-ZM`_3p#5zq?@x2=?6qh+ z(TXOR9v`_lz3@NaZ^5+B+)f~C7&d??x*?B9`?h+fjjKr|x8^L$ofHO8Invl796TGL}syDGVm z)hDc%q01;y+fl}uk$JBYy@}^ER>|Jw$}Pu_lQ6RIb9K4*e6jU@^|Q6|9PuqaeKaw2 z(03VmjQ>or#Hd02ZIpT^G=41VsOy>HdlP)7_(Iqh)9+-hHhE_94Qhu(B9wRbCQ@Ea zwq$!Oj6Y7pj5m>$G0>oqcrnM~^KbO!ob?&6)zmA$4jY>uThlB@c_z;qvpwcnV_Kk0 z^n-}}3hH=uN4Lj)*4RdNrsrvVAf}M|+bWlyZag#vI4Hf0M{GRAo@81V>Mmm!#ze6! z1lwWnGPZ<%Pbi(~*(c$UJWpctfcR}D!XSVAv68gwBK1#4uFdRQ+C)BkmyLEYIuVpc z4unz$Uo?H|(t&{Nd(R}F7kDO_oDb@A3w5dLsxm{ep2;S(kaRb36tVIfQq*9zaff7r zMD6CqiCY4*cEnXadYQP;W)9J40_}x7r=e%yILPxA-aJRHDPj6M*=~FA+GF&!!8J}| zT`w5VgsxfL@1;2?&zO>v!5EfukcRw(c--|(u7TVdNwau(#_PN2>x1i?#Jh*TX7wuVC zXDIbe?_RUcg{?(+$#qXCTXmIlW=Ps)*1Wh3GRP+aZEve>V^E&`>z~jk%SbNA!zjrd zEp<63h{#2uNG6I-H2R`!G=bc8ab)94-9lTQTUStO$@fce|A~;3MAkxSf{4+r%WYlk zvQI+U{`FAYdn^@s7D{c8IsD|km8WY#FPZN)9(3eL7;S<72&HCv_ccUjp7QQBGQ++Z zBb%-Ts7q#!2zArCP?yXE<>k;iS}r$#oOQHhKAg<=UZ<<)*w1KqclH+6ciyn%KQH^{ z!nvjKnG5#WOH5_*8v0?G3zw|zksaf3>A`cE2UqFLgX;@jFr(VCmWj-H<2Ws4m*a60 zaZZn!j0lgI@hr|Ii#2mpu-v6OJ9FNyKz%Ysm#pWoaLpXk zV$zd6I;@GF$BkB8J+SlH%zW2vXZboEQGGrv3ks3KkKSwUH|5|#Nn5mMw{7w2; z`J|cU8~uxX&+`4$m-1W=B=$TBc^>^dTK(G*q+c}um{IiexNCHUkr!oFq*~@KvKN`& zlopv01hZLleXOU>IC{+IY(xtufqFNBzV;p|g>?++xV-uLqjKx3EsT7=XJS7d~ z8rx)TN(Q(fSCUhGaUQfGV%u1PDPNvPleW1nWedfE)kS49zQXk)P3}t_3)&C=^E-Xe z0@1BrIIEXsXn<`9)@E%0&;D=N0W)vxhd#ICUx(@npZs+Pub9nIqFuYz6SBtDJdLG0 z82p?J?_uVWQT}P+_-q;D=h&#&t4Q0yt7wt9Hi3IY^W9&r(Q<0AzZ|PS9POV7Ec6ni zaUE@$Uq8jFkz%AAdwgg?hT&SaAlv72iH_qb9YVFwTaKr5wsmaV`DzbnX6B8>wi!WO zrvs5#4Z&?_5XbIS`~c8U$AAWIS#hi zHq%lKl6pk93Hq@3^Q_onMh5JUCw17`;1S!tMaK>F!)}yI{@83MR!xS6 zrp83<5$8`m<>;E9!jsV&k#g6zns{1dDQK(e!s+kvF!Q4>tmpiw?s4WvC1d?k>Lgd) z@E>)}k%~o8dIWOQkJ-$L>gSsibwxlMIGcd9qyDn*+VAJge5hg0d??e0!hUkO*DpP_ z`JkZQ_}9nccrtSz>Mi@xuES^QuJ}abvqjrk=YiK5cl^B%=tAkX*~L{pKOE#+@Of^^ zsL>a({ak5|R+YBMUovyM;b=E|!u^uUPs|j>w~{_a#>KYzXFvsYt2SO3{E6rv=QyP~ z`p5Mj{Z^Hdz!@ikmve62!^~@{&pKId-@{ct${YXS&w&{`F`uCivssp(n%4f(?}@kY zdo1Q`vKAV%MU&}p4vl2zVok_Fn`@eKI0`QP*D_K{$qCX$I26LV-!IpJb zR?|R1(kb3NBX`cNzt4kIBK^q+W`NXKe>^LCKYP%iK9dl>Z=~TWF;){a~rE1mY_hW!2N7)w_@D z$K^3~le;(GA0R>W^@9!|>GXw1aX zep|#mk?S$M;LP=L{hCW@AdHg zr_&Sk;k*a-8A`Ol8(jNk=jXIPAoFu3IC5_zz1Vg?{=5l#l%TFOO1%Z~N+Rq1PfBoZ z&aqC;Em$dO^kWhQTX~V*oY<{k{%Y3$rw5c?A6bo-JxukPk0a6-TiPS6_D*Cz4%=Yn z;}H2c@LT$(sFAf%m@#LtMW;jh&HDcm|HxVk%q4=-D(n8cH1x*}Si1-{Fgj-JKs{zo zFHwl-bgcO}v?6SWT*37i8F6r~pu`=)-UI1lkKa!Az*t_yYQsh9MMq|h#WC%sWr(Iz zUA409TtCmu;9)GpUUSkQAlKf!o0bX9yW###W*?zoUPY@TH0tf~buuVPir1$%-OR5! z-=Rr#dF`gaEw7+oo3%U~2W5mmt?+W~7 z7Hl#`%Z++P8;~LHVRfz}gYioaN?@bZi*awFdj%ba`7v%iwl%TJ{h@mW^#OIb#+Sc8 z1|B)a9zpT>9NZfy5k3d^1d7Gyrtq%GkQuXfbP~?lQx99HS3AB0JK!;oB(G`Lo8b4$ z^jTw^rJ!x6K>`xnJ&L`sESZ@SXFBMfyAbCr${Jdy#4L&Hp?wM)Dm^f~k6C>-?y`HO zv8S2+DxFlvdXynO_3XWq71}ro8Z5aJcCKQ{M}k5`YG&%P*N1X1yRV!Jnz)~TiHHny zr}dp@>T~wPOFSqo;R^j6pC#?6d9>K{nDn3Siqo{^m#Sr;G-D1@kk4@vCsD~NfU*iO z{SV8gCd!=PF<5I%z9AaUPMDzAmK%Z=@4&t0cV;{+Pa+;!-*qf}lPQt@H?cdKV`hNN zK{fksNbjs!rPtPI*3+~t>I95wKqxJ=J9qFqBYo`ak#)>uZBNFymU^7aP8p?Tl2x50 z66gJ-D&su6-YMgPW?I_)dl(!Ep2Xh~+nt`I&^Hw1Z(?_2g|Q9dX|!fja*j6Eon9ezh?vi%UUQg~2CI9}`KK86~k zee*z#@m4KFe^2Q4kdatfyPoJJ(;;`JKytWq6jv*x)VejYCH$VU#Wqm)c&9{ZH-}R3 zoluE8T2PPDFk7@Q*!%Z{8ee={RoH{guXu(^u!tCC^mZpNI6Om&I# zJ@qI0duC7m?@62ABbQ@|+&6`^B_FoxSs0{+-SvPnCco3>C*v;R8tKAbF+Rhx53OzP z)LdJsV&^DV{*swv@I{H>s*F4nNi?^do z4lXQ@h%G0G_*_V-DXA~oLhaj%Z-V@#W#iSPyVP5oM#;6pCApfm&MnjE1nCsiJ#vFs zsX4^M^)Okt^iS5mJjx|$Y1ghNm1%=Wf66IK7a5V#(=?^1htwF_Rd*i*ZFe9c#KsKM zzvBGZ5as^yfcHp_cn-?dNWID{SFqv}Xlx;U2QiW^W`{PDuS~)9evSzBh)isdSY)#X zfzS(+4bVEa+@-s#t71u6g2;>C{|O%Eu(Eb3dj_e6)~*q?_&C28l-;Y6v3dnZZYjfQ zXeBc-_Vbu0eo1v=WF$aM;5rxFLC$ZB%=+G9iDWM(?x*L+N{Vj@*g9)n>HS!{-$D@? z_b)LPHu_g;liOZnv4vOECF6TVUd0pb&~{(Ok;DT~#<<1_%c3lD&VuoJjC@E#?uo`e zhiokeu_#S692sUrKN{z;`F>p^bn4tA^*JT zKYH>i*4_Nh#74H1pd1>1E7rtX0>56+YB!ulT#KFDBrm0hsiBrARy*TSi6ayAx0InD zi$#}szb=k*5cFB|-LAjFg zm1yU9XfyrMW$-7oSu(3uY`3k0c8dKdg3)k;Hd=be88dK?EU|M#5RcI27=JIjpNd~) zy`q_1DP&Y6Pcq+T<4&>oCjOL|fo0g$`6UvR^10@bxtl&ktPicgR>+T((ihmMZ;Y~x zl@mPu(JJn~!V+ZfD~_6fiaWXIkk}>J*N*uIBRuJ zU2(C3eAe!fO>cCigrqJB8B}1QlJIY23npDx{sp+&Lk?c(Xg>qHs>_Hjq#q_ zH`EEMGo_$BvxlPFx5E8bg3%!}PG-%g>YkZI_C%NdEPt)0f2Nbl4@8>rVj)^2T0`c< z>;V|<iKtzB#NF z`NH|o(hub?pR^H6NIG+eldHggdJ>8IV^fIyka-9k-{6x`6DF#^+L)mC$4K#2p*~FAmgaWB=NFR@hqUbrOF@9hE!WJ%LDHiPx#q#y*=o zo%a(9bu!3R`ag-u6QM^i_c75pxn{h1!}?*E74*|`X!>TNGnCt77x9ZGif* zuVTM}9lLHHQy1waX(zagk;D$Mb+9>h>AC{)64YhxtU(!JpNF}hJdqigvNss>D0*?% zq8Qz7u43ad7G|r~H<6Io_y05|F3N^z1A9^}Hrh$bKKG7BWEYBu>g1TEa{n~O7;KTm zV6id9ZWH@mxNouS8796U_WiMIk45WXd)NnkQcUczIL+P#+6x&=;JxvWGkv9YgnjRf zwG0Np+n6|#v6bxd=yEN(w}}?3dCZEMMaEG$vM8&uvv-+KtWqPHwI`$Zu^A${;8W@x zN#PUuhvA*Ric;7KQ6Fc-^G@dQ#i4c zDdr2ML`s(RcR5#lxUPeKNor*&CKj54-wf4zdS_B5$Gs?l$&kV3-u?mZN-UJHRLy0s zz$ko@F`dh`bl-@3n#PZC@F6(UQ3R@yslXV+Rlw!-JO=7*Yxdx;3hO=jin3-vRg{vq}Vyi@J zUF^aev2ZePig629g)wdB7zKZyfbYps_ITR1(kqV!4$+WoO=(#VO4eg`r6aiR5v`4R zzDRILZZ4y`ES2liu-BDxVdO=rijeS}I>=u|&gwHVWn}6GPkN>}V^9ZjY>Jvm&QZFU zO)w4>`$dZJ7twQfBuT#GC>5h?Lm^VxNE)@&j*^M5Xjm=mpe)JYi;TVidP%=_mm z2@(l&w9kwo(e{X~5)GkTSUbSdQgqA7TUrA4e^YA7H|h*abVsl*(^s?qMI=L35276N zej*bqOy4S=fpS60#+NLq!;X6y&f8ufDN8(;TNiv=#Bbi)3ytXn)2~*~8BGygflIWF~#m}*1u^KWS${s4aLOE@5r%-pG zAX=$A=-J(IF!G+WcV&flksMk{S_+mRb&)re5w2pvUrov6q09g_(kIA*_KdZ}TK$xi zWmYr>zw%C3@@m6xd{MORWKGo1c)PlYMP;5$Pazg5x-~)-c`{V&ZYK}FNV8b#_fQHg zSI|NmyKS{7x(1oeQCIJxKSMPBfwc9R)+mMet%)mP}an+2~TP3iC#Eb z8?|LMREd=-U!NUt|9PdyegAmaIXY_R(=JA=1n&BLV8OL}jd#emT(*Jnms>Z5Vs8Xn`cIOF=Gn1=hCfiz~#>rvfo!R`&6l z=$O4=V|0$dzBqYKlonY~x)$Bv8^C%m*Z58T$GeOTcD-;glkAJTXf3DcXjWDiW@)tB zl5tXU81=A3Vxpfkx@&e?kY|Y4E*cZiCaYuOyKvN`rMICTXOo;l}^p<$@Y@aCs@+ zsO{tA9U{rLCna94ake*e&5X2+iJQq-eW1LveckbHvnq)*89kcpUvxi_k_}E95t&HP z6`j6aQThuc#nzJPTIZ@KcnjJ=)}x9^*6>j}Ft z92UjmJ6&5ldIt7!lY1unG5y`0)WZ>KyV0sy?Vk72zRJA@Q*;jsZBMNHFghO{jZBq2 z=h8=(rhS#0jaf_M+D5l8l^m9wO?+K&cQq4Fn8;ejt>`2CySY${tvnc8e;G%fh{(vC;>4jS1uIRx_%>*Z_j*}N8<5ot6Q+~m&eKcT$yceXy> zUadiG_tzdP$NInD|H)nt%YS1DC?_0qA}ue)-i)q!;+4Q`h5Khyvl$Z^xwmDIqjs#<#CCGElzwX5(yv6>v=`QP#i~JC z+FboKZaG3Z+DT$GQHsS#8|RMty6D=+Ewv}g6YkW8Dt_z4T8V$4=ESC-X zbo&@B#-~?2x-;5kWXRl>-a)u793rP!YW$;fpauRBVp70l81cC-5od5*$j~UdZu8vT z<-p8%zNt6%E9>&|sXO;+JwA0O&y>njcbt>pJ{>8Mv^=5AoL~w{m9>WHT?|#&k0Z}k zbDZEO+RHM#p>7d{nNdp3;0Wa~+{<`KMiSYBeo~$Hh_9l|Py%fkW{kI$9*ehYnUZUi zG`l)u3bHTuo=|p!zeSJbaxMa;oz|N31Z1wecoN3*-SMqip@i8OV-{XzR)UDGL!NXH zpTU(Rh)!aSp|Eyg4;{Z{&f~9HWPXU;|XI^hcacNuKYgnRvl7Fag{Fd|I zXl-co+;W#l(r_u5cH2Mi!F9# z)6k1iDBCZTA$^59q&c4*6{%vJN?GR<+cF9=0y}i|)z>ikB5$I3(jGpB&z^A9)~wG# z*%I01H}1NCW;HX8Hkp;s_+0B%_(YpPeHg8#`TUljlU(zL>p7ERq&p?)GJNJYj7TUC zCVxF$Q^bEi+h%K`wvmF(y>-yo>o04V&_mI>8fg@NARNg;o7@>>tdn}mwI)O!skg)- ze3RMULFBeXJ`qE1vs}{K z%+e(1xgL+mnB>E@2TS~}p9j==YHKW;!M1UhEIpI|E=o7QwbnD*7P3E-QV@NocujY9 zllbx8Kp|0F>}TuDnoFdiStpM+PNdznWG=GURH&;iw!F7)A89!mtq^|{te1VeHcB8C zdUqLBiRB^4?dR%g(SxI2lmM~XGAB$lm7JG(738S!hmn!-Ua`2rUl~DVYs4bAv7W&b zdWtopmz0=-bQdWXN%4E`AWESety8c)q#7~T&&v$=q~5f(As*%UIz2j{(CY`el-@P! z>{+VdfN86F#*#jol!+~?#_Reuscy}6BO!S*O{BvA%pP@HdI;R>V@FOw9it6MMCK11 z#SASN14umaB*SA*?l`mXB$6D zW+CwbtrqX&bB4Tw{c4m&u}#db`5c6?Zzck_Hi(%wHHdqF$oi{d-LBMS)cy3LjLW+1 zp$$wytwhO8)cVGtgbF`xM9f%ScEcv3PHJ5g@9l_Du&hKl|Nj=(IA4;ph`9<3d3IpA zc;L9eY(rr^)?mcPc+SX^WN1d>+3V85%ib6@P`>>bOH_g zL9~gsv|r+6lNtGYF#LN8NnaCniT6y_vk^@c5Y#Tl=@P}7^2H-X^G71q>rf&y zw}$m|*a*}_#!{<^{;h?VxT_%%D)W#lW3115X`Julk76k7J$@zR&h(_R-+?}uv~hb; zO<(Y-zN@9r%lclUtr9_q9-A4;wCF~rn!|#+wOTEXSMMpl>**uxD(|l5lIH#~2V1AV zrHl!fF~_UXf3;beGTzngefZ+jB^Ex$1tP3D<1JEG**K02UaH(g5m zM+c(oiS|Ua0kNMN)2=Y^hwJM}KO^@%m#0%%0;52)HqE~M?3>-UAI|~rmpS#Ms^qS0 z;UxVVSFAY(5u|X){A$W%-voV+sfBjkJ|($tKdrHpZ)oO!;?Ir>ccF^AW>!aR(I5``AH8aqJ}!Epz9|FxsRI=ByH0JDH8Z zF(&3z%yl@j!7RTWv^IK11!EgmGsy+s!~1^{7acIW%xH0S>~hp@?$5+kX7&X!(PA+k5*cQn zC1cZ}sDr$Vp3lPmD{_|Z`!$PC8_<>zBc8!Go;u-bBMY=Fq#;{O{tKR~K`ZKx z^nz2?jHVe{@oLUHXJ6#r$ zi?e&}Sokn}V&uzF0qU*nb|U==$Lf5_uix>;2~Y6F5cH^SZshXao5%nywJgN__rI#V~gwxU4)K9$8WRqD?^T;`|8ipc% zZGHxMyt}Ip=|OpQb71O&a_nr;G{cf6N|R?u&G`X}haHf_HF3l>< z1 zSDakjvA73XKA>1y(G~6JftCzFTShF+L2L5Ro&vO}3~gG!bmP+PXwx3FDybv~So45( zOX+st+ykUZz}gOII|6T4AnpOo1Aux2aOVJd9?a#zV&F~MznD|TDb@9OhQZBp{*U!+OBAC z543my+B{-e*0P*sxy$mF`Nrkjm+x7gRN1bwV`bOM9+d+sM^xri=2aF{mQ}8< zTwl4da(m^T%A~4xRUNCkR`sYFP&J||rz)?ipsK8Db=CT+jaA#L_EaTRx2x`0-L<+$ z^?>RT)j8F9)dkgM)vK%5S8uG|UcIMUZ3(H);B8X4UASYoYq&>vKzKwrC!7~92$zLd zhu4QUhPQ|Jgp&%}6?QD_3jPl$98s84m{(X(SXQ{YaDCy%!tI573X_W36?H7?TGXRx zK+%YzoT9v>A6ctmkdab9sjaar-|;`PNFi?vjJMh@*rPjOILf+wP$Hk zNxPDcC0$E;lnf{tQIb=VS5i?In9kl1kf^b}a1*y&j;oIuBZ128~`1 zjouD9Oo9w{g#7h@?2Ulj-9JF8T6tLo(H&eh$jQ>zD8 zXI1A`=U0cTYpT~&Z>Zi4N3R@K>7j}k4N-Z2*m{pitm|qw!tSMYmxS?=M;m$%;)T$`CsB=-bqST_nMOj6; zMfpYHqMD*LMH`B?6zwch#jRk+Iv00~Sa8&t+z9?2D<6a7J+uwkS#IqEei+;c&%@#f zCjnhM;Ohv4U4gL&P!0gj5kQ&)ta(6N0K8>Dyc(F-1NBDW-VWq@fISK5+W~(^v_PzC zD)eeFG%E|bl?(04hkk{jVQkTQv}q$+wH@u+gO(+sZSB}P$Y}v&bR*=mBWyWsAMIT% UYZtV2xv(-Dma{R34nu+e4{y6H8~^|S literal 0 HcmV?d00001 diff --git a/tools/prepare_installer.ps1 b/tools/prepare_installer.ps1 index 8481f9e4..dc503b74 100644 --- a/tools/prepare_installer.ps1 +++ b/tools/prepare_installer.ps1 @@ -17,9 +17,9 @@ Copy-Item "Installer\setup.exe" "$StagingDir\" Copy-Item "Installer\LICENSE" "$StagingDir\" Copy-Item "Installer\x64" "$StagingDir\" -# 2. Copy main executables (from Release_x64) -Copy-Item "src\vcxproj\salamander\Release_x64\salamand.exe" "$StagingDir\" -Copy-Item "src\vcxproj\salmon\salamander\Release_x64\utils\salmon.exe" "$StagingDir\" +# 2. Copy main executables (from BuildDir) +Copy-Item "$BuildDir\salamander\Release_x64\salamand.exe" "$StagingDir\" +Copy-Item "$BuildDir\salmon\Release_x64\utils\salmon.exe" "$StagingDir\" Copy-Item "$BuildDir\remove\Release_x64\remove.exe" "$StagingDir\" # 3. Copy lang (main app) From 70ca0d21f48554e8c2d2ce84b373666e0e11a3df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Skaziak?= Date: Tue, 24 Mar 2026 11:23:12 +0100 Subject: [PATCH 3/8] Improve robustness of installer script and ensure essential binaries are included --- tools/prepare_installer.ps1 | 39 +++++++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/tools/prepare_installer.ps1 b/tools/prepare_installer.ps1 index dc503b74..8a5ea1a7 100644 --- a/tools/prepare_installer.ps1 +++ b/tools/prepare_installer.ps1 @@ -17,10 +17,41 @@ Copy-Item "Installer\setup.exe" "$StagingDir\" Copy-Item "Installer\LICENSE" "$StagingDir\" Copy-Item "Installer\x64" "$StagingDir\" -# 2. Copy main executables (from BuildDir) -Copy-Item "$BuildDir\salamander\Release_x64\salamand.exe" "$StagingDir\" -Copy-Item "$BuildDir\salmon\Release_x64\utils\salmon.exe" "$StagingDir\" -Copy-Item "$BuildDir\remove\Release_x64\remove.exe" "$StagingDir\" +# 2. Copy main executables +function Copy-Exe($srcPatterns, $dest) { + foreach ($pattern in $srcPatterns) { + $found = Get-ChildItem -Path $pattern -ErrorAction SilentlyContinue | Select-Object -First 1 + if ($found) { + Copy-Item $found.FullName $dest + return $true + } + } + return $false +} + +$salamandCopied = Copy-Exe @( + "$BuildDir\salamander\Release_x64\salamand.exe", + "$BuildDir\Release_x64\salamand.exe", + "$BuildDir\salamand.exe", + "src\vcxproj\salamander\Release_x64\salamand.exe" +) "$StagingDir\" + +$salmonCopied = Copy-Exe @( + "$BuildDir\salmon\Release_x64\utils\salmon.exe", + "$BuildDir\Release_x64\salmon.exe", + "$BuildDir\salmon.exe", + "src\vcxproj\salmon\salamander\Release_x64\utils\salmon.exe" +) "$StagingDir\" + +$removeCopied = Copy-Exe @( + "$BuildDir\remove\Release_x64\remove.exe", + "$BuildDir\Release_x64\remove.exe", + "$BuildDir\remove.exe" +) "$StagingDir\" + +if (-not $salamandCopied) { Write-Error "Could not find salamand.exe" } +if (-not $salmonCopied) { Write-Error "Could not find salmon.exe" } +if (-not $removeCopied) { Write-Error "Could not find remove.exe" } # 3. Copy lang (main app) Copy-Item "Installer\lang\*" "$StagingDir\lang\" -Recurse From 495f050bb31043ed6a11d9439200a796632961f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Skaziak?= Date: Tue, 24 Mar 2026 11:31:57 +0100 Subject: [PATCH 4/8] Fix CI build conflict: stop overriding OutDir and let projects use OPENSAL_BUILD_DIR --- .github/workflows/build-installer.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-installer.yml b/.github/workflows/build-installer.yml index 28783895..12e67ad9 100644 --- a/.github/workflows/build-installer.yml +++ b/.github/workflows/build-installer.yml @@ -17,7 +17,7 @@ jobs: BUILD_CONFIGURATION: Release SOLUTION_PATH: 'src\vcxproj\salamand.sln' REMOVE_PROJ_PATH: 'src\vcxproj\setup\remove.vcxproj' - # Important: Use a relative path within the workspace for reliability + # OPENSAL_BUILD_DIR MUST end with a backslash as expected by props files OPENSAL_BUILD_DIR: '${{ github.workspace }}\build_stage\' steps: @@ -30,17 +30,17 @@ jobs: - name: Build Solution (Release | x64) run: | New-Item -ItemType Directory -Force -Path $env:OPENSAL_BUILD_DIR - msbuild $env:SOLUTION_PATH /m /t:Build /p:Configuration=$env:BUILD_CONFIGURATION /p:Platform=x64 /p:PreferredToolArchitecture=x64 /p:OutDir=$env:OPENSAL_BUILD_DIR + # We do NOT pass /p:OutDir here, we let the project props use OPENSAL_BUILD_DIR + msbuild $env:SOLUTION_PATH /m /t:Build /p:Configuration=$env:BUILD_CONFIGURATION /p:Platform=x64 /p:PreferredToolArchitecture=x64 - name: Build Uninstaller (Release | x64) run: | - # OutDir for remove needs to be specific to avoid overwriting or missing files if not handled by the solution OutDir - msbuild $env:REMOVE_PROJ_PATH /m /t:Build /p:Configuration=$env:BUILD_CONFIGURATION /p:Platform=x64 /p:PreferredToolArchitecture=x64 /p:OutDir="${{ env.OPENSAL_BUILD_DIR }}remove\Release_x64\" + # remove.vcxproj also respects OPENSAL_BUILD_DIR + msbuild $env:REMOVE_PROJ_PATH /m /t:Build /p:Configuration=$env:BUILD_CONFIGURATION /p:Platform=x64 /p:PreferredToolArchitecture=x64 - name: Prepare and Create Installer run: | - # We need to make sure the expected structure exists in build_stage for our script - # Some projects might not follow the global OutDir perfectly if they have hardcoded paths in props + # Our script is already robust and searches for files within OPENSAL_BUILD_DIR powershell.exe -File tools\prepare_installer.ps1 -BuildDir $env:OPENSAL_BUILD_DIR -OutputPath "OpenSalamander_5.0.${{ github.run_number }}.exe" - name: Create Release From 2dedd8a09fd0118ced20def3c3158c1b29387bbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Skaziak?= Date: Tue, 24 Mar 2026 11:43:10 +0100 Subject: [PATCH 5/8] Fix salmon.exe path and add recursive fallback for executables --- tools/prepare_installer.ps1 | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/tools/prepare_installer.ps1 b/tools/prepare_installer.ps1 index 8a5ea1a7..ef8af4d5 100644 --- a/tools/prepare_installer.ps1 +++ b/tools/prepare_installer.ps1 @@ -18,14 +18,23 @@ Copy-Item "Installer\LICENSE" "$StagingDir\" Copy-Item "Installer\x64" "$StagingDir\" # 2. Copy main executables -function Copy-Exe($srcPatterns, $dest) { +function Copy-Exe($srcPatterns, $exeName, $dest) { foreach ($pattern in $srcPatterns) { $found = Get-ChildItem -Path $pattern -ErrorAction SilentlyContinue | Select-Object -First 1 if ($found) { Copy-Item $found.FullName $dest + Write-Host "Found $exeName at: $($found.FullName)" return $true } } + # Fallback: search recursively in BuildDir + Write-Warning "$exeName not found in primary locations, searching recursively in $BuildDir..." + $found = Get-ChildItem -Path $BuildDir -Filter $exeName -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1 + if ($found) { + Copy-Item $found.FullName $dest + Write-Host "Found $exeName (recursive) at: $($found.FullName)" + return $true + } return $false } @@ -34,20 +43,21 @@ $salamandCopied = Copy-Exe @( "$BuildDir\Release_x64\salamand.exe", "$BuildDir\salamand.exe", "src\vcxproj\salamander\Release_x64\salamand.exe" -) "$StagingDir\" +) "salamand.exe" "$StagingDir\" $salmonCopied = Copy-Exe @( + "$BuildDir\salamander\Release_x64\utils\salmon.exe", "$BuildDir\salmon\Release_x64\utils\salmon.exe", "$BuildDir\Release_x64\salmon.exe", "$BuildDir\salmon.exe", "src\vcxproj\salmon\salamander\Release_x64\utils\salmon.exe" -) "$StagingDir\" +) "salmon.exe" "$StagingDir\" $removeCopied = Copy-Exe @( "$BuildDir\remove\Release_x64\remove.exe", "$BuildDir\Release_x64\remove.exe", "$BuildDir\remove.exe" -) "$StagingDir\" +) "remove.exe" "$StagingDir\" if (-not $salamandCopied) { Write-Error "Could not find salamand.exe" } if (-not $salmonCopied) { Write-Error "Could not find salmon.exe" } From e2d6020ea2f26dc4620f7bf2141330a3c3c6a50a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Skaziak?= Date: Tue, 24 Mar 2026 11:53:37 +0100 Subject: [PATCH 6/8] Fix plugin discovery when using OPENSAL_BUILD_DIR and improve log output --- tools/prepare_installer.ps1 | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/tools/prepare_installer.ps1 b/tools/prepare_installer.ps1 index ef8af4d5..ade03bc4 100644 --- a/tools/prepare_installer.ps1 +++ b/tools/prepare_installer.ps1 @@ -73,20 +73,34 @@ Copy-Item "convert\*" "$StagingDir\convert\" -Recurse Copy-Item "src\res\toolbars\*" "$StagingDir\toolbars\" -Recurse # 6. Copy plugins -# Find all .spl files in Release_x64 directories -$splFiles = Get-ChildItem -Path "src\plugins" -Recurse -Filter "*.spl" | Where-Object { $_.FullName -match "Release_x64" } +# Find all .spl files in both src\plugins and BuildDir +$splFiles = Get-ChildItem -Path "src\plugins", $BuildDir -Recurse -Filter "*.spl" -ErrorAction SilentlyContinue | + Where-Object { $_.FullName -match "Release_x64" -and $_.FullName -notmatch "\\Intermediate\\" } + +# Use a hash set to avoid duplicates if same file is found in both places +$processedSpl = New-Object System.Collections.Generic.HashSet[string] + foreach ($file in $splFiles) { - # Extract plugin name from path (usually ...\plugins\\.spl) - $pluginName = $file.Directory.Name + if ($processedSpl.Contains($file.Name)) { continue } + $processedSpl.Add($file.Name) | Out-Null + + # Extract plugin name from filename (e.g. 7zip.spl -> 7zip) + $pluginName = $file.BaseName $pluginDestDir = New-Item -ItemType Directory -Path "$StagingDir\plugins\$pluginName" -Force Copy-Item $file.FullName "$pluginDestDir\" + Write-Host "Found plugin $pluginName at: $($file.FullName)" # Copy plugin's lang files (only .slg, exclude Intermediate) - $pluginLangDir = Join-Path $file.DirectoryName "lang" - if (Test-Path $pluginLangDir) { - $stagedLangDir = New-Item -ItemType Directory -Path "$pluginDestDir\lang" -Force - Get-ChildItem -Path $pluginLangDir -Filter "*.slg" | Copy-Item -Destination "$stagedLangDir\" - } + # Search in the same directory as .spl and its subdirectories + $stagedLangDir = $null + Get-ChildItem -Path $file.DirectoryName -Filter "*.slg" -Recurse | + Where-Object { $_.FullName -notmatch "\\Intermediate\\" } | ForEach-Object { + if ($null -eq $stagedLangDir) { + $stagedLangDir = New-Item -ItemType Directory -Path "$pluginDestDir\lang" -Force + } + Copy-Item $_.FullName "$stagedLangDir\" + Write-Host " Found lang file: $($_.Name)" + } } # 7. Generate setup.inf From e4c242067e415e085820dd97db31dec93a24029f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Skaziak?= Date: Wed, 25 Mar 2026 16:05:41 +0100 Subject: [PATCH 7/8] fix(installer): include missing packages and openssl dependencies This commit fixes the installer build pipeline. Previously, critical files like shell extensions and OpenSSL DLLs were missing. This updates the solution configuration to build missing tools in Release|x64, modifies the installer prep script to gather these tools properly, and updates the GitHub Actions workflow to download OpenSSL DLLs. --- .github/workflows/build-installer.yml | 7 ++ src/vcxproj/salamand.sln | 48 ++++++++++++- tools/prepare_installer.ps1 | 98 ++++++++++++++------------- 3 files changed, 105 insertions(+), 48 deletions(-) diff --git a/.github/workflows/build-installer.yml b/.github/workflows/build-installer.yml index 12e67ad9..b473b731 100644 --- a/.github/workflows/build-installer.yml +++ b/.github/workflows/build-installer.yml @@ -38,6 +38,13 @@ jobs: # remove.vcxproj also respects OPENSAL_BUILD_DIR msbuild $env:REMOVE_PROJ_PATH /m /t:Build /p:Configuration=$env:BUILD_CONFIGURATION /p:Platform=x64 /p:PreferredToolArchitecture=x64 + - name: Download OpenSSL Libraries + run: | + $opensslZip = "openssl.zip" + Invoke-WebRequest -Uri "https://github.com/IndySockets/OpenSSL-Binaries/raw/master/Archive/openssl-1.0.2u-x64_86-win64.zip" -OutFile $opensslZip + Expand-Archive -Path $opensslZip -DestinationPath "utils" -Force + Remove-Item $opensslZip + - name: Prepare and Create Installer run: | # Our script is already robust and searches for files within OPENSAL_BUILD_DIR diff --git a/src/vcxproj/salamand.sln b/src/vcxproj/salamand.sln index f4501009..83a0065a 100644 --- a/src/vcxproj/salamand.sln +++ b/src/vcxproj/salamand.sln @@ -1,4 +1,3 @@ - Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.9.34310.174 @@ -867,7 +866,8 @@ Global {161BE79F-F035-486F-B36D-950799F0E110}.Release|x64.ActiveCfg = Release|x64 {161BE79F-F035-486F-B36D-950799F0E110}.Release|x64.Build.0 = Release|x64 {161BE79F-F035-486F-B36D-950799F0E110}.Utils (Release)|Win32.ActiveCfg = Release|Win32 - {161BE79F-F035-486F-B36D-950799F0E110}.Utils (Release)|x64.ActiveCfg = Release|x64 + {161BE79F-F035-486F-B36D-950799F0E110}.Utils (Release)|x64.ActiveCfg = Release|Win32 + {161BE79F-F035-486F-B36D-950799F0E110}.Utils (Release)|x64.Build.0 = Release|Win32 {85478010-C90E-4C07-ADBE-D2276E435749}.Debug|Win32.ActiveCfg = Debug|Win32 {85478010-C90E-4C07-ADBE-D2276E435749}.Debug|Win32.Build.0 = Debug|Win32 {85478010-C90E-4C07-ADBE-D2276E435749}.Debug|x64.ActiveCfg = Debug|x64 @@ -919,41 +919,61 @@ Global {61BC1DA8-A452-4FB1-B8C6-533D351A66E2}.Utils (Release)|Win32.ActiveCfg = Release|Win32 {61BC1DA8-A452-4FB1-B8C6-533D351A66E2}.Utils (Release)|x64.ActiveCfg = Release|x64 {2817FDA4-F692-47A1-8373-B4DF20DEF383}.Debug|Win32.ActiveCfg = Debug|Win32 + {2817FDA4-F692-47A1-8373-B4DF20DEF383}.Debug|Win32.Build.0 = Debug|Win32 {2817FDA4-F692-47A1-8373-B4DF20DEF383}.Debug|x64.ActiveCfg = Debug|Win32 + {2817FDA4-F692-47A1-8373-B4DF20DEF383}.Debug|x64.Build.0 = Debug|Win32 {2817FDA4-F692-47A1-8373-B4DF20DEF383}.Release|Win32.ActiveCfg = Release|Win32 + {2817FDA4-F692-47A1-8373-B4DF20DEF383}.Release|Win32.Build.0 = Release|Win32 {2817FDA4-F692-47A1-8373-B4DF20DEF383}.Release|x64.ActiveCfg = Release|Win32 + {2817FDA4-F692-47A1-8373-B4DF20DEF383}.Release|x64.Build.0 = Release|Win32 {2817FDA4-F692-47A1-8373-B4DF20DEF383}.Utils (Release)|Win32.ActiveCfg = Release|Win32 {2817FDA4-F692-47A1-8373-B4DF20DEF383}.Utils (Release)|Win32.Build.0 = Release|Win32 {2817FDA4-F692-47A1-8373-B4DF20DEF383}.Utils (Release)|x64.ActiveCfg = Release|Win32 {2817FDA4-F692-47A1-8373-B4DF20DEF383}.Utils (Release)|x64.Build.0 = Release|Win32 {2817FDA5-F692-47A1-8373-B4DF20DEF383}.Debug|Win32.ActiveCfg = Debug|x64 + {2817FDA5-F692-47A1-8373-B4DF20DEF383}.Debug|Win32.Build.0 = Debug|x64 {2817FDA5-F692-47A1-8373-B4DF20DEF383}.Debug|x64.ActiveCfg = Debug|x64 + {2817FDA5-F692-47A1-8373-B4DF20DEF383}.Debug|x64.Build.0 = Debug|x64 {2817FDA5-F692-47A1-8373-B4DF20DEF383}.Release|Win32.ActiveCfg = Release|x64 + {2817FDA5-F692-47A1-8373-B4DF20DEF383}.Release|Win32.Build.0 = Release|x64 {2817FDA5-F692-47A1-8373-B4DF20DEF383}.Release|x64.ActiveCfg = Release|x64 + {2817FDA5-F692-47A1-8373-B4DF20DEF383}.Release|x64.Build.0 = Release|x64 {2817FDA5-F692-47A1-8373-B4DF20DEF383}.Utils (Release)|Win32.ActiveCfg = Release|x64 {2817FDA5-F692-47A1-8373-B4DF20DEF383}.Utils (Release)|Win32.Build.0 = Release|x64 {2817FDA5-F692-47A1-8373-B4DF20DEF383}.Utils (Release)|x64.ActiveCfg = Release|x64 {2817FDA5-F692-47A1-8373-B4DF20DEF383}.Utils (Release)|x64.Build.0 = Release|x64 {0606C52C-9DA4-468B-B7A6-5C53A360EA91}.Debug|Win32.ActiveCfg = Debug|Win32 + {0606C52C-9DA4-468B-B7A6-5C53A360EA91}.Debug|Win32.Build.0 = Debug|Win32 {0606C52C-9DA4-468B-B7A6-5C53A360EA91}.Debug|x64.ActiveCfg = Debug|x64 + {0606C52C-9DA4-468B-B7A6-5C53A360EA91}.Debug|x64.Build.0 = Debug|x64 {0606C52C-9DA4-468B-B7A6-5C53A360EA91}.Release|Win32.ActiveCfg = Release|Win32 + {0606C52C-9DA4-468B-B7A6-5C53A360EA91}.Release|Win32.Build.0 = Release|Win32 {0606C52C-9DA4-468B-B7A6-5C53A360EA91}.Release|x64.ActiveCfg = Release|x64 + {0606C52C-9DA4-468B-B7A6-5C53A360EA91}.Release|x64.Build.0 = Release|x64 {0606C52C-9DA4-468B-B7A6-5C53A360EA91}.Utils (Release)|Win32.ActiveCfg = Release|Win32 {0606C52C-9DA4-468B-B7A6-5C53A360EA91}.Utils (Release)|Win32.Build.0 = Release|Win32 {0606C52C-9DA4-468B-B7A6-5C53A360EA91}.Utils (Release)|x64.ActiveCfg = Release|x64 {0606C52C-9DA4-468B-B7A6-5C53A360EA91}.Utils (Release)|x64.Build.0 = Release|x64 {C610C287-BC1E-4FAE-9BF4-A1CB68986746}.Debug|Win32.ActiveCfg = Debug|Win32 + {C610C287-BC1E-4FAE-9BF4-A1CB68986746}.Debug|Win32.Build.0 = Debug|Win32 {C610C287-BC1E-4FAE-9BF4-A1CB68986746}.Debug|x64.ActiveCfg = Debug|x64 + {C610C287-BC1E-4FAE-9BF4-A1CB68986746}.Debug|x64.Build.0 = Debug|x64 {C610C287-BC1E-4FAE-9BF4-A1CB68986746}.Release|Win32.ActiveCfg = Release|Win32 + {C610C287-BC1E-4FAE-9BF4-A1CB68986746}.Release|Win32.Build.0 = Release|Win32 {C610C287-BC1E-4FAE-9BF4-A1CB68986746}.Release|x64.ActiveCfg = Release|x64 + {C610C287-BC1E-4FAE-9BF4-A1CB68986746}.Release|x64.Build.0 = Release|x64 {C610C287-BC1E-4FAE-9BF4-A1CB68986746}.Utils (Release)|Win32.ActiveCfg = Release|Win32 {C610C287-BC1E-4FAE-9BF4-A1CB68986746}.Utils (Release)|Win32.Build.0 = Release|Win32 {C610C287-BC1E-4FAE-9BF4-A1CB68986746}.Utils (Release)|x64.ActiveCfg = Release|x64 {C610C287-BC1E-4FAE-9BF4-A1CB68986746}.Utils (Release)|x64.Build.0 = Release|x64 {53D8DB2B-C867-4B87-AB47-68E0ACEB691B}.Debug|Win32.ActiveCfg = Debug|Win32 + {53D8DB2B-C867-4B87-AB47-68E0ACEB691B}.Debug|Win32.Build.0 = Debug|Win32 {53D8DB2B-C867-4B87-AB47-68E0ACEB691B}.Debug|x64.ActiveCfg = Debug|Win32 + {53D8DB2B-C867-4B87-AB47-68E0ACEB691B}.Debug|x64.Build.0 = Debug|Win32 {53D8DB2B-C867-4B87-AB47-68E0ACEB691B}.Release|Win32.ActiveCfg = Release|Win32 + {53D8DB2B-C867-4B87-AB47-68E0ACEB691B}.Release|Win32.Build.0 = Release|Win32 {53D8DB2B-C867-4B87-AB47-68E0ACEB691B}.Release|x64.ActiveCfg = Release|Win32 + {53D8DB2B-C867-4B87-AB47-68E0ACEB691B}.Release|x64.Build.0 = Release|Win32 {53D8DB2B-C867-4B87-AB47-68E0ACEB691B}.Utils (Release)|Win32.ActiveCfg = Release|Win32 {53D8DB2B-C867-4B87-AB47-68E0ACEB691B}.Utils (Release)|Win32.Build.0 = Release|Win32 {53D8DB2B-C867-4B87-AB47-68E0ACEB691B}.Utils (Release)|x64.ActiveCfg = Release|Win32 @@ -989,9 +1009,13 @@ Global {89CD2440-2844-4C0B-9CDE-1045334E9EC0}.Utils (Release)|Win32.ActiveCfg = Release|Win32 {89CD2440-2844-4C0B-9CDE-1045334E9EC0}.Utils (Release)|x64.ActiveCfg = Release|x64 {17CF5E05-F29C-4E5D-BA41-83254E342E0B}.Debug|Win32.ActiveCfg = Debug|Win32 + {17CF5E05-F29C-4E5D-BA41-83254E342E0B}.Debug|Win32.Build.0 = Debug|Win32 {17CF5E05-F29C-4E5D-BA41-83254E342E0B}.Debug|x64.ActiveCfg = Debug|Win32 + {17CF5E05-F29C-4E5D-BA41-83254E342E0B}.Debug|x64.Build.0 = Debug|Win32 {17CF5E05-F29C-4E5D-BA41-83254E342E0B}.Release|Win32.ActiveCfg = Release|Win32 + {17CF5E05-F29C-4E5D-BA41-83254E342E0B}.Release|Win32.Build.0 = Release|Win32 {17CF5E05-F29C-4E5D-BA41-83254E342E0B}.Release|x64.ActiveCfg = Release|Win32 + {17CF5E05-F29C-4E5D-BA41-83254E342E0B}.Release|x64.Build.0 = Release|Win32 {17CF5E05-F29C-4E5D-BA41-83254E342E0B}.Utils (Release)|Win32.ActiveCfg = Release|Win32 {17CF5E05-F29C-4E5D-BA41-83254E342E0B}.Utils (Release)|x64.ActiveCfg = Release|Win32 {49D6CEED-804F-4EA6-BD12-2D825E13DAE3}.Debug|Win32.ActiveCfg = Debug|Win32 @@ -1025,41 +1049,61 @@ Global {21EC6980-0206-421C-BE36-FD169EC2D654}.Utils (Release)|Win32.ActiveCfg = Release|Win32 {21EC6980-0206-421C-BE36-FD169EC2D654}.Utils (Release)|x64.ActiveCfg = Release|x64 {ACD179AE-9891-4B2D-82CF-F3A797661126}.Debug|Win32.ActiveCfg = Debug|Win32 + {ACD179AE-9891-4B2D-82CF-F3A797661126}.Debug|Win32.Build.0 = Debug|Win32 {ACD179AE-9891-4B2D-82CF-F3A797661126}.Debug|x64.ActiveCfg = Debug|Win32 + {ACD179AE-9891-4B2D-82CF-F3A797661126}.Debug|x64.Build.0 = Debug|Win32 {ACD179AE-9891-4B2D-82CF-F3A797661126}.Release|Win32.ActiveCfg = Release|Win32 + {ACD179AE-9891-4B2D-82CF-F3A797661126}.Release|Win32.Build.0 = Release|Win32 {ACD179AE-9891-4B2D-82CF-F3A797661126}.Release|x64.ActiveCfg = Release|Win32 + {ACD179AE-9891-4B2D-82CF-F3A797661126}.Release|x64.Build.0 = Release|Win32 {ACD179AE-9891-4B2D-82CF-F3A797661126}.Utils (Release)|Win32.ActiveCfg = Release|Win32 {ACD179AE-9891-4B2D-82CF-F3A797661126}.Utils (Release)|Win32.Build.0 = Release|Win32 {ACD179AE-9891-4B2D-82CF-F3A797661126}.Utils (Release)|x64.ActiveCfg = Release|Win32 {ACD179AE-9891-4B2D-82CF-F3A797661126}.Utils (Release)|x64.Build.0 = Release|Win32 {997B557B-4FB5-49FF-85AC-1FE66B9EBCFF}.Debug|Win32.ActiveCfg = Debug|Win32 + {997B557B-4FB5-49FF-85AC-1FE66B9EBCFF}.Debug|Win32.Build.0 = Debug|Win32 {997B557B-4FB5-49FF-85AC-1FE66B9EBCFF}.Debug|x64.ActiveCfg = Debug|Win32 + {997B557B-4FB5-49FF-85AC-1FE66B9EBCFF}.Debug|x64.Build.0 = Debug|Win32 {997B557B-4FB5-49FF-85AC-1FE66B9EBCFF}.Release|Win32.ActiveCfg = Release|Win32 + {997B557B-4FB5-49FF-85AC-1FE66B9EBCFF}.Release|Win32.Build.0 = Release|Win32 {997B557B-4FB5-49FF-85AC-1FE66B9EBCFF}.Release|x64.ActiveCfg = Release|Win32 + {997B557B-4FB5-49FF-85AC-1FE66B9EBCFF}.Release|x64.Build.0 = Release|Win32 {997B557B-4FB5-49FF-85AC-1FE66B9EBCFF}.Utils (Release)|Win32.ActiveCfg = Release|Win32 {997B557B-4FB5-49FF-85AC-1FE66B9EBCFF}.Utils (Release)|Win32.Build.0 = Release|Win32 {997B557B-4FB5-49FF-85AC-1FE66B9EBCFF}.Utils (Release)|x64.ActiveCfg = Release|Win32 {997B557B-4FB5-49FF-85AC-1FE66B9EBCFF}.Utils (Release)|x64.Build.0 = Release|Win32 {473B82C6-D658-4D5D-B0EB-8A449B3DCDA9}.Debug|Win32.ActiveCfg = Debug|Win32 + {473B82C6-D658-4D5D-B0EB-8A449B3DCDA9}.Debug|Win32.Build.0 = Debug|Win32 {473B82C6-D658-4D5D-B0EB-8A449B3DCDA9}.Debug|x64.ActiveCfg = Debug|x64 + {473B82C6-D658-4D5D-B0EB-8A449B3DCDA9}.Debug|x64.Build.0 = Debug|x64 {473B82C6-D658-4D5D-B0EB-8A449B3DCDA9}.Release|Win32.ActiveCfg = Release|Win32 + {473B82C6-D658-4D5D-B0EB-8A449B3DCDA9}.Release|Win32.Build.0 = Release|Win32 {473B82C6-D658-4D5D-B0EB-8A449B3DCDA9}.Release|x64.ActiveCfg = Release|x64 + {473B82C6-D658-4D5D-B0EB-8A449B3DCDA9}.Release|x64.Build.0 = Release|x64 {473B82C6-D658-4D5D-B0EB-8A449B3DCDA9}.Utils (Release)|Win32.ActiveCfg = Release|Win32 {473B82C6-D658-4D5D-B0EB-8A449B3DCDA9}.Utils (Release)|Win32.Build.0 = Release|Win32 {473B82C6-D658-4D5D-B0EB-8A449B3DCDA9}.Utils (Release)|x64.ActiveCfg = Release|x64 {473B82C6-D658-4D5D-B0EB-8A449B3DCDA9}.Utils (Release)|x64.Build.0 = Release|x64 {C5833A09-5056-4C59-9E53-721A4D011936}.Debug|Win32.ActiveCfg = Debug|Win32 + {C5833A09-5056-4C59-9E53-721A4D011936}.Debug|Win32.Build.0 = Debug|Win32 {C5833A09-5056-4C59-9E53-721A4D011936}.Debug|x64.ActiveCfg = Debug|Win32 + {C5833A09-5056-4C59-9E53-721A4D011936}.Debug|x64.Build.0 = Debug|Win32 {C5833A09-5056-4C59-9E53-721A4D011936}.Release|Win32.ActiveCfg = Release|Win32 + {C5833A09-5056-4C59-9E53-721A4D011936}.Release|Win32.Build.0 = Release|Win32 {C5833A09-5056-4C59-9E53-721A4D011936}.Release|x64.ActiveCfg = Release|Win32 + {C5833A09-5056-4C59-9E53-721A4D011936}.Release|x64.Build.0 = Release|Win32 {C5833A09-5056-4C59-9E53-721A4D011936}.Utils (Release)|Win32.ActiveCfg = Release|Win32 {C5833A09-5056-4C59-9E53-721A4D011936}.Utils (Release)|Win32.Build.0 = Release|Win32 {C5833A09-5056-4C59-9E53-721A4D011936}.Utils (Release)|x64.ActiveCfg = Release|Win32 {C5833A09-5056-4C59-9E53-721A4D011936}.Utils (Release)|x64.Build.0 = Release|Win32 {D75FF963-62AA-4B33-ACFD-51616CB4FA65}.Debug|Win32.ActiveCfg = Debug|Win32 + {D75FF963-62AA-4B33-ACFD-51616CB4FA65}.Debug|Win32.Build.0 = Debug|Win32 {D75FF963-62AA-4B33-ACFD-51616CB4FA65}.Debug|x64.ActiveCfg = Debug|x64 + {D75FF963-62AA-4B33-ACFD-51616CB4FA65}.Debug|x64.Build.0 = Debug|x64 {D75FF963-62AA-4B33-ACFD-51616CB4FA65}.Release|Win32.ActiveCfg = Release|Win32 + {D75FF963-62AA-4B33-ACFD-51616CB4FA65}.Release|Win32.Build.0 = Release|Win32 {D75FF963-62AA-4B33-ACFD-51616CB4FA65}.Release|x64.ActiveCfg = Release|x64 + {D75FF963-62AA-4B33-ACFD-51616CB4FA65}.Release|x64.Build.0 = Release|x64 {D75FF963-62AA-4B33-ACFD-51616CB4FA65}.Utils (Release)|Win32.ActiveCfg = Release|Win32 {D75FF963-62AA-4B33-ACFD-51616CB4FA65}.Utils (Release)|Win32.Build.0 = Release|Win32 {D75FF963-62AA-4B33-ACFD-51616CB4FA65}.Utils (Release)|x64.ActiveCfg = Release|x64 diff --git a/tools/prepare_installer.ps1 b/tools/prepare_installer.ps1 index ade03bc4..1cc50058 100644 --- a/tools/prepare_installer.ps1 +++ b/tools/prepare_installer.ps1 @@ -1,4 +1,3 @@ - param( [string]$BuildDir = "build_stage", [string]$StagingDir = "Installer_Staging", @@ -11,87 +10,82 @@ New-Item -ItemType Directory -Path "$StagingDir\plugins" New-Item -ItemType Directory -Path "$StagingDir\lang" New-Item -ItemType Directory -Path "$StagingDir\convert" New-Item -ItemType Directory -Path "$StagingDir\toolbars" +New-Item -ItemType Directory -Path "$StagingDir\utils" # 1. Copy base installer files -Copy-Item "Installer\setup.exe" "$StagingDir\" -Copy-Item "Installer\LICENSE" "$StagingDir\" -Copy-Item "Installer\x64" "$StagingDir\" +Copy-Item "Installer\setup.exe" "$StagingDir\" -ErrorAction SilentlyContinue +Copy-Item "Installer\LICENSE" "$StagingDir\" -ErrorAction SilentlyContinue +Copy-Item "Installer\x64" "$StagingDir\" -ErrorAction SilentlyContinue -# 2. Copy main executables -function Copy-Exe($srcPatterns, $exeName, $dest) { +# 2. Copy main executables and DLLs +function Copy-Exe($srcPatterns, $fileName, $dest) { foreach ($pattern in $srcPatterns) { $found = Get-ChildItem -Path $pattern -ErrorAction SilentlyContinue | Select-Object -First 1 if ($found) { Copy-Item $found.FullName $dest - Write-Host "Found $exeName at: $($found.FullName)" + Write-Host "Found $fileName at: $($found.FullName)" return $true } } - # Fallback: search recursively in BuildDir - Write-Warning "$exeName not found in primary locations, searching recursively in $BuildDir..." - $found = Get-ChildItem -Path $BuildDir -Filter $exeName -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1 + # Fallback: search recursively in BuildDir and src + $found = Get-ChildItem -Path $BuildDir, "src" -Filter $fileName -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1 if ($found) { Copy-Item $found.FullName $dest - Write-Host "Found $exeName (recursive) at: $($found.FullName)" + Write-Host "Found $fileName (recursive) at: $($found.FullName)" return $true } + Write-Warning "$fileName not found in primary locations or recursively." return $false } -$salamandCopied = Copy-Exe @( - "$BuildDir\salamander\Release_x64\salamand.exe", - "$BuildDir\Release_x64\salamand.exe", - "$BuildDir\salamand.exe", - "src\vcxproj\salamander\Release_x64\salamand.exe" -) "salamand.exe" "$StagingDir\" - -$salmonCopied = Copy-Exe @( - "$BuildDir\salamander\Release_x64\utils\salmon.exe", - "$BuildDir\salmon\Release_x64\utils\salmon.exe", - "$BuildDir\Release_x64\salmon.exe", - "$BuildDir\salmon.exe", - "src\vcxproj\salmon\salamander\Release_x64\utils\salmon.exe" -) "salmon.exe" "$StagingDir\" - -$removeCopied = Copy-Exe @( - "$BuildDir\remove\Release_x64\remove.exe", - "$BuildDir\Release_x64\remove.exe", - "$BuildDir\remove.exe" -) "remove.exe" "$StagingDir\" +# Main exes +$salamandCopied = Copy-Exe @("$BuildDir\Release_x64\salamand.exe", "src\vcxproj\salamander\Release_x64\salamand.exe") "salamand.exe" "$StagingDir\" +$salmonCopied = Copy-Exe @("$BuildDir\Release_x64\salmon.exe", "src\vcxproj\salmon\salamander\Release_x64\utils\salmon.exe") "salmon.exe" "$StagingDir\" +$removeCopied = Copy-Exe @("$BuildDir\Release_x64\remove.exe", "src\vcxproj\setup\remove\Release_x64\remove.exe") "remove.exe" "$StagingDir\" if (-not $salamandCopied) { Write-Error "Could not find salamand.exe" } if (-not $salmonCopied) { Write-Error "Could not find salmon.exe" } if (-not $removeCopied) { Write-Error "Could not find remove.exe" } +# Shell extensions +Copy-Exe @("$BuildDir\Release_x64\salextx64.dll", "$BuildDir\shellext\Release_x64\salextx64.dll", "src\vcxproj\shellext\salamander\Release_x64\plugins\Intermediate\salextx64\salextx64.dll", "src\vcxproj\shellext\salamander\Release_x64\salextx64.dll") "salextx64.dll" "$StagingDir\" +Copy-Exe @("$BuildDir\Release_Win32\salextx86.dll", "$BuildDir\shellext\Release_Win32\salextx86.dll", "$BuildDir\Release_x64\salextx86.dll", "src\vcxproj\shellext\salamander\Release_x86\plugins\Intermediate\salextx86\salextx86.dll", "src\vcxproj\shellext\salamander\Release_x86\salextx86.dll") "salextx86.dll" "$StagingDir\" + +# Utils +Copy-Exe @("$BuildDir\Release_x64\salpvenv.exe") "salpvenv.exe" "$StagingDir\" + +# OpenSSL +$opensslCopied1 = Copy-Exe @("utils\libeay32.dll", "external\openssl\libeay32.dll", "libeay32.dll") "libeay32.dll" "$StagingDir\utils\" +$opensslCopied2 = Copy-Exe @("utils\ssleay32.dll", "external\openssl\ssleay32.dll", "ssleay32.dll") "ssleay32.dll" "$StagingDir\utils\" + +if (-not $opensslCopied1 -or -not $opensslCopied2) { + Write-Warning "OpenSSL DLLs not found. FTP encryption might not work." +} + # 3. Copy lang (main app) -Copy-Item "Installer\lang\*" "$StagingDir\lang\" -Recurse +Copy-Item "Installer\lang\*" "$StagingDir\lang\" -Recurse -ErrorAction SilentlyContinue # 4. Copy convert -Copy-Item "convert\*" "$StagingDir\convert\" -Recurse +Copy-Item "convert\*" "$StagingDir\convert\" -Recurse -ErrorAction SilentlyContinue # 5. Copy toolbars -Copy-Item "src\res\toolbars\*" "$StagingDir\toolbars\" -Recurse +Copy-Item "src\res\toolbars\*" "$StagingDir\toolbars\" -Recurse -ErrorAction SilentlyContinue # 6. Copy plugins -# Find all .spl files in both src\plugins and BuildDir $splFiles = Get-ChildItem -Path "src\plugins", $BuildDir -Recurse -Filter "*.spl" -ErrorAction SilentlyContinue | Where-Object { $_.FullName -match "Release_x64" -and $_.FullName -notmatch "\\Intermediate\\" } -# Use a hash set to avoid duplicates if same file is found in both places $processedSpl = New-Object System.Collections.Generic.HashSet[string] foreach ($file in $splFiles) { if ($processedSpl.Contains($file.Name)) { continue } $processedSpl.Add($file.Name) | Out-Null - # Extract plugin name from filename (e.g. 7zip.spl -> 7zip) $pluginName = $file.BaseName $pluginDestDir = New-Item -ItemType Directory -Path "$StagingDir\plugins\$pluginName" -Force Copy-Item $file.FullName "$pluginDestDir\" Write-Host "Found plugin $pluginName at: $($file.FullName)" - # Copy plugin's lang files (only .slg, exclude Intermediate) - # Search in the same directory as .spl and its subdirectories $stagedLangDir = $null Get-ChildItem -Path $file.DirectoryName -Filter "*.slg" -Recurse | Where-Object { $_.FullName -notmatch "\\Intermediate\\" } | ForEach-Object { @@ -120,14 +114,25 @@ salmon.exe,%1\salmon.exe,0 remove.exe,%1\remove.exe,0 "@ -# Function to add files to setup.inf +function Add-FileToSetupInf($fileRelPath) { + $script:setupInf += "`n$fileRelPath,%1\$fileRelPath,0" +} + +$rootFiles = @("salextx64.dll", "salextx86.dll", "salopen.exe", "salspawn.exe", "tserver.exe", "sfx7zip.exe", "zip2sfx.exe", "salpvenv.exe", "translator.exe") +foreach ($rf in $rootFiles) { + if (Test-Path "$StagingDir\$rf") { + Add-FileToSetupInf $rf + } +} + function Add-ToSetupInf($path) { - $files = Get-ChildItem -Path "$StagingDir\$path" -File -Recurse - foreach ($f in $files) { - $relPath = $f.FullName.Substring((Get-Item $StagingDir).FullName.Length + 1) - # Check if the file is in an Intermediate directory (shouldn't be there, but just in case) - if ($relPath -notmatch "\\Intermediate\\") { - $script:setupInf += "`n$relPath,%1\$relPath,0" + if (Test-Path "$StagingDir\$path") { + $files = Get-ChildItem -Path "$StagingDir\$path" -File -Recurse + foreach ($f in $files) { + $relPath = $f.FullName.Substring((Get-Item $StagingDir).FullName.Length + 1) + if ($relPath -notmatch "\\Intermediate\\") { + Add-FileToSetupInf $relPath + } } } } @@ -136,6 +141,7 @@ Add-ToSetupInf "lang" Add-ToSetupInf "convert" Add-ToSetupInf "toolbars" Add-ToSetupInf "plugins" +Add-ToSetupInf "utils" $setupInf += @" From 6db868953862cb935765e586a041fae6d758d41b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Skaziak?= Date: Wed, 25 Mar 2026 16:43:45 +0100 Subject: [PATCH 8/8] fix(installer): configure build for shell extensions and exclude specific utilities This commit updates the solution to ensure shell extensions (salextx86, salextx64) are built in Release|x64 configuration. It also updates the installer preparation script to properly locate these files while explicitly excluding other helper utilities like salopen.exe and zip2sfx.exe as requested. --- src/vcxproj/salamand.sln | 43 ++----------------------------------- tools/prepare_installer.ps1 | 3 +-- 2 files changed, 3 insertions(+), 43 deletions(-) diff --git a/src/vcxproj/salamand.sln b/src/vcxproj/salamand.sln index 83a0065a..7e43fb40 100644 --- a/src/vcxproj/salamand.sln +++ b/src/vcxproj/salamand.sln @@ -1,3 +1,4 @@ + Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.9.34310.174 @@ -866,8 +867,7 @@ Global {161BE79F-F035-486F-B36D-950799F0E110}.Release|x64.ActiveCfg = Release|x64 {161BE79F-F035-486F-B36D-950799F0E110}.Release|x64.Build.0 = Release|x64 {161BE79F-F035-486F-B36D-950799F0E110}.Utils (Release)|Win32.ActiveCfg = Release|Win32 - {161BE79F-F035-486F-B36D-950799F0E110}.Utils (Release)|x64.ActiveCfg = Release|Win32 - {161BE79F-F035-486F-B36D-950799F0E110}.Utils (Release)|x64.Build.0 = Release|Win32 + {161BE79F-F035-486F-B36D-950799F0E110}.Utils (Release)|x64.ActiveCfg = Release|x64 {85478010-C90E-4C07-ADBE-D2276E435749}.Debug|Win32.ActiveCfg = Debug|Win32 {85478010-C90E-4C07-ADBE-D2276E435749}.Debug|Win32.Build.0 = Debug|Win32 {85478010-C90E-4C07-ADBE-D2276E435749}.Debug|x64.ActiveCfg = Debug|x64 @@ -919,11 +919,8 @@ Global {61BC1DA8-A452-4FB1-B8C6-533D351A66E2}.Utils (Release)|Win32.ActiveCfg = Release|Win32 {61BC1DA8-A452-4FB1-B8C6-533D351A66E2}.Utils (Release)|x64.ActiveCfg = Release|x64 {2817FDA4-F692-47A1-8373-B4DF20DEF383}.Debug|Win32.ActiveCfg = Debug|Win32 - {2817FDA4-F692-47A1-8373-B4DF20DEF383}.Debug|Win32.Build.0 = Debug|Win32 {2817FDA4-F692-47A1-8373-B4DF20DEF383}.Debug|x64.ActiveCfg = Debug|Win32 - {2817FDA4-F692-47A1-8373-B4DF20DEF383}.Debug|x64.Build.0 = Debug|Win32 {2817FDA4-F692-47A1-8373-B4DF20DEF383}.Release|Win32.ActiveCfg = Release|Win32 - {2817FDA4-F692-47A1-8373-B4DF20DEF383}.Release|Win32.Build.0 = Release|Win32 {2817FDA4-F692-47A1-8373-B4DF20DEF383}.Release|x64.ActiveCfg = Release|Win32 {2817FDA4-F692-47A1-8373-B4DF20DEF383}.Release|x64.Build.0 = Release|Win32 {2817FDA4-F692-47A1-8373-B4DF20DEF383}.Utils (Release)|Win32.ActiveCfg = Release|Win32 @@ -943,37 +940,25 @@ Global {2817FDA5-F692-47A1-8373-B4DF20DEF383}.Utils (Release)|x64.ActiveCfg = Release|x64 {2817FDA5-F692-47A1-8373-B4DF20DEF383}.Utils (Release)|x64.Build.0 = Release|x64 {0606C52C-9DA4-468B-B7A6-5C53A360EA91}.Debug|Win32.ActiveCfg = Debug|Win32 - {0606C52C-9DA4-468B-B7A6-5C53A360EA91}.Debug|Win32.Build.0 = Debug|Win32 {0606C52C-9DA4-468B-B7A6-5C53A360EA91}.Debug|x64.ActiveCfg = Debug|x64 - {0606C52C-9DA4-468B-B7A6-5C53A360EA91}.Debug|x64.Build.0 = Debug|x64 {0606C52C-9DA4-468B-B7A6-5C53A360EA91}.Release|Win32.ActiveCfg = Release|Win32 - {0606C52C-9DA4-468B-B7A6-5C53A360EA91}.Release|Win32.Build.0 = Release|Win32 {0606C52C-9DA4-468B-B7A6-5C53A360EA91}.Release|x64.ActiveCfg = Release|x64 - {0606C52C-9DA4-468B-B7A6-5C53A360EA91}.Release|x64.Build.0 = Release|x64 {0606C52C-9DA4-468B-B7A6-5C53A360EA91}.Utils (Release)|Win32.ActiveCfg = Release|Win32 {0606C52C-9DA4-468B-B7A6-5C53A360EA91}.Utils (Release)|Win32.Build.0 = Release|Win32 {0606C52C-9DA4-468B-B7A6-5C53A360EA91}.Utils (Release)|x64.ActiveCfg = Release|x64 {0606C52C-9DA4-468B-B7A6-5C53A360EA91}.Utils (Release)|x64.Build.0 = Release|x64 {C610C287-BC1E-4FAE-9BF4-A1CB68986746}.Debug|Win32.ActiveCfg = Debug|Win32 - {C610C287-BC1E-4FAE-9BF4-A1CB68986746}.Debug|Win32.Build.0 = Debug|Win32 {C610C287-BC1E-4FAE-9BF4-A1CB68986746}.Debug|x64.ActiveCfg = Debug|x64 - {C610C287-BC1E-4FAE-9BF4-A1CB68986746}.Debug|x64.Build.0 = Debug|x64 {C610C287-BC1E-4FAE-9BF4-A1CB68986746}.Release|Win32.ActiveCfg = Release|Win32 - {C610C287-BC1E-4FAE-9BF4-A1CB68986746}.Release|Win32.Build.0 = Release|Win32 {C610C287-BC1E-4FAE-9BF4-A1CB68986746}.Release|x64.ActiveCfg = Release|x64 - {C610C287-BC1E-4FAE-9BF4-A1CB68986746}.Release|x64.Build.0 = Release|x64 {C610C287-BC1E-4FAE-9BF4-A1CB68986746}.Utils (Release)|Win32.ActiveCfg = Release|Win32 {C610C287-BC1E-4FAE-9BF4-A1CB68986746}.Utils (Release)|Win32.Build.0 = Release|Win32 {C610C287-BC1E-4FAE-9BF4-A1CB68986746}.Utils (Release)|x64.ActiveCfg = Release|x64 {C610C287-BC1E-4FAE-9BF4-A1CB68986746}.Utils (Release)|x64.Build.0 = Release|x64 {53D8DB2B-C867-4B87-AB47-68E0ACEB691B}.Debug|Win32.ActiveCfg = Debug|Win32 - {53D8DB2B-C867-4B87-AB47-68E0ACEB691B}.Debug|Win32.Build.0 = Debug|Win32 {53D8DB2B-C867-4B87-AB47-68E0ACEB691B}.Debug|x64.ActiveCfg = Debug|Win32 - {53D8DB2B-C867-4B87-AB47-68E0ACEB691B}.Debug|x64.Build.0 = Debug|Win32 {53D8DB2B-C867-4B87-AB47-68E0ACEB691B}.Release|Win32.ActiveCfg = Release|Win32 - {53D8DB2B-C867-4B87-AB47-68E0ACEB691B}.Release|Win32.Build.0 = Release|Win32 {53D8DB2B-C867-4B87-AB47-68E0ACEB691B}.Release|x64.ActiveCfg = Release|Win32 - {53D8DB2B-C867-4B87-AB47-68E0ACEB691B}.Release|x64.Build.0 = Release|Win32 {53D8DB2B-C867-4B87-AB47-68E0ACEB691B}.Utils (Release)|Win32.ActiveCfg = Release|Win32 {53D8DB2B-C867-4B87-AB47-68E0ACEB691B}.Utils (Release)|Win32.Build.0 = Release|Win32 {53D8DB2B-C867-4B87-AB47-68E0ACEB691B}.Utils (Release)|x64.ActiveCfg = Release|Win32 @@ -1009,13 +994,9 @@ Global {89CD2440-2844-4C0B-9CDE-1045334E9EC0}.Utils (Release)|Win32.ActiveCfg = Release|Win32 {89CD2440-2844-4C0B-9CDE-1045334E9EC0}.Utils (Release)|x64.ActiveCfg = Release|x64 {17CF5E05-F29C-4E5D-BA41-83254E342E0B}.Debug|Win32.ActiveCfg = Debug|Win32 - {17CF5E05-F29C-4E5D-BA41-83254E342E0B}.Debug|Win32.Build.0 = Debug|Win32 {17CF5E05-F29C-4E5D-BA41-83254E342E0B}.Debug|x64.ActiveCfg = Debug|Win32 - {17CF5E05-F29C-4E5D-BA41-83254E342E0B}.Debug|x64.Build.0 = Debug|Win32 {17CF5E05-F29C-4E5D-BA41-83254E342E0B}.Release|Win32.ActiveCfg = Release|Win32 - {17CF5E05-F29C-4E5D-BA41-83254E342E0B}.Release|Win32.Build.0 = Release|Win32 {17CF5E05-F29C-4E5D-BA41-83254E342E0B}.Release|x64.ActiveCfg = Release|Win32 - {17CF5E05-F29C-4E5D-BA41-83254E342E0B}.Release|x64.Build.0 = Release|Win32 {17CF5E05-F29C-4E5D-BA41-83254E342E0B}.Utils (Release)|Win32.ActiveCfg = Release|Win32 {17CF5E05-F29C-4E5D-BA41-83254E342E0B}.Utils (Release)|x64.ActiveCfg = Release|Win32 {49D6CEED-804F-4EA6-BD12-2D825E13DAE3}.Debug|Win32.ActiveCfg = Debug|Win32 @@ -1049,61 +1030,41 @@ Global {21EC6980-0206-421C-BE36-FD169EC2D654}.Utils (Release)|Win32.ActiveCfg = Release|Win32 {21EC6980-0206-421C-BE36-FD169EC2D654}.Utils (Release)|x64.ActiveCfg = Release|x64 {ACD179AE-9891-4B2D-82CF-F3A797661126}.Debug|Win32.ActiveCfg = Debug|Win32 - {ACD179AE-9891-4B2D-82CF-F3A797661126}.Debug|Win32.Build.0 = Debug|Win32 {ACD179AE-9891-4B2D-82CF-F3A797661126}.Debug|x64.ActiveCfg = Debug|Win32 - {ACD179AE-9891-4B2D-82CF-F3A797661126}.Debug|x64.Build.0 = Debug|Win32 {ACD179AE-9891-4B2D-82CF-F3A797661126}.Release|Win32.ActiveCfg = Release|Win32 - {ACD179AE-9891-4B2D-82CF-F3A797661126}.Release|Win32.Build.0 = Release|Win32 {ACD179AE-9891-4B2D-82CF-F3A797661126}.Release|x64.ActiveCfg = Release|Win32 - {ACD179AE-9891-4B2D-82CF-F3A797661126}.Release|x64.Build.0 = Release|Win32 {ACD179AE-9891-4B2D-82CF-F3A797661126}.Utils (Release)|Win32.ActiveCfg = Release|Win32 {ACD179AE-9891-4B2D-82CF-F3A797661126}.Utils (Release)|Win32.Build.0 = Release|Win32 {ACD179AE-9891-4B2D-82CF-F3A797661126}.Utils (Release)|x64.ActiveCfg = Release|Win32 {ACD179AE-9891-4B2D-82CF-F3A797661126}.Utils (Release)|x64.Build.0 = Release|Win32 {997B557B-4FB5-49FF-85AC-1FE66B9EBCFF}.Debug|Win32.ActiveCfg = Debug|Win32 - {997B557B-4FB5-49FF-85AC-1FE66B9EBCFF}.Debug|Win32.Build.0 = Debug|Win32 {997B557B-4FB5-49FF-85AC-1FE66B9EBCFF}.Debug|x64.ActiveCfg = Debug|Win32 - {997B557B-4FB5-49FF-85AC-1FE66B9EBCFF}.Debug|x64.Build.0 = Debug|Win32 {997B557B-4FB5-49FF-85AC-1FE66B9EBCFF}.Release|Win32.ActiveCfg = Release|Win32 - {997B557B-4FB5-49FF-85AC-1FE66B9EBCFF}.Release|Win32.Build.0 = Release|Win32 {997B557B-4FB5-49FF-85AC-1FE66B9EBCFF}.Release|x64.ActiveCfg = Release|Win32 - {997B557B-4FB5-49FF-85AC-1FE66B9EBCFF}.Release|x64.Build.0 = Release|Win32 {997B557B-4FB5-49FF-85AC-1FE66B9EBCFF}.Utils (Release)|Win32.ActiveCfg = Release|Win32 {997B557B-4FB5-49FF-85AC-1FE66B9EBCFF}.Utils (Release)|Win32.Build.0 = Release|Win32 {997B557B-4FB5-49FF-85AC-1FE66B9EBCFF}.Utils (Release)|x64.ActiveCfg = Release|Win32 {997B557B-4FB5-49FF-85AC-1FE66B9EBCFF}.Utils (Release)|x64.Build.0 = Release|Win32 {473B82C6-D658-4D5D-B0EB-8A449B3DCDA9}.Debug|Win32.ActiveCfg = Debug|Win32 - {473B82C6-D658-4D5D-B0EB-8A449B3DCDA9}.Debug|Win32.Build.0 = Debug|Win32 {473B82C6-D658-4D5D-B0EB-8A449B3DCDA9}.Debug|x64.ActiveCfg = Debug|x64 - {473B82C6-D658-4D5D-B0EB-8A449B3DCDA9}.Debug|x64.Build.0 = Debug|x64 {473B82C6-D658-4D5D-B0EB-8A449B3DCDA9}.Release|Win32.ActiveCfg = Release|Win32 - {473B82C6-D658-4D5D-B0EB-8A449B3DCDA9}.Release|Win32.Build.0 = Release|Win32 {473B82C6-D658-4D5D-B0EB-8A449B3DCDA9}.Release|x64.ActiveCfg = Release|x64 - {473B82C6-D658-4D5D-B0EB-8A449B3DCDA9}.Release|x64.Build.0 = Release|x64 {473B82C6-D658-4D5D-B0EB-8A449B3DCDA9}.Utils (Release)|Win32.ActiveCfg = Release|Win32 {473B82C6-D658-4D5D-B0EB-8A449B3DCDA9}.Utils (Release)|Win32.Build.0 = Release|Win32 {473B82C6-D658-4D5D-B0EB-8A449B3DCDA9}.Utils (Release)|x64.ActiveCfg = Release|x64 {473B82C6-D658-4D5D-B0EB-8A449B3DCDA9}.Utils (Release)|x64.Build.0 = Release|x64 {C5833A09-5056-4C59-9E53-721A4D011936}.Debug|Win32.ActiveCfg = Debug|Win32 - {C5833A09-5056-4C59-9E53-721A4D011936}.Debug|Win32.Build.0 = Debug|Win32 {C5833A09-5056-4C59-9E53-721A4D011936}.Debug|x64.ActiveCfg = Debug|Win32 - {C5833A09-5056-4C59-9E53-721A4D011936}.Debug|x64.Build.0 = Debug|Win32 {C5833A09-5056-4C59-9E53-721A4D011936}.Release|Win32.ActiveCfg = Release|Win32 - {C5833A09-5056-4C59-9E53-721A4D011936}.Release|Win32.Build.0 = Release|Win32 {C5833A09-5056-4C59-9E53-721A4D011936}.Release|x64.ActiveCfg = Release|Win32 - {C5833A09-5056-4C59-9E53-721A4D011936}.Release|x64.Build.0 = Release|Win32 {C5833A09-5056-4C59-9E53-721A4D011936}.Utils (Release)|Win32.ActiveCfg = Release|Win32 {C5833A09-5056-4C59-9E53-721A4D011936}.Utils (Release)|Win32.Build.0 = Release|Win32 {C5833A09-5056-4C59-9E53-721A4D011936}.Utils (Release)|x64.ActiveCfg = Release|Win32 {C5833A09-5056-4C59-9E53-721A4D011936}.Utils (Release)|x64.Build.0 = Release|Win32 {D75FF963-62AA-4B33-ACFD-51616CB4FA65}.Debug|Win32.ActiveCfg = Debug|Win32 - {D75FF963-62AA-4B33-ACFD-51616CB4FA65}.Debug|Win32.Build.0 = Debug|Win32 {D75FF963-62AA-4B33-ACFD-51616CB4FA65}.Debug|x64.ActiveCfg = Debug|x64 - {D75FF963-62AA-4B33-ACFD-51616CB4FA65}.Debug|x64.Build.0 = Debug|x64 {D75FF963-62AA-4B33-ACFD-51616CB4FA65}.Release|Win32.ActiveCfg = Release|Win32 - {D75FF963-62AA-4B33-ACFD-51616CB4FA65}.Release|Win32.Build.0 = Release|Win32 {D75FF963-62AA-4B33-ACFD-51616CB4FA65}.Release|x64.ActiveCfg = Release|x64 - {D75FF963-62AA-4B33-ACFD-51616CB4FA65}.Release|x64.Build.0 = Release|x64 {D75FF963-62AA-4B33-ACFD-51616CB4FA65}.Utils (Release)|Win32.ActiveCfg = Release|Win32 {D75FF963-62AA-4B33-ACFD-51616CB4FA65}.Utils (Release)|Win32.Build.0 = Release|Win32 {D75FF963-62AA-4B33-ACFD-51616CB4FA65}.Utils (Release)|x64.ActiveCfg = Release|x64 diff --git a/tools/prepare_installer.ps1 b/tools/prepare_installer.ps1 index 1cc50058..2159f126 100644 --- a/tools/prepare_installer.ps1 +++ b/tools/prepare_installer.ps1 @@ -52,7 +52,6 @@ Copy-Exe @("$BuildDir\Release_x64\salextx64.dll", "$BuildDir\shellext\Release_x6 Copy-Exe @("$BuildDir\Release_Win32\salextx86.dll", "$BuildDir\shellext\Release_Win32\salextx86.dll", "$BuildDir\Release_x64\salextx86.dll", "src\vcxproj\shellext\salamander\Release_x86\plugins\Intermediate\salextx86\salextx86.dll", "src\vcxproj\shellext\salamander\Release_x86\salextx86.dll") "salextx86.dll" "$StagingDir\" # Utils -Copy-Exe @("$BuildDir\Release_x64\salpvenv.exe") "salpvenv.exe" "$StagingDir\" # OpenSSL $opensslCopied1 = Copy-Exe @("utils\libeay32.dll", "external\openssl\libeay32.dll", "libeay32.dll") "libeay32.dll" "$StagingDir\utils\" @@ -118,7 +117,7 @@ function Add-FileToSetupInf($fileRelPath) { $script:setupInf += "`n$fileRelPath,%1\$fileRelPath,0" } -$rootFiles = @("salextx64.dll", "salextx86.dll", "salopen.exe", "salspawn.exe", "tserver.exe", "sfx7zip.exe", "zip2sfx.exe", "salpvenv.exe", "translator.exe") +$rootFiles = @("salextx64.dll", "salextx86.dll") foreach ($rf in $rootFiles) { if (Test-Path "$StagingDir\$rf") { Add-FileToSetupInf $rf