obi-sdk 0.3.10 → 0.3.12
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/dist/modular/chunks/{obi-widget-c60b2f9f.js → obi-widget-dffef845.js} +9 -34
- package/dist/modular/chunks/{obi-widget-c60b2f9f.js.map → obi-widget-dffef845.js.map} +1 -1
- package/dist/modular/chunks/types-82772f00.js.map +1 -1
- package/dist/modular/core.js.map +1 -1
- package/dist/modular/index.js +1 -1
- package/dist/modular/index.js.map +1 -1
- package/dist/modular/ui.js +17 -160
- package/dist/modular/ui.js.map +1 -1
- package/dist/obi-sdk.es.js +23245 -13349
- package/dist/obi-sdk.es.js.map +1 -0
- package/dist/obi-sdk.standalone.iife.js +40 -41
- package/dist/obi-sdk.standalone.iife.js.map +1 -1
- package/dist/obi-sdk.umd.js +47 -133
- package/dist/obi-sdk.umd.js.map +1 -0
- package/dist/ui/components/index.d.ts +0 -1
- package/package.json +2 -2
- package/dist/ui/components/control-panel.d.ts +0 -12
package/dist/modular/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/core/init.ts"],"sourcesContent":["import { ObiWidget } from \"../ui/components/obi-widget\"\n\nif (!customElements.get(\"obi-widget\")) {\n customElements.define(\"obi-widget\", ObiWidget)\n}\n\nfunction mountSDK(): void {\n const w = window as any\n if (typeof w.ObiSDK === \"function\" || typeof w.ObiSDK === \"object\") {\n return\n }\n\n // Initialize the SDK\n w.ObiSDK = function (command: string, config?: any) {\n if (command === \"update\" && config) {\n w.obiWidgetConfig = {\n ...w.obiWidgetConfig,\n ...config,\n }\n }\n }\n w.ObiSDK.q = []\n}\n\n// Mount the widget if not already present\nfunction mountWidget() {\n if (!document.querySelector(\"obi-widget\")) {\n const widget = document.createElement(\"obi-widget\")\n document.body.appendChild(widget)\n console.log(\"Obi Widget mounted\")\n }\n}\n\n// Optionally process a queue if you want to support it\nfunction processQueue() {\n const w = window as any\n if (w.ObiSDK && Array.isArray(w.ObiSDK.q)) {\n // Process each command in the queue\n w.ObiSDK.q.forEach((args: any[]) => {\n const [command, config] = args\n if (command === \"update\" && config) {\n w.obiWidgetConfig = {\n ...w.obiWidgetConfig,\n ...config,\n }\n }\n })\n w.ObiSDK.q = []\n }\n}\n\nfunction loadFonts() {\n const link = document.createElement(\"link\")\n link.href =\n \"https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Syne:wght@400..800&display=swap\"\n link.rel = \"stylesheet\"\n document.head.appendChild(link)\n}\n\n// Main init\nexport function initializeObiWidget() {\n loadFonts()\n mountSDK()\n mountWidget()\n processQueue()\n}\n\n// Auto-initialize\ninitializeObiWidget()\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/core/init.ts"],"sourcesContent":["import { ObiWidget } from \"../ui/components/obi-widget\"\n\nif (!customElements.get(\"obi-widget\")) {\n customElements.define(\"obi-widget\", ObiWidget)\n}\n\nfunction mountSDK(): void {\n const w = window as any\n if (typeof w.ObiSDK === \"function\" || typeof w.ObiSDK === \"object\") {\n return\n }\n\n // Initialize the SDK\n w.ObiSDK = function (command: string, config?: any) {\n if (command === \"update\" && config) {\n w.obiWidgetConfig = {\n ...w.obiWidgetConfig,\n ...config,\n }\n }\n }\n w.ObiSDK.q = []\n}\n\n// Mount the widget if not already present\nfunction mountWidget() {\n if (!document.querySelector(\"obi-widget\")) {\n const widget = document.createElement(\"obi-widget\")\n document.body.appendChild(widget)\n console.log(\"Obi Widget mounted\")\n }\n}\n\n// Optionally process a queue if you want to support it\nfunction processQueue() {\n const w = window as any\n if (w.ObiSDK && Array.isArray(w.ObiSDK.q)) {\n // Process each command in the queue\n w.ObiSDK.q.forEach((args: any[]) => {\n const [command, config] = args\n if (command === \"update\" && config) {\n w.obiWidgetConfig = {\n ...w.obiWidgetConfig,\n ...config,\n }\n }\n })\n w.ObiSDK.q = []\n }\n}\n\nfunction loadFonts() {\n const link = document.createElement(\"link\")\n link.href =\n \"https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Syne:wght@400..800&display=swap\"\n link.rel = \"stylesheet\"\n document.head.appendChild(link)\n}\n\n// Main init\nexport function initializeObiWidget() {\n loadFonts()\n mountSDK()\n mountWidget()\n processQueue()\n}\n\n// Auto-initialize\ninitializeObiWidget()\n"],"names":[],"mappings":"AAEA,SAAA,KAAA,iBAAA;AAAA,OAAA;AAAA,IAAI,CAAC,eAAe,IAAI,YAAY,GAAG;AACtB,iBAAA,OAAO,cAAc,SAAS;AAC/C;AAEA,SAAS,WAAiB;AACxB,QAAM,IAAI;AACV,MAAI,OAAO,EAAE,WAAW,cAAc,OAAO,EAAE,WAAW,UAAU;AAClE;AAAA,EACF;AAGE,IAAA,SAAS,SAAU,SAAiB,QAAc;AAC9C,QAAA,YAAY,YAAY,QAAQ;AAClC,QAAE,kBAAkB;AAAA,QAClB,GAAG,EAAE;AAAA,QACL,GAAG;AAAA,MAAA;AAAA,IAEP;AAAA,EAAA;AAEA,IAAA,OAAO,IAAI;AACf;AAGA,SAAS,cAAc;AACrB,MAAI,CAAC,SAAS,cAAc,YAAY,GAAG;AACnC,UAAA,SAAS,SAAS,cAAc,YAAY;AACzC,aAAA,KAAK,YAAY,MAAM;AAChC,YAAQ,IAAI,oBAAoB;AAAA,EAClC;AACF;AAGA,SAAS,eAAe;AACtB,QAAM,IAAI;AACV,MAAI,EAAE,UAAU,MAAM,QAAQ,EAAE,OAAO,CAAC,GAAG;AAEzC,MAAE,OAAO,EAAE,QAAQ,CAAC,SAAgB;AAC5B,YAAA,CAAC,SAAS,MAAM,IAAI;AACtB,UAAA,YAAY,YAAY,QAAQ;AAClC,UAAE,kBAAkB;AAAA,UAClB,GAAG,EAAE;AAAA,UACL,GAAG;AAAA,QAAA;AAAA,MAEP;AAAA,IAAA,CACD;AACC,MAAA,OAAO,IAAI;EACf;AACF;AAEA,SAAS,YAAY;AACb,QAAA,OAAO,SAAS,cAAc,MAAM;AAC1C,OAAK,OACH;AACF,OAAK,MAAM;AACF,WAAA,KAAK,YAAY,IAAI;AAChC;AAGO,SAAS,sBAAsB;AAC1B;AACD;AACG;AACC;AACf;AAGA,oBAAoB;"}
|
package/dist/modular/ui.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { S as SDKState } from "./chunks/types-82772f00.js";
|
|
2
|
-
import { i, n, a as i$1, x } from "./chunks/obi-widget-
|
|
3
|
-
import { A, C, c, d, D, N, b, O, S } from "./chunks/obi-widget-
|
|
4
|
-
var __defProp
|
|
5
|
-
var __getOwnPropDesc
|
|
6
|
-
var __decorateClass
|
|
7
|
-
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc
|
|
2
|
+
import { i, n, a as i$1, x } from "./chunks/obi-widget-dffef845.js";
|
|
3
|
+
import { A, C, c, d, D, N, b, O, S } from "./chunks/obi-widget-dffef845.js";
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
7
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
8
8
|
for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
|
|
9
9
|
if (decorator = decorators[i2])
|
|
10
10
|
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
11
11
|
if (kind && result)
|
|
12
|
-
__defProp
|
|
12
|
+
__defProp(target, key, result);
|
|
13
13
|
return result;
|
|
14
14
|
};
|
|
15
15
|
class ObiStatusWidget extends i$1 {
|
|
@@ -76,165 +76,23 @@ ObiStatusWidget.styles = i`
|
|
|
76
76
|
color: #1f2937;
|
|
77
77
|
}
|
|
78
78
|
`;
|
|
79
|
-
__decorateClass
|
|
79
|
+
__decorateClass([
|
|
80
80
|
n({ type: String })
|
|
81
81
|
], ObiStatusWidget.prototype, "state", 2);
|
|
82
82
|
if (!customElements.get("obi-status-widget")) {
|
|
83
83
|
customElements.define("obi-status-widget", ObiStatusWidget);
|
|
84
84
|
}
|
|
85
|
-
const statusWidget = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
86
|
-
__proto__: null,
|
|
87
|
-
ObiStatusWidget
|
|
88
|
-
}, Symbol.toStringTag, { value: "Module" }));
|
|
89
|
-
var __defProp = Object.defineProperty;
|
|
90
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
91
|
-
var __decorateClass = (decorators, target, key, kind) => {
|
|
92
|
-
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
93
|
-
for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
|
|
94
|
-
if (decorator = decorators[i2])
|
|
95
|
-
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
96
|
-
if (kind && result)
|
|
97
|
-
__defProp(target, key, result);
|
|
98
|
-
return result;
|
|
99
|
-
};
|
|
100
|
-
class ObiControlPanel extends i$1 {
|
|
101
|
-
constructor() {
|
|
102
|
-
super(...arguments);
|
|
103
|
-
this.state = SDKState.READY;
|
|
104
|
-
this.voiceEnabled = true;
|
|
105
|
-
this.screenEnabled = true;
|
|
106
|
-
}
|
|
107
|
-
render() {
|
|
108
|
-
const isActive = this.state === SDKState.AGENT_SPEAKING;
|
|
109
|
-
const isReady = this.state === SDKState.READY;
|
|
110
|
-
return x`
|
|
111
|
-
<div class="control-container">
|
|
112
|
-
<div class="control-header">Obi Controls</div>
|
|
113
|
-
<div class="control-buttons">
|
|
114
|
-
<button
|
|
115
|
-
class="btn-voice"
|
|
116
|
-
?disabled=${!isReady || !this.voiceEnabled}
|
|
117
|
-
@click=${this.handleVoiceClick}
|
|
118
|
-
>
|
|
119
|
-
Start Voice
|
|
120
|
-
</button>
|
|
121
|
-
|
|
122
|
-
<button
|
|
123
|
-
class="btn-screen"
|
|
124
|
-
?disabled=${!isReady || !this.screenEnabled}
|
|
125
|
-
@click=${this.handleScreenClick}
|
|
126
|
-
>
|
|
127
|
-
Capture Screen
|
|
128
|
-
</button>
|
|
129
|
-
|
|
130
|
-
<button class="btn-stop" ?disabled=${!isActive} @click=${this.handleStopClick}>
|
|
131
|
-
Stop
|
|
132
|
-
</button>
|
|
133
|
-
</div>
|
|
134
|
-
</div>
|
|
135
|
-
`;
|
|
136
|
-
}
|
|
137
|
-
handleVoiceClick() {
|
|
138
|
-
this.dispatchEvent(new CustomEvent("voice-start"));
|
|
139
|
-
}
|
|
140
|
-
handleScreenClick() {
|
|
141
|
-
this.dispatchEvent(new CustomEvent("screen-start"));
|
|
142
|
-
}
|
|
143
|
-
handleStopClick() {
|
|
144
|
-
this.dispatchEvent(new CustomEvent("stop"));
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
ObiControlPanel.styles = i`
|
|
148
|
-
:host {
|
|
149
|
-
display: block;
|
|
150
|
-
font-family: Arial, sans-serif;
|
|
151
|
-
--obi-primary: #3b82f6;
|
|
152
|
-
--obi-danger: #ef4444;
|
|
153
|
-
--obi-gray: #6b7280;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
.control-container {
|
|
157
|
-
display: flex;
|
|
158
|
-
flex-direction: column;
|
|
159
|
-
padding: 16px;
|
|
160
|
-
border-radius: 8px;
|
|
161
|
-
background-color: #ffffff;
|
|
162
|
-
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
163
|
-
max-width: 300px;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
.control-header {
|
|
167
|
-
margin-bottom: 16px;
|
|
168
|
-
font-size: 16px;
|
|
169
|
-
font-weight: 600;
|
|
170
|
-
color: #111827;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
.control-buttons {
|
|
174
|
-
display: flex;
|
|
175
|
-
gap: 8px;
|
|
176
|
-
margin-bottom: 16px;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
button {
|
|
180
|
-
padding: 8px 12px;
|
|
181
|
-
border: none;
|
|
182
|
-
border-radius: 4px;
|
|
183
|
-
font-size: 14px;
|
|
184
|
-
font-weight: 500;
|
|
185
|
-
cursor: pointer;
|
|
186
|
-
transition:
|
|
187
|
-
background-color 0.2s,
|
|
188
|
-
opacity 0.2s;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
button:disabled {
|
|
192
|
-
opacity: 0.5;
|
|
193
|
-
cursor: not-allowed;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
.btn-voice {
|
|
197
|
-
background-color: var(--obi-primary);
|
|
198
|
-
color: white;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
.btn-screen {
|
|
202
|
-
background-color: var(--obi-primary);
|
|
203
|
-
color: white;
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
.btn-stop {
|
|
207
|
-
background-color: var(--obi-danger);
|
|
208
|
-
color: white;
|
|
209
|
-
}
|
|
210
|
-
`;
|
|
211
|
-
__decorateClass([
|
|
212
|
-
n({ type: String })
|
|
213
|
-
], ObiControlPanel.prototype, "state", 2);
|
|
214
|
-
__decorateClass([
|
|
215
|
-
n({ type: Boolean })
|
|
216
|
-
], ObiControlPanel.prototype, "voiceEnabled", 2);
|
|
217
|
-
__decorateClass([
|
|
218
|
-
n({ type: Boolean })
|
|
219
|
-
], ObiControlPanel.prototype, "screenEnabled", 2);
|
|
220
|
-
if (!customElements.get("obi-control-panel")) {
|
|
221
|
-
customElements.define("obi-control-panel", ObiControlPanel);
|
|
222
|
-
}
|
|
223
|
-
const controlPanel = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
224
|
-
__proto__: null,
|
|
225
|
-
ObiControlPanel
|
|
226
|
-
}, Symbol.toStringTag, { value: "Module" }));
|
|
85
|
+
const statusWidget = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, ObiStatusWidget }, Symbol.toStringTag, { value: "Module" }));
|
|
227
86
|
function defineCustomElements() {
|
|
228
87
|
Promise.resolve().then(() => statusWidget);
|
|
229
|
-
|
|
230
|
-
import("./chunks/obi-widget-
|
|
231
|
-
import("./chunks/obi-widget-
|
|
232
|
-
import("./chunks/obi-widget-
|
|
233
|
-
import("./chunks/obi-widget-
|
|
234
|
-
import("./chunks/obi-widget-
|
|
235
|
-
import("./chunks/obi-widget-
|
|
236
|
-
import("./chunks/obi-widget-
|
|
237
|
-
import("./chunks/obi-widget-c60b2f9f.js").then((n2) => n2.h);
|
|
88
|
+
import("./chunks/obi-widget-dffef845.js").then((n2) => n2.o);
|
|
89
|
+
import("./chunks/obi-widget-dffef845.js").then((n2) => n2.j);
|
|
90
|
+
import("./chunks/obi-widget-dffef845.js").then((n2) => n2.k);
|
|
91
|
+
import("./chunks/obi-widget-dffef845.js").then((n2) => n2.e);
|
|
92
|
+
import("./chunks/obi-widget-dffef845.js").then((n2) => n2.f);
|
|
93
|
+
import("./chunks/obi-widget-dffef845.js").then((n2) => n2.s);
|
|
94
|
+
import("./chunks/obi-widget-dffef845.js").then((n2) => n2.g);
|
|
95
|
+
import("./chunks/obi-widget-dffef845.js").then((n2) => n2.h);
|
|
238
96
|
}
|
|
239
97
|
export {
|
|
240
98
|
A as AudioEqualizer,
|
|
@@ -244,7 +102,6 @@ export {
|
|
|
244
102
|
D as DotLoader,
|
|
245
103
|
N as NavIcon,
|
|
246
104
|
b as NavigationBar,
|
|
247
|
-
ObiControlPanel,
|
|
248
105
|
ObiStatusWidget,
|
|
249
106
|
O as ObiWidget,
|
|
250
107
|
S as SearchingLoader,
|
package/dist/modular/ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sources":["../../src/ui/components/status-widget.ts","../../src/ui/components/
|
|
1
|
+
{"version":3,"file":"ui.js","sources":["../../src/ui/components/status-widget.ts","../../src/ui/components/index.ts"],"sourcesContent":["import { SDKState } from \"@obi/obi-session\"\nimport { LitElement, html, css } from \"lit\"\nimport { property } from \"lit/decorators.js\"\n\nexport class ObiStatusWidget extends LitElement {\n @property({ type: String })\n state: SDKState = SDKState.READY\n\n static styles = css`\n :host {\n display: inline-block;\n font-family: Arial, sans-serif;\n }\n\n .status-container {\n display: flex;\n align-items: center;\n padding: 8px 12px;\n border-radius: 16px;\n background-color: #f3f4f6;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n }\n\n .status-indicator {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n margin-right: 8px;\n }\n\n .ready {\n background-color: #10b981;\n }\n\n .active {\n background-color: #3b82f6;\n }\n\n .error {\n background-color: #ef4444;\n }\n\n .status-text {\n font-size: 14px;\n font-weight: 500;\n color: #1f2937;\n }\n `\n\n render() {\n return html`\n <div class=\"status-container\">\n <div class=\"status-indicator ${this.state}\"></div>\n <div class=\"status-text\">${this.getStatusText()}</div>\n </div>\n `\n }\n\n private getStatusText(): string {\n switch (this.state) {\n case SDKState.READY:\n return \"Ready\"\n case SDKState.ERROR:\n return \"Error\"\n default:\n return \"Unknown\"\n }\n }\n}\n\nif (!customElements.get(\"obi-status-widget\")) {\n customElements.define(\"obi-status-widget\", ObiStatusWidget)\n}\n","export * from \"./status-widget\"\nexport * from \"./obi-widget\"\nexport * from \"./audio-equalizer\"\nexport * from \"./dot-loader\"\nexport * from \"./nav-icon\"\nexport * from \"./navigation-bar\"\nexport * from \"./searching-loader\"\nexport * from \"./courses/courses\"\nexport * from \"./courses/course-modal\"\n\n// Function to define all custom elements at once for development\nexport function defineCustomElements() {\n // Import all components to ensure they're registered\n // This is primarily useful for development\n import(\"./status-widget\")\n import(\"./obi-widget\")\n import(\"./audio-equalizer\")\n import(\"./dot-loader\")\n import(\"./nav-icon\")\n import(\"./navigation-bar\")\n import(\"./searching-loader\")\n import(\"./courses/courses\")\n import(\"./courses/course-modal\")\n}\n"],"names":["LitElement","html","css","property","n"],"mappings":";;;;;;;;;;;;;;AAIO,MAAM,wBAAwBA,IAAW;AAAA,EAAzC,cAAA;AAAA,UAAA,GAAA,SAAA;AAEL,SAAA,QAAkB,SAAS;AAAA,EAAA;AAAA,EA2C3B,SAAS;AACA,WAAAC;AAAAA;AAAAA,uCAE4B,KAAK,KAAK;AAAA,mCACd,KAAK,eAAe;AAAA;AAAA;AAAA,EAGrD;AAAA,EAEQ,gBAAwB;AAC9B,YAAQ,KAAK,OAAO;AAAA,MAClB,KAAK,SAAS;AACL,eAAA;AAAA,MACT,KAAK,SAAS;AACL,eAAA;AAAA,MACT;AACS,eAAA;AAAA,IACX;AAAA,EACF;AACF;AAhEa,gBAIJ,SAASC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAFhB,gBAAA;AAAA,EADCC,EAAS,EAAE,MAAM,QAAQ;AAAA,GADf,gBAEX,WAAA,SAAA,CAAA;AAgEF,IAAI,CAAC,eAAe,IAAI,mBAAmB,GAAG;AAC7B,iBAAA,OAAO,qBAAqB,eAAe;AAC5D;AC7DO,MAAA,eAAA,uBAAA,OAAA,uBAAA,eAAA,EAAA,WAAA,MAAA,gBAAA,GAAA,OAAA,aAAA,EAAA,OAAA,SAAA,CAAA,CAAA;AAAA,SAAS,uBAAuB;AAGrC;AACA,SAAO,iCAAc,EAAA,KAAA,CAAAC,OAAAA,GAAA,CAAA;AACrB,SAAO,iCAAmB,EAAA,KAAA,CAAAA,OAAAA,GAAA,CAAA;AAC1B,SAAO,iCAAc,EAAA,KAAA,CAAAA,OAAAA,GAAA,CAAA;AACrB,SAAO,iCAAY,EAAA,KAAA,CAAAA,OAAAA,GAAA,CAAA;AACnB,SAAO,iCAAkB,EAAA,KAAA,CAAAA,OAAAA,GAAA,CAAA;AACzB,SAAO,iCAAoB,EAAA,KAAA,CAAAA,OAAAA,GAAA,CAAA;AAC3B,SAAO,iCAAmB,EAAA,KAAA,CAAAA,OAAAA,GAAA,CAAA;AAC1B,SAAO,iCAAwB,EAAA,KAAA,CAAAA,OAAAA,GAAA,CAAA;AACjC;"}
|