From 4f766edbc26266a165ac543363f36f57b4641d0e Mon Sep 17 00:00:00 2001 From: Chris Volzer Date: Tue, 21 Jul 2026 10:41:43 -0400 Subject: [PATCH 1/2] feat(mcp-servers): resolve store icons from icon_domain via the logo.dev proxy The MCP store backend is replacing bundled icon assets with an icon_domain field per template, resolved at render time through the authenticated mcp_servers/icon/ proxy (PostHog/posthog#70159). Stop reading icon_key everywhere so the backend can drop the field: - api-client: add icon_domain to the generated MCP types and a getMcpServerIconUrl method (authenticated fetch -> object URL; the endpoint's 404 means "no icon", surfaced as null). - core: iconDomainFromServerUrl derives a best-effort brand domain from a server URL (strips mcp./api./www.) so custom installs get icons too; resolveServerDetails now resolves iconDomain + serverUrl. - ui: ServerIcon fetches through the proxy with the active theme, latching failures per (domain, theme); bundled assets and BRAND_ICONS removed (claude.svg stays, used by ContinueCliSessions). - mobile: same migration on the hand-mirrored types and ServerIcon (RN Image with Authorization header); bundled assets and SERVER_LOGOS removed. Generated-By: PostHog Code Task-Id: 2f81c64d-a1c4-483e-affd-a9b355756737 --- apps/mobile/assets/services/airops.png | Bin 4354 -> 0 bytes apps/mobile/assets/services/atlassian.svg | 5 - apps/mobile/assets/services/attio.png | Bin 7269 -> 0 bytes apps/mobile/assets/services/box.svg | 1 - apps/mobile/assets/services/browserbase.svg | 6 - apps/mobile/assets/services/canva.svg | 1 - apps/mobile/assets/services/circle.png | Bin 35647 -> 0 bytes .../assets/services/cisco_thousandeyes.png | Bin 11326 -> 0 bytes apps/mobile/assets/services/clerk.svg | 7 -- apps/mobile/assets/services/clickhouse.svg | 1 - apps/mobile/assets/services/cloudflare.svg | 13 -- apps/mobile/assets/services/context7.svg | 8 -- apps/mobile/assets/services/datadog.svg | 14 --- apps/mobile/assets/services/figma.svg | 1 - apps/mobile/assets/services/firetiger.svg | 25 ---- apps/mobile/assets/services/github.svg | 10 -- apps/mobile/assets/services/gitlab.svg | 25 ---- apps/mobile/assets/services/granola.svg | 11 -- apps/mobile/assets/services/hex.svg | 1 - apps/mobile/assets/services/hubspot.svg | 22 ---- apps/mobile/assets/services/launchdarkly.png | Bin 5230 -> 0 bytes apps/mobile/assets/services/linear.svg | 1 - apps/mobile/assets/services/mem0.svg | 4 - apps/mobile/assets/services/monday.svg | 20 --- apps/mobile/assets/services/neon.svg | 13 -- apps/mobile/assets/services/notion.svg | 4 - apps/mobile/assets/services/pagerduty.svg | 17 --- apps/mobile/assets/services/planetscale.svg | 11 -- apps/mobile/assets/services/postman.svg | 50 -------- apps/mobile/assets/services/prisma.svg | 12 -- apps/mobile/assets/services/render.svg | 5 - apps/mobile/assets/services/sanity.svg | 17 --- apps/mobile/assets/services/sentry.svg | 1 - apps/mobile/assets/services/slack.png | Bin 11043 -> 0 bytes apps/mobile/assets/services/stripe.png | Bin 1663 -> 0 bytes apps/mobile/assets/services/supabase.svg | 13 -- apps/mobile/assets/services/svelte.png | Bin 13718 -> 0 bytes apps/mobile/assets/services/wix.png | Bin 17240 -> 0 bytes .../src/app/mcp-servers/installation/[id].tsx | 6 +- .../src/app/mcp-servers/template/[id].tsx | 6 +- .../features/mcp/components/McpServerRow.tsx | 14 ++- .../features/mcp/components/ServerIcon.tsx | 60 +++++++-- .../features/mcp/components/serverIcons.ts | 116 ----------------- .../src/features/mcp/iconDomain.test.ts | 36 ++++++ apps/mobile/src/features/mcp/iconDomain.ts | 33 +++++ apps/mobile/src/features/mcp/types.ts | 8 +- packages/api-client/src/generated.ts | 8 +- .../api-client/src/posthog-client.test.ts | 67 ++++++++++ packages/api-client/src/posthog-client.ts | 36 +++++- .../core/src/mcp-servers/iconDomain.test.ts | 34 +++++ packages/core/src/mcp-servers/iconDomain.ts | 30 +++++ .../src/mcp-servers/resolveServerName.test.ts | 22 +++- .../core/src/mcp-servers/resolveServerName.ts | 6 +- packages/core/src/mcp-servers/status.test.ts | 1 + packages/ui/src/assets/services/airops.png | Bin 4354 -> 0 bytes packages/ui/src/assets/services/atlassian.svg | 5 - packages/ui/src/assets/services/attio.png | Bin 5158 -> 0 bytes packages/ui/src/assets/services/box.svg | 1 - .../ui/src/assets/services/browserbase.svg | 6 - packages/ui/src/assets/services/canva.svg | 1 - packages/ui/src/assets/services/circle.png | Bin 35647 -> 0 bytes .../assets/services/cisco_thousandeyes.png | Bin 11326 -> 0 bytes packages/ui/src/assets/services/clerk.svg | 7 -- .../ui/src/assets/services/clickhouse.svg | 1 - .../ui/src/assets/services/cloudflare.svg | 13 -- packages/ui/src/assets/services/context7.svg | 8 -- packages/ui/src/assets/services/datadog.svg | 14 --- packages/ui/src/assets/services/figma.svg | 1 - packages/ui/src/assets/services/firetiger.svg | 25 ---- packages/ui/src/assets/services/github.svg | 10 -- packages/ui/src/assets/services/gitlab.svg | 25 ---- packages/ui/src/assets/services/granola.svg | 11 -- packages/ui/src/assets/services/hex.svg | 1 - packages/ui/src/assets/services/hubspot.svg | 22 ---- .../ui/src/assets/services/launchdarkly.png | Bin 5230 -> 0 bytes packages/ui/src/assets/services/linear.svg | 1 - packages/ui/src/assets/services/mem0.svg | 15 --- packages/ui/src/assets/services/monday.svg | 20 --- packages/ui/src/assets/services/neon.svg | 13 -- packages/ui/src/assets/services/notion.svg | 4 - packages/ui/src/assets/services/pagerduty.svg | 17 --- .../ui/src/assets/services/planetscale.svg | 11 -- packages/ui/src/assets/services/postman.svg | 50 -------- packages/ui/src/assets/services/prisma.svg | 12 -- packages/ui/src/assets/services/render.svg | 5 - packages/ui/src/assets/services/sanity.svg | 17 --- packages/ui/src/assets/services/sentry.svg | 1 - packages/ui/src/assets/services/slack.png | Bin 11043 -> 0 bytes packages/ui/src/assets/services/stripe.png | Bin 1663 -> 0 bytes packages/ui/src/assets/services/supabase.svg | 13 -- packages/ui/src/assets/services/svelte.png | Bin 13718 -> 0 bytes packages/ui/src/assets/services/wix.png | Bin 17240 -> 0 bytes .../mcp-server-manager/useMcpConnect.ts | 2 + .../components/parts/McpInstalledRail.tsx | 5 +- .../components/parts/ServerCard.tsx | 6 +- .../components/parts/ServerDetailView.tsx | 4 +- .../mcp-servers/components/parts/icons.tsx | 119 +++++------------- .../mcp-servers/hooks/useServerIcon.ts | 27 ++++ 98 files changed, 409 insertions(+), 886 deletions(-) delete mode 100644 apps/mobile/assets/services/airops.png delete mode 100644 apps/mobile/assets/services/atlassian.svg delete mode 100644 apps/mobile/assets/services/attio.png delete mode 100644 apps/mobile/assets/services/box.svg delete mode 100644 apps/mobile/assets/services/browserbase.svg delete mode 100644 apps/mobile/assets/services/canva.svg delete mode 100644 apps/mobile/assets/services/circle.png delete mode 100644 apps/mobile/assets/services/cisco_thousandeyes.png delete mode 100644 apps/mobile/assets/services/clerk.svg delete mode 100644 apps/mobile/assets/services/clickhouse.svg delete mode 100644 apps/mobile/assets/services/cloudflare.svg delete mode 100644 apps/mobile/assets/services/context7.svg delete mode 100644 apps/mobile/assets/services/datadog.svg delete mode 100644 apps/mobile/assets/services/figma.svg delete mode 100644 apps/mobile/assets/services/firetiger.svg delete mode 100755 apps/mobile/assets/services/github.svg delete mode 100644 apps/mobile/assets/services/gitlab.svg delete mode 100644 apps/mobile/assets/services/granola.svg delete mode 100644 apps/mobile/assets/services/hex.svg delete mode 100644 apps/mobile/assets/services/hubspot.svg delete mode 100644 apps/mobile/assets/services/launchdarkly.png delete mode 100644 apps/mobile/assets/services/linear.svg delete mode 100644 apps/mobile/assets/services/mem0.svg delete mode 100644 apps/mobile/assets/services/monday.svg delete mode 100644 apps/mobile/assets/services/neon.svg delete mode 100644 apps/mobile/assets/services/notion.svg delete mode 100644 apps/mobile/assets/services/pagerduty.svg delete mode 100644 apps/mobile/assets/services/planetscale.svg delete mode 100644 apps/mobile/assets/services/postman.svg delete mode 100644 apps/mobile/assets/services/prisma.svg delete mode 100644 apps/mobile/assets/services/render.svg delete mode 100644 apps/mobile/assets/services/sanity.svg delete mode 100644 apps/mobile/assets/services/sentry.svg delete mode 100644 apps/mobile/assets/services/slack.png delete mode 100644 apps/mobile/assets/services/stripe.png delete mode 100644 apps/mobile/assets/services/supabase.svg delete mode 100644 apps/mobile/assets/services/svelte.png delete mode 100644 apps/mobile/assets/services/wix.png delete mode 100644 apps/mobile/src/features/mcp/components/serverIcons.ts create mode 100644 apps/mobile/src/features/mcp/iconDomain.test.ts create mode 100644 apps/mobile/src/features/mcp/iconDomain.ts create mode 100644 packages/core/src/mcp-servers/iconDomain.test.ts create mode 100644 packages/core/src/mcp-servers/iconDomain.ts delete mode 100644 packages/ui/src/assets/services/airops.png delete mode 100644 packages/ui/src/assets/services/atlassian.svg delete mode 100644 packages/ui/src/assets/services/attio.png delete mode 100644 packages/ui/src/assets/services/box.svg delete mode 100644 packages/ui/src/assets/services/browserbase.svg delete mode 100644 packages/ui/src/assets/services/canva.svg delete mode 100644 packages/ui/src/assets/services/circle.png delete mode 100644 packages/ui/src/assets/services/cisco_thousandeyes.png delete mode 100644 packages/ui/src/assets/services/clerk.svg delete mode 100644 packages/ui/src/assets/services/clickhouse.svg delete mode 100644 packages/ui/src/assets/services/cloudflare.svg delete mode 100644 packages/ui/src/assets/services/context7.svg delete mode 100644 packages/ui/src/assets/services/datadog.svg delete mode 100644 packages/ui/src/assets/services/figma.svg delete mode 100644 packages/ui/src/assets/services/firetiger.svg delete mode 100755 packages/ui/src/assets/services/github.svg delete mode 100644 packages/ui/src/assets/services/gitlab.svg delete mode 100644 packages/ui/src/assets/services/granola.svg delete mode 100644 packages/ui/src/assets/services/hex.svg delete mode 100644 packages/ui/src/assets/services/hubspot.svg delete mode 100644 packages/ui/src/assets/services/launchdarkly.png delete mode 100644 packages/ui/src/assets/services/linear.svg delete mode 100644 packages/ui/src/assets/services/mem0.svg delete mode 100644 packages/ui/src/assets/services/monday.svg delete mode 100644 packages/ui/src/assets/services/neon.svg delete mode 100644 packages/ui/src/assets/services/notion.svg delete mode 100644 packages/ui/src/assets/services/pagerduty.svg delete mode 100644 packages/ui/src/assets/services/planetscale.svg delete mode 100644 packages/ui/src/assets/services/postman.svg delete mode 100644 packages/ui/src/assets/services/prisma.svg delete mode 100644 packages/ui/src/assets/services/render.svg delete mode 100644 packages/ui/src/assets/services/sanity.svg delete mode 100644 packages/ui/src/assets/services/sentry.svg delete mode 100644 packages/ui/src/assets/services/slack.png delete mode 100644 packages/ui/src/assets/services/stripe.png delete mode 100644 packages/ui/src/assets/services/supabase.svg delete mode 100644 packages/ui/src/assets/services/svelte.png delete mode 100644 packages/ui/src/assets/services/wix.png create mode 100644 packages/ui/src/features/mcp-servers/hooks/useServerIcon.ts diff --git a/apps/mobile/assets/services/airops.png b/apps/mobile/assets/services/airops.png deleted file mode 100644 index a70365de09598465a48338d11b33f07e5a062b07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4354 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 NY^;!$ug`hh`#)7p&@uo3 diff --git a/apps/mobile/assets/services/atlassian.svg b/apps/mobile/assets/services/atlassian.svg deleted file mode 100644 index 8a9e9f402e..0000000000 --- a/apps/mobile/assets/services/atlassian.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/apps/mobile/assets/services/attio.png b/apps/mobile/assets/services/attio.png deleted file mode 100644 index 3a17902fe440c6d8d11fd477bc6f092fcee21f1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7269 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 diff --git a/apps/mobile/assets/services/box.svg b/apps/mobile/assets/services/box.svg deleted file mode 100644 index 5eec50e55d..0000000000 --- a/apps/mobile/assets/services/box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/mobile/assets/services/browserbase.svg b/apps/mobile/assets/services/browserbase.svg deleted file mode 100644 index 5a168aa0ef..0000000000 --- a/apps/mobile/assets/services/browserbase.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/apps/mobile/assets/services/canva.svg b/apps/mobile/assets/services/canva.svg deleted file mode 100644 index 938fcd63e0..0000000000 --- a/apps/mobile/assets/services/canva.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/mobile/assets/services/circle.png b/apps/mobile/assets/services/circle.png deleted file mode 100644 index a020b87f5ac5974cc88647b3d4a4f2a8f561f092..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35647 zcmaI7by(By*El{=8j(h%J0uj496dTlswkn( zQy3#1DgAwo_xtmCol3Pv7T0=Pc3OO#dRy6&er-bkWcNVhI9~6_Wl^ zQ2;CVzl^H`|8T%{Z^Nzp+~5!I2e^W?T>P9|`3!yT!(1(0@4JLN7;puHK<9-$tZ&0_ zo0_ON`}s)UC+(3&`1k|RAP`ss;eX%R%N5S&k{Dea8VPub;IrfaqH0tP{(mA4v<~rim9caU^a~1b1{CKeNIJ@2 zMJK@ZKHM+B+RxAXKTnSTLUsJw*T~|w6Nm*7~K~_uonxd@24PCwez(V|-gM3_l z;s1ek`5#!V{}YyE4L<(B$q?57k6>39y#PNSzB8^>JpON56#q|r|H8Wb-?S+GpRh6j zF)}3G{x4nsX9+MM(#QW=F7V~Qw(sf-7<>R=+0B35?twt@Zww(?)`;oV4oZaGWY9(% zMI49%G&VJ8&Qu_lmn~-7lSyq+SN1N^a@9`tf%d_4&f4#e+rdBg){R#&LrsP4-@O-R znC=ejnY0MW6eTZxs}r8e)C{V&yxt>`DfVg!bdK)I^^I47ZqbCwA!RxI>dtAzEENmI zqxwDd!y~t~j<57RPS?pmAT4>%G#_QO*WMhS`!ml+TlHCvC=e)`N@DZ^C_0)cQDgJC z02e#Oklsbmq!;H-9rQZrItSvrhGZaI0R2th6}smV(ea@5L^~<0R%D- z1!+oBCz=?z;slZ75%fZa?%HOIQsf{_m2)7YF|^3DqX$>>dlZEP$|cJRiTX8aFMvn^ zV9ZAO7&_%K3^%#wyq9Il#kz2;X*PgBe1)KBr*WR#L8QBrp&h+nud6(NaY7Oq=|4cX zzU7GI-M&IefRAZg%M%&@*^ZL$C70vROSnf?*`6m-Txh^W%cb>HL7j18tnOMfl zVBMN|AzMR0hlj-Ka||RCvgII8Y0hG1GOd3*i4rtU4HA=BdocE!GG{18KC|@s;TYE$ z^Xv6j31iWVpnK>dA!@Ol`E${5GLZN9GoifO3Y71!P-b3eWF9_8q7*cC;k_5rp(g+H zGe8DYP?E&+qxVc;P`ViilEE-M<4yxgqS=im5vv*Um*qJn^?)YmZ=61r?H>||IWl4Q z8*|k2c1F+%5(=4Sk9tloMgk@yHx}9TAY%X{PVqX(g@+_5{(a`t$nXWTsSNrMpF6vk zVUfZ^Qpoe)Z(KGVOi@Af(fNPG4K6X(&ypxMClh!u<}welW(Fzq9Z&=0Mwh&~DqWyD z$^uFdsoM+W%_k#C#`gpHk3EblGshAr+C?w(cf-HDi9#Ct9JK9CLD4tfY}1ptz1x_@ z_yy7;2#RK=AJv|LlJpWyx64pJdJeSy!FD5z`i2JSWX;~lVS6Iy`CTtEP&;4U#uk6S zD6q_DrNEn_@y3xEWG=b?gEuPcd*ULARlWicXzoUurusSHjD8Ui2>3*j_|%2}^$FB3 zO4ru@i9}=*{Bt54A zZrk*p2qzo$)DGia;#n5EZRD_msiKGoHkhQ41$x9L8&m@{|A- zHgk|-vo)f!JUIyTm*yu9bGMKOVg;%N4)~LaAwJzJ5eI?Z?{V=t4|Fh_o@)mIJh3J& ziIC2XJ*ThMa&yx`p8O9PL?z}sUn{`nhxoy(Yy8dxZqO~wGUj*GB>*4KDNuj*DfpME z?MNb_Nbn^CMYrCo74;{PR(uBL`H1e}98Ch8tkNGIC{s)agad=vQZ$$MWj!mvRK+O1 z_bc@{N#&Ehz!388=RYe5o>!F`s?PW%@>1$9vX@*UW+DZU5=&gi^shm8iaGsWyxWUF zH>Hyek7bktRWDcm^6+Mm+m<6gwl5&k=B}=kl=vm=>1k$?%G#;dPE^BlJ+>PhMU(1% z*mHAMCkl~J&Ckr5DlyfNegn4Ym4|y=&e>WHEm^QLptZ0r1C&w z<4%VT5)_~rzt<%pM2dFwQ(QyPS*Y9UlTw~v1z$*aW zS>K@OxjtAJJ6xG8eU^Xk%9!y=>;jwi!ZP?&56^OJ;>(0h!M&F2k7`;CyKeFh>MAH%%@-gonuBvcyV z@{YLlb!;`6FBypSpO{E7&$Ru3?eI*ORw+jY?DHg;Y`Xcq zn6#`qA6kIWd%H|Y9gmdS!6#oogF0j%IGjE+_?s9a;m81G#mMC)bh30=he=izcz&Jh zCZp!z|8*2B*{q`ybM4Bn4V4XDtNz8OOXO;q`$pU0(`XY#a&nxwDLAVrs!{~ab*`f- zRI228bn?JfK$vJg**LY!8!2hjw=Qvpnv8*x{ZE*5nD)3$kcccRY+A9n zYAr4JfViq@1&}xWoGVjPDRzGoqpR{trqJ;kgzvYBEFYQy+I+H(aWHp??W%HEuxzl^a;(UdCw^#X{4Y|9k7$O=hBKD8o|K&KI{pvT# z08Oa8g3F8Ei(IFx?K^?q_|UQjVCVZ=h*KP;TOPe0e3O0nW7hc`-`}LI7l^;{A*cAl z{P4)<>sKHeUt*b4cAs%8~s_MRh%DSR1_l@)%Eu2QIpPCtLt()2RgO|OzPmrZ_kq#$ zXYJIDhyho_7{JE((ZL5_`a@y+KeUZMtz1_or$tTClW?a$A-33t29?}O^WMdpA;iSb z@J|?aZKAPhlAS!89Fpdi)W8k#-eHaCDz9_RWsAMkKGa3daX=6t1hBDCqDjB##y(`6 z5d(z2bDsVbb_&VD|KMpzkDMtn#Otrr#)nfpI`5Kgtt|yL5RLXX${t>S=bd9|NwVhz zSn)BstTl*9|^X0BRe4`&D6 znjJo?IdgCWszD+ogwaP_8+(xMGdlQD&tGs|R@K+Itgd_9kk#UM^NcYoWugmTQ71cA z4LOkvWJui{aEH95Qhkav;em>QVY+`XiK7qp*PA9sDVJ+>GeS;doaOjQTkYtf^kbLe zp)0&Tvyvp$CRAqP^3t(sfT=>2$QXbu0_jiIw>@m;Ss#*w=1}!}N&nBO6$n|Mg`n-k z-n&bS%Tyv}2|#+ItrQcabUmSAEJ{9nI!8ql&=CW)1vlWIC+yOy0|vraH?`!0d#m6G z*dNHqoq{t=%s7v)$?ZQz2G_rBP?H2fCEEYoD>Q|N18k-*5-&AleI`)ALL6m8cEchW z4%PV4K;k-oflgmu*>H)yRPC*w#Q#F|`DEa60U`e->ob3Tz;i+K*`H$SXhU+x&-fF? zOk5hp>nsqqi` zk~MlfOr3)WriPZh1-^|_^P$cyeo2f}YxNMKVb%Y~*Z`gexQH1CYYCx%Uy$@Fe_Qsn z=Jaw$g&|B_i2Te1w84c#j0vGRDd!&mQXbK4xD^)8F>DT2YTY+ARmv*;k2W}1h%O8} zlGJJLX=?5i1~Bva4~IVTIu8t1XTrU=U-|tHx)A`~Kj#s2l;n;Jj{8jICjJ$&oB?hi zykws3;NDErv!&!d$Ba57YQDmlXs@V_7&kF`jVtTpypcI9XDm_^C0$bITG3HI!xhcs zBzSm51$luyGeQQ%JzaXvbY3c=A!~c*XY&iMP%uL#8Q>Wt_m3N5w42Pz{q9$jI!6J- zdN|o}W3d@k-pC5D-IA^A248b|PgHligEVNW+X)sZ0xv21yLgv5hS!E+O0}e$wealrp za{52|!^V;p4?jqXK;kygo5^E=+cPm)ZlxUm3SKu+w81LNEC(vt943waK1!E9V!8Ev z_b)~M2Trz}iLlo*^8ebn)pLYXONZF=$D(BoWq;;$q|DOh7PkF%xv`mrz@_z%&0*mw z3%hrhM*isi&}=_{1JJnex$+D!rr%7XFd$p_UlY~_4@W7$nzsT}|IlSy#=_ZHv-LL9 zH$3b2zbz@#HvdQRNQ9fSy{p`D$ly$4Sv!v+tKYlS^f7vZWTt;GgOOkhz5b1^NTL{b z9#`E1^__uD;XI8EhO>y|6K(tfu`da3Zg$Xda6t1qfYsXyl3D&UZp-vfukBy%FX{)Z+y4 zu%^D;F}n5cJi_e4MBJh@yZ_nQ6T&bfwxtjw37)3cY?zHJ{mU8y-JY32FRf%)ob;b+ zWH@v10+wL{K23alm+&ZP5~ufDde0;6nB;E7d=L81&mVo-Z+@X#dLn|cYDM^dEt9ou zxt;q7bN-u7TB-y3d9z3uVVf>_Y4pfa4N!L;;-q3Z0qufZ2%db;0pt_6<{nD#m2mv{ zU~pN54SHF^dpsUNaTh$+1;cbT&sz} z2pGV$R)vM=TY57FEINcNJ-Zn&R!N9W*?l(CYaxk8%gc-Vzj@5BDA9ZxGiMvsv0~54 zS>Q)!VkVS&mTsb)e)DMX3sPRtRPp(+aTBd4_wJ*dbHw)R&StedKtLxfP#xKeACN8- zhT36-g(cgBNY z3*?(F=5Y_Qc#KB8oBv&<8HQ^KmAsh1;gV3#TKg(vHy1_$f$_OAAvUbegLA{3>?}AA zIPoaHyeqAIw_91W_a>0)4AIcMZv*8*4wm;nepXYn_-0CuBXAP!+FqmvyO)GGBdBwR zwP+;K?Q})r&l#|M$)ZK~wwu0Qa*AfBr|HvCX<*`C{RP)jlIe>J{83mygK2QVO}!jg z2wR!dl#g*m^Ju&t#A^#MVdVO8`=X|6{hkjgS2vJwx9A8|4K*IwrpTHA8^g%i-8576 zyfvEI`t-I6WhzHe!PlNGSZ*qzhro~izykd_xj&kD>AogA{q93;6|48^BV>ee$QCDi zT3>Q!n7>sFB2)sc`1viNe!#*M^aGid9;pzV0-WyJdJ3e#8pNYR*RFW);D_%|%nT~& zcOSI!p&V7ClwL2XVkS0lQ+F&(*Mhjd*u^XanzJAXYIPSb5$PTyaH!y0j9pz;t#Cc6 zLnV8L5y8;S^e>4(26l(o&i|t#dGX1#KFCOGcL})R(s27RtzO&A$Mbut~ zoX;86dOugb7sYdYF({=-B0N9P6*5m^?g8UZH;(;4i| z%NlWkR*>+Q7e5KIN}`l^0eE8(^hV9ynn97GIQrP|$*|#S3 z9$)CAcd|y~Wy}j1cFbn6hyx(R7JxRXiQ7iteY)MKJDrq|uy-L(Ei#1)+h6@O6ifSE zLc%Oe!b~xBAss8Zki&;wPsES>2|cj0Ql%)|v(xW=t6@;7y*kOW=j5%*IO6v4N0Ji!wRbNTR zZNt%I@%l>bCENXzw`j#EpMK(=NGU4w<7B+#i9L#Mn|-jRRKq?%3aHyWxnr7iV*jxT zZZ+%~76=)d3gX#B(0@7wwAY6^_C3mjD*Paum*lx?*w564G!V`C!c8Npuhdp4%2ha7 z5T>q!nHYgCsuUFY%s_74QgkvWOYe>14L6jL-f#yLCx`cX_*ikYNWM5Fh}t|d&psCJ zWZMCnA5ym=NfoNDwREYVwuC!q@EYH_etwkQAaf9Sh80Q$GqeD92N57|ThDhQ7T<`V zESSF_5uw89u8GUVd(sZ&$)X^>X8%@MeN8Za9>Y%s8?aC*uy-Y3>RZqAtgn>8WG>#e zHchB3z_r*znOd2`6wX~^9hq1kVPt?(Rd$&N=bdd1{m>1hUXKx*ox|8hUreVd$eX%y zFc5ix$d1@wE{rz`chQq;$X4=94Ezb5GVsmrfPsX8Grt&-pMJ0-9Fem=t z=%nc;K(p=KZds_*z4B#F^;Q2d=^C~fi%?<54u82A3THMZfNnF6IQGTKEgp068-O2v z4M1+qT)ubW$}JwO(3X@(6ULAFs?5~E!ajoWF7Vqlicp_D&Fi>%3KPR_g*X%)U-dZ& zFQ~n^&{6)Z9le6+1Tn~rvsO8d51f%S#7rS6wFw( zK|ImjaX|P=KrDwT@uReyAYniS`3+4}iV=Tq2ZPy4_kL5L=q44+>1~f?*jxOXWYcT| zLO9}u$3>t#_>FDEEUUKLGHe$Xpy3Bm^6LZ9vT?osrmq(ZpR*7iAJ`zHXW9+86T9cH z9_I08?%|gyv_58n4+!o>9^a!o3P3E9sCB!(aX~c0$os(f-KA*w!TEKn&*5+0r^Sy< zlYNRKDLBJM#V>3Q;^Kc3X)b?VBKqw4zq}rO33cQDPF4`i*?PkwRZlE>3R4 zdwFT!oPSnz@dy@g_jhKkQ(^z=_7L1u;S^4AqY?$xP*;XcKF}gL518@Hc}%FftLVK9 zV_FNf(%=E6Baet9p#7f$guG?ZdLTDsHSG^~uq550cMf7j3SP8P1JVvxmPW0QXrYG~ z&m|##7K>igQeqVxZBl*2LkMT+_MlH*oOMuo9f7(!$K8C4FNc7YZI}FRI#AAEc+NKu zkD}jnNu@HtFn3o;9>yLGQYw#gjPX=nKN;Fz3G|y78>lPWA0KqrUfg=A2S6s278F>} zP=oZ3(%$*^g3*t_d4l0wfW=Ed?`0*$N*4Z@`!?v&y+=7R{!1{zwn8`o#-F90yvUy8 z+x^oNM8h)j;}$pY;M(gH3>QXPMUWL(vwU9I38t!4Mk!@WqiDCvatCkcVXGTIM`CfT z+vN+Bno8&VB~i8R-BYdsU+!1UtOq9eC-J{A)YW4Sbi7ErDDh&*dVfz3mD_U zR*3TPgwG1$vA-O}We_J zb!cW__aqEzxwq{S-u(!n(oyxsKhk5L?M~YZw)3#cV0jTo2>pj4a%uJLCL6%vl~9t!82`P=Hq~&&IZlV z-+N=>CGks7PKNljHyvkzvQR|6+00wINoyXZmVBstc>hM1ySYGNc;~^*l3+}y(%RSq1<(zydlHb<$#>wS;AEZGGwxdgr*opE2s1Iyrsop0aGvuer zjz~orti4WS1^whL`gh383cUO(-cgn+5fa9SY9SOAR&4AQ4a!w2UzL@VYFXNCRXAW0 zK!M(gp+agtKI05TP6lRoWhPrQm^o;lZe9&R%B59bGGRJisD@ze-`~hNZ&n{Uy3ysr zAW&F{Y(**WTVfOc)`t$ctm|OpCRdboj!!CVE}MYfNubzjbRggXBa9X6{1McTK^OMA z>5e+=^tXs)GyeS^`LE+Mugxpar<9Ri{WY{#!@-C}fk%Udfh+eGa;pjKn!!MXUm^ae zde1WgpKl!Z+_yVE^n;1;oa3HlPuXjLD_Ck`*`z4+OMY!Hnb+v;(yu?KF0TwqX z=xWLpi@3uCl}_AldOE2MxTA%VPEL(YLZuDS+DHi|j-Oq(1}h(OAF2k{vyXeE>CwD@ z{LPZMbWdgnJEBye6qhVYi)YVuH1%SSyPgj6H&lA<$$^>3N4yk3o$l{^77l9e*%~tw zrmV}9Eb%sW}u5XCg< z!uD6QFu3d3GE&kgK@3KJ(zz$8dxL1wVW1<@SFxactldAL3)DkRX1%SWQn168_-*&2 zi-o%zdB$7LBE%ax>)Ezwuj&_LytJph6>kH6fxG%kdZwSfD!a4x;gr6{f3b^gcw}cF zjGGqRVqh~r^!zOB~5rj8|@gO4?XJx|?Qw%;z6Hcj?g_PWQ36kW_m zdh%Xn#~KrImUBQv97GZ(&6P5Cu#-y@zj4J%c1yZE2o zaf@#^Wt>yWx(AmXmsGUIT5PkDIdFLrsD*rg-&lVM6KxS&X=TfS)Agc4$-1&{>{z>6 zyt_E9hqm7S2aAbuD*Q?aDdj9os^mvCUvN-jW*oWQf3(uU0A({{gQkBtw`tKh0Ub{S zMBF(Wr3K}w58wc*0Vs(;M1Vom8@mAcK!M{YxBFicfAbQD!sTp=^|fp@Yim5Ej3A#G zM%H7e$#EQ34odjbai&C3Gl@^fKOcuPt!-z)*M%X)MW%xhkonw!g)%c7@IAx2V^^k#rNV$9M zFKI=R-TcBeDuRNd5sPft3qGu04rGs1KMwlnYHiU1Pqiw;;SmYgEU2k zrkl>brXShI%rp!{OHj5;==`!SrNEbSi58iN$RJjlE=ogr$GoLUjf(X_d8_jYmCQuD zZ=se|$(4E0SGuQuRiO-7pf<>@E}_iFlARUbaQii`V#V2yf*#B=Nfm}sTa3^lc=2OP z$g9ky7l`4{rL>zTo1NzV-jP4taosW*livtTs0_p9@#RKW&{Q@Dh!}#uvof0vGTjy+ z9$f-3J<)IM;~607m<`<_Z*n>sHu5FW!WBT}BZZu(1Pb8eGJ0X#FWi>LTaMM^5v?-l z0kYQ8;HSH8_e7Eb>!Do>bOnOjJO9VtM)#;OfzHfEVhhj9#zriSMLGAHuT!wyeleho zKPam$LHwL-M6LVXiHZ3oN1tLp%7Z8L|9(>)K~LN^1Jj}f`Ovl+-yPb_q~?eCV;D@Xu;hhvI0jN3>}4u?H!%EjyEY!-Y0mX$KnF-@BcVH>%9O~ zTupCrEdXBLBW>RDXwEXYhldI#fdX%1`qQTlFG&2Byl*q&IcsfyX?~j; z6*5vk5T-E0Q@dE{@trG89Hy4LY3Juvd!wynvr|0>3f_vqlPxBYp>M6d3MMJUvs+oY zppQ=H>s{E%iqj&F&}+LU`3btsuy!XtMCA$PK!2sUN_h&L=QGdUu|3+O;TGx1%y{cm zM2)TW>s&n?li_nXP_T`ORQgfA@kLS>PR9sMuGPmh^hbQ^=CIIHk`lhS560~~`T|VI z>orp9`y}zKNnRb}{Xsu(vM^;VXxN?i>!oblvNxDl;`h$=h7DfXkluZ)*=HQmKZn9W z0smsL2(^DBqT%#gcz}8TFJk`Me)_^>!A$Y$@oIW?R6*0^W15hN6fTGAo{fpmSQYo? z+k`{waw-`7E6$O-VKQ{f5%$4M$Lyzm1u;$Z+QZ5Z1K-1ph>wg}2|sGp)^)o?eShZ? zplv_Ds<#$_%PcWjx?9*=-p`woJ+HYN2^7F~C}B!rvS=>#w1mo@N#MyJQUo|iR%W+H zl?{-39$lI&Mp|C6cY&xT8;J`PG6MR6(p@4kL5ty6yDMItgh*2rtp|u8r)Z$qZW*Q{?;0Tb=N5&0 z{WL(5?OM%lRfc@oV}FsH&-l~n+mT*FQxfXKp0iPR+KL)Wkd{oUjg+~g8n<8Z-d;5j zy?euqHwnmNvG!N$7>Co@iFOSy9;?qh{&c5j?$2+kh=rrBu}K*o1*Fx+Exa=sBeXJ# zQvltfu~M5*nbe&}oRnZ8ay^qb5{qHskzBlVHCVtxv{(TTKHY0sZ%o-4x+|rE8w*XCMGSD0x&`mwGCZFd@V2W4}PBzrx2jtoC zTYx16Yc!VB!!9@8LfhT)e&v^Q2y#L)pI;C+0DGyU)Um)`ieG|;I($JkG{08`37~IA zGKc*`;oa$kN}BG0qgur++Dh(Qmy9r3rw&4_uI7#Iu)L%wYlgp(QGPLstW7;z>yH(t z9g+(#JA5!ELH6{MAv#-q6CtLp*3$*6HY;_ga5FQ*lQvhXW7D@DD|4zBT zThY7fTLaRvv-gYNAOb8IpH;dqWF-j~CIpBOm*%3A0g5nLdk@s#(NQjho`aR2PE9@9 z{i*0to_B^iT6V(gNm#{n5{tL z$@v81=F%&H4cj}(`b$7nQQD=vU{~UdDHAZZd%sH@K=tA0(A#t|bV6{&`|2@9*0QWP z=7O#5f>SOvb#OL5_Nf%QJuNWMl$#SAdN+9cC#}{?AmXr8%=+0TYT>3ixqh~V&#d>+v(T1(Qx8J~S}`#Yo4LJ9nYD)*XnGim!J` zeQuzXAK_p#FR%Ly!K2?Omq$_CGvP&mWXq*8E}#Y@4XN0%z_D7dS(C3B*hK@e0o!Rf z!;wcgYw%6HL?p4A7321qA*xx_jez`4%k`D1ad|@M$w`ILwVmP1LgZ=J&Dd1*X1SLn zUtmccC<1QEq3veKe4|isEQUEu)#{IYalbJEm~^A8P18Bms7S)oGL?$KI^!$R4p@YKCM7emf8biZdGJ)S^IT zuotM?ht`j3iwiwG>-qsnK&$`T{@a$bZ!wR*Q8Pk;fc4AI!4L)s`;i=JoEk9wOo==J zKXdVQV@L3H3WIZhEDxFwevV}Q+q-(*SRgd-@>aS|JXjmUJT?;Y6{u-B7y=oA3q-ld zAQ2#(!|Y0HZHPEU!mkH6j2+dYp7C&Y%(aw}dO0tXE9K{1?sz8nI-Db#oQ80%t@3orc>GE&KCsv#bHd&aXsH`N;cnH>w2vW;^Miod*&PCt<`Fjitn1L&#hB}v1N`dfY< z-(vb=tqGop`Y99UUzFHzH%y*FOQku3F`pHCQYQD6A5DRJooW@2qQy_j&#&g8{aa>9 z9l8);ra_4#HMkxz&8FJZlZAEJD8d|zq^^va$&@i$m_5Pk>3iG@{yINwVoLnIw0Pe5 z=6!#qXy(VAh~3en6VtszR=`@a1<|40W*@rq?&0qUW^v>44z}JjPpB4cX{*!~S^Y}P z$RP7`TTTS(jfJ%Mj}eu!)BlVEOh=v2t97?AREVJp5lXv=q5*G}1 ze4tyrQvpBbo*i0IVfQYtN)TP(>6!6*J=$-l(1Zyn*phl!@O{_z1GvvRFb*wq?VrA9 z12z5%RVBHCd|z^}4w!u%Zy;v$hH{)>eE(VLWM7{T^gtpRU-{;hudz~B=sFd5qC>!s z^)nA+?j~ek@=KarMpispPx^a`9#G_R6Dcg?oaJ?gIa z=lOz^%YUdHcP8kskqW#1D*8}~moW&D&PmQ=F*aVn)qnNR)VJ{Le<0{1Qg9NXv$kCpLidU$0 zU+)jXo-u%KD+IGd7z572pa-Fe!R+BXSK+Y(w*(lOOWn%5dd&J`cv4!xE_P_VZb?YF z-8!2Y>Tt7fK<6uRYs&ce>omzIk%+|zAk(!U$GYZ9qQ#2ju{;Kqm#(F@!=uJ8l^_BV z%f7F0KJd81G;%KN*FO^lZsgqrbvtcB4l4r|nA><54iL%G)rij56uJx6XmSyjHfC08 zZQ(;H^wItkCYeXRFqowwW^HUkAukX-oO;@fEpIRmFG%Fo`%7mVW=f&$c&LRlhvK&8 zJI(MB|A>Sir5kH3HdDuj%L7sC#)a{gHJB6H;RBC2?_BHI>a0+(OAT4dM~}ue%&Gq) zdxjAK;z@N%N^pW`&NrYx-V2T~NJTg}-c1v$O!Pn5Y5676L3JkX*X=xEO39S8u#$W2 zaFTXMZmuzk$HCuvrBMt>`9YLB+Kb8c!4_2NigriG^FPgwOG9Kxe#C$cubnN{SE~Jp zv4jNc;rg7l!GtI3DU=d?bGL6M@xG+Nrlp1if27Go{Jc5)0`~gRYWT12fuV`VXTAPP zAE4xz^Z2)WC7g(%)>TKF z0c*mCDi>9o28OaSdTJ&dOb9I83#exW6M}`ozOyfrfFL|Y$WI;LqZoO|M?<-gKU|Yzg%FEXa&AF8-0=CAdW4TISt@Cv}OEP09<20A$P0Y`cnhX_Sc(P-h_t z#|)^(5@hOiRm+n^>%SF-+>86jD{{ahAoz*nlgc!^I;U*Q6`BzBt(MQ&Z-0N*dEWw( zaKTS`g?>9hmZz)m4?t-i+OS)_GgUOTfo=wLe?MHxZ})(^shSU^jw~&N25~Gr+T3-|2}`!E z#U{i0yC;RCx=1S+9cbIW)opeM^K0C-pr zI16@67i2O{9&q6ZuMux=T3Z$D-fnwwlYKBjB$u<-i z1A;;oYlGiocL?F|Jj|Z-Y*ob#FbxEFgug1SuI5zZq#fuE)lu52fdj<{_K6XK@xi0h zi-0XrkUKbGMGD7($(1Tfe%@GkXn$aCujD0Ho1Q=`)7w$eXq`=n9Ukg2Dkyu?xi#x3bD zq>@v~15^`?i6#k)7n`IG^lj$U$`v1f-|mAoo#KW6o_EIIIJZ`QGW8+==K)b_c9NxL z;99erHGw;szeQ-P1j!)bp&tTEf2A_BSuHTqgONmKB>{ zFAGtg0LteDC826&GKVa<0mrdB7P?(CZ!EL2g=6ljJj{Yz*uGStxV*XlXg*7?r2>?M zZ{tVBxUDdiEM5`Jy89C0lxRO2FkqYa(bpJ;yucfgSJxc2NtW!rA^sxK14vR^0e}(;_a$E$eO4l>_e;wgdBDtlJ+mtcVdsCrm*5 z@y=)W=D63!i4H1W^VWBCfpLv*VbYARbJ`Av>UncQh^98bp47RYWGw$V!t)h=iTv&a zDPX!hwR|ihb@NAHhmBHoMBt9o!T6@vlAO;9KgzcsHpq6can)}kclJ2orYh3P^kA0dE^tVYuK3vb>PvppCpU9BR`8dGJoEYsL@9MvwJ3Nm!`F;`Sal8X` zhszi4!sjuTt%{rbxyF9a0mm?w0E%)!hS|_eNsY#G#X^wRtyFh1$w6HkrQn z5(4d?Pl|G8wRt_?$wH^ZANDYJi=Q_Wds&q(h3+mbOgB@!wi`IjaxM;&mHXxH)eKEc zxZfN~8Xf$d3zyfDeFF3wbSI}Jh3!0nNr79-n;xrsK+%aG6<{F5Ql3I~9~a_nuzN^f z|E6{#3BIYw*j^;JY;u8x5&Qj3W6j3_9qbeODc@TO_->f;%YDVGv&EuxG2_mwd+j2f zvke15L=2Bv$d8O37NJCZ!MDkl;fn_i^o3gd{^*t_oAP2ZG?4e9~gQ`2De4QIAd zW`pv5iXek;`ll?gVWYni+qqpc;SQX<<)vf9&xRtuUx~eKR6!TKWS?M{pGSHh@H%*Q z@wX!*uTSf0bbZzZ`fP0a=F703ce`?e75#2j*qiNg_JQeplb^}QC+0Wy*(mW{y&BGQ zcqz?|9ZDSp4oS5CLx9v6;1#M~=e8GFl^_IS`sWUh@c|~Xq%@$b>jCS`Y$MHiF-@V} zu=?l||KBd{@7iw=y{lh*EiG6q&pX0SF_yrfjK_;)W4}$tc?;o&*0-4K+ftT#zc7rt z{H&92gBvkoA4NcTr}*9;nnsKz!PnELL#xU&T@qnly5z5`v}4wRw!W)c2oSaS zyuIoXcDb*D;wdH)Iud}Fn{iCs^_bL>U!lS+Ej_tm{G!9xb?$Wig~&4vWyrP>)VIpu zXic*8DCp>&UKTdZS1!||EbGNoh?98*B7h(i*=U`-dh+-kf(N+Zok~$NR&usR!UK#@ zR0EHOW5;Q`VUadC%eF!66)pbGnxMIk`a?y(l9|Rt;1?!UUZL`YVO?QewyMDO*%rnU zzb+GbmSLG|1Gv1)$MMn(5etST8l6wwh1n9e^9x(btYQ(HOoy)nsy{3|HEV#B1XsP@ z?fnKpf4HexudkVzTvPj+RpWuW`i~-O0rBipJ>>6_zt?ka=_s+r<^BvIfQja&N~e>w zwA~!CjL*DpQR=IoR_>~eq&mIwA2zdUu~KST`u2Qj9n1Mj^6Kv%i9kseAK7o8S+QSi zY;azI_1^00viC}%uF3edpx4_y3k5snL7-SM)E4ljw_^>#Y@J3--LA-`^OHlw-y^c1 zKhP84B865JA8*?bA!HVz*}%{p6l|*$V#pn>NrT_Y>jrxM0gc9;|RyfN87A^K6Dkf!N0SuhIN;W zOdJ(eNsa$(5*Z^70W+@2VM`R%L5CT2`rtBzJ8ah1<=i3CbQt^%j*w|p@W+gie40F5)#OS_(pso~#t0SCDhKh_+B!*wsw?Wv)dADt*Yc_F zmazz$5huT9!NN7ByDwm#y;+SkTM72-zaRZrvwa5aS^iZ z)Ct_ifrHPNaUpi=og)d{gcJks;`R1|$j@xhfef?K%SQ_WdsU}BS#n>L$Eh_(kz04M zwgy)u>JjRJcYKRp-Dx*hG0aEMq{3^O1Pi@{-;UNTHO>^jLLzEv?m%8YWp%1e!ONBa zCV7~jGqF3ZcbSgrmH(ZLIHx3habW$STZD0qvbhft^WfRy_>^>05FKG#A@;XEF&nK3 zmshdqR^KT?_`a;EJS@2R{+{N&xQSG27GpplEUuDuw2auLS4#p!#;btTzsdT#y{0q; zD}J#~?hs&ON-&zLJYj?a{r!E{Tiy3G{~))3@tev*L)|*e)>Ge>h{obPlSR#-9xH!> zkO54Z!tKZKolBVrqg416*UY2Q$`b}G<#f8z1u_YgT%4iqbxf9Ep(Rwz^Q*6%)D77l zW{%bUax0gXvh`PaE6YHBkEhFhn%I8DVFD?)bwL35SpxZ7T^jQRQzhO=1>^B_Y>$;h zxKPE+)`|@S*7=cBTRRYg^@QFI5mB(3YAJL=z`<*%u^<{K<1IN$Ro}Y~7#a|KE^8#> z7j7y&5-1k5G)L538wvn_j`SovFcw>sZv_mKcj9N`H2X;9h!`OC@Fpn{FoMPhbq z(N<7|M})Ly#PSnFz~-phMdN#Nd<@Hbg@CXvk}zGwe_^9x^_I?mXFw^U~<}k-=5$&M-Y}G&&h}X&3JH zlmv7HsO2i!3u%P+0?P4sppQv*SUP+o=-L$qrFm;z@GO&EZJ=uhnE3nGwK%soe#4@L zs%1^R$j%{8X|k7zc)j97<+e%@4^0^=UM4B@o}yIzSoC|EN(r3!jbwXAr-%M2?xQ3- znp%M;Iq?VD=OB!p1n?B1`it)eV77J-*dWR=wfD!4)|2<+tjLMrDVc^SykKEBhWSv% zs+_sck%kF-BiY3Wzd|ez8o-4_O~~H9_~(X3_)~X8_u_*`=UAXsz|PFX3yFA4$~R*b zuQIFOkt0hB&wMh>wZOunj0>KM)VP7TIb|%uVkH3M{=@=xd3C-^uFSrq@{oolDLS$8b420rjeS=;T_QNyD$%k` zPM}VBaZs3=#MDcGE0@m!ZPjAvhl+fksEwN{x38udJ?apmjm#@rIx zn1&|p#kzRf46_j2z@bv}q{4fEB#tW&EyTzK&|EW5-_^<;E18Jn#I02t)(I^7*l;y^ zTU^U^$yzPtug5H7?Q;@~K{3pZkhei&SNLKqiMMOWqh z(9yk5%zoDLQ|-pWJLn^6w4I1JFi!{iTNw13hdK@j3IP;t@<7w1@Ox&tTr9!tF~Vrr zZo`Qn`5gL465Tv`W4@ju=DAx&y!N~^5v(E5&=shwYQqKir?&3WP`(|0zTB0@=q+inO@yK0sNH_?JBj2U?6o7Q1RW;c;qY0>0u(h#};- zVO=}(8OflxT@Hogvmw~1zNpv^p69ZN*z$>U?m2@A(0Fh?pqah=aF4x#ZAgOh_ zQi}-+Q9g%}yNnaJP`T^ry`8I#6XzHk=P<3E5Z46Xx@AKX9(a8rw1`3rtQ_L5Dp1Jh zK0b9vsQ6DFf}ZBb$|Tp@DaWJ)SlW=gXwD>eqUQS^D;#>HhK`WUkG_3}Qp+X8*|*Bv z77V5SF;OK`+xI&W2G{#tE)^DX{0-A+K+L`^?Q!pG8}hnFvgn8{rPlAHw?~%6^@yaI zNpTZ!X+Tz@i%e}i4dc0mPvTXE%aLZbxWw`x2FS~+S@qxI5-TxOw*wKy+~o-z_XLR+qhWje(i5 z#Z~~KSDPtAk_gmJsbmQ|D&-0IQDl4Ph|*JoXavp7#Q$sR%j2Q`zWjO$eK0l%!n|y$Py8WkaaM&s4QbAG}bKfz0>>s`8|IA9Iw~C z_ndprxo3U8bUKN3`ujpKAZ$3zAtkugkm7a>&?80Rb-|xnoRUj5qfJ=*nnm|*L(w}O zZ-(Whu&O}V)uWu>>)EoUFn)d>{T&|&>FWhOoOd#-r@x&`h2dDCQ6sfK1}?_HcbfkwU6FJSqiHTnnc{r|DklDGAIMJ#n7!Q6iw*0SaULM_4Y75E9v?w zmU2#A2MFh@HgB=9^+BI`mAj`BH1!^OwHmYjfx~P3El!fHPb|?gBn0vlu#rE;oA*$(4*9A#MbjWd9UC_Z2i4STs9uGu{`1smH zpzpf!7OMN5`Zt+y<|C>`_uzGMpAFzB8lLkJoomhd>E(s{0Y+e5j8+KW@=`xD`tE zQd=@hNCN@$IL1(cs3%T{@8Oj1dIMwSwMwCQPX*Z_KtqLanH?u*N zm5#kd`!_Pok4^Zmr7L*BT&flR+jp_$@HhVN*~wZdOjRmKPx@PSs!izTPQe~Ti}kM;F) z+(UksaQ^@6!G8gXoh-Flnr%-3wtv@01m)#e^o4k2)S8Xh{|Eq$9~261#o)Il!qEWU zBjU?k)WXK8@5z*2%t+^{He-$~x8k-a=iMP8`3r@@Sm;Rx4JwfHVEt28j~+3J{5e99 zZvMKw zo3DdnT8N4UCKJ-(+taGk-sBWfZ0Z4!A<%V54aoj{kDs12b~BEKtjsIoj9_Kh2x^5s zxkG6iC2_fs)w7GGZ~<`m`;-uA)Q+DhnT)LusQ&I!YP$sI()`IQmzny@>Ul<6hUaH@#X>8=U~ zd0+Kt(l>z^grMG{9^X3b{_Mp6;j>9%B%Wu)U_U@wB*90oZr2@iG2oz7`PI}&RLMe zD()NUYJ|&@f2zJgz6wP#3CE#TNOh`TafBRtcj>YubXneJj8xwBt z%*=k*8#F@tE~Mzwh-)u+jz@9|;D%+N*!Yr56Tf}=++oWpgkxoVj$c~=sZnha8kLBu z5h=$@XUgBBB{|<`!xQTy^%3D-SNO4~`EX!Q`esYtm-T)h6{AQEU&rj5KG3ywE7l81 zNbi2{Mj8|NJtS6VnJqK_a|Q@&&`!P z8AjCPSy6nodhTNEGYgZ7{KrK^ISF!nIg2Qcb=Rk?=vG!|c%<{FQ0l14+bQ__cokU;5yNr4F-gZO!3O`w5xj$P-e+4P~Pe0FW_w_)i zR6<^3I&b*uki@Qf+r*>Vfqy+k`V~g{Wfqa33Sxt*xUg9Xh?Fv-qLqn880#$kaKot8 zyAI4FI3G{|?um&$IgA7r%W8GULBCFxqLEqB^t%wxfD(T^qpb&lY~^oPjXm68Z8gqC z6<|I{sv}P7E~t=+uKtmi_;9RMqZ!}7*cV^MiDuE#cx%aH?Zizu43KEFxFUhX4`M91L!g#-%V zHu94xBQzEU!mNC_6EykW+fON%302c0`^du4(un95QeA_JZ8knlH%S0@jXi-tOX?Dt zy9_CRi@p%kr7JR?;`R3hCGyG)ht}I%l5hAYZRZ*<9YBX?UUI80j5Cs%U4Vv~-5{!a zrKdep{1LcDi_ZhA^(+k1=sO-EDk_Rw;lti-HD1IKPK@OlJH8>9n$D40y_E}51)2&@ z6q~Pk;Z2BgLZsI?t3r6|CIj$KE^|hh>mkeqh+Crb-r z-C`Dg#OeFR8BrZFT=bQDxnOdho+NhD+a?Kpy*rNjjB_$FF|51lvL4V{Mk_wH=2n8L z2)QobG!X#6l<`7so?^;*1t5zKs^i0W(q5FXE+6L8u4nsxdA!BB;pmu!%2T-omKhFwR;-D%WVX!4iI;~; zOT;n$3Jpu~?hU4!rftT>s0Y!UQRX@z(8VYEt8#xRw(T}JIJR;5KDSAAm9{^HCo>G> zp9|M$>uPkM7K=o2KSBku*T_QL>>$NNAKLOucA)#q{TF^3ZQh%=G90Gzbc%$)xW9<| z%}#nczhC2qNW51!GB3Z% ze2ded=r%H9*W2$=VB;i+xyL7?Lrqto{&?YM>9Lg)!eGTP`C+EfD1~ z9XzL>(rosJZGQw78d;OlzCIHIX%vXe(OkYn zreoPrZqGP-P0r>6 zk5m*di49=d*8?{_h?94JASxy5%PR=g#NNK%c?3CI4{QxWbmMth;+WBGmUHC8)}-rn zFgmt|(jzIU%$Qd~j60#1HXU1?(BZ5I_ZP;J?Dl6rsj6^KVIm5N`|o(Pq|J&f)CF}hdQ_Du&48D2oaujz)J%034PQ2 zod}1-hiy=QFl(Kx`d0VoPsZ>rQfH@7lCCgzty{`RJO(C!-OEpgMuFha3zk(0Wu6n_ zxTF;y>2=pqxJRu~~vsr$X+FeGEGil#=c9tXYvyQo-J8^W_)XJ?EU}S_rY1tL$r7Pm$ z*(TahptUVWM4wnU_z+a>M8$EkQ5~7UHo4FL0R}A+0;Y^tezLEDL*ty{t`S9a3J<@D zZ{t0_ZKEU#m_KT|>@Jd!05m{RPry_mGp{#MqIdM=#PI`5oKG~-ens%Z>IQ?t61_H~~f>>T7D_0-WjAZ`8F!aZ( zBDE;i&9XLotAMov%8nZjz=!SLUEL3lTIl6YPy%=-Cv6WOV12C;3}(d|TTDMQ|tUB#qZhaxDxuLFT`*rMT=qZXG}E*p?1XitL{w{jvauiN z8sN2Zj88TWP)~;M^$DAsB7AjEMz?%RCNNbHEsVb=rUN%-$>OKAVy7s_!=}E~znf+w z3)Njd$;%9^D9v%moF0-dNdy-fK3IW@zRBcmZ-)mVv;b_90qpL?ph=qG_|gl&un_T< zj7O%R0kv-Cd~90jwjA(wOu-)4puB|lB%|KEtS>hP;Y*RAYJjf=KxBr)K+c3-OHNSN zF+OcmFjHM`*2Mt`h-t~<+PbFz*4KlbR8)pmRFc*pPP;5D7vC~(8-x%nY4}_Y=N$t< z>r4Uhg($3X#EHns5aa9D@YCDgTX*9YjXXPRKjwNU^aSNW4)pZ$mndDy_DQzZ&R!0zxz68 zXLsd-El#&A6D`o?>iEXl$}&v=XWnIN*|!pR?_G#|UXA6NAC^D4q;(H;nljn-Wi!b6 zueLaI9&NWQvIV>q)+5@J5BpY92aaWLD1XT{t{H!qpBt)JQ7X5J?!Du+l=N6|N#?== z0srUScy^PQ+yFaEu0D5UF~@WPH%bH_6os!7yYubo+Xqg**q7PeBre9WbDu?KWdAtZM&VcJw952rY2_pp5xuU$Rm~ZKqk%AV&LOw|PN~W43r)7du@@|+H3ZMpX zEH+^ogPJyquha8%DRE`re2BmW+|H6HUFtjRk|%m@}tmB{`BuL5F$$4;vX^yOV<$jyD@+$C54AcXxjB)j=R!Smwi1x7&$Y`Vsv>zmU4i{joU$?eW|9hWip zlCL(sc#S(9q_$T5_Ej5R9mr#9X-ff$W? zoYXHsj!kTPP!O~X2zZ@ks>t}_?tY~uC@+^-MAkK zyEf!TtfQWZ>a@%5HouI3Ij%0reQeEORpGqcGp>A_?4R$Ao69&cf#h zI?m6B%)XnMKTta!qLh~~vLoX`36H_jQ`HOa#0Z6WvL^*At=i`C7$G`UgyF|Z47uVQs!Pk<(NZ}N8^XuDacI!)qB?@my8RB%3*y;4`$Vne+|?EU?>g5zqA z$zIi)y(xa!dv$YePVY81+6y36idj4VT6W8mGyw;8)$r+GtexMp)FzRcY z)o6Fq?PJ==Esh(NJJ^1>#Ejb%GwEMl_M^CK{!78-=SDx%&@1f1 zwq({5*^_O?zXOpMs6l;3noH4{0dW7y!>_^25Fp=r`K1%6uOQ&D`mMInu=U-idp?2# zbQ`W0U);kjB9rx>CvrzRukF0&>|Pc_1buJjMe>tpjU&T!ou3a&mHr}S6?a@d%f9t& z!u9k%{snr&_vb~IqUJLt(ViSvSp3CsDMHzYUmHRev7^w-Wm=PS$-U;x(8k9?$I|kx zRi5MqS3!cgLBxs|lY!8+6lIX>R-Vm3MNf|IJ)1cEY~@2f9PSs&gHQ1chE>hDJ`uTF z-Ug?Zs@rs!V-Vc;ZL{2R2%S*Tm$^3fbY)g`FmvZ*>tF?1vc1yploX~zNmD3tfdlh? zJ_<0hVoG?&OCIiHQHs`Fxa(KFInrjD?s`HT6Gex=q`1`DZ%GV~x{|mCXi+ge zi!d!|-zE{I{ZqW!0JMcHJK+O&^Adr}Acw}BC4Gux@V{P5U0z=ZLybGC$ySuZMa&RE z@{n-UDQj69_Gp0^SWr^@$ZVcqVD)wG?sc9&CKk#TGLvi9cicC=gbFi~T>W{PykFl= zgG&4wvR`pfHzj|sJcEaf?cM!Ath4ifs^-=`K{P}fobAm#qyMfgIXUWueoue<+n*&8 zivVVgtk+Nwl(0CK7K!uig!GqOqqeET6zYd;2xI7myqgnx&J3W`D*14!U&usFi4y#0 zr=*F+${U&{Y<=!;t3OWaF8ve|OcD1oA6_n&b}KtGFr}wg4XOyBL@vlQBGZyXM}w^Q zl$TMo8}?cES4k>2b80`Ix{6$8XVRGWgy>Y66xRQ;1;jvi=J&II%=)Inp@jBGH&WCe z%!H;qROwFb&`4udRMl5!i8J~>ZJX#V>1{om5upYiczIvAx1wvunj?=PWd^C{i*oh| zR@SZogFqpHoP5c)*3hvVcZ5!CpOw_U7u$1ihGc;tH>~*OI_akyBu$GhFv2kLET*lS z5yPakk;~XxP{O;GCV|!DIEZb_0k^o9$ibJiY1tQiboiN0*(p-S8C_8&r10g_lEu=g zvrw9P@e39I%-x+0)$nrbf^@43B`eKG-%Zs6+_JEPTDYZX(-bvKxPsPu2lbO6dSBm| z?}G;adUZt!+288HXgz)BHdhWP)&H5oU(phJG_Q_;i z0A>vRI@!e$W36Cztq|A`Ln}2Gs}BV5_QijatTNNSdNbR19awkF0w*3IDwN011-^KV z#q=^AN@2tr@7s?sS-dSucxfkokGw)`vg>Kqj+guWhm_=WuzTroRx6L~9~GD6^xnxg zbRI1SvZIo1n4~!TgjY~(`c6(ij_u9b}^7wERmXQ_*9c2df_2 zbH1mlc*yG2gBM#eFf#uJnX&IWi6XBNtQ|;!uBG8~^wGdFDl#6@#yfPIo}3u9Fy;tF zv*u!jISKe^1Q(_5m?0VlW3s>K{D25RSlR%dQj@ehcY|{Lg{|-e0?pSklaE)_K`SxY=lyFOY&*Zid>ND;ISCrW@xL6T7z8G9 zOI0=-B?{C6U=aKy!SK0fCLDp>B1N@)sSqdmD&%7HnoGVp1^yNe1zxB?4jrkpZ}o%h z3*AAD>8JCZG(ay>BIwJWmkG?P!Jd}WoTq!gL;_EJq`h}on{NX^RwUgPHIZSY2gq(A zpt{S=g&_?e(_-<~kplPD(pFU*y6CWeb;pY)Im=IKV4#Ws91(p)ogOP| z!0+KX7#m9~{HXQ_btg$={w^&8CvsGXGBq&9d5ZSG0$86CAuTz6oHk$dOjq&ajO@S+ zzR&a;o8S&ci22DC#K1hY0C)+Y6A!02uanO`Eh8A4?atNoa{|W-2H7)~e`g;pyt7+t zmTspS+Pc}WU))Tu{>a*@Hv(1PLnvTy zPfLK15sFuJPk*_0<%$FyrJgAHukeMTB`HOq9-noWrFfsnBH7scCdXqRP1j7;iD5~M zZSZf)bx(~l-sx&bq5}^OX_KNQ7@Sp-uYxl~PtI$%q{BmZj_W@?%1s9q7GtUG=QtfP z?`rl@@teY{ zZyveMg-zKmy++?1FkV|{1}fl8W$tZl-Zqy8*gei&jM^2peQI2umwW^FF-ozUV>Jvd zEftH5VI?dC&OQ6Pf-~>Ywx8+Mo4U%aH5Da=Up}qC-35zMeeIXwpf*&WpLho7Wi^q zbRh;Wyvo#4;9Pyr!rI=i2z*R~`i#xSLIU9#v^rZnp%95*P=f2~SC{q!hJBS8XaedDX-2A@j8%-Qr)IoY_br-fKR*z#nGGlOj*C~`czgoToMLqjQr(-p6K}e3f}|) zJp;Dezz~BNoNP@N-Zaj8yX{r>|7Wz1vhhdq066tIf87yJ6rO zKNud*^0KY!>V0jPc1~gQr@OkaZ!%pl;qI>+8<@0YaZ;VX#XISiCGJj2vs3`M?*<&l z8Wyg1+^cvG;=hAw61K;oz}t8Z1USSX_NSqRd`7_H!pZAl-7W#Ld8MHE0P``KveScF z9+hrf1M3rNsCA?RGfb2TBfEvQ8(V=#fv|PR;yzuw?s@;1KPO_a+9|=key8`p-MJ&8 zX(un2yerOl*DEo)#kKBag0;!`brrAM1LI*%o2e^?M};OWdp}@t+W6#05@L0WleMoU zozGi~6jgjxsy1n3-Bpq2oC+l?WOXeS<#bz=mHji`RH>BhFA~XR$J({|6gN756n&^< z1rP}YcGc5rPbQ6jFHJN0XxH;pfUy6kvVqXmHzyj*9;LHq>l>&wSsnFxr(aNmpS#J5 z-y><~e76TFuMgn@?YOrzZHeJ(adqIa;u1`4*E#g5DRWO=Y45FDtEUTtGYaeclr+st zUK+aKKCpf&LpY_fDV|Za)qA&6{9Ra8f+*<2&-Z|;BWxZfmy`?CZ_7*Mq*=?_3Ht4& zE6n@@{CUtfGqVf1mMiHjuWyn!j_FK!`HOiXM$s-o>ZNP(dfUBji=%X0L@U?&N=~D0GVn=|#)!8}%*$7|y{$1#nqrkUtY2t~{vpJk4Hr9iN?-4C1c~SC}|DY*aggK#hdwM~y9# zRE#VaBZ~nCVRurux-ir7S0h)28@w zxJYOBD*nvFV3$({vi{Ez=U~y%3zeF=O7)BmFh=2cuYDbP!7vx+QwC=V1I&I>R-9i1 zqVSb1pe*JeM3x7gvwQ<>&>Dt6`|#0ER)CvhC}F8y?G?_SQIhJgWPNgaYxZn(D4?&d zlx60B<7EU;2DC%SaZBaQGLubgfwlIctqL;T6Y=rPMb3V2=WAlv2=x3x{mbsN&3aF1 zo9FRTtbgWHb{`soS~i86bIb`UoLtR~Ni(pe*;6Xj@VFW1)qTy~(wmRA04}3c$(aUE zTr?woU1TOW1`lA+bX6@BEmVD_7C!}BlZON|9@X9V2yqmLVWeDIe8-!8F8_n56IpOx zzn%nm39!50o?g;>#(i>tAoHY^0MZBGkg}VWbnu zTlobAiiELi3KV$VD2MH@u3QQ9n#vNzU(8RY8z7XP6Hb|rmc)HXyCi^#=hPAxigGs2 zIu09*4SOo$h!VeW+3EM>eo|w%Lzv*pZE}ZDj3a6C(u^+Y%^Qerf;i?LC47wLOO zm5Ac)@{_s2pfVh{M8`O_@Id4H=3BN{yaIL%=M>$-!5U+#r+i3wN*Z}}>x6UM3By8g zoxGv6{BP#=600u~T?vY+)$nKGthXj&@Zv3d#F;hCT|S%_z)&lnuGDVwyH*R{*gXE8 zb>oi3P3Dh<-5JOX18#Szc3lyLtnR`(X~$KDzKy3HUH9|SJ?9TUIHY1Ot*n$jwdo+m za#zY`SxF?jKDFs-UU#n02MBcUVVL9Jy57@zbxaOSWh)Zpn?J16w&Y8^ZHzAu@Q&W$ zIobRAP#lXLpJ9pR>JkW>W0G`UApy`04si=eUwAoa3Yp6FRI~@af{%?FVqt6>39#Qz zXvrz?VRz7m{;_v{=2i0Z}QEd}>3j5VRI&3ku);ab?{)hED3tovmES~fUa=#`tTd4%?N`iL)T!qDTa z28yIg-tOhSUmhug>qMPLOX}cgr*=UC(5`ZFA29GX3Six~!%4k%2)MPGTj+!RTRK?? ziI4pMM*hQ|T2&xkW)4p{jebOrJT zg~#8089Zk-g|e27k>+9qU7j$iHM#|*n@H57j_^8KlFk!5E!3uF>?Nq80d;2(eG*Fg zX~bgVIlIvCO+y653;PGu$xk38zQ%y+e z>)kXg{F7)j9D<> zEd@s^t+#RrfMf1uLV&m$EY>M+y}8J;eRdr4gdszhRvl4W_RQ0A_Te)Tj9=5~E5wW` zzIcOJ1-X``5>e$~0Nx5%KJ)IgxrEOxa!H{KGT=GG)GIK*5_ue z_A2k^1%_Ny9uD>3M_aBgaiZt9aW065Q7JN?$(` zW$pVWfti12|0E9{Tp(~d49+vHC;SHUgzZ%rOP?!%wG4yuiNiG2ZI4TWJ{V#aaS$?Q zrF5`8CwoA4Xme8euIr{@`U>x!eZR?Ug6Gb8YEc`uSB@-{*W|@B4vr)?mYYX>QY&)( zRa>jRS>WT;=$swELX z@25y~`?uu1O}&}^=r)A+&DHBApvo93=CJ6$)PG5k5Mm@_ zI+<%@zQ2oDkfh0KOJT9>+h+P>DD%^LVXRt9HogHf)6>>*Axi$Gza8WTQqDQVx%k+KpPb5(Nv0t64d#5b>4GBso8`q;WWiP79QrG8( z`uEcEdJbq5#A1 z2k^Ae_hYLrMxFU6EPdqK`Ecox3Bu?1fkBg#02UJUXJUMH`Nl#$O58fpBG2<9X6lM2 zLLqQMAPjoPtol;GFa1Pjq?VE{qz|=2I~^MbHMe;@6Txr@S(%V;ufj;p;MH2VFq)&i zh|PJ#uj<5t=XM;UhqXt;d!Cq0_xt>tFbfM7c^XYasmP)}s|yJ~o}5)|YnXQ(45I|ZX57hG!`S`CLh&~t0EBI^+vsr*!K&WARP8sMXUxS`Kju9x zB^4Q)t+NLxo6|J7esK#owax9@PL=Y+AiBY~CvRv_5zx2jAL`lOzE|zXo^KrV>P%c; z`oIi)a5>Vso>cT5RrTcULk-0oQsrI^EGzA9Lm5k-9zi|~&O$gFq9uRUz<(tTF*(Kp zP%;%_Sqx^O3B57&!i;3S?NT*aD7kc9vfugfdamly$&$T%8Yt&E}{ta2M;*+CIk^B^j{?kewIs{+?Howg&bV&^Y0pn zd?v8Y+eQ9&i_hXbC#uFIW}){}^x1oJo(Oyw0N6T`H~{*+6PZzJELJRzjTQ+FB6w$4 zqAv7M*ysEMy88H-=m-7t^Fzi0w5vC~PkqAgn}QmWgU=$;Ij;&J9rjQ^+%_k3msg_P zG6M|XzY)D=B5R89Rssae?W!BEo!@KlIol_e62q*i5rK?+`ulcsQaE}CHR5`9L2bxW zMCFU1E3b1^^yJ}L_M>L^=?6Aoj2}&R^Mb!2-q*PhZpv+jSd63cHj4DM@+NXbWju~1 z4ys1oYjOqTCWz2!39+B0$#)-0?w36-Dqq;s*KRCsam7t8Ys#NE_d12uZ+q_eqv0L4 z;7I2_f7ZN-^&MJNrx(tq<8<7;;`_GxIlKGg{3MH?IBVyyO~o*{SlzWw|@mlCc%; zUAW90f~x6nv0YYxvLY)4agU?%fw7v1XN$0v*d1Ccr8c$Jvj3pGY!%pj>%TKdZ#W z4O`H4FK>aCT#ZDS$_5?2?>O{D9EhoaH@TwfYjF~-iH;yjfxTq>?943#`qPsLR`=`VVYa8t^Q;Io8;^`~*8YSAvd3nDetOR*<*tMHKp z-7rMc(`B`sl-=fslWEU8Y)u3}omstDd)G%-^_>VCi@r#D_EVx?$v{sF(Bhys z#qGRJ_$Jdm&w^g$)ev!jYc{a{W^^oK3%&lzA`(U#Tb(gcH&w(755-3&Wj?&>)21$Y zqHbt$?(07kJp{h0QS5mXnW$~?E4Fs0@~pPA&jb8+P~OOu@P9v)xq}%oWca ze_K7odHbaiXSfWcd#QFI?w{p-mr{@QGTjB|2z31=T=&g^Ll)j;3*{LIF@yeWPKBtc z%#X57#IuT9lyz+4dN$tC?48Lod8%W&mFAH_+!>_tZEiU3^o1WA9oJ6$e4SJ@&@Hn= zOIAm`d%QXDoP}`a6<|pZ+ne>g3Q?z{BUobMYcN#CGskd6gTdYDc&kjKYMI}e;)&wP z_GM9qsrCjC13ZASey;wpGGr3Y^>-<9;{y|H=VOeVe+DEr{b|no#$wP4mmtR%Q2|GB5Snd}aY0S3|T~?K$uij1+|yz>#;t7AC{Cn&~61VUIkBOTNu6LU~m~KX*nRjz#>uy~J~r49hY8ZyRSfrpI{E(=05**M6n?u_=C?`V5D0KFJuJG@1 zaK@2}yl-5bl&r+mWl?D5`s|Z&^0g1na=nPf@ZTfR*U)M#n0fxk(7wJhSfeuHQs~6J zyeFVd=D$PNV~ZFqXCJE=9`d9COs64PsEl*RK`7@@9Wi*AQRJvtgVoGQdOLXB$Veff zjV0EcnDW0R5VJE1h&Mdg#_Gd2-w7dv=UX_G<-uvLLbr%L`ELpDm8$&Lu2kxX^G?&| zLCIldE?qWr-Xxy?s90BmuihH1*Ed?CgYf}2sNdas-_h?5|M2~#G%Jk5^MU{-7*&75 z{9fugkL$#ah2LC%sVU*Zm6%5(8p1{R!=RK?)5VwlcXW9e_(w*^yqhC1t0`0(buL)^ zeZ>Z1@Uo{o@Z?x^@a?PmYLtxRU(xRKidjJQic|uxf=C~UXWaOEik$aaH`f$2*6N^R)v+h;8ZA=>m%B3c z#_sLeomb{=%fWl|^nVx8&4&}uIzQ&PmFR<5eWd%tES zM&19O`;0Mo?hU$|037tbr1EtZq_RA~VqRl^AXUl4PT0M+;cGp+aq{n=Rcw7H0|c0r zL@UeM&#H2KzPYRoOQ9<3t>)3MD|s5BF!7hEdPlJ?uzJnw56d4B_yAK?Gf72K+V^}d zdrE!&<=xKV!$G$FA5XZ(gu)-(JQJWLpObe*eS$@1yDZT_zsXL&@vjyc+jdC3%w9JM z?e$sF&QYLI148*WIO2*?Cl_j#h}!={`}ahxewXbVa#i$fNm}C@w z#JSkTtx@D%CZSSGuODDNzJa_!e9J5M4o8emDAuDMm->*VPU)KCI#8!p*P}>&z`-RBOXo&8w7K&V>Ba>JD+P z#Eg4D$b(67=%D~s8>Sau^jr8Fl|71M(ZWvI2RyfM-%i&ZZeDiX)tg;EH>00=`3Ch; zSjm+>XgzDkLMdxB+DsF1&8z5cQEm~7egNYY#-2$aD)PBYJHYb>@JHpW#pYhN`d*(6 z8l#um7)5TKkA0wuSU7sGXeV^dvZz<_(g+a5)n47l36K=7034i>@ZPh73l<7HjB7}~b1=LkQeST{2D4VoKJeR>Let& zAid(2|5pa8;9I{+)As|zpm$Y(0#atqiKxAB=MohaMlCB`re3bYOqn$jrF#C%9!X~i zO7-dTPK+2{RhIv%x;(!}q#q5{SLW9Vd_LfjamY3;)!Qt-`Y2D;V#rdM1o-ef)g9*X zj3b#!dJ8akWmqAMDwvlR3zWX&sYGN)Oy-qQDAlX`E~qL=83q+5@KS?IH0V-_O{ehz z-?C4=sp>30OP7cgrCIYlO(n|I2)A*+!L`9ur_yBlW$IK28;U zD?P7E@z`_DOpvNjzS%?7e~jVnNjLdsv+9XW*PzRe3RJHI78`o0`QyM*RbCr9Jdu7+ zkjj%QGwhR}cKNeanLp3a*o)LuRG#|RU0G>hd_?-P3LU+;L8clSDv7jS>Kqk1KoxOt z{o>aS7}eJ>{J}k9*;%nhz#4#f$Xp(FXq8uu2!pr;17i;t>Jk5i?vQd0;&?Gcc$x8)!rgODdrC#JK6ICAcj^y%D?h+l9pZ(DB zvv(Yw zzvcw^-80ToTUn>+#B6tAwLoTGA2r}_*Q;j>E2@8B%Bgx0>fQ;fRDf>~Ls~XIkAX8B z6sm%QY4|AfP^G9SKa)gfCQ#i|jS~SRP;nV<&Q(oXefY{$D5^5L$Cpc4pz@By#vDAs zkoap#TxI;J;d@>>FmrIr7+aEI8Hx5ASE`wZ$bcRom+F=tgnC%xvS%1t$$&8r-%0pg3K3QoUUJaj0`Z*f+!eZFJKMVsR@OXsfx zI$;Vsse}b3@I)1(4^bXG_4M}m>gz=hs627UoOh_&Iem-27l!yzfj=D$q}2AiRMdn0{{T)^kLZHKYqXfw)w{a z06|<$b(J>(v-`OV?(AKP#?d3-XXE;YlUhLe9cO{b z<^cPWm`nE=v$i;UcU#@%Gr-ZxoU^CJclB0FCCl9f`Tu0UpS`@;{4wHmbCRFU;It-o z@9v?8Y) z*M62?d<`<2M9|D+^sRd77w(jCA2Y_Dake|JrMf({Q-5v);{zf${4k3R_k^!Ouf++IszC|txz3K8U=0F1g zSAATol;TtO%t4i1-UHYGYPMAr9NeGLcqntFNs86M8%8{aTpyMP;5*g=!}eM?;UZGE zcgNCWKfmq3DU83wtrK0!l$RCo>~;Z`l_(phl+|zaaeg83&2MEE|p`Q_#+b_23$_N z#}6FlfAQxjzC3`MXT8{%SKu!{&-39wxzAo0KLa#(SSh(`*T2-7Z6x=3u3zla+yFob`fRm)@Zks4s^snI z;p^&q+PH!RxM+%Ww0fBaL_;2X1ORydwpayIn(zVrpoi@(!zJttt>cS$0IyGGW$eGw zXqN5L6HR{Gye0L>WH)0yr9Og9#bMnJqhrW~9t zqW=$}>RM%=Do!Vc;Rd{6Mfp%7e5^G&jE8L!3CQ#qJK!dcap}qJ!!}!d?ZgGzgN`%` z+u%jvO)J?CUwJNYl}R40wSk7|auhBrDa7eG2eDG91=4BmB?%-mL3>Qu!XH#R7?o}9 zfTj0-!*Jbtar&vhF`6axWX8F-pI(0od_5I;R^5E#pB(vX?e}vT66L&D&}2{Q1QXBx za?y9_)c6;8Ci*<=I%n1=`^^pSqa#PzFKc}ps2_csGjZ&GNmTGq!(DkzqxF%Z;w46$D&3tr#OnP_d7^~xek{N zzd3g|7R|gLQ3Z{uQ0#)<+6gM3>!=sZ$!HG_nkKl_Gl(aX!8F1XAxreDz>^(*WoFTI zTHz7DYm^o}dwe662_7$H^jSAJTK34NLVj6@oq4Ee(x-8~Rqp-xle`)FGIC*my2yhV zXnUW6n`Ne8vkH~6#8j?w11N3KC^{PUwEXC?>$4i|P`LoRx@18-8pO`yuHXer@3^-S z0?8!RG6&fNWJmi3A0JcO$C?p$wZheo=O7JoXzi!yfRDK-V1bvdcI};ypv+frsvA{T zIgkvh%r$JK7oiCl=@t}DR+v(yk~6`VW!+;qr*Cynw9OnC93HmMOzw+MoZ{N!gc<;! zaI&77n?Di#VMwoPwI7~OCtpbVsLK+yEuWrY|1;;!gz6sw>hqs(DK!f$U9r2Ky_)oW zC)!|gNq*9%WAMk^`CwYI3|F0rQ2E_hA|na)mTl;&Q<=?4*5s#XhOle5^1n{|8FwL= zCFA9!I?T(+5{{k30Y~mP1>`4XMSp!AovTH99V&XbW&9}CIy-rT4D+g_u+AAPAdpQRJ-^+|#j}*qN-pK??yn>#96pv z-(*^)BKPj?VVst%7XjQm{6T7b#(+*xX<+VWP_Kj0Jp-p1x(-#uy7NAR17*6ANw?N^ zET~n}GxyIPU1z=avUg+B$LnGg?d2b7Nn4*3mfmgSn|POQ zK27*PG|vZ6b2pINTldXL&Mdl|V@K~p2H8*P9K!D4g1c)e9PZ(k?Qp$SX`4<4>_XB4 z)CP7k^Mz34dqBRwN+cQjBQ09 zZbC`tzdmCJ9|AjOLD!o<_S0ePw zKlh3!2j<(j;Q-N*9rIr=2cbF&1E~>R=G!aTl&$6FlVXKd*%_}LsVKlw?^jpzy#A6b zQT5L}7n<1MtnZI#vV5&s`r9Z)Z>*BPi>XHgxdM)a@Vgv}d8rl08!A40h6JKK!{%2X z{lEh7;7XX@<3g+bzPuzjkf_D^tJ-!3cIJAa1efV94d(#K$FUS!AziH|xY_b`MdPWU z7sM6WZN9XJU^G2pb!@-j^jn6Bdze3|U-ZiIbyfH=RRY7A&NC{s{Yn&9r;i)2WuRAF zx453AwEy&Q4{P=Hz8J0l4%urcjSRZjt{m(MYI^~85BNaCPG0q7vtmxEah4ohvS>cy zN2G?SlRC$7u~Uqu?qk@MQYg36eQGjlQ|?^DE6MZ6$I%F1inQyjwh82Fsr|uZsmaT` z-#E>*s-)%xzIV-8u%+M|W9%Gzu*TzOx^S!bDia0&@$fN+Xi=u_sj)^+Lf2;jb`~|L zcND)apAbWzf3XABu4wJhJtd-2uAj&(%}kta;qYb`vjpX+y4EKDjn7b<3{msyuuLcc z=jxOax!b5%J@)pGa-D3?_>=mWmk@BD%69YI!*E%{rs zWY2i}-#gqfIqen_wWenY_9}j^VtqXr!R=pcb2=wFumFnTaEbj zVtixqYIFUSr4u(ZZ$rRiJH>>m9dp8^!sW93_Lvi}9aV!_j7HlsO#+ zaYnIMLkqV<>&yuP>zRj!oKw_u zBLsj9c_(V{M7qLs@C7YKFFxaSC+F%4jMg=reTTCzwKBk=DbX8D(eRHG^}}R=98y(f zrw%ezOzCM%ZN{Mb=Dz-l$>u<9#K;zg!bb0QWbJmc`gOpMOC;hTE!WQP+}B<6c!qy8ax&)HQ>FeE=8Xd=g3mGv#To2@Ot5dqqlR6e+awW3 z%io3iAg!kh+5iB02x@;@F_oTkW?psk?P~v9^g^ zFSie}W1pQ4Ccse#A#Tq6R)arO_WfrH^O~u?efMJ1aDGyz8*R294Fbkk?x#*Uvy`8x z#1>>f1Ne!kFZ>;tPQv~sMh zl4N2ksmM8RWX1Gu*9HL>4ManMZ--bwi|QAn$#}}C3{Sm7RmgDuS$uDNLvTA~sy|4; zB|!f#q`v9=S*B`gDq?hNYhJp)|EE=n};i6o`)Xp zvA(5e@-4zjqqvc$LvVmu+9go54_?6ku1M|;(>v;vo5Ybbc)@phO`n6sr@Kaof`c#a zM;OZ|wg&&$vwWsHf(o6%En^TJZAMT*z6pj)~+?^-XQs}?!0CCu7V+# zgb@59OMJ~rk1ThNFUh--zr#kB-S7)bt~+YbS&6~8CmQXUf-h$rV=3)pE^1;> zlpCMa4>~~TzN4>RbR7;}3PE`CoyBBKReJI@MYz&Hke9~QTfIwF>d*atYiFQ-=L#EaIB3ES)ssZ;yXXAnA{xt0*a`hAn z>KYZhYJV&-3DwZ~MI>9isr@wroLuBYBw_Ll^w&sAy+v7C{=paliQgq-dETN`QSjKH zA1uGZF7lUeL`QzT!j&{0XCnYSgWuGIF7#AA}XY!)eNKJg+K<5Z{K6hq-Zfykvq~7U#C=)V-eL} z*7enk6Ktc8_79y{cjn5^eCw8U81olVQHbL}y9&NRT<&dbmqVw@(Rw@cl;_mvwv@-7 zEYr4KO$ij>B<~2IjO~-R@r5|o=pP(A$pUwCcouk};F;;a#bN&UA2mXooYZ3ik0D?6 z2KktiCk)aZ!<}TW_yk&_N=BkFDv3PdEaew>2CzBaWos6OtY3nkPJ$-Ya_#a4k_ml; zMxSXoO8^y{9gO< zdVC|q!EEP|fPh@5-N$`s4Vb^31|br`RlRPSsFl1<4k@u4ks;KJ-*MFH zzRCQ24*QZes+z=DNV@$c=O)c@WRxF8Q~xflQ4eok0Rq%hXM(d_YovKICD*?!NnKJV zx)Ib<-)fRBQW^jHt3}1*tc!af*hS$o`7h9Ir5{6%6g>F`7dNn);-ua~B%4Wk|C!h) z5@x1GnI}VZ1R{xEdI^4^j9*@@qIxPkk{VJz4Sn$(>7{@0@}DW!&O@rKr2wI9+n1Wl z**=@CqAl^N(;NsM@oszLiNe$-_BnNT$H%rfiSiVIG6&q3IRl?s2<>L#lKh)O{xK)Y zte%cwd2foLiIqctg#i1VyNetpw=~}F`HRe41c)N?9yfLKPeJO9>xzdTnM7*(QkqXT z4rG3F+$0gj(>?r!tl^6<_J(NCsxp*1)b+n^PQ!L(bgt4JKrC^VR7XMe;#E7Jd`sxf&HFtfvXLwNK$qa>hqj`GP1f}@oErm zZwamTJF3Pi9PYI!E&=}&#tHAUP=gP@)k2YpMgr`(MD#y)h`Uk#D)%vax>uB#zP_M8 zZxaC_f%)3{6(W^Fif9R9K49jV&tbr*JFdfc3HG_u8y253qu4jT6$-(bWy4em|xeMcotQfgnv^$I>PCj!}>#ZWCN8YsG z`gAewP(o_99e!f0a!XjG{4Ec&$;V$63v67Q?F0R~7~j>7yP#B6Nzssqqa$foU8`eO zJJKk*Lfs;g`CXSRR?R=jC4#X`qIg||`W2-#+~_kBX*$BVxDmEmK9c`Y#@E4rw=Aad zuO=;~E`OJZl4adl)o7_!mn}Q1xv(}4_LpfI<66`spG|oziud5^Ui0)@w zdpgY@F4uPjT}oV2Nvq?8mTYvaK8dw?o_hj zlGgi*;HZOIOXkY9m{r2OWerlk$KQUP+=KilwmWuUu|{LuWyCyOLov;5|FWl?B0S>* zuRiUT@i6xejrABJMJBS6W1YV{hn$Lar)j~46Hkap9v<+KQ526C5M8xuY4UPU!BR@m zZVw;Pv8ol2ql`;w-#w!q(yzpdeb)h9X|f1kY}`g_{Gs*mVMP^q{v7}dIGaUTx>^J- z#B~+!;X$e=`RK5Xkn25|AC3LgpZJeyO4x?;R_5GfeXXvfTsVkn5S!}J&*L4Qh%Gbq z+QMH2f{f`rAn;|C8x(uP;x4^TQu zmABXo);Ka1+}*?N8m;43)M$?oh7QsnOO<%xlXsNQC$=;l1JoJCUs-jnFlA*x%NeTN zH|Km_a$b?JPCgc2wzGf$*x}5VAl*o<7XNwozv-W_Z5sn*H8TKHps=L*&=4Rk{5N)@ zM7XC88rF4*40OVTur7aTB|8=a7&oOx(0qOBW9Bz+^4en1iTbKa{ouz)apTTV&Gfgv zq5$w84l7cpir*VKGTRp~$N*FJ36PBJ* zn_M%_VKS$VI6-E%&+AzdDz_0?O;6Oj_4za|KmB}2gYR91J-!bcF&B*y40w!9E3bS6 z4A6Y?b~tNT3LQg~*G}#W#Vt^zZDu8saJI~SEKK~^Y!A@QvB&H;2`!yBa~9#H#@1`C z1NJ^*@-b$wApkoViqnakkX7|#X+@V0G*wSHWMfyrPTd`6iMTjIyHQv_^ z+w95pH#|!5C?~2?*5)-<5v6}@EDNBH`!*ef9*TGs@V{9?pE-?zoD|exczXTA;xuu& zabQmtIe`4%qf~FtkUt9vbHhd-03wYhq=0U_(m~CaIIcb;G@4*y5)vaHmP9Pp`pSWq zIJ??WX9R?1B6K`?@S8|Gz;6<32PrtDGnr(Bw^f{8(-V-&-ce`y67&3_RKy(ZCDOkq zngC@2EJpu11b!c`EwIFSJhKbX6L13aT29Xyi21ogCz*J|W0KisQ?rE8ji@nvT4j)rx#5Y}fDU+> zSenqfn(;GiHoW&f5iKtTY7?Qmo1e{&d?EIN&gBgc^fnQMP5DrRf=~V6af>DJEis^< z`uu)=p4wQaeEM#rC~~bAE$@9Uhe*cmRko^xWsCs+@t&*;#a*wysYnJs#j}`Z16DbL}^8 zMz%z^${YywC0BnQfjeSDhS!pj-ceOVp4!!e53zAG@xx9>$gxo7lMQW z4`A9Wsv=k=Ijgns&0T&fEe-w`9ox`2h6Q+JBQ>TD2$TAsw_ZQZ3uQsLqUms+00lXFs(dc~L3+j{m z*U$sLXqh&^C;(;}{b%H|(sb;H(WzD^{pp9_>YwgB%7 zuvscJFE5WP{h#!7bvD+a?2Pc`058c;!|uS~lY@sc)&1Q(N#s$EJ7eAo0>Or^h~vBJ z{Ogzt9*h!&kpkFpZZ|#hjsCpuQBqR6L+J?EHz%=a4AMR!eON3ex^7ca3IS>i@~ABB z2affN_}4lTTz5Wb1;AQE4!_rhG=6^x6I2O%K8giUc`=Ih-}n!p@Wo*QkUzY%ZoGa7 zxIUN!fRQG#4KM);v{YCE#`-HSM!WHwT;Q<(iE3#i_B3DX72t_)&3844`VWV8%FX@- zX?E#OYw~VG#@D%Pk05gqcg$n#kia9hEkJ?6C}z8jNSfRS|8hm?8ACWJhWJ5E3H51w z0~WsAgZ21w$}KPtON^mz`=x)bf5C2VSm@=Fa0Ecrwu9B)WwG->JQuYmJ|y`sGjDew z#1+og6IAc*F(~;$TxpZz_W_fdj5SN^$ZfDV8Tg7SG_1FQ3>ByY+vtFX=G`H3$2!Hk zv&TGHoEDD^=v+PTE{>Lnp7Ds@0mVJXmQGOzGc22vHzeNqon@PA;O3dq$0s8_2R1jM z)^f6w{98rZcfDxL%7xU)+SsNZXcl-2zrSs6!FYn#Zr!t;C6qevnup`1198@r?je}o zXD?#(x@N@BPT116GgU|YjbP{*RX-McHL(#p=?)!&k7Mojm`|Rbs%1l|TcEJb#%*{W zrq=@=fu0RK>%Wqr0MuN0<{F+1y^4&s5sJlZj~<;Wb|Dp+MXX3Ao!bsX5@^XB(a;X^ zSy$8?<@IH#E0wQ+MCZ=OCTk?m(voC-BIq6|M@u0+QpcK7$}maCM#5K!vayq!bAOlV zO3K85YNl6dhz`k?nk-h_|0(qqlAUsYVs_-6Mb>*Uh2%C0Vx+qUtxL5c77q|2*Uhdc zOO4H&Cz8*C=<8WjG3C3wT|xC$m0!74tSfDb=4~4$H-o-_Y-KG<{qci{mTl@hGY!GK zGB-I=hx;Fazq)~Dqc1Kz8i#6^oUo81MZ4S^yE;)5406x^IH;(v4Q}^uzB~;bf%`W_ z;9FL}^Cmx3GBHHz?f#j=PCmOX4^Z*6%pWp6%VVc4%gU`g$7J}Qh2V@oORqb(e`b~R0&EvWq!mRC@ARC#=`D;_nt%)Y~HH{F|Ue*vL(R+!@0GNxl% z7-I>Ozt8LAVpeZv?8M2&8P^zRQX|Y;8*|3FtMR;HCwSkQf#g{NQ)7><0_R zUN;^5)z08x&aj-+e;QG>&eM%BPeCmupgpX;pcbO9&7z!BjocK-L-saj=t)Ppw=}iK ztX@hmR4eR8ba8LPJU0FEZJ05sk@bZU-`{_TypXF#-#OzbM9nS8F775hMX!0}*L)r` z{asTOCmLx5V;10GQMrJ0a>xDjs9F3-5F{4s?&xDx*x8Lb<926qRHAmR8C94^yQ&Y* zEwt*nDn{V$t?fw7>}ht*cZ$ObUd$^GxR@bz1G))<*s(y_&8c%-&F7OUF1uUiq{?Or zyuR~l3EO@RCJmGKdzr50iha75z@-VbBVxxZAaw&pSg=~G5Srx^WVxviT zL|;xylQ`Xc$$&Dz9l8` zE7-DI%`gk{r`&X`*++ce@iZJO zMC2=UHy&6lT`+Dg*Pr?~mlf&wj|sPK3QbWpL5<(3)BhDcZIX(-5Sq=6QW0q+JE8P8tBu79f7Ro7x5wlG~Em#0&V#r zLTNzl(FN&i$)&Zo6y{%!%c(Dn1xZijz==^l;&vL%VMPTO+CZQCImQ7ia!=u@7zaIM z+POLIZ5G4Q+TH2I`Y1WtZwb0E#b1U{%znDbzIWzfa$eM+gp3BF{^5q`aF^$IOSd)d zKc^77>c6{T3yxAwEPw_l@Y$#Inx9#`>x42%m{^|8v2K~fwqG*Er%!%yHtqh}QE(i( zm5#f>@g%q$eQoTI{IO|c)Ep@IbT>=h>l_@i=$>Q%ufxBdRcB);C90+fZ2ACoZpXio zuO$llNuq1OO{uE{_T7fQDYnRDq;q4sYMcYL^#$QB@K|7yyyWf|R_6Chm#!v>gGc=5 z*tcwPLcF}epUmg2j?^PDt2`&7A8QTjh?-pY1M6VSe3mOL9_Hk}EU#f}a=*+*6{wo8 z^`iZVX7)iP>vdcLA=*OF5r6q_TZiARN0|olALJ-{E9Ey$Dn=`$FGio!UH{dlxJH(# zjEa|YOkwYmhgpwtZLuw&+0P{hI}Pk>Y+w+RY=m88K`HrZ5ebq?bJ9YIDEo0!G9bzrv zBHuk!qZy{Ag|qO(5BYk|W(d|Qg`Dl(Z#~iz`4|+hUNqwqVCGu)LWuK20Y=D!#pEz8 z@R#{$Q7TTzo~qfNp(&@WqZAj6S>C(ik&1P$*}h5kO*hGY*4z4ZZsCIYU4E4Wqk#o{ zs8}qMim)q(TxN2su}XsF6W?h{`-Ue@*ZCJ zr7YU_1*H_HUJR7C5BE49#3G6Bs|)e3)0|I_ez9&XqS3>K^Plvp_H!P>B}-630ms$^ z!F8;KycKpr-9c{<@wJcW0u8A#ZqkQvY*Rt1+?`zC&YQ8NK4?Gulkaq>e3A8*2KKp2ykny=Am(CjXek` zq*+0boKP^gwDge?l}Nd&d%1Pwl|5q94JJR$frWl$IptC{8T-e(<+(XI=faQ=o~7ljf!|a!7veY}adM!M)qn!6KMgVuNcJG~&$2xh=4C#AN~|zR|9M}h$(=kpS4`;cw}1N!kB0G(LVeA4M%;Grq`kz3*EEQ z2QxeziyZOs1)J2q2Xy-}Br|ifAX^=%(|a;)yQUV--Hjozll@}$(9P`9HuCF8$Vli) zYH7&gMHT8*QUSE*uW(FIR1EA3j)HlyI7bp<9t}jF3wc}=9U^YZ&kslQi1xBN+plPl zN4j@0A7VE_m?tVDf?EvPpFVf^<|x^3(EpwPcWNJZ)>g&jqSTa6rqrqE{QjMLdiVA} z3_aPKNbK$bM#UDErM^${+iaVIgI@xfPb{5V{uK>pN~kPNZ#jkCaPKcMev_!+Rk>(B zryku$3qFT0%%ScU`ylt*C;H1j+BR+UU*n~on=@hzqGtsnb3-Zj)0f;oF5c-_;idA* zKEe+&ZP!$obTEc;!8Mp@1sl3Xno`18U4}Ucg9`YARU&0nlw7_gJ$TPzL(t%<(T}|= zS(7G(En>cWF0Igqq`fupx##{<87b@j6D!vkN(5Px;dyO}Y%>2=G1KQM#`uTx#YsC* zjc8OAbr=`w#!qgjrT-Ks^tX?)$%0$OX4_Nel0qaZ+|+l91|jUZEPa)ZUZfh~v8D&X)6A$3$x6>;KrWj^&g57RNZZ zECdbm9hx&{&Mh{D&Y;CCLE*4Gqj9DfH_pmWk6A8GEgy%NW3_~m2>!y|UWse;i+EjF zFn6}p`$yL69+BQgpaW}d-(QTJJ}EcK5y(??2(AbjN1owd*K4^%YlIw9oJ85eR^Cd= zIcMON<}(Xlux8=9EZIiMj=DE;yd!PJXJg(jIVs zk+^*$G{Lo{Xh+|%(7G%{=M#M;LwiSJ++R7^;ARZe;hkJ&l!ufhps%HyOuamX2A4CD zooTH*V1`YU>6wbmFxByV*={fTpER`#^MwUz;T)M8$}=>Cl}Oe(xc~{OLmG<(oLH>{ z94-clD0+f+16)^kF23*t^5r4C#^UVfF%z*R&zqYEw)$ zcF^bv>L;38<=~3CCTBOC-S8yX_h^&pHT*YU$(0;ZcI2rvY+fZ-U1AN&9i#bo#T%b@0pcfd^HV>Q3qOh>I`p~Zi5r=I9L<%7ZS7|2e87fX#=27Wj^2C%Vqas2@_TAux;VPNg^&hoi8Sn zMf*K~$0A(%xjSFhJn#SjUa}v^O(lP9@rPz!y~2XmOuvo&h%lGgPq81?h)w*FF7q8_ z51OcZ#{FpiC+Ly>lBB>qn(6kTS_4ow+Y`oqC?Wv>(|_)<9 - - - - - - diff --git a/apps/mobile/assets/services/clickhouse.svg b/apps/mobile/assets/services/clickhouse.svg deleted file mode 100644 index 6484dc6b01..0000000000 --- a/apps/mobile/assets/services/clickhouse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/mobile/assets/services/cloudflare.svg b/apps/mobile/assets/services/cloudflare.svg deleted file mode 100644 index 11ff6493a9..0000000000 --- a/apps/mobile/assets/services/cloudflare.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/apps/mobile/assets/services/context7.svg b/apps/mobile/assets/services/context7.svg deleted file mode 100644 index 664bf9d94a..0000000000 --- a/apps/mobile/assets/services/context7.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/apps/mobile/assets/services/datadog.svg b/apps/mobile/assets/services/datadog.svg deleted file mode 100644 index bb83b63370..0000000000 --- a/apps/mobile/assets/services/datadog.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/apps/mobile/assets/services/figma.svg b/apps/mobile/assets/services/figma.svg deleted file mode 100644 index 5c8bb0d731..0000000000 --- a/apps/mobile/assets/services/figma.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/mobile/assets/services/firetiger.svg b/apps/mobile/assets/services/firetiger.svg deleted file mode 100644 index d9c1a670f6..0000000000 --- a/apps/mobile/assets/services/firetiger.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/apps/mobile/assets/services/github.svg b/apps/mobile/assets/services/github.svg deleted file mode 100755 index 4f46bf3571..0000000000 --- a/apps/mobile/assets/services/github.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/apps/mobile/assets/services/gitlab.svg b/apps/mobile/assets/services/gitlab.svg deleted file mode 100644 index e0e22ac32e..0000000000 --- a/apps/mobile/assets/services/gitlab.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - Group - Created with Sketch. - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/mobile/assets/services/granola.svg b/apps/mobile/assets/services/granola.svg deleted file mode 100644 index e7d62b1455..0000000000 --- a/apps/mobile/assets/services/granola.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/apps/mobile/assets/services/hex.svg b/apps/mobile/assets/services/hex.svg deleted file mode 100644 index f9aeebe334..0000000000 --- a/apps/mobile/assets/services/hex.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/mobile/assets/services/hubspot.svg b/apps/mobile/assets/services/hubspot.svg deleted file mode 100644 index 9423b8af9e..0000000000 --- a/apps/mobile/assets/services/hubspot.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - Group 29 - Created with Sketch. - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/mobile/assets/services/launchdarkly.png b/apps/mobile/assets/services/launchdarkly.png deleted file mode 100644 index 75a86dda1b3abbee4a9ea31834d0ced2a7b6d6fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5230 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 YVR~>o)VDzo)Da=N+D2McXxs4r0qfv+7XSbN diff --git a/apps/mobile/assets/services/linear.svg b/apps/mobile/assets/services/linear.svg deleted file mode 100644 index 53d625598d..0000000000 --- a/apps/mobile/assets/services/linear.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/apps/mobile/assets/services/mem0.svg b/apps/mobile/assets/services/mem0.svg deleted file mode 100644 index 13a9616ae3..0000000000 --- a/apps/mobile/assets/services/mem0.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/apps/mobile/assets/services/monday.svg b/apps/mobile/assets/services/monday.svg deleted file mode 100644 index c2feb2b4c0..0000000000 --- a/apps/mobile/assets/services/monday.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/apps/mobile/assets/services/neon.svg b/apps/mobile/assets/services/neon.svg deleted file mode 100644 index eddf840522..0000000000 --- a/apps/mobile/assets/services/neon.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - diff --git a/apps/mobile/assets/services/notion.svg b/apps/mobile/assets/services/notion.svg deleted file mode 100644 index bf6442f76a..0000000000 --- a/apps/mobile/assets/services/notion.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/apps/mobile/assets/services/pagerduty.svg b/apps/mobile/assets/services/pagerduty.svg deleted file mode 100644 index 477f6bb3df..0000000000 --- a/apps/mobile/assets/services/pagerduty.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - 216px copy - Created with Sketch. - - - - - - - - - \ No newline at end of file diff --git a/apps/mobile/assets/services/planetscale.svg b/apps/mobile/assets/services/planetscale.svg deleted file mode 100644 index 2f3a95c3c6..0000000000 --- a/apps/mobile/assets/services/planetscale.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/apps/mobile/assets/services/postman.svg b/apps/mobile/assets/services/postman.svg deleted file mode 100644 index 87ed4ac39a..0000000000 --- a/apps/mobile/assets/services/postman.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/mobile/assets/services/prisma.svg b/apps/mobile/assets/services/prisma.svg deleted file mode 100644 index fbf24acc72..0000000000 --- a/apps/mobile/assets/services/prisma.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/mobile/assets/services/render.svg b/apps/mobile/assets/services/render.svg deleted file mode 100644 index cfb5a52e5c..0000000000 --- a/apps/mobile/assets/services/render.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/apps/mobile/assets/services/sanity.svg b/apps/mobile/assets/services/sanity.svg deleted file mode 100644 index 613194b4c2..0000000000 --- a/apps/mobile/assets/services/sanity.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/apps/mobile/assets/services/sentry.svg b/apps/mobile/assets/services/sentry.svg deleted file mode 100644 index d810538965..0000000000 --- a/apps/mobile/assets/services/sentry.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/mobile/assets/services/slack.png b/apps/mobile/assets/services/slack.png deleted file mode 100644 index b0342108319035b8b7799a189c9f6f1df50aad61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11043 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 diff --git a/apps/mobile/assets/services/stripe.png b/apps/mobile/assets/services/stripe.png deleted file mode 100644 index 26850e852e7d0ca8b51078d555c76fdb7887ea17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1663 zcmaJ?jXx9k1NL?uN@j(zyGSpb2^}+jdZAXC?c`;*ybYssB>cu^q~(W<4AaZ8WJKPw z%*!=2o0l6!cVi_XgcR~JlQ?C3&+i|&=kvULKF=TUJU86k&S_~HYAPuyX<=N@p4&P3 zf2pf(yGEpm%XZ|tDBml{Ypt=$a4}w41L1ju@jgrzg)fluhKE7~~ zGapxd4B|vq!5ACID+`+@$}e&0plRbVKfljc1FC&`aDlp2c#=4bAldjSJHQd2{K3Fc(InHmtID3zWTnL=!Jd6I%WhiP8ruE+`DXuy3TDcb`P~Hqr{^*C zDdnZlFX6@f<8Ac?6I`F~Ecym|GuGxiJ^k%^q2K97?bBR1@v$|EK8eCW?Z;)*RX2*A z>IYjiwE6cO*RLXM4%>7-O0;8l;CSiZy}{jcQAs-Y8&Rv{rb7p~MtPfChM{JSx|_N1 zlq-)cGTuN&-KfrgF?I=dsOi8{3fYj(2=!4HZ4*2E;nwXwAk+oIExFBxqA#gm?|%uz#g34QVeJZG_^y?5mx@mo${)1T|R_|utTWu40wi|QdSXNo)%6hmLg2h*gG z7_AP=sgom;gZdUdy{u@dforyt4LKENov;FeJ#<;_ap-Qj0aCLJC4k>vZQ( zhL$)4^1)G8zuIaUf#4kBQy>@I^HDAehc!ZzqvYXJS(IIVeWe;_^z=yuUlf&*EeX`~ z(X-LZ`SnaI_c`h7lMNaB?s=_!)}nblTI&*bLw|zT6qHOe=?e+jw}cQqTLtsX zkx%6!^m2vE^T{KO^yZZUE+gwT^u_0_sK4MxlkpDC>`{^=5Cd2n&3%e5oSGRABOC6Y7`Qwufbn?2f`k@?G+Ov-eq_o88=ciee>4;s-XV-W6d zR+C^snicLbPRUYl-WuePO;BBUe(bA+jfd&;=}@7PjN^; zG=NgXwQax~lzx#vJ3eFPa-CN0R9o|VmBD^rK2g{s8Xx8*zVOtn`59h;lSI=7Ohq@x z^mt2Gk5M$9p-e{TqO7wwK5ezcuG(Fr@rTzUu`wlg3O|fE*|fn(&rRoqC~MAH5B%YN zR(ON8qVx|9T=Mh@hFxi&+>${=b6;-2qTCndOQa0M2l}^SC9i`bCMhS(Ib=*+mu}uW zDu(oDE@qI$$kOb7c!gH}?A%@)++?Rs9$5?x)LKYOwbzv7`MI{~@@6Po<`14i}C6 z51Ti^RV+8|Jd}JyT7$L{H+QclInJPI7fVK5{Z+4aq^Gqdea8H%ZztE$$mOZe47ZxK zTBh3XmGnC*-%5<+7Kd`vjoJo~*#f3TZ`!-;fej`0d)|LZd8`dFg`yDg-*@d!M&vtc uX&mttwo!lJs3t9%uKeqm8mp^(50s% - - - - - - - - - - - - diff --git a/apps/mobile/assets/services/svelte.png b/apps/mobile/assets/services/svelte.png deleted file mode 100644 index 7008ac16e6dcb055b1fc2ea9d94ad7682a90a36f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13718 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

AAeT>Xy1>o0Q6J0G}X4lq#P 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 diff --git a/apps/mobile/src/app/mcp-servers/installation/[id].tsx b/apps/mobile/src/app/mcp-servers/installation/[id].tsx index 21c5edf5be..d0dd6fcd02 100644 --- a/apps/mobile/src/app/mcp-servers/installation/[id].tsx +++ b/apps/mobile/src/app/mcp-servers/installation/[id].tsx @@ -158,7 +158,11 @@ export default function McpInstallationDetailScreen() { > {/* Header */} - + {installation.display_name || installation.name} diff --git a/apps/mobile/src/app/mcp-servers/template/[id].tsx b/apps/mobile/src/app/mcp-servers/template/[id].tsx index 1bc61b2e92..78e138c19a 100644 --- a/apps/mobile/src/app/mcp-servers/template/[id].tsx +++ b/apps/mobile/src/app/mcp-servers/template/[id].tsx @@ -121,7 +121,11 @@ export default function McpTemplateDetailScreen() { }} > - + {template.name} diff --git a/apps/mobile/src/features/mcp/components/McpServerRow.tsx b/apps/mobile/src/features/mcp/components/McpServerRow.tsx index a2526fa348..0cfd05775f 100644 --- a/apps/mobile/src/features/mcp/components/McpServerRow.tsx +++ b/apps/mobile/src/features/mcp/components/McpServerRow.tsx @@ -16,7 +16,8 @@ interface McpServerRowProps { isStdio?: boolean; needsReauth?: boolean; installed?: boolean; - iconKey?: string | null; + iconDomain?: string | null; + serverUrl?: string | null; onPress: () => void; } @@ -35,7 +36,8 @@ export function McpServerRow({ isStdio, needsReauth, installed, - iconKey, + iconDomain, + serverUrl, onPress, }: McpServerRowProps) { const themeColors = useThemeColors(); @@ -46,7 +48,7 @@ export function McpServerRow({ onPress={onPress} className="flex-row items-center gap-3 border-gray-5 border-b bg-card px-4 py-3 active:bg-gray-2" > - + onPress(template), }; } @@ -137,7 +140,8 @@ export function installationToRowProps( isStdio: isStdioServer(installation), needsReauth: installation.needs_reauth, installed: true, - iconKey: installation.icon_key, + iconDomain: installation.icon_domain, + serverUrl: installation.url, onPress: () => onPress(installation), }; } diff --git a/apps/mobile/src/features/mcp/components/ServerIcon.tsx b/apps/mobile/src/features/mcp/components/ServerIcon.tsx index f0fe08ef5d..ccfb78feb7 100644 --- a/apps/mobile/src/features/mcp/components/ServerIcon.tsx +++ b/apps/mobile/src/features/mcp/components/ServerIcon.tsx @@ -1,35 +1,73 @@ +import { useColorScheme } from "nativewind"; import { PuzzlePiece } from "phosphor-react-native"; +import { useState } from "react"; import { Image, View } from "react-native"; +import { useAuthStore } from "@/features/auth"; import { useThemeColors } from "@/lib/theme"; -import { resolveServerLogo } from "./serverIcons"; +import { iconDomainFromServerUrl } from "../iconDomain"; interface ServerIconProps { - iconKey?: string | null; + /** The template's brand domain (`icon_domain`). Falls back to deriving one from serverUrl. */ + iconDomain?: string | null; + /** The MCP server URL — lets custom installs without a template still get a brand icon. */ + serverUrl?: string | null; size?: number; className?: string; } /** - * Renders the brand logo for an MCP server, keyed by `icon_key` from the - * PostHog cloud schema. Falls back to a generic plug glyph when the icon - * key is missing or doesn't match the bundled set. + * Renders the brand logo for an MCP server through the authenticated logo.dev + * icon proxy (`mcp_servers/icon/`), keyed by the template's `icon_domain` with + * a best-effort domain derived from the server URL as fallback. Falls back to + * a generic plug glyph when no domain resolves or the proxy has no icon (404). */ -export function ServerIcon({ iconKey, size = 32, className }: ServerIconProps) { +export function ServerIcon({ + iconDomain, + serverUrl, + size = 32, + className, +}: ServerIconProps) { const themeColors = useThemeColors(); - const logo = resolveServerLogo(iconKey); + const { colorScheme } = useColorScheme(); + const oauthAccessToken = useAuthStore((state) => state.oauthAccessToken); + const cloudRegion = useAuthStore((state) => state.cloudRegion); + const projectId = useAuthStore((state) => state.projectId); + const getCloudUrlFromRegion = useAuthStore( + (state) => state.getCloudUrlFromRegion, + ); + + const domain = iconDomain || iconDomainFromServerUrl(serverUrl); + // logo.dev picks the logo variant suited to the active background theme. + const theme = colorScheme === "dark" ? "dark" : "light"; + // Failure latches per (domain, theme) — the unit the request URL varies + // over — so a transient failure in one theme doesn't blank the other and a + // theme flip retries. + const iconCacheKey = `${domain}|${theme}`; + const [failedIconKey, setFailedIconKey] = useState(null); + + const iconUrl = + domain && + oauthAccessToken && + cloudRegion && + projectId && + failedIconKey !== iconCacheKey + ? `${getCloudUrlFromRegion(cloudRegion)}/api/environments/${projectId}/mcp_servers/icon/?domain=${encodeURIComponent(domain)}&theme=${theme}` + : null; return ( - {logo?.kind === "svg" && typeof logo.component === "function" ? ( - - ) : logo?.kind === "png" ? ( + {iconUrl ? ( setFailedIconKey(iconCacheKey)} /> ) : ( `. -const AiropsPng: ImageSourcePropType = require("../../../../assets/services/airops.png"); -const AttioPng: ImageSourcePropType = require("../../../../assets/services/attio.png"); -const CirclePng: ImageSourcePropType = require("../../../../assets/services/circle.png"); -const CiscoThousandeyesPng: ImageSourcePropType = require("../../../../assets/services/cisco_thousandeyes.png"); -const LaunchDarklyPng: ImageSourcePropType = require("../../../../assets/services/launchdarkly.png"); -const SlackPng: ImageSourcePropType = require("../../../../assets/services/slack.png"); -const StripePng: ImageSourcePropType = require("../../../../assets/services/stripe.png"); -const SveltePng: ImageSourcePropType = require("../../../../assets/services/svelte.png"); -const WixPng: ImageSourcePropType = require("../../../../assets/services/wix.png"); - -export type ServerLogo = - | { kind: "svg"; component: ComponentType } - | { kind: "png"; source: ImageSourcePropType }; - -function svg(component: ComponentType): ServerLogo { - if (typeof component !== "function") { - log.warn("SVG import resolved as non-component", { - type: typeof component, - }); - } - return { kind: "svg", component }; -} - -function png(source: ImageSourcePropType): ServerLogo { - return { kind: "png", source }; -} - -/** Lookup map keyed by `McpServerInstallation.icon_key` / - * `McpRecommendedServer.icon_key`. Mirrors the desktop `BRAND_ICONS`. */ -export const SERVER_LOGOS: Record = { - airops: png(AiropsPng), - atlassian: svg(AtlassianSvg), - attio: png(AttioPng), - box: svg(BoxSvg), - browserbase: svg(BrowserbaseSvg), - canva: svg(CanvaSvg), - circle: png(CirclePng), - cisco_thousandeyes: png(CiscoThousandeyesPng), - clerk: svg(ClerkSvg), - clickhouse: svg(ClickHouseSvg), - cloudflare: svg(CloudflareSvg), - context7: svg(Context7Svg), - datadog: svg(DatadogSvg), - figma: svg(FigmaSvg), - firetiger: svg(FiretigerSvg), - github: svg(GitHubSvg), - gitlab: svg(GitLabSvg), - granola: svg(GranolaSvg), - hex: svg(HexSvg), - hubspot: svg(HubSpotSvg), - launchdarkly: png(LaunchDarklyPng), - linear: svg(LinearSvg), - mem0: svg(Mem0Svg), - monday: svg(MondaySvg), - neon: svg(NeonSvg), - notion: svg(NotionSvg), - pagerduty: svg(PagerDutySvg), - planetscale: svg(PlanetScaleSvg), - postman: svg(PostmanSvg), - prisma: svg(PrismaSvg), - render: svg(RenderSvg), - sanity: svg(SanitySvg), - sentry: svg(SentrySvg), - slack: png(SlackPng), - stripe: png(StripePng), - supabase: svg(SupabaseSvg), - svelte: png(SveltePng), - wix: png(WixPng), -}; - -export function resolveServerLogo( - iconKey: string | null | undefined, -): ServerLogo | null { - if (!iconKey) return null; - return SERVER_LOGOS[iconKey] ?? null; -} diff --git a/apps/mobile/src/features/mcp/iconDomain.test.ts b/apps/mobile/src/features/mcp/iconDomain.test.ts new file mode 100644 index 0000000000..9cdcffb786 --- /dev/null +++ b/apps/mobile/src/features/mcp/iconDomain.test.ts @@ -0,0 +1,36 @@ +import { describe, expect, it } from "vitest"; +import { iconDomainFromServerUrl } from "./iconDomain"; + +// Mirrors packages/core/src/mcp-servers/iconDomain.test.ts — the helper is +// duplicated because mobile doesn't depend on @posthog/core. +describe("iconDomainFromServerUrl", () => { + it.each([ + ["strips mcp. from deep hosts", "https://mcp.linear.app/sse", "linear.app"], + ["strips api. from deep hosts", "https://api.acme.com/mcp", "acme.com"], + ["strips www. from deep hosts", "https://www.acme.com/mcp", "acme.com"], + ["keeps bare brand domains", "https://notion.com/mcp", "notion.com"], + [ + "keeps two-label hosts named like a prefix", + "https://mcp.com/x", + "mcp.com", + ], + [ + "keeps unrelated subdomains", + "https://server.smithery.ai/mcp", + "server.smithery.ai", + ], + ["lowercases the host", "https://MCP.Linear.APP/sse", "linear.app"], + ])("%s", (_name, url, expected) => { + expect(iconDomainFromServerUrl(url)).toBe(expected); + }); + + it.each([ + ["null", null], + ["undefined", undefined], + ["an empty string", ""], + ["a non-URL", "not a url"], + ["a dotless host", "https://localhost:3000/mcp"], + ])("returns null for %s", (_name, url) => { + expect(iconDomainFromServerUrl(url)).toBeNull(); + }); +}); diff --git a/apps/mobile/src/features/mcp/iconDomain.ts b/apps/mobile/src/features/mcp/iconDomain.ts new file mode 100644 index 0000000000..a5c5f89265 --- /dev/null +++ b/apps/mobile/src/features/mcp/iconDomain.ts @@ -0,0 +1,33 @@ +// Mirrors `@posthog/core/mcp-servers/iconDomain` (mobile doesn't depend on +// @posthog/core, same as the hand-mirrored types in ./types.ts). + +// Machine-facing subdomains stripped when deriving a brand domain from a +// server URL, so a custom install at https://mcp.linear.app/mcp still +// resolves the vendor's brand (linear.app). +const STRIPPED_SUBDOMAINS = ["mcp.", "api.", "www."]; + +/** + * Best-effort brand domain for an MCP server without a template-provided + * `icon_domain`: the server URL's hostname with machine-facing subdomains + * stripped. Null when no plausible brand domain exists (invalid URL, or a + * dotless host like localhost). + */ +export function iconDomainFromServerUrl( + serverUrl: string | null | undefined, +): string | null { + if (!serverUrl) { + return null; + } + let host: string; + try { + host = new URL(serverUrl).hostname.toLowerCase(); + } catch { + return null; + } + for (const prefix of STRIPPED_SUBDOMAINS) { + if (host.startsWith(prefix) && host.split(".").length >= 3) { + return host.slice(prefix.length); + } + } + return host.includes(".") ? host : null; +} diff --git a/apps/mobile/src/features/mcp/types.ts b/apps/mobile/src/features/mcp/types.ts index b8cdb4c439..74f259ef0c 100644 --- a/apps/mobile/src/features/mcp/types.ts +++ b/apps/mobile/src/features/mcp/types.ts @@ -15,7 +15,9 @@ export interface McpRecommendedServer { docs_url?: string; description?: string; auth_type?: McpAuthType; - icon_key?: string; + /** The vendor's brand domain (e.g. "linear.app"), rendered via the + * logo.dev icon proxy. Empty when no brand icon is known. */ + icon_domain?: string; category?: string; /** Some templates expose a `transport_type` ("stdio" | "streamable_http"); when * absent, treat as HTTP. Stdio servers can't run on mobile; we badge them. */ @@ -27,7 +29,9 @@ export interface McpServerInstallation { id: string; template_id: string | null; name: string; - icon_key: string; + /** Brand domain from the linked template, rendered via the logo.dev icon + * proxy. Empty if custom install (no template). */ + icon_domain?: string; display_name?: string; url?: string; description?: string; diff --git a/packages/api-client/src/generated.ts b/packages/api-client/src/generated.ts index 4f16fdb00c..fc57711b82 100644 --- a/packages/api-client/src/generated.ts +++ b/packages/api-client/src/generated.ts @@ -9711,7 +9711,10 @@ export namespace Schemas { id: string; template_id: string | null; name: string; + /** Deprecated: use icon_domain instead. Lowercase key from the linked template for clients that still render bundled icon assets. Empty if custom install (no template). */ icon_key: string; + /** Brand domain from the linked template, rendered via the logo.dev icon proxy. Empty if custom install (no template). */ + icon_domain: string; display_name?: string | undefined; url?: string | undefined; description?: string | undefined; @@ -9744,7 +9747,10 @@ export namespace Schemas { docs_url?: string | undefined; description?: string | undefined; auth_type?: MCPAuthTypeEnum | undefined; - icon_key?: string | undefined; + /** Deprecated: use icon_domain instead. Lowercase key for clients that still render bundled icon assets. */ + icon_key: string; + /** The vendor's brand domain (e.g. 'linear.app'), resolved to an icon at render time via the logo.dev proxy endpoint. Empty when no brand icon is known. */ + icon_domain: string; category?: CategoryEnum | undefined; }; export type MarkToleratedInput = { snapshot_id: string }; diff --git a/packages/api-client/src/posthog-client.test.ts b/packages/api-client/src/posthog-client.test.ts index 927fd90fc2..9eb76b1cfe 100644 --- a/packages/api-client/src/posthog-client.test.ts +++ b/packages/api-client/src/posthog-client.test.ts @@ -1,4 +1,5 @@ import { describe, expect, it, vi } from "vitest"; +import { ApiRequestError } from "./fetcher"; import { PostHogAPIClient } from "./posthog-client"; describe("PostHogAPIClient", () => { @@ -1763,4 +1764,70 @@ describe("PostHogAPIClient", () => { }); }); }); + + describe("getMcpServerIconUrl", () => { + function makeClient(fetch: ReturnType) { + const client = new PostHogAPIClient( + "http://localhost:8000", + async () => "token", + async () => "token", + 123, + ); + ( + client as unknown as { + api: { baseUrl: string; fetcher: { fetch: typeof fetch } }; + } + ).api = { baseUrl: "http://localhost:8000", fetcher: { fetch } }; + return client; + } + + it("requests the icon proxy and returns an object URL for the bytes", async () => { + const fetch = vi + .fn() + .mockResolvedValue( + new Response(new Blob(["png"], { type: "image/png" })), + ); + const client = makeClient(fetch); + + const url = await client.getMcpServerIconUrl("linear.app", "dark"); + + expect(url).toMatch(/^blob:/); + expect(fetch.mock.calls[0][0].url.toString()).toBe( + "http://localhost:8000/api/environments/123/mcp_servers/icon/?domain=linear.app&theme=dark", + ); + }); + + it("omits the theme param when none is given", async () => { + const fetch = vi + .fn() + .mockResolvedValue( + new Response(new Blob(["png"], { type: "image/png" })), + ); + const client = makeClient(fetch); + + await client.getMcpServerIconUrl("linear.app"); + + expect(fetch.mock.calls[0][0].url.toString()).toBe( + "http://localhost:8000/api/environments/123/mcp_servers/icon/?domain=linear.app", + ); + }); + + it("treats the proxy's 404 as a definitive no-icon null, not a failure", async () => { + const fetch = vi.fn().mockRejectedValue(new ApiRequestError(404, "{}")); + const client = makeClient(fetch); + + await expect( + client.getMcpServerIconUrl("no-logo.example"), + ).resolves.toBeNull(); + }); + + it("propagates non-404 failures so callers can retry", async () => { + const fetch = vi.fn().mockRejectedValue(new ApiRequestError(500, "{}")); + const client = makeClient(fetch); + + await expect(client.getMcpServerIconUrl("linear.app")).rejects.toThrow( + "Failed request: [500]", + ); + }); + }); }); diff --git a/packages/api-client/src/posthog-client.ts b/packages/api-client/src/posthog-client.ts index bc33a43596..e4d994957b 100644 --- a/packages/api-client/src/posthog-client.ts +++ b/packages/api-client/src/posthog-client.ts @@ -96,7 +96,7 @@ import { type HogQLGrid, shapeAgentAnalytics, } from "./agent-analytics"; -import { buildApiFetcher } from "./fetcher"; +import { buildApiFetcher, requestErrorStatus } from "./fetcher"; import { createApiClient, type Schemas } from "./generated"; import type { SpendAnalysisResponse } from "./spend-analysis"; export interface ApiClientLogger { @@ -4200,6 +4200,40 @@ export class PostHogAPIClient { return data.results ?? []; } + /** + * Object URL for an MCP server's brand icon, proxied from logo.dev by the + * authenticated `mcp_servers/icon/` endpoint. Returns null when no brand + * icon exists for the domain (the endpoint 404s so callers render their own + * fallback glyph, e.g. on self-hosted instances without a logo.dev token). + */ + async getMcpServerIconUrl( + domain: string, + theme?: "light" | "dark", + ): Promise { + const teamId = await this.getTeamId(); + const path = `/api/environments/${teamId}/mcp_servers/icon/`; + const url = new URL(`${this.api.baseUrl}${path}`); + url.searchParams.set("domain", domain); + if (theme) { + url.searchParams.set("theme", theme); + } + let response: Response; + try { + response = await this.api.fetcher.fetch({ + method: "get", + url, + path, + }); + } catch (error) { + // 404 is the endpoint's definitive "no icon for this domain" answer, + // not a failure; anything else propagates so callers can retry. + if (requestErrorStatus(error) === 404) return null; + throw error; + } + const blob = await response.blob(); + return URL.createObjectURL(blob); + } + async getMcpServerInstallations(): Promise { const teamId = await this.getTeamId(); const url = new URL( diff --git a/packages/core/src/mcp-servers/iconDomain.test.ts b/packages/core/src/mcp-servers/iconDomain.test.ts new file mode 100644 index 0000000000..b32786a330 --- /dev/null +++ b/packages/core/src/mcp-servers/iconDomain.test.ts @@ -0,0 +1,34 @@ +import { describe, expect, it } from "vitest"; +import { iconDomainFromServerUrl } from "./iconDomain"; + +describe("iconDomainFromServerUrl", () => { + it.each([ + ["strips mcp. from deep hosts", "https://mcp.linear.app/sse", "linear.app"], + ["strips api. from deep hosts", "https://api.acme.com/mcp", "acme.com"], + ["strips www. from deep hosts", "https://www.acme.com/mcp", "acme.com"], + ["keeps bare brand domains", "https://notion.com/mcp", "notion.com"], + [ + "keeps two-label hosts named like a prefix", + "https://mcp.com/x", + "mcp.com", + ], + [ + "keeps unrelated subdomains", + "https://server.smithery.ai/mcp", + "server.smithery.ai", + ], + ["lowercases the host", "https://MCP.Linear.APP/sse", "linear.app"], + ])("%s", (_name, url, expected) => { + expect(iconDomainFromServerUrl(url)).toBe(expected); + }); + + it.each([ + ["null", null], + ["undefined", undefined], + ["an empty string", ""], + ["a non-URL", "not a url"], + ["a dotless host", "https://localhost:3000/mcp"], + ])("returns null for %s", (_name, url) => { + expect(iconDomainFromServerUrl(url)).toBeNull(); + }); +}); diff --git a/packages/core/src/mcp-servers/iconDomain.ts b/packages/core/src/mcp-servers/iconDomain.ts new file mode 100644 index 0000000000..8f7506c0ca --- /dev/null +++ b/packages/core/src/mcp-servers/iconDomain.ts @@ -0,0 +1,30 @@ +// Machine-facing subdomains stripped when deriving a brand domain from a +// server URL, so a custom install at https://mcp.linear.app/mcp still +// resolves the vendor's brand (linear.app). +const STRIPPED_SUBDOMAINS = ["mcp.", "api.", "www."]; + +/** + * Best-effort brand domain for an MCP server without a template-provided + * `icon_domain`: the server URL's hostname with machine-facing subdomains + * stripped. Null when no plausible brand domain exists (invalid URL, or a + * dotless host like localhost). + */ +export function iconDomainFromServerUrl( + serverUrl: string | null | undefined, +): string | null { + if (!serverUrl) { + return null; + } + let host: string; + try { + host = new URL(serverUrl).hostname.toLowerCase(); + } catch { + return null; + } + for (const prefix of STRIPPED_SUBDOMAINS) { + if (host.startsWith(prefix) && host.split(".").length >= 3) { + return host.slice(prefix.length); + } + } + return host.includes(".") ? host : null; +} diff --git a/packages/core/src/mcp-servers/resolveServerName.test.ts b/packages/core/src/mcp-servers/resolveServerName.test.ts index 2960eecc37..93d5a76459 100644 --- a/packages/core/src/mcp-servers/resolveServerName.test.ts +++ b/packages/core/src/mcp-servers/resolveServerName.test.ts @@ -16,7 +16,7 @@ function installation( id: "inst-1", template_id: null, name: "", - icon_key: "", + icon_domain: "", proxy_url: "https://proxy.example.com/inst-1", tool_count: 0, created_at: "2026-01-01T00:00:00Z", @@ -59,19 +59,33 @@ describe("resolveServerName", () => { describe("resolveServerDetails", () => { it("resolves description/docs/icon/auth fallbacks", () => { const out = resolveServerDetails( - installation({ name: "N", icon_key: "" }), + installation({ + name: "N", + icon_domain: "", + url: "https://mcp.acme.dev/mcp", + }), template({ description: "desc", docs_url: "https://docs", - icon_key: "k", + icon_domain: "linear.app", }), ); expect(out.name).toBe("N"); expect(out.description).toBe("desc"); expect(out.docsUrl).toBe("https://docs"); - expect(out.iconKey).toBe("k"); + expect(out.iconDomain).toBe("linear.app"); + expect(out.serverUrl).toBe("https://mcp.acme.dev/mcp"); expect(out.authType).toBe("oauth"); }); + + it("falls back to the template url when the installation has none", () => { + const out = resolveServerDetails( + null, + template({ icon_domain: "", url: "https://mcp.linear.app/sse" }), + ); + expect(out.iconDomain).toBeNull(); + expect(out.serverUrl).toBe("https://mcp.linear.app/sse"); + }); }); describe("sortInstallationsByName", () => { diff --git a/packages/core/src/mcp-servers/resolveServerName.ts b/packages/core/src/mcp-servers/resolveServerName.ts index f63e540b1e..e7facc61da 100644 --- a/packages/core/src/mcp-servers/resolveServerName.ts +++ b/packages/core/src/mcp-servers/resolveServerName.ts @@ -20,7 +20,8 @@ export interface ResolvedServerDetails { name: string; description: string; docsUrl: string | null; - iconKey: string | null; + iconDomain: string | null; + serverUrl: string | null; authType: McpRecommendedServer["auth_type"] | undefined; } @@ -37,7 +38,8 @@ export function resolveServerDetails( "Server", description: installation?.description || template?.description || "", docsUrl: template?.docs_url || null, - iconKey: installation?.icon_key || template?.icon_key || null, + iconDomain: installation?.icon_domain || template?.icon_domain || null, + serverUrl: installation?.url || template?.url || null, authType: installation?.auth_type || template?.auth_type, }; } diff --git a/packages/core/src/mcp-servers/status.test.ts b/packages/core/src/mcp-servers/status.test.ts index 8b6d02c9ca..23bb277a1b 100644 --- a/packages/core/src/mcp-servers/status.test.ts +++ b/packages/core/src/mcp-servers/status.test.ts @@ -10,6 +10,7 @@ function makeInstallation( template_id: null, name: "Test", icon_key: "", + icon_domain: "", proxy_url: "https://proxy.example.com/inst-1", tool_count: 0, created_at: "2026-01-01T00:00:00Z", diff --git a/packages/ui/src/assets/services/airops.png b/packages/ui/src/assets/services/airops.png deleted file mode 100644 index a70365de09598465a48338d11b33f07e5a062b07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4354 zcmeHL`#;l<_kRsVb17Y1=28i1E)^Rhw_;LE#pc>3EXG46MNh0M@a9P zP5L@!o=?v$vZ(mbG*9Nb;VCrbLd3Y~G6`rc=7<16(m<@22=HAF1Q;R!AmxANf7Fd} z@eiY?d~9d42~Kjx8yieL!8D)4Wn~&iZTt>i<2MEW`BSw(+y?vh-=Rs5wyoa zeN2W?uK3>lu==BBUJ{YBkU6uWtJS$`E12(#-Ds2qQ2o|EW{M?S3q7X-+1XKQfvkLT zb@|Vr5iYB8yNxJ9Auz`G``FVBZZ6SWqL6aLPz|r`L{4Jc@sw%0@`uj!yo#REz6N_f z)bI*yVv)Y|=z^E8e&5su_Mc^APE}<*E*!s7r zmKJ%BM`;|pcdgGJ0+-vcy6aVy0b}=42phL+4~S^Wnn0m>C$YFcnzE+SDGM>iWY^WmsbnmSc&d>Q_{VTlkMv7^9v02G z!|PpTe4l1O=zi__oX}t{^)+<7BrFgpePz@b?i(n%J#tW_y!6tHK)1+ts?j(2(y-v0 zxj?Vu-jT|_bWk4RRSq-(+$<Dnd_qrdS(Y96;Q3N+;H=fB9|Kb7^1?rg#zKS0ZGs!Z`WBLA^oWq-^5xl!WuSijux`#jj23?2hQ_-9-s!qka~pB&^!m*Zcph z?d;8)qBf6@zSt(PS7&&-{)@oD^lU*u_oyvzIWRwht@On^2%c*-F9+jP-+HeJ8h`2y zl+Lh8OHEk(Lfx2q^HxuNBhT`XYnwl+_F#@N_Z!wK778=CA!&zSqts#Of3|PaYSy>6 zZKqfU^FJ0?(f8qY!7|1Y%XO*-!euk%p5d;2OI_&w@lPPmO3jl-UnGhEla+>s`^5!6 z_687(rd0I;O$saCt`Y z`-E$oYt!eyLVY*6E`y)z=V^h)c8LOeBnYN*y0~f$!?h?2UN=+5QRFytJ1` zQ9FFi8{}Zyl2QCmZ+}$kE(seb0Q-H@CVAUYQuI>$exVE+9Z~`zD#5a{)>o@NtSDId z|4$10D>wbn$u(C0A93*A65qUvv6p_6-d~Qmb2 z=6wZdKV&OTV?@Wq)P;7Y&#$CsNh{z}iymp;;-vsyBr0tW&=t|PB`NtH{#0qW>J041 zKcWFrpERUq1Cj;{2bea@v%6If0Iu3T7U}Db_eC!TeHwqlG6P4p`mNN?HA(DxJgO1v z5SJzfnAEsPVmB3Dx8nHWsX{P*!>~@p1G*f#-zENWO5(cC1EBKjJf(BQn}Z!*Bg{vL zI?uvgZEJ2tE8^!W5FiJ2WXQJMV@qK6VKuX-SP9kdZk}yYHaP3QZM{q`Z1|()rHLtf zeos}X6?ewZ_Rt^ZgNgnj&IW}pi6So)Kq@-&8G>+DKf?J#udF2ov;Nk3b% z^fW&^YwEazJV>>*K$KMTKG5n~Du6!3H;>EA{k1)N|MHM`;rlK}wcj#%WMSz~7%Y7<}c*P87d9Zcmiyq+YkB9zWvtw<$nid?5?)xLsp)&H*OMA4LjRNFi;GucU|} zT2F7F=vNQj0i4xVKYm_5yDf{%5vVwJd-7Jx#JZ446CIr^eCVkSpc3+q0RuT39{5o@ ziSwi-jj)aFcq&h;sT+jgum(pVn2(5g=5N8HhxlUv)t%hS`CAwiE8SsaGo&ZThz%*& z8yh;)98nT+PO>fZAuD%O@cJynsXhFGDbORQyj%W-0!~crp|G)6w)HcQdW33=74qL$ z7~)O594m&^S4kdAU$=}Lxne-MReFgJ@~HLJugBOPOEW^KQ9m=!Jp$owT?ioK71?R+ zs(Bszx>qc(i=*5FZ^PL?w1i-cz?#uU8*-41yA)xzy{f;BMuoVO2zdTk@ZFDU)(T+e zGoAgczuP@U2Ip|+y2n3d{YAu32sPDx}CQ8x*GF32>n3{@GN zN{bY!9OkOg5@hW%u7_XnC24h@tnY$p^>Cf+N0Etnj2Q2k5gujnktvLz-TltfS@y9`aK&1b2na~DdO|Ft|)fZd5hrSdHnUY zN0G>5$ek+nYOPe+lU`rkM-)=5`-AKa6w|Lsm^>R)`lmwbWMDF8ll1%#H}053kjOo&cq)Hj(+!@3?(`mgLV`xQyX9_0ctzG_*#gc= zb12&$SjP(C*KOxft2_qFo9Dt6R4DEzRbuohS$(dj_xlkZ5OhI#GtMOV$o*b2zUcd4 zw0>Pd&x+2y5(Fr#y^g(Q4H3*Y(b<*gYtBZTDrS+lP+nvM&SDoGcZHVje4d4Rm^HU0 zt`IT&ZJ|)weDrAE%I1WgzNU2T#?2yeBsYbgQaRKf_M|Yjs9x9&V_W8QCcK+bzJgOJ z^KTyeg0EjiT}RJY4z10Ieu7NqMx^o$9a)80%Db}O6v4^>=Dwkj`Du@#LPrzn!u+Be zQ`%j+mZCLIUg2@En71x=?I(bS6y_!gIl#LEkFxO(5xwU;MkcL}>NPf1@6#X%o(=Wk zXYoxS#L>#y0#+83zFtrBSpy>nHdA3dmfLUDSIT8s1c?heK-l?;DGl?Z!KX;xL+Q>3 z&{c53yR`8Nv5Z=CgoQ^FA}?vhVTntxz1~iwJm8Rh-Su86sL292enw&JJ(SweV=O0S z`~yPf^sjtblZ*aOlGIGV3twv0auu~460F)N1$@^#{O8Qpq2&@8XSFExJOl`}Fo9MZ za^<|0$~hBmnhmA@MMQB@w6%K>prIRvtGB0?W12{vm!FU;UJ{C`-LleM`j$w}zIg^m zj&<`5{1;|@kYosaW9tZ|}~ECo7A2c4YQd zd(+TmKJx^;)@TeVF*+G7NctQRcKTIk75n~`gJBV78y;Q8@+kH2lehcVhue{Zs`bLy zWQ@PRoN+XRmJen3Z7_Pv0!rKt)qJeumIp&*oVJkkk7^Vnhmh$sUSOaXnrSc2#j#fg zi&A${JmuUnV@`MenocarI#}a+kFsm~HLRnFlE3XBR=Rw1acQOs6Re-6 zZVzTBy}0XmOWUatWz)8Z90b4L`V5I0Cf@2-vP?)2v5elEROcz0M`j7z3e zqbS%ZEh^$^A~aI7Qe~5)&t-E$u0@+P5>DCSPTY7QCwb7sfqdYvMU76~gd-Y|7Q}Jr zNcnwkfN5D{YXB$ClsF&<>gI8f;FN zCOJo(J4K+oQV(=YzY5Z7{^^+e)JRAO2qxplg#bDE{~fRY#oK+&Y*kAooFkp;w)3(8 NY^;!$ug`hh`#)7p&@uo3 diff --git a/packages/ui/src/assets/services/atlassian.svg b/packages/ui/src/assets/services/atlassian.svg deleted file mode 100644 index 8a9e9f402e..0000000000 --- a/packages/ui/src/assets/services/atlassian.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/packages/ui/src/assets/services/attio.png b/packages/ui/src/assets/services/attio.png deleted file mode 100644 index 6065fbe8977e185e775589bc4313a877b28e2cc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5158 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 Tfh0iFc3+u%&+^{`Og8=>h#V>m diff --git a/packages/ui/src/assets/services/box.svg b/packages/ui/src/assets/services/box.svg deleted file mode 100644 index 5eec50e55d..0000000000 --- a/packages/ui/src/assets/services/box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/ui/src/assets/services/browserbase.svg b/packages/ui/src/assets/services/browserbase.svg deleted file mode 100644 index 5a168aa0ef..0000000000 --- a/packages/ui/src/assets/services/browserbase.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/packages/ui/src/assets/services/canva.svg b/packages/ui/src/assets/services/canva.svg deleted file mode 100644 index 938fcd63e0..0000000000 --- a/packages/ui/src/assets/services/canva.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/ui/src/assets/services/circle.png b/packages/ui/src/assets/services/circle.png deleted file mode 100644 index a020b87f5ac5974cc88647b3d4a4f2a8f561f092..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35647 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 - - - - - - diff --git a/packages/ui/src/assets/services/clickhouse.svg b/packages/ui/src/assets/services/clickhouse.svg deleted file mode 100644 index 6484dc6b01..0000000000 --- a/packages/ui/src/assets/services/clickhouse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/ui/src/assets/services/cloudflare.svg b/packages/ui/src/assets/services/cloudflare.svg deleted file mode 100644 index 11ff6493a9..0000000000 --- a/packages/ui/src/assets/services/cloudflare.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/packages/ui/src/assets/services/context7.svg b/packages/ui/src/assets/services/context7.svg deleted file mode 100644 index 664bf9d94a..0000000000 --- a/packages/ui/src/assets/services/context7.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/packages/ui/src/assets/services/datadog.svg b/packages/ui/src/assets/services/datadog.svg deleted file mode 100644 index bb83b63370..0000000000 --- a/packages/ui/src/assets/services/datadog.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/packages/ui/src/assets/services/figma.svg b/packages/ui/src/assets/services/figma.svg deleted file mode 100644 index 5c8bb0d731..0000000000 --- a/packages/ui/src/assets/services/figma.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/ui/src/assets/services/firetiger.svg b/packages/ui/src/assets/services/firetiger.svg deleted file mode 100644 index d9c1a670f6..0000000000 --- a/packages/ui/src/assets/services/firetiger.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/packages/ui/src/assets/services/github.svg b/packages/ui/src/assets/services/github.svg deleted file mode 100755 index 4f46bf3571..0000000000 --- a/packages/ui/src/assets/services/github.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/packages/ui/src/assets/services/gitlab.svg b/packages/ui/src/assets/services/gitlab.svg deleted file mode 100644 index e0e22ac32e..0000000000 --- a/packages/ui/src/assets/services/gitlab.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - Group - Created with Sketch. - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/packages/ui/src/assets/services/granola.svg b/packages/ui/src/assets/services/granola.svg deleted file mode 100644 index e7d62b1455..0000000000 --- a/packages/ui/src/assets/services/granola.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/packages/ui/src/assets/services/hex.svg b/packages/ui/src/assets/services/hex.svg deleted file mode 100644 index f9aeebe334..0000000000 --- a/packages/ui/src/assets/services/hex.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/ui/src/assets/services/hubspot.svg b/packages/ui/src/assets/services/hubspot.svg deleted file mode 100644 index 9423b8af9e..0000000000 --- a/packages/ui/src/assets/services/hubspot.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - Group 29 - Created with Sketch. - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/packages/ui/src/assets/services/launchdarkly.png b/packages/ui/src/assets/services/launchdarkly.png deleted file mode 100644 index 75a86dda1b3abbee4a9ea31834d0ced2a7b6d6fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5230 zcmds*=|7b3+sB8Bu`?lL8%^dL#$L9BLB_5zDO-dPvS!Iz8rd0SCtH@umTcooBugaw zk_pKO*&{Rv_u22h|AG7IZ(gst9$d@09>@FhIge-)BOMk-K1K)x!lH}O!a^W4Jb(XC zT5t!t7CHria9-Bc(!d4etj&ZNoc(?3gO}bT$>RL0=Weja_V{p!b~tIvX5u2_SP)q( zxucl|)2DMp<@#_XGLmH3qmFys_k^Jt_ul1{4HI#}Xi;}%q_JfP?L97u!XcYCmItfs zA9oKPY$k->36lx*Kk63RoVDI;^{>yq`sfV{B%?cRodyy|2W5B+!Jk%#plO96a2oc< z1PD|e134{>fY7qTATA~PCjaZ}YG)_1TU%MV{wY)LGGBkH_^nC7 zb3+jX#ku)JH9tSUi4#LC77IS_iakd@&&fjr_XByd?%Nxs%m9rCDS=c{_UG}onFvrP50SWRll{#o}M1KjkdnkGXhDQh#SaO*zA%E z;H>L3helf-93HN&uG$2xUsh=@K<4IObVp-ye*G9Os;a6Y*E+E^LM$l4_)cv@L&JiC zg0n~?es`L>&dbo~qJbBx*;!d)+_90C5R?}qno?G3oOh=!)VjcA@(XLwAddxw72jzs zmZ~SrZc@)okMcT=rquPNOR*{VVvumShA{is=g*d&R?<9ZihQM6IZlj=v5R0D`49$! z<>clL=BhZg7qo{7BdS(6Hm*qfVss?ai!O4*5rU+U!-n+qTUuK9xvn8tEIUkXYow7P<2i6qCr!#ySux=>TS(`NF+HJ7{paqZ}z4j zQL>V*kp$|}8oBoV{re(G&Yc%a4Kl;iBu>G%j6FOy$3XM_m1ynz0in=h^?)ye^2V_>sc5W%v%Dy zTwGq|=2}}?T6%a?chSj7OXuUnMn^{l`1yZGB&L00g!A5=`PWzT*ym9|fI;3hRU{Ir zs7R`<{WXxQlE#~8QE5iRF>y=eH(ebcA)1!fSyX05I{LCFbA0z!+U*zDgfT{dFj!t* z?(OZReUjhQv=4%0QE;R`TjA*FsN?;6XGyhtAD@E-6H*K1MRDkkKq3zoMX^7Ir+%Ulh2vX0EB(LFtOs$@#nWQJR?U<&BLhBC*MP zK@W#}9vMlWdowsBWN9F`*^Mk~V>7$B=vZ%I7>r{RygKA8KU!*B+Qw)h!UUHY{`&O} z7F%dmZf|Gj{6gNx(=#eA?$f7F%*@PdKYj>@w&;Yd5Lhilpm3R&<1W>A-Ud>C&dJz! z_c+L&8axK5oNG9qH1N*%Jf z;g5blIJmhn)2!9nZB;Zpl=q+Ut7A@2w}rJ878Vv4UzC(|AG+1f=jh=f#KE!Eecr=F z$iqMl4hFhGp@^jS#al3;GFjnC1>-IrUt7#AEW|h&i;9Zw3obAJFv0{pdPKy%(n%DQ z5!4L{IoeqsjsK!rcySbtNIp0?0GoZw+FF283O-f3FMdRDKUt;g;>FGH-E>70i zPfbn5tJ+tYl?w<6?3SJx!Kd+PVire6MzCgP6H`;?1q2>=cnsPy4Gav_)YOp4WN_t+ zFR8CjJ)Zqt@A{dOF`~S@yv8FYEkgt2I5s;QwmedNK_?*~D9AWVKAL>}G_8iM?KeP5 zIa%3GJ1-FB{{FwCTvdbiDu~2OC{+KXv8!`5FW$iqpiu2-XLSG9Qb$LJ;r?gtXf2Q^ zeQ78rHnx+)&9<9jsdH)%Q}ymSIeqvBVMED0CP-)%V^dR8@7I4Jkre5I7z99`=I7^w z$c;eHQ7B* zePg6pe|~;m=xRW|3f$}X&wi87QUaCvcrL$~1CB@oQGE2XgRR8stpHYC9pa0AKRjFm z@*Sjhx}>$9v2khGuUQZm()dmW5HZEY#eDIiqN2~p<5O?|)Qh5`i{HQF@%ZU~eOE!i z)H?RtwOp=qcx=1hLMswcB;hNlI6~PEW5bEh$jskjyH+D`VjO%X}uOkxu^(l<@@`WAzZE z`u6sA(C-ax9i8mZm>fkSE+&mm1H)fD?($cy#KdxPa^81zMCXVgp(vJcf?{Q3iNmhh#yfLv|S3Lq9(=5W=57>m!oiy;I*<%LQTY?CkvD z0m=f6X(_-G!Ry93iZb^{5RSi0`r!cIl9H?+0-(`O%F4>1QwvK=kej^IjZUms;=`3O zBFN18ceMjbOz^G0>|_&A266$$WvEv4Kp7YXuy9}(hg~eunBd(%`#vtOUH}|2GTH?x zUTJM@otTE9DGK!#*4EZXeNt^&T3SQF+)ewpee|LC<^PWB(xpe+-*s^~&VHw)?C9|Z ze3Rdwc?yLBRuNnm7e%>at#?n;(UlYz*QlyzKYR9UdV2cB3&93@J0)neA@D39*X?R< zBVfx&jic)#NhbXum~W_I5U?anC)Et9|E3|09VWB4x99HeesIx*<%dYY7f*lx(opW$ zE>WY-Ma6O#1~^Om#6;Rh+o4u;8~sX;-pT8j88+m!gDNWin6S3CwsZ1>KBO%F*iAvSbvhiF?h_c;5JFf$%%^zh-5-8^v5`bB@u~4H#V9K z+dl%d!R@sKPsg~@>qlDjFCrdNIvE-wAqG~>e(~$@jB|tNFAWc-%1-heaLNHcg{L&7 zrH*rtxfvsF+_*tQLo=2twDR$iZ|l@mX~eKqf(wgE2E>MD>gSODn^Oud9A35N;VU6qq0E+-)T?#M7_Y|`@#ap z3ExG>iY9RD76%7Mwt@#Bm}8Le$(wD^?@2&l;Nrrf<0k%b#=kixyUjod`lhtLPG(Fet`$JfGNN$ zDtKD=y%I)jczb(W)VqvNd9?MnABGcSHfGxf_tZ(WaIYj_-5ebqL4Ib)*iQ=fu^Z)G z%gxJ63`qi>7zG9iU{r2aDf{6LrqWDBQ89y>-v$tYvTSg!xA30lV_}CyzI^%8ZJIR9 zKg$-h{-qwE9ynQUF0RZs0yueoz&GH+^7DmdWRlh#FY_7Rym?bsSJ%`uB`4J^{ znNLg>0V#?*N!%PbFhwVhoxf5i!h~mhzN*=E_ z&eFZ*6cTE485ireysrIF7@_}bZ}02tyB+1#t$HqR_j;ACNsj6yVl1&WQlusK?>e`=# z5!(n@FR;~yP2GXu|eX<=;++LcTZP0TCZ5vi$~n7 z!uIE56`X?zUh8pU;@~ru^H@{U__y84($Xe2Ha1wSH_$a8v!gmNF0T5}qd@!5XzdbB zjA%_`qfL!nm&#^~{n}+SfNXQ~M?Z!NfD^?&<%rg5_FI?Td&(;&LJOBs2-;f%8xAC< zXrfRwbz*FcoqT3_3J564Yd+563>R>d8BkW%fx*E%B_GkFn{;$^0O)%gGy1>0U)2En znU$60GA33QC5(6APr~eMG;abC9%`G=&Bgp9F7E2#p)gt|YLH=KVq!ZccDT1bRqK?P z*=-N@k7IgfMqgilS?HQI$+G|?1h6&K8#&j2`3C-qXBWO6E7eNf?vv_QKme~3_w)F0 zbCejRoa70Nuw|pWxh?Lzf;%${OL5y(FO0ax4`+wZMHS{c)P487>sCdb5_l1fd7c;a@+BN zcs&!}_6DxDu!Oeh?^yvf!UY=9)YLRGG6E6=*kNyPudUtn_wdd4>0_#RsbThYpSw5* zcdD7soh)VF6@}SgO&{1Pu{V&aU~{e^aL$YU8|kIOh+}fYgY*3#_=-egH859GGBb65 zH7A=SU4$d9Wy;@&^)F@O%*+Z!^nuvVeg9q;^xNIZX^A7<&DojyJ;hi;_8;mwG$lSf zJe)uvaGY~>cD~)@U3|T$rYHZK4K!K^WRRSkoQ_r8tDfy!ku-pG4-@y>Un17eX4k`3CCw)!~m}s zT0o2Vp&b8LM!6xD`oH>m<;oR+ zkG#-><@TraWI<3ZNt9S5ynZb$B?XXGGB9A&@PW2l15~8G$^AE$qyB$&ws$9>c6f3E YVR~>o)VDzo)Da=N+D2McXxs4r0qfv+7XSbN diff --git a/packages/ui/src/assets/services/linear.svg b/packages/ui/src/assets/services/linear.svg deleted file mode 100644 index 53d625598d..0000000000 --- a/packages/ui/src/assets/services/linear.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/packages/ui/src/assets/services/mem0.svg b/packages/ui/src/assets/services/mem0.svg deleted file mode 100644 index d05ad55dd6..0000000000 --- a/packages/ui/src/assets/services/mem0.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/packages/ui/src/assets/services/monday.svg b/packages/ui/src/assets/services/monday.svg deleted file mode 100644 index c2feb2b4c0..0000000000 --- a/packages/ui/src/assets/services/monday.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/packages/ui/src/assets/services/neon.svg b/packages/ui/src/assets/services/neon.svg deleted file mode 100644 index eddf840522..0000000000 --- a/packages/ui/src/assets/services/neon.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - diff --git a/packages/ui/src/assets/services/notion.svg b/packages/ui/src/assets/services/notion.svg deleted file mode 100644 index bf6442f76a..0000000000 --- a/packages/ui/src/assets/services/notion.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/packages/ui/src/assets/services/pagerduty.svg b/packages/ui/src/assets/services/pagerduty.svg deleted file mode 100644 index 477f6bb3df..0000000000 --- a/packages/ui/src/assets/services/pagerduty.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - 216px copy - Created with Sketch. - - - - - - - - - \ No newline at end of file diff --git a/packages/ui/src/assets/services/planetscale.svg b/packages/ui/src/assets/services/planetscale.svg deleted file mode 100644 index 2f3a95c3c6..0000000000 --- a/packages/ui/src/assets/services/planetscale.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/packages/ui/src/assets/services/postman.svg b/packages/ui/src/assets/services/postman.svg deleted file mode 100644 index 87ed4ac39a..0000000000 --- a/packages/ui/src/assets/services/postman.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/packages/ui/src/assets/services/prisma.svg b/packages/ui/src/assets/services/prisma.svg deleted file mode 100644 index fbf24acc72..0000000000 --- a/packages/ui/src/assets/services/prisma.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/packages/ui/src/assets/services/render.svg b/packages/ui/src/assets/services/render.svg deleted file mode 100644 index cfb5a52e5c..0000000000 --- a/packages/ui/src/assets/services/render.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/packages/ui/src/assets/services/sanity.svg b/packages/ui/src/assets/services/sanity.svg deleted file mode 100644 index 613194b4c2..0000000000 --- a/packages/ui/src/assets/services/sanity.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/packages/ui/src/assets/services/sentry.svg b/packages/ui/src/assets/services/sentry.svg deleted file mode 100644 index d810538965..0000000000 --- a/packages/ui/src/assets/services/sentry.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/ui/src/assets/services/slack.png b/packages/ui/src/assets/services/slack.png deleted file mode 100644 index b0342108319035b8b7799a189c9f6f1df50aad61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11043 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 diff --git a/packages/ui/src/assets/services/stripe.png b/packages/ui/src/assets/services/stripe.png deleted file mode 100644 index 26850e852e7d0ca8b51078d555c76fdb7887ea17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1663 zcmaJ?jXx9k1NL?uN@j(zyGSpb2^}+jdZAXC?c`;*ybYssB>cu^q~(W<4AaZ8WJKPw z%*!=2o0l6!cVi_XgcR~JlQ?C3&+i|&=kvULKF=TUJU86k&S_~HYAPuyX<=N@p4&P3 zf2pf(yGEpm%XZ|tDBml{Ypt=$a4}w41L1ju@jgrzg)fluhKE7~~ zGapxd4B|vq!5ACID+`+@$}e&0plRbVKfljc1FC&`aDlp2c#=4bAldjSJHQd2{K3Fc(InHmtID3zWTnL=!Jd6I%WhiP8ruE+`DXuy3TDcb`P~Hqr{^*C zDdnZlFX6@f<8Ac?6I`F~Ecym|GuGxiJ^k%^q2K97?bBR1@v$|EK8eCW?Z;)*RX2*A z>IYjiwE6cO*RLXM4%>7-O0;8l;CSiZy}{jcQAs-Y8&Rv{rb7p~MtPfChM{JSx|_N1 zlq-)cGTuN&-KfrgF?I=dsOi8{3fYj(2=!4HZ4*2E;nwXwAk+oIExFBxqA#gm?|%uz#g34QVeJZG_^y?5mx@mo${)1T|R_|utTWu40wi|QdSXNo)%6hmLg2h*gG z7_AP=sgom;gZdUdy{u@dforyt4LKENov;FeJ#<;_ap-Qj0aCLJC4k>vZQ( zhL$)4^1)G8zuIaUf#4kBQy>@I^HDAehc!ZzqvYXJS(IIVeWe;_^z=yuUlf&*EeX`~ z(X-LZ`SnaI_c`h7lMNaB?s=_!)}nblTI&*bLw|zT6qHOe=?e+jw}cQqTLtsX zkx%6!^m2vE^T{KO^yZZUE+gwT^u_0_sK4MxlkpDC>`{^=5Cd2n&3%e5oSGRABOC6Y7`Qwufbn?2f`k@?G+Ov-eq_o88=ciee>4;s-XV-W6d zR+C^snicLbPRUYl-WuePO;BBUe(bA+jfd&;=}@7PjN^; zG=NgXwQax~lzx#vJ3eFPa-CN0R9o|VmBD^rK2g{s8Xx8*zVOtn`59h;lSI=7Ohq@x z^mt2Gk5M$9p-e{TqO7wwK5ezcuG(Fr@rTzUu`wlg3O|fE*|fn(&rRoqC~MAH5B%YN zR(ON8qVx|9T=Mh@hFxi&+>${=b6;-2qTCndOQa0M2l}^SC9i`bCMhS(Ib=*+mu}uW zDu(oDE@qI$$kOb7c!gH}?A%@)++?Rs9$5?x)LKYOwbzv7`MI{~@@6Po<`14i}C6 z51Ti^RV+8|Jd}JyT7$L{H+QclInJPI7fVK5{Z+4aq^Gqdea8H%ZztE$$mOZe47ZxK zTBh3XmGnC*-%5<+7Kd`vjoJo~*#f3TZ`!-;fej`0d)|LZd8`dFg`yDg-*@d!M&vtc uX&mttwo!lJs3t9%uKeqm8mp^(50s% - - - - - - - - - - - - diff --git a/packages/ui/src/assets/services/svelte.png b/packages/ui/src/assets/services/svelte.png deleted file mode 100644 index 7008ac16e6dcb055b1fc2ea9d94ad7682a90a36f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13718 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

AAeT>Xy1>o0Q6J0G}X4lq#P zj@`1|i$n95wQ2ns;^rgk@qlv+jH3VwwMnl-hEs^JzMkFEV^_vNLEF-acdI{fkh+0M zl26wTF>L*7y7xlzmds8X+X=dJ_*L6<-iA9RN*&!Eu-OX_2YUI%~`AN z=cY4k;a-&gpM;L^lQimm%Npa8>Ea+Tk96g0z$t)f-$$#F&!ml+N-c3|= zKYQnQs}CSNL)!LBExQVP}6@>A(1Qt2a&`9S<3o@*7{N+u5|eaFoWT zA|^i_K?h$G7e`_fAq?ZEQX(vi={u>lA@LEVxpk*{pGu+5>{g%mX(mNJk1Fs5RCXU` zGu&2G9`Z`Q?%feReJ(l*TSfOl5CRs$jGYh)7Rp)Ys=e=n3A>-#y!$C&T_N3Tg88XU z&Fa6g0O(H-&zmV`xB8BPL!U?wY_IQawEJUw;i%yWYO4@@>Wb=MSpN-h^h5~76H6&c zi&D2G3iM5~fFGixXMcYi5`V43%&~qQwV4M@9tOC|jk~22!Q+rnedk+h98tBhRP+nPSj1J44g))tS?&+G7Dbb~9fTB6I zA%Ss)U#6VS;qt)yo?D6gZJqGEwy^MUc*9)~0^Ut!#XI6%s^srH@hVkf?|)hiT{^{rtlYP()OySj%5Z`42j=_PgBqr;Vwua(0>UYs(K1pZ%?z{e-U z^s_b@hf|we3Npj4pfv7sn2fUfKY;7x^Exg348??%PM8JRCg7p6kZn#^2VXC6C6oJR z{`-5fdZY*syi68-98gXCeSt$g+%Z6}QABG#2c%IV`1WRX^Sn@@Hvjho-LrwI&E`Pk z?jxR|^7>~Hb;|hx5q{;*Djs0}9wf~jBqkBAl~lo+aZA_h@}L(qYO^TUPi>M?M;Mpg zX#z#~C6rzM5Mr)=pi?n_lRsUzL58U9QI!_nWMMZ7n15tJwfdaHJTiy8-XdV2$=cHU zEr0nHk0`<~1=s`EsZvG4KqbKlI#}Oo%YeO`&Ea~@3T@Wro=sE;bQo&ZW_!W%D2L0a zy!m-V&$&O~!p~3?fSo|$Ik!O=^_5CDa?|-%2ox;%G-~rCKeZ_vp4vPdys$-zlu`ch z=ZLuArhtY$4NgH60j-{76O1eYLh72f(-Len}>mCcG?poA-{77K9WO6 zkaw@I^DC?e*{9v8bkh<7emL$z;KvX3Yn>4aXfkW_fO)9R29POa^My-9$)5%3y;32< z&uHWUDvFB`btze8Q8Yb!fn7dzZVe}GX7BDM5>2Sha-ue6^H7@&z?0e>6!H|!{}Krk zrz*zSCMZ8_^es{GiKvW8rePK61qS<<*qOb$DiRGBq#tYiS(`0ERwzyzYWodvk54) z;aFdawxRgB^@#h&_e#W}r|>J6b+`xMUn|SY;JP>t5WRMVd*k<;04)9yYSE^P=LI1` zZF))YZB8!=Pq_xk_y1dITBS$0(;S+308T<8qhnBV)Nx9SX`ztF&2L`=Jbk;Fik5*# zh)|ns^}TkIq2w62m*gOE{;P_CHHz>vn#}>&HMxrm5q(9fcrU;xq(PhiSKx|!x)wDW zQq-nHS+!Mg>ElSAeXpUcenT`XT}(qoB_yMy@3HXdF<&Q%9{6A8152OnI{83|QJXb= z`k;Dg1ro3PqjKJe!p~@)1%m1Ys>({>x+GCtVXP4(wVU$1`+yt%61s&l6D~+^35wN^ z@*scSdq|lw)38>*AzG9u_5u+xaVQu!gOV6MGIbJw6gpmf9Jq6)e_d~g)d`x++Jxz5 zZ8DhJ^f@Jzk2(SPL`K4->B@Pd3qPYp55UmglFqlOJDTX_j%!H)9TXOPzrTKghnb<> z!^(Go%P$6oI@E%o*}&8$DX=42LeZ1IAYtejq0<-wfmW}S86ggZ3a)vHynv3BB=_=h zWC6XH2j8x;Atp==6=>Av6f*boE>(MNno#(e+LS3lFP<_R__!8vgGULU#t;a!dA01u zk}tXu-sE_lLLoo6+&_e@=9E#u<{{*C~qgsE9Wgc=Kbm z1&Pg^3A@o|Z3YV+QUC@IMERy45qt0Hu+x#Ww-trci;c zH#!AR4Um}zeEk;i)+<0-t~x)TyK0z~o`tbzZ3YWRqyYS1nDecg(;xPXOoSP1&!}d> zVGvL0VDG?p+>IEm5re1*HI_n^kwA|D>b_o1m+D1$yB&8ag*5rVft@7e8-eXx=rsd4 zk z90+iv!unh5KeTB${OsBI@ixlg{+~lo9zv1Y>t8T*n^WHR~f8E(ACk!sLhTb zU?aeuAb#`&yDU|)I&5yb1W#kYjNDFW^RG$`|i zh$3~&aH7_2r(&7a_AuD6sLhTeXrrSr3p_dOQyIR#eT^}LG=vfAvo?c;ppFoSLtHU- zzP=ZwQ!a-u99D81V3>J9x)Bhx5a@8QB9yHD3JHHb8=gukzgwGPbPg7^84w6l00!p; zoQBC)^nzSa2#3c~f+K-8YqRK-Ymn4MW^D!wLKT3aEvzVi`9VZ4`wM(kM3q|Jpnd4V zvo?bT;R>LE6```U1g={~k~b(IZ(!n9Cjy|%+Klv|;Ib!>Jp2DFs~;ffrT`4h8fa_uDe*^_^d9(O-)34Rb^ z7zNOvd4rz5D6LU$s=@)(8$N^P6V+#$4p1`!*3%j+^L+mlHB0Ia0;M7Q-tEY z98^E{J9JC?7O1q<_uUB~YA|GGvcrYOlb_E$lKRmjjto??CsPABEi!W(mGv7+wJyLh}kaTh~K+@iuhZw~E3e zNm|LNma%0xXTdZt%k%+zLffdO%ZH4EDR-%C?GN# z?$}gRB=tje@4*NkG8VA|h9a&VVI_xlm=TJNl-VoY++J?ANV?`Pk6tEM8)K!2JZK@bM4f~-1%(876%_HM4 zY=3gTf8V}CIo|ySt6;t)ZDGDdpm@gX*hcP25jroC+QkV8u^)%}wABT$hMc8gefQLb zv0AmZ*w7R4W`~eBTo8kbquzF)2u?7 z(40IMD6H3`hOLY2Q}2#|{RtVmXz8EI#W`J}oTe*O-BK1IbYERZ(Ecd$#{L2}QL$1l zXprHvcZ0NY4_BzR;{1#lD}vZ4g!dWt42H5O%`fmAXXQZRFV*Bs_V2-wj4NVA6?R+A z)ne&xX8G&f-T&hF06|Rty^4)eka)roo%?7Duh1H~uCzLH6uD{XsW5VB&h^Z{WZVrq zZp*UN0hwkRW91deVc8*#tiQ+FwC+u0jI zCJnW)_E^v6;1^!fbZYWF7qK1EGW-Z~tIVk9L+GZ5%T0m9elwww3R!bM1!<6*g)eyc zX=_&}9~vpsIKMAZtll|*{D_(ljciHjcu~!bcxG%rebX-`#)2T+2LAr#Cu+HS4#-K+ zIV7bX{VGz6AVW-{>o>6MFTMN}=>39t_J1Xw{Z|k{Zo2zxlCQ>hHSA0~9QI?>s>aeZ z>?6o$C*7VaJhe(6)xTUp<`wk0SjaTUF@_@wR+lW@%y3uYXdk}#+{KRgJtRKEVzyU4@|d-$raF`C%?$gKm@frv9)=(&;1^^v;J}Eg@{Ekd^!1{IFUiq_6Y;l+|BM~FYf5NhI>moKAdp;p5+N)vv(R*+~ z892gEzgQK|(70oNFH`k0+ulo4{A{+OL~1LB6a7^FMXV*y1dnb{Fn*S*);b6~YoiqE z?A9W1R+6^hmedj};^$ss)ELYVx!yqgF*B8KpqB>1p?-^#(8Q2XA%n*5Mtc-MJ9ZuGt9 z(dzhrFaO`3{4Wa#?qL^N{xR24+xd~wY^%Y%+`c|dY)`Gvp7Y9&TZ==5cO>1G`er&} zOP%M`&CJcSGBUnBZSoU6!N};+gXNlgccW9S*u10f8aslh@H@bA&a&Nu(!)m;;G)CC^(`DtD45J#)EWP4SR(%;s@812bm94Fu=)Ly# z?z@xsGp9tX2kv#mis}Tg@b#5gYV>DmDV16eYInp4MwsIF11@|nlu{3UASn1rInVyhUQc^-sSqeHQ>D|UFD0u&z zg!A{8tVS7Z(w-SUdz)5cp9=-Vr77#Zm20iM4Or5lBWzL`(``}2;x3uq_769NEjrIG zj+P5dP9;yqh}!3ox-iDlUYmV-7V&8!wjU!p;Jw4j3ooP2BM64 zWU@CYkxFiU;7i%KeCbl7hw+mVQ-cT|t@eH$W7`RzEkmd6m7fLq8v*>4-$-MpMeS_Z zJboQ7b|DTFIL2HzQ%o}*$T!9>3>9)LkklfdKc^+(sr!R}pB4MAnQt_{LuAX()hjli z+230hg`-&`3kx+xAH|Trb8>QuEvKiIyY0;%yt8g&UJ$8 zbne~2)8<13kIYBQY>yj{LVR47mL4x2>*?uf{}#fbjKkq%J(Q!bUC7y{>}~{X$AxoA zN{+reE!-+(JJPq~a!epsDT;rlLliIc^5x6g8oRyC#T#4+?#ZND37bwvhn@+qW$7;d zE@4%^4ISkkLPnoj1qdR3_5_0gkiaVI*| z&s=}3@b%8T+1yB}_17Kg{q3m)g0S=K_cxA}oxpuETK%n-C zd3*GuNInDeGMizO&82bcGP`lBNC9Iz^UgTS%lD!m?ytPYL?0HY{@$0P*Xyy=-4_}f z+MbFH^R9B;TE^RlhJ|soK3)0oZ|yIUhxLAMy6}CO8a^$#S2^T^oN*npPTAVIF*_>_ zM{{d0Q}(vpCYHG^;nW6ze3v zC^}b-Ysb)Ni1S*ixGX5x?SX$#`t_?U9$&vtS@x9=H-(gMPrCEkyCv6aYw37m15}zA z$m_jOV?AzKMSDw2OY@NuOKsx-h5ThPYxLTG9639?*SOhq#{S?ELpB`LOwwz%wZ-6t zGTYJilwcXF(;_yr)%j(kU*9tNh^Jo~_aMX{pWbfaO5Bb#2)nE-B_52S?sWOI6&>{&LGTGqhJ&?O{K}|W;@CazOQm$~S)~X=NRv16eT6G3 zDzrO^KO0_mz%`UfGad0;<9GKu>~W^k)d`;SnU4tW-EyoukvgufW$D(|*s zr^yojuOh?4A5Y-+Y>5Qwh;_cp#1=PtS0lCiyViJtO4#>kxFzxBY-2vyt}&-B>6!Xx z2Wk`BdVWn$e>lYMeQnZ%_{8pml|PHCq#22?@PWHlqX2 zi0($(Ti#B3U$NSBCf-<;-{AJ`=Mf<}rW8Dtl1QqRf8>>1JbhUj zu=4LAcIOFW0fV+kKBx}fri)~)uT6nxl%deXC!P_AW%tq!H~Ufl>=D6ZZ?SwY#-Pe| z(ObMupmsYs-y_O=YiWEYHB7}3XFF_HN1hhQWqr_e(y3odM|{~U{P%UBf^E8Fw}e8W zJ}H{0c1GChG2CZvTzTtAwTIJK&fyG$^1PPL&N9~}6|tZH6gX`-x^vx0mr2u*LblWBH#a>5aRb@{MZZysuLR>-L%7 zRQ)qQkZV1VXJ}0!UtjkfgV-Z<1fOebb^K9J1BL1w!6zt!#Qc_!=sU4f;h&n8p6*py zSC>f0hNP*To+hMILpugMKboSOzEe75k*%KQ|3Td8Q<&3ezA=VC30_0LGS_W+LR+8} zzrR`Dxp&r%*q!qF3J*__XYIwOtBtIZ7>l1}Gzb3BmDWKww4u}G+xrW(znr&M9yyIz zrt690p=G+QT@hxY-;w$9vj{@0b5~rrDO$(KqtOFz`VmU4hmx|gu!o1o0Dt=qi6FV` zB$f-!+q}`Ad7v|lRm5&=cFxq+RwPz3m6?U*?z%3~BEh4H6bE6t!DmqALYzshmv;E! zXW9EHkYwFSbX_bR)W<|MG2uH;6FG7tV@L;+lZPjQilF&*?mZaZtUqv6S6bf4gS^@t zpIFse_DMNb-yqKFonWHxzK872{<1HXB*mrU*75GtjV4m9=GV|mN|Pqzt=+C`EnKm2 zac8**YpiwKFG>5&3Qh?(HB0uE>+th*yHN39@n-ta)8Z+nL48o6+TU^|%#zP)f1>Pf z)s=e&UE~X`9#bPg6Euf?>g@E<*N=%{_@c;2Bx(nh0a!6+(=a?9#--{yK|N{J$@s?K zbwJNTuSS8;8BeV4im*(P4=(e>Rg2)r?gT=?^+n1SzT6Y%xiQb|ng^AC2EIArSD|V1 zk=}Gwb^@W!dN5C0{-I*!QYA5N3)3U==*vMaf*k;;&mbdGyuQLx+nkf=dsV ze*9Sf`0-=0Wj8r}D0$vqm9czubabB}4m-QdDCXD zZh2TmMMvBbp3xW)TdR#1n%F{-R#pbS``evxU^z|1;o|gu_n!(%O1(e+ePNjX^KGnM zB^D0fCBEtD#(aO9RkcF?oBwVay#kVhDFvjI$jsgDu{yEJ{ z1G%wFRm(EOryL>C(HT+3I6as7zCt#y-cQPvgaogg=Df!Dq#L z(r*~o0tovLGMLJZqILh5)XUo!dduyNArrf2q@HD1oe{AqaQ(@`%&fH={BcplenQHc z(C`ZIq$DPNx)h=(o5;7hFwD5BT>^bKUo8jzDR$JZssk{cbdH$sZf{~cpcgBOFcymy z1cC{a-jOz(D7-Mt-$~tF5c1x3kS4X?2>Em>B)@i7G39Qc z2>s*bK{_i81&^8?63E#<|YIrl7Df*-4Wv5_J2eh`%+5hAWObB=K{9zn2ylFIoRlM zAnL1&AB=H3X&q4nNrN(*x2=1lhD%W^3&mX$%f4rY2!F{M!pk4}4_9ErE_d#E+Yo_y z^*cQ@5V8?*vT6JFtw5r^`svhN)wSBarK&)|#()7f@0D8`X^IhVf<1QU(xW^NClD>F z%I)zJzX${auRuiz)hv>A$zvr|RZ;7KoTrZbKnYkk^-qj!1zzz}zn3U8ZdDCL0&i9A zKRcM8NM!PMf%R6Z{FKK*07Oc}EwSe3k+QV1t)L9dL$Ux9OM>J3$0rBMt|jmW{ep+j zRHQfh*nKd9-HVAimy{xBp^!P8sPd)mSMJVd$A9JTxX~q*5~eCM>^Y{!oeHTm56L!Q z+RQ=FQYa}^;;;B>B`gWmhTtPpHq1s>XbV-bvum}mW3$uA$X48IE-fnN6~mdk&hJuF zIi2A2*|zxOpr!Zj5X0l*Y*?=9KAh9qO{($QieXd{`*%ltcC_TkQEYsUSQ z9Gn{W9FS6VK*u@F=Y*cTFW$JJDzlS11HFUORmw@`@8f|eVAg(JhC*?IPvm2u_8obK zRXLmE5o2Qy!a_qQ$#F{81*%t`_t%c%j%h(cwXghaP19Ci& zl7U_CU*C>vq}*lTrC3c=S9}n%47Dillrw)drgfV1rYuCVM- zB~2=w=O)Q6LCsA}H%|qf6;Bp-n$Zmy{QT4u3d4YYbcHK^gecaa0i=#3H1NdBn@)+0#@_F2g zKN#9kSjzWW6+`LU5wF|dCFX7no-{?txA9(Yni4DCsNu<3n)i=^pG+-05(BDq9q3B! z#v-&(7mXP1y6Yx=lx*xzQ;M$W8 z2`@{|uo`&^m^8WU5+|o_4Zc4>zW8pBP3@}PP(jjI?MOA(K783z&-h&9x(R(_Cr3wb z12NZ5al&@3vYiks^7idp^MM?_+ReJFK%dDA78p{ssxLISxb^0frmv2&FOh`H0fNQ&ghCu{jI499pJf+nH;A|b}qvYFjoJ>gbqrKI7 z{;dNA73Y^0%klhMd&||NptO5qEJ&H@o(q*4?>3Q%){`jH=1}NCM3hjRsDh}7x%TKe zS96w8P35P1ACjRasRrqsk`FrDtt>j83ayz~_~P5nHCdr@(8mnUZF)jv#jh6w@ERz? zOca?Zy|nYlncXZ1p?`V%__7(ho!3UcPVV|@Mz1PnJPP;N++4o}6O)bviA0sRpPK5p z!Di$+cgbQ00|G*)aRVX@t-`0cf@i!-d}M8;k=58HH(2A-y-YO~)8?Sk$llUHBWp?= z7bj=5?P!@EaSCdV&#-kepqhc*V~6SdG^;IxI(%dmL5LFpo$9dUR+~WG7k zi(J0c=OfXy8A$BtC-cXTXLE`>i&&PqWAAh`8|plAqPz^S^n?DN`E;sjU{X0z#<1yR zSFjg^pF6HyxBOAVA1IksF&PAP4zTGFq6Zu7-5^K_vv;(cqY@MI&)8RYM+x(ApQF1; zckt0UzYfuQwDNqx=uF(cC9pBq+pHKDYE##VGi+|BMA?mfeu|>y_^(UjRpm>cr-Brz z6QD2j6+F7beqEv#II{I{k(r9gA!hhKH2+7=glLiut}`cMFcq)y2${c3bA4X+q#&sKpXR(n>I&1Ser4kfu^Lz$VGo;%Y~yw29xoLc2}hLAX_ zra!$HFW>tPWc~-|<_C*}%-3w58Dojqd-wXnuV{paggm;E&F%>dxfDtWSK*5w+K@qfd3Av(Xu}*lvjs2i_@@z-~p85{3cuwOk1`uYA zV#kNOU(BEBXlg!o;iSWqnYFQuy9^qtn1Dz~1iG#XnuqUtO&fpJJy5*L6T?$MhXY*p zCdv0TH^MUujb;~0ZcZbyCoKS^+@D@&W2>kyB@@~0i3kA4{u(bg{M1=E7h_8hyapzd zoB>vcqM{mCp{mrXY)2x-7)r1@h}6!lSJIz+eRF&lI&S8#Uyr%OrB~_?=ogy@h7EDw zrBVA!1QXQBWulVKvm$Oa++udZP;NRRf2sZ9Wx| zCm+mKOTAy>6U#-Sc60FZD%DXb%fL%Cjf@gNmwK`>U=XC7fqJLbcj)^^R?zh9s2xFR{(iVY-y8tgI?{i)v6Z z0qXTPeJRa$+w$>GpubeAG*kv-_H`l4oZ|nem7`I^ioDjKOkBMjNsq+7j7lV=0Y_6* zR^C|LZZ_G*NB|{NLUGB1^ha8Dc6qP`zf&F+%a=*EVQ;Dcg#A372ku;-&5YT>Xce(;g{+Q#OI6b z@iKfUG?dbufX-kvS0iZB4SZ1uFzTS?kCRNuqXO|9PY9a~=mrVwgEJJW5d*$?SHcg5 z7C`)3NK=v1Q^6SXun6vQko+jSgLSU)uksxo9i4lXMFrQ{UveW~9(oyVKrPuKM;8iF zmp7jBds z?oyyg^KTr_`dJ`OwSQN*dr;2Z0){)4fD{bVkB7L&b-qErN&@tt(!HLvN!s%lE?k(L z0%T|aoR{sfvp1CC-UMkcDd`!|<#Q)Sm$ZJGIqmy`+SJpg^tIqN|MM=>7*8 zpUTTBakCPE^oLu^npXdzJx>doO@e?UuWBl9i>)2C3fcjl&CL@;LA0eolM)KSJuerh zQg;Z6C<@k>+9u{zE&0DaG+Vth6Z_1w;C}T-z22d2pEw-+eZ15tsqodU?f>ACL`4 z_d5TIP29gUL!IhwX7|kjm{FmUa<6>cHP$}GXN8sS=0A~F^^$=n=>@PZ#kzxNi%#_1 zU?UPz;z7DQUZ^i_`h>NS5j2|499q79Y3o+w&AqMV!O6w|pTPU-Vgv!u9CkC5pi-B*7jTJ+4$hb8$f1&W zp2p3C+=$der_<+wZb3QBTVEbN>t7};#lA>HpjD!@ZRfr6+{yi5Ai*GyxyD9$;jl_K&LS< zIP^XyCJPk*a`ie>r)^&-h5D7wnQ%7*0pFbf+*(-TXV`1eF^3m06(zv3p3&BGh{)5x zw`ymqriftP<{8!K14$}AVGWt2jbG<+Vq;`v>`#$D%3i#a1UDqRk!$j&Ds*_~QQPtg zm8s7tYXx=wv&w-8S(+cmV;l1S2fP5PT6Lz@wYf)#2g9_XL_)N6#g_~)Y;b#ZO4{Sk zX#D(OewXIWzmt)bZ%}=i=wHIE%_i4^cm+_agJ4r@;bb)7TCEZ+WbWm9GyO%84MOP4Nb zx$EL*$iC+0pI{7V&&Nh~`LJD}Hk`6S&<$OagV_d5DE!JTk3^}w_sxA8^Y?)qE`$S##C94075 zsQioN%N?2@NznTM2I2Lqr)s*_7lt)p*^xzs7^*MK@``i#>!pl-m%G);#*rGY@>2H| zRk%%IkF{UXXLm8$5XizHEki>TgWxxJ5-Wode3nkW(FXvAg`jtM74C6fl&hRhlORcGx}_Mj9_e?(TIJ22mXDoOwqYbE23!Il

7upkDammjEaC~Bwce<0MZRweuS#RW&ny5v?hB#BfW+W zhBG34SJLB5_>KAd;XJuasQ8b=NUO`fCkQ?=>rDzoZW1gJ$`qK;lgz?P5-Lmd48odl@Y z;s%G*fS<%aZ8|kza)ZiV1?im+%;B?2!&@NmFynug>BoJG=0_MzXY>Ny)_W~XOiVJZ zX~`#SN57B6{joi#>YEiF&V)_N|7(R2Pyx~2cQ5v|(32k$3>E+uGDq#}#!)2eXAhIw zPXK-m0^FSUE1)Z7foG%ibN6+sZ+M3{SPN=LH@aq4>K3gJPgMMTb;h}oSw}3O4#d?O zP%J&6NkoK&OFQAv4UXbzy~<+(1z8(&4&vMZbej99HrM!gA0raTjxj>*5-0Y6?Dvhk;VCcDBkV@Y zl%pOvz6B{{hBF<=rK;Q5)7QTl%MXrG-crDT*+7{M0$6Pm_k)W*phRFD<_SIeQY}m8 zF0V9wy!B!oj3Hy#1?Vqx(A9Z1yik?~`j-8M;LIh|QebA6%|L~yKus~I(p%~dIj#kR zk=(|BGS~;3nTWW!91I9?1CzrOrnDi}BPE#$xLr%G!o!CT3p@O{2}B{IJrSMkvU$#4 z2+;Ep;Nw#UwcSmfM5@3+u{xtP-8~z z_GG}+{@84HO8j_tFKoqidF~$q^hjbO(R&fjx&$l~gO=e|aL*`hBMNyR&mYvNK7IZ1 z8{B4bqWIeyho84W_|3YF0qs=iVLbxeX)jJ|Zl6rR5K%Slgyc6kWtMzZn}D)CYA|zd z3S&qCB^4|C31GD+%<|&Dc6N01!`|eB8m77J27ZXig)n!(%%4=^tv2*dL+LQAmMNAV z!M{nCu5-AmTY#bmxA;GJ09M|bY7W)`Yem?$8{WrFH{~IWfQnGEf=U>mj%#d5;&iHKrzVc<<`;G)*j0}@TU3pb+%HQVRazB|AY-ewhw?_&7psg z*eLiVA~ZA^i1~+1M2Q=@s$1<|h+3V1E_`iGC%VV{@vW_`m%Kv)gg&JJ`hk)_%`cl- ze75RxNYF*uWN0Uq)cw8quSdWJe)x8hTAx5n_B&k<)4&KRUR0m!6tTY5h&m+ZVHg}X zWYmR!T@_S+82mv6fEa&qy1rLKbWf-@lowv7J*Fx-)7ZPg2;j>q4MUkzRWaEse2$5e z{Hr8t$PWSjh3P=G*GXPwJ!bC&oC%3wCg@0hC-;@vE1LG4z&@zE!-T_Fo0pmdk zG{1gT>bYSxXsOu>)d1$B5`&hqfbKn^RQN~$M2!E6LnU$*2GFOSc7MD$n$yVJ zGVKv$0THt}R-pkhjZ6I9Aro7mk-BVjporgTXT7%CI?dG!;g1dqica^QOaT&P4PuJ+ zl%k!y{^Th-KeIxzCBHVI*HqXZ3j@{|B9j_@lv6J>$kSpDAAe6qCn{aCLA5(Ve3~{{ z%7P|y*wCs!ZGDk0KVq^G=6u!u3sc*ml9W@01O;?zXHPF8^utf06YdSzg{tM+(cy8H z)i>~d(4vB4x%zBVN_dx};o=3xAw77R9<@N2P&m-;JMxU!O;6B+ezpR?D!0C!b zNdt%#HquMo6qcUe-rVLOc_t)sdS+%GhF)&*cTrZ&cbPy9_HRsDPg9BlpQ9nb>A(2h zGDd-_fGS}kZD$GkX*!IBTUzk{Xy@wBb@}cWZ+u4A^i22c00p#3!}MbzD7kf^k6^J^ z4OxF4;ISME1FIRE;9VH0DoeU9z&uO{#_WUOl={J0)@H$v_UuC@i$|*jFJH#oiW2hK zb>{Mlk-x}tSgx+Zn*lyDyI{2amXT{76bRQ7RZ_q+@2!J~KZB%LT*9 zYxOO}9+0D@SHCh2Of{hkqKBgGwP^#9q?>b;%Fe7r*#@mEJT{gn5tuQRg}DDuwJ|_v zP(n|>pFbz&Q17|m4->Bt7!Cg9+_cA$&KSD?dNy4;uNtWJtuX9llVpP%Ji$vuKs6BpLJx9* z$jiG>CwPm;J2y?Z>z z+;7tS_~y^dYhq$VfvgB@@j0x>NdIyjLhdt=lp|-wK7xxAHj8H(MyG*WPy?{(37%Q~ z(dthzP{-LdsGDG)$wsI3*o6ysUS+5z%D_EdhkJY{C|KCi21>}B1f6Q*ZC|j)opN%! zIusfoZ_B3*Ar;S83*0OkY;#MTuAE?wshfi}l(LCJV?YHN2s>M8*Q+Ur1NX>lkFCW~ zR#G|j91LvrKtzZo3bisX4!%?>qxUN*5mJU}2&fa(Z=JV!oS%R!6YU1z z>wJ9)XV~N}N=h0GK5z;Qt2+mSsbc=xZ4=^CQ$VD509W<{qkfQn|C8=X{-g3jTf87m z0xNZlzuQ+NNb7)_9=#^V0a5__xXe{pvkpjQ7962&C%h)VzRl7|4+24n5i%TdM|?=L`zq9R)WF!r0F{N*gz)G?AAYa_kig;I4Pp_J3w!9AOUR(-?fAh z@edoi8sm3@l^|Qhzk34Fe>2L^^~1*J!f)TlN}=w4`10j8qq3uulXAR-OI+d^i~;y< zU|>*A)Sz&1#W_4DIcW@wfQf*YV2%p-n<>yYE;G^V%_(6=%k6_(25XXY&DtW(0mKb- z5uqk4qvoD1Ow1V$BnX_ls$h$7jBh%6FF|T}#DrI8ZEa2H=_Ifgay_uZQc%F5YV%>z zZJ|;L1NMPA+cryz5IR=^75m&^{vMF>esEh6188BaheBuFz*E-TNb*e~hCLQ&8p9Te zF7dCJp(ksBTucjpFx3J|!GJkq6ZQ9W9r#ZK2&J zuX;@pj+>6|Cexcw7_w>8yZgWUYR(W;aL_NNB?6aaH7=YCBWQxy^yhorDX|C)71Glwmy^;zg!rW@aBC>BTVYA_f4R zpr!{BHSD44D1#szpBU^A6DW+lKFTfvU2jWj3-xNEM#BVZA!-@S(#)JBmllts7E{p0 z?TLgvcIx(P@EV$$9z0KfR>oV5hwZZyz;{%uayhLHxl9CG4oI)4UY*RO!8{$E<-JFoETJy8Kk?(&2$~0|2nzDIMf4dgHj!(S0V33 zQQz7A$XER;xV?7B(A?^~2M!%^p1^ZI>16yE@dP&>78e_94c+nI^bkeh$5|g+`V{+|Y@w*bl`nCENL^Scb}Yo@F1 zLqr7V{lK_^n%Rv-_Cox1;-G{!ywJ&UhSqWIsMN~McDos-Kt2wRhQDE64rA!u%}O5_ z5?%(~)5G}Oe-|^R%kF_;=2RW-^FMWfcp{U=>7jAB35z1^Mwi@;eDfQ%UX+MOoS;3~Lbo=#wN z_SygO2QW8BYpSEnJ5-t`DEp zfI!vE*5<>io0ue{f+MVr8D?ithK zH()aO0Pzz=zX?Cok5z2xnZHwCmlKd$A1sDq0i7A zyU7F(xg9)42fx$E!V5Q%`|#ucz5IWB^1m%0-iF@J3xn9zetF^&b44dS&8e#u&Yk)F zzb8OB-iFdY`2ExlB<3xDyNQNpt#`I7hG zS=Av@);guywy?R@682coyM2HD19(_gMi!@u*E>TCD=Az1R( ztZ#VrMt)N2;-(Y4AyO!`XVh4|5*N3iNqIMNl zQMDqR6~-7Kfu*j5hF{M7G0Pg{lOphbJ+tE-JlDEBll3*WPIGsk%B8eh`ED7WlpX55 z+Y=LN%x#-NJ%csY!yZDA?M0_^q#1z-$`$J0SS4>|cxmYS{hmqFI^BtDRC;Xsb|gGS zyE1wLdroohu17ZIkizxaR9F?+T$5~Ml(k0hCvd5T;2{C)dgZIAuRkCfT;7Ax>M_Fh zSGU8{$J_G-sU!G(`{QNh%fTZW~ED_n=8t!<5Rex5qsy!WsF(oUU5k8sFi*l=&R2%eQ00W3B` zY<4hIA8W;~au=4O!+1$rtDF6ZMIF^8RR7hg7re&)fd?0<`tqd)q8U|kUp@XB4j#OB zw@&oOL@#Hz3urkr+{7NzBIo$sc|?Y7Ug>c_=4ZHvC7u;HIzP=+ zU&tT1UY4rKZVGihpPti@YwjH8$dU!kd1j2<3L|#WJLmvJjb7$t)dJ7@!$b#nX*!3T z_)wLQK4bN~u0jNPiKK zO}Y0UW5YDb4oRHN6$tVp{UVmcIeu~OOw?Q1J2VcOMX47;alDzi$-JVl-Gy>JOjr)h z>iB%8?%m6yYCVaU;Qz+(cI=)O++N=M)ZEa0-nrvg$+1r)({6nv97;f9s&VFaMe~N- zEw~r{3)m`7AD%g3X8Q?7$C&P?UvJZ>#e`kj2z4&=XJr%#gXGEbXIF~j^goFBiQeW( wsKO*q8mzBz+N!UbOOr17T(!(CUih+3#VW3+3r_5wg{()gaw@WUw;w+Le}usiM*si- diff --git a/packages/ui/src/features/mcp-server-manager/useMcpConnect.ts b/packages/ui/src/features/mcp-server-manager/useMcpConnect.ts index e7717232ae..0a4e171d56 100644 --- a/packages/ui/src/features/mcp-server-manager/useMcpConnect.ts +++ b/packages/ui/src/features/mcp-server-manager/useMcpConnect.ts @@ -18,6 +18,8 @@ import { useCallback, useMemo } from "react"; export const mcpKeys = { servers: ["mcp", "servers"] as const, installations: ["mcp", "installations"] as const, + icon: (domain: string, theme: "light" | "dark") => + ["mcp", "icon", domain, theme] as const, tools: (installationId: string) => ["mcp", "installations", installationId, "tools"] as const, }; diff --git a/packages/ui/src/features/mcp-servers/components/parts/McpInstalledRail.tsx b/packages/ui/src/features/mcp-servers/components/parts/McpInstalledRail.tsx index 2732120090..4d35152fc7 100644 --- a/packages/ui/src/features/mcp-servers/components/parts/McpInstalledRail.tsx +++ b/packages/ui/src/features/mcp-servers/components/parts/McpInstalledRail.tsx @@ -155,7 +155,10 @@ export function McpInstalledRail({ }`} > diff --git a/packages/ui/src/features/mcp-servers/components/parts/ServerCard.tsx b/packages/ui/src/features/mcp-servers/components/parts/ServerCard.tsx index c37960cd6e..6388837f81 100644 --- a/packages/ui/src/features/mcp-servers/components/parts/ServerCard.tsx +++ b/packages/ui/src/features/mcp-servers/components/parts/ServerCard.tsx @@ -33,7 +33,11 @@ export function ServerCard({ className="flex w-full flex-col gap-3 rounded-md p-4 text-left" > - + diff --git a/packages/ui/src/features/mcp-servers/components/parts/ServerDetailView.tsx b/packages/ui/src/features/mcp-servers/components/parts/ServerDetailView.tsx index cfb0549129..44da1171aa 100644 --- a/packages/ui/src/features/mcp-servers/components/parts/ServerDetailView.tsx +++ b/packages/ui/src/features/mcp-servers/components/parts/ServerDetailView.tsx @@ -72,7 +72,7 @@ export function ServerDetailView({ const [showRemoved, setShowRemoved] = useState(false); const [toolSearch, setToolSearch] = useState(""); - const { name, description, docsUrl, iconKey, authType } = + const { name, description, docsUrl, iconDomain, serverUrl, authType } = resolveServerDetails(installation, template); const { @@ -113,7 +113,7 @@ export function ServerDetailView({ - + diff --git a/packages/ui/src/features/mcp-servers/components/parts/icons.tsx b/packages/ui/src/features/mcp-servers/components/parts/icons.tsx index 6c836644be..02259faf0a 100644 --- a/packages/ui/src/features/mcp-servers/components/parts/icons.tsx +++ b/packages/ui/src/features/mcp-servers/components/parts/icons.tsx @@ -1,99 +1,39 @@ import { Plugs } from "@phosphor-icons/react"; +import { iconDomainFromServerUrl } from "@posthog/core/mcp-servers/iconDomain"; +import { useServerIcon } from "@posthog/ui/features/mcp-servers/hooks/useServerIcon"; +import { useThemeStore } from "@posthog/ui/shell/themeStore"; import { Flex } from "@radix-ui/themes"; -import IconAirOps from "../../../../assets/services/airops.png"; -import IconAtlassian from "../../../../assets/services/atlassian.svg"; -import IconAttio from "../../../../assets/services/attio.png"; -import IconBox from "../../../../assets/services/box.svg"; -import IconBrowserbase from "../../../../assets/services/browserbase.svg"; -import IconCanva from "../../../../assets/services/canva.svg"; -import IconCircle from "../../../../assets/services/circle.png"; -import IconCiscoThousandEyes from "../../../../assets/services/cisco_thousandeyes.png"; -import IconClerk from "../../../../assets/services/clerk.svg"; -import IconClickHouse from "../../../../assets/services/clickhouse.svg"; -import IconCloudflare from "../../../../assets/services/cloudflare.svg"; -import IconContext7 from "../../../../assets/services/context7.svg"; -import IconDatadog from "../../../../assets/services/datadog.svg"; -import IconFigma from "../../../../assets/services/figma.svg"; -import IconFiretiger from "../../../../assets/services/firetiger.svg"; -import IconGitHub from "../../../../assets/services/github.svg"; -import IconGitLab from "../../../../assets/services/gitlab.svg"; -import IconGranola from "../../../../assets/services/granola.svg"; -import IconHex from "../../../../assets/services/hex.svg"; -import IconHubSpot from "../../../../assets/services/hubspot.svg"; -import IconLaunchDarkly from "../../../../assets/services/launchdarkly.png"; -import IconLinear from "../../../../assets/services/linear.svg"; -import IconMem0 from "../../../../assets/services/mem0.svg"; -import IconMonday from "../../../../assets/services/monday.svg"; -import IconNeon from "../../../../assets/services/neon.svg"; -import IconNotion from "../../../../assets/services/notion.svg"; -import IconPagerDuty from "../../../../assets/services/pagerduty.svg"; -import IconPlanetScale from "../../../../assets/services/planetscale.svg"; -import IconPostman from "../../../../assets/services/postman.svg"; -import IconPrisma from "../../../../assets/services/prisma.svg"; -import IconRender from "../../../../assets/services/render.svg"; -import IconSanity from "../../../../assets/services/sanity.svg"; -import IconSentry from "../../../../assets/services/sentry.svg"; -import IconSlack from "../../../../assets/services/slack.png"; -import IconStripe from "../../../../assets/services/stripe.png"; -import IconSupabase from "../../../../assets/services/supabase.svg"; -import IconSvelte from "../../../../assets/services/svelte.png"; -import IconWix from "../../../../assets/services/wix.png"; - -const BRAND_ICONS: Record = { - airops: IconAirOps, - atlassian: IconAtlassian, - attio: IconAttio, - box: IconBox, - browserbase: IconBrowserbase, - canva: IconCanva, - circle: IconCircle, - cisco_thousandeyes: IconCiscoThousandEyes, - clerk: IconClerk, - clickhouse: IconClickHouse, - cloudflare: IconCloudflare, - context7: IconContext7, - datadog: IconDatadog, - figma: IconFigma, - firetiger: IconFiretiger, - github: IconGitHub, - gitlab: IconGitLab, - granola: IconGranola, - hex: IconHex, - hubspot: IconHubSpot, - launchdarkly: IconLaunchDarkly, - linear: IconLinear, - mem0: IconMem0, - monday: IconMonday, - neon: IconNeon, - notion: IconNotion, - pagerduty: IconPagerDuty, - planetscale: IconPlanetScale, - postman: IconPostman, - prisma: IconPrisma, - render: IconRender, - sanity: IconSanity, - sentry: IconSentry, - slack: IconSlack, - stripe: IconStripe, - supabase: IconSupabase, - svelte: IconSvelte, - wix: IconWix, -}; - -export function resolveServerIcon( - iconKey: string | null | undefined, -): string | undefined { - return iconKey ? BRAND_ICONS[iconKey] : undefined; -} +import { useState } from "react"; interface ServerIconProps { - iconKey?: string | null; + /** The template's brand domain (`icon_domain`). Falls back to deriving one from serverUrl. */ + iconDomain?: string | null; + /** The MCP server URL — lets custom installs without a template still get a brand icon. */ + serverUrl?: string | null; size?: number; className?: string; } -export function ServerIcon({ iconKey, size = 32, className }: ServerIconProps) { - const src = resolveServerIcon(iconKey); +/** + * Brand logo for an MCP server, resolved at render time through the + * authenticated logo.dev icon proxy (`mcp_servers/icon/`). Falls back to a + * generic plug glyph when no brand domain resolves or the proxy has no icon. + */ +export function ServerIcon({ + iconDomain, + serverUrl, + size = 32, + className, +}: ServerIconProps) { + const isDarkMode = useThemeStore((state) => state.isDarkMode); + const domain = iconDomain || iconDomainFromServerUrl(serverUrl); + // logo.dev picks the logo variant suited to the active background theme. + const theme = isDarkMode ? "dark" : "light"; + const src = useServerIcon(domain, theme); + // Failure latches per (domain, theme) — the unit the icon varies over — so + // a bad payload in one theme doesn't blank the other and a theme flip retries. + const iconKey = `${domain}|${theme}`; + const [failedIconKey, setFailedIconKey] = useState(null); const dimension = `${size}px`; const radius = 2; return ( @@ -103,12 +43,13 @@ export function ServerIcon({ iconKey, size = 32, className }: ServerIconProps) { className={`shrink-0 overflow-hidden ${className ?? ""}`} style={{ width: dimension, height: dimension, borderRadius: radius }} > - {src ? ( + {src && failedIconKey !== iconKey ? ( setFailedIconKey(iconKey)} /> ) : ( diff --git a/packages/ui/src/features/mcp-servers/hooks/useServerIcon.ts b/packages/ui/src/features/mcp-servers/hooks/useServerIcon.ts new file mode 100644 index 0000000000..258d8fe50d --- /dev/null +++ b/packages/ui/src/features/mcp-servers/hooks/useServerIcon.ts @@ -0,0 +1,27 @@ +import { mcpKeys } from "@posthog/ui/features/mcp-server-manager/useMcpConnect"; +import { useAuthenticatedQuery } from "@posthog/ui/hooks/useAuthenticatedQuery"; + +/** + * Object URL for an MCP server's brand icon from the authenticated logo.dev + * proxy endpoint, or null while loading / when the domain has no icon (the + * proxy 404s and callers render their own fallback glyph). Results never go + * stale while observed; after cache eviction a revisit re-fetches, served by + * the browser HTTP cache for hits, so transient proxy failures (e.g. an + * exhausted logo.dev budget) heal instead of latching for the session. + */ +export function useServerIcon( + domain: string | null, + theme: "light" | "dark", +): string | null { + const { data } = useAuthenticatedQuery( + mcpKeys.icon(domain ?? "", theme), + async (client) => + domain ? await client.getMcpServerIconUrl(domain, theme) : null, + { + enabled: !!domain, + staleTime: Number.POSITIVE_INFINITY, + retry: false, + }, + ); + return data ?? null; +} From 58ac665240760c1a4f8f6f8564399765a4d978c4 Mon Sep 17 00:00:00 2001 From: Chris Volzer Date: Tue, 21 Jul 2026 10:41:45 -0400 Subject: [PATCH 2/2] feat: improve design --- .../features/mcp-servers/components/parts/MarketplaceView.tsx | 4 ++-- .../src/features/mcp-servers/components/parts/ServerCard.tsx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/ui/src/features/mcp-servers/components/parts/MarketplaceView.tsx b/packages/ui/src/features/mcp-servers/components/parts/MarketplaceView.tsx index 861754946e..9abd722638 100644 --- a/packages/ui/src/features/mcp-servers/components/parts/MarketplaceView.tsx +++ b/packages/ui/src/features/mcp-servers/components/parts/MarketplaceView.tsx @@ -73,8 +73,8 @@ export function MarketplaceView({ Marketplace - Browse and connect MCP servers that extend your agent with tools, - data and integrations. + Connect MCP servers to make them available to in PostHog on desktop + and in the cloud.