lacy 1.8.11 → 1.8.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +26 -0
- package/.github/FUNDING.yml +3 -0
- package/.github/ISSUE_TEMPLATE/bug_report.yml +49 -0
- package/.github/ISSUE_TEMPLATE/config.yml +5 -0
- package/.github/ISSUE_TEMPLATE/feature_request.yml +28 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +17 -0
- package/.github/SECURITY.md +32 -0
- package/.github/assets/logo-horizontal-dark.png +0 -0
- package/.github/assets/logo-horizontal-dark.svg +17 -0
- package/.github/assets/logo-horizontal.png +0 -0
- package/.github/assets/logo-horizontal.svg +17 -0
- package/.github/assets/logo.png +0 -0
- package/.github/assets/logo.svg +12 -0
- package/.github/assets/social-preview.png +0 -0
- package/.github/assets/social-preview.svg +50 -0
- package/.github/dependabot.yml +21 -0
- package/.github/workflows/ci.yml +80 -0
- package/.github/workflows/dependabot-auto-merge.yml +32 -0
- package/CHANGELOG.md +366 -0
- package/CLAUDE.md +340 -0
- package/CONTRIBUTING.md +141 -0
- package/LICENSE +110 -0
- package/README.md +201 -31
- package/RELEASING.md +148 -0
- package/STYLE.md +202 -0
- package/assets/hero.jpeg +0 -0
- package/assets/mode-indicators.jpeg +0 -0
- package/assets/real-time-indicator.jpeg +0 -0
- package/assets/supported-tools.jpeg +0 -0
- package/bin/lacy +1028 -0
- package/docs/ADDING-BACKENDS.md +124 -0
- package/docs/DEVTO-ARTICLE.md +94 -0
- package/docs/DOCS.md +68 -0
- package/docs/GROWTH-STRATEGY.md +119 -0
- package/docs/HN-RESPONSES.md +122 -0
- package/docs/LAUNCH-COPY-FINAL.md +105 -0
- package/docs/MARKETING.md +411 -0
- package/docs/NATURAL_LANGUAGE_DETECTION.md +204 -0
- package/docs/UGC_VIDEO_SCRIPT.md +114 -0
- package/docs/articles/devto-how-i-made-my-terminal-understand-english.md +117 -0
- package/docs/demo-color-transition.gif +0 -0
- package/docs/demo-full.gif +0 -0
- package/docs/demo-indicator.gif +0 -0
- package/docs/launch-thread-may6.sh +158 -0
- package/docs/videos/README.md +189 -0
- package/docs/videos/generate_frames.py +510 -0
- package/docs/videos/generate_frames_v2.py +729 -0
- package/docs/videos/generate_short.py +328 -0
- package/docs/videos/generate_short_v2.py +526 -0
- package/docs/videos/lacy-shell-demo-v2.mp4 +0 -0
- package/docs/videos/lacy-shell-demo.mp4 +0 -0
- package/docs/videos/lacy-shell-short-v2.mp4 +0 -0
- package/docs/videos/lacy-shell-short.mp4 +0 -0
- package/install.sh +1009 -0
- package/lacy.plugin.bash +75 -0
- package/lacy.plugin.fish +43 -0
- package/lacy.plugin.zsh +65 -0
- package/lib/animations.zsh +3 -0
- package/lib/bash/completions.bash +40 -0
- package/lib/bash/execute.bash +233 -0
- package/lib/bash/init.bash +40 -0
- package/lib/bash/keybindings.bash +134 -0
- package/lib/bash/prompt.bash +85 -0
- package/lib/commands/info.sh +25 -0
- package/lib/config.zsh +3 -0
- package/lib/constants.zsh +3 -0
- package/lib/core/animations.sh +271 -0
- package/lib/core/commands.sh +297 -0
- package/lib/core/config.sh +340 -0
- package/lib/core/constants.sh +366 -0
- package/lib/core/context.sh +260 -0
- package/lib/core/detection.sh +417 -0
- package/lib/core/mcp.sh +741 -0
- package/lib/core/modes.sh +123 -0
- package/lib/core/preheat.sh +496 -0
- package/lib/core/spinner.sh +174 -0
- package/lib/core/telemetry.sh +99 -0
- package/lib/detection.zsh +3 -0
- package/lib/execute.zsh +3 -0
- package/lib/fish/config.fish +66 -0
- package/lib/fish/detection.fish +90 -0
- package/lib/fish/execute.fish +105 -0
- package/lib/fish/keybindings.fish +42 -0
- package/lib/fish/prompt.fish +30 -0
- package/lib/keybindings.zsh +3 -0
- package/lib/mcp.zsh +3 -0
- package/lib/modes.zsh +3 -0
- package/lib/preheat.zsh +3 -0
- package/lib/prompt.zsh +3 -0
- package/lib/spinner.zsh +3 -0
- package/lib/zsh/completions.zsh +60 -0
- package/lib/zsh/execute.zsh +294 -0
- package/lib/zsh/init.zsh +26 -0
- package/lib/zsh/keybindings.zsh +551 -0
- package/lib/zsh/prompt.zsh +90 -0
- package/package.json +42 -27
- package/packages/lacy/README.md +61 -0
- package/packages/lacy/commands/info.sh +25 -0
- package/{index.mjs → packages/lacy/index.mjs} +247 -20
- package/packages/lacy/package-lock.json +71 -0
- package/packages/lacy/package.json +42 -0
- package/script/release.ts +487 -0
- package/squirrel.toml +36 -0
- package/tests/test_bash.bash +163 -0
- package/tests/test_core.sh +607 -0
- package/tests/test_gemini.sh +119 -0
- package/tests/test_gemini_mcp.sh +126 -0
- package/tests/test_preheat_server.zsh +446 -0
- package/uninstall.sh +52 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"mcp__obs__get_obs_status",
|
|
5
|
+
"mcp__obs__list_tool_groups",
|
|
6
|
+
"mcp__obs__list_scenes",
|
|
7
|
+
"WebSearch",
|
|
8
|
+
"WebFetch(domain:syntax.fm)",
|
|
9
|
+
"WebFetch(domain:www.mux.com)",
|
|
10
|
+
"Bash(lsof:*)",
|
|
11
|
+
"Bash(/opt/homebrew/bin/bash:*)",
|
|
12
|
+
"Bash(npx next build:*)",
|
|
13
|
+
"WebFetch(domain:github.com)",
|
|
14
|
+
"WebFetch(domain:opencode.ai)",
|
|
15
|
+
"WebFetch(domain:deepwiki.com)",
|
|
16
|
+
"WebFetch(domain:opencodeguide.com)",
|
|
17
|
+
"WebFetch(domain:developers.openai.com)",
|
|
18
|
+
"WebFetch(domain:geminicli.com)"
|
|
19
|
+
]
|
|
20
|
+
},
|
|
21
|
+
"enabledMcpjsonServers": [
|
|
22
|
+
"obs",
|
|
23
|
+
"dns-analytics"
|
|
24
|
+
],
|
|
25
|
+
"enableAllProjectMcpServers": true
|
|
26
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
name: Bug Report
|
|
2
|
+
description: Something isn't working as expected
|
|
3
|
+
labels: ["bug"]
|
|
4
|
+
body:
|
|
5
|
+
- type: input
|
|
6
|
+
id: shell
|
|
7
|
+
attributes:
|
|
8
|
+
label: Shell
|
|
9
|
+
description: Which shell are you using?
|
|
10
|
+
placeholder: "zsh 5.9 / bash 5.2"
|
|
11
|
+
validations:
|
|
12
|
+
required: true
|
|
13
|
+
- type: input
|
|
14
|
+
id: os
|
|
15
|
+
attributes:
|
|
16
|
+
label: OS
|
|
17
|
+
placeholder: "macOS 15.1 / Ubuntu 24.04 / WSL2"
|
|
18
|
+
validations:
|
|
19
|
+
required: true
|
|
20
|
+
- type: input
|
|
21
|
+
id: ai-tool
|
|
22
|
+
attributes:
|
|
23
|
+
label: AI tool
|
|
24
|
+
description: Which AI CLI are you using with Lacy?
|
|
25
|
+
placeholder: "claude / lash / opencode / gemini / codex / none yet"
|
|
26
|
+
- type: input
|
|
27
|
+
id: version
|
|
28
|
+
attributes:
|
|
29
|
+
label: Lacy version
|
|
30
|
+
description: "Run `lacy version` to check"
|
|
31
|
+
placeholder: "1.8.11"
|
|
32
|
+
- type: textarea
|
|
33
|
+
id: what-happened
|
|
34
|
+
attributes:
|
|
35
|
+
label: What happened?
|
|
36
|
+
description: What did you type and what went wrong?
|
|
37
|
+
validations:
|
|
38
|
+
required: true
|
|
39
|
+
- type: textarea
|
|
40
|
+
id: expected
|
|
41
|
+
attributes:
|
|
42
|
+
label: Expected behavior
|
|
43
|
+
description: What should have happened?
|
|
44
|
+
- type: textarea
|
|
45
|
+
id: doctor
|
|
46
|
+
attributes:
|
|
47
|
+
label: "lacy doctor output"
|
|
48
|
+
description: "Paste the output of `lacy doctor` if relevant"
|
|
49
|
+
render: shell
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: Feature Request
|
|
2
|
+
description: Suggest an improvement or new feature
|
|
3
|
+
labels: ["enhancement"]
|
|
4
|
+
body:
|
|
5
|
+
- type: textarea
|
|
6
|
+
id: description
|
|
7
|
+
attributes:
|
|
8
|
+
label: What would you like?
|
|
9
|
+
description: Describe the feature or improvement
|
|
10
|
+
validations:
|
|
11
|
+
required: true
|
|
12
|
+
- type: textarea
|
|
13
|
+
id: use-case
|
|
14
|
+
attributes:
|
|
15
|
+
label: Use case
|
|
16
|
+
description: When would you use this? What problem does it solve?
|
|
17
|
+
- type: dropdown
|
|
18
|
+
id: area
|
|
19
|
+
attributes:
|
|
20
|
+
label: Area
|
|
21
|
+
options:
|
|
22
|
+
- Detection (how Lacy classifies input)
|
|
23
|
+
- Indicator (visual feedback)
|
|
24
|
+
- Tool integration (Claude, Gemini, etc.)
|
|
25
|
+
- Installation / setup
|
|
26
|
+
- Configuration
|
|
27
|
+
- Shell compatibility
|
|
28
|
+
- Other
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<!-- Thanks for the PR! Quick checklist below. -->
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
<!-- What does this change, and why? -->
|
|
6
|
+
|
|
7
|
+
## How to test
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm test
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Checklist
|
|
14
|
+
|
|
15
|
+
- [ ] `npm test` passes locally
|
|
16
|
+
- [ ] Updated the README if a public option changed
|
|
17
|
+
- [ ] PR is focused (one logical change)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Reporting a vulnerability
|
|
4
|
+
|
|
5
|
+
Lacy intercepts every command you type and routes it either to the shell or to an AI backend. The security-relevant surfaces are:
|
|
6
|
+
|
|
7
|
+
- Command classification / routing logic (does a destructive command stay shell-side as intended?)
|
|
8
|
+
- Backend command construction (no shell injection when forwarding to `claude`, `gemini`, `opencode`, `codex`, `lash`)
|
|
9
|
+
- Credential leakage in fallback paths or panic logs
|
|
10
|
+
|
|
11
|
+
If you've found a security issue, please report it privately:
|
|
12
|
+
|
|
13
|
+
➔ https://github.com/lacymorrow/lacy/security/advisories/new
|
|
14
|
+
|
|
15
|
+
Or email **lacy@lacymorrow.com** with `[lacy security]` in the subject line.
|
|
16
|
+
|
|
17
|
+
Expect an acknowledgement within 72 hours.
|
|
18
|
+
|
|
19
|
+
## Supported versions
|
|
20
|
+
|
|
21
|
+
Only the latest published version on npm / Homebrew / install.sh receives security updates.
|
|
22
|
+
|
|
23
|
+
## Scope
|
|
24
|
+
|
|
25
|
+
In scope:
|
|
26
|
+
- The `lacy` zsh/bash/fish plugins
|
|
27
|
+
- `install.sh` / `uninstall.sh`
|
|
28
|
+
- The Node CLI shim (`lib/`)
|
|
29
|
+
|
|
30
|
+
Out of scope:
|
|
31
|
+
- Vulnerabilities in upstream AI CLIs (`claude`, `gemini`, `opencode`, `codex`, `lash`) — report to those repos
|
|
32
|
+
- Issues that require an attacker who already has shell access on your machine
|
|
Binary file
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 200" fill="none">
|
|
2
|
+
<title>lacy</title>
|
|
3
|
+
<g transform="translate(20, 20)">
|
|
4
|
+
<rect x="0" y="0" width="160" height="160" rx="34" fill="#10b981"/>
|
|
5
|
+
<path d="M45 50 L75 80 L45 110" stroke="#ffffff" stroke-width="14" stroke-linecap="round" stroke-linejoin="round" fill="none"/>
|
|
6
|
+
<rect x="82" y="104" width="44" height="10" rx="3" fill="#ffffff"/>
|
|
7
|
+
</g>
|
|
8
|
+
<text
|
|
9
|
+
x="210"
|
|
10
|
+
y="132"
|
|
11
|
+
font-family="ui-sans-serif, system-ui, -apple-system, 'Inter', 'Segoe UI', Roboto, sans-serif"
|
|
12
|
+
font-size="120"
|
|
13
|
+
font-weight="800"
|
|
14
|
+
letter-spacing="-6"
|
|
15
|
+
fill="#fafafa"
|
|
16
|
+
>lacy</text>
|
|
17
|
+
</svg>
|
|
Binary file
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 200" fill="none">
|
|
2
|
+
<title>lacy</title>
|
|
3
|
+
<g transform="translate(20, 20)">
|
|
4
|
+
<rect x="0" y="0" width="160" height="160" rx="34" fill="#10b981"/>
|
|
5
|
+
<path d="M45 50 L75 80 L45 110" stroke="#ffffff" stroke-width="14" stroke-linecap="round" stroke-linejoin="round" fill="none"/>
|
|
6
|
+
<rect x="82" y="104" width="44" height="10" rx="3" fill="#ffffff"/>
|
|
7
|
+
</g>
|
|
8
|
+
<text
|
|
9
|
+
x="210"
|
|
10
|
+
y="132"
|
|
11
|
+
font-family="ui-sans-serif, system-ui, -apple-system, 'Inter', 'Segoe UI', Roboto, sans-serif"
|
|
12
|
+
font-size="120"
|
|
13
|
+
font-weight="800"
|
|
14
|
+
letter-spacing="-6"
|
|
15
|
+
fill="#1a0b1f"
|
|
16
|
+
>lacy</text>
|
|
17
|
+
</svg>
|
|
Binary file
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="none">
|
|
2
|
+
<title>lacy</title>
|
|
3
|
+
<!-- Rounded square — terminal emerald -->
|
|
4
|
+
<rect x="16" y="16" width="224" height="224" rx="48" fill="#10b981"/>
|
|
5
|
+
<!-- Shell prompt: `>_` glyph -->
|
|
6
|
+
<g fill="#ffffff">
|
|
7
|
+
<!-- Chevron > -->
|
|
8
|
+
<path d="M70 80 L110 128 L70 176" stroke="#ffffff" stroke-width="20" stroke-linecap="round" stroke-linejoin="round" fill="none"/>
|
|
9
|
+
<!-- Underscore cursor -->
|
|
10
|
+
<rect x="124" y="166" width="68" height="14" rx="4"/>
|
|
11
|
+
</g>
|
|
12
|
+
</svg>
|
|
Binary file
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 640" fill="none">
|
|
2
|
+
<title>lacy — Talk to your shell — commands run, questions go to AI</title>
|
|
3
|
+
<defs>
|
|
4
|
+
<radialGradient id="g" cx="80%" cy="20%" r="80%">
|
|
5
|
+
<stop offset="0%" stop-color="#10b981" stop-opacity="0.20"/>
|
|
6
|
+
<stop offset="60%" stop-color="#0a0510" stop-opacity="0"/>
|
|
7
|
+
</radialGradient>
|
|
8
|
+
<pattern id="grid" width="40" height="40" patternUnits="userSpaceOnUse">
|
|
9
|
+
<path d="M 40 0 L 0 0 0 40" fill="none" stroke="#ffffff" stroke-opacity="0.04" stroke-width="1"/>
|
|
10
|
+
</pattern>
|
|
11
|
+
</defs>
|
|
12
|
+
<rect width="1280" height="640" fill="#0a0510"/>
|
|
13
|
+
<rect width="1280" height="640" fill="url(#grid)"/>
|
|
14
|
+
<rect width="1280" height="640" fill="url(#g)"/>
|
|
15
|
+
|
|
16
|
+
<!-- Large decorative mark on right (low opacity) -->
|
|
17
|
+
<g transform="translate(820, 120) scale(1.7)" opacity="0.10">
|
|
18
|
+
<rect x="0" y="0" width="256" height="256" rx="56" fill="#10b981"/>
|
|
19
|
+
|
|
20
|
+
<path d="M70 80 L110 128 L70 176" stroke="#ffffff" stroke-width="20" stroke-linecap="round" stroke-linejoin="round" fill="none"/>
|
|
21
|
+
<rect x="124" y="166" width="68" height="14" rx="4" fill="#ffffff"/>
|
|
22
|
+
</g>
|
|
23
|
+
|
|
24
|
+
<!-- Small primary mark, top-left -->
|
|
25
|
+
<g transform="translate(96, 96) scale(0.47)">
|
|
26
|
+
<rect x="0" y="0" width="256" height="256" rx="56" fill="#10b981"/>
|
|
27
|
+
|
|
28
|
+
<path d="M70 80 L110 128 L70 176" stroke="#ffffff" stroke-width="20" stroke-linecap="round" stroke-linejoin="round" fill="none"/>
|
|
29
|
+
<rect x="124" y="166" width="68" height="14" rx="4" fill="#ffffff"/>
|
|
30
|
+
</g>
|
|
31
|
+
|
|
32
|
+
<!-- Package-type pill, top-right -->
|
|
33
|
+
<g transform="translate(1021, 80)">
|
|
34
|
+
<rect x="0" y="0" width="163" height="36" rx="18" fill="#10b981" fill-opacity="0.16" stroke="#10b981" stroke-opacity="0.50" stroke-width="1"/>
|
|
35
|
+
<g transform="translate(18, 24.5)"><path fill="#10b981" d="M5.55-12.91L0.71-12.91L0.71-16.01L14.18-16.01L14.18-12.91L9.33-12.91L9.33 0L5.55 0L5.55-12.91ZM28.55 0L17.45 0L17.45-16.01L28.56-16.01L28.56-12.91L21.25-12.91L21.25-9.60L27.98-9.60L27.98-6.57L21.25-6.57L21.25-3.09L28.55-3.09L28.55 0ZM35.98 0L32.19 0L32.19-16.01L38.74-16.01Q41.45-16.01 43.01-14.57Q44.58-13.14 44.58-10.69L44.58-10.69Q44.58-9.03 43.85-7.87Q43.13-6.71 41.80-6.11L41.80-6.11L45.14 0L40.98 0L38.05-5.51L35.98-5.51L35.98 0ZM35.98-12.93L35.98-8.51L37.95-8.51Q40.65-8.51 40.65-10.69L40.65-10.69Q40.65-12.93 37.94-12.93L37.94-12.93L35.98-12.93ZM51.88 0L48.08 0L48.08-16.01L53.99-16.01L56.03-9.78Q56.19-9.23 56.40-8.35Q56.61-7.47 56.82-6.45Q57.04-5.42 57.23-4.47L57.23-4.47Q57.41-5.42 57.62-6.44Q57.83-7.46 58.04-8.34Q58.25-9.23 58.41-9.78L58.41-9.78L60.42-16.01L66.34-16.01L66.34 0L62.53 0L62.53-6.90Q62.53-7.51 62.55-8.50Q62.58-9.50 62.61-10.66Q62.64-11.82 62.67-12.89L62.67-12.89Q62.40-11.75 62.10-10.60Q61.81-9.45 61.54-8.48Q61.27-7.51 61.08-6.90L61.08-6.90L58.80 0L55.63 0L53.32-6.90Q53.14-7.49 52.87-8.42Q52.60-9.36 52.31-10.47Q52.01-11.58 51.74-12.71L51.74-12.71Q51.76-11.66 51.79-10.54Q51.83-9.42 51.85-8.46Q51.88-7.50 51.88-6.90L51.88-6.90L51.88 0ZM70.15-16.01L73.94-16.01L73.94 0L70.15 0L70.15-16.01ZM81.64 0L77.76 0L77.76-16.01L81.92-16.01L86.39-8.78Q86.93-7.88 87.43-6.92Q87.94-5.95 88.44-4.64L88.44-4.64Q88.36-5.84 88.29-7.10Q88.22-8.36 88.22-9.20L88.22-9.20L88.22-16.01L92.11-16.01L92.11 0L87.93 0L83.84-6.63Q83.36-7.40 82.98-8.10Q82.60-8.80 82.23-9.56Q81.86-10.32 81.41-11.28L81.41-11.28Q81.51-9.86 81.58-8.62Q81.64-7.38 81.64-6.63L81.64-6.63L81.64 0ZM99.39 0L95.18 0L100.52-16.01L105.60-16.01L111.10 0L106.84 0L105.76-3.41L100.43-3.41L99.39 0ZM101.54-6.99L101.32-6.31L104.84-6.31L104.62-6.99Q104.20-8.37 103.80-9.87Q103.41-11.38 103.02-12.99L103.02-12.99Q102.66-11.37 102.30-9.86Q101.94-8.36 101.54-6.99L101.54-6.99ZM124.65 0L114.17 0L114.17-16.01L117.96-16.01L117.96-3.09L124.65-3.09L124.65 0Z"/></g>
|
|
36
|
+
</g>
|
|
37
|
+
|
|
38
|
+
<!-- Wordmark + tagline -->
|
|
39
|
+
<path fill="#fafafa" d="M185.31 360L109.06 360L109.06 243.59L136.64 243.59L136.64 337.50L185.31 337.50L185.31 360ZM215.91 361.56L215.91 361.56Q203.33 361.56 195.24 355.16Q187.16 348.75 187.16 335.78L187.16 335.78Q187.16 326.09 191.61 320.39Q196.06 314.69 203.45 311.95Q210.83 309.22 219.66 308.44L219.66 308.44Q230.75 307.50 235.55 306.13Q240.36 304.77 240.36 300.70L240.36 300.70L240.36 300.39Q240.36 295.86 237.20 293.40Q234.03 290.94 228.48 290.94L228.48 290.94Q222.78 290.94 219.11 293.36Q215.44 295.78 214.34 299.92L214.34 299.92L189.66 296.72Q192.23 285.55 202.27 278.55Q212.31 271.56 228.72 271.56L228.72 271.56Q239.58 271.56 248.37 274.92Q257.16 278.28 262.35 284.80Q267.55 291.33 267.55 300.70L267.55 300.70L267.55 360L241.92 360L241.92 347.73L241.22 347.73Q233.95 361.56 215.91 361.56ZM224.19 343.52L224.19 343.52Q231.06 343.52 235.83 339.45Q240.59 335.39 240.59 328.91L240.59 328.91L240.59 320.55Q238.25 321.80 233.80 322.66Q229.34 323.52 225.52 324.14L225.52 324.14Q212.94 326.02 212.94 334.53L212.94 334.53Q212.94 338.91 216.10 341.21Q219.27 343.52 224.19 343.52ZM318.14 361.64L318.14 361.64Q304.47 361.64 294.63 355.98Q284.78 350.31 279.51 340.20Q274.23 330.08 274.23 316.64L274.23 316.64Q274.23 303.20 279.51 293.05Q284.78 282.89 294.63 277.23Q304.47 271.56 318.14 271.56L318.14 271.56Q334.86 271.56 345.60 279.92Q356.34 288.28 358.38 302.58L358.38 302.58L333.22 306.80Q331.89 299.92 328.18 296.17Q324.47 292.42 318.45 292.42L318.45 292.42Q310.64 292.42 306.34 298.79Q302.05 305.16 302.05 316.48L302.05 316.48Q302.05 327.73 306.34 334.26Q310.64 340.78 318.45 340.78L318.45 340.78Q324.47 340.78 328.26 336.88Q332.05 332.97 333.30 325.94L333.30 325.94L358.45 330Q356.42 344.69 345.72 353.16Q335.02 361.64 318.14 361.64ZM364.59 390.63L364.59 390.63L370.69 370.70L374.13 371.64Q381.47 373.59 386 371.41Q390.53 369.22 390.22 363.83L390.22 363.83L390.14 360.16L357.56 272.66L386.31 272.66L399.36 315.39Q401.08 321.02 402.25 326.64Q403.42 332.27 404.52 338.13L404.52 338.13Q405.84 332.19 407.33 326.56Q408.81 320.94 410.61 315.39L410.61 315.39L424.59 272.66L453.03 272.66L416.39 369.22Q412.41 379.84 404.52 386.56Q396.63 393.28 381.94 393.28L381.94 393.28Q371.39 393.28 364.59 390.63ZM527.73 361.56L527.73 361.56Q505.86 361.56 492.77 351.64Q479.69 341.72 479.38 321.56L479.38 321.56L505.86 321.56Q506.33 330.08 512.15 334.38Q517.97 338.67 527.42 338.67L527.42 338.67Q536.02 338.67 540.94 335.20Q545.86 331.72 545.86 326.17L545.86 326.17Q545.86 321.17 541.21 318.24Q536.56 315.31 527.03 313.13L527.03 313.13L514.69 310.23Q499.61 306.80 491.02 298.98Q482.42 291.17 482.42 278.05L482.42 278.05Q482.42 267.27 488.24 259.18Q494.06 251.09 504.30 246.56Q514.53 242.03 527.73 242.03L527.73 242.03Q541.25 242.03 551.17 246.60Q561.09 251.17 566.56 259.34Q572.03 267.50 572.19 278.28L572.19 278.28L545.70 278.28Q545.16 271.95 540.55 268.44Q535.94 264.92 527.66 264.92L527.66 264.92Q519.38 264.92 515.16 268.13Q510.94 271.33 510.94 276.17L510.94 276.17Q510.94 281.56 515.63 284.49Q520.31 287.42 528.13 289.14L528.13 289.14L538.20 291.48Q555.08 295.23 564.41 303.75Q573.75 312.27 573.75 326.25L573.75 326.25Q573.75 342.81 561.56 352.19Q549.38 361.56 527.73 361.56ZM607.63 310.16L607.63 310.16L607.63 360L580.36 360L580.36 243.59L607.08 243.59L607.08 290Q610.59 281.56 617.12 276.56Q623.64 271.56 633.80 271.56L633.80 271.56Q647.47 271.56 655.75 280.55Q664.03 289.53 664.03 304.38L664.03 304.38L664.03 360L636.77 360L636.77 309.69Q636.77 302.34 633.02 298.16Q629.27 293.98 622.55 293.98L622.55 293.98Q615.91 293.98 611.77 298.24Q607.63 302.50 607.63 310.16ZM714.70 361.64L714.70 361.64Q694.16 361.64 682.40 349.65Q670.64 337.66 670.64 316.64L670.64 316.64Q670.64 303.20 675.91 293.05Q681.19 282.89 690.88 277.23Q700.56 271.56 713.69 271.56L713.69 271.56Q725.95 271.56 735.45 276.68Q744.94 281.80 750.37 291.76Q755.80 301.72 755.80 316.09L755.80 316.09L755.80 322.97L697.44 322.97Q697.83 332.42 702.63 337.15Q707.44 341.88 715.17 341.88L715.17 341.88Q720.64 341.88 724.63 339.57Q728.61 337.27 730.25 332.89L730.25 332.89L754.55 336.88Q751.27 348.20 740.91 354.92Q730.56 361.64 714.70 361.64ZM697.59 307.11L697.59 307.11L729.94 307.11Q729.16 299.69 725.09 295.51Q721.03 291.33 713.92 291.33L713.92 291.33Q706.73 291.33 702.55 295.59Q698.38 299.84 697.59 307.11ZM762.09 243.59L789.36 243.59L789.36 360L762.09 360L762.09 243.59ZM799.41 243.59L826.67 243.59L826.67 360L799.41 360L799.41 243.59Z"/>
|
|
40
|
+
<path fill="#34d399" d="M108.08 391.22L101.03 391.22L101.03 386.72L120.63 386.72L120.63 391.22L113.58 391.22L113.58 410L108.08 410L108.08 391.22ZM128.02 410.31L128.02 410.31Q125.51 410.31 123.89 409.03Q122.27 407.75 122.27 405.16L122.27 405.16Q122.27 403.22 123.16 402.08Q124.06 400.94 125.53 400.39Q127.01 399.84 128.77 399.69L128.77 399.69Q130.99 399.50 131.95 399.23Q132.91 398.95 132.91 398.14L132.91 398.14L132.91 398.08Q132.91 397.17 132.28 396.68Q131.65 396.19 130.54 396.19L130.54 396.19Q129.40 396.19 128.66 396.67Q127.93 397.16 127.71 397.98L127.71 397.98L122.77 397.34Q123.29 395.11 125.30 393.71Q127.31 392.31 130.59 392.31L130.59 392.31Q132.76 392.31 134.52 392.98Q136.27 393.66 137.31 394.96Q138.35 396.27 138.35 398.14L138.35 398.14L138.35 410L133.23 410L133.23 407.55L133.09 407.55Q131.63 410.31 128.02 410.31ZM129.68 406.70L129.68 406.70Q131.06 406.70 132.01 405.89Q132.96 405.08 132.96 403.78L132.96 403.78L132.96 402.11Q132.49 402.36 131.60 402.53Q130.71 402.70 129.95 402.83L129.95 402.83Q127.43 403.20 127.43 404.91L127.43 404.91Q127.43 405.78 128.06 406.24Q128.70 406.70 129.68 406.70ZM141.64 386.72L147.09 386.72L147.09 410L141.64 410L141.64 386.72ZM155.84 410L150.38 410L150.38 386.72L155.84 386.72L155.84 398.84L156.09 398.84L161.09 392.53L167.29 392.53L161.06 400.16L167.54 410L161.24 410L156.99 403.33L155.84 404.70L155.84 410ZM181.99 392.53L185.13 392.53L185.13 396.58L181.99 396.58L181.99 404.66Q181.99 406.02 183.38 406.02L183.38 406.02Q183.67 406.02 184.17 405.95Q184.68 405.88 184.90 405.83L184.90 405.83L185.60 409.80Q184.68 410.06 183.82 410.16Q182.96 410.25 182.20 410.25L182.20 410.25Q179.42 410.25 177.98 408.95Q176.54 407.64 176.54 405.14L176.54 405.14L176.54 396.58L174.23 396.58L174.23 392.53L176.54 392.53L176.54 388.38L181.99 388.38L181.99 392.53ZM195.72 410.33L195.72 410.33Q192.99 410.33 191.02 409.20Q189.05 408.06 187.99 406.04Q186.94 404.02 186.94 401.33L186.94 401.33Q186.94 398.64 187.99 396.61Q189.05 394.58 191.02 393.45Q192.99 392.31 195.72 392.31L195.72 392.31Q198.46 392.31 200.42 393.45Q202.38 394.58 203.43 396.61Q204.49 398.64 204.49 401.33L204.49 401.33Q204.49 404.02 203.43 406.04Q202.38 408.06 200.42 409.20Q198.46 410.33 195.72 410.33ZM195.72 406.16L195.72 406.16Q197.28 406.16 198.11 404.82Q198.94 403.48 198.94 401.30L198.94 401.30Q198.94 399.11 198.11 397.80Q197.28 396.48 195.72 396.48L195.72 396.48Q194.16 396.48 193.33 397.80Q192.50 399.11 192.50 401.30L192.50 401.30Q192.50 403.48 193.33 404.82Q194.16 406.16 195.72 406.16ZM213.74 416.13L213.74 416.13L214.96 412.14L215.64 412.33Q217.11 412.72 218.02 412.28Q218.92 411.84 218.86 410.77L218.86 410.77L218.85 410.03L212.33 392.53L218.08 392.53L220.69 401.08Q221.03 402.20 221.27 403.33Q221.50 404.45 221.72 405.63L221.72 405.63Q221.99 404.44 222.28 403.31Q222.58 402.19 222.94 401.08L222.94 401.08L225.74 392.53L231.42 392.53L224.10 411.84Q223.30 413.97 221.72 415.31Q220.14 416.66 217.21 416.66L217.21 416.66Q215.10 416.66 213.74 416.13ZM241.35 410.33L241.35 410.33Q238.62 410.33 236.65 409.20Q234.68 408.06 233.63 406.04Q232.57 404.02 232.57 401.33L232.57 401.33Q232.57 398.64 233.63 396.61Q234.68 394.58 236.65 393.45Q238.62 392.31 241.35 392.31L241.35 392.31Q244.09 392.31 246.05 393.45Q248.01 394.58 249.07 396.61Q250.12 398.64 250.12 401.33L250.12 401.33Q250.12 404.02 249.07 406.04Q248.01 408.06 246.05 409.20Q244.09 410.33 241.35 410.33ZM241.35 406.16L241.35 406.16Q242.92 406.16 243.75 404.82Q244.57 403.48 244.57 401.30L244.57 401.30Q244.57 399.11 243.75 397.80Q242.92 396.48 241.35 396.48L241.35 396.48Q239.79 396.48 238.96 397.80Q238.14 399.11 238.14 401.30L238.14 401.30Q238.14 403.48 238.96 404.82Q239.79 406.16 241.35 406.16ZM258.80 410.22L258.80 410.22Q256.05 410.22 254.39 408.42Q252.74 406.63 252.74 403.66L252.74 403.66L252.74 392.53L258.19 392.53L258.19 402.59Q258.19 404.06 258.95 404.90Q259.71 405.73 261.03 405.73L261.03 405.73Q262.38 405.73 263.20 404.88Q264.02 404.03 264.02 402.50L264.02 402.50L264.02 392.53L269.47 392.53L269.47 410L264.35 410L264.27 406.22Q263.57 408.05 262.24 409.13Q260.91 410.22 258.80 410.22ZM278.20 410L272.75 410L272.75 392.53L278.04 392.53L278.04 395.72L278.23 395.72Q278.70 394 279.78 393.16Q280.87 392.31 282.31 392.31L282.31 392.31Q283.11 392.31 283.86 392.50L283.86 392.50L283.86 397.25Q283.46 397.11 282.83 397.04Q282.20 396.97 281.70 396.97L281.70 396.97Q280.18 396.97 279.19 397.94Q278.20 398.91 278.20 400.47L278.20 400.47L278.20 410ZM299.90 410.33L299.90 410.33Q296.54 410.33 294.38 408.91Q292.22 407.50 291.76 405L291.76 405L296.82 404.20Q297.15 405.34 297.93 405.92Q298.72 406.50 300.11 406.50L300.11 406.50Q301.25 406.50 301.90 406.10Q302.56 405.70 302.56 405.05L302.56 405.05Q302.56 403.91 300.42 403.48L300.42 403.48L297.37 402.89Q292.20 401.91 292.20 397.86L292.20 397.86Q292.20 395.25 294.29 393.78Q296.37 392.31 299.89 392.31L299.89 392.31Q303.17 392.31 305.15 393.61Q307.14 394.91 307.59 397.16L307.59 397.16L302.78 397.92Q302.25 396.06 299.98 396.06L299.98 396.06Q299.00 396.06 298.32 396.46Q297.64 396.86 297.64 397.53L297.64 397.53Q297.64 398.06 298.06 398.46Q298.48 398.86 299.61 399.08L299.61 399.08L302.95 399.70Q308.09 400.67 308.09 404.42L308.09 404.42Q308.09 406.22 307.04 407.55Q305.98 408.88 304.14 409.60Q302.29 410.33 299.90 410.33ZM316.02 400.03L316.02 400.03L316.02 410L310.57 410L310.57 386.72L315.91 386.72L315.91 396Q316.61 394.31 317.92 393.31Q319.22 392.31 321.25 392.31L321.25 392.31Q323.99 392.31 325.65 394.11Q327.30 395.91 327.30 398.88L327.30 398.88L327.30 410L321.85 410L321.85 399.94Q321.85 398.47 321.10 397.63Q320.35 396.80 319.00 396.80L319.00 396.80Q317.68 396.80 316.85 397.65Q316.02 398.50 316.02 400.03ZM338.72 410.33L338.72 410.33Q334.61 410.33 332.25 407.93Q329.90 405.53 329.90 401.33L329.90 401.33Q329.90 398.64 330.96 396.61Q332.01 394.58 333.95 393.45Q335.89 392.31 338.51 392.31L338.51 392.31Q340.97 392.31 342.86 393.34Q344.76 394.36 345.85 396.35Q346.93 398.34 346.93 401.22L346.93 401.22L346.93 402.59L335.26 402.59Q335.34 404.48 336.30 405.43Q337.26 406.38 338.81 406.38L338.81 406.38Q339.90 406.38 340.70 405.91Q341.50 405.45 341.83 404.58L341.83 404.58L346.68 405.38Q346.03 407.64 343.96 408.98Q341.89 410.33 338.72 410.33ZM335.29 399.42L335.29 399.42L341.76 399.42Q341.61 397.94 340.79 397.10Q339.98 396.27 338.56 396.27L338.56 396.27Q337.12 396.27 336.29 397.12Q335.45 397.97 335.29 399.42ZM349.47 386.72L354.93 386.72L354.93 410L349.47 410L349.47 386.72ZM358.22 386.72L363.67 386.72L363.67 410L358.22 410L358.22 386.72ZM371.84 398.47L403.84 398.47L403.84 402.67L371.84 402.67L371.84 398.47ZM420.11 410.33L420.11 410.33Q417.37 410.33 415.41 409.20Q413.44 408.06 412.38 406.04Q411.33 404.02 411.33 401.33L411.33 401.33Q411.33 398.64 412.38 396.61Q413.44 394.58 415.41 393.45Q417.37 392.31 420.11 392.31L420.11 392.31Q423.45 392.31 425.60 393.98Q427.75 395.66 428.16 398.52L428.16 398.52L423.12 399.36Q422.86 397.98 422.12 397.23Q421.37 396.48 420.17 396.48L420.17 396.48Q418.61 396.48 417.75 397.76Q416.89 399.03 416.89 401.30L416.89 401.30Q416.89 403.55 417.75 404.85Q418.61 406.16 420.17 406.16L420.17 406.16Q421.37 406.16 422.13 405.38Q422.89 404.59 423.14 403.19L423.14 403.19L428.17 404Q427.76 406.94 425.62 408.63Q423.48 410.33 420.11 410.33ZM438.84 410.33L438.84 410.33Q436.10 410.33 434.13 409.20Q432.16 408.06 431.11 406.04Q430.05 404.02 430.05 401.33L430.05 401.33Q430.05 398.64 431.11 396.61Q432.16 394.58 434.13 393.45Q436.10 392.31 438.84 392.31L438.84 392.31Q441.57 392.31 443.53 393.45Q445.49 394.58 446.55 396.61Q447.60 398.64 447.60 401.33L447.60 401.33Q447.60 404.02 446.55 406.04Q445.49 408.06 443.53 409.20Q441.57 410.33 438.84 410.33ZM438.84 406.16L438.84 406.16Q440.40 406.16 441.23 404.82Q442.05 403.48 442.05 401.30L442.05 401.30Q442.05 399.11 441.23 397.80Q440.40 396.48 438.84 396.48L438.84 396.48Q437.27 396.48 436.44 397.80Q435.62 399.11 435.62 401.30L435.62 401.30Q435.62 403.48 436.44 404.82Q437.27 406.16 438.84 406.16ZM455.67 410L450.22 410L450.22 392.53L455.23 392.53L455.48 396Q456.20 394.03 457.57 393.16Q458.94 392.30 460.52 392.30L460.52 392.30Q462.17 392.30 463.27 393.25Q464.37 394.20 465.02 396.34L465.02 396.34Q465.81 394.19 467.37 393.24Q468.92 392.30 470.69 392.30L470.69 392.30Q473.14 392.30 474.71 393.88Q476.28 395.45 476.28 398.22L476.28 398.22L476.28 410L470.83 410L470.83 399.45Q470.83 398.13 470.14 397.44Q469.45 396.75 468.37 396.75L468.37 396.75Q467.22 396.75 466.55 397.51Q465.87 398.27 465.87 399.52L465.87 399.52L465.87 410L460.64 410L460.64 399.38Q460.64 398.17 459.96 397.46Q459.28 396.75 458.20 396.75L458.20 396.75Q457.09 396.75 456.38 397.50Q455.67 398.25 455.67 399.63L455.67 399.63L455.67 410ZM485.02 410L479.57 410L479.57 392.53L484.59 392.53L484.84 396Q485.55 394.03 486.92 393.16Q488.29 392.30 489.87 392.30L489.87 392.30Q491.52 392.30 492.62 393.25Q493.73 394.20 494.37 396.34L494.37 396.34Q495.16 394.19 496.72 393.24Q498.27 392.30 500.04 392.30L500.04 392.30Q502.49 392.30 504.06 393.88Q505.63 395.45 505.63 398.22L505.63 398.22L505.63 410L500.18 410L500.18 399.45Q500.18 398.13 499.49 397.44Q498.80 396.75 497.73 396.75L497.73 396.75Q496.57 396.75 495.90 397.51Q495.23 398.27 495.23 399.52L495.23 399.52L495.23 410L489.99 410L489.99 399.38Q489.99 398.17 489.31 397.46Q488.63 396.75 487.55 396.75L487.55 396.75Q486.45 396.75 485.73 397.50Q485.02 398.25 485.02 399.63L485.02 399.63L485.02 410ZM513.81 410.31L513.81 410.31Q511.30 410.31 509.68 409.03Q508.06 407.75 508.06 405.16L508.06 405.16Q508.06 403.22 508.95 402.08Q509.84 400.94 511.32 400.39Q512.80 399.84 514.56 399.69L514.56 399.69Q516.78 399.50 517.74 399.23Q518.70 398.95 518.70 398.14L518.70 398.14L518.70 398.08Q518.70 397.17 518.07 396.68Q517.44 396.19 516.33 396.19L516.33 396.19Q515.19 396.19 514.45 396.67Q513.72 397.16 513.50 397.98L513.50 397.98L508.56 397.34Q509.08 395.11 511.09 393.71Q513.09 392.31 516.38 392.31L516.38 392.31Q518.55 392.31 520.30 392.98Q522.06 393.66 523.10 394.96Q524.14 396.27 524.14 398.14L524.14 398.14L524.14 410L519.02 410L519.02 407.55L518.88 407.55Q517.42 410.31 513.81 410.31ZM515.47 406.70L515.47 406.70Q516.84 406.70 517.80 405.89Q518.75 405.08 518.75 403.78L518.75 403.78L518.75 402.11Q518.28 402.36 517.39 402.53Q516.50 402.70 515.73 402.83L515.73 402.83Q513.22 403.20 513.22 404.91L513.22 404.91Q513.22 405.78 513.85 406.24Q514.48 406.70 515.47 406.70ZM532.88 400.03L532.88 400.03L532.88 410L527.43 410L527.43 392.53L532.56 392.53L532.65 396.30Q533.34 394.48 534.66 393.40Q535.99 392.31 538.12 392.31L538.12 392.31Q540.85 392.31 542.51 394.11Q544.16 395.91 544.16 398.88L544.16 398.88L544.16 410L538.71 410L538.71 399.94Q538.71 398.47 537.96 397.63Q537.21 396.80 535.87 396.80L535.87 396.80Q534.54 396.80 533.71 397.65Q532.88 398.50 532.88 400.03ZM553.77 410.25L553.77 410.25Q551.83 410.25 550.24 409.24Q548.64 408.23 547.70 406.24Q546.77 404.25 546.77 401.28L546.77 401.28Q546.77 398.22 547.74 396.23Q548.72 394.25 550.31 393.28Q551.89 392.31 553.72 392.31L553.72 392.31Q555.11 392.31 556.09 392.79Q557.08 393.27 557.71 394.01Q558.34 394.75 558.67 395.53L558.67 395.53L558.80 395.53L558.80 386.72L564.24 386.72L564.24 410L558.86 410L558.86 407.17L558.67 407.17Q558.16 408.36 556.96 409.30Q555.77 410.25 553.77 410.25ZM555.63 406L555.63 406Q557.17 406 558.05 404.71Q558.92 403.42 558.92 401.28L558.92 401.28Q558.92 399.11 558.06 397.84Q557.19 396.58 555.63 396.58L555.63 396.58Q554.05 396.58 553.21 397.87Q552.38 399.16 552.38 401.28L552.38 401.28Q552.38 403.41 553.21 404.70Q554.05 406 555.63 406ZM574.88 410.33L574.88 410.33Q571.52 410.33 569.36 408.91Q567.20 407.50 566.74 405L566.74 405L571.81 404.20Q572.13 405.34 572.92 405.92Q573.70 406.50 575.09 406.50L575.09 406.50Q576.23 406.50 576.88 406.10Q577.54 405.70 577.54 405.05L577.54 405.05Q577.54 403.91 575.40 403.48L575.40 403.48L572.35 402.89Q567.18 401.91 567.18 397.86L567.18 397.86Q567.18 395.25 569.27 393.78Q571.35 392.31 574.87 392.31L574.87 392.31Q578.15 392.31 580.13 393.61Q582.12 394.91 582.57 397.16L582.57 397.16L577.76 397.92Q577.23 396.06 574.96 396.06L574.96 396.06Q573.98 396.06 573.30 396.46Q572.62 396.86 572.62 397.53L572.62 397.53Q572.62 398.06 573.04 398.46Q573.46 398.86 574.59 399.08L574.59 399.08L577.93 399.70Q583.07 400.67 583.07 404.42L583.07 404.42Q583.07 406.22 582.02 407.55Q580.96 408.88 579.12 409.60Q577.27 410.33 574.88 410.33ZM597.68 410L592.23 410L592.23 392.53L597.52 392.53L597.52 395.72L597.71 395.72Q598.18 394 599.27 393.16Q600.35 392.31 601.79 392.31L601.79 392.31Q602.59 392.31 603.34 392.50L603.34 392.50L603.34 397.25Q602.95 397.11 602.31 397.04Q601.68 396.97 601.18 396.97L601.18 396.97Q599.67 396.97 598.67 397.94Q597.68 398.91 597.68 400.47L597.68 400.47L597.68 410ZM611.41 410.22L611.41 410.22Q608.66 410.22 607.00 408.42Q605.35 406.63 605.35 403.66L605.35 403.66L605.35 392.53L610.80 392.53L610.80 402.59Q610.80 404.06 611.56 404.90Q612.31 405.73 613.64 405.73L613.64 405.73Q614.99 405.73 615.81 404.88Q616.63 404.03 616.63 402.50L616.63 402.50L616.63 392.53L622.08 392.53L622.08 410L616.95 410L616.88 406.22Q616.17 408.05 614.85 409.13Q613.52 410.22 611.41 410.22ZM630.81 400.03L630.81 400.03L630.81 410L625.35 410L625.35 392.53L630.48 392.53L630.57 396.30Q631.26 394.48 632.59 393.40Q633.92 392.31 636.04 392.31L636.04 392.31Q638.78 392.31 640.43 394.11Q642.09 395.91 642.09 398.88L642.09 398.88L642.09 410L636.63 410L636.63 399.94Q636.63 398.47 635.88 397.63Q635.13 396.80 633.79 396.80L633.79 396.80Q632.46 396.80 631.63 397.65Q630.81 398.50 630.81 400.03ZM648.97 416.41L645.38 416.41L646.75 406.38L652.03 406.38L648.97 416.41ZM679.80 392.53L679.80 416.53L674.36 416.53L674.36 407.17L674.24 407.17Q673.72 408.36 672.53 409.30Q671.33 410.25 669.33 410.25L669.33 410.25Q667.39 410.25 665.80 409.24Q664.21 408.23 663.27 406.24Q662.33 404.25 662.33 401.28L662.33 401.28Q662.33 398.22 663.31 396.23Q664.28 394.25 665.87 393.28Q667.46 392.31 669.28 392.31L669.28 392.31Q670.67 392.31 671.66 392.79Q672.64 393.27 673.28 394.01Q673.91 394.75 674.24 395.53L674.24 395.53L674.42 395.53L674.42 392.53L679.80 392.53ZM671.19 406L671.19 406Q672.74 406 673.61 404.71Q674.49 403.42 674.49 401.28L674.49 401.28Q674.49 399.11 673.62 397.84Q672.75 396.58 671.19 396.58L671.19 396.58Q669.61 396.58 668.78 397.87Q667.94 399.16 667.94 401.28L667.94 401.28Q667.94 403.41 668.78 404.70Q669.61 406 671.19 406ZM689.15 410.22L689.15 410.22Q686.40 410.22 684.75 408.42Q683.09 406.63 683.09 403.66L683.09 403.66L683.09 392.53L688.54 392.53L688.54 402.59Q688.54 404.06 689.30 404.90Q690.06 405.73 691.39 405.73L691.39 405.73Q692.73 405.73 693.55 404.88Q694.37 404.03 694.37 402.50L694.37 402.50L694.37 392.53L699.82 392.53L699.82 410L694.70 410L694.62 406.22Q693.92 408.05 692.59 409.13Q691.26 410.22 689.15 410.22ZM711.24 410.33L711.24 410.33Q707.13 410.33 704.78 407.93Q702.43 405.53 702.43 401.33L702.43 401.33Q702.43 398.64 703.48 396.61Q704.53 394.58 706.47 393.45Q708.41 392.31 711.03 392.31L711.03 392.31Q713.49 392.31 715.39 393.34Q717.28 394.36 718.37 396.35Q719.46 398.34 719.46 401.22L719.46 401.22L719.46 402.59L707.78 402.59Q707.86 404.48 708.82 405.43Q709.78 406.38 711.33 406.38L711.33 406.38Q712.43 406.38 713.22 405.91Q714.02 405.45 714.35 404.58L714.35 404.58L719.21 405.38Q718.55 407.64 716.48 408.98Q714.41 410.33 711.24 410.33ZM707.82 399.42L707.82 399.42L714.28 399.42Q714.13 397.94 713.32 397.10Q712.50 396.27 711.08 396.27L711.08 396.27Q709.64 396.27 708.81 397.12Q707.97 397.97 707.82 399.42ZM729.36 410.33L729.36 410.33Q726.00 410.33 723.83 408.91Q721.67 407.50 721.21 405L721.21 405L726.28 404.20Q726.61 405.34 727.39 405.92Q728.17 406.50 729.56 406.50L729.56 406.50Q730.70 406.50 731.36 406.10Q732.01 405.70 732.01 405.05L732.01 405.05Q732.01 403.91 729.87 403.48L729.87 403.48L726.82 402.89Q721.65 401.91 721.65 397.86L721.65 397.86Q721.65 395.25 723.74 393.78Q725.82 392.31 729.34 392.31L729.34 392.31Q732.62 392.31 734.61 393.61Q736.59 394.91 737.04 397.16L737.04 397.16L732.23 397.92Q731.70 396.06 729.43 396.06L729.43 396.06Q728.45 396.06 727.77 396.46Q727.09 396.86 727.09 397.53L727.09 397.53Q727.09 398.06 727.51 398.46Q727.93 398.86 729.06 399.08L729.06 399.08L732.40 399.70Q737.54 400.67 737.54 404.42L737.54 404.42Q737.54 406.22 736.49 407.55Q735.43 408.88 733.59 409.60Q731.75 410.33 729.36 410.33ZM746.30 392.53L749.44 392.53L749.44 396.58L746.30 396.58L746.30 404.66Q746.30 406.02 747.69 406.02L747.69 406.02Q747.97 406.02 748.48 405.95Q748.99 405.88 749.21 405.83L749.21 405.83L749.91 409.80Q748.99 410.06 748.13 410.16Q747.27 410.25 746.50 410.25L746.50 410.25Q743.72 410.25 742.29 408.95Q740.85 407.64 740.85 405.14L740.85 405.14L740.85 396.58L738.54 396.58L738.54 392.53L740.85 392.53L740.85 388.38L746.30 388.38L746.30 392.53ZM757.37 410L751.92 410L751.92 392.53L757.37 392.53L757.37 410ZM754.64 390.48L754.64 390.48Q753.48 390.48 752.65 389.72Q751.82 388.95 751.82 387.86L751.82 387.86Q751.82 386.77 752.65 386Q753.48 385.23 754.64 385.23L754.64 385.23Q755.81 385.23 756.64 386Q757.47 386.77 757.47 387.86L757.47 387.86Q757.47 388.95 756.64 389.72Q755.81 390.48 754.64 390.48ZM768.77 410.33L768.77 410.33Q766.04 410.33 764.07 409.20Q762.10 408.06 761.04 406.04Q759.99 404.02 759.99 401.33L759.99 401.33Q759.99 398.64 761.04 396.61Q762.10 394.58 764.07 393.45Q766.04 392.31 768.77 392.31L768.77 392.31Q771.50 392.31 773.47 393.45Q775.43 394.58 776.48 396.61Q777.54 398.64 777.54 401.33L777.54 401.33Q777.54 404.02 776.48 406.04Q775.43 408.06 773.47 409.20Q771.50 410.33 768.77 410.33ZM768.77 406.16L768.77 406.16Q770.33 406.16 771.16 404.82Q771.99 403.48 771.99 401.30L771.99 401.30Q771.99 399.11 771.16 397.80Q770.33 396.48 768.77 396.48L768.77 396.48Q767.21 396.48 766.38 397.80Q765.55 399.11 765.55 401.30L765.55 401.30Q765.55 403.48 766.38 404.82Q767.21 406.16 768.77 406.16ZM785.61 400.03L785.61 400.03L785.61 410L780.15 410L780.15 392.53L785.28 392.53L785.37 396.30Q786.06 394.48 787.39 393.40Q788.72 392.31 790.84 392.31L790.84 392.31Q793.58 392.31 795.23 394.11Q796.89 395.91 796.89 398.88L796.89 398.88L796.89 410L791.43 410L791.43 399.94Q791.43 398.47 790.68 397.63Q789.93 396.80 788.59 396.80L788.59 396.80Q787.26 396.80 786.43 397.65Q785.61 398.50 785.61 400.03ZM807.52 410.33L807.52 410.33Q804.16 410.33 802.00 408.91Q799.83 407.50 799.38 405L799.38 405L804.44 404.20Q804.77 405.34 805.55 405.92Q806.33 406.50 807.72 406.50L807.72 406.50Q808.86 406.50 809.52 406.10Q810.18 405.70 810.18 405.05L810.18 405.05Q810.18 403.91 808.04 403.48L808.04 403.48L804.99 402.89Q799.82 401.91 799.82 397.86L799.82 397.86Q799.82 395.25 801.90 393.78Q803.99 392.31 807.51 392.31L807.51 392.31Q810.79 392.31 812.77 393.61Q814.76 394.91 815.21 397.16L815.21 397.16L810.40 397.92Q809.86 396.06 807.60 396.06L807.60 396.06Q806.61 396.06 805.94 396.46Q805.26 396.86 805.26 397.53L805.26 397.53Q805.26 398.06 805.68 398.46Q806.10 398.86 807.22 399.08L807.22 399.08L810.57 399.70Q815.71 400.67 815.71 404.42L815.71 404.42Q815.71 406.22 814.65 407.55Q813.60 408.88 811.76 409.60Q809.91 410.33 807.52 410.33ZM832.91 416.91L832.91 416.91Q829.49 416.91 827.38 415.64Q825.27 414.38 824.80 412.33L824.80 412.33L829.54 411.36Q829.77 412.06 830.59 412.59Q831.41 413.11 832.88 413.11L832.88 413.11Q834.55 413.11 835.45 412.36Q836.35 411.61 836.35 410.05L836.35 410.05L836.35 406.95L835.93 406.95Q835.44 408.14 834.30 408.95Q833.15 409.77 831.19 409.77L831.19 409.77Q829.27 409.77 827.69 408.87Q826.10 407.97 825.15 406.09Q824.19 404.20 824.19 401.27L824.19 401.27Q824.19 398.20 825.17 396.22Q826.15 394.23 827.74 393.27Q829.33 392.31 831.18 392.31L831.18 392.31Q833.26 392.31 834.47 393.33Q835.68 394.34 836.18 395.53L836.18 395.53L836.33 395.53L836.33 392.53L841.72 392.53L841.72 409.61Q841.72 412.02 840.61 413.64Q839.49 415.27 837.51 416.09Q835.52 416.91 832.91 416.91ZM833.05 405.77L833.05 405.77Q834.62 405.77 835.48 404.57Q836.35 403.38 836.35 401.25L836.35 401.25Q836.35 399.09 835.49 397.84Q834.63 396.58 833.05 396.58L833.05 396.58Q831.47 396.58 830.64 397.86Q829.80 399.14 829.80 401.25L829.80 401.25Q829.80 403.36 830.65 404.56Q831.49 405.77 833.05 405.77ZM853.11 410.33L853.11 410.33Q850.37 410.33 848.40 409.20Q846.44 408.06 845.38 406.04Q844.33 404.02 844.33 401.33L844.33 401.33Q844.33 398.64 845.38 396.61Q846.44 394.58 848.40 393.45Q850.37 392.31 853.11 392.31L853.11 392.31Q855.84 392.31 857.80 393.45Q859.76 394.58 860.82 396.61Q861.87 398.64 861.87 401.33L861.87 401.33Q861.87 404.02 860.82 406.04Q859.76 408.06 857.80 409.20Q855.84 410.33 853.11 410.33ZM853.11 406.16L853.11 406.16Q854.67 406.16 855.50 404.82Q856.33 403.48 856.33 401.30L856.33 401.30Q856.33 399.11 855.50 397.80Q854.67 396.48 853.11 396.48L853.11 396.48Q851.55 396.48 850.72 397.80Q849.89 399.11 849.89 401.30L849.89 401.30Q849.89 403.48 850.72 404.82Q851.55 406.16 853.11 406.16ZM877.45 392.53L880.59 392.53L880.59 396.58L877.45 396.58L877.45 404.66Q877.45 406.02 878.84 406.02L878.84 406.02Q879.12 406.02 879.63 405.95Q880.14 405.88 880.36 405.83L880.36 405.83L881.06 409.80Q880.14 410.06 879.28 410.16Q878.42 410.25 877.66 410.25L877.66 410.25Q874.87 410.25 873.44 408.95Q872.00 407.64 872.00 405.14L872.00 405.14L872.00 396.58L869.69 396.58L869.69 392.53L872.00 392.53L872.00 388.38L877.45 388.38L877.45 392.53ZM891.18 410.33L891.18 410.33Q888.44 410.33 886.48 409.20Q884.51 408.06 883.45 406.04Q882.40 404.02 882.40 401.33L882.40 401.33Q882.40 398.64 883.45 396.61Q884.51 394.58 886.48 393.45Q888.44 392.31 891.18 392.31L891.18 392.31Q893.91 392.31 895.87 393.45Q897.84 394.58 898.89 396.61Q899.94 398.64 899.94 401.33L899.94 401.33Q899.94 404.02 898.89 406.04Q897.84 408.06 895.87 409.20Q893.91 410.33 891.18 410.33ZM891.18 406.16L891.18 406.16Q892.74 406.16 893.57 404.82Q894.40 403.48 894.40 401.30L894.40 401.30Q894.40 399.11 893.57 397.80Q892.74 396.48 891.18 396.48L891.18 396.48Q889.62 396.48 888.79 397.80Q887.96 399.11 887.96 401.30L887.96 401.30Q887.96 403.48 888.79 404.82Q889.62 406.16 891.18 406.16ZM914.30 410L908.18 410L915.95 386.72L923.34 386.72L931.34 410L925.15 410L923.57 405.05L915.82 405.05L914.30 410ZM917.43 399.83L917.12 400.83L922.23 400.83L921.91 399.83Q921.30 397.83 920.73 395.64Q920.15 393.45 919.59 391.11L919.59 391.11Q919.05 393.47 918.53 395.66Q918.01 397.84 917.43 399.83L917.43 399.83ZM933.56 386.72L939.08 386.72L939.08 410L933.56 410L933.56 386.72Z"/>
|
|
41
|
+
|
|
42
|
+
<!-- Terminal-style install line -->
|
|
43
|
+
<g>
|
|
44
|
+
<rect x="100" y="480" width="234" height="48" rx="10" fill="#1a0b1f" stroke="#10b981" stroke-opacity="0.35" stroke-width="1"/>
|
|
45
|
+
<path fill="#10b981" d="M119.93 514.20L118.07 514.20L118.07 510.24Q115.13 510 113.44 508.38Q111.74 506.76 111.71 504.12L111.71 504.12L115.46 504.12Q115.46 505.23 116.15 505.96Q116.84 506.70 118.07 506.94L118.07 506.94L118.07 500.58L117.53 500.43Q114.95 499.77 113.56 498.06Q112.16 496.35 112.16 493.92L112.16 493.92Q112.16 491.37 113.75 489.74Q115.34 488.10 118.07 487.86L118.07 487.86L118.07 483.90L119.93 483.90L119.93 487.83Q122.72 488.07 124.33 489.68Q125.93 491.28 125.96 493.83L125.96 493.83L122.21 493.83Q122.21 491.61 119.93 491.16L119.93 491.16L119.93 497.22L120.92 497.49Q123.53 498.15 124.91 499.85Q126.29 501.54 126.29 504.03L126.29 504.03Q126.29 506.64 124.56 508.33Q122.84 510.03 119.93 510.27L119.93 510.27L119.93 514.20ZM115.91 493.71L115.91 493.71Q115.91 494.76 116.47 495.54Q117.02 496.32 118.07 496.68L118.07 496.68L118.07 491.16Q115.91 491.58 115.91 493.71ZM119.93 501.18L119.93 506.97Q121.16 506.79 121.85 506.06Q122.54 505.32 122.54 504.18L122.54 504.18Q122.54 503.07 121.85 502.26Q121.16 501.45 119.93 501.18L119.93 501.18Z"/>
|
|
46
|
+
<path fill="#fafafa" d="M144.06 510L140.31 510L140.31 493.50L143.97 493.50L143.97 496.59Q144.27 495.03 145.44 494.12Q146.61 493.20 148.41 493.20L148.41 493.20Q150.84 493.20 152.29 494.82Q153.75 496.44 153.75 499.17L153.75 499.17L153.75 510L150 510L150 499.62Q150 498.09 149.21 497.26Q148.41 496.44 147.06 496.44L147.06 496.44Q145.65 496.44 144.85 497.28Q144.06 498.12 144.06 499.68L144.06 499.68L144.06 510ZM162.06 515.40L158.31 515.40L158.31 493.50L161.97 493.50L161.97 496.53Q162.42 494.97 163.59 494.08Q164.76 493.20 166.50 493.20L166.50 493.20Q168.09 493.20 169.31 493.98Q170.52 494.76 171.19 496.19Q171.87 497.61 171.87 499.50L171.87 499.50L171.87 503.97Q171.87 506.82 170.40 508.56Q168.93 510.30 166.50 510.30L166.50 510.30Q164.76 510.30 163.57 509.40Q162.39 508.50 161.94 506.88L161.94 506.88L162.06 510.78L162.06 515.40ZM165.09 507.06L165.09 507.06Q166.53 507.06 167.32 506.28Q168.12 505.50 168.12 503.88L168.12 503.88L168.12 499.62Q168.12 498 167.32 497.22Q166.53 496.44 165.09 496.44L165.09 496.44Q163.65 496.44 162.85 497.31Q162.06 498.18 162.06 499.77L162.06 499.77L162.06 503.73Q162.06 505.32 162.85 506.19Q163.65 507.06 165.09 507.06ZM179.34 510L175.08 510L180.84 501.48L175.47 493.50L179.70 493.50L182.25 497.55Q182.49 497.91 182.70 498.36Q182.91 498.81 183 499.08L183 499.08Q183.12 498.81 183.31 498.36Q183.51 497.91 183.75 497.55L183.75 497.55L186.30 493.50L190.56 493.50L185.19 501.48L190.92 510L186.66 510L183.81 505.47Q183.57 505.11 183.34 504.64Q183.12 504.18 183 503.91L183 503.91Q182.88 504.18 182.67 504.64Q182.46 505.11 182.22 505.47L182.22 505.47L179.34 510ZM226.77 510L221.67 510Q219.21 510 217.72 508.53Q216.24 507.06 216.24 504.66L216.24 504.66L216.24 491.49L210.81 491.49L210.81 488.10L219.99 488.10L219.99 504.57Q219.99 505.50 220.51 506.06Q221.04 506.61 221.94 506.61L221.94 506.61L226.77 506.61L226.77 510ZM235.17 510.30L235.17 510.30Q232.65 510.30 231.19 508.88Q229.74 507.45 229.74 505.14L229.74 505.14Q229.74 502.74 231.39 501.31Q233.04 499.89 235.92 499.89L235.92 499.89L239.94 499.89L239.94 498.72Q239.94 496.23 237.03 496.23L237.03 496.23Q235.71 496.23 234.93 496.74Q234.15 497.25 234.06 498.18L234.06 498.18L230.46 498.18Q230.58 495.96 232.34 494.58Q234.09 493.20 237.06 493.20L237.06 493.20Q240.21 493.20 241.95 494.67Q243.69 496.14 243.69 498.81L243.69 498.81L243.69 510L240.03 510L240.03 506.91Q239.82 508.50 238.53 509.40Q237.24 510.30 235.17 510.30ZM236.37 507.24L236.37 507.24Q238.02 507.24 238.98 506.43Q239.94 505.62 239.94 504.27L239.94 504.27L239.94 502.32L236.10 502.32Q234.87 502.32 234.15 503.01Q233.43 503.70 233.43 504.78L233.43 504.78Q233.43 505.89 234.19 506.56Q234.96 507.24 236.37 507.24ZM255.27 510.30L255.27 510.30Q253.14 510.30 251.56 509.50Q249.99 508.71 249.12 507.25Q248.25 505.80 248.25 503.82L248.25 503.82L248.25 499.68Q248.25 497.70 249.12 496.25Q249.99 494.79 251.56 494.00Q253.14 493.20 255.27 493.20L255.27 493.20Q258.36 493.20 260.24 494.81Q262.11 496.41 262.20 499.17L262.20 499.17L258.51 499.17Q258.42 497.88 257.54 497.18Q256.65 496.47 255.27 496.47L255.27 496.47Q253.74 496.47 252.87 497.30Q252 498.12 252 499.65L252 499.65L252 503.82Q252 505.35 252.87 506.19Q253.74 507.03 255.27 507.03L255.27 507.03Q256.68 507.03 257.55 506.32Q258.42 505.62 258.51 504.33L258.51 504.33L262.20 504.33Q262.11 507.09 260.24 508.69Q258.36 510.30 255.27 510.30ZM272.88 515.40L268.95 515.40L271.29 509.10L265.08 493.50L269.04 493.50L272.22 501.93Q272.49 502.68 272.76 503.56Q273.03 504.45 273.15 505.20L273.15 505.20Q273.24 504.45 273.50 503.56Q273.75 502.68 274.02 501.93L274.02 501.93L276.96 493.50L280.92 493.50L272.88 515.40Z"/>
|
|
47
|
+
</g>
|
|
48
|
+
|
|
49
|
+
<path fill="#6b6275" d="M1016.36 577.45L1019.77 577.45L1019.77 592L1016.36 592L1016.36 577.45ZM1025.08 592.20L1025.08 592.20Q1023.51 592.20 1022.50 591.39Q1021.49 590.59 1021.49 588.97L1021.49 588.97Q1021.49 587.76 1022.05 587.05Q1022.60 586.34 1023.53 585.99Q1024.45 585.65 1025.55 585.55L1025.55 585.55Q1026.94 585.44 1027.54 585.27Q1028.14 585.10 1028.14 584.59L1028.14 584.59L1028.14 584.55Q1028.14 583.98 1027.75 583.67Q1027.35 583.37 1026.66 583.37L1026.66 583.37Q1025.94 583.37 1025.48 583.67Q1025.03 583.97 1024.89 584.49L1024.89 584.49L1021.80 584.09Q1022.13 582.69 1023.38 581.82Q1024.63 580.95 1026.69 580.95L1026.69 580.95Q1028.04 580.95 1029.14 581.37Q1030.24 581.79 1030.89 582.60Q1031.54 583.42 1031.54 584.59L1031.54 584.59L1031.54 592L1028.34 592L1028.34 590.47L1028.25 590.47Q1027.34 592.20 1025.08 592.20ZM1026.12 589.94L1026.12 589.94Q1026.98 589.94 1027.57 589.43Q1028.17 588.92 1028.17 588.11L1028.17 588.11L1028.17 587.07Q1027.88 587.22 1027.32 587.33Q1026.76 587.44 1026.29 587.52L1026.29 587.52Q1024.71 587.75 1024.71 588.82L1024.71 588.82Q1024.71 589.36 1025.11 589.65Q1025.50 589.94 1026.12 589.94ZM1038.86 592.21L1038.86 592.21Q1037.15 592.21 1035.92 591.50Q1034.69 590.79 1034.03 589.52Q1033.38 588.26 1033.38 586.58L1033.38 586.58Q1033.38 584.90 1034.03 583.63Q1034.69 582.36 1035.92 581.65Q1037.15 580.95 1038.86 580.95L1038.86 580.95Q1040.95 580.95 1042.30 581.99Q1043.64 583.04 1043.89 584.82L1043.89 584.82L1040.75 585.35Q1040.58 584.49 1040.12 584.02Q1039.65 583.55 1038.90 583.55L1038.90 583.55Q1037.93 583.55 1037.39 584.35Q1036.85 585.14 1036.85 586.56L1036.85 586.56Q1036.85 587.97 1037.39 588.78Q1037.93 589.60 1038.90 589.60L1038.90 589.60Q1039.65 589.60 1040.13 589.11Q1040.60 588.62 1040.76 587.74L1040.76 587.74L1043.90 588.25Q1043.65 590.09 1042.31 591.15Q1040.97 592.21 1038.86 592.21ZM1045.67 595.83L1045.67 595.83L1046.43 593.34L1046.86 593.46Q1047.78 593.70 1048.35 593.43Q1048.91 593.15 1048.87 592.48L1048.87 592.48L1048.86 592.02L1044.79 581.08L1048.38 581.08L1050.02 586.42Q1050.23 587.13 1050.38 587.83Q1050.52 588.53 1050.66 589.27L1050.66 589.27Q1050.83 588.52 1051.01 587.82Q1051.20 587.12 1051.42 586.42L1051.42 586.42L1053.17 581.08L1056.72 581.08L1052.14 593.15Q1051.65 594.48 1050.66 595.32Q1049.67 596.16 1047.84 596.16L1047.84 596.16Q1046.52 596.16 1045.67 595.83ZM1061.47 592L1058.06 592L1058.06 581.08L1061.20 581.08L1061.35 583.25Q1061.80 582.02 1062.66 581.48Q1063.51 580.94 1064.50 580.94L1064.50 580.94Q1065.53 580.94 1066.22 581.53Q1066.91 582.13 1067.31 583.46L1067.31 583.46Q1067.81 582.12 1068.78 581.53Q1069.75 580.94 1070.86 580.94L1070.86 580.94Q1072.39 580.94 1073.37 581.92Q1074.35 582.91 1074.35 584.64L1074.35 584.64L1074.35 592L1070.94 592L1070.94 585.41Q1070.94 584.58 1070.51 584.15Q1070.08 583.72 1069.41 583.72L1069.41 583.72Q1068.69 583.72 1068.27 584.19Q1067.85 584.67 1067.85 585.45L1067.85 585.45L1067.85 592L1064.58 592L1064.58 585.36Q1064.58 584.61 1064.15 584.16Q1063.73 583.72 1063.05 583.72L1063.05 583.72Q1062.36 583.72 1061.92 584.19Q1061.47 584.66 1061.47 585.52L1061.47 585.52L1061.47 592ZM1081.68 592.21L1081.68 592.21Q1079.97 592.21 1078.74 591.50Q1077.51 590.79 1076.85 589.52Q1076.19 588.26 1076.19 586.58L1076.19 586.58Q1076.19 584.90 1076.85 583.63Q1077.51 582.36 1078.74 581.65Q1079.97 580.95 1081.68 580.95L1081.68 580.95Q1083.38 580.95 1084.61 581.65Q1085.84 582.36 1086.50 583.63Q1087.15 584.90 1087.15 586.58L1087.15 586.58Q1087.15 588.26 1086.50 589.52Q1085.84 590.79 1084.61 591.50Q1083.38 592.21 1081.68 592.21ZM1081.68 589.60L1081.68 589.60Q1082.65 589.60 1083.17 588.76Q1083.69 587.93 1083.69 586.56L1083.69 586.56Q1083.69 585.19 1083.17 584.37Q1082.65 583.55 1081.68 583.55L1081.68 583.55Q1080.70 583.55 1080.18 584.37Q1079.66 585.19 1079.66 586.56L1079.66 586.56Q1079.66 587.93 1080.18 588.76Q1080.70 589.60 1081.68 589.60ZM1092.40 592L1088.99 592L1088.99 581.08L1092.30 581.08L1092.30 583.07L1092.42 583.07Q1092.71 582 1093.39 581.47Q1094.07 580.95 1094.97 580.95L1094.97 580.95Q1095.46 580.95 1095.93 581.06L1095.93 581.06L1095.93 584.03Q1095.69 583.94 1095.29 583.90Q1094.90 583.86 1094.59 583.86L1094.59 583.86Q1093.64 583.86 1093.02 584.46Q1092.40 585.07 1092.40 586.04L1092.40 586.04L1092.40 592ZM1100.80 592L1097.39 592L1097.39 581.08L1100.70 581.08L1100.70 583.07L1100.82 583.07Q1101.11 582 1101.79 581.47Q1102.47 580.95 1103.37 580.95L1103.37 580.95Q1103.86 580.95 1104.33 581.06L1104.33 581.06L1104.33 584.03Q1104.09 583.94 1103.69 583.90Q1103.30 583.86 1102.98 583.86L1102.98 583.86Q1102.04 583.86 1101.42 584.46Q1100.80 585.07 1100.80 586.04L1100.80 586.04L1100.80 592ZM1110.86 592.21L1110.86 592.21Q1109.15 592.21 1107.92 591.50Q1106.69 590.79 1106.03 589.52Q1105.37 588.26 1105.37 586.58L1105.37 586.58Q1105.37 584.90 1106.03 583.63Q1106.69 582.36 1107.92 581.65Q1109.15 580.95 1110.86 580.95L1110.86 580.95Q1112.56 580.95 1113.79 581.65Q1115.02 582.36 1115.67 583.63Q1116.33 584.90 1116.33 586.58L1116.33 586.58Q1116.33 588.26 1115.67 589.52Q1115.02 590.79 1113.79 591.50Q1112.56 592.21 1110.86 592.21ZM1110.86 589.60L1110.86 589.60Q1111.83 589.60 1112.35 588.76Q1112.87 587.93 1112.87 586.56L1112.87 586.56Q1112.87 585.19 1112.35 584.37Q1111.83 583.55 1110.86 583.55L1110.86 583.55Q1109.88 583.55 1109.36 584.37Q1108.84 585.19 1108.84 586.56L1108.84 586.56Q1108.84 587.93 1109.36 588.76Q1109.88 589.60 1110.86 589.60ZM1123.85 592L1120.38 592L1117.19 581.08L1120.76 581.08L1121.56 584.82Q1121.74 585.75 1121.96 586.79Q1122.17 587.82 1122.38 589.00L1122.38 589.00Q1122.59 587.83 1122.84 586.79Q1123.08 585.75 1123.30 584.82L1123.30 584.82L1124.17 581.08L1127.19 581.08L1128.03 584.82Q1128.24 585.76 1128.48 586.79Q1128.73 587.83 1128.95 589.02L1128.95 589.02Q1129.14 587.84 1129.34 586.80Q1129.55 585.76 1129.74 584.82L1129.74 584.82L1130.53 581.08L1134.16 581.08L1130.94 592L1127.47 592L1126.33 588.08Q1126.17 587.49 1126.00 586.67Q1125.83 585.86 1125.66 585.07L1125.66 585.07Q1125.49 585.86 1125.33 586.67Q1125.16 587.49 1124.99 588.08L1124.99 588.08L1123.85 592ZM1139.19 576.77L1142.10 576.77L1137.41 594.19L1134.50 594.19L1139.19 576.77ZM1143.42 577.45L1146.83 577.45L1146.83 592L1143.42 592L1143.42 577.45ZM1152.14 592.20L1152.14 592.20Q1150.57 592.20 1149.56 591.39Q1148.55 590.59 1148.55 588.97L1148.55 588.97Q1148.55 587.76 1149.11 587.05Q1149.66 586.34 1150.59 585.99Q1151.51 585.65 1152.61 585.55L1152.61 585.55Q1154 585.44 1154.60 585.27Q1155.20 585.10 1155.20 584.59L1155.20 584.59L1155.20 584.55Q1155.20 583.98 1154.81 583.67Q1154.41 583.37 1153.72 583.37L1153.72 583.37Q1153.00 583.37 1152.54 583.67Q1152.09 583.97 1151.95 584.49L1151.95 584.49L1148.86 584.09Q1149.19 582.69 1150.44 581.82Q1151.70 580.95 1153.75 580.95L1153.75 580.95Q1155.10 580.95 1156.20 581.37Q1157.30 581.79 1157.95 582.60Q1158.60 583.42 1158.60 584.59L1158.60 584.59L1158.60 592L1155.40 592L1155.40 590.47L1155.31 590.47Q1154.40 592.20 1152.14 592.20ZM1153.18 589.94L1153.18 589.94Q1154.04 589.94 1154.63 589.43Q1155.23 588.92 1155.23 588.11L1155.23 588.11L1155.23 587.07Q1154.94 587.22 1154.38 587.33Q1153.82 587.44 1153.35 587.52L1153.35 587.52Q1151.77 587.75 1151.77 588.82L1151.77 588.82Q1151.77 589.36 1152.17 589.65Q1152.56 589.94 1153.18 589.94ZM1165.92 592.21L1165.92 592.21Q1164.21 592.21 1162.98 591.50Q1161.75 590.79 1161.09 589.52Q1160.44 588.26 1160.44 586.58L1160.44 586.58Q1160.44 584.90 1161.09 583.63Q1161.75 582.36 1162.98 581.65Q1164.21 580.95 1165.92 580.95L1165.92 580.95Q1168.01 580.95 1169.36 581.99Q1170.70 583.04 1170.95 584.82L1170.95 584.82L1167.81 585.35Q1167.64 584.49 1167.18 584.02Q1166.71 583.55 1165.96 583.55L1165.96 583.55Q1164.99 583.55 1164.45 584.35Q1163.91 585.14 1163.91 586.56L1163.91 586.56Q1163.91 587.97 1164.45 588.78Q1164.99 589.60 1165.96 589.60L1165.96 589.60Q1166.71 589.60 1167.19 589.11Q1167.66 588.62 1167.82 587.74L1167.82 587.74L1170.96 588.25Q1170.71 590.09 1169.37 591.15Q1168.03 592.21 1165.92 592.21ZM1172.73 595.83L1172.73 595.83L1173.49 593.34L1173.92 593.46Q1174.84 593.70 1175.41 593.43Q1175.97 593.15 1175.93 592.48L1175.93 592.48L1175.92 592.02L1171.85 581.08L1175.45 581.08L1177.08 586.42Q1177.29 587.13 1177.44 587.83Q1177.58 588.53 1177.72 589.27L1177.72 589.27Q1177.89 588.52 1178.07 587.82Q1178.26 587.12 1178.48 586.42L1178.48 586.42L1180.23 581.08L1183.79 581.08L1179.21 593.15Q1178.71 594.48 1177.72 595.32Q1176.73 596.16 1174.90 596.16L1174.90 596.16Q1173.58 596.16 1172.73 595.83Z"/>
|
|
50
|
+
</svg>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
updates:
|
|
3
|
+
- package-ecosystem: npm
|
|
4
|
+
directory: "/"
|
|
5
|
+
schedule:
|
|
6
|
+
interval: weekly
|
|
7
|
+
day: monday
|
|
8
|
+
open-pull-requests-limit: 5
|
|
9
|
+
commit-message:
|
|
10
|
+
prefix: "chore(deps)"
|
|
11
|
+
groups:
|
|
12
|
+
dev-dependencies:
|
|
13
|
+
dependency-type: development
|
|
14
|
+
update-types: [minor, patch]
|
|
15
|
+
|
|
16
|
+
- package-ecosystem: github-actions
|
|
17
|
+
directory: "/"
|
|
18
|
+
schedule:
|
|
19
|
+
interval: monthly
|
|
20
|
+
commit-message:
|
|
21
|
+
prefix: "chore(ci)"
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main, master]
|
|
6
|
+
pull_request:
|
|
7
|
+
|
|
8
|
+
concurrency:
|
|
9
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
10
|
+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
shell-syntax:
|
|
14
|
+
name: Syntax (${{ matrix.shell }})
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
strategy:
|
|
17
|
+
fail-fast: false
|
|
18
|
+
matrix:
|
|
19
|
+
shell: [bash, zsh]
|
|
20
|
+
|
|
21
|
+
steps:
|
|
22
|
+
- uses: actions/checkout@v6
|
|
23
|
+
|
|
24
|
+
- name: Install zsh
|
|
25
|
+
if: matrix.shell == 'zsh'
|
|
26
|
+
run: sudo apt-get update && sudo apt-get install -y zsh
|
|
27
|
+
|
|
28
|
+
- name: Syntax-check entry points
|
|
29
|
+
shell: bash
|
|
30
|
+
run: |
|
|
31
|
+
set -e
|
|
32
|
+
shopt -s nullglob
|
|
33
|
+
# Pick the right plugin file for this shell
|
|
34
|
+
plugin="lacy.plugin.${{ matrix.shell }}"
|
|
35
|
+
if [ -f "$plugin" ]; then
|
|
36
|
+
echo "checking $plugin"
|
|
37
|
+
${{ matrix.shell }} -n "$plugin"
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
- name: Syntax-check lib/
|
|
41
|
+
shell: bash
|
|
42
|
+
run: |
|
|
43
|
+
set -e
|
|
44
|
+
shopt -s nullglob
|
|
45
|
+
# zsh syntax check only zsh files; bash syntax check only sh + bash files
|
|
46
|
+
if [ "${{ matrix.shell }}" = "zsh" ]; then
|
|
47
|
+
files=(lib/**/*.zsh lib/*.zsh)
|
|
48
|
+
else
|
|
49
|
+
files=(lib/**/*.sh lib/**/*.bash lib/*.sh lib/*.bash)
|
|
50
|
+
fi
|
|
51
|
+
if [ ${#files[@]} -eq 0 ]; then
|
|
52
|
+
echo "no ${{ matrix.shell }} files to check under lib/"
|
|
53
|
+
exit 0
|
|
54
|
+
fi
|
|
55
|
+
for f in "${files[@]}"; do
|
|
56
|
+
echo "checking $f"
|
|
57
|
+
${{ matrix.shell }} -n "$f"
|
|
58
|
+
done
|
|
59
|
+
|
|
60
|
+
shellcheck:
|
|
61
|
+
name: shellcheck (.sh / .bash only)
|
|
62
|
+
runs-on: ubuntu-latest
|
|
63
|
+
steps:
|
|
64
|
+
- uses: actions/checkout@v6
|
|
65
|
+
# ShellCheck does NOT support zsh (SC1071), so we scan only POSIX/bash
|
|
66
|
+
# script files. The two pre-existing SC2296 errors in lib/core/*.sh
|
|
67
|
+
# come from intentional zsh-style parameter expansion inside files
|
|
68
|
+
# that are sourced from zsh — those are excluded individually.
|
|
69
|
+
- name: Run shellcheck
|
|
70
|
+
uses: ludeeus/action-shellcheck@2.0.0
|
|
71
|
+
with:
|
|
72
|
+
severity: error
|
|
73
|
+
scandir: '.'
|
|
74
|
+
ignore_paths: 'node_modules tests'
|
|
75
|
+
ignore_names: 'config.sh preheat.sh'
|
|
76
|
+
additional_files: 'install.sh uninstall.sh'
|
|
77
|
+
format: gcc
|
|
78
|
+
check_together: 'yes'
|
|
79
|
+
env:
|
|
80
|
+
SHELLCHECK_OPTS: '-e SC1071 -e SC2296'
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
name: Dependabot auto-merge
|
|
2
|
+
|
|
3
|
+
on: pull_request_target
|
|
4
|
+
|
|
5
|
+
permissions:
|
|
6
|
+
contents: write
|
|
7
|
+
pull-requests: write
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
auto-merge:
|
|
11
|
+
if: github.actor == 'dependabot[bot]'
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
steps:
|
|
14
|
+
- name: Get update metadata
|
|
15
|
+
id: meta
|
|
16
|
+
uses: dependabot/fetch-metadata@v2
|
|
17
|
+
with:
|
|
18
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
19
|
+
|
|
20
|
+
- name: Auto-approve patch and minor updates
|
|
21
|
+
if: steps.meta.outputs.update-type == 'version-update:semver-patch' || steps.meta.outputs.update-type == 'version-update:semver-minor'
|
|
22
|
+
run: gh pr review --approve "$PR_URL"
|
|
23
|
+
env:
|
|
24
|
+
PR_URL: ${{ github.event.pull_request.html_url }}
|
|
25
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
26
|
+
|
|
27
|
+
- name: Enable squash auto-merge for patch and minor updates
|
|
28
|
+
if: steps.meta.outputs.update-type == 'version-update:semver-patch' || steps.meta.outputs.update-type == 'version-update:semver-minor'
|
|
29
|
+
run: gh pr merge --auto --squash "$PR_URL"
|
|
30
|
+
env:
|
|
31
|
+
PR_URL: ${{ github.event.pull_request.html_url }}
|
|
32
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|