From da5bee7b96662338f332bc549a0584a18c415a27 Mon Sep 17 00:00:00 2001 From: Pontus Abrahamsson Date: Wed, 25 Sep 2024 13:51:31 +0200 Subject: [PATCH 01/12] wip --- apps/dashboard/package.json | 1 + .../[locale]/(app)/(sidebar)/apps/page.tsx | 10 ++ apps/dashboard/src/components/apps-header.tsx | 11 ++ apps/dashboard/src/components/apps-tabs.tsx | 40 ++++++ apps/dashboard/src/components/apps.tsx | 128 ++++++++++++++++++ apps/dashboard/src/components/main-menu.tsx | 5 + apps/dashboard/src/utils/constants.ts | 2 +- bun.lockb | Bin 963074 -> 1003458 bytes packages/apps/package.json | 24 ++++ packages/apps/src/index.ts | 3 + packages/apps/src/slack/config.ts | 14 ++ packages/apps/src/slack/index.ts | 62 +++++++++ packages/ui/src/components/icons.tsx | 4 +- 13 files changed, 301 insertions(+), 3 deletions(-) create mode 100644 apps/dashboard/src/app/[locale]/(app)/(sidebar)/apps/page.tsx create mode 100644 apps/dashboard/src/components/apps-header.tsx create mode 100644 apps/dashboard/src/components/apps-tabs.tsx create mode 100644 apps/dashboard/src/components/apps.tsx create mode 100644 packages/apps/package.json create mode 100644 packages/apps/src/index.ts create mode 100644 packages/apps/src/slack/config.ts create mode 100644 packages/apps/src/slack/index.ts diff --git a/apps/dashboard/package.json b/apps/dashboard/package.json index fbbd2b2d4..318466efd 100644 --- a/apps/dashboard/package.json +++ b/apps/dashboard/package.json @@ -18,6 +18,7 @@ "@midday-ai/engine": "^0.1.0-alpha.22", "@midday/events": "workspace:*", "@midday/inbox": "workspace:*", + "@midday/apps": "workspace:*", "@midday/jobs": "workspace:*", "@midday/kv": "workspace:*", "@midday/location": "workspace:*", diff --git a/apps/dashboard/src/app/[locale]/(app)/(sidebar)/apps/page.tsx b/apps/dashboard/src/app/[locale]/(app)/(sidebar)/apps/page.tsx new file mode 100644 index 000000000..032d0eb7c --- /dev/null +++ b/apps/dashboard/src/app/[locale]/(app)/(sidebar)/apps/page.tsx @@ -0,0 +1,10 @@ +import { Apps } from "@/components/apps"; +import type { Metadata } from "next"; + +export const metadata: Metadata = { + title: "Apps | Midday", +}; + +export default async function Page() { + return ; +} diff --git a/apps/dashboard/src/components/apps-header.tsx b/apps/dashboard/src/components/apps-header.tsx new file mode 100644 index 000000000..ce2a5a95b --- /dev/null +++ b/apps/dashboard/src/components/apps-header.tsx @@ -0,0 +1,11 @@ +import { AppsTabs } from "./apps-tabs"; +import { SearchField } from "./search-field"; + +export function AppsHeader() { + return ( +
+ + +
+ ); +} diff --git a/apps/dashboard/src/components/apps-tabs.tsx b/apps/dashboard/src/components/apps-tabs.tsx new file mode 100644 index 000000000..4789d80c8 --- /dev/null +++ b/apps/dashboard/src/components/apps-tabs.tsx @@ -0,0 +1,40 @@ +"use client"; + +import { cn } from "@midday/ui/cn"; +import { useQueryState } from "nuqs"; + +const tabs = [ + { + name: "All", + value: "all", + }, + { + name: "Installed", + value: "installed", + }, +]; + +export function AppsTabs() { + const [currentTab, setTab] = useQueryState("tab", { + shallow: false, + defaultValue: "all", + }); + + return ( +
+ {tabs.map((tab) => ( + + ))} +
+ ); +} diff --git a/apps/dashboard/src/components/apps.tsx b/apps/dashboard/src/components/apps.tsx new file mode 100644 index 000000000..067873104 --- /dev/null +++ b/apps/dashboard/src/components/apps.tsx @@ -0,0 +1,128 @@ +import { apps } from "@midday/apps"; +import { + Accordion, + AccordionContent, + AccordionItem, + AccordionTrigger, +} from "@midday/ui/accordion"; +import { Button } from "@midday/ui/button"; +import { Card, CardContent, CardHeader, CardTitle } from "@midday/ui/card"; +import { + Sheet, + SheetContent, + SheetHeader, + SheetTitle, + SheetTrigger, +} from "@midday/ui/sheet"; +import Image from "next/image"; +import { AppsHeader } from "./apps-header"; + +export function Apps() { + return ( +
+ + +
+ {apps.map((app) => ( + + +
+ {app.name} +
+ + + + {app.name} + + + + {app.short_description} + + +
+ + + + +
+ + + +
+ {app.name} +
+ +
+ {app.name} +
+

{app.name}

+ + 1.3k installs • Published by Midday + +
+
+
+ + + + How it works + + {app.description} + + + + {app.settings && ( + + Settings + + Settings + + + )} + + +
+

+ Every app published on the Midday App Store is open source + and thoroughly tested via peer reviews. Nevertheless, Midday + Labs AB. does not endorse or certify these apps unless they + are published by Midday. If you encounter inappropriate + content or behaviour please report it. +

+
+
+
+
+ ))} +
+
+ ); +} diff --git a/apps/dashboard/src/components/main-menu.tsx b/apps/dashboard/src/components/main-menu.tsx index 0ff64aa9f..d81534e3a 100644 --- a/apps/dashboard/src/components/main-menu.tsx +++ b/apps/dashboard/src/components/main-menu.tsx @@ -26,6 +26,7 @@ const icons = { "/tracker": () => , "/vault": () => , "/settings": () => , + "/apps": () => , "/inbox": () => , }; @@ -54,6 +55,10 @@ const defaultItems = [ path: "/vault", name: "Vault", }, + { + path: "/apps", + name: "Apps", + }, { path: "/settings", name: "Settings", diff --git a/apps/dashboard/src/utils/constants.ts b/apps/dashboard/src/utils/constants.ts index 7149b1dac..4bb19bd09 100644 --- a/apps/dashboard/src/utils/constants.ts +++ b/apps/dashboard/src/utils/constants.ts @@ -5,7 +5,7 @@ export const Cookies = { TransactionsPeriod: "transactions-period", TransactionsColumns: "transactions-columns", MfaSetupVisited: "mfa-setup-visited", - MenuConfig: "menu-config", + MenuConfig: "menu-config-v2", InboxFilter: "inbox-filter-v2", TrackingConsent: "tracking-consent", InboxOrder: "inbox-order", diff --git a/bun.lockb b/bun.lockb index 8787232f110fe82326325f4820f53db41e454de7..c0963566d5ec45ff4926ee1bfc08a3be1c9f5eab 100755 GIT binary patch delta 182100 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 delta 157952 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

EIrNNQB`3odqc6#LQoTZ-6O2i0lI%BG z!a984Q8W0urd|k{#)~qUF^#us45O>JtHDpRfrZWskF_zc#@3w^dlXJvHtk{gS}q?t z|EuK#kUIc*g!lQr4xZB*EAt=7(^*jh2DMb{Xve zoNg1n;G_b5DTt&w*%d%tb0{o7l1(%rzsTFeiO6#$TMt8S02KBxBTv!CN<; z_Im)k0QU6X-BY%{I;deW$u+uEmW2f}V8P&>uXsKtxjAxJs}$d}IZsE=a9_Rd2!(+L zn|KuEBFku60fVPag)sS8fk2G2t}opxfNC76WI;UTr5d2#e?f1lNZx15zuB?!f|q*T zRJ>sy(NBFO9dV174(<2jq&IpU`vLiHCB+s5qLl4NgSh?RjWdN8!T^h*&<{ojT35(m zts6v}3!(LM=usgfTv11%<(Fji4Czp%m6BlkdT3xJk= zNV#E41E<~1x5>Ic0M&$aj1r5WzDz|>-(qsdZ^&qQPWDlQBB;@a#&Z%wyYN!`8$`US zEBKwk6Shg{cLryVEkmUJlX~56%E?NT0I1dbSz1!J+OJ>tX4;M8McBJ7e6v09g*O77UY^UxDC_OJf z?^%eAhd7EXiYl(qDkRz)z_9~i_O|dk$9(tv2{?AxVus902>|dfFjSJ9>GF-a6Mk~+ zZw9D@99I<0IC;m`j2=N2mp2t$G*Bca^3xhJroV7Da$aaiLQ1ZeQ@&f zcOz8}isqwFjJrGl*mfrnMqe1G~^|X6F>4V4ymtA(frh!wibs(cBUts^dq+tOs3kstms(ccB4nX-32Ot z2oTykmFktiSXm4J?svcFseKn-S~?B@JOtn#+d>P00V{zWoSdTb0LR>AQxXFxXSif= zN`cFvGv)N5#3v{=hQdlBSwwA~BiT-so+7zId+<{KCVb`_*z0zryMUJ-^OA z075Cy3s0k|87Ez+O)sN8UL3_Q?!Yvf&V{lIwk;=#3S*#D}ilbvl(uGb^9!Gi1 zfiC^Uuy9m>>CB|%M9WH$t&hPvT{NajD^SE6R4RDrX=7qhibvIpDc+`dRDC7h{)66- zxb=UIq4m$ftAAQN1rbti(#BT6)VlOV!-5JkJ5>9XP$p;DKWJzQN-YP7C2Au@Tr=2b z7Hah$i+6JJ%uSHBYbF*PPJlr>zG`-dzKA>|+zXQ)M0Y>iKX zMr0S-lkNwi8b1g<22o=rfr;B>h+d<0*qDbmES`(qrzf1q-FkiEFO;u5{JUR%k@iKC zRUVJCjqbk_Sa@3;S~(lpq8eQu>Ruj+7k%PQ{srYR_eN9CXn5n}%Nz25rWfU5A9ztf z1w#a2hKD}Ag8IhAcw+ok!$ zPSn+DQYl6`Zhh=BdS_QuhP^CSrH<6DlEGL1$26K%$xvI%FkQ|ak3-uHsWYL-Faanw zJ%6V!m7ulH1Av{db;n;=o40XIjt^jdgHyN3w=zsH&lz&;OLz*e4EulJOgY87>2J3T zef}KVCM~gZ%v)p;bgDAiGm*Ma!c0FGaJhhdW!4LyzkGk*4{*vl3Z*=OfNM^r13@jK z9=Zh@IO<`0AgXknE&Ty^=otfDqn5xy1m72iDa+)XqEswo6`L_c~1zyOlDmecq0h|6&GzB*`;a!tW?xI2;9`$)CzB(8(o}O?b ztZtr>0}DgE9-5Mme8~J@2Iy=4^D>+VMw2BOR6tdupKUY0@1UCvcYJ!7Sh3GmkY5oeJL!;OB2gQGRVaByQqXg|COqoI=wx$~5ey&lvY}0ASxd{B-+27ySD8)kiacBe{owhRS5u9&jC2AQT*M+q=K=s4{Ci zs~OPX2U(s$Jpt#x9RQ4IqqS}Q1tlwHkN{<{A$(Ki1bPpMo_^Y`zQ{qhm4-3C3q`du zD{-6&MLYO4%Uo7hb-5X!EhRDyQ^{Bd$z}?iAbQddVR4o4#y|5agwvzs$I}Cg9>_U& zlPu{E&J;q9Cvtwc-NR?%^{lJRI74X?ifa7<$z9<|`2`vJf-)Ho3u+WeJWT{FM~tDHc6?xl`@D|A>lvK<-Pg-rwEq5>SH%1iyrH71 zs*apuDEng9@jKl+wJm7Q=|d-gT#Ez%(|<8rX2<)pW8RqoHj}PCh`2!-5-mfl8~}M5 zY}vY_*3kiGxS|vSfZ>e+z&fCM)TFv0AFhuz0}MqD4}emgJm$PVbf&h; z>$kI@{>RMS^}6MFG<-Kn`YY3v zMyR;Hdfe)C@Y?CqpYH;v2;wYb)rR&rf^DXZU#P%r_sCfzazG^tR~IB%2}GE6YM`^I4Ft z6P@F%`;odf1HUdWl6K~%_j#{O4WG9yhpxv?DY0rI_Cc37BJb8vASas{@?s1>YX$>2 z{c;jMJsR_FKX@-;)-eM|Vl*0oB%XxgI16iB4BvpF_K(=XqM5}S)YqO2_p zKK`izN9>k8R%4HxZpQ5j=yk30>}saoPO>?qaOj`zp_gr8WEm)~g&2WCWEzrfOK8g0 zd*zT`w(ro>rUMo|1rp5iY@iNBjxE~W?T7Fy8+=3*gBPZ8^!r3=fub4#z#Ra2nn%>V zZPkCDSunOyBml6tzY2-|aU30L3E#i0(W3uFpE&DkP}fd?m%2gswUUfRi==Uvyk>WbZ-Yv@(-Tfq zGb}JB^~F&N>t%3s<0&hBD<`RFY##{j>9!a!@|6jV|D)q_BDoOUa*y+g9?PT%_#v{} z@r0awn){9%zj@Y|)25u#R^_Q=2Vv28St+gvZNjQq2!_-xrMNW$VrV3EnWs% zJMbry%5fku#6{zoL0{`cktYp7okj1V+$~s#DWpYNj!7&_14J}DWjUcBa+fY`mHxb+ zzPb9f+N7;(rV@RaqHZmHL-}inlk$Yj#rZsxB^w%6o^jWew4FQwO7jwTP7Zf23NrI`E`HWB{v(!%TX?P@4NSx%QjdZcE!~TMKIDK`G(BqL|cLEeT(8vgJV1(wh%3S;>)| z7Ee>@-sCJ3rdJA0X3{-rtZ|cR7Qs7s1AD?7m_)PSlv;aA1qcnHWYQrMR;DbEDRmv3 zHc*vGosxtsIh|=XOxjY|@@v%_+OtAQ(iBtLwDp%x~lcoev^)zXO|vKMHYM0 zoS9sov85xe5R?678b7iUXPsPl%iLsx-LkI)7gRH9P)Sw`venkSa82r}RD2LX$*@{7 z!19R;Tk}d^)uWOW!yY}8Ol!a^hy_sY45dxef+&Q3VaIEdu2uz9b;+L;a$nU1%GBS` z8aO-lH7+uN1ImKY*yCiMuk^!cO`b|aYtR0eW=A$$xd8yIE6^F< z9Vw9=HT}pq!0L>Abx{j9;ei_suy0 zG-&_^VTb~VyB8T_pS${7Ge8@P0|3HaB2K}B^@p})7IH1Up%yp>R!|wacMb1)-fzX~06u>^K=hX{6(pNSEd{8-8 zM|P;@J@ZPOImeblPlKjC13{C=b6G*#Tpw+0-5lPSp-Pi(T@p>TC_ag%Rw%+tx_O${ zZ)YF1Yicgimx>PpQ+@#eyA`wLuKH-++Wv>l01K!M0I>1o9uESh3^G`|9tUu40LL%P zk>@~>Mso{<6N24Bh70cSP28`C6HC+~^Z3 z(km1uzuH1N0r#4=S{3Vh<<+GLpE_bKZ9-U)hO_@ox#3izN_~7Q$yl*5=eD?0`8$|P zDY)6B4KWvXqY!?YMj?%j&Ra(eG1S%JpyG$&c-N3#{0uT$|0U(P*zf0`t~qUw5J;Su z6#K4S$&TUrQ^{~7@ZCosnMh$nkq}KlqAfzqpX1VI%kRR-9EV%L2hCKlA z|4jj8dgy*U$dDCBG5{d9m=CF(sGo~j-`oH87S{^{6t?&o$~Fv(v;+WT2X15kj>FF< ze8#pS8}X&V@@Ie1@oHm~j31;!Gx$pXzk2lAU6fG)7Lcwq1*jC!v~L(3 z=Bo9gagQvXQa1HBY8P(ksF$_*=!(;qa75rFFR!@r2>akYN1`4JR{5pF9JsAh2c@jh z>jWdobp)mtg-2lZ)itG_^{`jr<7f2~?HY;YPB0~MZF4B11a>|aQ{-qot)@sHJZ+~b zp5mphNLCl#OyU5rQzf#BlLw6`Zj>nBW(?jhCNqpG-I`i3t~g5c$_h2f9hn-6Zj8oi z?>s)Bz_9^~vd`MyZ_)7+48D zSaq*nj}5aiy7=S{ccE&%ub)*V`ov`CrQBoDi0V{pES`k7I~NTZYX}9~PT-X`!l)CP z;ce!l{abHd-B?iu$sy8>Lz$(daiXK>B4CwZV~{R4#ruOxpkHvwS+|7Z87h#TAkmfr zsT~Mxyt?@x?%nF16G$PkepaHOLLnzN2&7uLn%m>q_7auTJGD$W+T|)QHK0XRhiL_6yXCJcZ-Pp9D}YCeEx&dywhh z2FRG+Yz6mJs2X3gJxU`uk%w1rGeyFa>Fl3!XTgC<7KfRhqf(ZZx3#Cd@V@JzDrHki z89Ks8<*ds@b`wQ~o}9=zKFK^2W)u5l)YL84P}<}iI^iAb`gV(7#XqVfa|kLMA!(*( zKV6!OSh<&hUdE-5?CnkLdH2Yx+4nBU7A9GACX-F8go`2Bdw9ur$JR5Q^6JxoOJ);s zPX$kg!g`aF<`%_Pu{h`*q#I7BCZnsymg9LkLix7^!J)je;CF@Muz`VRKp=!w4bcvRA3aujrclG~idzcZ?GFNu40JorW#< z`&4`yyjw3^bz(od`N3ijore|<77P(p^ra!wFeX0brJ2*2e26-a?j(6n z2U?kMR)^_uMm2Vq?OF6>uxH=quULARh0xMz9Hv&AxM%3ZbZ~A1X)}PZC)v%0|2KFB z)R~xX9o_g$;Xn^b>zPL9ZzudQ6$9LKEa5Okb2&GvRL+=-PRxMns=n22rXhn4VM-ok zc!Vg!Y_klTk?fy^dSnHNNb*EIroGAL)QX>WQS2Oa+fjTcfhXerjePP<`Z@S_RHiN! zI8SRB?lv8sZHNG>32&g3#0hq>{jGL7g+z+wokWNw$}z@!9(c0>@6ws`o?7Q?9SFS8 z6x^q`>B}5UhYKkx3UKLfc(0;U0Px>}D^;1mB@LFWoPDe*@5DgCFrt0PVewxzVd0n& z+1~zy9PR+*oTkvZU~GpdFjoG?s-){&h^`>lnYPV^QmsSo(GZQL_%Z~e*>UE6+n7F^ zWIqbw5}_M7F#vml$BO&ak}V6jbbkO-MBORiNwa4eOJIuf_O+6G!}KKDkUJ^BDRr2R zDdI{(XA&E_s${)+hI*PWF6rRbj*nP7@W(k7?x9U8o>QFabk#)V7JAUQgkOabI8|v9sbeZq|c`fPIz8PnO+yuI#(~ zub-DOBX^{AKX&^qs!xa1fm8(ZPpRBO*Oh)c8`h=p|ky1M0 z-+vqa`NulPTfYWwAKrh#J$U535G?9S3yqN22nt!muI>-UTmdHTr{C(V#F^Z+iT zp%V)sK<=bl1mq1#L!zY*E~@3|T15Kh%821F9HO~s<03;ztyx)}*e^~^M>G1g2(@e> z@5KgZYx{DTi^V}(>kjzoDSm!K=%PjoQ5+!$I~F7Er5e6)#L}VB3x10L$R(&koM&~k z=JBEe65T0m3GziWqdm=Af>1>f;$=^Jm*KaHSA@}EHJZLG2c!p;9DoQ$Fvn^U1zyH7 zn}3S$sn{aBr6mIu1bZZ$3UZE*?t8EXLPV+@ee(H5-$H1J@{AL^? zT+)#)Ej8r&hUO~5D{vs7JxyJ1aI(n>)VwTnr`Y9Sf%#E1F?q8jg(k|(I5O!(44Wer zUH*TE2*Jc}2}D)Rlf0ww7#wX%(VnzhnO@7BzMZAAP7X$FeFZDtlPkWF6)BjW;!*U0 zq>h}>oB&gEQjZ5yPEo|Ta(^C(@;dl#M3#bLv}5}T_q6`6f?y?^E!t`=s;9v0Mn`(O z%8&&M00aOz!{oPJ4Kcn)J>v~H^WklkzRRX8wO~-`xuL16(RttFa;1uBOFvq*8Urzc z5>{hAbfzI|FecJ++4$hf4P3EB>lh#{myHAvE*tyI@K3qKA z?ei-f9WmL`D!@y1y>J6NB1E&a-12p>=FXW!JJy4kG(y!%vyJP6V;e63;GagsngYm+ zaMoO?-wKoY_x=2yqkfeWO98RKeHh=YV}OGfr~hzdqN|4)U_6BZ00;XfAaQ*LI5x9) zZ-2gc*`{llQW0QQnn%jp+O#(oN?1>qW6}N`lx+j><`0r9fwot_`}5J#HRS;hFDKif z#VK$DPJEQ5?trtd0k|AI0omt4{P>WxkAHAv`Hl^S@^BsCnt)sxA+|TjZX;%ZmqAo) zBP!2AKWs$h`RRo%me6AB+7T@D_9{zj0H@UomeYEt7n@$x_3Qf`$bmhI#UPGY+yVe1 z=|3<6cse#EEoGgwQ7Fc9T=`!XUGs5&ABSSRYK1khkcI*fzK~WYK#)&qE3uY#)~%&u zn}Fvx`hsl#Qz*~f|8d;%UoV{ua}?!;HE{_!Z2v58|17fV<-eLBhuH&unn~!i+2Eu9 z971z9!{}Ly0&K!XoIT{4DMJY+MJ-lr=+tJ=tYSB3ZZWuGe>Be)bXsZ?(`1FesY7+Q zU|o`hMsI;dFCrC%OJ*!RLrJXDGH*pQln+nY;5n!#zuZNOk!X&+rJwjh_Od;4I@YQo z+6GUZ7u*_&TYja&`7g>+iaeK1RaBfc*z-fT{ zdBVI&bw9f8FvBUvd~5w*sZmy?IBlZy8~Le9rD)|>Dw9Kn=I%sn%tU;}jYmkv)kf#< zCk*T6psSBJ9KAV%CfUPLm2np$gP*sge7i6Rj&G3O<|hy5%&Av$KSxx-7r+8zO)qv~ zZPpFYaK(+?g=nJCR#F9BUs>vEgY7LK2d34D1lD@BmP4w`k}_2rjw^UxN-*zmR40$! zhE~|Pv)OBKhr6lCI-{>{E=^j8INtkM^E1V3ukCp1-lv$05MW`J`ck$%=r$ZY+=F2< zikjg``(v7P1`odKmg9K4;)4XqLTbewKMv(YkDtK@?08+f%DwTTzeay4AfN=&1my6z zfBLTN^;Y&-{LIyLr|Wx!A{9gyAVO{aAaS!6o-&KyhP=tjyLbWMzYL4!WCoW1u}7;1B6W zdG@0VH|>L0+>0LVL+$dF<~2c?X=?{m$*HS41jyO*f!2tl4MB)poR6Z2kIr@+n(%ce z+WkZfH}4}rnCSozs+Fyb;Kuc9@f=;QCy4bAsxUAv(9aP#aLsUURN6O z<^zEnPZ5uJFBLyk9m$c4{&P`5^s2|G?(c@V>WE1u;Y5}#(IR_F&0ajg>5pp{bfbh6 zmgY^GC<-_RF-?D$G=ahZ08@Md!=>Q^W%mR~RIL)5rMRdD722VjC)Aq}(XGo+K9GVi zG~TC>vZ(C`fCEds|D`wn52m^SKzWlcQXmWK)1K7)IQl}hIhLm2t*#!eI1c%5Mb{bT zV;HS32|w*_vO9sdm8fJnYz;t33iHERo8DV`H5>*G(+VuOIah6afm-2jEk=7z7#iT3 zj$Oqt5KElIa5zWpP6CrMTB=hlKdq*FNc_`UD_|=b{S$!A)0}9`gPDE*SXk-J4zVjK zazZHR6v!591&2)Hl~^k9LB}Z0G417wEV-9kUi?mLVIXTetF~&L{`$+i?(e1An`?XU zjPjnwbdc7{K$aCN19l~JJ&npuo3^4txoKNY{7!2fAQAL^E)D0p6;FG*=CQ;5t1!4l znP2D`;}q)v)l{(zaK;Ltd^~c#Z8#;9dM`@kat+CN2BP;pu0UkXG3(a60pn_9c%>u; zBGr;AoxwrQuMBi$KdU2j>Tu~YiUVHL$Cr}26_)y5XvzNoQwH+3!TQ_sOs-;^I)$q$ z6ONq!R%eRij+T|GYX0SsQC0e%^3&2$*Mx5U34hnTOXwx#wAVc5x9KzZUsj%+L&8nX8dgYl@`nF&8B3e|wBPjCVDdB4c@acZ?^%E40b zAyjNjI`s&NTnEtZLPkGY{}4uGn#%`aAH(+sKFR{=SpEzkY#{ctU}fP*>mOl_CCp$) z3V)2>s$N+QW&GXXLirA0eV@i!&ayAz4gRvq+|;YQTQthOhvddN-U>y zb+3oAAv#l=58&gsUg#kvID0yoXqs)3l!@uGg48`{%K4X;fEw|8srYjcYS|VG3y6m! zUrUjuR)AhGX$8I==o90z(6ayj!inVA%y&5a%hswcOVj#OJ(p%*r8WXh?0{heqvT)q znIgy1YFDCTdHaj9;r|DgZ<<}49Ir6B*jj^%Ptl9taHEWxwoFo~3{7ESsvTjD1r`_L zB)hjpS-+OU#gZ+m$7R=VW??)+`BEgDlN!k1TuNvTgrYZa-42O;Z~v z4qK{oOPao-6cpc+OX5H6_q4d~W*S!MOamgU!^SvGx)air9Mzz&@%q1vjx_6(8cjP6 zy4W$cv-qpPQqlY259B~DHYZhE{|6O+Ltp-5*;Be#iJHU`;9N8&a%DVz3dTCXCtE(zGJO8P=5m99hE;y%E$}08sZH;E?D9+oE+Xg?x_IO{4 zHW)kdMdMkqUOY-}<_I~rGT_Qtz;USK!(;6#Uwkn&081^78pc{nR+JB6`zqtTYHBy?zS(n5sb|!Y$AK5L2CiP zvdg*@QbvB({a~>H@5?VlC^%4az-Lv8wKY21r&gi`C&GY=sxj23gxfy*4EaS>;xlfhtJcI8r?2h;<*`G} znWA;#K->O{Ri8#Y7{YtGkTc$`bf!=MU~{vp9SEpQkw4;#WnNabX*)kRre}6WPmc~L zUL1s{7D!W$j2WW(IgL4SlB#1)W1@e`eJuyw4MjyFQr>bMwyj^EBW2F}u;Am&9~dDw z*s;;M+#aj23m0PyWMnfjjjsoTj{ z_fECfN7|IW6#2|e@3{N0k$EB4?9cS4{OA^v5cro?Rq4w=Po?Av~JG&*Uo zJIV1rrbfkDi~k(=$pr0Xb&9-mp=G~QElw^|`&`B#?ZGnHCmn9=AHQM4N*{o$aBN>X zkqe!nCtYrU2av{z+JF_8i>WV=r4hEJF0@?}BRO!xbyr4j+d=Vs!Iy|wg103a*tA0c z$N>)2%hT$l&-OkIQ8_j?q3CfODxRy`O;2)zhV10#WOOcd0pJ`gy_B$})L8#;M+Sp<5@L_4}hdS2Zk!*ceI z=!d(0OkE}ShE;ecLaPy?=0M9eqZ_W4JFKB|l5~gi!QG&eu1059U%ia#m|rlwnCIyB zZ5?zK1M>Ny{|6?np`TohMQx@*9dPd}9kSjPDp~!$%fI2)1|ltGcp9_@@5$g#UEh9+ zrsPGWo%|{u4asB7jnO+TkI`LoSTBY9Oo?mGLEksv6Zjln1+frBJLL1>fSr7R;$6<; zIh%SfGscV&!XrL?KPn! zFag{|jw5pP%}0B5eDVcnYD_t=H_&c3Xa?Jj61nZ!0kxiczt3!jC`^e!j?H{yJ}|s7 z;JA)#J^O7pPV~%ThEqMPL`S(c)sspr+Gr9o^-?)YEg{v@7XAhlA1Pdg zT2fB>`lL`!x~bv&cGdD5bEdm*Z3eDOL-K==j+>>qSiN38{lVQgFG4odK_^RIsP7uA zr%zmJH%jFK2P-w)Ghl76x`@Rwg?pVNZx1xHm-rA9cD}{Or7RN7{|6aiw87b}R-C;D zy2%u#;YKI8urIm4kQa2SZ!lP3qu>HYm#=)@Dy2C34_cV!6_PMvn{JblUDnqcRnkP(MIwo6*1M2NirQyrEPrsUMJ!<0z=Oe+dwxgZPZ zKm10;ieR#k_pKv-xK$DGI}Z&i0{X@G5rfcmAMjF(QsF&Q-z;75Tb>LfL>G&TWCzi$ z5I&QPuRD|7N~0(B{mz(QYq(QR%cbKcY?=A}ty6$k^K2)I{SLMCremClCsEo!U-*Sa z&P7o>qFRcg+BD9tvOx!p)|?^$U^+*sHP0lEbnUL&dB6Vi*{P~N%olN6PZc%h(Q#v+ zdqOR2kCSmjv-ZuN*U4$;b@qOg635SeCwD~Y=x$PZB-)>VW1%j+v$IQ#OZHA;A&8qj zq2{S41Gw#zZj^}`e;ah~;UFhQBmyFF>))i}KqRAnfKNQxP$FZ`O~&GApHh}8&oa43 zwk6QCw+Conam?M~To0d3;I~-fVJ+mWrPR&1JRhIiVnb&AQ3DnbqR&mmq5>VJb z{UEKrhor6XSEVDtVXk9kY%nGdE308tyd*HVQ=5{gzA6nt;(GG1oXfQQ8RmyB@Z(c$ zScCJL)f6ywgVwABog0tHA#>;Uf`{9-yhe~gX}J`z+DD&&Njs|mI*i=V`hJdiJ;m96 z5vTnfd3&M8vQ!I+R`aM7|K4-m^HzB{swUTnr7J{XDGg`1%{1E!243pB0ywxE0)wy` zoi}*!@OMek+IgQ^_jjFV?V!7aH#{-#11WY$Z5}kd>)8ECEr+DQ!LtLMz!!ap*eJKQIw11LXHR(_4xHL5rRNj%T_yBYKUg)jz_Dml13>df}$v?ml3R z%W*l@9$x;nXm+Q1S`|1>4~$8TC-9VP zcFOK`(1ju=Cz_L*neC9n0V!#at5~K!46ze{yudu>Tt<6$sYHSNEPcMb!W2r2&yHVb zvTB@`L{!_*_U+aNesA*Yl=86ZgdFaJ`VB8E@HrLSHovY3-mq?O3Q6G{(^um2Cw(RU z7;?B)(`ViDCwlbe;h_riI3}#y@&xr@&lhb_9Lr*-p`kt4D z+NZ9U3LKbLnGc^T20uMdOUfF3v_luhUv_Sk~y9*4M82P!80C zID(BO+9fF%gBM@DS8w!YzJnPI=BTKP)TbQSc!-vBBKt!pcCzVsYc0%DgV0f5g!tU}^?1905wV~;le=;2X;!wsRSn3$(m=w^9i z2d(o}sg*a@>G8nf@#3q1P_C9d)TRP3c~Zzmqc5$k02?TMbVakxRt*WDv{EY+vScNGsV}fbPugCu99At9dEMAJ(`mE$;Q9<{HwFJ7>~R) z5t*+yKInDCuy`ZC+N9e`mn(xVF)E#5F%=F(MZeIVrXX)RO$kKaa;o&w=v;i? zU7fh)cEz9;1GiYa9)7p_KfTG`SF>>SI#h;ILCmKjbFY8Cw?UFngDM?>i|w2sv3*o47YW# z(VaH&Z%4XS6|Fu;8Gc}?dnlE)M}Y-_`f>dxi}s0OqZ%ftbD_~cz?m@evFw#yNLgFg zE*IA&%5Po}zGDR|h}X*}=^41;p8x=!ezUACw*ObVnZKCIhUTR-vCQUx1i*Iy##cit6?pojDDdKx@FTb(ual(;)s3$Bf{j?pi_7xG9Sjnb zmQ}|9J4$iY0e^+Aa-xt}CMr+eQ0ohqm%t}h`@RV7F@1(YR_&iYiN8LPe0&)@pkb?= zM-gFW$qZOm$z@FRFJDk=?q6RMh!76d_rCC>K@yT=Q+46Snnq9benL&7ZQ6`Ej{X!TW!e1jScd?Fslx`4?LSHE_Y`gkJ;x@w7gh%P~zrGS1ax0 zEA!YU^DcvV2_I$1O`~cXOM$ODfX4J?27gsOWeGy3NgD9kdqHS&$@Mi2P{oAHL12O$ z4*0A``H#T3iUNa;p4R&k;bRr*3Fk-fnI2b4sAIJDU-*X{ZuvLWo^^A+%MLX_FkP%g z4%;qs3Vkg2e&VLQ$WccocG2}yqd5wCn)2fvc|hFlHt-tr>*j{=|YWD0=V=<6V0(9(nxb0scqN~(ezusIaU zGJReRraVxVvU(?z%*uYEQFV=5(17ywP~pcgIlD}mUA@yE+RBnR*ulmIEHZHom9zh} zH&RNsG-#6hReySixSt65Q!d&hJK=50_k{N&qNTskiL-kO4*K`^T@tcHA)VjvdO6QItiZNV$z= z`Zs6}>R?+4zP^7$lk20a?~-i;Xyv{2jluGF5Dr$fXaI%QgCdb=1Kvq0v+6fo>fLPF zdeJq4t3Ky zPM}rR>quG%47!=LgApy$%j!D~(pTCZf2)P4UU)F@NkWD@NH$HuGqqZJhwCYMj?}Lh zQ_QjGou>JD@QXlye+px}WgJaFqV3M87pBlJd$#AedhO2WBDz?-VfhpGjj!uPJo4CI z|Ka4^%O55+2O@DnzLnL3jFi2Z(MkUUg)H&l{sI2Exc62CZeu~^%gI1F-pY5E-0A|I$F6`d(cU7P9$3`II+;RncjLNq* zM(7`9r`@fw@cJveq9if>KUHl`8m~(=V!`qgz74@MHYh+lUax&u85NgxT7^HviK3+A=KWqf36Vu<*e!bf$ogsGtTl>IlWvk|yv|XId(rwqEXN4Ao)X>e(4@ z9qGj+Br((qPg)^2sT78_8(X|+-fXbga7CY305qkr$$;~vH4K+}Q(1jB!)g`XVzdY7 z1H+}>PT{+JS@LI7$u59{Dn|8M7(QUas?mSJk%AHDv-5T*gap1#9HbozIIScIV=MIF z^mlWr&Upo$ge%6%u*&hJSVpvkjxk&S;8>~p#WXx!^?2*wc{&uT3-?of0f2vy0$5gX z)fKa=M`Z%$?swkhpWW7L(@5yG|r-FdxpxOfV~-Yhi>-k za7os~3RMJArHp&d87?=AQg8Q~augBi9iLO@h0;A0hsb+z_Dw{t*^@YL_TMNGab>tE zhY#RFr#;s`?A`t)Cq;zSYz9%>mXPH7d@nberw#-zOli-BTxa$4un#A zS-te21%r%E{uv9%$)x?TM+15{xwRY+d{Yr-1PA1>iJZ&2NuJ<5BagCAnq94Y>Buu6 z*SrA07E(FyTJ>Eb5>~TiC?}#|avzMDqc@cw44Xcb#t+66Ep1kYs-C`CDEMU4D#r zOWX(oP4$ZnNdBZ_3x?YUI5yE8bHwf#Jf+7h0Vf;~hba;Orq6oD)4`unV?BD$Nee1I z6nPz}`cOReq9J(F>J^kc*?4sLuT?s(E+|lmWn2eZ_jP~*bZ01-AtIJUycQf!I?-gl zEt+pzl6ekvc$je^uCeJn9QCRue8HN<9!&^Y6F=bDMQ3(gb1%Vo?nLosIN);&$Hsr# zVtTPHrjhr3d}F?2xUsDML2+6Xjtv60_wpvFxSZu*x2pZ?F`&X7DU7N%c|>3}(W#`A zh&Q=(6SU55d*C4`1rI4YXds0F0AK1}8Ucq%cP|N7d`H=N^IZ~Ph798?QGsYEWg7uz z)dnKAt^dfgc0`q}^``+qiI&Cf)>!P}GeKA@z<&sXpT8bSF(a^AUqf$4pgQSBcTF8b z%4GBSRA2Aa5)t~zHe>a@Eoq3OXK%Dj#WKk&#>(>YEp-HGTX=2RE=xahbjwy;ii7)g z)fZI%ANZ#)y%850CTdd4lX`~t8JaU|olgDNLqg6ZdS7YnWiG{Yomp8>F_c3STTtq9VdQk=V`?v~uMPkbS3<#dj!U|_vwc++W9|Zx4&i1`5dwA`F{u#3j zXkyOEOG6_;LWF*vNP<$XX~x=V!v3R|6g=JNld1%5nQqLd1=f)Ie?`Kh4bQh5&hly*_K1&< z)pSan4xX$d;|%a54sbcpumLxQWmr--ccN;tk1ql)DgnUt4gi=ZpMQz|@zB!_3l$<< zxc{~W?Ts=z(Zm@LX(KJ4foUxlUFD<~h2Da&w~R*MWtEwj^~9IJxg%E1MBOT?p*1D& z(+CQ4gq@H;q31AGp9W9~f)8{d4I$8%#x3d`sDMseMQB1gx2TKov@~u}XKyGZY7u=x zQA7>qo(0oP+?LKBEL?dWq@Bjy>)hV3W!J6x7k1`7378~Y>Q~auMkycCW}}ISyTg|X zsMBntAN)qq$kDn7OJ26kcC`7WaC*Jc+Jz zQi$xLk(m1=SeKvHL<5&69garTJ?cvPZ?N^xaYaV2Y^qEQ4B|~xavu8Ruewxo9`xt; zG;|&?wWV0Rl~2yv*7|Z<&NBY{%n6GZ1&Gq3)%)lR;IzEZ;mpy=3pX_QH1t#h_5g`| zzEJytjR_G#9c>@ssToDg2lh@Bg+%KQ-x14a$8r^e&-MAp`(kX5p*zOVDF&Dc0M;z? z9J2M!K6cC&?k{#Ym%$!HB4gi1c@_Zf7~psW+d4lh;XkWU8G%R$k`09d04(gvaNZ52 zzjglXQm>bsFR~MGkR~=1gK0hkTmt|*v_{PRGOI&|#!yG5Ff<#AT#U=5b}xp9!-JkN zaH&R8BytQ4i(U4E+YhQ%kYA157oygNG>NxHu2CXCb)%k~45h35vI8w%2-DTRiDYo~ z@RzGc{20&;IFuZ#QfhleJsqJq6xO0piurP=$jQQXjYhICst6y2-Lhs`%2cx=PGOV< zv<{8+V$%LqSF(1OmydXN6)r*UNdbqbdiFPFY9{N=R6fJoa?#uBGZcWpKfxZp;6I5= z+H@!vj&v(lsa+ep=k2RP=)I)SOKEpa1h$+2_^>`|ult(|GkHHAomQ%JlJ+UK1V*D! zJ0|g`BTHc4r9YnJK){xB?xh(0J!$w-@Y-UK(eb6mVp(ij$XylM%L>ksv}KU}!W4o; ztKLRh<$H$D`gkj_DL!!3l4G0DuQ=ke4D4To!pwf#8b?}ZyS6t50W^5ShWti~XGE@K zy)2jRqQAHF;=wAb8=$1#oYUKMOLt8Q)Oe7*aZ9|yJE(%dL=#CTE>uR{R9 z9Jr?S5BM0-3sa_PNi4R%gK)QO$yMNdPO7mAv<#x5c+zVBBsVn%-DO!Bt5HE-isGl6w0Sjn zxV*jOVYYsEs_)FO6$f9$9wWrGA>~;ExhPAc*Px>VJ4)>N^8S>o#>nZDaU~2sZNc-8 zSWLLkvo%1vpE9onZK7+Pv6Sq&*68b!z6en3HMndheyy=AZ;h@?LtJtsh1_-!#3hJJ35aoxZ^L$(6FascF|6B|IMXojyD z0|)t;hUyuLMiX7rH(*RtWCA_mVmM3&=Y;>CJ*7sm{&h{sRz-93{hUgh?yf9nl3`=t zom%?J1wjO+92Lx>v`i*i$X*U-+JQtX-Aju3Nav2ne=ppMw^UgvV(k1#FBnc7+i<4* zn_(zqr(5wxwSm}#!Zss&5=}s&O>83XwajmyG4j^vQ5>wpJF}3-d35UuzB(vE1IpHy zSJnAs{cxv#o(od|#mW_xMN#ZFVCzBIwg{w{`EygnEr_k^NX_s{8w5Jp@l||p%+;m2 zy*s0*P^El9=M*kefEGRk++@J<;%(#gmlqf7X3jRlMbULew7!Xej{0CAAL*LEgjKoz*M7pQet*AL)D;O4xwE;P*D<|#2rZpU@W<7D4-ydK$v)~PKdn9KDcIJ(eU77 zbIc@lr?{QK7(?EB05=M7yvQr`c#P}Te3@92vrvI2QDnO-sfi|LY^5ouQR)&(u^((n z*iTim4UfkJXDXG2B2h~JrZ%nK1(!ySAjxt=xh@`stJ&W$112X|%sa#AMP}I46^}w< z6zh{U^I2^KM+sR456T$wLZ{B>`{rTePq?7HEjl(`)ndz z-;cV4Qep>;-2puPPO%4(C@FNMR(M&eC{7UA14pj+BOKf+XJ@fug#)pgS3@ocj=MWo z&U2_c+w>~uX$@L?0EUhn_H^|Cj+?6H??53;Y~jD>zxHPCf$75fl;~6^N#QZ|cyf~L zDfl)_a`j5CGfg9>8%16;w?H;O?Pf{*TAIWQ^|yge9m0f^KB1=8$pK=bR0)aHdo+DF zWPc=iTjTQvQ)6-84BF8uC#ho>p4Q&9pkpR#&rDgN;OoeY=B|3?wD9kC!4PHU#d{} zaTqlP=>$(=UmMkq6mr5WPI4reC|B~=gyI>b89h0Hfq#VDPGZJ-IZDR=oUhXE<=`Pv zJychN2{}f~{h)0Qu4{6;#PAAIX=i`xj-py!0Jvjd)C(`%q0+N^6U_j9XdwU)%A}^W zG*qaiASqq;l?GDQ)96l104aVZeGhXR^Mh{+7|VLp)F~xT$zzHFO0E=$>cyV)f#=%E zX}!-gaf333aqCYD+Ti_rQKvn6MfpuNVzHGxuV^@ zH~khb21RPlli1LJSSM&X%L*-#sESRXqEh}qg*Z%}iC%yN|9;ct^5$i8q$HGD zJ(_YI>*dLmkVCXtKnXJVyG5enBqrO>7;4C@9YBw=*Ujn4hU_7|LYkSWS3N2lK{sz; z#jBX8tSQx%VtR0)W4ufXq}T)`s(v|f(B}lWjfOOktDET9rt`j=8}bG9sKFRYv7c@5 zHIA7Sd=mnv2Bk{QQ51%#HVn~lyovF9yO*8x<9nD+4`arjMyCMaKbNFCA))88;yyO7 z&jCH(D}V*u->uKI7!+k!*qmjremR)q9ZwO8G9k?D;MLiKo0(|-EsWTo$o)2&*o&UQ z6K^5!Dks?_Z36b8o?NCPjlZ1|1HHTr*;Yj_P{BLsK83phO}c}&_nad)Hz%~-oA~FI zdx+07(Wgd)N-EOpJHRgcNGmu}G9-LNgx`<{ui3_d6N%#((yLM=MwfKup zew#nYMX8V^XNtTFl2wnZrFlO};FrogP@`7KiGozbxY3Y%pnbq(xxI7m(}PB@3hc`P zDwI4cIAt_i7FJIp9>G~Dhp(73t7!OrP_>0--$(n;(TV%GW5i>g)Ksar?@T$pNPB={ zas^Gn56}%cDexma+ec~S17K2ik9s+Qo-nvtUhF0}*5apV%_keUuHoTelYIMzZIyqW zVB5vqMVYBP;53&&8M0c|CAdqxT@iL1DlH|w13EP;l%w+xQL|cjDEmtp?V*o^(VpC_ zzCcSK!I#z%H(am_!r694%dA~~DQU*8IH_itYVyB#YzOp=0>mo}n z_yd*XrJigG^}lG$oe?@PIYIpG_RuM~U?<@z%vwdGs#ErzNy7I~&@}=SU_|hUXZ{>Pdj$ zV=jN=mRFllbmlo`aSPwO+;id^#RTu2LvY`g*uSZ_t7NSj)!P>=l4%m&@K~;~RF1ib zTo;eGU-Z#Xgku0iq)kiYu%=r#<8}2~Z4aNsoet0m?APo?yIz3k-8A93kpDz}I!}A} zNuKghr%s1Y1P&JUY3IhBY1p>T_WUf#d`rStj=ZnMW*g5jJGb8%_V8fLo&1^R;|=Tc z|I^r&z}1|6@zH`dxRK`eK4|3%KlgXWH(VUj8J1NImY_W5+h3) zO9qqd#=d1tV@V8ynWQ30{lDjT-_umjIl?y5)=>4fX|{ay99K6u!5Dez067IwYpa=z#PGt|pO$0S%%8kAhlktN?2LMt1?=(-j*V zA0B$oIXk2CW#wz+D{@hka6flcFYg((!rwg zZM2iYiPjaMwOddLkGS7953e&k86&Ue2>B(!r z@dXg@jvlZsohYHd3WUBoV!C4yg z5^WYwl4~-ziaUyf0aktvZ-Pyg%)?OESHM~^{Ut;!2H(1ug~pFjl$+;PFmBGOH?a|N zQTd$law}Q9f=fZ;ZK9)jwM%0UT={z)Ah=CHu7CJ&&?^Y<#Wgnst4m&i4VwHQ`tkM2 z81>$uELgk1>kp5BA`&^wxPdA8ah6}+4u@JCtLGzY3Ek$Rj{v|No-m^C@p`R}W9bHf zytx-4hsV{)WZ9)=32Cr2iPCL4cgVd6W70WU;2!r2LwDb@+Y6Ek4xhdYw~ScaT`^cCy6 z!OIJG$%A^mLA%=0*f-!5apt4vMtCmZEL}oU6)&Q2z(&oAp@@P1Tp;tsv)%6XYo>@< zI~pOcNL}Nc13j{G+))pk0D}uA(uQKx^N&ZyO=km`hmh9i!z9h5MAfAB%v5pc6NbB* zJBV_JmM$4*`pMm$e7x0}LuFBT3D8B*!V)z5A5U~=(9M!+2#goQZCQM%JMIe2O6vbs z<)o>PU{7(*1(SnmF%L$FyD=xhu@R3R&m3ZbGm$!6+o*f@DycLf7kKWMm}G5!#x3gVcuC z=5K8f_ta* z8YrGb{cI!~Cpf27oc&phW{tK#rndjjN?aANOBY^L?@_QM+50>L05>=&{14AP+wY8E z7j@0$UA+i7yiMAT5Ahp@m9IRidN2WU!3SaQ)ALxqK>N$+OIHroGk+!`aOTfi-8r?J$_$cu`Nr8NeutH4p9 zp^st{rJA66KRSm%v+Jl*(Gd8Y%{?i&foUCd6uMdb87S=Q9eort4+&2Mn@0uB-q`}U5) zZDc1?=*E2di{WOF3llwyhA+c)@0^u_it{apg@(>ES_^R5H;MuZB;gDvM!Dip>0=eg z@5|F-_i~tLJ=E>1otRR3MlgsYjN;8Ccf5ys&`ff{)qa*424T<{v35O;9JZ-2@mH&I z9204&3IGcLz;}9|*LZ8QfB&7C-e%P_JBO7F-c zgBR^7QH_}@-sjf*c0p)1sB;qBTs;TfmeI-^pA5&Pd@X_f&PAo{FnGm{U&983#1;rR zrl^)8004#T2uHvvE(x>eL%04i&4TY&Zbb`uWpbl*!1?sl0a&?@b8~cbwl4>mgdCjL zV;UqsTJ&hych@*aK0rfgWd0Fw|Ew!|?x9uNw19i{7{Hs4q>2aB2>`e+;+0fW>#}IW z(%F-5{x{WbY&l$0S^_wqK01JNe~x`S@4n+m89+XyO+^kbNR4Xsev({2qP3hOZ&7RM zHn-s@0N5<0skH9Ys^tNJGJt%9eMlc!p$%$sN1*Y%BHHkA1-ijBaSY5N83WSn9WXx_iJS6CF-5kei*5QZjb(bOKFT&vmEBR>V|;9^n2B*0i% zn|SkTDA#6f0#j8_45d7UlIuuqbZiG)Wx$2?j(H5s002B7Y%Mwb3+MbubF2X@7>M=) z7zHmOsminyoyI9k(GC-m*O>aJRSvt_MM1I^eob(kjGQ(`70)h9_Slb zAy4z;EpfIun77Z>>H4<;yeDHCHg72^dFR(xOTqS4NK>IU&6(eXsNHC0n?MWaBYc(N zC6vZwu6swJ3M;FDCDk)azob@MeO%LPHr&eu|i-q3{mXLUSZYh;Gh4d3pCm zTp~VJc%8suQ+SECrGk$o>)O}vitPpBIwznQPwpHHr(zB^Q4j)+VbgS;-XCUt_72|` za%_*~;snG;eBAu3=xnHQ?xq3Qi{V^@`MutKrH}$GiTU;8R{OAAV6Tuh{#ww6_Lv+Z zaQq2yyeS^(>J~Yy&|^1$s6(|Dookn)q}=wBmvCmmZUox-qMWc}^y!-;=5|<0@YKPl z^ZS5v`2>!d2P21%-ZK_YIa24@n|S2#yhSI4>M&*cN)CE^BQooNwd9>aT(5SLz0GAH zU~$;2r5QtN9d(Al;TW3Izk?K}(x#)g_?wfCJBl>K4YTslckogz01k>T=B%Dzzs{IX@sETKWGOkX&yVbROYzT~ssk!tRo}GamWeL!3YPBf~QN?~QG)s_bw-5BZkJR|oa8 z)voGxb;@Lj(D6H3Y`taDitpgOP;!a(g-dwu;=I;A=Z$7qlrD#lM2@doxh$^Fl%@MN zAYK>o@HXp1lbTFU*oQdp0KWYij2W`<_dUlDXJ#&Z`egfOK6C9V`&hh%eEw=VZ=b&) zy;RXH_m$|x;;6um%j<9HJn1zOSQ=Kg_M%7bclLR;iUdIV=oA-|a}S<>ggEEt+zbBp zV23fOPKa{@b8Zee+;>b|s5=FB0iz5t70a>mP1JsebC##ZBMuQlO!UjzHReyh88(Cx z8LWD?%kCm|1dqG;13JBr5FDL8*1ol`r+K34Ga)P(5b(fzy8GV4=@jfQb<|X*VbKXO zWpcM$&>?@R%>whT68@PVFz;&7IGcLJNty#CUDOSg)TfKO>4Ey))I*di&t&uxzqDiv zdfHRnz(_$U-PN%w#SW3~x!Z#0pTmLS0qT6^$_$ecsu8 { + return slackInstaller.generateInstallUrl({ + scopes: [ + "incoming-webhook", + "chat:write", + "chat:write.public", + "team:read", + ], + redirectUri: SLACK_OAUTH_REDIRECT_URL, + metadata: JSON.stringify({ teamId, userId }), + }); +}; + +export const createSlackApp = ({ + token, + botId, +}: { token: string; botId: string }) => { + return new SlackApp({ + signingSecret: SLACK_SIGNING_SECRET, + token, + botId, + }); +}; diff --git a/packages/ui/src/components/icons.tsx b/packages/ui/src/components/icons.tsx index b1b05aa18..1825cc7c2 100644 --- a/packages/ui/src/components/icons.tsx +++ b/packages/ui/src/components/icons.tsx @@ -35,6 +35,7 @@ import { MdMoreHoriz, MdOutlineAccountBalance, MdOutlineAccountCircle, + MdOutlineApps, MdOutlineArrowDownward, MdOutlineArrowForward, MdOutlineAttachFile, @@ -61,7 +62,6 @@ import { MdOutlineHourglassTop, MdOutlineInbox, MdOutlineInsertPhoto, - MdOutlineIntegrationInstructions, MdOutlineInventory2, MdOutlineListAlt, MdOutlineMoreVert, @@ -159,7 +159,7 @@ export const Icons = { ), Overview: MdBarChart, - Apps: MdOutlineIntegrationInstructions, + Apps: MdOutlineApps, Transactions: MdOutlineListAlt, Invoice: MdOutlineDescription, Files: MdOutlineInventory2, From d8af2b3a1a36492ca9bd63e676a4502390175324 Mon Sep 17 00:00:00 2001 From: Pontus Abrahamsson Date: Wed, 25 Sep 2024 23:36:53 +0200 Subject: [PATCH 02/12] wip --- .../[locale]/(app)/(sidebar)/apps/page.tsx | 5 +- .../api/apps/slack/oauth_callback/route.ts | 191 ++++++++++++++++++ apps/dashboard/src/components/app.tsx | 170 ++++++++++++++++ apps/dashboard/src/components/apps-header.tsx | 2 +- apps/dashboard/src/components/apps.tsx | 131 ++---------- bun.lockb | Bin 1003458 -> 1001834 bytes packages/apps/package.json | 6 +- packages/apps/src/cal/assets/logo.svg | 16 ++ packages/apps/src/cal/config.ts | 16 ++ packages/apps/src/db/index.ts | 13 ++ packages/apps/src/fortnox/assets/logo.svg | 15 ++ packages/apps/src/fortnox/config.ts | 15 ++ packages/apps/src/index.ts | 14 +- packages/apps/src/quick-books/assets/logo.svg | 4 + packages/apps/src/quick-books/config.ts | 15 ++ packages/apps/src/slack/assets/image.png | Bin 0 -> 299341 bytes packages/apps/src/slack/assets/logo.svg | 10 + packages/apps/src/slack/config.ts | 37 +++- packages/apps/src/slack/index.ts | 64 +----- packages/apps/src/slack/initialize.ts | 56 +++++ packages/apps/src/slack/lib.ts | 48 +++++ packages/apps/src/visma/assets/logo.svg | 11 + packages/apps/src/visma/config.ts | 15 ++ packages/apps/src/xero/assets/logo.svg | 20 ++ packages/apps/src/xero/config.ts | 15 ++ packages/apps/tsconfig.json | 5 + 26 files changed, 704 insertions(+), 190 deletions(-) create mode 100644 apps/dashboard/src/app/api/apps/slack/oauth_callback/route.ts create mode 100644 apps/dashboard/src/components/app.tsx create mode 100644 packages/apps/src/cal/assets/logo.svg create mode 100644 packages/apps/src/cal/config.ts create mode 100644 packages/apps/src/db/index.ts create mode 100644 packages/apps/src/fortnox/assets/logo.svg create mode 100644 packages/apps/src/fortnox/config.ts create mode 100644 packages/apps/src/quick-books/assets/logo.svg create mode 100644 packages/apps/src/quick-books/config.ts create mode 100644 packages/apps/src/slack/assets/image.png create mode 100644 packages/apps/src/slack/assets/logo.svg create mode 100644 packages/apps/src/slack/initialize.ts create mode 100644 packages/apps/src/slack/lib.ts create mode 100644 packages/apps/src/visma/assets/logo.svg create mode 100644 packages/apps/src/visma/config.ts create mode 100644 packages/apps/src/xero/assets/logo.svg create mode 100644 packages/apps/src/xero/config.ts create mode 100644 packages/apps/tsconfig.json diff --git a/apps/dashboard/src/app/[locale]/(app)/(sidebar)/apps/page.tsx b/apps/dashboard/src/app/[locale]/(app)/(sidebar)/apps/page.tsx index 032d0eb7c..769ffa024 100644 --- a/apps/dashboard/src/app/[locale]/(app)/(sidebar)/apps/page.tsx +++ b/apps/dashboard/src/app/[locale]/(app)/(sidebar)/apps/page.tsx @@ -1,4 +1,5 @@ import { Apps } from "@/components/apps"; +import { getUser } from "@midday/supabase/cached-queries"; import type { Metadata } from "next"; export const metadata: Metadata = { @@ -6,5 +7,7 @@ export const metadata: Metadata = { }; export default async function Page() { - return ; + const { data } = await getUser(); + + return ; } diff --git a/apps/dashboard/src/app/api/apps/slack/oauth_callback/route.ts b/apps/dashboard/src/app/api/apps/slack/oauth_callback/route.ts new file mode 100644 index 000000000..631becfa8 --- /dev/null +++ b/apps/dashboard/src/app/api/apps/slack/oauth_callback/route.ts @@ -0,0 +1,191 @@ +import { createApp } from "@midday/apps/db"; +import { config, createSlackApp, slackInstaller } from "@midday/apps/slack"; +import { type NextRequest, NextResponse } from "next/server"; +import { z } from "zod"; + +const paramsSchema = z.object({ + code: z.string(), + state: z.string(), +}); + +const metadataSchema = z.object({ + teamId: z.string(), + userId: z.string(), +}); + +const slackAuthResponseSchema = z.object({ + ok: z.literal(true), + app_id: z.string(), + authed_user: z.object({ + id: z.string(), + }), + scope: z.string(), + token_type: z.literal("bot"), + access_token: z.string(), + bot_user_id: z.string(), + team: z.object({ + id: z.string(), + name: z.string(), + }), + incoming_webhook: z.object({ + channel: z.string(), + channel_id: z.string(), + configuration_url: z.string().url(), + url: z.string().url(), + }), +}); + +export async function GET(request: NextRequest) { + const requestUrl = new URL(request.url); + + const rawParams = Object.fromEntries(requestUrl.searchParams.entries()); + const parsedParams = paramsSchema.safeParse(rawParams); + + if (!parsedParams.success) { + console.error("Invalid params", parsedParams.error.errors); + return NextResponse.json({ error: "Invalid params" }, { status: 400 }); + } + + const parsedMetadata = metadataSchema.safeParse( + JSON.parse(parsedParams.data.state), + ); + + // const veryfiedState = await slackInstaller.stateStore?.verifyStateParam( + // new Date(), + // parsedParams.data.state, + // ); + + // const parsedMetadata = metadataSchema.safeParse( + // JSON.parse(veryfiedState?.metadata ?? "{}"), + // ); + + // if (!parsedMetadata.success) { + // console.error("Invalid metadata", parsedMetadata.error.errors); + // return NextResponse.json({ error: "Invalid metadata" }, { status: 400 }); + // } + + try { + const slackOauthAccessUrl = [ + "https://slack.com/api/oauth.v2.access", + `?client_id=${process.env.NEXT_PUBLIC_SLACK_CLIENT_ID}`, + `&client_secret=${process.env.SLACK_CLIENT_SECRET}`, + `&code=${parsedParams.data.code}`, + `&redirect_uri=${process.env.NEXT_PUBLIC_SLACK_OAUTH_REDIRECT_URL}`, + ].join(""); + + const response = await fetch(slackOauthAccessUrl); + const json = await response.json(); + + const parsedJson = slackAuthResponseSchema.safeParse(json); + + if (!parsedJson.success) { + console.error( + "Invalid JSON response from slack", + parsedJson.error.errors, + ); + return NextResponse.json( + { error: "Failed to exchange code for token" }, + { status: 500 }, + ); + } + + console.log(parsedMetadata); + + const createdSlackIntegration = await createApp({ + team_id: parsedMetadata.data.teamId, + app_id: config.id, + settings: { + access_token: parsedJson.data.access_token, + team_id: parsedJson.data.team.id, + team_name: parsedJson.data.team.name, + channel: parsedJson.data.incoming_webhook.channel, + channel_id: parsedJson.data.incoming_webhook.channel_id, + slack_configuration_url: + parsedJson.data.incoming_webhook.configuration_url, + url: parsedJson.data.incoming_webhook.url, + }, + }); + + // const createdSlackIntegration = await prisma.integrationSlack + // .upsert({ + // where: { + // team_id: parsedMetadata.data.teamId, + // team: { + // members: { + // some: { + // user_id: parsedMetadata.data.userId, + // }, + // }, + // }, + // }, + // update: {}, + // create: { + // team_id: parsedMetadata.data.teamId, + // slack_access_token: parsedJson.data.access_token, + // slack_team_id: parsedJson.data.team.id, + // slack_team_name: parsedJson.data.team.name, + // slack_channel: parsedJson.data.incoming_webhook.channel, + // slack_channel_id: parsedJson.data.incoming_webhook.channel_id, + // slack_configuration_url: + // parsedJson.data.incoming_webhook.configuration_url, + // slack_url: parsedJson.data.incoming_webhook.url, + // slack_bot_user_id: parsedJson.data.bot_user_id, + // }, + // select: { + // slack_access_token: true, + // slack_bot_user_id: true, + // slack_channel_id: true, + // team: { + // select: { + // id: true, + // name: true, + // }, + // }, + // }, + // }) + // .catch((_err) => { + // throw new Error("Failed to create slack integration"); + // }); + + if (true) { + // const slackApp = createSlackApp({ + // token: createdSlackIntegration.slack_access_token, + // botId: createdSlackIntegration.slack_bot_user_id, + // }); + + // slackApp.client.chat.postMessage({ + // channel: createdSlackIntegration.slack_channel_id, + // text: `👋 Hello, I'm Seventy Seven. I'll send notifications in this channel for the *${createdSlackIntegration.team.name}* team`, + // }); + + // const requestUrl = new URL(request.url); + + // if (process.env.NODE_ENV === "development") { + // requestUrl.protocol = "http"; + // } + + // analyticsClient.event("slack_integration_complete", { + // team_id: createdSlackIntegration.team.id, + // profileId: parsedMetadata.data.userId, + // }); + + // This window will be in a popup so we redirect to the all-done route which closes the window + // and then sends a browser event to the parent window. Actions can be taken based on this event. + return NextResponse.redirect( + `${requestUrl.origin}/all-done?event=slack_oauth_completed`, + ); + // return NextResponse.redirect(`${requestUrl.origin}/settings/integrations`) + } + } catch (err) { + console.error(err); + return NextResponse.json( + { error: "Failed to exchange code for token" }, + { status: 500 }, + ); + } + + return NextResponse.json( + { error: "Failed to exchange code for token" }, + { status: 500 }, + ); +} diff --git a/apps/dashboard/src/components/app.tsx b/apps/dashboard/src/components/app.tsx new file mode 100644 index 000000000..327f29be9 --- /dev/null +++ b/apps/dashboard/src/components/app.tsx @@ -0,0 +1,170 @@ +import { + Accordion, + AccordionContent, + AccordionItem, + AccordionTrigger, +} from "@midday/ui/accordion"; +import { Button } from "@midday/ui/button"; +import { Card, CardContent, CardHeader, CardTitle } from "@midday/ui/card"; +import { + Sheet, + SheetContent, + SheetHeader, + SheetTrigger, +} from "@midday/ui/sheet"; +import Image from "next/image"; +import type { User } from "./apps"; + +export function App({ + id, + logo, + name, + short_description, + description, + settings, + onInitialize, + images, + active, +}: { + id: string; + logo: { + src: string; + width: number; + height: number; + }; + name: string; + short_description: string; + description: string; + settings: Record; + onInitialize: (user: User) => void; + images: string[]; + active?: boolean; +}) { + return ( + + +

+ {name} +
+ + +
+ + {name} + + {!active && ( + + Coming soon + + )} +
+
+ + {short_description} + + +
+ + + + + +
+ + + +
+ {name} +
+ +
+
+ {name} +
+

{name}

+ + 1.3k installs • Published by Midday + +
+
+ +
+ +
+
+
+ + + + How it works + + {description} + + + + {settings && ( + + Settings + + Settings + + + )} + + +
+

+ All apps on the Midday App Store are open-source and + peer-reviewed. Midday Labs AB maintains high standards but doesn't + endorse third-party apps. Apps published by Midday are officially + certified. Report any concerns about app content or behavior. +

+ + +
+
+ + + ); +} diff --git a/apps/dashboard/src/components/apps-header.tsx b/apps/dashboard/src/components/apps-header.tsx index ce2a5a95b..2a594417b 100644 --- a/apps/dashboard/src/components/apps-header.tsx +++ b/apps/dashboard/src/components/apps-header.tsx @@ -5,7 +5,7 @@ export function AppsHeader() { return (
- +
); } diff --git a/apps/dashboard/src/components/apps.tsx b/apps/dashboard/src/components/apps.tsx index 067873104..a7ec25b8d 100644 --- a/apps/dashboard/src/components/apps.tsx +++ b/apps/dashboard/src/components/apps.tsx @@ -1,126 +1,27 @@ +"use client"; + import { apps } from "@midday/apps"; -import { - Accordion, - AccordionContent, - AccordionItem, - AccordionTrigger, -} from "@midday/ui/accordion"; -import { Button } from "@midday/ui/button"; -import { Card, CardContent, CardHeader, CardTitle } from "@midday/ui/card"; -import { - Sheet, - SheetContent, - SheetHeader, - SheetTitle, - SheetTrigger, -} from "@midday/ui/sheet"; -import Image from "next/image"; +import { App } from "./app"; import { AppsHeader } from "./apps-header"; -export function Apps() { +export type User = { + id: string; + team_id: string; +}; + +export function Apps({ user }: { user: User }) { return (
-
+
{apps.map((app) => ( - - -
- {app.name} -
- - - - {app.name} - - - - {app.short_description} - - -
- - - - -
- - - -
- {app.name} -
- -
- {app.name} -
-

{app.name}

- - 1.3k installs • Published by Midday - -
-
-
- - - - How it works - - {app.description} - - - - {app.settings && ( - - Settings - - Settings - - - )} - - -
-

- Every app published on the Midday App Store is open source - and thoroughly tested via peer reviews. Nevertheless, Midday - Labs AB. does not endorse or certify these apps unless they - are published by Midday. If you encounter inappropriate - content or behaviour please report it. -

-
-
-
-
+ app.onInitialize(user)} + /> ))}
diff --git a/bun.lockb b/bun.lockb index c0963566d5ec45ff4926ee1bfc08a3be1c9f5eab..aa9e8ee81dec8861aa21cb63530f327df7d23f55 100755 GIT binary patch delta 21859 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 delta 22721 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 S-X~-1Ma0SN+~pb32mTL~B}A$K diff --git a/packages/apps/package.json b/packages/apps/package.json index 8bdaabdb0..94bfe5843 100644 --- a/packages/apps/package.json +++ b/packages/apps/package.json @@ -10,8 +10,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@slack/bolt": "^3.21.4", - "@slack/oauth": "^3.0.1" + "@slack/bolt": "^3.21.4" }, "devDependencies": { "@types/node": "^22.7.0", @@ -19,6 +18,7 @@ }, "exports": { ".": "./src/index.ts", - "./slack": "./src/slack/index.ts" + "./slack": "./src/slack/index.ts", + "./db": "./src/db/index.ts" } } diff --git a/packages/apps/src/cal/assets/logo.svg b/packages/apps/src/cal/assets/logo.svg new file mode 100644 index 000000000..759c97379 --- /dev/null +++ b/packages/apps/src/cal/assets/logo.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/packages/apps/src/cal/config.ts b/packages/apps/src/cal/config.ts new file mode 100644 index 000000000..9b0e1507b --- /dev/null +++ b/packages/apps/src/cal/config.ts @@ -0,0 +1,16 @@ +import logo from "./assets/logo.svg"; + +export default { + name: "Cal.com", + id: "cal", + active: false, + logo, + short_description: + "Integrating with Cal.com automatically synchronizes your tracked hours with your calendar, allowing you to easily monitor your progress on your projects.", + description: + "Integrating with Xero streamlines your financial processes by seamlessly syncing transactions and attachments directly into your bookkeeping software. This integration ensures that your financial data is neatly organized, eliminating the hassle of manual data entry and reducing the likelihood of errors. With transactions and attachments automatically sorted within your accounting system, you and your accountant can efficiently reconcile accounts and close your books in a timelier manner. This not only saves valuable time but also enhances the accuracy and reliability of your financial records, providing you with a clearer picture of your business's financial health.", + images: [], + onInitialize: () => {}, + settings: {}, + config: {}, +}; diff --git a/packages/apps/src/db/index.ts b/packages/apps/src/db/index.ts new file mode 100644 index 000000000..9d85ab2f9 --- /dev/null +++ b/packages/apps/src/db/index.ts @@ -0,0 +1,13 @@ +import { createClient } from "@midday/supabase/server"; + +export async function createApp(params: any) { + const client = createClient(); + + const { data, error } = await client.from("apps").insert(params).select(); + + if (error) { + throw new Error(error.message); + } + + return data; +} diff --git a/packages/apps/src/fortnox/assets/logo.svg b/packages/apps/src/fortnox/assets/logo.svg new file mode 100644 index 000000000..7a835aee7 --- /dev/null +++ b/packages/apps/src/fortnox/assets/logo.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/packages/apps/src/fortnox/config.ts b/packages/apps/src/fortnox/config.ts new file mode 100644 index 000000000..37fbbf6d5 --- /dev/null +++ b/packages/apps/src/fortnox/config.ts @@ -0,0 +1,15 @@ +import logo from "./assets/logo.svg"; + +export default { + name: "Fortnox", + id: "fortnox", + active: false, + logo, + short_description: + "By seamlessly integrating with Fortnox, you gain the ability to effortlessly synchronize every transaction and attachment, ensuring meticulous organization within your bookkeeping software. ", + description: null, + images: [], + onInitialize: () => {}, + settings: {}, + config: {}, +}; diff --git a/packages/apps/src/index.ts b/packages/apps/src/index.ts index 69e06387f..04db76cbb 100644 --- a/packages/apps/src/index.ts +++ b/packages/apps/src/index.ts @@ -1,3 +1,15 @@ +import calApp from "./cal/config"; +import fortnoxApp from "./fortnox/config"; +import quickBooksApp from "./quick-books/config"; import slackApp from "./slack/config"; +import vismaApp from "./visma/config"; +import xeroApp from "./xero/config"; -export const apps = [slackApp]; +export const apps = [ + slackApp, + quickBooksApp, + xeroApp, + calApp, + fortnoxApp, + vismaApp, +]; diff --git a/packages/apps/src/quick-books/assets/logo.svg b/packages/apps/src/quick-books/assets/logo.svg new file mode 100644 index 000000000..0ce2f2dfa --- /dev/null +++ b/packages/apps/src/quick-books/assets/logo.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/apps/src/quick-books/config.ts b/packages/apps/src/quick-books/config.ts new file mode 100644 index 000000000..e9449f75a --- /dev/null +++ b/packages/apps/src/quick-books/config.ts @@ -0,0 +1,15 @@ +import logo from "./assets/logo.svg"; + +export default { + name: "QuickBooks", + id: "quick-books", + active: false, + logo, + short_description: + "Integrating with QuickBooks enables you to synchronize transactions and attachments, neatly organizing them in your bookkeeping software. This streamlines the process for you or your accountant to close your books faster.", + description: null, + images: [], + onInitialize: () => {}, + settings: {}, + config: {}, +}; diff --git a/packages/apps/src/slack/assets/image.png b/packages/apps/src/slack/assets/image.png new file mode 100644 index 0000000000000000000000000000000000000000..1fc008cbc6d22b8a8eb9ba00fde71b12500d697a GIT binary patch literal 299341 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%0A{;Zn`je>tzNtkXsKA!a>yA$5|GuA28o-jw zO@XHs%=(euKicCe;79A>w0nV$7zughh7=@AP)-cN-_$1=MV4=)r_H;=Hj&tp!1|4f zPU!gd+aMG&L!VBGl_#}@P)N>GnUTP(Cw9*l^j0JP(uJN8DQ_e${>X0cQab8mW2yor z-v(Zz`R?eDY8;myvdm|Of;S2i#a~k`$D){PPZrb|kG~uDVf+Dzy-D|pEeds;Md>2d zy!@>Kg{d`u@84?OQN3R^2ucW*l}Q>(X8N1e$)bX z=N6?VLlT~d%0z?XZWG1;%c+P5Y35oqR}b*-2UFxQ)s&!z6YE4of3@`d3&pNlM4v&4{!t z!`Lu-0aT+<_8uM0HvvfBA&B0~_0gvsyZ`2ub3)qk>aea2?6`@(Hi%L#6!H#etBF@t z153(lt+#E$IZubmr2#y8m7fAXy#YZCyq*D8OSP7cxB0)hMqm^HcawDoObR2CGe)AxZJ>;YxU)vm|3tOUiA zbELx;uaRG1P~p6LjB|Ok9%R_BwJ5D8$cr>K-s^1V7c(DM`g3WySK6?dE4h&`oyHzB zA4x-y%FdZK^z$>lsGCe018*ME-a*>^x%`3UL-*@ilSdvI&p+IKWXqDgTorkjMcIWG zS6_U-;tugjhF!YsPxwXkeWuupGJqGjO9V*(!e3k2!z;$j^X^*7e`n35X#I7h&8u1nI32ayt z^%RAos03WTcP{n3oo&4{9&LVi@sB>~o0a5{?*+qV@TN$Ss4s|jy4-JM=S#I>qX?P$ zb6MUB5WGa?MbQl2;OjlPT){iNW$9W6hJ79F4nN|Nul0XT^`do_wOV`d zYJPq~*#mnPd=(8UTwNFX*>bDs*=hyU;_D)Z+*}gedf^lMqHDB7Xh2YUqO?%S30y<7 z1*Ff*66~;}JAzkrEJcy4Zz+a~G7qtSlM{pA=-dq{q1r(I&#zfI;W(3y(T%)YZP7cw zl0&b^xaD55o97jB6j&UD!D@|G>9m`@u*erX!uR7?B?;`%;6PdEMwTO&gc)aS1~^jTVFcxE9Z01 z+R6Q_<}SaH2^m$jZe!)NRx5y(XvB76;~H5NU*Ezb&Vbt!5&2ZEyi%>2%5EY=iWuH& zsGLBd#W9EZuk8)~Bu30omYHy>JC*!PoG)NeIGr>oqK#{C%8QLcKaYD@s+b{gXdk(r zD_tz~`Xk`-VvmB4pciPu2+&?oHdX}Q|KuJQp3%Wv3DE5^&}1$&=R8Cc+6_hweuNOz zNL9=`;(8<@M^mZM69;LA_S}v(3#EyF6gmuA;26@>#SwomlJ~hf^CwkE7EzzOkIAsl zZ#WbB<5%Sc<>~#d12v5HYkUvn*T2E2YZ|TdHdv05ecRgW{wRG-XhQM<6FdW+yUp-T z;e*#RY%&tNm{ZZPvy(XdTz~#R=vs^$o?Hyo~2Mv zK+Mg&R^N5M?u{ptMn_J5p6i|ilpg`CUALX1(9l;nfm;n6b| z|Fy1pyL;htQnzl4Tjvs7F5)0Z=-Jlub_bQ8usWR5D8p~Yck%+xL0g?75Xi3psiXf+ z?}L520TecfqMS>dWiXaSPd~3KxMM@eKByPv*xKlOb7S;>1VZGZtKBDL!m!L?q)4Rd zQX3G^O>|8(Zk+dX2I7PXgJOw<^xP&0Zfuf_n1(Wo?F`5BiM+kx;ljw#ESAYS33t09)|r09dVY77QhGpa}K|O$En5g)*fJYlOFR zY@%kw$$|4AH8>c}L!c)cVWHhOTx0&jIaQ$c8(dVxAv6!WMR<-o20nQwWsTcAydD;4 z5ko)Qkg|@a?zVZHsBcL|Vta=^U2JWA*>toqQ%#1-Jd`UDcSvF>#dPkXu8Y=jj1MVj z1WDwdU_dpBJjDf*EaM;*s@YUS4EP9>6pxfg-#+C@lWD>yd|<^^&SgFr)+_t|jYdW` zfl2Yhx&uPqX}kTBd&v3Du<*eLn{4LP29+}QJ_hTs%lFPlTz9TrJlYMGq~dA(@>nI% z+&|D^<#aNwz1=L)IOcds+<~9jhimI<6dzORMCpok^5DfYc%+?)-sY}&Rx8^S&uD+l z_A#i1U*C#FIf=X`R>w@{cteYh1c_sWPSI$VsNA0K?CCSYrXHSy4pj%cF!WaLxc z=eQkF6abq>2m-!v)nu;p)`r08dLK#%QT|7!LMqqOuZUGfJ=;UEw`)P$0k1`A;lA@a zY*3}Vw`9j}_)hPO6p53HCCuF!23IVOzk3)M*XK;sdjzg%HE*$u-1nyPN~gqEd*Kiw z*mIFK^AjQCh`60p1Juy>#peFGoo7nerZ6~mVw3lSdg6ndHyA{3GZ$;joo_eU$RoXO zoRF8KanGn^geQ7%K1{8*P&$lfErcpErwb|yEOvR*`G6yJST1n4B~;uODhq-rC?vJ} zLYoqFex#39C(?Ck&AFn7cNHsAGYdx#Dul;oAXrU@ca-U-BF3fov zVa;~2I{pA{P=5w%hA<8eB|c{SPi)4UFqhkP#?E#F$6sVd(( zm>5?*+EPJDwKAw_H52$wWo1?dhOf8U`0|n8nX62@<=a%Qf@t`7uSyML zJVW2vW36F7*>DCE@y;1{+{z-mNbUiJZjZl!8*8)n>UI`UTe$PoN`H=p&>l|9OX6t#VXM-H-T|gkH>*>|N^M&)2b% z#|hb<7sN4CuQCaGIRW3~U=Q4cVwQghK3{-4hfEJ{{#~dsXQf+!!zDh2OJg%eF7aSv z*1{13o@o#4{oummhzGxa3Z|kP2yNJw1jHP^9|t8d#+wbXADt66PSCr8sb5=yyf|sw zWdWI>+^*Z!-JW(D`?Xe^#7d*SD8ynYZYI^Fk|K-&cB(FshOCU-jU_}ug`AZnzAC0C zwnp_krs24X{g==UhV(X z_pihboMKcf6avYad>~T&Q9msLHu&uG-f5fu>N)K92l1%5u9p~%6op&xfkH7q4SzY+ z;)T-%T11)IAm$Ito_tPT*P|^iu{VEF#$p6r9~d2X6WEL^c}(NAfVDashRqtJhQ0Dq?6d}i0| z_{=!Hq&c=vB>*wK-~o^i&g`I%?5Z}Gj>9oLNT!27ldB2oMO;S`GgF$Tlpd?a3xCeP z;&*_72nZmt*|A>eu}LPNwrceXSf^<)f~6 z+RYWyQ7s|}D@LAs!(t{JOMXk~p`ZPRmAiFHFX$|asfMA8K>GfJzYCxbeW5Ndiwt>z zO+}Mgs9SAf88ZWgyA9ae4me+g1{l1CGs;sd5^~_hZLyv!-8sP#xcMaYi5gCL;Z%8l z7?96nH_j2$W2ua??8Nv3x@Uddvi%G!3I97d0p8!qhO=Fn@*#(tkDm6V*Liu{9lO-A7L>;Wd5aVlbAt3#V`_XnGWi4y!p zpX+ey1^`hl?G>-A;j+~Z*K`oNMP~}#>v`8=4&H zSh}-z@b6q8cV0Qh)BvfBW0KGPm`~lMr$h^sC>FxPmzV(xER1Yl7Bk>&xZu1xWb&$x ztbe5Blg!e_=%K5UPL@11OIZmf4RAy%wRP;N^xrLV?(VQ%&o(TVOVWy!O4r}#MQ(ec zA|}2Ns{;CxNJK4!om7P*r6ed>!d^_i`nsdPw&OV~+g2MdG(>*7u7$^_u4B0HRV9mQ z@ytxFC&qA{Ir-RXW15PDq1eG&<)ycAbG+9x6rQQC^hkK>PvA_)3_`LMGO}wVuco0* z=t^l(rj}c4!7ev9(lX?Pq6619IZ4L%4A7aE!wC%JghPqZ3KRljMeL^Ea8CP!R_LQ# z<38MIXA|_32{SV`w!0Mlpp`-`G-iSp4;FJHq6Kx(#)Sdm#dSnjq+DEMP;sDxa3|$P zrF(}^cals$5(W{wV<6v1Jd^BnzWf$!*qk^@CZ>*RA@h@1++8uWMCt5zA7A&5&fRHG zAjMg0vNSpFFA(#S!)EMP@GFhi8}S$H^6tPshU#`pmyj%pF8U7SU#G|SeI_1 z!gXHwmg!!}sbump;uCIQVS@}Ih7;zk5dY`quvVeNeVKJByuA%Fg8qxY<8Opb0#fR| zuge_~#AO$Z;1EFTdlrau^tSgCS z?3-LP!guY!{ZCp#G~3!ySznUibj3iPuO)P*C4w`AAStSR0!e=l9~i|hNE8?PM~ufL zKB|AP*yymF&MQzsI-lGmu(UiV2Z_{q`3p5{aaBUnj2@TVY5cwk2>m8!Jmbnu=PC&t z=9WiyFqgX->ET#rj`yON9Rn7q zQHGB1@Ld1|!9$xpDB_l(S4g4o;hpOu7eDzn@=O$Jr8>C9h=EaQX1-7tE)ST@@h<>v zkxGFAx#weNASL@AX14v+;m7xYKBnDZ$B+LCge%i^YU6Jva zkLyB&QeyL*MA*_fwq(o_s%eMyi@p1(gH~H~3!SDh*YkARMl!12e`0nQ7xmseT#JjB#ODn6$#g`^|D^5F(?{p^Pi*C zdk+3&#mW2iBNkmhKEq9sQc;qhny#&3Ig**w^1lA)^6w!M*r_`X{}f;@TlfERHLfRZ zO9Cx`-Uchn##sE0YHBePvuJCXsUhM0Ur8o* z*9TOb!l*N{l8$B%Z1uw#y8p@^&Q%y>#5;iB-DYbdi(a=tvr>6hJCG`4pB~*`LCdti z5>_^T5)JdgS6=f_UaMu;;798g@!Z*mQ_k{vwb_SJAtfHOu|VZ^Fk3=eeF7q}`tDa; zHDrr5tKdsqvV6p-sAGIO*ZrSGgK`m$`3Jehe@X;7zjDipQNyd-jBK%6<+-wyAn)FY zBT?$)!Zj`QkE#r<>rPy0nIfYXD`<3opxlJpYHxVV0LE)=)ZAzi>PzB z)<&x53bi}=s5T^XnEmbPa$0fCxt?X5vGW9eoQ{4F_Hc^n4+4xn{zoQd{>lLfzAGM4 zl`JQ=0eq+Avq}osE*fC-Hr-_WWuJxWcTN~{N}?@Pky8g8cWle&8w zx270RSQ}jzR~zB|vEdZx@oyl5v!VGCK(YwMN(!omR?2&_At3JFE|a*-SFv&l`IPE5 zF@EdBs?$J?8@eopMsTYCCR0&b`n|)T)9<48(cO)w(mFhmE^OK>b+@+&pCF!voSera zqTa(~N8Q8%1*SQ0Uvf35Le4d~95yswxr~ z8KHR@E@8}3vFv|&H4VyH;@F7#pLd>dg_xUugDc$gh>;V^-@Sq#r+DHbPrZB9Hmzoh z)13XND!eW|z5-`^grpDOU@qD@m`7e?k-U#7AVvT$L>>XfPj0$E5$Enug2b1?)$iBO zCZFhcbxm3|*7&)?X+gy=0??bpB0Xfk2tH#jux*eDN6}LSOoCoR;b>WK6OUbk;}yHb z#DK7hMoev?dKn}Cz0Di1f>I(3sc`mB&lrIzB8*aeKS6(f!VvN7b9*ka@+t(yE*Kf>=6<2d_=To{ z(8uMRfdgGipj}D;$qUOacs7V639ic;e%xTe&15v`m5Dm!(E8I}7ToI_@UF*T_??-E z$S++sd`?S4kiNz=!v}82z#|*Es^Gpug9;J16}BfRJndWQ=?IR}Qalc7B;L(%T39ps z!JOHKjAMOfucyZqpRMhji;QedN~AHD?^0QQs2ddY@F|ie+cCvTb7LSTB7`guqOw35 zd7`~Ut=%@N6#QQ~a(ei&l3RT&dT0L>)MyVGSXzj&2mPS`ZOi6V=igX?8p+=h$}pk^ z<@D@6hJG50?{E8Ql(JR4bJxE2xIF9{4#!r&aTaQSX8g+}mON#ejWF5UHC>%AFZz;S z#o=Pj*X3rxk;iKvQ!k#$oGg+|76NrFRi>z^B`6sEnn$lUKuS0oHnhG?CR7F(Flr5U zdga72Wnm0`aPTR@ko+FSTU1lK3Vr_M331#^5U`aB?x?xE?)JLknmO&!6HR5;KM zyhb^^O0FM0NMgb3t)3XM4$L}hcrOZ3|EknkLH}m}P(naM$k0R5WDD31z^R~+Lj}@v zoY^6Y(}_>35}4s*p8oks%Gkl*|0i?6iPphY-KJ9ra@Gj zTHFhR0;E|*OWxwY;hT*#8rr7?(er=Inl@xo8a&%2OuLc!rg~Da;6+dd5!nL3$TE$8>!m%o1{mEjTW$tW{0^g+ex$C52h9*lM`hw$ULjL~J1 zxe)S(etb1!)|E)+*vVb0vr@e>GG(B%hYbHc;%Ai zQkgW$#jr?b3czSESyJJ)^9bjmk^KbQn_iYxO-3hXkvo{L_-k7!u+Zj>Q?eseEQYST z1y*3wsrKz%!Vw@up7bBvlg3oBdiV&iX*RdOTyIadr;j6sr~;zY_9KIiUcjeop<*Ku z&?^O$;k^^*mrt2#rH~QtAie_PIs~6iF4t@S{;r^gL0$vWVQUnn(yG(FWQM^WW)kt2?J z7A>mFAbNY~XUBhODNO+?KNm%p)yuMLP@*RS$5Jh?f2GA?p|`APSx&DVxtuOAF#e?B zAQvPT{isrqRl8QN39Z!Z6BtO8Ta-kUr+NS5gNMM~QA8B0cdP`~-ttNKv_Awl37m`O z{TZvs1II+k>HbgR);uxrfCcpVo`RfKfbbQDfdp=Lk~-#VJ23ntor?Gt8+1_M zKmU@yH&~vVXU`(x8gEAE%~;3Sdmwje5F?UGanG0+Iy-wJ2o`ow`E0g*-n+cPGNi=q z@C#(9dcGCHx_o87SEx${pefuGG0h;WOzUNNi8W+~yf)_)1%w6Qj3u#6lO`>7au5Un z?apJo6K$@w3TK~ipAH#LO=+-5_4)VTPhCMsO%y$;S}1D0ZQj>s$c0Nz?*#dD{GWa0 zCL|=lD2=!o_=Nq|#>V#@>7K=ppZVJJhb;^X5kn5c8W$d1@bmG%+%QvR)WfA0ntu(< zRk*|t(2s2KZ6HqHJr}I z9M7a4a8Ar1W65rkE85a9ozT`|@mxd`M}38P#P1iRk|!;z#gSjI%fY5LdZ24Qsv4k@ zKTbducbif~ZGmVf#a-ud%*FU^=Ibmvc}e{9WzqC|zizQR)))p=y8V?V{QFgrHuSuA zGiG!`E?rM>jJ-gRm;hHP1FT(CCGW%=rM`E|ZByftP?z)+oP|?{adg4CviL~iZJp&^`iE}Qht;ta6mGnx~>nd{;$kSiRZdH48nTDf`3$Bj&_xa8P z-|QDE=j;NbV4nZ8UT+9hz5tVmxPv9UYnfI}{sVF6<)y^hC$xRLa@~)XQ@PTm)t3nS zEoH&k2M-N6~ZL@XhXk!&8xzw94Bgr;7Krh}b7gr#K z#^d}cQS!!X96mz*s*8TW%N@DP>>S{tbqEFAWcq3P>+@Ps+R4$8V zMe{};11VN*CK{3ylHDH7Fflo@L9GaT|A#9U6((z)pvaoa%-YdjP!?@X(=z6CXWQ_7 z(9BCm@FSVyktAq+hamr!RztY;llr7Z)})5-J6iPFN5jw%1Ctf-NQd)ZF~IR6XL|&3 zspBZ;uVBp>DV32{Y|G=F2W8((b6bbmeB3*Hsv&T`L(FX@NTZ`k6Yz;p@nUt=;xNs9 z@zHt0@uc;d@**NRj$v2q(o)9v3Nuf3$Ml7B*e?n}GV_9scxlt}_+TUWZM!%xt(*E&k6CG&8K$D{UM<38n*5uqDT(6;SiRBkd}}|A9_-Rx-Ee5A)IWOqz&qs@G)P zZ_!8Aq3~NC-I7dE7+;pKI9RszydfX2UvqoA?75uKLq0$k#6I5TRuQs6Nc#a5XuY&F z3nci$z{QCK8)5V{G`@?gRaAHvcq)44QeY~za zJBXuAz_$G6_olelC~5qau?iVH3X=un9uIarJdPF>lGu3&tg-_+IhLD$$Xyui{#u1r zvuTluuJLpGMj4HZsYa<;-gGWm2hME_(9wTLWK!4|*^3JerW2PSDRdi8TtI@rl^}Wu ziwt>zeaZx=&)tx2IeN~wsBCi2APkIn4-^!mj72;eiI5m|232HzcHwf7qo|_6&e7x= z%{}Cx-@B8>XvpwFDsMI4Wemjwi5L0NQy39sv&E9Nk#Do|xyN%N5cGIo9hw;tBcj1W zig@m}qG>)>lDwrr#(s#H7v@Z6gj&7O)fY+=nGnE)1FP})g5r)VZFlt?ruUXpNhu%f z6#yWPG1mRR-T=ux1e}%eVY^I^Gb7yr8W^S|xr7(-X^Sv<*pI2&nn_0i#8QRr;^;+3 z0x@iQ(+uBweEDSdP^Ukm;**mFg}(Q1EWoTE_radR>v!bU8kMGOeM*wLCW5(51b^~{f}aO6iMT#FSEj>; z$M&f+oX__^S_ITtumcD~O!hjgayzueFuDeQJd7e|ZtU|QobA(18j){-#v-ez-TxsV zQK{A2um8#&2!K$&i@X}7u@ya}+_?SxNoWDbQ)H(^stI=R!698~-)^}+9*j(^`^(n| zDSV#nXe^YO*sb?=_Ff=esL1)R`E9!U{-vA}Qc(Z|{$?**;2Wi2dO?$MK&JR-QhMh< za*mcNHC8XSwP=O(skUv>Uc{@pID2;2orW0taZQP25E|I>IBq5~rC)^{Y4XR=`WdwderX9J&^r_=jY0~+! z?5#Bz_ugx%ST?Nq;ndKmze5VIF}BZmRtD&u6Gr3Mq1sWf!Hpz*$=#V|q*{LPDT|Qa zb6u!WuD8)jjz9$BENOw$*QkrN*QO|a}j(@|ARK(v==Jq-`vFQoK#R7ON78EP}&wtAU3VyhF`uQWzZ8(CdmjJun` zznp(Ti+V^sb7_K0NtK0y^F+hY0 zB)>vdw*=&<$kfU;6Z$ zXo^Q(*va~Oiy*|nafTRCrZ;8|Xvkr@L3%B^t-5^SifJg|4Qj!Boh#=i52uOo4 zbeAB~ARyA+ATV?a(%s$N-EcSO-uwSK&vOpneBa*hde{1`NcX>-^3X?=53BBSSZx7G zc^*OLlxcl(=6UkTU39)svs`c+nJDHGZ^Aj4VL8TZ=xPP$^seZduOkK~WaG6c- z9NpNWk8@ehJ%fi}-jl}(8nM)$wAhgnzhPr(`thgIQhqTnXX-*cQ3_9!=F1BEaD(X( z*n(q8M+lP`b*lNXtag1EY{yqRxuYg^-(tw*bM`yipZoX_$e^0ElMm?8U>5&nuN{zc zqQSH^;UQh?%39BTA;}*@M;#?Qny;LxkioLHjs}WXyA3OVqU8?&8pHH{N~M*@N2{!H(Uih&PT>cCy&!?F&5Cur?YIiejk|g-OMo}#b zY!?aR%<~QOFD*rs5tL*=7Y@M*d{oK8S9CpXF3{cpeRE|eILP>4VqA9!q-1xukmGd&C~R6s18_Oy|8@ecZ!DNYb2A% z!oAwC#geB{!9vEO9iE+f@5qPV0Ig>|wr^Dt^rl;qCRzBj$(X4znrpdv4$epQoS-(;2H zKlzi*$5RM9f!!o8=m&2Y+@vnlGYj_#vuA^w@-%%Di%J2k?K?RZs>{%xEj-Lm3fGIF z_H4>nx%`U)!tes@%;N>ygv1Y^gharegU2!nlduQjE02psSH}5=Afk|K!*WFFn`-=x z?|RhIIzdoVM(==ISgY57uctL|pU2C1t8oMxPQ3Q=dRv`hOp@Grj}M&z-RznTd-pfT z1c@9c>m)ZysX2cAOdaL@BD6hu{~oawWrNL$Z+1UxN>bB5q*H=13VFDJnc&E(yw5fa z#zHN>us84NwM`0XW9-8a&W9eqY||mCeI_0KIe8TP_Yv1snDoRgekeDf#59Ozo%vAj z;_&aw_nElv30-uH+bD(^$c+*cjvfmy{ zMA<^>z&WS#x`ZaKl-Ye0XfL>@xhNM+=|A_vIUfmNB(A_CLR_4+ zS9ykOyUgi`hejkKf34?czwU1nU#OXDv}i4Nwqj44BtRTZ_h~_;KK^$e8dOPWBTX}< zYi384n)#{e74rtH;rP6vD~SDj5Afhngx_h+b^a%ru6b(eR6zzBbNOj<-VE#=KCXA5`C+gc87|eB4c%(I-qS+BAUqc8a>LpEDIoLx>%C66 zA=Cc3U0C<0|$)vo9J6YkXF|XC!E`5n_rF7JX8BnT^UyCyFL9ERcs# zFt{a2m&FU^+@a}#nZpd6Ws?Zj`V!>UR^=Bv(v&l}BrFD!p2F7tk>r-z-fsqm;HW-| zp;K81+8`>C-z6@R?9t%gt)JMPsta`mz-Lir|N7OkInFdW$>HX74AZ@q>XYq_!I5lh&#>PUly!R{ zlsp-&O&5pDlLkmlT$hyAbrJiybataB4%81dkPl;eka5oZpU<5=@Mj>;6KaS$5(DtR z*+;7+=ueTI6@ja#X6=_tK^7^4&;l7Y9S!8uR2L;o;j=}Cm)L_3`(eBn11ZkW{Yk!9 z>fzp)<>%AZ>6;*9v3!LVdA42r&FQmV-4e<0TIw8HxGqLk7b|QRhdawdCg&?z0NyqG z7f$4+A+!vJ4!)f4^l#J%E4`ZoqnaBpW^;^kT*#_jGa=(e>ZNG~bM1D|sN%6&>fJ8C zy43?+a!sdJX?;eth4brr-{1Mv8iz?LDBmxaqQy9f1?^Z7o)gDgQLEa0rR=-5bK+AJ z1oxs>`Gwa?+ig26{$V>0v)QDVC=)BG*kyd06Krf@3XdFNcz*gs*u}#vAwG83m7!#H zUvr->a#SzjqC@a!$jzzw`DsJR<*cglEgvJ2C1A^5O|T=6OMI!7vH`~&?BSTh`qV%e zx7|~Yz1C4ku{x@Ut&LX{&k-mjzO==`fgsY0VP^)s10qJp<(O*kQ_*cSJhwfh8s4gc zp`)+*&)US9m-`Q+o^Q04rduQu#=H{unmHZHI1z5^Qq4-s>{bZ)?fjk^KGi~YGPba9 zx*RIh{CnASMZNdAni_WdF7;PELI^wT#z5yJ{>v|(TWgohYszxBHtD%yi^*5fk0FZ( z;K6VZevS9dZ2>_Bf7W=nQa~LR=SpFi{r0T^9blm*0{mWQRIh8okVh;Y2=y zPM?NiM*q;@nm0iUFNkyT1bgp6@ZPpJbbvUP2&>13XeLoM&6%dwMtm7}&%?IZ95H`s zE}%~UG{Zf@{TjcHCIhM*8mD=`QHT##%Nqp)t(z3<;2PEW8-Kx_Zl5ZSM-z;o<CXO~3Cu*`4r2j^2T2UkodG z2$;fHD@12NLiTtk-~BHho7heKZHZC0al=}PuvbM0UR7fky9Ayl1o%%(=pKoVDc=rw zBO!}FdOP}`p2SMRlI0itQhB@QE>1fA{I87IAUCE3asFDVPM#v=6Z7r+Nz$e@VVrxEk??<6 zmlrWtYKcKTSLU0imcM0N%Nck4p+rS0{*91FOac|mK?UpMySqv2YaWuXi6--x!dQe^B)Q{EU#4zi8C&q~jy#c=iCE%wk zo7#KGmVUyi%2G6R`FekcvN5WrhlL&md9on}gcZ(aO7^@usI&gT0ta8tW1p#~7qdV+ zdUhb~AJYu*S}PGcz0NOTNd35|91om8)4?=PXHV3bw>B)0;iXg`u5Dy=Y#8ZykOs4+|L^&h_yZCY6Dr!C(C`lc-c%;R! zsto}v!Gs(cL-N9mLayR78XF&$G2F;6D0`GXoIbeU@Y+FYLcw&mI^Yzj;3<2vt|f`V z$y;Q?y*acXhH>5{A1d@y*2_tP`d>=S-Z7qQJPHQ>AL_UDE^yPHxPd=^P0j(*V-R>f zNSp+4P=RTu3u#VV`9Q6r;5^;pb9%LG^UnNap!)RTX(JEapmD`|Y^*Mgojc#rSePJ! zdK`||W2DAEeyDS+eat^mRHoc9D`9Ki$S zN3tM(=3!Jq)Zmhy?ZzAxIe|x*OA0k5doFFu8s8Z*ZT!|k`DL!Ox80@VBHh(m!v5w@ zt)g_Lxi?uKBZj({UbJO-iK7fMOUr7V?`GzvKOYE7Zy)MZ8vOP3aYoJBY#D#Qzx}sQQ*JaogklXKTDz z?qP572)7EKeU(nv;$e4eL;J#zq5=ncjv9+^GcRE8^gX-Fm&>yGw!7jqlyH4#YjlS%q8;ASp@uOM2?!{tLI<#f zl(es46LqqlOp>dT?|K;r2~;O+lE(7r*^ww9A_6l<jLyL1thN z{iH%Nj4D%4G9+uz^G7-tv*KWOGJa|s&LhRimP@8?mFmp`#~+C_pDK)ZDSlNf=myV z7ZY2e3X67bVwktrH+voZ8+!2bg+_}~E?O)BEJLi>>2wqxcR&GVZIGm_jBol@h$IY! zr`q`YH&@v%*EM@R4ijW;#r{AI3^Jc1)n(uNC6~R=5evEobs#0Y9LW0hmur-BoRVMf z_DC;at*A!tmy;6M*&luK&ip^~>mfhHz!nTqW< zOegpzR+yjX@Jby-A77NLUV?^KK1@AeAgQ8(8RcV|^{_Y{wvorxp@|l-S}TOfi>x{O z`hj3iLz-X&+QZGk3YK6L>C4krG;bk=Rz|y~7&3J>KD^=1uQuP4DO?ee&e-FT8ghaw z$(}I&;y3@8Lmv;kVE5NV*B(Ej+M@Q1hj>D;D7@BZ1@pm;!{9YXm=GeyzyXW^4YJ|} z72GvfoTE9VcLoML1y>HkNumUKXL=~qS26jj3V`Xutm{B2dGOE70oS&B$|ue92`6W1 zIlP-^Yu*#ercv4>kR2T@Tp>v#o}4lNTsBj$KPlDTRB^a8>N#Hm%nMNk(sSSG;mbsA zbzi-DR8}kmKT&#l+%&D?&eEvUk_kRKdh;RM^fHgkercuiUE>_41lm!NVY`VB(#R|0 z9#RL|*MTt$L&#FX;U*VsZLPmoO*dH%)Brh2LkGueMto{x!ySP5Sb<~v=X)K(Y^O&} zV@<6-XgGX1aeu_UT*#f7)5zYjSy02akUej?V*&{7BVwZDEqxf2y;#bChgbKPsi2T9 zMsyN?14v~P`ynSG4&F8#_X+qkw}3@T3jWXO%6r;*R>Han7RS`7hhe~Srm8bvcne(yn7T9ZtkD$q)6T%4k>7%nneXpLLwgrGi z*Hm}eBa&O|`cp<^^U9ny!+Wfk6-fBL=H&ZzxrC7?{+p=%srn ze|j)vCVdO`vyTWax=Z`8U{{2i@jmO5?x>OeLiVH>65SWNTHFqwx=Qg(zDza%n3g+qHvr-hlO9Gk* zBNlS=paII$Au)C%i}2$RfoVdt{lUMIrei&CPA+5h28-NlnRytkT%sNCO#1Tlr8s4_ zSTbZHUODZRVy!gVw%S^VrTwhTi^XEId`X=jYPj58c=xUiy>ou~dD!q$<_8N6Jwls% zK)F;?9rDg;b_Oi*MAX>l`mzV09l_?H3?v9Rk$X<@5Kv75UJnyOHmw*Pe1a0*)s845vScPG#H<400rWr`sXVn>@)VhBq7T6FiYrKY6CFc z@SpD8vb$2zvxQ>xBntHB^L`^4G=CKn(I6dBx;Z~J=)ADDpct-$hLWoUeVieBRn_sAvv`^Rw8OR^51vlRgDBqOV zzt~W6J!xbKne*Dld&1v|K=1qQVCE`1aGS2}As@jNPL6ZD)=xlKY3r9mXR{o;M3`TA z+=V0Nc$~#{GMuCL<=^i~`;&`7==~1$<_~EyK3;7@X`)I;nFaBlSPhkxBCC2r zCXI~>B@Q;*&2l^W$!{#~hSe5v__QPm7fJy{1(?!8IXkceZ+oJfbFcXq$nK(taU6QW z6hbas)FK|g0qjEJ`o#Gg%J)sLSC85iyhT&K7wXniaL`{USD1|o8CYP+*?EHP<8SnS zR8)<>l1P3_V2@PK6;{T<;ii=>m%JEJ&U@rQh%oB@X%xvP8A?@dInAT$s%zKFT}M3) z{@HFg?FuyXTZ$^MPcrNRF-x^TooELVbZ-iQ)<5u;-jB(|zXE%kijOHaXwLIhwr?AX zO8PH`D0>w7+%7Ny!0lRleIfgY978L6bcy^mT|b@pcPG>>i!h7(2-PC(wlNHOcV5$> z305tfhIU%Ffn>5~=xuj2b1(caS&7y8o{pPtj%S2@9BdCX*$P>-d)46en+OiWZkCIC ziNziabUt=SbGFe3=mRDqTb41{?3UjxWRPU#nU zmA!(Ns3pPW@Lfu)T8}=SS2HiZy&u}T{W4zKTh6mIE3Sxx`X24!00>5HjCiM&o|(c+ zvG&1t@^QR#99|?Fp8m1P(C`$+S0Ogi+V^C#N$w6|G^t>hf}#4ZE#@@~EbfS9nZk0i z&L8Yjg0lLPRwIyHQ5Xti8PL)q+y0?*mvdsqJtCp(Q8VfwwS4KR?Ms@WT;pw?7D_2O zh0gQMf}YOz;@KSSBYXw3^@Tw(Z{}liuu@;7m!g1)KAg{go?Ch&U&c?g>Jb`5TzUG) zcPER8+_R?!_)8O^Qt;EO&sXld%KS?eZozhdk^o)ZWi4H%nlSatJ$&_XZ4lZz++r`#23?Z%{J8*Y zwiC(RM$Rnl06$d5${W73@eW1zUR~SDh zLGx>+-~-o+w8``u#&q>nMD1E>&vNzEPsE?9Q1fZypW`a%T5l}Z4fd?}fD7e6FN!v5 zT!_z`ntTeh*E#WT{Qq%nU|59224{?R>*swP<STyOO3 zqMLexLz-kJU=CYI|JRh2ZlmA$>nmk0S7aP^xf#F-wFmb!{{q*Qh;PoCE_@<};jZA) z{~q+^QbyHc`e6XefO@0Httl7~WLiH7d2Jqn2k%gGy{`(-2 z2x@5eRwJ5}CehJY`ngOMU%$r@lXqVAdFRK^tAF@1%wccli6GBeGltXcDb2~j->?B{ z$MVl2%1mscd~$Iwy|d?^kERS}A`5x~Ck#!)76zp%uRZz|Ro?#**Hm}9%-M0%X zOI)Z;7jIvH*A`h+@$LEK>9#MDi{5*-gch2Fs}YG8TOQTy&+-fVbN-5#Z?#txzV7dQ z0ZM2bbWV)4gb~|@YumAN=+n+qUDiqK)!_|@2E@Z;|B&X2_{2jOk-~)w|7n3+}(%=SY!5CXRDAX!iM%ftz>bG9&1ZCsJA+0FQ8F{nn%0>aPpG z9S@A|;F5{;+XP=8&xM@D%Sta#4m7sM$m7q#*`=-mn(8XEgnWa4hkV^5$lQw`CYLK@ zmD2Rm?*0AdQxiX7X357dgG&;uPcfQ?QatYoCg@d=8YRP>0sBc`oZXB0%w>Q;CQ8Kl z$WJma@lzWkX#-0KS!l)QPJ^%?tXv0JTzh})d0krTX2 zEQhnWg>FxjXheU1`xkoqm-2Uq1ep5Mz`x<_OH%DTu$W*SfL+b;@cI3WQkT3?|6E(| zW4(2*{RV41L-AG7`M!l;s#Qq#dTzsZJIMS-XS>i2oy{`n>9h~@(+?d@91T}qQ_sK1 zX7ilBEs0oQC!UfqVXds5ona(o!1!-Gr_&~IvP%q!;~uScc}u)$PtznZvBgk4`Ev5; zwd}p6(P(GdJq2dU*+27lsXuGB>Vj^+s1<6zO~$*694pWvksOj>{{Bs?(=?K5FWFr4?Z#Y7()PeyyD8F^7qlj4z!kl5V^6(aNV+WL3b*KbZ$sQ@LL?TptN;1T%%)Ql-Km0RRFTppU!<+kmB3322OGBC$FQlEDI}OYOOAjj z-Q3r1wv)Al;xaKVmAny|4PCej`$vqWy+lWsGEH@)ZFvVb*jy0yYf^BnN(D%VP!KFx z)46Y>D(TA{P=#<#0fK`}v@e6?!5=%Mj?3&Mm&l@q8hnvhWE4ykzKMx(J%Y?ne*-RA zvegPTdugh2vJZL^d3N_vO<`y0Ax$u}Kofr;m&u>+6+5rqC9+BBpOzZ7JE-2%>C?QR zB>eIK5dl^M)RSNfcY(yF(f8VF$$eoj%bBe#Z>1?^PV<7}Do#0j1+|?M+A-DGwdO|z zIm+bB*Gwaa7ekG*f>v&N1Y08hE_TroGLR_(CAb0u3t#|!Cj)cgMH20ZM*Q)dg6iI% z|89zC^*FMzqFTA%>(|?U$QzVK^~h5$r9%_1R1m$30bd>Q<@?`K&(q};UP@7H+u8Qb zIg-u(V5$;s%F9!+9SO9o5^dhb&)|;6yydrz1FRO+3JlxMRd#s z-dm!e1(O3s5Yj*?MybY#B=hBkc#LDtoq;u1oSQiaL23y>fQCZ&8nxC1$O<{YnHDYN z>aee_F(E;hay8r6`YO;=Es<>1naQT#_0%OHPp!DGyUOZeIPR1eiDp#`O>#;TB3XqF zEtUq?!7i5WzR?GWPKgcTeLV#}bE9qFXl5mOU?PtH642rTiaYvl6-4wC<@1!8X$T>u z1wQ*o;Fg}2Bs9N<UnViGdN2 z&GPrxCAEKDZ;4Te#N_GG4reZnTGCr=T4a>PhXrHeNxJ-M7bK4yaS-;PV^M;vj?0Dm z-SC`)@fPO+w7@{z6QP1;*E&Q{Bkr5;%^8+SD@o9|Mv+<0on@vx$&hPX#wwp$NJMSuRo~UCQI3r8inF=1k#>if% zdx1}nH1Gl{4?HLHO#S)-AOtuJHQkbh>o+?h(rKRl4$bbc23}Zn0-7G-EO`y#V;RXa zWB+ybz3Sda+*bu) zLnuH^;)k;kWNb+5c#FUa{<>BH2gXfZ%hyn<$y~QfY%0M%f^ls-Zj$SKwc@oDJE%gw zYGDh@4u~$fp6}6K?UeP`U6*&qV+g{@Y>F4%1w3x}ip-&>_cwMvc6vQO9}8Z50KuhK zQ9bk$H%$y|Te`qGnFB^|?O5`!Ylk7jW93S z-CS08c$_=0(&@Hh#n!u$_a{@)WeDN?NypLdPf6xgcLlq@Ew87qvKHTcaJjqEJ63nm z951zSPFQu+@dU5A1I`S%3QJ$&z{(W72IahU8(|I%P zgiTa;tO)E{N`JNaXyUItX~a#Vzsi{4(EbSF+|E{J)A&P*5h5mu)Yu5vnLxc~jVt$O zA@)GPK&&wS1_kTe4J=?$34jGv&sZ{K69SIC;bI^PCPaKdp;>jHhaVX*Z`y?7NU6o_ z^;jmBoee|jZ@I@vBe0z%k)_Kc^McLuMj{T~6Vc&?2m$z(9$2Q^;Qt8Nmv_|dl>T6p ziDYEY&}5eZf+{2RuDlIa5A&o6ZBvxP`JNCkP&2GIKqmof*oe`A6Jig}WhVyLPYv_l ze@Gup`$}cTvKqIR=rVRlM*V;THd>(Jt1=4~vPL$PUGUq}-Zv98=(q>JXAqW@Y`S%U zLE5Wj+UXK-Vd1Su(N*BVriW1SMm%h{QDbp>AZ9!Q0#M@2qGT`0Z|1eK;UL*FGcSG+ zAdtis!fO3GWd5?IYoD0MpEcH5yYW@rcz>8W&-GG-_H*xrM!yFKD~?ybr~^@6)|5(N z8BrrbLG3uMXi&w@Z+z4%cTi^)FSEfgL*w%O)oem%Jr2$e`sYcn_&?wvtO&MV; zK2dELD+!}ovwI&w_bl^ZEIH&2rP{}VKg>*-m3J~drpC&KlL@>}tNWh(%XL_OS7(bf z!9~X2_AdfagU$O?EFV)B9r^sUCtjU@J3_#uzm?&MD7%!l7b(!<2}#O;l8-#%|3c#x zM)sMwq-5DF66EVndKkJQNUX$h@u;Y|35>Fu50rXek6J)=aJKUb)M{{xKiBBnS_Ij`LEy6| zW_nRx+Ks=I-#R z0&Y<6N5aT!62G7(kWiNKE1;T7l ztAZ!+)zC%g)S*(?4;QB2&qw|WMh*&>4Zfy)qP3hFsOoQn_bsFY&TW5n2&Y6pO-qfc zTf;2t`jGj)OTuz${$BpnOhqV?1^)Yk*b7$O)RBWc+AE@b~-%-Mxv7gbo8K$nFAKG(5@_ilWcY8(q zZHj@yG|np&$bTw;oEwmPf(`OUsUY>~-^m|M``Ho%%i}-$8xUV?7n|N7y~i~7d!g~i zh2fJGegInLGe`^J^&HR%M;dPL#n8Wob6~E5DMGPWxBhYpQi4(iz{HzhC4rieYrpww zjyuu$qiC&-P^vw8F5tN4B+Dh?7EkrYa&ScbN#M0k1q-d<^9N%}u1>8a_>C!ihdA)e zxS#82%h~MPgnbH1VfC-IcjjiFogFFpgi@@X8Q}(}3T1!C#m2OWbdITtG|}UF@+!huWWM6bELpLFTIXyISWOo|WYZsEySdd*o-Tt$9*G*?VBUVq2vXh$(^X|jLqtu4V z5T9xf`J0nkq!(<}hLDzXfA*ly`o2@Xn;lilL#HlEg!kTCgXXfr^w^k1BaM$)(V>6N zU33ZCTwYoAk?Vb;Fv(kmr(@VOgOqlRAN}(Q&m&u>mzn2N2sk*l&gp*Ir}6SIZJk zR4>!>6!Iug=LS7x?Oi=eD&~wyU-tk+Iq?8oNH_Ps@xsL83b?vFEqv^M=S^2VlKb@`+ifW{!e9Sj=?6ZMLdb+k1&t)UvqFz$QN0sdwe?in_9j$?${o*V!n| zvrB!!k`qLvY+teo9oa?y@W2MprDiWyA;{PM*zn!ftI5|Un?EF1l7!rOIx($91s71T zk>xb-y|_*j_V$paMghNaf?hZO)u(`(Q()XM1u4^Jt`dlXM|O@ius_?=Z(#X+ z86_udoQ9V{CCuaX&My99Lae){kdrg z`JEv0pf}$)Nh=2V@8)RXHBd*9Bi{VpFeB)yrF@>XIz1FhSz_4! z5kRI%FnG2nkJ%ow;ZgS`cVFh}-VjJZZ-He@YTkp=jF}UB+W;Y7yC}Jf<=uauSym#b z13Xzr>t1f&m^k^$Vfs&Du`$W^#=K4$i;nvn@~5UGG?Qm=qI!gpR=m!7rXGjgy;QMd zRr!@L`$fcPksZn!(|k+&ftezX>7x-M)4#>Mf&4NRh0?{vypnLs_R7q`*nT)F z7v~`$k0{qV$eN91V0|!CYL$)PCz0Gq3Ti7~<~w_|p72V1MtQ|c^G(-sxdEvyC0{z< zq$MnslCLsJA_5X86?Zkm*!m3ydDh=ACsr zJfSM9DdRoK=Eh+9jX)B>q+;9wZ6Oh^H{<(&_1d3zoOkc{1ag8Dz-9r|!_R?BgPV&( znH?VniQ9LC0@PLe515C2X2o}0@v z7_@sTZ)kX{(&m9$oS$r=E1;#PzR#Ml$`fljzUVeI)wN6a7s&JfiS);?s&5s$sYQ1Z zLyr?o?Q2nAi%fSsONpwy;yh_w>;7i>J*>fkC!;F>>7A+~ni9Xq4eIH=4dLnuX2^Fk zmVw2$k{h@_nTy(in_BqMKbI^>NvfFBkiXB8Dlo^Tui6ELDDC}2;|UH@8UNYOZv%zv zEF&id$?bU(pkkres-(TcVnj6D9Oai>dqI7%%Rs|S9WI>l4DB!%WosN^N&9JEd4)hk zaRezx^ZNAK%j0^N7r=4WO-FJf>ZoB}{z7EHdoG~vIV@R>kk z#`zFzr{crvm4PAOnA%0Nji9RIGE zR8DV49LHs(%Lua9m+8bU+wCpw5|cxiK!E^Vq@{D*wCvL8zEjcH&1;FTg2%$wtCmN| z$jxnDgkZFBhDKu4G!!gQ^l}%H-nd!PKfyZ*MwtCnsz=pNJPLh9$zW8iAK7edQ<3q& zqsr;OzTK$)NWFOxw2XA5s#9A9`I6nA6k7HPf{bb{7*Bc5YvoG%xz09&{p0BmNzGt6 zt0CkuR1i4{{>5Y2<$wWYqkrmvg!(ui?9~Wh`d!Y2n%wb%Dmm(z z#XGmroRnku??>iC_c=Nq1!=hgL?Pgc7m$%;E^=?dX|;1*>t&`*)Y=5Ha54Ms_8;j%-a;bgBW#dKuJ#Mz2l56 z28g@_f~snq{p-XX4IC}JnPMO>p}tq8)I?ak2eW2+vIj+*b5j%|3ZUY+)UnF=>jZ{;OHZBm z=H_npbQ3@SX%`=HsnoM@XjQ{GbnX1Oa)WgA+rGz)EcaG2z5R6}W0n~5=5JE8fSlg4ANK_=0H~3zd_~BLA^D!Tknif@$sQuceKfVAtKUhjYq$ zBN{`Ef;j_ls-+xknAM`b!b?zdY^_Qw!=WNz#dOo&8BhI7Qf{-@XyHAOug2kWJ}WFk znl4zVIV%a+jD|z%_iPstZeSQOO2fmJg?QBE{AJ9|e`&kK5a#BQVAXKRh`_o4H`K{k zvMzl$)J3HIMNn58QhX?|e_~Ab@b|8B)r&Tv@={OaKjm1zdypg*$$mZ(xji8fp-lPZ zPe;X~k<;=Qt>+k}V;1b-`n-?PaUbi;4rg|=p6pist+E2421pSvlfV|o4!Qh#3Kcjg z^nRByjl9N7RCRt-I1uX zsKKJ@xQx16&?Jfvewwa>>Qc3BLGP<$O8+eGHq_+jbWAZUT>Zhw&qpvpVNGd)S1_rc zux;NmHq(wi-BHjGX6dKM?d5XWgFeF$uS4H)Rm}i@izbG@+GOt}qxKCCrK55qDx1mZ zdo+@`)o&m2Y+pF3zn6U8GOOgBd9_Iq42o2SIklo*;HxMNu0uqh+1t-6O=5b@!C zW`zuWB&wCKZD}WMWheb5UxzG@1lAVQfPBj^HwT~#_Unm`2MBOB+J!UcFiM8r1OY&d z`2F?#vdm2jEBQ~{$9xd^Z$P|Ub@c#1593$zPr*&%ldlpUt+0=X&oN4%nz}7;wI_Mp zyW{4opoq4a*-^u&4^f6hbMa_(jdUQ9kGHHZ_ULk^z^|wO`pGL0pJj9q9S}>zTbe@+ zT#=-;lzgzV5XghvSyZy^!Drn+pRuB905;F}VhQ`dae_#HTQ44&Dhet{PV{3g`_F0q zO`taAlg%yjtHcCnDm98*zAGN`C%bB@(;f)7o_&PTxCi2^OP`*V!$SjNfZ zsP`)avsYcnLulz+11m|VQkBZgO2hFJUfp6n8XUdx>AF)&LmiArd8&nC0I-!VIaZYZ zuz(HH5=lwQHQk47QNAF1nW&4=p+#5(8n>UXc19(<*ImI&(?fdqqGNV6fBa>0YzzH` z`AANm14h0o8glCHOm!59o{}>-aE{i43V|IvY&THJzB7u0#L-yaUvGRs88Ubu z{#JmaKf;#x$v0V?tH0jRh7@Z#Z5Ve(#(yVe-ioNw0@koW0ke^QQEpzJQz4)df;b`v zNNW7X$kl&tdvQRtALqL2%=q6;L>v{}W^jx(j*had|MT|i8YwZ#_?)OJ9^zq!Fw1vo z!TQ|8(^4{8)fPr2&5Wdfuz~_-9IzG<(?=CV`7UpIZhG7-)AFUR?-5_C``$vOUi`P| zK(;q1seBZM zRaGh)a7omPqOnP-IE@FOkXFQP;fEwP<0%<(TgRAj)QhC}()P)AwOmI_iA-^04QAU_e^mRb${2r@3|jdn4hS z5|Ml_vV%X3@a;!OD9Bo~@bTG#Gh7oSn@r?$^3!#|>nb9R(b7}Wic6CPi`tUhP#{p$@dRs1gXvXNc~lYi|>GCT(5G8zF_lI<2?k3PCk!*;()9c z0dXyKaG~=15d?_&c=dNK1S~o=q~mts&99AR&I2n8Mv8Q_KKiqmU*dduoH7(_F>whkDn>gr={{Zi4`9S3H+t(x{Egmy_ZQvd{}* z$fSR6uiTr?$r;QOcnZ}O@Q%pe32!0o@ow$j-D2>iP#`aYWNIwHaQcGvIeE{2QRTAr zX^T-#n+4d}qKenEcJQFvd@-P3*LxHCy$@k)Q-FW*aOWaqV3Rq-os)~POq?pZtLf;F z!W0%k9?=dBfori>U1cDIvv#%r7M4Z)Gp4Xhn8c_Eiqw9Wmz2!r&L>`Eo?tF=EO@h* zC`)QI4c6*B4|lJYrv2tZ&r0q`9`pfQ%|%hUMG|s)s@HLMiEF{W`GYpxEs`%N?B&%o>Goj7{;qllzZxDS% zD2D?mvm*H{5!uLrJnCFIZmH<#8ft$&2kAQ#5&{Dm`QiBk%IKAm^f3ZZ%ZIhBPe0e9 z6(|A9jdG2BJnHJjYOG$JU7E^v)c#!SSPsyTj zG5M2ODF7s~*NJkwtBSlk{8c2gWS(qpW()i=dwhx`ZGo%qnVgy}DB%Vsf)wJ*AJjJt|!#d#_=+PFa*pX;uFrh?0yfo@D}# zZ+zMNl_ZGFcVX!vfz*V7zyL6cW~yDKZJ8YVt7s}M-`rx*>8>prZ-EzBNL0?fQj_RI z^G;T-nD#9a2Tx6iFD(4E$w$U+d)RE?f+7TS7|3{O;Ct_Ky7K~T%>q#pH>D*|pP7$t zHKbUxMMoUGYCAatdkhS{tWO~+ZVs=3EBLG6@D$SZ-(xPF8n3O&_fh}2Tu$~2#{7j) zAuV`a2GKq!O(MQgo50F{9axx-Qo2!4y#-afXw`h#3Ydsg7?Ib-MsEhS_m1 zU;T~yQ?s$zTE}Ay1TOTB(+N_+V<7-50X^5R@eR;b9D(F+y3&!%_l3rS7|fSq8R=yluH@1tr!QRNnZze1EF&<*^Al@Lsg{nBE%op|AEMl2J-5q%xNz-q)457YmE6>lHH^*LU2nP? zJC(KSzbk7XWSzgu*u1s(v`C`s?0|qgM`ktudO1LV{8&(img%)S1IJ@2lFm~iZ3>9< zFCkZ+nytM22|3ccl;Nyf>M<*n;nC7C{JI;l3O@ZNh;Cm3FTn%XR`v7|K%=S@fB5-g zb#o6o0Pxz>Zl3}|z+Xx3$bpFkxM8&h0O-9BFvb3m=l)TF=nu;mYLaQz*qhqSf;7v- zG>=|GT^(-Plewx~rEKgmPpV^(^l?Ge5r2Rl1EGmcbzaOL_mBD{r%WP0cO1vq<~oju zI+mZqBBZ*(e4L%}Ru8N^8qVdl-;Q3**!Am`>=!B8{l!K_eRU*BeRbF#v2zXVWV~fl z4jTiX0G^Ds;ha=@hTB|K3B)=yc56TV{kMPs8yKZ&#O}skt(MD*l|pGgprV4OK>Urk z=>jkannUr7=LZqRSmQ1UVj~>&vQ37pa#j0RcUK6T&n3F}jjK{uu?V|!0TJ?Qi|%#p zt9$mNaTyLmhX2O9mZs5{ztS_Y5kzn7JR8yHvQ{cW7;8Fo%68Ulb@1Xnw1q^}-sYTv z)w5d`YAg@z^M5OXG;tiTHzmGa@tN42yXC$DV~yKBr*bg3ynifd03bz~C7&Gsep3LR zb$%kxV6Ly#B%p@0B^6!+>4MB_11Gav0540Rj!fD3V96(X3hu4glt09mRD2~OQae5c zeLvY)AB-_rLa0t}Z|i{xWD_(9FZ0*CUpp|yq!NQPBXPbUr@JmjSIP?-2-RDgPfe$& z)dZlZbP-f5I-MW#xlXinLAEAZTR>fM{ko=%yh7;u)Yho^h3j`xg@Ob0!)*+vdd>}R zLD-3*7mTR=qR?U*(R+=zx&pBhyZUd4wlRH+_37nXRw@P4ZO2@}kw2^<9)d!Jmi4Ul zg*zSy50`j)h3ToI%FG7|Q#gy3h%&Ssar&v3%VYKRc(VEZ{Jux+)&0X6yC#c+YAcTy zRMYCit6}KlWFf|Dox;1F8Q1FMjR4 zi84cyiYTM3OIcAUvUikmv&p!&h>$XqmAx*q_Y9F_UR*nSUF#Z`%kOnReSd$~U*7Ng zem!63dCucVl6>?G+G(95*e2U%U>?B6bpatU_`Qizeo$r0{5$s5RX~v)1Q7h|J0IRnvU|0g8UC9+bLij# zS!%@ZHs~gMp5SmZQ;30xN`_dQW*f6%W!@B=zARnU?@hih-84w<^4Pj+u?cLe@ZPY9 zh^raOJvzJP&8Pa6p$kuEGS&vPK<#&Y)faxm3C4QwH^6-OqoT}+ax;u>*Q)9n5p4!V zlD|05@XLzE3YH2bZV%s-lApt_Jwh1fkrh0*Gsq{NM|+DZ!xc0XE}#CoI}lPF*53}a zdNpZ}&Fqu?6(g1vr15jf+7ENjdL3D3vUVzzAmZldXCxYoL=i8Q?oNaB&- zkCxlw3>c~gG=WNQjNKP8YoTdSE8EDGKnsR(kRtx*0sMa!n3bQOub+r$)wx^~M&c=( zkEej5w^tYZbsC)HpPT0)p#tIS!09x6yz5Uo`h!p!y2?vFK}1)XS?|6fb~(nI$P#>f zwvF?^=8uHd4hi(*>djX1F1Y5c97Lg+)FnS7ErJejqV8fn^c95Bc(v2~xA6T(t#Yh8 zMu33;L2Cb#CKBa#A2 zdUDOp)RXDa?y;H)>^NfICH_ZzmxnR3E@a~Zwb#sslL+MbUlX!ZXa@$0Y&ngpPJUz; zr!--Q8le7WCERcY#(wof3(w2`t}gNR*IWa>SMQjq8ZUhpx3l~~f8Plg_l>zwjz0Qv zGF84$ez*tDun6~YOov>6^o}fN0^b_^~Yf()1uSB9vfuh6^zSn2wsmVyR8V)SZjy|L(=!KuYA6m3Y7%;W@WHifcVTt z;C&IV!Kqv6vLqxxlSxYoB{u~Vy@v2#sU7JbyG6Q1UBr9nmKX}}Q&7T?-qP`%psfn} zRfUlFM6nLs2Y*s(7FUllTICT!Y&swre#d&kIRZZi0*N|~6_gZMsE}`! z>z}3%Wwr3+TN@GOa~oYhI>3#{Ve67Yii@s}?0=6s{*sj&kBq4 zkgY*woZ9w8g>-GnBZ}kA;8Ay-kQI!de|#!I>>Hgy7RGl~k*I&vbnd z-&UFKFPF4FR?G59v`FVqTxKU5}AE*H`O)z^u=NHOzYB?V89yocUBuLRP#O2 zo@)Pnrvh6^4w~Eu-f^$lQoeOdLgNH}+D^(PtpR>yLC5C9^^?_;I&z!4W_oq~u6JW# zeFHKH8($sZ+p4Fq$Rbw*-ZXlR?%=IPBFMw7w{9M!BT(^uce2?4zEcR(? z1OO~?`+u;CUmVQpPSWR+Ii~Wyz%^^ME1pC`je|M~MydgGg$ln{p24-mHhq$GoN0I0 z9z}!JfM;NLQv18uq#+^Ach7e6yY)?^u3(zNhgraBEiRj>cV`FIl{-oDBlF~QiD2ft z0*WTh2hA(OZx`Bn-3J!&TWNCc&)ef;NJq{}Z)UnBXaIisfz zHj}DYr|RbHhUWgpP^NN5o?HSexO5CM-Q)UU@UDS8dTFN|pqOi_u0>CG>z}w?%0_6$@HO;uVs9>Jm z0G~hATYSYHx*k0Go=4NS*UG!OvcT0X@%=M>L!fC4@java9@X6wD=!*bNOb8^Z4J+U zY2C6N7IXy%qrgg16Rb2;!V~vGAuaJ>LP)vIeMia(>vj*>0*Isu@0Yevo}lO+e@9S| zT1BI5F0}kLk?}RTJl)FGLZzm|5(6a9N$d}$F@9gvX^QAxr{L6On~FGM^Pj^`>amqJ zX@1?F1@BBw$9twDCoXDYTL~2`6^q%330;iX$CX(}y;}xVt74iRi>x6PV%CHDvO z7LsT(O9I8R@(a<}N_Z8G?I=~mgJ{DSUK=7;5s5_EyD4wn>Iha4n=DY~K#pg<#zv{N zT1iKSrF_R39Ph;yKiKYo?J2eJN?&3+7A*a2et-S>h-)1f36F-TL>gQDa(GNwGJX+5 z7q-S3G!w*MYl*BDHNa3Fa_>ho(rf#@pc#gHdGAlwnK1|@kc0|8;voV&5DxaHt%44BZt(r4%i>NU}cbfUXSD$Am zcp|-mYvIi}fkU_fAbFb1~#YC}3{(G4HEKX8l9LhL1>9N@ON zMvOg7`W4E{xcI!~c2l!#Io6giFi2mNocM}ERw#l&3Nu~RU-f%bf4rAqmC{gF9@Xq^ z=o*J~_pNAqK`?&chV{dGrpidLzw{MeDfq>c%bXk;^QIKSFYw;JNN>J3K|g_7%QW$p zK@bqHd;4lJAS#|Ie{uF1KuJ}>MrHnQ{B5ImYIWY2burO*ICFmxynyTlh=>HZT-~`+ z4LAm^d_;~fpRon#?SSc3N|2o}x$P;zY0#Z+_W*9;>Z8pQTG(Xed$mq{;b{RTmQGgJ zEopq96?nug>+KeFO48o!wZHM!{N-4&LGd9elp`ye$DE50JMVY1N@}F)y|}bF5;1K$ zoz|;>>3pZ~@3rUG3c6I`nESc5+HbTj+)smXaEz=9!-5M}L-~0d9Nepx`Gu)&{&thD z#cBg}hE<6Dn(}}Z>HG^P;&Cw>Z^~1v6%KYd86goS@Fogm@c5|tDov4DaNbJEg*Z#) za`SRN!Yr$psT}Kpn{t+U4!6&(O0DtYN=&iTJ6Ti|r`%&$ycRB)BXdusYk(|wZ>*Ru zmJqx+#+Hzf834Kiy`@x_vcc810x7KX9mI`SFtx&4ld`?0h4@Wp5T)TF!N4;TdQYK% zE9CNm;woUImb|TwpgH1fXhFJg9`=50saZ5pTKA!2=48UJAi?6y#&R zUVOzDyB-4ab;5xr@zyVC$rTu1AVTAx~B5B!rtLe~vPnK(hs z{l4lV?u@guJlg;KBy2;x@yqGK+7tL`vnG&!DM0*`_S&U6iY5SM`p6UapV~%F?04t% zX#nGdU}ogg$@P%ZG}8;=M}pZ=>zrxpIs|6J<8oig^G;c_J{O3sGJF4}M% z^`ylF^U0h&cJ!x->&Uo6&jC8(j)a<7Q=6`wX0@`3zxH6w+9mo#UM-K0)xFn|I!}q- zJHJ_8b+R-OiDO-QG3YHq?0+FE+xd!hcs`8gbc}By0nkHC@&WD(_;=Pm-q_S~37XQ? zuXi)pkw(}9`&Uq4nfXM83Vtt6L*F;4Ct>%qa#HQ_^38eD%Rt?%t6!3JVtXdft=QW;^j7Q2)U1G1TvtPZkl6Y6viLb(Z8 zjLwGnP4Qoh2-XzFS#Q3G+Yeg`YX{S84oH)_PD4LRm;*e8sTY~a(7@&Y-3cUq)m{=N ze0K5X@N)l_M7#FDY<$<|%Gybts;TUgIHip26KmL@hz&Ad}DKuGT54Y?f4(A#I6YL1>9s7e{Rw<9l zv2U6kl90;R{oD!1sarj6K%+8lin02`jvkcv7^C)17PltJjuc2L>$O_L+yJ(9q}JKW z^qq=brXujQrbv5ok=^h)nx2URi;X$Ci}MCSemad674r)4TiADb&vvzP3a$bk7ZGa=Sn^mbWPK0(lAo zJe^rQ+e_2)sXTPj)mRT#6$)9-!XN2z50kKp+B5BgkGXZ((nifd-SQG|0qkVmYi(s^ zy)Sg*?-y(J59ci#Y~U=#YnuUro2%&?S4*2wS02lYF_)bT6&@_FW}12ZI&)ttG3&6B zn6kOjRBYGe<mMS5p*L@<<{(d@Kn_=}mkBnwDa|Ri1>=rrR zoh@~M>!Z%Att*VH?JZGAX7P!`as~v#rO2&%a14o!u;{P zjpABgevsokTEeJvWmsMBx+^A;6m^p1mG4$RH1^^trromeJ*G1ENoNkg05=dG4;Cht zQ^6ceMD*Xsqw5x}nmfOWK!+66PIfxzcE#f2b|!SQ*|(($UjpI=8<}=6q38Bg9mU@9 zAqs5}OGQPdy<}?KdQk_CID;skLkDV3sj~E+Ct%&atMY{XQGnPK-ABCLh2~Q|Wv!!C z_qhU?%5Sm=eoU8r>paWwa`O=7mCn1#VvkeFS@40|YsfB%)Lcl0X98te{dV zrHxwxfYn?;NZs*d2Sq0TO&uS<1{?_;+;CXTOea^)d5#(&5mwZ0Q;wb-Low%hry=}8 zN?L3a2I5W4R)ktM-c~o)M;_27=G}C3g<&O38IpM8)~eNZ<*eLiiXoU zWo9GH{vr_ErdY~Lw_3ApG&F7*u|h#}*6kjIsu|^Pl2}8}5TcQu`S9vuw+bu9v$(UFb1|K1n$iMb$b9R@SIi1 z4r%k{d7>2r9+LQi&Eg=)nsF(Pv>RHq2GITQJ~{U+@VoXO*qRRa6Pny2>qM84(ZrF& z{>$kSN!cY{94K$rvrfg8$(r!&QiqMt^@n%+EKT)Xx%IeDERQZ=-OS{S?D%D?^BwNh zYM39NS2ga}mLH8)ErT*V#kL}YslNJb#Jh=O-jsTW@taO@Jz3ms$0lE_nB4oN{Vz$- z`w9{{piH)Q+xLoL3tVUC`|9dzS}5kvLptYxa^@S)p1q@9n?N%QDbpK}^H$mP8^#2j zhWC+vJMwLM*zXlrX^y3I|% zP;8`XIC6KKZ?1X4uid6Yr#EO-2^Z4sa(;GF`{r*mpr5fGOu42uSxtALx}(@tz@%mo zk8dX`uVk>MOpgiFxil-N`Y2dZI zihnJ6F0^IfKDA-rZ*o@*-rE=5AJR>b_%^14`r;&hY-gbPN}4REk>qNAkrRwBznbAG z+{mTU3Nk@)8mj6nOe5M;3C7E3Ksk`%t)a$jPlvrncw-QmpervdTeq$2qcGU{`kG~0 zHm;=kyk6*}xChD}CV@)P8P&2CdQ%kc!75_P!S4a~-~9>HL6KyFR`cSKSOUUJg>M9{ zJ80tO(q8q(#kO>KTm=x(vuSbtGGK=KD#={^I2NY3MRiI%^4wP$m~DvGrh)N(q-x`) z+XW8x8W00G!f)##jAtCL(ipvkmQc+ahx*~l_od zl>QC`g*a@w1n+pLYHwEJ&s*tfEky$y2=4XCWk$t1avh}jcT5;;N%E-f<9SPo12}E) z$l3rwhrbyYQEr{Ld$oGMWcjT()csb*evxaiX`a8r=GyS4$UL}c_uhb#e1hrIRF3FH zlKB?m-mIJMIP(UCpCC{GWI-c?TfaC`D^14htsNFHX&!=MF$??(LHiubN7|VR9&?7T zg+LZ}!;Dseuz^S81<*a!P&JP7dEb-5L*i(|K)cf(c|%dH%))1%-GH`0Q03kA$QFcv zyaGTrzGCyUwAbEC&?M39U_VFb7pAoiSQp8l+g_1L;7kpiB{^9tG2X;CgHlp6X8pPQ zkLbM|XPbj19LUE-@7axnqbq375`g3E$1G?lzkHU8o@q(}^=V{2N5H@x0W1N_vGt)R zY~V4@KZt_Ddd-fW5&3oC8A_!VF2f_YhcsW41ar*51g}92sdeCp~KC; zX+P8={S~W^BF`|h%2=7VLlsWIv!1vat=bXI8b8` z*7`A&fxS+%!#V2e0Gn_VbfJG4${Uy)jYLX0CDR<2;LB(MZ!ANFb{5SLS2uw&z>SsT z@Eb7V-BaMLoAnCWC8(Z&lpBFj@5QGLg?^AD`{}{kt74!R5L^kajTwmpH98qk0@E%i z$zfRU(X(p9+P~4#Nh2f(;Jm?~*!c5bD)V%c@EDup_hDM?b=|Vtj9gdUjxJGpsFYnB^VVab#0LMQRiQ}of-Os#f%1ktH>ey;DM8@ zDi3{#Om;uGcl-C;wDOe?;WO>;>UZdI--jE`c;AO*B~`oL*?%E$;e8+AGA)hFN)PYC zzq%<(*3mbVneW(d4zK{`a0USpb~x2@#dOWk;AldK%SL9Q2M;vDw#at*Erw zlKtJ`R{9S4jHfM_mhXXK;futUW6S|e5e!xHkeA>sc3-C1b8ia@y=U1;{^BoStOw!; zIFBnkL!noy%-a;XoMnPRk50Fp5j797PK^?tVCV2R-~kE*y6}kS7r6Ep1WO} zAe}L2;Y@}(UWIJ->rIiK0`QTtp;Xz%Bv8oa-M@SU%>?kWnE*s37(!+7LjS_$W-%T(C3VBvzy(or-P3l8f zq5%$kkDR~3@wUuc@U6N3!qWpFQaVM53r#6LaRUju4`Vg>?FUy~ed1`nNqyrl{)IA& zj-;N^jrD36N@_12bVQq^KYj5rHRpp{FJ(6wKzXAImnyW05K0(a)*pA{ zv&yomCf@N^gJuw>>J|4t_w`=O5w3Kcm8*{nXuBl%k;voHD}5zuC1)v}f@h(i)=?Ei zVGj=nmT3@+dG?69FDxVf|82={{>a#Wd_x~l?4uk;hLcboC6X3Q+ey9CPF~~D_6f5I zW2C6_*iCk|*&}0fb@cj*ig%PrkZ=ne?SfIN`CKy*exRs7pEpyl12~B)QH1%W1&MoQYhr%cc`@T+pXXrcEvArT~- z9RV0n1om(pm=QkSp*{-wXxxKY3;>{vx7qe4y$QG3n@+cVD9HCz1F<2eq$xClCiA*Q zS|Fthc=*D;X3$9>>&($xGM_I0PEBbMF>4NjNkI7vPv6%Ec$4z75^n%1g6&LW-2vDO z*K)N*5VZBR14{cTo}#9u1a$&-Y|#7jyVL#IC+5#m_0U|74Z8Ca1kfl4bG&8#qP+nP7ivP0Xh z0zKyO0g%@M06Vf7Ykhyhg`h2GUvgdnKF4_6NgJ+B|ef&&%(dTY|%4FP%YkN0RF_=2i> z0x)uG;=wfu6fNgi_Rr{AGf`O61}82!S zPorY?O0<^y`$z{{2ip!z9qe>{u{L`A&SC{ci)&@P8vLkFMP3r_ujltqENNpQG3v+_ zNkKV0DojpnjwxxYh$5YgekEk$UaM+29fQ=cx0iDNqHr{`C&r?(au45qz%Lg6$Q-VZ#Rm()yqe!x3Y{SjUNfGXU(Fih{&~w z@LkiRg*?$Kzf=3xE$9aX6zV{|{A9%|y3h4xA_3?(E)aw^xWow>Rc~s%mdGz4h4@lnAc-hkHYBJXt`rgZGTY_Yr)eiTqeK;6oL3?OHh|2^*qB&m16iXZWI5u# zL|%)8Y)=Fdof_yClI?@~I{74HfLP%}-5*yq(N_%^3A1E-K_v{7&h!!i!z#On{V6pW zK;sDnT~XH#&#DTZ(t!f#P7%l_!_pNs5`7gOEe@Ss^5esPNweW3(X2IaUha`TG$cmH z6RLWG6(R^|{IuW4g5<~Rb1G{QRZk{-?o-*HBO_ z{$95t^WK0q9JzngKx@OSSF!2s^<+p-q{WXqCH~Pf=#9vMu#r&S{WPELUGf?&-P=K_ zftwrC4Xm23_yS=X4k{BR=g0E09u z4^{m6DRXhQ3MsMF>IJeLG)=o*DVs6WnAKP5@TZ^62);}EX3(4CG`H;kh+K#K$_o;r43>U<~TNLeCzC(@s|kA z)%csgRuL>BP7JN+Ng_;{YLV=cZz^f?1NoI(#izJG9_|)Zc^FQ zJ~N~Y+5Qyo<*1Q;fbzZ=%_B&DiMX%Sb1TeNgh1?CfsFL1dcu89p&`7BTrKK~xKnO{ zUa8#YQqBi5Yq5<@Yn|`^;)OagoEvDn`;|Qfm#psr^uRGN%CZT3v$WbOgh2`ONdh3&T91QYlPHkcQ=f%CxN`p8ZtfcZ z*J!L(InD+GmUic9Gv;9EbAf**Sh z=ia^tE*SRbVDTRWO5Hp*1P#9P(|w!!63s3tT+7uRg1zj{bLZ_oEekjY&=(;3p!mPL z#RCoP(C-5-6eho#nKN#}35+g!(M_|Pbd%UxZ~s5aw5VR2PiZz>v5a4AkMn>*Ylql)2m5s*s53h6jt;B9J_ouDwhs;0_P|L?tjk}DcYi3Q9P?teS&iChdXSz zyCWvbzI5MJaR9v7uAzi62}av5$3-{JB1WnT{5!;73&EawZ-1kHTfW!OQq4-eNz_M# z8i8^0%-o4T1>*G}$a_6p8_vrDBi3#u8kA4(dgqhilQ=K<&d*QTUM$Wyb(X&ROU4$1!~yj|sN-ffn(*Q(DGI+U@lK z_86;kxatb5Ly8i{f&uAsFJ!zI}@=BclsLGC__hA&kpK zn$3RItp}^{-RP8Mg+0x`^VNCKVIZK-cS`0>MARo( z?ks91q4045i^owO%mp9qXOR4+3hW0uHOr?_SeM(L8c7Mig_z7Ny{4E0FH@^KwRrN8* zL_zJZ=_ETh-;t22dVQQzD{;8=Py9a%IN~xg>lt%==0Dnf$!&7etPXouLU9BmIpmUz z8+3BQl*4dlccV5qjMt1$*0@_s)3?`|PzktRTNEPivs@C;tC+#Hk`$rb@6ZX6M?qX4 z{gL>-qS7_F_v{Y4^IbYPx45N!ZUyJC_>jFRE9zterLiz!gUVPb$`daU_(aL`&duz% zlXaU1y(*7uJHbkLfd0-Dd^tJ#V8#bs(OddF@2Q4XARB304c@<3JC_&neWcVZrj&}j zgVpqH;Am13;|xf5Y!0x~j!IwQ6b~eMoIw<HHu1&G#3MVPHLoq zjb57H(U`HP+{z95N0i!|lnBA3EN8zge~Iry@m*s{tNu7uOP)_w6A7?xOmK-sx%h|W zD$&v~ujx3?k_{y#hB3R@Y`b40>VN7;LkaIwU7G{eSFa0TkgcFZx>M6X0q0sKl5n5Hj$B6gk)||u<8|AtfT-Lka;yhBzQmk$E)Ofidw}$AD&JeA;}DJ33T9) za7ao-AJZ=khWPn^>ZSeL0=Xp&uBsiKCEPphG#67qo!_hS!mhnaazc{b2KjCUaBU)* z%>v(Q(O9y%2SGchdwnAM1yuH-X|g^;;2`dD=d9+e1;Gh8hl@tOs&0U|zAF@WG9W*k zTveHySvGp{R^h$=?k^eW`V_*nG-(Qkl;TEtW~>EWdPCAcc%S;1(7}A ziH6>eIshElSMFkdJ_69{1-aHRDd3Sg^9ha*r2+t+JwN*kD{=SPW?a&}7Z8h6uopQ= zn;Yke*M4DqTH1U?QT}X)2<18DHXK#Fw>|imMtl9gJS&eAAvy$GtkP&Tt}1K7Z`GwM zdhrfqC+B#XU~p}C6Nv3y92wI`%g`nY8_!N`MxwB_%Vz99?WJGoUCdNZD^pStzo)@J zQ>k%sb=M}^7Uho0CuQPSmOVc6h_mZprghL?_(FP1$A0x4B4zybtg^X>;}a)(=7~tY z%88Yb>yT8@oZO5l$PSQehYNeK^F(C`gy;#88_-K9Dbt}y@|`kQNxUMVc9i(k*Jp$2 zhL*0tDrgU=>gLqRR%I}3@@DxQUiK8Iwy5L`l31!7;e>Rb?Gxf`VO9ROQI=oi;z0Lw zKZg8!OY*HwOc>>}lZ5(kSKZQ2-f?V5`jxLqoowMA#|VI;HkrYgJOusn5T*)Y=mf>k z_Iw!kLIDmm(5pF_K*c~)Zz{zc$mI==6!`CAfzmSsH2L4z3n<5Kb5M76QN)2eV^bL(@aYQI#Q)2AtMIE$v!qGwSE_!GX;xxd+(L|4 z5t=K#voV`h7!kg}l43vGGjdxa?imlxgL?=#%n7puJL;So06G(jB&aj!KSj?kTgW_` zc9N?%f?g-8$}o@oq29v+?r!uvB5|NnZ0EVjq%uqYUzD;;^Q$*5InqmqOi`5_9(QZspBY35L>OTS(zt^ld|8-N6cP~0G%Dm19Lq&d-j00PIZ zK0aM8JGb*)(|z}D2wdDT;qGk(j-(;*MePn@A%t0+0&miNr{_o8(+0Q0|ALrUI}<@8 zh*|bO;+F&U%2ypfhK6I?~soBxkbs2~^$R zrnieJkcAr_kGAg-2L6FI1K!<;q{tMRu^D~8)`=oueq?V0kylE@SBo`+F*Jg;a1$7b z-+io?Qkh~O7l7nb36w{kVt-yw->Xvj*m%LKW$=u!1up0)x_Za5Gv;cxFofk+V;%#9 z{?YxoUpvWNXtL995tjfVaqGInc$tOl1(!l)!cDyygLljQrGL#GYM0aD5>g6RrV{l` zy+%*_>q<1VxPi^H&z+#T8Nav1KUgOM^k2|-dxSbWb0w(Y&OM(bf5e1nPE+Hb9Gbv> z@-_qu1tA#xjr{k~&6fI*$6&|4zt`6>rKxGpSH*WDg`0ruO%v3q8Eh||es+jc7E}}X zMSU*Wb&1Ut5`m}Ayk75H-UTtZ*lzE%YSJ0wF%<^b2CRD|CX1*h;A@oda|{G(?o5EB!HYD%m;gh(pW{bl;+8@%MYH{UfA8YifSy8TnxBTI_mBtQ8XQIE3)(hS} zdxOte3s@P|G|LlA)PT)rBTd9OT4?6{21q5I@Fj`cBF5j*wD)YbaTL<-f^^6ckIjb&e->3{5iKakpI;~lS z&4nvzGMBXsIy?w_K@7NJm**YTPSbSdjk$Q^oX6MBqmtwrj-y(GS-Y>uyuEXJ1vRI# zPMA+uTT@%g_Upg27I?A>B=8>%--2c|#pZb*V79z3hQ~ZB-n$-PB<5po`s>LF?~T*N zek!cCW(|b#W%X})`$>F5DdmF@yGi94S|$ew$nS<4Tn z5=tk#4>KhDUUCg5yy9P(uh~=?n+UgXO^I}?ZX#dJ7Rl%_!-%sLx5_uUg zryrR+ztN(~O`>k*hP?X8sF@bT541%N|7}1KuT}>5@+Or7;XU%c6PZwUA&vZJOS5nfvKszXJawA~+2Oz2_>6y5*6jdl}f{NEPGy`)Tx1UtNPdKpqj1?=$pWXQi z*gooLQ;)11b=>=n4FzGkVs%m`Gw{Gn<2gO{)??}t-i4eE9MWVwhAw6jD;V6r! z(MTTRIHW_(bK-$IJZzYGsH`f;L~e=O#z< zg`X77vK zEN-$gFX{c--l<*Otr~8E?33Ycl8KlTmkq{j-~l3gNZB?L;}i$3>iKobb} zL}5b#&;>d_Clvh86cI?#D6deKar6+zpFNRIWQ>zGx)`7nxL>qlk?Z_p!HFSj`P|zO z(oC)76 z1kNGL5zBn;6jd12TDA3x&)5Cgh%)KMNlN$ksMqTo1k*unGSN?43*ndmJ8#2jJ)}%7 z7IC^=XcbnWcr22k{HH^_kmnGz8LP+gWU&1Ld&7`{D4A;<*>hlz^%?|y72`r4?6i|b zh5~vxCOo$btT$gg;O60`?|4wY!F%+iA!eT-nk2@Iz9g8;e>?s{^u?`|Bi6PR`q#AG zVAG>R{*z3R;}SE^AKj)fAy$t|cAP?eNityxX8qx{H7Tv70fD48@Q{3)pA! zpMR>N$?{<3D8Ena=>G^Sh?-km5C(2I_HF9+)Nl^2IeR);r-l zGd^&APAWp38+ia%@)U#%nanQcJ5>Ihv};mO6)|zJ+Ga$*K++wt_j=}!W{!t4B9#gO zC-~EboT@*y81xAZGzwL>U$NOh-N3v!3K&7gEl|^}b0M(vh=g%N&;FgXKms0Vt$ngc z)QJuMpfQe3MKtG|wHU;!Tx>8hPhdN8^?TeoT3qT7fxXCt8v9f)E`-%&G zC4BJ15|msglZWUk;1~aZ6H@k!rJDIcn*qqyzu*imMt!$dcam*{DG0WEvOUKr`0Xhu74pD*KR5eczITy9-Qx8&U|kFpQ+ZQrSP1A*liCze9; zo19MR+D}Qo&H{k;eR{5NB|!rM`dDCg`8$yF0no1gbaT^LjtVutvCxH}i0CJP`wJ7k zsR-OiMKkE751#(Y+LnZmx5K!+!{aLek|U3TN#LEs1yI0N%eyB<3w%J=Mmg^kaT;F_ z8FV^qpi&Ve-WzA15g|6nqxEtgBR|3wx?J z!N`MC9r*F_Pj}2Iit!yE+=M3e%?)!QHQg&HQGjEo^Ky;Tbo>arLt$-#E1Xja`105= zKCfhVa9~=dIW1jn$kM=3wcqu~r|nKmDIxjz@BNk#uXNlHrwsXkrstJ>5{ugqv_7#+ zFbNU)4SEeNhM+$o5%k<|11Hysb3gtia`6QA`Gan5|FT|jVEEi*F)GxtjUk40zPvV4 zE*x+W!V>(YeLJj^XH22e?`Zl+BOIT4ua;k(y&#HNg@1twGShF;@IUBzGkyaicwHvK z!b;S3=p~+L_wY;?OyIVl7V)YM7}Dy2|IBu8vA`D&JqL%YT8ZnE zxwZF~k)q{P(o`Q;wVd0#+72dY=o|Wy#@$IC-4z8Ku5)%KCVO2Q6-J$#bp#6287`rr ziXi$D)D zA^*Gbva&DVQmDAdIVys%4zAT~u6w>?!mO^D1hFEqs^%LTld6WUK2p3$4i-+blqvDZmUV-(LS zifz169!6O&Kh;<7-|OQ-I1iQ51)M1;E|5G*XAH4MQH4g8RdaT~c;^(@cTSZbVB=>E z(I#i%3$kw$hAh%I>ShWM?-DQF=z$)`@gD1}4do>N(j^!Gz8~c+lzdyKNO%ue6p1QO z+#~=Y+RE2$Va^8^uVe+8LTe*vj(zgcS!VcPU=v=#hctM*DjOVa@wf!$c~ zjUq3L6MBjQ`ywz9|5Pd+(XH! zKS3>7!t22l5AY5s3_S)=9Z1F+wetKxh&m<&)Zzar?!zR;V)4q2N(UW+OsB)ii=7e-$>pk zl#NP`fjX7rZ$$=BW_zoiEX!HU=a-)wZbmrw_3co)*GIL zIyBfI7@ozOMlq%kEI3F|+4+BNlo(!rS;-q_!u4D&)Tuixr@c?4rL!#&%A8b`Aj z=B*Bbj5PS6LCmeED!@szIKb&S^}CZJE}zG1m-TVyeb?o($#Sz6zvBGP=H6|^)RbBA zr@uC0{yt5U`N8LAcF;SF(npvjDi83 zHA|e)&&%TbMdVSU z7`Ym#lPK8h@=UaI5ZvWP2t@^Lw3Rqk$ZGUwSS|<8xXT#bH=)Bi+4k={$)3To-D}_V ziyPW*J65EX#da-+mr_Y6n)o}nsTkblCmFea)1I7lhnH08dXM078Q8ja@KF`*chjM2 z$l~hD>;oP+;~i0^yyi?YuNXdTgmJ$c2I}y{=SzWwcltS>uWDDXq@y=uT?tZ1;^?vk ziaDYD!5;wFmAmM2=0d8NwOEmnMThy*zk5aOtb75}Ku6RD$d=cw0p~LC=7(X2ja-YI zx2`io?=37{B7O-jX0qQsyn`B@w!q2$V^%wgxtuC83?x4*CYg~m-3o@|62Mvf5g+q4 ztaHinq)E5h+j&e7zL}Tq_vyXMSAWpA+hng30CrJb>yG=T=!uHNE$PE86uRiZwAuHX z&yHdVmAuh7pD}rcLw5$bAKlK=uBPC1&Q8&wI)LKu<;!v%#8hIvb04(Oyy`W-smkZF!6{$&I0C*FtMtX_Ur@#bMuBh_v5n2%i_MGk^BY;RW$wlGH{Pk?HBhQl0M=$=ff-8J~cLLa!byw(+9V0Pc-D1m@ zcQvGmWuqpJlf07cbW!);+4KDB>NIAhFh&kF3P`M)*3X+K=#pqXM?p6QstScU$|GIc zO)XacIF1iXFaqz&`|A(x>=HlQ0tip5J_xacVt}CjZK#0((2ftOLRnvDDM!ihZqURe z0j9GO*^c|#(9%-I-ZPPyBM}q#QQb2IQ*vQ(i+17{L{^60*%+Ro#8THEfWTY;fY+N< zk!$;{0PXrPT#5K?usG3~cBUy8$e`PsMkM`+gKM;qnV^Q7}9cN4z+@WFa0jXKV2N zrTcQ^J+0K>@leZ4l;+21KvsM;UqUrXsZ*^*GYd9y05#MvWgkwcF-J5DKjI{-CUWxM zMJZ&+@|15B|GSyC{Rm>bn}7L(&Fr(VqVzSx6<+x#O=kNQ~HKdbzx`Vik`yU{0x3>AA>+c81?@A7Ow*=yEv*+$7_{tU%#9D z%j~X3QfEe8sh12+YFX~$6wEq;*O>d&h@M@(`^t|lMr{9=>pSX; zS7|GvG6QjEG+S2v@Vj!si6^6pMG4PZCj z$Hqv@{y>=sD`ZTlFWK**P9Bmvh8gP%zi8H2;kJ3}J3T5p_cQFq?2B`{NcSlABlq0B z9lK+S>t9zD1?DjBZ`XNegk_$z99zZ_#lKDEk9Y? z&zma5{FJBXtE}ri7bWWo3W7 zZaf5z3!C?FshO;pb3MW~w9_oN&t{9;@x02P`zv2Jp#1I6iq*APXAtBM3FxN4?!MnE z`7c)pJ$s_a_Z8sW6}e~Cb+qlXF?O5NVKn5FlB<=zF+g&*ks$uX1s2(2{Fd6-^A_RT z0a;IJv|EVKgk6yU?KYzgL zFo%di^ZI^g_I-h$hfY3UYOZqIR(mFR*l8uA|BtBe4utxT|FYH@$2AicUc?@Bu2CXvXWrWvF&4RnMnZUnI+ zDp}W;nFA&7+)#e(jRSdB|6nYXCSX?2Q1l{|1BjVxeJj+gDe;s^8!ksjTNhpcBq@be zu#tsD^_Rl}*#7b&rsx}Yfj0H`Cv|Ro27d;-)tZm!BW=SF$R=#4Hmb^s>5-tOG}Dxy z_+%(uqZM=m^PrNB4h9%crU^vz%ASGg@6q7e3)kPjdJW>PFS_`?a8op{x=UvG;Nui> zKk^}Jqu*DVjHM`FwS%I?^pPRJz|uW&(=x|E7*+M~%;B&Y;Lg|63gi&c6Hz95AbWd~ zii#<|DU|uznJ!+;chiWS&!er0cF$wVwfEwAe>H@`q(F%~IU zO_QOASXdI5$&1SY-NTyQgo<{u5~^?V+K!MUKgV;uH%C@K4{SO#;Om)Nw9DFUKPg8jkiAidjp1^H(ma1Ee?PAC^du zRT0t%R?9&4sp!$kA743&IX)4yZmXPI#iH|(HOyq9&0=Jxp!-)a*f#kl(NL7UgX^O7 z-kEtR`R|Tz$d4D}(NATUVyMDi>aGNU5t4IaWHu{DLAoW<_aXHdUBXzY%@)-kCj!|w z+L{4?z%PP>F{j>N)Qd0+L@n;^06-MRy8P-ADcS@k*hQc>awmvp4SL^+mwZJc|I@Y6 zv%|;weoo|cu@6AZlXjqwf`3|CmBa7Ib+b8uZdBK>@*(r8Rj}j{gmSs7lQQHgIZB;# zDggxXM^Aja!dV$=um-gD6U}x*xq+JhelUqzHbxUmw=QG*1-Fli#!dWqDu}93Z-4nZ zA@!35B7xXvfOTDdUL4jbEwtb!cQ8>PqvWJ zm;;hL*76d^hrtY6N1iF3AJ?fu)fx~d1J?}hS=f1e2=IKRBCiw*4 zkNK6_4-ss-d^Re^$FwFj<6Ls9Z>LSPG)_ zsg}s`Ag?72aJ_qS)O&wu!mGvV(LU36CM8Z)AiH{*cfcmVZ_k(jFT))&^7 zQsu;Pa+CQfIUftQVoI?JUh_;VVQeEJ^X%j~yBIWQ872Ah*vib*e%^<8bgd_a|8Ue~ zaB9PHI0PD-L-WI?p-F|8eyC9n8FQsv2uV=s5s7?4f)K0O_a$Q=frBS7--@f8>PJAb z)UUi)jwII@yf5?ZhOJU>pEL_(4wO=h?u0}hyFS-|_+TP@S#6Qc#;jflMz(h-??}zN z{aIHZ)1*=euPx;+JQ+j&n&OA7{*@w?&%R9vTP_SO#0g_B@<@J{`(LkfM{(DGA z$!s>Muwc%@sM%E~U2)RCox*~Sp82A@)`d%O06{S>7Inc3q0LjwsxI>T)0F2v_>Z<4 z1%T~%@wfV6RqL)sK45xfnCX=#zU#H)cl*Hig7Yq|b z@=@m^##&ms25u%h&Z_FwZuMCbHVZ;y4E3m)tV6oTfDY}FKtn9$7Dxs%A+0kJ&edE~ zb;MnID*Y!^>a1xPn4VM5wZK;8YfG4UZc;EK5%Ff#m4>J-f@nt#qq1QLZIdLp*6Ge& z3zk`?M8PJj(aFl7y#6D7ddcg~Vid^cA6&{k#RHhGF+o{xx@~qUeA`c4rv7@t15pI)TGT*85s9xWpRTJ{?N^Xh(Cq{rhS6JIjo2o)+5?Bv7N^r_ zQEE*Ea{zfd;PJj{id6L=EZtuzk$&O!LRrmkoE=JMKZVE`^&o}>dM!$?;$XIy@TPxW?@9e~dUEWWhKntK4cF-3uIz0y_RMqGjL#sAJ<3X1mDo)7sSnm}FvQ zkM$@@VD}tkG-TC&=gR1CMR(*k9}A8;~e39+BZ-&kd|MNp6zw91VftH0snKh8{7tK3;_}TydWh~blY3eS!B$OsdN+1;FVLqxi88P6CG3zgFzF@%k^cTr?&iRFQq`?G z7kO{V<1h{<7w#GeyM*r0S%7sNW7Gh|yU_fS`FeY^Jy_^9lsANanE4(=GlCgE2Yf&g zfI}$uVQpVqPrzhLmm5(R>xb~z4dtMbB|r;E3E|w=r?Be2^>fRMHJ^p~1u~&hU7}w3$mwYE&+kXRvm<}ZkgNu35yFfYU-~%ii2QxdEYx^kpjAc;%V1CGB>{Yl7 z)1Nd2rY!LF39mayf%-w#Wy(v;HEY=3P!DBq+6nQ~y};2*f94=bOUV;**>AlZjz3kF zDd2{@>$4Gu0{{fq`QLdo=jXnAErTyDR4Qe`?lMInUyUAChFyMV(D7PtIb`J4l~M(@ z^Vw1421L^<+0t^I_sW9CqQzrr>eNQ>*+w{wKB%G9x+y|glk@TpZ-L4 z6nQBX{29s4NVq~7<9;S>T4@gC{zP>7RDdrn@204>91(R1z%8x*An1$!VuoT~%L&jt zNha*QyB_&iInaW376isQ{oNkw|LhPHK}AD6dzg?o}-(XxngxM^tI*acExQeO6pKcYeyQ*l@2xWS8mfWpVM+PgWGaHa^=3r zOD%Oo)EZfOF3N|rL{0f}caH|i55xwIoh}g68D-@ISu%Q8OecdbFc}YClInilJZcf8 z*|;_?vb%OWH$^KnH1q|i!DXHDXnFUEF^&9k7>k{n-*chp-SIc+RR)`&M==ez2TE*z z`|nMzSS5e;=UgWB4?afj+Gx}HyMmW^kWmhm3*zQ_5K}qOWLPYzFYca6$~ zkkvpqSZvLILYVhK+^q|JW)tOA^Iro%{JK`#abf7{-ixIBMgLv0_;dYR+_P>`X1yTs zf7+nTK&|mJ;kTpwQbEg*ZRoemduTWmHZ*O=VwX~`@Pfwq3#w36s`|9h^}UeP%hjaT zePyHaQ7yrL-{qpQ>A8wf8qV_T*4}7o&85u>2qrTs3MZ8Ij6mS%>LDyr>d;{Atj^R2 z>`fC^Cbv>OzHZe%{P5gc+dkr}D_}f&>%K&ow z)1Or8GWp|j5xu; zt1ObM25q}gktXo!Qd1a@s3tOAY@=r@ylXh92rhzB5s8sPX>%7B+@}gr$Qt2hkxv<+ zaU-(Zz2e$XMy_8Z6)_feC@qlUA)YwMq|;c{1~R9SgceA6D37%{>sYx|we1)?&KI^vVcAfGBAerU4% zsAsn%flFSGheeIR?mf9WCRym#O2a5@MyD7iOOW{4u@ZOp;?$7URVb2UDvibt&)XAa zfGodA7f$x0K+{(`nuy2S!A7unYoD-Yal0Km!ehn&fo`O^#cmSwo6(BvIb+AqS2K;8 zf>pfLXYbd-qZD?>=1t>rfkat0fxeR74&--Bctw)$lhL~dkcE>YGT+M2IAAH6TP(;; zSh-oqp3hX#7mu}l9BLAoUIr_T8W2(NaQQ6qIf9Ow7hO9*HlC7TAMFLXa zv^k$8?GF%iWCJThb?4gxRW{}$@&7%13yqp@D6W#pmuV7Mj}{^&9zLA8uUZAeZ#gjQ zl`%;iYOgW*w>7%5gmNa%2c+MmLX^3M2|sAf)!)9?KG-U2e~{deHcOsH6E3s;zBg~d{V4OQ{Ar!Q-EZv*VcB~>Irq_S z^SqbYAHS}V4~m818xS=pT8i{X<)Ob!(`kb)G0En;Hx4#BL9y4n6BG{L7%;Lt9_ss~ z6dqur*hR9OEk-u5tehVXUFbaw1#F83&I$KH)?-nblBSkZn<)wh63)}XJ9v#)Mc_uw zgvCxOh3Et^GqK99{#4_nQas)kj|)CRIQas$g>#!YTFe8~f|>a|KjVC7-I~7b=Y5OJ z0!8D$UE6nZnvk?|0=RmAU)lX>r0Kh`-`~`Sfb0Ijf8zq$WTO84cwy!nPp9?+KY(AM z_fOdFLR20KD>ysU!|9zXjta^3dQaltkDnUX*i`Y2-N7;2TXdW-a@7>bp>*W9zdX^a z0!r6C{x8rgPgbPy@bTYavSkB%hPQG@uH!D>F%eYnF81uZ*h3;_R->f;9&xrnVbjES zsXX--Iin=^fxOh*fs*jPPO2d1@>;Bip-orjF|i@HQ}x2B$%_ z>H;OsX*S?qLJ7sR`k)RLl5412rwir52101!xHK&?2wJ^Tz&oY|YHHy#Y|%`wB!BX9 z&+dLTHB}ROOB3ZF^nqp_OUvW;E-j$CVXK}d3r{cNR5=sY2Wq+hKI~v@nS6L;8UmAE z%s|=!zl(e3RkANi#~#wD-m{$|4?_OCoQSLykbUu*sWyI?F|5X8|I<=-UEw&?2_XRrn8L^tApQwrqmHL+5 z)H>#3Esiwc=ox`!~`;-V|j9=@>yl!jI*e|Kk?tmitBXG&$`wCd=&Lu|IP!o`1$0LAZMR&~ z83dDsJ2U){i2Kd$yQ)G-TOS*dy%JijBRxZf1q{*>fD1ER=h~`vwbK<-rEreov|m86 zhuiN3V0jS_?oJnG9s1u(rxUe%zCX@Id0;gv`db9*l4Ll0gBfPrn;%IX$d&8FaUfUtI85dkN~}k*W*C^X-jWSB7*T)dw&!?SvPW+Z z%Br3wpGJ&i2fr}S!HAsuiY^aThCZ$>BuS&H%P=di9PD@_AkR$$GDYew<3*DxC&wE3 zahXjX0X;|ePYU~_Ye;@=SqcJ$c_`YwT{3+{f+A`HT)g@S5yF4va4+z-KP=5db z(tt$GCd9^9r;yL+k6&(e^I_`9h-3>S@O#vI?}NF7w&TM z_aRbeFt3zJlD;j&LWu0nz=r}U7idH^BCm^8Y;H5rTUI!yNS=v=?RHq)($ujo>}${~ z2@fArs4HELh`oLKv=*G&Z2b)w^gUcvHFYsf%Xc#nivN;HU)jX_*EPQ;bsk9eztmO3 zwe6;b#|875--e9UK1%d64fWqrW)1^xDI_<@Fo*{+z{{d+ZxkpyiNw3&R)d-nz=avgom2Q31V~OxdPXnw~gfQoH-RTMKB4~x^Z2cYzAGcuzz%p_x zt8OVL`SWplHF4v8>fKk@z&|=*g|BKDwm zzplDjY+q_0UfAPS_I`?fpU@v#YoUhpHDcSiKmPhsb7o(vTvVUziqKzzQd9;Q+veA9 z3*FlV5rjkF<@yqljw_jCWXz)2k7N@oeSq+Gd1QwKc(4L_%||ZfUJCfkF}?SPP@qtt zv0P)6TUDmzbO}QCoMnVw6|e8dleawVnFMR*r|IB`jq?K5z=_9r&w-oGFab8(@=uW& zUFSxR_^}?V_x}wsb+hywnsyw>k_o5xu(<>8s!}bdsW8V!MscW>(lH)BZ^7=k!)#b_ zYVw#X6b~in=X}CDNChsYfT?b$lLROwnWhZAdG+4YfX!E z!`bYU_4Voc+Cb4F1B^G8S%fMd!6kiS{&ia?l7uTew&H`;cu*k z&N_6~I9DsC>QNw`VMys@lj$$Oei`Rg0XpTD9^j@N=Adi@?6TUH4w(^9IgiDkc5-C# z0Af|y^IshkHRAv!87a#6^5H@ggR>A;?KJtsqPpGc*N30+BueSPosrR)hhz=!@*~C? zK=<({;W*oW!N1NIZPX@6oT}Ky)#r5g{`y0uBr0qUoFOiMk4s3TXLJi){$e%h&Jn3f z&}35e>qH}B;E4iNh_y}E+|#nt?$YBo#$sm=?=$8f6~4!}D?(*o7BZfsdRdkBu`yt1 zz*N$)eJ@IC-!+tm9?}>Z`RvO?e?L-Q5%Qr6Zm&^u)0F!jiI(YVnksUfTeh3+dHo6V z1M^8&I3KFJowM(jP7>%l3N?t{3s|f-H3_j+?ZL52{?G#t zfHit9#$k-TFcCR8UErv;=tWm*zYAlryNWC-_3LGMN|{|UmAS<`uDZCd=BI|W6=O?l zQ?Vkr!O+KAfl+`uBgIK^Twxa~Reo8-oG>iADWNPVXLWnrRg;Y)*>i}7hscJORcjZC z`sKWJTB%+{RhxMak!(Fk!(lF}RAD@6tbi@Cirfh;0d>>+%$cU zF)Sm+7U{cxYSc;2&h`Lrqb%GA0!Nd|cHrqA4=sXENQ5TC>_^ivBnWGw z#?f0ww2lGG*}^Qzio6_T-3*+O$KWp4>iRn-@9^I}k{yRScOexJqf-WM)J09IF{-)@5?=5X2W1vyS`<|A4;}n$WIlkz!EX9KZ7kXW81wO*1i{E__;V$Rng7)#x3FYbrnOtow%>m9#%9vgPp;3>IR=hm4Q&^-d~}@}KjO<>Qe@o1wGwMS>K=b&Fr=Q&~m&Zq<5R zU?-1AY`Vlkz#naix^SWvi zNA0&}LQkK4e{QokDVo7TSrgO^g8mki#jW<5>Dg>D0=x|p{)Z4u)DpaQ^{;mGO95NC zzw*xy#sq5_AZu-_fd{Ga{0-f(?9f>DjTjp|y}DYENgBO5JWso{h^-;I0qwTGJD4V} zH?F_C7oojU;HUo0)5%!&z$6FHWr|S|pb9*eDjfO{Y*nR%VMH*LMBc~D{2g7!*AHZH z$@Uo@bF;hc3(Wk)D4r8kh{1b4$?Fb=Hm2~4j!Sz|S{_ahLF8xMPn86yx#5q+nN|xDR52#AqXIRPX zYdn@zjY3vFdRJA31=Z2~uc8J#CpCG_t7!(CoE&b@(aRqw&h=Pj~-`3S>b=o~; zv}&BFL{pTlEi#nVM9}rm^e=J0nMih;8{0`F8Jei>K-)P>^R-vXyIvNX*NG---Ts{V zes%wN*N@aKUpn-K3q^As|0a*yC>&Fz%H9&Uqr%#6yjLPH~J{D z0nn1#UqhrL1Pz?qU~a1iW@y>sKR_JysZWL=L~Co|x5>|Xo??fIefz0I-+zc-C+ZG$ zlo^>B1eG)1FjzFSx>5l5r4w+#1BP<99W3ow#na?K+d}bjvqNqik1TCzFZO^QEi;Tk zRcqZ81(QYIAPqSrKqDg?-&>la$QEmMl4Uw)f#qNYkL^~jzOBVXmbwK&> zDB{c^Y1`X-C0Z#PxJTWFtM+u9E3`pOF0e({O&P`TKizyXcl7b z4dm)vs8lIf5`Fx@*N5(`PBYU;CU_<{IChqmozfNK2LO(u36fxQ0*?Rw2COyTfBY8I z^LvoY@BOKxFS+#NtrKCh<<>$C1-D*ba)-iEwx`|jh5Tq(O4PAv_di@Fb`~8uaRddP zL#5Z(!}{`thWqutoHGkxB;@Sv0wDn>4I`Ri{#T6Tsb+U ztvx$oZp`>YRivGr_BmCQqa2Fp6Md{V?yz*!p_oQDG~2hQfM2q z6*+fRyy;*#=uMrMcfYW;3yK{25Ci4T4R!RnAfXT9Gyh3FUhq=x5nzQ~34eTdW&>0z z!x38x)!x-t?!0iJPpjK#j_~ML*!%tN!gVu4YN5ukR@{GQOwNd~d|8;|4bk3{FVNS< zg+hfrhSdrFdE+QPoKjA~ZiBvh$4UGl>9$ggx`R4hTbI9avMTJ|c<;?GF~VuK8ZYhQ zG&C=f+F}m;l9<_gyx?~r3$}^J46%AyA?MyTO<#Ey7aUw6SvYx5;=!tMm-Qfv2EB04 z&3^PYX2doY5l|I1#Zl7KkJ|kXBCI?%niQ52tRuDS4YHqotIufXJ}llUcqmQdJzWog z2od6R)B10x8sdWL?cscbsCqDwU$ptib;y6_Ien3>aRuCDkh;Ii4o-(4w+YazJek0N z^Y)H`NLUS7UBgLr%>Vt_l1~(4lDDziCLS{7+E@qkB;pl~IbunI_V@9uq>lnP0b)(` zEf<0GqZp{_u9(g(oaoA9Aofb+yLnNA=Z-kBIzj6>SXZ8HKD~`;deUkMV^}@#I1;Cl zKMyK^Pq9xm@xxeNOlifaAs-9e35B^@1Z zWk8Pn8vKGj5mjq%n-u(T%mbcz4^S-mY_zCmpk|#B{)$!cVE&SEr3;^=bA2jh4VUa{ zG-VCQA60S6ECW81#5BN2Uc{3xQ>--)vEDT}pLuno|9|LPpiTG^TG3aVIA&HZ+RSV0wVZgFjKt3nIm?0L7k_xGJAapv%6Ne&|JZi;UIJ-nwBonhR zlOujwiI-PiqavR+%M-sKU)+YAbd}nqmim|WW-?CZ&Xwq*o32y&sv*O4SXUOUl}#}D zL;_T`o#ky;tv}Xt6Q@ca(&^(}NevNkXcwd{8`#7)zJ!My&QF~xeuR%_(}RGnXg~;A z`4G{gc0l0G_y+`fbY|m#vdRrHoq2YfcH}Mr>M9qcvHysI&u|j8afaPVO$l}w@tDC(Rr30Uphvhkr-wsz6 zR5Cx1qiI0Mj@uS;!gP0=e<1^d=pc{f1L+p*qbCU94QHt_S4@WzS!+Fk5^V0|4-JEN zC@3dN#8tGim<&Y9!QpA=4VfXEUUh#!Wmf!~&d>bzRU25z|C=KLVe#6MD^{^)O!RPQdv_&}vHcg+@Ve^j;UAfc__`R6u@IkXFGb(BM+4GvlJ_2kk94kQz; z?payA*Ps|PRR7_bV$2Qk$cZ(|>Uj^HvT6ST@xY38jg^q(!qc!BKgb`$qUQ+wG|~q$ zbm;i_?*6h}jYuWMbKh;uGK0S;z1W|^{-O-jjYgpFZAOLvq=V$pc#Q^-_rwWSD8`Cf zq=Di$Z4ReOz7YUa7K}v@&#B3~#v2a@s7^P&2CxU;5nFK{7^64;ow}VdFV7&^ zNVy^}Qf(D|;nHU*(F&x5?zvFqA2fpK^~_p6-a9zsENQ%*lvUDTrE<^7XxC@rV?m36 z{^kp+hiU|6CwkY5^%iS_cRL);cUY|!AqQot#-Fs2>{2!CEFa@?jxk+5gC(J|kBu6r z8cL50bMqnP7bo1t?lc_UQzZH$^a_-CG;FNs^U9TlVcl zCH}i%ejjd&^58}RrsnD~<>SDMb{tQMR63Dfo~XLin-fv&k zfCy-Ci1xyJn<-V#Z_+|U!t1-|de6t&_>&Tby8b~2pJLb^zw6#OhNiT=e#@|0r1n|) zxkmHj2JN_}p)I!|S?fRdE--=`<|6{Ml*f{>p{uhViiP6+08Q&lU@Y(nw;c)lt7{>Z9wLwcY+ zyi7d)&2JZeV?y7D)$|vW>lGGq?uSKwichA=u*Scx zVgzU#Wg*t`YtzYqGTRR&51o+6hrVP+)gHGKyTX72`Z3Tdxl9py66b0!{r5NI#Abqv z=UGDllU@W%FBI6xop9fCPkcY_VMDcFRJq|_*!_^X-{~)Sp4wpeWYiId@+mFX%)j4V zGXG1(>aH|#OchsaCFPcMoWAZUQOI#GYSL5dz+>Q^b{wP0Li~XhnL#&U%g!Y}cLrfa zoG*(bjlF-KQH+r~xXo%s?>Sfs!6Fvgud=h1!bzFIJ!%et=2p5%YUbaC(z@;`#t20a z2(DgY?!>yc!klX31M{7F9six{=Rr-J25Q`P=Q|i_hO;{LQI<^XZE7r`q z@Xzw8`cV@+6dm$rSjWV5Wg89@th6w|myV$u-fs@yh75Ms~AHW|E(<{tytbzvRaxFqu zhgtp>F%+mFY|i+BajH?*y+WLEl$MP-AM+iR93A@3tJmvwG&GarM28Qc2sKz7lKGUC zqT-0B*djli$vl%$RwA#h7A@J>A7e;d9kC5mW=6*q(DC8E7o(QC_+DqCX#^td22=NS_P?CP0-ANviOaC981kFb~6U1H&u?5p#; zyeWFa3G7x9l3l*jgi~9$~gQxe_=0qZPjcNM`aY+f5e!{~>Df%SSFw2?e{0U#Os-(RTz(kHu79$BM_#A0tJ0uM#Cv_Demx_8^Gm3eA?*!0 zE24Ou6pclhM}nyvFP+MQZXGtjsDAhRNH0iLfZ6e(B&L5rnxXC4Xg-PPkfKznZ@Im^ z_6Rj(jS`b_jRbU$X^IeBmeLsm-MIU$lSTJGY&H?Y2t@ADfEbj;z6$5k2yv5}k48cP zSh;j&D@a2Jh@r4(2N`D^;K|N5mpDP^g&rQ$dSZn$fw$-duovVxO@3VZ#S}ge&8Oyu z13_wPSXhPGcmG4lDQniZqeT_BCFOe4yQ9mrdrrbtrA!v(`Y$0f2jNdIRYYVH^T&UR zWxF!=o-m{)3k6Bew_KK^#ctXkzOEv%{fnZnM5Fp{LqzNkY|M>{ZjL|OWE7^_mssRj zUQ|oXceJ2e?K&#;=X*?SeO2U`3@@7ZLU4+`%lG_iT0)Mj7^QrE?kir5ML-q^E-@peXbRzQJ?3@pct1T`n2~EBU*ge*62+=;TOuOqj634EA!pC!=a3?arcLx z*$^cVlg5e-!c?EFgY@Dcozlg%+{FF;f;=fY(k}G8iYBqf@xG`UGN)vY0guNG7G+|b zPCNV6T(5ABTzxI~g zOOVyqAAQJ*5UEaRi{x6_aGKvXfe&NktYw$%E_ntx!1ql3AKFV^fv_b)O*H-96Cn>X8nz zd$aCOaXtnfqHIa+i`%a1oV{ryt8;8ZI}O%LbrLn=L|^D?dBUV|(l)yUgeyG8*4KgX zr0f~}J!y+gm~maEwRoZ`xG)(XQ+^% z7MUX-kfu+W1?(1E%r21IkgmVg?lG$ z*3F~&|HmmQG@+7~YxoPG#>7F_belpHP}ryb2|T6zJ9V0t0a{-c1~GZhkmVDlC7N3R zK_X;`P&p6J{8IX+DOxvySS@#&e7`&CWwAWEe&H+<>?>@{Dx#Mwk4q^){v)?SPK#np zus_gRK5ksUC`;-H90VvGv03yo3(IqSSFBm}87O?VqyzoKBH2z79h@(v2IM0vy(x3W zX_ozxNJygIAi}q;a^YqBC16InNh#9@4alM$!Ib7+@A30XoUj9N?LM_>HE!vTEZ%8&u%d@_;_f*(WW{;OTPd-Rnq9ESFHlo6{?i4wW@Hp zj>IQrFRd+01gK|8@}&@?*f{mFQ)|LCxZl0HU4<9nr~`l5LZ=2{dZkYd{OMwi4(B_; zcX|WXrg6v!{rL=TelVOHdsR?S_#>vuw$S1PLv#1Uj6+$C%Ykk=OxB;M=g{C-Q(!^) ztsZhQlOdh_O*?fUrTW&PM~45Z4g}TkHB*>pzzSi0#f%hAY8ZbI3#*i zM$_)BjCvu+;fMl55%0BTO;%ktPYLMYjq~t5oU_vMm@93PwChE1+rjvE`Tl^|zXn;~ zOsm%SBE5w4s0`71wuj(&$fm3T|0AjSl$kfq(^t6QFt29}E9+?R4yX3Jcc-}BWd~PJ zzh0XZdyMRZ?$+l>NbwGZI`#}G0^Q9{R&0Bq=0?}bbUNQ6$J~`{h436tJsS8ZA7JZg z)X|Z;9As9hQTpkpMV`9s1u;|TrW-IaI<$IRDh(gnop;L~ARQU8-&Ce`5l3?2bbs_l z)7`H!-M`E;8mN(X2iLdd;%s@ekYP~%Ebf~>frQ_evTnl$5+WMFX*aZdS>E$3pZbg* z@P%9n`|+;;#^xc&)2KmKi`({OM2IY_fyobzI{{v4IXf^iXxoAL_S@ME2+D32tkwYU zI@&r2O2PcL6a7KokOU0t!CFpk-n8CO?7L@0f%aNA@1xuUPMl1T_7^k8v_7*^RPzUM z&iXCjD4gTAI?k#r9aw`Tl(&-@;gU7N^M*J09Frh-w!lO3TMaaKs=s?LM$wi&{!u2p zUD@%2QWiO$Ih-!om1t_eldSc;yyZwXgW2+9Q|Fl1_{?Uh8dqeTJ}y1GEG{)0BbI{} zq`GL$#H|=bo159h@8O7D7veQw93Um&ond5yBzxoshKHGWCN8}KbL~=XEPCGN&;hx% zUK|V_M&X@T_s&+G7hsdwyL!#!?*(?hAoo4^7&lgrf!eletlTuA zhZ8so4;iBjdD>a51yuP#coZ)7!bN$9hGTg3;h(I|IFUz1IoG4)?**49gO4^)OSIvr z%k4|v&r8hrLGq{n1i6WDPcw*DF*BqiBY@tZ0W5DoirC?MIbhM1nlHHYm+N``ZUfDS zvY2AnUityI`UlMpH%SxOmM0P%`Z>Sr+gD$Iq~4I4|D~a|lJg<5fO60_0%de(yvnW& zW=vqG3^Jxo!Kje>UcBvP=EYb-^CArot;AjHO=S!<*t+?Hb0==$GP2J>q)bcabmRj5 zz|$W29NO<}=s+lPx#)G)1Gnxnm~zi{c{dsHsDfqUcK$#=+4Ss{UZ663cIJHsvjPfG zDnnqnY4b# z1bRt`2cdYlD!#|1Yk+KIi;9vfV(mS%T6s_N(b{R|17&9n7+0>aPI%X}(#>(FN!Z!VEHRy2yYt?2f# z@j+JSBnVypC7Yp3pn#UC8FiiWoM7jS^X%+5^e=TZ%Arv#Q#M~u{6VhA^OTpKVbpfy z$O|EqNq$RW(e|qJJegqBc(^bfK6c4^Pc85G9#a%`YkwlVeqOolm$LV}wO=9~E3x=A z0IlT+sRot;{7pJ2BKrKsLa@sFK<^QW%Ui{uz+x@-DO=)Qt3sW#cWP)^AB6ha{oQt6 z0#H`=l`Cy(A<~9{$LG&oJ~q@wmN1Dqi8aYMn{U3g1(bs8E2a$$z12W_b6#)SaT#U8 zyRwLcT2pVqg~~afnkS>=l;%00<8OX9)6x6feGm)*rVWX+*nZEqS2DR(XSgvBpnQuG zHHKwPLm64NxGhq)hQq1Du1``{Z$||bo-N;3peyC^6g4-9W%;2~){V9vxIA|b3;%NN zY_7O7oEZ|7ox_$jf2fw~&3*%ey+Dy+6d61EtHRxGWrmMQommzRTM)y@yx}rLIb1vx zuIRM>jJrX{r~s4}PKja2IU&k?O#Rr3Drf1|y<;sD#1WXGZRq^Z@d|%<;7!G+$UD0O zr2SDK9yMb@g=hYk#FSid47fy{BPPh4ml2DvKF>wJH-E$W; zEf&gn=`^b7f0a*eXkDl56p@@w%ps0C`X#DU*79xKj*{HQIY-1^_za(bjy^aP-pbx2 ztM7k3_}bEoE1E{CPBj&Y0Tp#(W2{NBv(N*E>!(F%enGNWd^olp*RmIC>Ey`a9Jt8& z=IUJ=Bdl}1cED&~F(#nUT#1sCT>xJahFz#|zsqeOAKoNiIMvT;F}Jg!%Mc)Ea-VbkExy z^$Tm6MW=TaD%Ovj)0DElGBE16`5GsUm4Fv#3UOex8d$_^O0WTh;Z42A;G!gdLMI?+ zloqK8H#SDp_6RXQ$7GZDqWZ)Nx0pOX+zVtVwYLegbioAc2&!?g4Pu2G97ab2M~n2Z z2j@m^tH_J~QZrtwTNw(;s0w`Cbc^gCt?reDyVCkO;I*1TKVu7iN59DDz>;a9ViAK8 z^=bOW>Pq|jKKTZ)y5s70-&bGossLMJ-$u*wj9tXP_h-H;Tlnr&U?AauZL$ix^Vue*I( zjY%N}#Q9*|A@_?!cx#Rx;NFjl&mS?xPQo=Q9(WsTnhzi znz_dqQp+kP0mf5`Mq9`CJv0tT>|dWF7?ka(?FQ0uJ9ygoD@qn7{|lwT$Dq>#gqcI2 z6u~TQL_Wod;Br-77}aCyQP!V4HIzHIT4=rs;Sgq-_x#x#M5P35LyNI8vo@sddyFEY z>fO0!2IDjVbyn@uGsS@dO~{lz_Q+mKA7-KMpDKN??;*&0X3^R$-CT-(-Z%SAM794pXsxdtGc=2PN12P({{83g#`_z!ez`j7X~`j~DNU(x>_6w}>Cfc$89aeU zpZ>+HjIY>_{p3sa7(90dk5a+wV?QX#Rg0Y$n>OIzeqa~^Tvi^|oV7?+QIV@ORC3axewfI~{R~Sv~kimvN)7(9o4~&mRO6f_@?0 zy??CFhk6P`fV2!)4zmD*%q8eKICs=DjK>)Nm1u2rW(oQM z*3(BHgFEE0n|7nZw#CU>(ZQ2oUKy2LKkoSiph zUhtIUw;_w*K+T;?y(O%}u+im*_0-V(M%+RmII`OF;pT`MHP64Ls_pYih=D+vU%+co zgb;`;-rGN8Yw`g2x`x(eQ{r&0bu}-xZLVQWLkm#0-EDLN9UrDj$o(oqWe~6=R`s&} z8SUR&j(fVS&9`d38V=Xw-u(Q^Nm+BYZ5Ur^Hl(sV&oue$+oRvY6%(_w*k+RouydYC z2ca+N#1{JHw;1+zyEvQ~JZ8cr&V>ELKVAyTF6Ui8W5qPfFIOhiC6K{Je%K7|elc^j zJPH7jdz$n9t0kwhq85!4p6BN6o6AB?UndE^-m{0-(J&A3=EvQ%jcCJu8R3q@hbR}@ zmbFJ3+@bQ2%($bZ=1G!(w&#yzZhjmSOV9$}_=QkqvuA1I&okwXZ{2DLm&LQC3@@Ma z{8=(LjgT4JKCGn8XZiJRv>44V(b47MX7cQrH%3yzFcf=H7G4+-Fd?s`h=$b)i9ndc zY4{tI==0(T{6uLmii}@5>6?*>IJwCp$Xv3|eA3uJ9pqg>R_4ZcC5Cp9{@dk^EA&|^ z8@$c=ksEFl)6_qy2Oio{hZqY83H2ZdUzJqH_o-S&rc3UtzS_njE6+ZE{m?UfjZxY% z@P69PlKVgO{&#JA>}cWSzG6~E=LOym&;bGHxOT=L5LW+8Jp#Ws}Z`Y1M%sa0^C})Eet8t z9!S6)`P2Y?>;KOM(zGck|Eqlq4-LVq*~)QS2<9qdnoJkBe}$(8@O~D5j7+d?pWJnXe_gzjn>Jx zKn_DkRm;`?sF~OMb4xiOdaXxa-@#GXwXUR*p_PuezhGI(>&rpoCkEOGYigJCw{=kq9r6Qdk1(imm8x@sQq#Gngx`zfCN?IfYDV0zfh92og zT8W`ckQ_ROc<=fC-hW-|tmPS>=eh6e+IxTYQa}B9Tl@XaKe;M_Ull@TpLe!q6}(9L z@exZZMlR*C{u*zdGj{9uH~`y*5BGWHayFanf;6{B?YH8=#HMG^&y@mKY8tIBEl?D- zH(=XpNaiX&kC(~RskUaf`_=Mh53jh$=csec>GMcLAcL~2!Mv;#@~U6}Z|Mxhv>x~9 zYf!#=dzkl!Ri!IV1NRYENMnf#*EfV|XFP#guKEE&*Z^(~`)4fg6_r&UN=N;pdT zR|wbv7``j7|D$6lA^*O~17Z~Pn*ZRYAcwgbVRq|2=|2LUh40HUu0P+${K_3rqAx_? zWQoe?U>WcQbBJ34T_>+1Pqu11)nh}57r}??;o~)=f=pKsuBWC0IYD#+c>IQ|Ot!UEU7n$&jf*TS1ihv2tL z_lST& zWv8ww{S!4OA|-4c*tHor$?wg=8M^-Q8f&`exp1704Sb|s-X3!b@;e#yqxC#s6CR<+ z>O~go<5I?TYzKWoLGuEhp;sWCDf|07-DB&YC_jvg?V*A&SE(w`)Z)I1JWcNg5F=kq zx!5_2{qCG-&dE(#ZD(gEo#ZTFsh_RLn1zmq7s>#+jcgMZv`kkFh?VB!+e&;BWuFqZR8|W)W zghQ#sn`OSnvCGAlG@kt+T60WPEptqRl|sy??E!?DYEzNS4H;+}C=;uC3LCtKXdwF_ z`rspR^O?H=Fqd79AK49Pzy)=9G_)u_?^Rpf7a%Gc-FsUd@M~KYy0nM3kvT3u;7UvZ zN6=%=0%oX}v_p|m=@3Qg=CAjJ@!}#3NRA($t6qep3d=ba+KZ7UdMm1SF2zrGhB)q)KDT#XYB^siN5=ArIG=7IoD)JA=Snkl6MJ5ZBAe`xvXIZA z^!%;&=e+>F*;v)^KCgOMV56J@6GMGa4Wt}otsf+?k#I{pS6=g%FbRHay881A)*q0G zOVoK^haf^|qIH_5fmKri`+rYn8aC_&0A1ab$8db2Jr`z_%S(|I(#ij>hq#1@Q!6}&(_57v zRyn{2UI`VXTVL((?U#E!Viqp6IIrRu21AqQ>1i2nI1he}uKNKa;O`t2&0JO7I8)^z(wIEH7xvxMj6 z$@H$}fbawobBnOQ;-{r6xgc2 z$IA@Jd4nX>*cdNPsk#y6aA8BX-HXa`Fu;l6BxC;I59z+_3isJdEvT!3cZJr7WD+l{ zet}GR?9l4-Lc>BHcU1#JMOL?arkMGAP5UAS`ZqpWGukU<_}F3-*xJj3gW0p_@^z&e zhlFnBHoF#6P`P*;mS@Nf%{NdwgJb%}WhQ|&fokB%0xA6%q?3RC2Z?8HJlz5V*5IC^ zgqZ@W=!aoV3G6gT69%ahj95s3EivcZT7DO^mKd+oxre_jX-&Qa_3Hn?md4$32(Rz` zryTobgluUNJV;8uo8_c{T#-@@Kt1)qKk7I~%1(jT_3Fgr@s48ESNz|u&R5gWoq_^r zp?5Ac0ua#Yv*%ElY{c^H6l1AL-40hEv@7 z;4riv>5&b0NSd;oQVa>x(V^=ofyy<~_$9AOdOC%!C%~7>JF{I2GWMi*1Mwe1GAyl- zoB6L+M2j56pnZ~ft$*=8F%4{oTi$GW7$o@n=w@q!y4RGUpg@tilNpY?%?D}AO;Ws=g6-W1nhgMB!BX4L16K_M++ zFnaVO4euDdd#gh0nu3f;>?RTgTH|bSDE0e9*yU3)htb&d6mHTEk=h5G_ci`ou)SBB zPA2Gbyc1RfV(>|TM!Jx8wzbJEp*q8tq{EFlAfhTjJY&W2O7Z&&Af zU&9Od-|g2yYADxx|NT#`sVcif!#k?i1P_5^pbA-gcmU*;VQ^5ZQ!^I z%7J^WUg$3%O4JHb4X)w!IqodK4?wKSC)#v;407z*BV?y?SAIxbteA#oGHs_`bR3yJ z5$7+(wOUoXFz0@0zrzor72p#(m>M4@5X;vWU!=fO!vX!(|8~myIXz(k{B%V&2G%~1 z(aDUG6iGLzO!BVd^!$>WxT=j=)h}s)Z>0cbH;VS`Yf_~Z=R8wi+vv%TK|afiQi2u~ zdT#}gJK^VfyPNye79bP@3wdD5jJ?7 zPiG>mhL&Ow7HQz^AUBCL-|rH@ z5`e_(CT1=H_SVw@Na@RoEVn_Ue|qz&Z#+cOQr(TsE4TM|86zI#3SMp6qB z_K7KWjpz*8%Iiu4;v<=h)n8P3`i9s0-d^p~_~@J2rlHXKz3+uWiw@sxI~31tk2dukec>(J=coI| zChRt1DiT30g4Ht4ovi|7`9ZpBDg4GSfcxA9%h*}B>Gi*h(;}0|8tZC;Vbf(E3P2B5 znjJx+W(^2AdB&dq78eI@e{KbW{CD_hv9Y~L&>w&fN(ER!TCoLj-y?gxF+H&YqX}Au z@kLn=UQ%=27E&kJbZqp7>dv)CCf;Mu*#toC`m^~Yn1Dre7b2`gGeB*Tg%#McX>K zjPvNm*+8J3pq^B6Jf+hEDX>?eyH7%-G^EX=#M8IB)b#VsD(erq-#UD16!+fZszkd* z!(w$eK3A#JENZ@FPDNS9yF|PpE!e3Du103cdX<~EyHI${-e6nGH9_=>Zy{$bu za;=jK?YwZ8IK&4`S#KqO!-gm#qRJ@Om_=vYwQQy>I2mV2f=vG}dw*XIu}@@4F24;z z!^`NmIY(PH`M|~{Nj(Wboblk}y_2aX2e7qoZtQx|x6yIls>b|?G<2t&tpSR-GuESz zkGTP{BkU=yC@0UbKhOF3*5=W=2L&rQT^&a%fNJKbN(2ZRGdW7(^%`~ajI%!!7{VI; zOF2f<1XMpmH+`6U0?&p#()eyw9P5T%uvgw4-JH?>UbHE%lD|bg*$+l1CKVEzib^X+ zPUei1>x3Jef6X8Gf}cD21+Fc{?4>6Yr#vH%DX!Rq0-mk;_Ya3h!G1y)(*wigy99;F z0z}GH123i2GoMB&e`5_a;4WcRR#2Ew(Q%CWQ<%FiuWgskt5m3KXL+yKo|<%NkEsXU zn1QL=r53I(Na#Vi5)V$OiB3**tfotOvEgwuKU@D1TcUuzB~bu#_Sx^R8Tl+BHwyNA zYCwjabqMd`HL)~)+0sWIPxsX0o;xgBA8|iNE+{9u>{?KbVCSx3pXL9iu{4OQ&EVx^ zi~_I)Btk1dDCcQ@#*tIappr4!;CH;^%-DUHnEyZnfT39?I+j=Sv#7jg(TGB#1v(OH zHlr{6?TGN>o$4u3m277>pWP1nhgB}1cCO?XsL~l~4(<@7Uul2+`hXkX4155r=?U=u zl)(S4EgoGDZxG5(?HF5XS_$~1Q+f5sR~MRI_(}*6P!lyJv$)zR-gvvF^O}xbuNchT zDj_g&VAe>tHcanL2J*Po`+kPpi!n%U3W=hHc=oQ3RKcnPIb<$1{;W*+6d(San-{wh18*Qj$l z*_=6Wz8(C~H21IBdt@>ry?|UYM$4nWknhBUNnyB+`uHoJz{-XKAL2aFgDjPDe08}a zcK{NYGhUEC;FCP&ubfqRIA*ABe&S~TYxcnKg{ck()%k1#X#syUbc@ijTv9QkV!G7h-em&`k0oo|CPx*)J9bN^ zZ&V(&=PW&co_HJZtu@#SIBBgR6rmYoW13y8`0Q>C4<3B_a$(yOy3r?$@G3|@!D}i=hsuF=HI~o z5|7U{t`usTLv8GR2x`xoRzTuKQb3=~{3ad0k$mng>F|X^*r54&M%zBQL$HFh(=7VN z1u2CVuQQYkU7}=cRO53f>Jl|jfOnEgE;2InP&v&I*0gRFg{UsJ$e}+-;(E=3SNMdYg zMrP?kk68J_hFG>p57pH(0p26L>+d(g3^16~?UPWK0T0uVxAqjY5iEpLh!F3etEjri zu*+qVPzRL0c1qx2fu4=jdx*K32bu(4#7sAWg!K@h@~C#P`Kk)b0tnrlKQ)L7Z#e$y zV2FCs2k3T6AS2Sq+<@@3FBn~x`&v;dlz~R(Chf<(}`jJN!QZ44?Onq zY3v2u)2RDt5^i+!D(P;&=ie!%f0kX0mOR2SrG``a8Q~~TmyX`!DW&P)9kC>}q(V@r zZYo^7`=Qb-fO&3kG_*I!B5;VafT!=bb;7c2rm4!;+?XmJl#EC^omRn2JW*ZFeo?Rn zxg{sn%c|uYqJ}_w&#>)c_4)=>`1-(8vZY~Qy;xZs6fi)=<4r(QVPY!kGKaKhfK=fYl?R@f z;ht}QrKrXhDL;fzt^c!_vzTTP-Lw?*1isFQ%iXyD$l@v@LZr-FkvBXpE^+Mtqkhsn zW8p|wtqsIZ6T2AlyjcpfuZzEU(3JnYGQ)D(;)(rS5?m}lDYxp;ks)R|}Sv zCPVv*L;s?^)dNHPnSHMqO5V=_XD#C87KPY?aTVpq8S&lQFAT%Azo%epMMYInRJ0N% z`IaxHNV&m8S`8l8U!&YP8betIhsLW8=JK_2l_r8Cn@9B7uH}9y({5^uK?F%6+?bX^ zzrE?n2_ZT;GLWWuqiXyz9B4@y*Wc^zkMGO?r?a$5Z3wQwgAjrw(+V)0h_aso(HP;fZ^*S7$`oe+Uuxw_R`}c<#-+r zo@MY)ks9D?p7Y;{r=Lx0W~N0%5hvyVG~2hSMgTi?|NT<=ZsK?CnN~YIDKD~qNI8!2 z;h36zn(C{vPy~Y{xlJzXT9WluS8Yf&A3JbkKYZ<}Q~YdJQ~!e)qJ!o0$#KzO0en^b z4b1NI?HDQKNNR5~a7Y+@iKhn#{mO}~ei+hIm~yVPDkSCRi^AZ(iCwruJREhf=T)Tj zC)OAmdG3*{>8&sIi-9AC)zaROE_9&DGXr=D!{J?BqsZ;tA&)(rH^n@IS+c|NoD~BJ zGng);All}rVtdWHF17}(!Aw#~r5nyWzqPKmOmN8gM|l3%GK3!;o+dKc+d%SIZ+ex5rCD|9d^dMcS4u}R0$KqYS`nehZ<9wtQ_^#uwpMmWavB@poA(i}MDf_s zaI!iS-08r?_gG(&m9ia9qZN{EKuW(s^Tzne^?2SItADSpGHI|M!3N!*Gqg8;wX5sL z3a;WK^Se5b6ef8>DZc6!-8geOTKb`PhakZ3Jh9Dzynb|jJodS)wC(Yixz&!TFO;^J z?0-KAC8C8tjnTH$g05OYp*>MAP1>jUl*g*#wU2qcyv^^#15XC%$)Q7AfJU|Ll`dNB zW=3BcMTqq-gDo-ax)XRVTt@~%P&Ame7;Cawb-jXL%%ys{4L*m97l0+~DMVZz&$I{L zsz(F0p$bt;2d#7W(D^<`(uh!t?X*@xO@M~nPjoXzOxU1i#O^j)}sQ#@m46JNoVkYLlpsK`X{@^?Q?~_gDeIfP6izALRK$ypqkoeWN z!6~VHN;a4gp&Pf$eDfO(m)yc>RE_C?+?5f17=h&)aFcAK-GMTq25f|4z#`opGv~b4 zAueIo3=#hH;=c*0T51fp+vD?z8} z2;;Fv@NOsZIR6*>yWhf1lxBI4UgB-XfNjd^(6Cj#EoL(AhiwTL4l$nI2RunU56ba6 zgLFIe3qbC1*wnT@3w;{Ruwb%Nq*u;RK-f%J+xn0!o0?<`04NuaS~w+J$3{!Wppm##WEDG9}^QL#P^f?bS5FWnYMKRNZrF z0iQ!~%EMpLJ1n~N4uFCmH>pN;f0Po+#rti9d)AGrM1xD`3-Y5q+zD zBDAPf0Z+)CZ+Qp$_FKCwQw)5$`FXuH{gNYmmu___qI~h zpi5vQapf(mcCz|2$0&s*z5K7iEknEE>wj?;8HMK*3hrv>=V5yN+a9$5p01t`(FEm<>id5$7A=~?h;|J4i!x(~d&=Tp zq|G0KqS=O#B;6wqShfou5KJYxCXeUGJ1RUxP=cRMh%_E_g#^Pwg0^U+C9iwYn9+d< zVd6epnp|KoG{6WevS&sQyeLNGwiMmb;tiwu8u@@LH`<8XUXuRE!7vSM=~_lF&cq~hFx0lKb~D;I;%*?Ip}dM?^R08ZIFniAQg1q0gwY>m+l?EqfrHkd zWFQzyS|6z@Z;bx;uI80R>zfDCPF@%|H@yWJ;B~d!wfNTvj71_|+bp_lve((cF@3WT z6fV%&vtD{F)xe{y?T!L}jU~gsQ6^LSQBIz4ifS^EF;A6jjjnfJ`?PY&&=j#7$?Kpd zH3+u~M}&Uggv$sQ-+J%C!t`-JLrjBP%F^LTRZ)GC1fX`lQ8L~51$S6>hziy!zSLYb zqJhls`PyP5S`1H(2V(PBYjmC(H0-@BprZT|7Ar^Op|nNW(YHbkVL`uLl{k`b-qG5= zzPZ02e}ilE2VE;Qi}$kJci@ia*O?>_&jX!1nle<-Imx-f<^i%3F{F2%++U&V+d5(t) z-VOMVJ+2S)Yuz1J;r)T8f1YH7Ic5NH6)C*3iHPb+!X>K+B#c_yq$Q%`SgmOp_> z>PST_lhX(~t4>Zn_z`@J3hkzr;;vF0>;F9+Zv>9*p^IZV&D+bAonq))Zs0OI0w%!i zGXvn()V?oE-n!L=5>xWd^xL}9tOv2dI*pKzxi6zRyU)DOXdbKKK2|#hFUAA*Uq)9E z#hrFp5t2LmX}y`z0Y$kVSh=r0{!=_X2_VOatmP}nUiOUIvA&|X^VTYqgmufy){~cn zY9#3i&Y=qxZrDOR+(zWa_7P?d(JotF1;QO6fa z^rh9VP+#DkUc>F!{0(S>(MEMa)Pef^XTXhdfpuPj;+C(LgF2qv07&j#Rvy2+Ow{v| zxRDs!$%@|qw;b};jotO!l_iOtPJN2?*w(^y9YlI}3`f(bW$|WOwd|aOX9tr0UIkmZDN};#t#x zM?f^NdyIPW>$%t3j$%jyr&al`NJGXBOo;H(FjK2X!D7Ysr~*x5(6HYnE`<_Og0{IkTxXZfb@NfQ$j zuS*=@P&)>UIc~gtYEsFXj1>bzPJHZgS;9`6wI~N6=fNhN2DQzF6M{R8#89^RY-7cA zZt0kycRuP(s%oL4+~tX7WIT!f;sGZMVf1rqmGUyiy)L?ncljT}o5)tNKxUM%yfKB9 z2e77R^mzp9Lpe}~pNC_8e?o{y=D+`w2?s`8_Y%LI7Ixzf?DTi5C_KTgG z?Ow_zsy>Z)a?UR0Yz0Gpxt@N5r^6bMolHs`QjuUK8EFvRVQ>}ca)d9yuw+%_CRn$4 zS1AI^N>k-A^!uVCc_`1xJmv(#u{j_3+VvhQD4bJj;6o9A?Wpa%E0(ES?3-e09(w-L z-*oENp~@)KWCmdem+L)(s#gF1#65s>j620CRA_Po-xzCg@>3`h4ZhI#r0#xFmSWeh zv0`)=8S2?k$MH?kJQ%#9qO>kos1^w^x)->XnQ)3ow}gAkNVAgu#duTBjAPo!+n37B zn*y^FW*cNPdQd-rN%LTBxb1@Ev0Bt#F@*Rm>?$QYT9>)ZJT|u#q!1; zfckpjgxLNI5T}lUP%<6FGS6XZoJy+)yOK(^3zL1J#9PD2&@n*#Fc?MdvK-4?j@8E8 z-74oDdT1>WX5Y;~_NN-|>8{YS=X4d8sZ}A})Xw3;l>KL$Z*sA0<^|qE*LfX71f^!2Z`P9bC_V)9_=E%n$6P0qypiL?^62j|s~2hwSN(+XrlUjBN-0+cLYV)TCHfofX! z`C!s|%iv?-`8(36`6r=R*xv;d8e1g-A69tB}F4Uoop z=uoA7vmOll-*ro8!3Ag9h*3|P>n&fQocU zG&bpCaVvsWAVP?9=qy?duQ6oNWU)CMlzacg{w0s4cQ8eDcXE$n?niI1ZH6^}x0VCu zU=#H;MNzNrON~B(DUM^C@~f3y7o1Vy!l zlSq7F@FY!h)P;GtnJw9y-ZK!|f2~fY+Qm`&Ida7M7$t0B_9|ImV@3Xzl#Z;KEzY8g zD=D{)vR^#!dHOAi87Sto-@t1P)6u)}&4PoC!dvjIuxi zs!lI~*Oqw?9T&UPU2dcT}gkE*7sLWj>$`H|CRqG#yV<(h#DLN zKDg7%!+!*NxQ&*NT&{9xgC z%~g0#S^He@)2+vQo>-9z{~W59)d^QiE1|uAaaHaH`UWzbWcO?Ogzv3F%46BM%ni=_QnRs6fq-xz}3uqMSogo-7 zvE9hIF2Z@lD|Y+3L5r`^iv@FIABg2{YT)JmGw{+Fx@ppv9Ro~aJ+Te8K4ACu!>l3T zlSt|dZ=&RNB!SYq5M8HR05%EFAR3NiK=K{P?WbS&X)y~bkJWom;-PX4!p`#}D*!b4 zbR#HF0o%z<)9VB~cthNk0`yWmBEWJ>o&;g9b+L{|iB5hK_Y^8w0XNsdLl3e-$TMor zbHc@)#py2eIK_Gz2$2c~M>I0Sf?M5mt|fY;M!XZ_qwmaYZB<;2iK@{6)PY|&oIYk3 zHF2fC&l;t9L2^OYc^?T!fKc{_MyxA6KbceHXP3@T_{-tl_!AMJ?4=m7wf8-dBj;SE zw%FaXkw)-XC~kt!`d9E;Kdj-n*SQ838WL;TO#w286O`*|W1i-I$ChZ+%pI^8`FXyh zjH%GKpNs!yocZT+98+=o16I%O>OE%BK*BW;2t`xNby%w~L{ulAh457EX0J4UtbM4z zM{Pujgl@r@|D*>uzH&ZqrhZPfThIJWej)kWfdp_?>p8=)6y3?ZVjZf-;W3<7y5Zd~X zWmfb4>?O0Y&%a!%X$u8mK6QSg(kTG+`Q5>!oHYTawQW8U)Xf!;%85AwcQqoqlziaS z9St?Z)*p=Yxx(J3sak2DG_*X-LAAUm9MDM1=&ey{(9Zi~W*wnqOC?=FH5toma2;nl zmYOaP>Uzjm5MUQ-|QpWZ7ecbv3sq|#idCbI;v>W1WkoEL|h&&Qg z*rLCMwuNR*(>3Ux%KVM%YcBaN(i-9dsLxzs+wZ0?pkz_wuL&?52ozyKYr$jNP$epf zc8Bm_^0>)VGo#ybkaBtoZG=P%A}I|NSrfWsxpY42?eh2UxRo*r77=UnEEc3-ef~Sw z7|?ep8HJJ71LrLlPg%xf{rPjimUqrunSjb7U93!vM{igt{Qszq>)d? z=R+wYZrq@oR+=E4p2O#|J%C5+CNhAGtsykjuy*Jg!@l4r@|{M|*M)o<$F|jahb7R@ z2@f7OHYGB@`fxXDMlS-f3I1Jaja_^0f)q*@|G_)cq3c3xs{?!kA*j@5LZYW9VZiFD z>X3L$(y5p|guk#Kcwgm!VD4Ou_ZsPNzJ*cSgt*&Z)%xxFjl{@5<0|cWq#~l9dh0Em zlPV$GlN)mWWTcAwtj_EQn6jlX~CzUF)C@$SKU>&&}=Wy({9vg`3e1Vb{ zV&EMO$2dMnuh68hi}bVMz3Nfd^CZd{cmO6^D)HZJpHjvd-}%GmE1v}qRahqdvzpK{y$W^>2}&dWUVmHoN9W_%8$EDhFd?!6A>=bU6b^pB%fMo9!rz1Gh5Bstgv z6!Lbdxi2TqWqns_H(~J=AWb%)hfLY*jVMI-a4~a-S<@f;oP#pk`Q}gbim+z85m=@w z!h!aka8dp6)hW)F2!!s~-V zBD$_&Nt^pZbzc$$@AiIIn9=?U>@9d(=*;`Aa8^&-NZ%X&v?b(c1^SiNtJQH#hfl~0 zqQ*0>fCyILG}kwM80yS^HpEUN-2nQ&3`ms)hl6k)pjWFQfO=fwn^O}XN&hp_QgI*{ zC}t6*P8E&|4J=Xn_v710!0x7y*$KEcHqS~(*$_i&FF-`1HT2!?pdmw)&?n-u_u{i4 z2mC%N0o*%R>n}XkX?LJxM^X6%2NptVs-N-D#r^7}Rz&Sw0FKK_Rvrki_Ks3}tiJZ8 z-{usk$x|SMRx{J}8Sba{MgvY3#0x#&P_G0IR)4HOnBg1vHIyyGg}2 zGar_8v(nP?u=i+BLrrMnlXXM>N`goDW}r7KVoK5DMY_H)=Vdy((k4R9O8IYj1D(oc zPMEc=Vg}qGytD7YE9=zdfLS^ducE}hWAQ4#z0~FG*0?7C=PwW!KAzxtZXjcTQ|v0( z8qEKXD)-O&cu69!N*H|pgUe^dEwUCvhxp-va?!P2G*iLf+4{>-`5lY^L!6#5Gb|rv zKlvUA$e$qn)&rWKg{@wE_!0yjX-8l^8VSEO0jlSwH@1TEXyj*7g)C>h7*N^Ee}^2hsHZVL?a|ByT7;#H8MO6!Y{u&$t`=Jh$?!Xx+Co}LUfmS+@yim(6y zu^w{!fNsWiNMM9O#5nHy4ozWb+kfN$V#sKK>_=G;7D392jl7lcEkMap{?U;n2V%9l zAdy_N|2Zt2kw`OcOA!73eezBmL}>n>=Vp0VZ9F6P?~`r{BUl)Mt83A zNi=vqqwu43%{>{O3wjj;t{zqF^3IT*jS@pa}Dz#y2zF04ZM1edDjmZ!r z3di=0P%(RWs4uL!8VnUZ6WZf3pAh_ndQY+lsHgDQ)$^}RtsO?LJ-Gwvbe8OAe295j zY_pPkC*zgp1ubM7Z2U8PMcXEjvQ*_$!+-HrWPq5!$tcDxUTXY%b*bd*tWD;>tZ)B5 z1ug#F?hko5pf``HLhRlKVY`IBCcMKDz5lnrpB2{Ia{DcSU^$P(74NJI=sL=r9ggRM zonYTy_02P?rg)U~&92YyYcFUQ$@FP~n+W@3vOl*f5HKHA(@QS~_j~F=T%6Cen=W~a zhq5$c_omilB3`q~QGXWVTCV=ti8@$MKbhp%g0*BUcy;uBnU;~m5pttqnU;5LXRw-oo(K=KFVT1udwEa2Iy-X;sbPwA6idqZ2TMkTOj(+@n z&5Y9ingT>2H{}O>$1Fm(@p=84GS$9hz8P*bJHe^+M6pis1Bdb_=CqrHH;5{B9hMM_r3B0F;(cT*PYGwXO|M36qh1ed&P|%?R^OKS zdN$YY7XHjPU!R6jeLEXZ;B3!DV&4n3+8en(XO~=z2&~814S(s_mL;wY$>#&PS#4e8 ze~TQ@wcBiWwpo$TNtdpHZOqc_DiGP&paZuzN$L9AE@a>%%LUy0L07;mRoPSW=vh#0 zkonpu4UXZMrkbKSUca^o|RbIN5S5fNPqx9x~&XA#(II8EGjO#_-^}HVYR2fbwtWle0 z77mnu*a>^|Z~f4P)(EQ=Z26^+1;6#!4cx0Qdd8jZWU^(TqM4D*?H;W^l|%Uv6I7b< z@XG&*NtIYcxhu+>FmKx9c?mIv2t#<`o;ktLK2Q`vGp1BKfidEHYs3NJ^xkY04Th+# zN_=~(d)gCS5&+}E)+o#n6s*q8mvx@MK)@fCMRQ|-HHeL_WsmUpLf2}jC-A?m)` z2IpzQL0Di}9tD4@`Q>NrUt1-7=lR?{a*#s&5DIn6@ z68mVe1X!)a<$|=UHe_%|U@aorMcJ3C;B~DL2uj2mxgmDz@Mrs8j z=|u!x@6EJFAFlOJgpRhq17Fjn+>9`IEM_HTdin01sgl+52L+O*nIgo)_*V$+UmQbU~Ilp~MV18U1X@=5= zmBtlEbrjXov&ug-NfbD0%veVI|EzJ?SpH1#_xYfC3Am<=ctd@u%>K6w zL7JrTasRgIUn0+^?p#*c-A4@HrgKc;m*S2;Qd^%ozE)Gq(D`iI_juY(S6FsCDO$;N z7@VvB&KM#3=;wrSM$2t)zC=$&3W}sM;E{-RVtTR{?zPO7W2Q|LxM>Y(*~8zXJxF^P zy#>j!RPRx_XB|x^87$L0SOZaPX{78UZK)S%Exf`#OaEATx=)5@~ zTyG61b8hGC-uM)jl9NmR=hosqAu7&=lH{k3uqqj%NTsd!e=Hv`gF4|cdHB#E&u@az z%XrI`@Ofvl^F56@p;L$Qt(>KVtcr)x!E$_o&kVTJj|^|hRcp@d8Fl;T1ixl>w+OjE zSh%GE-OXtU+F62X+R~6we$j_i#w~2L*pYd*uH4 z)?#!?hnP#zk5{wYM7PF%GCNGx3YiDrLj1O`*yS2v-t7)#dFnOe`EVw1Fyr@zsd9rZ zw{Bj*sZ{`>L4NWC$$xu*v*8hj@3(mZHk&*EF=cg^F6JFKi}bu18FYQ|kM%TEkO6n- ziv+Hj;2Tl#1ec3Rp0-2T3U?{=5nSFaN({44Oqd<@Ci(6_PqiC=0>e+Hl&KH_N!vqm z!tN&wk${m94d9}ivOsOr390ANucb#<&-(DxgKPz!!tEMQ=* zk`wrP4-#7?Y$2*2LGY$(PSMj(2Pc~aicx+sSM*oya5g06-+v`v>uGG2!Q-l~YL^d; zu#b2sf5GFE@{_O+e|w(@S5ZCT(Xxx%JgM4BQ^bLWxVlgbt4g7Qqk}J*WEh5j<4-Rv zxPy09(ZtE2;a7_10I2+drg*Y>pJJf$w#{QC)+UY7`Gr+oP}8Ou0Z4X>>8WAK;~h)2 zPYGpch$}%&Jr{`?&eLJW3;q6+(UaDz#L|<%9=rD!#C=BsT6hWax0d=hRw=J9xEpK4 zP8d0z)>D!@Z5t~9+S%D}TMu{RF!(5JguS>k~n;L?`6+vqjSSSITxnTw9c`>JEBeoph}6 zWHD-b@huSARI{;1!{QBsCg5awkrKw-o|nWE6zVo05rr>QARXebFNm9p9iO@Q;+3Cu z>4cYh)_}jvtCU^|Z1yr5yr`tH5TFo#-A{eO28jVK($Bzoka&5_lM?M3eY?m)MPMIA6) z^H!E=l85Olv6RQ=;O=U46_(nR_ehDsO;8`HJGa1Ze> zQ?xQGoV3>h8$k=g2T*frcVYf%qM|uY^;^|aA1?Q-0WTtu%hL6USC*yy(ZX$KC(sWO zYe-A$R0hleCXR}Kz#t*Ha0*TAP4lM=wSQSRVQ^1C7Z6Q4B>>5|Qmpb>Wme_HRa(Yi zP2W;?>np{s>lP%KW16glm2i9P$Y-Td3^%l)P=T1ytmLSRZA0}DqN{J5BY%v4i`r!4 zo}UE9Q;ms?Dwq5|k(<&AQc^;nPJ{W!Ln4VPcQo517oUc`JTTLN3X`fMz@peVs9Jgs zZ8td0ArKaAUTg@j$no4e;^d2F@#|7j+jO!p9y@~68s2J~&YQA-qJ5)wL;Ym}E)KUk zpr;@-zoOfnYe?b|Rmv%`7p1|Aco$DOZsdPg2CFIOv;OIFeIw`eTDhxt1QfwPR@wxQ z)Ey}oyk+{4_?R%-q$S62(^>(VdI7-VK#7Tz9 zxj(P9@-;8@hfu1rO@mHhcTmT37lH_^VY)cmNHLP8oJ%0NNe<$M?k@Mcq8XQZ1A!mf z*nWobp$R$Lj!w^J-k8oBk7rxk%}S3 zFj9yR_Ff^P%MSz39|2*}#i0AM{0hIEkZ~=oQFE&P#xb z=?N83RGk7WNsry;msF;y*DcLlqNf+dOa)JK$(tF$zk`kpQpjMoa!mlhOjN~ktN=2K zZI`@_MtT`{(KzI}le%=P5q&z)BwCUXfAW;$oZ-mDtcX&>>i3NB={o%AlN?|5jk_!@cpqWQleD2Dy~nd%eMP zO(QEWnk9@$e9K8;afh;hZEfa%9_;b(PH2X#W9I= z6qZ`?*K6L}qm?!qq?V^Yt55$@vIutC6@WsN)Tl~WK?88>)ju)Uq?Tv1*zh?OZ-6ui zhLsCaLTtuITd@nG6vB9v3#w1+gJMbRJl)woC3>9_ATKa@8J;+v*l zQ$BxmtSA?{5hq3oSsQNR5a9YgZyxCz7oI9q?Ayw41iro8&Ic4?PdVRE&~da)K^o(f zSd7puuAr-Z1jNBNxIzW3Z+|2B{nOX$xRaoj$y`ViG6P_bTW6BfAr)CI;$b~12Z`Od zS>Fy9{|1kZ7x;8%I!(wBJ{&>mDE)K}R1DcTes~^cC|F=8eDSk&PNeg?BNPtPbTh;> zO?Gd&!V7)i@gh8rf7`bg`MpcYsx}_GKh?i6Vn0n|7vXZ~*PHVnte9RWy zXi6}3R7!#;j^H^EV!W*C^<;!gNqkRt^a8dRM!tCj-Kh5Ip%VBV+!2)j8sn1NGJ_fr zdu?rBHni6RR=G^jAAsy?7!l4BuPHWnggx_Pb-37WAudH=J+q?R}cMSPc&pKpIayVU)qLeEYk`rQ{6!oLfQ zkQ$%kGkP@*iuQ#p|3<}C*31e)E}4l?8c~8MJ%Za#m15NT zP};7=>x-sNwHlT6>Y7IR&86h^BR6)1dKELFr z&_}HT<<#9o6C0$Mz7T1*a7!m}cI*af8@Sl1a&$ZT?V~%kTVNBx} zY}x^Sd%ys~$nF>-3kkLmeGKdG2mN{@P|ZgT^c$hzY_X-#{t(zL@im*D36x7gYsH{T zD-3NI-0@G~YAKxt7}281>MCHWIpUddF9PFiG~3kjA$Re8Hu5Vo3cDc7=Z@jA3(S|+ zW?eh|tHCd4vjOsO4ZE7L_exude|GV~S zs1apCzO(G$R=z7|rBe9TL^Pu<0n^{(Fn*JLJqw6B1uM#cW$z0CiqcPtq^MUdFj!6? z&%VL(wkate=LULWw(kBgax^`L?0|@nQ^HXx*WK|u!%f;PQ=wma)z9xA<_^`Wb*fF2BEKRH zww1;o#wXb_9KnAOA#Mr!QDgbz_35@Q7PvT!AX<*+^`D()j7z);h&o>DO`Hy`%hwts zHE4j?2{R!)W6gUv%=_+g_Fb7!2mRUZWh`R#k&V|@rhD8{OhZWV!)0r)K0idK%^3U; z7UlMMOD!UJ2&AtiJ#uW3`4MQ!t7zU1Pq~&8x#Qv!Hk;c^|0D%QO*SRSp<^c4+WWig z{45;*CjBtcUdvoFJs;?XZBdWHMF?STssrvz^V%Yuf%fKZp^i!;VuJOxFPF@MtFhP= zHg!ur^QMp&Ochi0&Tncd@6lHkypDFc%m!ZW%+;1h)<@jRg+^%MUL$=|V3ZE{^>oh~ zZ)b;8q9?&&07*&N1V4&ncHKm8zl(W*u;{9`h?hg#f{YfekxGUt%p z?bWW{*r}C{GcW;h(Vz9^+s3p@p#@!EsDu&kD40H|n1hVzbI>VspHtI!s3T2`P@w(2 z?Cvk9s1ouVUU#%;`yih@Qa>@9GS$Kqk)OEOINMwZ)y0aqW5x>xZ%1=HoZi+ zi$6LnurFhe?G?5t_fQ%xe6`&9!qKgAn)pE$+LqycaLsA;*U*>*$8RNCz|Psz@gBGK z?5Rp1V2Bk>aE2esST*0l9vf2?3E!}9+`s7JEnEI-Ad(7sd)k4{+MsC+-CD*s(>ed8 zX^#ggA*;w?NPS&$hjo-s_Yk28w4=DwA3Cc~_I(RM^fZ7V@;h`Kp{YG+$UAr~(LU3n?~BG$m*m^!U~}RB3X|v2E>MJZ}k>TE_x<%WceV7+ zzS+g97IN`hua72={J94Z^H!<^M+^dlGsFW+O?n0zHjRH+L4#=aaE{484^9up-56i&M9R3SVXfIws(e|}zKIJ*$nN0A3cgR~ z>{6g0_8l|?(Liw2BC;&xV1`ToXaK28GCbs<|BZ=DL+9JKPT3SStJ9l*9{$Vnzo93& zIcB@D92V4Ra-o0As9vh}?Ln_0xPX=l{d=v$8b9pA`7h3QvX5G=D3v#E2PiT5U2a585Vt4H6gZi1&JQ2w zofc!m{hxnFSjmFG?l+RJ?Tm97%j#&Lo?OnB#}OiJSfUi7!(hDF9_ADDgX-W&;2e3F zF+DeDAZWtFl`=kFr4{o)LdDj?uJE2QOKz~9Z@fG{An`m789lOUM79tD+t0l|{&u-Y(^_4DV)}tNQ``TDgY~?P29!QWfv1q3N*{2kn=&-}h%oog;``1a_}^X; zrp-(Id*;!LphtbcaYJ^OiMYvQzc{}@=s^yAPzb}uKQKmc2_r(NMLs+(I|r-taPXuzWvYI_w{oeH{}Z_) zs+3hP0m29pw1{~kSb#5?2BoDS0f<6rbFrIl>DOQ(ZfY@gFh9YAVi|;10Cbxy1z}9P*e)=E```@l9-+bOw?!Uf%cil`e zq+ijO7#NG;f2aNaT}!$W_JTL|{^BS5ohE0(+J(s~0J*Hvh`qHRGjypH^*E(#h32hr zp)2Q)KMy_p`*SH_`eKM@B4g_blbZRB(a`@={4FY$8&J7k)(OGI$qzdMZ~M8)co+bN$;3K)yWhz$@DtJH|1@cNSl5F;-S0( z4iyW__jFdg#pa{m_h8xMG)izua3iwbEBqG)`v`UwEZk~SZaIY0Q!UrOPP=$B4P3V_ zYf(IPmB?Aws6hdTz+*Pp?&+}!h)0O^vhBv5!fy8HXP|*Xm&kUxEzoYID>h<@_iDbo z862K@4C)Mixk#6thu`YQLcI(dVm&f|h~%f~)MkeepTTGq%(z zgOx+F_}Fp3MC)%3-6;V*uf&;XOdrE+%!h`Ddmpf?g%SXt9=;=oI7qShbrWj4!rWcC79ovnrHc9;W7e`+6Q>dF&fhU(yo@SwlIx|{*vfjwAS~+ z6t;wFrp|a9=V&W-6XKP=Z=$9A`cQ?eJFkH2oO}-)FBWG<$`ngZ)NW?+$U_Iav%LEXLr zTw=2w37)}1SWXn&n7U2iuG9Ajh`eL?ntIy<_VBXI$mU2%BZXqAaMC9cn(k7a_9;4* zQLD3MdV&Cdkrl08tbx{n*_C@H-iM?pY>Gl4&d4-t!$5J%e?pLwPAE5l|mvTS5MS zh1I}TT35Uy5AUHpGBeDct(3TfCe3}`(c4Mnk4xl#`ast|xcRh-ddVn$V^k@5_NLCy zBfU#vAp)OAW?aKT1)pLm1!EfQITwCdP+$MY7@$wd5zhKO^cHZ#Sjy~zJ=*S3j59z1 z3K6+umx$hE(Q@RMq5>IiUZrRHNXXEJFDNR=9tV(d5F`s#R_66dtD zW)Jham3q#QWNbnvle=T0{4WDI4OMn_w~jNfggse&bXwX-*To=9h5G)U{)IwXC3fe+ z7exGutev=UUWMUq~Nnp~7nT6{3sV^)CJgdhO|$M~GRaxl+C>4;sa4Gozk=33`(=9lM>>?anXYsG&1rNq{l538FhLct-p4||p$P#Zq>6{!?5 z3%kg*U&|44Xr;m)zdd4wRHmr46<=wUSb>vp*z@Lx-I5zb$U|M67u&;?!d9FFVziDJ z-g6%jaw%^ADn%m`VhELI)Lb0Zf90|7Y|Mn9w_qH0aTeoGwsPnCe zO6R#Gi>MUJOmcb&n04y9NsmKOJDiym=rq~I>OGEsSa>_c(7aRuZm@XaUxB*Qc)o9T z+J&OKUqgLXkbHnukM+_f^nykYWBpCv;Ht@Qz^Kt0uSvA$xTz)0_eBcXGn1)mgf-M- zZVtxQlpw#CxM&6KgLDNx03}Ph&K|tyUut7uZ#mv;WJ{3F!>A0-NkBm$dAaj}82vM!PvrVj*71@$=~vvCMFpA3 zDl<9IFvDV%`rnFo4{?s5r4a2wC1*jog-Q5Tv6!hrmfPXcZ{wybC(nE9A8-~?IG=f@ zSQv#<1$zAQ#?>~*2;2leckzpv={f7N&ihu{&?UH`pQQimUJZ73n!#jwQMnIJ8U3vc z_yZpsrOqt?#*5Q=k>*$0-&)Ro9{+xOHMH|m!)OMCwAUMVaYSiadi#;Moj*U9&i*~E zcom^-hnx5{Uw1izMR;k@uS#Q!i0v;IyQzKMHh~T<^)Q1;&Z?^qtA|AM{l)jcOx0GNlZ7_1dmn#Gy%2aKl4n7QY18)+{@n~Sba6#TiWn`6r&2!h6yDvEs$_KQ z@Bj6VO3s@e8uy1dNkx;bw6Q>*6Z9gg1&&hgfov>R*Kz~mQG5IZD_!vIKd=ULxg^@* zC{4LrPrvMA#_XGXrjm4iNI;PQs_k5CA;H~TVek@eWS>k0Q%i&<35quV1M2?{A?R|WtFws}7E@@`1GO;4`JU%@-2^;)>La2zYbI?k)962-o; z=rGpp($z5LORPYNQBCXH9Ri9rCE?>|{9xHVn7DT2mFmo7ZO1-(-Ydx$vnT>}^S@1e zXycP{vr)}`uFhZ>o%Xj>EZw#V*S6ZzceY7GJ?&_NkaMF~o74G#=Eku-8|KhYsm3m= zS*2=rQ*9xXmL2fByY*hFl}TG}1268j-TQFVPYCssBdG{9+mqtZbd4;?F9yxB_h7%GjYU9J!`@-o zhE9M-2%!kj0rS%$*qfwMzn3B?LWi!d-gK@dd(SyRM};4*@SboSV5))ZIb-U3tVljp zW@fsBSD{->qU6iuVK8=T7(yFMlg)%U&9VVS!|^xy74 z?<>7pAOzUghX^=guVO;=yge)c)O*5CjANcOMQ{L)M{1^!!nPRlNz^~Y8}pv=fSzgj z3XtNr!5gRwO+Ma|{9ElBTY(Je@SMD0CM+ngbZBsr01+Dqo2lIfmvU90{h4p~^gV&D zfV|F7SyGJ|Q>hyUy8vHtGs7ItCma%Z|JGf~6bte6J!yVBYpW3FZ5*;!weRnV$vjt7 z5(Ny`;FyN-!9_rF|$A^ZQW$|{u@zh6i>0FK#ir?`3o(TPxtFScMZW2e!Aj{+)Ei&>cvX( zk5`!lbYynNhY3CeqkptTCi>{#{i|IX99uO^Cg^P`QOQbT(v$f}r~IR|#u6Bnasr&9 z>yhdouXbf@lyT+N?y7WwBj74tc`PElS39IaRAZrG+XxOjaRtLPKZL_^_5IGmE$_{7 zZyelcx+3Rq)fN;hf(uN*fhhl;x(LNk$p1CHXno*sJt91^JB`eM##yesgDfxex!-I* zy5&$U`gwmxbPC`O=kf%SCtrCz@EXU2VpC=fZV~?CFpEF*uIlO6PZjsIY{OfW3!lSK zmI+pb=plJ@e$l8S{2id57qrEEz}L3I*$#Nc?GU%$zHbq!u;QOX1}PAJ=pX&*ZuM#U zrpQPq`T*YOti%#E`FKja{oQ#&?5ReePvz76c_Uy%{R1v#nKE_BS^HLB{aJv&d}0mA zKi(QT${-3;Ko{lky&oU<=(sAiNa!+Qe#n;+fPtH|E0OOo()9R%a-bOW1TJ0lb+14_ zhE$*{8=N_F;~H@!>R+=@v4(Gcs*|Yjze|t6IYfWmw!xiNo5<-s;twBKo-+Y4mEfyT zg^>x18lyCgqjQ%_N?#4ojLmW3H9M5*2E zt|64L+unmVBfg13g@Shb7CGn5p`0JA5X{9+3(Ml zBLn+Tlkv!;BUMnl_zSJH$R|S`c#)0I{^iEZTAvn+UXhA@l@(?4;Jwkjsaq~ZrV8Z! zcD`f#d)`kJyU7HD`Y!PCR$@Nb(|gh;7pTby-3COh@JEDdm|FITH$29AO zW6|GXW;zY@y8x$SV>j)m4x!){AOh&r@nCL_WFPj3oLL@Gaf3}>BJ;5$;XPH4?qMc+ zzpM0}){k=}_JZZzlWc0xDIAs}+V`-veX@dLX=bUD3IG(y*oohet?Gvuh$S={4G@o- zFziU>1-un2{S}L)o)*Zm76t7ML}VE4lGptLm}uA=HCm(+Y}}lu>l2|6qqnv?=5%u; zh>1;iT4^aherVu{N5A+juIM9a-xb%`xRt2CnM_drtZ+Ru=l9c#u&@d7kJ@B?NEAkbFft5y{v+@lNVlH)jfpg<^O*eZ z_;+x(NQKE|#7<%M=P@uaZW^SDfaK*<8Lcb3E*!s|5d%H8RBq+`9G$hPt(jZUW?C9e z@NlcCbGft!if)9^ga?%Z34tm-J_yaj>>emy#_|)3&oIB%y9DIK&Rm{iNcS=l3N@L; zTh{N3pq5zT@v2uO{D2FXa{z>psAYbwa(HsvUs$;)Ahq&h9(v;JodLEfYd}pS7r6 zI-`32e6&j#fWS4LP!WE5Noh}QhbQ)c=lgQ$p!HT(#WFdBSE4URO8gV?tk|pxyX>uD z4L!O;RQ}*|Y2cEvU5VW%4O(QM>KKF@l>_X8ZR~#h7JZMYf|)Y-D5XM-$Td;@@ZY`@ zP<0BWvz~eIE($^&(z48yL4D}iNd!o?>`~E|jPmlin5MG<31+czZ66tf{H^B9%*h3! z6S<5+kb6eC{vL?zLjy!)`kW+MacRU5?>SoHnRKn=eaLzLZgLq1%&`T!EHt{x2cT(q zu`&cY)@L6W8VWHmN0;yNj3`shTvg^;Ze|!3sfL`WCG3@`{CtkD_Dc#WvH0T$CnY~+ z(Sy}z5zHApVM#37t6Fw zo=>Dnof!n1HtRlYVGoh>gN4W^@NMH1uzuwMm`WCSKMC`n|BcT?dByqpPl_HY21Ey& zu?`v2t5^SB0#Z1_ib2P!Fiz7v0Nh<`C8>ZC1MnuKzV0V)YH4CwWX=D^Lt-qm>IL2O zV$Dg!baFHV^~9qgAH_;O`A7?C&!r+A$U#d?ngY!WHbV|Ve2=EO--xpvP5-PjJRZpg zI!i*BR+D7~(Pg=(deX~-a?qz5d~@!d0&tu=e%_)HBR~}8`xklpn$q}%O}6iaTiX*T zT;`y>L&e(676Htl9*de>Vn!SsU~8F z?fm3M*g~UwF6g#R1+0n>UTabCg)df5qIulyiFCty++Z9m`x^kJ)voux!*&{@JU*7~ z5dLaBJ}l-%5!YUb7NU97D#4wjJZQ{rA8GiJn$c#%HMFI$eMQ~4u@vK0M59KzSL9Pu zP&P`baJIB_%k#wi%0jMoWbRTD?XL^1A9PUq9!0AU$y^-&75EM`z=q$up(4>Qf3VI? zGMMW0AG`>j{aMZYtP`Eah(jYR$xwjOsSUkd!_#-YEicpC)?qS_Tz8fa)Ab<7JH|d4 z)W?ws3k*`esJkp~(lomjM@%c17ohVL-arf!6n@ySKm7g@M^vF7s&qN@ zbRjkIvH$#nhG_%-EDhH04n#b%l+(F~#2lCc=mip2$v+O1xlt(=C-yHra{QX^ z1H8AvZQ_Ur1+*HMwR4^&g?vy!#v9mNUf(ih%8}@MeT>gGH7Dw$h+{|U=-n6NDcmEd zywz)Kuk2aDXscrPDny(_Hl48xGtZ>PGs*eKOl>|ht6JI8=Ac5=qr|nzMI8X>FKN#f zOm5*<)p9lRCBW6V&7RB`$TOV0M7!Z9>>#hno1`(7K9ysc>0rYa+s2BFm~TS9y`hB?o#O@lEp8LoB^Wa-{UbJS2KSwj zv#$TBr}AFkeOvs|`^1uCgS9KNySU?tT-4xx*r3|Z(#B|@i_GK+VnqJ{#&oDX`grXP zuLS~d!+!CI1>Jdl?OG6>yw2i&lJ7|CDMGjAntq@_l$`0p03NQ4))&T6sp>P;JqQtv z<|`mf)lgVOJv+WR@ht13AxM;j0@E2VL*#Sja>TlF2iN_FmRwJr!?B-0w zi9B9B!R6cKJ&->E;DkOe2jQbx!C>Dyd+2FXFJCl@D158a_bZ3y<@=S{w*gU4_3#Jr zpl)*%AOY<8rlXJODOUY}2YB!%hovmrYN7xWv{xC(@@-_8?}4i7jg#w9%sSz^L%^1} zQ3&{i8aoy9`1_C#6fpk-S#Gx#lBd)o&o@v=Yzj{%ch@_dCw*S$Z~o_Mv3p#S5*76> z@3-jN0ZLwn@48Kuz}u--ZXlFQ7>`_KKElmv7ylC@a!$kN!mW)=}kw* zl^~bb7$w-9Hf_*a^w~YPtmeM5%?afAyJEEw7G2C4L|Pu79Pbw6c^wv20+(b|ZshUs zp<@m$(@5gZ9TM@>mAI@>XylJN=C8JXqf&k4YBDu$CIk20ym5O>EDy-f5V6M^y4jZ2 zNh69TecfZ9k2&=wW0qm^*Mxn4%Qo6GQua;8G|(unmg-lSsmoQ!k5+PT^5^Z%=L=S~ zMkfS=qz5TyLZ-Z5i3}gs81R3Z72E!FE8RI8O_%sdb1#;;1J9XlW!2HBebcb&*PnSR z;!M$a1`iXU@CoZ>!O)F#B_SYSzC9hG;YwNs4J2DYcl<&J!GVO?*38Ui+Is{WSG#P> zGKQ#69b@|w0{0KxsSSg|I!5@0sM=f-#Ws2GKkw8#ktdr8yb zp#steKWpvkw;S~ue^~|bhWW>0$i@k#}3F9L48vhp_9PT_gwfFjhb@lst)02Yjl z>;J;)6gkm8L3sIMd<8S8#h2CHa#Wf+DyI1M{_>r?!izmH&$F!m0qLXn;P4DSMZWmr z&Z5@r#q|Y+oj~c-u@&l8yXa+&lJKFHZr=N9i!g>00CGQ)eHEV2Hk#aNgr--0^t?s?#8Widmi=?iOq-zc?DhCn@aIEw&(Hn61j`<(gdF_?Oz@id7!*)Ha@E+(#n*EJV-mNqVVtJV@GGU_>t5#dVbq=PJjXxItm?wD9eu03vTxMA5 zgkZTfc1PQ)+I>FwhJJADj!$Hwf|_zvzPwcyeQP8qiUHSFP3T(rn&!s%Sk=pZ-ktM! ziIM zWPyzmWg9?h?bSf0X0B9}-prBR?Y%p>>JtmRKVTElb~xz8 z+}L6JrzG@>mkvZnB9WKeJZY!6J7JX(ZqQ|#Bo>q0o4T^P@|BA(M#Y?&}eyNhI6i9u{GJ0>fcSTUyRm|5BzO2MfE6W z%Aff~;vPF^@}1}6EA6%NS0ovOu3e?Im$SnE@Ba935~HxY4q8K72em6VmQ^5K1703C zFsyF>Q2tAmErOc_PcEvWNlJdD(!0@1pRN(dDQLb7^y1`7e50f!nrHV|&WQ0)?BRRc zU_xZV@kw4~sXmV(tG@**)SyL1DM@TdBvy2sG!m{m>uq9Y*^B^#_8L~~`FHD3Y&cb# zP0qX0OMCCRL-6fXll?LTvI*`k-l)q^Fi87c5Z?p5hO5Qwbcl|J^&g(I?JIlBvGUdr z)tCbxW4IN6uF#QA+&!(|?+lB2ZjjV6{p2AIk~g;7lxn$CQm}iCsDE=a&hZ@niUUm2 zl6=dWYCmibGH#OaE2g&mIL6cOC|8IS8X&b#O}d2ggeq!Q_s{0-VIMM|g?@EE>M!=a zz4%{xYQNbX`%;Hj&>I+ssJDnCHNz*GDI*D&AQ)ogX-#n2bs>@!V;+a)IXhCp9UOZ& zdhF%6{4Fo5;URgLN1DOYKBbh%f3LEcN#kIN$=+d;5yGzc@PKf12gX1B@aW1cn<}l^?PujPe(+C!6qgbK>e`7|U>o>Z&;?V^Bc{s$x!w;zU zsHQ|OgsykUyXzASlZw8j`wTgd_kNUF$w2&t5Z&?d2B;lMH>D^574;B*7TDO}m+Sv% z?tI@1+C2)v>e5_0JbA`$kNAn0{|#w5f{on|`Yu5qfEUX$Q&0iMsdwT0y@J76GR68x z>N_67&xpO%E|%;t`>`MSyPXbu0R8G1Sx7B>5CBEgOGQOl2^r-Kqwpfy|1A%Gau0aR z+Ilwjb?TjwFB+hQyk2%oj49vEpWz#)JDnRd^b+U|t3F+95YEkHOL;l z62VgXqyZF_DX_-q7fjTI!G7-v_zj8Az5a{Ut`Ay^FRU(VrzldTvn2eQO&ca{Z__kN z0iSV+2@Um=Xyn$4rG$SQN47@RUWP=bV7aCMvLDmQG_0voNjocOns2PlzUb*grbW@- zpY0y@pKbf4zcgKMn40;!sqhM;6d49;_%7tb6E-rgd>)KLSf`Lf3>qiJS-X&VA9t7y z)!ifyqVUHQN=6^Hert8sm!9ZVO8!l{-=vRx9$`_%OfvSg10uC=&h$%Z3}DdwDYXHf zy88Upg(HieL7OZOnIwOI$yE>1Vq0x6j!Q+QeVBah9>uJyQd+xIV3^F5C*psf_=~n@ zf1FlQtyv1;l0m(objSXEcJzH3o!%nN&RB=V1#iwttYLV*Q2(A^?&I&J=HZEn4 zTS{wZe93X1s@oL_w?cwK(5=a=^va`;3qCjC!b= z5J&_Y`M;0XJM%}gl3KVPyPYZB!Ow0C+tesqpcOcyIC!KUibB?Z#(bjJ9%mY{co`$s z_2tz#e$c%AP1P@o^X%2TY57*??SITvcELxmus+12{by@*;!}zGtA4|GG zp$AE`4S$3$rahqQ3nG8V%J$sUenN6Ila6*nTfQFFtzCqh+KvF37(b8CZeEMdW^3dz zzL&Vkh9CSJRwYexD4$iEXZs2_z&U7kF7uyyqd)_I6IReQ#r=zWv?Q=;x_j=AdpzQA zkU_3HCbFOv3R@1kq6IY;vf=$7I>txk=aM zSD3!L{?uP1?bjMO*hJG zi~ih+)BaN9e$&ZP1?5|V6MFiaC|FB2p@dR$p3OLZ&_~hN)O%&JlKuH>sQR)m!{~ae zp;~0@hiJmEB3UxohMj6b9oaYn3c`rYUej$QTelqYG|qzTLdE=zNCMT&S+1XY?+)Jv<0 zOSO(jZPklOTo>(GZ+uT)GlX;KwipSk7kzlgC>6LTF!LC(gE!SsCej$S9MMr@J;!}s zwF^aM+sejGzYj1)7;BhN5*P=DsG+3T!fZc&`_(m-d^vSD=YTq}d4R?@h_aBL0LK4%zjtL{^7hy?#z$Lyxgwgx9{_WHPj-WJgK>i_)6sm%;<6oh zTQLxO2vM}JQ@;aXfLEeo zYT831fG)Agj$w%1mWZI&5Fpxpg+RFs;m$?06tG{^yMebp=zrCd=D!k$PP@$^!_KG9 zH7g^KWU(oi8~4VeK>)h%)0>+&4-XHG6(TvM)U0MR3}J!Z zxOqY#TpjM<7slfu!T$sw&X@US(iu8ozY%Iq;)VIT{1#P&Sh=hoW*jxByW?~)pHF|k z$6u_U9K9hA*QvU`f?OAuZ}Xm{DRtH&C%NVw_Sfn3=uO!cS3ShYvqo>ln*EN}_X1(N zj>m6T?8-8B`ceiIJHzLr{Dzm%3}*h*cv ze1fuBzmom&vDA)N(OaA{EjX0DJ`??QSkD=!Kyu^NBf-&|PdjmXj`#CzUqxJ7q8a%0 zOdULblUf>*uKP!#^8Os8X?%4N_UeRcFTPGcE1~z{b8txTucwLB3;Vhzt*D8?*!jbb zW5&9gXDNe)Z{yj{t)G3`)tufh4KqBQ78=z922I)&HRxWR71JU4ulj_wM!$?Q z_iJIqv7?Da-oYoeT3ev|zCh0y1<Vqc+Abk{-B-y=z~K!hi^kOl&GhYPBE=w zV-HZyM_7+X59*>XLTL}cZ8Tzf079fAT?|YQ>=yx?Qj2lZlIfs;HO8*xy1;^IK91R$ z*&QYJ5KJPbB8_jdJP>pjX-c~zlTCZs*RQYElz*S|86@Ewq#KqPey3b?ntfO)2&`-ZDw z56K44(Osqe-(rIdr=xIRYvrW|PWl)vII)@RJdGDD1)ueHD{7#2 zW9k|dwAcJSJrz@{utD>G$oi=lwZmhlw85yJBZtqZ(i}Rc+Wpq%yocGMU3qD|{Pgkr z6z1+2_QYqEM5}bwkR~%u|EZTiDz%RR~K_1$R5uolyhIj1Xs^GVPW%NUcJ8x!d@%{)vj^k0m=q8SkG30 z1-n5ySb^)QtQ~LAc6N^pcc_Y%$Or{Y-kMZ4?86A`)j zaxuBOA@p$la>-xBy0Ux>q*52}aNjfE(SmNRH+MhK%FK)uy}NM3s{A*=1LAeVBk5)O zw^yyk?x;r#3qL2?_cS#T?#P==>?d_2AaQNvk zXIp!6eP@C77lI2wO{Q|+Xu3nu71ym!{*s4HeYK--Mt&Qhi(Q|b?sQ)OFP{B1MO@4q zH-+2eg}JugUHPYXgHcv*$$&2BytVouZoQ_Y^|iG}F_y3OQl4>q$s?^3nss;L?|;@B z6pp*TzGd*~mL}ho(i+%Q2W@H4%UzTKc!~C@hFs;;@~gYE=GT^WpBOQHnaZ^hzj94$ z9haOji!-zM%9l+_%1)qmPvE5s*6bK4lWC;uxTdOQjR)ADK-SGgfBW1tDASJ(1T>W$ z%B!lwtFnU0U_aJ6$oau6d*3alv9owIUS9)gE7>C^R zxWQm6j=weh-E4z#tbEL*ra!v0NN-X{&2v{ut!k&>Z0qY!HQ!=e3rkqQgMiMT=(_`H zufyVRoVzh1Xl^b`O1FtLUKwulH7xjS#_2hR8fpd1vj_6&8$A7+>9yl3JdCbAxJ?}! z;s&@e>2C&BRm@NMK@_@t>;}Qd&1Z;9bHZ)TR=U~ioZ;JfB(zkNrNKT?DFQ zQH)m@eJhjH`Ws*PCAT4E`q2RLL*d@w-b%MiA=P2^?(7@*`vmka2>S|0^)%So3}JKN ze?lo~s0>_no8$T{KMUGDoCURzDBb5PZDuevIVx%LMB~)<1lNweTVuDH=At=TfcHX)|FN9QjK$ zyFA-D{c_4RCnL4EZL?jVaHHsSOxkSZw9B5_GQFRI@Qq7k*xIAmf!bST*OR2N>1@9r zbaS=epQmde?n=n}r^-$A#^k4+*XHv%KYl;P>zzokd{^{2F+#20hr-sNnc@BfPQyT1 zSvgcQ^X2)`w#~H@r*k{atZ~f!PoJ@aQ|*VTOtU=BgVEH3h}~3$N~6hNnz@(4SFwa} zGfb-VBjRJw-QMxc`tiZg;X{QdHtOp-YKQc2T1n8M^we7vjk-{kde%2GQV2p*qu|9# z{LPr_AK)sPtey|DqMQsLqEOD$(+uy7|NS`u7Tl53XUFsccUc{21i{a_(SRSuxh1qo z)M=SG0I4j73YiL#Y46CUjfeJb=gZf2uB$=cn{D%HP0NVih+4cIg>Na?EX7DsYTFcF zV6`}p`Ns+ySS{0v-`||4wjtFs^2i4&);~$Pr8W$9^Xu=7#3vRkrV?X%fdjZ)-F#Z=& z{E_4{Zlf-A`mgU^3=^`H_>N6Ip{W|bK>8!u`OX#5zR#ksMh+9rPSkBAV6)o#r(2;2HteT2RI*zDbbh_TX8hIGk{*2RWgY8{8w{S9hT&+e}q9lMWIUBXpP&_ zE{3P*b>vimtmr#Ja#bQIZoG!`+&r<9kWTHhH4dEPYCIyI$C9sRW{Cq{h~ z#-{SS`lR*&iH8B6datU=*pAioCdmFy8;_%Gc7qOa+(1Ml>+OH%_3>FvFxPVLDss56 zHA%&1(s!T9szEcZOdUH_oK(5zsvNb3&R$tluXJLuYCf{!PrXDEn9Jgx_z&K4LG@n- zK@SmWE%=*=ZTJ*Azx?AC5~G1ZaiFklWS~$Zt*+xKGlxbIGp3^9_8v54u75(0RfLc z@QQ70pUDGIf`~g)kFA?l594>6XQbi0Fp48s?|O2ORwHzNSp`m*b%$xo`_{+i?0Y!` z;C05cZM2n8ItAa`DrSVJ2Lymn@NpS3t6od9B&EDKsZS%Q_GL->MwJ4MWd~2s<&MrM zT@Odd4}4)sMvdT+R)tZs@Wq5~l-jpa9bG8=XQc5p&YO3` zEskSLdZcP4TL1Yos=du77vb#rN<6q9dh7&@AFGb|ZG%jDz4FiMO2#xAJytkZ1jBc1SdDfrstoE8{j62lHYwFs_`D^?m)(E^&d4`QLfh0u3l zjz5GWA(NKch}F@Dq+dCSOUtjvr{FHvzGey>N3V%ZOJQ++79q8C*!uR4@n2c@Rfxs$ zj9EtU@|#$|vgfRtS6&Bg>BroTJ&P@4iAGJy%|)VmXrf%EJgc2^Fjtgc_GRHkBaG2h zEOkh~|BxU{u0BDM3IEN9QwDpvjoRrX4*7>4O(eRi1>a-U%GC-f)aPLgQJI1aCM@q@ zW|_=Is@;kfQ#`M>V?0kSlcg{%G~Pc`jwaale`rprDbo4xK?{~ZqBfJjp>k7!tNYDn z27{cVJAYuY|LDRpq}t14Jt?pl9HoHBMs6iJ;0Cx4lNHI-vz1!+0%lwPFGIAg2217v=GETaFRm1@l+^VVENn4ZU zvY^hz04mA6v%@;Q{0Sm-MUgm%yozE2dvDFiZIdarW!qG*KqJW{8#E`M|Z zp2Ktm6@>65^VTb3@13&d-G~bl!8=&eDQ`oWJ8&&OwJ81XXq8t}prIYXr60pW8rJuz z!Ang`9i@V@4csS4ed}cMx{n6cVnMx7uEf$^yQ%@iKfF8H zm7Zr&epyK@2jR~K3Hg<@A6Fq7uMv{8E#{dFiZC#iOG6a%>&u}o#lxe2fy;i5pIFt9+u)all!%mnry4(s<`BDp}GB{|Ktd# zvkO{K56r&GlsOwgV@Z;$;jFZ-r~V znnV+J+(@x62&;{pxFOQzzsc=Jg$3_Vz%>gEXKD+U7~YP}U|dZHIACCUfEw{A z4!ME(MRX9;(!cac6H-n6bYcn(E4>g^KUL9lbD`7O>glcR^L5yw;es&OEhl-nV|_On z`%XnL*vMm(>0!)g&!c}L82A6)g(dr0V<`ZBdigVWq9hbnByshbMXpwiG&tsk8M}WG zv&ECZIyX5Wh-?B%Y^wL}x2Xz@szGo17{vX0Li9YyxKYDvsbsgci!_3JwQbV)tj8Et z$XClepX1ik+RoJEYM1I)E@;Ho(%~vn*>&t1NaiOu_51nwH(^N-C?fMAZi}ePphqhC zKso*li^%mhX^kP*+rX}P2m)!8hVE-mMvu>xDoh{A%D$y`X!mb%OvN>d;Di|olu14d zM|fYV`}l}9>sMf;2&5P|u_iP>Vbe7CU7-8)E?=&4NwSP#RY+4mPazXl2K9p96Wo(0 z)uQs);Egg$7jVy*U@z-nim%CXq4F9iC#vl!Jz8K7*P~ELhWfZ{tRfML=Zb)v~8QWp3`#*S4?{bG+rxpwlcKj^yb zmR-&~mlx9h6xpH_?|MHu3TaN4MC`pV$s*;hzq7;eWv<-IlaqzH$V>_)aPAGZMzaOnyy0IMz#s-b9>)? z`i8B4Q1#ZIL-ciS_*y@jShdbRa$S?eHGaIgNk_xA3zYMMfl*LAo*hX)#+*i>Z)cQ% zPUhk$QLGqRLs#WUlO^TYRXTz3OP@o%PL@KlfGhSgyBBNh*DyMS01 z#-|+6VbE@BI-S4N#>YdGXOna-t2K$Yvvkpwh<6(KoEIoPFq?Ec%af)#+P!{uecE>V zs`AcEz3WvsMxe0!{FK81=!fH^l_0x8?$M-42QC56B)J5-6HUq(ifX2lsj#Y;WdLK$ z1bb)%7)P&s6G?Wh93yg~E4^{Dt{k9&W82m7K7Ha_Bn0sV9NavIq8E?vYagY=vJ<^w zcl2?edx~$WQy457j57NfWpYYTv5hl|3qPBfOC0!oZKu8+J?@i1Xr*(u0SaU*Umf!~ zn^iI5F3Nqc)2|(RF;~yQR`TYzbi02(LFaY*Dc@Bxht8R_>+K3FYEP1MjGldVYn>uK z1r>+$V9oX4vZH>OFzFR@$6}kKM>f>>N~zohQzA#{?^Jhwnn8@L1o??b<@ucy!6AEr zugtdvIY06k9J{5F|FC&$_i*&0jj(W%L0>cl@oRGKqo{pBhDY_kH-Rr**U?#w=7t8F zIyyhyU=?z{?PUhLX=TuqZv>Y8>?oa((^7mFsNSSkMu^tl^P7$o`xm~M?=`sE_3NPq zQRQuCW226erz-;3yVC*97Hq?zjV!Y3-8j(zrfyHI~?sJp7@&k|4+LxL6X-fneg(mCA9@MsFIp>>x zWg(%M44zO(X`$7KHK#D2=bm#3{`vW^NapZgaK26QcSGKcYQLdDs5}OFlU*N!8^SAlC5i$e}rM7~cQ1y0E^ORfO7`BqI$I>>=niT;9S|!p1dCRgt=&wmhF#i6T z399>{mH7iX8#SO)DznC4npQiNMAltpp~F^+BYBp@Xm9jhi`^`v?er#8Q^W7SorN~q zOt77P7n?abzhCtS>;5n(M`eb;XfX2&=9p#o3yYlsjO)}2ao?vrRu0nISFx>l0r&Fn zaUcOA+Vlc2ysFl4!y~I`U8hWxeh|_KMV0!}RJ^+cnz|xLA()6Y1IiS?2!H_CX#H(* zf1O<9wl}XADWp5o@q?T(v|6G0Xv~*;>0pSTq58&`Mm(P=#)#CI9OOd1PxN4-ut&%Q zR^%J;_<*Us*>fu)FnL^|#gUZ?W}<#0lmJ(P1CRksDh23T%bI?8{!!)18y4HkcG+3N zzTmp}V72QP{2ut*Q=zOJjGQ^XO+zEG@8$VH_su*1^;4 z%iMPDL+#$QcX z{6Xur&1eNOh5qiMxoo)SPHcVtiBJzu9+{84P+BiNoU|=K)#O*0>t;Ha9Q$%j&hhFQ zdC$>Y4(y@EFA(;vdxNiKrr&<3Yn4#NSq;g`>ruh=Tg)CfMA0&2J7$v@ccv`wy&41u*}}Ra_V6HNhftw z*hv>4>>~8#dcpKH?KMZ&GMNQtW99V;=h?V3Mz%y(8hIJHxPHsovf}hmFyacWSXXkF z?@k!ly&x8QOv<#+g3o==0_&Wh^AosBq@UZ|=0`s@%2Y1WDDnPNqQ^kL&SxQ3K<5H! zSoEr63uV8D7u)iQVjskNM}S%O4-rN59S~FT5HTs37cw%`%d@ZiUfwGr_mEHoPf)NDpKzDzbwu zsO5*g+F*NcM%c>_l4?!DBi0Sh1qAn4%av5;Q2d{H| ztmjfDkKDsjopNnXdbf0Sc}%$Ie}?B!(IiNIctR^&*5fI#dR=bdR-?6N;oS=HKzXxvKPAYlp zc1fqJGe;X7e95j{Xnn%8G|~Dg=T=Mj4_>7`m#UL4K$4g74of{!Ac|S=^M| z0I_qxCjj4+oNTU{Pv&9J`1nWzEq=Ek(}|3JpskRPVAEST$^>Mp+FF=PEtrbf!nN=lP121})_Qa0uD6Swjn4V$ z_jP=^4CPf6&%J}HYLSyB-qLx(bzV0gbgiKvChwFiYjb!Q{Nqm zMwz8X^XdlSy26^cmDxWV;C&gvpbQm|9E~3y7}gMvCmchBGicT$oHowTI_nn7qDbi_ z_H>tp0o5*g8zy{?a?IpgjzOJd#lNgFex9DY^ULJ~zrF}2y#Jjhe~g+Kj<1(#*;J6M z`7Xpg_Mv`5-{kB~yw6i^nN_X@2+V&#Yd-PE5{qXHg(b;KvW9x9|8k7qtn_i?YW`S(emG_L)1O0p$jqs7aUF5<}MIC1KH zq7)(!*X2y$ID6wW$cb|Dm2RrIhuesy*ax__y!89OSBJ*x{+7Lhk_38Tj^Z3`9$HJ| z5?g$I+Wd>5lu0pJBfb`C1rPVAd8SUL^3|sq77znks!NC9M2*RXj@iEh_qA_5Uqj{VI0=oRyvdi~R4 z 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

o?SQ>O*r9PY@M7im?3R<>HEff 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 z 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 literal 0 HcmV?d00001 diff --git a/packages/apps/src/slack/assets/logo.svg b/packages/apps/src/slack/assets/logo.svg new file mode 100644 index 000000000..a39d44331 --- /dev/null +++ b/packages/apps/src/slack/assets/logo.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/packages/apps/src/slack/config.ts b/packages/apps/src/slack/config.ts index 8e8c874a8..41d624d2a 100644 --- a/packages/apps/src/slack/config.ts +++ b/packages/apps/src/slack/config.ts @@ -1,14 +1,37 @@ +import image from "./assets/image.png"; +import logo from "./assets/logo.svg"; +import { onInitialize } from "./initialize"; + export default { name: "Slack", id: "slack", - logo: "https://imagedelivery.net/LBssr1sS_u22u1YCE6OoOw/2bf2c0ca-4e9a-4545-5b4b-eca7d40bc400/jpg", + active: true, + logo, short_description: - "Integrating with Xero allows you to synchronize transactions and attachments neatly organized in your bookkeeping software, making it easier for you or your accountant to close your books faster.", + "Integrating with Slack enables you to use Midday Assistant right from your Slack workspace, you will also get notifications when you have new transactions and more.", description: - "Integrating with Xero streamlines your financial processes by seamlessly syncing transactions and attachments directly into your bookkeeping software. This integration ensures that your financial data is neatly organized, eliminating the hassle of manual data entry and reducing the likelihood of errors. With transactions and attachments automatically sorted within your accounting system, you and your accountant can efficiently reconcile accounts and close your books in a timelier manner. This not only saves valuable time but also enhances the accuracy and reliability of your financial records, providing you with a clearer picture of your business's financial health.", - images: [ - "https://imagedelivery.net/LBssr1sS_u22u1YCE6OoOw/c64bdb5f-fd16-4d6e-a66c-022ad6548600/jpg", + "Integrating Midday with Slack brings powerful financial management capabilities directly into your team's communication hub. With this integration, you can seamlessly interact with Midday Assistant without leaving your Slack workspace, enabling quick access to financial insights and actions. You'll receive timely notifications about new transactions, ensuring you're always up-to-date with your financial activities. Moreover, this integration streamlines your workflow by allowing you to upload attachments for transactions directly from Slack. Whether it's receipts, invoices, or any other relevant documents, you can easily attach them to your transactions without switching between multiple applications. This feature not only saves time but also ensures that all your financial documentation is properly organized and linked to the correct transactions, enhancing your overall bookkeeping efficiency.", + images: [image], + onInitialize: (user) => { + onInitialize({ + userId: user.id, + teamId: user.team_id, + }); + }, + settings: [ + { + name: "notifications", + label: "Notifications", + type: "boolean", + default: true, + }, ], - settings: {}, - config: {}, + // config: [ + // { + // name: "slack_channel", + // label: "Slack Channel", + // type: "text", + // required: true, + // }, + // ], }; diff --git a/packages/apps/src/slack/index.ts b/packages/apps/src/slack/index.ts index 91893cc43..bb6a8e8b2 100644 --- a/packages/apps/src/slack/index.ts +++ b/packages/apps/src/slack/index.ts @@ -1,62 +1,2 @@ -import { LogLevel, App as SlackApp } from "@slack/bolt"; -import { InstallProvider } from "@slack/oauth"; - -const SLACK_CLIENT_ID = process.env.SLACK_CLIENT_ID; -const SLACK_CLIENT_SECRET = process.env.SLACK_CLIENT_SECRET; -const SLACK_OAUTH_REDIRECT_URL = process.env.SLACK_OAUTH_REDIRECT_URL; -const SLACK_STATE_SECRET = process.env.SLACK_STATE_SECRET; -const SLACK_SIGNING_SECRET = process.env.SLACK_SIGNING_SECRET; - -if (!SLACK_CLIENT_ID) { - throw new Error("SLACK_CLIENT_ID is not defined"); -} - -if (!SLACK_CLIENT_SECRET) { - throw new Error("SLACK_CLIENT_SECRET is not defined"); -} - -if (!SLACK_OAUTH_REDIRECT_URL) { - throw new Error("SLACK_OAUTH_REDIRECT_URL is not defined"); -} - -if (!SLACK_STATE_SECRET) { - throw new Error("SLACK_STATE_SECRET is not defined"); -} - -if (!SLACK_SIGNING_SECRET) { - throw new Error("SLACK_SIGNING_SECRET is not defined"); -} - -export const slackInstaller = new InstallProvider({ - clientId: SLACK_CLIENT_ID, - clientSecret: SLACK_CLIENT_SECRET, - stateSecret: SLACK_STATE_SECRET, - logLevel: process.env.NODE_ENV === "development" ? LogLevel.DEBUG : undefined, -}); - -export const getInstallUrl = ({ - teamId, - userId, -}: { teamId: string; userId: string }) => { - return slackInstaller.generateInstallUrl({ - scopes: [ - "incoming-webhook", - "chat:write", - "chat:write.public", - "team:read", - ], - redirectUri: SLACK_OAUTH_REDIRECT_URL, - metadata: JSON.stringify({ teamId, userId }), - }); -}; - -export const createSlackApp = ({ - token, - botId, -}: { token: string; botId: string }) => { - return new SlackApp({ - signingSecret: SLACK_SIGNING_SECRET, - token, - botId, - }); -}; +export { default as config } from "./config"; +export * from "./lib"; diff --git a/packages/apps/src/slack/initialize.ts b/packages/apps/src/slack/initialize.ts new file mode 100644 index 000000000..c23b2072d --- /dev/null +++ b/packages/apps/src/slack/initialize.ts @@ -0,0 +1,56 @@ +const BASE = "https://slack.com/oauth/v2/authorize"; + +const generateInstallUrl = ({ + teamId, + userId, +}: { teamId: string; userId: string }) => { + const url = new URL(BASE); + + url.searchParams.set("client_id", process.env.NEXT_PUBLIC_SLACK_CLIENT_ID!); + url.searchParams.set( + "redirect_uri", + process.env.NEXT_PUBLIC_SLACK_OAUTH_REDIRECT_URL!, + ); + url.searchParams.set( + "scope", + "incoming-webhook,chat:write,chat:write.public,team:read,assistant:write", + ); + + url.searchParams.set("state", JSON.stringify({ teamId, userId })); + + return url.toString(); +}; + +export const onInitialize = ({ + teamId, + userId, +}: { teamId: string; userId: string }) => { + const url = generateInstallUrl({ teamId, userId }); + + const width = 600; + const height = 800; + const left = window.screenX + (window.outerWidth - width) / 2; + const top = window.screenY + (window.outerHeight - height) / 2.5; + + const popup = window.open( + url, + "", + `toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=${width}, height=${height}, top=${top}, left=${left}`, + ); + + // The popup might have been blocked, so we redirect the user to the URL instead + if (!popup) { + window.location.href = url; + return; + } + + const listener = (e: MessageEvent) => { + if (e.data === "slack_oauth_completed") { + // router.refresh(); + window.removeEventListener("message", listener); + popup.close(); + } + }; + + window.addEventListener("message", listener); +}; diff --git a/packages/apps/src/slack/lib.ts b/packages/apps/src/slack/lib.ts new file mode 100644 index 000000000..5701b4c8a --- /dev/null +++ b/packages/apps/src/slack/lib.ts @@ -0,0 +1,48 @@ +import { LogLevel, App as SlackApp } from "@slack/bolt"; +import { InstallProvider } from "@slack/oauth"; + +const SLACK_CLIENT_ID = process.env.NEXT_PUBLIC_SLACK_CLIENT_ID; +const SLACK_CLIENT_SECRET = process.env.SLACK_CLIENT_SECRET; +const SLACK_OAUTH_REDIRECT_URL = + process.env.NEXT_PUBLIC_SLACK_OAUTH_REDIRECT_URL; +const SLACK_STATE_SECRET = process.env.NEXT_PUBLIC_SLACK_STATE_SECRET; +const SLACK_SIGNING_SECRET = process.env.SLACK_SIGNING_SECRET; + +if (!SLACK_CLIENT_ID) { + throw new Error("SLACK_CLIENT_ID is not defined"); +} + +if (!SLACK_CLIENT_SECRET) { + throw new Error("SLACK_CLIENT_SECRET is not defined"); +} + +if (!SLACK_OAUTH_REDIRECT_URL) { + throw new Error("SLACK_OAUTH_REDIRECT_URL is not defined"); +} + +if (!SLACK_STATE_SECRET) { + throw new Error("SLACK_STATE_SECRET is not defined"); +} + +if (!SLACK_SIGNING_SECRET) { + throw new Error("SLACK_SIGNING_SECRET is not defined"); +} + +export const slackInstaller = new InstallProvider({ + clientId: SLACK_CLIENT_ID, + clientSecret: SLACK_CLIENT_SECRET, + stateSecret: SLACK_STATE_SECRET, + stateVerification: false, + logLevel: process.env.NODE_ENV === "development" ? LogLevel.DEBUG : undefined, +}); + +export const createSlackApp = ({ + token, + botId, +}: { token: string; botId: string }) => { + return new SlackApp({ + signingSecret: SLACK_SIGNING_SECRET, + token, + botId, + }); +}; diff --git a/packages/apps/src/visma/assets/logo.svg b/packages/apps/src/visma/assets/logo.svg new file mode 100644 index 000000000..f258ac6b2 --- /dev/null +++ b/packages/apps/src/visma/assets/logo.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/apps/src/visma/config.ts b/packages/apps/src/visma/config.ts new file mode 100644 index 000000000..cc28a8ad2 --- /dev/null +++ b/packages/apps/src/visma/config.ts @@ -0,0 +1,15 @@ +import logo from "./assets/logo.svg"; + +export default { + name: "Visma", + id: "visma", + active: false, + logo, + short_description: + "Integrating with Visma allows you to synchronize transactions and attachments, neatly organizing them within your bookkeeping software. This streamlines the process for you or your accountant to close your books faster.", + description: null, + images: [], + onInitialize: () => {}, + settings: {}, + config: {}, +}; diff --git a/packages/apps/src/xero/assets/logo.svg b/packages/apps/src/xero/assets/logo.svg new file mode 100644 index 000000000..b6d5508e7 --- /dev/null +++ b/packages/apps/src/xero/assets/logo.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/packages/apps/src/xero/config.ts b/packages/apps/src/xero/config.ts new file mode 100644 index 000000000..9f390468e --- /dev/null +++ b/packages/apps/src/xero/config.ts @@ -0,0 +1,15 @@ +import logo from "./assets/logo.svg"; + +export default { + name: "Xero", + id: "xero", + active: false, + logo, + short_description: + "Integrating with Xero allows you to synchronize transactions and attachments neatly organized in your bookkeeping software, making it easier for you or your accountant to close your books faster.", + description: null, + images: [], + onInitialize: () => {}, + settings: {}, + config: {}, +}; diff --git a/packages/apps/tsconfig.json b/packages/apps/tsconfig.json new file mode 100644 index 000000000..02d8dcc9d --- /dev/null +++ b/packages/apps/tsconfig.json @@ -0,0 +1,5 @@ +{ + "extends": "@midday/tsconfig/base.json", + "include": ["src", "."], + "exclude": ["node_modules"] +} From 92a0265010fd11835bfa93b4f36b35aaa7015af4 Mon Sep 17 00:00:00 2001 From: Pontus Abrahamsson Date: Thu, 26 Sep 2024 14:39:55 +0200 Subject: [PATCH 03/12] wip --- .../src/actions/disconnect-app-action.ts | 31 ++++ .../[locale]/(app)/(sidebar)/apps/page.tsx | 14 +- .../(public)/all-done/event-emitter.tsx | 22 +++ .../app/[locale]/(public)/all-done/page.tsx | 26 +++ .../app/[locale]/(public)/all-done/schema.ts | 7 + .../src/app/api/apps/slack/events/route.ts | 63 +++++++ .../api/apps/slack/oauth_callback/route.ts | 98 ++--------- apps/dashboard/src/components/app.tsx | 163 +++++++++++------- apps/dashboard/src/components/apps-tabs.tsx | 7 +- apps/dashboard/src/components/apps.server.tsx | 15 ++ apps/dashboard/src/components/apps.tsx | 29 ++-- bun.lockb | Bin 1001834 -> 1005498 bytes packages/apps/package.json | 8 +- packages/apps/src/cal/assets/logo.svg | 16 -- packages/apps/src/cal/assets/logo.tsx | 49 ++++++ packages/apps/src/cal/config.ts | 4 +- packages/apps/src/db/index.ts | 8 +- packages/apps/src/fortnox/assets/logo.svg | 15 -- packages/apps/src/fortnox/assets/logo.tsx | 43 +++++ packages/apps/src/fortnox/config.ts | 4 +- packages/apps/src/quick-books/assets/logo.svg | 4 - packages/apps/src/quick-books/assets/logo.tsx | 20 +++ packages/apps/src/quick-books/config.ts | 4 +- packages/apps/src/slack/assets/logo.svg | 10 -- packages/apps/src/slack/assets/logo.tsx | 44 +++++ packages/apps/src/slack/config.ts | 23 +-- packages/apps/src/slack/initialize.ts | 4 +- .../apps/src/slack/{lib.ts => lib/client.ts} | 9 + packages/apps/src/slack/lib/events/index.ts | 28 +++ .../src/slack/lib/events/message/changed.ts | 69 ++++++++ .../apps/src/slack/lib/events/thread/index.ts | 2 + .../src/slack/lib/events/thread/message.ts | 38 ++++ .../src/slack/lib/events/thread/started.ts | 61 +++++++ packages/apps/src/slack/lib/index.ts | 2 + packages/apps/src/visma/assets/logo.svg | 11 -- packages/apps/src/visma/assets/logo.tsx | 29 ++++ packages/apps/src/visma/config.ts | 4 +- packages/apps/src/xero/assets/logo.svg | 20 --- packages/apps/src/xero/assets/logo.tsx | 58 +++++++ packages/apps/src/xero/config.ts | 4 +- packages/events/src/events.ts | 4 + 41 files changed, 797 insertions(+), 273 deletions(-) create mode 100644 apps/dashboard/src/actions/disconnect-app-action.ts create mode 100644 apps/dashboard/src/app/[locale]/(public)/all-done/event-emitter.tsx create mode 100644 apps/dashboard/src/app/[locale]/(public)/all-done/page.tsx create mode 100644 apps/dashboard/src/app/[locale]/(public)/all-done/schema.ts create mode 100644 apps/dashboard/src/app/api/apps/slack/events/route.ts create mode 100644 apps/dashboard/src/components/apps.server.tsx delete mode 100644 packages/apps/src/cal/assets/logo.svg create mode 100644 packages/apps/src/cal/assets/logo.tsx delete mode 100644 packages/apps/src/fortnox/assets/logo.svg create mode 100644 packages/apps/src/fortnox/assets/logo.tsx delete mode 100644 packages/apps/src/quick-books/assets/logo.svg create mode 100644 packages/apps/src/quick-books/assets/logo.tsx delete mode 100644 packages/apps/src/slack/assets/logo.svg create mode 100644 packages/apps/src/slack/assets/logo.tsx rename packages/apps/src/slack/{lib.ts => lib/client.ts} (89%) create mode 100644 packages/apps/src/slack/lib/events/index.ts create mode 100644 packages/apps/src/slack/lib/events/message/changed.ts create mode 100644 packages/apps/src/slack/lib/events/thread/index.ts create mode 100644 packages/apps/src/slack/lib/events/thread/message.ts create mode 100644 packages/apps/src/slack/lib/events/thread/started.ts create mode 100644 packages/apps/src/slack/lib/index.ts delete mode 100644 packages/apps/src/visma/assets/logo.svg create mode 100644 packages/apps/src/visma/assets/logo.tsx delete mode 100644 packages/apps/src/xero/assets/logo.svg create mode 100644 packages/apps/src/xero/assets/logo.tsx diff --git a/apps/dashboard/src/actions/disconnect-app-action.ts b/apps/dashboard/src/actions/disconnect-app-action.ts new file mode 100644 index 000000000..3a34f0fbf --- /dev/null +++ b/apps/dashboard/src/actions/disconnect-app-action.ts @@ -0,0 +1,31 @@ +"use server"; + +import { LogEvents } from "@midday/events/events"; +import { revalidatePath } from "next/cache"; +import { z } from "zod"; +import { authActionClient } from "./safe-action"; + +export const disconnectAppAction = authActionClient + .schema( + z.object({ + appId: z.string(), + }), + ) + .metadata({ + name: "disconnect-app", + track: { + event: LogEvents.DisconnectApp.name, + channel: LogEvents.DisconnectApp.channel, + }, + }) + .action(async ({ parsedInput: { appId }, ctx: { supabase } }) => { + const { data } = await supabase + .from("apps") + .delete() + .eq("app_id", appId) + .select(); + + revalidatePath("/apps"); + + return data; + }); diff --git a/apps/dashboard/src/app/[locale]/(app)/(sidebar)/apps/page.tsx b/apps/dashboard/src/app/[locale]/(app)/(sidebar)/apps/page.tsx index 769ffa024..b90711f5c 100644 --- a/apps/dashboard/src/app/[locale]/(app)/(sidebar)/apps/page.tsx +++ b/apps/dashboard/src/app/[locale]/(app)/(sidebar)/apps/page.tsx @@ -1,6 +1,8 @@ -import { Apps } from "@/components/apps"; +import { AppsHeader } from "@/components/apps-header"; +import { AppsServer } from "@/components/apps.server"; import { getUser } from "@midday/supabase/cached-queries"; import type { Metadata } from "next"; +import { Suspense } from "react"; export const metadata: Metadata = { title: "Apps | Midday", @@ -9,5 +11,13 @@ export const metadata: Metadata = { export default async function Page() { const { data } = await getUser(); - return ; + return ( +

+ + + Loading...
}> + + +
+ ); } diff --git a/apps/dashboard/src/app/[locale]/(public)/all-done/event-emitter.tsx b/apps/dashboard/src/app/[locale]/(public)/all-done/event-emitter.tsx new file mode 100644 index 000000000..aed766aad --- /dev/null +++ b/apps/dashboard/src/app/[locale]/(public)/all-done/event-emitter.tsx @@ -0,0 +1,22 @@ +"use client"; + +import { useEffect } from "react"; +import type { WindowEvent } from "./schema"; + +type Props = { + event: WindowEvent; +}; + +export const EventEmitter = ({ event }: Props) => { + useEffect(() => { + if (!window?.opener) { + return; + } + + if (event) { + window.opener.postMessage(event, "*"); + } + }, [event]); + + return null; +}; diff --git a/apps/dashboard/src/app/[locale]/(public)/all-done/page.tsx b/apps/dashboard/src/app/[locale]/(public)/all-done/page.tsx new file mode 100644 index 000000000..9bcd9257b --- /dev/null +++ b/apps/dashboard/src/app/[locale]/(public)/all-done/page.tsx @@ -0,0 +1,26 @@ +import { notFound } from "next/navigation"; +import { EventEmitter } from "./event-emitter"; +import { searchParamsSchema } from "./schema"; + +type Props = { + searchParams: Record; +}; + +const AllDonePage = ({ searchParams }: Props) => { + const parsedSearchParams = searchParamsSchema.safeParse(searchParams); + + if (!parsedSearchParams.success) { + notFound(); + } + + return ( + <> + +
+

All done, you can close this window!

+
+ + ); +}; + +export default AllDonePage; diff --git a/apps/dashboard/src/app/[locale]/(public)/all-done/schema.ts b/apps/dashboard/src/app/[locale]/(public)/all-done/schema.ts new file mode 100644 index 000000000..ed1a970fc --- /dev/null +++ b/apps/dashboard/src/app/[locale]/(public)/all-done/schema.ts @@ -0,0 +1,7 @@ +import { z } from "zod"; + +export const searchParamsSchema = z.object({ + event: z.literal("slack_oauth_completed"), +}); + +export type WindowEvent = z.infer["event"]; diff --git a/apps/dashboard/src/app/api/apps/slack/events/route.ts b/apps/dashboard/src/app/api/apps/slack/events/route.ts new file mode 100644 index 000000000..254d8bb60 --- /dev/null +++ b/apps/dashboard/src/app/api/apps/slack/events/route.ts @@ -0,0 +1,63 @@ +import { config, handleSlackEvent } from "@midday/apps/slack"; +import { createClient } from "@midday/supabase/server"; +import { Ratelimit } from "@upstash/ratelimit"; +import { Redis } from "@upstash/redis"; +import { NextResponse } from "next/server"; + +const ratelimit = new Ratelimit({ + redis: Redis.fromEnv(), + limiter: Ratelimit.slidingWindow(15, "1m"), + analytics: true, +}); + +export async function POST(req: Request) { + const { challenge, team_id, event } = await req.json(); + + const ip = req.headers.get("x-forwarded-for") ?? "127.0.0.1"; + const { success } = await ratelimit.limit(ip); + + if (!success) { + return NextResponse.json( + { error: "Too many requests" }, + { + status: 429, + }, + ); + } + + const supabase = createClient({ admin: true }); + + const { data } = await supabase + .from("apps") + .select("team_id, settings") + .eq("app_id", config.id) + .eq("settings->>team_id", team_id) + .single(); + + if (!data) { + console.error(`No team found for Slack team_id: ${team_id}`); + return NextResponse.json( + { error: "Unauthorized: No matching team found" }, + { status: 401 }, + ); + } + + const settings = data?.settings as { + access_token: string; + bot_user_id: string; + }; + + if (challenge) { + return new NextResponse(challenge); + } + + if (event) { + await handleSlackEvent(event, { + token: settings.access_token, + }); + } + + return NextResponse.json({ + success: true, + }); +} diff --git a/apps/dashboard/src/app/api/apps/slack/oauth_callback/route.ts b/apps/dashboard/src/app/api/apps/slack/oauth_callback/route.ts index 631becfa8..b76808723 100644 --- a/apps/dashboard/src/app/api/apps/slack/oauth_callback/route.ts +++ b/apps/dashboard/src/app/api/apps/slack/oauth_callback/route.ts @@ -1,5 +1,5 @@ import { createApp } from "@midday/apps/db"; -import { config, createSlackApp, slackInstaller } from "@midday/apps/slack"; +import { config, createSlackApp } from "@midday/apps/slack"; import { type NextRequest, NextResponse } from "next/server"; import { z } from "zod"; @@ -50,20 +50,6 @@ export async function GET(request: NextRequest) { JSON.parse(parsedParams.data.state), ); - // const veryfiedState = await slackInstaller.stateStore?.verifyStateParam( - // new Date(), - // parsedParams.data.state, - // ); - - // const parsedMetadata = metadataSchema.safeParse( - // JSON.parse(veryfiedState?.metadata ?? "{}"), - // ); - - // if (!parsedMetadata.success) { - // console.error("Invalid metadata", parsedMetadata.error.errors); - // return NextResponse.json({ error: "Invalid metadata" }, { status: 400 }); - // } - try { const slackOauthAccessUrl = [ "https://slack.com/api/oauth.v2.access", @@ -89,10 +75,9 @@ export async function GET(request: NextRequest) { ); } - console.log(parsedMetadata); - const createdSlackIntegration = await createApp({ team_id: parsedMetadata.data.teamId, + created_by: parsedMetadata.data.userId, app_id: config.id, settings: { access_token: parsedJson.data.access_token, @@ -106,75 +91,28 @@ export async function GET(request: NextRequest) { }, }); - // const createdSlackIntegration = await prisma.integrationSlack - // .upsert({ - // where: { - // team_id: parsedMetadata.data.teamId, - // team: { - // members: { - // some: { - // user_id: parsedMetadata.data.userId, - // }, - // }, - // }, - // }, - // update: {}, - // create: { - // team_id: parsedMetadata.data.teamId, - // slack_access_token: parsedJson.data.access_token, - // slack_team_id: parsedJson.data.team.id, - // slack_team_name: parsedJson.data.team.name, - // slack_channel: parsedJson.data.incoming_webhook.channel, - // slack_channel_id: parsedJson.data.incoming_webhook.channel_id, - // slack_configuration_url: - // parsedJson.data.incoming_webhook.configuration_url, - // slack_url: parsedJson.data.incoming_webhook.url, - // slack_bot_user_id: parsedJson.data.bot_user_id, - // }, - // select: { - // slack_access_token: true, - // slack_bot_user_id: true, - // slack_channel_id: true, - // team: { - // select: { - // id: true, - // name: true, - // }, - // }, - // }, - // }) - // .catch((_err) => { - // throw new Error("Failed to create slack integration"); - // }); - - if (true) { - // const slackApp = createSlackApp({ - // token: createdSlackIntegration.slack_access_token, - // botId: createdSlackIntegration.slack_bot_user_id, - // }); - - // slackApp.client.chat.postMessage({ - // channel: createdSlackIntegration.slack_channel_id, - // text: `👋 Hello, I'm Seventy Seven. I'll send notifications in this channel for the *${createdSlackIntegration.team.name}* team`, - // }); - - // const requestUrl = new URL(request.url); - - // if (process.env.NODE_ENV === "development") { - // requestUrl.protocol = "http"; - // } - - // analyticsClient.event("slack_integration_complete", { - // team_id: createdSlackIntegration.team.id, - // profileId: parsedMetadata.data.userId, - // }); + if (createdSlackIntegration) { + const slackApp = createSlackApp({ + token: createdSlackIntegration.settings.access_token, + botId: createdSlackIntegration.settings.bot_user_id, + }); + + slackApp.client.chat.postMessage({ + channel: createdSlackIntegration.settings.channel_id, + text: `Hello, I'm Midday Assistant. I'll send notifications in this channel`, + }); + + const requestUrl = new URL(request.url); + + if (process.env.NODE_ENV === "development") { + requestUrl.protocol = "http"; + } // This window will be in a popup so we redirect to the all-done route which closes the window // and then sends a browser event to the parent window. Actions can be taken based on this event. return NextResponse.redirect( `${requestUrl.origin}/all-done?event=slack_oauth_completed`, ); - // return NextResponse.redirect(`${requestUrl.origin}/settings/integrations`) } } catch (err) { console.error(err); diff --git a/apps/dashboard/src/components/app.tsx b/apps/dashboard/src/components/app.tsx index 327f29be9..8d5d66e8a 100644 --- a/apps/dashboard/src/components/app.tsx +++ b/apps/dashboard/src/components/app.tsx @@ -1,3 +1,4 @@ +import { disconnectAppAction } from "@/actions/disconnect-app-action"; import { Accordion, AccordionContent, @@ -6,18 +7,20 @@ import { } from "@midday/ui/accordion"; import { Button } from "@midday/ui/button"; import { Card, CardContent, CardHeader, CardTitle } from "@midday/ui/card"; +import { ScrollArea } from "@midday/ui/scroll-area"; import { Sheet, SheetContent, SheetHeader, SheetTrigger, } from "@midday/ui/sheet"; +import { useAction } from "next-safe-action/hooks"; import Image from "next/image"; import type { User } from "./apps"; export function App({ id, - logo, + logo: Logo, name, short_description, description, @@ -25,13 +28,11 @@ export function App({ onInitialize, images, active, + installed, + category, }: { id: string; - logo: { - src: string; - width: number; - height: number; - }; + logo: React.ComponentType; name: string; short_description: string; description: string; @@ -39,18 +40,26 @@ export function App({ onInitialize: (user: User) => void; images: string[]; active?: boolean; + installed?: boolean; + category: string; }) { + const disconnectApp = useAction(disconnectAppAction); + + const handleDisconnect = () => { + disconnectApp.execute({ appId: id }); + }; + return ( -
- {name} +
+ + + {installed && ( +
+ Installed +
+ )}
@@ -59,7 +68,7 @@ export function App({ {name} {!active && ( - + Coming soon )} @@ -70,20 +79,32 @@ export function App({
- - + + {installed ? ( + + ) : ( + + )}
@@ -98,58 +119,71 @@ export function App({ />
-
+
- {name} +
-

{name}

+
+

{name}

+ {installed && ( +
+ )} +
+ - 1.3k installs • Published by Midday + {category} • Published by Midday
- + {installed ? ( + + ) : ( + + )}
- - - How it works - - {description} - - - - {settings && ( - - Settings + + + + How it works - Settings + {description} - )} - + + {settings && ( + + Settings + + {description} + + + )} + +
diff --git a/apps/dashboard/src/components/apps-tabs.tsx b/apps/dashboard/src/components/apps-tabs.tsx index 4789d80c8..1537b91e9 100644 --- a/apps/dashboard/src/components/apps-tabs.tsx +++ b/apps/dashboard/src/components/apps-tabs.tsx @@ -28,8 +28,11 @@ export function AppsTabs() { key={tab.value} type="button" className={cn( - "text-sm transition-colors bg-[#1D1D1D] text-[#878787] px-4", - currentTab === tab.value && "text-primary bg-[#2C2C2C]", + "text-sm transition-colors px-4", + "dark:bg-[#1D1D1D] dark:text-[#878787]", + "bg-white text-gray-600", + currentTab === tab.value && + "text-primary dark:bg-[#2C2C2C] bg-gray-100", )} > {tab.name} diff --git a/apps/dashboard/src/components/apps.server.tsx b/apps/dashboard/src/components/apps.server.tsx new file mode 100644 index 000000000..8d3085eba --- /dev/null +++ b/apps/dashboard/src/components/apps.server.tsx @@ -0,0 +1,15 @@ +import { createClient } from "@midday/supabase/server"; +import { Apps } from "./apps"; + +export async function AppsServer({ user }: { user: User }) { + const supabase = createClient(); + + const { data } = await supabase + .from("apps") + .select("app_id") + .eq("team_id", user.team_id); + + return ( + app.app_id) ?? []} user={user} /> + ); +} diff --git a/apps/dashboard/src/components/apps.tsx b/apps/dashboard/src/components/apps.tsx index a7ec25b8d..43e592f4c 100644 --- a/apps/dashboard/src/components/apps.tsx +++ b/apps/dashboard/src/components/apps.tsx @@ -2,28 +2,27 @@ import { apps } from "@midday/apps"; import { App } from "./app"; -import { AppsHeader } from "./apps-header"; export type User = { id: string; team_id: string; }; -export function Apps({ user }: { user: User }) { +export function Apps({ + user, + installedApps, +}: { user: User; installedApps: string[] }) { return ( -
- - -
- {apps.map((app) => ( - app.onInitialize(user)} - /> - ))} -
+
+ {apps.map((app) => ( + app.onInitialize(user)} + /> + ))}
); } diff --git a/bun.lockb b/bun.lockb index aa9e8ee81dec8861aa21cb63530f327df7d23f55..22fb104fc6ce4e9d10bd4e51f1b59f01f69c4660 100755 GIT binary patch delta 23833 zcmeIacbrXE+yB4M88haLVRWM#qPH=a8AJ`DGrB~NNwgqJh?0Zooe2v;kVGOyNSic5 zq)G@vLV}R!C6OW_QNHibIoG-G`}w_|-}CzZ`TgTrT<5yhdta-sz1BW^_SqMgHGKEg zhD&Nx9{9+azF;gDA6Zo=J$>Lv}?0uoStJw6JcFWiKtMo|l6dEk;QQH4i z>1`7_wG0jz5<*_Jb3QMZ=S}_Ntk27h9(c;{5u z@8u^x=4{yU06H)657AVA>V$KCuL$}KS{V%)Ghp=S0grhjiK`+*##A4ZIo9*g4-X)} z!K73E8JEK8x1kFWZ+2P!L2qgbh6+eR=R+rk4tP^H;i!a-(W+1-v7c#(qvYUudWb zjrPTbjENfatdgyZXO6&9TaNz|E@~fIZTb)`e(7eoPmZC*zeKC5+buqH{Fu;u9y)$N zNUypb&L@c0AniQu^YUb^ZC$*;XfG<1a^Q2}#^?1#Wqr}QWXcU+RH*kxj>;U7Iok7H zC9aY;p*6n-jT<#Qb3*3mL74+bjvMhn=2GA5#oBalnf%P2_v%eczjSC;g|i(qZ!IkQ zR{H)Pt0okiI&^S}O^q%b>EPQx_~dIvUVWl&n}%!CKhDU`TDh!D^00U6&e=V>l8!kZ22)o;D3?XT~ZDSEQci7{TzlGh{r^-)Vs`YJ`dBS*jK(DM09 zi%->Ayz1V;zZHM6=A%zO{YUdX6Srr5wroP|tgh>PGyeW##S^WvX1B`nWw*-m?@tMg z;;gGiYogqM7++fS8lq|L_Q=&vywxa0Bu27x@Bs||6=nU(Z>T3`~f+Qd9JV4N>4 zu!U$U(HvPxPo@P<6RRISSb&42SPgVACUmeXF&&J`N?Mr~>n!Fn9?qGZmG{Zm=mU^O zS$$q;5J))f_nP4uowZ?2S|Ed1IaA7h`qD<6rd+{00f7$x;q=&WGFT&pNd!EijarD(MRydzP3=_GfLN9!DZE zw_%SjJ(jboaj4{^d<;QH;D z{=+jmgIJ?b4vVqEjiu?)-xKQ|;n!)tZV4lhE-{SLw1agU6~f0!fMzlYwaryqNigu%Ua7IeS~$l>K*O1xD28Wmi-RDjXVXnopWGW%u zwJ|NaH?ihf$2T>IUXRtzl`QJJJ13Uf`|nxO=uhi`&|F?ZEIfGX@FT?fhN_#&S{m*( z&G<#cI)ut$X2t$ZY|wwnv+s3EhQwwKaB0ySi8Tlf+i|Qep>&$z$*j8?ml!u-8BHP9 zG<1wKfe(mj?nY&4+W7tspF>fhbLehj;pwK_A5|=?C%$ng|)~WSrf!@Tb>zLc{w4XDUXg#8g;Mz3*)qmV~NBxZgX{^=iOio;yJcXD> zC=eRuJH$F=9sjyPpyRE`Sn1SRPE6gGBWu7L>9KYwhubjHpB~H7UV}rl=!LZC48^kg zywo7@GFC@8XW~a`(f<(Z?Mn9Y-JSPNcvTDS4}3JrI*?US>rmiHj;MFZ=>%shv2LOC zs%CYz3-y8Ll2|YU(}}86ExMa%d!l(XKLYjHDtZvh;gZJV`ySC`qVxjuEXp5cOOqx- z17dZu*6wTIAL)0+exP@@i{Q;v;~e;vn0hC44#d`qiV6*o%UBQ{S~>&6AUd18&~QFu zvCuU2e;<{-`lSEemcg8~vQ}YFd$-pdodewp9gS{}W_$B`p%tY4==&`$t#}`_58c=J zf2Vc4pBhdI2cZ_-4gCVtH7NW--T9?R)sz_y%((v4x&|o!={g*Re_@xKZaJ2 zmfsI(Rp2L!pABND!1H$Cvgxa)|3E89E8%st3bAl)coI5^Z%Vw zb9S$>QAiFXI=k1{m^#r-hCDNSS%)1B+BV)l)1Uk0q#Rd!-Z+@vt^4U6RW~-vH+y-G z8~c7+yDIC((|cd6*7E$FxaSV+-+ca1=F>;cuDVcn}5)_EoB>}=HE2F zM1zHOOZWb5+S@O)qWHYq3AfQ-XuYMwsU8^F{ITL$Sp|w!~faL-?u#1r^pSYEJr>i$^$Y^eJO=pQ)tU&1oeEe!5pdj{5_nsn z#U#KFZs{bz;Awzs0;gQl$$-S^fafLyesaGGd?wIs3gC>}Fa;1`!~8sNOZxM_f2-7bNZvjOF& z1AcdpOb4`@12`;j%_ThnxGpgB3BX_OfWQlL0d;2pZn$YP06pgc&ItVDYRv@1&Ic@? z3Ap7>3A`=PViw?zTRICccmd!V!0!vVX0z$##D$ROW<#O^?l+OoM7qs^Li^a zfSeZ@w}1-fbGsH$!IjGZc;QJvL*}us zs9UuR&~rJUTNa?W+mHo_T>*%G5>V1*JPCMP;7x(j&bJ&e*a0$^1Crb}fy9-7LMs5} z+<+B;&jdaeDDUz)z=TzRaSl+??GmW88c=>EXGUdRBS#j17Ypq{+=<6~iChw{E+h@gR96tKd zFKus@b$eHHW*jD8Usad1ih|}mML{!H0jj$L0_kf2byovwx@oHc=LOCP)N-|+0<2sM zSpF2CwmT)zYF$jcYrZC?ov*H2x+bQFFV$U;N^?!uqSDnq*^RpA%x=^@ zcH{1B5>@c!@+FoDcT)2%?o!b}Q?3JV-w6kG+Ey%R(@^-v{PcaHI+x=LN6Zi9)fA(A@2Ejt1!w5Okno)`t##dueGgN?YQO+v z$IVYy!h?*RFs94!2aWw;Oke9BGIkOcRBLrLI}9lM6i_YG*RoOOc-j(kbJZJX?2Iw> zz)WLjjdA1Jn`P{rG4;x9W9NtV7l!BiP;M0@#EI^k#YQ}5+B zcGWV}mGzUVIpJ4Jn}}V`%J{?lxFPM`6=L-NHG{=~<<0R=OU#{auY$1~FjcAq@`L)3 z@QMNh!Yz(axMPk<#Q2&Y4onOUO<5$T zF&|8mtsL?cB0Jjr?lO+@VqnU;JW@e`5Nm#l2YcGLmw>^FKz%J&h%;6Rd!VsgFx87at8ODO?mbeLUoh7bktSRhi zWA%+SgUyAhfekFfd$8x3Uqkb24qI%jk+BxArIxlajNS<9uAi4>j&02GURXhztLe}d zrp2Qb@+!5~bm#-qvDU~AYsnZ(%bjCyk)5(*jkSd>Ha5;!J6O-$jK3CxM-8^ezRw)T z8|wh82Gd$F!B|J^FKi8X%vdK_8)FlVWx(1Sn`Eprtc9`3x(}z>-v!yB*+G~B(>QfS zb{dQLb%X6PHWfcj#_q_6FfBrJEx#Vvd(3YhOmmA{%HH?b3JcLHBiM_N$IWrECB6@q zQ|A|9iLv{!1ICsbC6O=Cl_qm>CE+t^U-oW|aPDVt%)VMO75m<|u8d`}rDY&ZBY zwiXP99mYn;wn_7Wv5~NBV>^wFf^9Xn%h)5ZrnZWHXlyj>9$2sv#%`c$I0k89j-Qz0 zSXjETPmPU(-3_aZ{>;)oik)nJUzp!`*kx@3gfERvz`kN^Z%)Qv-S8Olv%!7lI1v`Q z@rU{fre2?f_+!GG$^rA642y>;95lZv*aeIoGQY=RSFC3a8w+awRn$sC_{QK=?3-HN z2;Ul;hP}zy5o6O~FB>~*>}j^GryUz%3>P-<3M%)ETjUkF8ZW7 z&c^=T*7;M$=D=!TYp?hbtwQD^2W%BR4O4#ekgtuMGd3S~$k;_#P`$JOIco4KP(!j1 z`3|N{4dlh|3twDGHg%Mo2-H$(f3t-zjX4e=Xuuvx~UVCt=vNMrJDuKtfUxC(e4 zX@O|{XVbRzG$18ssTsTIrN_Et1G4b}u>)OmlA?Qq)*6<)`s~ z8YyY8gdp+tNGX^?Da&vJc4_k~ZEPc~vavG8o`Kc0v`NOEg{7HaS!2(^g6Za1&fq3s zeRI4ErqOvGX<)1tOxwi^$lb>7hVkFqj5M_TngcYqUPKNt?h0*S>Y102V__Eb+8TTr zxX&Eh8G8kGKQ(BFZVyw>Y(YBOoatzOufjSR>tudgVF&2*j_A(jw+(xs#(~f!#OVLm zh|~jW3+`%;uVdFY$8N^nfK@cs-PoJ3SYthmy#>>Eitgy1#{za7Rtf+d*W z2VoZUJ_Z&x$DQW*3G5cO!Y;H5{uH@mY`3w`U|X>Vpg%@ya(#|GjjiwrT50znv#=jP ze`bDPU@z7FKM3P{_HvAx)0O1>B-(r8r zWF3M2)>!ZeksF#7gd+xzV*hFEsIl*0<(btJ(cc;S9=kD2Tk!YBj$zk@O+gGYRC!XW_)P>S5ZtMzns?JlwAI5&hzQ@=#7^k`S z3(^KQ7p=2J6}*ZJ%Et%6&zYvIe?>;Xg7YwP0Oj}_QWQ8Jt#e#G^E*<)66+in`vWO$ zemciBRjwgP#_|~Z6IRw(0hr483%SWoxd6>+AHM#(PUHe`A-aeaas&IKu|#8k!+wS- z6gBn_w#&hNA9OKeH?en6nnM?dsl~StT`#Oemo&fInty_;fu#)I!R}~%@nT?` z5)kYf=BF=k2m%`X6Z)mW;rIM{2((qKWgBp2{?gZ0cY9ySj4Jjd%B z%MF`gtN}~~=YdT!*3|qGU_oQeU@9XoY^t&5=9f=@haU`l0f!a_^W)eArqB|mNmBrJ z4{S4bYx64zYi_I!j49w1g0(Q#!TbutKFY&ELPwY?Qv{aGIH4*QF=Z^615D*^kOQ&6G1v68Sf&eQF%9%35*Qowo! zdzxcu*a~dz)xFSaT^ZO$V|~mo3Dz6?1CIAKRu-m-xf9mUm^L9@lza&5Z|p8uur`t1 zzySueGihJ{95xW9?y3OWY%LjNe%h>-8Ot8e9HWq!U~z+2AC#mGgx8sd(Qmsfh8JyDV$%> zYYr@Ga0^haYXK`}Y^$-Bu;RvEGj=bmq_H<(M7>sglrr|FvDUCM#@@2DZD2|H8Gm)x z+XmYL%i<{ZuCaEoa>m|=sTbPA#@l#)V16B76Jb|5z6+)v>L5(cU0F+Ty59<&-&QVs|q3qp=5JS8Ox+$=E}%PmP^6HW)U+7OpeKhQQRT+CR=3 z8>+v*ZL#lc=L`;mX*1E9ecsq`Y^`uwvo9EX7<;8HNEeNbfW3hzT!N`rM-qP%(NcWH z*eL95Bq;ccC4L0^fYth{vC*(oFfGNu8XJRM5T>R0H_LD=wkoZq_z&|NhkXwf)Czme z*rV9`%CFV*&&c)Pcp~o<;0hQ0mpM+re%IJ_m?qL=u=ijJH_dM%?0sXm%x@BGr={iR zB%xDwGVCq$%K;In7bS^s=#7^P38L#WIY8>CBo2n-9~H zo!in*$6jE5d5k>)8z@HkUII{;&@+JVvCwE8F9@SC-c0Q6#!6b^S+GhZ*4kbQ#(!@% zc4aH15p*QZ&4DOyDIaebYhi2|>@8z0VVVnB zu$izX=r%C5_(|;fFokw76}%i)8>USv1EzvkV5fx`{ofTx+;e<11ZwB%2Gd!&61%Zw z*xxc-1#4!0nU;1nthuoVVXDkiunzQ=cD=#ow+6eTu_0m_|FytQ*40CSs^L0VhB-cL z89ohb2Gfo?(lT6+eUGIbWquoA&5ez={5HZ`SlV&s_Y5p}hg!G57;hOqi|w<-6U^~B zm>(v;iN-czUm&fv<;j-zdF+cYg(>Fu0_>8pAWTED8Fo3GHt5YT#}|RsfUVK9jJXkH^jGb! z=tag}!}e2%cD=>MUdR56Jwm(Q5@T9^ZyQ@`Ov|q>$+hb(Gxiqtt{{W0T`$X^)?}^o z{m@SudmCFjmUg)1#@@l6%Mz@OW`(hLv9$ziuW-iR!&bpsvR4{=AG^K8C=wwtoOqrT1YEH};|VeFYn7 zY`0DcIqnBO0#x|K91p-oo8za(4#Ga>EYV)^8H}OzzQ)$Rp?zT=O#8+mZ0#Fj-&)$k z*bT@}d&LoB!EcD%ZSW{iUGpuhp;hL4n3mfkur!!9l^-neQS5YMCt*6bzk}5?cEzbn{_C`3D9 zA($%tGj^7-B9`_SSUp%!TVbNXtJs}^+VzSW`xU!8U8tR_7);&&oBUwfxXPK|@7P_8 z-38NJ_yg9}SY?4a;Gy9!y`3{((gsYhwA`)czY|u!SYQg=0=*tzksH+kC_tYh!+QU;&tR z%ns(K)~JHoF+0N4I3FK3VcH!t%+C+IEvE7B3{-bTS>nyG9+o%q3gdAz!^a80n-I>ED6&(ueDu&=hHf0 z3f2feEzfh!uQaTQG5zgNY0JQx8k=t{38n=}OZEa|Wnn?BNP-K2s&zS_Rz0yLFrwaF zmRM`{GD}<@rnF*NmbQYW6vdbv}jS)(_Uir_)vaYD?hUQ>g$;TWhnTuW!L~mWhnNUCB7S0k!hj@bdM!& z2up%#0sR7|hBSheHFn7S8pDdiw5T37)&!<4<&M^rZwxjCs)kzdzBSeiTNM;L0#l21 z+gKG8`yPh!n)C6It!c+CZ3|cmOl#W-V=b{OvSMh-`T?eEYVTeml??s}6l(>mYV3?9 zZVjtR!CKqS!n6>#!A>@I38pQjEvy?Y)_SME>jHuU%kLhHnwe6<)WndqIY0bK2ex0%R!?a}GG1diJ^P`By-^b-U zaj&aEtyxjVx?yYfmqkaz)Dk^jDyFkK##j$*EkQbibHcO)^)x@7n7Pfbm$B;TJYtmZ z-A6=;b!sG7;`_}}Gro`|?rp3-y0Ec6#xzfg80(Aun$3ko7*VeuALl4T<6jJ>UA{kd z@Vvn!pvHXw@J*QJ#9ih%5L>qt#HyO#1K4X|niDl(n*D>Y*BVQM5%n_pSZ7R6j%a>7 z2zxrrf?h*&db4yM*=4E02gTK6cnS|>Kl(vHX0`k`?h zZfpX!)(^3VVQSoC*vd~s9UNsDP9&lX1s}7-ldzSc#($!*$=J$JY?5U-1zQ ztqO`QgsH_dv9;W4?kq9CS=b-zZyK6BOMyCPXJeOQ+%+d04CT$?;}D58CstYFx!5{o zH8iU&?L2I)3+nRq<~QH`)a4t@Z-M!#C!g0Tp&7i;9MzRCnByXIRExHl-zfcMl~8S# zyRTiKf}7DU(7&jDC0&Jwi>e{|^-K*!znDpOSK0-NxY+iAI<86kz=Z7g+Xrs?it5z^ z`n9Nj&Y+(!=;sRhdBPyKy-%QY`G+w_Af1rTNEf6l(hbos5qcm!-GPpQa>W{8HbfdB z`t5;!2ChjlIo`!}3aoR7ItA9au^EB>?np-9?(D?Qf#e*8^>}S_L{HDAA$npqxriIu zJutnGUTQE3c?21aj6udCtr?uQNIN8n9_S5ggIwdbPD}K5^aqH3Z~g!>2pNnFL53p3 zkcYFY_XylHW|l}|s8Z-ul$+9K^-`96WPU^&dYkn+fV6nj6? z8|jPa)dk-n-y?c|!YpJqG8dVL%tsa@OOT~V7V;#r9C64>WEHX+c?wyBtVPx#Pb2H~ z(ua*0&mhktn~>*`7m&@!i^xmJ%g8Ip7UWfAE3yrF4bh7s9z|MF;XdfU=pQ{<^bw-p z-|IK|qmW0CYV>J!4Cr+Uw*w=pev%cOT3M|Q`qIn3>0=p1_jcy z@5&6U@mJ```PT)}udLQmSN*{07N@{cru|chel>G*WgdkorjIiEVThq$*Masfpa8 z7xYkd5#)Z-?;xK{_=Ctp$Ozs1A_{~jEu;%}(Ox*kS4A$qRtUE~d< z6A3CKDo6$B%?*0H!+)|`*$syU?#&T%o5Fl~-1L!w&e_LC29EjSa?`XE&{MhHTaN^) zWM6(HaM~Ah5V9o7?Hdy)oPBvr;AC7}&spJBqta=u8fAU;vu`{esF{&e1FWI1is*s1 zJT$K%q7~^hx=MEI{ed1iQzK8xRmM*bx#=-JJq9=opFPOuh#vPlERB4I?1^=6y%|Ue z=$PW$UA^o;@t_{2(?fR3QcwBa%OO3S*N_VXJps~>^?E;APX+EpsN%3!s-W3-Y7$AC6=kUiLX2=4@P z-1(01-AIqd>5(}-N_Ps;qj!4LZZEEzDEl+?Pe^XEibu|3E6ZHiaYz6;KwSQMU`@}2 z#URm$ipznHLJnf@N4`Y9K$JJ-aKDFxX8=C5w*Bj5q9@fO_=VDkdMi{1YA$v>4`iYBSGkt z&{S63esgsV<-58{cJN8g1MVqwz5bY&53l=A7ICpYyFL?xsGU?YWALRU0f z@yKbcQ@Q~e>b|CS1Qjk8(KTUu?ky+B^*n2DbUN{5>{N7Jw|nM;o$pt2iSs8T9-5rqrlcBiZ#&jW3ZHdBJC|E*mD_958RN-BeNS3}KA4fX1o6(!>ni~qO%P^&g0GSJ;$ zC%&j_S2Dg>iO5SWpWC_R+O1!r_mfR6D!|}8cg9UGN#$NU<1UtrZ|84*)}@zzY)LPxKEy>t+#8jl9Y9Z0+`$&z(7|1}ldYc2ZVc{(3ky-_;ch2R8A2@b4oB&bpsV z#lPVndCs*fN5kJQO;sYVKJC8g%_a3>mcM20%%C&p+;64hr~2Doa5ZXD^aB^%qB2zJ z@eA%)nfSyKkvDtpPrdBx@I|3Ema-OCXct`GBs|}~;QA)TC#LG9pnM6Kny1N%i^V5( z>4_(UujWQxA9`ib=?j0(nbaQ6I)xUX`I#<-PW@4DJ3GWF3sES%kFoNt~B@G^{Ri--Ihn>Wv7WVKU=k<=jNZx zgZhNKCdJ?XqMKTd(uZDj$(1R6+(oyKE=!HPPPJUHW#!*5mnj%ZSy$a2dEx4W>QygI zu2SrL=twOc*?iHJxQqUZysPzv-zLoNxhg3;Uz<2!Xq{E*4M-e=aNn=SzXTR zmCj0YG2DY+UmSnrr(zv7?`*j9U2^M`Hu5IfY0vJ?|6PuScmLZX@~+wF{A1r<|5VG> zc7*dIih7{?};`LYxU-YG_Exp_;B&jrfu-rAqw%NWQLU)%cSB-M_l@sy9D@iQ%wSR(SK-}#?Cp6lDaC;kaFCq*-q498Yy zGDY5eTcYK(N6#Pem$nAesBnV|xo@k-Kkct^(M_m9`C%Qd?*A}V!zbN;=>r-(xh6S; z=Xs*P%|&;*CVgUYmz*45EYgV56#w5>y*5+w*k5jHa=7bse*SAg_%bj8nv`n@!XN? zkj4TPd8hBgTL+Bm_37^&DJwPHoL7A=M|%9~f|0iYPhPs~zMMPDto8dY`P^&i@goB* z>0UzKcG*?x#h;4~vskF>f%H1rV zC(c*LW&D(CEAo4~!k{GA46w?K_tzpBtW*P}UVqODOKHx5!h%?f)r0 z#w|}vIO`rtO=#qHrYE#^!MX|g+`+mD6FH#>e{y`z>_EMQ-Z|X-x|BTN z$J|NT>l-Fa%@Ma=PgxR@GhCHs32((s$Oy-ebj`llEMZ+#Tx_>6*xF4F72Mk`6JChB tZg72fH}u|wpW}{n4?CUg9&*aRvsn3<_xklenb%%$UZsay-6~=K{{gy8Kz{%L delta 22036 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%0Amf_Zh;M9zOlhDHLww^n6X@oONPb63OGI# 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 OjPLF2PV|fa>fZn;@mNCu diff --git a/packages/apps/package.json b/packages/apps/package.json index 94bfe5843..8e2eea52c 100644 --- a/packages/apps/package.json +++ b/packages/apps/package.json @@ -10,10 +10,14 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@slack/bolt": "^3.21.4" + "@ai-sdk/openai": "^0.0.62", + "@slack/bolt": "^3.21.4", + "@slack/web-api": "^7.5.0", + "ai": "^3.4.3", + "zod": "^3.23.8" }, "devDependencies": { - "@types/node": "^22.7.0", + "@types/node": "^22.7.2", "typescript": "^5.6.2" }, "exports": { diff --git a/packages/apps/src/cal/assets/logo.svg b/packages/apps/src/cal/assets/logo.svg deleted file mode 100644 index 759c97379..000000000 --- a/packages/apps/src/cal/assets/logo.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/packages/apps/src/cal/assets/logo.tsx b/packages/apps/src/cal/assets/logo.tsx new file mode 100644 index 000000000..6d45f307c --- /dev/null +++ b/packages/apps/src/cal/assets/logo.tsx @@ -0,0 +1,49 @@ +export const Logo = () => { + return ( + + + + + + + + + + + + + + + + + ); +}; diff --git a/packages/apps/src/cal/config.ts b/packages/apps/src/cal/config.ts index 9b0e1507b..02c69341f 100644 --- a/packages/apps/src/cal/config.ts +++ b/packages/apps/src/cal/config.ts @@ -1,10 +1,10 @@ -import logo from "./assets/logo.svg"; +import { Logo } from "./assets/logo"; export default { name: "Cal.com", id: "cal", active: false, - logo, + logo: Logo, short_description: "Integrating with Cal.com automatically synchronizes your tracked hours with your calendar, allowing you to easily monitor your progress on your projects.", description: diff --git a/packages/apps/src/db/index.ts b/packages/apps/src/db/index.ts index 9d85ab2f9..7d1c4d1e8 100644 --- a/packages/apps/src/db/index.ts +++ b/packages/apps/src/db/index.ts @@ -1,9 +1,13 @@ import { createClient } from "@midday/supabase/server"; export async function createApp(params: any) { - const client = createClient(); + const client = createClient({ admin: true }); - const { data, error } = await client.from("apps").insert(params).select(); + const { data, error } = await client + .from("apps") + .upsert(params) + .select() + .single(); if (error) { throw new Error(error.message); diff --git a/packages/apps/src/fortnox/assets/logo.svg b/packages/apps/src/fortnox/assets/logo.svg deleted file mode 100644 index 7a835aee7..000000000 --- a/packages/apps/src/fortnox/assets/logo.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/packages/apps/src/fortnox/assets/logo.tsx b/packages/apps/src/fortnox/assets/logo.tsx new file mode 100644 index 000000000..bbd285fe1 --- /dev/null +++ b/packages/apps/src/fortnox/assets/logo.tsx @@ -0,0 +1,43 @@ +export const Logo = () => { + return ( + + + + + + + + + + + + + + + + ); +}; diff --git a/packages/apps/src/fortnox/config.ts b/packages/apps/src/fortnox/config.ts index 37fbbf6d5..6463810e1 100644 --- a/packages/apps/src/fortnox/config.ts +++ b/packages/apps/src/fortnox/config.ts @@ -1,10 +1,10 @@ -import logo from "./assets/logo.svg"; +import { Logo } from "./assets/logo"; export default { name: "Fortnox", id: "fortnox", active: false, - logo, + logo: Logo, short_description: "By seamlessly integrating with Fortnox, you gain the ability to effortlessly synchronize every transaction and attachment, ensuring meticulous organization within your bookkeeping software. ", description: null, diff --git a/packages/apps/src/quick-books/assets/logo.svg b/packages/apps/src/quick-books/assets/logo.svg deleted file mode 100644 index 0ce2f2dfa..000000000 --- a/packages/apps/src/quick-books/assets/logo.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/packages/apps/src/quick-books/assets/logo.tsx b/packages/apps/src/quick-books/assets/logo.tsx new file mode 100644 index 000000000..6b4dac10d --- /dev/null +++ b/packages/apps/src/quick-books/assets/logo.tsx @@ -0,0 +1,20 @@ +export const Logo = () => { + return ( + + + + + ); +}; diff --git a/packages/apps/src/quick-books/config.ts b/packages/apps/src/quick-books/config.ts index e9449f75a..6e8b4ce3b 100644 --- a/packages/apps/src/quick-books/config.ts +++ b/packages/apps/src/quick-books/config.ts @@ -1,10 +1,10 @@ -import logo from "./assets/logo.svg"; +import { Logo } from "./assets/logo"; export default { name: "QuickBooks", id: "quick-books", active: false, - logo, + logo: Logo, short_description: "Integrating with QuickBooks enables you to synchronize transactions and attachments, neatly organizing them in your bookkeeping software. This streamlines the process for you or your accountant to close your books faster.", description: null, diff --git a/packages/apps/src/slack/assets/logo.svg b/packages/apps/src/slack/assets/logo.svg deleted file mode 100644 index a39d44331..000000000 --- a/packages/apps/src/slack/assets/logo.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/packages/apps/src/slack/assets/logo.tsx b/packages/apps/src/slack/assets/logo.tsx new file mode 100644 index 000000000..7ffa4e968 --- /dev/null +++ b/packages/apps/src/slack/assets/logo.tsx @@ -0,0 +1,44 @@ +export const Logo = () => { + return ( + + + + + + + + + + + ); +}; diff --git a/packages/apps/src/slack/config.ts b/packages/apps/src/slack/config.ts index 41d624d2a..938fb7e71 100644 --- a/packages/apps/src/slack/config.ts +++ b/packages/apps/src/slack/config.ts @@ -1,16 +1,17 @@ import image from "./assets/image.png"; -import logo from "./assets/logo.svg"; +import { Logo } from "./assets/logo"; import { onInitialize } from "./initialize"; export default { name: "Slack", id: "slack", + category: "Assistant", active: true, - logo, + logo: Logo, short_description: "Integrating with Slack enables you to use Midday Assistant right from your Slack workspace, you will also get notifications when you have new transactions and more.", description: - "Integrating Midday with Slack brings powerful financial management capabilities directly into your team's communication hub. With this integration, you can seamlessly interact with Midday Assistant without leaving your Slack workspace, enabling quick access to financial insights and actions. You'll receive timely notifications about new transactions, ensuring you're always up-to-date with your financial activities. Moreover, this integration streamlines your workflow by allowing you to upload attachments for transactions directly from Slack. Whether it's receipts, invoices, or any other relevant documents, you can easily attach them to your transactions without switching between multiple applications. This feature not only saves time but also ensures that all your financial documentation is properly organized and linked to the correct transactions, enhancing your overall bookkeeping efficiency.", + "Integrating Midday with Slack brings powerful financial management capabilities directly into your team's communication hub. With this integration, you can seamlessly interact with Midday Assistant without leaving your Slack workspace, enabling quick access to financial insights and actions. \n\nYou'll receive timely notifications about new transactions, ensuring you're always up-to-date with your financial activities. Moreover, this integration streamlines your workflow by allowing you to upload attachments for transactions directly from Slack. \n\nWhether it's receipts, invoices, or any other relevant documents, you can easily attach them to your transactions without switching between multiple applications. This feature not only saves time but also ensures that all your financial documentation is properly organized and linked to the correct transactions, enhancing your overall bookkeeping efficiency.", images: [image], onInitialize: (user) => { onInitialize({ @@ -18,20 +19,4 @@ export default { teamId: user.team_id, }); }, - settings: [ - { - name: "notifications", - label: "Notifications", - type: "boolean", - default: true, - }, - ], - // config: [ - // { - // name: "slack_channel", - // label: "Slack Channel", - // type: "text", - // required: true, - // }, - // ], }; diff --git a/packages/apps/src/slack/initialize.ts b/packages/apps/src/slack/initialize.ts index c23b2072d..d49053e8c 100644 --- a/packages/apps/src/slack/initialize.ts +++ b/packages/apps/src/slack/initialize.ts @@ -13,7 +13,7 @@ const generateInstallUrl = ({ ); url.searchParams.set( "scope", - "incoming-webhook,chat:write,chat:write.public,team:read,assistant:write", + "incoming-webhook,chat:write,chat:write.public,team:read,assistant:write,im:history", ); url.searchParams.set("state", JSON.stringify({ teamId, userId })); @@ -46,7 +46,7 @@ export const onInitialize = ({ const listener = (e: MessageEvent) => { if (e.data === "slack_oauth_completed") { - // router.refresh(); + window.location.reload(); window.removeEventListener("message", listener); popup.close(); } diff --git a/packages/apps/src/slack/lib.ts b/packages/apps/src/slack/lib/client.ts similarity index 89% rename from packages/apps/src/slack/lib.ts rename to packages/apps/src/slack/lib/client.ts index 5701b4c8a..d40d3f014 100644 --- a/packages/apps/src/slack/lib.ts +++ b/packages/apps/src/slack/lib/client.ts @@ -1,5 +1,6 @@ import { LogLevel, App as SlackApp } from "@slack/bolt"; import { InstallProvider } from "@slack/oauth"; +import { WebClient } from "@slack/web-api"; const SLACK_CLIENT_ID = process.env.NEXT_PUBLIC_SLACK_CLIENT_ID; const SLACK_CLIENT_SECRET = process.env.SLACK_CLIENT_SECRET; @@ -46,3 +47,11 @@ export const createSlackApp = ({ botId, }); }; + +export const createSlackWebClient = ({ + token, +}: { + token: string; +}) => { + return new WebClient(token); +}; diff --git a/packages/apps/src/slack/lib/events/index.ts b/packages/apps/src/slack/lib/events/index.ts new file mode 100644 index 000000000..afeca33da --- /dev/null +++ b/packages/apps/src/slack/lib/events/index.ts @@ -0,0 +1,28 @@ +import { createSlackWebClient } from "@midday/apps/slack"; +import type { SlackEvent } from "@slack/bolt"; +import { messageChanged } from "./message/changed"; +import { assistantThreadMessage, assistantThreadStarted } from "./thread"; + +export async function handleSlackEvent( + event: SlackEvent, + options: { token: string }, +) { + const client = createSlackWebClient({ + token: options.token, + }); + + if (event.type === "assistant_thread_started") { + return assistantThreadStarted(event, client); + } + + if ( + event.text && + event.type === "message" && + event.channel_type === "im" && + !event?.bot_id && + event.subtype !== "assistant_app_thread" + ) { + console.log(event); + return assistantThreadMessage(event, client); + } +} diff --git a/packages/apps/src/slack/lib/events/message/changed.ts b/packages/apps/src/slack/lib/events/message/changed.ts new file mode 100644 index 000000000..88a44f958 --- /dev/null +++ b/packages/apps/src/slack/lib/events/message/changed.ts @@ -0,0 +1,69 @@ +import { openai } from "@ai-sdk/openai"; +import type { MessageChangedEvent, WebClient } from "@slack/web-api"; +import { generateText } from "ai"; +import { startOfMonth, subMonths } from "date-fns"; +import { z } from "zod"; + +const defaultValues = { + from: subMonths(startOfMonth(new Date()), 12).toISOString(), + to: new Date().toISOString(), +}; + +export async function messageChanged( + event: MessageChangedEvent, + client: WebClient, +) { + console.log("messageChanged", event); + // await client.assistant.threads.setStatus({ + // channel_id: event.channel, + // thread_ts: event.thread_ts, + // status: "Thinking...", + // }); + // const { text } = await generateText({ + // model: openai("gpt-4o-mini"), + // system: `\ + // You are a helpful assistant in Midday who can help users ask questions about their transactions, revenue, spending find invoices and more. + // If the user wants the burn rate, call \`getBurnRate\` function. + // If the user wants the runway, call \`getRunway\` function. + // If the user wants the profit, call \`getProfit\` function. + // If the user wants to find transactions or expenses, call \`getTransactions\` function. + // If the user wants to see spending based on a category, call \`getSpending\` function. + // Always try to call the functions with default values, otherwise ask the user to respond with parameters. + // Current date is: ${new Date().toISOString().split("T")[0]} \n + // `, + // prompt: event.text, + // tools: { + // getBurnRate: { + // description: "Get the burn rate", + // parameters: z.object({ + // currency: z + // .string() + // .describe("The currency for the burn rate") + // .optional(), + // startDate: z.coerce + // .date() + // .describe("The start date of the burn rate, in ISO-8601 format") + // .default(new Date(defaultValues.from)), + // endDate: z.coerce + // .date() + // .describe("The end date of the burn rate, in ISO-8601 format") + // .default(new Date(defaultValues.to)), + // }), + // execute: async (args) => { + // const { from, to, currency } = args; + // return `Burn rate from ${from} to ${to} with currency ${currency}`; + // }, + // }, + // }, + // }); + // await client.chat.postMessage({ + // channel: event.channel, + // thread_ts: event.thread_ts, + // text, + // }); + // await client.assistant.threads.setStatus({ + // channel_id: event.channel, + // thread_ts: event.thread_ts, + // status: "", + // }); +} diff --git a/packages/apps/src/slack/lib/events/thread/index.ts b/packages/apps/src/slack/lib/events/thread/index.ts new file mode 100644 index 000000000..8960f1342 --- /dev/null +++ b/packages/apps/src/slack/lib/events/thread/index.ts @@ -0,0 +1,2 @@ +export * from "./message"; +export * from "./started"; diff --git a/packages/apps/src/slack/lib/events/thread/message.ts b/packages/apps/src/slack/lib/events/thread/message.ts new file mode 100644 index 000000000..2cb7092b9 --- /dev/null +++ b/packages/apps/src/slack/lib/events/thread/message.ts @@ -0,0 +1,38 @@ +import { openai } from "@ai-sdk/openai"; +import type { AssistantThreadStartedEvent, WebClient } from "@slack/web-api"; +import { generateText } from "ai"; +import { startOfMonth, subMonths } from "date-fns"; +import { z } from "zod"; + +const defaultValues = { + from: subMonths(startOfMonth(new Date()), 12).toISOString(), + to: new Date().toISOString(), +}; + +export async function assistantThreadMessage( + event: AssistantThreadStartedEvent, + client: WebClient, +) { + // await client.assistant.threads.setStatus({ + // channel_id: event.channel, + // thread_ts: event.thread_ts, + // status: "Thinking...", + // }); + + console.log(event); + + await client.assistant.threads.setTitle({ + channel_id: event.channel, + thread_ts: event.thread_ts, + title: event.text, + }); + + await new Promise((resolve) => setTimeout(resolve, 3000)); // Simulate a 3s wait + + // If no previous message found, post the new message + await client.chat.postMessage({ + channel: event.channel, + thread_ts: event.thread_ts, + text: "Hello", + }); +} diff --git a/packages/apps/src/slack/lib/events/thread/started.ts b/packages/apps/src/slack/lib/events/thread/started.ts new file mode 100644 index 000000000..7bc40a47f --- /dev/null +++ b/packages/apps/src/slack/lib/events/thread/started.ts @@ -0,0 +1,61 @@ +import type { AssistantThreadStartedEvent, WebClient } from "@slack/web-api"; + +export async function assistantThreadStarted( + event: AssistantThreadStartedEvent, + client: WebClient, +) { + try { + // Set initial status while preparing prompts + await client.assistant.threads.setStatus({ + channel_id: event.assistant_thread.channel_id, + thread_ts: event.assistant_thread.thread_ts, + status: "Thinking...", + }); + + // Post welcome message + await client.chat.postMessage({ + channel: event.assistant_thread.channel_id, + thread_ts: event.assistant_thread.thread_ts, + text: "Welcome! I'm your financial assistant. Here are some suggestions on what you can do:", + }); + + // Set suggested prompts + await client.assistant.threads.setSuggestedPrompts({ + channel_id: event.assistant_thread.channel_id, + thread_ts: event.assistant_thread.thread_ts, + prompts: [ + { + title: "Recent Transactions", + message: "Show me my recent transactions", + }, + { + title: "Category Spending", + message: "How much did I spend on software last month?", + }, + { + title: "Burn Rate", + message: "What's my current burn rate?", + }, + { + title: "Runway", + message: "What's my runway?", + }, + ], + }); + + // Clear the "Thinking..." status + await client.assistant.threads.setStatus({ + channel_id: event.assistant_thread.channel_id, + thread_ts: event.assistant_thread.thread_ts, + status: "", + }); + } catch (error) { + console.error("Error handling assistant thread start:", error); + // Set an error status if something goes wrong + await client.assistant.threads.setStatus({ + channel_id: event.assistant_thread.channel_id, + thread_ts: event.assistant_thread.thread_ts, + status: "Something went wrong", + }); + } +} diff --git a/packages/apps/src/slack/lib/index.ts b/packages/apps/src/slack/lib/index.ts new file mode 100644 index 000000000..dcd6b6854 --- /dev/null +++ b/packages/apps/src/slack/lib/index.ts @@ -0,0 +1,2 @@ +export * from "./client"; +export * from "./events"; diff --git a/packages/apps/src/visma/assets/logo.svg b/packages/apps/src/visma/assets/logo.svg deleted file mode 100644 index f258ac6b2..000000000 --- a/packages/apps/src/visma/assets/logo.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/packages/apps/src/visma/assets/logo.tsx b/packages/apps/src/visma/assets/logo.tsx new file mode 100644 index 000000000..641a9c858 --- /dev/null +++ b/packages/apps/src/visma/assets/logo.tsx @@ -0,0 +1,29 @@ +export const Logo = () => { + return ( + + + + + + + + + + + + ); +}; diff --git a/packages/apps/src/visma/config.ts b/packages/apps/src/visma/config.ts index cc28a8ad2..f2f26745f 100644 --- a/packages/apps/src/visma/config.ts +++ b/packages/apps/src/visma/config.ts @@ -1,10 +1,10 @@ -import logo from "./assets/logo.svg"; +import { Logo } from "./assets/logo"; export default { name: "Visma", id: "visma", active: false, - logo, + logo: Logo, short_description: "Integrating with Visma allows you to synchronize transactions and attachments, neatly organizing them within your bookkeeping software. This streamlines the process for you or your accountant to close your books faster.", description: null, diff --git a/packages/apps/src/xero/assets/logo.svg b/packages/apps/src/xero/assets/logo.svg deleted file mode 100644 index b6d5508e7..000000000 --- a/packages/apps/src/xero/assets/logo.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/packages/apps/src/xero/assets/logo.tsx b/packages/apps/src/xero/assets/logo.tsx new file mode 100644 index 000000000..41451b948 --- /dev/null +++ b/packages/apps/src/xero/assets/logo.tsx @@ -0,0 +1,58 @@ +export const Logo = () => { + return ( + + + + + + + + + + + + + + + + + + + + + ); +}; diff --git a/packages/apps/src/xero/config.ts b/packages/apps/src/xero/config.ts index 9f390468e..6e8483a3f 100644 --- a/packages/apps/src/xero/config.ts +++ b/packages/apps/src/xero/config.ts @@ -1,10 +1,10 @@ -import logo from "./assets/logo.svg"; +import { Logo } from "./assets/logo"; export default { name: "Xero", id: "xero", active: false, - logo, + logo: Logo, short_description: "Integrating with Xero allows you to synchronize transactions and attachments neatly organized in your bookkeeping software, making it easier for you or your accountant to close your books faster.", description: null, diff --git a/packages/events/src/events.ts b/packages/events/src/events.ts index 53918dd3e..150aa8e38 100644 --- a/packages/events/src/events.ts +++ b/packages/events/src/events.ts @@ -191,4 +191,8 @@ export const LogEvents = { name: "Update Currency", channel: "transaction", }, + DisconnectApp: { + name: "Disconnect App", + channel: "app", + }, }; From 53e9870d8716d7f0f45046afba91d961eef5f347 Mon Sep 17 00:00:00 2001 From: Pontus Abrahamsson Date: Thu, 26 Sep 2024 14:46:01 +0200 Subject: [PATCH 04/12] wip --- apps/dashboard/README.md | 2 +- turbo.json | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/dashboard/README.md b/apps/dashboard/README.md index 75b67d4b5..3a38f9b3e 100644 --- a/apps/dashboard/README.md +++ b/apps/dashboard/README.md @@ -1 +1 @@ -## Dashboard +## Dashboard \ No newline at end of file diff --git a/turbo.json b/turbo.json index 6c0a55339..0e6395a1c 100644 --- a/turbo.json +++ b/turbo.json @@ -36,7 +36,10 @@ "SENTRY_AUTH_TOKEN", "SENTRY_ORG", "SENTRY_PROJECT", - "SENTRY_SUPPRESS_GLOBAL_ERROR_HANDLER_FILE_WARNING" + "SENTRY_SUPPRESS_GLOBAL_ERROR_HANDLER_FILE_WARNING", + "SLACK_CLIENT_SECRET", + "SLACK_CLIENT_ID", + "SLACK_SIGNING_SECRET" ], "inputs": ["$TURBO_DEFAULT$", ".env"], "dependsOn": ["^build"], From 34c8500563b58aa7e6e8fae3ec14b0bbded7c9ef Mon Sep 17 00:00:00 2001 From: Pontus Abrahamsson Date: Thu, 26 Sep 2024 14:54:31 +0200 Subject: [PATCH 05/12] wip --- apps/dashboard/src/app/api/apps/slack/events/route.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/dashboard/src/app/api/apps/slack/events/route.ts b/apps/dashboard/src/app/api/apps/slack/events/route.ts index 254d8bb60..ea956aae2 100644 --- a/apps/dashboard/src/app/api/apps/slack/events/route.ts +++ b/apps/dashboard/src/app/api/apps/slack/events/route.ts @@ -25,6 +25,10 @@ export async function POST(req: Request) { ); } + if (challenge) { + return new NextResponse(challenge); + } + const supabase = createClient({ admin: true }); const { data } = await supabase @@ -47,10 +51,6 @@ export async function POST(req: Request) { bot_user_id: string; }; - if (challenge) { - return new NextResponse(challenge); - } - if (event) { await handleSlackEvent(event, { token: settings.access_token, From de961b79ee5d447ef904d8bbe70ce1cf6aa604ec Mon Sep 17 00:00:00 2001 From: Pontus Abrahamsson Date: Thu, 26 Sep 2024 21:18:54 +0200 Subject: [PATCH 06/12] wip --- .../[locale]/(app)/(sidebar)/apps/page.tsx | 3 +- .../app/[locale]/(public)/all-done/page.tsx | 17 ++- .../app/[locale]/(public)/all-done/schema.ts | 2 +- .../src/app/api/apps/slack/events/route.ts | 19 +-- .../api/apps/slack/oauth_callback/route.ts | 11 +- apps/dashboard/src/components/app.tsx | 2 +- .../src/components/apps.skeleton.tsx | 29 +++++ packages/apps/src/index.ts | 2 + packages/apps/src/slack/config.ts | 9 ++ packages/apps/src/slack/lib/events/index.ts | 15 ++- .../src/slack/lib/events/thread/message.ts | 121 ++++++++++++++++-- .../apps/src/slack/lib/tools/get-runway.ts | 46 +++++++ .../apps/src/slack/lib/tools/system-prompt.ts | 10 ++ packages/apps/src/zapier/assets/logo.tsx | 20 +++ packages/apps/src/zapier/config.ts | 14 ++ 15 files changed, 282 insertions(+), 38 deletions(-) create mode 100644 apps/dashboard/src/components/apps.skeleton.tsx create mode 100644 packages/apps/src/slack/lib/tools/get-runway.ts create mode 100644 packages/apps/src/slack/lib/tools/system-prompt.ts create mode 100644 packages/apps/src/zapier/assets/logo.tsx create mode 100644 packages/apps/src/zapier/config.ts diff --git a/apps/dashboard/src/app/[locale]/(app)/(sidebar)/apps/page.tsx b/apps/dashboard/src/app/[locale]/(app)/(sidebar)/apps/page.tsx index b90711f5c..4f537c23b 100644 --- a/apps/dashboard/src/app/[locale]/(app)/(sidebar)/apps/page.tsx +++ b/apps/dashboard/src/app/[locale]/(app)/(sidebar)/apps/page.tsx @@ -1,5 +1,6 @@ import { AppsHeader } from "@/components/apps-header"; import { AppsServer } from "@/components/apps.server"; +import { AppsSkeleton } from "@/components/apps.skeleton"; import { getUser } from "@midday/supabase/cached-queries"; import type { Metadata } from "next"; import { Suspense } from "react"; @@ -15,7 +16,7 @@ export default async function Page() {
- Loading...
}> + }>
diff --git a/apps/dashboard/src/app/[locale]/(public)/all-done/page.tsx b/apps/dashboard/src/app/[locale]/(public)/all-done/page.tsx index 9bcd9257b..7c6a56fb6 100644 --- a/apps/dashboard/src/app/[locale]/(public)/all-done/page.tsx +++ b/apps/dashboard/src/app/[locale]/(public)/all-done/page.tsx @@ -1,4 +1,6 @@ +import Image from "next/image"; import { notFound } from "next/navigation"; +import appIcon from "public/appicon.png"; import { EventEmitter } from "./event-emitter"; import { searchParamsSchema } from "./schema"; @@ -16,8 +18,19 @@ const AllDonePage = ({ searchParams }: Props) => { return ( <> -
-

All done, you can close this window!

+
+
+ Midday + +

You may close this browser tab when done

+
); diff --git a/apps/dashboard/src/app/[locale]/(public)/all-done/schema.ts b/apps/dashboard/src/app/[locale]/(public)/all-done/schema.ts index ed1a970fc..1bc23833a 100644 --- a/apps/dashboard/src/app/[locale]/(public)/all-done/schema.ts +++ b/apps/dashboard/src/app/[locale]/(public)/all-done/schema.ts @@ -1,7 +1,7 @@ import { z } from "zod"; export const searchParamsSchema = z.object({ - event: z.literal("slack_oauth_completed"), + event: z.literal("app_oauth_completed"), }); export type WindowEvent = z.infer["event"]; diff --git a/apps/dashboard/src/app/api/apps/slack/events/route.ts b/apps/dashboard/src/app/api/apps/slack/events/route.ts index ea956aae2..e8c863fe9 100644 --- a/apps/dashboard/src/app/api/apps/slack/events/route.ts +++ b/apps/dashboard/src/app/api/apps/slack/events/route.ts @@ -13,6 +13,13 @@ const ratelimit = new Ratelimit({ export async function POST(req: Request) { const { challenge, team_id, event } = await req.json(); + // We don't need to handle message_deleted events + if (event.type === "message_deleted") { + return NextResponse.json({ + success: true, + }); + } + const ip = req.headers.get("x-forwarded-for") ?? "127.0.0.1"; const { success } = await ratelimit.limit(ip); @@ -33,9 +40,9 @@ export async function POST(req: Request) { const { data } = await supabase .from("apps") - .select("team_id, settings") + .select("team_id, config") .eq("app_id", config.id) - .eq("settings->>team_id", team_id) + .eq("config->>team_id", team_id) .single(); if (!data) { @@ -46,14 +53,10 @@ export async function POST(req: Request) { ); } - const settings = data?.settings as { - access_token: string; - bot_user_id: string; - }; - if (event) { await handleSlackEvent(event, { - token: settings.access_token, + token: data?.config.access_token, + teamId: data.team_id, }); } diff --git a/apps/dashboard/src/app/api/apps/slack/oauth_callback/route.ts b/apps/dashboard/src/app/api/apps/slack/oauth_callback/route.ts index b76808723..94227f594 100644 --- a/apps/dashboard/src/app/api/apps/slack/oauth_callback/route.ts +++ b/apps/dashboard/src/app/api/apps/slack/oauth_callback/route.ts @@ -79,7 +79,8 @@ export async function GET(request: NextRequest) { team_id: parsedMetadata.data.teamId, created_by: parsedMetadata.data.userId, app_id: config.id, - settings: { + settings: config.settings, + config: { access_token: parsedJson.data.access_token, team_id: parsedJson.data.team.id, team_name: parsedJson.data.team.name, @@ -93,12 +94,12 @@ export async function GET(request: NextRequest) { if (createdSlackIntegration) { const slackApp = createSlackApp({ - token: createdSlackIntegration.settings.access_token, - botId: createdSlackIntegration.settings.bot_user_id, + token: createdSlackIntegration.config.access_token, + botId: createdSlackIntegration.config.bot_user_id, }); slackApp.client.chat.postMessage({ - channel: createdSlackIntegration.settings.channel_id, + channel: createdSlackIntegration.config.channel_id, text: `Hello, I'm Midday Assistant. I'll send notifications in this channel`, }); @@ -111,7 +112,7 @@ export async function GET(request: NextRequest) { // This window will be in a popup so we redirect to the all-done route which closes the window // and then sends a browser event to the parent window. Actions can be taken based on this event. return NextResponse.redirect( - `${requestUrl.origin}/all-done?event=slack_oauth_completed`, + `${requestUrl.origin}/all-done?event=app_oauth_completed`, ); } } catch (err) { diff --git a/apps/dashboard/src/components/app.tsx b/apps/dashboard/src/components/app.tsx index 8d5d66e8a..3a89b02f4 100644 --- a/apps/dashboard/src/components/app.tsx +++ b/apps/dashboard/src/components/app.tsx @@ -56,7 +56,7 @@ export function App({ {installed && ( -
+
Installed
)} diff --git a/apps/dashboard/src/components/apps.skeleton.tsx b/apps/dashboard/src/components/apps.skeleton.tsx new file mode 100644 index 000000000..e2a27b915 --- /dev/null +++ b/apps/dashboard/src/components/apps.skeleton.tsx @@ -0,0 +1,29 @@ +import { Card } from "@midday/ui/card"; +import { Skeleton } from "@midday/ui/skeleton"; + +export function AppsSkeleton() { + return ( +
+ {Array.from({ length: 8 }).map((_, index) => ( + +
+ + +
+ +
+
+ + + +
+
+ + +
+
+
+ ))} +
+ ); +} diff --git a/packages/apps/src/index.ts b/packages/apps/src/index.ts index 04db76cbb..147614471 100644 --- a/packages/apps/src/index.ts +++ b/packages/apps/src/index.ts @@ -4,6 +4,7 @@ import quickBooksApp from "./quick-books/config"; import slackApp from "./slack/config"; import vismaApp from "./visma/config"; import xeroApp from "./xero/config"; +import zapierApp from "./zapier/config"; export const apps = [ slackApp, @@ -12,4 +13,5 @@ export const apps = [ calApp, fortnoxApp, vismaApp, + zapierApp, ]; diff --git a/packages/apps/src/slack/config.ts b/packages/apps/src/slack/config.ts index 938fb7e71..44afc4655 100644 --- a/packages/apps/src/slack/config.ts +++ b/packages/apps/src/slack/config.ts @@ -19,4 +19,13 @@ export default { teamId: user.team_id, }); }, + settings: [ + { + id: "notifications", + label: "Notifications", + type: "switch", + required: false, + default: true, + }, + ], }; diff --git a/packages/apps/src/slack/lib/events/index.ts b/packages/apps/src/slack/lib/events/index.ts index afeca33da..282c22015 100644 --- a/packages/apps/src/slack/lib/events/index.ts +++ b/packages/apps/src/slack/lib/events/index.ts @@ -1,28 +1,31 @@ import { createSlackWebClient } from "@midday/apps/slack"; import type { SlackEvent } from "@slack/bolt"; -import { messageChanged } from "./message/changed"; +import { waitUntil } from "@vercel/functions"; import { assistantThreadMessage, assistantThreadStarted } from "./thread"; export async function handleSlackEvent( event: SlackEvent, - options: { token: string }, + options: { token: string; teamId: string }, ) { const client = createSlackWebClient({ token: options.token, }); if (event.type === "assistant_thread_started") { - return assistantThreadStarted(event, client); + waitUntil(assistantThreadStarted(event, client)); + return; } if ( event.text && event.type === "message" && event.channel_type === "im" && - !event?.bot_id && + !event.bot_id && // Ignore bot messages event.subtype !== "assistant_app_thread" ) { - console.log(event); - return assistantThreadMessage(event, client); + waitUntil( + assistantThreadMessage(event, client, { teamId: options.teamId }), + ); + return; } } diff --git a/packages/apps/src/slack/lib/events/thread/message.ts b/packages/apps/src/slack/lib/events/thread/message.ts index 2cb7092b9..96b1d56a9 100644 --- a/packages/apps/src/slack/lib/events/thread/message.ts +++ b/packages/apps/src/slack/lib/events/thread/message.ts @@ -1,8 +1,10 @@ import { openai } from "@ai-sdk/openai"; +import { createClient } from "@midday/supabase/server"; import type { AssistantThreadStartedEvent, WebClient } from "@slack/web-api"; import { generateText } from "ai"; import { startOfMonth, subMonths } from "date-fns"; -import { z } from "zod"; +import { getRunwayTool } from "../../tools/get-runway"; +import { systemPrompt } from "../../tools/system-prompt"; const defaultValues = { from: subMonths(startOfMonth(new Date()), 12).toISOString(), @@ -12,27 +14,118 @@ const defaultValues = { export async function assistantThreadMessage( event: AssistantThreadStartedEvent, client: WebClient, + { teamId }: { teamId: string }, ) { - // await client.assistant.threads.setStatus({ - // channel_id: event.channel, - // thread_ts: event.thread_ts, - // status: "Thinking...", - // }); + const supabase = createClient({ admin: true }); - console.log(event); + // Update the status of the thread + await client.assistant.threads.setStatus({ + channel_id: event.channel, + thread_ts: event.thread_ts, + status: "Is thinking...", + }); + // Set the title of the thread await client.assistant.threads.setTitle({ channel_id: event.channel, thread_ts: event.thread_ts, title: event.text, }); - await new Promise((resolve) => setTimeout(resolve, 3000)); // Simulate a 3s wait - - // If no previous message found, post the new message - await client.chat.postMessage({ - channel: event.channel, - thread_ts: event.thread_ts, - text: "Hello", + const { text } = await generateText({ + model: openai("gpt-4o-mini"), + maxToolRoundtrips: 5, + system: systemPrompt, + messages: [ + { + role: "user", + content: event.text, + }, + ], + tools: { + getRunway: getRunwayTool({ + defaultValues, + supabase, + teamId, + }), + // getProfit: { + // description: "Get the profit", + // parameters: z.object({ + // currency: z + // .string() + // .describe("The currency for the profit") + // .optional(), + // startDate: z.coerce + // .date() + // .describe( + // "The start date for profit calculation, in ISO-8601 format", + // ) + // .default(new Date(defaultValues.from)), + // endDate: z.coerce + // .date() + // .describe("The end date for profit calculation, in ISO-8601 format") + // .default(new Date(defaultValues.to)), + // }), + // execute: async ({ currency, startDate, endDate }) => { + // return `Profit from ${startDate.toISOString()} to ${endDate.toISOString()} with currency ${currency || "default"}`; + // }, + // }, + // getTransactions: { + // description: "Get transactions or expenses", + // parameters: z.object({ + // type: z + // .enum(["transactions", "expenses"]) + // .describe("Type of data to retrieve"), + // startDate: z.coerce + // .date() + // .describe("The start date for transactions, in ISO-8601 format") + // .default(new Date(defaultValues.from)), + // endDate: z.coerce + // .date() + // .describe("The end date for transactions, in ISO-8601 format") + // .default(new Date(defaultValues.to)), + // }), + // execute: async ({ type, startDate, endDate }) => { + // return `${type} from ${startDate.toISOString()} to ${endDate.toISOString()}`; + // }, + // }, + // getSpending: { + // description: "Get spending based on a category", + // parameters: z.object({ + // category: z.string().describe("The spending category"), + // startDate: z.coerce + // .date() + // .describe( + // "The start date for spending calculation, in ISO-8601 format", + // ) + // .default(new Date(defaultValues.from)), + // endDate: z.coerce + // .date() + // .describe( + // "The end date for spending calculation, in ISO-8601 format", + // ) + // .default(new Date(defaultValues.to)), + // }), + // execute: async ({ category, startDate, endDate }) => { + // return `Spending for category '${category}' from ${startDate.toISOString()} to ${endDate.toISOString()}`; + // }, + // }, + }, }); + + if (text) { + // Send the message to the thread + await client.chat.postMessage({ + channel: event.channel, + thread_ts: event.thread_ts, + text, + }); + } else { + // If no previous message found, post the new message + await client.chat.postMessage({ + channel: event.channel, + thread_ts: event.thread_ts, + text: "Sorry I couldn't find an answer to that question", + }); + } } diff --git a/packages/apps/src/slack/lib/tools/get-runway.ts b/packages/apps/src/slack/lib/tools/get-runway.ts new file mode 100644 index 000000000..be10ed595 --- /dev/null +++ b/packages/apps/src/slack/lib/tools/get-runway.ts @@ -0,0 +1,46 @@ +import { getRunwayQuery } from "@midday/supabase/queries"; +import type { Client } from "@midday/supabase/types"; +import { startOfMonth } from "date-fns"; +import { z } from "zod"; + +export function getRunwayTool({ + defaultValues, + supabase, + teamId, +}: { + defaultValues: { + from: string; + to: string; + }; + supabase: Client; + teamId: string; +}) { + return { + description: "Get the runway", + parameters: z.object({ + currency: z.string().describe("The currency for the runway").optional(), + startDate: z.coerce + .date() + .describe("The start date of the runway, in ISO-8601 format") + .default(new Date(defaultValues.from)), + endDate: z.coerce + .date() + .describe("The end date of the runway, in ISO-8601 format") + .default(new Date(defaultValues.to)), + }), + execute: async ({ + currency, + startDate, + endDate, + }: { currency?: string; startDate: Date; endDate: Date }) => { + const { data } = await getRunwayQuery(supabase, { + currency, + from: startOfMonth(startDate).toISOString(), + to: endDate.toISOString(), + teamId, + }); + + return `Runway with currency ${currency || "default"} is ${data} months. Based on the data from ${startDate.toISOString()} to ${endDate.toISOString()}.`; + }, + }; +} diff --git a/packages/apps/src/slack/lib/tools/system-prompt.ts b/packages/apps/src/slack/lib/tools/system-prompt.ts new file mode 100644 index 000000000..7c76f9b3a --- /dev/null +++ b/packages/apps/src/slack/lib/tools/system-prompt.ts @@ -0,0 +1,10 @@ +export const systemPrompt = `\ + You are a helpful assistant in Midday who can help users ask questions about their transactions, revenue, spending find invoices and more. + If the user wants the celsius to fahrenheit, call \`celsiusToFahrenheit\` function. + If the user wants the runway, call \`getRunway\` function. + If the user wants the profit, call \`getProfit\` function. + If the user wants to find transactions or expenses, call \`getTransactions\` function. + If the user wants to see spending based on a category, call \`getSpending\` function. + Always try to call the functions with default values, otherwise ask the user to respond with parameters. + Current date is: ${new Date().toISOString().split("T")[0]} \n + `; diff --git a/packages/apps/src/zapier/assets/logo.tsx b/packages/apps/src/zapier/assets/logo.tsx new file mode 100644 index 000000000..f2663e2b3 --- /dev/null +++ b/packages/apps/src/zapier/assets/logo.tsx @@ -0,0 +1,20 @@ +export const Logo = () => { + return ( + + + + + ); +}; diff --git a/packages/apps/src/zapier/config.ts b/packages/apps/src/zapier/config.ts new file mode 100644 index 000000000..f8e271187 --- /dev/null +++ b/packages/apps/src/zapier/config.ts @@ -0,0 +1,14 @@ +import { Logo } from "./assets/logo"; + +export default { + name: "Zapier", + id: "zapier", + category: "Automation", + active: false, + logo: Logo, + short_description: + "Zapier lets you connect Midday to other apps and automate powerful workflows.", + description: null, + images: [], + onInitialize: () => {}, +}; From 7b405f78b9ae8599a3fe6c43b2b0b43782a51987 Mon Sep 17 00:00:00 2001 From: Pontus Abrahamsson Date: Fri, 27 Sep 2024 09:47:49 +0200 Subject: [PATCH 07/12] Fix install url --- .../src/app/api/apps/slack/events/route.ts | 49 ++++++++++--------- .../app/api/apps/slack/install-url/route.ts | 20 ++++++++ .../api/apps/slack/oauth_callback/route.ts | 13 ++++- apps/dashboard/src/components/app.tsx | 19 ++++--- apps/dashboard/src/components/apps.tsx | 1 - apps/dashboard/src/components/iframe.tsx | 2 +- packages/apps/src/cal/assets/logo.tsx | 2 +- packages/apps/src/fortnox/assets/logo.tsx | 2 +- packages/apps/src/slack/config.ts | 7 +-- packages/apps/src/slack/index.ts | 1 + packages/apps/src/slack/initialize.ts | 32 ++---------- packages/apps/src/slack/lib/client.ts | 19 ++++++- packages/apps/src/slack/lib/index.ts | 1 + packages/apps/src/slack/lib/verify.ts | 38 ++++++++++++++ packages/apps/src/visma/assets/logo.tsx | 6 +-- packages/apps/src/xero/assets/logo.tsx | 2 +- 16 files changed, 140 insertions(+), 74 deletions(-) create mode 100644 apps/dashboard/src/app/api/apps/slack/install-url/route.ts create mode 100644 packages/apps/src/slack/lib/verify.ts diff --git a/apps/dashboard/src/app/api/apps/slack/events/route.ts b/apps/dashboard/src/app/api/apps/slack/events/route.ts index e8c863fe9..fd8bd51ce 100644 --- a/apps/dashboard/src/app/api/apps/slack/events/route.ts +++ b/apps/dashboard/src/app/api/apps/slack/events/route.ts @@ -1,35 +1,37 @@ -import { config, handleSlackEvent } from "@midday/apps/slack"; +import { + config, + handleSlackEvent, + verifySlackRequest, +} from "@midday/apps/slack"; import { createClient } from "@midday/supabase/server"; -import { Ratelimit } from "@upstash/ratelimit"; -import { Redis } from "@upstash/redis"; +import { headers } from "next/headers"; import { NextResponse } from "next/server"; -const ratelimit = new Ratelimit({ - redis: Redis.fromEnv(), - limiter: Ratelimit.slidingWindow(15, "1m"), - analytics: true, -}); - export async function POST(req: Request) { - const { challenge, team_id, event } = await req.json(); + const rawBody = await req.text(); - // We don't need to handle message_deleted events - if (event.type === "message_deleted") { - return NextResponse.json({ - success: true, + try { + verifySlackRequest({ + signingSecret: process.env.SLACK_SIGNING_SECRET!, + body: rawBody, + // @ts-expect-error - headers are not typed + headers: Object.fromEntries(headers().entries()), }); + } catch (error) { + console.error("Slack request verification failed:", error); + return NextResponse.json( + { error: "Invalid Slack request" }, + { status: 401 }, + ); } - const ip = req.headers.get("x-forwarded-for") ?? "127.0.0.1"; - const { success } = await ratelimit.limit(ip); + const { challenge, team_id, event } = JSON.parse(rawBody); - if (!success) { - return NextResponse.json( - { error: "Too many requests" }, - { - status: 429, - }, - ); + // We don't need to handle message_deleted events + if (event?.type === "message_deleted") { + return NextResponse.json({ + success: true, + }); } if (challenge) { @@ -46,7 +48,6 @@ export async function POST(req: Request) { .single(); if (!data) { - console.error(`No team found for Slack team_id: ${team_id}`); return NextResponse.json( { error: "Unauthorized: No matching team found" }, { status: 401 }, diff --git a/apps/dashboard/src/app/api/apps/slack/install-url/route.ts b/apps/dashboard/src/app/api/apps/slack/install-url/route.ts new file mode 100644 index 000000000..032da8526 --- /dev/null +++ b/apps/dashboard/src/app/api/apps/slack/install-url/route.ts @@ -0,0 +1,20 @@ +import { getInstallUrl } from "@midday/apps/slack"; +import { getUser } from "@midday/supabase/cached-queries"; +import { NextResponse } from "next/server"; + +export async function GET() { + const { data } = await getUser(); + + if (!data) { + return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); + } + + const url = await getInstallUrl({ + teamId: data.team_id, + userId: data.id, + }); + + return NextResponse.json({ + url, + }); +} diff --git a/apps/dashboard/src/app/api/apps/slack/oauth_callback/route.ts b/apps/dashboard/src/app/api/apps/slack/oauth_callback/route.ts index 94227f594..7e5d8c2a9 100644 --- a/apps/dashboard/src/app/api/apps/slack/oauth_callback/route.ts +++ b/apps/dashboard/src/app/api/apps/slack/oauth_callback/route.ts @@ -1,5 +1,5 @@ import { createApp } from "@midday/apps/db"; -import { config, createSlackApp } from "@midday/apps/slack"; +import { config, createSlackApp, slackInstaller } from "@midday/apps/slack"; import { type NextRequest, NextResponse } from "next/server"; import { z } from "zod"; @@ -46,10 +46,19 @@ export async function GET(request: NextRequest) { return NextResponse.json({ error: "Invalid params" }, { status: 400 }); } + const veryfiedState = await slackInstaller.stateStore?.verifyStateParam( + new Date(), + parsedParams.data.state, + ); const parsedMetadata = metadataSchema.safeParse( - JSON.parse(parsedParams.data.state), + JSON.parse(veryfiedState?.metadata ?? "{}"), ); + if (!parsedMetadata.success) { + console.error("Invalid metadata", parsedMetadata.error.errors); + return NextResponse.json({ error: "Invalid metadata" }, { status: 400 }); + } + try { const slackOauthAccessUrl = [ "https://slack.com/api/oauth.v2.access", diff --git a/apps/dashboard/src/components/app.tsx b/apps/dashboard/src/components/app.tsx index 3a89b02f4..461169d0f 100644 --- a/apps/dashboard/src/components/app.tsx +++ b/apps/dashboard/src/components/app.tsx @@ -16,7 +16,7 @@ import { } from "@midday/ui/sheet"; import { useAction } from "next-safe-action/hooks"; import Image from "next/image"; -import type { User } from "./apps"; +import { useState } from "react"; export function App({ id, @@ -37,18 +37,25 @@ export function App({ short_description: string; description: string; settings: Record; - onInitialize: (user: User) => void; + onInitialize: () => void; images: string[]; active?: boolean; installed?: boolean; category: string; }) { + const [isLoading, setLoading] = useState(false); const disconnectApp = useAction(disconnectAppAction); const handleDisconnect = () => { disconnectApp.execute({ appId: id }); }; + const handleOnInitialize = async () => { + setLoading(true); + await onInitialize(); + setLoading(false); + }; + return ( @@ -99,8 +106,8 @@ export function App({ @@ -151,8 +158,8 @@ export function App({ diff --git a/apps/dashboard/src/components/apps.tsx b/apps/dashboard/src/components/apps.tsx index 43e592f4c..1dcfb63cf 100644 --- a/apps/dashboard/src/components/apps.tsx +++ b/apps/dashboard/src/components/apps.tsx @@ -17,7 +17,6 @@ export function Apps({ {apps.map((app) => ( app.onInitialize(user)} diff --git a/apps/dashboard/src/components/iframe.tsx b/apps/dashboard/src/components/iframe.tsx index aa3592b53..7dedc5930 100644 --- a/apps/dashboard/src/components/iframe.tsx +++ b/apps/dashboard/src/components/iframe.tsx @@ -62,7 +62,7 @@ export function Iframe({ allowFullScreen={false} loading="lazy" className={cn( - "h-full w-full transition-opacity duration-[100ms]", + "h-full w-full transition-opacity duration-100", isLoading && "opacity-0", )} style={{ diff --git a/packages/apps/src/cal/assets/logo.tsx b/packages/apps/src/cal/assets/logo.tsx index 6d45f307c..da1e0dfad 100644 --- a/packages/apps/src/cal/assets/logo.tsx +++ b/packages/apps/src/cal/assets/logo.tsx @@ -7,7 +7,7 @@ export const Logo = () => { fill="none" xmlns="http://www.w3.org/2000/svg" > - + { fill="none" xmlns="http://www.w3.org/2000/svg" > - + { - onInitialize({ - userId: user.id, - teamId: user.team_id, - }); - }, + onInitialize, settings: [ { id: "notifications", diff --git a/packages/apps/src/slack/index.ts b/packages/apps/src/slack/index.ts index bb6a8e8b2..dfe48e84a 100644 --- a/packages/apps/src/slack/index.ts +++ b/packages/apps/src/slack/index.ts @@ -1,2 +1,3 @@ export { default as config } from "./config"; export * from "./lib"; +export { verifySlackRequest } from "@slack/bolt"; diff --git a/packages/apps/src/slack/initialize.ts b/packages/apps/src/slack/initialize.ts index d49053e8c..faa982669 100644 --- a/packages/apps/src/slack/initialize.ts +++ b/packages/apps/src/slack/initialize.ts @@ -1,31 +1,9 @@ -const BASE = "https://slack.com/oauth/v2/authorize"; - -const generateInstallUrl = ({ - teamId, - userId, -}: { teamId: string; userId: string }) => { - const url = new URL(BASE); - - url.searchParams.set("client_id", process.env.NEXT_PUBLIC_SLACK_CLIENT_ID!); - url.searchParams.set( - "redirect_uri", - process.env.NEXT_PUBLIC_SLACK_OAUTH_REDIRECT_URL!, - ); - url.searchParams.set( - "scope", - "incoming-webhook,chat:write,chat:write.public,team:read,assistant:write,im:history", +export const onInitialize = async () => { + const response = await fetch("/api/apps/slack/install-url").then((res) => + res.json(), ); - url.searchParams.set("state", JSON.stringify({ teamId, userId })); - - return url.toString(); -}; - -export const onInitialize = ({ - teamId, - userId, -}: { teamId: string; userId: string }) => { - const url = generateInstallUrl({ teamId, userId }); + const { url } = response; const width = 600; const height = 800; @@ -45,7 +23,7 @@ export const onInitialize = ({ } const listener = (e: MessageEvent) => { - if (e.data === "slack_oauth_completed") { + if (e.data === "app_oauth_completed") { window.location.reload(); window.removeEventListener("message", listener); popup.close(); diff --git a/packages/apps/src/slack/lib/client.ts b/packages/apps/src/slack/lib/client.ts index d40d3f014..ee6d9188a 100644 --- a/packages/apps/src/slack/lib/client.ts +++ b/packages/apps/src/slack/lib/client.ts @@ -33,7 +33,6 @@ export const slackInstaller = new InstallProvider({ clientId: SLACK_CLIENT_ID, clientSecret: SLACK_CLIENT_SECRET, stateSecret: SLACK_STATE_SECRET, - stateVerification: false, logLevel: process.env.NODE_ENV === "development" ? LogLevel.DEBUG : undefined, }); @@ -55,3 +54,21 @@ export const createSlackWebClient = ({ }) => { return new WebClient(token); }; + +export const getInstallUrl = ({ + teamId, + userId, +}: { teamId: string; userId: string }) => { + return slackInstaller.generateInstallUrl({ + scopes: [ + "incoming-webhook", + "chat:write", + "chat:write.public", + "team:read", + "assistant:write", + "im:history", + ], + redirectUri: SLACK_OAUTH_REDIRECT_URL, + metadata: JSON.stringify({ teamId, userId }), + }); +}; diff --git a/packages/apps/src/slack/lib/index.ts b/packages/apps/src/slack/lib/index.ts index dcd6b6854..0ce931943 100644 --- a/packages/apps/src/slack/lib/index.ts +++ b/packages/apps/src/slack/lib/index.ts @@ -1,2 +1,3 @@ export * from "./client"; export * from "./events"; +export * from "./verify"; diff --git a/packages/apps/src/slack/lib/verify.ts b/packages/apps/src/slack/lib/verify.ts new file mode 100644 index 000000000..1f2d88f5f --- /dev/null +++ b/packages/apps/src/slack/lib/verify.ts @@ -0,0 +1,38 @@ +import { createHmac } from "node:crypto"; + +export async function verifySlackWebhook(req: Request) { + const SLACK_SIGNING_SECRET = process.env.SLACK_SIGNING_SECRET; + + if (!SLACK_SIGNING_SECRET) { + throw new Error("SLACK_SIGNING_SECRET is not set"); + } + + const fiveMinutesInSeconds = 5 * 60; + const slackSignatureVersion = "v0"; + + const body = await req.text(); + const timestamp = req.headers.get("x-slack-request-timestamp"); + const slackSignature = req.headers.get("x-slack-signature"); + + if (!timestamp || !slackSignature) { + throw new Error("Missing required Slack headers"); + } + + const currentTime = Math.floor(Date.now() / 1000); + if ( + Math.abs(currentTime - Number.parseInt(timestamp)) > fiveMinutesInSeconds + ) { + throw new Error("Request is too old"); + } + + const sigBasestring = `${slackSignatureVersion}:${timestamp}:${body}`; + const mySignature = createHmac("sha256", SLACK_SIGNING_SECRET) + .update(sigBasestring) + .digest("hex"); + + if (`${slackSignatureVersion}=${mySignature}` !== slackSignature) { + throw new Error("Invalid Slack signature"); + } + + return JSON.parse(body); +} diff --git a/packages/apps/src/visma/assets/logo.tsx b/packages/apps/src/visma/assets/logo.tsx index 641a9c858..7a6d43ed0 100644 --- a/packages/apps/src/visma/assets/logo.tsx +++ b/packages/apps/src/visma/assets/logo.tsx @@ -7,14 +7,14 @@ export const Logo = () => { fill="none" xmlns="http://www.w3.org/2000/svg" > - + diff --git a/packages/apps/src/xero/assets/logo.tsx b/packages/apps/src/xero/assets/logo.tsx index 41451b948..380498963 100644 --- a/packages/apps/src/xero/assets/logo.tsx +++ b/packages/apps/src/xero/assets/logo.tsx @@ -7,7 +7,7 @@ export const Logo = () => { fill="none" xmlns="http://www.w3.org/2000/svg" > - + Date: Fri, 27 Sep 2024 12:33:44 +0200 Subject: [PATCH 08/12] App settings --- .../src/actions/update-app-settings-action.ts | 61 + .../api/apps/slack/oauth_callback/route.ts | 35 +- .../dashboard/src/components/app-settings.tsx | 68 + apps/dashboard/src/components/app.tsx | 55 +- apps/dashboard/src/components/apps.server.tsx | 10 +- apps/dashboard/src/components/apps.tsx | 7 +- packages/apps/src/slack/config.ts | 8 +- packages/apps/src/slack/lib/client.ts | 2 + .../src/slack/lib/events/thread/started.ts | 24 +- packages/events/src/events.ts | 4 + packages/supabase/src/types/db.ts | 2755 +++++++++-------- 11 files changed, 1638 insertions(+), 1391 deletions(-) create mode 100644 apps/dashboard/src/actions/update-app-settings-action.ts create mode 100644 apps/dashboard/src/components/app-settings.tsx diff --git a/apps/dashboard/src/actions/update-app-settings-action.ts b/apps/dashboard/src/actions/update-app-settings-action.ts new file mode 100644 index 000000000..c87dd47eb --- /dev/null +++ b/apps/dashboard/src/actions/update-app-settings-action.ts @@ -0,0 +1,61 @@ +"use server"; + +import { LogEvents } from "@midday/events/events"; +import { revalidatePath } from "next/cache"; +import { z } from "zod"; +import { authActionClient } from "./safe-action"; + +export const updateAppSettingsAction = authActionClient + .schema( + z.object({ + app_id: z.string(), + option: z.object({ + id: z.string(), + value: z.unknown(), + }), + }), + ) + .metadata({ + name: "update-app-settings", + track: { + event: LogEvents.UpdateAppSettings.name, + channel: LogEvents.UpdateAppSettings.channel, + }, + }) + .action( + async ({ parsedInput: { app_id, option }, ctx: { user, supabase } }) => { + const { data: existingApp } = await supabase + .from("apps") + .select("settings") + .eq("app_id", app_id) + .eq("team_id", user.team_id) + .single(); + + if (!existingApp) { + throw new Error("App not found"); + } + + const updatedSettings = existingApp?.settings.map((setting) => { + if (setting.id === option.id) { + return { ...setting, value: option.value }; + } + return setting; + }); + + const { data, error } = await supabase + .from("apps") + .update({ settings: updatedSettings }) + .eq("app_id", app_id) + .eq("team_id", user.team_id) + .select() + .single(); + + if (!data) { + throw new Error("Failed to update app settings"); + } + + revalidatePath("/apps"); + + return data; + }, + ); diff --git a/apps/dashboard/src/app/api/apps/slack/oauth_callback/route.ts b/apps/dashboard/src/app/api/apps/slack/oauth_callback/route.ts index 7e5d8c2a9..10cf998a2 100644 --- a/apps/dashboard/src/app/api/apps/slack/oauth_callback/route.ts +++ b/apps/dashboard/src/app/api/apps/slack/oauth_callback/route.ts @@ -107,10 +107,36 @@ export async function GET(request: NextRequest) { botId: createdSlackIntegration.config.bot_user_id, }); - slackApp.client.chat.postMessage({ - channel: createdSlackIntegration.config.channel_id, - text: `Hello, I'm Midday Assistant. I'll send notifications in this channel`, - }); + try { + await slackApp.client.chat.postMessage({ + channel: createdSlackIntegration.config.channel_id, + unfurl_links: false, + unfurl_media: false, + blocks: [ + { + type: "section", + text: { + type: "mrkdwn", + text: "Hello there! 👋 I'm your new Midday bot, I'll send notifications in this channel regarding new transactions and other important updates.\n\n Head over to the to ask questions.", + }, + }, + { + type: "divider", + }, + { + type: "context", + elements: [ + { + type: "mrkdwn", + text: "", + }, + ], + }, + ], + }); + } catch (err) { + console.error(err); + } const requestUrl = new URL(request.url); @@ -125,7 +151,6 @@ export async function GET(request: NextRequest) { ); } } catch (err) { - console.error(err); return NextResponse.json( { error: "Failed to exchange code for token" }, { status: 500 }, diff --git a/apps/dashboard/src/components/app-settings.tsx b/apps/dashboard/src/components/app-settings.tsx new file mode 100644 index 000000000..6bfe633ba --- /dev/null +++ b/apps/dashboard/src/components/app-settings.tsx @@ -0,0 +1,68 @@ +import { updateAppSettingsAction } from "@/actions/update-app-settings-action"; +import { Label } from "@midday/ui/label"; +import { Switch } from "@midday/ui/switch"; +import { useAction } from "next-safe-action/hooks"; + +type AppSettingsItem = { + id: string; + label: string; + description: string; + type: "switch" | "text" | "select"; + required: boolean; + value: string | boolean; +}; + +function AppSettingsItem({ + setting, + appId, +}: { + setting: AppSettingsItem; + appId: string; +}) { + const updateAppSettings = useAction(updateAppSettingsAction); + + switch (setting.type) { + case "switch": + return ( +
+
+ +

{setting.description}

+
+ { + updateAppSettings.execute({ + app_id: appId, + option: { + id: setting.id, + value: Boolean(checked), + }, + }); + }} + /> +
+ ); + default: + return null; + } +} + +export function AppSettings({ + settings, + appId, +}: { + settings: AppSettingsItem[]; + appId: string; +}) { + return ( +
+ {settings.map((setting) => ( +
+ +
+ ))} +
+ ); +} diff --git a/apps/dashboard/src/components/app.tsx b/apps/dashboard/src/components/app.tsx index 461169d0f..974842b75 100644 --- a/apps/dashboard/src/components/app.tsx +++ b/apps/dashboard/src/components/app.tsx @@ -8,15 +8,12 @@ import { import { Button } from "@midday/ui/button"; import { Card, CardContent, CardHeader, CardTitle } from "@midday/ui/card"; import { ScrollArea } from "@midday/ui/scroll-area"; -import { - Sheet, - SheetContent, - SheetHeader, - SheetTrigger, -} from "@midday/ui/sheet"; +import { Sheet, SheetContent, SheetHeader } from "@midday/ui/sheet"; import { useAction } from "next-safe-action/hooks"; import Image from "next/image"; +import { parseAsBoolean, parseAsString, useQueryStates } from "nuqs"; import { useState } from "react"; +import { AppSettings } from "./app-settings"; export function App({ id, @@ -30,6 +27,7 @@ export function App({ active, installed, category, + userSettings, }: { id: string; logo: React.ComponentType; @@ -42,7 +40,13 @@ export function App({ active?: boolean; installed?: boolean; category: string; + userSettings: Record; }) { + const [params, setParams] = useQueryStates({ + app: parseAsString, + settings: parseAsBoolean, + }); + const [isLoading, setLoading] = useState(false); const disconnectApp = useAction(disconnectAppAction); @@ -58,7 +62,7 @@ export function App({ return ( - + setParams(null)}>
@@ -86,11 +90,14 @@ export function App({
- - - + {installed ? (