From af7a8f0a3335d5956364e68ccf88130139907079 Mon Sep 17 00:00:00 2001 From: meetsu <96637888+klNuno@users.noreply.github.com> Date: Wed, 14 Oct 2026 10:24:57 +0000 Subject: [PATCH] feat(island): settings as a panel that grows out of the island --- AGENTS.md | 4 +- README.md | 6 +- docs/media/settings.png | Bin 98222 -> 214442 bytes src-tauri/capabilities/settings.json | 7 - src-tauri/permissions/bots.toml | 6 +- src-tauri/src/acl.rs | 9 +- src-tauri/src/companion_window.rs | 14 +- src-tauri/src/endpoint.rs | 6 +- src-tauri/src/lib.rs | 14 +- src-tauri/src/tray.rs | 81 ++-- src/App.svelte | 60 ++- src/SettingsApp.svelte | 81 ---- src/app.test.ts | 46 +- src/bots.css | 2 +- src/components/CompanionSettings.svelte | 412 ------------------ .../companion/CompanionAllowRules.svelte | 19 +- .../companion/CompanionMissions.svelte | 6 +- .../companion/CompanionReminders.svelte | 5 +- .../desktop/DesktopCompanion.svelte | 4 +- src/components/island/Island.svelte | 8 + .../island/assistant/AssistantChat.svelte | 2 +- src/components/island/deck/DeckBar.svelte | 7 +- .../island/settings/BrainSettings.svelte | 122 ++++++ .../island/settings/FocusSection.svelte | 28 ++ .../island/settings/IslandSection.svelte | 101 +++++ .../island/settings/MascotSection.svelte | 31 ++ .../island/settings/PlaceSection.svelte | 116 +++++ .../island/settings/SettingPick.svelte | 41 ++ .../island/settings/SettingSwitch.svelte | 22 + .../island/settings/SettingsPanel.svelte | 379 ++++++++++++++++ .../island/views/AttentionCard.svelte | 3 + src/components/island/views/AwayCard.svelte | 4 +- src/lib/companion/memory.ts | 2 +- src/lib/companion/shell.ts | 20 +- src/lib/core.svelte.ts | 4 +- src/lib/island/bar.ts | 4 +- src/lib/island/pose.ts | 8 + src/lib/island/settings-panel.svelte.test.ts | 79 ++++ src/lib/island/settings-panel.svelte.ts | 100 +++++ src/lib/strings.en.ts | 21 +- src/lib/strings.fr.ts | 20 +- src/lib/tray.svelte.ts | 12 +- src/main.ts | 16 +- 43 files changed, 1283 insertions(+), 649 deletions(-) delete mode 100644 src-tauri/capabilities/settings.json delete mode 100644 src/SettingsApp.svelte delete mode 100644 src/components/CompanionSettings.svelte create mode 100644 src/components/island/settings/BrainSettings.svelte create mode 100644 src/components/island/settings/FocusSection.svelte create mode 100644 src/components/island/settings/IslandSection.svelte create mode 100644 src/components/island/settings/MascotSection.svelte create mode 100644 src/components/island/settings/PlaceSection.svelte create mode 100644 src/components/island/settings/SettingPick.svelte create mode 100644 src/components/island/settings/SettingSwitch.svelte create mode 100644 src/components/island/settings/SettingsPanel.svelte create mode 100644 src/lib/island/settings-panel.svelte.test.ts create mode 100644 src/lib/island/settings-panel.svelte.ts diff --git a/AGENTS.md b/AGENTS.md index 09fbde0..e5b7a10 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -31,7 +31,7 @@ cargo test --manifest-path src-tauri/Cargo.toml or an agent in Boite). It never reads Boite's files beyond `core.json`. - Tests and manual runs use a throwaway core on a temporary data folder, never the data of a Boite someone uses. -- Native commands check which webview calls them (`only_bots`, - `only_companion`), and every command is listed in +- Native commands check which webview calls them (`only_companion`: the + companion's window is Bots's only page), and every command is listed in `src-tauri/permissions/bots.toml` and covered by `src-tauri/src/acl.rs`. - Quit exits with code 0; any other exit tells Boite to start Bots again. diff --git a/README.md b/README.md index 1c85f08..8957dbd 100644 --- a/README.md +++ b/README.md @@ -132,10 +132,10 @@ A pomodoro or a timer sits beside it. ### Settings -Everything else is in **Settings**, from the tray icon: where the robots sit and on which screen, the shortcut, what the pill shows, the mascot and the agents on screen, quotas, pomodoro, missions, sounds and reminders. In English and French. +Everything else is in **Settings**, a panel that grows out of the open island under its bar, from the bar's gear or the tray icon: where the robots sit and on which screen, the shortcut, what the pill shows, the mascot and the agents on screen, quotas, pomodoro, missions, sounds and reminders. In English and French.
-
+
5jDW41sr`!T|Fz#rLf$W22cAwe@dJpA%#IU#!`Jo}-%i%G=ZcDjs!$LxSx&7D}( z5Id{WZkGK?jX*Jl-Q#Mx$+7hiE1m;!(ziEVPW%iM6&fsi`}O99nXP_A#+Z%gh`fGa znq`lUTKm3t@8vI(XA*VCU?vst){c`aWvT0c(~`E}?t`{XPz(r~eFHLpyJXhvL; z3w`j?8=!X2{eo-irQ-L&@uKm9zq3o??N+lWrYebU{gs+W(8Ok(h)^2@N{A@D&C4MI zDG?VY$(QpkG;(F;Ue=uw}+vNV-Q{&cUnGKv}X`bf8lS&$$k^8cBEGn-b*XbG zeJRT(#9d@J)a-lsA z7vGOP-NhUn{KSdQDBu$YAEedPIL!;{wYu4x)PME0vihTY4IHfFRrfC+KR)j94W+Of z$R&N^IheHmG|4c6sA#dfiuO438yl(o?Sia74YDC+ >igGSy=`d*o+ z^M1Nt>rgh6j>tfDm@R;5r^Vtz#Rwi35ws#+m!B8v^~}uH*SbRhoZaZ_^L2|zzt#d3 z73y<$iOv)Woa4paI^AuPGGgGY+bzSCfy>l}2uh%0Lb~3oJ(SD_+;OsuKDW$3W7ae} z`NN8KD4<0t1hE-OpRP~d<>dbI=Vxt@x;_C=lFD*&bG4Q{hjx} 8{p<_XV4|Xn z7QZLog&*CUV6H yhd%&a zvYu2vpUu2Z9$*c_T>ayta{K}Hz3^(L1%MTOj7?Paqc}WG8eT*NE^8k|^G9K64@r_n zkMmO*Ys`(pjt7%5wvoYz{rGHwADU+wsxh`JUxvD=%0woQMXLw47_U#!c|_9+rKRX% zjtExEjb`Pqs$hSd;NsF$a3$e3XGIA58DZ^LlkH&C>g_6sz comt0&*9$+HKe3*7J~AW!Sy}V*H@bfs{FQ7yP?ZM z?nSRTyH&*=BJYk`Q=TKoeW_4*3xZr8tZptkZH)edz!W*!zwV3
sc6~0R^ z%Zm%h_GqT} z7G;`=uMIzADHjcmf0ZmN-rZXoLH3*T@ABrJuXSxkp$qQ?|Bepl+u!L1 Yq;*uS0(eg0MH_!fhuw^PKJCs~;FkGDDVKcgj~z8 zj10PVON+B*t`==6V>DF+fi9@`bhm1~H}UOp*zPNN-oIKvc@@m_=eO_9$l+_5k30pe zj{vENX8$z}QYM-dd%W)EUsbZ~%jyQ|L0 =KMY zGKhivBl34Dgz>%0Hingj7z7mx;NRB0GP|jFZUx6}7c&NXQBnYR|>74 zWoh%3@Xe-XUzD(H{iLH*wa3|`=T26W-r>hil+qm<<4Um%en;O!zK4O%ukSw2zG?To zAWS%FJ7X`}q!n6UU1_vmygT+&t9M7hw+@?D3k^)1Q01 8RDwNV4EH7CB_ub#`**`q)qG zoxa>;+wGp6T(?H+1dAsC9^QZEv=(;WWWqf%8c5kK2XinaeSCO3K>iQ?y2kiPha9M| zuuy9FE z%ll?)r-5>lpNmUAu;Bjg_{I{FA^PBj+aYg&G4uWXGyOvDn|OiI@#lV5N6R}oe&26H z5_B*7$g1yT&EGzp)DBg}_BY|F2si qH0jZ|B4g))!g>a9(xA)&bI1KDdP (LD eqXcY^$izF3QeN)515sok*HjqdF>B~j8R;wO#eb+!Pdsbvm4y+eIF7TOq{Bdy z?9@#CY9i(8bM| ^Li`st}8i6vuFfl`l_;f_i>c3cIT{CmzrR)i&^! zUd*^o=#3OzA78ue@OQA^mSf4KG83$&YV644skqBNDT+>pHQ5c5D>oa&*By*WB&)yR z5#Yi6GK#biZce?Y)Y|Boj3KF^Nme@lwmgGnxCOFb*%XduG#5*(U`-CI^}Iz`%aK_o zK?m!;rghO-b7RN%e U^dqJMHYeVl-~b&`<`Kbqclu_0( F$@EL8HUL zQt2Iub!JXt>isy9s)_eJbJgby_m#&trTGwv!QXRPX@xPtyGt#1-Pn&I?AKW2b4{Ob z@+&I3>1^EgXYB3?_#12{_D&d;`4Sp4inF~dUCZ4d%q>=j;TL2xymH{V2E{R%D0mgA z-_V-m>&}~*dRl2u+MKTkN&gW4F=X@|KpD%rJ>TcQu8}nn@}650Z+V0XtBQD#Paae9 zR~WXx6J##bseY{AbYH$Xj>_02?C>^zraxWZRsLSYhbhxzTaQNgGF!x}(P3F4+``k7 z)xRnjkvDU9+{x%=>^8q;hQhhLG2!8#T~zP5n(d%t*hj8E-L&Lv2S|-zWQS##Yk%}% z0Vcq}80hJPC>^&qEuKz?I3V(DeK-jKl^smk>kq*ok)U5jo2j}BI8vXF>*J&p^%nS~ zZ!P2w56>S;2Sm!m Y$%D|QX+~1tl)p7?p;0~^4r=`jJ2``Je1Cm1(j=VPEB2sDitdTp#GCACu z-+n=k442ubz6D h^1{h5+0d^``fU1g=Io& XMZDWp>TO-hO3l&omC+tTv#dL4-0)|V} z`^S^(+z!)+hb!vqc^8W1ez&d#ljVF}ce+3&vA5DObSj*i2N$a-+DVAW|AakU3R8M) z;s|O7jJ}Y#hMLa;gYK$)+qUv{`!J%+Zo#yJ?kXscp24~H9 m{zo)Ab3 R~E9*mZKj>^{ZLLPCW*CYHUcduoQ+dUg9B3_FDr!*!qQX?lLKK*SU z-u+{%gI>P1^!eoYsDuv1c}00{ZZ05`))S430-L*%<9o|BN0LA?$Z)8j)Y-SFZ2e^+ zV3(-CRi*Q@nVG-cQ@+Ug?Y`q&vlCKQEuy&KMic!|0l3wR(R`2})+vM_ nQ6y0$)7r0C~T5yOO$>$4Sk4er3I}u5{^g z%36Ye-aDvwkuqb+d;vNYMW^nW;q0BWn;hld!R>mLv8ovoAoh-FsYdLf%7rYO_tWZ5 z5pwm7axqvvPM9%yQAz{nL+}?hjqIN F!w;sV3e+ 8q&Bq!me_26y8y@iWR1Lq^%BfEOe~mF;Xd}D;^Jxjv4&;&QKFBF>8;C8a9k_ z_7Qzp`~nXztH(C*@=$2md*70be{Zbc>gjfJtgfh&`vjVrI=9mPYB=3Kg9sNdL6y{N zyI{c4@9(euUi#Z^p#^QKwqxdn_uC^+8xv2h!u(@xZ$6w{Ys!BXISHJ!(e`^N%n81` zq@dH9FmUWN>s7d`I{kiE0;J+Xs2GDLSgV@jwA2@nvpp`?sC;>;dM=KppTtx<=YQmN z^E%zv+?MpkFtpzs-4&7J;ZdATyk33puw-#w!nH*p6BWZa{ex41U&8D&gHcxJ-O-}6 z%``HRp&Zd9 n00UyBJ*0Wa=kaD|m(rkdav5j& z=6r8j)-W`}si)oRN eXFAnyErk8Mq>zKU&yu3sN6__2sN zza2eTP{D}uTa{r09tSnDTcPSO^S0xT*EWX}3b~6h)2}c|m!#5>E9FxnerV?|e!vyp zeU*Kbs3Ll^iAnapO0O>6;Q( p2{OuNITfKdNCBuPmp|Ch7wq<+3pc2ysPN+wfxOt$OH{J9-`>>OZ yU(tAKJ3lmkj^#1j#Z{FH{4Q2SAU)#Z3=hf9wlsTLzGv zhdNP!C%lm{hl~QSBk1Dj7!wjbU|%nJ08*b9{&?({Gm?6euxrI+)->KuCI0~uh~H`( zx`QqcaC3AtGyv=&Iej(V66Bwzv74#L(_~v#nbZ>}M@57YQM}^e!A{^Ez*uF*Tt9ZAQ%r;L;$M>s zc`v&yQqZ`s7U%fpv+n@Tjks)!e1d3vBNTv*VS07Gd51YiId`Pv0jxrba2IZt2ifYO z*J6;MzktJIc^8U9yZc!pyk#5&Hpy)QG*qwcv|>vt;F9{z`Y=%M^-9 v)gnf zcF&omopN0nw3U2G3L7ilN!dF?x gZxB8PztXX^= zxUp=9C=jWOUEdg#7z!>wZu78fY+XQ?e;{9?FH+V#d0*u+v`bjpd&iAEVp!ou8wWY$ z fKhu>nivDI;*AnH{n1{2m VM_+WTbp{zclnPKGRyoZpK zODIGhGODqhEnnTN }fXo$L(6||%@)^xYmxW ArV?pidFB!0Uxjyl^Q>uCff^N&&9S5S2MVd=fzv)D&nJfI|BQFmbOoy^5>Py<2{Jvf*EtO zT?CYc fH&fYi+pwLuADKB^C&3ixZ)X?-}4Il>_ZYPx?< z?Nt44=kE*}wKw5yecH`|o3CIX)_3pjccIu*if*tbL5LhS0iA 4{*#M+J8lm1hG0xNadBOO_6s%SfOx=2^Z YM9zr@=o&LtWr;Ow0?bWJZv8S{A3hs;+ ztla71{-_mPmXYly5)V&3!I!GXAj$U&q+= Ac>P8~A|#8- zFOwaluAS|o$yRGStx#hQfBvyP_FM1yb>4mj7HpG_D!Z_d567?7kPYNJh+^5#e4GNu zk$>m~8W?M^2V9ett3wo^+T=mI_@$!3dEF@}{Yok1RiE@)T09)vPSV?4u+Fj)NoX16 zI_RjyU#iQisunAsH!eE(o%DtQ_t4JnM1Psz+sZHT3~4yNvRSBz0wuAq)R2#`UuH1S z(n-%gKq`vGS`Neu`zgx-#VyRl_a^AR5&@5xvWB(gwX42_XsZW-7h(dr6&ZbM!q9r^ z_=RXdrcz>R9z8{%@BQ7v#;LVO!C~|0OXl4928brX-n)@yF{fDHZ}8R|Fy8#xjKzo^ zVu*wHc7Nkle)@dgTz>jqKN@pDWAnoS+&_QWQPnz$) @0pe=7Zmn&^Ay)A#dv_d)}oqr~=b7CmipSwR!z!^zP?p|!X7i%Fkc#}?1{C657V zok{7IuZrsjd6KV5dF4d53hGvU-ObeF1l=y0R;|V(Kq&fa^$QW 4C2Iwt(#&np{6iz$m7RU+B_zkNuh{c)ilU)lw3)o3p3br3MhFaWoFvRn zkcXTeG{fFg4w_ypXFo9fAv3dLpYIX+TmIXZAgs5{Aw4hP9<2~Wndex{T!Jrme1`ll z5`YF9ef~XqwlfALLdPycv?-AVho)AX0^1a?vYaoi2(Q~D_Rwb&d%CalQ(c$>XMCQo zrDtYdkNlH!mtD^Zx7kH_0sOF+1@pu^Z~gWXP~jU;4lV0zCZeiz^{t}P3xe<+!QCCZ z`4K?oLMdcY#LF$hz-$3$vpa@G%rdZcBk@Yn?`F&TDH+g0>Dk${DKjQimdjIo@$=7U zQSGa;Axy%+akaTBwk`y|DB%#ooX>8ZH7AeoR|ur0aTU*`2MZUFr5(L0&U9u8yFM*0 zM$ZPAcB~q^?BpbB^n0Y7YORHe-9+HssPJrz3H^9%WPZmL{4W*3;a`^;KBwLNkY`jD z5+PYbCy#$KvgCRZpHkdOz(^4mnXegyr1OzJEHv~@oDd6VkFd4+w;$?Jqm Xvxn~% zyh6_hXRr;2BNVY7a;f$ {Kq-Y}|0T5IROW zto#79E1O^NV?i;$NlIMXCed52cF!?ShFbO0)0!)yBe=QKCi`mb6*Px6)>~e@JVl$k za*u^d*)foCe)ab^tYC=CrdUz7g_K_LsA+1daasPkRt#lBxB%s^H}On9oAcIBn)0hQ zT3TAY{%mL g1{OS^r4bk qlZ)Y0eAF{1j!wv|Q#wbHeH2bHwW8jK{oX z%A_>eVeFb)8T2A9A)(IestSO0|3qgjfyNM7QTwb<*5c|&?e)7>&-ad1CUCybsh-`g z?l8~ywo^T+Q@@|4rlDRrfc#W%vr=X~=DQ5L)L`VZD>A5&+ghrb6k(~%eJe(5t{OpD zX@QQ&yIQ*V?XhF*JCjCKY0~L=GuW$`eE)FeFPJ2cqgdX~5H#@$^PCY@rD*&sTf}p( zFBtQpzinV(U>%|Tldcy+M0Bv7Fd7X>NJvfwgcC0uE@jJ;^ h _src-;h^Yy`Y)U x?NTKX1t>O!~73Zk!7ottRO=S z)}lM(ryQ$@=jcd*AU0v)JK$E(TtvLj4pi6oGOnI={f4=V1C`NuX}GS>B+_|fwO5#8 z?6&08A4BRoe0jJC2vN-r%lZpHZTY1F#8C*jxIhlP >-5c{j@ Nf%yLB@ znw5yWBmVI#o?;@DLmgzaOtmnK)lqk{rjX^4y3Q26US^@(UQvm|IYokC7c-05K9?jo z#Wq_CcfVp{1pz0~w7xn~W*KOn!Be*SXJa4E-VOXZ|G1F3`+N~cvL=EeN@e7cHB)72 zcr20P;FJ$zmhB6*a~#OHj26Vzp<|$`Wnnmbz8=|aK$Y?Cj5e-Ku8@(Ttp6%Tx^Uh= z<@7gYh_8P0)*7~=%f-YmX)mlpkE;-?*_;KtZOwe7(sF~R2lZdt55~|fij8nLs-?RV zjtb`jBi@A!eAzmEmjTTV37@;+)n>0n&76tn5eyA&7sDVI?b^NX+Rm;h&;pEjQMqDN z&(AX0zH(7{u=F7L=(P+U>rvo1buk{s^ESm}uz=KW4MqhvhHJ&HSD!lgeeXf%DezT; z0kPsP%9Y}5?vXr+`2xmYT`qr5hwwl<-*?5?07S6g?6d<%`g3#kl#h ^K`WfLOc2 tyxE)}5k}eVuB(DqAQH&g~Zrq1Bg} z)4u}lK&Iz+2u)|_T8Fl^D!|u+?9W6P6J@$1BZ?>eu5U-0vN@P4 4mjvXM#ue#K^A$5|%vD)7aErP9guyibV65vC9RSBvet*s!1GrAleeNST zL{ktM-GP8XJ-#6m|9uxC6K=852L{3}@B1cn+yoIM)FWS}O4RE^-1u@q3Ty>G%Ov$c zJ)`VCex@k)*j=kqV*3E6-(CIAjv=S_#i$I%{S8$rKKc6k`t q(mU z1b`T&O*u4xK%}#@!}K8Ut%}k)ui}N{?IcuI)rtQUu)l(`eVB5)By8ohwHf5!+h#j) zi3{ke!XS~6i8~R`XvG3Y3mYyPL~}lS5$;b ze4zS5ir=* (^40kk)ru9lf3 z{&QF(c%B*j3LW`oRTdY2r4ap#^${`CZ8)#}3}gA+lQ^n5!C$Wc58sY6_`SaUhS)HE zw6MtygY`h)EA!V<{B}T6=WhpxA5qa%&-bj7r|s8IL#$cv3Vxk *wH_BL@_S;O0zU9RBGzP(YbAzV z;p?FkBR3M%2FRKstoz~WscsPO=XdVV&=MpaMd`jDw74|ZPq*ejL}_RaQTuaF|2*72 z3k-??(lA$xeaidVRr(4EGEpDaCj2_z3h(Ufr~LT^zi)}>;PUzTsN~59hI{|{X8Lf8 z1*ES0pi}jAW3UpZ4F+sc!=qH%iawpzulh-unFnI>fzh}Dcw6l@wzg%R?Nb*{FyqeC z!SYlmDme)P)GV_16~(Roz|~~rzI PE5r8jF-SwCYY;CTJmwon^irtO+nH zK(<$x;TDPqzrr9EZ;FO15(oi5uosZMygT4GXFK*w&EIF>K)f7bwjZy^j%i>D8BVP^ zpNo8nj>9ybQ>xj?&>jyFH+4sop?`8)_`Lhk!NNj|C;&*GjvMhCC9M!#|EmQgj%zMi zXM4bAcpOW{sT#a*xb?ww53zF}7X|HAx~vS?^Px!OgmN!(i7M^&cM9spJ>T9W@tVPO zi;qu_Io^qJaq;ov=eA*x^6FYl6*A^N3R6@{YFNL*BHx95y}*_nsOV1FPp9t5_Inb^ zF$RN`fq1=)&b?VLB@l8-Ong<{#vM0JNdv~Vm#C+1S*I=ma-#_aGz*vam2Q@A-icO+ zvO!lqrz|I&GnXpy*~HSg#3{-NTHd1ZhqQ tly>of2k(}P)5>^&3G=Pmw_%?!l23F0njDhq2yV_p)F=5R#}gV z-jVBn2l}GLPb^3RpWO@xgd5a8eBKnxso;m6HEZ)!h?M15Z~>TiBA0W}`l~Rp765Y9 z$DISg@v7FN$JtIwG=|rcwv31~Aa%Uc$%s}a^c +&-QAf@q6G(Y|m;H8f z@=d>jXN%R!Db 00TU zZ{ptIC9DXzTi$5EgF -a4aCPQI`L&EbvON>~ekTtCQGtBM@UL-%<_ >_|D)=v Vl;Z=;g=UjC#z=Cmd7scY3W(MAu!Dg%rCf%_b*u=AD<7c z_^~vb@(Ur@A(c&vix`0Op|Ou|R>C}b=}MKPO6`K+Trp30jBDRGv#gcx0pw@Q|Js)z zlo14;0Lqf%s7&WQ )^9m!l{@Hn5oQCbd5#wSTAbLPa@(A3^xV zKS7UzjLfJ<9sT1uKOY~{5bOpTan>oZ^GC_mwI8hU&TWx*FTTqWLqUN+&C(`MnyEs& zX>Tlz=(!65TNo35hs1ev`W>@V19m9v{^N-6NqqJ=ERh+`t*@OnAg`6bfPIXcw=U>H zwwXTPj!X}xkChNV5E?=AP3M;UPG1bs*ZoW>U-HTI{&WIIP>m_E`bN}SX}|!8F^oe< zkIm0OV4xc&z*T)Z3g?+(cA6Dfqg|zD*0RHX+NY;a)*Kue6XT9wQOrJ5xC#K_^(i74 zBYs1)MC UQLb zwbqpV8=^L}E?&qFY2(+q0-x3bs5ZCIOw?M6-bcDNT|ZM`US-`=MIrb$k_b2Cm6k+; z-&V8dHnm`8ZtlzdEmZu|!c{x$ioku-7rEHN1nGbRLTA=KcEUPckaegqyR?Q=kw`|+ zk%1 ;tFhzjkD)cHo;W^;U z9{;SE`tn4&+1}$a)PaJIdqYLOc^u<0_5Plvr?=ExqEZ^0v5cR}Tj_;clPR$z9mpX1 zT|q0;%UXx85vkgXAyE@~;-0zEnj=c6HX*7F?nAfHckUfG+J5g(j3A}87gw^LH=TP* zsDIt<&6BMH)Rv1$Lkn0-pNIxr;cUa?8>79d>6mPB3^%+<$%$f(sCr!DOjzm5#dX?u z3X|h9BvNjxnO@YYMl+teioF&0*LJP;R(RJs7Dr?*CEeHF0yW!YC!ol$-Faa4G)eNK zEWXaWT4Bgw^TDZ8Cji1kWVUl}^v}rfUrx!dC>O5`xtIN6aGPh}N+u0gfBSOJhseSF zM~R`>dF`If3ajm7ZHEip(#9R~g_k3e%MJGCaXjIP)aKikqvB@zxLV<=?E$Ax_^5=Q zoq3*HhKf)aHW*YGH@*58nQl VN6u@M8~PTc$z5lDLZ=tGkND5aO4z_=cbbMR{lV+uN0X*01pwRNcl5& zxpPVHd$#SRBC1WZo<{8D|J3Fl36D{AdTkas%TnDz%#J37F`q_<7Hbw8@+)!txMItv zycpnZK*#R$*2L5fe>CU-+xdF`t3!9gQ!883UpX&2BIQU>ylb!0Sv+hddG1U +w|M-wU$@JuPH-7X)Z=a+>We^7?odF`M_D4P5kz{ z6W37Y`ibB*TM@47i4I-UQe?9{>4N>{klloUjX)_jC^V^&x$r!SIq34_Ra~)LLyDl& zfCt#j)>cc5?aqDtg*PYFD0Y;ud)z@3L81wIX@xVX?Cem|hP|9i5iRmJ-(xNf^QrD~ zn$jLAQ` C zp1rfXBYadIQ^S!KN-SOVzAM!Cz37RYW5uQ=)>ox=E+~KL*Ro@jg_ae|tt%d=TYbNS z%2*^*wIkNaAd1yvLsVJMvOZD_9cvFUyqY$XKYqKDlcU#Cd9zgTiYfHhcp*_FwL#KM zmCDP0Xy4%1Pi|4x^^~4X@;W6*sM*?O8}?Lkdz5^hyjRkrc6nWdJDQ{>{5Qip%vQ5^ zZ~2409D+36 W^0aLN1D{N~f}F!_>v z_jx+CUfJi9tr{(R-~6oRv!A~C;8e1~BF<#ye*lr|&5%BqFwj(hd)UsnmA{0JHRF@x z^3Ya(Q1&bG6|?nr6ZhQuk*P}4SvO^_R2J=g9C*@wenZZAn(TOPvMiiVVxN?oj}sjB zP)da7J^W9^6J|pXs{qq!d<38Y-dyKN=(30p36%vZMb}z11Lf{)Ouu_Qu*dp?E8)RV zUS~Mr9Vbh0LfsIipPlKBZB{1MF?qvfXN}>-xAiA(TF;QKEN-7&07tXk$BMGTO lZ=lL%n<60_Hisc3c%cSv7ug+<+_+}KJ&6?fYz$rW9sS3B% z2Sb6LI4PqDw5v0-Qk*69{d2<+00ir& OeaMvu>mwnivZ~3W;g=P5eBcrfA99iHb zaDJLKa Gvu1F?65lQgiCQg+5YuSFGJ38XT0viXQn2P(`CFzKM{4tBTzCU zndYWCIEmi$qA$MnG6d$EjACEEHO{-+5sHf{28qIA@H9|@aqXF2UYtF5FVIQ?SeknC z7qeP>qAwYv#SiX0bw}GHtos<(OBJKZ?ee7Jeqsv=39T(&(YM^Ii3p9?#s=O#?fhKz zm9f`$yu8_K=Of;L$>TeSGJ}fK#pn^R>t8#i0i@tOUw6-m(*l#;g|@Q@i4!msIiHES z*^2_lqP8(8k{sPqjVxn5J$1wD?rJJ~MRf`|-$6C%aC0i2#mbnSX`ZG+zS(H@y}t>^ z?iBitICmQW*pBA+MgVdHAoXxQ8?d{oltuz%It*XeVea1SX)>n;x`{EwKg^kEY0(nY zLgci< HU6v zZ*p55RaFL>!^y~&$Wb{OFZ%t}ZKTbeLGx&?_P5G-p)gNdh5GbaKeJzX znPC;D6=k_HY#gO)moTU*G7gn9zV1W}jk&f^W|#+(g$S#!ftNW00RdgPK;*$>6LsSw z;N`qCtdjBiIsb@4&fUGREuQLvCy=#l 6?{v3#w-9G_|92OIvv*OF#tx3AZ=E2dS7D94wWC4MGzQr!RXI)GyK z)4E~)0C5xQI8QK**95v5!uM+p_H(pA9u;apVfJBvt-!*4jOzXq0zU03j``G&YW}(D zpVI3!a34s}m-l#%g})!eES{eVe*d*)v+k8wx>_C|d$>Hez&W%OxmjWn@Z)CW`g&yC zGtce5E5xi}mR6H=MgS$kt@T*@rr5v(h;*QydKTNsrkqcGLW8Z+;s?z;=i=ngJhJHu zO&-9{Fq14 GWKyC;V&9KPk+f5}vFZEiGv7MxGVSTxIZ{Ki~?A4~vWP9 z1IFq#dR^=+=22FLK9SI7@jv@DM_&VuSYNswe J&Ga8)xdHhPq?hBhtzfyiQ`|JAxj8E<1f;Y(> z?nPGW^^#;~1)xs!oN)qFl6A~DP^|-cuhs)T^VVZ9Z3}1$*4BV-r8RSfXPfwHZ4$a$ zXdEej&zC?BrtgyE-~xLA44^*W`N1MyHIb(cEo!gM5LxfcdY(I4q(bujmt~mA$(4MQ zZrG{e%OeY~rPzl+=R&vxw1yKUu|;uXT5jEBOX~(3IbI94bvV2u0L2aj;_pOFc2@?J z?)v+<&*_diqyGG6SO-GsBI^i?z#O{MubR!bwzc=wueSA4vVgDtM~UvrCOmzwSny)0 ztZ?qJeEBh ;k7Z(yDQc{iJ8?97mA(TQgX2@o~UQ@aRsT_UapF1 DKeV2aDQX~#*vm|rqFzagQbkc*dE2WMBLFDb~1bWTUDp>}*r&xXZ zSIB)Rh53A`7K3=Ur@*}=dodNGGa#i{zke45{DEfxB0MYy?gl_Hl@Nk9wD9jv2@6>6 zPuaiW2oBTsb4giWLFhMsxoo4Kf@lC@+LIvc>&lhIY4$9zFareoEcwWf=*_(mjqe{$ z4>s50ZBF5)-(^x1_)fQ}LG8U)YKqroEnI_~x?r2&zCS8mVM8(}cddY+?*)^&fbbyx z&ik`CQmu^p<$-^8i-3Bo9I(tczB|rT7i0KdkEA|I-znN>pSYzGuLppKAI;^K&}!!9 zz0#WWOB@yL5^h1`PPdiD*DFcJ8fgqbUCyYOZeHyVh#w3A#};C(BbPBMvEWy1sVDis zgy^03?V*@sO80!A!ev%i#qqdZpl1JZFZ5QY;p1$Gmp-VXfx>zF(~h#%uE91a-1ao* zbh>4$-C&Q&%#HmH WPROy#0b4z |^4#=p<^ ztA3Ow5+`Yie#g}IH2;>{`{R6?+~#|ous{E$r~Oxy3!>y^=m`~73k7d(;IAj$I1;0L zc`o_nekOpV2Gpyhe9Fv+GyOq_g0m#y1a#2SdoJ5`?(2z9_=KCM;K0FQ=#8`Cn!$@1 zp>sG&DL(g0i&rVGSF_+7M6QZ}4+sNo<~w^MGKLFJav;zv^(H{pHUO_~tFXfQ%#%p9 zN@!GkYpN;`s6a@FiIuhUQ#j}Ii&Tq>i @w!?}do2_@6s (32P?no7PJS 8*ndNR$fuVr*qn(g1S(Y?vUnB(`Gv&c2E U@)JxTg+pJuY#0@M@J|=-aen#^SX2X z*66|VES=nmPNol_ERNGUzdwPF@7ULnmfkw;UjJD73G#ypQU_}fI0rlh<#tiJPKVr$ zZ@b#JFLRPFnt{2^ojXBPT0<)JC1jLa4-475z?{71)G#7_rv8DT))@%3m0tYM$^E9UXSNr7FQ;O z11;WNtQfxHwQeb`a`5h#%~a`OugNHw^UOQF&0E0V{_ETR&6&L^=mQlM`p>bcZ+|>F zMDNijiT(5)@d }?&c?Npt6A-x>{00*(aM{ z158HVi#p9dBun*KS2p=BxdRYs@{dqxJU#1=VX%Kk$Mslpv>m6cQ{)LPZvuqw;?Le7 zjdNoh6&LzfhQTuqshl%3*Mp8-M6YifY$4*)?RY~(UB03{y^fSr7#|$x+JQa2^FWDf zh-3rTt@`HjKLg9hej0tEBdtuwr8Dtv#gzf3KVDSZQI+F`INT#k)tOdH+KxT`AwO z))VWv?$PC3X2_37D{}#+N&Bu4TN^vg6Sxp=aL``4K<%uNlk7u*D}gFe%NV|0L?`VU zTkoZ`U3b(n_`jf@mCX0~XnT&L9?c>AijJgQwIGFRl!1MzSydSipF~PePRBR`PW=Tx z;Id5u&v7l#_XB^SMDs6Nhz08wMAY(OGlvCmk>ZxQ;@G6uzyB#0UUl!X@Sg82Nxx7U zmKS=AZ|rAA%?u(6Y-_5kmG_8)i3Wn|e^kBC?1)oXTaA7a65xz(2??0SO8~t0-vOK| z(*^T0^rCMAdt&k)vtG^dkXhGQPNMHd1Gi6`=7LgGfaKcp`mH$gwZsor+SpHPpX}ux zJZw`permd!>f$xGa^A6hR)6ueSBH$XdbMKaVsMq$S&X^F!#LVxL`dd6#HzQ(f;P8J z ^*+A}R~}|M^jA}q&$(NOg@vEpjea=)$2HuL{mp|} z`}r3>83V1nRzU2nsxLwr9%!Q3VV|THUpkeFBQq`I;k;(S+i`5*)cO&?rNC|^=M_kX z&Yzq_Aae-b7AYovvp `5w= ztW?Qe+E0JUY?jw3TGMB;oNC*hehRtcb5RVq{St@Mu;r6ku7v=1ks%_&WFz4Ac`0~O z<#g`uBcD<1*ME!Is4cN^LDgWVPN>_2!((_krcsKyQ?Q?`m%|Vk2gdNBZS>VkcuE z>YmN;;EIckUY|?Sl5TRCU;|R(42WZ@@?D}B;L8 `=Jm3+NBWMNXy)|%Msi?L# zLa|3syJoGdP5P12HWBl+)uaD+T@&4)5`CfF8HPGJIa$_l!V8jJ;~~@Z$f>dK93S%n zOPyq{(m^j;Z)K^8yM9f6$={jEaz{z{C=gN#$hU2rJ|E`)XtWThXZ60q7dWtI#i@P( z_%ey|&Th-VF=OISQkX~dW~TXDm!pEbw6{V^DCg!QIv*7835{2k=yt)a-lN#eJmzJFHhcWNy5rhY2ZV#JvE*q)mi%_;`9qo_k*30@ouI2?V5%kv#y zpeIcfm__Nb8_azwQaL+f;E?E+bja`c$)zhGXh+Uw08>>{V`d(3TBUyY(=@{%0B}mJ zC8RvAd`y7Bl_s&gqK^+Y1Wj1ft)xuD3W-_Ktwb~^Gs05RPa+#{)Ag%6jU@}d?k2>i zR7-Bz#8z__gAT+np-*~=A)EDVWiDxt^t m%f83^sw=FR=q$Byb(g884(}P&%v=aQF;Xaq2w0*wWo?MDvx-sL-0Y?Awwzd z{ oHQ_!WtYmYBlFKgVo&q z&doDyRGVwAv}Kf;)V|tYAokwhZ SX{j>XA7gpab{0~xqjl-2)6Vu!{@RgH3v97)p$N_d7IzLJnB)wlW zg^UG_g>!``y5w>a$)_|H!f|VQF>`KD0zh5I%k!-^qLvPk$=N&0y5~4nuD%cLd#1&q zyD`qnWd&SOQ2yR?itCLpPS;D5D7i>aLqb9TpCI=|$1a!yIM` UM}nJyJ~EV$&X|}nati0el`}_ z7IRwxbz7AlMVscM8r-%Ljk7Sen-fs8)M?>iQQg7&kMqaxadL7#UAF5b5H@=%+s@vX zuY~uQ1+R3YT&~Cx*Y8H-Ngi!krI8hew|MNQ5&6$|`*9+w)$U!C9-^`-90+*K7_;R| zjpc`#=DHJb>IFfl6g}ZKA^N%4g9kvTT8}M}6g69 5=F^@ 5GZBboOPRQU2WK))^OM-PIO!MPo{$}uhXc;g%auW@f{?nK zN;vxOB}S>T9~8iwhRSgK&bCE-G(j121Hl=}h 1=$n+3l(aOhG^5DKJ0I!w$DYe8C1z)514E_p5?NQ8 z^&%!!k?Y@8pTa!V-G#10ZdSZ7c%GlsznXU$kBuc8dXH$gtlmz_x(@sLK^WIpy0wlA zkn!8(%O!I^BEhneC1fuwEM#J429|FO9rp~DM}h&-DCH5AlWrnNMHm>g$eOMCKYjXj zNm}MqB#fbCtBTIjp>diPsM{J@@R<5CNU30<(t^x?`}S=sVqN956(G^M0jC+M;w4?2 z8^B}cWTT9K@&lqMTr*R|Xq%Zm ;#vgqL9!}Y!yUW1nW^_b05s-M`uC6*ChTUT>fONT3 z f@JdD-&8+A2Wm><`K_v64JJ>zNb;yaP;D?#G zy1kCOc6j1fNxKj72`k3dKK@VYs`fv38J}oqeA`PIziaoON5i@& Zy$LL-V0Eh3!D6% !B~c+h!9c zR@*9s#2xQKFOS`{^Ymn*=g>qNdqHt0Uts_r)R91JA|3z8K2x2%iqoS+MCS{$aY&n< z?&h%0UYQB2?kp8now7OhtLn*nk0<|gQ$cqb_ea;(>~Ep5-&x)lXCNAf+Qf{Zg+jvQ z0s $r3vdVOg0j`WK2ft5_J=k^K25SBu ze;iFzD=^vyPhi4O)H>d>rXxo~^|;9x_I}_??_SEAN>adkjChe+So?ewZTr`_Xlq7A zM~6Cyu(92`zEMVQTudJiUVMf1t+*TO1;8S+GnugnB5Q7*d%MqA#S>u2*Vev$lm`|> zuVaOnksRE1VZ~2ws2A$rOpk+cw<0aNG|SRng!Y^BK_)ng9Wmtti71bF&UARaH}%@` z?sE(+>s}eonq{3Z7Cb@6LPc{y`u| 7VFKA|qCg>9wOByR1(52^UYwX6t4bVQ_ zf*Tx=%jRw3$v=RQPtNaFYEx|);|c+ySxUq_u=P*Q)Dc>V;_g@1Ld{(3 =hc4n_v_sO&$Y*8{!+DU;jh3_5*1UDZvQ%GyuOQc6qLbv|0J z(8e@}M -M^1mcMzneOVfm-a&E~_a;P|$5QoQbGK7v^U)Ymcpm!$hmrQv;DWwhOlh1x zUWJbFJG{T%5|@U91L{{4u=$p!sSv2$P_Ty?XVj`vA(^dhY(n+pc#J8HSqz*+T}LHq z#vO%@TAAhSjWX7ZzUgEt4pDhidX=OZZm4E!=jqsu TIkTkMn_xaXOF5Tq3!X*$#15x3kwUY*FH1GGp01iX{=R}p&M6E zEJCL81eL5C3MuuaJg=ce@SS7UvB*x#lu$Sv89d#CDb1FIp}M3Ybj8Jr;nnpge%_V_ zH%H+`z@{$wFH>;YNtmf=c2*X54~CtEg;C2tVidSnvqDEF?&5Lp+`mn9U&+Am?(v&~ zn@HzK16|7))xfm`|9o|~DJr+V)Byf7T*!CI<>AJ{dHs!{_a6$Bt|#{lURSF_SL4by zYMW*U3b^6=AyPsN7%QO08Gnx|Ix{hmIPp+9jmVNAY?6V >#cdb&8U7jQ!7giM-;+MVU<0E%SyE63_a4?#P!ipcTtJC3qrK?+;xsq zsZ`ve%vSu@zdv$t7z>uqdQ RS|BFq=n#Kdv3emT zd~0|DolhoL7HSapYnllMoZ3)xIE3`&-x-qM$GxxZ3GrB`Oc_%&Vw@CuYzkuyK?dgB zEHfccZTX?@;$O`eF!JO}MF6(GjxQhN*{o@eEq>ozEKMn$@76ou`I>cm&eTK%c!UD~ z-uy|;_V2(wh3YnYjO0O6 WZ^XAf2jJl(z0 za64WX6{e{=X_TTbub@j{)za*d1>Q_<;KfTI@3{cK8achm&h|S$m;%MgjE#1{x(56t zs@uZKE8HA|su5ah5srhhFI;~gF8{El{gOugpH&z1ws<<|$Nl^9cO$i-m1W^?Xn9y* zc-b<|_uo~&eJijKq)*s%3*y&4Le_wkb~RfHb9F!_Ws>s8Hk*XIV_pxLq8!!ZQtgaA zM4_)=LLG+$eSUol1}RRV-AFEQ{%Z&9joDfUz snV;|Jz^i|8v(! z8|53MucMiHLgcvcQnuC )ni@-pJJcyi;0N=rL~KT3zO@$vb**sg>8|xYGejW zH(X u`PC`)BiU<}63z11wS||IvX$R6l->n=K zJ$k3%Ek{ef0PgkGzk<%w+sTi#zcRwOdl}i-pf{3{)16p}M!5KJ*KdA7-ETtagfYDO z;yLM=b9XkJYd7aJQ}l(nMNvN~>sAZW6}GGD&>QLlT=+wiT-^eGW6lJFQ;&In6x-Dn zsOSFK&6R4YdViV;97z);`{9v5S>ArUh`YCP9_h{CaWnB+C^aP+6$2F&&3Y_Q9!C9A zNSyYsRW0su>mApzaB*;efrQ(|B>?8a_uo!KvgxoVvSdUCOhQ6Bb($^WWl$^P5{2WN z g8{mkGdjEO@FvmBU!|=O_3qal~1ZFa; z8aYUn-_%Rq+Ms43kYo63X9h_srH=K74Ym?BJ$N|!aBa}rI#4!=K`*SmWy2O_)KOFr zK1;F%{ILse;6vyT24D1rSbLBs=DLp6d~lt_I;I <>3_S zBgX@`#Om1_2}=L?>)Rw4&}vABTOz>z!{fqC=0Xm_D@TRir6_LnAV%LS&G_y3XAg)* z5?5u$y `&R=v#%JH6Ha_Ku7a2|bQDs{S&+I5MddNm;b}g->7UfbwO^Z+$hf>iZ z{`qOl-#ugC0SB_I!l6ptQq-B?Mn_1jVO-y{y>h{}@t>Z8ly$1k;))sVR)6oK|9^#` zJBD1@Gb$@h5`BL8i6*b7n|MuK70Z8MFRNAU`rCf?c76#{kzSsE2HRlrMoBL$cw6DO z5!%~A)SQoX6a%@6-AHHu*}qPfMX_2gggQ*~r+bi)t&b$W#~9Dh6+l8El`*c1qWM}p z NSC8b|AQqpbM8Hc*s~5wC zE*}@FIxH8i)(2udV~kn b}D^B@!>}ilpKOzT^ }yM znA5?*15=*7Mal!ge|Lr>9_lyi5}`80sOnZxaiJ<>#odO4m2!P_*=>f)_gCh@p{MvM zHSLTbnzIL{kx|Z3t&>w+yl?b=468 NEruI|UP}*bn`As#b+t@(_R`JO zZCf5VJw$fmQ5SU^9c3=<$KMmi#0kPdS3JV3sB)wUfuXHtgUoZb#6;$^@02(H@h&JS zeF`Xrp4+~8Xp*r^U1u4yVTquPtwgomNd1EpF QdZ+O6jpu}5fBH7% zq_E;iIr(??<-vaW=g>Q&G=2tM|F|X=){}lwH@87CVN$3D$rv=$N;k%6stqAWvy6=h zFn;~D_`!y{>JH@(&}h$Q ;}(=Yyy>tS(}Xqr4qwwm9Tj{8(lq$FgAyBE*YpON!3qO3=6j~mP$h>|I6 zk_sNbFtw$A6vo6|UeY5`MoL{yMKNhi3;b2_$NxELf=)tjK{icaA~Ywr2szP3In*k; z;VmXaiV!7tm>>?Yavl_|!c@$wtTYA;IKz#lQA2icggQZ|VOwETlHLlK-~4NZ|GY!C z@@(m!d%tcMNG6u7Jv|lmiZyvEH5Bk!CiOx8HqTB;HY$TNA^VzLP-0W{IKxLl_-Ec; zjx@1#C#TQrWRoJ3QgE(vD4MP7U$0w~REax2VUekhMNR*8E%*3CcwfdKS&W`IG^04R zf5x|w*8F+=0wGI5v#}qV218pplF|$@_zK_c<0q23|L 3X_srg9RTqiXA9y>V5t>tC2gD z#7I6qS1X=Y%Ct&C3kt-TR0)n=QslNGWB#uJ3e9N^`CeYICT$w$O*Ju$b8Z zY5Kt9Ub`)-eueU-a~I{oOy1rM)z2ZxqcB?Tiz&p-h>o=E?7@Ey>H$rjmLX}=h+UD0 z<-8TLu$f5D@Ih?g&~(9PaEW5|@iCeHp=Ud$P;wg~-d1K=l-X4Ie>{OSW{WsVQav!G z*1 1I|SiSf|NbmRFqyA z&1BM;Tc>7!s9mz1t?l23@~h8~J@3Kb4s|J*QV>fS9BbO1Dm0CZLYIAa#hCj`IgK)N zbutnb2DPeuwT2$&)u-tmi?^kgY(y}i>! R9p_4|~~6AIMi?2erK`NY&=!R5yfa5x4IB-A?K18L(o~PQ62((oF6@ zK}gGQ@1OW(Ds_<;U;0rWrN2{rmG=Q-FbJQ z%C yF_fHzjv!Y7PC>R7b%}c~2 z3l8u3#LhHjirA>=zeY_mks5Kcw~e~Rl4q2e( @s;E&WZ#F$aj(lJO}jgHouF~lwujUUO-97GS(p6 zhON>x5?4pS6b~bGM3?r89QOn5gm9IZWji6NBqD~%dxi(2Sf>mezZC`lG2U3C3jIvn zJ;)sOg~KT7ZTcYsUi3`UN=5npm9f_Dn`Tvw9{K|TU(EXyGEVIr&SI^&1v@wp%jHn1 zY>~;Mz6|RPaQ@?Z`ShLs^TU?brSgl?d7vR>BvXIN<3efMUdp=7C|N4TN~E#RB=!+V z$BmYR#F6^Oh~K=M$o)(q;bvq>d~Rt#p-8e`coS*!KZErL*&4sRer0zxe~btr$%VFC zb_*R0qwhM2-=87z33+Z~kYq?CO_dZ?yfXO4dfArvJG6-?Mvo62p^Pr|6{_KNsX-L3 z^j~I=^ZfHx1DH( I-D3oqG z4pt%#-TtGUYNdC(C^ID`_oTe)v-*i%Kvr>s9NE8iXwiKr^CFTBfD(r{P|l}f&ByuEtvKsKT7V_3WL+re8rPaJHjAKrK@+?&*s&ebH;J}y&`B*?tZZxe J%KlX;y=LqkFj!(#e4sFt*>D&&few)wCEw8!ss)L%=w#P4mly1Kb zGfY04+ L_b23TJBL#| zmla;XzaJbWV*GkoY)bt#QXS4B7q99+PR@~$bF5q!Vmzk$GDx ^d OxQRg(3z;+S^}+XVQeEG1>mv3Tj^IA{ zEecIhMpXCAONl7uNSGBb;)iqnGg{qy^Mf-im*!O=pD`S2B0Ireqt{zqGZIaREY7=f zqpCG!O> nlPWWj{HtI9c*4_u@U&!#?Mpq%w9Pz^_M-q^y+YWfpkMfGR|=3 z4 4X!A`umm6-R_Z;kAWS-J>+~s<2A}k@q3` P%h%FmxM zivCj=k=V8NH0(D@r3%R>3!m>SO2Le>nY}70Nml=qnVE24KGE7UkM~Y*Nj1mXh|fd2 zdkFrgR7}s1^#c<0?1U*ajlvJcd%I~eRPUz#>*b5M8Q+)nh}EH#_n#*z$bfUC1!xRW zJMIYhWC|0#*BIz@@YcfrsCy{r3kRJ_bye|+4Kd`#p=)SC8}D{H8NG==pa@c|Yy#SX zET#N2LT@}QxrP!{`=B?Ut8?rQu$3O-$!=|pJ_Uxx%Kl91BWhthNF~P+O-$8eg-Jgx zb-E`05+MiCI=0a3L_`UoyJSMby96RZy(90|%%=l4vGnMN{iQ8b92{I+9R30&CjYK# zfcECEAQz@RWGPT>iArRTziIS6=DFn$-ZK-SD+KucKX5S3QyW_m4AlFb)r4t83dJY7 z!fEr_p=+HYc>)n|*O)-jZ@UUzJt7gYno%(^R#-tB!Suok3JPP~QQb9<+lm`S`P&7! z+rPaTG3@`}>v;z71X~_0vjB`Rg@fvrc1fIdLy>xob^izNmM<>~Gd2 K5TGh;DvdJ2*zS`fd zv><}|2^!)R67(W}g+*1ZWFC*Ky2rrlN@Li%N?ChK1+iqE %r2hvd`F9(z;m;ul zwSUyq!o+I7(19|EV{+WWh8?AFw+c90Bp5Aq+xshh;mN2Ow*KwIs^TAXv?x)*a#*)c z9viFTfO#vW2gB;PH!J9HRFv~S1R~$u(jnZmhD@;&(qCM{u^8n#_ZVL9OABcBF9jtm z+E%!vsw=7DV9upp)fa+cb7ha9bn9!1g&dVWa-qzaIBs ?uU K9+rDku{p_<7#qD{mc{+K$dSRvK-2DErBs59a^htxnZ*0G%)Fu4;tz+aHiHVXW zEJIvNf7_=8RAjr&bWC~{|I{^ZTm`)v&o8WayklSzsVKE3{pI<5a}1hgoF*#~lZcJA zL0UUEK0NUEm9Vt)1OUc21aM0X1tj6V`8qS2{;V^2DGIK$25^+(%9oAqk*+PZrn%X| zmzU|pYM5nQ8_y!0@CiM9&Hl%+c%@pJ&w8-1Jnn6^{(Vu|wpT3jd1C2iEYd=9!Q(XY z3Zx!N7tCyCd8yZvg>CR!g}BV`X4`%##he3IFwe-aHA)-jUSzOUay!v)%wt!LcS!~e zpcC+?M})F;p`PZmq5q2<8#pWWZhVpjrjw*pR`8yellpKysl!#WUgQdT4#fRr!FKzC z;03{+SE)SOIoy0Y+z)~-!_nCh5uX&0Tv!+zdx{dejQ_6DeEJV5nNmz&O4W6jLWC~U z3kH`dmn)ljGQi3Sv#O1`B)#PD3c2g?UcK-0+t5ri>qQPX(f09)iw5I}ct-#ec+hTr z`tNf~JxaQ?2i;js!u71eqRbzGZ@H$C+#6vp*O(2=0QCjzY@qoO{26Q#yMIy#Z_BIH zcQJ1Na1c+O>#~AeGB@IQTJIJXa%nV9y+!!H>+ZuCL7G^Udd669anRbm`x&~m?!9=R za8j&>A rFAv)*rJb(UqQ3yS}&!3@8R4w zHXVYm)c&BGGB#Gz^6GlCIbc=QP=D{HU~AW9-U?1gVLLBCYqaXd$CN z)g?R}90bb(fVtv0=)hQghDY<@PcRO>4^VJjb@s^93JJ1}rG~&4TAPrda`?ad(!-)s zOO7<%6G9?w=ag;!z}9a~9%z^KWyaeQI!<9`Od#>k_K`EI8N_OO__w(>0f0*yh!nIS zGQ?;*0la)=?E>x=16Ax1#`*wLXxzpC=L! Yxp zQj5%w)CO><3$2pN z80wUExj#ZHPV{lW4qr~cwCfG}-0c2(J!0ygQV|UGVYafgL?AW~GO<0 {$bTnwCZXg3ZHs`twbM;Iziy)hz zvDa>Ij@-cjUz77B+9vSgfctuW90`HMLA{d+7{L`STnavi@uEn3THrqr!LakCWdxXT zW #RThU6KB1Q zPv#WRrkpvISux&oeS)|&*rTTH`!*ombJqH9y3tgxS=K{Y@n8hmyJVvuHAN$~(lxQP z$dx +2PN&Pq#5+xN!@fC+s2cKw}k@mVAc0bG{0ft^C&<>!jI*5Cb(pf8-?S^>^~ z_nmte%DqU`Eqm1%*gA_oEyDKVr7*R_jL|w-6^auQ(fqxq`g)M~MkUW)j9B$ZRwhS7 zw=UbV$r-ajN{jIZmX)TY8M07JY^J=Bg@t8Y-QM7 k-L(z-FvqX5Q+?2{eg8dnhPZJbymG`!0b^; zNhvyY&bh^EXCcPWJmbH+UXXy2I5hVEsJiO7DBGrsq8K13iqa^8l*E$K0@Aspw1_m) zod%(FHxf%MEdtV@A|PE0C=$|*AWPRbKF_D``}&8dKUwy^cka1n=A1c)BR$7xfWt%Q z!ZZ&8StaP7$}PSxbIB?PneVK)E6iWXEnnZ9%izjMUYBFU{fYu}Uk#%m_`KfD%!O+; zJ83=H()1!DHAf5M)nd$B>5y~=4Qx4AU}?~=RZMkOsHQ20kGsW4`PtaBXZJp;_wDZb zF;IJEyOtckqvx+aRWIPO0GbDhmE$hW$GBt;s>_ EdRpkY FHpv^*Nm7lcmtt(NXgVCG{DdH}u*aq3F>xJUoMA82~nARQwJxUbSu; zQ=9^za)~W0>yEPpG FPxsyY0UY}){Q z>G0UNxHqtwbFx2t8wA_0t-{(~(Pb%EPOxtwGiyHvzu3dZ (9K!>EOI%3;-6 zIGRCOz-|5Jf1a`Hie*g!%;PG1O5V5kJJK_B5`i@Ko#|&NDe8HDUvki0wUI&rv-e+2 zoVlEJT7Hx2sZes_9yay&2M3CuN~^Nwy>l4sf8@<3 K+_wKxsN Mc--c!a?8W zw& b)Zht_h!J zX09PBGzx~qNq`1H zpVFir+aG*<>=`Mu6BE_{1Ds@iw!fWl{K?cettUCV>PW0GO1wYA5cw7^I=8QXKv;6? zt|3`gavP1+OU^lmFrRS^d8a~&5;2v$t`V@KWtiUQA*N@2_(SYACJr{mU03@zzxEk7 zGmi8e?})waiOP|k4N076*evG%;Ifr8i?zfsu6A; 555qJ9$`@ T3F# z3QMJN-T4G VbAlq_e(ZUU ?ewTh3h(^vF~=~5#^~YQ zr()paGh4#sDTAL3Xf;SIiuxSJf_|{AhsXXE&pUVSplvIyzp1*M0O4_Km480P+utDL z&n!S!YChl+#ouE1W=f>&+|x^aF3;Yj_ld^>aTPH)MlQ>qlIAjYd)YvmPNg6QcTa!S zrJI2X(>|k;L)(#SyQm&f#<+ZRr=0`^XgTn^CA_ZsWLu%>jO_B+zYPhXNGL4#~ zlIG&_DR|B4n8{4q3m>RPiLg~k24jZ}j=%a^des&0($U}H!dW^GnbqUR^8@`*k+h$~ zhQ9PqWBgmjTqibrB~DazVFO01@L{R-H&{VYhQFvWSR_fWYJyVrcIT1nSI)}^H~)m} z<%X|Ji%^~?4Q9Gt7N_GQNQi^UJ7Q@&qJ0MIVnG+l_dtP$?_Iyz7{$!-2$hz4+%L~g zNr&HPZWOsQ7j@o-@cS3KW|XJ~RT?gC|5j@6*BaMu$-dI|zp%)vE4urED^<|>s_o|H zCOoIH(aEW)sXY4$h xmiX3?&8hi%xD~gYyihD oj&g {k&prVs$^VqXZV?z zndN4JwZ7H4M~5KAoj~@3KE%Lt)ftNC8(W}#4W>e)@aOE@@H=$_yL%xO^@Qr?msU51QOqz59C!n>;|)X4jD2seO{HVnf{Mq^8Z)S-Y>2tLW?& zU)8K4iBnQQK5{uo)q3NyR2@t9Dk(X6^S5|l;X}9HlAn)MCA~!^^mp_st#$}oxpUnU z&ZuSJ^F8hNS{;ck-V@sR+QHOzY2x4~3;y+ES#p*Ns3GuoLyrzFZFtmM4HZAo^ic6N z2d#p_61{5iRHruj_ RjCc_tdNNhR4*7H`paA_{>d=I^f7CM`NO>n~Vj9bogOX|5~maI4;v z$Zbv3cA&6ZWQP>*e*NT!Q-V0n&_8%=uT*>OIpov0j&2Z%?Am<@_u3kaS0xpO^+4MO z_fNmQA)UipH?adJk@*X-5 !#O6hg{E#C)qpU zH0{^o&3kLqVq(}!$VD-1`Ur_t0WMui6341W4cAzOr}jQVql@2AwjVOEP&qixb?;jQ zq`ol$86_ebm%@|t+K3ntFY8 O(<0nwsp>qT(3LH8mu z(C8{LTrRb5>0&Qsrn1_B|9VHE%Dq3Ujq{$xZCvN~P}TWNhYm}Q&2Nr5bSQ#6$PHDC zRipIniMK{aP|-k^{X5HeX4i6yR^ZOP<)nh{SiV!s#j1`u$vc*uySX~dhIGHU5%bqX zm-7>&4DdPp483~aCl8U-!dgy|f!DFOZ;_f^C;Dn0(AV-ZcTP56KicG<+*JeNl@N{# zTslx;e7(9Og8je+OPTt1$8LQI$?;qkzrL$ABnj=IenLw|?X#XZJmCf!aH2PxH`jc} z@7o3v^5;mycM%_zm6eTq9r#NI&$oT+PCjYHB^r}sxrIQ0<&s(ZHpo^9?|ed?BU&?q z+XVYYE#ZwT5L!!PwUr}Ea N$7GAu*YG?rp z947=5o j5t)_kbkbt#Hxf8MsS78ws*1$L(96W>x;@Wbd?35G>-I4K ?@Ll<`X zCOFL2?ha>3 L z1GFZNP&d)psAjJyH@CEaD?nATel6@Fg6*8C(|K^c9Xdx-*9eX9Bbvq0>P-;CclkM9 z51x1BJ4M=MbJ5Cof>pBqJiqsM2O4)078Z8VU(8GR1o|mRu1scoT6RrunI}mP2nS2i z33OeZ?5hfNC&0fWo9Iy>J TTH!;^Ob7z zcj)MXwEc;i>6;t*H<>O#fg;I%vORIKn`p2i(@VbV(B4Xb^XNV~{e>7T^KdS#%P=Uj zP56|9G#EqLgMhz0N9XHi#qM`bkdI$GB%YOh&(WxW{n#u$@8(vvR(d PCVqNye zhnaA2>0Ka7_YtECLi{&ai#DjrypBgq= %oB&!K?)?RW?3-JDzx0;nF<014QF;82@(^8 z09P!`TMvg~Sw5zD;MR4pSn6{M5BV02{GMf~3{m}QKi?y{Nnsr;^ZWnhnAx;c(= z>qnZYI6abYMzMfRzS0 )@PiI*jIoY5B`x6`lFzi_FREUo zo88K8YW`z4qqu+ZLdA68$g#@x4^$U(|C^t2^X4i42WwuX>GV4#wfStJ16H$ AJw59v)TH4bc>OZK?brm>~k4G4TGoVMI@Gr$bbF%g;tP}Idoal8_wF@ zJ!48&c*9oGWcRJ{k!OGFY#|N~=z&=NtsI`A$Oq3^4#zreYD#%@Y+1yMdtwUv?OrC? zOU9P2x#ZAw6;gCj8$T1)lHbf8T9um9suZQ15uMv oKsmox*An|vR?XrLHwzvPqo_u$+TRJqO#%e!nSgLcilbI)f%7ug=&{#_ zsE!(*{Z!f20hSq!;?ie{3%D6nh!!+~swKUhgGqJ?8|;(arp c%YI#Rq5%D;iF zs=7B!XP9R@KH 2R_hJI?Z nt@FB~zSd%>Q#sJ#buGNSv3WTx$7A4J?eh*~G^% zl#^1pF`cMHTB~){vgQ7*JpN;2LQyoiJhzOtVoTrDlouY(y`T?D|G)2mgG0H+7@%Ut z>yBEwp@ks>m`bvPKxOz^wpw(yfw=+wQf^Usei$-RQntLKW{p%MGeF0Annj=4CjDJf zCknQn32^MLJx~4rr4JmOdrS7(!jk&aDOPj6uBMn!^Ngf#HleS8UEOI-*ZKk9iU~iW zV4O1~DGXUe(8_3RA|R!W)4Fh_1Hf}w)V*=z_K6^l^o4T4+bw@X)ebWa+iZgsx2vR^ zxw8!djAJZ{YbHszzPeAxCS>?H;}0$^8WL3(HrS!|{I%f?sXrV0J0L|9?Fvfi55BWb z>lF22)LNEH^2oMP7w!fyjw(Ysj4c1b=|}nIEQ8wg5A!rr7Z*422@!yjoO1cIlZulr zk}idRX$I%g6kf%p^c-AFBj#|)vMdlk60@&d6u*%cwu;brpxce _52P4|8d _QQ%N=7m z!;mLGUc}qV7@1s|2EgdOuaSRX!Dk-gaOfp+-W7i48PirX7e>FNW$B{t2rc2=hYLM& zK*AL{Y~0TbSz=0f=g38hlin>}%hAvF=lgNC&NNnKn&1Zm6>N`5>n_r?qDn8jlMs>r zne-A<93%b$jx(LdyW2sQL0<|6)kBbCN;Y`?1Gp;E8L52ddU*e&t7jfBGiC9vQ6>WL zyo6(NjF9ReKrEe?SOUynU^*~h25(Cq`$YQMER3ZM)DTkiiQj6;aMB51q~7@R5@^@2 z LG31*ITt(01xp#Yg<|sdxG#I@f(OnHg z(l-9E)9j`OEc13Rp?odt-)wQ;yQv4!{_<7$^Tz>rb}vC1p+GlVD=jaU=}nRh>+G>} zi$48THEd0&=`o4s2UVMes{L~c!f}Zkr?@qb!jR8ptW#rpfjIDqLRB*IHTB=iOfwI% zHupOzPt71qV=RlN_-3(8b$cpSQ`=H5j(!$p(A1PS+=<0%s;JC$-n5O6tFvr~_EAk7 z9}h#c>(>;K7{?5U7^~k`4ers3`Ufcg6x*aN_~Sp^wIx=~hsX|=rRmWo9>rI|HCs_! z)2WWuf;YAmxiTV6K@1=%hQ_}y+R 7i(Sjsvr(Rm{|Pj7NIEQ>;#~E#WpC)q3_J z0*^z665uDj0Lw`uhsR}KzTCsZInNLjyvbSSdb{}V)2LE{c=<|BF!%QJNN9rBy Y zX*KS2o;H`M5`)DLQj}0uRc1~BMvmK7bB3Z7?Y$^a^pO A%1yWu zOAZ7oE1?#2aLQ=N;R}fk`_L(4HHfh7FI}P$$(4=e ;QXb*7B a++EWd?Vr3hyAwm9#F;s@2R7C_8s&JbUMNDksu(>_J zLQBiZ%qhaj$;(L_utXgmf6W3y_TmD^+-7X=z^keL7gJM*nNxZXAN;+{AK{&HAjVM9 zE+~~46>HFfs7S)SCly*ld{bRbY8?N0Y~o_NH3hom$-6sj^D}OH;WI=;GC6JR!XZvy z|3oW%#a!15diD5BO}N#SPKTE|Qp&|uVywBjiv+RlS*!C9#@lXg{DU8?E>-R%XJU9N zY#RGIQ#M;@U;W4eBS~_W5`?r8lhyVAdPSV{Fpf$}xc$!0$h`~mI?1@WA0Dch<`!1A zG+Gsxt|w`=U9pYthQY#nE6r^N(~IwN!V36*3EL;8jd!0s=_(yE{vTr8r*k%~q$ZGA z=583Phtf0Sl?9Wcww)|C%L6Kde`E&4VhF{U<=7sF=m_M!O~4CcVU}0y)8N^p=zN4S zO;_FQ=whRVK~xzj>c8IPGrJE%gy9jfB9F%11%1$WW~JvS%cwsK=QEJMi)u;s-wM}w zhvUo@geK?06gvtsKjXjU^}lb+@`|8-B)>qaeVTryS})ginNWi2CrXlPuVI%1*eN7- z7#< Bs+bS%(}Z5*EuC;}D=VCVJg0jndXvq(P@~sh6GmuIs!( z2D=TMDF*uz+2ZXyR`(mpBx4er_CuB8tP85CP(x?PUZ^kr<>A1Ep?84%%0`89(e$7S z<>%@sAe;Bkv}h)-5Rb@*BZTtE#-E8~^WqOu=d+Y1Y ?mp>XpZ# zaX@}HTsM+vhO{Czt8 UFppVhWARgCDV(!owvi}FMYEn*b?o~8P_rq`+eN7* z#nov8VNZ!m{erS(GyWju>8w>slkR>if_klFDp*JANfOWJ*EA&9s%)LtrRj?im?lK! z#daCE{QrLYzaQ~ni^Yh5cZl?>-VCW|Q&U0CqolCijHEn)B;ka9<)K(TY-Te$86l;= zty1jAUBST7`XuAaMK1IzX@zi>Wx6V2ko-9Of8qrP7d{WS+{G|t?HXTZ>e(O~=H(<) zLD?b;7d@l|3D1_I@|V&FWA>6`u+a1NElQ87tw+6{ !vq$j% zcdHL4pGZ9%(cWeMQ;HI)_?eg|hvH|U^21V*qZAb9jp$Wk4ad6{H5}w$5lf`mKYx<) zh>(l|ItA8=<41p+vET3R(G;wqL3RbAADZ>4rH}R^&=w8bLf9vR6387oRfaEnn-cwq zhsY!H*ZS`!=JI8qEY3%VD%Z=4Wm2Ed&5+1WDdMB2_Ggkh {SOv86YnYm1K3o0LzNdC{>-ZOt FOP3&b z`Z)C97 ?-S4AGIl{27ri zbwwjIBPl6{I;<}!A|e7NkL<618#eC@YN@p^c!8=lxB)$9{$6PdlnCGdFp+R@K9R&5 z$1rIxrXnO})fFxJ6iQ*a@!f4fsaWJspK;~6{ld)f0GZ3JjDg1G{n*8UN&+Kp`fM@4 zjvtO?88rn!-N?qwY*6iR7B{_E?A*77g@i9(7(LwUBd_35hf5C#{cY3Glqm (`+{LAU7tLp&XPmg7!KyD+OkAxp=~%*@F6rKhLo zc52L^BDVzz4^?_jf_WgtpougORlO-=MBH;sKOI@w1G(=smcfyhV;zdCgIA0(hdn9} zF8Rj@!l0VlMvB5jfhxz=qIi@|`-cD{yF>lzSZ%IsbPk9c5#9*_Z%{24mXfX;IF|*m zXK2~jZi$FIr$dqnKM< ea2Z8a#;lODj9ovnG==R#kT$b%T6o*%LRpriEO@R; zXgj;8-;)Bh+QJ5Ke`hVQkGreQ>9Qh=i$`z>vhzo|LH5|@=4RkB@cJQf?hj6Hc}!17 zPfcIFef#zzYpSiBT#!7$Uj~=T)AJ{x@;g`^PzdT{VagM;v2n4n(WI)8AEeZP4eM&y zd-e7URNtO5l@@J9>sa>RUb=K$vV3aoj`T10N^9L=Dimnd6&IMC93O$ODtm!845tKP z9G91uNB7KTq`ZwsBLrnw`q;l>vDRb(7Ry7(xZVSLO}8*JKW}DYVgmw8ApHt*fG%4r z6TUcG*5G33<>lq#;v&@oLxhtf0K}b~gM)*A6QM>btR_IgAT#q5TzrX6#V=4MwL9vK zj6}9lds>5uL^AJFDSTyC&~Q&eOf$fPPX{EhR$iMFsjY;B1bnuth((K>hMw;3$2fkM z%6;kY+!>G$(c_q^zEAXLzeOckCYR6x6&Z;Ql9RQ7?}|xHl`W~6qn;g-R~xrHMP8k0 zl2rPj8o_LEPXYvspsr_z$?CNC+lQIt@!|y>i7=)Kzh I3-ox=D{%e|5xgV*dlXv~3k 4>Eyj{uJK=eYPOu&T;0D=TJUfmGl# zJk!@nNQ@GM{y&pFTNh)@I(yb1iO0m0S6aHEtsS`e%i-Z}W|hd`tIT88fC)7}Vpt!i zFRawdBv+db3c9Nxr_c1emL6BA@CdpN)5hO>*NmCcA&B _GjMT?BQCRCL<%m{w94|0GAFX#USG6 z-5f*$J|Ui~6 J@4w*_+>R=Fuy5s1@=mT1Z3jBx`0jNZ?~8U zb^x8E$0u_MxCJGDW&z2zuUKgX1wG;ImlpsC!NaOk&Jp?{AU>LGe-R8Lf_gwf!>u)p z3Rnl~*4B6P60?j|r@xjmL^8_}(cV$=LOyxX-rWs86v@NO!W*9v;J~!MfFiQ61Zx7I zS$rfon9oh~p*58WR!pn;*>En2_o>HkGZzAj#6?|mSCf{_OZi+lpKwR+f=J|p?2WHQ z>D`iV|Kv#(qAS15K`TT-LE-UZPK&HS!d3RWcOMxA!M0zL_xRnhFeGb&F-Aq*gxNzf zB*uM}Y!lCbfI6$&ddFNv**qdo!9L_&jcFMOe_aLpV))@O98)IgzX}Ez`f5a!_ijo@ zYMm>$0SFwFBJGH2G>poX(?rzSbjlfj