@bolt-foundry/gambit 0.8.5-rc.9 → 0.8.5
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/CHANGELOG.md +40 -2
- package/README.md +16 -7
- package/esm/_dnt.polyfills.d.ts +7 -7
- package/esm/_dnt.polyfills.d.ts.map +1 -1
- package/esm/_dnt.polyfills.js +14 -13
- package/esm/deps/jsr.io/@std/path/1.1.4/constants.d.ts +1 -1
- package/esm/gambit/simulator-ui/dist/bundle.js +2464 -380
- package/esm/gambit/simulator-ui/dist/bundle.js.map +4 -4
- package/esm/src/providers/codex.d.ts.map +1 -1
- package/esm/src/providers/codex.js +5 -1
- package/esm/src/providers/ollama.d.ts.map +1 -1
- package/esm/src/providers/ollama.js +57 -0
- package/esm/src/providers/openrouter.d.ts.map +1 -1
- package/esm/src/providers/openrouter.js +75 -1
- package/esm/src/server.d.ts.map +1 -1
- package/esm/src/server.js +346 -32
- package/esm/src/server_session_store.d.ts.map +1 -1
- package/esm/src/server_session_store.js +7 -4
- package/esm/src/server_types.d.ts +1 -0
- package/esm/src/server_types.d.ts.map +1 -1
- package/esm/src/server_ui_routes.d.ts.map +1 -1
- package/esm/src/server_ui_routes.js +3 -0
- package/esm/src/workspace.d.ts.map +1 -1
- package/esm/src/workspace.js +0 -2
- package/esm/src/workspace_contract.d.ts +1 -1
- package/esm/src/workspace_contract.d.ts.map +1 -1
- package/esm/src/workspace_contract.js +2 -1
- package/package.json +2 -2
- package/script/_dnt.polyfills.d.ts +7 -7
- package/script/_dnt.polyfills.d.ts.map +1 -1
- package/script/_dnt.polyfills.js +14 -13
- package/script/deps/jsr.io/@std/path/1.1.4/constants.d.ts +1 -1
- package/script/gambit/simulator-ui/dist/bundle.js +2464 -380
- package/script/gambit/simulator-ui/dist/bundle.js.map +4 -4
- package/script/src/providers/codex.d.ts.map +1 -1
- package/script/src/providers/codex.js +5 -1
- package/script/src/providers/ollama.d.ts.map +1 -1
- package/script/src/providers/ollama.js +57 -0
- package/script/src/providers/openrouter.d.ts.map +1 -1
- package/script/src/providers/openrouter.js +75 -1
- package/script/src/server.d.ts.map +1 -1
- package/script/src/server.js +346 -32
- package/script/src/server_session_store.d.ts.map +1 -1
- package/script/src/server_session_store.js +7 -4
- package/script/src/server_types.d.ts +1 -0
- package/script/src/server_types.d.ts.map +1 -1
- package/script/src/server_ui_routes.d.ts.map +1 -1
- package/script/src/server_ui_routes.js +3 -0
- package/script/src/workspace.d.ts.map +1 -1
- package/script/src/workspace.js +0 -2
- package/script/src/workspace_contract.d.ts +1 -1
- package/script/src/workspace_contract.d.ts.map +1 -1
- package/script/src/workspace_contract.js +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/src/providers/codex.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,SAAS,EACT,YAAY,EACZ,aAAa,EAIb,UAAU,EACX,MAAM,2BAA2B,CAAC;AAEnC,eAAO,MAAM,YAAY,eAAe,CAAC;AAiCzC,KAAK,aAAa,GAAG;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE;IAC3B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/src/providers/codex.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,SAAS,EACT,YAAY,EACZ,aAAa,EAIb,UAAU,EACX,MAAM,2BAA2B,CAAC;AAEnC,eAAO,MAAM,YAAY,eAAe,CAAC;AAiCzC,KAAK,aAAa,GAAG;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE;IAC3B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;AA8oB7B,wBAAgB,mBAAmB,CAAC,IAAI,CAAC,EAAE;IACzC,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B,GAAG,aAAa,CAmNhB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,KAAK,CAAC,MAAM,CAAC,CA2BhB;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH,CAEA;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAEvE"}
|
|
@@ -531,7 +531,6 @@ function buildUpdatedState(input) {
|
|
|
531
531
|
items: priorState?.items,
|
|
532
532
|
messageRefs: priorState?.messageRefs,
|
|
533
533
|
feedback: priorState?.feedback,
|
|
534
|
-
traces: priorState?.traces,
|
|
535
534
|
meta,
|
|
536
535
|
notes: priorState?.notes,
|
|
537
536
|
conversationScore: priorState?.conversationScore,
|
|
@@ -539,9 +538,14 @@ function buildUpdatedState(input) {
|
|
|
539
538
|
}
|
|
540
539
|
function defaultCommandRunner(input) {
|
|
541
540
|
const codexBin = dntShim.Deno.env.get(CODEX_BIN_ENV)?.trim() || "codex";
|
|
541
|
+
const env = dntShim.Deno.env.toObject();
|
|
542
|
+
if (!env.CODEX_HOME || env.CODEX_HOME.trim().length === 0) {
|
|
543
|
+
env.CODEX_HOME = path.join(input.cwd, ".codex");
|
|
544
|
+
}
|
|
542
545
|
const child = new dntShim.Deno.Command(codexBin, {
|
|
543
546
|
args: input.args,
|
|
544
547
|
cwd: input.cwd,
|
|
548
|
+
env,
|
|
545
549
|
stdout: "piped",
|
|
546
550
|
stderr: "piped",
|
|
547
551
|
}).spawn();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../../src/src/providers/ollama.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAKV,aAAa,EAOd,MAAM,2BAA2B,CAAC;AAOnC,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,uBAAuB,8BAA8B,CAAC;AAEnE,KAAK,YAAY,GAAG;IAClB,SAAS,EAAE;QACT,MAAM,EAAE,CACN,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,WAAW,CAAA;SAAE,KAC/B,OAAO,CAAC,OAAO,CAAC,CAAC;KACvB,CAAC;CACH,CAAC;AAeF,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAgBtB;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,IAAI,CAAC,CA8Cf;
|
|
1
|
+
{"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../../src/src/providers/ollama.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAKV,aAAa,EAOd,MAAM,2BAA2B,CAAC;AAOnC,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,uBAAuB,8BAA8B,CAAC;AAEnE,KAAK,YAAY,GAAG;IAClB,SAAS,EAAE;QACT,MAAM,EAAE,CACN,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,WAAW,CAAA;SAAE,KAC/B,OAAO,CAAC,OAAO,CAAC,CAAC;KACvB,CAAC;CACH,CAAC;AAeF,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAgBtB;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,IAAI,CAAC,CA8Cf;AA0wBD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,GAAG,aAAa,CA0ChB"}
|
|
@@ -123,6 +123,30 @@ function safeJson(input) {
|
|
|
123
123
|
}
|
|
124
124
|
return {};
|
|
125
125
|
}
|
|
126
|
+
function toJsonValue(value) {
|
|
127
|
+
if (value === null || typeof value === "string" || typeof value === "boolean") {
|
|
128
|
+
return value;
|
|
129
|
+
}
|
|
130
|
+
if (typeof value === "number") {
|
|
131
|
+
return Number.isFinite(value) ? value : String(value);
|
|
132
|
+
}
|
|
133
|
+
if (Array.isArray(value)) {
|
|
134
|
+
return value.map((entry) => toJsonValue(entry));
|
|
135
|
+
}
|
|
136
|
+
if (value && typeof value === "object") {
|
|
137
|
+
const out = {};
|
|
138
|
+
for (const [key, entry] of Object.entries(value)) {
|
|
139
|
+
if (entry === undefined)
|
|
140
|
+
continue;
|
|
141
|
+
out[key] = toJsonValue(entry);
|
|
142
|
+
}
|
|
143
|
+
return out;
|
|
144
|
+
}
|
|
145
|
+
return String(value);
|
|
146
|
+
}
|
|
147
|
+
function isExtensionResponseItem(item) {
|
|
148
|
+
return item.type.includes(":");
|
|
149
|
+
}
|
|
126
150
|
function isAsyncIterable(value) {
|
|
127
151
|
return Boolean(value &&
|
|
128
152
|
typeof value === "object" &&
|
|
@@ -319,6 +343,32 @@ function mapOpenAIOutputItem(item) {
|
|
|
319
343
|
encrypted_content: reasoning.encrypted_content,
|
|
320
344
|
};
|
|
321
345
|
}
|
|
346
|
+
if (typeof itemType === "string" && itemType.includes(":")) {
|
|
347
|
+
const raw = item;
|
|
348
|
+
const payloadEntries = Object.entries(raw).filter(([key, value]) => {
|
|
349
|
+
if (key === "type" || key === "id")
|
|
350
|
+
return false;
|
|
351
|
+
if (value === undefined)
|
|
352
|
+
return false;
|
|
353
|
+
return true;
|
|
354
|
+
});
|
|
355
|
+
let data;
|
|
356
|
+
if (payloadEntries.length === 1 && payloadEntries[0][0] === "data") {
|
|
357
|
+
data = toJsonValue(payloadEntries[0][1]);
|
|
358
|
+
}
|
|
359
|
+
else {
|
|
360
|
+
const payloadObject = {};
|
|
361
|
+
for (const [key, value] of payloadEntries) {
|
|
362
|
+
payloadObject[key] = toJsonValue(value);
|
|
363
|
+
}
|
|
364
|
+
data = payloadObject;
|
|
365
|
+
}
|
|
366
|
+
return {
|
|
367
|
+
type: itemType,
|
|
368
|
+
id: typeof raw.id === "string" ? raw.id : undefined,
|
|
369
|
+
data,
|
|
370
|
+
};
|
|
371
|
+
}
|
|
322
372
|
return null;
|
|
323
373
|
}
|
|
324
374
|
function normalizeOpenAIResponse(response) {
|
|
@@ -426,6 +476,13 @@ function toOpenAIInputItems(items) {
|
|
|
426
476
|
encrypted_content: item.encrypted_content ?? null,
|
|
427
477
|
});
|
|
428
478
|
}
|
|
479
|
+
if (isExtensionResponseItem(item)) {
|
|
480
|
+
mapped.push({
|
|
481
|
+
type: item.type,
|
|
482
|
+
id: item.id,
|
|
483
|
+
data: item.data,
|
|
484
|
+
});
|
|
485
|
+
}
|
|
429
486
|
}
|
|
430
487
|
return mapped;
|
|
431
488
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../../src/src/providers/openrouter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAKV,aAAa,EAOd,MAAM,2BAA2B,CAAC;AAOnC,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAE/C,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE;QACJ,WAAW,EAAE;YACX,MAAM,EAAE,CACN,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,EAAE,WAAW,CAAA;aAAE,KAC/B,OAAO,CAAC,OAAO,CAAC,CAAC;SACvB,CAAC;KACH,CAAC;IACF,SAAS,EAAE;QACT,MAAM,EAAE,CACN,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,WAAW,CAAA;SAAE,KAC/B,OAAO,CAAC,OAAO,CAAC,CAAC;KACvB,CAAC;CACH,CAAC;
|
|
1
|
+
{"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../../src/src/providers/openrouter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAKV,aAAa,EAOd,MAAM,2BAA2B,CAAC;AAOnC,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAE/C,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE;QACJ,WAAW,EAAE;YACX,MAAM,EAAE,CACN,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,EAAE,WAAW,CAAA;aAAE,KAC/B,OAAO,CAAC,OAAO,CAAC,CAAC;SACvB,CAAC;KACH,CAAC;IACF,SAAS,EAAE;QACT,MAAM,EAAE,CACN,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,WAAW,CAAA;SAAE,KAC/B,OAAO,CAAC,OAAO,CAAC,CAAC;KACvB,CAAC;CACH,CAAC;AA6zBF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,GAAG,aAAa,CAwOhB"}
|
|
@@ -77,6 +77,30 @@ function safeJson(input) {
|
|
|
77
77
|
}
|
|
78
78
|
return {};
|
|
79
79
|
}
|
|
80
|
+
function toJsonValue(value) {
|
|
81
|
+
if (value === null || typeof value === "string" || typeof value === "boolean") {
|
|
82
|
+
return value;
|
|
83
|
+
}
|
|
84
|
+
if (typeof value === "number") {
|
|
85
|
+
return Number.isFinite(value) ? value : String(value);
|
|
86
|
+
}
|
|
87
|
+
if (Array.isArray(value)) {
|
|
88
|
+
return value.map((entry) => toJsonValue(entry));
|
|
89
|
+
}
|
|
90
|
+
if (value && typeof value === "object") {
|
|
91
|
+
const out = {};
|
|
92
|
+
for (const [key, entry] of Object.entries(value)) {
|
|
93
|
+
if (entry === undefined)
|
|
94
|
+
continue;
|
|
95
|
+
out[key] = toJsonValue(entry);
|
|
96
|
+
}
|
|
97
|
+
return out;
|
|
98
|
+
}
|
|
99
|
+
return String(value);
|
|
100
|
+
}
|
|
101
|
+
function isExtensionResponseItem(item) {
|
|
102
|
+
return item.type.includes(":");
|
|
103
|
+
}
|
|
80
104
|
function isAsyncIterable(value) {
|
|
81
105
|
return Boolean(value &&
|
|
82
106
|
typeof value === "object" &&
|
|
@@ -201,6 +225,23 @@ function appendSyntheticTools(tools, input) {
|
|
|
201
225
|
});
|
|
202
226
|
}
|
|
203
227
|
}
|
|
228
|
+
function mapText(text) {
|
|
229
|
+
if (!text)
|
|
230
|
+
return undefined;
|
|
231
|
+
const format = text.format;
|
|
232
|
+
if (!format || typeof format !== "object" || format.type !== "json_schema") {
|
|
233
|
+
return text;
|
|
234
|
+
}
|
|
235
|
+
if (format.strict === false)
|
|
236
|
+
return text;
|
|
237
|
+
return {
|
|
238
|
+
...text,
|
|
239
|
+
format: {
|
|
240
|
+
...format,
|
|
241
|
+
strict: false,
|
|
242
|
+
},
|
|
243
|
+
};
|
|
244
|
+
}
|
|
204
245
|
function mapToolChoice(toolChoice) {
|
|
205
246
|
if (!toolChoice)
|
|
206
247
|
return undefined;
|
|
@@ -278,6 +319,32 @@ function mapOpenAIOutputItem(item) {
|
|
|
278
319
|
encrypted_content: reasoning.encrypted_content,
|
|
279
320
|
};
|
|
280
321
|
}
|
|
322
|
+
if (typeof itemType === "string" && itemType.includes(":")) {
|
|
323
|
+
const raw = item;
|
|
324
|
+
const payloadEntries = Object.entries(raw).filter(([key, value]) => {
|
|
325
|
+
if (key === "type" || key === "id")
|
|
326
|
+
return false;
|
|
327
|
+
if (value === undefined)
|
|
328
|
+
return false;
|
|
329
|
+
return true;
|
|
330
|
+
});
|
|
331
|
+
let data;
|
|
332
|
+
if (payloadEntries.length === 1 && payloadEntries[0][0] === "data") {
|
|
333
|
+
data = toJsonValue(payloadEntries[0][1]);
|
|
334
|
+
}
|
|
335
|
+
else {
|
|
336
|
+
const payloadObject = {};
|
|
337
|
+
for (const [key, value] of payloadEntries) {
|
|
338
|
+
payloadObject[key] = toJsonValue(value);
|
|
339
|
+
}
|
|
340
|
+
data = payloadObject;
|
|
341
|
+
}
|
|
342
|
+
return {
|
|
343
|
+
type: itemType,
|
|
344
|
+
id: typeof raw.id === "string" ? raw.id : undefined,
|
|
345
|
+
data,
|
|
346
|
+
};
|
|
347
|
+
}
|
|
281
348
|
return null;
|
|
282
349
|
}
|
|
283
350
|
function normalizeOpenAIResponse(response) {
|
|
@@ -385,6 +452,13 @@ function toOpenAIInputItems(items) {
|
|
|
385
452
|
encrypted_content: item.encrypted_content ?? null,
|
|
386
453
|
});
|
|
387
454
|
}
|
|
455
|
+
if (isExtensionResponseItem(item)) {
|
|
456
|
+
mapped.push({
|
|
457
|
+
type: item.type,
|
|
458
|
+
id: item.id,
|
|
459
|
+
data: item.data,
|
|
460
|
+
});
|
|
461
|
+
}
|
|
388
462
|
}
|
|
389
463
|
return mapped;
|
|
390
464
|
}
|
|
@@ -481,7 +555,7 @@ async function createResponse(client, request, signal, onStreamEvent) {
|
|
|
481
555
|
max_tool_calls: request.max_tool_calls,
|
|
482
556
|
store: request.store,
|
|
483
557
|
include: request.include,
|
|
484
|
-
text: request.text,
|
|
558
|
+
text: mapText(request.text),
|
|
485
559
|
stream_options: request.stream_options,
|
|
486
560
|
background: request.background,
|
|
487
561
|
truncation: request.truncation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAmD5C,OAAO,KAAK,EAMV,aAAa,EAOd,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAmD5C,OAAO,KAAK,EAMV,aAAa,EAOd,MAAM,2BAA2B,CAAC;AAuiCnC;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,aAAa,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE;QACV,EAAE,EAAE,MAAM,CAAC;QACX,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAg5KxC"}
|