<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fh="http://purl.org/syndication/history/1.0"><channel><title>Knip | Blog</title><description/><link>https://knip.dev</link><language>en</language><fh:complete/><atom:link rel="self" href="https://knip.dev/blog/rss.xml"/><item><title>Announcing Knip v6</title><link>https://knip.dev/blog/knip-v6</link><guid isPermaLink="true">https://knip.dev/blog/knip-v6</guid><description>Learn what&apos;s new in Knip v6.</description><pubDate>Fri, 20 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;div&gt;&lt;h2 id=&quot;knip-v6-is-out&quot;&gt;Knip v6 is out!&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;This release is all about replacing the TypeScript backend entirely with
&lt;code dir=&quot;auto&quot;&gt;oxc-parser&lt;/code&gt; and &lt;code dir=&quot;auto&quot;&gt;oxc-resolver&lt;/code&gt;, and making Knip a whole lot faster!&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;from-typescript-to-oxc&quot;&gt;From TypeScript to oxc&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Two years ago, the &lt;a href=&quot;./slim-down-to-speed-up&quot;&gt;“slim down to speed up”&lt;/a&gt; and &lt;a href=&quot;./knip-v4&quot;&gt;Knip v4&lt;/a&gt; work removed a
lot of overhead around TypeScript programs, made serialization and caching
practical, and improved memory efficiency a lot. But there was still a ceiling:
parsing and module resolution still depended on TypeScript APIs designed for
IDEs and language servers — not for the kind of single-pass static analysis Knip
does.&lt;/p&gt;
&lt;p&gt;Starting today, Knip v6 parses your source files with &lt;a href=&quot;https://oxc.rs/docs/guide/usage/parser&quot;&gt;oxc-parser&lt;/a&gt;. This is
more than just a parser swap for the sake of using the latest ’n greatest.&lt;/p&gt;
&lt;p&gt;Knip has always been designed to parse each file only once, but the TypeScript
backend carried the overhead of wiring up an entire program along with the
typechecker. That’s useful for IDEs keeping symbols connected, but much less so
when you only need to traverse an AST once to collect imports and exports. The
TypeScript backend made the setup as a whole harder and slower than it needed to
be, especially to keep large monorepos in check.&lt;/p&gt;
&lt;p&gt;Now with TypeScript itself Go-ing places, replacing that backend was only a
matter of time.&lt;/p&gt;
&lt;p&gt;Unsurprisingly, the search didn’t take long: &lt;code dir=&quot;auto&quot;&gt;oxc-parser&lt;/code&gt; offers everything we
need and its (experimental) raw transfer is crazy fast. Massive props to
&lt;a href=&quot;https://github.com/overlookmotel&quot;&gt;overlookmotel&lt;/a&gt;, &lt;a href=&quot;https://github.com/Boshen&quot;&gt;Boshen&lt;/a&gt; and all contributors for all the work on &lt;a href=&quot;https://oxc.rs&quot;&gt;the
oxc suite&lt;/a&gt;!&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;performance-tuning&quot;&gt;Performance tuning&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Next to this major refactor, I’ve been having a ball tuning Knip’s performance
further. One thing to highlight here is that a few more plugins have been
refactored to statically analyze configuration files directly, as opposed to
actually importing them (including transitive dependencies…). This includes
the ESLint (“flat config”), tsdown and tsup plugins.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;the-numbers&quot;&gt;The numbers&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Comparing v5 and v6 in some projects using Knip, all boosts are in the &lt;strong&gt;2-4x&lt;/strong&gt;
range:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://try.venz.dev/?type=bar&amp;#x26;labelX=Knip&amp;#x26;labelY=duration+(s)&amp;#x26;label=astro&amp;#x26;label=query&amp;#x26;label=rolldown&amp;#x26;label=sentry&amp;#x26;label=typescript&amp;#x26;l=v5.88.0&amp;#x26;l=v6.0.0&amp;#x26;data=4*2&amp;#x26;data=3.8*1.7&amp;#x26;data=3.7*1.7&amp;#x26;data=11*4&amp;#x26;data=3.7*0.9&quot;&gt;&lt;img src=&quot;https://cdn.venz.dev/i/chart.svg?pad=0&amp;#x26;type=bar&amp;#x26;labelX=Projects%20using%20Knip&amp;#x26;labelY=duration+(s)&amp;#x26;label=astro&amp;#x26;label=query&amp;#x26;label=rolldown&amp;#x26;label=sentry&amp;#x26;label=typescript&amp;#x26;l=v5.88.0&amp;#x26;l=v6.0.0&amp;#x26;data=4*2&amp;#x26;data=3.8*1.7&amp;#x26;data=3.7*1.7&amp;#x26;data=11*4&amp;#x26;data=3.7*0.9&quot; alt=&quot;venz-chart&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Trust me, I could look at this chart all day long! The same numbers in a table:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project&lt;/th&gt;
&lt;th&gt;v5.88.0&lt;/th&gt;
&lt;th&gt;v6.0.0&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/withastro/astro&quot;&gt;astro&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;4.0s&lt;/td&gt;
&lt;td&gt;2.0s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/TanStack/query&quot;&gt;query&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;3.8s&lt;/td&gt;
&lt;td&gt;1.7s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/rolldown/rolldown&quot;&gt;rolldown&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;3.7s&lt;/td&gt;
&lt;td&gt;1.7s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/getsentry/sentry&quot;&gt;sentry&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;11.0s&lt;/td&gt;
&lt;td&gt;4.0s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/microsoft/TypeScript&quot;&gt;TypeScript&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;3.7s&lt;/td&gt;
&lt;td&gt;0.9s&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div&gt;&lt;h2 id=&quot;whats-new&quot;&gt;What’s new&lt;/h2&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Did I already mention Knip got 2-4x faster?&lt;/li&gt;
&lt;li&gt;Support for TS namespaces (and modules), new issue type &lt;code dir=&quot;auto&quot;&gt;namespaceMembers&lt;/code&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;namespace&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;MyNamespace&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;myName&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;knip&apos;&lt;/span&gt;&lt;span&gt;; &lt;/span&gt;&lt;span&gt;// we were ignored in v5,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;type&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;MyType&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt;; &lt;/span&gt;&lt;span&gt;// yet in v6 we are included&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div&gt;&lt;h2 id=&quot;breaking-changes&quot;&gt;Breaking changes&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Granted, most of you won’t even notice. Here’s the list:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dropped support for Node.js v18 → Knip v6 requires Node.js v20.19.0 or newer&lt;/li&gt;
&lt;li&gt;Dropped issue type &lt;code dir=&quot;auto&quot;&gt;classMembers&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Dropped &lt;code dir=&quot;auto&quot;&gt;--include-libs&lt;/code&gt; → this is now the default and only behavior&lt;/li&gt;
&lt;li&gt;Dropped &lt;code dir=&quot;auto&quot;&gt;--isolate-workspaces&lt;/code&gt; → this is now the default and only behavior&lt;/li&gt;
&lt;li&gt;Dropped &lt;code dir=&quot;auto&quot;&gt;--experimental-tags&lt;/code&gt; → use &lt;a href=&quot;../reference/configuration#tags&quot;&gt;&lt;code dir=&quot;auto&quot;&gt;--tags&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;In &lt;a href=&quot;../features/reporters#custom-reporters&quot;&gt;reporter functions&lt;/a&gt;, &lt;code dir=&quot;auto&quot;&gt;issues.files&lt;/code&gt; is consistent with other issue
shapes. Removed &lt;code dir=&quot;auto&quot;&gt;issues._files&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;In the &lt;a href=&quot;../features/reporters#json&quot;&gt;JSON reporter&lt;/a&gt;, issues are consistently arrays for any issue type.
Removed root &lt;code dir=&quot;auto&quot;&gt;files&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;editor-extensions&quot;&gt;Editor Extensions&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;../reference/integrations&quot;&gt;Editor extensions&lt;/a&gt; benefit from the core upgrades, for being faster and
more memory-efficient. Regardless of new extension releases, the local version
of Knip will be detected and used. Upgrade &lt;code dir=&quot;auto&quot;&gt;knip&lt;/code&gt; in your dependencies when
you’re ready.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;what-about-classmembers&quot;&gt;What about classMembers?&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;I feel you. Even Knip itself was using it. Until today.&lt;/p&gt;
&lt;p&gt;The problem is that the implementation relies on the JS-based
&lt;code dir=&quot;auto&quot;&gt;ts.LanguageService&lt;/code&gt; API that exposes the &lt;code dir=&quot;auto&quot;&gt;findReferences&lt;/code&gt; method. TypeScript v6
is the last JS-based release, and TypeScript v7 is a full rewrite in Go. I am
left wondering if it ever will be feasible and practical to build such features
using primitives (i.e. not via LSP) in a JS-based CLI (references:
&lt;a href=&quot;https://github.com/microsoft/typescript-go/discussions/455&quot;&gt;microsoft/typescript-go#455&lt;/a&gt;, &lt;a href=&quot;https://github.com/microsoft/typescript-go/tree/main/_packages/api&quot;&gt;@typescript/api&lt;/a&gt;). Knip was already
pretty unique for even trying this in a CLI tool.&lt;/p&gt;
&lt;p&gt;Not that many projects seem to be using it either: &lt;a href=&quot;https://github.com/search?q=classMembers%20path%3Aknip.json&amp;#x26;type=code&quot;&gt;github.com search for
“classMembers path:knip.json”&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If your project relies on it, feel free to open an issue on GitHub or contact me
and maybe we can work something out. Maybe a separate dedicated tool could work,
or extended support for Knip v5.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;upgrade-today&quot;&gt;Upgrade today&lt;/h2&gt;&lt;/div&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;npm&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;install&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip@latest&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div&gt;&lt;h2 id=&quot;deep-closing-thoughts&quot;&gt;Deep closing thoughts…&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Remember, Knip it before you ship it! Have a great day ☀️&lt;/p&gt;</content:encoded><category>Announcement</category></item><item><title>Knip for Editors &amp; Agents</title><link>https://knip.dev/blog/for-editors-and-agents</link><guid isPermaLink="true">https://knip.dev/blog/for-editors-and-agents</guid><pubDate>Wed, 17 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Three years in, Knip has found its place in &lt;a href=&quot;https://github.com/webpro-nl/knip/network/dependents&quot;&gt;over 10.000 projects&lt;/a&gt; and is
downloaded &lt;a href=&quot;https://www.npmx.dev/package/knip&quot;&gt;over 18M times/month&lt;/a&gt;. A long period of steady growth in usage
and stability allows Knip to become more accessible to more people. That’s why
I’m excited and proud to introduce the brand new &lt;a href=&quot;#editor-extension&quot;&gt;Editor Extension&lt;/a&gt; &lt;strong&gt;and&lt;/strong&gt;
MCP Server. For humans and coding agents alike, Knip will help keep your
codebases tidy.&lt;/p&gt;
&lt;p&gt;Don’t forget… Knip it before you ship it!&lt;/p&gt;

&lt;div&gt;&lt;h2 id=&quot;editor-extension&quot;&gt;Editor Extension&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;This one is for you.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;#lint-findings&quot;&gt;The usual suspects&lt;/a&gt; like red squiggles for unused exports are there. What
really moves the needle for DX with Knip’s module graph is &lt;strong&gt;navigation&lt;/strong&gt;. A
completely unique way to view &amp;#x26; fly through codebases. Connect the dots during
development and refactors, while keeping things in check. We’re starting out
with &lt;a href=&quot;#imports--exports&quot;&gt;3 key features&lt;/a&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Hover over Export&lt;/strong&gt; for import &amp;#x26; usage locations&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Imports Tree View&lt;/strong&gt; for direct links to implementations&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Exports Tree View&lt;/strong&gt; for direct links to import &amp;#x26; usage locations&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The extension has a &lt;a href=&quot;#mcp-server&quot;&gt;built-in MCP Server&lt;/a&gt; with a command and resources to
configure Knip for you, &lt;em&gt;completely automated&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Find &lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=webpro.vscode-knip&quot;&gt;Knip on the VS Code Marketplace&lt;/a&gt; and find &lt;a href=&quot;https://open-vsx.org/extension/webpro/vscode-knip&quot;&gt;Knip in the Open VSX
Registry&lt;/a&gt;.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;mcp-server&quot;&gt;MCP Server&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Configuring Knip has always been a major headache to many. No more. Tell your
coding agent to “configure knip” and it will RTFM so you don’t have to. Using a
newer model like Opus 4.5 or GPT 5.2 results in an optimized &lt;code dir=&quot;auto&quot;&gt;knip.json&lt;/code&gt; file
and an uncluttered codebase.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://www.npmx.dev/package/@knip/mcp&quot;&gt;MCP Server is available&lt;/a&gt; separately and built into the VS Code
Extension.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;language-server&quot;&gt;Language Server&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;The VS Code Extension and the MCP Server are powered by the new Language Server.
It’s a custom server that builds the full module graph of your project, and
provides a session with a graph explorer to request all sorts of interesting
information. Queries like “where is an export imported” or “is this import part
of a circular dependency” are just scratching the surface here.&lt;/p&gt;
&lt;p&gt;Extensions for other IDEs can be built on top. See
&lt;a href=&quot;https://github.com/webpro-nl/knip/blob/main/packages/language-server/README.md&quot;&gt;language-server/README.md&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;screenshots&quot;&gt;Screenshots&lt;/h2&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#lint-findings&quot;&gt;Lint Findings&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#imports--exports&quot;&gt;Imports &amp;#x26; Exports&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#contention&quot;&gt;Contention&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#circular-dependencies&quot;&gt;Circular Dependencies&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#conflicts&quot;&gt;Conflicts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#branching&quot;&gt;Branching&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#vs-code-extension-settings&quot;&gt;VS Code Extension Settings&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h3 id=&quot;lint-findings&quot;&gt;Lint Findings&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src=&quot;https://knip.dev/screenshots/editors-and-agents/diagnostics.webp&quot; alt=&quot;Lint Findings&quot;&gt;&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;imports--exports&quot;&gt;Imports &amp;#x26; Exports&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src=&quot;https://knip.dev/screenshots/editors-and-agents/imports-exports.webp&quot; alt=&quot;hover&quot;&gt;&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;contention&quot;&gt;Contention&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;The IDE extension shows extra issues in the tree views like circular
dependencies. We’re starting out with some extra novelties like conflicting and
branched/diamond-shaped import chains.&lt;/p&gt;
&lt;div&gt;&lt;h4 id=&quot;circular-dependencies&quot;&gt;Circular Dependencies&lt;/h4&gt;&lt;/div&gt;
&lt;p&gt;If an import is part of a circular dependency, Knip will display:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://knip.dev/screenshots/editors-and-agents/circular-dependency.webp&quot; alt=&quot;Circular Dependencies&quot;&gt;&lt;/p&gt;
&lt;div&gt;&lt;h4 id=&quot;conflicts&quot;&gt;Conflicts&lt;/h4&gt;&lt;/div&gt;
&lt;p&gt;TypeScript shows direct conflicts when importing or re-exporting the same named
export from different files. Except when the problem is more subtle and the
chain spans more than one file. Knip warns:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://knip.dev/screenshots/editors-and-agents/conflict.webp&quot; alt=&quot;Conflicts&quot;&gt;&lt;/p&gt;
&lt;div&gt;&lt;h4 id=&quot;branching&quot;&gt;Branching&lt;/h4&gt;&lt;/div&gt;
&lt;p&gt;Branched or diamond-shaped imports chains indicate unnecessary re-exports and
complexity. They help to untangle large codebases and shrink or get rid of
barrel files. Knip warns:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://knip.dev/screenshots/editors-and-agents/branch.webp&quot; alt=&quot;Branching&quot;&gt;&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;vs-code-extension-settings&quot;&gt;VS Code Extension Settings&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src=&quot;https://knip.dev/screenshots/editors-and-agents/vscode-extension-settings.webp&quot; alt=&quot;VS Code Extension Settings&quot;&gt;&lt;/p&gt;</content:encoded><category>Announcement</category></item><item><title>The State of Knip</title><link>https://knip.dev/blog/state-of-knip</link><guid isPermaLink="true">https://knip.dev/blog/state-of-knip</guid><pubDate>Fri, 28 Feb 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Honestly, Knip was a bit of a “cursed” project from the get-go. Getting anywhere
near a level of being broadly-ish valuable requires a good amount of
&lt;del&gt;foolishness&lt;/del&gt; determination, and it has always been clear it would stay far
from perfect. It’s telling that most of &lt;a href=&quot;../explanations/comparison-and-migration&quot;&gt;similar projects&lt;/a&gt; have been
abandoned.&lt;/p&gt;
&lt;p&gt;And even though Knip is in its infancy, this update is meant as a sign we feel
we’re still on to something. External indicators include increased usage looking
at numbers such as dependent repositories on GitHub and weekly downloads on npm,
and bug reports about increasingly less rudimentary issues.&lt;/p&gt;

&lt;div&gt;&lt;h2 id=&quot;two-cases&quot;&gt;Two Cases&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;For those interested, let’s take a look at two cases that hopefully give an
impression of how Knip works under the hood and the level of issues we’re
currently dealing with. It’s assumed you already have a basic understanding of
Knip (otherwise please consider to read at least &lt;a href=&quot;../explanations/entry-files&quot;&gt;entry files&lt;/a&gt; and
&lt;a href=&quot;../explanations/plugins&quot;&gt;plugins&lt;/a&gt; first).&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;case-1-nextjs&quot;&gt;Case 1: Next.js&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;Let’s say this default configuration represents, greatly simplified, &lt;a href=&quot;../reference/plugins/next#default-configuration&quot;&gt;the
default &lt;code dir=&quot;auto&quot;&gt;entry&lt;/code&gt; patterns&lt;/a&gt; for projects using Next.js:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;next&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;&quot;entry&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span&gt;&quot;next.config.ts&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;src/pages/**/*.tsx&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Those files will be searched for and then statically analyzed to collect
&lt;code dir=&quot;auto&quot;&gt;import&lt;/code&gt; statements and find other local files and external dependencies. This
is the generic way Knip handles all source files.&lt;/p&gt;
&lt;p&gt;However, the game changes if the project uses the following Next.js
configuration:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;next.config.ts&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;nextConfig&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;pageExtensions&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span&gt;&apos;page.tsx&apos;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;};&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;default&lt;/span&gt;&lt;span&gt; nextConfig;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Next.js will now look for files matching &lt;code dir=&quot;auto&quot;&gt;src/pages/**/*.page.tsx&lt;/code&gt; instead (note
the subtle change of the glob pattern). Knip should respect this to find used
and unused files properly.&lt;/p&gt;
&lt;p&gt;Moving the burden to users for them to either not notice at all and get
incorrect results, or having to override the &lt;code dir=&quot;auto&quot;&gt;next.entry&lt;/code&gt; patterns and include
&lt;code dir=&quot;auto&quot;&gt;src/pages/**/*.page.tsx&lt;/code&gt; isn’t good DX. Knip should take care of it.&lt;/p&gt;
&lt;p&gt;To get the configuration object and the value of &lt;code dir=&quot;auto&quot;&gt;pageExtensions&lt;/code&gt;, Knip has to
actually load and execute &lt;code dir=&quot;auto&quot;&gt;next.config.ts&lt;/code&gt; ¹… and trouble is right around the
corner:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;next.config.ts&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;nextConfig&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;pageExtensions&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span&gt;&apos;page.tsx&apos;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;env&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;BASE_URL&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;process&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;env&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;BASE_URL&lt;/span&gt;&lt;span&gt;.toLowerCase&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;};&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;default&lt;/span&gt;&lt;span&gt; nextConfig;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;$&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;💥&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;LoaderError:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Error&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;loading&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;next.config.ts&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;💥&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Reason:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Cannot&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;read&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;properties&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;of&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;undefined&lt;/span&gt;&lt;span&gt; (reading &lt;/span&gt;&lt;span&gt;&apos;toLowerCase&apos;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Obviously a contrived example, but the gist is that lots of tooling
configuration expects environment variables to be defined. But when running Knip
there might not be a mechanism to set those. Clearly a breaking change when Knip
starts doing this, only for Next.js projects with a configuration file that
doesn’t read environment variables safely (or has other contextual
dependencies).&lt;/p&gt;
&lt;p&gt;By the way, &lt;a href=&quot;../reference/plugins/eslint#eslint-v9&quot;&gt;the ESLint v9 plugin&lt;/a&gt; has a similar issue.&lt;/p&gt;
&lt;p&gt;¹ Another approach could be to statically analyze the &lt;code dir=&quot;auto&quot;&gt;next.config.ts&lt;/code&gt;
configuration file. That would require some additional efforts and get us only
so far, but is definitely useful in some cases and on the radar.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; This has been solved in the Next.js plugin in v5.48.0.&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;case-2-knip-does-that&quot;&gt;Case 2: Knip does that?!&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;To further bring down user configuration and the number of false positives, the
system required more components. New components have been introduced to keep
improving and nail it for an increasing number of projects. This case is an
illustration of some of those components.&lt;/p&gt;
&lt;p&gt;Let’s just dive into this example and find out what’s happening:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;package.json&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;scripts&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;&quot;test&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;yarn --cwd packages/frontend vitest -c vitest.components.config.ts&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Orchestration is necessary between various components within Knip, such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Plugins, the Vitest plugin parses &lt;code dir=&quot;auto&quot;&gt;vitest.components.config.ts&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Custom CLI argument parsing for executables, e.g. &lt;code dir=&quot;auto&quot;&gt;yarn --cwd [dir]&lt;/code&gt; and
&lt;code dir=&quot;auto&quot;&gt;vitest --config [file]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;The workspace graph, to see &lt;code dir=&quot;auto&quot;&gt;packages/frontend&lt;/code&gt; is a descendant workspace of
the root workspace&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Patterns like in the script above do not occur only in &lt;code dir=&quot;auto&quot;&gt;package.json&lt;/code&gt; files, but
could be anywhere. Here’s a similar example in a GitHub Actions workflow:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;.github/workflows/test.yml&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;jobs&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;integration&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;runs-on&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;ubuntu-latest&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;steps&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;run&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;playwright test -c playwright.e2e.config.ts&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;working-directory&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;e2e&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;The pattern is very similar, because Knip needs to assign a configuration file
to a specific workspace (assuming there’s one in &lt;code dir=&quot;auto&quot;&gt;./e2e&lt;/code&gt;) and apply the Vitest
configuration to that particular workspace with its own set of directory and
entry file patterns.&lt;/p&gt;
&lt;p&gt;An essential part of Knip is to build up the module graph for source files. With
the configuration files still in mind, this is the pattern Knip follows towards
this goal:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Find configuration files at default and custom locations&lt;/li&gt;
&lt;li&gt;Assign them to the right workspace&lt;/li&gt;
&lt;li&gt;Run plugins in their own workspace to take entry file patterns from the
configuration objects&lt;/li&gt;
&lt;li&gt;Load and parse configuration files to get referenced dependencies&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The referenced dependencies are stored in the &lt;code dir=&quot;auto&quot;&gt;DependencyDeputy&lt;/code&gt; class to
eventually determine what dependencies are unused or missing in &lt;code dir=&quot;auto&quot;&gt;package.json&lt;/code&gt;
in each workspace.&lt;/p&gt;
&lt;p&gt;Both the configuration and entry files are then used to start building up the
module graph.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;comprehensive&quot;&gt;Comprehensive&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Discussing the two cases briefly covers only part of the whole process. This
might give a sense of the reason why Knip is pretty comprehensive. After all,
building the module graph for internal source files to find unused files and
exports requires the list of external dependencies including internal
workspaces. And on the other hand, a complete module graph is required to find
unused or missing external dependencies.&lt;/p&gt;
&lt;p&gt;The comprehensiveness also requires a range of components in the system, such as
the aforementioned ones, &lt;a href=&quot;../features/compilers&quot;&gt;compilers for popular frameworks&lt;/a&gt; and a &lt;a href=&quot;../features/script-parser&quot;&gt;script
parser&lt;/a&gt;, and other affordances such as &lt;a href=&quot;../features/auto-fix&quot;&gt;auto-fix&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;That said, code organization could be improved to make it more accessible for
contributions and, for instance, expose programmatic APIs to use the generated
module graph outside of Knip. Additionally, existing plugins can better take
advantage of existing components in the system, and new plugins can be developed
to further reduce user configuration and false positives.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;the-end&quot;&gt;The End&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;That’s all for today, thanks for reading! Have a great one, and don’t forget:
Knip it before you ship it! ✂️&lt;/p&gt;</content:encoded><category>Update</category></item><item><title>Two Years</title><link>https://knip.dev/blog/two-years</link><guid isPermaLink="true">https://knip.dev/blog/two-years</guid><pubDate>Fri, 04 Oct 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Exactly two years ago the first commit was pushed to GitHub and the first
version of Knip was published to the npm registry. The name was initially
&lt;a href=&quot;https://www.npmjs.com/package/exportman/v/0.0.1&quot;&gt;Exportman&lt;/a&gt;! We’ve come a loooong way… The JavaScript ecosystem is highly
dynamic and I’ve been crazy enough to even start, try and keep up with it! But
here we are.&lt;/p&gt;

&lt;p&gt;October 4th is World Animal Day, so there was really no choice but bring in the
crazy mascot that early adopters may remember:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://knip.dev/cow-with-orange-scissors-van-gogh-style.webp&quot; alt=&quot;Crazy cow with orange scissors in Van Gogh style&quot;&gt;&lt;/p&gt;
&lt;p&gt;Today we celebrate an unknown but CRAZY amount of clutter removed from so many
codebases with Knip’s help. Every single day I see many of those little red
blocks for thousands of lines of deleted code and dependencies. Call me crazy,
but to me this is pure joy and never gets old!    🟩 🟥 🟥 🟥 🟥&lt;/p&gt;
&lt;div data-button-container=&quot;&quot;&gt;&lt;button&gt;Hooray, release the clutter!&lt;/button&gt;&lt;/div&gt;
&lt;div&gt;&lt;h2 id=&quot;smiling-faces&quot;&gt;Smiling faces&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;The actual amount of code and dependencies removed and the number of smiling
faces this brings is what matters most, but also remain a good mystery. Clearly
more and more projects add Knip to their projects and CI workflows to keep
ever-growing codebases tidy. It’s wonderful to see if Knip plays its part in
today’s ecosystem to help with that. Thanks for bearing with me, here’s to a lot
more little red blocks in your PRs!    🟩 🟥 🟥 🟥 🟥&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;updates&quot;&gt;Updates&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Why not throw in some freshly cooked updates in &lt;a href=&quot;https://github.com/webpro-nl/knip/releases/tag/5.31.0&quot;&gt;v5.31.0&lt;/a&gt; for you while we’re
at it:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;../features/auto-fix&quot;&gt;The auto-fix feature&lt;/a&gt; has been completely revamped, it’s much better and a
lot more comprehensive! You have to see it to believe it.&lt;/li&gt;
&lt;li&gt;Knip has upgraded to &lt;a href=&quot;https://github.com/unjs/jiti&quot;&gt;Jiti v2&lt;/a&gt;, resolving a bunch of known issues when
loading configuration files authored in TypeScript and ESM, such as:&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;Cannot use &apos;import.meta&apos; outside a module&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;await is only valid in async functions and the top level bodies of modules&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;Unexpected identifier &apos;Promise&apos;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;Reflect.metadata is not a function&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;And that pesky “CJS build of Vite’s Node API is deprecated” warning is finally
gone!&lt;/p&gt;
&lt;p&gt;Thanks to everyone involved in making this happen, it’s truly much appreciated.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;stable&quot;&gt;Stable&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;If you haven’t tried Knip recently, it’s worth taking another look! Version 5
was released 8 months ago, and even though there were no breaking changes, it
includes many enhancements. In fact, Knip has been largely stable since version
3, which came out a year ago. Many releases have a compound effect, as Knip has
kept the pace for two years now.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;projects-using-knip&quot;&gt;Projects using Knip&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;This list of projects using Knip to keep their codebases tidy is something I
couldn’t be more proud of:&lt;/p&gt;
&lt;section&gt;&lt;div id=&quot;projects&quot;&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:adobe knip&quot;&gt;&lt;svg viewBox=&quot;0 0 64.57 35&quot;&gt;
  
  &lt;path d=&quot;M6.27,10.22h4.39l6.2,14.94h-4.64l-3.92-9.92-2.59,6.51h3.08l1.23,3.41H0l6.27-14.94ZM22.03,13.32c.45,0,.94.04,1.43.16v-3.7h3.88v14.72c-.89.4-2.81.89-4.73.89-3.48,0-6.47-1.98-6.47-5.93s2.88-6.13,5.89-6.13ZM22.52,22.19c.36,0,.65-.07.94-.16v-5.42c-.29-.11-.58-.16-.96-.16-1.27,0-2.45.94-2.45,2.92s1.2,2.81,2.47,2.81ZM34.25,13.32c3.23,0,5.98,2.18,5.98,6.02s-2.74,6.02-5.98,6.02-6-2.18-6-6.02,2.72-6.02,6-6.02ZM34.25,22.13c1.11,0,2.14-.89,2.14-2.79s-1.03-2.79-2.14-2.79-2.12.89-2.12,2.79.96,2.79,2.12,2.79ZM41.16,9.78h3.9v3.7c.47-.09.96-.16,1.45-.16,3.03,0,5.84,1.98,5.84,5.86,0,4.1-2.99,6.18-6.53,6.18-1.52,0-3.46-.31-4.66-.87v-14.72ZM45.91,22.17c1.34,0,2.56-.96,2.56-2.94,0-1.85-1.2-2.72-2.5-2.72-.36,0-.65.04-.91.16v5.35c.22.09.51.16.85.16ZM58.97,13.32c2.92,0,5.6,1.87,5.6,5.64,0,.51-.02,1-.09,1.49h-7.27c.4,1.32,1.56,1.94,3.01,1.94,1.18,0,2.27-.29,3.5-.82v2.97c-1.14.58-2.5.82-3.9.82-3.7,0-6.58-2.23-6.58-6.02s2.61-6.02,5.73-6.02ZM60.93,18.02c-.2-1.27-1.05-1.78-1.92-1.78s-1.58.54-1.87,1.78h3.79Z&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:ag-grid knip&quot;&gt;&lt;svg viewBox=&quot;0 0 154 40&quot;&gt;
  &lt;path fill=&quot;currentColor&quot; d=&quot;M147.979 5.6v28.417h-4.768l-.127-2.988a8.318 8.318 0 0 1-2.67 2.479c-1.081.572-2.416.89-3.942.89-1.335 0-2.606-.254-3.687-.699-1.144-.509-2.162-1.144-2.988-2.034a9.581 9.581 0 0 1-1.971-3.179c-.508-1.208-.699-2.606-.699-4.132 0-1.526.254-2.924.699-4.196.509-1.271 1.145-2.352 1.971-3.242.826-.89 1.844-1.589 2.988-2.098 1.144-.509 2.352-.763 3.687-.763 1.526 0 2.797.254 3.878.827 1.081.572 1.971 1.335 2.67 2.415V5.664h4.959V5.6Zm-10.426 24.539c1.653 0 2.924-.572 3.941-1.653s1.526-2.543 1.526-4.323c0-1.78-.509-3.179-1.526-4.323-1.017-1.081-2.288-1.653-3.941-1.653-1.59 0-2.925.572-3.878 1.653-1.017 1.081-1.526 2.543-1.526 4.323 0 1.78.509 3.179 1.526 4.259 1.017 1.145 2.288 1.717 3.878 1.717M119.067 5.6h4.959v5.849h-4.959zM119.067 14.373h4.959v19.644h-4.959zM108.831 16.979c1.59-2.352 5.595-2.606 7.248-2.606v4.577c-2.035 0-4.069.064-5.277.954-1.208.89-1.843 2.098-1.843 3.56v10.553H104V14.373h4.768l.063 2.606ZM26.489 28.677h-12.46l-2.162 5.34H6.4L17.907 7.062h4.768l11.506 26.955H28.65l-2.161-5.34Zm-1.717-4.26-4.513-10.998-4.514 10.998h9.027ZM62.024 18.654H49.738v4.267h6.963c-.219 2.139-1.021 3.846-2.406 5.123-1.385 1.276-3.208 1.914-5.469 1.914-1.288 0-2.461-.231-3.518-.693a7.817 7.817 0 0 1-2.717-1.95c-.753-.839-1.337-1.848-1.749-3.027-.414-1.179-.62-2.486-.62-3.92 0-1.433.206-2.739.62-3.919.412-1.178.996-2.187 1.749-3.026a7.769 7.769 0 0 1 2.734-1.95c1.07-.462 2.248-.693 3.538-.693 2.669 0 4.696.642 6.081 1.927l3.284-3.286c-2.486-1.934-5.63-2.907-9.439-2.907-2.114 0-4.023.334-5.723 1.002-1.703.669-3.161 1.605-4.376 2.807-1.216 1.204-2.151 2.657-2.807 4.357-.657 1.702-.985 3.599-.985 5.688 0 2.066.334 3.957 1.003 5.67.668 1.714 1.61 3.173 2.825 4.375 1.216 1.204 2.673 2.139 4.375 2.808 1.702.668 3.597 1.002 5.688 1.002 2.042 0 3.883-.334 5.524-1.002 1.64-.669 3.038-1.604 4.193-2.808 1.154-1.202 2.042-2.661 2.661-4.375.621-1.713.93-3.604.93-5.67 0-.291-.007-.577-.017-.856-.014-.28-.032-.565-.056-.858M100.792 18.654H88.506v4.267h6.963c-.219 2.139-1.021 3.846-2.406 5.123-1.385 1.276-3.208 1.914-5.469 1.914-1.288 0-2.461-.231-3.518-.693a7.817 7.817 0 0 1-2.717-1.95c-.753-.839-1.337-1.848-1.749-3.027-.414-1.179-.62-2.486-.62-3.92 0-1.433.206-2.739.62-3.919.412-1.178.996-2.187 1.749-3.026a7.764 7.764 0 0 1 2.735-1.95c1.069-.462 2.247-.693 3.537-.693 2.669 0 4.697.642 6.081 1.927l3.284-3.286c-2.486-1.934-5.63-2.907-9.438-2.907-2.115 0-4.024.334-5.724 1.002-1.703.669-3.161 1.605-4.376 2.807-1.216 1.204-2.151 2.657-2.807 4.357-.657 1.702-.985 3.599-.985 5.688 0 2.066.334 3.957 1.003 5.67.668 1.714 1.61 3.173 2.825 4.375 1.216 1.204 2.673 2.139 4.375 2.808 1.702.668 3.597 1.002 5.689 1.002 2.041 0 3.883-.334 5.523-1.002 1.64-.669 3.038-1.604 4.193-2.808 1.154-1.202 2.042-2.661 2.661-4.375.621-1.713.93-3.604.93-5.67 0-.291-.007-.577-.017-.856-.014-.28-.032-.565-.056-.858&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;&lt;svg viewBox=&quot;0 0 64 48&quot;&gt;
  
  &lt;rect x=&quot;51&quot; y=&quot;10&quot; width=&quot;7&quot; height=&quot;8&quot;&gt;&lt;/rect&gt;
  &lt;path d=&quot;M58,10l-17,0l-8,8l25,0l0,-8Z&quot;&gt;&lt;/path&gt;
  &lt;rect x=&quot;36&quot; y=&quot;22&quot; width=&quot;7&quot; height=&quot;8&quot;&gt;&lt;/rect&gt;
  &lt;path d=&quot;M43,30l0,-7.995l-14,-0l-8.008,7.995l22.008,0Z&quot;&gt;&lt;/path&gt;
  &lt;rect x=&quot;24&quot; y=&quot;34&quot; width=&quot;7&quot; height=&quot;8&quot;&gt;&lt;/rect&gt;
  &lt;path d=&quot;M13,38.01l4,-4.01l14,0l0,8l-18,0l0,-3.99Z&quot;&gt;&lt;/path&gt;
  &lt;rect x=&quot;11&quot; y=&quot;6&quot; width=&quot;7&quot; height=&quot;8&quot;&gt;&lt;/rect&gt;
  &lt;path d=&quot;M41,10l-4,4l-26,0l0,-8l30,0l0,4Z&quot;&gt;&lt;/path&gt;
  &lt;rect x=&quot;16&quot; y=&quot;18&quot; width=&quot;7&quot; height=&quot;8&quot;&gt;&lt;/rect&gt;
  &lt;path d=&quot;M16,26l9,0l8,-8l-17,-0l0,8Z&quot;&gt;&lt;/path&gt;
  &lt;rect x=&quot;6&quot; y=&quot;30&quot; width=&quot;7&quot; height=&quot;8&quot;&gt;&lt;/rect&gt;
  &lt;path d=&quot;M6,37.988l7,0.012l7.992,-8l-14.992,-0.047l-0,8.035Z&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:anthropics knip&quot;&gt;&lt;svg viewBox=&quot;0 0 143 16&quot;&gt;
  &lt;defs&gt;
    &lt;clipPath id=&quot;anthropic-a&quot;&gt;
      &lt;path d=&quot;M0 0h143v16H0z&quot;&gt;&lt;/path&gt;
    &lt;/clipPath&gt;
    &lt;clipPath id=&quot;anthropic-b&quot;&gt;
      &lt;path d=&quot;M0 0h143v16H0z&quot;&gt;&lt;/path&gt;
    &lt;/clipPath&gt;
    &lt;clipPath id=&quot;anthropic-c&quot;&gt;
      &lt;path d=&quot;M0 0h143v16H0z&quot;&gt;&lt;/path&gt;
    &lt;/clipPath&gt;
    &lt;clipPath id=&quot;anthropic-d&quot;&gt;
      &lt;path d=&quot;M0 0h143v16H0z&quot;&gt;&lt;/path&gt;
    &lt;/clipPath&gt;
    &lt;clipPath id=&quot;anthropic-e&quot;&gt;
      &lt;path d=&quot;M0 0h143v16H0z&quot;&gt;&lt;/path&gt;
    &lt;/clipPath&gt;
    &lt;clipPath id=&quot;anthropic-f&quot;&gt;
      &lt;path d=&quot;M0 0h143v16H0z&quot;&gt;&lt;/path&gt;
    &lt;/clipPath&gt;
    &lt;clipPath id=&quot;anthropic-g&quot;&gt;
      &lt;path d=&quot;M0 0h143v16H0z&quot;&gt;&lt;/path&gt;
    &lt;/clipPath&gt;
    &lt;clipPath id=&quot;anthropic-h&quot;&gt;
      &lt;path d=&quot;M0 0h143v16H0z&quot;&gt;&lt;/path&gt;
    &lt;/clipPath&gt;
    &lt;clipPath id=&quot;anthropic-i&quot;&gt;
      &lt;path d=&quot;M0 0h143v16H0z&quot;&gt;&lt;/path&gt;
    &lt;/clipPath&gt;
    &lt;clipPath id=&quot;anthropic-j&quot;&gt;
      &lt;path d=&quot;M0 0h143v16H0z&quot;&gt;&lt;/path&gt;
    &lt;/clipPath&gt;
    &lt;clipPath id=&quot;anthropic-k&quot;&gt;
      &lt;path d=&quot;M0 0h143v16H0z&quot;&gt;&lt;/path&gt;
    &lt;/clipPath&gt;
    &lt;clipPath id=&quot;anthropic-l&quot;&gt;
      &lt;path d=&quot;M0 0h143v16H0z&quot;&gt;&lt;/path&gt;
    &lt;/clipPath&gt;
  &lt;/defs&gt;
  &lt;g clip-path=&quot;url(#anthropic-a)&quot;&gt;
    &lt;path fill=&quot;none&quot; d=&quot;M142.5 0v16H0V0h142.5z&quot;&gt;&lt;/path&gt;
    &lt;g clip-path=&quot;url(#anthropic-b)&quot;&gt;
      &lt;g clip-path=&quot;url(#anthropic-c)&quot;&gt;
        &lt;g clip-path=&quot;url(#anthropic-d)&quot;&gt;
          &lt;path fill=&quot;currentColor&quot; d=&quot;M10.716 10.829 3.756 0H0v15.47h3.204V4.641l6.96 10.829h3.756V0h-3.204v10.829z&quot; transform=&quot;translate(18.3 .27)&quot;&gt;&lt;/path&gt;
        &lt;/g&gt;
        &lt;g clip-path=&quot;url(#anthropic-e)&quot;&gt;
          &lt;path fill=&quot;currentColor&quot; d=&quot;M0 2.984h5.193V15.47h3.314V2.984H13.7V0H0v2.984z&quot; transform=&quot;translate(34.87 .27)&quot;&gt;&lt;/path&gt;
        &lt;/g&gt;
        &lt;g clip-path=&quot;url(#anthropic-f)&quot;&gt;
          &lt;path fill=&quot;currentColor&quot; d=&quot;M10.606 6.166H3.314V0H0v15.47h3.314V9.15h7.292v6.32h3.314V0h-3.314v6.166z&quot; transform=&quot;translate(51.23 .27)&quot;&gt;&lt;/path&gt;
        &lt;/g&gt;
        &lt;g clip-path=&quot;url(#anthropic-g)&quot;&gt;
          &lt;path fill=&quot;currentColor&quot; d=&quot;M3.315 2.984h4.089c1.635 0 2.497.596 2.497 1.723 0 1.127-.862 1.724-2.497 1.724H3.315V2.984zm9.901 1.723C13.216 1.79 11.073 0 7.56 0H0v15.47h3.315V9.415h3.69l3.316 6.055h3.67l-3.672-6.517c1.843-.708 2.897-2.2 2.897-4.246z&quot; transform=&quot;translate(69.24 .27)&quot;&gt;&lt;/path&gt;
        &lt;/g&gt;
        &lt;g clip-path=&quot;url(#anthropic-h)&quot;&gt;
          &lt;path fill=&quot;currentColor&quot; d=&quot;M7.622 12.906c-2.607 0-4.198-1.856-4.198-4.884 0-3.072 1.591-4.928 4.198-4.928 2.585 0 4.154 1.856 4.154 4.928 0 3.028-1.569 4.884-4.154 4.884zM7.622 0C3.16 0 0 3.315 0 8.022 0 12.685 3.16 16 7.622 16c4.44 0 7.578-3.315 7.578-7.978C15.2 3.315 12.063 0 7.622 0z&quot; transform=&quot;translate(84.99)&quot;&gt;&lt;/path&gt;
        &lt;/g&gt;
        &lt;g clip-path=&quot;url(#anthropic-i)&quot;&gt;
          &lt;path fill=&quot;currentColor&quot; d=&quot;M7.406 6.873h-4.09v-3.89h4.09c1.636 0 2.498.664 2.498 1.945 0 1.282-.862 1.945-2.498 1.945zM7.56 0H0v15.47h3.316V9.857h4.245c3.515 0 5.659-1.857 5.659-4.929S11.076 0 7.56 0z&quot; transform=&quot;translate(103.29 .27)&quot;&gt;&lt;/path&gt;
        &lt;/g&gt;
        &lt;g clip-path=&quot;url(#anthropic-j)&quot;&gt;
          &lt;path fill=&quot;currentColor&quot; d=&quot;M10.915 10.541c-.575 1.503-1.724 2.365-3.292 2.365-2.607 0-4.198-1.856-4.198-4.884 0-3.072 1.59-4.928 4.198-4.928 1.568 0 2.717.862 3.292 2.365h3.513C13.566 2.144 10.98 0 7.623 0 3.16 0 0 3.315 0 8.022 0 12.685 3.16 16 7.623 16c3.38 0 5.965-2.166 6.827-5.459h-3.535z&quot; transform=&quot;translate(128.04)&quot;&gt;&lt;/path&gt;
        &lt;/g&gt;
        &lt;g clip-path=&quot;url(#anthropic-k)&quot;&gt;
          &lt;path fill=&quot;currentColor&quot; d=&quot;m0 0 6.168 15.47H9.55L3.382 0H0z&quot; transform=&quot;translate(117.83 .27)&quot;&gt;&lt;/path&gt;
        &lt;/g&gt;
        &lt;g clip-path=&quot;url(#anthropic-l)&quot;&gt;
          &lt;path fill=&quot;currentColor&quot; d=&quot;m5.825 9.348 2.11-5.436 2.11 5.436h-4.22zM6.167 0 0 15.47h3.448l1.261-3.249h6.452l1.26 3.249h3.449L9.703 0H6.167z&quot; transform=&quot;translate(0 .27)&quot;&gt;&lt;/path&gt;
        &lt;/g&gt;
      &lt;/g&gt;
    &lt;/g&gt;
  &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:arktypeio knip&quot;&gt;&lt;svg viewBox=&quot;0 0 100 100&quot;&gt;
  &lt;rect fill=&quot;#085b92&quot; width=&quot;100&quot; height=&quot;100&quot; rx=&quot;10&quot;&gt;&lt;/rect&gt;
  &lt;g fill=&quot;#f5cf8f&quot;&gt;
    &lt;path d=&quot;M 53.315857,82.644683 H 39.977324 L 36.75999,93.838326 H 28.582598 L 42.85952,46.918864 h 7.507114 l 14.343949,46.919462 h -8.177392 z m -2.14489,-7.507114 -4.55789,-15.885589 -4.490863,15.885589 z&quot;&gt;&lt;/path&gt;
    &lt;path d=&quot;M 73.35719,54.425978 H 62.096519 v -7.507114 h 30.698733 v 7.507114 H 81.534582 V 93.838326 H 73.35719 Z&quot;&gt;&lt;/path&gt;
  &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:withastro knip&quot;&gt;&lt;svg viewBox=&quot;0 -6 381 100&quot;&gt;
  &lt;path fill=&quot;currentColor&quot; d=&quot;M25.8 85.2c-4.5-4.2-5.9-12.8-4-19.1 3.3 4 7.8 5.2 12.5 6 7.2 1 14.3.6 21-2.7l2.4-1.4c.6 1.8.8 3.7.5 5.6-.5 4.5-2.8 8-6.4 10.7-1.4 1.1-3 2-4.5 3-4.6 3.2-5.8 6.8-4 12.1v.6a12 12 0 0 1-5.3-4.6 13 13 0 0 1-2-7c0-1.2 0-2.5-.2-3.7-.4-3-1.8-4.3-4.5-4.4a5.2 5.2 0 0 0-5.4 4.2l-.1.7Z&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;currentColor&quot; d=&quot;M0 65s13.4-6.5 26.8-6.5l10.1-31.3c.4-1.5 1.5-2.5 2.7-2.5 1.3 0 2.4 1 2.8 2.5l10 31.3c16 0 26.9 6.5 26.9 6.5L56.5 3c-.6-1.8-1.7-3-3.2-3H26c-1.5 0-2.5 1.2-3.2 3L0 65Zm141-19.9c0 5.5-6.8 8.8-16.2 8.8-6.2 0-8.3-1.5-8.3-4.7 0-3.4 2.6-5 8.8-5 5.5 0 10.3 0 15.7.8v.1Zm.1-6.8a71 71 0 0 0-14.5-1.2c-17.7 0-26 4.2-26 14 0 10.1 5.7 14 18.8 14 11.2 0 18.8-2.8 21.6-9.8h.4l-.1 4.7c0 3.6.6 3.9 3.5 3.9h13.8c-.8-2.2-1.2-8.2-1.2-13.4l.2-15.4c0-11.5-6.9-18.8-28.5-18.8-9.3 0-19.6 1.6-27.5 4 .8 3.1 1.8 9.4 2.3 13.5a61.4 61.4 0 0 1 24-4.5c10.4 0 13.2 2.3 13.2 7.1v2Zm37.9 10c-1.9.3-4.5.3-7 .3a60 60 0 0 1-7.1-.4l-.1 2c0 9.5 6.2 15 28.1 15 20.6 0 27.3-5.5 27.3-15.1 0-9.2-4.4-13.7-24-14.7-15.2-.6-16.6-2.3-16.6-4.2 0-2.2 2-3.4 12.2-3.4 10.6 0 13.4 1.5 13.4 4.5v.7a153 153 0 0 1 14.1 0v-1.7c0-11.2-9.2-14.9-27.2-14.9-20.3 0-27 5-27 14.6 0 8.7 5.4 14.1 24.8 15 14.3.4 16 2 16 4.2 0 2.4-2.4 3.5-12.5 3.5-11.5 0-14.4-1.6-14.4-5v-.4Zm66-40.1a58.2 58.2 0 0 1-20.8 11.6v10.8h5V47c0 10 5.3 17.7 21.8 17.7 7 0 11.6-.8 17.4-2-.6-3.7-1.3-9.4-1.5-13.8a41 41 0 0 1-12.6 1.8c-6.6 0-9.3-1.8-9.3-7.1V30.8c8.6 0 17.1.2 22.1.4 0-4 .1-9.7.3-13.5l-22.1.2.2-9.7h-.5Zm44.7 20.1.3-10.6h-15.1c.2 6.5.2 13.3.2 23 0 10 0 16.7-.2 23.2H292c-.3-4.6-.3-12.3-.3-18.9 0-10.3 4.2-13.3 13.7-13.3 4.4 0 7.6.5 10.3 1.5.1-3.8.9-11.4 1.3-14.7a34 34 0 0 0-9.8-1.4c-8.2 0-14.2 3.3-17 11.3l-.6-.1Zm75.1 12.2c0 8.3-6 12.2-15.4 12.2S334 49 334 40.5c0-8.6 6-11.8 15.4-11.8 9.3 0 15.4 3.5 15.4 11.8Zm15.7-.4c0-16.5-13-24-31.1-24-18.3 0-30.8 7.5-30.8 24s11.6 25.3 30.7 25.3c19.2 0 31.2-8.8 31.2-25.3Z&quot;&gt;&lt;/path&gt;
  &lt;defs&gt;
    &lt;linearGradient id=&quot;gradient&quot; x1=&quot;21&quot; x2=&quot;64.6&quot; y1=&quot;100&quot; y2=&quot;79.4&quot; gradientUnits=&quot;userSpaceOnUse&quot;&gt;
      &lt;stop stop-color=&quot;#D83333&quot;&gt;&lt;/stop&gt;
      &lt;stop offset=&quot;1&quot; stop-color=&quot;#F041FF&quot;&gt;&lt;/stop&gt;
    &lt;/linearGradient&gt;
  &lt;/defs&gt;
  
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:aws-samples knip&quot;&gt;&lt;svg viewBox=&quot;0 0 304 182&quot;&gt;
  
  &lt;path d=&quot;M86.4 66.4c0 3.7.4 6.7 1.1 8.9.8 2.2 1.8 4.6 3.2 7.2.5.8.7 1.6.7 2.3 0 1-.6 2-1.9 3L83.2 92c-.9.6-1.8.9-2.6.9-1 0-2-.5-3-1.4-1.4-1.5-2.6-3.1-3.6-4.7-1-1.7-2-3.6-3.1-5.9-7.8 9.2-17.6 13.8-29.4 13.8-8.4 0-15.1-2.4-20-7.2-4.9-4.8-7.4-11.2-7.4-19.2 0-8.5 3-15.4 9.1-20.6 6.1-5.2 14.2-7.8 24.5-7.8 3.4 0 6.9.3 10.6.8 3.7.5 7.5 1.3 11.5 2.2v-7.3c0-7.6-1.6-12.9-4.7-16-3.2-3.1-8.6-4.6-16.3-4.6-3.5 0-7.1.4-10.8 1.3-3.7.9-7.3 2-10.8 3.4-1.6.7-2.8 1.1-3.5 1.3-.7.2-1.2.3-1.6.3-1.4 0-2.1-1-2.1-3.1v-4.9c0-1.6.2-2.8.7-3.5.5-.7 1.4-1.4 2.8-2.1 3.5-1.8 7.7-3.3 12.6-4.5C41 1.9 46.2 1.3 51.7 1.3c11.9 0 20.6 2.7 26.2 8.1 5.5 5.4 8.3 13.6 8.3 24.6v32.4zM45.8 81.6c3.3 0 6.7-.6 10.3-1.8 3.6-1.2 6.8-3.4 9.5-6.4 1.6-1.9 2.8-4 3.4-6.4.6-2.4 1-5.3 1-8.7v-4.2c-2.9-.7-6-1.3-9.2-1.7-3.2-.4-6.3-.6-9.4-.6-6.7 0-11.6 1.3-14.9 4-3.3 2.7-4.9 6.5-4.9 11.5 0 4.7 1.2 8.2 3.7 10.6 2.4 2.5 5.9 3.7 10.5 3.7zm80.3 10.8c-1.8 0-3-.3-3.8-1-.8-.6-1.5-2-2.1-3.9L96.7 10.2c-.6-2-.9-3.3-.9-4 0-1.6.8-2.5 2.4-2.5h9.8c1.9 0 3.2.3 3.9 1 .8.6 1.4 2 2 3.9l16.8 66.2 15.6-66.2c.5-2 1.1-3.3 1.9-3.9.8-.6 2.2-1 4-1h8c1.9 0 3.2.3 4 1 .8.6 1.5 2 1.9 3.9l15.8 67 17.3-67c.6-2 1.3-3.3 2-3.9.8-.6 2.1-1 3.9-1h9.3c1.6 0 2.5.8 2.5 2.5 0 .5-.1 1-.2 1.6-.1.6-.3 1.4-.7 2.5l-24.1 77.3c-.6 2-1.3 3.3-2.1 3.9-.8.6-2.1 1-3.8 1h-8.6c-1.9 0-3.2-.3-4-1-.8-.7-1.5-2-1.9-4L156 23l-15.4 64.4c-.5 2-1.1 3.3-1.9 4-.8.7-2.2 1-4 1h-8.6zm128.5 2.7c-5.2 0-10.4-.6-15.4-1.8-5-1.2-8.9-2.5-11.5-4-1.6-.9-2.7-1.9-3.1-2.8-.4-.9-.6-1.9-.6-2.8v-5.1c0-2.1.8-3.1 2.3-3.1.6 0 1.2.1 1.8.3.6.2 1.5.6 2.5 1 3.4 1.5 7.1 2.7 11 3.5 4 .8 7.9 1.2 11.9 1.2 6.3 0 11.2-1.1 14.6-3.3 3.4-2.2 5.2-5.4 5.2-9.5 0-2.8-.9-5.1-2.7-7-1.8-1.9-5.2-3.6-10.1-5.2L246 52c-7.3-2.3-12.7-5.7-16-10.2-3.3-4.4-5-9.3-5-14.5 0-4.2.9-7.9 2.7-11.1 1.8-3.2 4.2-6 7.2-8.2 3-2.3 6.4-4 10.4-5.2 4-1.2 8.2-1.7 12.6-1.7 2.2 0 4.5.1 6.7.4 2.3.3 4.4.7 6.5 1.1 2 .5 3.9 1 5.7 1.6 1.8.6 3.2 1.2 4.2 1.8 1.4.8 2.4 1.6 3 2.5.6.8.9 1.9.9 3.3v4.7c0 2.1-.8 3.2-2.3 3.2-.8 0-2.1-.4-3.8-1.2-5.7-2.6-12.1-3.9-19.2-3.9-5.7 0-10.2.9-13.3 2.8-3.1 1.9-4.7 4.8-4.7 8.9 0 2.8 1 5.2 3 7.1 2 1.9 5.7 3.8 11 5.5l14.2 4.5c7.2 2.3 12.4 5.5 15.5 9.6 3.1 4.1 4.6 8.8 4.6 14 0 4.3-.9 8.2-2.6 11.6-1.8 3.4-4.2 6.4-7.3 8.8-3.1 2.5-6.8 4.3-11.1 5.6-4.5 1.4-9.2 2.1-14.3 2.1z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M273.5 143.7c-32.9 24.3-80.7 37.2-121.8 37.2-57.6 0-109.5-21.3-148.7-56.7-3.1-2.8-.3-6.6 3.4-4.4 42.4 24.6 94.7 39.5 148.8 39.5 36.5 0 76.6-7.6 113.5-23.2 5.5-2.5 10.2 3.6 4.8 7.6z&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M287.2 128.1c-4.2-5.4-27.8-2.6-38.5-1.3-3.2.4-3.7-2.4-.8-4.5 18.8-13.2 49.7-9.4 53.3-5 3.6 4.5-1 35.4-18.6 50.2-2.7 2.3-5.3 1.1-4.1-1.9 4-9.9 12.9-32.2 8.7-37.5z&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:backstage knip&quot;&gt;&lt;svg id=&quot;Assets&quot; viewBox=&quot;0 0 2079.95 456.05&quot;&gt;
  &lt;defs&gt;
    
  &lt;/defs&gt;
  &lt;title&gt;03 Logo_Teal&lt;/title&gt;
  &lt;path d=&quot;M302.9,180a80.62,80.62,0,0,0,13.44-10.37c.8-.77,1.55-1.54,2.31-2.31a81.89,81.89,0,0,0,7.92-9.37,62.37,62.37,0,0,0,6.27-10.77,48.6,48.6,0,0,0,4.36-16.4c1.49-19.39-10-38.67-35.62-54.22L198.42,14,78.16,129.22l-78.29,75,108.6,65.9a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.8,66.42-25.69,19.16-18.36,25.52-42.12,13.7-61.87a49.69,49.69,0,0,0-6.8-8.87,89.78,89.78,0,0,0,19.28,2.15H259a85.09,85.09,0,0,0,31-5.79A80.88,80.88,0,0,0,302.9,180Zm-100.59,59.8c-19.32,18.51-50.4,21.24-75.7,5.9l-75.13-45.6,67.44-64.65,76.42,46.39C222.88,198.57,221.36,221.6,202.31,239.84Zm8.94-82.21L140.6,114.74,205,53l69.37,42.11c25.94,15.73,29.31,37.05,10.55,55A60.71,60.71,0,0,1,211.25,157.63Zm29.86,190c-19.57,18.75-46.17,29.08-74.88,29.08a123.84,123.84,0,0,1-64.11-18.19L-.13,296.51v24.67l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.85,87.85,0,0,1,241.11,347.67Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.84,123.84,0,0,1-64.11-18.19L-.13,257.52V282.2l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.68,12.88-12.35,20-27.13,19.68-41.5v-1.79A86.86,86.86,0,0,1,241.11,308.68Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.84,123.84,0,0,1-64.11-18.19L-.13,218.54v24.68l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.69,12.88-12.34,20-27.12,19.68-41.49v-1.82A87.14,87.14,0,0,1,241.11,269.7Zm83.69,25.74a94.16,94.16,0,0,1-60.19,25.86h0V348a81.6,81.6,0,0,0,51.73-22.37c14-13.38,21.15-28.11,21-42.64v-2.2A95.14,95.14,0,0,1,324.8,295.44Zm-83.69,91.21c-19.57,18.75-46.17,29.09-74.88,29.09a123.76,123.76,0,0,1-64.11-18.2L-.13,335.49v24.67l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.35,87.35,0,0,1,241.11,386.65Zm85.75-210.21c-.68.69-1.35,1.38-2.06,2.05a99.19,99.19,0,0,1-22.23,15.69,94.53,94.53,0,0,1-26.24,8.71,97.84,97.84,0,0,1-14.16,1.57c.5,1.61.9,3.25,1.25,4.9a52.7,52.7,0,0,1,1.13,12V231h.05A84.48,84.48,0,0,0,290,225.47a80.83,80.83,0,0,0,26.38-16.82c.81-.77,1.51-1.56,2.27-2.34a82,82,0,0,0,7.92-9.38,62.85,62.85,0,0,0,6.29-10.78,48.5,48.5,0,0,0,4.32-16.44c.09-1.23.2-2.47.19-3.7v-2c-.72,1-1.48,2.06-2.26,3.09A98,98,0,0,1,326.86,176.44Zm0,77.92c-.68.7-1.3,1.41-2,2.1a94.09,94.09,0,0,1-60.19,25.85h0V309h0a81.65,81.65,0,0,0,51.73-22.37,73.51,73.51,0,0,0,16.48-22.49,48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.48.19-3.71v-2.2c-.74,1.08-1.47,2.16-2.27,3.22A95.81,95.81,0,0,1,326.82,254.36Zm0-39c-.68.7-1.3,1.41-2,2.1a92.22,92.22,0,0,1-10.62,8.65,93.53,93.53,0,0,1-11.63,7,95.63,95.63,0,0,1-37.94,10.18h-.05l0,26.67h0a81.63,81.63,0,0,0,51.73-22.37c.81-.77,1.51-1.56,2.27-2.34a82,82,0,0,0,7.92-9.38,63.16,63.16,0,0,0,6.29-10.77,48.55,48.55,0,0,0,4.32-16.45c.09-1.23.2-2.47.19-3.7v-2.2c-.74,1.08-1.47,2.16-2.27,3.22A98.19,98.19,0,0,1,326.82,215.38Zm241-88.84q7.94,0,17.09.17t18.12,1a139.3,139.3,0,0,1,16.74,2.57,42.78,42.78,0,0,1,13.3,5.14,64.27,64.27,0,0,1,20.54,19.89Q662,168,662,186.54q0,19.54-9.49,33.78t-27.1,21.09v.68q22.78,4.82,34.87,20.58t12.08,38.4a72.62,72.62,0,0,1-4.83,26.06,65.29,65.29,0,0,1-14.33,22.46,71.57,71.57,0,0,1-23.47,15.78q-14,6-32.28,6H478.38V126.54Zm9,105.27q28,0,40.21-9.78t12.26-29.31q0-13-4.14-20.58a29.47,29.47,0,0,0-11.4-11.66A45,45,0,0,0,597,155.17a161.2,161.2,0,0,0-20.19-1.2h-65.6v77.84Zm16.57,112.13q21.74,0,34-11.66T639.59,300q0-12-4.48-19.88a34.85,34.85,0,0,0-11.91-12.52,50.14,50.14,0,0,0-17.09-6.52,105,105,0,0,0-20-1.88H511.17v84.7Zm274.79,26.74q-7.61,4.45-21.06,4.46-11.4,0-18.12-6.34t-6.74-20.75a70.17,70.17,0,0,1-28.13,20.75,97.87,97.87,0,0,1-57.65,3.6,53.51,53.51,0,0,1-18.82-8.58A41.19,41.19,0,0,1,705,348.56q-4.65-9.42-4.66-22.8,0-15.09,5.18-24.69a44.92,44.92,0,0,1,13.64-15.6,62.63,62.63,0,0,1,19.33-9.09q10.88-3.08,22.27-5.14,12.08-2.4,23-3.6a128,128,0,0,0,19.16-3.43c5.53-1.48,9.89-3.65,13.12-6.51s4.83-7,4.83-12.52q0-9.6-3.62-15.43a24.94,24.94,0,0,0-9.32-8.92,38.38,38.38,0,0,0-12.78-4.11,96.54,96.54,0,0,0-14-1q-18.63,0-31.07,7T736.6,249.29H707.26q.69-16.46,6.9-27.77a52.21,52.21,0,0,1,16.57-18.35,70,70,0,0,1,23.65-10.11A125.51,125.51,0,0,1,782.86,190a168.63,168.63,0,0,1,24,1.72,63.26,63.26,0,0,1,21.58,7A41.23,41.23,0,0,1,844,213.59q5.87,9.57,5.87,25v91q0,10.26,1.21,15.05t8.11,4.79a35.57,35.57,0,0,0,9-1.37Zm-47.64-90.87c-3.69,2.74-8.52,4.72-14.5,6s-12.26,2.27-18.82,3.07-13.17,1.71-19.85,2.73a73.7,73.7,0,0,0-18,4.94,32.62,32.62,0,0,0-12.94,9.73q-5,6.32-5,17.23a23.31,23.31,0,0,0,2.94,12.11,24.11,24.11,0,0,0,7.59,8,32,32,0,0,0,10.88,4.44,60.94,60.94,0,0,0,13.11,1.36q14.5,0,24.86-3.92a52.49,52.49,0,0,0,16.91-9.9,39.1,39.1,0,0,0,9.67-13,32.53,32.53,0,0,0,3.11-13.14ZM1002.07,225q-11.05-9.25-29.69-9.26-15.89,0-26.58,5.83A47.29,47.29,0,0,0,928.71,237a64.66,64.66,0,0,0-9.15,22.12A119.83,119.83,0,0,0,916.8,285a98.22,98.22,0,0,0,2.93,24,64.18,64.18,0,0,0,9.15,20.74,46.2,46.2,0,0,0,16.23,14.58q10,5.49,23.82,5.48,21.75,0,34-11.31t15-31.89h30q-4.83,32.91-24.68,50.75t-54,17.83q-20.37,0-36.07-6.52A69.86,69.86,0,0,1,907,350.11a79.92,79.92,0,0,1-15.88-28.63A118.64,118.64,0,0,1,885.73,285a129.41,129.41,0,0,1,5.18-37.21,85.63,85.63,0,0,1,15.71-30.17A73.46,73.46,0,0,1,933,197.35Q948.91,190,970,190a108.54,108.54,0,0,1,28.48,3.6,69.59,69.59,0,0,1,23.48,11.15,61,61,0,0,1,16.74,19q6.55,11.49,8.29,27.26h-30.38Q1013.11,234.21,1002.07,225Zm109.77-98.41v145l81.47-77.49h39.36l-70.77,64.46,75.95,112.82h-37.29l-61.1-92.59-27.62,25.38v67.21H1082.5V126.54Zm170.54,205.22a31.07,31.07,0,0,0,10.87,10.63,49,49,0,0,0,15.19,5.66,87.06,87.06,0,0,0,17.44,1.71,109.18,109.18,0,0,0,14.5-1,53.22,53.22,0,0,0,14-3.78,26.27,26.27,0,0,0,10.53-8q4.14-5.32,4.14-13.55,0-11.31-8.63-17.14a73.69,73.69,0,0,0-21.58-9.43q-12.94-3.6-28.13-6.52a146,146,0,0,1-28.14-8.23A58.16,58.16,0,0,1,1261,267.13q-8.64-9.6-8.63-26.75,0-13.38,6-23a49.26,49.26,0,0,1,15.53-15.61,71.76,71.76,0,0,1,21.4-8.91A99.41,99.41,0,0,1,1319,190a141.31,141.31,0,0,1,28,2.58,64.85,64.85,0,0,1,22.62,8.91,46.16,46.16,0,0,1,15.7,17.15q5.87,10.8,6.91,26.91h-29.35q-.69-8.57-4.48-14.23a29.36,29.36,0,0,0-9.67-9.08,44.16,44.16,0,0,0-12.94-5,67.68,67.68,0,0,0-14.33-1.54,87.29,87.29,0,0,0-13.29,1,45.28,45.28,0,0,0-12.26,3.6,24.49,24.49,0,0,0-9,6.86q-3.46,4.29-3.46,11.14a16.32,16.32,0,0,0,5.36,12.52,42.75,42.75,0,0,0,13.63,8.23,120,120,0,0,0,18.64,5.48q10.37,2.24,20.72,4.63,11,2.4,21.57,5.83A70.74,70.74,0,0,1,1382,284.1a44.55,44.55,0,0,1,13.12,14.23q5,8.58,5,21.26,0,16.13-6.73,26.75a52.5,52.5,0,0,1-17.61,17.14,73.89,73.89,0,0,1-24.51,9.09,146.3,146.3,0,0,1-27.1,2.57,126.24,126.24,0,0,1-28.31-3.09A69.56,69.56,0,0,1,1272,361.94a51.74,51.74,0,0,1-16.57-18.52q-6.21-11.49-6.9-27.95h29.34A32.65,32.65,0,0,0,1282.38,331.76Zm226.46-137.67v25.72h-35.56V329.88a31.37,31.37,0,0,0,.87,8.23,8.42,8.42,0,0,0,3.28,4.8,14.61,14.61,0,0,0,6.73,2.23,99.19,99.19,0,0,0,11.22.51h13.46v25.72H1486.4a105.8,105.8,0,0,1-19.5-1.55,28.65,28.65,0,0,1-13.12-5.65,24.09,24.09,0,0,1-7.42-11.66q-2.43-7.54-2.42-19.89V219.81h-30.38V194.09h30.38V140.94h29.34v53.15ZM1699.4,370.68q-7.61,4.45-21.06,4.46-11.4,0-18.12-6.34t-6.74-20.75a70.17,70.17,0,0,1-28.13,20.75,97.87,97.87,0,0,1-57.65,3.6,53.51,53.51,0,0,1-18.82-8.58,41.19,41.19,0,0,1-12.6-15.26q-4.65-9.42-4.66-22.8,0-15.09,5.18-24.69a44.92,44.92,0,0,1,13.64-15.6,62.63,62.63,0,0,1,19.33-9.09q10.88-3.08,22.27-5.14,12.07-2.4,23-3.6a128,128,0,0,0,19.16-3.43c5.53-1.48,9.89-3.65,13.12-6.51s4.83-7,4.83-12.52q0-9.6-3.62-15.43a24.94,24.94,0,0,0-9.32-8.92,38.38,38.38,0,0,0-12.78-4.11,96.54,96.54,0,0,0-14-1q-18.63,0-31.07,7t-13.46,26.57h-29.34q.67-16.46,6.9-27.77A52.21,52.21,0,0,1,1562,203.17a70,70,0,0,1,23.65-10.11,125.51,125.51,0,0,1,28.48-3.09,168.63,168.63,0,0,1,24,1.72,63.26,63.26,0,0,1,21.58,7,41.23,41.23,0,0,1,15.53,14.89q5.87,9.57,5.87,25v91q0,10.26,1.21,15.05t8.11,4.79a35.57,35.57,0,0,0,9-1.37Zm-47.64-90.87c-3.69,2.74-8.52,4.72-14.5,6s-12.26,2.27-18.82,3.07-13.17,1.71-19.85,2.73a73.7,73.7,0,0,0-17.95,4.94,32.62,32.62,0,0,0-12.94,9.73q-5,6.32-5,17.23a23.31,23.31,0,0,0,2.94,12.11,24.11,24.11,0,0,0,7.59,8,32,32,0,0,0,10.88,4.44,60.94,60.94,0,0,0,13.11,1.36q14.51,0,24.86-3.92a52.49,52.49,0,0,0,16.91-9.9,39.1,39.1,0,0,0,9.67-13,32.53,32.53,0,0,0,3.11-13.14Zm208.85,141.62q-20,21.6-62.83,21.6a122.11,122.11,0,0,1-25.37-2.74,78,78,0,0,1-23.48-8.92,54.41,54.41,0,0,1-17.43-16.11q-6.91-10-7.6-24.35h29.35a21.47,21.47,0,0,0,5,13.38,36.67,36.67,0,0,0,11.4,8.91,55.52,55.52,0,0,0,14.67,5,79.51,79.51,0,0,0,15.19,1.55q14.49,0,24.51-5A46,46,0,0,0,1840.59,401a56.53,56.53,0,0,0,9.49-21.09,117.46,117.46,0,0,0,2.94-27.09V341.19h-.7q-7.59,16.46-23,24.18a71.8,71.8,0,0,1-32.63,7.71q-20,0-34.86-7.2A72.88,72.88,0,0,1,1737,346.51a82.13,82.13,0,0,1-15-28.46,116.62,116.62,0,0,1-5-34.47,133.92,133.92,0,0,1,4.14-32.4A88.17,88.17,0,0,1,1735,221a75.49,75.49,0,0,1,25.55-22.29q15.87-8.75,39-8.75a66.21,66.21,0,0,1,31.07,7.38,52.13,52.13,0,0,1,22.09,22.11h.35V194.09h27.61V356.28Q1880.63,399.83,1860.61,421.43Zm-37.46-79.72a47.94,47.94,0,0,0,16.4-15.78,71.89,71.89,0,0,0,9.15-22.11,106.77,106.77,0,0,0,2.93-24.69,96.71,96.71,0,0,0-2.76-23,64,64,0,0,0-8.8-20.4,45.76,45.76,0,0,0-15.71-14.57q-9.66-5.49-23.47-5.49-14.16,0-24.17,5.32a46.77,46.77,0,0,0-16.4,14.23,60.14,60.14,0,0,0-9.32,20.57,99.69,99.69,0,0,0-2.93,24.35,120.63,120.63,0,0,0,2.42,24,67.5,67.5,0,0,0,8.28,21.77,46.37,46.37,0,0,0,15.54,15.78q9.66,6,24.16,6T1823.15,341.71Zm228,18.34q-20,15.09-50.41,15.09-21.4,0-37.11-6.86a73.16,73.16,0,0,1-26.41-19.2,81.52,81.52,0,0,1-16-29.49,141.12,141.12,0,0,1-6-37.38,106.1,106.1,0,0,1,6.21-37A88.56,88.56,0,0,1,1938.8,216a79.09,79.09,0,0,1,26.58-19.2A81.66,81.66,0,0,1,1999,190q23.82,0,39.53,9.78a78,78,0,0,1,25.2,24.86,98.18,98.18,0,0,1,13.12,32.91,140.6,140.6,0,0,1,2.93,34h-133.6a70,70,0,0,0,2.76,22.12,49.9,49.9,0,0,0,10,18.51A49.1,49.1,0,0,0,1976.6,345q10.7,4.82,25.2,4.8,18.65,0,30.55-8.57t15.71-26.06h29Q2071.18,345,2051.17,360.05Zm-7.08-113.84a50,50,0,0,0-10.7-16,53.1,53.1,0,0,0-56.62-10.63,47.48,47.48,0,0,0-15.71,10.81,51.69,51.69,0,0,0-10.35,15.94,60.18,60.18,0,0,0-4.49,19.37h102.53A59.47,59.47,0,0,0,2044.09,246.21ZM302.9,180a80.62,80.62,0,0,0,13.44-10.37c.8-.77,1.55-1.54,2.31-2.31a81.89,81.89,0,0,0,7.92-9.37,62.37,62.37,0,0,0,6.27-10.77,48.6,48.6,0,0,0,4.36-16.4c1.49-19.39-10-38.67-35.62-54.22L198.42,14,78.16,129.22l-78.29,75,108.6,65.9a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.8,66.42-25.69,19.16-18.36,25.52-42.12,13.7-61.87a49.69,49.69,0,0,0-6.8-8.87,89.78,89.78,0,0,0,19.28,2.15H259a85.09,85.09,0,0,0,31-5.79A80.88,80.88,0,0,0,302.9,180Zm-100.59,59.8c-19.32,18.51-50.4,21.24-75.7,5.9l-75.13-45.6,67.44-64.65,76.42,46.39C222.88,198.57,221.36,221.6,202.31,239.84Zm8.94-82.21L140.6,114.74,205,53l69.37,42.11c25.94,15.73,29.31,37.05,10.55,55A60.71,60.71,0,0,1,211.25,157.63Zm29.86,190c-19.57,18.75-46.17,29.08-74.88,29.08a123.84,123.84,0,0,1-64.11-18.19L-.13,296.51v24.67l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.85,87.85,0,0,1,241.11,347.67Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.84,123.84,0,0,1-64.11-18.19L-.13,257.52V282.2l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.68,12.88-12.35,20-27.13,19.68-41.5v-1.79A86.86,86.86,0,0,1,241.11,308.68Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.84,123.84,0,0,1-64.11-18.19L-.13,218.54v24.68l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.69,12.88-12.34,20-27.12,19.68-41.49v-1.82A87.14,87.14,0,0,1,241.11,269.7Zm83.69,25.74a94.16,94.16,0,0,1-60.19,25.86h0V348a81.6,81.6,0,0,0,51.73-22.37c14-13.38,21.15-28.11,21-42.64v-2.2A95.14,95.14,0,0,1,324.8,295.44Zm-83.69,91.21c-19.57,18.75-46.17,29.09-74.88,29.09a123.76,123.76,0,0,1-64.11-18.2L-.13,335.49v24.67l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.35,87.35,0,0,1,241.11,386.65Zm85.75-210.21c-.68.69-1.35,1.38-2.06,2.05a99.19,99.19,0,0,1-22.23,15.69,94.53,94.53,0,0,1-26.24,8.71,97.84,97.84,0,0,1-14.16,1.57c.5,1.61.9,3.25,1.25,4.9a52.7,52.7,0,0,1,1.13,12V231h.05A84.48,84.48,0,0,0,290,225.47a80.83,80.83,0,0,0,26.38-16.82c.81-.77,1.51-1.56,2.27-2.34a82,82,0,0,0,7.92-9.38,62.85,62.85,0,0,0,6.29-10.78,48.5,48.5,0,0,0,4.32-16.44c.09-1.23.2-2.47.19-3.7v-2c-.72,1-1.48,2.06-2.26,3.09A98,98,0,0,1,326.86,176.44Zm0,77.92c-.68.7-1.3,1.41-2,2.1a94.09,94.09,0,0,1-60.19,25.85h0V309h0a81.65,81.65,0,0,0,51.73-22.37,73.51,73.51,0,0,0,16.48-22.49,48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.48.19-3.71v-2.2c-.74,1.08-1.47,2.16-2.27,3.22A95.81,95.81,0,0,1,326.82,254.36Zm0-39c-.68.7-1.3,1.41-2,2.1a92.22,92.22,0,0,1-10.62,8.65,93.53,93.53,0,0,1-11.63,7,95.63,95.63,0,0,1-37.94,10.18h-.05l0,26.67h0a81.63,81.63,0,0,0,51.73-22.37c.81-.77,1.51-1.56,2.27-2.34a82,82,0,0,0,7.92-9.38,63.16,63.16,0,0,0,6.29-10.77,48.55,48.55,0,0,0,4.32-16.45c.09-1.23.2-2.47.19-3.7v-2.2c-.74,1.08-1.47,2.16-2.27,3.22A98.19,98.19,0,0,1,326.82,215.38Z&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:cloudflare knip&quot;&gt;&lt;svg fill=&quot;none&quot; viewBox=&quot;0 0 239 54&quot;&gt;
  &lt;g clip-path=&quot;url(#a)&quot;&gt;
    &lt;path fill=&quot;#F6821F&quot; d=&quot;m51.027 36.435.378-1.33c.459-1.573.288-3.038-.477-4.105-.702-.986-1.872-1.564-3.294-1.637l-26.907-.343a.526.526 0 0 1-.423-.226.544.544 0 0 1-.054-.489c.09-.262.35-.47.62-.479l27.151-.343c3.222-.145 6.705-2.776 7.929-5.977l1.547-4.07a.895.895 0 0 0 .063-.343c0-.064-.009-.127-.018-.19-1.745-7.948-8.81-13.89-17.242-13.89-7.775 0-14.38 5.046-16.747 12.054a7.947 7.947 0 0 0-5.589-1.555c-3.734.37-6.731 3.39-7.1 7.143a7.996 7.996 0 0 0 .207 2.795C4.978 23.63.09 28.649.09 34.807c0 .56.046 1.103.118 1.646a.525.525 0 0 0 .522.452l49.666.009h.018a.663.663 0 0 0 .612-.48Z&quot;&gt;&lt;/path&gt;
    &lt;path fill=&quot;#FBAD41&quot; d=&quot;M59.99 17.736c-.251 0-.495.01-.746.018a.248.248 0 0 0-.117.027.433.433 0 0 0-.27.29l-1.062 3.671c-.46 1.573-.288 3.038.477 4.105.702.986 1.872 1.565 3.293 1.637l5.733.344c.17.009.315.09.405.226a.546.546 0 0 1 .063.488c-.09.262-.351.47-.621.48l-5.958.343c-3.23.154-6.722 2.776-7.946 5.977l-.432 1.13a.32.32 0 0 0 .28.434h20.527a.56.56 0 0 0 .53-.398c.36-1.275.55-2.613.55-4.005 0-8.148-6.588-14.767-14.706-14.767Z&quot;&gt;&lt;/path&gt;
    &lt;path fill=&quot;currentColor&quot; d=&quot;M97.309 24.363h3.392v9.323h5.94v2.984h-9.332V24.363ZM110.16 30.55v-.037c0-3.535 2.835-6.402 6.614-6.402 3.781 0 6.579 2.83 6.579 6.366v.036c0 3.536-2.834 6.402-6.614 6.402s-6.579-2.83-6.579-6.365Zm9.728 0v-.037c0-1.772-1.277-3.327-3.149-3.327-1.854 0-3.096 1.51-3.096 3.291v.036c0 1.773 1.278 3.328 3.131 3.328 1.873 0 3.114-1.51 3.114-3.291ZM127.51 31.272v-6.909h3.446v6.845c0 1.773.891 2.623 2.259 2.623 1.367 0 2.259-.805 2.259-2.532v-6.927h3.446V31.2c0 3.979-2.258 5.715-5.741 5.715-3.483-.018-5.669-1.79-5.669-5.642ZM144.123 24.363h4.724c4.375 0 6.912 2.532 6.912 6.086v.036c0 3.554-2.574 6.194-6.984 6.194h-4.652V24.363Zm4.779 9.287c2.033 0 3.375-1.121 3.375-3.11v-.037c0-1.971-1.35-3.11-3.375-3.11h-1.386v6.257h1.386ZM160.689 24.363h9.81v2.984h-6.407v2.098h5.795v2.83h-5.795v4.395h-3.403V24.363ZM175.225 24.363h3.392v9.323h5.931v2.984h-9.323V24.363ZM193.429 24.273h3.276l5.219 12.398h-3.645l-.891-2.198h-4.724l-.873 2.198h-3.572l5.21-12.398Zm2.97 7.542-1.368-3.5-1.386 3.5h2.754ZM206.289 24.363h5.796c1.871 0 3.168.498 3.987 1.338.719.706 1.088 1.655 1.088 2.867v.036c0 1.881-.999 3.129-2.519 3.78l2.924 4.295h-3.923l-2.467-3.725h-1.493v3.725h-3.393V24.363Zm5.633 5.905c1.152 0 1.819-.56 1.819-1.456v-.036c0-.968-.703-1.456-1.836-1.456h-2.223v2.957h2.24v-.009ZM222.057 24.363h9.853v2.903h-6.488v1.863h5.876v2.685h-5.876v1.953H232v2.903h-9.943V24.363ZM89.875 31.996c-.477 1.076-1.476 1.845-2.808 1.845-1.853 0-3.131-1.546-3.131-3.328v-.036c0-1.772 1.242-3.291 3.095-3.291 1.395 0 2.466.868 2.916 2.043h3.582c-.576-2.93-3.132-5.118-6.462-5.118-3.78 0-6.614 2.867-6.614 6.402v.037c0 3.535 2.799 6.366 6.578 6.366 3.231 0 5.76-2.107 6.426-4.929h-3.582v.01Z&quot;&gt;&lt;/path&gt;
  &lt;/g&gt;
  &lt;defs&gt;
    &lt;clipPath id=&quot;a&quot;&gt;
      &lt;path fill=&quot;#fff&quot; d=&quot;M.092 2H232v35.929H.092z&quot;&gt;&lt;/path&gt;
    &lt;/clipPath&gt;
  &lt;/defs&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:datadog knip&quot;&gt;&lt;svg viewBox=&quot;0 0 800.5 203.19&quot;&gt;
  
  &lt;g&gt;
    &lt;g&gt;
      &lt;path d=&quot;M260.87,144.65h-37.4v-86.1h37.4c26.94,0,40.43,13.57,40.43,40.7C301.29,129.51,287.81,144.65,260.87,144.65z
            M239.45,130.79h19c17.9,0,26.84-10.51,26.84-31.55c0-17.91-8.95-26.87-26.84-26.87h-19L239.45,130.79L239.45,130.79z&quot;&gt;&lt;/path&gt;
      &lt;polygon points=&quot;318.04,144.65 301.62,144.65 338.25,58.55 355.44,58.55 392.85,144.65 375.66,144.65 364.8,121.17
            337.17,121.17 342.66,107.32 360.58,107.32 346.46,74.98&quot;&gt;&lt;/polygon&gt;
      &lt;polygon points=&quot;383.82,58.55 449.28,58.55 449.28,72.39 424.55,72.39 424.55,144.65 408.57,144.65 408.57,72.39
            383.82,72.39&quot;&gt;&lt;/polygon&gt;
      &lt;polygon points=&quot;457.5,144.65 441.08,144.65 477.71,58.55 494.9,58.55 532.31,144.65 515.1,144.65 504.24,121.17
            476.61,121.17 482.1,107.32 500.02,107.32 485.91,74.98&quot;&gt;&lt;/polygon&gt;
      &lt;path d=&quot;M580.32,144.65h-37.4v-86.1h37.4c26.96,0,40.43,13.57,40.43,40.7C620.75,129.51,607.28,144.65,580.32,144.65z
            M558.91,130.79h19c17.89,0,26.86-10.51,26.86-31.55c0-17.91-8.96-26.87-26.86-26.87h-19V130.79z&quot;&gt;&lt;/path&gt;
      &lt;path d=&quot;M631.58,101.72c0-29.2,14.45-43.79,43.33-43.79c28.44,0,42.64,14.59,42.64,43.79
            c0,29.03-14.21,43.55-42.64,43.55C647.31,145.27,632.87,130.75,631.58,101.72z M674.91,131.39c17.36,0,26.05-10.01,26.05-30.05
            c0-19.72-8.69-29.59-26.05-29.59c-17.82,0-26.73,9.87-26.73,29.59C648.18,121.38,657.09,131.39,674.91,131.39z&quot;&gt;&lt;/path&gt;
      &lt;path d=&quot;M784.26,109.81v20.16c-3.69,0.96-6.99,1.44-9.9,1.44c-19.55,0-29.31-10.34-29.31-31.01
            c0-19.09,10.36-28.62,31.07-28.62c8.65,0,16.69,1.61,24.13,4.82V62.14c-7.44-2.8-15.89-4.21-25.34-4.21
            c-30.97,0-46.46,14.15-46.46,42.47c0,29.9,15.22,44.87,45.67,44.87c10.47,0,19.17-1.52,26.13-4.58V95.64h-25.82l-5.4,14.16
            L784.26,109.81L784.26,109.81z&quot;&gt;&lt;/path&gt;
    &lt;/g&gt;

    &lt;g&gt;
      &lt;path d=&quot;M167.2,98.4l-54.9,10c-1.4,1.8-4.7,4.8-6.3,5.6c-6.9,3.5-11.6,2.5-15.7,1.4c-2.6-0.7-4.1-1-6.3-2l-13.4,1.8
            l8.1,67.9l94.1-17L167.2,98.4z M83.4,176.7l-0.8-7.4L98,145.9l17.4,5.1l15-25.1l18,11.9l13.7-28.7l4.9,52.2L83.4,176.7z M79.5,110
            c-6.8-4.4-13.8-10.6-16.9-14.1c-0.5-0.4-0.4-2.1-0.4-2.1c2.8,2.2,14.3,10.4,26.4,14.1c4.3,1.3,10.9,1.8,16.6-1.4
            c4.4-2.5,9.6-6.8,12.7-11.2l0.6,1c0,0.7-1.5,3.9-2.2,5.2c1.3,0.8,2.3,1,3.8,1.4l10.1-1.6c3.6-5.8,6.2-15.2,3.4-24.2
            c-1.6-5.1-9.8-15.4-10.4-15.9c-2.1-2,0.3-9.6-3.7-18c-4.3-8.8-15.6-18-20.5-22.1c1.4,1,10.3,4.6,14.4,9.6c0.4-0.5,0.6-3.2,0.9-3.9
            c-3.6-4.6-3.8-12.9-3.8-15.1c0-4.1-2.1-8.7-2.1-8.7s3.6,2.8,4.5,7.7c1.1,5.7,3.4,10.3,6.5,14.1c5.8,7.2,11,10.9,13.7,8.2
            c3.2-3.2-3.2-17.5-11.3-25.5c-9.5-9.3-12-8.1-17.5-6.1c-4.4,1.5-6.8,14.2-18.4,13.9c-2-0.2-7-0.4-9.5-0.3c1.3-1.8,2.4-3.2,2.4-3.2
            s-3.9,1.6-7.2,3.6l-0.3-0.4c1.1-2.4,2.3-3.8,2.3-3.8s-3.1,1.9-5.9,4.1c0.5-2.8,2.5-4.6,2.5-4.6s-3.9,0.7-8.9,6.2
            c-5.7,1.5-7,2.6-11.6,4.6c-7.4-1.6-10.8-4.2-14.1-9c-2.5-3.6-7-4.2-11.6-2.3c-6.7,2.8-15.1,6.5-15.1,6.5s2.8-0.1,5.6,0
            c-3.9,1.5-7.7,3.5-7.7,3.5s1.8-0.1,4.1,0c-1.6,1.3-2.4,1.9-3.9,2.9c-3.6,2.6-6.5,5.6-6.5,5.6s2.4-1.1,4.6-1.7
            c-1.5,3.5-4.6,6.1-4,10.4c0.5,3.9,5.3,12,11.6,17c0.5,0.4,9,8.3,15.4,5.1c6.4-3.2,8.9-6.1,10-10.5c1.2-5.1,0.5-8.9-2.1-19.9
            c-0.9-3.6-3.1-11.1-4.2-14.6l0.2-0.2c2.1,4.4,7.4,16.1,9.6,23.9c3.4,12.2,2.3,18.4,0.8,20.7c-4.7,6.8-16.6,7.8-22,4
            c-0.8,13.1,2.1,18.9,3.1,21.8c-0.5,3.3,1.7,9.6,1.7,9.6s0.2-2.8,1.2-4.3c0.3,3.3,1.9,7.3,1.9,7.3s-0.1-2.4,0.7-4.5
            c1.1,1.8,1.9,2.2,2.9,3.6c1,3.6,3,6.2,3,6.2s-0.3-1.9-0.2-3.9c5,4.8,5.8,11.8,6.3,17.1c1.4,14.7-23.2,26.4-28,35.6
            c-3.6,5.4-5.8,14.1,0.3,19.2c14.8,12.3,9.1,15.7,16.5,21.1c10.2,7.4,22.9,4.1,27.2-1.9c6-8.4,4.5-16.3,2.2-23.7
            c-1.8-5.8-6.5-15.4-12.4-19.1c-6-3.8-11.9-4.5-16.8-4l0.5-0.5c7.1-1.4,14.6-0.6,20,2.8c6.1,3.9,11.7,10.7,14.6,21
            c3.3-0.5,3.8-0.7,6.8-1.1L65,111.6L79.5,110z M113.8,43.3c6.3,2.9,5.5,8.5,5.6,11.8c0.1,0.9,0,1.6-0.1,2c-0.9-0.5-2.2-0.8-4.4-0.7
            c-0.6,0-1.3,0.1-1.9,0.2c-2.3-1.2-3.7-3.7-5-6.3c-0.1-0.2-0.2-0.5-0.3-0.7c0-0.1-0.1-0.2-0.1-0.3c0,0,0-0.1,0-0.1
            c-0.7-2.2-0.2-2.7,0.1-3.3s1.4-1.3-0.2-1.8c-0.1,0-0.3-0.1-0.5-0.1C108.1,42.6,111.4,42.2,113.8,43.3z M106,79.9
            c1.2-0.9,6.8-2.7,12-3.4c2.7-0.3,6.6-0.5,7.4,0c1.6,0.9,1.6,3.7,0.5,6.3c-1.6,3.8-3.9,7.9-6.6,8.2c-4.3,0.6-8.3-1.7-12.9-5.2
            C104.8,84.6,103.8,81.6,106,79.9z M65.6,51.4c6.8-4.6,15.5-2.8,14-1.4c-2.8,2.7,0.9,1.9,1.3,6.8c0.3,3.6-0.9,5.6-1.9,6.7
            c-2.1,0.3-4.7,0.8-7.8,1.8c-1.8,0.6-3.4,1.2-4.8,1.9c-0.4-0.2-0.8-0.5-1.2-0.9C60.5,62.1,60.7,54.8,65.6,51.4z&quot;&gt;&lt;/path&gt;
    &lt;/g&gt;

    &lt;g&gt;
      &lt;g&gt;
        &lt;path d=&quot;M158.87,144.16L142,133.04l-14.07,23.5l-16.36-4.78l-14.41,21.99l0.74,6.92l78.33-14.43l-4.55-48.94
              L158.87,144.16z M85.82,123.07l12.57-1.73c2.03,0.91,3.45,1.26,5.89,1.88c3.8,0.99,8.19,1.94,14.7-1.34
              c1.51-0.75,4.67-3.64,5.94-5.28l51.49-9.34l5.25,63.57l-88.21,15.9L85.82,123.07z M181.46,100.16l-5.08,0.97L166.62,0.25
              L0.25,19.54l20.5,166.33l19.47-2.83c-1.55-2.22-3.98-4.91-8.11-8.35c-5.74-4.76-3.71-12.86-0.32-17.97
              c4.47-8.63,27.54-19.61,26.23-33.41c-0.47-5.02-1.27-11.55-5.93-16.03c-0.17,1.86,0.14,3.65,0.14,3.65s-1.91-2.44-2.87-5.77
              c-0.95-1.28-1.69-1.68-2.7-3.39c-0.72,1.97-0.62,4.26-0.62,4.26s-1.56-3.7-1.82-6.82c-0.93,1.4-1.16,4.05-1.16,4.05
              s-2.03-5.83-1.57-8.97c-0.93-2.73-3.68-8.15-2.9-20.47c5.08,3.56,16.26,2.71,20.61-3.71c1.45-2.13,2.44-7.93-0.72-19.36
              c-2.03-7.33-7.05-18.25-9.01-22.4l-0.23,0.17c1.03,3.34,3.16,10.33,3.98,13.73c2.47,10.29,3.13,13.87,1.97,18.61
              c-0.99,4.12-3.35,6.82-9.35,9.84c-6,3.03-13.96-4.34-14.47-4.74c-5.83-4.64-10.34-12.22-10.84-15.9
              c-0.52-4.03,2.32-6.45,3.76-9.74c-2.05,0.59-4.34,1.63-4.34,1.63s2.73-2.83,6.1-5.27c1.4-0.92,2.21-1.51,3.68-2.73
              c-2.13-0.03-3.86,0.02-3.86,0.02s3.55-1.92,7.23-3.31c-2.69-0.12-5.27-0.02-5.27-0.02S35.75,27.1,42,24.5
              c4.3-1.76,8.5-1.24,10.86,2.17c3.1,4.47,6.35,6.9,13.25,8.41c4.24-1.88,5.52-2.84,10.84-4.29c4.68-5.15,8.36-5.82,8.36-5.82
              s-1.82,1.67-2.31,4.3c2.66-2.09,5.57-3.84,5.57-3.84s-1.13,1.39-2.18,3.6l0.24,0.36c3.1-1.86,6.74-3.32,6.74-3.32
              s-1.04,1.32-2.26,3.02c2.34-0.02,7.08,0.1,8.91,0.31c10.86,0.24,13.11-11.6,17.28-13.08c5.22-1.86,7.55-2.99,16.44,5.74
              c7.63,7.5,13.59,20.91,10.63,23.92c-2.48,2.49-7.38-0.97-12.8-7.74c-2.87-3.58-5.03-7.81-6.05-13.19
              c-0.86-4.54-4.19-7.17-4.19-7.17s1.93,4.31,1.93,8.11c0,2.08,0.26,9.84,3.59,14.19c-0.33,0.64-0.48,3.15-0.85,3.63
              c-3.87-4.68-12.19-8.03-13.54-9.02c4.59,3.76,15.14,12.4,19.19,20.68c3.83,7.83,1.57,15.01,3.51,16.87
              c0.55,0.53,8.24,10.11,9.72,14.93c2.58,8.39,0.15,17.21-3.22,22.68l-9.43,1.47c-1.38-0.38-2.31-0.58-3.55-1.29
              c0.68-1.21,2.04-4.22,2.05-4.84l-0.53-0.93c-2.94,4.16-7.85,8.2-11.94,10.52c-5.35,3.03-11.51,2.56-15.52,1.32
              c-11.39-3.51-22.16-11.21-24.75-13.23c0,0-0.08,1.61,0.41,1.98c2.87,3.24,9.45,9.1,15.81,13.18l-13.55,1.49l6.41,49.89
              c-2.84,0.41-3.28,0.61-6.39,1.05c-2.74-9.68-7.98-16.01-13.71-19.69c-5.05-3.25-12.02-3.98-18.7-2.66l-0.43,0.5
              c4.64-0.48,10.12,0.19,15.74,3.75c5.52,3.49,9.97,12.51,11.61,17.94c2.1,6.94,3.55,14.36-2.1,22.23
              c-4.02,5.59-15.74,8.68-25.22,2c2.53,4.07,5.95,7.4,10.55,8.02c6.84,0.93,13.33-0.26,17.79-4.84c3.81-3.92,5.84-12.12,5.3-20.75
              l6.03-0.87l2.18,15.49l99.88-12.03L181.46,100.16z M120.69,58.08c-0.28,0.64-0.72,1.05-0.06,3.12l0.04,0.12l0.1,0.27l0.27,0.62
              c1.19,2.42,2.49,4.71,4.66,5.88c0.56-0.09,1.15-0.16,1.75-0.19c2.04-0.09,3.33,0.23,4.15,0.68c0.07-0.41,0.09-1,0.04-1.88
              c-0.16-3.07,0.61-8.29-5.29-11.04c-2.23-1.03-5.35-0.72-6.39,0.58c0.19,0.02,0.36,0.06,0.49,0.11
              C122.04,56.89,120.98,57.43,120.69,58.08 M137.23,86.73c-0.77-0.43-4.39-0.26-6.93,0.04c-4.84,0.57-10.07,2.25-11.22,3.14
              c-2.08,1.61-1.14,4.42,0.4,5.57c4.32,3.22,8.1,5.39,12.09,4.86c2.45-0.32,4.61-4.2,6.14-7.73
              C138.77,90.19,138.77,87.58,137.23,86.73 M94.36,61.88c1.37-1.3-6.8-3-13.14,1.32c-4.67,3.19-4.82,10.03-0.35,13.9
              c0.45,0.38,0.82,0.66,1.16,0.88c1.31-0.62,2.8-1.24,4.51-1.79c2.9-0.94,5.3-1.43,7.28-1.68c0.95-1.06,2.05-2.92,1.77-6.29
              C95.22,63.63,91.75,64.36,94.36,61.88&quot;&gt;&lt;/path&gt;
      &lt;/g&gt;
    &lt;/g&gt;
  &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:eslint knip&quot;&gt;&lt;svg viewBox=&quot;0 0 203 58&quot; fill=&quot;none&quot;&gt;
  &lt;path d=&quot;M46.5572 21.1093L34.0167 13.8691C33.7029 13.6879 33.3161 13.6879 33.0023 13.8691L20.4616 21.1093C20.148 21.2905 19.9543 21.6253 19.9543 21.9878V36.4681C19.9543 36.8304 20.148 37.1654 20.4616 37.347L33.0023 44.5871C33.3161 44.7684 33.7029 44.7684 34.0167 44.5871L46.5572 37.347C46.871 37.1657 47.0644 36.8306 47.0644 36.4681V21.9878C47.0641 21.6253 46.8707 21.2905 46.5572 21.1093Z&quot; fill=&quot;#8080F2&quot; id=&quot;logo-center&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M0.904381 27.7046L15.8878 1.63772C16.4321 0.695223 17.4375 0 18.5258 0H48.4931C49.5817 0 50.5873 0.695223 51.1316 1.63772L66.115 27.6471C66.6593 28.5899 66.6593 29.7796 66.115 30.7224L51.1316 56.5756C50.5873 57.5181 49.5817 58 48.4931 58H18.526C17.4377 58 16.4321 57.5326 15.8881 56.5899L0.90464 30.6944C0.359854 29.7522 0.359854 28.6471 0.904381 27.7046ZM13.3115 40.2393C13.3115 40.6225 13.5422 40.977 13.8744 41.1689L32.96 52.1803C33.2919 52.3719 33.7078 52.3719 34.0397 52.1803L53.1401 41.1689C53.4721 40.977 53.7043 40.6228 53.7043 40.2393V18.2161C53.7043 17.8327 53.4754 17.4785 53.1432 17.2866L34.0584 6.27513C33.7264 6.08327 33.3111 6.08327 32.9792 6.27513L13.8775 17.2866C13.5453 17.4785 13.3115 17.8327 13.3115 18.2161V40.2393V40.2393Z&quot; fill=&quot;#4B32C3&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M86.6971 43.7102V14.2899H105.442V18.871H91.7826V26.6044H104.265V31.1855H91.7826V39.129H105.652V43.7102H86.6971Z&quot; fill=&quot;#4B32C3&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M118.919 44.2986C116.678 44.2986 114.688 43.9063 112.951 43.1218C111.242 42.3092 109.897 41.1464 108.916 39.6334C107.936 38.1203 107.445 36.271 107.445 34.0855V32.9928H112.447V34.0855C112.447 36.0189 113.035 37.4619 114.212 38.4145C115.389 39.3672 116.958 39.8435 118.919 39.8435C120.909 39.8435 122.408 39.4372 123.416 38.6247C124.425 37.8121 124.929 36.7614 124.929 35.4725C124.929 34.6039 124.691 33.9034 124.215 33.371C123.739 32.8107 123.038 32.3623 122.113 32.0261C121.217 31.6899 120.124 31.3677 118.835 31.0594L117.574 30.8073C115.641 30.359 113.96 29.7986 112.531 29.1261C111.13 28.4256 110.051 27.529 109.295 26.4363C108.538 25.3435 108.16 23.9145 108.16 22.1493C108.16 20.3841 108.58 18.871 109.421 17.6102C110.261 16.3493 111.452 15.3826 112.993 14.7102C114.534 14.0377 116.341 13.7015 118.415 13.7015C120.488 13.7015 122.338 14.0517 123.963 14.7522C125.588 15.4527 126.863 16.5034 127.787 17.9044C128.74 19.3053 129.216 21.0566 129.216 23.158V24.545H124.215V23.158C124.215 21.9532 123.977 20.9865 123.5 20.258C123.024 19.5295 122.352 18.9971 121.483 18.6609C120.614 18.3247 119.592 18.1566 118.415 18.1566C116.678 18.1566 115.361 18.4928 114.464 19.1652C113.568 19.8377 113.119 20.7904 113.119 22.0232C113.119 22.8078 113.315 23.4802 113.708 24.0406C114.128 24.573 114.73 25.0213 115.515 25.3855C116.327 25.7218 117.336 26.016 118.541 26.2681L119.802 26.5623C121.819 27.0107 123.584 27.5851 125.098 28.2855C126.611 28.958 127.787 29.8546 128.628 30.9754C129.497 32.0962 129.931 33.5532 129.931 35.3464C129.931 37.1116 129.469 38.6667 128.544 40.0116C127.647 41.3566 126.372 42.4073 124.719 43.1638C123.094 43.9203 121.161 44.2986 118.919 44.2986Z&quot; fill=&quot;#4B32C3&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M133.1 43.7102V14.2899H138.185V39.129H151.971V43.7102H133.1Z&quot; fill=&quot;#4B32C3&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M154.827 43.7102V22.9479H159.661V43.7102H154.827ZM157.223 20.3C156.354 20.3 155.598 20.0198 154.954 19.4595C154.337 18.871 154.029 18.1005 154.029 17.1479C154.029 16.1952 154.337 15.4387 154.954 14.8783C155.598 14.2899 156.354 13.9957 157.223 13.9957C158.148 13.9957 158.904 14.2899 159.493 14.8783C160.109 15.4387 160.417 16.1952 160.417 17.1479C160.417 18.1005 160.109 18.871 159.493 19.4595C158.904 20.0198 158.148 20.3 157.223 20.3Z&quot; fill=&quot;#4B32C3&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M164.525 43.7102V22.9479H169.275V25.8479H169.989C170.353 25.0633 171.012 24.3208 171.964 23.6203C172.917 22.9198 174.36 22.5696 176.293 22.5696C177.891 22.5696 179.305 22.9338 180.538 23.6623C181.771 24.3909 182.724 25.3995 183.396 26.6884C184.097 27.9773 184.447 29.5044 184.447 31.2696V43.7102H179.614V31.6479C179.614 29.9667 179.193 28.7198 178.353 27.9073C177.54 27.0667 176.377 26.6464 174.864 26.6464C173.155 26.6464 171.81 27.2208 170.83 28.3696C169.849 29.4904 169.359 31.1015 169.359 33.2029V43.7102H164.525Z&quot; fill=&quot;#4B32C3&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M196.449 43.7102C195.104 43.7102 194.025 43.3179 193.213 42.5334C192.428 41.7208 192.036 40.6281 192.036 39.2551V26.9406H186.614V22.9479H192.036V16.2652H196.869V22.9479H202.837V26.9406H196.869V38.4566C196.869 39.2971 197.262 39.7174 198.046 39.7174H202.207V43.7102H196.449Z&quot; fill=&quot;#4B32C3&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:freeCodeCamp knip&quot;&gt;&lt;svg viewBox=&quot;0 0 210 24&quot;&gt;
  &lt;defs&gt;
    &lt;path d=&quot;m35.42 5.56 0.43 0.05 0.42 0.08 0.39 0.09 0.37 0.12 0.36 0.14 0.32 0.16 0.31 0.18 0.28 0.21 0.27 0.22 0.24 0.24 0.22 0.27 0.2 0.28 0.18 0.31 0.16 0.33 0.13 0.35 0.12 0.37 0.09 0.39 0.08 0.41 0.05 0.44 0.03 0.45 0.01 0.47v0.12 0.11l-0.01 0.1-0.04 0.2-0.04 0.18-0.03 0.08-0.07 0.15-0.04 0.06-0.05 0.06-0.04 0.06-0.06 0.05-0.05 0.05-0.06 0.03-0.06 0.04-0.07 0.03-0.08 0.02-0.07 0.02-0.16 0.02h-8.9v-0.07h-0.02v1.84l0.01 0.24 0.03 0.24 0.03 0.23 0.06 0.22 0.07 0.2 0.09 0.2 0.1 0.17 0.12 0.18 0.13 0.15 0.15 0.16 0.17 0.13 0.18 0.13 0.2 0.11 0.21 0.11 0.23 0.09 0.24 0.09 0.27 0.06 0.27 0.07 0.3 0.05 0.31 0.03 0.32 0.03 0.34 0.02 0.36 0.01h0.13l0.13-0.01h0.13l0.12-0.01h0.13l0.24-0.02 0.23-0.02 0.11-0.01 0.11-0.02 0.21-0.03 0.1-0.01 0.1-0.02 0.29-0.06 0.09-0.03 0.09-0.02 0.08-0.03 0.09-0.03 0.08-0.03 0.05-0.01 0.15-0.06 0.06-0.03 0.06-0.02 0.12-0.06 0.21-0.11 0.08-0.04 0.07-0.05 0.17-0.09 0.08-0.05 0.09-0.05 0.09-0.06 0.19-0.13 0.1-0.06 0.1-0.07 0.11-0.07 0.12-0.12 0.13-0.1 0.06-0.05 0.05-0.04 0.06-0.04 0.05-0.05 0.09-0.07 0.1-0.06 0.04-0.03 0.04-0.02 0.04-0.03 0.07-0.03 0.03-0.01 0.04-0.01 0.02-0.01 0.05-0.01h0.09l0.1 0.01 0.15 0.03 0.04 0.02 0.07 0.04 0.04 0.03 0.09 0.09 0.03 0.04 0.04 0.08 0.01 0.05 0.02 0.05 0.01 0.06 0.02 0.1v0.07 0.07 0.06l-0.01 0.07-0.01 0.06-0.01 0.07-0.06 0.2-0.03 0.06-0.04 0.07-0.03 0.07-0.04 0.07-0.05 0.07-0.05 0.06-0.1 0.14-0.13 0.13-0.13 0.14-0.16 0.14-0.09 0.06-0.08 0.08-0.15 0.1-0.15 0.11-0.32 0.2-0.17 0.09-0.18 0.09-0.18 0.08-0.19 0.07-0.19 0.08-0.21 0.07-0.42 0.12-0.22 0.05-0.23 0.05-0.47 0.09-0.5 0.06-0.52 0.04-0.27 0.01-0.28 0.01h-0.28-0.48l-0.47-0.03-0.45-0.04-0.42-0.07-0.41-0.07-0.38-0.09-0.36-0.11-0.34-0.13-0.31-0.15-0.3-0.16-0.27-0.18-0.26-0.2-0.22-0.21-0.21-0.23-0.19-0.25-0.16-0.26-0.14-0.29-0.13-0.29-0.1-0.32-0.07-0.34-0.06-0.35-0.03-0.37-0.01-0.39v-4.71l0.01-0.14 0.01-0.12 0.01-0.13 0.04-0.26 0.04-0.13 0.03-0.12 0.08-0.24 0.1-0.24 0.12-0.23 0.06-0.11 0.07-0.12 0.08-0.1 0.08-0.11 0.08-0.1 0.09-0.11 0.19-0.2 0.23-0.23 0.3-0.24 0.15-0.11 0.17-0.11 0.17-0.1 0.17-0.09 0.18-0.09 0.38-0.16 0.2-0.07 0.42-0.12 0.22-0.05 0.23-0.05 0.22-0.04 0.24-0.03 0.24-0.04 0.24-0.02 0.25-0.02 0.52-0.02h0.27l0.47 0.01 0.47 0.03zm-2.04 1.6-0.41 0.07-0.39 0.1-0.38 0.13-0.37 0.15-0.35 0.18-0.32 0.25-0.27 0.26-0.23 0.28-0.19 0.3-0.13 0.31-0.08 0.32-0.03 0.35v0.96h8.19l-0.09-0.98-0.25-0.83-0.43-0.69-0.6-0.53-0.76-0.38-0.95-0.23-1.11-0.07-0.43 0.01-0.42 0.04z&quot; id=&quot;fcc-k&quot;&gt;&lt;/path&gt;
    &lt;path d=&quot;m107.21 5.56 0.43 0.05 0.42 0.08 0.39 0.09 0.37 0.12 0.35 0.14 0.33 0.16 0.31 0.18 0.29 0.21 0.26 0.22 0.24 0.24 0.22 0.27 0.21 0.28 0.17 0.31 0.16 0.33 0.14 0.35 0.11 0.37 0.1 0.39 0.07 0.41 0.05 0.44 0.03 0.45 0.01 0.47v0.12l-0.01 0.11-0.02 0.2-0.02 0.1-0.02 0.09-0.03 0.09-0.02 0.08-0.03 0.07-0.04 0.08-0.04 0.06-0.1 0.12-0.1 0.1-0.13 0.07-0.13 0.05-0.08 0.02-0.16 0.02-8.92 0.01v1.76l0.01 0.24 0.02 0.24 0.04 0.23 0.06 0.22 0.07 0.2 0.08 0.2 0.11 0.17 0.11 0.18 0.14 0.15 0.15 0.16 0.17 0.13 0.18 0.13 0.19 0.11 0.22 0.11 0.23 0.09 0.24 0.09 0.26 0.06 0.28 0.07 0.3 0.05 0.31 0.03 0.32 0.03 0.34 0.02 0.36 0.01h0.13l0.13-0.01h0.13l0.25-0.01 0.24-0.02 0.22-0.02 0.12-0.01 0.11-0.02 0.31-0.04 0.2-0.04 0.19-0.04 0.09-0.03 0.09-0.02 0.09-0.03 0.08-0.03 0.13-0.04 0.04-0.02 0.06-0.02 0.05-0.02 0.06-0.03 0.05-0.02 0.07-0.03 0.2-0.1 0.14-0.08 0.08-0.05 0.08-0.04 0.08-0.05 0.18-0.1 0.18-0.12 0.2-0.13 0.1-0.07 0.11-0.07 0.06-0.06 0.07-0.06 0.05-0.05 0.07-0.05 0.05-0.05 0.06-0.04 0.11-0.09 0.05-0.03 0.05-0.04 0.04-0.03 0.05-0.03 0.04-0.03 0.04-0.02 0.04-0.03 0.07-0.03 0.12-0.04h0.02 0.09 0.05l0.06 0.01 0.09 0.02 0.05 0.01 0.12 0.06 0.12 0.12 0.03 0.04 0.04 0.08 0.01 0.05 0.02 0.05 0.02 0.11 0.01 0.05v0.07 0.13l-0.01 0.07-0.01 0.06-0.01 0.07-0.04 0.14-0.02 0.06-0.03 0.06-0.04 0.07-0.03 0.07-0.09 0.14-0.05 0.06-0.05 0.07-0.11 0.14-0.21 0.2-0.23 0.2-0.09 0.08-0.3 0.21-0.15 0.1-0.17 0.1-0.17 0.09-0.18 0.09-0.18 0.08-0.19 0.07-0.2 0.08-0.2 0.07-0.42 0.12-0.22 0.05-0.23 0.05-0.23 0.04-0.24 0.05-0.5 0.06-0.52 0.04-0.55 0.02h-0.28-0.49l-0.46-0.03-0.45-0.04-0.43-0.07-0.39-0.07-0.39-0.09-0.36-0.11-0.33-0.13-0.33-0.15-0.29-0.16-0.27-0.18-0.25-0.2-0.23-0.21-0.22-0.23-0.18-0.25-0.17-0.26-0.14-0.29-0.12-0.29-0.1-0.32-0.08-0.34-0.05-0.35-0.04-0.37-0.01-0.39v-4.58l0.01-0.13v-0.14l0.02-0.12 0.01-0.13 0.02-0.13 0.05-0.26 0.12-0.36 0.1-0.24 0.11-0.23 0.07-0.11 0.07-0.12 0.07-0.1 0.09-0.11 0.08-0.1 0.09-0.11 0.19-0.2 0.1-0.1 0.14-0.13 0.14-0.12 0.15-0.12 0.15-0.11 0.17-0.11 0.17-0.1 0.17-0.09 0.19-0.09 0.18-0.08 0.19-0.08 0.2-0.07 0.42-0.12 0.44-0.1 0.23-0.04 0.23-0.03 0.25-0.04 0.24-0.02 0.25-0.02 0.52-0.02h0.27l0.48 0.01 0.46 0.03zm-2.04 1.6-0.41 0.07-0.39 0.1-0.38 0.13-0.37 0.15-0.34 0.18-0.34 0.25-0.29 0.26-0.23 0.28-0.17 0.3-0.13 0.31-0.07 0.32-0.03 0.35v0.96h8.19l-0.09-0.98-0.25-0.83-0.43-0.69-0.6-0.53-0.76-0.38-0.95-0.23-1.11-0.07-0.43 0.01-0.42 0.04z&quot; id=&quot;fcc-j&quot;&gt;&lt;/path&gt;
    &lt;path d=&quot;m203.57 0.17c-0.12 0.12-0.24 0.29-0.24 0.45 0 0.29 0.34 0.69 0.97 1.33 2.63 2.53 3.95 5.62 3.94 9.35-0.01 4.13-1.4 7.45-4.1 10.01-0.57 0.51-0.8 0.91-0.8 1.25 0 0.17 0.12 0.34 0.23 0.51 0.11 0.12 0.34 0.23 0.51 0.23 0.62 0 1.5-0.73 2.64-2.17 2.22-2.72 3.22-5.73 3.28-9.82 0.05-4.1-1.23-6.88-3.75-9.75-0.9-1.03-1.66-1.56-2.17-1.56-0.17 0-0.35 0.06-0.51 0.17z&quot; id=&quot;fcc-b&quot;&gt;&lt;/path&gt;
    &lt;path d=&quot;m124.75 1.76c1.14 0.86 1.73 2.07 1.73 3.55 0 0.68-0.29 1.02-0.86 1.02-0.39 0-0.68-0.34-0.85-1.02-0.11-0.57-0.34-1.08-0.62-1.62-0.52-0.9-1.61-1.32-3.32-1.32-1.49 0-2.52 0.34-3.14 1.08-0.57 0.68-0.91 1.72-0.91 3.26v5.95c0 1.55 0.34 2.63 0.97 3.31 0.68 0.74 1.72 1.13 3.2 1.13 2.23 0 3.54-0.79 3.82-2.34 0.12-0.57 0.17-0.86 0.17-0.91 0.12-0.34 0.35-0.51 0.68-0.51 0.57 0 0.86 0.34 0.86 1.02 0 1.44-0.57 2.52-1.78 3.38-0.97 0.62-2.18 0.96-3.77 0.96-1.84 0-3.26-0.4-4.3-1.25-1.16-0.8-1.73-2.16-1.73-3.94v-7.16c0-3.77 1.95-5.61 5.95-5.61 1.61 0 2.86 0.34 3.9 1.02z&quot; id=&quot;fcc-n&quot;&gt;&lt;/path&gt;
    &lt;path d=&quot;m14.21 6.57c0-0.56 0.34-0.79 1.02-0.79h3.32c0.57 0 0.85 0.51 0.85 1.44 1.02-1.08 2.12-1.73 3.26-1.73 0.96 0 1.72 0.29 2.23 0.86 0.57 0.57 0.8 1.38 0.8 2.29 0 0.63-0.29 0.97-0.8 0.97-0.34 0-0.57-0.23-0.68-0.63-0.23-0.8-0.34-1.19-0.4-1.25-0.22-0.39-0.68-0.62-1.25-0.62-0.62 0-1.25 0.23-1.78 0.68-0.34 0.23-0.8 0.74-1.38 1.49v7.67h3.08c0.68 0 1.03 0.29 1.03 0.8 0 0.57-0.35 0.86-1.03 0.86h-7.33c-0.68 0-1.02-0.29-1.02-0.8 0-0.57 0.34-0.8 1.02-0.8h2.52v-0.07h0.02v-9.57h-2.46c-0.68 0-1.02-0.28-1.02-0.8z&quot; id=&quot;fcc-l&quot;&gt;&lt;/path&gt;
    &lt;path d=&quot;m96.68 0.04 0.06 0.02 0.06 0.03 0.05 0.03 0.06 0.04 0.13 0.13 0.03 0.06 0.04 0.06 0.03 0.07 0.02 0.07 0.04 0.16 0.04 0.18 0.01 0.2v0.1 16.84 0.08l-0.01 0.07v0.07l-0.04 0.13-0.01 0.05-0.03 0.06-0.02 0.05-0.06 0.09-0.07 0.08-0.05 0.03-0.04 0.03-0.05 0.03-0.1 0.04-0.06 0.02-0.12 0.02-0.07 0.01h-0.11l-0.13-0.02-0.04-0.01-0.04-0.02-0.04-0.01-0.03-0.02-0.03-0.01-0.03-0.03-0.03-0.02-0.06-0.05-0.02-0.03-0.07-0.12-0.01-0.04-0.02-0.05-0.01-0.04-0.02-0.05v-0.05-0.08-0.04-0.04l-0.01-0.04v-0.04l-0.01-0.04v-0.04-0.04l-0.01-0.05v-0.04-0.05l-0.01-0.09v-0.06l-0.01-0.04v-0.06-0.11l-0.01-0.06v-0.13l-0.13 0.09-0.13 0.08-0.13 0.09-0.24 0.14-0.11 0.08-0.12 0.07-0.21 0.12-0.1 0.06-0.09 0.06-0.1 0.05-0.25 0.14-0.14 0.08-0.14 0.06-0.12 0.05-0.05 0.02-0.09 0.04-0.09 0.03-0.09 0.02-0.19 0.06-0.4 0.08-0.21 0.03-0.22 0.03-0.11 0.02-0.23 0.02h-0.12l-0.12 0.01h-0.11l-0.12 0.01h-0.46l-0.21-0.01-0.2-0.01-0.2-0.02-0.19-0.01-0.2-0.03-0.18-0.02-0.37-0.07-0.34-0.08-0.18-0.05-0.32-0.1-0.32-0.12-0.15-0.07-0.15-0.06-0.42-0.24-0.13-0.08-0.14-0.1-0.28-0.22-0.12-0.11-0.12-0.13-0.11-0.12-0.11-0.13-0.1-0.14-0.09-0.14-0.17-0.29-0.07-0.15-0.07-0.16-0.06-0.16-0.05-0.16-0.05-0.18-0.04-0.18-0.03-0.17-0.02-0.19-0.03-0.19-0.01-0.19v-5.21l0.01-0.19 0.03-0.18 0.02-0.18 0.03-0.18 0.08-0.34 0.05-0.16 0.06-0.16 0.06-0.15 0.08-0.15 0.07-0.15 0.18-0.28 0.2-0.26 0.1-0.12 0.24-0.24 0.26-0.22 0.14-0.1 0.39-0.24 0.15-0.07 0.28-0.14 0.31-0.12 0.15-0.05 0.33-0.1 0.33-0.08 0.72-0.12 0.37-0.03 0.38-0.02h0.45l0.25 0.02h0.12 0.13l0.12 0.02 0.12 0.01 0.22 0.02 0.22 0.04 0.11 0.01 0.21 0.04 0.1 0.02 0.09 0.02 0.28 0.08 0.09 0.03 0.09 0.04 0.08 0.03 0.09 0.03 0.08 0.04 0.09 0.03 0.09 0.04 0.1 0.05 0.17 0.09 0.29 0.16 0.09 0.05 0.29 0.19 0.2 0.14 0.09 0.07 0.4 0.32v-5.89l0.01-0.1v-0.2l0.04-0.18 0.01-0.08 0.03-0.08 0.02-0.07 0.03-0.07 0.03-0.06 0.04-0.06 0.04-0.04 0.04-0.05 0.04-0.04 0.05-0.04 0.1-0.06 0.06-0.02 0.13-0.03 0.06-0.01h0.14l0.07 0.01 0.14 0.03zm-5.7 7.19-0.26 0.03-0.26 0.02-0.25 0.05-0.24 0.05-0.23 0.05-0.42 0.16-0.19 0.09-0.18 0.1-0.2 0.15-0.2 0.16-0.17 0.17-0.15 0.17-0.14 0.19-0.11 0.2-0.1 0.2-0.08 0.23-0.05 0.23-0.04 0.23-0.01 0.26v4.52l0.01 0.26 0.03 0.25 0.05 0.23 0.07 0.23 0.09 0.21 0.12 0.2 0.13 0.19 0.16 0.17 0.17 0.16 0.2 0.14 0.22 0.14 0.19 0.09 0.42 0.16 0.22 0.07 0.22 0.06 0.24 0.06 0.25 0.04 0.26 0.04 0.27 0.03 0.56 0.02 0.47-0.01 0.44-0.04 0.43-0.06 0.21-0.04 0.2-0.06 0.38-0.12 0.17-0.07 0.14-0.1 0.16-0.11 0.15-0.11 0.16-0.12 0.17-0.12 0.16-0.13 0.18-0.13 0.17-0.15 0.18-0.15 0.36-0.32v-6.59l-0.21-0.16-0.21-0.14-0.2-0.14-0.2-0.13-0.19-0.12-0.18-0.11-0.17-0.11-0.16-0.09-0.3-0.14-0.13-0.06-0.19-0.07-0.38-0.12-0.2-0.05-0.4-0.08-0.21-0.03-0.21-0.02-0.21-0.01-0.43-0.01h-0.28l-0.27 0.01z&quot; id=&quot;fcc-c&quot;&gt;&lt;/path&gt;
    &lt;path d=&quot;m195.66 12.04c-0.99-0.25 3.06-5.03-4.13-10.75 0 0 0.94 3-3.81 9.69-4.76 6.68 2.11 10.66 2.11 10.66s-3.22-1.72 0.53-7.84c0.67-1.11 1.55-2.11 2.64-4.38 0 0 0.96 1.37 0.46 4.32-0.75 4.47 3.27 3.19 3.33 3.25 1.41 1.65-1.16 4.56-1.32 4.65s7.34-4.5 2.01-11.42c-0.36 0.36-0.83 2.08-1.82 1.82z&quot; id=&quot;fcc-e&quot;&gt;&lt;/path&gt;
    &lt;path d=&quot;m135.26 5.37 0.19 0.01 0.18 0.02 0.18 0.01 0.18 0.02 0.34 0.04 0.16 0.02 0.16 0.04 0.15 0.02 0.14 0.04 0.15 0.03 0.28 0.08 0.26 0.08 0.36 0.15 0.12 0.06 0.11 0.05 0.1 0.06 0.11 0.06 0.12 0.08 0.1 0.09 0.11 0.09 0.2 0.2 0.18 0.22 0.16 0.24 0.07 0.12 0.14 0.26 0.12 0.29 0.05 0.14 0.04 0.15 0.05 0.16 0.04 0.15 0.03 0.17 0.02 0.16 0.04 0.36 0.01 0.18 0.02 0.18v6.1 0.08 0.08l0.02 0.28 0.01 0.07 0.02 0.12 0.02 0.06 0.01 0.06 0.03 0.11 0.02 0.05 0.06 0.14 0.03 0.04 0.02 0.04 0.03 0.04 0.06 0.07 0.08 0.08 0.02 0.01v0.01h0.03l0.01 0.02 0.05 0.02 0.02 0.01 0.05 0.02 0.03 0.02 0.04 0.01 0.11 0.04 0.12 0.05 0.1 0.04 0.04 0.01 0.05 0.02 0.05 0.03 0.09 0.03 0.07 0.03 0.02 0.02 0.03 0.02 0.05 0.04 0.02 0.02 0.02 0.03 0.02 0.02 0.04 0.06 0.03 0.06 0.01 0.04 0.01 0.03 0.02 0.08v0.04l0.01 0.04 0.01 0.05v0.05l0.01 0.05v0.21l-0.02 0.05v0.04l-0.01 0.05-0.01 0.04-0.02 0.04-0.01 0.04-0.02 0.03-0.03 0.04-0.05 0.06-0.02 0.03-0.04 0.02-0.11 0.06-0.08 0.04-0.1 0.02-0.1 0.01h-0.06-0.11-0.02-0.01l-0.03-0.01h-0.02-0.02l-0.1-0.02-0.03-0.02h-0.03l-0.06-0.02-0.11-0.03-0.12-0.03-0.05-0.01-0.04-0.01-0.05-0.02-0.21-0.07-0.07-0.02-0.07-0.03-0.24-0.08-0.1-0.04-0.05-0.01-0.04-0.02-0.05-0.01-0.04-0.01-0.04-0.02-0.03-0.01-0.07-0.02-0.07-0.03-0.03-0.01-0.01-0.01-0.02-0.01h-0.03-0.04l-0.03-0.02-0.03-0.01-0.04-0.01-0.02-0.02-0.06-0.04-0.03-0.03-0.02-0.03-0.03-0.03-0.02-0.03-0.02-0.04-0.03-0.04-0.02-0.04-0.01-0.04-0.03-0.04-0.02-0.05-0.03-0.09-0.06-0.21-0.02-0.06-0.23 0.16-0.22 0.15-0.1 0.07-0.2 0.12-0.1 0.07-0.34 0.22-0.08 0.04-0.07 0.05-0.21 0.12-0.06 0.04-0.16 0.08-0.05 0.02-0.09 0.04-0.04 0.01-0.06 0.04-0.07 0.02-0.15 0.05-0.4 0.1-0.08 0.01-0.18 0.03-0.09 0.01-0.09 0.02-0.28 0.03-0.2 0.02h-0.1l-0.11 0.01h-0.1-0.49-0.16l-0.16-0.01-0.31-0.02-0.3-0.03-0.15-0.02-0.15-0.03-0.28-0.05-0.27-0.06-0.14-0.04-0.13-0.04-0.12-0.04-0.13-0.05-0.24-0.09-0.12-0.06-0.11-0.05-0.11-0.06-0.11-0.07-0.11-0.06-0.1-0.07-0.24-0.16-0.22-0.19-0.1-0.1-0.09-0.1-0.1-0.1-0.24-0.33-0.14-0.24-0.06-0.12-0.06-0.13-0.05-0.12-0.05-0.13-0.08-0.27-0.06-0.28-0.04-0.3-0.02-0.3v-0.32l0.01-0.15 0.01-0.16 0.02-0.14 0.05-0.3 0.07-0.28 0.05-0.14 0.11-0.26 0.12-0.26 0.15-0.24 0.16-0.22 0.09-0.11 0.1-0.11 0.2-0.2 0.11-0.09 0.23-0.18 0.13-0.08 0.33-0.24 0.24-0.13 0.26-0.13 0.13-0.05 0.26-0.11 0.14-0.05 0.42-0.12 0.15-0.03 0.14-0.04 0.15-0.02 0.15-0.03 0.16-0.02 0.15-0.01 0.16-0.02 0.48-0.03h0.3l0.13 0.01h0.14l0.29 0.02 0.14 0.02 0.15 0.02 0.14 0.02 0.16 0.02 0.14 0.02 0.15 0.04 0.16 0.02 0.15 0.03 0.32 0.08 0.49 0.12 0.16 0.05 0.51 0.15 0.36 0.12 0.17 0.06v-2.01-0.12l-0.01-0.11-0.01-0.1-0.01-0.12-0.02-0.09-0.02-0.11-0.04-0.1-0.03-0.1-0.03-0.09-0.05-0.09-0.04-0.09-0.11-0.16-0.06-0.09-0.06-0.07-0.07-0.08-0.15-0.14-0.08-0.07-0.18-0.12-0.1-0.06-0.2-0.1-0.11-0.06-0.07-0.03-0.16-0.06-0.34-0.11-0.26-0.06-0.1-0.02-0.09-0.01-0.1-0.02-0.09-0.01-0.3-0.03-0.1-0.02h-0.1l-0.11-0.01-0.1-0.01h-0.11-0.1-0.47l-0.25 0.01-0.24 0.01-0.23 0.02-0.42 0.06-0.2 0.03-0.19 0.04-0.17 0.05-0.17 0.06-0.16 0.05-0.15 0.07-0.14 0.07-0.13 0.07-0.12 0.09-0.12 0.08-0.1 0.1-0.09 0.1-0.09 0.11-0.08 0.11-0.06 0.11-0.06 0.13-0.05 0.13-0.04 0.14-0.03 0.14-0.01 0.07-0.02 0.06-0.04 0.22-0.02 0.09-0.01 0.05-0.01 0.04-0.01 0.03v0.04l-0.02 0.06-0.01 0.06-0.01 0.04v0.02l-0.01 0.02v0.01 0.01 0.03l-0.02 0.03-0.03 0.07-0.01 0.02-0.05 0.06-0.01 0.02-0.03 0.02-0.05 0.05-0.02 0.01-0.02 0.02-0.03 0.01-0.03 0.02-0.09 0.03-0.04 0.01-0.06 0.02h-0.04-0.04l-0.03 0.01h-0.15l-0.06-0.01-0.13-0.02-0.06-0.01-0.15-0.06-0.1-0.06-0.04-0.04-0.04-0.03-0.08-0.08-0.03-0.05-0.05-0.09-0.03-0.06-0.01-0.06-0.04-0.12-0.01-0.06v-0.07l-0.01-0.08v-0.17l0.01-0.1v-0.1l0.02-0.1 0.01-0.1 0.04-0.2 0.05-0.2 0.03-0.1 0.03-0.09 0.08-0.2 0.05-0.1 0.09-0.19 0.18-0.28 0.06-0.09 0.07-0.09 0.22-0.27 0.08-0.09 0.1-0.11 0.22-0.2 0.12-0.09 0.26-0.18 0.14-0.08 0.15-0.08 0.16-0.08 0.15-0.06 0.17-0.07 0.18-0.06 0.18-0.05 0.38-0.1 0.2-0.04 0.42-0.08 0.44-0.05 0.46-0.04 0.24-0.01h0.25l0.25-0.01h0.2l0.2 0.01h0.2zm-2.41 7.31-0.68 0.24-0.54 0.35-0.38 0.44-0.23 0.54-0.07 0.64 0.02 0.34 0.06 0.31 0.11 0.3 0.15 0.27 0.2 0.25 0.25 0.2 0.29 0.17 0.25 0.13 0.28 0.12 0.3 0.09 0.32 0.08 0.34 0.05 0.36 0.03 0.38 0.01 0.34-0.01 0.32-0.02 0.32-0.04 0.31-0.07 0.3-0.07 0.3-0.11 0.29-0.13 0.2-0.12 0.22-0.15 0.25-0.16 0.26-0.18 0.28-0.21 0.3-0.22 0.31-0.23v-2.41l-0.54-0.16-0.53-0.14-0.53-0.11-0.52-0.09-0.51-0.07-0.49-0.04-0.48-0.01-0.98 0.05-0.83 0.14z&quot; id=&quot;fcc-m&quot;&gt;&lt;/path&gt;
    &lt;path d=&quot;m0.97 5.8h1.84v-1.61c0-2.8 1.44-4.19 4.24-4.19 1.14 0 2.12 0.23 2.86 0.63 0.96 0.57 1.5 1.5 1.5 2.58 0 0.73-0.29 1.02-0.8 1.02-0.34 0-0.68-0.23-0.86-0.63-0.22-0.73-0.45-1.13-0.56-1.32-0.34-0.4-1.03-0.63-2.01-0.63-1.72 0-2.57 0.85-2.57 2.58v1.55h3.31c0.74 0 1.08 0.29 1.08 0.79 0 0.57-0.34 0.8-1.08 0.8h-3.31v10.48c0 0.62-0.29 0.96-0.8 0.96-0.57 0-0.8-0.34-0.8-0.96v-10.46h-2.04c-0.63 0-0.97-0.28-0.97-0.79 0-0.58 0.34-0.8 0.97-0.8z&quot; id=&quot;fcc-a&quot;&gt;&lt;/path&gt;
    &lt;path d=&quot;m78.8 5.55 0.61 0.08 0.56 0.12 0.52 0.15 0.48 0.18 0.43 0.22 0.38 0.25 0.34 0.29 0.29 0.32 0.25 0.35 0.21 0.39 0.16 0.42 0.11 0.45 0.07 0.49 0.02 0.51v4.71l-0.02 0.52-0.07 0.48-0.11 0.46-0.15 0.42-0.2 0.38-0.24 0.35-0.29 0.32-0.33 0.29-0.38 0.25-0.42 0.22-0.47 0.19-0.51 0.15-0.55 0.11-0.6 0.09-0.64 0.05-0.68 0.02-0.72-0.01-0.68-0.04-0.63-0.08-0.58-0.11-0.53-0.15-0.48-0.18-0.43-0.22-0.39-0.25-0.34-0.29-0.3-0.32-0.25-0.36-0.21-0.38-0.15-0.43-0.11-0.46-0.07-0.49-0.02-0.53v-4.71l0.02-0.51 0.07-0.49 0.11-0.45 0.16-0.42 0.2-0.39 0.26-0.35 0.29-0.32 0.34-0.29 0.39-0.25 0.43-0.22 0.47-0.18 0.52-0.15 0.56-0.12 0.61-0.08 0.65-0.06 0.7-0.01 0.69 0.01 0.65 0.06zm-2.67 1.61-0.53 0.1-0.47 0.13-0.42 0.17-0.37 0.21-0.31 0.24-0.25 0.28-0.2 0.32-0.14 0.35-0.09 0.39-0.02 0.42v4.71l0.02 0.42 0.09 0.39 0.14 0.36 0.21 0.31 0.26 0.28 0.31 0.24 0.37 0.2 0.43 0.17 0.49 0.12 0.55 0.09 0.6 0.04h0.66 0.64l0.59-0.04 0.54-0.08 0.48-0.12 0.42-0.16 0.37-0.2 0.31-0.23 0.26-0.28 0.2-0.32 0.14-0.36 0.09-0.4 0.03-0.43v-4.71l-0.03-0.42-0.09-0.39-0.14-0.35-0.2-0.32-0.27-0.28-0.31-0.24-0.38-0.21-0.44-0.17-0.49-0.13-0.55-0.1-0.62-0.05-0.67-0.02-0.63 0.02-0.58 0.05z&quot; id=&quot;fcc-i&quot;&gt;&lt;/path&gt;
    &lt;path d=&quot;m181.88 0.18c0.12 0.11 0.23 0.28 0.23 0.45 0 0.29-0.34 0.68-0.97 1.32-2.62 2.53-3.94 5.62-3.93 9.36 0.01 4.12 1.4 7.44 4.1 10.01 0.56 0.5 0.8 0.9 0.8 1.24 0 0.17-0.12 0.35-0.23 0.51-0.11 0.12-0.34 0.24-0.51 0.24-0.63 0-1.5-0.74-2.64-2.18-2.22-2.72-3.22-5.72-3.28-9.82-0.05-4.1 1.23-6.88 3.75-9.75 0.9-1.02 1.66-1.56 2.17-1.56 0.17 0 0.34 0.06 0.51 0.18z&quot; id=&quot;fcc-f&quot;&gt;&lt;/path&gt;
    &lt;path d=&quot;m149.59 6.94c0.45-0.57 0.85-0.92 1.25-1.08 0.39-0.23 0.96-0.34 1.6-0.34 1.96 0 2.98 0.96 2.98 2.85v9.29c0 0.79-0.28 1.14-0.85 1.14s-0.8-0.35-0.8-1.14v-8.7c0-1.19-0.51-1.83-1.49-1.83-0.74 0-1.5 0.45-2.12 1.32v9.29c0 0.79-0.29 1.13-0.8 1.13s-0.8-0.34-0.8-1.13v-8.59c0-1.33-0.56-1.95-1.61-1.95-0.68 0-1.32 0.46-2 1.33v9.22c0 0.8-0.29 1.14-0.86 1.14s-0.79-0.34-0.79-1.14v-11.38c0-0.57 0.22-0.8 0.68-0.8 0.23 0 0.45 0.17 0.57 0.51 0.11 0.15 0.17 0.44 0.17 0.78 0.53-0.57 0.87-0.91 1.02-1.03 0.34-0.22 0.8-0.34 1.44-0.34 0.91 0 1.72 0.46 2.41 1.45z&quot; id=&quot;fcc-g&quot;&gt;&lt;/path&gt;
    &lt;path d=&quot;m49.79 5.56 0.44 0.05 0.41 0.08 0.4 0.09 0.37 0.12 0.35 0.14 0.33 0.16 0.31 0.18 0.28 0.21 0.27 0.22 0.24 0.24 0.22 0.27 0.2 0.28 0.18 0.31 0.16 0.33 0.13 0.35 0.11 0.37 0.1 0.39 0.07 0.41 0.06 0.44 0.03 0.45 0.01 0.47v0.12l-0.01 0.11-0.01 0.1-0.03 0.2-0.02 0.09-0.03 0.09-0.02 0.08-0.08 0.15-0.03 0.06-0.1 0.12-0.05 0.05-0.06 0.05-0.05 0.03-0.07 0.04-0.07 0.03-0.14 0.04-0.08 0.01-0.09 0.01h-8.89v-0.07h-0.02v1.84l0.01 0.24 0.02 0.24 0.04 0.23 0.06 0.22 0.06 0.2 0.09 0.2 0.1 0.17 0.12 0.18 0.14 0.15 0.15 0.16 0.16 0.13 0.18 0.13 0.2 0.11 0.22 0.11 0.22 0.09 0.25 0.09 0.26 0.06 0.28 0.07 0.29 0.05 0.31 0.03 0.33 0.03 0.34 0.02 0.36 0.01h0.13l0.13-0.01h0.12l0.13-0.01h0.12l0.24-0.02 0.23-0.02 0.11-0.01 0.12-0.02 0.31-0.04 0.1-0.02 0.09-0.02 0.1-0.02 0.09-0.02 0.1-0.03 0.09-0.02 0.16-0.06 0.09-0.03 0.04-0.01 0.05-0.02 0.06-0.02 0.05-0.02 0.05-0.03 0.06-0.02 0.06-0.03 0.07-0.03 0.14-0.07 0.14-0.08 0.08-0.05 0.08-0.04 0.08-0.05 0.18-0.1 0.08-0.06 0.19-0.13 0.1-0.06 0.11-0.07 0.1-0.07 0.13-0.12 0.13-0.1 0.05-0.05 0.06-0.04 0.05-0.04 0.06-0.05 0.09-0.07 0.09-0.06 0.05-0.03 0.04-0.02 0.04-0.03 0.07-0.03 0.09-0.03 0.05-0.01h0.09l0.1 0.01 0.15 0.03 0.04 0.02 0.07 0.04 0.04 0.03 0.09 0.09 0.03 0.04 0.04 0.08 0.02 0.1 0.02 0.06v0.05l0.01 0.05v0.07l0.01 0.07-0.01 0.06v0.07l-0.01 0.06-0.01 0.07-0.07 0.2-0.03 0.06-0.06 0.14-0.09 0.14-0.05 0.06-0.11 0.14-0.12 0.13-0.14 0.14-0.16 0.14-0.08 0.06-0.08 0.08-0.15 0.1-0.15 0.11-0.32 0.2-0.17 0.09-0.18 0.09-0.18 0.08-0.19 0.07-0.2 0.08-0.2 0.07-0.21 0.06-0.22 0.06-0.44 0.1-0.47 0.09-0.5 0.06-0.52 0.04-0.55 0.02h-0.28-0.49l-0.47-0.03-0.44-0.04-0.43-0.07-0.4-0.07-0.38-0.09-0.36-0.11-0.34-0.13-0.32-0.15-0.29-0.16-0.27-0.18-0.26-0.2-0.23-0.21-0.21-0.23-0.19-0.25-0.16-0.26-0.14-0.29-0.12-0.29-0.1-0.32-0.08-0.34-0.06-0.35-0.03-0.37-0.01-0.39v-4.71l0.01-0.14 0.01-0.12 0.06-0.39 0.03-0.13 0.03-0.12 0.05-0.12 0.08-0.24 0.06-0.12 0.11-0.23 0.07-0.11 0.07-0.12 0.07-0.1 0.08-0.11 0.09-0.1 0.09-0.11 0.18-0.2 0.1-0.1 0.14-0.13 0.29-0.24 0.32-0.22 0.17-0.1 0.36-0.18 0.38-0.16 0.2-0.07 0.42-0.12 0.44-0.1 0.23-0.04 0.23-0.03 0.24-0.04 0.24-0.02 0.26-0.02 0.52-0.02h0.26l0.48 0.01 0.46 0.03zm-2.04 1.6-0.4 0.07-0.4 0.1-0.38 0.13-0.36 0.15-0.35 0.18-0.34 0.25-0.28 0.26-0.23 0.28-0.17 0.3-0.13 0.31-0.08 0.32-0.02 0.35v0.96h8.18l-0.08-0.98-0.26-0.83-0.42-0.69-0.6-0.53-0.77-0.38-0.94-0.23-1.11-0.07-0.44 0.01-0.42 0.04z&quot; id=&quot;fcc-h&quot;&gt;&lt;/path&gt;
    &lt;path d=&quot;m67.34 1.76c1.14 0.86 1.73 2.07 1.73 3.55 0 0.68-0.29 1.02-0.86 1.02-0.4 0-0.68-0.34-0.85-1.02-0.12-0.57-0.34-1.08-0.62-1.62-0.52-0.9-1.61-1.32-3.32-1.32-1.5 0-2.52 0.34-3.14 1.08-0.57 0.68-0.92 1.72-0.92 3.26v5.95c0 1.55 0.35 2.63 0.97 3.31 0.68 0.74 1.73 1.13 3.21 1.13 2.23 0 3.54-0.79 3.82-2.34 0.11-0.57 0.17-0.86 0.17-0.91 0.11-0.34 0.34-0.51 0.68-0.51 0.57 0 0.86 0.34 0.86 1.02 0 1.44-0.58 2.52-1.79 3.38-0.96 0.62-2.18 0.96-3.77 0.96-1.83 0-3.25-0.4-4.3-1.25-1.21-0.8-1.72-2.16-1.72-3.94v-7.16c0-3.77 1.93-5.61 5.95-5.61 1.61 0 2.86 0.34 3.9 1.02z&quot; id=&quot;fcc-o&quot;&gt;&lt;/path&gt;
    &lt;path d=&quot;m158.79 5.43 0.12 0.04 0.03 0.02 0.03 0.01 0.03 0.03 0.06 0.04 0.03 0.03 0.03 0.02 0.1 0.14 0.06 0.08 0.02 0.05 0.02 0.04 0.01 0.04 0.02 0.09 0.01 0.04 0.02 0.04 0.01 0.05 0.01 0.04 0.02 0.04 0.01 0.05 0.05 0.12 0.02 0.05 0.03 0.08 0.01 0.05 0.03 0.12 0.02 0.04 0.02 0.08 0.25-0.12 0.49-0.23 0.24-0.11 0.23-0.1 0.46-0.18 0.22-0.08 0.21-0.08 0.21-0.07 0.2-0.06 0.2-0.07 0.2-0.05 0.38-0.09 0.19-0.04 0.34-0.06 0.17-0.02 0.32-0.02h0.16l0.46 0.01 0.44 0.03 0.43 0.04 0.39 0.06 0.38 0.09 0.36 0.1 0.33 0.12 0.31 0.14 0.29 0.15 0.27 0.17 0.25 0.2 0.22 0.2 0.21 0.23 0.18 0.24 0.16 0.26 0.14 0.28 0.12 0.3 0.09 0.31 0.08 0.33 0.06 0.35 0.03 0.36 0.01 0.38v4.76l-0.01 0.19-0.01 0.18-0.01 0.17-0.03 0.18-0.02 0.17-0.08 0.32-0.05 0.16-0.05 0.15-0.12 0.3-0.08 0.14-0.07 0.14-0.09 0.14-0.09 0.13-0.09 0.12-0.1 0.13-0.11 0.12-0.12 0.12-0.11 0.12-0.26 0.22-0.24 0.18-0.26 0.16-0.14 0.07-0.13 0.07-0.15 0.07-0.15 0.06-0.15 0.05-0.32 0.11-0.33 0.08-0.17 0.04-0.36 0.06-0.36 0.04-0.19 0.02-0.2 0.01h-0.19-0.44l-0.24-0.01-0.24-0.02-0.23-0.01-0.46-0.06-0.22-0.04-0.44-0.09-0.21-0.06-0.21-0.05-0.21-0.07-0.21-0.08-0.4-0.16-0.2-0.1-0.19-0.1-0.2-0.1-0.19-0.11-0.19-0.12-0.36-0.26v5.49l-0.02 0.2-0.01 0.09-0.02 0.09-0.06 0.24-0.03 0.07-0.04 0.07-0.03 0.05-0.04 0.06-0.08 0.1-0.1 0.08-0.06 0.02-0.05 0.03-0.06 0.02-0.06 0.01-0.07 0.01h-0.14-0.06l-0.07-0.02-0.05-0.02-0.06-0.02-0.11-0.06-0.04-0.04-0.05-0.04-0.08-0.1-0.04-0.06-0.03-0.06-0.02-0.07-0.03-0.08-0.04-0.16-0.02-0.1-0.01-0.09-0.01-0.11v-0.1-16.31-0.1l0.01-0.09 0.01-0.1 0.01-0.09 0.01-0.08 0.02-0.08 0.03-0.07 0.02-0.08 0.05-0.12 0.04-0.06 0.03-0.05 0.04-0.05 0.04-0.03 0.05-0.04 0.04-0.03 0.05-0.03 0.11-0.03 0.06-0.01h0.09l0.03 0.01h0.03zm4.49 1.74-0.46 0.04-0.22 0.03-0.21 0.03-0.21 0.05-0.38 0.1-0.36 0.14-0.15 0.07-0.16 0.08-0.15 0.1-0.17 0.11-0.16 0.12-0.17 0.14-0.17 0.15-0.18 0.16-0.18 0.18-0.2 0.19-0.2 0.2v6.54h0.06v-0.03l0.47 0.28 0.45 0.25 0.45 0.24 0.42 0.19 0.41 0.18 0.4 0.14 0.38 0.12 0.36 0.09 0.35 0.07 0.34 0.04 0.32 0.02 0.28-0.01 0.27-0.01 0.26-0.03 0.24-0.03 0.25-0.04 0.23-0.05 0.22-0.06 0.21-0.07 0.2-0.08 0.19-0.09 0.17-0.1 0.21-0.13 0.18-0.15 0.17-0.15 0.14-0.16 0.12-0.17 0.1-0.19 0.08-0.19 0.06-0.2 0.05-0.22 0.02-0.22 0.01-0.23v-4.75l-0.01-0.28-0.03-0.26-0.05-0.23-0.07-0.23-0.09-0.21-0.11-0.2-0.14-0.18-0.15-0.17-0.18-0.15-0.2-0.15-0.22-0.12-0.18-0.09-0.19-0.09-0.2-0.06-0.21-0.07-0.22-0.05-0.24-0.05-0.24-0.04-0.26-0.03-0.27-0.02-0.28-0.01-0.29-0.01-0.25 0.01h-0.26z&quot; id=&quot;fcc-d&quot;&gt;&lt;/path&gt;
  &lt;/defs&gt;
  &lt;use fill=&quot;currentColor&quot; xlink:href=&quot;#fcc-k&quot;&gt;&lt;/use&gt;
  &lt;use fill-opacity=&quot;0&quot; stroke=&quot;#000000&quot; stroke-opacity=&quot;0&quot; xlink:href=&quot;#fcc-k&quot;&gt;&lt;/use&gt;
  &lt;use fill=&quot;currentColor&quot; xlink:href=&quot;#fcc-j&quot;&gt;&lt;/use&gt;
  &lt;use fill-opacity=&quot;0&quot; stroke=&quot;#000000&quot; stroke-opacity=&quot;0&quot; xlink:href=&quot;#fcc-j&quot;&gt;&lt;/use&gt;
  &lt;use fill=&quot;currentColor&quot; xlink:href=&quot;#fcc-b&quot;&gt;&lt;/use&gt;
  &lt;use fill-opacity=&quot;0&quot; stroke=&quot;#000000&quot; stroke-opacity=&quot;0&quot; xlink:href=&quot;#fcc-b&quot;&gt;&lt;/use&gt;
  &lt;use fill=&quot;currentColor&quot; xlink:href=&quot;#fcc-n&quot;&gt;&lt;/use&gt;
  &lt;use fill-opacity=&quot;0&quot; stroke=&quot;#000000&quot; stroke-opacity=&quot;0&quot; xlink:href=&quot;#fcc-n&quot;&gt;&lt;/use&gt;
  &lt;use fill=&quot;currentColor&quot; xlink:href=&quot;#fcc-l&quot;&gt;&lt;/use&gt;
  &lt;use fill-opacity=&quot;0&quot; stroke=&quot;#000000&quot; stroke-opacity=&quot;0&quot; xlink:href=&quot;#fcc-l&quot;&gt;&lt;/use&gt;
  &lt;use fill=&quot;currentColor&quot; xlink:href=&quot;#fcc-c&quot;&gt;&lt;/use&gt;
  &lt;use fill-opacity=&quot;0&quot; stroke=&quot;#000000&quot; stroke-opacity=&quot;0&quot; xlink:href=&quot;#fcc-c&quot;&gt;&lt;/use&gt;
  &lt;use fill=&quot;currentColor&quot; xlink:href=&quot;#fcc-e&quot;&gt;&lt;/use&gt;
  &lt;use fill-opacity=&quot;0&quot; stroke=&quot;#000000&quot; stroke-opacity=&quot;0&quot; xlink:href=&quot;#fcc-e&quot;&gt;&lt;/use&gt;
  &lt;use fill=&quot;currentColor&quot; xlink:href=&quot;#fcc-m&quot;&gt;&lt;/use&gt;
  &lt;use fill-opacity=&quot;0&quot; stroke=&quot;#000000&quot; stroke-opacity=&quot;0&quot; xlink:href=&quot;#fcc-m&quot;&gt;&lt;/use&gt;
  &lt;use fill=&quot;currentColor&quot; xlink:href=&quot;#fcc-a&quot;&gt;&lt;/use&gt;
  &lt;use fill-opacity=&quot;0&quot; stroke=&quot;#000000&quot; stroke-opacity=&quot;0&quot; xlink:href=&quot;#fcc-a&quot;&gt;&lt;/use&gt;
  &lt;use fill=&quot;currentColor&quot; xlink:href=&quot;#fcc-i&quot;&gt;&lt;/use&gt;
  &lt;use fill-opacity=&quot;0&quot; stroke=&quot;#000000&quot; stroke-opacity=&quot;0&quot; xlink:href=&quot;#fcc-i&quot;&gt;&lt;/use&gt;
  &lt;use fill=&quot;currentColor&quot; xlink:href=&quot;#fcc-f&quot;&gt;&lt;/use&gt;
  &lt;use fill-opacity=&quot;0&quot; stroke=&quot;#000000&quot; stroke-opacity=&quot;0&quot; xlink:href=&quot;#fcc-f&quot;&gt;&lt;/use&gt;
  &lt;use fill=&quot;currentColor&quot; xlink:href=&quot;#fcc-g&quot;&gt;&lt;/use&gt;
  &lt;use fill-opacity=&quot;0&quot; stroke=&quot;#000000&quot; stroke-opacity=&quot;0&quot; xlink:href=&quot;#fcc-g&quot;&gt;&lt;/use&gt;
  &lt;use fill=&quot;currentColor&quot; xlink:href=&quot;#fcc-h&quot;&gt;&lt;/use&gt;
  &lt;use fill-opacity=&quot;0&quot; stroke=&quot;#000000&quot; stroke-opacity=&quot;0&quot; xlink:href=&quot;#fcc-h&quot;&gt;&lt;/use&gt;
  &lt;use fill=&quot;currentColor&quot; xlink:href=&quot;#fcc-o&quot;&gt;&lt;/use&gt;
  &lt;use fill-opacity=&quot;0&quot; stroke=&quot;#000000&quot; stroke-opacity=&quot;0&quot; xlink:href=&quot;#fcc-o&quot;&gt;&lt;/use&gt;
  &lt;use fill=&quot;currentColor&quot; xlink:href=&quot;#fcc-d&quot;&gt;&lt;/use&gt;
  &lt;use fill-opacity=&quot;0&quot; stroke=&quot;#000000&quot; stroke-opacity=&quot;0&quot; xlink:href=&quot;#fcc-d&quot;&gt;&lt;/use&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:TryGhost knip&quot;&gt;&lt;svg viewBox=&quot;105 65 470 155&quot;&gt;&lt;g opacity=&quot;0.7&quot;&gt;&lt;rect x=&quot;112.197&quot; y=&quot;168.302&quot; fill=&quot;currentColor&quot; width=&quot;31.703&quot; height=&quot;15.852&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;159.75&quot; y=&quot;168.302&quot; fill=&quot;currentColor&quot; width=&quot;31.683&quot; height=&quot;15.852&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;112.173&quot; y=&quot;136.599&quot; fill=&quot;currentColor&quot; width=&quot;79.27&quot; height=&quot;15.852&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;112.197&quot; y=&quot;104.898&quot; fill=&quot;currentColor&quot; width=&quot;47.559&quot; height=&quot;15.851&quot;&gt;&lt;/rect&gt;&lt;rect x=&quot;175.602&quot; y=&quot;104.898&quot; fill=&quot;currentColor&quot; width=&quot;15.851&quot; height=&quot;15.851&quot;&gt;&lt;/rect&gt;&lt;/g&gt;&lt;g fill=&quot;currentColor&quot;&gt;&lt;path d=&quot;M421.575,104.807c-25.458,0-38.606,18.003-38.606,40.211c0,22.209,12.824,40.214,38.606,40.214s38.606-18.005,38.606-40.214C460.182,122.81,447.032,104.807,421.575,104.807z M440.835,145.09L440.835,145.09c-0.018,14.281-4.83,25.848-19.26,25.848s-19.243-11.566-19.258-25.848l0,0c0-0.012,0-0.023,0-0.035s0-0.023,0-0.036l0,0c0.015-14.28,4.829-25.846,19.259-25.846c14.429,0,19.241,11.566,19.259,25.846l0,0c0,0.013,0,0.024,0,0.036S440.835,145.078,440.835,145.09z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M307.584,184.153V72.975c0,0,14.664-2.083,15.801-2.236c1.288-0.174,2.998,0.743,2.998,2.556c0,1.985,0,41.214,0,41.214c3.043-2.893,6.394-5.225,10.046-7.002c3.655-1.775,7.941-2.664,12.865-2.664c4.263,0,8.04,0.723,11.338,2.17c3.3,1.444,6.053,3.476,8.26,6.087c2.207,2.615,3.882,5.735,5.024,9.363c1.141,3.628,1.712,7.624,1.712,11.988v49.701h-18.8v-49.701c0-4.769-1.104-8.461-3.311-11.076c-2.208-2.612-5.519-3.919-9.935-3.919c-3.247,0-6.29,0.736-9.13,2.209c-2.843,1.472-5.532,3.474-8.069,6.013v56.475H307.584z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M558.565,185.224c-12.937,0-21.045-7.529-21.045-21.575v-41.628h-14.58c0,0,3.099-10.718,3.344-11.562c0.246-0.843,0.887-1.749,2.174-1.928s9.044-1.261,9.044-1.261l3.583-22.794c0,0,10.527-1.484,12.196-1.733c1.576-0.236,3.005,0.899,3.005,2.616c0,1.715,0,21.911,0,21.911h18.44v14.751h-18.44v41.067c0,5.607,3.414,7.75,6.686,7.75c2,0,4.739-1.062,6.783-2.01c1.263-0.584,3.22-0.151,3.726,1.612c0.447,1.562,2.824,9.853,2.824,9.853C574.254,181.617,567.771,185.224,558.565,185.224z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M512.609,122.267c-3.664-1.19-10.551-3.095-17.102-3.095c-6.675,0-11.927,2.306-11.927,7.856c0,6.932,11.319,8.95,19.067,11.776c5.18,1.889,19.071,5.572,19.071,20.512c0,18.148-15.071,25.907-31.148,25.907c-16.079,0-25.578-5.98-25.578-5.98s2.494-8.81,2.999-10.549c0.457-1.565,2.276-2.114,3.435-1.669c4.138,1.595,11.61,3.812,20.056,3.812c8.551,0,12.688-2.611,12.688-8.177c0-7.408-11.547-9.672-19.184-12.081c-5.261-1.658-19.186-5.525-19.186-21.956c0-16.186,14.213-23.78,29.403-23.78c12.858,0,19.165,2.689,23.876,5.089c0,0-2.625,9.149-3.015,10.512C515.604,122.064,514.275,122.807,512.609,122.267z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M300.245,107.523c0-1.751-1.496-2.753-2.923-2.59c-6.309,0.723-10.81,3.692-13.722,6.456c-5.718-4.48-13.655-6.619-22.563-6.619c-17.86,0-31.814,8.62-31.814,27.416c0,10.79,4.593,18.225,11.887,22.602c-5.417,2.564-9.025,8.005-9.025,13.354c0,8.948,7.069,11.75,7.069,11.75s-12.36,5.999-12.36,18.001c0,15.364,14.139,21.576,31.416,21.576c24.904,0,42.038-10.286,42.038-29.173c0-11.624-8.895-18.041-28.279-18.804c-11.503-0.454-18.954-0.868-20.8-1.479c-2.439-0.81-3.638-2.763-3.638-4.919c0-2.38,1.955-4.646,5.037-6.202c2.688,0.476,5.525,0.711,8.471,0.711c17.875,0,31.815-8.595,31.815-27.416c0-4.564-0.824-8.526-2.322-11.911c2.626-1.401,5.857-2.387,9.715-2.387C300.245,117.889,300.245,109.12,300.245,107.523z M251.026,184.25c0,0,9.379,0.355,18.751,0.789c10.529,0.487,13.81,2.756,13.81,8.208c0,6.661-9.15,13.14-21.937,13.14c-12.138,0-18.201-4.223-18.201-11.254C243.449,191.099,245.579,186.586,251.026,184.25z M261.071,146.483c-8.461,0-15.062-4.494-15.062-14.297c0-9.804,6.607-14.298,15.062-14.298c8.456,0,15.062,4.482,15.062,14.298S269.535,146.483,261.071,146.483z&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:google-gemini knip&quot;&gt;&lt;svg viewBox=&quot;0 0 48 48&quot;&gt;
  &lt;path fill=&quot;#4285F4&quot; d=&quot;M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#34A853&quot; d=&quot;M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#FBBC05&quot; d=&quot;M10.53 28.59A14.5 14.5 0 0 1 9.5 24c0-1.59.28-3.14.76-4.59l-7.98-6.19A23.99 23.99 0 0 0 0 24c0 3.77.9 7.35 2.56 10.52l7.97-5.93z&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#EA4335&quot; d=&quot;M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 5.93C6.51 42.62 14.62 48 24 48z&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:grafana knip&quot;&gt;&lt;svg viewBox=&quot;0 0 135 23&quot; fill=&quot;none&quot;&gt;
  &lt;path fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; d=&quot;M99.2139 18.6364H106.379V16.7179h-5.247V4.5022H99.2139V18.6364zM114.952 18.6367H116.558V9.12258H114.913V10.3363C114.091 9.47495 112.956 8.96597 111.664 8.96597c-2.741.0-4.934 2.19253-4.934 4.89413.0 2.7015 2.193 4.9332 4.934 4.9332C112.956 18.7933 114.13 18.2452 114.952 17.423v1.2137zm-3.288-7.7914c1.68299999999999.0 3.014 1.3704 3.014 3.0148.0 1.6836-1.331 3.0148-3.014 3.0148-1.684.0-3.015-1.3312-3.015-3.0148.0-1.6444 1.37-3.0148 3.015-3.0148zm16.327 3.0145c0 2.7016-2.232 4.9333-4.934 4.9333C121.765 18.7931 120.591 18.2449 119.768 17.4227v1.2138h-1.605V5.28533H120.043V10.1011C120.826 9.39638 121.883 8.9657 123.057 8.9657 125.759 8.92655 127.991 11.1583 127.991 13.8598zm-1.958.0c0-1.6444-1.37-3.0148-3.015-3.0148-1.64400000000001.0-3.015 1.3312-3.015 3.0148.0 1.6444 1.371 2.9756 3.015 2.9756 1.645.0 3.015-1.3312 3.015-2.9756zm7.634-2.6625L134.489 9.78775C133.706 9.31792 132.845 8.92639 131.748 9.00469 129.947 9.00469 128.577 10.101 128.577 11.6671 128.577 13.3256 130.097 13.9582 131.04 14.351L131.083 14.3686C132.414 14.8776 133.001 15.23 133.001 15.8956c0 .5481-.430000000000007 1.1354-1.37 1.1354C130.848 17.031 129.83 16.6004 129.282 16.2871l-.744 1.5661C129.36 18.3622 130.535 18.8321 131.709 18.8321 133.628 18.8321 134.998 17.4617 134.998 15.8956S133.667 13.3115 132.14 12.7634C132.084 12.7425 132.029 12.722 131.975 12.7018 131.115 12.3816 130.456 12.1366 130.456 11.5105 130.456 10.9232 131.083 10.5708 131.827 10.5708S133.275 10.9623 133.667 11.1973z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M20.3595 9.74907C20.3204 9.3967 20.2812 8.96601 20.1246 8.49618 20.0071 8.02634 19.8114 7.51736 19.5373 6.96922 19.2632 6.42108 18.9109 5.87293 18.4802 5.32479 18.3236 5.12903 18.1278 4.89411 17.8929 4.69835 18.2061 3.44546 17.5014 2.38833 17.5014 2.38833 16.3268 2.31002 15.5437 2.7407 15.2696 2.97562 15.2305 2.97562 15.1913 2.93647 15.113 2.89731 14.9173 2.81901 14.7215 2.7407 14.4866 2.6624 14.2517 2.58409 14.0559 2.54494 13.821 2.46663 13.5861 2.42748 13.3511 2.38833 13.1554 2.34917 13.1162 2.34917 13.0771 2.34917 13.0379 2.34917 12.5289.704752 11.0411.0 11.0411.0 9.3967 1.05713 9.08348 2.50579 9.08348 2.50579s0 .0391499999999998.0.0783C9.00517 2.62324 8.88771 2.62324 8.8094 2.6624 8.69194 2.70155 8.57448 2.7407 8.41787 2.77986 8.30041 2.81901 8.18296 2.85816 8.02634 2.93647 7.79143 3.05393 7.51736 3.17138 7.28244 3.28884 7.04752 3.4063 6.81261 3.56291 6.57769 3.71953 6.53854 3.71953 6.53854 3.68037 6.53854 3.68037c-2.31002-.86136-4.34598.19577-4.34598.19577C1.9968 6.30362 3.09308 7.86973 3.328 8.1438 3.28884 8.30041 3.21054 8.45703 3.17139 8.61364c-.15661.54814-.31323 1.13543-.39153 1.72276C2.77986 10.4147 2.7407 10.493 2.7407 10.5713.626446 11.6284.0 13.7818.0 13.7818c1.76188 2.036 3.83699 2.1534 3.83699 2.1534C4.11106 16.4051 4.38513 16.8357 4.7375 17.2664 4.89411 17.423 5.05073 17.6188 5.16819 17.7754 4.54174 19.6156 5.24649 21.1426 5.24649 21.1426 7.20413 21.2209 8.49618 20.2812 8.77025 20.0463 8.96601 20.1246 9.16178 20.1637 9.35754 20.2421 9.94483 20.3987 10.5713 20.477 11.1977 20.5161c.156600000000001.0.3133.0.469900000000001.0H11.7459 11.785 11.8633 11.9416c.9397 1.3312 2.545 1.527 2.545 1.527 1.1746-1.2138 1.2137-2.4275 1.2137-2.7016V19.3024 19.2632C15.9352 19.1066 16.1701 18.9109 16.4051 18.7151 16.8749 18.2844 17.2664 17.8146 17.6188 17.3056 17.658 17.2664 17.6971 17.2273 17.6971 17.149 19.0283 17.2273 19.9288 16.3268 19.9288 16.3268c-.2349-1.3704-1.018-2.036-1.1746-2.1534H18.7151C18.7151 14.095 18.7151 14.0167 18.7151 13.9384c0-.156599999999999.0-.3132.0-.4306V13.312 13.2728 13.2337 13.1945 13.1162v-.1174C18.7151 12.9596 18.7151 12.9205 18.7151 12.8813 18.7151 12.8422 18.7151 12.803 18.7151 12.7638v-.1174-.1175C18.6759 12.3723 18.6759 12.2157 18.6368 12.0982 18.4802 11.511 18.2844 10.9628 17.9712 10.4538 17.658 9.94484 17.3056 9.51415 16.8749 9.12263 16.4442 8.7311 15.9744 8.45703 15.4654 8.22211 14.9564 7.98719 14.4474 7.86973 13.8993 7.79143 13.6252 7.75227 13.3903 7.75227 13.1162 7.75227H13.0379 12.9988 12.9596 12.9205 12.8422C12.803 7.75227 12.7638 7.75227 12.7247 7.75227 12.6072 7.75227 12.4506 7.79143 12.3332 7.79143 11.8242 7.86973 11.3152 8.0655 10.8845 8.33957 10.4538 8.61364 10.0623 8.92686 9.74907 9.27924 9.43585 9.63161 9.20093 10.0623 9.04432 10.493 8.88771 10.9237 8.8094 11.3543 8.77025 11.785c0 .1175.0.1958.0.3132C8.77025 12.1374 8.77025 12.1374 8.77025 12.1766V12.2549c0 .0391000000000012.0.1174.0.156600000000001C8.8094 12.6072 8.84856 12.8422 8.88771 13.0379 9.00517 13.4294 9.20093 13.7818 9.3967 14.095 9.63161 14.4083 9.90568 14.6432 10.1798 14.8389 10.4538 15.0347 10.7671 15.1913 11.0803 15.2696 11.3935 15.3479 11.6676 15.3871 11.9808 15.3871c.0390999999999995.0.0783000000000005.0.1174.0H12.1374 12.1766C12.2157 15.3871 12.2549 15.3871 12.2549 15.3871s0 0 .0391000000000012.0H12.3332 12.3723C12.4115 15.3871 12.4506 15.3871 12.4898 15.3871 12.5289 15.3871 12.5681 15.3871 12.6072 15.3479 12.6855 15.3479 12.7247 15.3088 12.803 15.3088 12.9205 15.2696 13.0379 15.2305 13.1554 15.1522c.1174-.039200000000001.1957-.1175.3132-.1958C13.5077 14.9564 13.5078 14.9173 13.5469 14.8781 13.6644 14.7998 13.6644 14.6432 13.5861 14.5649S13.3903 14.4474 13.312 14.5257C13.2728 14.5257 13.2728 14.5649 13.2337 14.5649 13.1554 14.604 13.0771 14.6432 12.9596 14.6823 12.8813 14.7215 12.7638 14.7215 12.6855 14.7606 12.6464 14.7606 12.5681 14.7606 12.5289 14.7606 12.4898 14.7606 12.4898 14.7606 12.4506 14.7606 12.4115 14.7606 12.4115 14.7606 12.3723 14.7606 12.3332 14.7606 12.3332 14.7606 12.294 14.7606 12.2549 14.7606 12.2157 14.7606 12.2157 14.7606H12.1766 12.1374C12.0982 14.7606 12.0983 14.7606 12.0591 14.7606 11.8242 14.7215 11.6284 14.6823 11.3935 14.5649 11.1586 14.4866 10.9628 14.33 10.767 14.1734 10.5713 14.0167 10.4147 13.7818 10.2972 13.5861 10.1798 13.3903 10.0623 13.1162 10.0231 12.8422 9.98399 12.7247 9.98399 12.5681 9.98399 12.4506 9.98399 12.4115 9.98399 12.3723 9.98399 12.3332V12.294 12.2549C9.98399 12.1766 9.98399 12.0982 10.0231 12.0199c.1175-.587299999999999.3916-1.1354.8614-1.6052C11.002 10.2972 11.1194 10.2189 11.2369 10.1014 11.3543 10.0231 11.511 9.94484 11.6284 9.86653 11.785 9.78823 11.9416 9.74907 12.0591 9.70992 12.2157 9.67077 12.3723 9.63161 12.5289 9.63161c.0783000000000005.0.156599999999999.0.2349.0H12.803 12.8813 12.9205 12.9988C13.1554 9.63161 13.3511 9.67077 13.5077 9.70992 13.8601 9.78822 14.1733 9.90568 14.4866 10.1014 15.113 10.4538 15.622 11.002 15.9744 11.6284 16.131 11.9416 16.2485 12.294 16.3268 12.6464 16.3268 12.7247 16.3659 12.8422 16.3659 12.9205V12.9988 13.0771C16.3659 13.1162 16.3659 13.1162 16.3659 13.1554 16.3659 13.1945 16.3659 13.1945 16.3659 13.2337V13.312 13.3903c0 .0390999999999995.0.1174.0.156600000000001C16.3659 13.6644 16.3659 13.7427 16.3268 13.8601 16.3268 13.9384 16.2876 14.0559 16.2876 14.1342S16.2484 14.33 16.2093 14.4083C16.1701 14.604 16.0918 14.7998 16.0135 14.9564 15.8569 15.3088 15.6612 15.6612 15.4262 16.0135 14.9564 16.64 14.33 17.1881 13.5861 17.5013 13.2337 17.658 12.8422 17.7754 12.4506 17.8537 12.2549 17.8929 12.0591 17.8929 11.8633 17.932H11.8242 11.785 11.7067 11.6284 11.5893c.0390999999999995.0.0.0.0.0-.1175.0-.1958.0-.3133.0C10.8454 17.8929 10.4147 17.8146 10.0231 17.6971 9.63161 17.5797 9.20093 17.423 8.84856 17.2273 8.10465 16.8357 7.43905 16.2876 6.89091 15.622c-.27407-.3132-.50899-.6656-.6656-1.0571C6.02954 14.1734 5.87294 13.7818 5.75548 13.3903 5.63802 12.9988 5.55972 12.5681 5.55972 12.1766V12.0982 12.0591 11.9808v-.2349V11.7067 11.6284 11.5893c0-.0391999999999992.0-.1175.0-.156699999999999C5.55972 11.2369 5.59887 11.002 5.59887 10.8062 5.63802 10.6104 5.67717 10.3755 5.71633 10.1798 5.75548 9.98399 5.79463 9.74907 5.87293 9.55331 5.99039 9.16178 6.14701 8.77025 6.30362 8.37872 6.65599 7.63482 7.08667 6.96922 7.63481 6.46023 7.75227 6.34277 7.90889 6.18616 8.0655 6.0687 8.22211 5.95124 8.37873 5.83378 8.53534 5.75548 8.69195 5.63802 8.84855 5.55971 9.00517 5.48141 9.08347 5.44225 9.16178 5.4031 9.24009 5.36395 9.27924 5.36395 9.31839 5.32479 9.35754 5.32479S9.43585 5.28564 9.47501 5.28564C9.63162 5.20734 9.82738 5.16818 9.98399 5.08988 10.0231 5.08988 10.0623 5.05072 10.1015 5.05072 10.1406 5.05072 10.1798 5.01157 10.2189 5.01157 10.2972 4.97242 10.4147 4.97242 10.493 4.93327 10.5321 4.93327 10.5713 4.89411 10.6496 4.89411 10.6887 4.89411 10.7279 4.89411 10.8062 4.85496 10.8454 4.85496 10.8845 4.85496 10.9628 4.81581H11.0411 11.1194C11.1586 4.81581 11.1977 4.81581 11.276 4.77665 11.3152 4.77665 11.3935 4.77665 11.4327 4.7375 11.4718 4.7375 11.5501 4.7375 11.5893 4.7375 11.6284 4.7375 11.6676 4.7375 11.7067 4.7375H11.785 11.8242 11.8633C11.9025 4.7375 11.9808 4.7375 12.0199 4.7375H12.0982s.0391999999999992.0.0.0H12.1374C12.1766 4.7375 12.2157 4.7375 12.2549 4.7375 12.4506 4.7375 12.6072 4.7375 12.803 4.7375 13.1554 4.7375 13.5077 4.77665 13.8601 4.85496 14.5257 4.97242 15.1522 5.20734 15.7395 5.48141s1.0962.62644 1.5269 1.01797C17.3056 6.53853 17.3056 6.53853 17.3447 6.57769 17.3839 6.61684 17.3839 6.61684 17.423 6.65599 17.4622 6.69515 17.5405 6.7343 17.5796 6.8126 17.6188 6.89091 17.6971 6.89091 17.7363 6.96922 17.7754 7.04752 17.8537 7.08668 17.8929 7.12583 18.0886 7.32159 18.2452 7.51736 18.4019 7.75227 18.7151 8.1438 18.9892 8.57448 19.1849 8.96601 19.1849 9.00517 19.2241 9.00517 19.2241 9.04432 19.2241 9.08347 19.2632 9.08347 19.2632 9.12263 19.3024 9.16178 19.3024 9.20093 19.3415 9.27924 19.3807 9.31839 19.3807 9.35754 19.4198 9.43585 19.459 9.475 19.459 9.51415 19.4981 9.59246 19.5765 9.78823 19.6548 9.94484 19.6939 10.1014 19.7722 10.3755 19.8505 10.6104 19.8897 10.8062 19.9288 10.8845 20.0071 10.9628 20.0854 10.9237 20.1637 10.9237 20.2421 10.8454 20.2421 10.767 20.3987 10.2972 20.3987 10.0231 20.3595 9.74907z&quot; fill=&quot;url(#paint0_linear_16731_2713)&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M39.4286 11.9027C39.272 15.7397 36.2572 18.7544 32.4594 18.7544c-3.9936.0-6.9301-3.2105-6.9301-7.1258.0-3.91529 3.2105-7.16498 7.1258-7.16498C34.417 4.46362 36.1397 5.20753 37.6275 6.57788l-1.1354 1.4095c-1.1354-.97882-2.4666-1.64442-3.7978-1.64442-2.8582.0-5.2074 2.34918-5.2074 5.24654.0 2.9364 2.2318 5.2073 5.0508 5.2073 2.5449.0 4.5417-1.8402 4.9332-4.2677H31.7154V10.8455h7.7915L39.4286 11.9027z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M46.0849 10.9629H45.0278c-1.1746.0-2.1143.9397-2.1143 2.1143v5.5597H41.0342V9.16187h1.5661V9.94492C43.1093 9.43594 43.9315 9.16187 44.832 9.16187h2.036L46.0849 10.9629z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M56.4205 18.6365H54.8152V17.4228C53.5623 18.6365 51.6047 19.2238 49.6079 18.3624 48.12 17.6968 47.0238 16.3656 46.7497 14.7604 46.1624 11.7456 48.5116 9.00488 51.5263 9.00488 52.7792 9.00488 53.9538 9.51387 54.776 10.3361V9.12234H56.4205V18.6365zm-1.9577-4.0328C54.8935 12.6853 53.4448 10.9234 51.5655 10.9234c-1.6444.0-2.9756 1.3312-2.9756 2.9756.0 1.8402 1.6052 3.2888 3.5237 2.9365C53.2491 16.6397 54.1887 15.7392 54.4628 14.6037z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M60.2187 8.61346V9.1616h3.0148v1.6836H60.2187v7.8306H58.3394V8.69177c0-2.07511 1.4878-3.328 3.3671-3.328h2.2709L63.2335 7.1648h-1.527C60.8843 7.1648 60.2187 7.79125 60.2187 8.61346z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M73.2957 18.6365H71.6905V17.4228C70.4376 18.6365 68.4799 19.2238 66.4831 18.3624 64.9953 17.6968 63.8991 16.3656 63.625 14.7604 63.0377 11.7456 65.426 9.00488 68.4408 9.00488 69.6937 9.00488 70.8683 9.51387 71.6905 10.3361V9.12234h1.6444L73.2957 18.6365zM71.3773 14.6037C71.8079 12.6853 70.3593 10.9234 68.4799 10.9234c-1.6444.0-2.9756 1.3312-2.9756 2.9756.0 1.8402 1.6053 3.2888 3.52379999999999 2.9365C70.1635 16.6397 71.1032 15.7392 71.3773 14.6037z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M83.4365 13.0376v5.5989H81.5572V13.0376C81.5572 11.863 80.5783 10.9234 79.4429 10.9234 78.2292 10.9234 77.2895 11.863 77.2895 13.0376v5.5989H75.4102V9.16149H76.9763v.82222C77.6419 9.35726 78.5815 9.00488 79.5212 9.00488 81.7138 9.00488 83.4365 10.8059 83.4365 13.0376z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M94.5941 18.6365H92.9888V17.4228C91.7359 18.6365 89.7783 19.2238 87.7815 18.3624 86.2937 17.6968 85.1974 16.3656 84.9233 14.7604 84.336 11.7456 86.7244 9.00488 89.7391 9.00488 90.992 9.00488 92.1666 9.51387 92.9888 10.3361V9.12234h1.6444L94.5941 18.6365zM92.6756 14.6037C93.1063 12.6853 91.6576 10.9234 89.7783 10.9234c-1.6444.0-2.9756 1.3312-2.9756 2.9756.0 1.8402 1.6052 3.2888 3.52370000000001 2.9365C91.4227 16.6397 92.4015 15.7392 92.6756 14.6037z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
  &lt;defs&gt;
    &lt;linearGradient id=&quot;paint0_linear_16731_2713&quot; x1=&quot;10.2543&quot; y1=&quot;28&quot; x2=&quot;10.2543&quot; y2=&quot;2.5&quot; gradientUnits=&quot;userSpaceOnUse&quot;&gt;
      &lt;stop stop-color=&quot;currentColor&quot;&gt;&lt;/stop&gt;
      &lt;stop offset=&quot;1&quot; stop-color=&quot;#f05a28&quot;&gt;&lt;/stop&gt;
    &lt;/linearGradient&gt;
  &lt;/defs&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:guardian knip&quot;&gt;&lt;svg viewBox=&quot;0 -3 300 100&quot; fill=&quot;currentColor&quot; aria-hidden=&quot;true&quot;&gt;
  &lt;path d=&quot;M0 70.8c0-19.5 13-26.4 27.3-26.4 6.1 0 12 1 15.1 2.3l.3 13.6h-1.4L33 47.2c-1.5-.7-2.8-.9-5.4-.9-7.6 0-11.5 8.8-11.4 23.3.1 17.3 3.1 25.1 10.2 25.1 1.8 0 3.2-.2 4.2-.7V75.5l-4.7-2.7v-1.5h22.5V73l-4.6 2.5v18.3a50.1 50.1 0 0 1-17 2.9C10.5 96.7 0 89 0 70.8Z&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;m142.8 57.9 1.2.1v11h.3c1.6-8 5.2-11 9.5-11 .7 0 1.5 0 1.9.2v11.2c-.7-.2-2-.2-3.1-.2-3.4 0-6 .6-8.2 1.6v21.7l3.4 1.9v1.4h-19.5v-1.4l3.5-2V63l-4.1-1.2v-1l15-2.8Z&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M110.2 74v-4.9c0-7.4-1.6-9.9-6.2-9.9l-1.6.2-8.2 11h-1.1V60.3c3.5-1.1 7.9-2.4 13.7-2.4 10 0 15.8 2.8 15.8 11.1v24l3.6 1v1c-1.4.8-4.2 1.6-7.3 1.6-5 0-7.3-1.6-8.4-4.3h-.4c-2 2.8-5 4.4-9.7 4.4-6 0-10-3.7-10-10S94.2 77 102 75.5l8.1-1.6Zm0 16.6V75.8l-2.5.2c-4 .3-5.3 2.8-5.3 8.3 0 6 2 7.6 4.7 7.6 1.5 0 2.4-.5 3.1-1.3Z&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M47.5 61.7v-1.1l15-2.7 1.7.2v29.6c0 3.6 1.7 4.7 4.6 4.7 1.9 0 3.6-.7 4.9-2.3V63.5l-4.1-1.8v-1.1l15-2.7 1.6.1v34l4 1.7v1l-14.9 1.9-1.5-.1V92h-.4a16.8 16.8 0 0 1-11.3 4.7c-7.2 0-10.5-4.2-10.5-10.7V63.5l-4.1-1.8Z&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M261.5 92.5V63l-4.2-1.4v-1.5l15-2.7h1.5V62h.5c3.2-2.9 8-4.7 12.8-4.7 6.5 0 9.4 3 9.4 10v25.1l3.5 2v1.4h-19.5v-1.4l3.5-2V68c0-3.8-1.7-5.3-4.8-5.3-2 0-3.6.5-5.1 1.6v28.3l3.4 1.9v1.4h-19.6v-1.4l3.6-2Z&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;m214 57.8 1.4.2v34.5l3.4 1.9v1.4h-19.5v-1.4l3.5-2v-29l-4.2-1.6v-1.2l15.5-2.8Zm1.5-9.3c0 3.7-3.1 6.4-6.7 6.4a6.4 6.4 0 0 1-6.6-6.4c0-3.6 2.9-6.4 6.6-6.4 3.6 0 6.7 2.8 6.7 6.4Z&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M239.8 74v-4.9c0-7.4-1.7-9.9-6.2-9.9l-1.6.2-8.2 11h-1.1V60.3c3.5-1.1 7.9-2.4 13.7-2.4 10 0 15.8 2.8 15.8 11.1v24l3.6 1v1c-1.4.8-4.2 1.6-7.4 1.6-5 0-7.3-1.6-8.4-4.3h-.3c-2 2.8-5 4.4-9.7 4.4-6 0-10-3.7-10-10s3.8-9.6 11.7-11.1l8-1.6Zm0 16.6V75.8l-2.5.2c-4 .3-5.4 2.8-5.4 8.3 0 6 2 7.6 4.8 7.6 1.5 0 2.4-.5 3-1.3Z&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M180.6 58.8V47.2l-4.1-1.4v-1l15.2-2.7 1.5.2V92l4.2 1.5v1.3l-15 2-1.2-.2v-4h-.4a13.4 13.4 0 0 1-10 4.1c-8.1 0-14.1-6.2-14.1-19 0-13.5 7-20 17.5-20 3 0 5.3.5 6.4 1.1Zm0 31.8V61c-1-.6-1.7-1.4-4.2-1.3-4 .2-6.6 6.3-6.6 17.2 0 9.8 1.9 15.3 7.3 15.1 1.5 0 2.7-.6 3.5-1.3Z&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;m68.1 51.6 5.2-2.7V8.5h-4L60 21.1h-1.1l.6-14h41.3l.6 14H100L90.8 8.5h-4v40.3l5.2 2.7V53H68.1v-1.3Z&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M105.4 49.8V5l-4-1.6v-.8L115.9 0h1.5v21.2l.4-.4c3.2-2.8 7.8-4.5 12.4-4.5 6.3 0 9.1 3.5 9.1 10.2v23.3l3.4 1.8V53h-18.9v-1.4l3.4-1.8V26.4c0-3.7-1.6-5.1-4.6-5.1a8 8 0 0 0-5 1.6v27l3.3 1.8V53h-19v-1.3l3.5-2Z&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M153.7 36c.4 7.4 3.7 13.1 11.6 13.1 3.8 0 6.5-1.7 9-3v1.4c-1.9 2.7-6.9 6.5-13.8 6.5-12.2 0-18.5-6.8-18.5-18.5 0-11.5 6.8-18.6 17.9-18.6 10.3 0 15.7 5.2 15.7 18.8v.3h-21.9Zm-.2-1.7 10.8-.6c0-9.2-1.6-15.3-4.8-15.3-3.3 0-6 7-6 16Z&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:JoshuaKGoldberg knip&quot;&gt;&lt;img src=&quot;https://knip.dev/_astro/create-typescript-app.CAtIyoM0.png&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:microsoft knip&quot;&gt;&lt;svg viewBox=&quot;0 0 337.6 72&quot;&gt;
  &lt;path fill=&quot;currentColor&quot; d=&quot;M140.4,14.4v43.2h-7.5V23.7h-0.1l-13.4,33.9h-5l-13.7-33.9h-0.1v33.9h-6.9V14.4h10.8l12.4,32h0.2l13.1-32H140.4 z M146.6,17.7c0-1.2,0.4-2.2,1.3-3c0.9-0.8,1.9-1.2,3.1-1.2c1.3,0,2.4,0.4,3.2,1.2s1.3,1.8,1.3,3c0,1.2-0.4,2.2-1.3,3 c-0.9,0.8-1.9,1.2-3.2,1.2s-2.3-0.4-3.1-1.2C147.1,19.8,146.6,18.8,146.6,17.7z M154.7,26.6v31h-7.3v-31H154.7z M176.8,52.3 c1.1,0,2.3-0.2,3.6-0.8c1.3-0.5,2.5-1.2,3.6-2v6.8c-1.2,0.7-2.5,1.2-4,1.5c-1.5,0.3-3.1,0.5-4.9,0.5c-4.6,0-8.3-1.4-11.1-4.3 c-2.9-2.9-4.3-6.6-4.3-11c0-5,1.5-9.1,4.4-12.3c2.9-3.2,7-4.8,12.4-4.8c1.4,0,2.8,0.2,4.1,0.5c1.4,0.3,2.5,0.8,3.3,1.2v7 c-1.1-0.8-2.3-1.5-3.4-1.9c-1.2-0.4-2.4-0.7-3.6-0.7c-2.9,0-5.2,0.9-7,2.8s-2.6,4.4-2.6,7.6c0,3.1,0.9,5.6,2.6,7.3 C171.6,51.4,173.9,52.3,176.8,52.3z M204.7,26.1c0.6,0,1.1,0,1.6,0.1s0.9,0.2,1.2,0.3v7.4c-0.4-0.3-0.9-0.6-1.7-0.8 s-1.6-0.4-2.7-0.4c-1.8,0-3.3,0.8-4.5,2.3s-1.9,3.8-1.9,7v15.6h-7.3v-31h7.3v4.9h0.1c0.7-1.7,1.7-3,3-4 C201.2,26.6,202.8,26.1,204.7,26.1z M207.9,42.6c0-5.1,1.5-9.2,4.3-12.2c2.9-3,6.9-4.5,12-4.5c4.8,0,8.6,1.4,11.3,4.3 s4.1,6.8,4.1,11.7c0,5-1.5,9-4.3,12c-2.9,3-6.8,4.5-11.8,4.5c-4.8,0-8.6-1.4-11.4-4.2C209.3,51.3,207.9,47.4,207.9,42.6z M215.5,42.3c0,3.2,0.7,5.7,2.2,7.4s3.6,2.6,6.3,2.6c2.6,0,4.7-0.8,6.1-2.6c1.4-1.7,2.1-4.2,2.1-7.6c0-3.3-0.7-5.8-2.1-7.6 c-1.4-1.7-3.5-2.6-6-2.6c-2.7,0-4.7,0.9-6.2,2.7C216.2,36.5,215.5,39,215.5,42.3z M250.5,34.8c0,1,0.3,1.9,1,2.5 c0.7,0.6,2.1,1.3,4.4,2.2c2.9,1.2,5,2.5,6.1,3.9c1.2,1.5,1.8,3.2,1.8,5.3c0,2.9-1.1,5.2-3.4,7c-2.2,1.8-5.3,2.6-9.1,2.6 c-1.3,0-2.7-0.2-4.3-0.5c-1.6-0.3-2.9-0.7-4-1.2v-7.2c1.3,0.9,2.8,1.7,4.3,2.2c1.5,0.5,2.9,0.8,4.2,0.8c1.6,0,2.9-0.2,3.6-0.7 c0.8-0.5,1.2-1.2,1.2-2.3c0-1-0.4-1.8-1.2-2.6c-0.8-0.7-2.4-1.5-4.6-2.4c-2.7-1.1-4.6-2.4-5.7-3.8s-1.7-3.2-1.7-5.4 c0-2.8,1.1-5.1,3.3-6.9c2.2-1.8,5.1-2.7,8.6-2.7c1.1,0,2.3,0.1,3.6,0.4s2.5,0.6,3.4,0.9V34c-1-0.6-2.1-1.2-3.4-1.7 c-1.3-0.5-2.6-0.7-3.8-0.7c-1.4,0-2.5,0.3-3.2,0.8C250.9,33.1,250.5,33.8,250.5,34.8z M266.9,42.6c0-5.1,1.5-9.2,4.3-12.2 c2.9-3,6.9-4.5,12-4.5c4.8,0,8.6,1.4,11.3,4.3s4.1,6.8,4.1,11.7c0,5-1.5,9-4.3,12c-2.9,3-6.8,4.5-11.8,4.5c-4.8,0-8.6-1.4-11.4-4.2 C268.4,51.3,266.9,47.4,266.9,42.6z M274.5,42.3c0,3.2,0.7,5.7,2.2,7.4s3.6,2.6,6.3,2.6c2.6,0,4.7-0.8,6.1-2.6 c1.4-1.7,2.1-4.2,2.1-7.6c0-3.3-0.7-5.8-2.1-7.6c-1.4-1.7-3.5-2.6-6-2.6c-2.7,0-4.7,0.9-6.2,2.7C275.3,36.5,274.5,39,274.5,42.3z M322.9,32.6h-10.9v25h-7.4v-25h-5.2v-6h5.2v-4.3c0-3.2,1.1-5.9,3.2-8s4.8-3.1,8.1-3.1c0.9,0,1.7,0.1,2.4,0.1s1.3,0.2,1.8,0.4v6.3 c-0.2-0.1-0.7-0.3-1.3-0.5c-0.6-0.2-1.3-0.3-2.1-0.3c-1.5,0-2.7,0.5-3.5,1.4c-0.8,0.9-1.2,2.4-1.2,4.2v3.7h10.9v-7l7.3-2.2v9.2h7.4 v6h-7.4v14.5c0,1.9,0.4,3.2,1,4c0.7,0.8,1.8,1.2,3.3,1.2c0.4,0,0.9-0.1,1.5-0.3c0.6-0.2,1.1-0.4,1.5-0.7v6c-0.5,0.3-1.2,0.5-2.3,0.7 c-1.1,0.2-2.1,0.3-3.2,0.3c-3.1,0-5.4-0.8-6.9-2.4c-1.5-1.6-2.3-4.1-2.3-7.4L322.9,32.6L322.9,32.6z&quot;&gt;&lt;/path&gt;
  &lt;rect fill=&quot;#F25022&quot; width=&quot;34.2&quot; height=&quot;34.2&quot;&gt;&lt;/rect&gt;
  &lt;rect x=&quot;37.8&quot; fill=&quot;#7FBA00&quot; width=&quot;34.2&quot; height=&quot;34.2&quot;&gt;&lt;/rect&gt;
  &lt;rect y=&quot;37.8&quot; fill=&quot;#00A4EF&quot; width=&quot;34.2&quot; height=&quot;34.2&quot;&gt;&lt;/rect&gt;
  &lt;rect x=&quot;37.8&quot; y=&quot;37.8&quot; fill=&quot;#FFB900&quot; width=&quot;34.2&quot; height=&quot;34.2&quot;&gt;&lt;/rect&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:mochajs knip&quot;&gt;&lt;svg viewBox=&quot;0 0 192 192&quot;&gt;
  &lt;path d=&quot;m169.474 143.901-68.703 39.695a9.48 9.48 0 0 1-9.542 0l-68.703-39.695c-2.958-1.717-4.77-4.866-4.77-8.206v-79.39c0-3.435 1.812-6.489 4.77-8.206L91.23 8.404a9.48 9.48 0 0 1 9.542 0l68.703 39.695c2.958 1.717 4.77 4.866 4.77 8.206v79.39c-.095 3.34-1.908 6.489-4.77 8.206z&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M95.905 22.049c.954 0 1.813.286 2.671.763l59.352 34.256a5.49 5.49 0 0 1 2.672 4.676v68.512a5.49 5.49 0 0 1-2.672 4.676l-59.352 34.256c-.858.477-1.717.763-2.671.763a5.13 5.13 0 0 1-2.672-.763L33.88 134.932a5.49 5.49 0 0 1-2.672-4.676V61.744a5.49 5.49 0 0 1 2.672-4.676l59.352-34.256c.859-.477 1.813-.763 2.672-.763m0-2.863a7.838 7.838 0 0 0-4.104 1.145L32.45 54.587c-2.576 1.432-4.103 4.199-4.103 7.062v68.512c0 2.958 1.527 5.63 4.103 7.06L91.8 171.479a7.837 7.837 0 0 0 4.104 1.145 7.838 7.838 0 0 0 4.103-1.145l59.351-34.256c2.577-1.432 4.103-4.199 4.103-7.061V61.649c0-2.958-1.526-5.63-4.103-7.062l-59.351-34.256a7.838 7.838 0 0 0-4.103-1.145z&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M103.6 69.6c0-.5-.4-1-1-1H83.8c-.5 0-1 .4-1 1 0 3.4.5 15.1 5.5 20.8.2.2.4.3.7.3h8.4c.3 0 .5-.1.7-.3 5-5.6 5.5-17.3 5.5-20.8zm-7.4 18.2h-5.9c-.3 0-.5-.1-.7-.3-3.4-4-3.8-12-3.9-14.8 0-.5.4-1 1-1h13.2c.5 0 1 .4 1 1 0 2.8-.5 10.7-3.9 14.8-.3.2-.5.3-.8.3zM95.1 66.6s3.6-2.1 1.4-5.9c-1.3-2-1.9-3.7-1.4-4.4-1.3 1.6-3.5 3.3-1.1 6.9.8.9 1.2 2.8 1.1 3.4zM91.1 66.9s2.4-1.4.9-4c-.9-1.3-1.3-2.5-.9-2.9-.9 1.1-2.3 2.2-.7 4.7.5.5.7 1.8.7 2.2z&quot; transform=&quot;matrix(.9542 0 0 .9542 5.494 -4.764)&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M99.3 78.5c-.4 2.7-1.2 5.8-2.9 7.8-.2.2-.4.3-.6.3h-5c-.2 0-.5-.1-.6-.3-1.2-1.5-2-3.5-2.5-5.6 0 0 5.8.8 9.1-.4 2.4-.9 2.5-1.8 2.5-1.8zM33.6 94.7h3.7l6.1 9.4 6.1-9.4h3.7v20h-3.5v-14.3l-6.3 9.4h-.1l-6.2-9.3v14.3h-3.5V94.7zM71.3 115c-1.5 0-2.9-.3-4.2-.8-1.3-.5-2.4-1.3-3.3-2.2-.9-.9-1.6-2-2.1-3.3-.5-1.2-.8-2.6-.8-4v-.1c0-1.4.3-2.7.8-4 .5-1.2 1.2-2.3 2.2-3.3.9-.9 2-1.7 3.3-2.2 1.3-.6 2.7-.8 4.2-.8s2.9.3 4.2.8c1.3.5 2.4 1.3 3.3 2.2.9.9 1.6 2 2.1 3.3.5 1.2.8 2.6.8 4v.1c0 1.4-.3 2.7-.8 4-.5 1.2-1.2 2.3-2.2 3.3-.9.9-2 1.7-3.3 2.2-1.3.6-2.7.8-4.2.8zm0-3.2c1 0 1.9-.2 2.7-.6.8-.4 1.5-.9 2.1-1.5.6-.6 1-1.4 1.4-2.2.3-.9.5-1.8.5-2.7v-.1c0-1-.2-1.9-.5-2.8-.3-.9-.8-1.6-1.4-2.3-.6-.6-1.3-1.1-2.1-1.5-.8-.4-1.7-.6-2.7-.6-1 0-1.9.2-2.7.6-.8.4-1.5.9-2.1 1.5-.6.6-1 1.4-1.4 2.2-.3.9-.5 1.8-.5 2.7v.1c0 1 .2 1.9.5 2.8.3.9.8 1.6 1.4 2.3.6.6 1.3 1.1 2.1 1.5.8.4 1.8.6 2.7.6zM98.7 115c-1.5 0-2.8-.3-4-.8-1.2-.5-2.3-1.3-3.2-2.2-.9-.9-1.6-2-2.1-3.3-.5-1.3-.8-2.6-.8-4v-.1c0-1.4.3-2.8.8-4 .5-1.2 1.2-2.3 2.1-3.3.9-.9 2-1.7 3.3-2.2 1.3-.5 2.6-.8 4.2-.8.9 0 1.7.1 2.5.2.8.2 1.4.4 2.1.6.6.3 1.2.6 1.7 1s1 .8 1.5 1.3l-2.3 2.6c-.8-.7-1.6-1.3-2.5-1.8-.9-.5-1.9-.7-3.1-.7-1 0-1.8.2-2.6.6-.8.4-1.5.9-2.1 1.5-.6.6-1 1.4-1.4 2.2-.3.9-.5 1.8-.5 2.7v.1c0 1 .2 1.9.5 2.8.3.9.8 1.6 1.4 2.3.6.6 1.3 1.2 2.1 1.5.8.3 1.7.6 2.6.6 1.2 0 2.3-.2 3.1-.7.8-.5 1.7-1.1 2.6-1.9l2.3 2.3c-.5.6-1 1-1.6 1.5-.6.5-1.2.8-1.8 1.1-.6.3-1.4.6-2.1.7-.9.2-1.8.2-2.7.2zM113.9 94.7h3.5v8.3h9.6v-8.3h3.5v20H127v-8.4h-9.6v8.4h-3.5v-20zM146 94.6h3.2l8.8 20.1h-3.7l-2-4.8h-9.4l-2.1 4.8h-3.6l8.8-20.1zm5 12.2-3.4-8-3.4 8h6.8z&quot; transform=&quot;matrix(.9542 0 0 .9542 5.494 -4.764)&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M35.169 110.695H156.83v1.05H35.169zM156.83 74.817h-51.717c0 .381-.096.668-.096 1.05h51.814v-1.05zM35.17 74.817v1.05h48.76c0-.382-.096-.669-.096-1.05H35.169z&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:nuxt knip&quot;&gt;&lt;svg viewBox=&quot;0 0 800 200&quot; fill=&quot;none&quot;&gt;
  &lt;path d=&quot;M377 200C379.16 200 381 198.209 381 196V103C381 103 386 112 395 127L434 194C435.785 197.74 439.744 200 443 200H470V50H443C441.202 50 439 51.4941 439 54V148L421 116L385 55C383.248 51.8912 379.479 50 376 50H350V200H377Z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M726 92H739C742.314 92 745 89.3137 745 86V60H773V92H800V116H773V159C773 169.5 778.057 174 787 174H800V200H783C759.948 200 745 185.071 745 160V116H726V92Z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M591 92V154C591 168.004 585.742 179.809 578 188C570.258 196.191 559.566 200 545 200C530.434 200 518.742 196.191 511 188C503.389 179.809 498 168.004 498 154V92H514C517.412 92 520.769 92.622 523 95C525.231 97.2459 526 98.5652 526 102V154C526 162.059 526.457 167.037 530 171C533.543 174.831 537.914 176 545 176C552.217 176 555.457 174.831 559 171C562.543 167.037 563 162.059 563 154V102C563 98.5652 563.769 96.378 566 94C567.96 91.9107 570.028 91.9599 573 92C573.411 92.0055 574.586 92 575 92H591Z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M676 144L710 92H684C680.723 92 677.812 93.1758 676 96L660 120L645 97C643.188 94.1758 639.277 92 636 92H611L645 143L608 200H634C637.25 200 640.182 196.787 642 194L660 167L679 195C680.818 197.787 683.75 200 687 200H713L676 144Z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M168 200H279C282.542 200 285.932 198.756 289 197C292.068 195.244 295.23 193.041 297 190C298.77 186.959 300.002 183.51 300 179.999C299.998 176.488 298.773 173.04 297 170.001L222 41C220.23 37.96 218.067 35.7552 215 34C211.933 32.2448 207.542 31 204 31C200.458 31 197.067 32.2448 194 34C190.933 35.7552 188.77 37.96 187 41L168 74L130 9.99764C128.228 6.95784 126.068 3.75491 123 2C119.932 0.245087 116.542 0 113 0C109.458 0 106.068 0.245087 103 2C99.9323 3.75491 96.7717 6.95784 95 9.99764L2 170.001C0.226979 173.04 0.00154312 176.488 1.90993e-06 179.999C-0.0015393 183.51 0.229648 186.959 2 190C3.77035 193.04 6.93245 195.244 10 197C13.0675 198.756 16.4578 200 20 200H90C117.737 200 137.925 187.558 152 164L186 105L204 74L259 168H186L168 200ZM89 168H40L113 42L150 105L125.491 147.725C116.144 163.01 105.488 168 89 168Z&quot; fill=&quot;#00DC82&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:NVIDIA knip&quot;&gt;&lt;svg viewBox=&quot;316.2 33.8 630.2 118.2&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M578.2 34v118h33.3V34h-33.3zm-262-.2v118.1h33.6V60.2l26.2.1c8.6 0 14.6 2.1 18.7 6.5 5.3 5.6 7.4 14.7 7.4 31.2v53.9h32.6V86.7c0-46.6-29.7-52.9-58.7-52.9h-59.8zm315.7.2v118h54c28.8 0 38.2-4.8 48.3-15.5 7.2-7.5 11.8-24.1 11.8-42.2 0-16.6-3.9-31.4-10.8-40.6C723 37.2 705.2 34 678.6 34h-46.7zm33 25.6h14.3c20.8 0 34.2 9.3 34.2 33.5s-13.4 33.6-34.2 33.6h-14.3V59.6zM530.2 34l-27.8 93.5L475.8 34h-36l38 118h48l38.4-118h-34zm231.4 118h33.3V34h-33.3v118zM855 34l-46.5 117.9h32.8l7.4-20.9h55l7 20.8h35.7L899.5 34H855zm21.6 21.5l20.2 55.2h-41l20.8-55.2z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:prettier knip&quot;&gt;&lt;svg viewBox=&quot;0 0 32 32&quot;&gt;
  &lt;path fill=&quot;#56b3b4&quot; d=&quot;M21.714 8.571h1.143a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571h-1.143a.57.57 0 0 1-.571-.571a.57.57 0 0 1 .571-.571&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#ea5e5e&quot; d=&quot;M4.571 26.857h5.714a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571H4.571a.57.57 0 0 1-.571-.57a.57.57 0 0 1 .571-.572&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#bf85bf&quot; d=&quot;M18.286 17.714h3.429a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571h-3.429a.57.57 0 0 1-.571-.571a.57.57 0 0 1 .571-.571&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#ea5e5e&quot; d=&quot;M11.429 17.714H16a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571h-4.571a.57.57 0 0 1-.571-.571a.57.57 0 0 1 .571-.571&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#56b3b4&quot; d=&quot;M4.571 17.714h4.572a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571H4.571a.57.57 0 0 1-.571-.57a.57.57 0 0 1 .571-.572&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#bf85bf&quot; d=&quot;M4.571 22.286h5.714a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571H4.571A.57.57 0 0 1 4 22.857a.57.57 0 0 1 .571-.571m0-9.143h5.714a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571H4.571A.57.57 0 0 1 4 13.714a.57.57 0 0 1 .571-.571&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#f7ba3e&quot; d=&quot;M10.286 6.286h11.428a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571H10.286a.57.57 0 0 1-.571-.571a.57.57 0 0 1 .571-.571&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#ea5e5e&quot; d=&quot;M4.571 6.286H8a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.572H4.571A.57.57 0 0 1 4 6.857a.57.57 0 0 1 .571-.571&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#f7ba3e&quot; d=&quot;M9.143 24.571h1.143a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571H9.143a.57.57 0 0 1-.571-.571a.57.57 0 0 1 .571-.571&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#56b3b4&quot; d=&quot;M9.143 10.857h1.143a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571H9.143a.57.57 0 0 1-.571-.571a.57.57 0 0 1 .571-.571M4.571 24.571h2.286a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571H4.571a.57.57 0 0 1-.571-.57a.57.57 0 0 1 .571-.572&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#f7ba3e&quot; d=&quot;M4.571 10.857h2.286a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.572H4.571A.57.57 0 0 1 4 11.429a.57.57 0 0 1 .571-.572&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#4d616e&quot; d=&quot;M19.429 24.571h1.143a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571h-1.143a.57.57 0 0 1-.571-.571a.57.57 0 0 1 .571-.571m-6.858 0h4.571a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571h-4.571a.57.57 0 0 1-.571-.57a.57.57 0 0 1 .571-.572m10.286 0h4.571a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571h-4.571a.57.57 0 0 1-.571-.571a.57.57 0 0 1 .571-.571&quot; opacity=&quot;0.5&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#56b3b4&quot; d=&quot;M13.714 15.429h9.143a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571h-9.143a.57.57 0 0 1-.571-.571a.57.57 0 0 1 .571-.571&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#f7ba3e&quot; d=&quot;M8 15.429h3.429A.57.57 0 0 1 12 16a.57.57 0 0 1-.571.571H8A.57.57 0 0 1 7.429 16A.57.57 0 0 1 8 15.429&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#ea5e5e&quot; d=&quot;M4.571 15.429h1.143a.57.57 0 0 1 .572.571a.57.57 0 0 1-.571.571H4.571A.57.57 0 0 1 4 16a.57.57 0 0 1 .571-.571&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#bf85bf&quot; d=&quot;M14.857 8.571h4.571a.57.57 0 0 1 .572.572a.57.57 0 0 1-.571.571h-4.572a.57.57 0 0 1-.571-.571a.57.57 0 0 1 .571-.572&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#56b3b4&quot; d=&quot;M4.571 8.571h8a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571h-8A.57.57 0 0 1 4 9.143a.57.57 0 0 1 .571-.572&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#f7ba3e&quot; d=&quot;M8 20h10.286a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571H8a.57.57 0 0 1-.571-.571A.57.57 0 0 1 8 20&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#bf85bf&quot; d=&quot;M4.571 20h1.143a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571H4.571A.57.57 0 0 1 4 20.571A.57.57 0 0 1 4.571 20&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#ea5e5e&quot; d=&quot;M18.286 10.857H24a.57.57 0 0 1 .571.571A.57.57 0 0 1 24 12h-5.714a.57.57 0 0 1-.571-.571a.57.57 0 0 1 .571-.572&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#f7ba3e&quot; d=&quot;M18.286 13.143H24a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571h-5.714a.57.57 0 0 1-.571-.571a.57.57 0 0 1 .571-.571&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#56b3b4&quot; d=&quot;M4.571 4h13.715a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571H4.571A.57.57 0 0 1 4 4.571A.57.57 0 0 1 4.571 4&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#4d616e&quot; d=&quot;M20.571 4h6.857a.57.57 0 0 1 .572.571a.57.57 0 0 1-.571.571h-6.858A.57.57 0 0 1 20 4.571A.57.57 0 0 1 20.571 4m0 16h2.286a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571h-2.286a.57.57 0 0 1-.571-.571a.57.57 0 0 1 .571-.571m4.572 0h2.286a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571h-2.286a.57.57 0 0 1-.571-.571a.57.57 0 0 1 .571-.571M24 17.714h3.429a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571H24a.57.57 0 0 1-.571-.571a.57.57 0 0 1 .571-.571m0-11.428h3.429a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571H24a.57.57 0 0 1-.571-.571a.57.57 0 0 1 .571-.571m1.143 9.143h2.286A.57.57 0 0 1 28 16a.57.57 0 0 1-.571.571h-2.286a.57.57 0 0 1-.572-.571a.57.57 0 0 1 .572-.571m0-6.858h2.286a.57.57 0 0 1 .571.572a.57.57 0 0 1-.571.571h-2.286a.57.57 0 0 1-.571-.571a.57.57 0 0 1 .571-.572m1.143 2.286h1.143a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571h-1.143a.57.57 0 0 1-.571-.571a.57.57 0 0 1 .571-.571m0 2.286h1.143a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571h-1.143a.57.57 0 0 1-.571-.571a.57.57 0 0 1 .571-.571m-9.143 9.143h10.286a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571H17.143a.57.57 0 0 1-.571-.571a.57.57 0 0 1 .571-.571m-4.572 0h2.286a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571h-2.286a.57.57 0 0 1-.571-.571a.57.57 0 0 1 .571-.571m9.143 4.571h5.714a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571h-5.714a.57.57 0 0 1-.571-.571a.57.57 0 0 1 .571-.571m-9.143 0h6.857a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571h-6.857a.57.57 0 0 1-.571-.57a.57.57 0 0 1 .571-.572m0-16H16a.57.57 0 0 1 .571.571A.57.57 0 0 1 16 12h-3.429a.57.57 0 0 1-.571-.571a.57.57 0 0 1 .571-.572m0 2.286H16a.57.57 0 0 1 .571.571a.57.57 0 0 1-.571.571h-3.429a.57.57 0 0 1-.571-.571a.57.57 0 0 1 .571-.571&quot; opacity=&quot;0.5&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:sanity-io knip&quot;&gt;&lt;svg viewBox=&quot;0 0 435 154&quot; fill=&quot;none&quot;&gt;
  &lt;path d=&quot;M44.883 52.4463C33.4181 43.7972 21.8121 37.1021 21.8121 27.3381C21.8121 21.482 26.9827 15.4851 34.1181 15.4851C46.983 15.4851 54.5302 28.8754 61.942 45.6103H66.5538V7.11182H34.3946C7.82952 7.11182 0 23.1543 0 35.7055C0 52.1647 13.5649 61.9287 28.9416 73.365C39.7064 81.3158 48.7948 88.7092 48.7948 97.2175C48.7948 106.424 42.5006 111.723 34.5299 111.723C26.0004 111.723 13.4178 100.562 4.60595 77.4137H0V120.096H36.777C59.4302 120.096 70.7539 102.24 71.1716 87.876C71.7304 71.1411 57.3302 61.7937 44.883 52.4463Z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M145.002 106.841V61.7878C145.002 42.2598 132.837 37.1021 115.219 37.1021H83.8952L84.0364 68.9054H89.2071C94.6601 55.3743 102.49 45.4754 110.878 45.4754C118.149 45.4754 121.366 51.7539 121.366 58.3082V64.4459C109.619 71.4227 78.301 77.2788 78.301 98.4791C78.301 110.754 86.8306 120.935 99.2778 120.935C110.043 120.935 117.454 113.958 121.231 105.732C121.931 112.568 126.402 120.096 136.614 120.096H152.696V113.958C147.525 113.958 145.008 110.473 145.008 106.847L145.002 106.841ZM120.949 99.8639C118.713 103.074 115.213 106.7 111.019 106.7C105.148 106.7 101.372 102.234 101.372 93.3096C101.372 83.129 115.072 76.5746 120.949 71.6926V99.8697V99.8639Z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M270.145 28.4529C279.092 28.4529 284.686 22.1744 284.686 14.0885C284.686 6.00274 279.092 0 270.145 0C261.198 0 255.462 5.99688 255.462 14.0885C255.462 22.1802 261.474 28.4529 270.145 28.4529Z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M409.135 37.102V43.2397C417.947 43.2397 420.459 47.84 416.129 60.2563L405.641 88.5683L392.217 54.1186C389.141 47.4234 390.817 43.2397 397.252 43.2397V37.102H330.557V9.20654H324.263C322.446 18.6889 312.516 37.102 295.598 37.102V43.2397H306.504V100.568C306.504 110.191 309.722 121.07 328.457 121.07H357.54V89.5482H352.37C350.269 96.9417 345.94 111.723 336.569 111.723C331.399 111.723 330.557 106.002 330.557 101.401V45.8861H357.264C360.481 45.8861 363.834 46.3027 365.511 50.2106L393.894 120.231C388.441 132.647 379.07 134.595 362.293 129.437V153.988C366.629 153.988 377.811 154.129 379.77 153.572C390.817 150.362 398.364 128.745 401.441 120.378L425.488 55.521C428.147 48.4092 430.382 43.2456 434.994 43.2456V37.1079H409.129L409.135 37.102Z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M237.703 106.841V59.2764C237.703 44.3546 230.574 35.4238 216.45 35.4238C204.009 35.4238 196.803 44.0319 191.279 52.0414V37.0961H159.396V43.2338C164.849 43.2338 167.226 46.5785 167.226 50.4864V106.835C167.226 110.602 164.432 113.947 159.396 113.947V120.084H199.109V113.947C194.073 113.947 191.279 110.602 191.279 106.835V59.646C194.503 55.3743 198.214 50.7681 204.42 50.7681C210.291 50.7681 213.65 55.5093 213.65 61.2303V106.841C213.65 110.608 210.856 113.952 205.82 113.952V120.09H245.533V113.952C240.497 113.952 237.703 110.608 237.703 106.841Z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M284.127 106.841V37.1021H252.245V43.2398C257.698 43.2398 260.074 46.5844 260.074 50.4923V106.841C260.074 110.608 257.28 113.952 252.245 113.952V120.09H291.957V113.952C286.922 113.952 284.127 110.608 284.127 106.841Z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:SAP knip&quot;&gt;&lt;svg viewBox=&quot;0 0 64 64&quot;&gt;
  &lt;defs&gt;
    &lt;linearGradient id=&quot;a&quot; x1=&quot;42.046&quot; x2=&quot;42.046&quot; y1=&quot;18.109&quot; y2=&quot;60.523&quot; gradientUnits=&quot;userSpaceOnUse&quot;&gt;
      &lt;stop offset=&quot;0&quot; stop-color=&quot;#00b8f1&quot;&gt;&lt;/stop&gt;
      &lt;stop offset=&quot;.22&quot; stop-color=&quot;#06a5e5&quot;&gt;&lt;/stop&gt;
      &lt;stop offset=&quot;.79&quot; stop-color=&quot;#1870c5&quot;&gt;&lt;/stop&gt;
      &lt;stop offset=&quot;1&quot; stop-color=&quot;#1d61bc&quot;&gt;&lt;/stop&gt;
    &lt;/linearGradient&gt;
  &lt;/defs&gt;
  &lt;path fill=&quot;url(#a)&quot; d=&quot;M0 17.975V60h42.928l42.017-42.02H0z&quot; transform=&quot;matrix(.75342 0 0 .75342 0 2.626)&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;currentColor&quot; d=&quot;M39.04 30.904h-1.35v-4.932h1.35c1.802 0 3.237.593 3.237 2.436 0 1.903-1.435 2.498-3.237 2.498m-14.53 3.53a5.592 5.592 0 0 1-1.963-.346l1.944-6.13h.04l1.905 6.15a5.74 5.74 0 0 1-1.924.33m14.17-12.476H32.55v14.58l-5.356-14.58H21.89L17.316 34.15c-.484-3.068-3.664-4.133-6.166-4.928-1.648-.53-3.404-1.3-3.388-2.173.014-.706.943-1.36 2.774-1.264 1.234.062 2.333.16 4.485 1.207l2.138-3.71c-1.973-1.007-4.706-1.64-6.944-1.645h-.02c-2.61 0-4.782.85-6.13 2.243a5.19 5.19 0 0 0-1.468 3.577c-.035 1.878.657 3.21 2.105 4.277 1.225.898 2.788 1.475 4.168 1.91 1.703.523 3.093.984 3.077 1.963a1.42 1.42 0 0 1-.404.953c-.424.437-1.075.605-1.977.626-1.738.035-3.025-.235-5.078-1.448L2.59 39.494a14.156 14.156 0 0 0 6.934 1.845h.32c2.15-.04 3.888-.655 5.276-1.77l.225-.194-.607 1.64h5.565l.935-2.844c2.1.68 4.36.69 6.467.027l.9 2.82h9.08V35.14h1.983c4.786 0 7.62-2.436 7.62-6.524 0-4.55-2.755-6.64-8.612-6.64&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:getsentry knip&quot;&gt;&lt;svg viewBox=&quot;0 0 200 44&quot;&gt;
  &lt;path fill=&quot;currentColor&quot; d=&quot;M124.32,28.28,109.56,9.22h-3.68V34.77h3.73V15.19l15.18,19.58h3.26V9.22h-3.73ZM87.15,23.54h13.23V20.22H87.14V12.53h14.93V9.21H83.34V34.77h18.92V31.45H87.14ZM71.59,20.3h0C66.44,19.06,65,18.08,65,15.7c0-2.14,1.89-3.59,4.71-3.59a12.06,12.06,0,0,1,7.07,2.55l2-2.83a14.1,14.1,0,0,0-9-3c-5.06,0-8.59,3-8.59,7.27,0,4.6,3,6.19,8.46,7.52C74.51,24.74,76,25.78,76,28.11s-2,3.77-5.09,3.77a12.34,12.34,0,0,1-8.3-3.26l-2.25,2.69a15.94,15.94,0,0,0,10.42,3.85c5.48,0,9-2.95,9-7.51C79.75,23.79,77.47,21.72,71.59,20.3ZM195.7,9.22l-7.69,12-7.64-12h-4.46L186,24.67V34.78h3.84V24.55L200,9.22Zm-64.63,3.46h8.37v22.1h3.84V12.68h8.37V9.22H131.08ZM169.41,24.8c3.86-1.07,6-3.77,6-7.63,0-4.91-3.59-8-9.38-8H154.67V34.76h3.8V25.58h6.45l6.48,9.2h4.44l-7-9.82Zm-10.95-2.5V12.6h7.17c3.74,0,5.88,1.77,5.88,4.84s-2.29,4.86-5.84,4.86Z M29,2.26a4.67,4.67,0,0,0-8,0L14.42,13.53A32.21,32.21,0,0,1,32.17,40.19H27.55A27.68,27.68,0,0,0,12.09,17.47L6,28a15.92,15.92,0,0,1,9.23,12.17H4.62A.76.76,0,0,1,4,39.06l2.94-5a10.74,10.74,0,0,0-3.36-1.9l-2.91,5a4.54,4.54,0,0,0,1.69,6.24A4.66,4.66,0,0,0,4.62,44H19.15a19.4,19.4,0,0,0-8-17.31l2.31-4A23.87,23.87,0,0,1,23.76,44H36.07a35.88,35.88,0,0,0-16.41-31.8l4.67-8a.77.77,0,0,1,1.05-.27c.53.29,20.29,34.77,20.66,35.17a.76.76,0,0,1-.68,1.13H40.6q.09,1.91,0,3.81h4.78A4.59,4.59,0,0,0,50,39.43a4.49,4.49,0,0,0-.62-2.28Z&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:shopify knip&quot;&gt;&lt;svg viewBox=&quot;0 0 608 173.7&quot; role=&quot;img&quot;&gt;
  &lt;title&gt;Shopify&lt;/title&gt;
  &lt;path fill=&quot;#95BF47&quot; d=&quot;M130.7 32.9c-.1-.9-.9-1.3-1.5-1.4-.6-.1-12.6-.2-12.6-.2s-10.1-9.8-11.1-10.8-2.9-.7-3.7-.5c0 0-1.9.6-5.1 1.6-.5-1.7-1.3-3.8-2.4-5.9-3.6-6.9-8.8-10.5-15.2-10.5-.4 0-.9 0-1.3.1-.2-.2-.4-.4-.6-.7-2.8-3-6.3-4.4-10.5-4.3-8.2.2-16.3 6.1-23 16.7-4.7 7.4-8.2 16.7-9.2 23.9-9.4 2.9-16 4.9-16.1 5-4.7 1.5-4.9 1.6-5.5 6.1C12.4 55.3 0 151.4 0 151.4l104.1 18 45.1-11.2S130.8 33.7 130.7 32.9zm-39.2-9.7c-2.4.7-5.1 1.6-8.1 2.5-.1-4.1-.6-9.9-2.5-14.9 6.3 1.2 9.3 8.2 10.6 12.4zM78 27.4c-5.5 1.7-11.4 3.5-17.4 5.4 1.7-6.4 4.9-12.8 8.8-17 1.5-1.6 3.5-3.3 5.9-4.3 2.3 4.7 2.7 11.4 2.7 15.9zM66.8 5.8c1.9 0 3.5.4 4.9 1.3-2.2 1.1-4.4 2.8-6.4 5-5.2 5.6-9.2 14.2-10.8 22.6-5 1.5-9.8 3-14.3 4.4 3-13.2 14-32.9 26.6-33.3z&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;#5E8E3E&quot; d=&quot;M129.2 31.5c-.6-.1-12.6-.2-12.6-.2s-10.1-9.8-11.1-10.8c-.4-.4-.9-.6-1.4-.6v149.5l45.1-11.2S130.8 33.8 130.7 32.9c-.2-.9-.9-1.3-1.5-1.4z&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;currentColor&quot; d=&quot;M79.1 54.7l-5.2 19.6s-5.8-2.7-12.8-2.2c-10.2.6-10.3 7-10.2 8.7.6 8.8 23.6 10.7 24.9 31.2 1 16.2-8.6 27.2-22.4 28.1-16.6 1-25.7-8.7-25.7-8.7l3.5-14.9s9.2 6.9 16.5 6.5c4.8-.3 6.5-4.2 6.3-7-.7-11.4-19.5-10.8-20.7-29.5-1-15.8 9.4-31.8 32.3-33.3 9-.8 13.5 1.5 13.5 1.5z&quot;&gt;&lt;/path&gt;
  &lt;path fill=&quot;currentColor&quot; d=&quot;M210.3 96.5c-5.2-2.8-7.9-5.2-7.9-8.5 0-4.2 3.7-6.9 9.6-6.9 6.8 0 12.8 2.8 12.8 2.8l4.8-14.6s-4.4-3.4-17.3-3.4c-18 0-30.5 10.3-30.5 24.8 0 8.2 5.8 14.5 13.6 19 6.3 3.6 8.5 6.1 8.5 9.9 0 3.9-3.1 7-9 7-8.7 0-16.9-4.5-16.9-4.5l-5.1 14.6s7.6 5.1 20.3 5.1c18.5 0 31.8-9.1 31.8-25.5.1-8.9-6.6-15.2-14.7-19.8zm73.8-30.8c-9.1 0-16.3 4.3-21.8 10.9l-.3-.1 7.9-41.4h-20.6l-20 105.3h20.6l6.9-36c2.7-13.6 9.7-22 16.3-22 4.6 0 6.4 3.1 6.4 7.6 0 2.8-.3 6.3-.9 9.1l-7.8 41.2h20.6l8.1-42.6c.9-4.5 1.5-9.9 1.5-13.4 0-11.5-6.2-18.6-16.9-18.6zm63.5 0c-24.8 0-41.2 22.4-41.2 47.4 0 16 9.9 28.8 28.4 28.8 24.3 0 40.8-21.8 40.8-47.4-.1-14.7-8.8-28.8-28-28.8zm-10.2 60.4c-7 0-10-6-10-13.4 0-11.8 6.1-31.1 17.3-31.1 7.3 0 9.7 6.3 9.7 12.4 0 12.7-6.1 32.1-17 32.1zm90.8-60.4c-13.9 0-21.8 12.2-21.8 12.2h-.3l1.2-11.1h-18.2c-.9 7.5-2.5 18.8-4.2 27.3l-14.3 75.4h20.6l5.7-30.5h.4s4.2 2.7 12.1 2.7c24.2 0 40-24.8 40-49.9.1-13.7-6.1-26.1-21.2-26.1zm-19.7 60.7c-5.4 0-8.5-3-8.5-3l3.4-19.3c2.4-12.8 9.1-21.4 16.3-21.4 6.3 0 8.2 5.8 8.2 11.4 0 13.3-7.9 32.3-19.4 32.3zm70.4-90.2c-6.6 0-11.8 5.2-11.8 12 0 6.1 3.9 10.3 9.7 10.3h.3c6.4 0 12-4.3 12.1-12 0-6-4-10.3-10.3-10.3zm-28.8 104.2h20.6l14-73h-20.8zm87-73.2h-14.3l.7-3.4c1.2-7 5.4-13.3 12.2-13.3 3.7 0 6.6 1 6.6 1l4-16.1s-3.6-1.8-11.2-1.8c-7.3 0-14.6 2.1-20.2 6.9-7 6-10.3 14.6-12 23.3l-.6 3.4h-9.6l-3 15.5h9.6l-10.9 57.7H509l10.9-57.7h14.2l3-15.5zm49.6.2s-12.9 32.5-18.7 50.2h-.3c-.4-5.7-5.1-50.2-5.1-50.2H541l12.4 67.1c.3 1.5.1 2.4-.4 3.4-2.4 4.6-6.4 9.1-11.2 12.4-3.9 2.8-8.2 4.6-11.7 5.8l5.7 17.5c4.2-.9 12.8-4.3 20.2-11.2 9.4-8.8 18.1-22.4 27-40.9l25.2-54.1h-21.5z&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:signalapp knip&quot;&gt;&lt;svg fill=&quot;none&quot; viewBox=&quot;0 0 160 160&quot;&gt;&lt;g fill=&quot;#3b45fd&quot;&gt;&lt;path d=&quot;M80 0c4.15 0 8.227.316 12.207.925L91.063 8.34A73 73 0 0 0 80 7.5a73 73 0 0 0-11.062.839L67.793.925A80.6 80.6 0 0 1 80 0m18.985 2.266-1.78 7.288a72 72 0 0 1 20.439 8.473l3.895-6.411a79.5 79.5 0 0 0-22.554-9.35m28.294 13.194-4.432 6.05a73 73 0 0 1 15.643 15.643l6.051-4.432a80.5 80.5 0 0 0-17.262-17.262m21.105 23.003-6.411 3.894a72 72 0 0 1 8.473 20.44l7.288-1.78a79.5 79.5 0 0 0-9.35-22.554m10.691 29.331-7.414 1.145c.553 3.607.839 7.3.839 11.062s-.286 7.456-.839 11.063l7.414 1.144A81 81 0 0 0 160 80c0-4.15-.316-8.227-.925-12.207m-17.102 49.852a72 72 0 0 0 8.473-20.44l7.288 1.78a79.5 79.5 0 0 1-9.35 22.554zm-3.483 5.202 6.051 4.432a80.5 80.5 0 0 1-17.262 17.262l-4.433-6.051a72.9 72.9 0 0 0 15.644-15.643m-20.846 19.126 3.894 6.411a79.5 79.5 0 0 1-22.554 9.35l-1.78-7.288a72 72 0 0 0 20.44-8.473m-26.582 9.688 1.145 7.414c-3.98.609-8.057.925-12.207.925s-8.227-.316-12.207-.925l1.144-7.413c3.605.552 7.3.838 11.063.838a73 73 0 0 0 11.062-.839m-28.267-1.213-1.78 7.286a79.4 79.4 0 0 1-17.278-6.406l-7.593 1.772-1.704-7.304 10.26-2.394 2.44 1.243a72 72 0 0 0 15.654 5.803m-34.684-3.175 1.704 7.304-13.015 3.036c-8.66 2.021-16.433-5.752-14.412-14.412l3.036-13.015 7.304 1.704-3.037 13.015c-.757 3.248 2.157 6.162 5.405 5.405zM14.204 125.56 6.9 123.856l1.772-7.593a79.4 79.4 0 0 1-6.406-17.279l7.286-1.78a72 72 0 0 0 5.803 15.655l1.243 2.441zM8.338 91.062.925 92.207A80.6 80.6 0 0 1 0 80c0-4.15.316-8.227.925-12.207l7.414 1.144A73 73 0 0 0 7.5 80c0 3.763.286 7.457.838 11.062m1.216-28.267-7.288-1.78a79.5 79.5 0 0 1 9.35-22.554l6.41 3.895a72 72 0 0 0-8.472 20.439M21.51 37.153l-6.05-4.432a80.5 80.5 0 0 1 17.26-17.262l4.433 6.05A73 73 0 0 0 21.51 37.154m20.846-19.127-3.894-6.412a79.5 79.5 0 0 1 22.554-9.349l1.78 7.288a72 72 0 0 0-20.44 8.473&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M145 80c0 35.899-29.101 65-65 65-11.387 0-22.09-2.928-31.396-8.072a4.14 4.14 0 0 0-2.94-.426l-28.913 6.747 6.747-28.914a4.14 4.14 0 0 0-.426-2.939C17.928 102.089 15 91.386 15 80c0-35.898 29.102-65 65-65 35.899 0 65 29.102 65 65&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:sourcegraph knip&quot;&gt;&lt;svg fill=&quot;none&quot; viewBox=&quot;0 0 164 23&quot;&gt;
  &lt;g clip-path=&quot;url(#aa)&quot;&gt;
    &lt;g fill=&quot;#F34E3F&quot; clip-path=&quot;url(#bb)&quot;&gt;
      &lt;path d=&quot;m8.473 6.007 2.549.68L9.286.199l-2.94.79 1.047 3.935c.14.528.554.943 1.08 1.083ZM4.165 19.222l5.56-5.55 2.023 7.56 2.94-.79-2.93-10.977L.783 6.539 0 9.494l7.553 2.02-5.536 5.54 2.148 2.168ZM14.531 10.199l.683 2.56a1.53 1.53 0 0 0 1.08 1.08l3.957 1.052.782-2.955-6.502-1.737ZM16.868 2.208l-2.53 2.527c-.279.28-.438.65-.449 1.047l-.04 1.602 1.482.052c-.02 0 .019 0 0 0 .405 0 .787-.159 1.073-.445l2.612-2.615-2.148-2.168Z&quot;&gt;&lt;/path&gt;
    &lt;/g&gt;
  &lt;/g&gt;
  &lt;path fill=&quot;currentColor&quot; d=&quot;M35.862 10.131c-.898-.376-2.021-.691-3.37-.943-.92-.192-1.609-.362-2.069-.51-.46-.148-.8-.337-1.023-.566-.222-.229-.333-.544-.333-.942 0-.474.129-.84.388-1.099.26-.259.613-.44 1.058-.544.444-.102 1-.154 1.668-.154.8 0 1.598.096 2.392.289.794.193 1.649.496 2.569.91l.489-2.753c-.831-.4-1.702-.696-2.615-.887a13.746 13.746 0 0 0-2.835-.29c-1.171 0-2.24.181-3.203.544-.964.363-1.736.888-2.314 1.576-.578.687-.868 1.527-.868 2.519 0 .872.223 1.605.667 2.197.445.592 1.098 1.068 1.958 1.431.86.363 1.958.662 3.293.899.949.193 1.66.366 2.135.522.475.155.846.37 1.112.644.267.274.401.67.401 1.187 0 .474-.152.847-.456 1.12-.303.275-.704.46-1.201.556-.497.095-1.094.143-1.79.143-.964 0-2.022-.126-3.17-.376-1.149-.25-2.139-.592-2.97-1.02l-.29 2.73c.801.458 1.761.806 2.881 1.042a17.32 17.32 0 0 0 3.593.354c1.275 0 2.327-.18 3.336-.543 1.008-.362 1.813-.895 2.414-1.598.6-.702.9-1.557.9-2.562 0-.932-.233-1.717-.7-2.352-.466-.636-1.149-1.143-2.045-1.52l-.002-.004ZM49.71 6.824c-1.023-.54-2.166-.81-3.426-.81-1.26 0-2.44.27-3.448.81a5.945 5.945 0 0 0-2.368 2.263c-.572.97-.857 2.06-.857 3.274s.281 2.278.846 3.24a6.034 6.034 0 0 0 2.368 2.275c1.016.555 2.168.833 3.459.833 1.29 0 2.403-.278 3.426-.833a6.076 6.076 0 0 0 2.392-2.286c.57-.969.856-2.052.856-3.25 0-1.2-.285-2.3-.856-3.262a5.938 5.938 0 0 0-2.392-2.252v-.002Zm-.2 7.467a3.357 3.357 0 0 1-1.313 1.32 3.786 3.786 0 0 1-1.891.477c-.696 0-1.372-.158-1.935-.476a3.477 3.477 0 0 1-1.334-1.332c-.327-.57-.49-1.224-.49-1.964s.164-1.384.49-1.93a3.498 3.498 0 0 1 1.334-1.288c.563-.31 1.202-.465 1.913-.465.711 0 1.35.154 1.913.465a3.295 3.295 0 0 1 1.312 1.31c.312.563.467 1.213.467 1.953s-.155 1.369-.467 1.93ZM63.344 13.501a4.704 4.704 0 0 1-.19.436 3.809 3.809 0 0 1-1.323 1.51 3.371 3.371 0 0 1-1.89.554c-.92 0-1.606-.248-2.057-.744-.453-.496-.679-1.201-.679-2.119v-6.88h-2.957v7.324c0 1.035.207 1.938.623 2.707.415.77.993 1.361 1.736 1.775.741.413 1.594.622 2.558.622 1.453 0 2.603-.37 3.448-1.11a5.16 5.16 0 0 0 .734-.796v1.662h2.958V6.259h-2.958V13.5h-.003ZM74.488 6.037c-1.393 0-2.44.459-3.136 1.375-.165.218-.313.46-.445.728V6.259h-2.959v12.183h2.96v-5.015c0-1.36.292-2.452.878-3.272.585-.821 1.383-1.232 2.39-1.232h.735c.148.015.282.022.401.022h.356L76 6.193a7.784 7.784 0 0 0-1.513-.155v-.001ZM80.817 9.065c.571-.302 1.22-.454 1.947-.454.593 0 1.15.089 1.668.265.52.179 1.045.466 1.58.866l1.223-2.197c-.727-.533-1.468-.92-2.225-1.164-.756-.244-1.587-.366-2.49-.366-1.202 0-2.299.263-3.293.788a5.912 5.912 0 0 0-2.358 2.24c-.578.97-.868 2.076-.868 3.318 0 1.243.282 2.341.846 3.296a5.783 5.783 0 0 0 2.347 2.22c1 .524 2.102.787 3.304.787.918 0 1.738-.115 2.457-.344.72-.229 1.48-.611 2.28-1.143l-1.18-2.152a7.006 7.006 0 0 1-1.613.81 5.097 5.097 0 0 1-1.657.278c-.727 0-1.379-.148-1.959-.444a3.3 3.3 0 0 1-1.367-1.298c-.334-.57-.501-1.239-.501-2.008 0-.77.166-1.454.5-2.008a3.441 3.441 0 0 1 1.358-1.288v-.002ZM96.8 6.735c-.905-.465-1.9-.698-2.981-.698-1.291 0-2.43.27-3.415.81a5.66 5.66 0 0 0-2.281 2.251c-.534.962-.8 2.05-.8 3.262 0 1.212.281 2.26.845 3.229.563.97 1.357 1.727 2.38 2.275 1.023.548 2.172.82 3.448.82.89 0 1.683-.093 2.38-.278a6.618 6.618 0 0 0 2.001-.92l-.756-2.42a5.453 5.453 0 0 1-1.647.788 6.4 6.4 0 0 1-1.823.278c-.8 0-1.49-.143-2.07-.433a3.047 3.047 0 0 1-1.334-1.276 3.578 3.578 0 0 1-.37-1.043h8.956c.103-.295.19-.61.255-.943.068-.333.1-.684.1-1.054 0-1.005-.255-1.916-.767-2.73-.512-.813-1.22-1.453-2.124-1.919l.002.001Zm-6.107 3.607a2.962 2.962 0 0 1 1.202-1.298c.526-.303 1.153-.455 1.88-.455.652 0 1.215.13 1.69.387.475.26.822.655 1.045 1.188.13.311.206.667.23 1.066h-6.347c.068-.32.167-.617.3-.888ZM110.924 7.923a4.566 4.566 0 0 0-1.846-1.431c-.742-.318-1.616-.477-2.626-.477-1.097 0-2.08.259-2.946.777a5.495 5.495 0 0 0-2.046 2.152c-.497.917-.746 1.945-.746 3.084 0 1.14.249 2.106.746 2.985a5.484 5.484 0 0 0 2.069 2.086c.882.511 1.872.766 2.97.766.979 0 1.836-.155 2.569-.466a4.312 4.312 0 0 0 1.813-1.42v.577c0 1.094-.353 1.96-1.058 2.595-.704.636-1.679.955-2.924.955-.816 0-1.61-.122-2.38-.366a7.461 7.461 0 0 1-2.069-1.01l-1.156 2.087c.8.547 1.701.966 2.702 1.253 1.001.29 2.08.433 3.236.433 2.076 0 3.701-.554 4.872-1.664 1.171-1.11 1.757-2.655 1.757-4.638V6.259h-2.935v1.664h-.002Zm-.501 5.98a3.22 3.22 0 0 1-1.301 1.243c-.55.29-1.187.433-1.913.433a3.651 3.651 0 0 1-1.813-.455 3.294 3.294 0 0 1-1.278-1.277 3.605 3.605 0 0 1-.467-1.819c0-.665.155-1.32.467-1.875a3.373 3.373 0 0 1 1.278-1.298 3.574 3.574 0 0 1 1.813-.466c.726 0 1.365.144 1.913.433.547.289.981.706 1.301 1.253.319.548.478 1.184.478 1.908 0 .725-.159 1.38-.478 1.92ZM118.954 7.412c-.165.218-.313.46-.445.728V6.259h-2.959v12.183h2.959v-5.015c0-1.36.293-2.452.879-3.272.585-.82 1.383-1.232 2.391-1.232h.734c.148.015.282.022.401.022h.356l.333-2.752a7.784 7.784 0 0 0-1.513-.155c-1.393 0-2.44.46-3.136 1.376v-.002ZM133.69 7.357c-.957-.894-2.406-1.342-4.348-1.342-1.483 0-2.975.244-4.471.733l.355 2.596a8.685 8.685 0 0 1 1.802-.544 10.522 10.522 0 0 1 2.002-.19c1.038 0 1.821.2 2.346.6.526.4.79.991.79 1.775v.093a57.242 57.242 0 0 0-1.579-.117 37.01 37.01 0 0 0-2.181-.067c-1.601 0-2.788.363-3.559 1.088-.771.724-1.156 1.657-1.156 2.796 0 .754.171 1.427.512 2.019a3.522 3.522 0 0 0 1.479 1.386c.646.333 1.39.5 2.236.5.845 0 1.572-.122 2.224-.366.652-.244 1.179-.561 1.579-.955a4.33 4.33 0 0 0 .445-.51v1.587h2.959v-7.256c0-1.656-.478-2.933-1.435-3.828v.002Zm-2.947 8.388c-.488.274-1.105.41-1.846.41-.742 0-1.368-.128-1.791-.388-.423-.26-.634-.64-.634-1.143 0-.533.214-.94.645-1.22.43-.281 1.156-.422 2.181-.422.563 0 1.075.01 1.535.033.451.022.895.061 1.333.119a3.495 3.495 0 0 1-.343 1.5 2.55 2.55 0 0 1-1.08 1.11ZM146.903 6.835a5.713 5.713 0 0 0-2.992-.82c-.845 0-1.631.144-2.357.433a5.4 5.4 0 0 0-1.891 1.253V6.26h-2.959v16h2.959v-5.216c.341.37.737.674 1.19.91a6.89 6.89 0 0 0 1.424.555c.497.133 1.034.2 1.614.2 1.112 0 2.12-.263 3.025-.788.905-.525 1.62-1.269 2.146-2.23.526-.962.789-2.064.789-3.307 0-1.242-.263-2.304-.789-3.274a5.867 5.867 0 0 0-2.157-2.275l-.002.001Zm-.445 7.445a3.285 3.285 0 0 1-1.267 1.299c-.541.31-1.153.466-1.836.466-.726 0-1.371-.148-1.934-.444a3.069 3.069 0 0 1-1.302-1.288c-.304-.561-.456-1.212-.456-1.953 0-.741.155-1.406.467-1.954a3.353 3.353 0 0 1 1.302-1.287c.556-.311 1.197-.466 1.923-.466.683 0 1.294.155 1.836.466.541.31.964.75 1.267 1.32.304.57.456 1.217.456 1.941 0 .725-.152 1.343-.456 1.898v.002ZM162.775 8.41a4.364 4.364 0 0 0-1.736-1.774c-.741-.414-1.594-.622-2.558-.622-1.454 0-2.602.37-3.448 1.11a5.14 5.14 0 0 0-.734.795V2.064h-2.959v16.378h2.959v-7.244c.056-.148.118-.293.189-.435.319-.636.76-1.14 1.324-1.51a3.368 3.368 0 0 1 1.891-.555c.92 0 1.605.248 2.056.744.452.496.679 1.203.679 2.12v6.879h2.959v-7.323c0-1.036-.208-1.939-.624-2.707h.002Z&quot;&gt;&lt;/path&gt;
  &lt;defs&gt;
    &lt;clipPath id=&quot;aa&quot;&gt;
      &lt;path fill=&quot;currentColor&quot; d=&quot;M0 .199h21.034v21.034H0z&quot;&gt;&lt;/path&gt;
    &lt;/clipPath&gt;
    &lt;clipPath id=&quot;bb&quot;&gt;
      &lt;path fill=&quot;currentColor&quot; d=&quot;M0 .199h21.034v21.034H0z&quot;&gt;&lt;/path&gt;
    &lt;/clipPath&gt;
  &lt;/defs&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:statelyai knip&quot;&gt;&lt;svg viewBox=&quot;0 0 818 223&quot; fill=&quot;none&quot;&gt;
  &lt;path fill=&quot;currentColor&quot; fill-rule=&quot;evenodd&quot; d=&quot;M128.759 45.638c12.602 0 22.818-10.216 22.818-22.819C151.577 10.217 141.361 0 128.759 0c-12.603 0-22.819 10.217-22.819 22.819 0 12.603 10.216 22.819 22.819 22.819ZM184.043 123.199v-.019L60.863 0c-17.822 17.823-17.722 46.619.101 64.442l39.199 39.199-.066.067 22.215 22.214c.807.807 1.341 1.921 1.341 3.152 0 1.265-.59 2.386-1.437 3.197l-25.91 25.91a4.44 4.44 0 0 1-6.278 0l-25.992-25.993a4.439 4.439 0 0 1 0-6.278c17.734-18.925 4.497-41.58-3.696-49.255l-5.795-5.795L2.6 122.805a8.878 8.878 0 0 0 0 12.555l84.257 84.257a8.876 8.876 0 0 0 12.554 0l84.077-84.077a8.392 8.392 0 0 0 2.987-6.426 8.387 8.387 0 0 0-2.432-5.915ZM300.643 104.22c-20.552-2.691-24.019-6.909-24.019-15.345 0-8.552 7.934-13.864 20.706-13.864 14.075 0 21.077 4.579 23.41 15.312l.072.332h11.859l-.061-.48c-2.016-15.886-14.545-24.635-35.28-24.635-19.13 0-33.014 10.228-33.014 24.321 0 17.686 16.455 22.317 34.234 24.686 18.518 2.603 24.164 6.447 24.164 16.454 0 9.39-9.542 16.205-22.69 16.205-20.702 0-24.914-9.122-26.382-18.979l-.053-.361h-12.731l.058.478c1.586 12.926 9.657 28.334 39.108 28.334 20.195 0 35.424-11.357 35.424-26.416 0-17.725-13.317-23.106-34.805-26.042ZM419.634 66.647h-72.125v11.295h29.484v77.627h13.158V77.942h29.483V66.647ZM447.382 119.996 463.5 77.088l16.117 42.908h-32.235Zm8.327-53.349-35.206 88.922h12.519l9.78-25.374h41.255l9.922 25.374h13.08l-34.633-88.922h-16.717ZM508.888 77.942h29.484v77.627h13.159V77.942h29.482V66.647h-72.125v11.295ZM613.369 116.499h24.97v-11.174h-24.97V77.942h49.202V66.647H600.21v88.922h62.361v-11.295h-49.202v-27.775ZM697.083 66.647h-13.16v88.922h59.51v-11.295h-46.35V66.647ZM804.257 66.647l-25.294 40.544-26.279-40.544h-14.907l34.259 50.2v38.722h13.158v-38.605l32.391-50.317h-13.328Z&quot; clip-rule=&quot;evenodd&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:storybookjs knip&quot;&gt;&lt;svg fill=&quot;none&quot; viewBox=&quot;0 0 100 20&quot;&gt;
  &lt;path clip-rule=&quot;evenodd&quot; d=&quot;M26.64 15.8314C25.7867 15.8314 24.9653 15.7168 24.176 15.4874C23.3867 15.2581 22.7307 14.9408 22.208 14.5354L23.008 12.7594C24.096 13.5168 25.3173 13.8954 26.672 13.8954C27.376 13.8954 27.9173 13.7808 28.296 13.5514C28.6747 13.3221 28.864 13.0048 28.864 12.5994C28.864 12.2368 28.6907 11.9541 28.344 11.7514C27.9973 11.5488 27.3813 11.3514 26.496 11.1594C25.504 10.9568 24.712 10.7114 24.12 10.4234C23.528 10.1354 23.096 9.78076 22.824 9.35943C22.552 8.93809 22.416 8.4181 22.416 7.79943C22.416 7.11676 22.6053 6.50876 22.984 5.97543C23.3627 5.44209 23.8933 5.02343 24.576 4.71943C25.2587 4.41543 26.048 4.26343 26.944 4.26343C27.744 4.26343 28.5147 4.38076 29.256 4.61543C29.9973 4.8501 30.5867 5.16476 31.024 5.55943L30.224 7.33543C29.1893 6.57809 28.1013 6.19943 26.96 6.19943C26.3093 6.19943 25.7973 6.32476 25.424 6.57543C25.0507 6.8261 24.864 7.17009 24.864 7.60743C24.864 7.86343 24.936 8.07409 25.08 8.23943C25.224 8.40476 25.464 8.55143 25.8 8.67943C26.136 8.80743 26.6133 8.94076 27.232 9.07943C28.6827 9.39943 29.7253 9.81009 30.36 10.3114C30.9947 10.8128 31.312 11.5061 31.312 12.3914C31.312 13.4581 30.9013 14.2981 30.08 14.9114C29.2587 15.5248 28.112 15.8314 26.64 15.8314ZM37.1042 14.0393C37.3495 14.0393 37.6055 14.0233 37.8722 13.9913L37.7442 15.7513C37.4348 15.794 37.1255 15.8153 36.8162 15.8153C35.6215 15.8153 34.7495 15.554 34.2002 15.0313C33.6508 14.5087 33.3762 13.714 33.3762 12.6473V9.63934H31.8882V7.83134H33.3762V5.52734H35.7922V7.83134H37.7602V9.63934H35.7922V12.6313C35.7922 13.57 36.2295 14.0393 37.1042 14.0393ZM42.72 15.8154C41.888 15.8154 41.1573 15.6474 40.528 15.3114C39.8987 14.9754 39.4133 14.5008 39.072 13.8874C38.7307 13.2741 38.56 12.5514 38.56 11.7194C38.56 10.8874 38.7307 10.1648 39.072 9.55143C39.4133 8.93809 39.8987 8.4661 40.528 8.13543C41.1573 7.80476 41.888 7.63943 42.72 7.63943C43.552 7.63943 44.2827 7.80476 44.912 8.13543C45.5413 8.4661 46.0267 8.93809 46.368 9.55143C46.7093 10.1648 46.88 10.8874 46.88 11.7194C46.88 12.5514 46.7093 13.2741 46.368 13.8874C46.0267 14.5008 45.5413 14.9754 44.912 15.3114C44.2827 15.6474 43.552 15.8154 42.72 15.8154ZM42.72 13.9754C43.8933 13.9754 44.48 13.2234 44.48 11.7194C44.48 10.9621 44.328 10.3968 44.024 10.0234C43.72 9.65009 43.2853 9.46343 42.72 9.46343C41.5467 9.46343 40.96 10.2154 40.96 11.7194C40.96 13.2234 41.5467 13.9754 42.72 13.9754ZM53.5681 9.62354L52.2081 9.76754C51.5361 9.83154 51.0615 10.0209 50.7841 10.3355C50.5068 10.6502 50.3681 11.0689 50.3681 11.5915V15.6875H47.9521V7.83154H50.2721V9.15954C50.6668 8.25286 51.4828 7.75687 52.7201 7.67154L53.4241 7.62354L53.5681 9.62354ZM60.588 7.84743H62.956L58.22 18.5674H55.772L57.276 15.2554L54.044 7.84743H56.556L58.54 12.8394L60.588 7.84743ZM68.5559 7.63947C69.2386 7.63947 69.8412 7.8048 70.3639 8.13547C70.8866 8.46614 71.2946 8.93813 71.5879 9.55147C71.8812 10.1648 72.0279 10.8768 72.0279 11.6875C72.0279 12.4981 71.8812 13.2155 71.5879 13.8395C71.2946 14.4635 70.8839 14.9488 70.3559 15.2955C69.8279 15.6421 69.2279 15.8155 68.5559 15.8155C68.0119 15.8155 67.5212 15.7008 67.0839 15.4715C66.6466 15.2421 66.3106 14.9248 66.0759 14.5195V15.6875H63.6919V4.40747H66.1079V8.88747C66.3426 8.4928 66.6759 8.18614 67.1079 7.96747C67.5399 7.7488 68.0226 7.63947 68.5559 7.63947ZM67.8522 13.9755C68.4175 13.9755 68.8548 13.7755 69.1642 13.3755C69.4735 12.9755 69.6282 12.4128 69.6282 11.6875C69.6282 10.9728 69.4735 10.4262 69.1642 10.0475C68.8548 9.66882 68.4175 9.47949 67.8522 9.47949C67.2868 9.47949 66.8495 9.67416 66.5402 10.0635C66.2308 10.4528 66.0762 11.0048 66.0762 11.7195C66.0762 12.4448 66.2308 13.0022 66.5402 13.3915C66.8495 13.7808 67.2868 13.9755 67.8522 13.9755ZM77.2762 15.8154C76.4442 15.8154 75.7135 15.6474 75.0842 15.3114C74.4549 14.9754 73.9695 14.5007 73.6282 13.8874C73.2869 13.2741 73.1162 12.5514 73.1162 11.7194C73.1162 10.8874 73.2869 10.1647 73.6282 9.5514C73.9695 8.93807 74.4549 8.46607 75.0842 8.1354C75.7135 7.80474 76.4442 7.6394 77.2762 7.6394C78.1082 7.6394 78.8389 7.80474 79.4682 8.1354C80.0975 8.46607 80.5829 8.93807 80.9242 9.5514C81.2655 10.1647 81.4362 10.8874 81.4362 11.7194C81.4362 12.5514 81.2655 13.2741 80.9242 13.8874C80.5829 14.5007 80.0975 14.9754 79.4682 15.3114C78.8389 15.6474 78.1082 15.8154 77.2762 15.8154ZM77.2761 13.9754C78.4495 13.9754 79.0361 13.2234 79.0361 11.7194C79.0361 10.962 78.8841 10.3967 78.5801 10.0234C78.2761 9.65004 77.8414 9.46338 77.2761 9.46338C76.1028 9.46338 75.5161 10.2154 75.5161 11.7194C75.5161 13.2234 76.1028 13.9754 77.2761 13.9754ZM86.284 15.8154C85.452 15.8154 84.7213 15.6474 84.092 15.3114C83.4627 14.9754 82.9773 14.5008 82.636 13.8874C82.2947 13.2741 82.124 12.5514 82.124 11.7194C82.124 10.8874 82.2947 10.1648 82.636 9.55143C82.9773 8.93809 83.4627 8.4661 84.092 8.13543C84.7213 7.80476 85.452 7.63943 86.284 7.63943C87.116 7.63943 87.8467 7.80476 88.476 8.13543C89.1053 8.4661 89.5907 8.93809 89.932 9.55143C90.2733 10.1648 90.444 10.8874 90.444 11.7194C90.444 12.5514 90.2733 13.2741 89.932 13.8874C89.5907 14.5008 89.1053 14.9754 88.476 15.3114C87.8467 15.6474 87.116 15.8154 86.284 15.8154ZM86.284 13.9754C87.4574 13.9754 88.044 13.2234 88.044 11.7194C88.044 10.9621 87.892 10.3968 87.588 10.0234C87.284 9.65009 86.8493 9.46343 86.284 9.46343C85.1107 9.46343 84.524 10.2154 84.524 11.7194C84.524 13.2234 85.1107 13.9754 86.284 13.9754ZM100 15.6875H97.0402L94.0322 12.1835V15.6875H91.6162V4.40747H94.0322V11.1915L96.9282 7.84747H99.8082L96.5122 11.5915L100 15.6875Z&quot; fill-rule=&quot;evenodd&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M0.620279 18.4293L0.000720095 1.92089C-0.0197415 1.37568 0.398305 0.913625 0.942836 0.879592L14.9844 0.00199235C15.5387 -0.0326493 16.0161 0.38859 16.0507 0.942857C16.052 0.96374 16.0527 0.984658 16.0527 1.00558V18.9945C16.0527 19.5498 15.6025 20 15.0471 20C15.0321 20 15.0171 19.9997 15.002 19.999L1.58 19.3962C1.05727 19.3727 0.639903 18.9522 0.620279 18.4293Z&quot; fill=&quot;#FF4785&quot;&gt;&lt;/path&gt;
  &lt;path clip-rule=&quot;evenodd&quot; d=&quot;M13.8804 0.0710449L11.9479 0.191825L11.8536 2.45837C11.8522 2.49321 11.8629 2.52747 11.884 2.55526C11.9341 2.62126 12.0282 2.63418 12.0942 2.58411L12.9746 1.91625L13.7182 2.50205C13.7461 2.524 13.7808 2.53536 13.8163 2.53413C13.8991 2.53124 13.9639 2.46178 13.961 2.37898L13.8804 0.0710449ZM12.3763 7.66099C12.0225 7.93579 9.38733 8.12329 9.38733 7.73208C9.44302 6.23927 8.77469 6.17383 8.40339 6.17383C8.05066 6.17383 7.45659 6.28046 7.45659 7.08017C7.45659 7.89512 8.32476 8.35519 9.34377 8.8952C10.7914 9.66232 12.5433 10.5908 12.5433 12.927C12.5433 15.1662 10.724 16.4031 8.40339 16.4031C6.00853 16.4031 3.91569 15.4342 4.15205 12.075C4.24488 11.6806 7.2895 11.7743 7.2895 12.075C7.25237 13.4612 7.56798 13.8689 8.36626 13.8689C8.9789 13.8689 9.25737 13.5312 9.25737 12.9625C9.25737 12.1019 8.35281 11.594 7.31222 11.0098C5.90324 10.2187 4.24488 9.28767 4.24488 7.15126C4.24488 5.01868 5.7115 3.59696 8.32913 3.59696C10.9468 3.59696 12.3763 4.9969 12.3763 7.66099Z&quot; fill=&quot;#fff&quot; fill-rule=&quot;evenodd&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:supabase knip&quot;&gt;&lt;svg width=&quot;581&quot; height=&quot;113&quot; viewBox=&quot;0 0 581 113&quot; fill=&quot;none&quot;&gt;
&lt;path d=&quot;M151.397 66.7608C151.996 72.3621 157.091 81.9642 171.877 81.9642C184.764 81.9642 190.959 73.7624 190.959 65.7607C190.959 58.559 186.063 52.6577 176.373 50.6571L169.379 49.1569C166.682 48.6568 164.884 47.1565 164.884 44.7559C164.884 41.9552 167.681 39.8549 171.178 39.8549C176.772 39.8549 178.87 43.5556 179.27 46.4564L190.359 43.9558C189.76 38.6546 185.064 29.7527 171.078 29.7527C160.488 29.7527 152.696 37.0543 152.696 45.8561C152.696 52.7576 156.991 58.4591 166.482 60.5594L172.976 62.0598C176.772 62.8599 178.271 64.6605 178.271 66.8609C178.271 69.4615 176.173 71.762 171.777 71.762C165.983 71.762 163.085 68.1611 162.786 64.2602L151.397 66.7608Z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
&lt;path d=&quot;M233.421 80.4639H246.109C245.909 78.7635 245.609 75.3628 245.609 71.5618V31.2529H232.321V59.8592C232.321 65.5606 228.925 69.5614 223.031 69.5614C216.837 69.5614 214.039 65.1604 214.039 59.6592V31.2529H200.752V62.3599C200.752 73.0622 207.545 81.7642 219.434 81.7642C224.628 81.7642 230.325 79.7638 233.022 75.1627C233.022 77.1631 233.221 79.4636 233.421 80.4639Z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
&lt;path d=&quot;M273.076 99.4682V75.663C275.473 78.9636 280.469 81.6644 287.263 81.6644C301.149 81.6644 310.439 70.6617 310.439 55.7584C310.439 41.1553 302.148 30.1528 287.762 30.1528C280.37 30.1528 274.875 33.4534 272.677 37.2544V31.253H259.79V99.4682H273.076ZM297.352 55.8585C297.352 64.6606 291.958 69.7616 285.164 69.7616C278.372 69.7616 272.877 64.5605 272.877 55.8585C272.877 47.1566 278.372 42.0554 285.164 42.0554C291.958 42.0554 297.352 47.1566 297.352 55.8585Z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
&lt;path d=&quot;M317.964 67.0609C317.964 74.7627 324.357 81.8643 334.848 81.8643C342.139 81.8643 346.835 78.4634 349.332 74.5625C349.332 76.463 349.532 79.1635 349.832 80.4639H362.02C361.72 78.7635 361.422 75.2627 361.422 72.6622V48.4567C361.422 38.5545 355.627 29.7527 340.043 29.7527C326.855 29.7527 319.761 38.2544 318.963 45.9562L330.751 48.4567C331.151 44.1558 334.348 40.455 340.141 40.455C345.737 40.455 348.434 43.3556 348.434 46.8564C348.434 48.5568 347.536 49.9572 344.738 50.3572L332.65 52.1576C324.458 53.3579 317.964 58.2589 317.964 67.0609ZM337.644 71.962C333.349 71.962 331.25 69.1614 331.25 66.2608C331.25 62.4599 333.947 60.5594 337.345 60.0594L348.434 58.359V60.5594C348.434 69.2615 343.239 71.962 337.644 71.962Z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
&lt;path d=&quot;M387.703 80.4641V74.4627C390.299 78.6637 395.494 81.6644 402.288 81.6644C416.276 81.6644 425.467 70.5618 425.467 55.6585C425.467 41.0552 417.174 29.9528 402.788 29.9528C395.494 29.9528 390.1 33.1535 387.902 36.6541V8.04785H374.815V80.4641H387.703ZM412.178 55.7584C412.178 64.7605 406.784 69.7616 399.99 69.7616C393.297 69.7616 387.703 64.6606 387.703 55.7584C387.703 46.7564 393.297 41.8554 399.99 41.8554C406.784 41.8554 412.178 46.7564 412.178 55.7584Z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
&lt;path d=&quot;M432.99 67.0609C432.99 74.7627 439.383 81.8643 449.873 81.8643C457.165 81.8643 461.862 78.4634 464.358 74.5625C464.358 76.463 464.559 79.1635 464.858 80.4639H477.046C476.748 78.7635 476.448 75.2627 476.448 72.6622V48.4567C476.448 38.5545 470.653 29.7527 455.068 29.7527C441.881 29.7527 434.788 38.2544 433.989 45.9562L445.776 48.4567C446.177 44.1558 449.374 40.455 455.167 40.455C460.763 40.455 463.46 43.3556 463.46 46.8564C463.46 48.5568 462.561 49.9572 459.763 50.3572L447.676 52.1576C439.484 53.3579 432.99 58.2589 432.99 67.0609ZM452.671 71.962C448.375 71.962 446.276 69.1614 446.276 66.2608C446.276 62.4599 448.973 60.5594 452.371 60.0594L463.46 58.359V60.5594C463.46 69.2615 458.265 71.962 452.671 71.962Z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
&lt;path d=&quot;M485.645 66.7608C486.243 72.3621 491.339 81.9642 506.124 81.9642C519.012 81.9642 525.205 73.7624 525.205 65.7607C525.205 58.559 520.311 52.6577 510.62 50.6571L503.626 49.1569C500.929 48.6568 499.132 47.1565 499.132 44.7559C499.132 41.9552 501.928 39.8549 505.425 39.8549C511.021 39.8549 513.118 43.5556 513.519 46.4564L524.607 43.9558C524.007 38.6546 519.312 29.7527 505.326 29.7527C494.735 29.7527 486.944 37.0543 486.944 45.8561C486.944 52.7576 491.238 58.4591 500.73 60.5594L507.224 62.0598C511.021 62.8599 512.519 64.6605 512.519 66.8609C512.519 69.4615 510.421 71.762 506.025 71.762C500.23 71.762 497.334 68.1611 497.034 64.2602L485.645 66.7608Z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
&lt;path d=&quot;M545.385 50.2571C545.685 45.7562 549.482 40.5549 556.375 40.5549C563.967 40.5549 567.165 45.3561 567.365 50.2571H545.385ZM568.664 63.0601C567.065 67.4609 563.668 70.5617 557.474 70.5617C550.88 70.5617 545.385 65.8606 545.087 59.3593H580.252C580.252 59.159 580.451 57.1587 580.451 55.2582C580.451 39.4547 571.361 29.7527 556.175 29.7527C543.588 29.7527 531.998 39.9548 531.998 55.6584C531.998 72.262 543.886 81.9642 557.374 81.9642C569.462 81.9642 577.255 74.8626 579.753 66.3607L568.664 63.0601Z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
&lt;path d=&quot;M63.7076 110.284C60.8481 113.885 55.0502 111.912 54.9813 107.314L53.9738 40.0627L99.1935 40.0627C107.384 40.0627 111.952 49.5228 106.859 55.9374L63.7076 110.284Z&quot; fill=&quot;url(#supabase-paint0)&quot;&gt;&lt;/path&gt;
&lt;path d=&quot;M63.7076 110.284C60.8481 113.885 55.0502 111.912 54.9813 107.314L53.9738 40.0627L99.1935 40.0627C107.384 40.0627 111.952 49.5228 106.859 55.9374L63.7076 110.284Z&quot; fill=&quot;url(#supabase-paint1)&quot; fill-opacity=&quot;0.2&quot;&gt;&lt;/path&gt;
&lt;path d=&quot;M45.317 2.07103C48.1765 -1.53037 53.9745 0.442937 54.0434 5.041L54.4849 72.2922H9.83113C1.64038 72.2922 -2.92775 62.8321 2.1655 56.4175L45.317 2.07103Z&quot; fill=&quot;#3ECF8E&quot;&gt;&lt;/path&gt;
&lt;defs&gt;
&lt;linearGradient id=&quot;supabase-paint0&quot; x1=&quot;53.9738&quot; y1=&quot;54.974&quot; x2=&quot;94.1635&quot; y2=&quot;71.8295&quot; gradientUnits=&quot;userSpaceOnUse&quot;&gt;
&lt;stop stop-color=&quot;#249361&quot;&gt;&lt;/stop&gt;
&lt;stop offset=&quot;1&quot; stop-color=&quot;#3ECF8E&quot;&gt;&lt;/stop&gt;
&lt;/linearGradient&gt;
&lt;linearGradient id=&quot;supabase-paint1&quot; x1=&quot;36.1558&quot; y1=&quot;30.578&quot; x2=&quot;54.4844&quot; y2=&quot;65.0806&quot; gradientUnits=&quot;userSpaceOnUse&quot;&gt;
&lt;stop&gt;&lt;/stop&gt;
&lt;stop offset=&quot;1&quot; stop-opacity=&quot;0&quot;&gt;&lt;/stop&gt;
&lt;/linearGradient&gt;
&lt;/defs&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:sveltejs knip&quot;&gt;&lt;svg viewBox=&quot;0 0 634.6 177.4&quot;&gt;
  &lt;path d=&quot;M138.2 23.5c7.9 11.1 11 24.8 8.6 38.2-1.1 6.3-3.6 12.3-7.1 17.7 5.2 9.8 6.9 21.1 4.9 32-2.4 13.1-10.1 24.6-21.4 31.7l-41.3 26.3c-23.5 15-56.1 8-72.5-15.6-7.9-10.9-11-24.7-8.6-38.1 1.1-6.3 3.6-12.3 7.1-17.7C2.7 88.2 1 76.9 3 66c2.4-13.1 10.1-24.7 21.4-31.7L65.7 7.9c23.5-15 56-8 72.5 15.6&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M61.6 156.2c3-.8 5.8-2 8.4-3.7l41.3-26.3c6.8-4.3 11.5-11.2 12.9-19.1 1.4-8-.4-16.3-5.2-23-7.8-11.3-21.9-16.5-35.2-13.1-3 .8-5.8 2-8.4 3.7l-15.8 10c-.8.5-1.6.9-2.5 1.1-4 1-8.3-.5-10.6-3.9-1.4-2-2-4.5-1.6-6.9.4-2.4 1.8-4.5 3.9-5.7L90.1 43c.8-.5 1.6-.9 2.5-1.1 4-1 8.3.5 10.6 3.9 1.3 1.8 1.9 4 1.7 6.1v1.5c-.1 0 1.4.5 1.4.5 5.8 1.8 11.3 4.5 16.2 8.1l2.1 1.6.8-2.4c.4-1.3.7-2.6 1-3.9 1.4-8-.4-16.3-5.2-23C113.4 23 99.3 17.8 86 21.2c-3 .8-5.8 2-8.4 3.7L36.3 51.2c-6.8 4.3-11.5 11.2-12.9 19.1-1.4 8 .4 16.3 5.2 23 7.8 11.3 21.9 16.5 35.2 13.1 3-.8 5.8-2 8.4-3.7L88 92.6c.8-.5 1.6-.9 2.5-1.1 4-1 8.3.5 10.6 3.9 1.4 2 2 4.5 1.6 6.9-.4 2.4-1.8 4.5-3.9 5.8l-41.3 26.3c-.8.5-1.6.9-2.5 1.1-4 1-8.3-.5-10.6-3.9-1.3-1.8-1.9-4-1.7-6.1V124c.1 0-1.4-.5-1.4-.5-5.8-1.8-11.3-4.5-16.2-8.1l-2.1-1.6-.8 2.4c-.4 1.3-.7 2.6-1 3.9-1.4 8 .4 16.3 5.2 23 7.8 11.3 21.9 16.5 35.2 13.1&quot;&gt;&lt;/path&gt;
  &lt;path d=&quot;M242 127.9c-6.2.2-12.3-1.6-17.4-4.9-4.8-3.2-8.4-8-10.2-13.5l10.6-3.9c1.5 3.4 3.9 6.3 6.9 8.4 3.1 2.1 6.8 3.2 10.5 3.1 3.6.2 7.1-.9 10-3 2.5-2.1 3.9-5.4 3.7-8.7 0-1.5-.3-3-1-4.4-.6-1.2-1.4-2.3-2.3-3.3-1.2-1.1-2.5-2-4-2.7-1.8-.9-3.3-1.6-4.5-2.1-1.2-.5-2.9-1.1-5.3-1.9-2.9-1-5.1-1.8-6.5-2.4-2-.8-3.9-1.8-5.7-2.9-2-1-3.8-2.4-5.3-4-1.3-1.6-2.4-3.3-3.2-5.3-3.1-7.5-1-16.1 5.1-21.3 4.3-3.8 10.2-5.7 17.7-5.7 6.2 0 11.3 1.4 15.3 4.1 3.9 2.6 6.7 6.5 8.1 10.9l-10.4 3.5c-1-2.3-2.8-4.3-5-5.6-2.7-1.5-5.7-2.2-8.8-2.1-3-.2-6 .7-8.5 2.4-2.1 1.6-3.2 4.1-3.1 6.7 0 2 .9 3.9 2.4 5.2 1.4 1.4 3.1 2.6 5 3.4 1.7.7 4.4 1.7 7.9 2.9 2.2.8 3.8 1.4 4.8 1.8 1 .4 2.6 1.1 4.6 2 1.6.7 3.2 1.6 4.7 2.5 1.3 1 2.6 2 3.8 3.1 1.3 1.1 2.4 2.5 3.3 4 .8 1.5 1.5 3.2 1.9 4.9.6 2 .8 4.1.8 6.1 0 7.1-2.4 12.6-7.3 16.6-4.8 4-11.1 6-18.6 6Zm69.4-1.3-26-75.8h12.1l17.2 52.9c1 2.8 1.7 5.7 2.4 8.7.6-2.9 1.4-5.8 2.4-8.7l17-52.9h12l-25.9 75.8h-11.3Zm60.2 0V50.8h47v10.6h-35.8v20.8h23.1v10.6h-23.1V116h38.1v10.6h-49.4Zm78.1 0V50.8H461v65h37.1v10.8h-48.3Zm90.8-65v65h-11.3v-65h-21.5V50.8h54.2v10.8h-21.5Zm44.7 65V50.8h47v10.6h-35.8v20.8h23.1v10.6h-23.1V116h38.1v10.6h-49.4Z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:tanstack knip&quot;&gt;&lt;img src=&quot;https://knip.dev/_astro/tanstack.Er4SOkq1.png&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=code&amp;#x26;q=org:typescript-eslint knip&quot;&gt;&lt;svg viewBox=&quot;0 -22 504 482&quot;&gt;
  &lt;path fill=&quot;white&quot; d=&quot;M 250.346 32.177 L 430.326 133.818 L 434.374 308.657 C 434.374 308.657 257.329 444.248 257.607 403.965 C 57.885 343.682 75.022 236.382 75.022 336.382 L 76.376 136.806 L 200.346 32.177 Z&quot;&gt;&lt;/path&gt;
  &lt;g transform=&quot;matrix(1.890103, 0, 0, 1.890103, -27.438263, -27.043961)&quot;&gt;
    &lt;path fill=&quot;#374FBE&quot; d=&quot;M273.336,124.488L215.469,23.816c-2.102-3.64-5.985-6.325-10.188-6.325H89.545 c-4.204,0-8.088,2.685-10.19,6.325l-57.867,100.45c-2.102,3.641-2.102,8.236,0,11.877l57.867,99.847 c2.102,3.64,5.986,5.501,10.19,5.501h115.735c4.203,0,8.087-1.805,10.188-5.446l57.867-100.01 C275.439,132.396,275.439,128.128,273.336,124.488 M225.419,172.898c0,1.48-0.891,2.849-2.174,3.59l-73.71,42.527 c-1.282,0.74-2.888,0.74-4.17,0l-73.767-42.527c-1.282-0.741-2.179-2.109-2.179-3.59V87.843c0-1.481,0.884-2.849,2.167-3.59 l73.707-42.527c1.282-0.741,2.886-0.741,4.168,0l73.772,42.527c1.283,0.741,2.186,2.109,2.186,3.59V172.898z&quot;&gt;&lt;/path&gt;
  &lt;/g&gt;
  &lt;path d=&quot;M 163.217 179.207 L 163.217 189.362 L 195.611 189.362 L 195.611 281.562 L 218.599 281.562 L 218.599 189.362 L 250.993 189.362 L 250.993 179.394 C 250.993 173.788 250.993 169.24 250.744 169.115 C 250.744 168.928 230.996 168.866 207.012 168.866 L 163.403 169.053 L 163.403 179.27 L 163.217 179.207 Z M 308.805 168.804 C 315.16 170.299 320.019 173.165 324.38 177.712 C 326.685 180.204 330.111 184.565 330.36 185.686 C 330.36 186.06 319.583 193.349 313.041 197.398 C 312.792 197.585 311.796 196.526 310.799 194.906 C 307.559 190.296 304.258 188.303 299.087 187.929 C 291.611 187.431 286.627 191.355 286.627 197.897 C 286.627 199.89 287.001 201.012 287.749 202.631 C 289.431 206.058 292.546 208.113 302.202 212.35 C 320.019 220.012 327.744 225.058 332.416 232.285 C 337.711 240.383 338.895 253.092 335.344 262.624 C 331.357 273.027 321.639 280.067 307.746 282.372 C 303.385 283.119 293.418 282.995 288.746 282.185 C 278.778 280.316 269.247 275.332 263.391 268.916 C 261.086 266.424 256.662 259.758 256.912 259.322 L 259.279 257.827 L 268.624 252.407 L 275.663 248.295 L 277.283 250.476 C 279.339 253.715 283.949 258.076 286.627 259.571 C 294.726 263.745 305.566 263.184 310.923 258.325 C 313.228 256.207 314.225 253.964 314.225 250.849 C 314.225 247.984 313.789 246.675 312.356 244.495 C 310.363 241.754 306.376 239.511 295.162 234.527 C 282.267 229.045 276.784 225.557 271.676 220.199 C 268.748 216.96 266.069 211.914 264.823 207.74 C 263.889 204.126 263.577 195.28 264.45 191.729 C 267.128 179.27 276.535 170.548 289.991 168.056 C 294.352 167.184 304.631 167.558 308.93 168.679 L 308.805 168.804 Z&quot; fill=&quot;#374fbe&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/search?type=pullrequests&amp;#x26;q=org:vercel knip&quot;&gt;&lt;svg viewBox=&quot;0 0 262 52&quot; fill=&quot;none&quot;&gt;
  &lt;path fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; d=&quot;M59.8 52L29.9 0L0 52H59.8ZM89.9574 49.6328L114.945 2.36365H104.137L86.8999 36.6921L69.6628 2.36365H58.8545L83.8423 49.6328H89.9574ZM260.248 2.36365V49.6329H251.3V2.36365H260.248ZM210.441 31.99C210.441 28.3062 211.21 25.0661 212.747 22.2699C214.285 19.4737 216.429 17.321 219.179 15.812C221.928 14.3029 225.144 13.5484 228.826 13.5484C232.088 13.5484 235.024 14.2585 237.634 15.6788C240.244 17.0991 242.317 19.2074 243.855 22.0036C245.393 24.7998 246.185 28.2174 246.232 32.2564V34.3202H219.878C220.064 37.2496 220.926 39.5576 222.464 41.2442C224.049 42.8864 226.169 43.7075 228.826 43.7075C230.503 43.7075 232.041 43.2637 233.439 42.376C234.838 41.4883 235.886 40.2899 236.585 38.7808L245.743 39.4466C244.624 42.7754 242.527 45.4385 239.451 47.4358C236.375 49.4331 232.834 50.4317 228.826 50.4317C225.144 50.4317 221.928 49.6772 219.179 48.1681C216.429 46.6591 214.285 44.5064 212.747 41.7102C211.21 38.914 210.441 35.6739 210.441 31.99ZM237.005 28.6612C236.678 25.7762 235.77 23.668 234.278 22.3365C232.787 20.9606 230.969 20.2726 228.826 20.2726C226.356 20.2726 224.352 21.0049 222.814 22.4696C221.276 23.9343 220.321 25.9982 219.948 28.6612H237.005ZM195.345 22.3365C196.836 23.5348 197.768 25.1993 198.141 27.3297L207.369 26.8637C207.043 24.1562 206.087 21.8039 204.503 19.8066C202.918 17.8093 200.868 16.278 198.351 15.2128C195.881 14.1032 193.155 13.5484 190.172 13.5484C186.49 13.5484 183.275 14.3029 180.525 15.812C177.775 17.321 175.632 19.4737 174.094 22.2699C172.556 25.0661 171.787 28.3062 171.787 31.99C171.787 35.6739 172.556 38.914 174.094 41.7102C175.632 44.5064 177.775 46.6591 180.525 48.1681C183.275 49.6772 186.49 50.4317 190.172 50.4317C193.248 50.4317 196.044 49.8769 198.561 48.7673C201.077 47.6133 203.128 45.9933 204.712 43.9072C206.297 41.8212 207.252 39.38 207.578 36.5838L198.281 36.1844C197.955 38.5367 197.046 40.3565 195.555 41.6436C194.063 42.8864 192.269 43.5078 190.172 43.5078C187.283 43.5078 185.046 42.5091 183.461 40.5118C181.877 38.5145 181.084 35.6739 181.084 31.99C181.084 28.3062 181.877 25.4656 183.461 23.4683C185.046 21.471 187.283 20.4723 190.172 20.4723C192.176 20.4723 193.9 21.0937 195.345 22.3365ZM149.953 14.3457H158.28L158.52 21.137C159.111 19.2146 159.933 17.7218 160.986 16.6585C162.512 15.1166 164.64 14.3457 167.369 14.3457H170.769V21.6146H167.3C165.357 21.6146 163.761 21.8789 162.512 22.4075C161.309 22.9362 160.384 23.7732 159.737 24.9186C159.135 26.064 158.835 27.5178 158.835 29.2799V49.6328H149.953V14.3457ZM111.546 22.2699C110.008 25.0661 109.239 28.3062 109.239 31.99C109.239 35.6739 110.008 38.914 111.546 41.7102C113.084 44.5064 115.228 46.6591 117.977 48.1681C120.727 49.6772 123.942 50.4317 127.624 50.4317C131.632 50.4317 135.174 49.4331 138.25 47.4358C141.325 45.4385 143.423 42.7754 144.541 39.4466L135.384 38.7808C134.684 40.2899 133.636 41.4883 132.238 42.376C130.84 43.2637 129.302 43.7075 127.624 43.7075C124.968 43.7075 122.847 42.8864 121.263 41.2442C119.725 39.5576 118.863 37.2496 118.676 34.3202H145.03V32.2564C144.984 28.2174 144.192 24.7998 142.654 22.0036C141.116 19.2074 139.042 17.0991 136.432 15.6788C133.822 14.2585 130.886 13.5484 127.624 13.5484C123.942 13.5484 120.727 14.3029 117.977 15.812C115.228 17.321 113.084 19.4737 111.546 22.2699ZM133.077 22.3365C134.568 23.668 135.477 25.7762 135.803 28.6612H118.746C119.119 25.9982 120.074 23.9343 121.612 22.4696C123.15 21.0049 125.154 20.2726 127.624 20.2726C129.768 20.2726 131.585 20.9606 133.077 22.3365Z&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;/section&gt;
&lt;p&gt;And so many more on and off the radar. Very, very cool!&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;sponsors&quot;&gt;Sponsors&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Last but not least, eternal gratitude for all the sponsors that have been
supporting me along the way. THANK YOU, THANK YOU, THANK YOU!&lt;/p&gt;
&lt;p&gt;And eh.. gotta take my chances: how about &lt;a href=&quot;https://knip.dev/sponsors&quot;&gt;joining this awesome club&lt;/a&gt;?&lt;/p&gt;
&lt;section&gt;&lt;div&gt;&lt;a href=&quot;https://vercel.com&quot;&gt;&lt;svg viewBox=&quot;0 0 262 52&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; d=&quot;M59.8 52L29.9 0L0 52H59.8ZM89.9574 49.6328L114.945 2.36365H104.137L86.8999 36.6921L69.6628 2.36365H58.8545L83.8423 49.6328H89.9574ZM260.248 2.36365V49.6329H251.3V2.36365H260.248ZM210.441 31.99C210.441 28.3062 211.21 25.0661 212.747 22.2699C214.285 19.4737 216.429 17.321 219.179 15.812C221.928 14.3029 225.144 13.5484 228.826 13.5484C232.088 13.5484 235.024 14.2585 237.634 15.6788C240.244 17.0991 242.317 19.2074 243.855 22.0036C245.393 24.7998 246.185 28.2174 246.232 32.2564V34.3202H219.878C220.064 37.2496 220.926 39.5576 222.464 41.2442C224.049 42.8864 226.169 43.7075 228.826 43.7075C230.503 43.7075 232.041 43.2637 233.439 42.376C234.838 41.4883 235.886 40.2899 236.585 38.7808L245.743 39.4466C244.624 42.7754 242.527 45.4385 239.451 47.4358C236.375 49.4331 232.834 50.4317 228.826 50.4317C225.144 50.4317 221.928 49.6772 219.179 48.1681C216.429 46.6591 214.285 44.5064 212.747 41.7102C211.21 38.914 210.441 35.6739 210.441 31.99ZM237.005 28.6612C236.678 25.7762 235.77 23.668 234.278 22.3365C232.787 20.9606 230.969 20.2726 228.826 20.2726C226.356 20.2726 224.352 21.0049 222.814 22.4696C221.276 23.9343 220.321 25.9982 219.948 28.6612H237.005ZM195.345 22.3365C196.836 23.5348 197.768 25.1993 198.141 27.3297L207.369 26.8637C207.043 24.1562 206.087 21.8039 204.503 19.8066C202.918 17.8093 200.868 16.278 198.351 15.2128C195.881 14.1032 193.155 13.5484 190.172 13.5484C186.49 13.5484 183.275 14.3029 180.525 15.812C177.775 17.321 175.632 19.4737 174.094 22.2699C172.556 25.0661 171.787 28.3062 171.787 31.99C171.787 35.6739 172.556 38.914 174.094 41.7102C175.632 44.5064 177.775 46.6591 180.525 48.1681C183.275 49.6772 186.49 50.4317 190.172 50.4317C193.248 50.4317 196.044 49.8769 198.561 48.7673C201.077 47.6133 203.128 45.9933 204.712 43.9072C206.297 41.8212 207.252 39.38 207.578 36.5838L198.281 36.1844C197.955 38.5367 197.046 40.3565 195.555 41.6436C194.063 42.8864 192.269 43.5078 190.172 43.5078C187.283 43.5078 185.046 42.5091 183.461 40.5118C181.877 38.5145 181.084 35.6739 181.084 31.99C181.084 28.3062 181.877 25.4656 183.461 23.4683C185.046 21.471 187.283 20.4723 190.172 20.4723C192.176 20.4723 193.9 21.0937 195.345 22.3365ZM149.953 14.3457H158.28L158.52 21.137C159.111 19.2146 159.933 17.7218 160.986 16.6585C162.512 15.1166 164.64 14.3457 167.369 14.3457H170.769V21.6146H167.3C165.357 21.6146 163.761 21.8789 162.512 22.4075C161.309 22.9362 160.384 23.7732 159.737 24.9186C159.135 26.064 158.835 27.5178 158.835 29.2799V49.6328H149.953V14.3457ZM111.546 22.2699C110.008 25.0661 109.239 28.3062 109.239 31.99C109.239 35.6739 110.008 38.914 111.546 41.7102C113.084 44.5064 115.228 46.6591 117.977 48.1681C120.727 49.6772 123.942 50.4317 127.624 50.4317C131.632 50.4317 135.174 49.4331 138.25 47.4358C141.325 45.4385 143.423 42.7754 144.541 39.4466L135.384 38.7808C134.684 40.2899 133.636 41.4883 132.238 42.376C130.84 43.2637 129.302 43.7075 127.624 43.7075C124.968 43.7075 122.847 42.8864 121.263 41.2442C119.725 39.5576 118.863 37.2496 118.676 34.3202H145.03V32.2564C144.984 28.2174 144.192 24.7998 142.654 22.0036C141.116 19.2074 139.042 17.0991 136.432 15.6788C133.822 14.2585 130.886 13.5484 127.624 13.5484C123.942 13.5484 120.727 14.3029 117.977 15.812C115.228 17.321 113.084 19.4737 111.546 22.2699ZM133.077 22.3365C134.568 23.668 135.477 25.7762 135.803 28.6612H118.746C119.119 25.9982 120.074 23.9343 121.612 22.4696C123.15 21.0049 125.154 20.2726 127.624 20.2726C129.768 20.2726 131.585 20.9606 133.077 22.3365Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;div&gt;&lt;a href=&quot;https://latitude.so&quot;&gt;&lt;svg viewBox=&quot;0 0 478 112&quot; fill=&quot;none&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M159.336 87.88H120V23.64H133.992V76.264H159.336V87.88Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M183.011 88.936C176.851 88.936 171.689 86.6773 167.523 82.16C163.358 77.584 161.275 71.952 161.275 65.264C161.275 58.5173 163.358 52.8853 167.523 48.368C171.689 43.792 176.851 41.504 183.011 41.504C185.769 41.504 188.35 42.032 190.755 43.088C193.219 44.144 195.185 45.5813 196.651 47.4V42.56H210.379V87.88H196.651V83.04C195.185 84.8587 193.249 86.296 190.843 87.352C188.438 88.408 185.827 88.936 183.011 88.936ZM174.915 65.264C174.915 68.6667 175.971 71.512 178.083 73.8C180.195 76.088 182.806 77.232 185.915 77.232C189.083 77.232 191.723 76.088 193.835 73.8C195.947 71.512 197.003 68.6667 197.003 65.264C197.003 61.8027 195.947 58.9573 193.835 56.728C191.723 54.44 189.083 53.296 185.915 53.296C182.747 53.296 180.107 54.44 177.995 56.728C175.942 58.9573 174.915 61.8027 174.915 65.264Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M236.363 53.472V71.248C236.363 73.1253 236.862 74.592 237.859 75.648C238.915 76.6453 240.353 77.144 242.172 77.144C243.345 77.144 244.459 76.968 245.515 76.616C246.63 76.2053 247.657 75.6187 248.596 74.856V87C247.364 87.5867 245.926 88.056 244.284 88.408C242.7 88.76 241.086 88.936 239.443 88.936C234.281 88.936 230.174 87.4987 227.123 84.624C224.131 81.7493 222.635 77.7893 222.635 72.744V53.472H215.419V42.56H222.635V32.88L236.363 28.744V42.56H247.715V53.472H236.363Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M261.602 21.264H261.778C263.949 21.264 265.768 22.0267 267.234 23.552C268.76 25.0187 269.522 26.8373 269.522 29.008C269.522 31.12 268.76 32.9387 267.234 34.464C265.709 35.9307 263.89 36.664 261.778 36.664H261.602C259.432 36.664 257.584 35.9307 256.058 34.464C254.592 32.9973 253.858 31.1787 253.858 29.008C253.858 26.8373 254.592 25.0187 256.058 23.552C257.584 22.0267 259.432 21.264 261.602 21.264ZM254.826 87.88V42.56H268.554V87.88H254.826Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M294.44 53.472V71.248C294.44 73.1253 294.939 74.592 295.936 75.648C296.992 76.6453 298.429 77.144 300.248 77.144C301.421 77.144 302.536 76.968 303.592 76.616C304.707 76.2053 305.733 75.6187 306.672 74.856V87C305.44 87.5867 304.003 88.056 302.36 88.408C300.776 88.76 299.163 88.936 297.52 88.936C292.357 88.936 288.251 87.4987 285.2 84.624C282.208 81.7493 280.712 77.7893 280.712 72.744V53.472H273.496V42.56H280.712V32.88L294.44 28.744V42.56H305.792V53.472H294.44Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M334.551 76.792C336.78 76.792 338.57 76 339.919 74.416C341.327 72.832 342.031 70.808 342.031 68.344V42.56H355.847V87.88H342.031V83.48C340.682 85.1813 338.922 86.5307 336.751 87.528C334.58 88.4667 332.263 88.936 329.799 88.936C324.754 88.936 320.764 87.4107 317.831 84.36C314.898 81.2507 313.431 77.1147 313.431 71.952V42.56H327.247V68.344C327.247 70.8667 327.892 72.92 329.183 74.504C330.532 76.0293 332.322 76.792 334.551 76.792Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M361.778 65.264C361.778 58.5173 363.861 52.8853 368.026 48.368C372.191 43.792 377.354 41.504 383.514 41.504C386.33 41.504 388.941 42.0613 391.346 43.176C393.81 44.232 395.746 45.64 397.154 47.4V21H410.882V87.88H397.154V83.04C395.805 84.8 393.898 86.2373 391.434 87.352C388.97 88.408 386.33 88.936 383.514 88.936C377.354 88.936 372.191 86.6773 368.026 82.16C363.861 77.584 361.778 71.952 361.778 65.264ZM397.506 65.264C397.506 61.8027 396.45 58.9573 394.338 56.728C392.226 54.44 389.586 53.296 386.418 53.296C383.309 53.296 380.698 54.44 378.586 56.728C376.474 59.016 375.418 61.8613 375.418 65.264C375.418 68.6667 376.474 71.512 378.586 73.8C380.698 76.088 383.309 77.232 386.418 77.232C389.586 77.232 392.226 76.088 394.338 73.8C396.45 71.512 397.506 68.6667 397.506 65.264Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M442.146 88.936C434.93 88.936 428.917 86.7067 424.106 82.248C419.295 77.7893 416.89 72.1573 416.89 65.352C416.89 58.7227 419.178 53.0907 423.754 48.456C428.33 43.8213 433.786 41.504 440.122 41.504C447.455 41.504 453.029 44.0267 456.842 49.072C460.714 54.0587 462.327 60.6587 461.682 68.872H429.738C430.442 71.688 432.026 73.8587 434.49 75.384C437.013 76.9093 440.151 77.672 443.906 77.672C446.429 77.672 448.981 77.2907 451.562 76.528C454.143 75.7067 456.373 74.6213 458.25 73.272V84.976C456.197 86.2667 453.762 87.2347 450.946 87.88C448.13 88.584 445.197 88.936 442.146 88.936ZM439.946 52.416C437.599 52.416 435.546 53.12 433.786 54.528C432.085 55.8773 430.853 57.7547 430.09 60.16H449.01C448.717 57.9307 447.749 56.0827 446.106 54.616C444.463 53.1493 442.41 52.416 439.946 52.416Z&quot;&gt;&lt;/path&gt;&lt;path fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; d=&quot;M16.0002 53.9327C15.9994 53.9533 16.0011 53.9746 16.0002 53.9951L25.121 53.9951C26.1398 37.8812 39.6061 25.1116 56.0002 25.1116C72.3744 25.1116 85.8005 37.8781 86.8479 53.9951L96 53.9951C94.9598 32.8199 77.4609 15.9999 56.0006 15.9999C34.5612 15.9999 17.0719 32.7858 16.0013 53.9321L16.0002 53.9327Z&quot; fill=&quot;#0080FF&quot;&gt;&lt;/path&gt;&lt;path fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; d=&quot;M16 57.9732C17.0254 79.1989 34.5275 96 55.9994 96C77.4724 96 94.9744 79.1991 95.9987 57.9732L16 57.9732Z&quot;&gt;&lt;/path&gt;&lt;path fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; d=&quot;M29.1359 53.9941L40.0306 53.9941C41.0182 46.0705 47.8155 39.94 55.9996 39.94C64.164 39.94 70.9145 46.0976 71.9373 53.9941L82.8632 53.9941C81.8337 40.0295 70.2241 29.0898 55.9992 29.0898C41.7638 29.0898 30.1512 40.0524 29.1353 53.9941L29.1359 53.9941Z&quot; fill=&quot;#E63948&quot;&gt;&lt;/path&gt;&lt;path fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; d=&quot;M44.0777 53.9941L67.8897 53.9941C66.9136 48.2634 61.9955 43.8891 55.9984 43.8891C49.9818 43.8891 45.0314 48.2576 44.0767 53.9941L44.0777 53.9941Z&quot; fill=&quot;#FEC61A&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://coderabbit.link/knip&quot;&gt;&lt;svg viewBox=&quot;0 0 160 30&quot; fill=&quot;none&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M40.1223 10.7403C40.7422 9.59163 41.6067 8.69325 42.7154 8.05157C43.8242 7.40986 45.0835 7.08901 46.4867 7.08901C48.2093 7.08901 49.6812 7.55747 50.9092 8.48791C52.1369 9.41838 52.9512 10.6889 53.3646 12.2996H49.4808C49.1927 11.6771 48.7793 11.2087 48.2531 10.8814C47.7208 10.5542 47.1194 10.3938 46.4426 10.3938C45.3527 10.3938 44.4757 10.7788 43.7992 11.5552C43.1227 12.3317 42.7845 13.3712 42.7845 14.6675C42.7845 15.9637 43.1227 17.0032 43.7992 17.7797C44.4757 18.5561 45.3527 18.9412 46.4426 18.9412C47.1194 18.9412 47.7208 18.7807 48.2531 18.4535C48.7854 18.1262 49.1927 17.6578 49.4808 17.0353H53.3646C52.9512 18.646 52.1305 19.9101 50.9092 20.8342C49.6812 21.7582 48.2093 22.2202 46.4867 22.2202C45.0835 22.2202 43.8242 21.8994 42.7154 21.2577C41.6067 20.616 40.7422 19.724 40.1223 18.5818C39.502 17.4396 39.1951 16.1369 39.1951 14.6675C39.1951 13.198 39.502 11.8889 40.1223 10.7403Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M57.3236 21.5468C56.4217 21.0527 55.7138 20.3468 55.1937 19.4292C54.6802 18.5115 54.4171 17.4399 54.4171 16.2143C54.4171 14.9886 54.6802 13.9298 55.2001 13.0058C55.7263 12.0817 56.4402 11.3758 57.3488 10.8817C58.2571 10.3876 59.2779 10.1438 60.4055 10.1438C61.5331 10.1438 62.5543 10.3876 63.4626 10.8817C64.3709 11.3758 65.0851 12.0817 65.611 13.0058C66.1372 13.9298 66.3943 15.0015 66.3943 16.2143C66.3943 17.4271 66.1312 18.4987 65.5985 19.4227C65.0662 20.3468 64.3459 21.0527 63.4312 21.5468C62.5166 22.0409 61.4954 22.2847 60.3617 22.2847C59.228 22.2847 58.2194 22.0409 57.3175 21.5468H57.3236ZM62.0968 18.396C62.5731 17.8891 62.811 17.164 62.811 16.2143C62.811 15.2645 62.5792 14.5458 62.122 14.0325C61.6585 13.5256 61.0945 13.2689 60.418 13.2689C59.7415 13.2689 59.159 13.5191 58.7018 14.0197C58.2443 14.5202 58.0189 15.2517 58.0189 16.2078C58.0189 17.164 58.2443 17.8827 58.6893 18.3896C59.134 18.8966 59.6977 19.1532 60.3742 19.1532C61.0507 19.1532 61.6271 18.8966 62.0968 18.3896V18.396Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M67.8346 12.9929C68.2793 12.0753 68.8932 11.3695 69.6637 10.8753C70.4342 10.3812 71.2922 10.1374 72.2446 10.1374C73.0024 10.1374 73.6916 10.2978 74.318 10.6251C74.9443 10.9523 75.4392 11.3887 75.7963 11.9341V6.45403H79.3294V22.1114H75.7963V20.4174C75.4644 20.9821 74.9945 21.4312 74.3806 21.7714C73.7668 22.1114 73.0526 22.2783 72.2446 22.2783C71.2922 22.2783 70.4342 22.028 69.6637 21.5275C68.8932 21.027 68.2857 20.3147 67.8346 19.3907C67.3899 18.4666 67.1642 17.4014 67.1642 16.1822C67.1642 14.9629 67.3899 13.9041 67.8346 12.9865V12.9929ZM75.0635 14.071C74.5747 13.5512 73.9797 13.2881 73.2783 13.2881C72.5765 13.2881 71.9815 13.5448 71.4927 14.0581C71.0042 14.5715 70.7599 15.2838 70.7599 16.1822C70.7599 17.0805 71.0042 17.7993 71.4927 18.3318C71.9815 18.858 72.5765 19.1275 73.2783 19.1275C73.9797 19.1275 74.5747 18.8645 75.0635 18.3447C75.552 17.8249 75.7963 17.1126 75.7963 16.2078C75.7963 15.303 75.552 14.5908 75.0635 14.071Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M92.2843 17.0802H84.291C84.3475 17.8118 84.5793 18.3765 84.9802 18.7615C85.3872 19.1465 85.8885 19.3454 86.4774 19.3454C87.3605 19.3454 87.9743 18.9668 88.3189 18.2032H92.0774C91.8834 18.9797 91.5387 19.6791 91.0314 20.2952C90.5304 20.9176 89.8977 21.4053 89.1396 21.7582C88.3816 22.1112 87.536 22.2844 86.5964 22.2844C85.4688 22.2844 84.4601 22.0406 83.5831 21.5465C82.7001 21.0523 82.0108 20.3465 81.5159 19.4289C81.0213 18.5112 80.7707 17.4396 80.7707 16.214C80.7707 14.9883 81.0149 13.9167 81.5034 12.999C81.9923 12.0814 82.6748 11.3756 83.5582 10.8815C84.4415 10.3874 85.4499 10.1435 86.5964 10.1435C87.7425 10.1435 88.701 10.3809 89.5719 10.8622C90.4364 11.3435 91.119 12.0237 91.6078 12.9156C92.0963 13.8012 92.3405 14.8407 92.3405 16.0279C92.3405 16.368 92.3217 16.7209 92.2779 17.0867L92.2843 17.0802ZM88.7323 15.0718C88.7323 14.4493 88.5258 13.9552 88.1121 13.5894C87.6987 13.2236 87.1853 13.0376 86.565 13.0376C85.9448 13.0376 85.4752 13.2108 85.0679 13.5638C84.6606 13.9167 84.4102 14.4172 84.3162 15.0653H88.7387L88.7323 15.0718Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M101.392 22.1177L98.3791 16.5092H97.5335V22.1177H94.0004V7.2624H99.9265C101.073 7.2624 102.044 7.46775 102.852 7.87841C103.66 8.2891 104.261 8.84739 104.662 9.55965C105.063 10.2719 105.264 11.0676 105.264 11.9403C105.264 12.9286 104.994 13.8077 104.449 14.5842C103.904 15.3606 103.102 15.9125 102.044 16.2333L105.389 22.1177H101.398H101.392ZM97.5274 13.9489H99.7197C100.365 13.9489 100.854 13.7885 101.173 13.4612C101.499 13.1339 101.662 12.6783 101.662 12.088C101.662 11.4976 101.499 11.0805 101.173 10.7532C100.847 10.426 100.365 10.2655 99.7197 10.2655H97.5274V13.9489Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M107.024 12.9927C107.468 12.075 108.082 11.3692 108.853 10.8751C109.623 10.381 110.488 10.2077 111.433 10.2077H118.518V22.1112H114.985V20.4428C114.641 20.9946 114.165 21.4374 113.551 21.7775C112.937 22.1176 112.223 22.2844 111.415 22.2844C110.475 22.2844 109.623 22.0342 108.853 21.5337C108.082 21.0331 107.474 20.3209 107.024 19.3968C106.579 18.4727 106.353 17.4075 106.353 16.1883C106.353 14.9691 106.579 13.9103 107.024 12.9927ZM114.253 14.0707C113.764 13.5509 113.169 13.2879 112.467 13.2879C111.766 13.2879 111.171 13.5445 110.682 14.0579C110.193 14.5712 109.949 15.2835 109.949 16.1819C109.949 17.0803 110.193 17.799 110.682 18.3316C111.171 18.8578 111.766 19.1273 112.467 19.1273C113.169 19.1273 113.764 18.8642 114.253 18.3444C114.741 17.8246 114.985 17.1124 114.985 16.2076C114.985 15.3028 114.741 14.5905 114.253 14.0707Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M125.628 10.6443C126.249 10.3042 126.956 10.1374 127.758 10.1374C128.71 10.1374 129.569 10.3812 130.339 10.8753C131.11 11.3695 131.717 12.0753 132.168 12.9929C132.613 13.9106 132.838 14.9758 132.838 16.1886C132.838 17.4014 132.613 18.473 132.168 19.3971C131.724 20.3211 131.11 21.0334 130.339 21.5339C129.569 22.0344 128.71 22.2847 127.758 22.2847C126.944 22.2847 126.236 22.1179 125.628 21.7906C125.021 21.4569 124.545 21.0206 124.2 20.4687V22.1179H120.667V6.45403H124.2V11.979C124.532 11.4272 125.008 10.9844 125.628 10.6443ZM128.51 14.0646C128.021 13.5512 127.42 13.2945 126.7 13.2945C125.979 13.2945 125.403 13.5576 124.914 14.0774C124.426 14.5972 124.181 15.3095 124.181 16.2143C124.181 17.1191 124.426 17.8313 124.914 18.3511C125.403 18.8709 125.998 19.134 126.7 19.134C127.401 19.134 128.002 18.8709 128.497 18.3383C128.992 17.8121 129.243 17.0934 129.243 16.1886C129.243 15.2838 128.999 14.5779 128.51 14.0646Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M139.241 10.6443C139.861 10.3042 140.569 10.1373 141.37 10.1373C142.323 10.1373 143.181 10.3812 143.951 10.8753C144.722 11.3694 145.33 12.0753 145.78 12.9929C146.225 13.9105 146.451 14.9758 146.451 16.1886C146.451 17.4014 146.225 18.473 145.78 19.397C145.336 20.3211 144.722 21.0334 143.951 21.5339C143.181 22.0344 142.323 22.2847 141.37 22.2847C140.556 22.2847 139.848 22.1179 139.241 21.7906C138.633 21.4569 138.157 21.0206 137.812 20.4687V22.1179H134.28V6.45403H137.812V11.979C138.145 11.4272 138.621 10.9844 139.241 10.6443ZM142.122 14.0646C141.634 13.5512 141.032 13.2945 140.312 13.2945C139.592 13.2945 139.015 13.5576 138.527 14.0774C138.038 14.5971 137.794 15.3094 137.794 16.2142C137.794 17.119 138.038 17.8313 138.527 18.3511C139.015 18.8708 139.61 19.134 140.312 19.134C141.014 19.134 141.615 18.8708 142.11 18.3383C142.604 17.8121 142.855 17.0933 142.855 16.1886C142.855 15.2838 142.611 14.5779 142.122 14.0646Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M148.155 8.5201C147.76 8.14792 147.566 7.68588 147.566 7.13403C147.566 6.58216 147.76 6.10089 148.155 5.72871C148.549 5.35653 149.05 5.17045 149.67 5.17045C150.291 5.17045 150.773 5.35653 151.168 5.72871C151.562 6.10089 151.756 6.56932 151.756 7.13403C151.756 7.69872 151.562 8.14792 151.168 8.5201C150.773 8.89227 150.278 9.07836 149.67 9.07836C149.063 9.07836 148.543 8.89227 148.155 8.5201ZM151.431 10.3104V22.1177H147.898V10.304H151.431V10.3104Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M160 19.044V22.1113H158.202C156.925 22.1113 155.922 21.7905 155.208 21.1488C154.494 20.5071 154.137 19.4611 154.137 18.0044V13.3072H152.734V10.3041H154.137V7.42929H157.67V10.3041H159.982V13.3072H157.67V18.0494C157.67 18.4023 157.751 18.659 157.92 18.813C158.083 18.967 158.359 19.044 158.747 19.044H160.006H160Z&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;#FF570A&quot; d=&quot;M14.3047 0.529802C22.2049 0.529808 28.6094 6.93426 28.6094 14.8345C28.6093 22.7347 22.2049 29.1392 14.3047 29.1392C6.40445 29.1392 2.76064e-05 22.7347 0 14.8345C0 6.93425 6.40443 0.529802 14.3047 0.529802ZM11.7002 4.38136C12.3199 8.95173 14.8788 7.76131 16.3857 10.9116C16.3857 10.9116 13.8429 7.36442 9.66211 8.67043C9.67971 8.70805 11.2122 11.9567 15.6934 12.6236C15.6934 12.6236 16.0541 13.8935 16.1631 14.1177C16.1182 14.0938 9.21513 10.4262 7.11426 17.5327C5.54571 17.1682 5.01956 18.9152 6.82227 20.1089C6.82818 20.085 7.13625 18.8552 7.87598 18.4878C7.87598 18.4878 6.27317 20.3228 8.1582 22.52H14.9238C15.0873 22.2422 15.8107 20.7801 14.0215 19.6734C15.2846 19.655 16.3128 22.0996 17.4189 22.5366H19.0273C19.0818 22.4009 19.1959 21.9942 18.9287 21.6284C18.5166 21.1438 17.6153 21.2093 17.623 20.313C17.9346 16.1407 24.0307 17.4213 23.8369 12.3999L23.748 12.2886C23.338 11.7931 21.5641 9.80541 19.4043 9.67629C17.812 9.57985 17.425 9.79783 17.3555 9.96047C17.2564 9.11613 16.5531 5.20946 11.7002 4.38136Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://datadoghq.com&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 800.5 203.19&quot;&gt;&lt;g&gt;&lt;g&gt;&lt;path d=&quot;M260.87,144.65h-37.4v-86.1h37.4c26.94,0,40.43,13.57,40.43,40.7C301.29,129.51,287.81,144.65,260.87,144.65z
            M239.45,130.79h19c17.9,0,26.84-10.51,26.84-31.55c0-17.91-8.95-26.87-26.84-26.87h-19L239.45,130.79L239.45,130.79z&quot;&gt;&lt;/path&gt;&lt;polygon points=&quot;318.04,144.65 301.62,144.65 338.25,58.55 355.44,58.55 392.85,144.65 375.66,144.65 364.8,121.17
            337.17,121.17 342.66,107.32 360.58,107.32 346.46,74.98&quot;&gt;&lt;/polygon&gt;&lt;polygon points=&quot;383.82,58.55 449.28,58.55 449.28,72.39 424.55,72.39 424.55,144.65 408.57,144.65 408.57,72.39
            383.82,72.39&quot;&gt;&lt;/polygon&gt;&lt;polygon points=&quot;457.5,144.65 441.08,144.65 477.71,58.55 494.9,58.55 532.31,144.65 515.1,144.65 504.24,121.17
            476.61,121.17 482.1,107.32 500.02,107.32 485.91,74.98&quot;&gt;&lt;/polygon&gt;&lt;path d=&quot;M580.32,144.65h-37.4v-86.1h37.4c26.96,0,40.43,13.57,40.43,40.7C620.75,129.51,607.28,144.65,580.32,144.65z
            M558.91,130.79h19c17.89,0,26.86-10.51,26.86-31.55c0-17.91-8.96-26.87-26.86-26.87h-19V130.79z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M631.58,101.72c0-29.2,14.45-43.79,43.33-43.79c28.44,0,42.64,14.59,42.64,43.79
            c0,29.03-14.21,43.55-42.64,43.55C647.31,145.27,632.87,130.75,631.58,101.72z M674.91,131.39c17.36,0,26.05-10.01,26.05-30.05
            c0-19.72-8.69-29.59-26.05-29.59c-17.82,0-26.73,9.87-26.73,29.59C648.18,121.38,657.09,131.39,674.91,131.39z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M784.26,109.81v20.16c-3.69,0.96-6.99,1.44-9.9,1.44c-19.55,0-29.31-10.34-29.31-31.01
            c0-19.09,10.36-28.62,31.07-28.62c8.65,0,16.69,1.61,24.13,4.82V62.14c-7.44-2.8-15.89-4.21-25.34-4.21
            c-30.97,0-46.46,14.15-46.46,42.47c0,29.9,15.22,44.87,45.67,44.87c10.47,0,19.17-1.52,26.13-4.58V95.64h-25.82l-5.4,14.16
            L784.26,109.81L784.26,109.81z&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g&gt;&lt;path d=&quot;M167.2,98.4l-54.9,10c-1.4,1.8-4.7,4.8-6.3,5.6c-6.9,3.5-11.6,2.5-15.7,1.4c-2.6-0.7-4.1-1-6.3-2l-13.4,1.8
            l8.1,67.9l94.1-17L167.2,98.4z M83.4,176.7l-0.8-7.4L98,145.9l17.4,5.1l15-25.1l18,11.9l13.7-28.7l4.9,52.2L83.4,176.7z M79.5,110
            c-6.8-4.4-13.8-10.6-16.9-14.1c-0.5-0.4-0.4-2.1-0.4-2.1c2.8,2.2,14.3,10.4,26.4,14.1c4.3,1.3,10.9,1.8,16.6-1.4
            c4.4-2.5,9.6-6.8,12.7-11.2l0.6,1c0,0.7-1.5,3.9-2.2,5.2c1.3,0.8,2.3,1,3.8,1.4l10.1-1.6c3.6-5.8,6.2-15.2,3.4-24.2
            c-1.6-5.1-9.8-15.4-10.4-15.9c-2.1-2,0.3-9.6-3.7-18c-4.3-8.8-15.6-18-20.5-22.1c1.4,1,10.3,4.6,14.4,9.6c0.4-0.5,0.6-3.2,0.9-3.9
            c-3.6-4.6-3.8-12.9-3.8-15.1c0-4.1-2.1-8.7-2.1-8.7s3.6,2.8,4.5,7.7c1.1,5.7,3.4,10.3,6.5,14.1c5.8,7.2,11,10.9,13.7,8.2
            c3.2-3.2-3.2-17.5-11.3-25.5c-9.5-9.3-12-8.1-17.5-6.1c-4.4,1.5-6.8,14.2-18.4,13.9c-2-0.2-7-0.4-9.5-0.3c1.3-1.8,2.4-3.2,2.4-3.2
            s-3.9,1.6-7.2,3.6l-0.3-0.4c1.1-2.4,2.3-3.8,2.3-3.8s-3.1,1.9-5.9,4.1c0.5-2.8,2.5-4.6,2.5-4.6s-3.9,0.7-8.9,6.2
            c-5.7,1.5-7,2.6-11.6,4.6c-7.4-1.6-10.8-4.2-14.1-9c-2.5-3.6-7-4.2-11.6-2.3c-6.7,2.8-15.1,6.5-15.1,6.5s2.8-0.1,5.6,0
            c-3.9,1.5-7.7,3.5-7.7,3.5s1.8-0.1,4.1,0c-1.6,1.3-2.4,1.9-3.9,2.9c-3.6,2.6-6.5,5.6-6.5,5.6s2.4-1.1,4.6-1.7
            c-1.5,3.5-4.6,6.1-4,10.4c0.5,3.9,5.3,12,11.6,17c0.5,0.4,9,8.3,15.4,5.1c6.4-3.2,8.9-6.1,10-10.5c1.2-5.1,0.5-8.9-2.1-19.9
            c-0.9-3.6-3.1-11.1-4.2-14.6l0.2-0.2c2.1,4.4,7.4,16.1,9.6,23.9c3.4,12.2,2.3,18.4,0.8,20.7c-4.7,6.8-16.6,7.8-22,4
            c-0.8,13.1,2.1,18.9,3.1,21.8c-0.5,3.3,1.7,9.6,1.7,9.6s0.2-2.8,1.2-4.3c0.3,3.3,1.9,7.3,1.9,7.3s-0.1-2.4,0.7-4.5
            c1.1,1.8,1.9,2.2,2.9,3.6c1,3.6,3,6.2,3,6.2s-0.3-1.9-0.2-3.9c5,4.8,5.8,11.8,6.3,17.1c1.4,14.7-23.2,26.4-28,35.6
            c-3.6,5.4-5.8,14.1,0.3,19.2c14.8,12.3,9.1,15.7,16.5,21.1c10.2,7.4,22.9,4.1,27.2-1.9c6-8.4,4.5-16.3,2.2-23.7
            c-1.8-5.8-6.5-15.4-12.4-19.1c-6-3.8-11.9-4.5-16.8-4l0.5-0.5c7.1-1.4,14.6-0.6,20,2.8c6.1,3.9,11.7,10.7,14.6,21
            c3.3-0.5,3.8-0.7,6.8-1.1L65,111.6L79.5,110z M113.8,43.3c6.3,2.9,5.5,8.5,5.6,11.8c0.1,0.9,0,1.6-0.1,2c-0.9-0.5-2.2-0.8-4.4-0.7
            c-0.6,0-1.3,0.1-1.9,0.2c-2.3-1.2-3.7-3.7-5-6.3c-0.1-0.2-0.2-0.5-0.3-0.7c0-0.1-0.1-0.2-0.1-0.3c0,0,0-0.1,0-0.1
            c-0.7-2.2-0.2-2.7,0.1-3.3s1.4-1.3-0.2-1.8c-0.1,0-0.3-0.1-0.5-0.1C108.1,42.6,111.4,42.2,113.8,43.3z M106,79.9
            c1.2-0.9,6.8-2.7,12-3.4c2.7-0.3,6.6-0.5,7.4,0c1.6,0.9,1.6,3.7,0.5,6.3c-1.6,3.8-3.9,7.9-6.6,8.2c-4.3,0.6-8.3-1.7-12.9-5.2
            C104.8,84.6,103.8,81.6,106,79.9z M65.6,51.4c6.8-4.6,15.5-2.8,14-1.4c-2.8,2.7,0.9,1.9,1.3,6.8c0.3,3.6-0.9,5.6-1.9,6.7
            c-2.1,0.3-4.7,0.8-7.8,1.8c-1.8,0.6-3.4,1.2-4.8,1.9c-0.4-0.2-0.8-0.5-1.2-0.9C60.5,62.1,60.7,54.8,65.6,51.4z&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g&gt;&lt;g&gt;&lt;path d=&quot;M158.87,144.16L142,133.04l-14.07,23.5l-16.36-4.78l-14.41,21.99l0.74,6.92l78.33-14.43l-4.55-48.94
              L158.87,144.16z M85.82,123.07l12.57-1.73c2.03,0.91,3.45,1.26,5.89,1.88c3.8,0.99,8.19,1.94,14.7-1.34
              c1.51-0.75,4.67-3.64,5.94-5.28l51.49-9.34l5.25,63.57l-88.21,15.9L85.82,123.07z M181.46,100.16l-5.08,0.97L166.62,0.25
              L0.25,19.54l20.5,166.33l19.47-2.83c-1.55-2.22-3.98-4.91-8.11-8.35c-5.74-4.76-3.71-12.86-0.32-17.97
              c4.47-8.63,27.54-19.61,26.23-33.41c-0.47-5.02-1.27-11.55-5.93-16.03c-0.17,1.86,0.14,3.65,0.14,3.65s-1.91-2.44-2.87-5.77
              c-0.95-1.28-1.69-1.68-2.7-3.39c-0.72,1.97-0.62,4.26-0.62,4.26s-1.56-3.7-1.82-6.82c-0.93,1.4-1.16,4.05-1.16,4.05
              s-2.03-5.83-1.57-8.97c-0.93-2.73-3.68-8.15-2.9-20.47c5.08,3.56,16.26,2.71,20.61-3.71c1.45-2.13,2.44-7.93-0.72-19.36
              c-2.03-7.33-7.05-18.25-9.01-22.4l-0.23,0.17c1.03,3.34,3.16,10.33,3.98,13.73c2.47,10.29,3.13,13.87,1.97,18.61
              c-0.99,4.12-3.35,6.82-9.35,9.84c-6,3.03-13.96-4.34-14.47-4.74c-5.83-4.64-10.34-12.22-10.84-15.9
              c-0.52-4.03,2.32-6.45,3.76-9.74c-2.05,0.59-4.34,1.63-4.34,1.63s2.73-2.83,6.1-5.27c1.4-0.92,2.21-1.51,3.68-2.73
              c-2.13-0.03-3.86,0.02-3.86,0.02s3.55-1.92,7.23-3.31c-2.69-0.12-5.27-0.02-5.27-0.02S35.75,27.1,42,24.5
              c4.3-1.76,8.5-1.24,10.86,2.17c3.1,4.47,6.35,6.9,13.25,8.41c4.24-1.88,5.52-2.84,10.84-4.29c4.68-5.15,8.36-5.82,8.36-5.82
              s-1.82,1.67-2.31,4.3c2.66-2.09,5.57-3.84,5.57-3.84s-1.13,1.39-2.18,3.6l0.24,0.36c3.1-1.86,6.74-3.32,6.74-3.32
              s-1.04,1.32-2.26,3.02c2.34-0.02,7.08,0.1,8.91,0.31c10.86,0.24,13.11-11.6,17.28-13.08c5.22-1.86,7.55-2.99,16.44,5.74
              c7.63,7.5,13.59,20.91,10.63,23.92c-2.48,2.49-7.38-0.97-12.8-7.74c-2.87-3.58-5.03-7.81-6.05-13.19
              c-0.86-4.54-4.19-7.17-4.19-7.17s1.93,4.31,1.93,8.11c0,2.08,0.26,9.84,3.59,14.19c-0.33,0.64-0.48,3.15-0.85,3.63
              c-3.87-4.68-12.19-8.03-13.54-9.02c4.59,3.76,15.14,12.4,19.19,20.68c3.83,7.83,1.57,15.01,3.51,16.87
              c0.55,0.53,8.24,10.11,9.72,14.93c2.58,8.39,0.15,17.21-3.22,22.68l-9.43,1.47c-1.38-0.38-2.31-0.58-3.55-1.29
              c0.68-1.21,2.04-4.22,2.05-4.84l-0.53-0.93c-2.94,4.16-7.85,8.2-11.94,10.52c-5.35,3.03-11.51,2.56-15.52,1.32
              c-11.39-3.51-22.16-11.21-24.75-13.23c0,0-0.08,1.61,0.41,1.98c2.87,3.24,9.45,9.1,15.81,13.18l-13.55,1.49l6.41,49.89
              c-2.84,0.41-3.28,0.61-6.39,1.05c-2.74-9.68-7.98-16.01-13.71-19.69c-5.05-3.25-12.02-3.98-18.7-2.66l-0.43,0.5
              c4.64-0.48,10.12,0.19,15.74,3.75c5.52,3.49,9.97,12.51,11.61,17.94c2.1,6.94,3.55,14.36-2.1,22.23
              c-4.02,5.59-15.74,8.68-25.22,2c2.53,4.07,5.95,7.4,10.55,8.02c6.84,0.93,13.33-0.26,17.79-4.84c3.81-3.92,5.84-12.12,5.3-20.75
              l6.03-0.87l2.18,15.49l99.88-12.03L181.46,100.16z M120.69,58.08c-0.28,0.64-0.72,1.05-0.06,3.12l0.04,0.12l0.1,0.27l0.27,0.62
              c1.19,2.42,2.49,4.71,4.66,5.88c0.56-0.09,1.15-0.16,1.75-0.19c2.04-0.09,3.33,0.23,4.15,0.68c0.07-0.41,0.09-1,0.04-1.88
              c-0.16-3.07,0.61-8.29-5.29-11.04c-2.23-1.03-5.35-0.72-6.39,0.58c0.19,0.02,0.36,0.06,0.49,0.11
              C122.04,56.89,120.98,57.43,120.69,58.08 M137.23,86.73c-0.77-0.43-4.39-0.26-6.93,0.04c-4.84,0.57-10.07,2.25-11.22,3.14
              c-2.08,1.61-1.14,4.42,0.4,5.57c4.32,3.22,8.1,5.39,12.09,4.86c2.45-0.32,4.61-4.2,6.14-7.73
              C138.77,90.19,138.77,87.58,137.23,86.73 M94.36,61.88c1.37-1.3-6.8-3-13.14,1.32c-4.67,3.19-4.82,10.03-0.35,13.9
              c0.45,0.38,0.82,0.66,1.16,0.88c1.31-0.62,2.8-1.24,4.51-1.79c2.9-0.94,5.3-1.43,7.28-1.68c0.95-1.06,2.05-2.92,1.77-6.29
              C95.22,63.63,91.75,64.36,94.36,61.88&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://workleap.com&quot;&gt;&lt;svg viewBox=&quot;0 5 156 30&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M42.4298 10.5439C36.7859 10.5439 32.8051 14.2893 32.8051 20.0761C32.8051 25.7624 36.5132 29.8466 42.4298 29.8466C48.1054 29.8466 52.0532 26.0007 52.0532 20.0761C52.0532 14.562 48.3163 10.5439 42.4298 10.5439ZM42.4298 25.4552C39.7765 25.4552 38.076 23.3434 38.076 20.0761C38.076 16.9451 39.7765 14.9353 42.4298 14.9353C45.0832 14.9353 46.7852 16.9451 46.7852 20.0761C46.7895 23.3434 45.089 25.4552 42.4341 25.4552H42.4298ZM85.9012 10.5439H79.4694L72.4994 17.9227V5.31261H67.2601V29.403H72.5037V23.9478L75.1801 21.3035L80.2586 29.3973H86.2858L78.8552 17.693L85.9012 10.5439ZM87.8787 29.403H93.1194V5.31261H87.8801L87.8787 29.403ZM128.972 13.8643C127.879 11.866 125.57 10.5439 122.787 10.5439C118.023 10.5439 114.619 14.4601 114.619 20.112C114.619 25.8643 118.023 29.8466 122.856 29.8466C125.271 29.8466 127.279 28.8604 128.435 27.2252V29.403H133.676V10.9874H129.407L128.972 13.8643ZM124.181 25.5226C121.662 25.5226 119.927 23.2745 119.921 20.0574C119.921 16.9106 121.658 14.6955 124.179 14.6955C126.7 14.6955 128.435 16.8762 128.435 19.9885C128.435 23.2386 126.696 25.5212 124.181 25.5226ZM146.831 10.5482C144.047 10.5482 141.74 11.8646 140.648 13.8658L140.217 10.9946H135.948V35.0735H141.187V27.2295C142.344 28.8632 144.361 29.8509 146.768 29.8509C151.601 29.8509 155.002 25.8672 155.002 20.1148C154.998 14.4644 151.597 10.5482 146.831 10.5482ZM145.432 25.5241C142.912 25.5241 141.176 23.276 141.176 20.0689C141.176 17.0068 142.911 14.8606 145.432 14.8606C147.953 14.8606 149.69 17.0398 149.69 20.1378C149.69 23.3104 147.953 25.5241 145.432 25.5241ZM104.173 10.5439C98.6988 10.5439 94.8543 14.5261 94.8543 20.2756C94.8543 25.9232 98.8351 29.8351 104.509 29.8466C108.486 29.8466 111.455 27.9459 112.736 24.5752L108.011 23.4841C107.501 24.7761 106.045 25.5226 104.38 25.5226C101.93 25.5226 100.389 23.8531 100.019 21.4025H113.052L113.094 20.913C113.164 20.1706 113.164 19.4231 113.094 18.6807C112.577 13.5743 108.943 10.5439 104.173 10.5439ZM100.22 18.2672C100.738 16.0608 102.325 14.6955 104.222 14.6955C106.223 14.6955 107.642 15.8885 107.916 18.2672H100.22ZM58.3745 14.5965L57.8277 10.9817H53.5585V29.403H58.7992V20.5182C58.7992 17.4188 60.9776 15.5813 64.6513 15.5813H65.4348V10.5439H64.9096C61.6205 10.5439 59.6229 11.8445 58.3745 14.5965ZM28.1097 10.9817L23.8046 24.077L19.7463 10.9874H14.6333L10.5622 27.1865L6.22119 10.9874H0.712115L7.34051 35.0778H13.0333L17.1949 18.7998L21.1268 29.8538H27.2085L33.6216 10.9946L28.1097 10.9817Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://sourcegraph.com/community&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 312.8 55.5&quot;&gt;&lt;path d=&quot;M34.8 53.8c-2.8.5-5.5-1.3-6-4.1L21.2 8.2c-.5-2.8 1.3-5.5 4.1-6s5.5 1.3 6 4.1l7.6 41.5c.5 2.8-1.4 5.5-4.1 6z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M14.9 46.7c-1.8.3-3.6-.3-4.9-1.7-1.8-2.2-1.6-5.4.6-7.2l32.1-27.3c2.2-1.8 5.4-1.6 7.2.6 1.8 2.2 1.6 5.4-.6 7.2l-32 27.3c-.7.6-1.6 1-2.4 1.1z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M50.8 40.1c-.9.2-1.8.1-2.6-.2L8.4 25.8c-2.7-1-4.1-3.9-3.1-6.6s3.9-4.1 6.6-3.1l39.7 14.1c2.7 1 4.1 3.9 3.1 6.6-.6 1.8-2.2 3-3.9 3.3z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M84 35.1c0-1-.4-1.8-1.1-2.4-.7-.6-1.6-1.2-2.7-1.7s-2.3-1-3.6-1.6c-1.3-.5-2.5-1.2-3.6-2s-2-1.8-2.7-3c-.7-1.2-1.1-2.7-1.1-4.5 0-1.6.3-3 .8-4.1.5-1.2 1.3-2.1 2.3-2.9 1-.8 2.1-1.3 3.5-1.7 1.3-.4 2.8-.6 4.5-.6 1.9 0 3.7.2 5.3.5s3.1.8 4.1 1.4l-2 5.3c-.7-.4-1.7-.8-3.1-1.1-1.4-.4-2.8-.5-4.4-.5-1.5 0-2.6.3-3.4.9-.8.6-1.2 1.4-1.2 2.4 0 .9.4 1.7 1.1 2.3.7.6 1.6 1.2 2.7 1.7s2.3 1.1 3.6 1.6c1.3.6 2.5 1.2 3.6 2s2 1.8 2.7 2.9c.7 1.2 1.1 2.6 1.1 4.3 0 1.7-.3 3.2-.9 4.5-.6 1.3-1.4 2.3-2.4 3.1-1 .8-2.3 1.5-3.8 1.9-1.5.4-3.1.6-4.9.6-2.3 0-4.4-.2-6.1-.7-1.8-.4-3.1-.9-3.9-1.3l2-5.4c.3.2.8.4 1.3.6.5.2 1.2.4 1.8.6.7.2 1.4.3 2.2.5.8.1 1.5.2 2.3.2 1.9 0 3.3-.3 4.3-1 1.2-.6 1.7-1.5 1.7-2.8zM93.1 32.2c0-3.9 1-7 2.9-9.1 1.9-2.1 4.6-3.2 8.1-3.2 1.9 0 3.5.3 4.8.9 1.4.6 2.5 1.4 3.4 2.5.9 1.1 1.6 2.4 2 3.9.4 1.5.7 3.2.7 5 0 3.9-1 7-2.9 9.1-1.9 2.1-4.6 3.2-8.1 3.2-1.9 0-3.5-.3-4.8-.9-1.4-.6-2.5-1.4-3.4-2.5-.9-1.1-1.6-2.4-2-3.9-.5-1.5-.7-3.2-.7-5zm6.2 0c0 1 .1 2 .3 2.8.2.9.5 1.6.8 2.3.4.7.9 1.2 1.5 1.5.6.4 1.3.5 2.2.5 1.6 0 2.8-.6 3.5-1.7.8-1.1 1.2-3 1.2-5.4 0-2.1-.4-3.9-1.1-5.2-.7-1.3-1.9-2-3.6-2-1.5 0-2.7.6-3.5 1.7-.9 1.1-1.3 2.9-1.3 5.5zM124.1 20.6v13.2c0 1.9.2 3.3.7 4.1.4.8 1.3 1.3 2.6 1.3 1.1 0 2.1-.3 2.9-1 .8-.7 1.3-1.5 1.7-2.5v-15h6v16.2c0 1.3.1 2.5.2 3.7.1 1.2.3 2.3.6 3.3h-4.6l-1.1-3.4h-.2c-.7 1.2-1.7 2.2-3 2.9-1.3.8-2.8 1.2-4.5 1.2-1.2 0-2.2-.2-3.2-.5-.9-.3-1.7-.8-2.3-1.5-.6-.7-1.1-1.7-1.4-2.9s-.5-2.8-.5-4.7V20.6h6.1zM155.5 26.2c-1-.3-1.8-.5-2.6-.5-1.1 0-2 .3-2.7.9-.7.6-1.2 1.3-1.5 2.2v15h-6V20.6h4.7l.7 3.1h.2c.5-1.1 1.2-2 2.1-2.7s2-.9 3.2-.9c.8 0 2.5.4 3.4.8l-1.5 5.3zM175.1 42.4c-.9.7-2.1 1.2-3.4 1.6-1.3.4-2.7.5-4.1.5-1.9 0-3.4-.3-4.7-.9-1.3-.6-2.3-1.4-3.1-2.5-.8-1.1-1.4-2.4-1.7-3.9-.4-1.5-.5-3.2-.5-5 0-3.9.9-7 2.7-9.1 1.8-2.1 4.3-3.2 7.7-3.2 1.7 0 3.1.1 4.1.4 1 .3 2 .6 2.8 1.1l-1.4 4.9c-.7-.3-1.4-.6-2.1-.8-.7-.2-1.5-.3-2.4-.3-1.7 0-2.9.6-3.8 1.7-.9 1.1-1.3 2.9-1.3 5.3 0 1 .1 1.9.3 2.7s.5 1.6 1 2.2c.4.6 1 1.1 1.7 1.5.7.4 1.5.5 2.4.5 1 0 1.9-.1 2.6-.4.7-.3 1.3-.6 1.9-1l1.3 4.7zM196.4 41.8c-.9.7-2.2 1.4-3.8 1.9-1.6.5-3.3.8-5.1.8-3.8 0-6.5-1.1-8.2-3.3-1.7-2.2-2.6-5.2-2.6-9 0-4.1 1-7.2 2.9-9.2s4.7-3.1 8.2-3.1c1.2 0 2.3.2 3.4.5s2.1.8 3 1.5 1.6 1.7 2.1 2.9.8 2.7.8 4.5c0 .7 0 1.3-.1 2.1-.1.7-.2 1.5-.3 2.3h-14c.1 2 .6 3.4 1.5 4.4.9 1 2.4 1.5 4.4 1.5 1.3 0 2.4-.2 3.4-.6 1-.4 1.8-.8 2.3-1.2l2.1 4zm-8.7-17.1c-1.6 0-2.8.5-3.5 1.4-.8.9-1.2 2.2-1.4 3.8h8.6c.1-1.7-.1-3-.8-3.9-.5-.8-1.5-1.3-2.9-1.3zM220.6 43.8c0 3.4-.9 5.9-2.7 7.5s-4.4 2.4-7.7 2.4c-2.2 0-4-.2-5.3-.5s-2.3-.6-2.9-1l1.3-4.8c.7.3 1.5.6 2.5.8s2.1.4 3.5.4c2.1 0 3.5-.5 4.3-1.4.8-.9 1.1-2.2 1.1-3.8V42h-.2c-1.1 1.5-3 2.2-5.8 2.2-3 0-5.2-.9-6.7-2.8s-2.2-4.8-2.2-8.7c0-4.2 1-7.3 3-9.4 2-2.1 4.9-3.2 8.6-3.2 2 0 3.8.1 5.3.4s2.8.6 3.8 1v22.3zm-10.2-4.5c1.2 0 2.1-.3 2.7-.8.6-.5 1.1-1.3 1.5-2.4V25.7c-1-.4-2.2-.6-3.6-.6-1.6 0-2.8.6-3.6 1.7-.9 1.2-1.3 3-1.3 5.6 0 2.3.4 4 1.1 5.2.7 1.2 1.8 1.7 3.2 1.7zM238.1 26.2c-1-.3-1.8-.5-2.6-.5-1.1 0-2 .3-2.7.9-.7.6-1.2 1.3-1.5 2.2v15h-6V20.6h4.7l.7 3.1h.2c.5-1.1 1.2-2 2.1-2.7s2-.9 3.2-.9c.8 0 1.7.2 2.7.5l-.8 5.6zM241 21.7c1.2-.6 2.1-.8 3.8-1.1 1.7-.3 3.5-.5 5.3-.5 1.6 0 3 .2 4 .6s1.9.9 2.6 1.7c.6.7 1.1 1.6 1.3 2.6.3 1 .4 2.1.4 3.3 0 1.4 0 2.7-.1 4.1-.1 1.4-.1 2.7-.2 4.1 0 1.3 0 2.6.1 3.9s.3 2.4.7 3.6H254l-1-3.2c-.6 1-1.5 1.8-2.6 2.5s-2.5 1-4.3 1c-1.1 0-2.1-.2-2.9-.5-.9-.3-1.6-.8-2.2-1.4s-1.1-1.3-1.4-2.1c-.3-.8-.5-1.7-.5-2.8 0-1.4.3-2.6 1-3.6s1.5-1.8 2.7-2.4c1.2-.6 2.6-1 4.3-1.3s3.5-.3 5.6-.2c.2-1.7.1-3-.4-3.7-.5-.8-1.5-1.1-3.1-1.1-1.2 0-2.5.1-3.8.4s-1.9.4-2.7.8l-1.7-4.7zm7.1 17.5c1.2 0 2.2-.3 2.9-.8.7-.5 1.2-1.1 1.6-1.7v-3c-1-.1-1.9-.1-2.8 0-.9.1-1.7.2-2.3.4s-1.2.5-1.6.9c-.4.4-.6.9-.6 1.5 0 .9.3 1.5.8 2 .4.5 1.1.7 2 .7zM263.1 20.6h4.4l.7 2.8h.2c.8-1.2 1.8-2 2.9-2.6 1.1-.6 2.4-.8 4-.8 2.9 0 5.1.9 6.6 2.8s2.2 4.8 2.2 8.9c0 2-.2 3.8-.7 5.4s-1.2 3-2.1 4.1c-.9 1.1-2 2-3.3 2.6-1.3.6-2.8.9-4.5.9-1 0-1.8-.1-2.4-.2-.6-.1-1.2-.4-1.9-.7v9.5h-6V20.6zm10.3 4.4c-1.2 0-2.1.3-2.8.9s-1.2 1.5-1.6 2.7v9.7c.4.3.9.6 1.4.8.5.2 1.2.3 2 .3 1.7 0 3-.6 3.9-1.8.9-1.2 1.3-3.2 1.3-6.1 0-2-.3-3.6-1-4.7-.6-1.2-1.7-1.8-3.2-1.8zM301.6 43.8V30.6c0-1.9-.3-3.3-.8-4.1s-1.5-1.3-2.9-1.3c-1 0-2 .3-2.8 1-.9.7-1.4 1.6-1.7 2.7v14.8h-6V11.3h6v11.9h.2c.7-1 1.7-1.8 2.7-2.4 1.1-.6 2.5-.9 4.1-.9 1.2 0 2.2.2 3.1.5.9.3 1.7.8 2.3 1.5s1.1 1.7 1.3 2.9.4 2.7.4 4.5v14.5h-5.9z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://birchill.co.jp&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 559.6 120.8&quot;&gt;&lt;path d=&quot;M104.8 55l-.4-.1c-.4-.2-.8-.7-.8-1.2V21.2a1.2 1.2 0 0 1 1.2-1.2c.3 0 .7.1 1 .4A60 60 0 0 1 117 38.9c.1.4 0 .9-.2 1.2l-11 14.3c-.3.4-.6.5-1 .5zM64.9 120.8a1.2 1.2 0 0 1-1.2-1.2c-.6-23.4-2.7-65-9.9-80.7v-.7a168 168 0 0 0 2.9-27.8V1.3c0-.7.5-1.2 1.1-1.2a49.4 49.4 0 0 1 13.3.8c.5.1 1 .6 1 1.2v27.6c0 26.8 2.7 61 7 87.2.1.6-.2 1.1-.8 1.3a60.2 60.2 0 0 1-13.3 2.5h-.1zM87.2 114.6c-.2 0-.4 0-.6-.2-.3-.1-.5-.5-.6-.8a558.1 558.1 0 0 1-5.5-51.7c2.6-18.2 8-29.7 13.6-39.4a1.2 1.2 0 0 1 1.3-.6c.5.2 1 .6 1 1.2v85.4c0 .4-.3.8-.6 1a60.7 60.7 0 0 1-8.6 5zM32.4 87.1c-.3 0-.7-.1-.9-.3a78 78 0 0 1-13.2-22.6V17.7a1.2 1.2 0 0 1 1.4-1.1c.5 0 .8.4.9.8l5.9 20c4.6 15.7 7 32 7 48.5 0 .5-.2 1-.7 1.2h-.4zM80.6 31.6h-.3c-.5-.1-1-.6-1-1.2V4.7A1.2 1.2 0 0 1 81 3.6C84.9 5 88.6 6.8 92.2 9c.5.3.7 1 .4 1.6l-1.3 2.2c-3 5.1-6.5 11-9.6 18.1-.2.5-.7.7-1.1.7zM104.8 101l-.4-.1c-.5-.2-.8-.7-.8-1.2v-30c0-.3.1-.6.3-.8L118 50.5a1.2 1.2 0 0 1 1.2-.5c.5.2.8.5.9 1a61.2 61.2 0 0 1-14.5 49.5c-.2.3-.5.4-.9.4zM9.7 92.3c-.4 0-.8-.2-1-.6a60.3 60.3 0 0 1 0-62.5 1.2 1.2 0 0 1 2.2.6v61.3c0 .6-.3 1-.8 1.2h-.4zM32.4 113.8l-.6-.1a60.8 60.8 0 0 1-13.2-9.6c-.2-.2-.4-.6-.4-.9V85a1.2 1.2 0 0 1 1.2-1.1c.4 0 .8.1 1 .5 4 5.9 8.2 10.3 12.6 13.2.4.2.6.6.6 1v14c0 .5-.3.9-.6 1-.2.2-.4.2-.6.2zM40 60.8c-.6 0-1-.5-1.1-1-1.3-8.3-3-16.5-5.4-24.5l-7-23.8c-.2-.5 0-1 .4-1.4a59.7 59.7 0 0 1 21.3-8.8c.2 0 .5 0 .7.3.3.2.5.5.5.9v8c0 13-3.3 32.8-8.2 49.4-.2.5-.6.9-1.2.9zM55 120.7a60 60 0 0 1-13.3-2.8c-.5-.1-.8-.6-.8-1.1v-30a187.1 187.1 0 0 0 0-5.6 123 123 0 0 0 8.3-22.8 1.2 1.2 0 0 1 2.3.1 518 518 0 0 1 4.9 61c0 .3-.2.6-.4.8-.2.3-.5.4-.8.4H55zM180.6 95A19.3 19.3 0 0 1 170 84a23.9 23.9 0 0 1 4.1-23.7c1.8-2 3.9-3.4 6.3-4.5 2.5-1.1 5.3-1.7 8.3-1.7a20 20 0 0 1 14.6 6.1c1.8 1.9 3.2 4.1 4.1 6.7 1 2.7 1.4 5.5 1.4 8.5s-.4 5.9-1.4 8.5a19.2 19.2 0 0 1-18.7 12.7c-3 0-5.6-.5-8.1-1.6m-24.8-81.3c-1.4 1.1-2 2.8-2 5.2v53.4c0 6.3.8 11.9 2.6 16.6a30.2 30.2 0 0 0 18.5 18.8 41 41 0 0 0 28.3-.3 32 32 0 0 0 18.5-18.1c1.7-4.3 2.5-9 2.5-13.9 0-5-.8-9.7-2.5-13.9a31.6 31.6 0 0 0-17.6-18.1 33.9 33.9 0 0 0-26.5.4c-3.8 2-6.8 4.3-9 7V13.5l-2.6-.8c-1.3-.4-2.7-.6-4.3-.6-2.5 0-4.5.6-5.9 1.7m83.9 30.6c-1.4 1-2.1 2.9-2.1 5.3v58.6h14.8V44.1l-2.6-.8a15 15 0 0 0-4.3-.6c-2.5 0-4.4.5-5.8 1.6m-1-28.4a8.7 8.7 0 0 0-2.7 6.4c0 2.5.9 4.7 2.6 6.4a8.7 8.7 0 0 0 6.4 2.6c2.5 0 4.7-.9 6.4-2.6a8.7 8.7 0 0 0 2.6-6.4c0-2.5-.8-4.7-2.6-6.4a8.7 8.7 0 0 0-6.4-2.6c-2.5 0-4.6.9-6.4 2.6m37.2 31.5c-5 4.4-7.4 10.6-7.4 18.6v42.2h14.9V70.3c0-10.7 5-16.1 15.2-16.1a27.6 27.6 0 0 1 13 2.8c.5-.3 1.2-1.2 2-2.6a8.3 8.3 0 0 0 1.2-4.3c0-3.1-1.7-5.5-5.1-7a33.4 33.4 0 0 0-13.4-2.3c-8.7 0-15.5 2.2-20.4 6.6m64.7-4.3a31 31 0 0 0-19 17.7 38 38 0 0 0-2.7 15c0 5.5 1 10.4 2.8 14.7a31.1 31.1 0 0 0 18.9 17.3 48.5 48.5 0 0 0 34-2.2c1.5-.7 2.8-1.4 3.8-2.1l-6.2-11.1c-1 .6-2.8 1.5-5.5 2.7a26.4 26.4 0 0 1-10.5 1.7c-3 0-5.9-.4-8.5-1.2A17.7 17.7 0 0 1 336 85.1c-1.1-2.7-1.7-6-1.7-9.8 0-3.7.6-6.8 1.6-9.5A17.7 17.7 0 0 1 347 55.2c2.6-.9 5.4-1.3 8.3-1.3a26.4 26.4 0 0 1 17.8 6.3c1-.8 2.1-2 3.3-3.4 1.2-1.5 1.8-3.1 1.8-4.9 0-1.3-.4-2.6-1.3-3.9a11 11 0 0 0-4-3.5c-1.9-1-4.3-2-7.3-2.6a49.4 49.4 0 0 0-25 1.2m48.3-29.4c-1.4 1.1-2.1 2.9-2.1 5.2v89.3h14.9V73.1a20 20 0 0 1 4.5-13.6c3-3.5 7.5-5.2 13.4-5.2 5.8 0 10 1.5 12.3 4.4 2.4 3 3.6 7.3 3.6 13v36.5h14.9V67.3c0-4.4-.7-8.3-2-11.6-1.3-3.3-3.2-6-5.6-8.3a24.2 24.2 0 0 0-8.7-5c-3.3-1.1-7-1.7-11-1.7-5.6 0-10 1-13.6 2.7-3.5 1.9-6 3.8-7.8 6v-36l-2.6-.8c-1.3-.4-2.8-.6-4.3-.6-2.6 0-4.5.6-6 1.7m79.5 30.6c-1.4 1-2.1 2.9-2.1 5.3v58.6H481V44.1l-2.7-.8a15 15 0 0 0-4.3-.6c-2.5 0-4.4.5-5.8 1.6m-1-28.4a8.7 8.7 0 0 0-2.7 6.4c0 2.5.9 4.7 2.6 6.4a8.7 8.7 0 0 0 6.4 2.6c2.5 0 4.7-.9 6.4-2.6a8.7 8.7 0 0 0 2.6-6.4c0-2.5-.9-4.7-2.6-6.4a8.7 8.7 0 0 0-6.4-2.6c-2.5 0-4.6.9-6.4 2.6m32.5-2.2c-1.4 1.1-2 2.9-2 5.2v89.3h14.8V13.4l-2.6-.8c-1.3-.4-2.7-.6-4.3-.6-2.5 0-4.5.6-5.9 1.7M544 38.4v-25l-2.6-.8c-1.3-.4-2.8-.6-4.3-.6-2.6 0-4.5.6-6 1.7-1.3 1.1-2 2.9-2 5.2v89.3H544V53l14.7-28.3L544 38.4z&quot;&gt;&lt;/path&gt;&lt;defs&gt;&lt;linearGradient id=&quot;grad1&quot; x1=&quot;-0.6&quot; x2=&quot;1&quot; y1=&quot;0&quot; y2=&quot;0&quot; gradientUnits=&quot;objectBoundingBox&quot;&gt;&lt;stop offset=&quot;0&quot; stop-color=&quot;#57595b&quot;&gt;&lt;/stop&gt;&lt;stop offset=&quot;1&quot; stop-color=&quot;#fff&quot; stop-opacity=&quot;0.5&quot;&gt;&lt;/stop&gt;&lt;/linearGradient&gt;&lt;/defs&gt;&lt;path fill=&quot;url(#grad1)&quot; role=&quot;presentation&quot; d=&quot;M177.7 43.8c-3.9 2-6.9 4.3-9 7v22a22.9 22.9 0 0 1 5.4-12.5c1.8-2 3.9-3.4 6.4-4.5a20.4 20.4 0 0 1 12.3-1.3V41h-2c-5 0-9.3 1-13.2 2.9&quot;&gt;&lt;/path&gt;&lt;path fill=&quot;url(#grad1)&quot; role=&quot;presentation&quot; d=&quot;M401.7 31.4v46V73a20 20 0 0 1 4.5-13.7c3-3.4 7.4-5.1 13.4-5.1 2.3 0 4.4.2 6.2.7V40.8H423c-5.6 0-10.1.8-13.6 2.6-3.5 1.9-6 3.8-7.8 6v-18z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://forge42.dev&quot;&gt;&lt;img src=&quot;https://knip.dev/sponsors/f42.png&quot; alt=&quot;Forge 42&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://ustark.de&quot;&gt;&lt;img src=&quot;https://knip.dev/sponsors/ulrichstark.png&quot; alt=&quot;Ulrich Stark&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://webdriver.io&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 64 64&quot;&gt;&lt;title&gt;WebdriverIO&lt;/title&gt;&lt;g id=&quot;Logo-Regular&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;&lt;rect id=&quot;Rectangle&quot; fill=&quot;#EA5906&quot; x=&quot;0&quot; y=&quot;0&quot; width=&quot;64&quot; height=&quot;64&quot; rx=&quot;5&quot;&gt;&lt;/rect&gt;&lt;path d=&quot;M8,16 L8,48 L6,48 L6,16 L8,16 Z M43,16 C51.836556,16 59,23.163444 59,32 C59,40.836556 51.836556,48 43,48 C34.163444,48 27,40.836556 27,32 C27,23.163444 34.163444,16 43,16 Z M27,16 L14.106,47.9992078 L11.999,47.9992078 L24.894,16 L27,16 Z M43,18 C35.2680135,18 29,24.2680135 29,32 C29,39.7319865 35.2680135,46 43,46 C50.7319865,46 57,39.7319865 57,32 C57,24.2680135 50.7319865,18 43,18 Z&quot; id=&quot;Combined-Shape&quot; fill=&quot;#FFFFFF&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://understandlegacycode.com&quot;&gt;&lt;img src=&quot;https://knip.dev/sponsors/nicoespeon.png&quot; alt=&quot;Nicolas Carlo&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://philippeserhal.com&quot;&gt;&lt;img src=&quot;https://knip.dev/sponsors/serhalp.jpg&quot; alt=&quot;Philippe Serhal&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/mintuhouse&quot;&gt;&lt;img src=&quot;https://knip.dev/sponsors/hasankumar.jpg&quot; alt=&quot;Hasan Kumar&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.comet.com&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; viewBox=&quot;10 0 140 59&quot;&gt;&lt;defs&gt;&lt;image xlink:href=&quot;data:image/png;base64,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&quot; id=&quot;comet-icon&quot; width=&quot;59&quot; height=&quot;59&quot;&gt;&lt;/image&gt;&lt;/defs&gt;&lt;g transform=&quot;translate(-159 -293.118)&quot;&gt;&lt;path d=&quot;M254.632 315.691c2.012-2.633 6.422-3.33 8.589 1.007a3.4 3.4 0 0 1 .464-.542 5.56 5.56 0 0 1 5.26-2.556 5.83 5.83 0 0 1 5.109 3.948 8.2 8.2 0 0 1 .542 3.1c.077 2.555 0 5.111 0 7.588 0 1.316-.929 2.091-2.4 2.091a2.06 2.06 0 0 1-2.321-2.091v-7.977a2.655 2.655 0 0 0-2.167-2.555 2.58 2.58 0 0 0-2.863 1.781 4.8 4.8 0 0 0-.155 1.471v6.969c0 .852.077 1.7-.929 2.091a3.09 3.09 0 0 1-3.25-.387 1.64 1.64 0 0 1-.464-1.239v-7.9a2.85 2.85 0 0 0-2.321-2.865 2.55 2.55 0 0 0-2.707 1.623 6 6 0 0 0-.232 1.626v7.356c0 1.239-.851 1.936-2.244 1.936s-2.321-.7-2.321-1.936v-12.462c0-1.549.464-2.013 2.012-2.168a2.28 2.28 0 0 1 2.398 2.091m-22.13 6.269a7.28 7.28 0 0 1 2.863-6.891c4.178-3.252 10.833-1.24 11.92 3.872a14.45 14.45 0 0 1 0 6.04c-.619 3.252-4.024 5.653-7.351 5.575a7.634 7.634 0 0 1-7.274-5.807 10.8 10.8 0 0 1-.158-2.789m10.524.078a8.4 8.4 0 0 1-.077-1.394 2.9 2.9 0 1 0-5.8-.077 19 19 0 0 0 0 2.942 3.215 3.215 0 0 0 2.708 2.942 2.945 2.945 0 0 0 2.94-2.323 16 16 0 0 0 .229-2.09m38.685 1.24a3.29 3.29 0 0 0 3.327 3.639 8.16 8.16 0 0 0 3.792-1.007 1.79 1.79 0 0 1 2.63 1.936 2.44 2.44 0 0 1-.851 1.316 7.26 7.26 0 0 1-4.489 1.471 10.2 10.2 0 0 1-5.8-1.316 6.82 6.82 0 0 1-3.327-6.04c0-1.084.077-2.168.077-3.252 0-3.407 3.714-6.969 8.357-6.427a6.6 6.6 0 0 1 6.114 4.8 7 7 0 0 1 .154 2.555c-.154 1.7-.927 2.323-2.63 2.323h-7.354Zm0-2.788h4.41c.387 0 1.084-.155 1.162-.31a2.9 2.9 0 0 0-.155-1.626 3.14 3.14 0 0 0-3.637-1.007c-1.39.388-1.932 1.239-1.78 2.943m17.024-2.865v6.814c0 1.316.465 1.7 1.858 1.7h1.316a1.98 1.98 0 0 1 2.011 1.936 1.864 1.864 0 0 1-1.779 2.168 18.5 18.5 0 0 1-4.641-.461 4.33 4.33 0 0 1-3.25-4.336c-.077-5.653 0-11.305 0-17.035a1.48 1.48 0 0 1 .542-1.084 3.02 3.02 0 0 1 3.482 0 2.04 2.04 0 0 1 .542 1.161c.077 1.7 0 3.407 0 5.265h3.327c1.316 0 1.858.542 1.858 1.858s-.542 1.858-1.858 1.858h-3.1c-.073.078-.151.078-.308.156m-76.293 4.413v1.316c0 2.4 1.548 3.33 3.792 3.1a8 8 0 0 0 1.934-.619 1.981 1.981 0 0 1 2.012 3.407 7.92 7.92 0 0 1-5.262 1.316 9.7 9.7 0 0 1-2.089-.31 6.19 6.19 0 0 1-4.875-5.885 30 30 0 0 1 .077-5.265c.464-3.485 3.018-5.42 6.887-5.575a7.6 7.6 0 0 1 5.108 1.31 1.838 1.838 0 0 1 .542 2.71 1.7 1.7 0 0 1-2.321.852 9.5 9.5 0 0 0-2.94-.619c-1.78-.078-2.786 1.007-2.863 2.865a8.4 8.4 0 0 0-.002 1.397&quot;&gt;&lt;/path&gt;&lt;use xlink:href=&quot;#comet-icon&quot; transform=&quot;translate(159 293.118)&quot;&gt;&lt;/use&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/stevennevins&quot;&gt;&lt;img src=&quot;https://knip.dev/sponsors/stevennevins.jpg&quot; alt=&quot;Steven Nevins&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/section&gt;
&lt;div&gt;&lt;h2 id=&quot;acknowledgements&quot;&gt;Acknowledgements&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Thanks to Joshua Goldberg for &lt;a href=&quot;https://www.emojiblast.dev&quot;&gt;emoji-blast&lt;/a&gt;! 🎉&lt;/p&gt;</content:encoded><category>Update</category></item><item><title>Announcing Knip v5</title><link>https://knip.dev/blog/knip-v5</link><guid isPermaLink="true">https://knip.dev/blog/knip-v5</guid><description>Learn what&apos;s new in Knip v5.</description><pubDate>Sat, 10 Feb 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Today brings the smallest major release so far. Tiny yet mighty!&lt;/p&gt;
&lt;p&gt;Below are two cases to demonstrate the change in how unused exports are
reported.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;case-1&quot;&gt;Case 1&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;The first case shows two exports with a namespaced import that references one of
those exports explicitly:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;knip.js&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;version&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;v5&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;getRocket&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; () &lt;/span&gt;&lt;span&gt;=&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;🚀&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;index.js&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;as&lt;/span&gt;&lt;span&gt; NS &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;./knip.js&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;console&lt;/span&gt;&lt;span&gt;.log&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;NS&lt;/span&gt;&lt;span&gt;.version);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;In this case we see that &lt;code dir=&quot;auto&quot;&gt;getRocket&lt;/code&gt; is an unused export.&lt;/p&gt;
&lt;p&gt;Previously it would go into the “Unused exports in namespaces” category
(&lt;code dir=&quot;auto&quot;&gt;nsExports&lt;/code&gt;). This issue has been moved to the “Unused exports” category
(&lt;code dir=&quot;auto&quot;&gt;exports&lt;/code&gt;).&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;case-2&quot;&gt;Case 2&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;The second case is similar, but only the imported namespace itself is
referenced. None of the individual exports is referenced:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;index.js&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;as&lt;/span&gt;&lt;span&gt; NS &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;./knip.js&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; send &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;stats&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;send&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;NS&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Are the &lt;code dir=&quot;auto&quot;&gt;version&lt;/code&gt; and &lt;code dir=&quot;auto&quot;&gt;getRocket&lt;/code&gt; exports used? We can’t know. The same is true
for the spread object pattern:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;index.js&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;as&lt;/span&gt;&lt;span&gt; NS &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;./knip.js&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Spread&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; { &lt;/span&gt;&lt;span&gt;...&lt;/span&gt;&lt;span&gt;NS&lt;/span&gt;&lt;span&gt; };&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Previously those exports would go into the “Unused exports in namespaces”
category. This is still the case, but this category is no longer enabled by
default.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;include-unused-exports-in-namespaces&quot;&gt;Include unused exports in namespaces&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;To enable this type of issues in Knip v5, add this argument to the command:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;knip&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--include&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;nsExports&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Or in your configuration file:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;knip.json&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;include&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span&gt;&quot;nsExports&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;nsTypes&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Now &lt;code dir=&quot;auto&quot;&gt;version&lt;/code&gt; and &lt;code dir=&quot;auto&quot;&gt;getRocket&lt;/code&gt; will be reported as “Unused exports in
namespaces”.&lt;/p&gt;
&lt;p&gt;Note that &lt;code dir=&quot;auto&quot;&gt;nsExports&lt;/code&gt; and &lt;code dir=&quot;auto&quot;&gt;nsTypes&lt;/code&gt; are split for more granular control.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;handling-exports-in-namespaced-imports&quot;&gt;Handling exports in namespaced imports&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;You have a few options to handle namespaced imports when it comes to unused
exports.&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;1-use-named-imports&quot;&gt;1. Use named imports&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;Regardless of whether &lt;code dir=&quot;auto&quot;&gt;nsExports&lt;/code&gt; is enabled or not, it’s often good practice to
replace the namespaced imports with named imports:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;index.js&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; { version&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; getRocket } &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;./knip.js&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;send&lt;/span&gt;&lt;span&gt;({ version&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; getRocket });&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Whenever possible, explicit over implicit is often the better choice.&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;2-standardized-jsdoc-tags&quot;&gt;2. Standardized JSDoc tags&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;Using one of the available JSDoc tags like &lt;code dir=&quot;auto&quot;&gt;@public&lt;/code&gt; or &lt;code dir=&quot;auto&quot;&gt;@internal&lt;/code&gt;:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;knip.js&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;version&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;v5&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;/** &lt;/span&gt;&lt;span&gt;@public&lt;/span&gt;&lt;span&gt; */&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;getRocket&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; () &lt;/span&gt;&lt;span&gt;=&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;🚀&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Assuming only imported using a namespace (like in the example cases above), this
will exclude the &lt;code dir=&quot;auto&quot;&gt;getRocket&lt;/code&gt; export from the report, even though it isn’t
explicitly referenced.&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;3-arbitrary-jsdoc-tags&quot;&gt;3. Arbitrary JSDoc tags&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;Another solution is to tag individual exports arbitrarily:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;knip.js&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;version&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;v5&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;/** &lt;/span&gt;&lt;span&gt;@launch&lt;/span&gt;&lt;span&gt; */&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;getRocket&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; () &lt;/span&gt;&lt;span&gt;=&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;🚀&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;And then exclude the tag like so:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;$&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--experimental-tags=-launch&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;Exports&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;in&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;used&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;namespace&lt;/span&gt;&lt;span&gt; (1)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;version&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;NS&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;unknown&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;knip.js:1:1&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Assuming only imported using a namespace (like in the example cases above), this
will exclude the &lt;code dir=&quot;auto&quot;&gt;getRocket&lt;/code&gt; export from the report, even though it isn’t
explicitly referenced.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;a-better-default&quot;&gt;A better default&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;I believe this behavior in v5 is the better default: have all exports you want
to know about in a single category, and those you probably want to ignore in
another that’s disabled by default.&lt;/p&gt;
&lt;p&gt;Before the &lt;a href=&quot;../blog/slim-down-to-speed-up&quot;&gt;v4 refactoring&lt;/a&gt;, this would be a lot harder to implement. That
refactoring turns out to be a better investment than expected. Combined with a
better understanding of how people write code and use Knip, this change is a
natural iteration.&lt;/p&gt;
&lt;p&gt;Why the major bump? It’s not breaking for the large majority of users, but for
some it may be breaking. For instance when relying on the &lt;a href=&quot;../features/reporters#json&quot;&gt;JSON reporter&lt;/a&gt;,
other reporter output, or custom &lt;a href=&quot;../features/reporters#preprocessors&quot;&gt;preprocessing&lt;/a&gt;. It’s not a bug fix, it’s
not a new feature, but since semver is all about setting expectations I feel the
change is large enough to warrant a major bump.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;lets-go&quot;&gt;Let’s Go!&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;What are you waiting for? Start using Knip v5 today!&lt;/p&gt;
&lt;starlight-tabs data-sync-key=&quot;pm&quot;&gt;&lt;div&gt;&lt;ul role=&quot;tablist&quot;&gt;&lt;li role=&quot;presentation&quot;&gt;&lt;a role=&quot;tab&quot; href=&quot;#tab-panel-24&quot; id=&quot;tab-24&quot; aria-selected=&quot;true&quot; tabindex=&quot;0&quot;&gt;npm&lt;/a&gt;&lt;/li&gt;&lt;li role=&quot;presentation&quot;&gt;&lt;a role=&quot;tab&quot; href=&quot;#tab-panel-25&quot; id=&quot;tab-25&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;pnpm&lt;/a&gt;&lt;/li&gt;&lt;li role=&quot;presentation&quot;&gt;&lt;a role=&quot;tab&quot; href=&quot;#tab-panel-26&quot; id=&quot;tab-26&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;bun&lt;/a&gt;&lt;/li&gt;&lt;li role=&quot;presentation&quot;&gt;&lt;a role=&quot;tab&quot; href=&quot;#tab-panel-27&quot; id=&quot;tab-27&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;yarn&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div id=&quot;tab-panel-24&quot; aria-labelledby=&quot;tab-24&quot; role=&quot;tabpanel&quot;&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;npm&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;install&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;tab-panel-25&quot; aria-labelledby=&quot;tab-25&quot; role=&quot;tabpanel&quot; hidden&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;pnpm&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;add&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;tab-panel-26&quot; aria-labelledby=&quot;tab-26&quot; role=&quot;tabpanel&quot; hidden&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;bun&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;add&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;tab-panel-27&quot; aria-labelledby=&quot;tab-27&quot; role=&quot;tabpanel&quot; hidden&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;yarn&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;add&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;starlight-tabs-restore&gt;&lt;/starlight-tabs-restore&gt;&lt;/starlight-tabs&gt;
&lt;p&gt;Remember, Knip it before you ship it! Have a great day ☀️&lt;/p&gt;</content:encoded><category>Announcement</category></item><item><title>Announcing Knip v4</title><link>https://knip.dev/blog/knip-v4</link><guid isPermaLink="true">https://knip.dev/blog/knip-v4</guid><description>Learn what&apos;s new in Knip v4.</description><pubDate>Tue, 16 Jan 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I’m happy to announce that Knip v4 is available!&lt;/p&gt;
&lt;p&gt;The work took over a month and the process of &lt;a href=&quot;./slim-down-to-speed-up&quot;&gt;slimming down to speed up&lt;/a&gt;
ended up really well: significant faster runs and reduced memory usage. In the
meantime, v3 continued to receive more contributions, plugins and bug fixes.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Compared to v3, here are the highlights:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Performance: significant speed bump (up to 80%!)&lt;/li&gt;
&lt;li&gt;Performance: globbing in combo with &lt;code dir=&quot;auto&quot;&gt;.gitignore&lt;/code&gt; is a lot more efficient&lt;/li&gt;
&lt;li&gt;Configuration: &lt;a href=&quot;../features/compilers&quot;&gt;built-in compilers&lt;/a&gt; (for Astro, MDX, Svelte &amp;#x26; Vue)&lt;/li&gt;
&lt;li&gt;The &lt;code dir=&quot;auto&quot;&gt;ignore&lt;/code&gt; option has been improved&lt;/li&gt;
&lt;li&gt;Internal refactoring to serialize data for future improvements like caching.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The actual performance win in your projects depends on various factors like size
and complexity.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;major-changes&quot;&gt;Major Changes&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;The changes have been tested against various repositories, but it’s possible
that you will encounter false positives caused by the major refactoring that has
been done. If you do, &lt;a href=&quot;../guides/issue-reproduction&quot;&gt;please report&lt;/a&gt;!&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;unused-class-members&quot;&gt;Unused Class Members&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;Finding unused class members is no longer enabled by default. Here’s why it’s
now opt-in:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When using Knip for the first time on a large repository it can crash after a
while with an out of memory error. This is a terrible experience.&lt;/li&gt;
&lt;li&gt;Plenty of codebases don’t use classes at all, keeping TS programs in memory is
a waste of resources.&lt;/li&gt;
&lt;li&gt;Many configurations already exclude &lt;code dir=&quot;auto&quot;&gt;classMembers&lt;/code&gt; from the output.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Enable unused class members by using the CLI argument or the configuration
option:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;knip&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--include&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;classMembers&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;include&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span&gt;&quot;classMembers&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Now that unused class members is opt-in and better organized within Knip, it
might be interesting to start looking at opt-ins for other unused members, such
as those of types and interfaces.&lt;/p&gt;
&lt;p&gt;By the way, enum members are “cheap” with the v4 refactor, so those are still
included by default.&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;compilers&quot;&gt;Compilers&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;You can remove the &lt;code dir=&quot;auto&quot;&gt;compilers&lt;/code&gt; option from your configuration. Since you can
override them, your custom compilers can stay where they are. This also means
that you can go back from &lt;code dir=&quot;auto&quot;&gt;knip.ts&lt;/code&gt; to &lt;code dir=&quot;auto&quot;&gt;knip.json&lt;/code&gt; if you prefer.&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;ignore-files&quot;&gt;Ignore Files&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;The &lt;code dir=&quot;auto&quot;&gt;ignore&lt;/code&gt; option accepted patterns like &lt;code dir=&quot;auto&quot;&gt;examples/&lt;/code&gt;, but if you want to
ignore the files inside this folder you should update to globs like
&lt;code dir=&quot;auto&quot;&gt;examples/**&lt;/code&gt;.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;whats-next&quot;&gt;What’s Next?&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;The refactoring for this release opens the door to more optimizations, such as
caching. I’m also very excited to see how deeper integrations such as in GitHub
Actions or IDEs like VS Code or WebStorm may further develop.&lt;/p&gt;
&lt;p&gt;Remember, if you are you using Knip at work your company can &lt;a href=&quot;https://github.com/sponsors/webpro&quot;&gt;sponsor me&lt;/a&gt;!&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;one-more-thing&quot;&gt;One More Thing…&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;An idea I’ve been toying with is “tagged exports”. The idea is that you can tag
exports in a JSDoc comment. The tag does not need to be part of the JSDoc or
TSDoc spec. For example:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;/** &lt;/span&gt;&lt;span&gt;@custom&lt;/span&gt;&lt;span&gt; */&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;myExport&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Then, include or exclude such tagged exports from the report like so:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;knip&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--experimental-tags=+custom&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;knip&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--experimental-tags=-custom,-internal&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;This way, you can either focus on or ignore specific tagged exports with tags
you define yourself. This also works for individual class or enum members.&lt;/p&gt;
&lt;p&gt;Once this feature is intuitive and stable, the &lt;code dir=&quot;auto&quot;&gt;experimental&lt;/code&gt; flag will be
removed and option(s) added to the Knip configuration file. The docs are in the
&lt;a href=&quot;../reference/cli#--tags&quot;&gt;CLI reference&lt;/a&gt;.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;lets-go&quot;&gt;Let’s Go!&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;What are you waiting for? Start using Knip v4 today!&lt;/p&gt;
&lt;starlight-tabs data-sync-key=&quot;pm&quot;&gt;&lt;div&gt;&lt;ul role=&quot;tablist&quot;&gt;&lt;li role=&quot;presentation&quot;&gt;&lt;a role=&quot;tab&quot; href=&quot;#tab-panel-28&quot; id=&quot;tab-28&quot; aria-selected=&quot;true&quot; tabindex=&quot;0&quot;&gt;npm&lt;/a&gt;&lt;/li&gt;&lt;li role=&quot;presentation&quot;&gt;&lt;a role=&quot;tab&quot; href=&quot;#tab-panel-29&quot; id=&quot;tab-29&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;pnpm&lt;/a&gt;&lt;/li&gt;&lt;li role=&quot;presentation&quot;&gt;&lt;a role=&quot;tab&quot; href=&quot;#tab-panel-30&quot; id=&quot;tab-30&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;bun&lt;/a&gt;&lt;/li&gt;&lt;li role=&quot;presentation&quot;&gt;&lt;a role=&quot;tab&quot; href=&quot;#tab-panel-31&quot; id=&quot;tab-31&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;yarn&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div id=&quot;tab-panel-28&quot; aria-labelledby=&quot;tab-28&quot; role=&quot;tabpanel&quot;&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;npm&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;install&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;tab-panel-29&quot; aria-labelledby=&quot;tab-29&quot; role=&quot;tabpanel&quot; hidden&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;pnpm&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;add&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;tab-panel-30&quot; aria-labelledby=&quot;tab-30&quot; role=&quot;tabpanel&quot; hidden&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;bun&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;add&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;tab-panel-31&quot; aria-labelledby=&quot;tab-31&quot; role=&quot;tabpanel&quot; hidden&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;yarn&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;add&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;starlight-tabs-restore&gt;&lt;/starlight-tabs-restore&gt;&lt;/starlight-tabs&gt;
&lt;p&gt;Remember, Knip it before you ship it! Have a great day ☀️&lt;/p&gt;</content:encoded><category>Announcement</category></item><item><title>Slim down to speed up</title><link>https://knip.dev/blog/slim-down-to-speed-up</link><guid isPermaLink="true">https://knip.dev/blog/slim-down-to-speed-up</guid><pubDate>Thu, 14 Dec 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;tl;dr;&lt;/strong&gt; Memory usage is up to 50% lower, runs are up to 60% faster and you
can start using v4 canary today. No “unused class members” for the time being,
but this feature is planned to be restored.&lt;/p&gt;

&lt;div&gt;&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Honestly, performance has always been a challenge for Knip. A longstanding
bottleneck has finally been eliminated and Knip is going to be a lot faster.
Skip straight to the bottom to install v4 canary and try it out! Or grab
yourself a nice drink and read on if you’re interested in where we are coming
from, and where we are heading.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;projects--workspaces&quot;&gt;Projects &amp;#x26; Workspaces&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;From the start, Knip has relied on TypeScript for its robust parser for
JavaScript and TypeScript files. And on lots of machinery important to Knip,
like module resolution and accurately finding references to exported values.
Parts of it can be customized, such as the (virtual) file system and the module
resolver.&lt;/p&gt;
&lt;p&gt;In TypeScript terms, a “project” is like a workspace in a monorepo. Same as each
workspace has a &lt;code dir=&quot;auto&quot;&gt;package.json&lt;/code&gt;, each project has a &lt;code dir=&quot;auto&quot;&gt;tsconfig.json&lt;/code&gt;. The
&lt;code dir=&quot;auto&quot;&gt;ts.createProgram()&lt;/code&gt; method is used to create a program based on a
&lt;code dir=&quot;auto&quot;&gt;tsconfig.json&lt;/code&gt; and the machinery starts to read and parse source code files,
resolve modules, and so on.&lt;/p&gt;
&lt;p&gt;Up until v2, when Knip wanted to find unused things in a monorepo, all programs
for all workspaces were loaded into memory. Workspaces often depend on each
other, so Knip couldn’t load one project, analyze it and dispose it. This way,
connections across workspaces would be lost.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;shared-workspaces&quot;&gt;Shared Workspaces&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Knip v2 said goodbye to this approach and implemented its own TypeScript backend
(after using &lt;code dir=&quot;auto&quot;&gt;ts-morph&lt;/code&gt; for this). Based on the compatibility of
&lt;code dir=&quot;auto&quot;&gt;compilerOptions&lt;/code&gt;, workspaces were merged into shared programs whenever
possible. Having less programs in memory led to significant performance
improvements. Yet ultimately it was still a stopgap, since everything was still
kept in memory for the duration of the process.&lt;/p&gt;
&lt;p&gt;“Why does everything need to stay in memory?”, you may wonder. The answer is
that Knip uses &lt;code dir=&quot;auto&quot;&gt;findReferences&lt;/code&gt; at the end of the process. Knip relied on this
TypeScript Language Server method for everything that’s not easy to find. More
about that later in &lt;a href=&quot;#the-story-of-findreferences&quot;&gt;the story of findReferences&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;serialization&quot;&gt;Serialization&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Fortunately, everything that’s imported and exported from source files
(including things like members of namespaces and enums) can be found relatively
easily during AST traversal. This way, references to exports don’t have to be
“traced back” later on.&lt;/p&gt;
&lt;p&gt;It’s mostly class members that are harder to find due to their dynamic nature.
Without these, all information can be serialized for storage and retrieval (in
memory or on disk). Slimming down by taking class members out of the equation
simplifies things a lot and paves the way for all sorts of improvements.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;we-have-to-slim-down&quot;&gt;We Have To Slim Down&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;The relevant part in the linting process can be summarized in 5 steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Collect entry files and feed them to TypeScript&lt;/li&gt;
&lt;li&gt;Read files, resolve modules, and create ASTs&lt;/li&gt;
&lt;li&gt;Traverse ASTs and collect imports &amp;#x26; exports&lt;/li&gt;
&lt;li&gt;Match exports against imports to determine what’s unused&lt;/li&gt;
&lt;li&gt;Find references to hard-to-find exported values and members&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If we would hold on to reporting unused class members, then especially steps 2
and 5 are hard to decouple. The program and the language service containing the
source files used to eventually trace back references can’t really be decoupled.
So class members had to go. Sometimes you have to slim down to keep moving. One
step back, two steps forward.&lt;/p&gt;
&lt;p&gt;If you rely on this feature, fear not. I plan to bring it back before the final
v4, but possibly behind a flag.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;whats-in-store&quot;&gt;What’s In Store?&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;So with this out of the way, everything becomes a lot clearer and we can finally
really start thinking about significant memory and performance improvements. So
what’s in store here? A lot!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We no longer need to keep everything in memory, so workspaces are read and
disposed in isolation, one at a time. Memory usage will be spread out more
even. This does not make it faster, but reducing “out of memory” issues is
definitely a Good Thing™️ in my book.&lt;/li&gt;
&lt;li&gt;Knip could recover from unexpected exits and continue from the last completed
workspace.&lt;/li&gt;
&lt;li&gt;The imports and exports are in a format that can be serialized for storage and
retrieval. This opens up interesting opportunities, such as local caching on
disk, skipping work in subsequent runs, remote caching, and so on.&lt;/li&gt;
&lt;li&gt;Handling workspaces in isolation and serialization result in parallelization
becoming a possibility. This becomes essential, as module resolution and AST
creation and traversal are now the slowest parts of the process and are not
easy to optimize significantly (unless perhaps switching to e.g Rust).&lt;/li&gt;
&lt;li&gt;No longer relying on &lt;code dir=&quot;auto&quot;&gt;findReferences&lt;/code&gt; speeds up the export/import matching
part part significantly. So far I’ve seen &lt;strong&gt;improvements of up to 60% on total
runtime&lt;/strong&gt;, and my guess is that some larger codebases may profit even more.&lt;/li&gt;
&lt;li&gt;The serialization format is still being explored and there is no caching yet,
but having the steps more decoupled is another Good Thing™️ that future me
should be happy about.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;back-it-up-please&quot;&gt;Back It Up, Please&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;I heard you. Here’s some example data. You can get it directly from Knip using
the &lt;code dir=&quot;auto&quot;&gt;--performance&lt;/code&gt; flag when running it on any codebase. Below we have some
data after linting the &lt;a href=&quot;https://github.com/remix-run/remix&quot;&gt;Remix monorepo&lt;/a&gt;.&lt;/p&gt;
&lt;div&gt;&lt;h3 id=&quot;knip-v3&quot;&gt;Knip v3&lt;/h3&gt;&lt;/div&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;$&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--performance&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;Name&lt;/span&gt;&lt;span&gt;                           &lt;/span&gt;&lt;span&gt;size&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;min&lt;/span&gt;&lt;span&gt;     &lt;/span&gt;&lt;span&gt;max&lt;/span&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;median&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;sum&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;-----------------------------&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;----&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;------&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;-------&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;-------&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;-------&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;findReferences&lt;/span&gt;&lt;span&gt;                  &lt;/span&gt;&lt;span&gt;223&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;0.55&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;2252.35&lt;/span&gt;&lt;span&gt;     &lt;/span&gt;&lt;span&gt;8.46&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;5826.95&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;createProgram&lt;/span&gt;&lt;span&gt;                     &lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;50.78&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;1959.92&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;1005.35&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;2010.70&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;getTypeChecker&lt;/span&gt;&lt;span&gt;                    &lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;5.04&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;667.45&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;336.24&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;672.48&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;getImportsAndExports&lt;/span&gt;&lt;span&gt;            &lt;/span&gt;&lt;span&gt;396&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;0.00&lt;/span&gt;&lt;span&gt;     &lt;/span&gt;&lt;span&gt;7.19&lt;/span&gt;&lt;span&gt;     &lt;/span&gt;&lt;span&gt;0.11&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;104.46&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;Total&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;running&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;time:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;9.7s&lt;/span&gt;&lt;span&gt; (mem: &lt;/span&gt;&lt;span&gt;1487.39MB&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div&gt;&lt;h3 id=&quot;knip-v4&quot;&gt;Knip v4&lt;/h3&gt;&lt;/div&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;$&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--performance&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;...&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;Name&lt;/span&gt;&lt;span&gt;                           &lt;/span&gt;&lt;span&gt;size&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;min&lt;/span&gt;&lt;span&gt;     &lt;/span&gt;&lt;span&gt;max&lt;/span&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;median&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;sum&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;-----------------------------&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;----&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;------&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;-------&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;-------&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;-------&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;createProgram&lt;/span&gt;&lt;span&gt;                     &lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;54.36&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;2138.45&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;1096.40&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;2192.81&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;getTypeChecker&lt;/span&gt;&lt;span&gt;                    &lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;7.40&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;664.83&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;336.12&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;672.23&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;getImportsAndExports&lt;/span&gt;&lt;span&gt;            &lt;/span&gt;&lt;span&gt;396&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;0.00&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;36.36&lt;/span&gt;&lt;span&gt;     &lt;/span&gt;&lt;span&gt;0.16&lt;/span&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt;224.37&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;getSymbolAtLocation&lt;/span&gt;&lt;span&gt;            &lt;/span&gt;&lt;span&gt;2915&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;0.00&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;29.71&lt;/span&gt;&lt;span&gt;     &lt;/span&gt;&lt;span&gt;0.00&lt;/span&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;65.63&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;Total&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;running&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;time:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;4.3s&lt;/span&gt;&lt;span&gt; (mem: &lt;/span&gt;&lt;span&gt;729.67MB&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div&gt;&lt;h3 id=&quot;takeaways&quot;&gt;Takeaways&lt;/h3&gt;&lt;/div&gt;
&lt;p&gt;The main takeaways here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In v3,&lt;code dir=&quot;auto&quot;&gt;findReferences&lt;/code&gt; is where Knip potentially spends most of its time&lt;/li&gt;
&lt;li&gt;In v4, total running time is down over 50%&lt;/li&gt;
&lt;li&gt;In v4, memory usage is down 50% (calculated using
&lt;code dir=&quot;auto&quot;&gt;process.memoryUsage().heapUsage&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;In v4, &lt;code dir=&quot;auto&quot;&gt;getImportsAndExports&lt;/code&gt; is more comprehensive to compensate for the
absence of &lt;code dir=&quot;auto&quot;&gt;findReferences&lt;/code&gt; - more on that below&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Remember, unused class members are no longer reported by default in v4.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;the-story-of-findreferences&quot;&gt;The story of &lt;code dir=&quot;auto&quot;&gt;findReferences&lt;/code&gt;&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Did I mention Knip uses &lt;code dir=&quot;auto&quot;&gt;findReferences&lt;/code&gt;…? Knip relied on it for everything
that’s not easy to find. Here’s an example of an export/import match that &lt;strong&gt;is&lt;/strong&gt;
easy to find:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;import.ts&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; { MyThing } &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;./thing.ts&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;export.ts&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;MyThing&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;cool&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;In v2 and v3, Knip collects many of such easy patterns. Other patterns are
harder to find with static analysis. This is especially true for class members.
Let’s take a look at the next example:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;MyClass.ts&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;MyClass&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;constructor&lt;/span&gt;&lt;span&gt;() {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.method&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;method&lt;/span&gt;&lt;span&gt;() {}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;do&lt;/span&gt;&lt;span&gt;() {}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;OtherName&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; MyClass;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;instance.ts&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;as&lt;/span&gt;&lt;span&gt; MyNamespace &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;./MyClass.ts&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; { &lt;/span&gt;&lt;span&gt;OtherName&lt;/span&gt;&lt;span&gt; } &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; MyNamespace;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;instance&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;OtherName&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;instance&lt;/span&gt;&lt;span&gt;.do&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Without a call or &lt;code dir=&quot;auto&quot;&gt;new&lt;/code&gt; expression to instantiate &lt;code dir=&quot;auto&quot;&gt;OtherName&lt;/code&gt;, its &lt;code dir=&quot;auto&quot;&gt;method&lt;/code&gt;
member would not be used (since the constructor would not be executed). To
figure this out using static analysis goes a long way. Through export
declarations, import declarations, aliases, initializers, call expressions…
the list goes on and on. Yet all this magic is exactly what happens when you use
“Find all references” or “Go to definition” in VS Code.&lt;/p&gt;
&lt;p&gt;Knip used &lt;code dir=&quot;auto&quot;&gt;findReferences&lt;/code&gt; extensively, but it’s what makes a part of Knip
rather slow. TypeScript needs to wire things up (through
&lt;code dir=&quot;auto&quot;&gt;ts.createLanguageService&lt;/code&gt; and &lt;code dir=&quot;auto&quot;&gt;program.getTypeChecker&lt;/code&gt;) before it can use this,
and then it tries hard to find all references to anything you throw at it. It
does this very well, but the more class members, enum members and namespaced
imports your codebase has, the longer it inevitably takes to complete the
process.&lt;/p&gt;
&lt;p&gt;Besides letting go of class members, a slightly more comprehensive AST traversal
is required to compensate for the absence of &lt;code dir=&quot;auto&quot;&gt;findReferences&lt;/code&gt; (it’s the
&lt;code dir=&quot;auto&quot;&gt;getImportsAndExports&lt;/code&gt; function in the metrics above). I’d like to give you an
idea of what “more comprehensive” means here.&lt;/p&gt;
&lt;p&gt;In the following example, &lt;code dir=&quot;auto&quot;&gt;referencedExport&lt;/code&gt; was stored as export from
&lt;code dir=&quot;auto&quot;&gt;namespace.ts&lt;/code&gt;, but it was not imported directly as such:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;namespace.ts&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;referencedExport&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; () &lt;/span&gt;&lt;span&gt;=&gt;&lt;/span&gt;&lt;span&gt; {};&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;index.ts&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;as&lt;/span&gt;&lt;span&gt; NS &lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;./namespace.ts&apos;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;NS&lt;/span&gt;&lt;span&gt;.referencedExport&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Previously, Knip used &lt;code dir=&quot;auto&quot;&gt;findReferences()&lt;/code&gt; to “trace back” the usage of the
exported &lt;code dir=&quot;auto&quot;&gt;referencedExport&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The gist of the optimization is to pre-determine all imports and exports. During
AST traversal of &lt;code dir=&quot;auto&quot;&gt;index.ts&lt;/code&gt; , Knip sees that &lt;code dir=&quot;auto&quot;&gt;referencedExport&lt;/code&gt; is attached to
the imported &lt;code dir=&quot;auto&quot;&gt;NS&lt;/code&gt; namespace, and stores that as an imported identifier of
&lt;code dir=&quot;auto&quot;&gt;namespace.ts&lt;/code&gt;. When matching exports against imports, this lookup comes at no
extra cost. Additionally, this can be stored as strings, so it can be serialized
too. And that means it can be cached.&lt;/p&gt;
&lt;p&gt;Knip already did this for trivial cases as shown in the first example of this
article. This has now been extended to cover more patterns. This is also what
needs to be tested more extensively before v4 can be released. Its own test
suite and the projects in the integration tests are already covered so we’re
well on our way.&lt;/p&gt;
&lt;p&gt;For the record, &lt;code dir=&quot;auto&quot;&gt;findReferences&lt;/code&gt; is an absolute gem of functionality provided by
TypeScript. Knip is still backed by TypeScript, and tries to speed things up by
shaking things off. In the end it’s all about trade-offs.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;lets-go&quot;&gt;Let’s Go!&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;You can start using Knip v4 today, feel free to try it out! You might find a
false positive that wasn’t there in v3, please &lt;a href=&quot;https://github.com/webpro-nl/knip/issues&quot;&gt;report this&lt;/a&gt;.&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;npm&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;install&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip@canary&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Remember, Knip it before you ship it! Have a great day ☀️&lt;/p&gt;</content:encoded><category>Update</category></item><item><title>A Brief History Of Knip</title><link>https://knip.dev/blog/brief-history</link><guid isPermaLink="true">https://knip.dev/blog/brief-history</guid><pubDate>Sun, 15 Oct 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;If you are fond of short lists and brief histories, then this page was written
just for you!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;2022-10-04: The &lt;a href=&quot;https://github.com/webpro-nl/knip/commit/9589dfe22608da7d89f2613383da6db5826226d2&quot;&gt;initial commit&lt;/a&gt;. Still so tiny at that point, but the seed
was planted. Starting out with finding unused files and exports, the name was
Exportman! 🦸&lt;/li&gt;
&lt;li&gt;2022-10-09: Big plans and a rename 5 days later, the first published version
of Knip was &lt;a href=&quot;https://github.com/webpro-nl/knip/tree/0.1.2&quot;&gt;v0.1.2&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;2022-11-22: Unused dependencies and support for workspaces and plugins in the
&lt;a href=&quot;https://github.com/webpro-nl/knip/releases/tag/1.0.0-alpha.0&quot;&gt;first alpha of v1&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;2023-01-10: Lots of testing and fixes led to &lt;a href=&quot;https://github.com/webpro-nl/knip/tree/1.0.0&quot;&gt;Knip v1&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;2023-03-22: &lt;a href=&quot;https://github.com/webpro-nl/knip/issues/73&quot;&gt;Knip v2&lt;/a&gt; saw a full rewrite of the TypeScript backend.&lt;/li&gt;
&lt;li&gt;2023-10-15: &lt;a href=&quot;./knip-v3&quot;&gt;Introduction of Knip v3&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;</content:encoded><category>History</category></item><item><title>Announcing Knip v3</title><link>https://knip.dev/blog/knip-v3</link><guid isPermaLink="true">https://knip.dev/blog/knip-v3</guid><description>Learn what&apos;s new in Knip v3.</description><pubDate>Sun, 15 Oct 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Lots of new users got introduced to Knip, coming with clear bug reports, helpful
insights, superb reproductions and great suggestions this year. You’re all a
friendly and helpful bunch! Recently I’ve opened a Discord channel where more
communication, collaboration, ideas and updates are happening: feel free to join
&lt;a href=&quot;https://discord.gg/r5uXTtbTpc&quot;&gt;The Knip Barn&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Today, Knip has &lt;a href=&quot;https://www.npmjs.com/package/knip&quot;&gt;over 140k weekly downloads on npm&lt;/a&gt;, &lt;a href=&quot;https://github.com/webpro-nl/knip/stargazers&quot;&gt;almost 4000 stars on
GitHub&lt;/a&gt;, and &lt;a href=&quot;https://github.com/webpro-nl/knip/network/dependents&quot;&gt;over 500 repositories&lt;/a&gt; using it. While numbers are just
numbers, they do add to the positive feedback I’m receiving daily. Everything
combined makes me think I’m on the right track which is very motivating to keep
working on Knip.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;so-whats-been-cooking-lately&quot;&gt;So… What’s Been Cooking Lately?&lt;/h2&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Migration to a monorepo setup&lt;/li&gt;
&lt;li&gt;This very website built with Starlight 🌟&lt;/li&gt;
&lt;li&gt;Extended documentation for just about everything&lt;/li&gt;
&lt;li&gt;Improved JSON reporter for external integrations (e.g. &lt;a href=&quot;https://github.com/marketplace/actions/knip-reporter&quot;&gt;GitHub Action&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Some breaking changes, but you probably don’t need to make any changes&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;breaking-changes&quot;&gt;Breaking Changes&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;A major bump comes with breaking changes, but most likely no changes necessary
on your end:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Removed support for Node.js v16, Knip v3 requires at least Node.js v18.6&lt;/li&gt;
&lt;li&gt;Simplified &lt;a href=&quot;../reference/cli#--no-exit-code&quot;&gt;exit codes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../features/production-mode&quot;&gt;Production mode&lt;/a&gt; now includes types by default (add &lt;code dir=&quot;auto&quot;&gt;--exclude types&lt;/code&gt; for
previous behavior)&lt;/li&gt;
&lt;li&gt;Removed &lt;code dir=&quot;auto&quot;&gt;--ignore-internal&lt;/code&gt; flag; &lt;a href=&quot;../reference/jsdoc-tsdoc-tags#internal&quot;&gt;&lt;code dir=&quot;auto&quot;&gt;@internal&lt;/code&gt;&lt;/a&gt; exports ignored in
production mode now&lt;/li&gt;
&lt;li&gt;The &lt;code dir=&quot;auto&quot;&gt;--debug-file-filter&lt;/code&gt; flag is removed&lt;/li&gt;
&lt;li&gt;The &lt;code dir=&quot;auto&quot;&gt;jsonExt&lt;/code&gt; reporter is now the default &lt;a href=&quot;../features/reporters#json&quot;&gt;JSON reporter&lt;/a&gt; (the previous one
is gone)&lt;/li&gt;
&lt;li&gt;Moved &lt;code dir=&quot;auto&quot;&gt;typescript&lt;/code&gt; to &lt;code dir=&quot;auto&quot;&gt;peerDependencies&lt;/code&gt; (requires &lt;code dir=&quot;auto&quot;&gt;&gt;=5.0.4&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;installation&quot;&gt;Installation&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Try out the latest Knip v3 release today!&lt;/p&gt;
&lt;starlight-tabs data-sync-key=&quot;pm&quot;&gt;&lt;div&gt;&lt;ul role=&quot;tablist&quot;&gt;&lt;li role=&quot;presentation&quot;&gt;&lt;a role=&quot;tab&quot; href=&quot;#tab-panel-32&quot; id=&quot;tab-32&quot; aria-selected=&quot;true&quot; tabindex=&quot;0&quot;&gt;npm&lt;/a&gt;&lt;/li&gt;&lt;li role=&quot;presentation&quot;&gt;&lt;a role=&quot;tab&quot; href=&quot;#tab-panel-33&quot; id=&quot;tab-33&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;pnpm&lt;/a&gt;&lt;/li&gt;&lt;li role=&quot;presentation&quot;&gt;&lt;a role=&quot;tab&quot; href=&quot;#tab-panel-34&quot; id=&quot;tab-34&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;bun&lt;/a&gt;&lt;/li&gt;&lt;li role=&quot;presentation&quot;&gt;&lt;a role=&quot;tab&quot; href=&quot;#tab-panel-35&quot; id=&quot;tab-35&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;yarn&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div id=&quot;tab-panel-32&quot; aria-labelledby=&quot;tab-32&quot; role=&quot;tabpanel&quot;&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;npm&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;install&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;tab-panel-33&quot; aria-labelledby=&quot;tab-33&quot; role=&quot;tabpanel&quot; hidden&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;pnpm&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;add&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;tab-panel-34&quot; aria-labelledby=&quot;tab-34&quot; role=&quot;tabpanel&quot; hidden&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;bun&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;add&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;tab-panel-35&quot; aria-labelledby=&quot;tab-35&quot; role=&quot;tabpanel&quot; hidden&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;yarn&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;add&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-D&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;knip&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;&lt;starlight-tabs-restore&gt;&lt;/starlight-tabs-restore&gt;&lt;/starlight-tabs&gt;
&lt;p&gt;Remember, Knip it before you ship it! Have a great day ☀️&lt;/p&gt;</content:encoded><category>Announcement</category></item><item><title>Announcing Knip v2</title><link>https://knip.dev/blog/knip-v2</link><guid isPermaLink="true">https://knip.dev/blog/knip-v2</guid><description>Learn what&apos;s new in Knip v2.</description><pubDate>Wed, 22 Mar 2023 00:00:00 GMT</pubDate><content:encoded>&lt;div&gt;&lt;h2 id=&quot;breaking-changes&quot;&gt;Breaking changes&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;When coming from v1, there are no breaking changes in terms of configuration.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;changes&quot;&gt;Changes&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;There are some changes regarding CLI arguments and output:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Knip now runs on every workspace automatically (except for the ones in
&lt;code dir=&quot;auto&quot;&gt;ignoreWorkspaces: []&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;The “Unlisted or unresolved dependencies” is split in “Unlisted dependencies”
and “Unresolved imports”.&lt;/li&gt;
&lt;li&gt;Bug fixes and increased correctness impact output (potentially causing CI to
now succeed or fail).&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;new-features&quot;&gt;New features&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Rewriting a major part of Knip’s core from scratch allows for some new exciting
features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Performance&lt;/strong&gt;. Files are read only once, and their ASTs are traversed only
once. Projects of any size will notice the difference. Total running time for
some projects decreases with 90%.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compilers&lt;/strong&gt;. You can now include other file types such as &lt;code dir=&quot;auto&quot;&gt;.mdx&lt;/code&gt;, &lt;code dir=&quot;auto&quot;&gt;.vue&lt;/code&gt; and
&lt;code dir=&quot;auto&quot;&gt;.svelte&lt;/code&gt; in the analysis.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Internally, the &lt;code dir=&quot;auto&quot;&gt;ts-morph&lt;/code&gt; dependency is replaced by &lt;code dir=&quot;auto&quot;&gt;typescript&lt;/code&gt; itself.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;other-improvements&quot;&gt;Other improvements&lt;/h2&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Improved support for workspaces.&lt;/li&gt;
&lt;li&gt;Improved module resolutions, self-referencing imports, and other things you
don’t want to worry about.&lt;/li&gt;
&lt;li&gt;Configure &lt;code dir=&quot;auto&quot;&gt;ignoreDependencies&lt;/code&gt; and &lt;code dir=&quot;auto&quot;&gt;ignoreBinaries&lt;/code&gt; at the workspace level.&lt;/li&gt;
&lt;li&gt;Simplified plugins model: plugin dependency finder may now return any type of
dependency in a single array: npm packages, local workspace packages, local
files, etc. (module and path resolution are handled outside the plugin).&lt;/li&gt;
&lt;li&gt;Many bugfixes.&lt;/li&gt;
&lt;/ul&gt;</content:encoded><category>Announcement</category></item><item><title>Announcing Knip v1</title><link>https://knip.dev/blog/knip-v1</link><guid isPermaLink="true">https://knip.dev/blog/knip-v1</guid><description>Learn how to migrate to Knip v1.</description><pubDate>Wed, 04 Jan 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;When coming from version v0.13.3 or before, there are some breaking changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code dir=&quot;auto&quot;&gt;entryFiles&lt;/code&gt; and &lt;code dir=&quot;auto&quot;&gt;projectFiles&lt;/code&gt; options have been renamed to &lt;code dir=&quot;auto&quot;&gt;entry&lt;/code&gt; and
&lt;code dir=&quot;auto&quot;&gt;project&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;code dir=&quot;auto&quot;&gt;--dev&lt;/code&gt; argument and &lt;code dir=&quot;auto&quot;&gt;dev: true&lt;/code&gt; option are gone, this is now the default
mode (see &lt;a href=&quot;../features/production-mode&quot;&gt;production mode&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Workspaces have been moved from the root of the config to the &lt;code dir=&quot;auto&quot;&gt;workspaces&lt;/code&gt; key
(see &lt;a href=&quot;../features/monorepos-and-workspaces&quot;&gt;workspaces&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;The &lt;code dir=&quot;auto&quot;&gt;--dir&lt;/code&gt; argument has been renamed to &lt;code dir=&quot;auto&quot;&gt;--workspace&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;example&quot;&gt;Example&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;A configuration like this in v0.13.3 or before…&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;entryFiles&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span&gt;&quot;src/index.ts&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;projectFiles&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span&gt;&quot;src/**/*.ts&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;!**/*.spec.ts&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;dev&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;&quot;entryFiles&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span&gt;&quot;src/index.ts&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;src/**/*.spec.ts&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;src/**/*.e2e.ts&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;&quot;projectFiles&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span&gt;&quot;src/**/*.ts&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;…should become this for v1…&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;entry&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span&gt;&quot;src/index.ts!&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;project&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span&gt;&quot;src/**/*.ts!&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Much cleaner, right? For some more details:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code dir=&quot;auto&quot;&gt;dev&lt;/code&gt; property for the &lt;code dir=&quot;auto&quot;&gt;--dev&lt;/code&gt; flag is now the default mode.&lt;/li&gt;
&lt;li&gt;Use &lt;code dir=&quot;auto&quot;&gt;--production&lt;/code&gt; to analyze only the &lt;code dir=&quot;auto&quot;&gt;entry&lt;/code&gt; and &lt;code dir=&quot;auto&quot;&gt;project&lt;/code&gt; files suffixed
with &lt;code dir=&quot;auto&quot;&gt;!&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The glob patterns for both types of test files (&lt;code dir=&quot;auto&quot;&gt;*.spec.ts&lt;/code&gt; and &lt;code dir=&quot;auto&quot;&gt;*.e2e.ts&lt;/code&gt;)
are no longer needed:
&lt;ul&gt;
&lt;li&gt;Regular test files like &lt;code dir=&quot;auto&quot;&gt;*.test.js&lt;/code&gt; and &lt;code dir=&quot;auto&quot;&gt;*.spec.ts&lt;/code&gt; etc. are automatically
handled by Knip.&lt;/li&gt;
&lt;li&gt;The &lt;code dir=&quot;auto&quot;&gt;*.e2e.ts&lt;/code&gt; files is configured with the Cypress or other plugin. Note
that Cypress uses &lt;code dir=&quot;auto&quot;&gt;*.cy.ts&lt;/code&gt; for spec files, but this could be overridden
like so:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;entry&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;src/index.ts!&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;project&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;src/**/*.ts!&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;cypress&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;&quot;entry&quot;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;src/**/*.e2e.ts&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;</content:encoded><category>Announcement</category></item></channel></rss>