@substrat-run/contract-tests 0.138.0 → 0.139.0
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/attachment-text-fixtures.d.ts +17 -0
- package/dist/attachment-text-fixtures.d.ts.map +1 -1
- package/dist/attachment-text-fixtures.js +344 -4
- package/dist/attachment-text-fixtures.js.map +1 -1
- package/dist/attachment-text-suite.d.ts +16 -1
- package/dist/attachment-text-suite.d.ts.map +1 -1
- package/dist/attachment-text-suite.js +212 -28
- package/dist/attachment-text-suite.js.map +1 -1
- package/dist/caused-by-module.d.ts +23 -0
- package/dist/caused-by-module.d.ts.map +1 -0
- package/dist/caused-by-module.js +56 -0
- package/dist/caused-by-module.js.map +1 -0
- package/dist/caused-by-suite.d.ts +28 -0
- package/dist/caused-by-suite.d.ts.map +1 -0
- package/dist/caused-by-suite.js +179 -0
- package/dist/caused-by-suite.js.map +1 -0
- package/dist/entity-state-module.d.ts +134 -0
- package/dist/entity-state-module.d.ts.map +1 -0
- package/dist/entity-state-module.js +140 -0
- package/dist/entity-state-module.js.map +1 -0
- package/dist/entity-state-suite.d.ts +9 -0
- package/dist/entity-state-suite.d.ts.map +1 -0
- package/dist/entity-state-suite.js +534 -0
- package/dist/entity-state-suite.js.map +1 -0
- package/dist/findings-atomic-suite.d.ts +21 -0
- package/dist/findings-atomic-suite.d.ts.map +1 -0
- package/dist/findings-atomic-suite.js +131 -0
- package/dist/findings-atomic-suite.js.map +1 -0
- package/dist/findings-suite.d.ts +11 -0
- package/dist/findings-suite.d.ts.map +1 -0
- package/dist/findings-suite.js +391 -0
- package/dist/findings-suite.js.map +1 -0
- package/dist/index.d.ts +9 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/membership-executor-suite.d.ts +6 -2
- package/dist/membership-executor-suite.d.ts.map +1 -1
- package/dist/membership-executor-suite.js +260 -14
- package/dist/membership-executor-suite.js.map +1 -1
- package/dist/modules.d.ts +217 -0
- package/dist/modules.d.ts.map +1 -1
- package/dist/modules.js +4 -0
- package/dist/modules.js.map +1 -1
- package/dist/permission-suite.d.ts.map +1 -1
- package/dist/permission-suite.js +75 -0
- package/dist/permission-suite.js.map +1 -1
- package/dist/scope-host-suite.d.ts.map +1 -1
- package/dist/scope-host-suite.js +48 -0
- package/dist/scope-host-suite.js.map +1 -1
- package/dist/vertical-events-suite.d.ts +14 -0
- package/dist/vertical-events-suite.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -23,12 +23,19 @@
|
|
|
23
23
|
* 6. **Dumps.** A dump carries no extracted text. An in-place restore keeps the text of
|
|
24
24
|
* the attachments it keeps and drops the rest; a fork, whose bytes stay under the
|
|
25
25
|
* source scope's key, records each attachment as failed rather than leaving it pending.
|
|
26
|
+
* 7. **A host's own bounds.** A host tightens the input ceiling, the time budget and the
|
|
27
|
+
* text cap; a file over the ceiling is never handed to an extractor, an extractor past
|
|
28
|
+
* the budget is recorded failed and its late answer is never indexed, and a bound that
|
|
29
|
+
* loosens a default is refused when the host is built.
|
|
30
|
+
* 8. **The backfill.** Attachments that predate extraction — no text row, no run — are
|
|
31
|
+
* queued by a one-shot kernel job on the drive, a bounded batch per pass, and the scope
|
|
32
|
+
* is never walked again.
|
|
26
33
|
*/
|
|
27
34
|
import { describe, it, expect, beforeAll, afterAll } from 'vitest';
|
|
28
35
|
import { errorCodeOf, moduleId, permissionKey, platformActorId, principalId, scopeId as scopeIdSchema, tenantId, } from '@substrat-run/contracts';
|
|
29
|
-
import { ATTACHMENT_SEARCH_OWNER_MAX, ATTACHMENT_SEARCH_TOO_MANY_OWNERS, ATTACHMENT_TEXT_JOB, ATTACHMENT_TEXT_MODULE, DEFAULT_ATTACHMENT_TEXT_BOUNDS, SearchTermTooShort, isSearchIndexTable, ulid, } from '@substrat-run/kernel';
|
|
36
|
+
import { ATTACHMENT_SEARCH_OWNER_MAX, ATTACHMENT_SEARCH_TOO_MANY_OWNERS, ATTACHMENT_TEXT_BACKFILL_BATCH, ATTACHMENT_TEXT_BACKFILL_JOB, ATTACHMENT_TEXT_JOB, ATTACHMENT_TEXT_MODULE, DEFAULT_ATTACHMENT_TEXT_BOUNDS, SearchTermTooShort, isSearchIndexTable, ulid, } from '@substrat-run/kernel';
|
|
30
37
|
import { permMod } from './modules.js';
|
|
31
|
-
import { ATTACHMENT_TEXT_FIXTURES } from './attachment-text-fixtures.js';
|
|
38
|
+
import { ATTACHMENT_TEXT_FIXTURES, hostilePdfs } from './attachment-text-fixtures.js';
|
|
32
39
|
const PERM_READ = permissionKey.parse('perm:read');
|
|
33
40
|
const PERM_USE = permissionKey.parse('perm:use');
|
|
34
41
|
const item = (id) => ({ entityType: 'item', entityId: id });
|
|
@@ -43,39 +50,47 @@ export function attachmentTextContractSuite(adapterName, makeFixture) {
|
|
|
43
50
|
const staff = platformActorId.parse(ulid());
|
|
44
51
|
const editor = principalId.parse(ulid()); // perm:read + perm:use, tenant-wide
|
|
45
52
|
const bob = principalId.parse(ulid()); // no role: entity-narrowed grants only
|
|
53
|
+
/** A tenant with the suite's module, a blob store and its roles. */
|
|
54
|
+
const prepare = async (h, tn) => {
|
|
55
|
+
h.registerModule(permMod);
|
|
56
|
+
await h.admin.createTenant(staff, { id: tn, slug: `att-text-${tn.toLowerCase()}`, name: 'Attachment text' });
|
|
57
|
+
await h.admin.grantEntitlement(staff, tn, 'perm');
|
|
58
|
+
await h.provisionBlobStore(staff, { tenantId: tn, vertical: 'docs', binding: 'ATTACHMENTS' });
|
|
59
|
+
await h.admin.defineRole(staff, tn, { key: 'editor', permissions: [PERM_READ, PERM_USE], source: 'vertical' });
|
|
60
|
+
await h.admin.assignRole(staff, { principalId: editor, roleKey: 'editor', node: { tenantId: tn, scopeId: null } });
|
|
61
|
+
// A role at the tenant that holds a DIFFERENT key on the target: never "wide" for reading.
|
|
62
|
+
await h.admin.defineRole(staff, tn, { key: 'user', permissions: [PERM_USE], source: 'vertical' });
|
|
63
|
+
};
|
|
46
64
|
beforeAll(async () => {
|
|
47
65
|
fixture = await makeFixture();
|
|
48
66
|
host = fixture.host;
|
|
49
|
-
host
|
|
50
|
-
await host.admin.createTenant(staff, { id: t, slug: `att-text-${t.toLowerCase()}`, name: 'Attachment text' });
|
|
51
|
-
await host.admin.grantEntitlement(staff, t, 'perm');
|
|
52
|
-
await host.provisionBlobStore(staff, { tenantId: t, vertical: 'docs', binding: 'ATTACHMENTS' });
|
|
53
|
-
await host.admin.defineRole(staff, t, { key: 'editor', permissions: [PERM_READ, PERM_USE], source: 'vertical' });
|
|
54
|
-
await host.admin.assignRole(staff, { principalId: editor, roleKey: 'editor', node: { tenantId: t, scopeId: null } });
|
|
55
|
-
// A role at the tenant that holds a DIFFERENT key on the target: never "wide" for reading.
|
|
56
|
-
await host.admin.defineRole(staff, t, { key: 'user', permissions: [PERM_USE], source: 'vertical' });
|
|
67
|
+
await prepare(host, t);
|
|
57
68
|
});
|
|
58
69
|
afterAll(async () => {
|
|
59
70
|
await fixture.cleanup();
|
|
60
71
|
});
|
|
61
|
-
/**
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
72
|
+
/** The per-scope verbs, as the editor, on one host and tenant. */
|
|
73
|
+
const verbs = (hostOf, tn) => ({
|
|
74
|
+
/** A scope per test: `runDueJobs` drives a whole scope, so tests must not share one. */
|
|
75
|
+
newScope: async () => {
|
|
76
|
+
const s = scopeIdSchema.parse(ulid());
|
|
77
|
+
await hostOf().provisionScope(staff, { tenantId: tn, scopeId: s, vertical: 'docs' });
|
|
78
|
+
await hostOf().admin.activateScope(staff, tn, s);
|
|
79
|
+
return s;
|
|
80
|
+
},
|
|
81
|
+
upload: async (s, entity, filename, contentType, body) => (await hostOf().attachments(editor, tn, s)).upload({ entity, filename, contentType, visibility: 'internal', body }),
|
|
82
|
+
/** Drive the scope's due runs until none are left. */
|
|
83
|
+
extract: async (s) => {
|
|
84
|
+
for (let i = 0; i < 100; i += 1) {
|
|
85
|
+
if ((await hostOf().runDueJobs(tn, s, { limit: 500 })).attempted === 0)
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
throw new Error('extraction runs did not settle');
|
|
89
|
+
},
|
|
90
|
+
stateOf: async (s, id) => (await hostOf().getScope(editor, tn, s)).invoke('perm/attachment-text', { id }),
|
|
91
|
+
search: async (s, who, term, limit) => (await hostOf().attachments(who, tn, s)).search(term, limit === undefined ? undefined : { limit }),
|
|
92
|
+
});
|
|
93
|
+
const { newScope, upload, extract, stateOf, search } = verbs(() => host, t);
|
|
79
94
|
const grant = async (s, who, entity) => (await host.getScope(editor, t, s)).invoke('perm/share', { principal: who, permission: 'perm:read', entity });
|
|
80
95
|
/** Rows the console read sees — the index itself, not the search surface over it. */
|
|
81
96
|
const count = async (s, sql) => Number((await host.admin.queryScope(staff, t, s, { sql })).rows[0][0]);
|
|
@@ -135,6 +150,36 @@ export function attachmentTextContractSuite(adapterName, makeFixture) {
|
|
|
135
150
|
await expect(search(s, editor, 'z')).rejects.toBeInstanceOf(SearchTermTooShort);
|
|
136
151
|
});
|
|
137
152
|
});
|
|
153
|
+
describe('hostile PDFs end failed or empty, promptly — and the upload stands', () => {
|
|
154
|
+
let s;
|
|
155
|
+
let files;
|
|
156
|
+
const uploaded = new Map();
|
|
157
|
+
beforeAll(async () => {
|
|
158
|
+
files = await hostilePdfs();
|
|
159
|
+
s = await newScope();
|
|
160
|
+
for (const f of files)
|
|
161
|
+
uploaded.set(f.name, await upload(s, item('hostile'), f.filename, f.contentType, f.body));
|
|
162
|
+
const t0 = Date.now();
|
|
163
|
+
await extract(s);
|
|
164
|
+
// Every one inside the one drive's budget, not merely eventually.
|
|
165
|
+
expect(Date.now() - t0).toBeLessThan(DEFAULT_ATTACHMENT_TEXT_BOUNDS.timeoutMs);
|
|
166
|
+
}, SETUP_HEAVY_MS);
|
|
167
|
+
it('each is recorded with the outcome it earns, saying why where it failed', async () => {
|
|
168
|
+
for (const f of files) {
|
|
169
|
+
const state = await stateOf(s, uploaded.get(f.name).id);
|
|
170
|
+
expect(state, f.name).toMatchObject({ status: f.status, extractor: 'pdf', bytes: null });
|
|
171
|
+
if (f.detail !== undefined)
|
|
172
|
+
expect(state.detail, f.name).toBe(f.detail);
|
|
173
|
+
}
|
|
174
|
+
expect(await search(s, editor, 'marmoset')).toEqual([]);
|
|
175
|
+
});
|
|
176
|
+
it('each upload is whole: the bytes open as they were sent', async () => {
|
|
177
|
+
const opener = await host.attachments(editor, t, s);
|
|
178
|
+
for (const f of files) {
|
|
179
|
+
expect((await opener.open(uploaded.get(f.name).id))?.body.length, f.name).toBe(f.body.length);
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
});
|
|
138
183
|
describe('the gate: a match the caller cannot open changes nothing they see', () => {
|
|
139
184
|
it('is absent, takes no slot under a limit, and every hit opens — the editor, the twin, sees both', async () => {
|
|
140
185
|
const s = await newScope();
|
|
@@ -354,6 +399,145 @@ export function attachmentTextContractSuite(adapterName, makeFixture) {
|
|
|
354
399
|
expect((await search(s, editor, 'margay')).map((r) => r.id)).toEqual([rec.id]);
|
|
355
400
|
});
|
|
356
401
|
});
|
|
402
|
+
describe("a host's own bounds: tighter than the defaults, and held", () => {
|
|
403
|
+
/** The bounded host's budget, and how long its late extractor takes to answer anyway. */
|
|
404
|
+
const BUDGET_MS = 200;
|
|
405
|
+
const LATE_MS = 1_000;
|
|
406
|
+
const bounds = { maxInputBytes: 1024, maxTextBytes: 64, timeoutMs: BUDGET_MS };
|
|
407
|
+
/** Filenames the spy was handed bytes for: a file it never sees was never fetched for it. */
|
|
408
|
+
const handed = [];
|
|
409
|
+
const extractors = [
|
|
410
|
+
{
|
|
411
|
+
name: 'spy',
|
|
412
|
+
accepts: (contentType) => contentType === 'application/x-spy',
|
|
413
|
+
extract: async ({ body, filename }) => {
|
|
414
|
+
handed.push(filename);
|
|
415
|
+
return { text: new TextDecoder().decode(body) };
|
|
416
|
+
},
|
|
417
|
+
},
|
|
418
|
+
{
|
|
419
|
+
// Ignores its signal and answers well past the budget.
|
|
420
|
+
name: 'late',
|
|
421
|
+
accepts: (contentType) => contentType === 'application/x-late',
|
|
422
|
+
extract: () => new Promise((resolve) => setTimeout(() => resolve({ text: 'quokka late answer' }), LATE_MS)),
|
|
423
|
+
},
|
|
424
|
+
{
|
|
425
|
+
name: 'prompt',
|
|
426
|
+
accepts: (contentType) => contentType === 'application/x-prompt',
|
|
427
|
+
extract: async () => ({ text: 'quokka prompt answer' }),
|
|
428
|
+
},
|
|
429
|
+
];
|
|
430
|
+
let bounded;
|
|
431
|
+
const bt = tenantId.parse(ulid());
|
|
432
|
+
const b = verbs(() => bounded.host, bt);
|
|
433
|
+
beforeAll(async () => {
|
|
434
|
+
bounded = await makeFixture({ attachmentExtractors: extractors, attachmentTextBounds: bounds });
|
|
435
|
+
await prepare(bounded.host, bt);
|
|
436
|
+
});
|
|
437
|
+
afterAll(async () => {
|
|
438
|
+
await bounded.cleanup();
|
|
439
|
+
});
|
|
440
|
+
it('never hands an extractor a file over the input ceiling, says why, and extracts the one at it', async () => {
|
|
441
|
+
const s = await b.newScope();
|
|
442
|
+
handed.length = 0;
|
|
443
|
+
const over = await b.upload(s, item('i'), 'over.spy', 'application/x-spy', bytes(`quoll ${'x'.repeat(1019)}`));
|
|
444
|
+
const at = await b.upload(s, item('i'), 'at.spy', 'application/x-spy', bytes(`numbat ${'x'.repeat(1017)}`));
|
|
445
|
+
expect([over.size, at.size]).toEqual([1025, 1024]);
|
|
446
|
+
await b.extract(s);
|
|
447
|
+
expect(await b.stateOf(s, over.id)).toMatchObject({
|
|
448
|
+
status: 'failed',
|
|
449
|
+
extractor: 'spy',
|
|
450
|
+
detail: 'the file is 1025 bytes, over the 1024-byte input bound',
|
|
451
|
+
});
|
|
452
|
+
expect((await b.stateOf(s, at.id))?.status).toBe('indexed');
|
|
453
|
+
expect(handed).toEqual(['at.spy']);
|
|
454
|
+
expect(await b.search(s, editor, 'quoll')).toEqual([]);
|
|
455
|
+
expect((await b.search(s, editor, 'numbat')).map((r) => r.id)).toEqual([at.id]);
|
|
456
|
+
// The upload itself is whole: a bound on extraction is never a bound on the file.
|
|
457
|
+
expect((await (await bounded.host.attachments(editor, bt, s)).open(over.id))?.body.length).toBe(1025);
|
|
458
|
+
});
|
|
459
|
+
it('records an extractor past the time budget as failed, and never indexes its late answer', async () => {
|
|
460
|
+
const s = await b.newScope();
|
|
461
|
+
const late = await b.upload(s, item('i'), 'late.bin', 'application/x-late', bytes('bytes'));
|
|
462
|
+
const prompt = await b.upload(s, item('i'), 'prompt.bin', 'application/x-prompt', bytes('bytes'));
|
|
463
|
+
await b.extract(s);
|
|
464
|
+
expect(await b.stateOf(s, late.id)).toMatchObject({
|
|
465
|
+
status: 'failed',
|
|
466
|
+
extractor: 'late',
|
|
467
|
+
detail: `extractor 'late' did not answer within ${BUDGET_MS} ms`,
|
|
468
|
+
});
|
|
469
|
+
expect((await b.stateOf(s, prompt.id))?.status).toBe('indexed');
|
|
470
|
+
// Past the moment the late answer lands, and another drive: still never indexed.
|
|
471
|
+
await new Promise((resolve) => setTimeout(resolve, LATE_MS + 300));
|
|
472
|
+
await b.extract(s);
|
|
473
|
+
expect((await b.search(s, editor, 'quokka')).map((r) => r.id)).toEqual([prompt.id]);
|
|
474
|
+
expect(await b.search(s, editor, 'late')).toEqual([]);
|
|
475
|
+
expect((await b.stateOf(s, late.id))?.status).toBe('failed');
|
|
476
|
+
});
|
|
477
|
+
it("cuts text at the host's cap, not the default's", async () => {
|
|
478
|
+
const s = await b.newScope();
|
|
479
|
+
const rec = await b.upload(s, item('i'), 'cap.spy', 'application/x-spy', bytes(`kinkajou ${'word '.repeat(50)}capybara`));
|
|
480
|
+
await b.extract(s);
|
|
481
|
+
const state = await b.stateOf(s, rec.id);
|
|
482
|
+
expect(state).toMatchObject({ status: 'indexed', truncated: true });
|
|
483
|
+
expect(state.bytes).toBeLessThanOrEqual(64);
|
|
484
|
+
expect((await b.search(s, editor, 'kinkajou')).map((r) => r.id)).toEqual([rec.id]);
|
|
485
|
+
expect(await b.search(s, editor, 'capybara')).toEqual([]);
|
|
486
|
+
});
|
|
487
|
+
it('refuses, when the host is built, a bound that loosens a default or is not a positive integer', async () => {
|
|
488
|
+
await expect(makeFixture({ attachmentTextBounds: { timeoutMs: DEFAULT_ATTACHMENT_TEXT_BOUNDS.timeoutMs + 1 } })).rejects.toThrow(/only tighten/);
|
|
489
|
+
await expect(makeFixture({ attachmentTextBounds: { maxTextBytes: 0 } })).rejects.toThrow(/positive integer/);
|
|
490
|
+
});
|
|
491
|
+
});
|
|
492
|
+
describe('the backfill: attachments from before extraction, queued once, a batch per pass', () => {
|
|
493
|
+
const backfillRuns = (s) => host.jobRuns(t, s, { moduleId: ATTACHMENT_TEXT_MODULE, job: ATTACHMENT_TEXT_BACKFILL_JOB });
|
|
494
|
+
const allTextRows = (s) => count(s, 'SELECT count(*) FROM _substrat_search__attachment_text');
|
|
495
|
+
it('walks a backlog in bounded batches on the drive, makes it searchable, and never walks the scope again', async () => {
|
|
496
|
+
const s = await newScope();
|
|
497
|
+
const n = ATTACHMENT_TEXT_BACKFILL_BATCH * 2 + 50;
|
|
498
|
+
const ids = [];
|
|
499
|
+
for (let i = 0; i < n; i += 1) {
|
|
500
|
+
const body = i === 0 ? 'the solenodon backlog' : `backlog filler ${i}`;
|
|
501
|
+
ids.push((await upload(s, item(`b${i % 7}`), `old-${i}.txt`, 'text/plain', bytes(body))).id);
|
|
502
|
+
}
|
|
503
|
+
const solenodon = ids[0];
|
|
504
|
+
ids.sort();
|
|
505
|
+
await fixture.forgetAttachmentText(t, s);
|
|
506
|
+
expect(await allTextRows(s)).toBe(0);
|
|
507
|
+
expect(await stateOf(s, solenodon)).toBeNull();
|
|
508
|
+
// Each drive is one pass: one batch queued, the cursor at its last id.
|
|
509
|
+
const expected = [
|
|
510
|
+
[ATTACHMENT_TEXT_BACKFILL_BATCH, 'running'],
|
|
511
|
+
[ATTACHMENT_TEXT_BACKFILL_BATCH * 2, 'running'],
|
|
512
|
+
[n, 'done'],
|
|
513
|
+
];
|
|
514
|
+
for (const [queued, status] of expected) {
|
|
515
|
+
await host.runDueJobs(t, s);
|
|
516
|
+
const [run, ...more] = await backfillRuns(s);
|
|
517
|
+
expect(more).toEqual([]);
|
|
518
|
+
expect(run).toMatchObject({ status, cursor: ids[queued - 1], counters: { scanned: queued, queued } });
|
|
519
|
+
expect(await allTextRows(s)).toBe(queued);
|
|
520
|
+
}
|
|
521
|
+
await extract(s);
|
|
522
|
+
expect((await stateOf(s, solenodon))?.status).toBe('indexed');
|
|
523
|
+
expect((await search(s, editor, 'solenodon')).map((r) => r.id)).toEqual([solenodon]);
|
|
524
|
+
// The run is the marker: with the text gone again, no drive starts a second walk.
|
|
525
|
+
await fixture.forgetAttachmentText(t, s);
|
|
526
|
+
await extract(s);
|
|
527
|
+
expect(await backfillRuns(s)).toHaveLength(1);
|
|
528
|
+
expect(await allTextRows(s)).toBe(0);
|
|
529
|
+
}, SETUP_HEAVY_MS);
|
|
530
|
+
it('marks no scope that holds no attachment — and one that later gets one, once', async () => {
|
|
531
|
+
const s = await newScope();
|
|
532
|
+
await extract(s);
|
|
533
|
+
expect(await backfillRuns(s)).toEqual([]);
|
|
534
|
+
const rec = await upload(s, item('i'), 'new.txt', 'text/plain', bytes('the hutia memo'));
|
|
535
|
+
await extract(s);
|
|
536
|
+
// Walked once, and found the upload's own row there already: nothing queued twice.
|
|
537
|
+
expect(await backfillRuns(s)).toMatchObject([{ status: 'done', counters: { scanned: 1, queued: 0 } }]);
|
|
538
|
+
expect((await search(s, editor, 'hutia')).map((r) => r.id)).toEqual([rec.id]);
|
|
539
|
+
});
|
|
540
|
+
});
|
|
357
541
|
});
|
|
358
542
|
}
|
|
359
543
|
//# sourceMappingURL=attachment-text-suite.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment-text-suite.js","sourceRoot":"","sources":["../src/attachment-text-suite.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"attachment-text-suite.js","sourceRoot":"","sources":["../src/attachment-text-suite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACnE,OAAO,EACL,WAAW,EACX,QAAQ,EACR,aAAa,EACb,eAAe,EACf,WAAW,EACX,OAAO,IAAI,aAAa,EACxB,QAAQ,GAMT,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,8BAA8B,EAC9B,4BAA4B,EAC5B,mBAAmB,EACnB,sBAAsB,EACtB,8BAA8B,EAC9B,kBAAkB,EAClB,kBAAkB,EAClB,IAAI,GAKL,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAmB,MAAM,+BAA+B,CAAC;AAEvG,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACnD,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AACjD,MAAM,IAAI,GAAG,CAAC,EAAU,EAAa,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/E,MAAM,KAAK,GAAG,CAAC,CAAS,EAAc,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACrE,0GAA0G;AAC1G,MAAM,cAAc,GAAG,OAAO,CAAC;AAkB/B,MAAM,UAAU,2BAA2B,CACzC,WAAmB,EACnB,WAAwF;IAExF,QAAQ,CAAC,mCAAmC,WAAW,EAAE,EAAE,GAAG,EAAE;QAC9D,IAAI,OAAkC,CAAC;QACvC,IAAI,IAAe,CAAC;QACpB,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAgB,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,oCAAoC;QAC3F,MAAM,GAAG,GAAgB,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,uCAAuC;QAE3F,oEAAoE;QACpE,MAAM,OAAO,GAAG,KAAK,EAAE,CAAY,EAAE,EAAY,EAAiB,EAAE;YAClE,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAC1B,MAAM,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAC7G,MAAM,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;YAC9F,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YAC/G,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACnH,2FAA2F;YAC3F,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QACpG,CAAC,CAAC;QAEF,SAAS,CAAC,KAAK,IAAI,EAAE;YACnB,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;YAC9B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YACpB,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;YAClB,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,kEAAkE;QAClE,MAAM,KAAK,GAAG,CAAC,MAAuB,EAAE,EAAY,EAAE,EAAE,CAAC,CAAC;YACxD,wFAAwF;YACxF,QAAQ,EAAE,KAAK,IAAsB,EAAE;gBACrC,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtC,MAAM,MAAM,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;gBACrF,MAAM,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;gBACjD,OAAO,CAAC,CAAC;YACX,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,CAAU,EAAE,MAAiB,EAAE,QAAgB,EAAE,WAAmB,EAAE,IAAgB,EAAE,EAAE,CACvG,CAAC,MAAM,MAAM,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;YACrH,sDAAsD;YACtD,OAAO,EAAE,KAAK,EAAE,CAAU,EAAiB,EAAE;gBAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChC,IAAI,CAAC,MAAM,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC;wBAAE,OAAO;gBACjF,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACpD,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,CAAU,EAAE,EAAU,EAAuC,EAAE,CAC7E,CAAC,MAAM,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAA6B,sBAAsB,EAAE,EAAE,EAAE,EAAE,CAAC;YAC7G,MAAM,EAAE,KAAK,EAAE,CAAU,EAAE,GAAgB,EAAE,IAAY,EAAE,KAAc,EAA+B,EAAE,CACxG,CAAC,MAAM,MAAM,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;SACrG,CAAC,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5E,MAAM,KAAK,GAAG,KAAK,EAAE,CAAU,EAAE,GAAgB,EAAE,MAAiB,EAAE,EAAE,CACtE,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;QAChH,qFAAqF;QACrF,MAAM,KAAK,GAAG,KAAK,EAAE,CAAU,EAAE,GAAW,EAAmB,EAAE,CAC/D,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,YAAY,GAAG,CAAC,CAAU,EAAE,IAAY,EAAE,EAAE,CAChD,KAAK,CAAC,CAAC,EAAE,kGAAkG,IAAI,IAAI,CAAC,CAAC;QACvH,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAE,EAAU,EAAE,EAAE,CAC1C,KAAK,CAAC,CAAC,EAAE,iFAAiF,EAAE,GAAG,CAAC,CAAC;QAEnG,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;YAC5D,IAAI,CAAU,CAAC;YACf,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;YAErD,SAAS,CAAC,KAAK,IAAI,EAAE;gBACnB,CAAC,GAAG,MAAM,QAAQ,EAAE,CAAC;gBACrB,KAAK,MAAM,CAAC,IAAI,wBAAwB,EAAE,CAAC;oBACzC,iFAAiF;oBACjF,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC7F,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;gBACjE,KAAK,MAAM,CAAC,IAAI,wBAAwB,EAAE,CAAC;oBACzC,MAAM,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/E,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAU,CAAC,CAAC,CAChE,8CAA8C,EAC9C,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;gBACjB,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAC;gBACzD,MAAM,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC1E,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAC3B,MAAM,CAAC,KAAM,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;oBACxC,MAAM,CAAC,KAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACN,8EAA8E;oBAC9E,MAAM,CAAC,KAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAChC,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO;wBAAE,MAAM,CAAC,KAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC9E,CAAC;YACH,CAAC,CACF,CAAC;YAEF,EAAE,CAAC,sFAAsF,EAAE,KAAK,IAAI,EAAE;gBACpG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,KAAK,MAAM,CAAC,IAAI,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;oBAChE,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC;oBACpC,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAM,CAAC;oBACnC,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,MAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAClG,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;wBAC1B,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBACnG,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;gBACnF,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,KAAK,MAAM,CAAC,IAAI,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;oBAChE,MAAM,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;gBACzF,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAChD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;gBAChD,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;YAClF,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,oEAAoE,EAAE,GAAG,EAAE;YAClF,IAAI,CAAU,CAAC;YACf,IAAI,KAAmB,CAAC;YACxB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;YAErD,SAAS,CAAC,KAAK,IAAI,EAAE;gBACnB,KAAK,GAAG,MAAM,WAAW,EAAE,CAAC;gBAC5B,CAAC,GAAG,MAAM,QAAQ,EAAE,CAAC;gBACrB,KAAK,MAAM,CAAC,IAAI,KAAK;oBAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjH,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACtB,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,kEAAkE;gBAClE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,YAAY,CAAC,8BAA8B,CAAC,SAAS,CAAC,CAAC;YACjF,CAAC,EAAE,cAAc,CAAC,CAAC;YAEnB,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;gBACtF,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oBACtB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAC;oBACzD,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBACzF,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;wBAAE,MAAM,CAAC,KAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC3E,CAAC;gBACD,MAAM,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;gBACtE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oBACtB,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjG,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,mEAAmE,EAAE,GAAG,EAAE;YACjF,EAAE,CAAC,+FAA+F,EAAE,KAAK,IAAI,EAAE;gBAC7G,MAAM,CAAC,GAAG,MAAM,QAAQ,EAAE,CAAC;gBAC3B,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;gBACrC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC;gBACvH,uFAAuF;gBACvF,iEAAiE;gBACjE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;gBACpH,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBAEjB,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpF,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvF,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClG,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEzF,sEAAsE;gBACtE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChD,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACnE,qFAAqF;gBACrF,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YAC5E,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,0FAA0F,EAAE,KAAK,IAAI,EAAE;gBACxG,MAAM,UAAU,GAAG,MAAM,QAAQ,EAAE,CAAC;gBACpC,MAAM,OAAO,GAAG,MAAM,QAAQ,EAAE,CAAC;gBACjC,KAAK,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;oBACtC,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;oBACrC,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;oBACpG,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC;wBACrB,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;oBAC3G,CAAC;oBACD,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;oBACpG,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC;wBACrB,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;oBAC3G,CAAC;oBACD,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACnB,CAAC;gBACD,MAAM,IAAI,GAAG,KAAK,EAAE,CAAU,EAAE,IAAY,EAAE,KAAc,EAAE,EAAE,CAC9D,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC7D,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,CAAC,EAAE,CAAC;oBAC3E,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC;wBACzC,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;oBAC9G,CAAC;gBACH,CAAC;gBACD,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,6GAA6G,EAAE,KAAK,IAAI,EAAE;gBAC3H,MAAM,CAAC,GAAG,MAAM,QAAQ,EAAE,CAAC;gBAC3B,MAAM,OAAO,GAAG,MAAM,QAAQ,EAAE,CAAC;gBACjC,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;oBACjC,MAAM,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;oBACzC,MAAM,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;gBACtG,CAAC;gBACD,uFAAuF;gBACvF,oDAAoD;gBACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjC,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5G,CAAC;gBACD,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;gBACvB,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;oBAC5B,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;oBAC5E,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBAClC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC7F,CAAC;gBACD,mFAAmF;gBACnF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACtD,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBACjC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAClE,CAAC,EAAE,cAAc,CAAC,CAAC;YAEnB,EAAE,CAAC,wFAAwF,EAAE,KAAK,IAAI,EAAE;gBACtG,MAAM,CAAC,GAAG,MAAM,QAAQ,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,+DAA+D;gBACvG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;gBACjH,MAAM,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBACnC,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAClC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;gBACtG,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;gBAC5F,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/E,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9E,wDAAwD;gBACxD,MAAM,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,iGAAiG,EAAE,KAAK,IAAI,EAAE;gBAC/G,MAAM,CAAC,GAAG,MAAM,QAAQ,EAAE,CAAC;gBAC3B,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,2BAA2B,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBACzD,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;gBAChH,CAAC;gBACD,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,MAAM,SAAS,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;oBACvC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,CACzC,GAAG,EAAE,CAAC,SAAS,EACf,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAClB,CAAC;oBACF,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,EAAG,GAA4C,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;gBAC/G,CAAC,CAAC;gBACF,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,iCAAiC,EAAE,CAAC;gBACjF,MAAM,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B;gBACjF,MAAM,CAAC,MAAM,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB;gBAClF,uEAAuE;gBACvE,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzF,CAAC,EAAE,cAAc,CAAC,CAAC;YAEnB,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;gBACnF,MAAM,CAAC,GAAG,MAAM,QAAQ,EAAE,CAAC;gBAC3B,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBACnF,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,MAAM,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACnD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAiC,mBAAmB,CAAC,CAAC;gBACtH,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAClF,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAChD,EAAE,CAAC,0GAA0G,EAAE,GAAG,EAAE;gBAClH,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACzG,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC1G,kGAAkG;gBAClG,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACpH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;YAC/C,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;gBACxE,MAAM,CAAC,GAAG,MAAM,QAAQ,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBAC5F,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9B,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE;wBAC3B,QAAQ,EAAE,sBAAsB;wBAChC,GAAG,EAAE,mBAAmB;wBACxB,QAAQ,EAAE,GAAG,CAAC,EAAE;wBAChB,OAAO,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,EAAE;qBAClC,CAAC,CAAC;oBACH,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACnB,CAAC;gBACD,MAAM,CAAC,MAAM,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC1C,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClD,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjF,MAAM,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;gBACjF,MAAM,CAAC,GAAG,MAAM,QAAQ,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBACjG,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBAChG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACjD,MAAM,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC7D,MAAM,CAAC,MAAM,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC3C,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACjD,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjF,MAAM,CAAC,MAAM,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC/C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;gBACnF,MAAM,CAAC,GAAG,MAAM,QAAQ,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAC3F,MAAM,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC5D,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,MAAM,CAAC,MAAM,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC1C,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,sBAAsB,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/F,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,yFAAyF,EAAE,KAAK,IAAI,EAAE;gBACvG,MAAM,CAAC,GAAG,MAAM,QAAQ,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,8BAA8B,CAAC,YAAY,CAAC;gBACxD,sFAAsF;gBACtF,gEAAgE;gBAChE,MAAM,IAAI,GAAG,oBAAoB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACzF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC7E,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBACvC,MAAM,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpE,MAAM,CAAC,KAAM,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBAC9C,MAAM,CAAC,KAAM,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBAC9C,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjF,MAAM,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,+DAA+D,EAAE,GAAG,EAAE;YAC7E,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;gBAC3F,MAAM,CAAC,GAAG,MAAM,QAAQ,EAAE,CAAC;gBAC3B,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBAC5E,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,MAAM,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC1D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjF,qFAAqF;gBACrF,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACjF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5E,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;gBACtF,MAAM,CAAC,GAAG,MAAM,QAAQ,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACjG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBAC9F,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAE/C,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC3C,uFAAuF;gBACvF,6BAA6B;gBAC7B,MAAM,CAAC,MAAM,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC5C,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC/C,MAAM,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC9D,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YACnF,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;gBACnF,MAAM,CAAC,GAAG,MAAM,QAAQ,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBAC5F,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBACzC,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC3H,gDAAgD;gBAChD,MAAM,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC9D,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;gBACpB,wFAAwF;gBACxF,MAAM,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;oBAChD,MAAM,EAAE,QAAQ;oBAChB,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC;iBAC3C,CAAC,CAAC;gBACH,MAAM,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACzD,2BAA2B;gBAC3B,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACjF,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,0DAA0D,EAAE,GAAG,EAAE;YACxE,yFAAyF;YACzF,MAAM,SAAS,GAAG,GAAG,CAAC;YACtB,MAAM,OAAO,GAAG,KAAK,CAAC;YACtB,MAAM,MAAM,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;YAC/E,6FAA6F;YAC7F,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,MAAM,UAAU,GAA0B;gBACxC;oBACE,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,KAAK,mBAAmB;oBAC7D,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;wBACpC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACtB,OAAO,EAAE,IAAI,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClD,CAAC;iBACF;gBACD;oBACE,uDAAuD;oBACvD,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,KAAK,oBAAoB;oBAC9D,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;iBAC5G;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,KAAK,sBAAsB;oBAChE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC;iBACxD;aACF,CAAC;YACF,IAAI,OAAkC,CAAC;YACvC,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAClC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAExC,SAAS,CAAC,KAAK,IAAI,EAAE;gBACnB,OAAO,GAAG,MAAM,WAAW,CAAC,EAAE,oBAAoB,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,CAAC;gBAChG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;gBAClB,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1B,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,8FAA8F,EAAE,KAAK,IAAI,EAAE;gBAC5G,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC7B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,mBAAmB,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/G,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,KAAK,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5G,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;gBACnD,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACnB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;oBAChD,MAAM,EAAE,QAAQ;oBAChB,SAAS,EAAE,KAAK;oBAChB,MAAM,EAAE,wDAAwD;iBACjE,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC5D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACnC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACvD,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChF,kFAAkF;gBAClF,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxG,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,wFAAwF,EAAE,KAAK,IAAI,EAAE;gBACtG,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,oBAAoB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC5F,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,sBAAsB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAClG,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACnB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;oBAChD,MAAM,EAAE,QAAQ;oBAChB,SAAS,EAAE,MAAM;oBACjB,MAAM,EAAE,0CAA0C,SAAS,KAAK;iBACjE,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAChE,iFAAiF;gBACjF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC;gBACnE,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACnB,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpF,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACtD,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;gBAC9D,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,KAAK,CAAC,YAAY,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC1H,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACnB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBACzC,MAAM,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpE,MAAM,CAAC,KAAM,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;gBAC7C,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnF,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,8FAA8F,EAAE,KAAK,IAAI,EAAE;gBAC5G,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,oBAAoB,EAAE,EAAE,SAAS,EAAE,8BAA8B,CAAC,SAAS,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC9H,cAAc,CACf,CAAC;gBACF,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,oBAAoB,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YAC/G,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,iFAAiF,EAAE,GAAG,EAAE;YAC/F,MAAM,YAAY,GAAG,CAAC,CAAU,EAAE,EAAE,CAClC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,sBAAsB,EAAE,GAAG,EAAE,4BAA4B,EAAE,CAAC,CAAC;YAC9F,MAAM,WAAW,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,wDAAwD,CAAC,CAAC;YAEvG,EAAE,CAAC,uGAAuG,EAAE,KAAK,IAAI,EAAE;gBACrH,MAAM,CAAC,GAAG,MAAM,QAAQ,EAAE,CAAC;gBAC3B,MAAM,CAAC,GAAG,8BAA8B,GAAG,CAAC,GAAG,EAAE,CAAC;gBAClD,MAAM,GAAG,GAAa,EAAE,CAAC;gBACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9B,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBACvE,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC/F,CAAC;gBACD,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;gBAC1B,GAAG,CAAC,IAAI,EAAE,CAAC;gBACX,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzC,MAAM,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrC,MAAM,CAAC,MAAM,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAE/C,uEAAuE;gBACvE,MAAM,QAAQ,GAAG;oBACf,CAAC,8BAA8B,EAAE,SAAS,CAAC;oBAC3C,CAAC,8BAA8B,GAAG,CAAC,EAAE,SAAS,CAAC;oBAC/C,CAAC,CAAC,EAAE,MAAM,CAAC;iBACH,CAAC;gBACX,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;oBACxC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC5B,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC;oBAC7C,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACzB,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;oBACtG,MAAM,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC5C,CAAC;gBAED,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,MAAM,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC9D,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBAErF,kFAAkF;gBAClF,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC9C,MAAM,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACvC,CAAC,EAAE,cAAc,CAAC,CAAC;YAEnB,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;gBAC3F,MAAM,CAAC,GAAG,MAAM,QAAQ,EAAE,CAAC;gBAC3B,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC1C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBACzF,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,mFAAmF;gBACnF,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBACvG,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAChF,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ModuleRegistration } from '@substrat-run/kernel';
|
|
2
|
+
/**
|
|
3
|
+
* #2055: a consumer that can be held mid-handler, for `scopeCausedByContractSuite`.
|
|
4
|
+
*
|
|
5
|
+
* `causedby/start` emits `causedby.requested`; its consumer waits while the hold is shut, then
|
|
6
|
+
* emits `causedby.effected`. `causedby/other` emits `causedby.other` and nothing consumes it.
|
|
7
|
+
*
|
|
8
|
+
* The hold is a flag on `globalThis`, polled on a timer, because a Durable Object closes over
|
|
9
|
+
* its modules at code time, so the suite cannot hand one in — the test and the object share an
|
|
10
|
+
* isolate, but not a request: a promise one side resolves for the other hangs in workerd.
|
|
11
|
+
*
|
|
12
|
+
* Inert unless a suite shuts the hold: with none, the consumer runs straight through.
|
|
13
|
+
*/
|
|
14
|
+
export declare const CAUSED_BY_HOLD = "__substratCausedByHold";
|
|
15
|
+
/** The hold's state: `shut` while the consumer must wait, `entered` once it has started waiting. */
|
|
16
|
+
export interface CausedByHold {
|
|
17
|
+
shut: boolean;
|
|
18
|
+
entered: boolean;
|
|
19
|
+
}
|
|
20
|
+
/** One poll of the hold. */
|
|
21
|
+
export declare const tick: (ms?: number) => Promise<unknown>;
|
|
22
|
+
export declare const causedByMod: ModuleRegistration;
|
|
23
|
+
//# sourceMappingURL=caused-by-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"caused-by-module.d.ts","sourceRoot":"","sources":["../src/caused-by-module.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAmB,kBAAkB,EAAsC,MAAM,sBAAsB,CAAC;AAEpH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,2BAA2B,CAAC;AAEvD,oGAAoG;AACpG,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,4BAA4B;AAC5B,eAAO,MAAM,IAAI,mCAAoD,CAAC;AAwBtE,eAAO,MAAM,WAAW,EAAE,kBAmBzB,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { moduleManifest } from '@substrat-run/contracts';
|
|
2
|
+
/**
|
|
3
|
+
* #2055: a consumer that can be held mid-handler, for `scopeCausedByContractSuite`.
|
|
4
|
+
*
|
|
5
|
+
* `causedby/start` emits `causedby.requested`; its consumer waits while the hold is shut, then
|
|
6
|
+
* emits `causedby.effected`. `causedby/other` emits `causedby.other` and nothing consumes it.
|
|
7
|
+
*
|
|
8
|
+
* The hold is a flag on `globalThis`, polled on a timer, because a Durable Object closes over
|
|
9
|
+
* its modules at code time, so the suite cannot hand one in — the test and the object share an
|
|
10
|
+
* isolate, but not a request: a promise one side resolves for the other hangs in workerd.
|
|
11
|
+
*
|
|
12
|
+
* Inert unless a suite shuts the hold: with none, the consumer runs straight through.
|
|
13
|
+
*/
|
|
14
|
+
export const CAUSED_BY_HOLD = '__substratCausedByHold';
|
|
15
|
+
/** One poll of the hold. */
|
|
16
|
+
export const tick = (ms = 5) => new Promise((r) => setTimeout(r, ms));
|
|
17
|
+
const manifest = moduleManifest.parse({
|
|
18
|
+
id: '@test/caused-by',
|
|
19
|
+
version: '1.0.0',
|
|
20
|
+
kernelContract: '^0.0.1',
|
|
21
|
+
permissions: [],
|
|
22
|
+
events: {
|
|
23
|
+
emits: [
|
|
24
|
+
{ type: 'causedby.requested', schemaVersion: 1 },
|
|
25
|
+
{ type: 'causedby.effected', schemaVersion: 1 },
|
|
26
|
+
{ type: 'causedby.other', schemaVersion: 1 },
|
|
27
|
+
],
|
|
28
|
+
consumes: [{ type: 'causedby.requested', schemaVersion: 1 }],
|
|
29
|
+
},
|
|
30
|
+
migrations: { journalDir: './migrations', compatibleFrom: '1.0.0' },
|
|
31
|
+
attachmentTargets: [],
|
|
32
|
+
entitlementKey: 'causedby',
|
|
33
|
+
});
|
|
34
|
+
const emitTagged = (ctx, type, tag) => {
|
|
35
|
+
ctx.emit({ type, schemaVersion: 1, entity: { entityType: 'tag', entityId: tag }, piiClass: 'none', payload: { tag } });
|
|
36
|
+
};
|
|
37
|
+
export const causedByMod = {
|
|
38
|
+
manifest,
|
|
39
|
+
migrations: [],
|
|
40
|
+
operations: {
|
|
41
|
+
'causedby/start': ((ctx, input) => emitTagged(ctx, 'causedby.requested', input.tag)),
|
|
42
|
+
'causedby/other': ((ctx, input) => emitTagged(ctx, 'causedby.other', input.tag)),
|
|
43
|
+
},
|
|
44
|
+
consumers: {
|
|
45
|
+
'causedby.requested': (async (ctx, event) => {
|
|
46
|
+
const hold = globalThis[CAUSED_BY_HOLD];
|
|
47
|
+
if (hold) {
|
|
48
|
+
hold.entered = true;
|
|
49
|
+
while (hold.shut)
|
|
50
|
+
await tick();
|
|
51
|
+
}
|
|
52
|
+
emitTagged(ctx, 'causedby.effected', event.payload.tag);
|
|
53
|
+
}),
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=caused-by-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"caused-by-module.js","sourceRoot":"","sources":["../src/caused-by-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGzD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAQvD,4BAA4B;AAC5B,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAEtE,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC;IACpC,EAAE,EAAE,iBAAiB;IACrB,OAAO,EAAE,OAAO;IAChB,cAAc,EAAE,QAAQ;IACxB,WAAW,EAAE,EAAE;IACf,MAAM,EAAE;QACN,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,oBAAoB,EAAE,aAAa,EAAE,CAAC,EAAE;YAChD,EAAE,IAAI,EAAE,mBAAmB,EAAE,aAAa,EAAE,CAAC,EAAE;YAC/C,EAAE,IAAI,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC,EAAE;SAC7C;QACD,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;KAC7D;IACD,UAAU,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE;IACnE,iBAAiB,EAAE,EAAE;IACrB,cAAc,EAAE,UAAU;CAC3B,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,CAAC,GAAqB,EAAE,IAAY,EAAE,GAAW,EAAQ,EAAE;IAC5E,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AACzH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAuB;IAC7C,QAAQ;IACR,UAAU,EAAE,EAAE;IACd,UAAU,EAAE;QACV,gBAAgB,EAAE,CAAC,CAAC,GAAqB,EAAE,KAAsB,EAAE,EAAE,CACnE,UAAU,CAAC,GAAG,EAAE,oBAAoB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAgD;QAClG,gBAAgB,EAAE,CAAC,CAAC,GAAqB,EAAE,KAAsB,EAAE,EAAE,CACnE,UAAU,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAgD;KAC/F;IACD,SAAS,EAAE;QACT,oBAAoB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;YAC1C,MAAM,IAAI,GAAI,UAAsC,CAAC,cAAc,CAA6B,CAAC;YACjG,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,OAAO,IAAI,CAAC,IAAI;oBAAE,MAAM,IAAI,EAAE,CAAC;YACjC,CAAC;YACD,UAAU,CAAC,GAAG,EAAE,mBAAmB,EAAG,KAAK,CAAC,OAA2B,CAAC,GAAG,CAAC,CAAC;QAC/E,CAAC,CAAoB;KACtB;CACF,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ScopeHostFixture } from './scope-host-suite.js';
|
|
2
|
+
/**
|
|
3
|
+
* #2055: an executor's admin rows name the event they are the effect of (K-22, `causedBy`),
|
|
4
|
+
* and no other admin row does — in particular not one some other caller writes on the same
|
|
5
|
+
* host while the handler is suspended. The SQLite host used to keep the event in a host-wide
|
|
6
|
+
* field set around the handler's `await`, so a staff call landing in that window was recorded
|
|
7
|
+
* as caused by an event it had nothing to do with.
|
|
8
|
+
*
|
|
9
|
+
* Each door an executor runs through is held here with a staff write landing inside the hold:
|
|
10
|
+
* a plain executor (`registerExecutor`, through the `admin` it is handed), an in-process
|
|
11
|
+
* connector (`registerConnector`, through `ctx.admin`), and a routed connector delivery
|
|
12
|
+
* (`dispatchConnector`). Every case asserts both halves — the staff row carries no cause, and
|
|
13
|
+
* the handler's own row still carries its event — because either alone is also what dropping
|
|
14
|
+
* `causedBy` everywhere looks like.
|
|
15
|
+
*/
|
|
16
|
+
export declare function causedByContractSuite(adapterName: string, makeFixture: () => Promise<ScopeHostFixture>): void;
|
|
17
|
+
/**
|
|
18
|
+
* #2055, the scope's half: what a consumer emits names the event it consumed (#1237), and no
|
|
19
|
+
* other emit in the scope does — in particular not one another call makes while the consumer
|
|
20
|
+
* awaits. Each adapter serializes a scope's emitting work (the SQLite `ScopeActor`, the
|
|
21
|
+
* Durable Object's `OperationQueue`), and the cause is passed into the consumer's context
|
|
22
|
+
* rather than read off a field, so neither guarantee leans on the other.
|
|
23
|
+
*
|
|
24
|
+
* The fixture's host must carry `causedByMod` in the scope it reaches: the suite registers it
|
|
25
|
+
* on the host, and a code-time module set (a Cloudflare ScopeDO's) must already include it.
|
|
26
|
+
*/
|
|
27
|
+
export declare function scopeCausedByContractSuite(adapterName: string, makeFixture: () => Promise<ScopeHostFixture>): void;
|
|
28
|
+
//# sourceMappingURL=caused-by-suite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"caused-by-suite.d.ts","sourceRoot":"","sources":["../src/caused-by-suite.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CA+G7G;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAmDlH"}
|