waitspin 0.1.6 → 0.1.7
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/README.md +39 -29
- package/assets/waitspin-vscode/media/waitspin-activitybar.svg +31 -0
- package/assets/waitspin-vscode/media/waitspin-icon.png +0 -0
- package/assets/waitspin-vscode/media/waitspin-icon.svg +94 -0
- package/assets/waitspin-vscode/out/extension-core.js +446 -0
- package/assets/waitspin-vscode/out/extension-core.js.map +1 -0
- package/assets/waitspin-vscode/out/extension-html.js +12 -0
- package/assets/waitspin-vscode/out/extension-html.js.map +1 -0
- package/assets/waitspin-vscode/out/extension-onboarding.js +315 -0
- package/assets/waitspin-vscode/out/extension-onboarding.js.map +1 -0
- package/assets/waitspin-vscode/out/extension-surfaces.js +161 -0
- package/assets/waitspin-vscode/out/extension-surfaces.js.map +1 -0
- package/assets/waitspin-vscode/out/extension-wallet-view.js +194 -0
- package/assets/waitspin-vscode/out/extension-wallet-view.js.map +1 -0
- package/assets/waitspin-vscode/out/extension-wallet.js +148 -0
- package/assets/waitspin-vscode/out/extension-wallet.js.map +1 -0
- package/assets/waitspin-vscode/out/extension.js +297 -153
- package/assets/waitspin-vscode/out/extension.js.map +1 -1
- package/assets/waitspin-vscode/package.json +76 -7
- package/dist/cli-format.js +301 -0
- package/dist/cli-format.js.map +1 -0
- package/dist/cli.js +618 -111
- package/dist/cli.js.map +1 -1
- package/dist/targets/experimental-cli.js +21 -14
- package/dist/targets/experimental-cli.js.map +1 -1
- package/dist/wallet-format.js +222 -0
- package/dist/wallet-format.js.map +1 -0
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -7,9 +7,9 @@ wait-state ads for verified developer surfaces.
|
|
|
7
7
|
|
|
8
8
|
Run after `npm view waitspin version` succeeds in launch evidence:
|
|
9
9
|
|
|
10
|
-
Before install,
|
|
10
|
+
Before install, user registration, or Checkout, review:
|
|
11
11
|
|
|
12
|
-
- Public API and agent docs: `https://waitspin.com/
|
|
12
|
+
- Public API and agent docs: `https://waitspin.com/docs`
|
|
13
13
|
- Agent markdown: `https://waitspin.com/.well-known/agents.md`
|
|
14
14
|
- Terms: `https://waitspin.com/waitspin/terms`
|
|
15
15
|
- Privacy: `https://waitspin.com/waitspin/privacy`
|
|
@@ -26,12 +26,16 @@ waitspin bid create --line "Your ad" --url https://example.com --price-per-block
|
|
|
26
26
|
waitspin bid checkout CAMPAIGN_ID
|
|
27
27
|
npx --yes waitspin init --email you@example.com --key-profile publisher-extension
|
|
28
28
|
|
|
29
|
+
# First-class VS Code user path
|
|
30
|
+
code --install-extension waitspin.waitspin-vscode
|
|
31
|
+
# Then run "WaitSpin: Connect and earn" inside VS Code.
|
|
32
|
+
|
|
29
33
|
# Advanced agent install for every detected supported target
|
|
30
34
|
waitspin install --all --dry-run --api-key PASTE_PUBLISHER_EXTENSION_KEY --compose-existing
|
|
31
35
|
waitspin install --all --api-key PASTE_PUBLISHER_EXTENSION_KEY --compose-existing
|
|
32
36
|
waitspin status --all
|
|
33
37
|
|
|
34
|
-
#
|
|
38
|
+
# CLI fallback for VS Code Activity Bar/status-bar extension
|
|
35
39
|
waitspin extension install --target vscode --api-key PASTE_PUBLISHER_EXTENSION_KEY
|
|
36
40
|
waitspin extension status --target vscode
|
|
37
41
|
|
|
@@ -59,16 +63,18 @@ waitspin grok status
|
|
|
59
63
|
- `waitspin bids list` — list campaigns
|
|
60
64
|
- `waitspin bid checkout CAMPAIGN_ID` — Stripe Checkout for blocks
|
|
61
65
|
- `waitspin market` — public leaderboard
|
|
62
|
-
- `waitspin wallet connect` — Stripe Connect Express onboarding
|
|
63
|
-
- `waitspin wallet status` —
|
|
64
|
-
- `waitspin wallet ledger` —
|
|
66
|
+
- `waitspin wallet connect --country US` — Stripe Connect Express onboarding
|
|
67
|
+
- `waitspin wallet status` — user balance, payout, and Connect status
|
|
68
|
+
- `waitspin wallet ledger` — user delivery ledger
|
|
65
69
|
- `waitspin wallet payout --dry-run` — payout eligibility preview
|
|
66
|
-
- `
|
|
67
|
-
- `
|
|
68
|
-
- `waitspin extension
|
|
69
|
-
- `waitspin
|
|
70
|
-
- `waitspin
|
|
71
|
-
- `waitspin
|
|
70
|
+
- `code --install-extension waitspin.waitspin-vscode` — install the public VS Code Marketplace extension
|
|
71
|
+
- `WaitSpin: Connect and earn` — connect the VS Code extension from inside the editor
|
|
72
|
+
- `waitspin extension install --target vscode --api-key PASTE_PUBLISHER_EXTENSION_KEY` — advanced CLI fallback for VS Code extension setup
|
|
73
|
+
- `waitspin extension status --target vscode` — inspect managed VS Code extension lifecycle state
|
|
74
|
+
- `waitspin extension uninstall --target vscode` — remove the managed VS Code extension runtime and local state
|
|
75
|
+
- `waitspin install --all --dry-run` — preview detected user surfaces without file changes
|
|
76
|
+
- `waitspin install --all` — install every detected supported user surface
|
|
77
|
+
- `waitspin status --all` — aggregate lifecycle status for every user surface
|
|
72
78
|
- `waitspin claude-code install --compose-existing` — install the Claude Code statusline command
|
|
73
79
|
- `waitspin claude-code status` — inspect managed Claude Code runtime state
|
|
74
80
|
- `waitspin claude-code uninstall` — restore Claude Code statusline settings and remove managed local state
|
|
@@ -84,14 +90,14 @@ waitspin grok status
|
|
|
84
90
|
|
|
85
91
|
API base: `https://api.waitspin.com`
|
|
86
92
|
|
|
87
|
-
The public package installs five verified
|
|
88
|
-
status-bar
|
|
89
|
-
hook, the OpenCode TUI plugin slot, and the Grok Code CLI footer.
|
|
90
|
-
support uses the official `statusLine.command` path and does not
|
|
91
|
-
Code internals. MiMo Code uses a bash hook that polls the API for
|
|
92
|
-
messages. OpenCode uses its TUI `app_bottom` plugin slot. Grok Code
|
|
93
|
-
managed text-asset footer patch with hash-backed backup/restore and
|
|
94
|
-
patch native binaries.
|
|
93
|
+
The public package installs five verified user earning surfaces: the VS Code
|
|
94
|
+
Activity Bar/status-bar extension, the Claude Code statusline command, the MiMo
|
|
95
|
+
Code shell hook, the OpenCode TUI plugin slot, and the Grok Code CLI footer.
|
|
96
|
+
Claude Code support uses the official `statusLine.command` path and does not
|
|
97
|
+
patch Claude Code internals. MiMo Code uses a bash hook that polls the API for
|
|
98
|
+
sponsored messages. OpenCode uses its TUI `app_bottom` plugin slot. Grok Code
|
|
99
|
+
CLI uses a managed text-asset footer patch with hash-backed backup/restore and
|
|
100
|
+
does not patch native binaries.
|
|
95
101
|
|
|
96
102
|
`waitspin install --all` is an advanced agent command for installing every
|
|
97
103
|
detected supported target. It keeps explicit target commands as the canonical
|
|
@@ -108,12 +114,15 @@ Native spinner patches beyond supported status surfaces, account-credit
|
|
|
108
114
|
redemption, cash refund self-service, and click billing are not public
|
|
109
115
|
paid-launch capabilities yet.
|
|
110
116
|
|
|
111
|
-
##
|
|
117
|
+
## User install credentials
|
|
112
118
|
|
|
113
|
-
Use
|
|
119
|
+
Use an extension API key created with `--key-profile publisher-extension` for
|
|
120
|
+
user install polling/events:
|
|
114
121
|
|
|
115
122
|
```bash
|
|
116
123
|
npx waitspin init --email you@example.com --key-profile publisher-extension
|
|
124
|
+
code --install-extension waitspin.waitspin-vscode
|
|
125
|
+
# Then run "WaitSpin: Connect and earn" inside VS Code.
|
|
117
126
|
npx waitspin install --all --dry-run --api-key PASTE_PUBLISHER_EXTENSION_KEY --compose-existing
|
|
118
127
|
npx waitspin install --all --api-key PASTE_PUBLISHER_EXTENSION_KEY --compose-existing
|
|
119
128
|
npx waitspin status --all
|
|
@@ -124,14 +133,15 @@ npx waitspin opencode install --api-key PASTE_PUBLISHER_EXTENSION_KEY
|
|
|
124
133
|
npx waitspin grok install --api-key PASTE_PUBLISHER_EXTENSION_KEY
|
|
125
134
|
```
|
|
126
135
|
|
|
127
|
-
- `WAITSPIN_API_KEY` — temporary
|
|
136
|
+
- `WAITSPIN_API_KEY` — temporary extension API key for CLI fallback flows
|
|
128
137
|
- `WAITSPIN_INSTALL_ID` — from `waitspin extension install` or `waitspin claude-code install`
|
|
129
138
|
|
|
130
|
-
The VS Code extension
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
139
|
+
The VS Code Marketplace extension should normally be connected through
|
|
140
|
+
`WaitSpin: Connect and earn`, which stores the extension key in VS Code
|
|
141
|
+
SecretStorage and stores the install ID in user-scoped extension state. The
|
|
142
|
+
legacy `waitspin.apiKey` User setting is still migrated into SecretStorage for
|
|
143
|
+
fallback/rotation, but normal user operation does not require copying
|
|
144
|
+
install IDs or broad control keys into workspace settings.
|
|
135
145
|
|
|
136
146
|
The Claude Code installer writes a managed statusline runtime/state under
|
|
137
147
|
`~/.waitspin` and updates `~/.claude/settings.json` with a safe
|
|
@@ -150,7 +160,7 @@ The Grok Code CLI installer writes a managed runtime/state under `~/.waitspin`
|
|
|
150
160
|
and patches the verified OpenTUI footer text asset with a hash-backed backup so
|
|
151
161
|
uninstall can restore the original file.
|
|
152
162
|
|
|
153
|
-
Cline VS Code extension installs are covered by the VS Code
|
|
163
|
+
Cline VS Code extension installs are covered by the VS Code Activity Bar/status-bar extension target.
|
|
154
164
|
Standalone Cline CLI is not a public install target until Cline exposes an
|
|
155
165
|
official statusline/plugin surface.
|
|
156
166
|
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">WaitSpin Orbit Symbol</title>
|
|
3
|
+
<desc id="desc">Broken white orbit ring with a geometric white W and a signal green dot.</desc>
|
|
4
|
+
<defs>
|
|
5
|
+
<style>
|
|
6
|
+
.orbit { fill: none; stroke: #fff; stroke-width: 4.25; stroke-linecap: butt; }
|
|
7
|
+
.mark { fill: #fff; }
|
|
8
|
+
.dot { fill: #b7e11d; }
|
|
9
|
+
</style>
|
|
10
|
+
</defs>
|
|
11
|
+
<path
|
|
12
|
+
class="orbit"
|
|
13
|
+
d="M23.48 18.86
|
|
14
|
+
A17 17 0 1 0 47.08 25.49"
|
|
15
|
+
/>
|
|
16
|
+
<path
|
|
17
|
+
class="mark"
|
|
18
|
+
d="M22.8 28
|
|
19
|
+
L26.9 28
|
|
20
|
+
L29.95 35.05
|
|
21
|
+
L32 30.95
|
|
22
|
+
L34.05 35.05
|
|
23
|
+
L37.1 28
|
|
24
|
+
L41.2 28
|
|
25
|
+
L34.8 41.25
|
|
26
|
+
L32 36.05
|
|
27
|
+
L29.2 41.25
|
|
28
|
+
Z"
|
|
29
|
+
/>
|
|
30
|
+
<circle class="dot" cx="45.95" cy="18.55" r="3.2"/>
|
|
31
|
+
</svg>
|
|
Binary file
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="5 48.9 100 92">
|
|
2
|
+
<!-- SVG created with Arrow, by QuiverAI (https://quiver.ai) -->
|
|
3
|
+
<path d="m65.5 77.8v4h2.3v5.2h-1.2v5h-1.2v5h-0.9v3.5h-1v-1.5h-0.5v-4.5h-1.4v-6.4h-1.4v-5.9h-1.6v-4.4h-7v4.3h-1.7v6.1h-1.3v6.3h-1.2v4.5h-0.6v1.6h-1v-3.3h-0.8v-5.3h-1.2v-5.1h-1.1v-4.9h2.6v-4.2h-13.6v4.1h2.5v5h1.6v6.1h1.8v6.7h1.5v6.2h1.6v5.2h1.7v3.7h7.1v-3.3l1.5-0.1v-3.9h1.2v-5.3h1.3v-6l1.3-0.1v-2.3l0.7 0.1v2.4h1.2v6h1.2v5.2h1.3v3.9h1.5v3.6h7.2v-3.7h1.8v-5.4h1.5v-6.3h1.6v-6.7h1.9v-6h1.7v-4.9h2.5v-4.2z"/>
|
|
4
|
+
<polygon points="56.4 55.7 56.4 53.8 53.9 53.8 53.9 55.7 52.4 55.7 52.4 59.3 53.9 59.3 53.9 60.8 56.4 60.8 56.4 59.3 57.9 59.3 57.9 55.7"/>
|
|
5
|
+
<path d="m50.8 51.8h1.6-0.5v-1.1h6.4v2h1.9v1.9h1.6l-0.4-0.1v-1.8h-1.5v-1.8h-1.6v-1.7h-6.6v1.7h-1.9l0.1 1.8h-1.6v1.8h1.7z"/>
|
|
6
|
+
<path d="m50.8 61.9h-1.9l-0.7-0.1v-1.6h-1.4v-5.6l1.6-0.1v5.4z"/>
|
|
7
|
+
<path d="m60.2 61.8v-1.6l1.7-0.1-0.1-5.5h1.6v5.6h-1.5v1.7l-1.7-0.1z"/>
|
|
8
|
+
<path d="m51.9 63.7h6.4v1.7h-6.5z"/>
|
|
9
|
+
<path d="m58.3 61.9h1.9v1.7l-1.9 0.1z"/>
|
|
10
|
+
<path d="m49.9 61.9h2v1.8l-2-0.1z"/>
|
|
11
|
+
<rect x="41.1" y="54.1" width="1.9" height="1.9"/>
|
|
12
|
+
<rect x="37.1" y="57.5" width="2" height="1.9"/>
|
|
13
|
+
<rect x="67.4" y="54.1" width="1.9" height="1.9"/>
|
|
14
|
+
<rect x="71" y="57.5" width="1.9" height="1.9"/>
|
|
15
|
+
<rect x="91.4" y="76" width="1.9" height="1.8"/>
|
|
16
|
+
<rect x="94.9" y="79.6" width="1.9" height="1.9"/>
|
|
17
|
+
<rect x="16.6" y="75.9" width="1.9" height="1.8"/>
|
|
18
|
+
<rect x="13.5" y="79.6" width="1.9" height="1.9"/>
|
|
19
|
+
<path d="m20.3 57.8v1.8h-1.5v2.3h1.5v1.6h-1.5v2.1h1.4v1.6l-1.4 0.1v2h1.4v1.4h-1.4v2h1.5v2h13.5v-16.9zm12.4 15.6h-10.7v-14h10.7v1.8h-9.3v1.7h9.3z"/>
|
|
20
|
+
<rect x="23.4" y="64.8" width="3.1" height="1.8"/>
|
|
21
|
+
<rect x="28.2" y="64.8" width="3.2" height="1.8"/>
|
|
22
|
+
<rect x="23.4" y="67.8" width="3.1" height="1.7"/>
|
|
23
|
+
<rect x="28.2" y="67.8" width="3.2" height="1.7"/>
|
|
24
|
+
<rect x="23.4" y="70.6" width="3.2" height="1.6"/>
|
|
25
|
+
<rect x="28.2" y="70.6" width="3.2" height="1.6"/>
|
|
26
|
+
<path d="m76.7 66-1.3 1.1v2.1h1.3l0.1 1.4h-1.4v2.1h1.3l0.1 2h13.5v-16.9h-13.6v1.8h-1.4v2.2h1.5l-0.1 1.7h-1.3v2.1zm1.7-6.6h10.4v1.8h-9.2v1.7h9.3v10.5h-10.5z"/>
|
|
27
|
+
<rect x="79.6" y="64.8" width="3.1" height="1.8"/>
|
|
28
|
+
<rect x="84.3" y="64.8" width="3.3" height="1.8"/>
|
|
29
|
+
<rect x="79.6" y="67.8" width="3.1" height="1.7"/>
|
|
30
|
+
<rect x="84.3" y="67.8" width="3.3" height="1.7"/>
|
|
31
|
+
<rect x="79.6" y="70.6" width="3.1" height="1.6"/>
|
|
32
|
+
<rect x="84.3" y="70.6" width="3.3" height="1.6"/>
|
|
33
|
+
<path d="m20.6 113.5v1.9h-1.7v2.2h1.5v1.6h-1.5v2.2h1.4v1.5h-1.5v2h1.4l0.1 1.4-1.5 0.1v1.9h1.5v2h13.5v-16.8zm12 15.5h-10.7v-13.8h10.7v1.9h-9.3v1.6h9.3z"/>
|
|
34
|
+
<rect x="23.3" y="120.6" width="3.2" height="1.7"/>
|
|
35
|
+
<rect x="28.1" y="120.6" width="3.2" height="1.7"/>
|
|
36
|
+
<rect x="23.3" y="123.5" width="3.2" height="1.6"/>
|
|
37
|
+
<rect x="28.1" y="123.5" width="3.2" height="1.6"/>
|
|
38
|
+
<rect x="23.3" y="126.3" width="3.2" height="1.5"/>
|
|
39
|
+
<rect x="28.1" y="126.3" width="3.2" height="1.5"/>
|
|
40
|
+
<path d="m76.7 113.5v1.9h-1.4v2.2h1.4v1.5l-1.4 0.1v2.1l1.4 0.1v1.5h-1.4v2l1.4 0.1v1.3l-1.4 0.1v1.8l1.4 0.1 0.1 2h13.5v-16.8zm12.1 15.5h-10.5v-13.8h10.5v1.9h-9.3v1.6h9.3z"/>
|
|
41
|
+
<rect x="79.5" y="120.6" width="3.2" height="1.7"/>
|
|
42
|
+
<rect x="84.2" y="120.6" width="3.3" height="1.7"/>
|
|
43
|
+
<rect x="79.5" y="123.5" width="3.2" height="1.6"/>
|
|
44
|
+
<rect x="84.2" y="123.5" width="3.3" height="1.6"/>
|
|
45
|
+
<rect x="79.5" y="126.2" width="3.2" height="1.5"/>
|
|
46
|
+
<rect x="84.2" y="126.2" width="3.3" height="1.5"/>
|
|
47
|
+
<polygon points="16.5 92.6 16.5 90.6 13.3 90.6 13.3 92.6 11.6 92.6 11.6 96.5 13.3 96.5 13.3 98.4 16.3 98.4 16.3 96.5 18.1 96.5 18.1 92.6"/>
|
|
48
|
+
<path d="m10.9 86h7.7v1.7h-7.6z"/>
|
|
49
|
+
<path d="m18.6 87.5h2v1.9h-2z"/>
|
|
50
|
+
<path d="m20.5 89.3h1.8v2h-1.8z"/>
|
|
51
|
+
<path d="m22.2 91.3h1.9v6.4h-1.9z"/>
|
|
52
|
+
<path d="m20.6 97.6h1.7v1.9h-1.7z"/>
|
|
53
|
+
<path d="m18.6 99.5h2v1.8h-2z"/>
|
|
54
|
+
<path d="m11 101.2 7.7 0.1v1.6h-7.7z"/>
|
|
55
|
+
<path d="m9 99.5h2v1.8h-1.9z"/>
|
|
56
|
+
<path d="m7.6 97.6h1.7v2h-1.7z"/>
|
|
57
|
+
<path d="m5.8 91.3h1.8v6.4h-1.8z"/>
|
|
58
|
+
<path d="m7.6 89.3h1.7v2h-1.7z"/>
|
|
59
|
+
<path d="m9.1 87.5h1.9v1.9h-1.9z"/>
|
|
60
|
+
<polygon points="96.8 92.4 96.8 90.3 93.9 90.3 93.9 92.3 92.2 92.4 92.2 96.4 93.9 96.4 93.9 98.4 96.8 98.4 96.8 96.4 98.5 96.4 98.5 92.4"/>
|
|
61
|
+
<path d="m91.7 85.6h7.2v1.8h-7.2z"/>
|
|
62
|
+
<path d="m98.9 87.2h1.9v2h-1.8z"/>
|
|
63
|
+
<path d="m100.8 89.1h1.7v2.1h-1.7z"/>
|
|
64
|
+
<path d="m102.4 91.2h1.7v6.3h-1.7z"/>
|
|
65
|
+
<path d="m100.8 97.5h1.7v1.9h-1.7z"/>
|
|
66
|
+
<path d="m98.9 99.4h1.9v1.8h-1.9z"/>
|
|
67
|
+
<path d="m91.6 101.1 7.3 0.1v1.7h-7.3z"/>
|
|
68
|
+
<path d="m89.6 99.4h2v1.9h-2z"/>
|
|
69
|
+
<path d="m88 97.5h1.7v1.9h-1.8z"/>
|
|
70
|
+
<path d="m85.9 91.2h2v6.3h-2z"/>
|
|
71
|
+
<path d="m87.9 89.1h1.8v2.1h-1.8z"/>
|
|
72
|
+
<path d="m89.6 87.2h2v2h-2z"/>
|
|
73
|
+
<path d="m56.2 130.6v-1.8h-2.4v1.8h-1.5v3.7h1.5v1.7h2.5v-1.7h1.5v-3.7z"/>
|
|
74
|
+
<path d="m51.7 124.2h6.6v1.8h-6.6z"/>
|
|
75
|
+
<path d="m58.3 125.9h1.9v2h-1.9z"/>
|
|
76
|
+
<path d="m60.1 127.8h1.8v1.9h-1.7z"/>
|
|
77
|
+
<path d="m61.9 129.7h1.6v5.5h-1.6z"/>
|
|
78
|
+
<path d="m60.2 135.2h1.7v1.7h-1.7z"/>
|
|
79
|
+
<path d="m58.3 137h1.9v1.8h-1.8z"/>
|
|
80
|
+
<path d="m51.8 138.6h6.6v1.7h-6.6z"/>
|
|
81
|
+
<path d="m49.9 137h2.1v1.8h-2.1z"/>
|
|
82
|
+
<path d="m48.4 135.2h1.8v1.8l-1.8-0.1z"/>
|
|
83
|
+
<path d="m46.8 129.7h1.7v5.5h-1.7z"/>
|
|
84
|
+
<path d="m48.3 127.8h1.8l0.1 1.9h-1.9z"/>
|
|
85
|
+
<path d="m49.9 125.9h2v2h-2z"/>
|
|
86
|
+
<rect x="13.5" y="107.3" width="1.9" height="1.9"/>
|
|
87
|
+
<rect x="16.6" y="110.6" width="1.9" height="1.8"/>
|
|
88
|
+
<rect x="91.7" y="110.6" width="1.9" height="1.8"/>
|
|
89
|
+
<rect x="94.9" y="107.3" width="1.9" height="1.8"/>
|
|
90
|
+
<rect x="37.2" y="129.1" width="1.9" height="1.9"/>
|
|
91
|
+
<rect x="40.9" y="132.8" width="1.9" height="1.9"/>
|
|
92
|
+
<rect x="70.9" y="129.1" width="1.8" height="1.9"/>
|
|
93
|
+
<rect x="67.4" y="132.8" width="1.9" height="1.9"/>
|
|
94
|
+
</svg>
|