@usergist/feedback-react-native 0.2.0-beta.0 → 0.2.0-beta.1
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 +6 -0
- package/README.md +60 -0
- package/dist/Provider.d.ts.map +1 -1
- package/dist/Provider.js +51 -23
- package/dist/Provider.js.map +1 -1
- package/dist/Push.d.ts +2 -0
- package/dist/Push.d.ts.map +1 -1
- package/dist/Push.js +41 -2
- package/dist/Push.js.map +1 -1
- package/dist/UserGist.d.ts +11 -2
- package/dist/UserGist.d.ts.map +1 -1
- package/dist/UserGist.js +301 -65
- package/dist/UserGist.js.map +1 -1
- package/dist/internal/context.d.ts +1 -1
- package/dist/internal/context.js +1 -1
- package/dist/internal/engine.d.ts +10 -2
- package/dist/internal/engine.d.ts.map +1 -1
- package/dist/internal/engine.js +195 -44
- package/dist/internal/engine.js.map +1 -1
- package/dist/internal/events.d.ts +6 -1
- package/dist/internal/events.d.ts.map +1 -1
- package/dist/internal/events.js +39 -18
- package/dist/internal/events.js.map +1 -1
- package/dist/internal/inapp-rules-cache.d.ts +1 -0
- package/dist/internal/inapp-rules-cache.d.ts.map +1 -1
- package/dist/internal/inapp-rules-cache.js +7 -0
- package/dist/internal/inapp-rules-cache.js.map +1 -1
- package/dist/internal/mutation-queue.d.ts +2 -2
- package/dist/internal/mutation-queue.d.ts.map +1 -1
- package/dist/internal/mutation-queue.js +32 -4
- package/dist/internal/mutation-queue.js.map +1 -1
- package/dist/internal/rules-cache.d.ts +1 -0
- package/dist/internal/rules-cache.d.ts.map +1 -1
- package/dist/internal/rules-cache.js +7 -0
- package/dist/internal/rules-cache.js.map +1 -1
- package/dist/internal/survey-invitations.d.ts +25 -0
- package/dist/internal/survey-invitations.d.ts.map +1 -0
- package/dist/internal/survey-invitations.js +54 -0
- package/dist/internal/survey-invitations.js.map +1 -0
- package/dist/internal/survey-matcher.d.ts +1 -0
- package/dist/internal/survey-matcher.d.ts.map +1 -1
- package/dist/internal/survey-matcher.js +3 -0
- package/dist/internal/survey-matcher.js.map +1 -1
- package/dist/internal/survey-rules-cache.d.ts +1 -0
- package/dist/internal/survey-rules-cache.d.ts.map +1 -1
- package/dist/internal/survey-rules-cache.js +7 -0
- package/dist/internal/survey-rules-cache.js.map +1 -1
- package/dist/internal/survey-store.d.ts +9 -2
- package/dist/internal/survey-store.d.ts.map +1 -1
- package/dist/internal/survey-store.js +37 -16
- package/dist/internal/survey-store.js.map +1 -1
- package/dist/internal/transport.d.ts +10 -2
- package/dist/internal/transport.d.ts.map +1 -1
- package/dist/internal/transport.js +15 -12
- package/dist/internal/transport.js.map +1 -1
- package/dist/internal/types.d.ts +2 -0
- package/dist/internal/types.d.ts.map +1 -1
- package/dist/ui/SurveyView.d.ts.map +1 -1
- package/dist/ui/SurveyView.js +5 -5
- package/dist/ui/SurveyView.js.map +1 -1
- package/package.json +2 -2
package/dist/internal/engine.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { APP_OPEN_EVENT_NAME, APP_VERSION_CHANGED_EVENT_NAME } from '@usergist/sdk-core/mobile';
|
|
1
|
+
import { PresentationGate } from '@usergist/sdk-core/mobile';
|
|
2
|
+
import { APP_OPEN_EVENT_NAME, APP_VERSION_CHANGED_EVENT_NAME, } from '@usergist/sdk-core/mobile';
|
|
4
3
|
import { STORAGE_KEYS, createStorageScope, } from './storage.js';
|
|
5
|
-
import { createIdentityManager, generateEventId } from './identity.js';
|
|
4
|
+
import { createIdentityManager, generateEventId, } from './identity.js';
|
|
6
5
|
import { createConsentManager } from './consent.js';
|
|
7
6
|
import { createEventQueue } from './queue.js';
|
|
8
|
-
import { createTransport, PermanentHttpError } from './transport.js';
|
|
7
|
+
import { createTransport, PermanentHttpError, } from './transport.js';
|
|
9
8
|
import { createRulesCache } from './rules-cache.js';
|
|
10
9
|
import { createSurveyRulesCache, } from './survey-rules-cache.js';
|
|
11
|
-
import { createFrequencyCapManager } from './frequency-cap.js';
|
|
10
|
+
import { createFrequencyCapManager, } from './frequency-cap.js';
|
|
12
11
|
import { createUserStateStore } from './user-state.js';
|
|
13
12
|
import { createTriggerMatcher } from './trigger-matcher.js';
|
|
14
13
|
import { createSurveyMatcher } from './survey-matcher.js';
|
|
15
|
-
import {
|
|
14
|
+
import { createSurveyInvitations } from './survey-invitations.js';
|
|
15
|
+
import { createInAppRulesCache, } from './inapp-rules-cache.js';
|
|
16
16
|
import { createInAppMatcher } from './inapp-matcher.js';
|
|
17
17
|
import { createLifecycleManager } from './lifecycle.js';
|
|
18
18
|
import { createContextProvider } from './context.js';
|
|
@@ -37,7 +37,9 @@ const DEFAULTS = {
|
|
|
37
37
|
debug: false,
|
|
38
38
|
};
|
|
39
39
|
export function resolveConfig(config) {
|
|
40
|
-
if (!config ||
|
|
40
|
+
if (!config ||
|
|
41
|
+
typeof config.writeKey !== 'string' ||
|
|
42
|
+
config.writeKey.length === 0) {
|
|
41
43
|
throw new Error('UserGist.init requires a writeKey');
|
|
42
44
|
}
|
|
43
45
|
const environment = config.environment ?? DEFAULTS.environment;
|
|
@@ -57,22 +59,28 @@ export function resolveConfig(config) {
|
|
|
57
59
|
appVersion: config.appVersion?.trim() || null,
|
|
58
60
|
};
|
|
59
61
|
}
|
|
60
|
-
export function createEngine(config) {
|
|
62
|
+
export function createEngine(config, prepareSurveys) {
|
|
61
63
|
const resolved = resolveConfig(config);
|
|
62
64
|
setDebugEnabled(resolved.debug);
|
|
63
65
|
const storage = createStorageScope(resolved.writeKey);
|
|
64
66
|
const identity = createIdentityManager(storage);
|
|
67
|
+
const surveyInvitations = createSurveyInvitations(storage, () => identity.get());
|
|
65
68
|
const consent = createConsentManager(storage);
|
|
66
69
|
const queue = createEventQueue(storage, resolved.maxQueueSize);
|
|
67
70
|
const mutations = createMutationQueue(storage);
|
|
68
71
|
const localInstructionDedupe = createLocalInstructionDedupe(storage);
|
|
69
|
-
const transport = createTransport({
|
|
72
|
+
const transport = createTransport({
|
|
73
|
+
writeKey: resolved.writeKey,
|
|
74
|
+
apiUrl: resolved.apiUrl,
|
|
75
|
+
prepareSurveys,
|
|
76
|
+
});
|
|
70
77
|
const rules = createRulesCache(storage, transport, resolved.triggerSyncIntervalMs);
|
|
71
78
|
const surveyRules = createSurveyRulesCache(storage, transport, resolved.triggerSyncIntervalMs);
|
|
72
79
|
const inAppRules = createInAppRulesCache(storage, transport, resolved.triggerSyncIntervalMs);
|
|
73
80
|
const caps = createFrequencyCapManager(storage);
|
|
74
81
|
const userState = createUserStateStore(storage);
|
|
75
|
-
const
|
|
82
|
+
const presentation = new PresentationGate(config.presentationPaused ?? false);
|
|
83
|
+
const events = createEventBus(presentation);
|
|
76
84
|
const matcher = createTriggerMatcher({
|
|
77
85
|
rulesCache: rules,
|
|
78
86
|
frequencyCaps: caps,
|
|
@@ -139,10 +147,12 @@ export function createEngine(config) {
|
|
|
139
147
|
userState,
|
|
140
148
|
matcher,
|
|
141
149
|
surveyMatcher,
|
|
150
|
+
surveyInvitations,
|
|
142
151
|
inAppMatcher,
|
|
143
152
|
lifecycle,
|
|
144
153
|
context,
|
|
145
154
|
events,
|
|
155
|
+
presentation,
|
|
146
156
|
hydrated: false,
|
|
147
157
|
hydratingPromise: null,
|
|
148
158
|
flushTimer: null,
|
|
@@ -151,6 +161,7 @@ export function createEngine(config) {
|
|
|
151
161
|
subjectToken: null,
|
|
152
162
|
sessionPromise: null,
|
|
153
163
|
instructionPollPromise: null,
|
|
164
|
+
instructionDispatchPromise: null,
|
|
154
165
|
resetGeneration: 0,
|
|
155
166
|
resetting: false,
|
|
156
167
|
localInstructionDedupe,
|
|
@@ -168,8 +179,10 @@ export function createEngine(config) {
|
|
|
168
179
|
matcher.recordShown(payload.promptId, payload.shownAt);
|
|
169
180
|
});
|
|
170
181
|
consent.subscribe((s) => {
|
|
171
|
-
if (!s.analytics)
|
|
182
|
+
if (!s.analytics) {
|
|
172
183
|
engine.queue.removePurpose('analytics');
|
|
184
|
+
void engine.mutations.removePurpose('analytics');
|
|
185
|
+
}
|
|
173
186
|
if (!s.feedback) {
|
|
174
187
|
engine.queue.removePurpose('feedback');
|
|
175
188
|
void engine.mutations.removePurpose('feedback');
|
|
@@ -177,6 +190,7 @@ export function createEngine(config) {
|
|
|
177
190
|
}
|
|
178
191
|
if (!s.survey) {
|
|
179
192
|
void engine.mutations.removePurpose('survey');
|
|
193
|
+
void engine.surveyInvitations.clear().catch((error) => reportError('clear survey invitations failed', error));
|
|
180
194
|
engine.surveyMatcher.resetPending();
|
|
181
195
|
}
|
|
182
196
|
if (s.feedback || s.analytics)
|
|
@@ -202,8 +216,10 @@ export async function ensureHydrated(engine) {
|
|
|
202
216
|
engine.surveyRules.hydrate(),
|
|
203
217
|
engine.inAppRules.hydrate(),
|
|
204
218
|
engine.localInstructionDedupe.hydrate(),
|
|
205
|
-
engine.storage.getJson(STORAGE_KEYS.pushToken).then(token => {
|
|
206
|
-
|
|
219
|
+
engine.storage.getJson(STORAGE_KEYS.pushToken).then((token) => {
|
|
220
|
+
if (typeof token === 'string')
|
|
221
|
+
engine.lastPushToken = token;
|
|
222
|
+
}),
|
|
207
223
|
]);
|
|
208
224
|
await ensureSubjectSession(engine);
|
|
209
225
|
engine.hydrated = true;
|
|
@@ -249,7 +265,9 @@ export async function ensureSubjectSession(engine) {
|
|
|
249
265
|
if (persisted)
|
|
250
266
|
await engine.storage.remove(STORAGE_KEYS.subjectToken);
|
|
251
267
|
const rotated = await engine.identity.rotate();
|
|
252
|
-
const session = await engine.transport.session({
|
|
268
|
+
const session = await engine.transport.session({
|
|
269
|
+
anonymousId: rotated.anonymousId,
|
|
270
|
+
});
|
|
253
271
|
engine.subjectToken = session.subjectToken;
|
|
254
272
|
engine.transport.setSubjectToken(session.subjectToken);
|
|
255
273
|
await engine.storage.setJson(STORAGE_KEYS.subjectToken, session.subjectToken);
|
|
@@ -337,6 +355,11 @@ function instructionKey(type, refId, eventId) {
|
|
|
337
355
|
function rememberLocalInstruction(engine, key) {
|
|
338
356
|
engine.localInstructionDedupe.remember(key);
|
|
339
357
|
}
|
|
358
|
+
function needsImmediateDelivery(engine, eventName) {
|
|
359
|
+
return !!(engine.rules?.needsServer?.(eventName) ||
|
|
360
|
+
engine.surveyRules?.needsServer?.(eventName) ||
|
|
361
|
+
engine.inAppRules?.needsServer?.(eventName));
|
|
362
|
+
}
|
|
340
363
|
export function scheduleFlush(engine) {
|
|
341
364
|
if (engine.flushTimer)
|
|
342
365
|
return;
|
|
@@ -356,11 +379,16 @@ export async function flushNow(engine) {
|
|
|
356
379
|
return engine.flushPromise;
|
|
357
380
|
}
|
|
358
381
|
async function performFlush(engine) {
|
|
382
|
+
let requestedImmediateDelivery = false;
|
|
359
383
|
try {
|
|
360
384
|
await ensureHydrated(engine);
|
|
361
385
|
while (engine.queue.size() > 0) {
|
|
362
386
|
const consent = engine.consent.get();
|
|
363
|
-
const allowed = engine.queue
|
|
387
|
+
const allowed = engine.queue
|
|
388
|
+
.snapshot()
|
|
389
|
+
.filter((event) => event.purpose === 'analytics'
|
|
390
|
+
? consent.analytics
|
|
391
|
+
: consent.feedback);
|
|
364
392
|
const firstAllowed = allowed[0];
|
|
365
393
|
if (!firstAllowed)
|
|
366
394
|
break;
|
|
@@ -368,8 +396,15 @@ async function performFlush(engine) {
|
|
|
368
396
|
// post-identify events. The API deliberately rejects a batch whose
|
|
369
397
|
// event identities differ from its context, so drain one identity at a
|
|
370
398
|
// time while retaining FIFO order within that identity.
|
|
371
|
-
const
|
|
372
|
-
event.
|
|
399
|
+
const candidates = allowed
|
|
400
|
+
.filter((event) => event.anonymousId === firstAllowed.anonymousId &&
|
|
401
|
+
event.externalId === firstAllowed.externalId)
|
|
402
|
+
.slice(0, engine.config.flushBatchSize);
|
|
403
|
+
let deliveryCount = 0;
|
|
404
|
+
const overflow = candidates.findIndex(event => needsImmediateDelivery(engine, event.name) && ++deliveryCount > 20);
|
|
405
|
+
// Limit authorization work, not ordinary analytics rows. Keep earlier
|
|
406
|
+
// watch/property events in order without shrinking every batch to 20.
|
|
407
|
+
const batch = overflow < 0 ? candidates : candidates.slice(0, overflow);
|
|
373
408
|
if (batch.length === 0)
|
|
374
409
|
break;
|
|
375
410
|
const ingestEvents = batch.map((e) => ({
|
|
@@ -383,7 +418,16 @@ async function performFlush(engine) {
|
|
|
383
418
|
sdkVersion: engine.context.sdkVersion(),
|
|
384
419
|
platform: engine.context.platform(),
|
|
385
420
|
}));
|
|
421
|
+
const deliveryEventIds = batch
|
|
422
|
+
.filter((event) => needsImmediateDelivery(engine, event.name))
|
|
423
|
+
.map((event) => event.eventId);
|
|
424
|
+
requestedImmediateDelivery ||= deliveryEventIds.length > 0;
|
|
425
|
+
const deliveryGeneration = engine.resetGeneration;
|
|
426
|
+
const deliverySubjectToken = engine.subjectToken;
|
|
386
427
|
const payload = {
|
|
428
|
+
...(deliveryEventIds.length
|
|
429
|
+
? { delivery: { eventIds: deliveryEventIds } }
|
|
430
|
+
: {}),
|
|
387
431
|
events: ingestEvents,
|
|
388
432
|
context: engine.context.build({
|
|
389
433
|
anonymousId: batch[0].anonymousId,
|
|
@@ -391,8 +435,15 @@ async function performFlush(engine) {
|
|
|
391
435
|
}),
|
|
392
436
|
};
|
|
393
437
|
try {
|
|
394
|
-
await engine.transport.ingest(payload);
|
|
438
|
+
const result = await engine.transport.ingest(payload);
|
|
439
|
+
if (engine.resetting ||
|
|
440
|
+
engine.resetGeneration !== deliveryGeneration ||
|
|
441
|
+
engine.subjectToken !== deliverySubjectToken)
|
|
442
|
+
return;
|
|
395
443
|
engine.queue.remove(batch.map((event) => event.eventId));
|
|
444
|
+
if (result.instructions?.length) {
|
|
445
|
+
await consumeInstructions(engine, result.instructions, false, deliveryGeneration, deliverySubjectToken);
|
|
446
|
+
}
|
|
396
447
|
}
|
|
397
448
|
catch (e) {
|
|
398
449
|
if (e instanceof PermanentHttpError) {
|
|
@@ -436,14 +487,14 @@ async function performFlush(engine) {
|
|
|
436
487
|
}
|
|
437
488
|
}
|
|
438
489
|
// After draining the queue, opportunistically pull pending survey offers.
|
|
439
|
-
|
|
490
|
+
void flushMutations(engine);
|
|
440
491
|
// Triggered surveys appear in the offer ledger after the server processes
|
|
441
492
|
// the event; the small delay gives NATS + the trigger engine time to
|
|
442
493
|
// run before we ask.
|
|
443
494
|
setTimeout(() => {
|
|
444
495
|
void pollSurveyOffers(engine);
|
|
445
496
|
void pollInstructions(engine);
|
|
446
|
-
}, 1500);
|
|
497
|
+
}, requestedImmediateDelivery ? 100 : 1500);
|
|
447
498
|
}
|
|
448
499
|
catch (e) {
|
|
449
500
|
reportError('flushNow failed', e);
|
|
@@ -469,14 +520,32 @@ async function performMutationFlush(engine) {
|
|
|
469
520
|
break;
|
|
470
521
|
const deliveryGeneration = engine.resetGeneration;
|
|
471
522
|
const consent = engine.consent.get();
|
|
523
|
+
if (mutation.purpose === 'analytics' && !consent.analytics)
|
|
524
|
+
break;
|
|
472
525
|
if (mutation.purpose === 'feedback' && !consent.feedback)
|
|
473
526
|
break;
|
|
474
527
|
if (mutation.purpose === 'survey' && !consent.survey)
|
|
475
528
|
break;
|
|
476
529
|
try {
|
|
477
|
-
if (mutation.kind === '
|
|
530
|
+
if (mutation.kind === 'instruction-ack') {
|
|
531
|
+
await engine.transport.acknowledgeInstructions(mutation.payload.ids);
|
|
532
|
+
}
|
|
533
|
+
else if (mutation.kind === 'user-properties') {
|
|
534
|
+
const result = await engine.transport.userProperties(mutation.payload);
|
|
535
|
+
if (result.filteredKeys.length)
|
|
536
|
+
reportError('User properties filtered by app privacy settings', result.filteredKeys);
|
|
537
|
+
}
|
|
538
|
+
else if (mutation.kind === 'feedback-response') {
|
|
478
539
|
await engine.transport.submitResponse(mutation.payload);
|
|
479
540
|
}
|
|
541
|
+
else if (mutation.kind === 'survey-start') {
|
|
542
|
+
await engine.transport.surveyCreateAttempt(String(mutation.payload.surveyId), mutation.payload
|
|
543
|
+
.body);
|
|
544
|
+
}
|
|
545
|
+
else if (mutation.kind === 'survey-progress') {
|
|
546
|
+
await engine.transport.surveyUpdateProgress(String(mutation.payload.attemptId), mutation.payload
|
|
547
|
+
.body);
|
|
548
|
+
}
|
|
480
549
|
else if (mutation.kind === 'survey-complete') {
|
|
481
550
|
const attemptId = mutation.payload.attemptId;
|
|
482
551
|
if (typeof attemptId !== 'string')
|
|
@@ -503,7 +572,9 @@ async function performMutationFlush(engine) {
|
|
|
503
572
|
anonymousId,
|
|
504
573
|
externalId,
|
|
505
574
|
...(properties && typeof properties === 'object'
|
|
506
|
-
? {
|
|
575
|
+
? {
|
|
576
|
+
properties: properties,
|
|
577
|
+
}
|
|
507
578
|
: {}),
|
|
508
579
|
}, subjectToken);
|
|
509
580
|
if (engine.resetting || engine.resetGeneration !== deliveryGeneration)
|
|
@@ -513,6 +584,8 @@ async function performMutationFlush(engine) {
|
|
|
513
584
|
break;
|
|
514
585
|
engine.subjectToken = subjectToken;
|
|
515
586
|
engine.transport.setSubjectToken(subjectToken);
|
|
587
|
+
if (engine.identity.get().externalId !== externalId)
|
|
588
|
+
engine.presentation.invalidate();
|
|
516
589
|
await engine.identity.setExternalId(externalId);
|
|
517
590
|
if (properties && typeof properties === 'object') {
|
|
518
591
|
const clean = properties;
|
|
@@ -570,6 +643,7 @@ export async function pollSurveyOffers(engine) {
|
|
|
570
643
|
lastPollAt = now;
|
|
571
644
|
if (!engine.consent.get().survey)
|
|
572
645
|
return;
|
|
646
|
+
const presentationIsValid = engine.presentation.validator('survey');
|
|
573
647
|
const id = engine.identity.get();
|
|
574
648
|
const res = await engine.transport.surveysAvailable({
|
|
575
649
|
anonymousId: id.anonymousId,
|
|
@@ -578,7 +652,8 @@ export async function pollSurveyOffers(engine) {
|
|
|
578
652
|
const surveys = res.surveys ?? [];
|
|
579
653
|
if (surveys.length === 0)
|
|
580
654
|
return;
|
|
581
|
-
const seen = (await engine.storage.getJson(SEEN_OFFERS_KEY)) ??
|
|
655
|
+
const seen = (await engine.storage.getJson(SEEN_OFFERS_KEY)) ??
|
|
656
|
+
[];
|
|
582
657
|
const seenSet = new Set(seen);
|
|
583
658
|
const localIds = surveys
|
|
584
659
|
.map((survey) => survey.id)
|
|
@@ -587,6 +662,8 @@ export async function pollSurveyOffers(engine) {
|
|
|
587
662
|
!engine.locallyHandledSurveyIds.has(survey.id));
|
|
588
663
|
if (fresh.length === 0 && localIds.length === 0)
|
|
589
664
|
return;
|
|
665
|
+
if (!presentationIsValid() || !engine.consent.allowsSurvey())
|
|
666
|
+
return;
|
|
590
667
|
for (const s of fresh) {
|
|
591
668
|
engine.events.emit('surveyInvite', {
|
|
592
669
|
surveyId: s.id,
|
|
@@ -620,27 +697,82 @@ async function performInstructionPoll(engine) {
|
|
|
620
697
|
try {
|
|
621
698
|
await ensureHydrated(engine);
|
|
622
699
|
const after = (await engine.storage.getJson(STORAGE_KEYS.instructionCursor)) ?? 0;
|
|
623
|
-
const
|
|
624
|
-
const
|
|
625
|
-
const result = await engine.transport.instructions(after, {
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
if (seenSet.has(instruction.id))
|
|
632
|
-
continue;
|
|
633
|
-
dispatchInstruction(engine, instruction.type, instruction.payload);
|
|
634
|
-
seenSet.add(instruction.id);
|
|
635
|
-
await engine.storage.setJsonStrict(STORAGE_KEYS.seenInstructions, [...seenSet].slice(-200));
|
|
636
|
-
}
|
|
637
|
-
await engine.storage.setJsonStrict(STORAGE_KEYS.instructionCursor, Math.max(after, ...handledIds));
|
|
638
|
-
await engine.transport.acknowledgeInstructions(handledIds);
|
|
700
|
+
const generation = engine.resetGeneration;
|
|
701
|
+
const subjectToken = engine.subjectToken;
|
|
702
|
+
const result = await engine.transport.instructions(after, {
|
|
703
|
+
anonymousId: engine.identity.get().anonymousId,
|
|
704
|
+
platform: engine.context.platform(),
|
|
705
|
+
sdkVersion: engine.context.sdkVersion(),
|
|
706
|
+
});
|
|
707
|
+
await consumeInstructions(engine, result.instructions, true, generation, subjectToken);
|
|
639
708
|
}
|
|
640
709
|
catch (error) {
|
|
641
710
|
reportError('instruction poll failed', error);
|
|
642
711
|
}
|
|
643
712
|
}
|
|
713
|
+
/** Serializes HTTP responses and polling. Event-scoped responses must never
|
|
714
|
+
* advance the global inbox cursor past older, still-undelivered instructions. */
|
|
715
|
+
export function consumeInstructions(engine, instructions, advanceCursor, generation = engine.resetGeneration, subjectToken = engine.subjectToken) {
|
|
716
|
+
const isCurrent = () => !engine.resetting &&
|
|
717
|
+
engine.resetGeneration === generation &&
|
|
718
|
+
engine.subjectToken === subjectToken;
|
|
719
|
+
const work = (engine.instructionDispatchPromise ?? Promise.resolve())
|
|
720
|
+
.catch(() => undefined)
|
|
721
|
+
.then(async () => {
|
|
722
|
+
if (!instructions.length || !isCurrent())
|
|
723
|
+
return;
|
|
724
|
+
const seen = new Set((await engine.storage.getJson(STORAGE_KEYS.seenInstructions)) ?? []);
|
|
725
|
+
if (!isCurrent())
|
|
726
|
+
return;
|
|
727
|
+
const handled = [];
|
|
728
|
+
for (const instruction of instructions) {
|
|
729
|
+
if (!isCurrent())
|
|
730
|
+
return;
|
|
731
|
+
handled.push(instruction.id);
|
|
732
|
+
if (seen.has(instruction.id))
|
|
733
|
+
continue;
|
|
734
|
+
const payload = instruction.payload;
|
|
735
|
+
if (instruction.type === 'survey.offer' && engine.consent.allowsSurvey() &&
|
|
736
|
+
typeof payload.surveyId === 'string' && typeof payload.name === 'string' &&
|
|
737
|
+
typeof payload.presentationId === 'string' && payload.survey && typeof payload.survey === 'object') {
|
|
738
|
+
// Persist before invoking the host callback or acknowledging delivery.
|
|
739
|
+
// A storage failure leaves the instruction available for retry.
|
|
740
|
+
await engine.surveyInvitations.remember({
|
|
741
|
+
surveyId: payload.surveyId,
|
|
742
|
+
presentationId: payload.presentationId,
|
|
743
|
+
source: typeof payload.source === 'string' ? payload.source : 'triggered',
|
|
744
|
+
survey: { ...payload.survey, presentationId: payload.presentationId },
|
|
745
|
+
attempt: payload.attempt,
|
|
746
|
+
expiresAt: Math.min(Date.parse(instruction.expiresAt), Date.now() + 24 * 60 * 60 * 1000),
|
|
747
|
+
});
|
|
748
|
+
if (!isCurrent())
|
|
749
|
+
return;
|
|
750
|
+
}
|
|
751
|
+
dispatchInstruction(engine, instruction.type, instruction.payload);
|
|
752
|
+
seen.add(instruction.id);
|
|
753
|
+
await engine.storage.setJsonStrict(STORAGE_KEYS.seenInstructions, [...seen].slice(-200));
|
|
754
|
+
}
|
|
755
|
+
if (!isCurrent())
|
|
756
|
+
return;
|
|
757
|
+
// Persist receipts before advancing the cursor. Network retries must not
|
|
758
|
+
// hold the display/ingest lane or lose cap accounting after a restart.
|
|
759
|
+
await engine.mutations.enqueue('instruction-ack', 'essential', {
|
|
760
|
+
ids: handled,
|
|
761
|
+
});
|
|
762
|
+
if (!isCurrent())
|
|
763
|
+
return;
|
|
764
|
+
if (advanceCursor) {
|
|
765
|
+
const after = (await engine.storage.getJson(STORAGE_KEYS.instructionCursor)) ?? 0;
|
|
766
|
+
if (!isCurrent())
|
|
767
|
+
return;
|
|
768
|
+
await engine.storage.setJsonStrict(STORAGE_KEYS.instructionCursor, Math.max(after, ...handled));
|
|
769
|
+
}
|
|
770
|
+
if (isCurrent())
|
|
771
|
+
void flushMutations(engine);
|
|
772
|
+
});
|
|
773
|
+
engine.instructionDispatchPromise = work;
|
|
774
|
+
return work;
|
|
775
|
+
}
|
|
644
776
|
function dispatchInstruction(engine, type, payload) {
|
|
645
777
|
if (type === 'prompt.show') {
|
|
646
778
|
if (!engine.consent.allowsFeedback())
|
|
@@ -675,7 +807,8 @@ function dispatchInstruction(engine, type, payload) {
|
|
|
675
807
|
if (type === 'survey.offer') {
|
|
676
808
|
if (!engine.consent.allowsSurvey())
|
|
677
809
|
return;
|
|
678
|
-
if (typeof payload.surveyId !== 'string' ||
|
|
810
|
+
if (typeof payload.surveyId !== 'string' ||
|
|
811
|
+
typeof payload.name !== 'string')
|
|
679
812
|
return;
|
|
680
813
|
const triggerEventId = payload.triggerEventId;
|
|
681
814
|
if (typeof triggerEventId === 'string' &&
|
|
@@ -687,6 +820,13 @@ function dispatchInstruction(engine, type, payload) {
|
|
|
687
820
|
return;
|
|
688
821
|
}
|
|
689
822
|
engine.events.emit('surveyInvite', {
|
|
823
|
+
attempt: payload.attempt,
|
|
824
|
+
survey: payload.survey && typeof payload.survey === 'object'
|
|
825
|
+
? {
|
|
826
|
+
...payload.survey,
|
|
827
|
+
presentationId: payload.presentationId,
|
|
828
|
+
}
|
|
829
|
+
: undefined,
|
|
690
830
|
surveyId: payload.surveyId,
|
|
691
831
|
name: payload.name,
|
|
692
832
|
source: typeof payload.source === 'string' ? payload.source : 'triggered',
|
|
@@ -760,7 +900,8 @@ export function enqueueAndEvaluate(engine, eventName, properties, purpose = 'ana
|
|
|
760
900
|
engine.queue.enqueue(base);
|
|
761
901
|
engine.userState.recordEvent(eventName, now);
|
|
762
902
|
evaluateLocally(engine, eventName, base.eventId);
|
|
763
|
-
if (engine
|
|
903
|
+
if (needsImmediateDelivery(engine, eventName) ||
|
|
904
|
+
engine.queue.size() >= engine.config.flushBatchSize)
|
|
764
905
|
void flushNow(engine);
|
|
765
906
|
else
|
|
766
907
|
scheduleFlush(engine);
|
|
@@ -776,7 +917,8 @@ export function enqueueAndEvaluate(engine, eventName, properties, purpose = 'ana
|
|
|
776
917
|
engine.queue.enqueue(withId);
|
|
777
918
|
engine.userState.recordEvent(eventName, now);
|
|
778
919
|
evaluateLocally(engine, eventName, withId.eventId);
|
|
779
|
-
if (engine
|
|
920
|
+
if (needsImmediateDelivery(engine, eventName) ||
|
|
921
|
+
engine.queue.size() >= engine.config.flushBatchSize)
|
|
780
922
|
void flushNow(engine);
|
|
781
923
|
else
|
|
782
924
|
scheduleFlush(engine);
|
|
@@ -806,14 +948,21 @@ function evaluateLocally(engine, eventName, eventId) {
|
|
|
806
948
|
}
|
|
807
949
|
export async function submitResponse(engine, payload, triggerEventName, trackInternal) {
|
|
808
950
|
const id = engine.identity.get();
|
|
951
|
+
const context = engine.context.build(id);
|
|
809
952
|
const submitPayload = {
|
|
810
953
|
idempotencyKey: generateEventId(),
|
|
811
954
|
promptId: payload.promptId,
|
|
812
955
|
anonymousId: id.anonymousId,
|
|
813
956
|
externalId: id.externalId,
|
|
814
|
-
answers: payload.answers.map((a) => ({
|
|
957
|
+
answers: payload.answers.map((a) => ({
|
|
958
|
+
questionId: a.questionId,
|
|
959
|
+
value: a.value,
|
|
960
|
+
})),
|
|
815
961
|
dismissed: payload.dismissed,
|
|
816
962
|
latencyMs: payload.latencyMs,
|
|
963
|
+
platform: context.platform,
|
|
964
|
+
sdkVersion: context.sdkVersion,
|
|
965
|
+
appVersion: context.appVersion,
|
|
817
966
|
};
|
|
818
967
|
engine.events.emit('response', payload);
|
|
819
968
|
trackInternal('$feedback_response', {
|
|
@@ -842,6 +991,7 @@ export async function clearAllState(engine) {
|
|
|
842
991
|
engine.flushPromise ?? Promise.resolve(),
|
|
843
992
|
engine.sessionPromise ?? Promise.resolve(),
|
|
844
993
|
engine.instructionPollPromise ?? Promise.resolve(),
|
|
994
|
+
engine.instructionDispatchPromise ?? Promise.resolve(),
|
|
845
995
|
]);
|
|
846
996
|
// Reset is a local privacy operation and must not wait on network retries.
|
|
847
997
|
// Revoke the old credential through an isolated transport so failures cannot
|
|
@@ -875,6 +1025,7 @@ export async function clearAllState(engine) {
|
|
|
875
1025
|
engine.userState.clear(),
|
|
876
1026
|
engine.consent.clear(),
|
|
877
1027
|
engine.localInstructionDedupe.clear(),
|
|
1028
|
+
engine.surveyInvitations.clear(),
|
|
878
1029
|
]);
|
|
879
1030
|
await engine.storage.clearAll([
|
|
880
1031
|
STORAGE_KEYS.identity,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/internal/engine.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,+EAA+E;AAY/E,OAAO,EAAE,mBAAmB,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAA;AAC/F,OAAO,EACL,YAAY,EACZ,kBAAkB,GAEnB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAwB,MAAM,eAAe,CAAA;AAC5F,OAAO,EAAE,oBAAoB,EAAuB,MAAM,cAAc,CAAA;AACxE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,YAAY,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAkB,MAAM,gBAAgB,CAAA;AACpF,OAAO,EAAE,gBAAgB,EAAmB,MAAM,kBAAkB,CAAA;AACpE,OAAO,EACL,sBAAsB,GAEvB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,yBAAyB,EAA4B,MAAM,oBAAoB,CAAA;AACxF,OAAO,EAAE,oBAAoB,EAAuB,MAAM,iBAAiB,CAAA;AAC3E,OAAO,EAAE,oBAAoB,EAAuB,MAAM,sBAAsB,CAAA;AAChF,OAAO,EAAE,mBAAmB,EAAsB,MAAM,qBAAqB,CAAA;AAC7E,OAAO,EAAE,qBAAqB,EAAwB,MAAM,wBAAwB,CAAA;AACpF,OAAO,EAAE,kBAAkB,EAAqB,MAAM,oBAAoB,CAAA;AAC1E,OAAO,EAAE,sBAAsB,EAAyB,MAAM,gBAAgB,CAAA;AAC9E,OAAO,EAAE,qBAAqB,EAAwB,MAAM,cAAc,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAiB,MAAM,aAAa,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAOnE,OAAO,EAAE,mBAAmB,EAAsB,MAAM,qBAAqB,CAAA;AAC7E,OAAO,EACL,4BAA4B,GAE7B,MAAM,yBAAyB,CAAA;AAEhC,MAAM,oBAAoB,GAAG;IAC3B,UAAU,EAAE,0BAA0B;IACtC,kEAAkE;IAClE,sEAAsE;IACtE,gEAAgE;IAChE,OAAO,EAAE,0BAA0B;IACnC,WAAW,EAAE,wBAAwB;CAC7B,CAAA;AAEV,MAAM,QAAQ,GAAG;IACf,WAAW,EAAE,YAAqB;IAClC,eAAe,EAAE,MAAM;IACvB,cAAc,EAAE,GAAG;IACnB,YAAY,EAAE,IAAI;IAClB,qBAAqB,EAAE,OAAO;IAC9B,KAAK,EAAE,KAAK;CACb,CAAA;AA0CD,MAAM,UAAU,aAAa,CAAC,MAAiB;IAC7C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnF,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;IACtD,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAA;IAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,oBAAoB,CAAC,WAAW,CAAC,CAAA;IACjE,IAAI,WAAW,KAAK,YAAY,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAC9D,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM;QACN,WAAW;QACX,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,QAAQ,CAAC,eAAe;QACnE,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,QAAQ,CAAC,cAAc;QAChE,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY;QAC1D,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,IAAI,QAAQ,CAAC,qBAAqB;QACrF,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK;QACrC,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,IAAI;KAC9C,CAAA;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAiB;IAC5C,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IACtC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE/B,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACrD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAA;IAC/C,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAA;IAC7C,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;IAC9D,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAA;IAC9C,MAAM,sBAAsB,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAA;IACpE,MAAM,SAAS,GAAG,eAAe,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;IAC3F,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAA;IAClF,MAAM,WAAW,GAAG,sBAAsB,CACxC,OAAO,EACP,SAAS,EACT,QAAQ,CAAC,qBAAqB,CAC/B,CAAA;IACD,MAAM,UAAU,GAAG,qBAAqB,CACtC,OAAO,EACP,SAAS,EACT,QAAQ,CAAC,qBAAqB,CAC/B,CAAA;IACD,MAAM,IAAI,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAA;IAC/C,MAAM,SAAS,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAA;IAC/C,MAAM,MAAM,GAAG,cAAc,EAAE,CAAA;IAC/B,MAAM,OAAO,GAAG,oBAAoB,CAAC;QACnC,UAAU,EAAE,KAAK;QACjB,aAAa,EAAE,IAAI;QACnB,SAAS;QACT,OAAO;QACP,MAAM;KACP,CAAC,CAAA;IACF,MAAM,aAAa,GAAG,mBAAmB,CAAC;QACxC,UAAU,EAAE,WAAW;QACvB,aAAa,EAAE,IAAI;QACnB,SAAS;QACT,OAAO;QACP,MAAM;KACP,CAAC,CAAA;IACF,MAAM,YAAY,GAAG,kBAAkB,CAAC;QACtC,UAAU,EAAE,UAAU;QACtB,OAAO;QACP,MAAM;KACP,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,qBAAqB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;IAE1D,gEAAgE;IAChE,8DAA8D;IAC9D,MAAM,GAAG,GAA6B,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;IACrD,SAAS,GAAG;QACV,IAAI,CAAC,GAAG,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;QACnD,OAAO,GAAG,CAAC,KAAK,CAAA;IAClB,CAAC;IAED,MAAM,SAAS,GAAG,sBAAsB,CAAC;QACvC,YAAY,EAAE,GAAG,EAAE;YACjB,MAAM,CAAC,GAAG,GAAG,EAAE,CAAA;YACf,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;gBACrC,MAAM,qBAAqB,CAAC,CAAC,CAAC,CAAA;gBAC9B,2BAA2B,CAAC,CAAC,CAAC,CAAA;gBAC9B,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAA;gBAChB,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAA;gBACxB,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAA;YAC1B,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,YAAY,EAAE,GAAG,EAAE;YACjB,KAAK,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAA;QACtB,CAAC;QACD,UAAU,EAAE,GAAG,EAAE;YACf,MAAM,CAAC,GAAG,GAAG,EAAE,CAAA;YACf,KAAK,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC7B,KAAK,cAAc,CAAC,CAAC,CAAC,CAAA;YACtB,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAA;YACxB,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC;QACD,cAAc,EAAE,QAAQ,CAAC,qBAAqB;KAC/C,CAAC,CAAA;IAEF,MAAM,MAAM,GAAW;QACrB,MAAM,EAAE,QAAQ;QAChB,OAAO;QACP,QAAQ;QACR,OAAO;QACP,KAAK;QACL,SAAS;QACT,SAAS;QACT,KAAK;QACL,WAAW;QACX,UAAU;QACV,IAAI;QACJ,SAAS;QACT,OAAO;QACP,aAAa;QACb,YAAY;QACZ,SAAS;QACT,OAAO;QACP,MAAM;QACN,QAAQ,EAAE,KAAK;QACf,gBAAgB,EAAE,IAAI;QACtB,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;QAClB,oBAAoB,EAAE,IAAI;QAC1B,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,sBAAsB,EAAE,IAAI;QAC5B,eAAe,EAAE,CAAC;QAClB,SAAS,EAAE,KAAK;QAChB,sBAAsB;QACtB,uBAAuB,EAAE,IAAI,GAAG,EAAE;QAClC,aAAa,EAAE,IAAI;QACnB,aAAa,EAAE,IAAI;QACnB,uBAAuB,EAAE,IAAI;QAC7B,sBAAsB,EAAE,CAAC;KAC1B,CAAA;IACD,GAAG,CAAC,KAAK,GAAG,MAAM,CAAA;IAElB,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,QAAQ,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IAClE,CAAC,CAAC,CAAA;IACF,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,EAAE;QACnC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IACF,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;QACtB,IAAI,CAAC,CAAC,CAAC,SAAS;YAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;QACzD,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;YACtC,KAAK,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;YAC/C,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAA;QAC/B,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YACd,KAAK,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;YAC7C,MAAM,CAAC,aAAa,CAAC,YAAY,EAAE,CAAA;QACrC,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS;YAAE,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAc;IACjD,IAAI,MAAM,CAAC,QAAQ;QAAE,OAAM;IAC3B,IAAI,MAAM,CAAC,gBAAgB;QAAE,OAAO,MAAM,CAAC,gBAAgB,CAAA;IAC3D,MAAM,CAAC,gBAAgB,GAAG,CAAC,KAAK,IAAI,EAAE;QACpC,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;gBACzB,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE;gBACxB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;gBACtB,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE;gBAC1B,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE;gBACrB,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE;gBAC1B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;gBACtB,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE;gBAC5B,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE;gBAC3B,MAAM,CAAC,sBAAsB,CAAC,OAAO,EAAE;gBACvC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAS,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,OAAO,KAAK,KAAK,QAAQ;oBAAE,MAAM,CAAC,aAAa,GAAG,KAAK,CAAA,CAAC,CAAC,CAAC;aACtI,CAAC,CAAA;YACF,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAA;YAClC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAA;QACxB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,WAAW,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAA;QACzC,CAAC;gBAAS,CAAC;YACT,uEAAuE;YACvE,sEAAsE;YACtE,kEAAkE;YAClE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAAE,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAA;QACtD,CAAC;IACH,CAAC,CAAC,EAAE,CAAA;IACJ,OAAO,MAAM,CAAC,gBAAgB,CAAA;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAAc;IACvD,IAAI,MAAM,CAAC,YAAY;QAAE,OAAM;IAC/B,IAAI,MAAM,CAAC,cAAc;QAAE,OAAO,MAAM,CAAC,cAAc,CAAA;IACvD,MAAM,CAAC,cAAc,GAAG,CAAC,KAAK,IAAI,EAAE;QAClC,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;QAChC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAS,YAAY,CAAC,YAAY,CAAC,CAAA;QACjF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC7C,WAAW,EAAE,EAAE,CAAC,WAAW;gBAC3B,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAClD,CAAC,CAAA;YACF,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA;YAC1C,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;YACtD,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;QAC/E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,KAAK,YAAY,kBAAkB;gBACnD,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,CAAA;YACxE,IAAI,CAAC,SAAS;gBAAE,MAAM,KAAK,CAAA;YAC3B,sEAAsE;YACtE,wEAAwE;YACxE,oCAAoC;YACpC,IAAI,SAAS;gBAAE,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAA;YACrE,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAA;YAC9C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;YACpF,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA;YAC1C,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;YACtD,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;QAC/E,CAAC;IACH,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;QAChB,MAAM,CAAC,cAAc,GAAG,IAAI,CAAA;IAC9B,CAAC,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,cAAc,CAAA;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAc,EACd,KAAK,GAAG,KAAK;IAEb,IAAI,MAAM,CAAC,SAAS;QAAE,OAAM;IAC5B,MAAM,cAAc,CAAC,MAAM,CAAC,CAAA;IAC5B,IAAI,MAAM,CAAC,SAAS;QAAE,OAAM;IAC5B,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;IAChC,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;YACnB,WAAW,EAAE,EAAE,CAAC,WAAW;YAC3B,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,KAAK;SACN,CAAC;QACF,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;YACzB,WAAW,EAAE,EAAE,CAAC,WAAW;YAC3B,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,KAAK;SACN,CAAC;QACF,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;YACxB,WAAW,EAAE,EAAE,CAAC,WAAW;YAC3B,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,KAAK;SACN,CAAC;KACH,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAAc;IACxD,IAAI,MAAM,CAAC,SAAS;QAAE,OAAM;IAC5B,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACjD,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;QACpC,OAAO,EAAE,EAAE,CAAA;QACX,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACpC,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;QACtE,OAAM;IACR,CAAC;IACD,IAAI,OAAO;QAAE,OAAM;IACnB,IAAI,KAAK,GAAG,KAAK,CAAA;IACjB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;QACjD,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ;YAAE,OAAM;QAChC,KAAK,GAAG,IAAI,CAAA;QACZ,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;QACtE,WAAW,EAAE,CAAA;QACb,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;IACF,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,MAAc;IACxD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAA;IACxC,IAAI,CAAC,OAAO;QAAE,OAAM;IACpB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAS,YAAY,CAAC,UAAU,CAAC,CAAA;IAC9E,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAC9D,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE;QAAE,OAAM;IAClF,kBAAkB,CAAC,MAAM,EAAE,8BAA8B,EAAE;QACzD,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,OAAO;KACrB,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,qBAAqB,GAAG,IAAI,OAAO,EAAsB,CAAA;AAC/D,SAAS,cAAc,CAAC,IAAY,EAAE,KAAa,EAAE,OAAe;IAClE,OAAO,GAAG,IAAI,IAAI,KAAK,UAAU,OAAO,EAAE,CAAA;AAC5C,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAc,EAAE,GAAW;IAC3D,MAAM,CAAC,sBAAsB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,IAAI,MAAM,CAAC,UAAU;QAAE,OAAM;IAC7B,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;QAClC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAA;QACxB,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAA;IACvB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAAc;IAC3C,IAAI,MAAM,CAAC,SAAS;QAAE,OAAM;IAC5B,IAAI,MAAM,CAAC,YAAY;QAAE,OAAO,MAAM,CAAC,YAAY,CAAA;IACnD,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QACtD,MAAM,CAAC,YAAY,GAAG,IAAI,CAAA;IAC5B,CAAC,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,YAAY,CAAA;AAC5B,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,MAAc;IACxC,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,MAAM,CAAC,CAAA;QAC5B,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;YACpC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CACvD,KAAK,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CACrE,CAAA;YACD,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YAC/B,IAAI,CAAC,YAAY;gBAAE,MAAK;YACxB,qEAAqE;YACrE,mEAAmE;YACnE,uEAAuE;YACvE,wDAAwD;YACxD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CACrC,KAAK,CAAC,WAAW,KAAK,YAAY,CAAC,WAAW;gBAC9C,KAAK,CAAC,UAAU,KAAK,YAAY,CAAC,UAAU,CAC7C,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;YACxC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAK;YAC7B,MAAM,YAAY,GAA+B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACjE,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClD,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE;gBACvC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;aACpC,CAAC,CAAC,CAAA;YACH,MAAM,OAAO,GAAgB;gBAC3B,MAAM,EAAE,YAAY;gBACpB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;oBAC5B,WAAW,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,WAAW;oBAClC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,UAAU;iBACjC,CAAC;aACH,CAAA;YACD,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;gBACtC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;YAC1D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,YAAY,kBAAkB,EAAE,CAAC;oBACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACvB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,CAAC,CAAA;wBACxC,WAAW,CAAC,oDAAoD,EAAE;4BAChE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,OAAO;4BAC1B,MAAM,EAAE,CAAC,CAAC,MAAM;yBACjB,CAAC,CAAA;wBACF,SAAQ;oBACV,CAAC;oBACD,oEAAoE;oBACpE,4DAA4D;oBAC5D,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAE,CAAA;oBACvB,IAAI,CAAC;wBACH,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;4BAC5B,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC,CAAE,CAAC;4BAC1B,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;gCAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;gCAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;6BAC7B,CAAC;yBACH,CAAC,CAAA;wBACF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;oBACtC,CAAC;oBAAC,OAAO,WAAW,EAAE,CAAC;wBACrB,IAAI,WAAW,YAAY,kBAAkB,EAAE,CAAC;4BAC9C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;4BACpC,WAAW,CAAC,oDAAoD,EAAE;gCAChE,OAAO,EAAE,KAAK,CAAC,OAAO;gCACtB,MAAM,EAAE,WAAW,CAAC,MAAM;6BAC3B,CAAC,CAAA;4BACF,SAAQ;wBACV,CAAC;wBACD,WAAW,CAAC,eAAe,EAAE,WAAW,CAAC,CAAA;wBACzC,OAAM;oBACR,CAAC;oBACD,SAAQ;gBACV,CAAC;gBACD,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC,CAAA;gBAC/B,OAAM;YACR,CAAC;QACH,CAAC;QACD,0EAA0E;QAC1E,MAAM,cAAc,CAAC,MAAM,CAAC,CAAA;QAC5B,0EAA0E;QAC1E,qEAAqE;QACrE,qBAAqB;QACrB,UAAU,CAAC,GAAG,EAAE;YACd,KAAK,gBAAgB,CAAC,MAAM,CAAC,CAAA;YAC7B,KAAK,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC,EAAE,IAAI,CAAC,CAAA;IACV,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAA;IACnC,CAAC;AACH,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAc;IACjD,IAAI,MAAM,CAAC,SAAS;QAAE,OAAO,EAAE,sBAAsB,EAAE,IAAI,GAAG,EAAE,EAAE,CAAA;IAClE,IAAI,MAAM,CAAC,oBAAoB;QAAE,OAAO,MAAM,CAAC,oBAAoB,CAAA;IACnE,MAAM,CAAC,oBAAoB,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QACtE,MAAM,CAAC,oBAAoB,GAAG,IAAI,CAAA;IACpC,CAAC,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,oBAAoB,CAAA;AACpC,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,MAAc;IAChD,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAU,CAAA;IAChD,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QACnC,IAAI,MAAM,CAAC,SAAS;YAAE,MAAK;QAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;QACxC,IAAI,CAAC,QAAQ;YAAE,MAAK;QACpB,MAAM,kBAAkB,GAAG,MAAM,CAAC,eAAe,CAAA;QACjD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;QACpC,IAAI,QAAQ,CAAC,OAAO,KAAK,UAAU,IAAI,CAAC,OAAO,CAAC,QAAQ;YAAE,MAAK;QAC/D,IAAI,QAAQ,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,MAAK;QAC3D,IAAI,CAAC;YACH,IAAI,QAAQ,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBAC1C,MAAM,MAAM,CAAC,SAAS,CAAC,cAAc,CACnC,QAAQ,CAAC,OAA2C,CACrD,CAAA;YACH,CAAC;iBAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBAC/C,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAA;gBAC5C,IAAI,OAAO,SAAS,KAAK,QAAQ;oBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;gBAC7E,MAAM,MAAM,CAAC,SAAS,CAAC,cAAc,CACnC,SAAS,EACT,QAAQ,CAAC,OAAO,CAAC,IAA+C,CACjE,CAAA;YACH,CAAC;iBAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAC9C,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAA;gBAC5C,IAAI,OAAO,SAAS,KAAK,QAAQ;oBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;gBAC7E,MAAM,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;YACjD,CAAC;iBAAM,CAAC;gBACN,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAA;gBAClD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAA;gBAChD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAA;gBAC9C,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAA;gBAC9C,IACE,OAAO,YAAY,KAAK,QAAQ;oBAChC,OAAO,WAAW,KAAK,QAAQ;oBAC/B,OAAO,UAAU,KAAK,QAAQ;oBAC9B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;gBAC9C,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,SAAS,CAAC,QAAQ,CAC7B;wBACE,WAAW;wBACX,UAAU;wBACV,GAAG,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ;4BAC9C,CAAC,CAAC,EAAE,UAAU,EAAE,UAA0D,EAAE;4BAC5E,CAAC,CAAC,EAAE,CAAC;qBACR,EACD,YAAY,CACb,CAAA;oBACD,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,eAAe,KAAK,kBAAkB;wBAAE,MAAK;oBAC5E,MAAM,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA;oBAC3E,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,eAAe,KAAK,kBAAkB;wBAAE,MAAK;oBAC5E,MAAM,CAAC,YAAY,GAAG,YAAY,CAAA;oBAClC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,YAAY,CAAC,CAAA;oBAC9C,MAAM,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;oBAC/C,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;wBACjD,MAAM,KAAK,GAAG,UAA0D,CAAA;wBACxE,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;wBACvC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;4BACrC,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAA;wBAChD,CAAC;oBACH,CAAC;yBAAM,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;wBAC5C,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAA;oBACpD,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,KAAK,CAAA;gBACb,CAAC;YACH,CAAC;YACD,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,eAAe,KAAK,kBAAkB;gBAAE,MAAK;YAC5E,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,eAAe,KAAK,kBAAkB;gBAAE,MAAK;YAC5E,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;gBACxC,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;gBAC1C,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;gBACvC,WAAW,CAAC,gDAAgD,EAAE;oBAC5D,UAAU,EAAE,QAAQ,CAAC,EAAE;oBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,4BAA4B,EAAE;oBACrC,UAAU,EAAE,QAAQ,CAAC,EAAE;oBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC/D,CAAC,CAAA;YACJ,CAAC;YACD,MAAK;QACP,CAAC;IACH,CAAC;IACD,OAAO,EAAE,sBAAsB,EAAE,CAAA;AACnC,CAAC;AAED,MAAM,eAAe,GAAG,qBAAqB,CAAA;AAC7C,MAAM,eAAe,GAAG,KAAK,CAAA;AAC7B,IAAI,UAAU,GAAG,CAAC,CAAA;AAElB,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAc;IACnD,IAAI,CAAC;QACH,IAAI,MAAM,CAAC,SAAS;YAAE,OAAM;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,IAAI,GAAG,GAAG,UAAU,GAAG,eAAe;YAAE,OAAM;QAC9C,UAAU,GAAG,GAAG,CAAA;QAEhB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM;YAAE,OAAM;QAExC,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;QAChC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;YAClD,WAAW,EAAE,EAAE,CAAC,WAAW;YAC3B,UAAU,EAAE,EAAE,CAAC,UAAU,IAAI,IAAI;SAClC,CAAC,CAAA;QACF,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAA;QACjC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QAEhC,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAwB,eAAe,CAAC,CAAC,IAAI,EAAE,CAAA;QACzF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAA;QAC7B,MAAM,QAAQ,GAAG,OAAO;aACrB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;aAC1B,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;QACrE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAC1B,CAAC,MAAM,EAAE,EAAE,CACT,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,CAAC,MAAM,CAAC,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CACjD,CAAA;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QAEvD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE;gBACjC,QAAQ,EAAE,CAAC,CAAC,EAAE;gBACd,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,MAAM,EAAE,CAAC,CAAC,MAAM;aACjB,CAAC,CAAA;QACJ,CAAC;QAED,yEAAyE;QACzE,0EAA0E;QAC1E,4DAA4D;QAC5D,MAAM,QAAQ,GAAG;YACf,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;SACxE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAA;QACb,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAA;IACzD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,WAAW,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAA;IAC3C,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAc;IACnD,IAAI,MAAM,CAAC,SAAS;QAAE,OAAM;IAC5B,IAAI,MAAM,CAAC,sBAAsB;QAAE,OAAO,MAAM,CAAC,sBAAsB,CAAA;IACvE,MAAM,CAAC,sBAAsB,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QAC1E,MAAM,CAAC,sBAAsB,GAAG,IAAI,CAAA;IACtC,CAAC,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,sBAAsB,CAAA;AACtC,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,MAAc;IAClD,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,MAAM,CAAC,CAAA;QAC5B,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAS,YAAY,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAA;QACzF,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CACxC,YAAY,CAAC,gBAAgB,CAC9B,CAAC,IAAI,EAAE,CAAA;QACR,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAA;QAC7B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;QAC3L,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QAE5C,MAAM,UAAU,GAAa,EAAE,CAAA;QAC/B,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YAC9C,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;YAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;gBAAE,SAAQ;YACzC,mBAAmB,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;YAClE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;YAC3B,MAAM,MAAM,CAAC,OAAO,CAAC,aAAa,CAChC,YAAY,CAAC,gBAAgB,EAC7B,CAAC,GAAG,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CACzB,CAAA;QACH,CAAC;QACD,MAAM,MAAM,CAAC,OAAO,CAAC,aAAa,CAChC,YAAY,CAAC,iBAAiB,EAC9B,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,UAAU,CAAC,CAC/B,CAAA;QACD,MAAM,MAAM,CAAC,SAAS,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAA;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAA;IAC/C,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,MAAc,EACd,IAAY,EACZ,OAA0C;IAE1C,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE;YAAE,OAAM;QAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QACjC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAC7B,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAM;QACjF,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAA;QAC7C,IACE,OAAO,cAAc,KAAK,QAAQ;YAClC,MAAM,CAAC,sBAAsB,CAAC,OAAO,CACnC,cAAc,CAAC,aAAa,EAAE,QAAQ,EAAE,cAAc,CAAC,CACxD,EACD,CAAC;YACD,QAAQ,CAAC,yDAAyD,EAAE;gBAClE,QAAQ;gBACR,cAAc;aACf,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC1B,MAAM,WAAW,GAAG,MAAsB,CAAA;QAC1C,MAAM,QAAQ,GAAG;YACf,QAAQ;YACR,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,OAAO;YACP,gBAAgB,EAAE,OAAO,OAAO,CAAC,gBAAgB,KAAK,QAAQ;gBAC5D,CAAC,CAAC,OAAO,CAAC,gBAAgB;gBAC1B,CAAC,CAAC,QAAQ;SACb,CAAA;QACD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;QAC1C,OAAM;IACR,CAAC;IACD,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE;YAAE,OAAM;QAC1C,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAM;QACpF,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAA;QAC7C,IACE,OAAO,cAAc,KAAK,QAAQ;YAClC,MAAM,CAAC,sBAAsB,CAAC,OAAO,CACnC,cAAc,CAAC,cAAc,EAAE,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,CACjE,EACD,CAAC;YACD,QAAQ,CAAC,yDAAyD,EAAE;gBAClE,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,cAAc;aACf,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE;YACjC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW;SAC1E,CAAC,CAAA;QACF,OAAM;IACR,CAAC;IACD,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE;YAAE,OAAM;QAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QAC/B,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAM;QACnD,MAAM,KAAK,GAAG,OAA4B,CAAA;QAC1C,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAA;QAC7C,IACE,OAAO,cAAc,KAAK,QAAQ;YAClC,MAAM,CAAC,sBAAsB,CAAC,OAAO,CACnC,cAAc,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,CAC9D,EACD,CAAC;YACD,QAAQ,CAAC,yDAAyD,EAAE;gBAClE,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,cAAc;aACf,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACrC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;YACnB,gBAAgB,EAAE,OAAO,OAAO,CAAC,gBAAgB,KAAK,QAAQ;gBAC5D,CAAC,CAAC,OAAO,CAAC,gBAAgB;gBAC1B,CAAC,CAAC,QAAQ;SACb,CAAC,CAAA;QACF,OAAM;IACR,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE;YAC9B,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YACrC,KAAK,EAAE,OAAO;SACf,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,UAA0D;IAE1D,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAA;IACjC,MAAM,GAAG,GAAuC,EAAE,CAAA;IAClD,MAAM,MAAM,GAAG,sCAAsC,CAAA;IACrD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QACtD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,SAAQ;QACpD,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;QACvB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QAC7B,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACzE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QACZ,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,MAAc,EACd,SAAiB,EACjB,UAAoE,EACpE,UAAkC,WAAW;IAE7C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACtB,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;IAChC,MAAM,IAAI,GAAgB;QACxB,OAAO,EAAE,eAAe,EAAE;QAC1B,OAAO;QACP,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;QACtC,WAAW,EAAE,EAAE,CAAC,WAAW,IAAI,SAAS;QACxC,UAAU,EAAE,EAAE,CAAC,UAAU;QACzB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAA;IACD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC1B,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;QAC5C,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAChD,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc;YAAE,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAA;;YACzE,aAAa,CAAC,MAAM,CAAC,CAAA;QAC1B,OAAM;IACR,CAAC;IACD,KAAK,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;QACpC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;QACnC,MAAM,MAAM,GAAgB;YAC1B,GAAG,IAAI;YACP,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAA;QACD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC5B,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;QAC5C,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QAClD,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc;YAAE,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAA;;YACzE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;gEACgE;AAChE,MAAM,UAAU,8BAA8B,CAAC,MAAc,EAAE,SAAiB;IAC9E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACtB,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IAC5C,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAA;AACvD,CAAC;AAED,SAAS,eAAe,CAAC,MAAc,EAAE,SAAiB,EAAE,OAAe;IACzE,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IACnD,IAAI,QAAQ,EAAE,CAAC;QACb,wBAAwB,CACtB,MAAM,EACN,cAAc,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,CAAC,CACjD,CAAA;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IACzD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,CAAC,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC5C,wBAAwB,CACtB,MAAM,EACN,cAAc,CAAC,cAAc,EAAE,QAAQ,EAAE,OAAO,CAAC,CAClD,CAAA;IACH,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IACzD,IAAI,SAAS,EAAE,CAAC;QACd,wBAAwB,CACtB,MAAM,EACN,cAAc,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,CACjD,CAAA;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,OAAyB,EACzB,gBAAwB,EACxB,aAIS;IAET,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;IAChC,MAAM,aAAa,GAA0B;QAC3C,cAAc,EAAE,eAAe,EAAE;QACjC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,EAAE,CAAC,WAAW;QAC3B,UAAU,EAAE,EAAE,CAAC,UAAU;QACzB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACnF,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAA;IACD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACvC,aAAa,CAAC,oBAAoB,EAAE;QAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,gBAAgB;KACjB,EAAE,UAAU,CAAC,CAAA;IACd,QAAQ,CAAC,oCAAoC,EAAE;QAC7C,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;QACpC,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAA;IACF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE;QAAE,OAAM;IAC5C,MAAM,MAAM,CAAC,SAAS,CAAC,OAAO,CAC5B,mBAAmB,EACnB,UAAU,EACV,aAA6D,CAC9D,CAAA;IACD,KAAK,cAAc,CAAC,MAAM,CAAC,CAAA;AAC7B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAc;IAChD,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,CAAA;IACrC,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,CAAA;IAC9C,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAA;IAC5B,MAAM,OAAO,CAAC,UAAU,CAAC;QACvB,MAAM,CAAC,oBAAoB,IAAI,OAAO,CAAC,OAAO,EAAE;QAChD,MAAM,CAAC,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE;QACxC,MAAM,CAAC,cAAc,IAAI,OAAO,CAAC,OAAO,EAAE;QAC1C,MAAM,CAAC,sBAAsB,IAAI,OAAO,CAAC,OAAO,EAAE;KACnD,CAAC,CAAA;IACF,2EAA2E;IAC3E,6EAA6E;IAC7E,qEAAqE;IACrE,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;IACxC,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,mBAAmB,GAAG,eAAe,CAAC;YAC1C,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ;YAChC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;SAC7B,CAAC,CAAA;QACF,mBAAmB,CAAC,eAAe,CAAC,YAAY,CAAC,CAAA;QACjD,KAAK,mBAAmB,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACvD,QAAQ,CAAC,iCAAiC,EAAE;gBAC1C,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC/D,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAC/B,MAAM,CAAC,UAAU,GAAG,IAAI,CAAA;IAC1B,CAAC;IACD,MAAM,cAAc,CAAC,MAAM,CAAC,CAAA;IAC5B,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;QACpB,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE;QACxB,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE;QACvB,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;QACnB,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;QACpB,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE;QAC1B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE;QACzB,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE;QACxB,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE;QACtB,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE;KACtC,CAAC,CAAA;IACF,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC5B,YAAY,CAAC,QAAQ;QACrB,YAAY,CAAC,OAAO;QACpB,YAAY,CAAC,KAAK;QAClB,YAAY,CAAC,UAAU;QACvB,YAAY,CAAC,gBAAgB;QAC7B,YAAY,CAAC,eAAe;QAC5B,YAAY,CAAC,aAAa;QAC1B,YAAY,CAAC,cAAc;QAC3B,YAAY,CAAC,YAAY;QACzB,YAAY,CAAC,YAAY;QACzB,YAAY,CAAC,aAAa;QAC1B,YAAY,CAAC,iBAAiB;QAC9B,YAAY,CAAC,gBAAgB;QAC7B,YAAY,CAAC,sBAAsB;QACnC,YAAY,CAAC,SAAS;QACtB,eAAe;KAChB,CAAC,CAAA;IACF,MAAM,CAAC,YAAY,GAAG,IAAI,CAAA;IAC1B,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;IACtC,MAAM,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAA;IACtC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAA;IAC7B,MAAM,CAAC,aAAa,CAAC,YAAY,EAAE,CAAA;IACnC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAA;IAC3B,MAAM,CAAC,uBAAuB,GAAG,IAAI,CAAA;IACrC,MAAM,CAAC,sBAAsB,GAAG,CAAC,CAAA;IACjC,UAAU,GAAG,CAAC,CAAA;IACd,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAA;IAC/B,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAA;AACpC,CAAC"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/internal/engine.ts"],"names":[],"mappings":"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"}
|