From 5eaafbde48714a002d75aa800898b777d159fded Mon Sep 17 00:00:00 2001 From: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com> Date: Wed, 8 Oct 2025 15:37:36 +0200 Subject: [PATCH] feat: Add filter persistence with settings integration (#78) * feat: Add settings modal with GitHub PAT and filter toggle - Add GeneralSettingsModal with General and GitHub tabs - Create GitHub PAT input field that saves to .env as GITHUB_TOKEN - Add animated toggle component for SAVE_FILTER setting - Create API endpoints for settings management - Add Input and Toggle UI components - Implement smooth animations for toggle interactions - Add proper error handling and user feedback * feat: Add filter persistence with settings integration - Add filter persistence system that saves user filter preferences to .env - Create FILTERS variable in .env to store complete filter state as JSON - Add SAVE_FILTER toggle in settings to enable/disable persistence - Implement auto-save functionality with 500ms debounce - Add loading states and visual feedback for filter restoration - Create API endpoints for managing saved filters - Add filter management UI in settings modal - Support for search query, type filters, sort order, and updatable status - Seamless integration across all script tabs (Available, Downloaded, Installed) - Auto-clear saved filters when persistence is disabled --- .env.example | 6 +- public/favicon.png | Bin 64142 -> 65754 bytes src/app/_components/DownloadedScriptsTab.tsx | 60 ++++ src/app/_components/FilterBar.tsx | 26 ++ src/app/_components/GeneralSettingsModal.tsx | 308 +++++++++++++++++++ src/app/_components/ScriptsGrid.tsx | 60 ++++ src/app/_components/ServerSettingsButton.tsx | 50 +++ src/app/_components/SettingsButton.tsx | 33 +- src/app/_components/SettingsModal.tsx | 79 ++--- src/app/_components/ui/input.tsx | 23 ++ src/app/_components/ui/toggle.tsx | 41 +++ src/app/api/settings/filters/route.ts | 141 +++++++++ src/app/api/settings/github-token/route.ts | 75 +++++ src/app/api/settings/save-filter/route.ts | 75 +++++ src/app/page.tsx | 12 +- 15 files changed, 896 insertions(+), 93 deletions(-) create mode 100644 src/app/_components/GeneralSettingsModal.tsx create mode 100644 src/app/_components/ServerSettingsButton.tsx create mode 100644 src/app/_components/ui/input.tsx create mode 100644 src/app/_components/ui/toggle.tsx create mode 100644 src/app/api/settings/filters/route.ts create mode 100644 src/app/api/settings/github-token/route.ts create mode 100644 src/app/api/settings/save-filter/route.ts diff --git a/.env.example b/.env.example index 22ab3db..0057588 100644 --- a/.env.example +++ b/.env.example @@ -16,4 +16,8 @@ ALLOWED_SCRIPT_PATHS="scripts/" # WebSocket Configuration WEBSOCKET_PORT="3001" -GITHUB_TOKEN=your_github_token_here \ No newline at end of file + +# User settings +GITHUB_TOKEN= +SAVE_FILTER=false +FILTERS= diff --git a/public/favicon.png b/public/favicon.png index 1d2186daaff82486871ca55f12b4014d988c7841..5e4b11bbe461650d9d8556f24e79ebe7e8cea909 100644 GIT binary patch literal 65754 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 literal 64142 zcmZsCWmsEL(=AqtyOpBBy~SOFyB3NUD^^^ByIXLITX9<4r9ew?iWYYW#RIeiz2W`d z@5jB*{go$q&dJ$(X6>0ZGwZ}^X(-}iQDPw>A>k@30d48@0&rc?@Q6{c2d3}uAIeLkuDSAk7K%!xMAee_k`DnGuDoXe z;tBJnKte-;s8QqDOetQgKV7AT-A{LICgPR<=KfL>2K(8`g`|P(aEGv6? z{U4^xavm@GMnkC|@A4PTJWf(h`NUSG;URI9h{wuH1O}W_QzOSgHnMy7x1@TX;LwxS z_kIy<1`pe`+`WfUGF2kffyV&>KO&J>F1J7PNG=0pEz~I-h%3JOL(7*66YKCMth1q^ z5vIDAxxw9=x5h6k_Q`(LoEMWJqvVapTcq9)#N#8U8kl`<{j>E>(op!z%&d;=2w|n> zov==WL+~a3fobpI8S&!%SwU%qp~7{`5W^N-c3`m7DaS zweCsld$Fd*@cJ811m8o65O=K%k$v|S$szyFctKD05`_f(Cr?F_#st2rB?)w!>Ej{85}*2(j!AWX-nA5cX73OTcd*Y07;JnwM? zRX~<^@1xE65Tk{dmcXmjEYy2WKjrKB@-r>?gxU3sOb zE`QAzejn+s`HJ-TI3XJXfF1G)J~+XyG=o0RcV!62g*pkMmNJH#aAU`~UrFur_T-M= z#V|IR4B2Gb7EkhsQXuvUzum;(CqxFoUNs3l1k4=E@35mb@z1Ht0!-mcbqx`_a_ykNqFy5zDl15_$~SKK_A!jFCV@p&XI)Qki(mSOf{+ z$@gLmFSP%qp+)Z*I`nIA@Go2;9JZ$-L$}SH)9mMSmVG&(IRBl%;xL*|NK)8l;r=E2 z9!y756{#5CSJ2uBMV8P^Ns6f-o1PLKg=cW2JAA^*js}nAa#FnOe(n8>P}AJ}GoIT6 z>f#(2fB1=GT<8mA`T!-Qz05(2Un23NTgWK#d*Zw<8OobNB8&+0;A0X>6>~83^TQ5b z2mc*ijg(p=V$_i-p^||jn~|lG@O}&cxXYl*0z3g8Ld+iAO`dx#9_<_XY49zDJgKiA z3FrX99t*dHed3N6sAA#*kux-q4&WTOo_yGj_7#`H68jZj(GxlWx|`nQNcTtPE@GVY zG!RQR@DZyn83_*V6SjH?=b6ZPN~?YYCLvl&nKVk#BSkUst;esVq#HVnCMnY$nhf(2 zQQ@&8!p<^!AMAZY{Vy7c#iN&77{#By9|p0j4|W~BQw_RJnx~HV5Bf+$nOR* zzx?=~fi05#-zC_$`7Na*SKj!F=fcgzB?1Nqj-d=lA^fm+cFqCk__|UQ@9aD|M%bC@ zm@CVO*#d!~~kI(7)NAAxz#|vjd z2@x)`yzPu;nJ^OW)L`QniQQHFgwl(T2LG6AMpsxz^kn_r$4tfkKFt3qX^fNF_f~9T zS~$n&bJZ@-3>8`or10q|E_(g`YOKLHkZ-SYq~{)z>#=w*V8Z8u>36^Ug}#5J+urx0 zNsJJsmhR(nRJ0i=_~Q48*{)*2bs!oBB^)diH;{XOnm3+{^Qy0C39&&JLC^bv4+m2}cLAz{CU|NvLucc%1J?nKR=uM=$0wS-Z(eIFxh@oiP9Q-WQ z{M?gGiiWrcUPxbwQuhup)M5gYHuw7AfXrwtXbtb7Psh63rSa!K}mnCBA_;vnRrkxO-C6BbQOj_?VIi-S&68#0s_ zQ72aWXhp8m&*efAn*Zk3>9AtujbqEl6)w6XAk;=B7ZeSU4zb^zqyP9ftnipXm6)cS z28(`E$E#upD=Yw}M=#}G_$LhKMk6x~L^#ex`yt{Px+cx zDfhpaOXf77;*<+Ww^rE=h)WT%?XkDJKG1%QZ(&9DuY(?8tC3c1XtAkpmT-|H*LM}U z6|B30rC>h=TPFf#H1;Rtlgt-ApTie5UywYQPC7R~IJ@<9>)k##P0#G2_Z=9UhF?BR zeSP;OjKRfCPeW+a+Kf@PTo)%T4OEe>@JQs(fBaw^Us${(31~B`-(KbMOfp| z)Kh)n;FpcaH{0}x`)(Wa#*O3X`g##$C5JqTRH`YQfxxED$@e2{Rg<m|`SuTpI8o2e<+oX2v1*NvO|Pp! zV#C~ZPr)VaJ$NJKuB}aI9SEr+5$EtBkaF*o3KSR4xok0@Lg1Ar3A9}*j)BP4eQ%xD zO4AOwsdOvSnT)3pHUVm&?(<@sw@2e6I88LZ<71hiG$IL9Y?#6!xwJgg4~Z_!2+RRq zl+A{upIyzO<8wnZ?@~c74fU|BHgivgDO)xS=^!0qf=%mnv~M?6)Y!<&$9cTYgA8AL z`#v6fYpOK&(t=bsveH1Rgu9F6NeD7D(6DXiO@}y~=6M(M3~65id716>7*~EKcbD^w zk93z~z>ct=0kma!!6$}+0^CjeQs=+>13xoKq=>d-2c>agl40L^eUf;(oMvjITUFiX zqK~uYIIrXJ*9hPKhIy$TBWe#xZ+;}B>VMMRz9OEH{R=5r=Jt>O=igUeA(E?|U0tx# z=rPm36P$@Mi!TJfxf#_XH0`4ZigVcvy(!?}F)l9&r$cNHUKh5o``ZCR1oDIp?#I1> zA@aMki&COCf5Yw&nJ)b+6F|y+DvIb1?7u6&ULCZ{6=p_2j3Z{qA4a@7v1MdE;26uRLlSXQR6U^RWWNjCCiyCs@_Q=awJ;$>5gP4w z>@OLIAYU>YFK7|4z}E0n4BD$~82YJLF@F2esl_`YhY6GE+=7AFuO~Z}7`~HNFc!k)E?k-Ex;zp=Nkl+ka#1c?Is{awX8aG5 zzEqg7#Kx4CWQL-I+22af3INhaoS}s%b?maE$;&`RosSjQbw2)O^k8$HPDU(EW^a-9 zxsnO6Zx%zTZS=UkRW!>Md3tO%1CJ`DE7lL?eoh3O1(e2o15e!q@fpAvmvy9IWU^_C z$4g!9DFFyn0n^Qc2oPcAa_`rF=hkA|$qL+%$hx}ZOgk`8!P&%&QWI_oknf=U!TjExSj!#&|pb|~gMK?_}) z4gdqr3p8Z=jT0)Yjwl zP|T2}A*bhsR;yN+26Eh-IQs=h7;GJW&_38hzjB<{vIUOiBTKBy8Y3#G{f-@gW`;+! z2aYE~slFW{NAqeIVs(;!88coJ{LmBsX_Hsgk^Ia1`vKMCS$3(?!7n~X9ndRFfpBQe1z6m!!+mkm4b1gQ}YQXft*|Am7Faoo!} zbfg7YE(|ne=yYu5utgLnPmfB^3rMGIYE4KQEv0JIvxYdj@w%Wd+^5#ZBBETq$XWDt zozEV4>iv~;ok{gd366|D9ej?O6-cLq0Snq4e|YnkfhD7SEg#<)DdR|b!OJ%cP1tCk zdiGsq-D9%xRNvN@9shHzX)@_Co;C7kxac>tA;RI)UDiDQ(_xd%PVWWLm(px4HQY~~ z=#4~NQpxf=B>B4Gm$Rk9PW<}D$Fh%o&XUso=jzB`|t|rMM&RF7o zpseS*H!Bx5_-~-LVaOk`#hq}b9q-%EZ0T3h3zu|gg8b^CI~^E?G$78p>EI>_O+Y^& zdGydRHZJNT@w;^7w;|hI!UHQt4~1=Jo;zGDi0Bc((cmZ^n+96UJ{Ww=ECWBCHGAQ! zBWh{kv17|l6{4j)T#1Z`j2b&i5$7NU)2yBFd&nWi&IT#SnmfgWF%F{&h2Pci1?vcB zU+2ln^I}Dk$MNr~k5}<`t=Bsa+Dz9^ci!-?f9~9FAeS-;GWYtJt%c)Duqi@jtshCp z;cDNcD`DgCHl{Of_>VGK==)Z$NpNI++lgwdy#Gv%2a?%2B~3Ed%PSy8e&$gRWqrnT*Z#)BWa*@h9QpyK#dT1skkr4k1~_Sl@;Ejyl%NrG=q|h@te}u33ix?8E&wJJ2eUl1VPN=k z87)9WimVAUC1kaG2(ZqTzuFoxUR*clbdFJ5@Nfn7y{`LE<~5sbSo(1^a4JnWQ6>U_ z>1uR|lUP9M{6~ezqI{_rNolTEU$(`7(a0S9Dtg=?26!pG+1@)mlJP8HgNNL7+-m$P%|>NHtzQGh|=}$ zgIm5+DHf*VkA$1|ACmf!|FdF+Cc+|dSnRBUjp>Z&jg|SNf*d z&Bvv8H?W$MN{@g_8&bMHcTL_R=Fu$<(PnG5_yy{i^UGB(op|9_C9DJ3s0J=gs!_#Y zULEJ!Qe8LgoxH1?C%)8;!u9o-@xu-LznB)0stE%-PuhPN1C21;W-;?08VCgEWaq3A z^mpX~xh^6nnyHSGqNDn}aaJ>6M{zNM!sBf+B)4bbCNdgP4#A7xZrdHdM7FgOvsxog zvkefPYu!R{w|F#&SI^TgPQ_@p;0q)tWvi5cc926A`|dNhl*# z=%JTCRa3J>qqPwdjQbY*`;wpb=7PL`y@`P9uJX3|qT%jI@zx)>UlvWQd^TD;66_Fj zY>MAlrI?%7`h(qAuJK~xcu0LPIp`#mHc!H~y}vwT@bPi zxTwv*>n#zRI!Dy*1szV8LiC8%%zpK-+2;p%;JmC5AHU!C7SxY%NNi2GJ(27IcM%0p z;sxnRgYW$OWqf2;GYnd1$~UgRcx&%(U;9?0lY^NxjJVYlEZx4Ln5S-yh@vQmzh5Q} zEtAb8#fZa_NoRN!US6fR#8BH}Qfr?!N8BI@7B6oj$T?#veH#btqnm+xu^ z$d48W-|5{D7?Q;l|-3G|czc#3qo4%^kR4cd~>9Oa^aFvfsl8*^Rd89_5;i`rZXz!p^esvNDD}_Z(-}RUA^^SM&q$2vLg)kS4Y*ZYd ztgJOa>%dWz*&#U$#zF{I>s)z*<&g%bNh?<9hXHI-g};oYzOv0#Y^v4h{sbepquIIWJCoT5=_Jc} z3?q+Q=XDU74|gy8fUbvzSX(fFm&nW{kFysQ%!Bu#x~dVQ-i7>7Zjkz3>>vWK4# zPP=aQ2+6%PNLnMz#xxelp(+_gc7*RYiaWo;u!e>vGIX<>y!nO}UKTSh18$@Pz7Pl< z^R#29fxRHTHVBEV5&8iC$yM1X_mOGOHH;wXNQNFjE{h>adKHZ!--uMiOonnVZ7s$2 z2fqrY^OhoKjM-+8BBc7;sQRr>@?N;^0=DuSy$}-Rw*+i{$-%={m*O;UbNH0yV>qPc z=w|z|LJi9_$j}<`zPnkVlZ_vHKP?kJm_HrR7D((Hh7yA;IpPcF$)1~K*m`2$C6wQT zKK)r%G(%L7p84xsIl5}COUkz`x%H7{Bj-lx+$g;mvs1-c#)FXVKE2qocQ3)s_@X4p zK@|PPKS{z+j0Cr26)4%sY7N7GycT4T>l0EThyaMIcwq*{5XFk<1-`Q1N=SbJK0Gci z8~7V|lVY?ad5N=#qx1!N{tbNgf49nNLC=Eim zD&K;nr2T%_-Rtz3h|)vXK;+QZ(&>zu2PfKPHI>@wMrny!D&Gq!qYSv)nkxM5tvGPs1d5QOyOw}CrhKme4hC@5oGULcg zbnoF`I+R})k@V3_7Lzc{CbUV@*klb1J=2I8D1S3FWZAU(S%$)98yA{_mkQA!jeJMA|0G7Ya> z#+B*&Q`m=C29L;UF=|_L4mh`(zI=AQJpR1LSIMKYil?p5#E(z9FX&g~Gtq-5@SfXD zc#<;F9=;@C&4Px%7v#3Vf}JXJYSC(qjJO#3bXGENa9HC|SWL+?8gy^etp9W=MZEI- z=jbZ)bV|Yc#j+EZAR|SYgG4)RQAPT7asnU2glVQtnFkqB6)%4~K+>d}s7C1BfDX|& z6zQbPpA1#GGZdGS2SHaqrlA%@IBA`S;>g8x3fxZ&m3lMUO+= zhe^qPHElCy?o)K}HR=ShuT<~=aNk2^M;5j**mi;s(nFvAB^@ciV(wkJH6Cl_5DvOe zA@E8hR$>Sax?NU`g>dZY4J@Q#DC4(@ODoHib$`kl6^sQQ`Tz_MnZc%;12`TD<5RR+ zq2FbxQ$L|neYXQQsu=N*u-!>ASZiYuM&PBXF)D{0Mbs))(rcZ=M{x~1gNRKQbSABN zF$kp~WbZHx(bR3@%K{JZTPH>ub-c6AqQi#7^--3Ka2a0xj2>;YFQVjRVAeL9Z1$O1 zLEY~wX#_Cp{452`3Lm{7!r_TOl?ikm%o%?A`}ZvGoR0?VlQ<>+wug!3^26skK}rsJ zL|5-?;Bll8wxZC-HKJFs&8|dsJK|2ve!9CVdMdvhOqex0`M}NubcD9rgnB#o$a@q6 zkZwGh5snMO7xVC$QHgx)S2Ag<#ZX8mvO%p;v}RVlJom4(4vx{@@Heg{F=nY-(jl+4 znrT5%Y1dpiAAU{UGczl5jZfvZat4ZUGslS=II(wCl#!X*Y$#S202|9tQa^_sjeV2D z?6n;z_Q^n+tyZiuP0XEo^*5K+L~L6|W7oNv0Pbvz=z}Ag@9*x(`J`YznG%10Zjf&* z7X4EylSeHYCz!HPk9qZkzI@8-tpJ^)j|tNJ+=6yPqh?r%!EVL-HTH6x$sktQGzw~A z8bV3k3}VB8>jWVKREv@O(+L@n>Ph;EQ4I^QjVkz+;vl5$T9%nt(#roNA-?oZ`U(~T zMRqB8E+S`h8wnk-_QGp&w3-{c{5}~wAfo!W%bQ2ph%L)_^7G%j=?iGRFL032Oxb9k z;DuR#acRO?T<^{JUo8Os0<6LrlIQIF(|U5eRTeo;VTiqG9q&!>we9}ij75i*I>GM#_OC^68%rh1yj}1HUiZc6EfciNF5tIAIKI|)ALBy z-bioC`*n>g)L_?W^t#IA0C&U1{h#T4WHnwcnQy`x?NO>p^(@4xr*WG{c6Uon!;H`@XOn1btN^2iGO~aE|ASvd@QLDwsvU;V5?8i>b zLKAbt**GY6wEGWxk2FXw+ZD3`MOHPRh(+nwDUOkw}|n;Du!THk()K%&x>@ z6pb(|`NQ}`mg$w0RPW`!qAzg$?E)9A{MPeChpMJTB5el$36ZNW((Jf8dFtLlt*yqK zY~^$aAnpcnakdsi-d`Er2%6f|Y%Sjl8e86Js*fu|{XIP#BY16UfcY^fnKnDB=#(g= zszN72B^j?b(XdwEL;$o6)G&rCuH=zJ%ldI;5uNLOTML!lD!{;q4ZS@Uqq^d9!*6rc zurnEaiR^ltz_U2jpocMSAxQwn6$_@6Fv@?`E?=3GGxxwxAUN^Y;QJp?^al(s1~88@ zM!ONjt@2O9AH}%I90r5h4B{NcPA?A|G8OEEgxb%l``XqTzzH4lDlxFr2mj^4PG>K} zW+&>#-PwUWf~ttZGIED7nW{5-Dly;yKRvh{>2)Ojiq9s8^~ez)3vdZLSjQ&lsf>+@8e-onFJCYMf)*ofS56V~p{K&d2k2aAi_;c zrI?GO*4~`A0-e;7z-T2Ea7rXY%r-X1t|5~IFLoJ%eQj-eENRX;dLbCmAH}GJ**AIr z%Z4o0|Jw+WG$2tjgy>f3#_Uva(d^&YQE%`MUya?m7T8VTGB%>MaS|EuS~4r<{@+<0 zwbaFfywBoD6L-kIw-(nrQDq9`0vtO)5IR5rM~B8CT6@T$wXm!x8tG>#cRA zVSU;Grd3Vvq^RJ)vb>Tk!Bgaa6THV9&>Mh@A|G7@`9_UhT|$3uLsrazZqsL&B0$(k z0nqJ1l}LSmO51n2hMBzTy{8*SH?;9y{WXJBF2gh!;j?wHZ7JzbStAY?O;fSQy_~{? zYUL}9GG$pz6N)JGMej|*4kjH}Q3}t2CI>#n1@8dYvEq|9O5~oW^Kxo(M>t^_&?&>aUB@QLt~M1V3Xz`Im)m4= zuVt8VN0g*zaD=bPihg$NfCBUM=e3aWYRVJFtAGFb81&*}!MG2oA4Csj38VlIn8B1Gce5VbA5)9;sBR?o8hw=nP+p!Fqf1MT2R8T1T?#ak7oTHc2j{CnS-H|@AH(a z(TtFsvW^|AT20ZdGhyE${+dbUt4{k++`dTb-rQQN@EYb65wQ#}5?Ha8haI@&qVgrn z;eL86w3D02mPlkVoTnNxiY|HQPEA(7jt0fNk?n_UxN))4S2oUez^liY#l7yzcR;}P z8PegeXCDzk>g*%mOu~g0@bUOcV5egIy>D>%g8G!U9rYJ~-J92TU%o-azM2k8UH-aR zpDJ^NDQ_m|<-S9vEN2#cDk6I5#=m_$1!k1a@rjOlg6Tery3>67u%^Ii*!mgNA-%9^ z{W^s}_WmaGHSHbTIZN_;Y&YCv;OlYw^Ml(xbf+P`cyc=%8;`IHA*uJWLAwg?ry0cF z!5CPi&TMIcgKi_%VyPg;4wBPoZY5p^hdofa1j3xeWiCjW30+&pq=-MOu)znzzBGkfGgxNZhzlZE^hVlo`>Gyof90tBD9 z)D#9dpAPuDzZVL`mx4v1+mfoPC;F&zs0aSqrt|pgC7;=YY`B931A$3$Y&y$&`nfo` zp6-~kOh6A1_u|$njPpwolpoLh6v486YsVkXd*(GY3NBy3!AGGE-yAeH#@?o}!x-#r zuHbWnwmnwEEFR0No`DXZWJE5vX@a10fiaD4diwQ$R(2qEJUzz)!Cwg?Zf#}0^K4^~ z{8yJqiT`%=z0toRY{anL*oDgSbShbVl%Ybl$W$iP;IHaPt8|==rnP&UKspL$nu0J6X)~x^~wc z%7|!`*;2csX+`$HUAv0)hi<<#Jua0+xpU5@@Tqsvlmk^SgSbPd?q{kP2<_i|z&L}J z-l~i4?9S3`MwkKP3-DVk5KMy{NB^!s$%vybzx8h{8z1?qX`LQpm^B;U7*;I~$%2w> zSnfZD3KC!>mJLL>^)gkYgHDGY%*y6}Q=H}jz{u?nAMgHE6#}u7N~U%{9-8Iu^`*)( zS@w~*tZ0)&_|BMi)}W8U+56FLc^Q*u+{E+U`>$`DmD$FV@1;SzFJI9!@hMzwJc2>i zRC0=!oSug&f9zEE%Ra-Vre3H54s>!4jTyhe&&r$G-8qb<$Z64;{y*y+IOEgU3-LZ8jv&j-xS@AI=; zN^=Qrgq=Ddnzsmv6h%fd{~x!&Lxap0y4A5a&67jjPM8Z~wqmL9N0y3|PMuL1yN3d{ zS*Dof*^!a~P8>)8c52K{G){r%WDKDd2RplOrs~T_s`FyfD8z;aTt$!V2*FQ(d-OHC z#r+>8jOqYe>?2>`;Mo}Lgz@AQ=T)=bSB@uWz3w;)&^DiyFdG9RTHDbE$#-OXHM0-D zB`z1*iN+Y|!}u+W0hL2=)X}%VN*P2WQgsZDkLFiwtznFzN2o%CJ;Ko}R?WKmg>~T4 zyON;qyRv;+eR2x0$iMl{4BHOwQZWN~7%n zN{Hd_BgXOLywVe!w~fxeO@Eb~ij=7OkpvR`JA)IM46uS-ps|S>uy1Lgg63SSVpV2y zGXmadd871f%&%vD1oEMK<^H{c>uKX%Q3amc9u?I7+rkBVGg$Fi8zpPcq59MG+0%D~ zWH})4&oTn;4}hAQdrkge>WoJLDE%R)4Yr z4MPfV!BOzqNQlhQ2}nPQ{YvFv>vjXU%uE$gW@D^U+HGM?nFZ`|DVV!zm*QnSB$fQ# zl8ct~`Gd*w5TVLVeT@1&TKCPf9wn;!M6;|mL#n6EVIcl&idLVC8CTH}p?v!kLU9Lf z5{Jp%f^{Xa^g~ZKoR02+q}&`!p-yzAKzHpOHs6LXJiXqDH}a)UnLAfFr?tPs3OnMQ(gIj9v*ER0eYkHE{qkESIb20*ampFbD6wn6UZi3VRlvFg{CAiBY{}vkDS0v{>y^vpIYGOeXlq%J~}1;<4_2@ zZiBK+cw3|C&M|uQSwc5zxt{BfOemSF%P7Os-io>8<8zZix8k3YwY_c{9PD5AlEgK7 zKvOx6rq{TYx}u`-<{Njc)B;V%@Q(w=YBwx-Xu@>z5S{|`B*)I|rc2;JZTY@z!Q(28 zk%IkAV=XIwk9l8E@Xf+EOYyOCk$#xt@{7;~n|NC-jj>9ns%Kk6*T;C%aLcL(QYot&9_|=%$a9!$RFpDZ!q;F0 zIJK1&x8@sX`g1E5aKoRNKUApevh$XRU-3oZ(hdq-wdTJJ`nMp1Xh9rp{@(2(0QbR8 zKV$Mt-QG{u{+d`FOcqZ=C#mjCH=Z{6Fh$>hqoA`ANuXF`^d*N_yH9WS<-9-PZRCiG zlbb+oYbpPazconCytV3`A@I(j+>+W9R_>>Y4e+Y$9ZC30oIKzC5f%^J9%TqDZ3Xq2 z@`i{yd-qn;Hf+iRIi zrfP2q;J9ToVq~Jt8<#5#N=FDB1A z12JUoIKaQ{VNbjJ08t8pPNy;Fdv9x*-3Dh%@!Y#bK1V*++V=s>`reNlhmHl=u*a-_ z2JvjOX?oH+bOZ7!%5pR6tkuZzFo?1(JwqLeD(oN4s*h^hmas&k5w1kGy@Ait4@^JQ z-i*rc{?`)c%3tzcIpFH?-I&1*0(R_u>;JI&>WRLx=g8;CwUKHf-z&aT<6)7tgCD@f zJyT79Lm()xtW#8Bc8Nj+=>+qMM@XX_*?HM@3 zrQ8HNhbTbGb1{w+nKjj?=i5^VavD$jF|1(~|3M1_7A%#ANXaf%%~=ta+wiu`#Nd-b zCZGA7o^h%@@N7_SRwT(C_zt)mh8_Wg0{3@YW;|odP29DQMs~R(U;5Q6wp47x{{-E2 zZ&8!x(qZ@WWhhebo`~d}jmqHzqUGh&Emj0Q_2v446xGH5rRyS6^y}cDo0I>FEd}6e zage8-{Bq*QtBY!F0oegam9oJHo;07#vjMxGnrAk8} z|EO$Ny;d8BHAEeUlzQ2gcQw)binyLLBUvR1La+GM=Uq~;{bX1d-}}fz2xeyS2Sy@@ zfZnsH3^2lxu1a$z5VhN({-l_cdrY-FkU4{M_NOP(qQCJitrzMY zFW)>KHCfs~^|kKhz&8cI0w0V$9;$)`y6E1HGe}*f6-dEvh=00ET@6Sv+>b9jYvDMo zR4CzNvkM42-46Tcv-sy4xeMa}q+tDSTfWF+3{zlEnxBNeP?TcSSojSxa>tDTU@si^ zqOcSENd4i1exF2)crfl>rtaZmtl#H{JD3Szl0|B6&Vx5uln7M&{e?Uf2<7a0fz05o zAE&&2{l@9{^nr$$8&nfysm&2wbaR5Gu&GrD4RaaNM5_comD|@acT4&|=Ffka8MogH zQL~T6`yXxPtlI7$E@>t^V3?G*JR?$$!g>ra$8PlT0dnXmcYZNjaC8A`B{>tgTD8N9 z8LIj|1T!I`-_t&uq~fvY6wWyiaG#kx{Jj^gVN9(j!XCkiZ%VI&k3uEn3)$sUNTM1% z@xV4TyH7Xxk5yzwWA1xMiOoJ=ADVhObZoJ74if9pWrY{15GdPup)fblecV-C_f1Qi zKqpjWYy%F!Lq|-2F}b6?mO;C^4!4%7PIj+NUwx=t4;fSS-p=^LaM7|T9NnFgHJR2y z@bm(#X^}8I%t)EDHym9Y4a}DJ=_4Y?VI8Jxz*252p70AH%Fc-Vy)2(Bso|7b&Ne|Yr)#I$iH`KL`eMkk;lZGi7f1^?RiYL)c-ELvQh8~f@ znnmR+$(Jp%YxPfoj%RQ7rH~E=X#IW1u^WB!1e3M0TYLmA=gheFFa)IG@pa-OoH@Byz^`qN+#c(%X~q>1Xqjl z2`h|j2eaQl@8-)3XKMqVPPi?Wt20ut7c3;-#61|3X0?!{h~J{t|S~ewBz^>mA!$5Qg%14y=?FM?=N-VzeMD5u70pulNrcy>BeWjjzXU+ z8}pq?KQos;sa5iE_!uLX@0DbhSxW5(GfufHDsNGuTCIUGfk3T8wj#z(W?D-m0SqIv zZcSz;gly892B}d|LV%6S4B4x(6u`=-RJytz8y}@-eT&@^n_3j=u$y~t_%~X$n_bM$ zI*3*3iZ}}Av+uGzdGa9}#-T0pbB)Z8j98R9Qq4tGdJFG`OU=(dQJ=@ky!ADNL@V#) zyAlP&#(~~}H!MYbBv+;^kp}pk&9XB zidYR2#x8T=3u{a-H&paWnYGT#Gi2w3c8PRqW4nzXVgx)oU8LpJ)Pz{#k$GTAnDUTf zoDJ+HvJmd2N@?m|iT2??R(bh7MBeJLkfCe2G>~F)KYoNWeGrsUJ>PdGHVwh`KbU|( zAm^GX;y!vsI)x%!!y*qWRp8^F=4;K~H-YOt*S0M@gXhIs1>vq_T@(f|J%8g*S!y_p9NFS&Tv zjdt=v5fIpks+x%n!7sR+5XP{SV;Sgcr^VqJAk*dRQh=1w$U3*v8`n~rz;r5<7(KR`NCER%^*MaLF@c!Zf9`w=so7KsWFx?HF^j+ZZh>67y2o?k{*4^W|BO;5a zbmvD)lKR_zpdoQs_Od-obxRdoX!QK%BX)nR{qC8wA1rd|@=Wch98=MNl{Io4k~?}P zkEW)ZB%vR`mTCBbNW7o#qelum-(@s2+W3zY9o%TBQMa}SW17LFs=*FP6HSh^wSDwa z9@?Xh5Aae458Kz=8|%W8PFhcidk|s zd8m5RM&LhiUGCxrvywyM8v<`17#OJFU`Fw8eO2{{N03*FBpvwo^Ov_$o;TXaM5N@n z6mML&JF@b4>t!n|rRF4V`aICE2dRzl<}Z!499o!D2AGP4B9 zV3)94h(owIm5E*0hC+vUPFEK4wf<~=nX?J9fL(=G>lJa}J*G%Ou zytHAuiF)2Flhkv8lYQ&naO#6h%%j)IJ4c&TcU3%vmId$g+glR0vyv|01 zbUp>B+c9|fy<@*)k@6J%`&Ult?{9jZfTLaA;d9O`L8I@cr(Y27mcH2=cidYOAU4b4 zdrGP`NOdJ4&P0XUVi|POlzaj9FdF9gAGz-I(N+RgBTY;)5_YK8>AeZTe@mCac- z5kbK}gH;&FV>}h=nkq8qY++r{(l#4Z%^a*d2Z&b^=tYLqC-@ZGJe?1gBU#@p@gjH0>VC~~`Jg6dQ`ddH{uwjvfb*3; zPep;G6kV)uBLZ(a9G>!n zlNKqbRlQuXKoJ7}s|5%u!7}ecH~T6=ge$W;S2B@VhtDdxi8dV=&a@x%8EvXMicD{- zg!p!x+T$eBC*TeVSU^igc)LACc5k~hO4_Cp$C)}Vn~FVxPjlqec?b2hrcqEZxti=c z_OxI6mi_?ISoAQ-^F*YLNh-lGV!zzFy?Qq*jeY+KKKorBbz{Cq#7p#RrZv|yd}ZM; zxpCw|4?5M{wTR25ZZR+N1x?F z`%;=%E-$xo;FT?|BkP6PAff9a*jbyk`DK&NVK3^^8^SWV{zeOSdOd%!Ny=5{Q|N2% zzDroaz_P3)bMDa*M`lp#X4{xSU3Uh?s#3OVVDP)8AiKoz*#40S)s!I#L`NVb(Tj_S zN#XC+;?()pV1XFCofuJd(PPIIHkl)u(?Vg9Wf_a>#(Y~p5L)wUvb4^+Oukvpx90@b zyeVpld-`Jb*jfo|hak5cv6>{teE!Ef(V5wQKk@~oBrsfGi@ZwBIC<+pX5PWPUM~@5 z)1p-XlNN}lEaV3@JO3Sh%zWv5-k3m5`UN2SbtCHXrBC6*lu)6^VrW?gYT)FbKYuzW z;JZy5PODe*_>hos<_Z~*CPV!sSq^ayUt`k4v^{Zpkm8xLwT3%3xJRw*^lmp=a_?AI zlX^_Rb8=zgxpkAU-1tUK^50^HX0Q0arY^^3-g$vB0t`weR`R{dv(mB7Ni85ZYWln^ zJ+IjI|Dov`xa(@#cH^XRW81dX*tXr+c4OPNt;UUQTPJpMk~IF#v)=XngT2?@Gjs8t ziLpN&kWR#YMt-z4>+t){KRB>!%;)vn8i{qI>haMGd7#;}x;tFyCLPxSSsB`fLC(X2 zwWYeZ_M(a_fkkJMWOVu(kS&@x3ZIi^t2Yl{dFhV6uu-rQDYPrph@ky>GH~ zGV^8u(;dJ^B>aH)yX09yuX_k{b90W+gNfNg*oM|&;|M;;o_70z=w?A85JCs$6iI61 z4J~{1mgV~th%^382d@jY z*aatASS0cY%tE?hLaPMQXXEnxxGzN^jgnJ4vCOB>c`(B%dtFH2qu}f^^-CGHNa8>x&B=+VfEmPkxml3Od2c6!#fA+PXJj!`)MQHEh% zuewv8noW}s+W|DPb9NLlm1SVA(+w}@wkX?}lUS32)7lmaeN2m$)PxASwiB8Ra_afL z-UW1AR5g#Zri?uhb=K;(yMOtfEu3i9Y5O6fc3yegs;0DnI{TZ>*yGa1#*f9rGRH8F zqBpA!3tnWB_wvd!OHgEU-nQzuWPCG`AdGXrNtf??vRGPN1vL#sM~fpCP2sQ@p3Xte z_EaJ*q)z~E#@jf2WRF|KWuE%=x8&SkPGg)XB};1lRkJP5<2+87F(qrQ`hgf?i=uXj zkOe(5S!~E(Me9_Qq_v_AI*Fddyi6&5ylGlp6|qpWZuIda|9)dS9rE*OIK5t#SZPxM#--Rx`d|&gY_bz9N2}g9qG@C(Yv@uR@luGBDZ+ICnI@Brf3IbfKyl}P+ z^4ugH$Dx19T>0q0iz?pxJf3z>?r+j;2c?<``_@=c)(aZ0`NQ>Uyc{snp6y4=PolFA zEJHBA!DJQnd)RvNV3pPVO!-;h4sXwQF{J6xa|?iByri+^13Y9o4XhdlY@Z}kLfuYR`9-%9o%Iibw-@Y?SAKNxRfUHaJ zyAP(XN&`j~zv)29GN~X8u3PoJ#of1>jmFzU*!2+#iqxt2^VF=JMgU_VzotFiF8J#+ zg$7*N%JY_}{g*})^sd6?Uk7(2VFC^x`&P303$(&T`G+3v%q>M3V=eH1KBp?OVJaj(Z={{qHWTIBe=t&@no#nh=mzpS6x9 zNhBNXvj{SkS zo(T!4{?a9#?W00{wKSyncmD{J*Hkf^d6#>daOT0L1TBE@d(l<&NNupW^v&DC!7>CK zPFwnCXR97XNy{$P#kH!j-MkJW1^wrxXcw#>?OrD zaTc8E)Tjb_>YW51%lMR<&%>PQv=U^aqNKo*(?j@bNLd#e1dz<#xQW!Q;Rh)=2_mrr zcM?>KW08dVlpRuqlX-`m;OIS&OE0k-y_K2Mf2;w2HAi>+kN*sc175Ipn#^VU;<1># zy$?rXHI>B_)*0CA>Mq0cW<_V;3XyU6Jtx-56bYv}fEu3}u1TA2IINcbfJIJ)4Azh4 zuBuj6HYt^~h-l*MU^zrgNVq!1)NHXUlA}>D!bF2bP7y`U^8_Sv%0qI2ngVkyyf{O1GE?U$dv*LE7zA~V_rMma@M$Zoi2Zjv4G@TNfwOATN^Vh2I= z*rV0)+1*||`#%Gn%G=NqxzhA78FioD%<0k$?aO4eCP>B004={%8ToP4Xq1&zFNM3| zyFgs*CuQzYp%15z=5gn#_oh`qxLeVBFyI4fuBKTv zD_|pNdF$yu!mfmRr9!R~3F!;;oSk&nEi@K-xOIO&vtiVB0km|Az_~G7ejvu>if2rV zu&Kg|hHC$t0Q$RSJ56c_8{qgoo(b7Gkj_FhxKF0}8!~F&zhT&{7+6rE$+1zs=`FJN z*L<_(BLym4hl4a!0mpTV2HNokdiX>l@4m=EMZPO4JyD14czKrHTGeD8vitTlfybxv z$?FPCxos6$Y{lxPn80_9-_*3>!mMJS@hE@SGLH4!|AD)W5A9}Sht zggh8viF^l-rMn4#gVJqY3s@;#X%RYGec{;_UtRQ>YMP4;@@w5gfOVufwh&_Czl$i1 zbb;kvkPw_HukwFh-V2#N{w<&i2{gwxYh=ADWLHQa7FE zAVn?FwASCvuamlLAXwa-C7W6Tcg1dlPK1Am;R^xQXe{%czk{}b^Mmt}6Av9$DyyT^ zXN|AT=;mWkLw8$EQsM8t?=Ll{jJmk{G41ezwdkDG>(T9?wKQsi(6b{f%4$dbXI$Hv zNY9Q=E*r-Ae@Z9~3O~tfFM;ash4<7JE#i_)>mw)vv7zfKC6(KH$#eq9-K@pnW#4|^ zh))xn1%FgBu3;uAaM*LZ?a6+5s*jT0zvJ1ht1RCv4nO4Wv{)^wt0{?16OPS>a`+Zp z#r8Cu+nVJ$*o)kxKD(3rEblu8wKYY=zKY{BofoXiV{z7MK~~vK3Az5MjhhTB73tSu zmkp)d>)wO1n~F?$4ymp^BngLj!TTMG;PTj{S|rV=pf*@ZLQyY@V21(007i(3hjoMA z5zSZ_YsLH!RHb#dx)0=H|MLtMl~ZZHbt9&ey8o5|V;%)9lJRg{trP&Ll0*)w-crw_ zH8g2Ur4*W4l32DKroo5xu)Zdt9)^{N5QH+OJ#ojw`h6Bb&DIzwf=n#B7phTl347Z- zccR?5so=2)x*JC6o2e{aDRA(66H1b~LVjQ}Wj>GZ(3*YD+@@)ydxoVuFX;1_FLYgi z^uV{nF6$pXG3*ayFbML|A7ggZk>q-1?IS$fQ_(}gL!=L&T6j6nM!@`cX)3N%J9A~X z*80824Z$&JQX2@5DCOwqa~~t8I)q0bj)VfKj%mL!4~E*)`tOObvv&nhf{;SdW*Lul zJa%Ix%9=60r$Dn!HTSls^RkvHg4Pl0V3<(AJsefcp*CYJsQh~3pBpu$Ei$(RqQu#3U!xo*k(tXfnO14o z8?da82{Gv8(}9ad5VX=H!1hiekF0o#)C7#XX48P9cQLZ!&Vb?Wu~i;8-%MGPuJT5C zd0u;(%_w6Dft~7`NQ#c6!8z1Z;^lEYNo*eUlzP@!-#)oE#0Z$h?GrhjICy#}TN=j^m};`G1OfD^wGBGA-nDI`4N4 zGr9oztU95_sF8HI7n3+p4vD@$a8iaKrTQ%THfAZQIMRtlLIlNpIv`d16+PDb7y07D znu&12iYUA@=MaI~@=m}22Nr9o0X#zd2>*<;ls+E54bCviq ziR!Q^X9HQ3M6c8u@cN{l@{1YB{63l+*hr!X_{@8u@QOly^bU?rryVzPmgoYRXo+8+ zwWW$ZpZi68tdRy1671g+IXONo9H^fXY=O%3_|=xTtDSi@Dr^B;i+*HV!heaX;&&_w zPJhQY|7iWkt_n?uQW!y!BT>7b)#CVbqdc~Px_}A)sdTW{yl8-ulM-r7TS>Mui49&z z7ltKOSQuJe0kdi`kWhrz=k3Lk|80;ioZlBzgvw?QL-J-lDy-M*eb4;w%*>PmjlJQu zi*i>N0*-{~rvxiP2B_r=s!HVf^FBMD71;b?2vc7&Q_!ZH{V*R+4tViguhwN;)&8Ths)ZbeH@Z&jE?9b>8=>&se*e%999&bEuw# zEhTYbt^x&k-@KC8gQgT0@EonIsb~eDsxQd}C)0vU5jm4|UTJvV8#XP{4E}*q0d~$w zZZ)Lf?P+$#6t8_d^L<_mGKUyLwA|wZX)2TtW{lziZc1V^_Xqm0L9$M~zPsjlX0&!l zube*=Y9E86B|fi@C*%E2rxbLaPHwX+h=K zGLzv2%s#FAsU82*xRWNS)`Vi75W_J)Wt`m@pTcZMHr}fbeIp z%0MAgaJPAvhir0SB&o(d&LVFVTU&M4%W^ueXVpL!1s6Bkm)V0Jt?tkWcsj2*oyULF zRzSUh>QV9#m*`~l>ED5;+iJX8uhFgRt=hAtyBvaoKN?ap;Yfg(W-O{g)_|Wb4>)E_ zUeeJ^(hbA1d2OuNG91&=22`l;+BCco@t(%WgqsFMinOyKo)bIuVr92%CG!u0{Mkx!;s;$V#j>eDz zi)u^buh-w!oxD%wE2F749m;<51aT^(Wtue*vx}X$=0e_A(UYc1HKix(t*M zhwm(mr;1!yqGzyGx33CzUQ~Lt)7M}+qr=idvKoegv1ubS;zBT0HrS{H;y!IWWEXl% zb=>0l5Pq}571ZJQ6J#$n&-vnx8CIPzsk`S%xJ(&OB^@w~Aaaav@mH=gqYUw9xe(0z zZ>pm)8gnrtd$2mB`Nt(fhO!u`ygWwIxHzdIxwnZeX=KJuYrT;3;#m+!t9DW`78avZ^Wj)s|*5Ra3)3=bAvvXpAjV@*}AQQk}*i=P0t zz5HA7pHq=VV;NYSYT!*UYM=tTFh!+lkx8_;sWirM!~6{e0WK}WZ9PY^wL7p=XDYV0 z^t8{eD|X(A>%3~C!gAG|y27^ePCE)e%J8vUR$1_t?!*rK|&Sp~gmLI7uQ&;^jGO%o$;%y=ML@-xF{rF`D4>; z7u^eGZEC`2NWCUU<_bkWU1!o6;ed0xyd9nYUiAs5JUZ+zJ(wKcj;c6x9b_sjnN8td zlUi!XA?GKfcp(8L;tEf{rdqhKP*Sb|w$}pK^(!V7NdqV}k<&ViNI0~DoTP}^$*=pR z9Y?1mr=Gpu-zJmWFHCR<>B7wn?O^!*-2U+ENrPG1C?)=!s;M#X9AEOW&trSv3Bpge zUVRu($PKt3rz)0dv-PsR=@(^7NtkezlLCP^HR}cwQho6J$74+S$2kgvUvr{F+>Uc- z$z_UPcYEF4=Lj9O{Z@G8wM(_8V)LEMV}w%B;)ZPfjO0`4wJL9^=B$vOx&3ovBK$45Bf*; zm-~-h*S?>*2idNr=_XRj?eQj|BL7aZGG+DWxba$nYWm(tvS7t; zfs_hLOeX5}EbUnGn5R2b#QFTsjQsuiB^3_0YULv@B# z##ZTjUE%@?T=@Qo&73ZKb)WyvQr8W?!(2TC@z=pygU@cS6CPIzJ)a}ckpzqv3}5^d z^0Y)^&2zkSjK4Nqf%g^?km7DENAw!OAyCesVuUZ~JGA&vE)P!%boVdW^m*1tnxbiK zx?IlvYCi9gho@Wa-A|zl@}L*{nOBftzrI(@!kvOiHD|#=|4M>*3@qM#@k**DyNFA~AXr($SWO4=|B>A;OTHOj{Cr@pco@sv<*vqaNJGPjUl0N|5T zYBl27(3_7h9?CzC17-+(xkeNH9U5}1Az|mDqd6IcJON_}ih`QoB#+0mk&Z#X_XneL zR)5UVfX|kz=pu{pz(1<;e2&kyJOLkQ%K7pvC4Jzt{`aX&!k6kU|CcE~ajs>$m;ICs zc-W|N$-Ed*B{GyF6reX^f`Fpbh(=*}Q&7jx`LIzHqo{DioxB|a>`L;&d(K7u%4TsO zikvUQ7xCnh665=}XFPNe<3w(J(xDU&|5L{3_d)^}CK}(O8?ztTEX1X>N(HzayW9>F z4xg5v5#PpiJ<;56Ho4rd!VZowQZYh{=o^3kYU9IDMxWsqU7QWh*SLS28z*Y(?Iq-y z$5t69A3-3x1Js-?LI^wTZ=KUtd*CpaIPdzE8dH9RYQaLWdFI? z?Cf?rrxT0`FWp&sTma-#lC`}3a;hwdkj%EJRAleXyctE4PmoAPlRqEu87YQm*R?? zjr(vKX+3LzRy{&VAwG}+R4SI!+EHuKR(aBPNjUZ>3-cOi$BHH zwU^GF&0P06);x(s!67Lv@;|&!1v3^~U%$tQh9mmCc7yN(l!eWtLg8Y6&OEZ=hWE)t zYiabks2?DufVG-y0(P+&s}Xl@K(~!0??IxH)l+ zGd1RN%numD9jBAsRR?{o(aI`@utFD7Zf$ddm#L<5L`<1_`m@&X;gR~)$B}cfc+NE& z7k3dO1&Mhe&IPlZcs6d1uYfbS1KDsOKl=CnCd8+4*{_?W^kUGE#@<$=r(B_YO<|t< z!%d8Amw!gN$#H*s2g65e4Z1AW6N@F`&w9tIqEhNum@SvYS-p&$2N?`m#ecT5Jm=Ik zH4=7`!(wyzt}Q;4LB)wP6|xb6T5<^K zN3K<+cF-0jNq>t#Ck_qH;9F$gzbS;)>A1dMOfg^AXNhce^~iu4)8#jU7)WyMKsy{q zeLOSOscbj|Sf18hUXSzbz6_y|({PcvZh~vfqq$WqECwOpk{Gur73Gu#Mno?&>lcS% zI(F5+-Jl0#T3OaY&ULXxAmY7@)K)FqB5csxFa~eCW8{OH(vEvi)$j8@-X_?sPIVrL zljC>B%Si>NN?Hzv4gX1A=$42Yt4uT>IK;zky&xN8N|0;TB)5~3LPTX6`2^*9u3(;z zb#_2ss-#w5G46ck+5-)_6TPNCDi*;ks2mBV+;u?rKndFRj^hzj=f>O~lSwym$TcB^Vn|I^1Mps3tP%K$t&R}z=81z8(m@Mv#n&!M5 z9;byXk@8=XTZt<~#e@C6Jr~FPZ_ihK-upcZHr&gL>=;+5bXz@#|uj>REqB@C4)X z5i(G)&Qo>#FdT^}_qzQr+G1(fX`yP!j24sCC@C({h$vN$@1}8OAKc-n5Qq1Bh%j;w zypSNl_ha-#q5E@54}p)JG8d*ZWHBSgF zB&KeLefHSMLf}o!$I$3~&BX3x?1)CFGSRDs+r9AzHpB>5h94Zqtm9MQhdsq|$vePQ zT*!%^&22eu>n3B^ml9-pR^)8VwU&5pTca)BfxDJKpQaa0{F-%4vOV!r@yUq^I*T6- z$`?Xb!(54{F9V|HIxtqM0bugS|ar4OK;Z=8!2Iha>ZjJC8H^_JuL6IT;`T|cw z9JM(&`P)lm@oQ4@)u0M>Qzb|k`%c@HS%2=*+5C+sOc)=VYgm*5tW;Y)f52Gc&jnGc zt9)B%7jWwz1g7_Y&(PsN`evmq5$LP%N&*y_s@Wvty)0G$Nib^(QDR6Yd*-Hyq(!!^kXvmus3)16^w6SG*x{uj(#s;p=y9fWY+j1BG zi&ec~VbF_~uhgrN2Q({}25gp!YlkRo(2?gXGs2guQlEf^eM@08k5dnZmcTNj(Ue7; z;^KOL$Moh?hru#neeUyTw=qi4u}aULf6ukw?eW=qBH&BA+U~1YQW2d)2*wbj(V=RC zmzAbAD2|;QJI#(uuuAlDkvJOiJ{`;xtZ!hRbGDlK=Dx>!g>;-p=yk@VSx2LvqVxu` zCVroojqIR^!84xxHO}=+QB{y^pvSic%TU$C8#S)T8EWka*HTTGTF)S?6H%rm!uw$$ zCa6$3m?A~6BMTfd=n+t%i@nAV;^~P#tsa~M>o-OWN5Ua@1os>jW^^Eyq~p5{==I-c zvd^9K(1zK0-cvGU2JiB?A$;zi$&J5R|5^u*c%MR^vvX*VmQcI82mpTzP3N*+!GKMc zUhvCYeLqgoc{$8)-+fsvvV*64i7*-OXwbuoq8@OUTY*1=;wlNu;H0;ZL+)ElRzaPP zm|8Sa@V(FWz8(}|3#l+V-1bzomGREa11x$eEAW(sSl^9CkyKdMM{M=AGgdCrING7* z999xpFXbL&&`+SX(jufK!`Szj>;!xoO$1VP&ZNN3gh&|e_70lv(&@Z;s>?qjn6xX2 zqK=;=acioc=>-fmF|Z1y624X_ljUdfnd>AtpOMDPbp`QQ)$;%GKgp%rVbm_66ChWO zBeB|48ZbV+qjgMzOus*j4eAc{2B;3U%BfZFpxz~78doOsB+}|_HiMVmp?n&6Ku<8> z@ca&qv}ORIn=A|c${?s@3$ngjS+uidBwFwZXp>p)}fEf7evc12smBGnpG`lK1DAyw(bJvH6XW~cxv}e@G!OP}&ARt~uhAEzJwq4L zBsIGA_nK!{5ODUI{OIfKI1vP5jUoWk39S1bxw2)4nYoWbR~e$h^*+{Hx~SM=%3T|wHw zU)BL9TtXJFQWVF*>SM5s_pOB$V}6gq?Vh@rW~4VBm-XPeQ^AE)~+;1NeG zA(#cT$t&?il`I?o%5y!Liq% zh6n}FLg+;R$>A;+ucsmar*f`lnO`%?J}z*liN%>5A>bahgvTqVVEnTJQ(AKf@3F`D z4?bHecKL{tv;q#TEnK`Bf(2HUBa+-Ly`g_SY;cy-OCI( zuiwQjI2k_t_g5ZCgkG^(^}l2o@wp&>(FnWsyKv$MJ0qjVP8z79s7kcN1@Q#6%M#lf zXXKbwrse8{fbj;s0UQY!Bhre?f9<79O0Wtz2axRb5^DrS?(^1EoX0E1+@2vw=M5N{wWqs8`}T6So2jrqxFZ@qqt{;eFY*IM zFk1wAUJYgX_(;wB)REs!`t?xD;NE#EgGJ;bfJ#1!6U+tte$-(7+22nS0q0bgTOv!}5VEx2T!%e4OgU*_NntOIv@x32cPjFR=;i#^ zfBF*6?)#oU&=obFB&~GnyO$3q0&`l7sRM52$;a;^fMWs&ZJ z=0AFI&A7mLv_qX<8sqB?nQ!{A6ek0!mQT=Z*C-_Zy3lXj%884=kSix?Wd&JXlw{j= z7m=LZdRFC6qn3=R!RfD1&_>bomS33VxGoMg6pH2>Fx#wLb$~EY_{{nuw95g=Vkouq zsMl+LDHAKHPXUPLt%J+vme_6UI7#=2L$p7CqQ6Zs?^NCd#k(TUg^x*3#i0>hkbI?TJ1#Z z80CZi)TcHZ<+46!^J`RuB-MY@^Tu*&7eLHcZ{o68i2iw!K!CD9IB~d&xLQu>Ujb!! z3jCnF3UTfvh|Q%!8_FUDaMPlvaG{qc^>#nI40O=%wjIOR{pLM4h6D@Udnvbb=-`s=UpR;>5ik;X(##l!nx`L0`7rI6mbKfkoay_Pcz zr82}%(heJ*0>B@VIk0lilUSjq&UoK#N`T*k_{7hF4vaipPQoG}5}Lzivywz8;JuW0 z-Wd#!FQQt7T1mom{>)|aMDM>|Z%ZJJR z7fVgtvk_=~W^oFng?JUSM678a;XrVzsE$)hvfa<^@)QFw2S z*JvgPV=XWj})vLF)OiaEbm43aE#F^&YM&_H=!W{Miz9gMtDF z%e46`w*)qi4JjU^FX}3GeocOE%+{j5u)1ovl!2x+fGS)-=plYNKj_)o#`U8v0@WFu z>v67N^bJ9g-lhiEk_Tuk^V@0aBS5Ifm@KWU{~oYMt*ID;u|d``t5jYEp@oEk z#8S;gqZ~PJY;*F}b2qVBhxfO~$$J#3ZKefv?eT83dDV{IKto-fBh2}@%)H-%KKumLz^J_e7I?ptusvq0|NkjNUJkfPr`YJJ*7#``eY7kq9_;o(MPB37+JzVRwjKJU?@Rbl$_SRz?oHV8W^q1%O9?b0(_ zdIReHd{r2^F*3**j4A_R}IHV zA%5y?rfc`0(uI=S(rn-BsRv-zs&;0vavd)7wq2X12FGo(oF$jzC%T2U4G+MB=cs*; z5F5w-f#SI!6p9};P*ELRG_iLv$z17hI(TEqaRRd%AJe;oIg0p{*g^K!`BYpyUR_Ny z7Q-wQL(Iym=IH0E2*Pa^5Z_$K%)hE@>91&e1mZ{|3-KtZ8x$t!u``t!4Z)DE8f!G^ zA0V@|dDY4D{O)zZq*=S|uFATkxXhjEw!i5*hfR(IM12$ zX$X64*82{~Z{L1wKhWQ;1elPh#s%tFn(Y{S12~TcwaFFK1gw*8-?rcRU+!L<7c@F3 zZ(t!VJPvxaUWZ)IT&Bd0OK?LIanY$Bw8|}0+Hdvb!BmiD)nI00H45@e_Lo~~?C|3H z$34s;y6FR(%HGO0(NN&50axwLOY!s@XBzlY?j^_m1Zg;q>9M^89 z6EQI1iK5c9exV`ft})V=D?nq#x`w~ALq;Dgrmw$StFGdwgE&{L*C`Utq9gxE49~;5 zQ!*t3PFB9*B1b)O^UQgPQE$h_v~I8W>Nef(`ac5ED;hi%UT3`Jj!i@=x5IDUe-wctY} zxH6!n%~voek>N|MpS|&qVT{zRT^m-KAEmy3-7>^u$AA5u$k((67cjFF(Dk`7O*(d1ejc)5NC$haam46dXvV);Jz?FxlaVz!!;tAuh+zQj z-W0=eIuVgl!+4_-23nz+Qa@P^uvhu?x&by=AAnAgEgu3m+I}Zi7m&Kol?DPU~|=xYi$k(f-_q1h^!#wYX= zPTIQrl`q)kG^f_cnHP`TqNlN!Lr^zB(P2JEaEv&kLZ5$5@?P3TWNn+sqQh(NB&<#w zX`mFT1L)$V1kN(`zD%C%`d*>fyNu>aI+n;02IUgn}%R{1n){krAxf+rj5v-{$C4=qV15NGEWu}AMR+u)3E~m9)-jel~kPJN5`Aq&k zSo4^0cuEQ*dTg8`q9VLh2MNMv!QhPSR1O5fWu``(tu%jKFm+_=svrig(WS*Dkdvxu zhTRF2#C|>1%3|rW5`Vk5h%;%>@dka4RjhhL18seQFyNfxl2S^nk%G9=EBGDH>E#W( zhOYv$-@k~HW4U~gJgW1u#2)zKzM868yY+ALWF?J}J|3uXk;qP?u+uHL=TAVdxTK{fs~i&Av`e)mglZ>`1JD z5XiCK&wb5XD;nnIeia-aLp2XyqemB4PdC=e^9A%daNl$~JRz&l)#li2`#0Nl3Fhgm zy!IbTPR7TP!t;K0wX!60s_MQey1Hba7qV@;6j}3*dY<;SMc0Q5dIKxUE#$NAg9F>v z?ng_(rY0x1*A_+%{;j@}jpH2gd?Y5289*eMv!q~-Jt(bqbJbu6)oupLbvO+;BxAry zr-mMlaD!FtF|$QRo0xMORd|+Je~Ym5w!0>YL0)DPaQ-n%njj>))cEIFFeMxERG>lq z+02g5&6u9xV0N+ncPM@jr{TKqSg4<<$f0}X8!35|$w zg+w|iB*N#MB?&KuTUya=HDtfjxx!gPB`s{vs5VD$f^-Y7j{?4nbj8n)_-vb)$Z;h? zRXD&;<3Ew!7QHBuVTD%Ew$ou5t7vI?BkZddMhYFwGW7{cLh^GFMr% zF)ClWfaS)a~6fGYa}rhG9IUnGxJHfM2PRHkR>UgLay6 zZ}o}z$Dk z4YjAewekLf@MP)B;=9Z8PLXQVAE$E6PL2(mzt7gvc17 zv4=+X+p-FV*(0q?eEvAsS+Z7~>K8<3m=<@G8b6e@GVumY$W+!)`%Jd?7XudJ*A4N{ zn~JwYztOwLxk);H0oSOR$o&N^FtFH7_DOLVNT;)LjggUSsZO2~Da3S*-g-C{K#>($y zkD3eibUeSI77RO>HD*Fu463eRk_Qqf>C;v7LC?95VGUV@#m#v*^iv5ZR)(1apv4i1 zHD~X7O9e$#eMqIdoz2g=sYhESZDIjohOfYB2*yE(Rt+izISDB8ys* z#LKN9yta%wA4gf&=lBZ2#e|Ld%^N<9L+kM$>RN}#%~Vklq9Q(zw;XaV8l(ok-Aq!Y zkw2|~t2$<)47qmj@@ZmmUM92M#ub!^>AZCL5REdh6vBSL2XtHR-nEWp66SeO=PP80 z7D8KP;|L7&+LG>}G`Y8RL{3&)j4Zr82QU9wiXzhLfovnIt<>>hX_o&PLpGZopCf@c z4XRKc`mVG3n)eSW3X;&G8k&hhtjx@xf(NgUCvkmW8&G8aEYXKj4_sQmQGeaRf`Wpn zy@Z`tUNdcC-`E#D&p}Eh6`Ve}FKc^&!n`t>B)^dHQU(PC3{s8t-8YY5LXTq) zmF1woMEAX09}NI~ZnaoZlP%wdAO@8Ac!g5Ee)|j^^d|(&W%Kp+d&^52y@eCaXd9{l z<=phIjCjx`WLC9BQmi@E@F`?@2cH100+{`c6pN$}s@oqR;D@fLOzwa~c~&SCu)ozI z3xeo}k`3!d3famNN61XQcVnG?9EaQ8{&RL%KdjowlczX-MjZ{vSp{N-CuPIya|wtK zqcNySUsZKDfBE8_rj;N`8z~s#@+NZ?Og1qPCShC5s*TN~uuQbt9LMx|j31f$ql%rD zd#iy&0b9tn>n*SK*Moy_x+)uJ0N{xAff@ z3Dl8G@Kj-Z1kS-=BKZ0r#Nf0;-*?0s95eWp7;Gfdzkf{L2z5IJJVF8xh4tF|C5s%X zf3&+rRDq8IdBrnh^^)OM7Y^O7Uq4L~KeH7t=9FH?+=!j{Jq<#voQV(lhh<3fWq)bT zV*7nvrN@7W{}sL2>PjD%WZLfih)PCa21h_1s^@t~Sd^z&>jb_}<$vW_N8wYF;DfJarMA`(BiyjbUWQ94hhnRsbp_8!) z_6lb7$!ZnVdxaimx(9DvkETPv>aV&+l@2kXC^%Ig;hM?x{d#7?`N$WUphzZZb(!sP zJ-MD-tuuT}D6@iqlr~f5QQRq7!lC_+NE@<_oB8H_nj&aDC5n}~m^tly3ZUV2ItLc0 zvdi;WEysLJT8;pBdvBk}_$FH-;Y7fwd^V0b^_0$Y(lNN%_cFVgnV%QwTuH?GOLRoC zqRx_BVl>~6btoK5}umZ_cA}4uoGm3&8wvXo=$m**r zm|`Z%7LNS@R;h+4AwkT^ksKaBzkf`O7Qgx*i>Y-xhs_{XI4yX8Z0>>zV*!qLCtG>6RP_(VuCR+d`lm0(Cl}Zuo09NH2D4Q;AO* z?lj8v6hK!Fq?d`X;ngz`gN61kkHcNf<-7V67YW(vh{)KN-0gN7Ed`a{{VS^4EQmoN zAp0eT3DoSG`6N4|9gyW6mG6(HZYls&qaDucVj+{P#pW`fsNL>R1%gDyde&up>W#LpEKh$oM*OA zWa#~tSOjr*XL8dorIZ(XjANWv@1#J-$zA>LZ-#;?drfkgj$3Gv6&bVTmX{$gBFO7? z=Jvah&bQ*UO_Xt!*`vK*m~1x*M#6Jd2{y|(hM9b4cj7Lyug`a0dTuaVt9vNg+~7pE z+g|G%2Z-_HD&wDKDDu!)myOmybW3Zl(@6XD`ta*Xh(+Gm$GNlW^^?Nv&VItl#={Xo zU2cDqcH0jJG-gZG*E~SXZtuT($u@#{D)PY|;|PG57(q%&_zX*;csg`W@t3Ai2InI0 z-4w&v`r@}6!bQ>NkS^Z!{H=hO9N^JUdDUK9kwX{xz8Zc>WGVOW)=gWV$6GXtyPiiG z`BQs;Cg_K<_L6vwAlt6C{9ZZ_+>n=7RuPE>Tv@{~&6gL&%LgjR2iV5~a~5*e845T5 zigL+gT7!b-p$o>MVf-HZIXvxdT!h})K|ByZvg;TSGmM96$B$ENE9xmo>{6nJL}?BM z&Y7Z~X2Hp_5g$GOt^^5EphIaI0H!xbRgyn*8c0>5k0j#!ZK#y$aJ{_(;{US%VDKy% zDAh=NQC6m3K!@F&`$H%E)!Jx|D^|d^QF+}3=oaIvPFGRoc`^)+9%T>Xvew1x+#$h zCCgq!S-dR#dJTWbF$L;^aCjE$92BwYQH%MO>!y)J=uP>sL~*{w=IWRh8ZkDwY*U!! z_NV*ylBzFY`X3PtsyAB#rPfgh*)7P5O}BeBdJr`~I)W;yVHN<2(Tm#^(iljSc`waJ{e6pqyh(Jez>4q>_x$r^Bqc#N3|e~jdr7o042QAl-85=NdTnU0ovoys;M^l}Jw z=+Do{6*1Q}7`(EwIz|fI?qc!_xY`I$qNxqki>i3cUt^3Fsrw%s#9d?pIhYc?A`ssV zxC5@YhPO$M78s2bg5M`BM`F4RJwNuZjy8s7&kD1lJu??j4C3B12s^osyi~{m__KJ8 z+cOQdMD=BFF5f0Bqgc%h0u|hS@L`k>NVsvA%qV&_xUVB`3|yZG*qndkd;9Fh+HMQo z&F%UHJc=%Ja6lz$#Yt+HTwkz5l<=%>O`pm)4^JtFuR=@WJn_gB_KIg{3Wi%CJ^_z`q<%Uny2-v7q)iUfcHt&-zJ5k$3q-Jy8V{gy(4QXtx;~08R4PxwhnUc-yE?C zlSb_1O>7S5rKkss8NH-hnsj#llt!G11Tb4NQyx)F%}3M#*VG3GU~WuUV%R zf|t*1`Zi=yG28iT|64Nuy>}!XKf)|mjui)N@z0nBLxyGfvsjTWyGa3Im@dA`cNYho z0q(F4b@WJN%ndyg*{$(dv-NrGj)=Fq3grN%CenSo;| z+!!Pd?h%_eE|;Be#H9R$bh`3Sj)4H-6dWaOPm2r}M;FdOFuvJrpT=B()N~r=ISOvl zd>db{+I6>C__`7;SoZuU-UGPhdr2b>MxL&7MAN8@(FpQdLY}wba;=TwK&P25W=%_k zMT9rWk+}L}*fJT>FbudonNK8s?EAYmOi9*I3_J!~1^|tO4uwDJGki;d8(;WM<{33} znyUj2?!g$~mSVK`(oZorz~jF8M2A&i@;yiE!bJG~M^#@aRJe{H48DRNat^Lof%Mxu zf`*|<=4g`cTtjG#AO^Aj$H>Z|u84+4lC+r2he+%fcT9rB*0JrkNAQ zbx~e#CffO+G>b+e0Snr)3@6VmK}E5=$-qDa?7U_^zpb)>SG*5e&T`4yWuxfp)!D9} z-T311u@GmZ-Vg@RX&rG@QCMH1aym0rlQP^#gi$$a;YgRz-r@uHj#VWE8sp#^pIbYo z^6CCB2CI5FJq_|V@X&?Liyy_fcLG*>V$ZDcOSx}Q^W)OvUf}g$?Pi{Id5lJU!j3$4 z?*TpiUpAhqR`k_VC7wxcc7lqJCDO?k`tomDX z!69^^NQm%V-k40F`wHZ|+jNwsPAVw5y#rn#t{E!L&R%Ce=QV-K^~1#JSfS}T{K)+@ zhntnLSlCCoKjf81!0jBWuOWc>^5S(-OQrC+(#;kmGNOb)&}24)XAyzacTUwO;y9!uXiD~XLG$d3 z*Q2xG^}oMq-|0yyRUB%hchs>9@#u3cKglyfLEB#x>UJm3GXuOIV&oLDr*{9RIr_B1~BOlu}n+1h4j8s z&8UrF>_@BL$43nR#9Y#uxzZ>^T6`_hOfrUmEM)g%oYcvdA=^XorRpZSUTB)I&!E+E5 zVw|nq9+IaFGo#}4=ZZ%V9I!1 znn9=2awQJ6JhPDicPA8kt`1?9j#v}9IfGMvw~RFNs4+D}OZMu+p1^!#}mqySlN z(?vO94iU$Hd++m~qY|p1M4wS2>Y5`T90HKE!>QAJr_1~CE0#xQO1$5aC!52c&J7az z(f?6zY0>C4Qj2v^ zxu|P#b?4wrgAw#J$Q~Xq2-OUGN*cuthcUrSFIgA&t1suf8@5-#X@6Qj%-wn=Q;b`#*^xe5X62=4vr(kty>0xVpDfwoxaOiFmMvi`i zQ!6oSy{zzlIhIhxAr2j$$&S+_F7P}{f`Nr}eJ6EgV%`b*Y2PV~NA^K5|CAgyz%xq? z@eYca>zYwymx=GJS0+BNGHB#C{bKcv_p#@yiUViMUS-6*J-oq_KIqPRSO$Np5)G?} zOsICNkP&Zfc1G>><87+0$h<;nNxlg673HT;gL zV@M3Sd^RoeSA_x2h8LL?R?-g8fXPMsdIM&kABB_BRcnwOUe6Gi>*&2|_Lb#7og-M| zc7i0|{{3@)FDk8zgOX|uIod)k(+-_p{#;ezua2FfkYvt=;NwE_=QGt_$nY^e5dpqb z&499)7xs+(4I6ODtY|U-n5anAOh{PDV@51B6-GDdW<(*-$%h&?LL58F>NZ$C`15T) zZ^+OVT4{u>)f2&5bmBR0cvwzWrUj-=S|u?lmsnY=iUD}lxBgRS6t;gk12ox}W%C>GV9scI=c9};vk0>9 zJl~!P5dg5E;>p$R&bw^z_t7bhw&bLjVCd8$<`k*-RrQ|O&Dd=k?W8cOFftP3kdM*d zS_H-l-bEIq<9qLY8FNm|^rmUlfdUf~j2Y&Nk>Pf~zs+#tO*jYYO7}7DS2@x@Uyk!O z5}=HWrE5@C(XV+AW|j>K2(b%@Gl>h@1p-MQ*C^1#iYF%2p$ON)xxo!ikKlM zjO(+QFukmMYaBr?(CDF}`jeA=C&1L(Ssg1}kRN}Q5m!wlyGyo4Y0BWRMTqCIFxP0y z+}}HX3FJD?lOwb~@nKl6$WZ8Ft>KV4&)rPJ^XwkYcjlFK*PtDe9>1YoEM3iT=_&mU zR|~*+(F+(a8M~i;lqt?chNE2&;C(P1Dm3LRXpNU*+t*J-u3AUyJY=W_wb}(I^o! zyNOkp2yyN#iP?NUli+6*hd^nZN&*Vbn#xzp65u{f9MBl%BY@# z8U?s7zJDyy@!~);ilh+nw!8$)T-@5Fy+=_iJ7X9WV3zw}#Kuy z>gzMzCre=`X-&KUUd@6EBY`ZFe(SBQXNU6(j|rb7`IC@9MS?1Q5~#2Cb#Kp-DGiho zp;5s&R^J(jg<>e^ZR`ETtIv^}=;K7v`}ryrAnpPN;Q_eKcqZtYUsC-2%Y@N ztu9N~V-7i>h>dGqyeIHh zsdcusU~uqI%z%jfFH1xr*rCCWPlnxC^9pY;ITk2c=I|Df+aTi`q+oZ+*8BI$ZLhKy zQ@uscoBM52gFiw1N*mM73-H!-gUaI=Tt)$@`eH)zQI0FrF@n@zD2L?Jqx+kWYoT9k zFlV!->Ixn*Hk*H??oeYCzrfqp(bWkLx?3Q1Ty0!I=LY74Bush$O|({Q@VgF%6@L_b z`TCprL%^4?&SKeq+Y`fS!5{&0o*y7i4V%fb*JAtY)ux4zR_~ zX~|G66onKq?gltb1I|0~Rj`Fh;gVX7q>Quzf~WTB@EaNecgolp3)f_Aul3M-j`V-| zJ0ucg06DNtybkQ{)i{J?M(es%X2`ksDJ5UVgkh)Yms8u)=Zf3jTz6jz)$;}SvU$Kn zAb<|b&@=Ao{w1E2E&w`^ ziI%c-rIUdb>I5`D_BbdL)RX#Z`aG#;yDP$5!rqSL+Vv`6g4GL#cwemV*$PkC*T(Ep znVf9xwVRDV<(T@~=^khHo2AgdG%q1`3w??uW`OIL+fw0k|UB$ELN=()WsPPN+_PlYRjDDz`LwfWVH}>*mbfBSeN0HOGU)Uf+PyiguVK=Mexh>s zQQBv@{EaASu(sZIlmFnwhz|2RsO+PTQ0cnG z+`#s|B;@=_(9{j7qasj7+ikUq7mn?u*>daNao5zd|EP;wfrqP_f!?O=+tnm^fs`y! z=%-^w*scIO&#$k-6>eX;VFT78h1Hk($vwu!ZlQl*U-#XB(eZs0Gt0u#X9M60TVKm^!^`GzVptbsU>)&5uKhm!;t86>2 zh0&`1NMC9cAC(8hNxQb&cmE3jM%Oes-jgRFVH5W_%xymC9|Izu}*z;hAb6=Tib zmY|)!bKw9cN)g7PX7X5SVkmu=z#}(xzq&4i5@T-LOd;ZaYz!GviWF8pgCtCoJ9?B{ z5ctV?;+34DRANqS{VQ{v?*!fQ!bwSD8eO#KcQvs7WM}EJv;-kbwvksK(@v4ZE; z#}RiNTxYko817)D`NOS-Zo7k3*b-mEPZEXbzQ%g~uCEZ$c9*@UWjU6b6bcb}sK7%5 zTH9)UZ7sSC0KO$8{CkjaPKDX!;iFMZuL34Swb*b9(~^h>h#XzIZe0!(a1?+SD8D{E zSl0RK&7=lk%UK&>i{pKPiUJ01IQ*n(-j5TJJX5`uwaBH^T6}=EKbJF`{Hix1Y5W50 ziAC^oV@enYK&wn-OMyq^>qVi<*>F;>31>gHE{DC1?=Sf;u71BxGQMjW8rDINcQano z6pN3reE4~TEO+_7nK0|9nGf1YCVTi^in@S~1P(PHEAa1VkD>_ZfQBsHCE5P#c}I%i z>tR_>er6S~xMt%YWzWDIvKs?^16EY;Phb#=nC`2d>+{6R)ce@PtJ8yMe?&(A~)E?kC zKCZ`^)5l{hw2;ii5vUzx0JVytnySFUQn+PV&H`~?5a@KFn>}ZFzfb!r338NhE&k;N zbl@MImhj7dn7%CL6NZAyw39eE+6(OhR=q`UNkd-3w@4XLHLNH?sttZHYWAiP0YAc- zicvor72ZQ|_u)IDAR=@29O9UoIJA$lc{uCqw4n{5Y`Y1_r163i-12TQk;x7Y|1I!L zbHjcHlz;>P>HG&qI=$d!V=(lE9j|(pwGIEQnQ6eQ*1v~Bb?TPa*Aim$iTARY_TjuK zA7L4X?-z*S{xJ}$|GAK^`=-b;+E2FQ20y(_Fen=I(fRpE*VM3)PB^s-D$t6=KTp*?hBU}>b8)Ig4H`z z-L%tDLki`~YK1*dTXSM4!u-pgZhZ3<+nkmMH#hFJF__^T&rh}GgeHajQe$Xh zQsNoImFAi>LK$Y{S?om~4l!`-2W< zP0`{@*~u5of;9_N{rg*wlS(m3LmVP?a*`6Nxjt1zP|5$Kqg36$(&ow>MelxS)k)nm zE4L>pbHQR^`pRv2`imY>7%_8}JmL>U{b`a++5N=+;V$E@pVQr7t#GD_=I>^-MgCm4 zJavDRv{d>knx!H;oCB2$Kuhde#DEoyl1xXPJdm9XCkEUp_q!%wq9LkrV6eV^AOp~w zkQH(=l;3ZJbG%?ER62NWFBNL}`t18>^M?8ez^W1(ZV+KNxXleE-AX48qfCrK%)xR2 zz_Ms;L;m2?A2y0W*qmas=9iW=@~44iSBbZ^suRzQU3mS}2$A2%N)+147M-y$abJa3 z7&OtteYyr?{aRgE>SKxy%;vVUoRsK@tbiz!)KZ!zCPLiC}xr z_)_SJtor&4FOqsfPx7pXXli+DGu=gg*ao(8dcwy@d%j(&r=KlTl{^I(d z*;Z0qb6gfM|-^*JmxHV`atK;jXo{*}Xc45y1f`P*=HZUNKKy@B~M(r@rJ zmW&UYN-arLQz3kJ%Kk$4(BT#d{aY!#qOL#k#S-UjpvaP*#UM?qyW zTL)Fa4fAKvj%eFmzt?h#-#L~#ufgV7tg+?K5RsZei{zuE<+@ZWSZ{Cd*lKD9)K6R` z`=kC)^`Nl+6g|wH&G!2G)Xrk4pZ#o^tE(gzwtukMBnw6<16tp#QQ2wfn3+b@LgM$i zNt0xFyj)OwBMGcAHf&cZOxConH~y{y-RE#+L}B?36aP8(0*~)L|EC35$4C|Aw^WM! z9PvTO1%c`0_Mr>&eXkw5&RJ*OJN#y$MNGu@@}*R99Q>agKg+Uth$|QLE9)}O6O**h z!^8XlRa73H%k@-NJ^=XG|8KYK0!kGAJSb~iwd;!f?gvE0-p^q-q!kC-Ty;A(WVvuz zm{KrU0&%vMJ_1$N;d1_!ey^SwY!HcHM(i{sH1^)TTu)BfJHw17~4K?qKX=^D&f`0JwUC2uyLuwK98Dufp3KmDqjaTlQp)yn^0xWAit+Z{=}UuaY1@AOxsONrg|1s5C-7 zBsKA4IH%|^sbbxv2MqZDfND`^p0lOL8K^jSn=elfu?1c?p?f2_4T7fIFuD@k#XqMV zR;A!U?)6|jMsd$+6bCuqtL%fDaW?Bl-(BE^;E(=}%03Q;I+kf#-$%X#d(uynPilfW zx-QVIqPs?JgAv#F^YeSYrJxUC{;ZTFaNxan@8M=&U$UI^w4wds4@6nJB{5ja5^Gm` zQpadoZXupR?eQ+ zF|G4{k$Z!PNZ*YQR8&xo{#pGZA>lfX@ne$`+mzp_T0Z?WdP!9mbLj|gzVPR?MPAAG zOT;tIe=hwmFZ1%pZy|78lB=;HgV)5<)~nsg^?Sj74IieYmwXObSpKRA(HSxJTdXYtgF5hHvW^Tz~i(2?)@J0zB_p- z4NLs6C;Pb^-|6kt$KIFSTmEkBd4A7lKy>vbM#5uS8r}z+ z&%)nQ5>rZPC>WC!KNv9~>1j%zIQ_j>Sw-RR35~z;nUqfH&Lx!Ie&SI*(P8Mt&>Nvg3k9 z4HzpTq3(ejHB5)jq*5hW&YTrNl4edyqBf1dSmQPc6Irq8|Aq8(A>Ih2jA+a7?e7}v z8GEO>(@!cH*Y*6hd*8XRpsn`&^&f`Mq)BJAUG_~f#hfDYF( zFEb%^YhF*0eIFRuH8ab7gH3uLT(PF}TIS5Ja{%8juCzuzB^Z3NCe%2QRwKsQ zXgi)JWP3ezpp~dV|4l^GPV9{gcZ3 zZ#P3w6h2mreqo%a5mQ>C6;GTS)3+l3Cs)&;wGX%NG~*?uwuF+-c;}x{46Oak(B<9koI8X0T?@+gA`^ zvolkMgN+$M8OJQ2fNUH|^YVraJ0`54+>7+b&I{2fQgJ1MjabQYcFd8~iSh5a0H$&* zvk~qezQAF6)7Pam(rDzc-Ld7L(^qre#sI&IwQGEQ!ks#h%{Tv!PsVY5ipxwR{Fui1 zzo)!65=1BCp6oyNJFJ0kgD^ddJjE$GsY(@Hb_35izq$?A#1~3i?MkI|MXJ? z+xk8UTl@^KR&_|MBafFOT8)KC@{X^R?xu#*tYY)Sy|v&Dh*mu7neJ25twnAjR{udr zj>eZbkuA}6IqgZf$HhWYZX{x7;KRJmTmq#a7YB~d(qj=X*cVXF@o zp!Hd0+MYA7;dm+h+`TUHyy|36ns|LCkvqNQ8-@a;N6rT0hq;H|I~@lOCw^q4Rk@m6 zrFE(pDBLq1xq^{r!W*sBjJ~tiC*E|+2*FP^Z!M2D8%zJR%EXo(W1SZ(k6%9ZU@=5I z71LoF{I=wp9FHUh_Q{JW>@|eD{chM1(r;&Z<9c{MiDRE-h!vcvz23Tolez3)sWXk~ z>_a>Q|GeEOh~)7uqI|fv;+4gEom%{U`gCUMwiI1*x;+jvlh3PCZ*)d!eHAO&^KY&B zK5+V!v0SX&3AF$>k_L656@sLV0`HNX!)gE5CiH1^^b18#i(pwL?XGo@`8>=PoZM=e zQzdS!oK*>gYwoJ-k3rBz!B(HR04EH1uFuvvC5-4Dh_1=`+ua>4Ykq=&(-OVS?#AytxQm0#{>WfM1h4m5k=MRF%KKbS|-1y@xs$ z2U_X>&ayHFwFietTCx>3KW;t;`R=s!-LwBvpfsRi=ky0Qk9(N=X;1_dK^Qr3(5jWZ zeBb~mqc{Z^A4x)a?#-x%NNizv#j`%;c52_QWH}DMq0zbn;E^L?W=LVd4z+(YPoejX^)2X)o*O8GWXM z10z$09xU3Lgw&yCVk)7*{%VJhZLKyLO8;zt%bkyZjI;3Z>V!LI*@INz_!A02Fw+JS z)p7^6CURl0n=qU%(I=g8clY4GC-lVyZ>#wn`xF6v{mcl*$fo|*lc#4z@8Kj1Lm7;v zg&LdNBfB_sO&yQcP2ruKMv9b1nTx=+r@PZVFM-K9oy!kcr)A(%oD#{u|2&g>{z7*` zk!v&KFoo|=;24o6<%SWV4FIqjnBh}o><`@HYtHIyucl!Zd{wm1=@2wSkN(Q4WFg9b z##xc`qI~)&vHJ;ft|#d^N?vfnqmu7|K#`7B&*pEwl_2Sbz`YXs7!ua#fi@q65S^K6 zNRk!jCWIlLYhl1!%hvqP2r+LhJ=~}}!}zW!u|Ox3gKY)Ccq>XPeSCFTwhY`=<{Qt% zE%!o9tCdE#R~kv;K9TP%NBEMcOQbCEc>EJUOg6=|U5lL)IUr^XGvu`(u97!!EKV=9 z!!5_60sxbZj)dJq-e2+&J3^BP3BC`JSU-G7Y-hVXAn!8Y%(sl(;(rM+vVPcwEm;_i8hkTx3;Ao$uV-7X)^Le@=(`I|Ah!6DIH zeTL~fWpVEgd3LJCF0sjyYyJ6@Pvkk@*c6+QKq zyBZVz`@c+0jrVr~6Ya<1Cy{3hVnNuaB=NwkKce6zY%f{tgk}V2SH%vHGg$B-lxeUK zgWncHD(Ui)Ma*lnErcsI*9Rh)j-GDwmk3?y-4E34{Ri}PeW_5+roqWXAsdb^uThG% zPvu}(Ppc~OH;`FRXF#d!An`vM*;kJ2tPTj)5$y&b@lV)`gU$4bwa1h9OK~siqt<7h zt3)~K-;#|CB_$~4;n);H_W#a`KK^+#_w8XM!-x@kG8m)1cCA>ps|VjrytaG`+Ia@q zf7DOd7;;}+`1Jng&!kTO_V3?0?#bI7Jji!!eVMwXqk_Xk{y&)SObdORVSaK8nXr8{)otD6zxeoZJZwWOAKQ%aXP z^xtQ420<=5Oz~bG**Ne+!OUz@QhnD02l*Y>oA;3!&I++EM4AkM3jgCFBNHvg>0jkS}a$0J6cm!LaU*Y--3g-JttoNM~f zW9IxQ*e)PwhHE|n5?#q^yu6|+?X}O)4Ty%v!6&Y{5-LHUvNwm?U$v;2DoFK(z7HDuTy4AtFVPa}a!P2p-+z_!E@=F+<{K%7wemd+;^|7)=ksop|rn>1%q&G8~*zXON1T0 zf5qubqO_GGVLN}Yuzk^>Ca9FZD!`bJLO4}p`h#c6r_tk&Rm;lKF_X({J7RJCnjIVI zpVZTyFS_HI{d%>b*ztN`r<(l36DAeP zhAm|br;4rA67bLRuVe<~yztR=YOyX;gI1#-m*?ino2eF~=|X4@z1x-ZwQghY-_&uu zskOI>{EJ&<$gk`D%dIV+owEVVdv&*m^S_UqRb1c+)V60<%CtoGCf!&?7of6$rM5WO z|2Q*q(UyP@YPd}XyEX-Cr$oLZ3*ZjjJ1Kg9HFfrHy_~d6l!+An!WYdi^@^Z zJhqVdVFdqrAV0jvn82nmYIZ(rpp0$Cvw`}~E1I9DKAT;Ix;+IPuMo$5YnGA5%+e6^ zn0i;L{#m!RxxMnzK|5-2U?ws0J->c=oy?o_ALyt*wES}RF+X`avvCCnj|j&JyEuB z?3hP|boJ+-?Tz+}=eTkTKw6NgY;_8~Q}A8$56%90mZdDfc9?vehO&(~I?9BhO-GRM zM*~(_V}q+)>{W|0H;H?^*U9+$WGBDN*A0i&uU_8XVSFW#01q%7Qy&{F8hhcv_c1LP z#pvJYry^to7B?T0%D8|Z{J+6y;ZoBbIdzpX4SQpJvnI9n`E%JVA^3jLVN7-sCPC9K z>Aq}2@pK?7x!^6%mV(sb+=4?z9))#U<;Zc+8^}?8!vp*D?dGUsuIJA!sbXH+koet) z-M_hg;-d@Ml1-OQ>_2<>yA`1;9I_)v2oSYyYUNP-b8!gC=?pTFJRe-A;qQ7}M9+Ge z+?*#OVDz(6OBpuYK0tG!vEmJ&(aq|n%HSPz&2hvHR=bvb53v`&t?2gY2>vNbfc+tP zyOsS{#NY7J5*ZzFvWd!L9d3Kuae2$&;VfpIs$DM^+2N8rPHeC1mM8JYnfWn?GA~S6 z$ZLP_RTJT^pRW%MQIz>~SSfY2iqcph)zl$sn>>L7AiU5lwb9&06g8l|-D6oC*PGmc z3#D*KB?4Z0d7mL21rZLXE6Mza1zG0>gtgD-?nLa^qrFmM#~b0e`{Amr%YvZ++nwbW#;Ii0lSKcQ3EYvepC=F3MQr{5kG_pyXV4j*i`x)wa z3(XW{xz1U-v@V}m1xQomKdnjzk6Q2azh+v+e={(Ed}CpMW~^xz$_0pRR($cKspeG| zTSK+OT||W02`h1M`-sFRFFOI0Zd<;2ATRE}z3}}@1o^}kH0Fsq@kkK>T08S~dM~op zH)la9bx=^&`n`v6yfWOJG8n`aaGbd~WouwFZ<6ty$p0Pj*sQ4OQqn`PlnBzy*dg8p zI*}CYKH+b~W65P8_oC^BAPP%_NA*2_$l=|iPKMSKNpeEbuyU~xAeexmX~G5MEGk(X zJQM{u^E&j8DuuKOrmpC~+u;GP*gth6f%^gm>8h|{lfRmZ1oyKhCX zOq(=CA4i#2$2DhXo|~%iO+`}79sQ0;{S*F6DsIdH4j&JFZ@~=pb4@ZffREf|(=#KPWZ-Z6geUbmOcxFX z0fx8uej#_i)7B>oNYC}SAq@6J=F(14k!k#h%G4Z&%PK7frWKsahqQIucwh%t2d>rq z5o`3)Gu#SJ3X265FlCufbA?^#*##VzzbUa_MHs-e+drJAuCK0&Z}HWErpsn&Dec5N zZ6#8oJpMe+cXS_77DK#n4(FjT*0b}C?A!tCf$O`6sJ+3_u*xFR<9%I=wZ^jf2QeVdgI_9Jw$YK zv(J`D0qVzw70$E;6i7v!WA!SWqY06Qu%bA>JUJwkO6OYXw+(4gIUN~rYf1GUnj1W zg5zb3@&%20Qa)-m_?Yr%{-b7sKj=NIJJlOyv-@$a7a1#<(;8_0Wkad9kj_#RIA?2Up~0xxc(eKG5Qf{#e* z%Hb+Y!srCs%!uOra4ncHVjw;zm(prv@tNt06b~|NYE=0>9x8v9MqaoQ!%FCeDqQKo z%VtCxXIe%$O1;6;{CDq950m)YvXZkBW|@V^*qj?}w)5CZ$pybFC^C73(3FLrG;r|dn+1qQM_K^UKCm7a#+PC(LegpP==x}}98ZsxNiEKziVl#)WpGm68v6+=~t zyUEZuTA1el5ppBTavvTta714`A&sc7i3xmej)?hA6^ z3xr0aaO(d>BdlUs3JARBAA>%hJ<|2D$W0hOUveA{Nu8TM=!rVSfa2AQ2#V)+# zbY9ALJJvLcaSd2mFPU&G369PFj9mak1OzZqY0cbYpU3O!UazOas%(UmbJD*-zvDn` zww+GbN8gXkv}&_4v?TDc7>WsE#yd5 zF>J)(3!w(ZROlyz*Qg7WK@N|%ZOHFI&OBe^Tz10AIHIhdA`F9><3VVPeRt=td4CAQ zkENDcv-6aw8miKZ?7L``UqpE5el_0Xt)w93zZL&m;EA$a`sI3&f`Fc?OV-w~`*iZO zd{xBl`vPB2S8g&Aqle>V2fE|z`D+Y?Tj?X;ETlB@Sn*i1mjaGQkxv;xsd`^ra<@bT zZT*hnouM}K@cK-eA)3mICv`sTrmGKARfV_Qz}DC}sW@3eDq}a*#~|Ze-Q6XJ_(X`} zYMF#6-79}rhXKuW$!^``6~01K4*GQX!>iOSsZW6gpgO<7Sr+dz%1$9s9kH<>dk&=V zRNq@39r!~o^cqkh>T~_l057=BdNDP#ZYsoD?8(7+dNdA^ED5kP`0ICU(hw!XQm#mW zf%M_~7pJdoC!Z5oWdQ|hK1FC*LOExsU$Jd+I7fD(iyNGtCv~>4LR6|r5?sFNSCrEU zH>N9p(p318RLB=@R<0?LK!Xi(Lt^ElX{6hq;mN_aS+W(0!5tU@ez1yd#1RnTR#+8n zC=NLgU!UvWA5@n4`Q@)$aR%W!FO{U58K}Lm`|6`Lv&>WsBV|;D;;!ORgnEl)4s;4i zmnG_x6yoPjT+1k?*n4m9dA?Z(gB(Y(+i(G5E2f(?VLT0|uAFiq@gBw~qS8zp&anpX41_FKPV$ z7#n>x+UOGO0}QB=u?Je|PTydiO#*9nPBfF8wYIghj9_52$jLsK07sG2x~u zI~1rP3hhqM#Jfwt0N>VEg6`+!r7+fsw^izFJBeziam@+ zQOG{}A3tM}LtIoe<>Td(U)0Rz&KHfcD^?KK!!5UR+~&U3^H$DIs946S4PYSOseR=} zz8?I_p?Mwb=Dg*&Zb+{+0vO~%s6N0+{K|;8RN)hJPDzjXD#W+=wiJ5X7LZY|nD=Bs zoMMe!%hcF#6JH%xZWJYl@!3Liy}mdv_z?`^M??owB){xmc0(7nbchnzig`>o+ zFUSJWte<|`hIYc{qG(l)N(DPv4rl47H*;Ewk}*M{Fxkb)zqW3pj;lA*%dhQEfAiNb zQXRaA%d45F$e6<$821OFhsj(a*suYcvbNnc$?{z<-pYyzOiM#Ooa1n1wdiPYbX8l+ zan;MKZ;}nJoxW2mL#pxGcGl~C!K%Jj8^Oi)`sOMjjQ4nO8DLg8@!Pk9%sw*>(On*| z>iCGf%}rZ_N;Tt^l+iKV+%R0M)7(Z2ti8yu9Fj&&o*SFJu0~Zcj^;|z6A@^?YmsJEO8LBhc!Ky_ zuJyTE+$?|y$Ii&udwtGlNrCFi7^xJ(lWW>=1!=(}jGP3}V-0_@>iUSPqggzxlrQxpn%rQxJ&BYQJY8*3D@+s%jPe3Y=->-pL)Rm%fwjVE$R2#jhpqm${=42$Km8#e&)QS)V*fs=Z9G*b|W=h07ErS_L7Iww_#+4TyKZfZK)82k_NNzhmH&L5AQ^V>O$Jh5Im` z_YGi2YL-0>sRU7<_oN5uZZ|KxH7g+{Yr)z}Erx$AnogR)YNFvgl|K-+>~7QkY|rx% zpK!O>wc`Ca^;*Jhf6dt0`B4N;CEhr>U}T6%Q0f40&>O(`5d|^w7>Xu$#Gc23j#9A^ z`2Q>7KZU;*SpX&X{QNdti}ymwKgW-G)xvznN&IF;mj-Q&LH+X*pHkQ5WgF77;%-?K z$txo@3^*lLdDxFne$9wxJ0X*>5g99TH>iOihcCpBK`k{`icfGrHif?T{Yz2b>%MU= zjGxUqS@DKLYfU+9ux%Z8=nA%u`NPnTD!yr#V__=4(cMj-=Zm-Qn|1CFsm);ZXBX(17OgnmuRC+m-QX9n51%OmyZYm5zhi4u42p!^;Bk79>!NOu&tjGdsLT!34smTxRr zQo~YPS1UN@>R_OoTNZFU9EF8-I^1SfWb*E@UElv)BaZDV^e@KoyIGVTvjf^f1nh`q zVan9BnV~LbUX{Eo!YLi#BEAuk1;j`ZoF_TImiVR~XF^(PM#F^8bx%iYg%++|(hYyK zxZ%HSI@{+vHWU5q$saujj6ufYbl&Pd+bt@(Qc5{T`9&dYX#SZ%|6K#_7Mk`kp%+(> z(7>*O^X0&PwEO?G0B&6KI$U!jjm*(~LDpN%>Vc;3e6U?0q?A@;r2`x%50FI3PHJ3L z(vo<&WJFm_I3DoMR zgs}@pCrm}WrXR?iABnT{WttA;SP=P3xJfLyp%7Q>R*EWYD*l$8o!t|SLt*z_{m@K8 z<#$?LGIiGUtLC2|yV+gA2Gy(;8fIizW*EA3lgW2wn4G#6p`Bl`Hp)$&3G@R@J{rYZ zj01%<%D7}{bM#h>ppR&#qcRcQUy89PbQh2$&=4mC}9Jj981Jk?o zY3kyus%g`WWLfGJLz>Ucxk0HPbLyJE#oxxy*4Ni3klaco2mNv-M7}#PXoP8~DhFy7 zN&H<%4>akNz^_$Ug5s+QG)E2Hh=)ayYtz%>gaBagcQ%+s{v|VwQf)lyM=|du5>KEk ztJ-WM>U>R8R6!QH&7VM}hPXxw#YiikVEeg@K%3U2`GAR0RumDx=R3~6zvS#VOv>j- z`Go$b(bhcPYATR>PE$@Vu4_`9^7y^H+9_!0DOZ#*`Y%Tqp%YBpbKd{*e*C$4zc6LY zxo7qzQMyV!tjd3v#U5ZNLiagJDue^7Gwl=7!-DpNfBm8~0o|E%IP&e-RSYN96~1Qx=4i;<^|57i#A3yN#(8TRYRx8;6w!7ZDvx3m>(E9+gA6*by+aE-OebwMtZ><<8DD>9e9b`MWKB zKJeeEBS+t(j5Ls9_A(W#K84~*yp$~yuZ!XdG*Gap#+-O~k&4X!6?{oouekfku*2O2 zw&jaP$C*%0^66F%@_Yct)!O^T=IgYc)80Eschs+3O$AS+nu%Fnj3Nebu~1uElFlKL zYK#U|ZbzK9qk_Gp7p>%Uqo95gP@5@DjefhQ+2UXOhJ>gx^LA`?7hO|VvN0|josMU{ zaT!|L7y-wx{jB$oGs=e1GO7g73pBgZy!aJ*4h2thyLt?7Q+F=P+R^y^m+$T!2ibML zY=%uo-!&i40T&Fq>5N|b`Bu&W{5%T(z4h~qJ34vW^c)o_C~tIn%B(|h+MRgm zR`MTt!Wt9>wH~k!tAW@3Fzw~IG^*H+ zve<^hl^$E3L@YSl>GiZ{@_OKEBXTSQ$RvM$V0Yf?eHN{B&V(AgPb~!APw00#6qkJ( ze9`SXPE>Ru{$!2Vw#uKMm!D6F@A3bN`pT%Px@c{>ON0YRmvjgsori8vx{TP+wXZcFvBu#CdMF#1O3gbFy=kpvmo|6i90c5A*>fCkthIgiBN8()`_`(71tG zO-}QQD(hD~xxvp#^V#f{c{$9t#lV{YQcpx{4OjQpEvF#kq9CEnxUEIIlFpzJzbw(h z2=tM^1fHYR7G*$Zpjlc?wPKxW2nrL?NT|hc3jQ1s=3%uHt@`|vq9bhMI#!?yK}tXa zQ)kYv5gBCWa@o=p+^=LBTyW4XcJ@lACbX7U;%0@{A8hhb>EI@He)MUeTSoAH^VPYY z91rFq3vt56~^jctB(=#ip^MRQYN) zhRSWq(1O>-Zrx2Ro`^=+jRz?jF^|-1%d8i-TlDU00V*FJiuY`W03}#R>}@hHPFIFJ zMbC!oZo@Wb*%vl{8%yS0ftYYL)iFTV!XpAe$r|R1M#11FKZu9ko{oPa9x&BIrRccQ zejiSuKUjo0Ixv@_BiuDt+4)#O?yuS6l!A}jgx{$Nrxrw`=P$(iU%ax z(jVew-Ti$wt7onBSLOEL*mSEr(a0s1=^uUwF~7~pc+OhGaRaYj8-QW>T7?!W6@`#S z;-Rg8`vYhfXeiy}u=H3Zv^no)F09=b!qMRh!O(EZRd&rtjAr9CVaj}-+|g@2q=bdx zfxbVxJ!x@%?F?N1gjOI6DqUo=zgMsu7_Z&^3&bNJ-)9b|KY#5*?!1JZ$hnwH&>M`F z@dbUJic7!#WP$*dUBdXldn`_T!POcl^QM&+i*fJ~=F=tuzv9@{gqW7$MLEFVn4Hx0 zJ1ttzC!KM1rR)8!vO>?0Mi@1*1dXds{z@UNoSi}87S$*`oicLIvXW)%wl?o`!LV)P z&6I6zcCqq|vySufW_N?t`rk(_{?*l_I7OrYv1ZnQTkDO&?ayLD&qA%7GdX+uRgy3= zSHeg2yS&Jo-Z6q-~-mkBD8!NDHp8Oot+SrjP;vy<&RZ_nC*-@4Kb^y`s zh&y!;j&b*l%%#QV`MG@sP%&+Q8MXR2!-sll_O7V@`kez8f=t!un z4<_n%xBxse6D6>$ASq*SENxhWAy5<($b)^x5j+_Ik=?K8SuMP7ykExfF6LDa4#M`A zN#AD+w_o&&3o0p#rA>^jg%*>MKzGo_%#vHSof3Xsr$L-Z30>n9IO(s}K@DIO;&7t% zfZ2%%vNZ9!(#zdJ_5g zi-!NIQN7D;D*m`jUU@TgpbOh%3Jzuy@Lf_Qk%t1l^G;B`GvSN2hkoza-{|=P3sp2X zhoz->=vxp$?ldClZ%)32BR$qcTf%CVRKSOdH4F7%3l>r|z5JjrY1R9o51R`x z*mSU(WN5-karr}1Adedldr&b+^Uos+I2^xJy87T)s=T47yr#L+=IR;j*>A2=zO1hB zDgMOnd-tblx9cB&VvpsEFDEWgliW9+Z*$7!e95X&9m6&NiV#JccgCjmP}E|+tq!-~ z@#EL&YmXAN)o7SurCh9&sv2So4LUT7TCuyDrxMg=&9V-cF17D+kJS;QieL8MOj4cesJRnegGn{JAJD_~aggCQQ!&0Vb;Rc<8+94DiM{3_;2nIN^l9?a z{rPI9iJkj1btsRqF_sarXjjS0(6A#LUs5_^Z54GF68zO4yEiKWdc?ffdRkwT;hLi^ z!}K%9>HwG_(5-aL4h0A)7Gw1I{oq|1ZBG8Yu3TWLbH6%)b<~JJ81et=EQ zYwl{ermk2bK9uX{{>eyoR`N5(bM=l%fnz-$$letQZc@fd=uCEHlKN8dfz zdVSFsFlDq`Gw;Yu!cbB#hT?NnO2&_6i0Hb2@?eX$V+|@B8j>3wt>Lyb-cU1d5aUp{xrl-q+l@z)B z!ZUjkMt5MRBk;9uyJ#HfoN|f4x%gZhn*ABQ5xY0WyROTNV}GK9sH%t0fyLx>mp275 zz>=Mn240dLqpY%Ok*mGb{N33iH``-c;Qhct(z-JgDv{l4`s-!JGiD|KzX#LD!#vAQ zsOApx%!-Vm|v_2@up7)#@^e zW|x=aMb69bdjrC-K)I=gsr?cPq+i>+eyUO5b}~ySiMa|Ak&Gqr5Q06jjJx&N@5yj| z@Z-jEUixJFW1m`R+5nXEN1{k<1|?AGeoAm;{)*+RFQ*e6EcCZzHLFxX&l?d82qh{q z(TK!c+tVqmx_-*h9RJ;s4rb-*n)gU(g@DS&Sh506NfVcrBkokhAyp+gXgaN$i!SrWL{-(zyLghS*{dyEL@{YWK z4=fz}&v}6&cn3b2f3a&{&K@!oP{kGSV6*5(@+XKqG0&W@G87>NYNv?3aPz`)VpnPK zj(cl8Mv#IU0`An9=&bv%2p1DT6zjAMTfVG&Z^fn_)kqWq)-Nf6;s~8^MoLGJiZ{6T z*hf2=0zQY-?Q+>YI@O=HmcMYc{@m{w?TEh>b~En%Tx6t&y>Gm`Bn(2$ zqLbc{$AG4dc;-k6xe=zkO7_6FL~B68Qp==4p%Vf`B}wIIZ!~j|fmh-_Yg=Dn2w^XV zw+24jarID7z!|uqK*Q~?_mjUR34$D8hA64`r9P?`l_;y83j>oD&0|%fZmgjb<%Gsv zS#Reo$gaU3=VeY#Kci2Y?JV8bnAp!rgLIuRb~RXed?9H}9eh_&o}_oPl7lfX|HgAM#%U>OhM3184jVKH(M6fDLi3?U#R;~gqClz9?U_}=f zLd47Cg)G50!FO0)B7G`8@kf7r`PcL<7Y$j>pV~|jmVE!DpDaaG|93UYYDtV2^K(K6 zAI;F_CE>`UC*-f5+mxlmBrZy&Vg;Y3((m7O&SMl+KB<4zG6LOitj2Tr{NOR1S~zY6 zS8qDfpMQA^;FgFghjskXDTzRtuhVZ)1sDWry?Y#_T$v4TPlo*llS_ezH8+98g@Vby zsjAvE=a=4pJdHE8%yA#z(a+X-y!?p?w_l}o8Th(#y1kw6D*PF00Auj>mgrz8J`K^j*99UZ-M_L}yfJprE0hyGMBY;~&(1=NiXe$g$MMZ!1X1X>k61WHKHZEM zYlzb)iI8FWy+I`t%*TOJymczC(XQO=?CjYOh{vTT<|qsh!bZH=JB*`H z6xpf%ih;x7*O(PRS#%Jg!F0d^#pT0?g2O^3J_usI`CA zr-lm}%cYm`VzBSSvb+o~5gnQYvItFmFx5HhFe{@hDY!V>5MCJl`ueC?E~Cv&+nK|* zjSnp&`l<*}u1j4{FO(MkYB~)NQ_I(XC+jw=-V$nL^n@002$RF`Whg}`O7e1i8SrGR zYEm(LnoT~tz)&2n*qkU_iQ5kVj@Q!mrS@HQ2lPDp>to1k+oK-mS!2Q1ACe-4L?KLW z&3lad%XkysOjiQ9`Lff&@*}mhYA?YW4*+^%ZpJEIu>3%LjFQw}ju)l@qAvg=zSBVD zjoP}?+?iALI=$NN!5CkFR2j={=gX7(=>&wBz4ZUUysoU3bgD0N+hU( zt-qk_UEldMf?c0%KtY7jElIr)pd?0fJ|I=V_aVwg+ioX7EGchdxu8A$DcsZu8e`Yg zh{H!tUUNfk9{tJbx%~ENnZ3Q89k)zaJEF@$C9Ha*kr_@U&~m}A4El@xhe2LWa%HZN z=g3-}De1_Hj7dB2=O*;svI?>^S&9-mb18!qXb&B^lMrrplYiM++)cv@g0vXB?)Ca! zji&V-gjMCwTeq*?>k2uVueaihaQhB$JlF5xbK$!toIL9fME=t0Ucu}K!d8{+g$>&+Wr$8c% z8XNkukUW3p`E>v6>pOzhp(w4-C90N4hU~Y~Xcy$C_N}Ljj_Odv-Z>tM%r%+H86d8& zAu)9U(!Bf*Qg)k57;wTuM&RcV^Jx=CNJUbO?s0`4u=H&qjdH z4ic_}I97z26b3(uLlDCp$?A- zv(vs~hQWjz9p6fy7R&mVu_qe=KR9bRp-?@p7!zE;uZby|imoe3VUrSOZ}3=>_HL|@6dKCZGd67p~eqmmb2);}s@ zyxnjuKX8B!jthYe=H$xxh(eKsu9{Yh!Rd%bW?lU3YI;*BplC9g?z0>^U?if6N*_j9 zUbZE8Z%_X&#X|g;=&GqdEfk0bjR~Riz|8KW&5)NScND6lI<`)aGN#hV6N$k%ptMx0 z53@!e2Q-}ZKX>>Rt;oh_0qwBXPym?>SJ=9`s5%TqP&UqOkN+!FI(mA(z!BE z`I90y;cCG0C`@APdLXo6)#20v&~FV?UP7iu{teB|`7!(#12MO!i?^I?-<0$%e3@wl zj=TJrxF)D^KUET)bRsyxSxn-R1U6#bq+>Tha^BZ~gV1rS=6^8%>U?tYfH<0t6=HkK z3-V<|C3nvQYHzc56HJ&1|FW>AdqdiOH;>qGw({H%U)WJ+1&51XEgOcG94=wg3DTh| zA~V#aUV;V4reY)-l#z92N{ZmAq&-k5w1sb8OzbZ=i59O%9*^P_QdteA6Y0L%ZUOl{ zjp>!Y$${>tRp_LPWQ-G&lS(fW3O;|l=GUHmiRq(q%UcMk3pwK@<9x@sX0YHFs>z!` zvci7k!4pM^1?*fP9sdthwbF&6=*eUqF7S={Xlht&WO*6htTZG|R1sz+w(5f3eLs4M z1`vOjUR>b-8lu_GYeDFdba~k48uBao??nA&WB>)Fxf1La))xOKvvin#r;P}h$Ut^o z6cwIkh%KsQ1i4db(muvqE{%F*s%AtGzF%kKUi^GfSg&4)<9E!rcWRK&XbTHf4XH_P z@?}E2T+yQx==!R@G46X>p?h`Y}Pwy$8nw!;t5^E~=$Uc^o1PMNlRR^HC{Ylh` zOCHO}3|Aa0*(=gqm@7dioT3^$rq96xqq46m1EnOBa@o>7V>-y3Y8mkZNLkArT@gfD zT3B#d7ImysVeG=Ubp&(qN5uVl>9r+Ux>} z4C@$EwAI^(3<*Do$5L^kGu}s<%PlDMhxXJ)b9WM>$A9o!NY)b-MZ;GJV?bY|LHUuo zm2c}l<@1{yxzHcx+tNuYr+CjjIWaUl#_XrXh18E|X0lcNVTBO@C0F+qlP$&Hq~@jO zYk;o8cC#>gD3gQg^|9GxpeC+3+8TJ_iL2~?s=Ql>(B(txK`3C8Zgj*2@4 zW7evp>E=FGvwvTxh)DEVM?E8<+-2<4{!S|NE$=Yc^TDzbD<<=5;QAX(zD$-sPN6bg zP=N3^6;aNyzZXLpW!(lCkl-trOao@3k;w0Ps0Qh9z#QXcmXwo)wrAT^Q@QhhU;T*6 z;SF`!pWhjS$1PG32-KY})rV3il-#V3y=i@=#{QOLnZQ7?m zPe^d}K`1LCkmz9r337OX$mWK|eP0H;J#S7QVf-77HFEP)zxp?EN~37Hk;&-GTZ9Xw zzK8PEKXtzhDWRZ)nZrmtJBzhK0kn+Wnm%g!kSNng|w~ zR$Jt@05b+)CG~t^<-fd=m@3_s+9v0B04sKH~Aaw)%>^ZQj9Kt@^^C+K_UaqAZ zvLZ^&m37RdZ#Iqz#UVMvk3Ynjyf#ni1PL@i^qcFdYLGS1*;+kUvte@S!l-(Glq2{s zUC(dL30DWj)6Ao!tlS0lEGwbM`qRa(0+i@J^|GlF8ozgpi}YI;JQC?DN`TBAu{9X zuv;jxR_$^zV;(uSS&JPv5VYj4l_zm$x z$O46YQ0CU5pa`y{M1{X4F0heo2aE8-Ey3+4(iZj50)zOhV)sswUC~2F9m+nw|4ga# z^Cb)V^US<$<`?S+Iqev)nFcd?{@6fwc_u_s*^F~fF(mF^cBT-`e1-KO{Xov!85#GO&82g8KB1G$ic5^ruJ~sfppFU~HgGD%4KsHR zGoRg`vRD{rG@PtH6{YGE6O;0PKNML_z9i+6vl+nceK#?w*E;zcOK~HuQtPliqEQ37 z7?OWEwPW4$B->-$Xs)_=x;fEXeVy8DVO*}Fo`~u-yc^bgfthBVSX~|UTe&S!K;C5} zn&K3fkF!B3&HOiEJvEtss3`mo=2P^bP!@I}5Z(%!UOM;!g+1=kx4? zJ5VS6dIuEdz<4?qUY}Z7hf6#7|ucYzYPX z;vb0yk(I4Ir)^cjcYfjPWKs$sN7P56e^lI$>jr46ryRoJkKz<%auXcK)^e{nq2`d5 z9uYR`vIt2s#5fs?C2R^yG!V`Q#P$bqMDno87#QZY`2n{9X`XVAMQI6$r0!J*2vD(N z1s|U-*WK=S)LxWgdvb;4Qlzd~iHASZ=Z|mX!qN6l06qH=w`=ZrI3eey9?{z!4n#sz zLa!`KJlnY?0kEH#+Qgu7r>UE?psT>7IJ%Gw5oQ$kvv{!8%%qGl(^sr|_WF1!nI?DlNv?b-`ddqC4 zV_i#7JUl$=0WjLd6N zyYNlcm%l8=WMwa^Ih23Ux3DtP<~4n|>ec=n+0OaQ)X|xF7G9yXG0M5xk#T1Ay1UuU zvTm$iEG>&G?G*3CBpTq zaM{Ws6;wehNu``?BZ^~TKb=PesP)kxBX9b0F#3&Tt9iSDg`w> zaPkX+4KFIp!VC}On>%|o0=Nlzsg1+0&Hh6_UXLaeD~`*rsZ$)ae7QyF=;XVdD=ZNg z%}c6WcJY4P*bH};-fG?X6Y_<>Xj&V((R9NFe4g4ucO9f*j?eK?!9Py9!AFdX1_=(DI z8*aJpbbf^DBI{tVRXQd3HK-L(KYL_RrzY63puQLGNbL)`PAHab3BMeOJiNxA`u=|v z5m`+?Kd)g_7O%%5HQko4oakbzxS%7GHP zt7)*HIoa*-6Lp%m5Vz~xuS z1nQwgPE|jLw{*rMV$|VFB7<^S?^nk3(RsR~_K~rMsgZ_@8k^z~oL0-Bf`g@7U@t%5 zW|FeKV{IYl#fiMt1^?oiO(4kqG&et2Wu3*DQ==Mj#ZPcp3vB)0IT^X5&X$DHEbAj3zjpJP#_0>wR(ps2~F}m@pKM(m*)k{0yO)!=B7f z(3zwT@g<6qI}plleSwa|$G+|7J5P!@eW__TH5#6E-yDE+LKfWWR0cAB z;ZA6!erd!=p+bN_H3wrwha2zDj0TONmSBG(9NX@rcbrff&<_Rc!c=be0W^p;(6C-Ib+!N7rN<+_nz5hZ z)|D|V8CnG<1NNYCUm72|>4!6|^iWZ@tGrGmgjE?x6KEp=q&};`_tzf;aAw}k@M7T* z?b9LtDeHVE`=j)i)-sRrp$G}(_}O!I)FcoKhs;JEr=bn3`#b{A)`{n?laUqpFc z;a~rBiz2=;E6v0WbS6|5wNB~Jl6)am+6u$pa3u!Z`w`b0cas=BJj(_j6Jo70%$uqk z`DariP_X5p=xFU`l-1)t5Y3joo2JL2(SXwMr)#9GsN=3qHb4$W@?}#&V{&7 z^E`w8QSGrJ?nN_{(pWDCe*1E0u_5U5^JLMGf=Ylv+K(k#h7aGkJGKt`*FEvFBw{Gn zRtJ~rl#Gz*|Kd^MCR29QYCDA+I3<6k09A=Ks78}e2NhBk%>39K@*uzqc1lb;19K!` ziH??96196cT#jV)B`4Lz%y`{u+8r9RghKCpCVm{mRREwqkWl5*mU?3v@6B*4M z%C!1H!=pHm-44+hP!wS3Gws7q9xI8!VE`yE=kZRl#c1P$veh}8d6w*-{ub34jXFool*!E}Z*&(BFfl-@7Jl|AAkv<-$RnsZ2vN=AKa@=Jh`Ksx` zSB~08nmzxPZI~ZUX$hox*gUc&y`S6c4t*gfiIJf;E~=QxJ|9rI(B~g-J^QqzFK>X0 zQZqrC({M^7X09C}QE%X!r)#XUmJHuv76SfbR}dpwWM4ce+LjV#zhxqnb~G@ zysw_~Yu>J9&~g+CYBcpB+tpj77X#j8qaRZr|1=4ttYS8}y@G`JxzgHDN|~k9xaSkw(l)?E2x4 z3-;zhzIZ#xAF0W>|KN*paXrOIddn@y=|+z@uXa3)X1v}W`95rCeSs^r1sm?}WE=Ef zpOqx&z#?H0Cw-cRSJo+9%MR#$@NJew&4Q~dDGKff|Gbn$%(9R;`03Zxh1JH-RBf;~`xbF%_ru55h+FgHSZM?-?5-s(zKac2%m0#PSg%#gsB57ON22=mQ)*Y zq>7FD--o7X^*sr`THZX)(N`Cv!C3?T_i1qK9 z-y@;mzkYkuY4%$fTJZ-;NqHJxDe-yKBDX9s^1xp%9{+YhpLH;eM%7aKl1inc7HB>t zk%$;N;Zn;1^-9w(kb51Cpa#nSeixlEn|ICriDK^f2QGZpg5f>F?jNI1%UE2zFwo6T z6p11`FO1PP;9T)Znsb+hdF&shw%V&RQ-5M%-TUhC+b0PCutlbA%nuDRP^5}Lo6G3g zGH(mBVV29q-M=o{7gxlXB(Onp8?sJ(B|0!CT-aj==KVg!2`HaZe3(Ji*JAA{n0keB zd|M}054@+Jt#_0(UBE=eYT8y8vr;iV5#Ig!Nu}m+5U18}3)!ZL`J0BYwe{*!^4wg; zp_@^7=Gw2|FI*VA!S(qXnF@LS_ocE2=YtAQAx=87{DVT79j(9f?B#}MO5YM*YolAr z|0MA8-VWDhe#}hbw0>LN-dlD0F;@IhNZ`Rv%{;$}HW?>i~f8w)YyGc|q# zfBPNgvVXqPyS||2$S4?Q_Z$47icdDuFD%3?jEDp^6%~P19_NSAR#VeX>%G@9a^{0(wMH+&o zDl~0jKSvdjOf2p6F zc@k4?r1|Nhh)-M>jhCl=7bqRH&oTUz&@wXs$;DyC^uI%a(_lXg-^;AAnA=IP*(7n7 zx9!d+CPKW-*LfIGXpQYynHIk?-0`3f#>{eknP#U^Xe(-NPN(5zZ+E^UX4eNEmw=U` zJ=hf38Atv!At|Z=plN*eYq4C5v9|N|ySBL%m?jJ0s-|W(cdja6`(lgp8HqHw&&tY^ z9UcrwYz8O@fg}}$*1xz+8*;xUmK7Nf2BRZF)i0xIjxyF%7i*GBQR^96WbfbXBQnE< zC&VnZcYRIwxW(69U=lrCLOv19v;P{Eh>=ejKQ|PxSd)@yN1z2zXZHZIaQQv&!XUM2 zFD-{)r1U;RQtmTRd5Vm@bl9F;W~0YLQOfFw2E%>z(H*`w;A-x9k{f{r_*rj@U3fYf zFGf^Uf{h3&_;S8m^+yr5c-$nK_h@boj{P`6^C_6DhC;lYtagawqs-~Z?8xY%FBOH^ z)Q3toR~DX_X3t1Zo)M*J{Vf`IyeN|X5%E$)bChwMdcLEzU1F^PjFlEKgIUU_H}9-% z_X5vQJf7K?6WiTS4s8Xfoo`-{0j}eBjHcprv*m0OZmET-ydjG1xask}AH+3> zWxL5*6nu+mlr5o{MvcHW0F4qCN1jZvmH-v;<@G@4=Ru}9ulp58nyPgBgPjJ4NyavJ z)WNr9%{glLQZiv3`wi{wizVb8Akl&6+kJwIpUtPNffaW~yGV2Ffe%04C>41d(uA<< zeLY}3+!ciUUR6Ga+fs^{Ws+r0PP2o3PhYnql6UFrFb8W2T#7p+q-y)=a$Jx5^3Sk) zdBfxy&XaqA2_R+#CWl?Vil(Nfy$MJ2{28eHLg95H9*}oal)ox=;vT7Qwa z1E~81pq1s#LutRoC4Jri^skql%a$p67fc%BCA-W5TM>9Zn6daZ*;qYfP@Ko$sgY)H z+(LKg8Yp7eJtYRb2~B`{-%4taSs*tNp1%;(`6=@ar_@rs*&H>VUhBo5810@qRR<%j ze@Z{%0lgFxpBK6LDGkwa+~Vgn{4lfDP(oI3_4Xan<9~() zlc1)=&$o<>ZO9J|{n`$o%tdqE-TcsuJ37h)pi25wrB>1r-Zo-6|q=`0y%-Ug!(v>m8ez-r1xZ$EK zIa#ZT#C`LWMxZ9|P1{Wz_l^q$!n2|8!Yy^`V*#luq!RjR$_Cl@q|f_e3OX-wF>6Cc z5HDT_)J));JGK!5#zQucySGm&F!S>uK@3p`JZbaBU@7S{{ygRQLfJVX?*DiEfMp}7 zsw3p{N!dv5dmOVf1-w7bYYzI??ScpR-^BGV$Kdiiy}TMjVl^4@^o_m1}`aQ3DzoNW_dgm%JUPZ;|Jh z3YNg*HPOqIRF>*2vN<0r>n;v*k~DMx*d8F?6$_a7_y3^>0j!1C@JdrF8LbgRkL|aC zH~TVB&O7Azs1I{B;sK%3kTKM#vSwrE4*sSbPG$7#hq;y4Rz&gcawEw-EenOO_8K54 z?rY3Cr|4cK`phDJWJqWui<^zdzZ_|@TMQ3@q1!WnyE6J$Xt_Mn4!{~WS!B~@+kGt^H1%l0H_5v0WQOnY&3fH`uaeLeeGFFMsCipo!xMD98UnM66ZGjC z=d((06EL#6M?%nLP;IQV)V-kueSl`1i52Z_FG9}mifFXRfZ+y!lk_obkR7Olhj+3W zJl*yG^f``SJ~}*H+q;2)Hb7jS!1aQj%jXP_8XL0ziELkAAMPkqWv0ZKD|Ukr0&wp6 zV8tN~{{WVmOLXAf5(e3S!uiU}DS2nM$ITw*n=yHsfpO*gr z1A7)S3F)^Pt~Ouyw=@@HrDha|n|+Sh?vDY3#Naq^OTS~|0d%er1Sz^MyeyM@TA^BG zj&HBatp$3{dH_g!7d~Pmi&DIsBd1N1-J&FI`xkDWqWzHcA^Vu|;kgSvR^v@dEBGTH zY@WLr{~&=(;@~D(kRDDF&8N>w80Y{amcK^lbwOzWXah=vS&F}=5)u;k5$H$Zqg%Zr zI)u(null); const { data: scriptCardsData, isLoading: githubLoading, error: githubError, refetch } = api.scripts.getScriptCardsWithCategories.useQuery(); @@ -29,6 +31,62 @@ export function DownloadedScriptsTab() { { enabled: !!selectedSlug } ); + // Load SAVE_FILTER setting and saved filters on component mount + useEffect(() => { + const loadSettings = async () => { + try { + // Load SAVE_FILTER setting + const saveFilterResponse = await fetch('/api/settings/save-filter'); + let saveFilterEnabled = false; + if (saveFilterResponse.ok) { + const saveFilterData = await saveFilterResponse.json(); + saveFilterEnabled = saveFilterData.enabled ?? false; + setSaveFiltersEnabled(saveFilterEnabled); + } + + // Load saved filters if SAVE_FILTER is enabled + if (saveFilterEnabled) { + const filtersResponse = await fetch('/api/settings/filters'); + if (filtersResponse.ok) { + const filtersData = await filtersResponse.json(); + if (filtersData.filters) { + setFilters(filtersData.filters as FilterState); + } + } + } + } catch (error) { + console.error('Error loading settings:', error); + } finally { + setIsLoadingFilters(false); + } + }; + + void loadSettings(); + }, []); + + // Save filters when they change (if SAVE_FILTER is enabled) + useEffect(() => { + if (!saveFiltersEnabled || isLoadingFilters) return; + + const saveFilters = async () => { + try { + await fetch('/api/settings/filters', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ filters }), + }); + } catch (error) { + console.error('Error saving filters:', error); + } + }; + + // Debounce the save operation + const timeoutId = setTimeout(() => void saveFilters(), 500); + return () => clearTimeout(timeoutId); + }, [filters, saveFiltersEnabled, isLoadingFilters]); + // Extract categories from metadata const categories = React.useMemo((): string[] => { if (!scriptCardsData?.success || !scriptCardsData.metadata?.categories) return []; @@ -341,6 +399,8 @@ export function DownloadedScriptsTab() { totalScripts={downloadedScripts.length} filteredCount={filteredScripts.length} updatableCount={filterCounts.updatableCount} + saveFiltersEnabled={saveFiltersEnabled} + isLoadingFilters={isLoadingFilters} /> {/* Scripts Grid */} diff --git a/src/app/_components/FilterBar.tsx b/src/app/_components/FilterBar.tsx index 895a13a..72b66f7 100644 --- a/src/app/_components/FilterBar.tsx +++ b/src/app/_components/FilterBar.tsx @@ -18,6 +18,8 @@ interface FilterBarProps { totalScripts: number; filteredCount: number; updatableCount?: number; + saveFiltersEnabled?: boolean; + isLoadingFilters?: boolean; } const SCRIPT_TYPES = [ @@ -33,6 +35,8 @@ export function FilterBar({ totalScripts, filteredCount, updatableCount = 0, + saveFiltersEnabled = false, + isLoadingFilters = false, }: FilterBarProps) { const [isTypeDropdownOpen, setIsTypeDropdownOpen] = useState(false); const [isSortDropdownOpen, setIsSortDropdownOpen] = useState(false); @@ -78,6 +82,28 @@ export function FilterBar({ return (

+ {/* Loading State */} + {isLoadingFilters && ( +
+
+
+ Loading saved filters... +
+
+ )} + + {/* Filter Persistence Status */} + {!isLoadingFilters && saveFiltersEnabled && ( +
+
+ + + + Filters are being saved automatically +
+
+ )} + {/* Search Bar */}
diff --git a/src/app/_components/GeneralSettingsModal.tsx b/src/app/_components/GeneralSettingsModal.tsx new file mode 100644 index 0000000..05e5dd7 --- /dev/null +++ b/src/app/_components/GeneralSettingsModal.tsx @@ -0,0 +1,308 @@ +'use client'; + +import { useState, useEffect } from 'react'; +import { Button } from './ui/button'; +import { Input } from './ui/input'; +import { Toggle } from './ui/toggle'; + +interface GeneralSettingsModalProps { + isOpen: boolean; + onClose: () => void; +} + +export function GeneralSettingsModal({ isOpen, onClose }: GeneralSettingsModalProps) { + const [activeTab, setActiveTab] = useState<'general' | 'github'>('general'); + const [githubToken, setGithubToken] = useState(''); + const [saveFilter, setSaveFilter] = useState(false); + const [savedFilters, setSavedFilters] = useState(null); + const [isLoading, setIsLoading] = useState(false); + const [isSaving, setIsSaving] = useState(false); + const [message, setMessage] = useState<{ type: 'success' | 'error'; text: string } | null>(null); + + // Load existing settings when modal opens + useEffect(() => { + if (isOpen) { + void loadGithubToken(); + void loadSaveFilter(); + void loadSavedFilters(); + } + }, [isOpen]); + + const loadGithubToken = async () => { + setIsLoading(true); + try { + const response = await fetch('/api/settings/github-token'); + if (response.ok) { + const data = await response.json(); + setGithubToken((data.token as string) ?? ''); + } + } catch (error) { + console.error('Error loading GitHub token:', error); + } finally { + setIsLoading(false); + } + }; + + const loadSaveFilter = async () => { + try { + const response = await fetch('/api/settings/save-filter'); + if (response.ok) { + const data = await response.json(); + setSaveFilter((data.enabled as boolean) ?? false); + } + } catch (error) { + console.error('Error loading save filter setting:', error); + } + }; + + const saveSaveFilter = async (enabled: boolean) => { + try { + const response = await fetch('/api/settings/save-filter', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ enabled }), + }); + + if (response.ok) { + setSaveFilter(enabled); + setMessage({ type: 'success', text: 'Save filter setting updated!' }); + + // If disabling save filters, clear saved filters + if (!enabled) { + await clearSavedFilters(); + } + } else { + const errorData = await response.json(); + setMessage({ type: 'error', text: errorData.error ?? 'Failed to save setting' }); + } + } catch { + setMessage({ type: 'error', text: 'Failed to save setting' }); + } + }; + + const loadSavedFilters = async () => { + try { + const response = await fetch('/api/settings/filters'); + if (response.ok) { + const data = await response.json(); + setSavedFilters(data.filters); + } + } catch (error) { + console.error('Error loading saved filters:', error); + } + }; + + const clearSavedFilters = async () => { + try { + const response = await fetch('/api/settings/filters', { + method: 'DELETE', + }); + + if (response.ok) { + setSavedFilters(null); + setMessage({ type: 'success', text: 'Saved filters cleared!' }); + } else { + const errorData = await response.json(); + setMessage({ type: 'error', text: errorData.error ?? 'Failed to clear filters' }); + } + } catch { + setMessage({ type: 'error', text: 'Failed to clear filters' }); + } + }; + + const saveGithubToken = async () => { + setIsSaving(true); + setMessage(null); + + try { + const response = await fetch('/api/settings/github-token', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ token: githubToken }), + }); + + if (response.ok) { + setMessage({ type: 'success', text: 'GitHub token saved successfully!' }); + } else { + const errorData = await response.json(); + setMessage({ type: 'error', text: errorData.error ?? 'Failed to save token' }); + } + } catch { + setMessage({ type: 'error', text: 'Failed to save token' }); + } finally { + setIsSaving(false); + } + }; + + if (!isOpen) return null; + + return ( +
+
+ {/* Header */} +
+

Settings

+ +
+ + {/* Tabs */} +
+ +
+ + {/* Content */} +
+ {activeTab === 'general' && ( +
+ +

General Settings

+

+ Configure general application preferences and behavior. +

+
+
+

Save Filters

+

Save your configured script filters.

+ + + {saveFilter && ( +
+
+
+

Saved Filters

+

+ {savedFilters ? 'Filters are currently saved' : 'No filters saved yet'} +

+ {savedFilters && ( +
+
Search: {savedFilters.searchQuery ?? 'None'}
+
Types: {savedFilters.selectedTypes?.length ?? 0} selected
+
Sort: {savedFilters.sortBy} ({savedFilters.sortOrder})
+
+ )} +
+ {savedFilters && ( + + )} +
+
+ )} +
+
+
+ )} + + {activeTab === 'github' && ( +
+
+

GitHub Integration

+

+ Configure GitHub integration for script management and updates. +

+
+
+

GitHub Personal Access Token

+

Save a GitHub Personal Access Token to circumvent GitHub API rate limits.

+ +
+
+ + ) => setGithubToken(e.target.value)} + disabled={isLoading || isSaving} + className="w-full" + /> +
+ + {message && ( +
+ {message.text} +
+ )} + +
+ + +
+
+
+
+
+
+ )} +
+
+
+ ); +} diff --git a/src/app/_components/ScriptsGrid.tsx b/src/app/_components/ScriptsGrid.tsx index 475a0a2..ec50191 100644 --- a/src/app/_components/ScriptsGrid.tsx +++ b/src/app/_components/ScriptsGrid.tsx @@ -26,6 +26,8 @@ export function ScriptsGrid({ onInstallScript }: ScriptsGridProps) { sortBy: 'name', sortOrder: 'asc', }); + const [saveFiltersEnabled, setSaveFiltersEnabled] = useState(false); + const [isLoadingFilters, setIsLoadingFilters] = useState(true); const gridRef = useRef(null); const { data: scriptCardsData, isLoading: githubLoading, error: githubError, refetch } = api.scripts.getScriptCardsWithCategories.useQuery(); @@ -35,6 +37,62 @@ export function ScriptsGrid({ onInstallScript }: ScriptsGridProps) { { enabled: !!selectedSlug } ); + // Load SAVE_FILTER setting and saved filters on component mount + useEffect(() => { + const loadSettings = async () => { + try { + // Load SAVE_FILTER setting + const saveFilterResponse = await fetch('/api/settings/save-filter'); + let saveFilterEnabled = false; + if (saveFilterResponse.ok) { + const saveFilterData = await saveFilterResponse.json(); + saveFilterEnabled = saveFilterData.enabled ?? false; + setSaveFiltersEnabled(saveFilterEnabled); + } + + // Load saved filters if SAVE_FILTER is enabled + if (saveFilterEnabled) { + const filtersResponse = await fetch('/api/settings/filters'); + if (filtersResponse.ok) { + const filtersData = await filtersResponse.json(); + if (filtersData.filters) { + setFilters(filtersData.filters as FilterState); + } + } + } + } catch (error) { + console.error('Error loading settings:', error); + } finally { + setIsLoadingFilters(false); + } + }; + + void loadSettings(); + }, []); + + // Save filters when they change (if SAVE_FILTER is enabled) + useEffect(() => { + if (!saveFiltersEnabled || isLoadingFilters) return; + + const saveFilters = async () => { + try { + await fetch('/api/settings/filters', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ filters }), + }); + } catch (error) { + console.error('Error saving filters:', error); + } + }; + + // Debounce the save operation + const timeoutId = setTimeout(() => void saveFilters(), 500); + return () => clearTimeout(timeoutId); + }, [filters, saveFiltersEnabled, isLoadingFilters]); + // Extract categories from metadata const categories = React.useMemo((): string[] => { if (!scriptCardsData?.success || !scriptCardsData.metadata?.categories) return []; @@ -337,6 +395,8 @@ export function ScriptsGrid({ onInstallScript }: ScriptsGridProps) { totalScripts={scriptsWithStatus.length} filteredCount={filteredScripts.length} updatableCount={filterCounts.updatableCount} + saveFiltersEnabled={saveFiltersEnabled} + isLoadingFilters={isLoadingFilters} /> {/* Legacy Search Bar (keeping for backward compatibility, but hidden) */} diff --git a/src/app/_components/ServerSettingsButton.tsx b/src/app/_components/ServerSettingsButton.tsx new file mode 100644 index 0000000..ccbafd3 --- /dev/null +++ b/src/app/_components/ServerSettingsButton.tsx @@ -0,0 +1,50 @@ +'use client'; + +import { useState } from 'react'; +import { SettingsModal } from './SettingsModal'; +import { Button } from './ui/button'; + +export function ServerSettingsButton() { + const [isOpen, setIsOpen] = useState(false); + + return ( + <> +
+
+ Add and manage PVE Servers: +
+ +
+ + setIsOpen(false)} /> + + ); +} diff --git a/src/app/_components/SettingsButton.tsx b/src/app/_components/SettingsButton.tsx index 2b57125..88a21f2 100644 --- a/src/app/_components/SettingsButton.tsx +++ b/src/app/_components/SettingsButton.tsx @@ -1,8 +1,9 @@ 'use client'; import { useState } from 'react'; -import { SettingsModal } from './SettingsModal'; +import { GeneralSettingsModal } from './GeneralSettingsModal'; import { Button } from './ui/button'; +import { Settings } from 'lucide-react'; export function SettingsButton() { const [isOpen, setIsOpen] = useState(false); @@ -11,41 +12,21 @@ export function SettingsButton() { <>
- Add and manage PVE Servers: + Application Settings:
- setIsOpen(false)} /> + setIsOpen(false)} /> ); } - diff --git a/src/app/_components/SettingsModal.tsx b/src/app/_components/SettingsModal.tsx index 5a9edf6..f94a789 100644 --- a/src/app/_components/SettingsModal.tsx +++ b/src/app/_components/SettingsModal.tsx @@ -15,7 +15,6 @@ export function SettingsModal({ isOpen, onClose }: SettingsModalProps) { const [servers, setServers] = useState([]); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); - const [activeTab, setActiveTab] = useState<'servers' | 'general'>('servers'); useEffect(() => { if (isOpen) { @@ -116,35 +115,6 @@ export function SettingsModal({ isOpen, onClose }: SettingsModalProps) {
- {/* Tabs */} -
- -
{/* Content */}
@@ -164,37 +134,28 @@ export function SettingsModal({ isOpen, onClose }: SettingsModalProps) {
)} - {activeTab === 'servers' && ( -
-
-

Server Configurations

- -
- -
-

Saved Servers

- {loading ? ( -
-
-

Loading servers...

-
- ) : ( - - )} -
-
- )} - - {activeTab === 'general' && ( +
-

General Settings

-

General settings will be available in a future update.

+

Server Configurations

+
- )} + +
+

Saved Servers

+ {loading ? ( +
+
+

Loading servers...

+
+ ) : ( + + )} +
+
diff --git a/src/app/_components/ui/input.tsx b/src/app/_components/ui/input.tsx new file mode 100644 index 0000000..c653f2e --- /dev/null +++ b/src/app/_components/ui/input.tsx @@ -0,0 +1,23 @@ +import * as React from "react" +import { cn } from "../../../lib/utils" + +export type InputProps = React.InputHTMLAttributes + +const Input = React.forwardRef( + ({ className, type, ...props }, ref) => { + return ( + + ) + } +) +Input.displayName = "Input" + +export { Input } diff --git a/src/app/_components/ui/toggle.tsx b/src/app/_components/ui/toggle.tsx new file mode 100644 index 0000000..bd8d3f2 --- /dev/null +++ b/src/app/_components/ui/toggle.tsx @@ -0,0 +1,41 @@ +import * as React from "react" +import { cn } from "../../../lib/utils" + +export interface ToggleProps + extends Omit, 'type'> { + checked?: boolean; + onCheckedChange?: (checked: boolean) => void; + label?: string; +} + +const Toggle = React.forwardRef( + ({ className, checked, onCheckedChange, label, ...props }, ref) => { + return ( +
+