@powersync/common 1.53.1 → 1.53.2
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/bundle.cjs +66 -62
- package/dist/bundle.cjs.map +1 -1
- package/dist/bundle.mjs +66 -62
- package/dist/bundle.mjs.map +1 -1
- package/dist/bundle.node.cjs +66 -62
- package/dist/bundle.node.cjs.map +1 -1
- package/dist/bundle.node.mjs +66 -62
- package/dist/bundle.node.mjs.map +1 -1
- package/dist/index.d.cts +6 -9
- package/lib/client/sync/stream/AbstractStreamingSyncImplementation.d.ts +6 -9
- package/lib/client/sync/stream/AbstractStreamingSyncImplementation.js +28 -43
- package/lib/client/sync/stream/AbstractStreamingSyncImplementation.js.map +1 -1
- package/lib/utils/async.d.ts +13 -7
- package/lib/utils/async.js +38 -24
- package/lib/utils/async.js.map +1 -1
- package/package.json +1 -1
- package/src/client/sync/stream/AbstractStreamingSyncImplementation.ts +31 -54
- package/src/utils/async.ts +51 -24
package/dist/index.d.cts
CHANGED
|
@@ -688,18 +688,17 @@ type SubscribedStream = {
|
|
|
688
688
|
declare abstract class AbstractStreamingSyncImplementation extends BaseObserver<StreamingSyncImplementationListener> implements StreamingSyncImplementation {
|
|
689
689
|
protected options: AbstractStreamingSyncImplementationOptions;
|
|
690
690
|
protected abortController: AbortController | null;
|
|
691
|
-
protected uploadAbortController: AbortController | undefined;
|
|
692
691
|
protected crudUpdateListener?: () => void;
|
|
693
|
-
protected streamingSyncPromise?: Promise<void>;
|
|
692
|
+
protected streamingSyncPromise?: Promise<[void, void]>;
|
|
694
693
|
protected logger: ILogger;
|
|
695
694
|
private activeStreams;
|
|
696
695
|
private connectionMayHaveChanged;
|
|
697
|
-
private
|
|
696
|
+
private crudUploadNotifier;
|
|
698
697
|
private notifyCompletedUploads?;
|
|
699
698
|
private handleActiveStreamsChange?;
|
|
700
699
|
syncStatus: SyncStatus;
|
|
701
|
-
triggerCrudUpload: () => void;
|
|
702
700
|
constructor(options: AbstractStreamingSyncImplementationOptions);
|
|
701
|
+
triggerCrudUpload(): void;
|
|
703
702
|
waitForReady(): Promise<void>;
|
|
704
703
|
waitForStatus(status: SyncStatusOptions): Promise<void>;
|
|
705
704
|
waitUntilStatusMatches(predicate: (status: SyncStatus) => boolean): Promise<void>;
|
|
@@ -708,13 +707,11 @@ declare abstract class AbstractStreamingSyncImplementation extends BaseObserver<
|
|
|
708
707
|
dispose(): Promise<void>;
|
|
709
708
|
abstract obtainLock<T>(lockOptions: LockOptions<T>): Promise<T>;
|
|
710
709
|
getWriteCheckpoint(): Promise<string>;
|
|
711
|
-
|
|
710
|
+
private crudUploadLoop;
|
|
711
|
+
private _uploadAllCrud;
|
|
712
712
|
connect(options?: PowerSyncConnectionOptions): Promise<void>;
|
|
713
713
|
disconnect(): Promise<void>;
|
|
714
|
-
|
|
715
|
-
* @deprecated use [connect instead]
|
|
716
|
-
*/
|
|
717
|
-
streamingSync(signal?: AbortSignal, options?: PowerSyncConnectionOptions): Promise<void>;
|
|
714
|
+
private streamingSync;
|
|
718
715
|
markConnectionMayHaveChanged(): void;
|
|
719
716
|
/**
|
|
720
717
|
* Older versions of the JS SDK used to encode subkeys as JSON in {@link OplogEntry.toJSON}.
|
|
@@ -161,18 +161,17 @@ export type SubscribedStream = {
|
|
|
161
161
|
export declare abstract class AbstractStreamingSyncImplementation extends BaseObserver<StreamingSyncImplementationListener> implements StreamingSyncImplementation {
|
|
162
162
|
protected options: AbstractStreamingSyncImplementationOptions;
|
|
163
163
|
protected abortController: AbortController | null;
|
|
164
|
-
protected uploadAbortController: AbortController | undefined;
|
|
165
164
|
protected crudUpdateListener?: () => void;
|
|
166
|
-
protected streamingSyncPromise?: Promise<void>;
|
|
165
|
+
protected streamingSyncPromise?: Promise<[void, void]>;
|
|
167
166
|
protected logger: ILogger;
|
|
168
167
|
private activeStreams;
|
|
169
168
|
private connectionMayHaveChanged;
|
|
170
|
-
private
|
|
169
|
+
private crudUploadNotifier;
|
|
171
170
|
private notifyCompletedUploads?;
|
|
172
171
|
private handleActiveStreamsChange?;
|
|
173
172
|
syncStatus: SyncStatus;
|
|
174
|
-
triggerCrudUpload: () => void;
|
|
175
173
|
constructor(options: AbstractStreamingSyncImplementationOptions);
|
|
174
|
+
triggerCrudUpload(): void;
|
|
176
175
|
waitForReady(): Promise<void>;
|
|
177
176
|
waitForStatus(status: SyncStatusOptions): Promise<void>;
|
|
178
177
|
waitUntilStatusMatches(predicate: (status: SyncStatus) => boolean): Promise<void>;
|
|
@@ -181,13 +180,11 @@ export declare abstract class AbstractStreamingSyncImplementation extends BaseOb
|
|
|
181
180
|
dispose(): Promise<void>;
|
|
182
181
|
abstract obtainLock<T>(lockOptions: LockOptions<T>): Promise<T>;
|
|
183
182
|
getWriteCheckpoint(): Promise<string>;
|
|
184
|
-
|
|
183
|
+
private crudUploadLoop;
|
|
184
|
+
private _uploadAllCrud;
|
|
185
185
|
connect(options?: PowerSyncConnectionOptions): Promise<void>;
|
|
186
186
|
disconnect(): Promise<void>;
|
|
187
|
-
|
|
188
|
-
* @deprecated use [connect instead]
|
|
189
|
-
*/
|
|
190
|
-
streamingSync(signal?: AbortSignal, options?: PowerSyncConnectionOptions): Promise<void>;
|
|
187
|
+
private streamingSync;
|
|
191
188
|
markConnectionMayHaveChanged(): void;
|
|
192
189
|
/**
|
|
193
190
|
* Older versions of the JS SDK used to encode subkeys as JSON in {@link OplogEntry.toJSON}.
|
|
@@ -2,11 +2,11 @@ import Logger from 'js-logger';
|
|
|
2
2
|
import { SyncStatus } from '../../../db/crud/SyncStatus.js';
|
|
3
3
|
import { AbortOperation } from '../../../utils/AbortOperation.js';
|
|
4
4
|
import { BaseObserver } from '../../../utils/BaseObserver.js';
|
|
5
|
-
import { throttleLeadingTrailing } from '../../../utils/async.js';
|
|
6
5
|
import { PowerSyncControlCommand } from '../bucket/BucketStorageAdapter.js';
|
|
7
6
|
import { FetchStrategy } from './AbstractRemote.js';
|
|
8
7
|
import { coreStatusToJs, isInterruptingInstruction } from './core-instruction.js';
|
|
9
8
|
import { doneResult, injectable, valueResult } from '../../../utils/stream_transform.js';
|
|
9
|
+
import { asyncNotifier } from '../../../utils/async.js';
|
|
10
10
|
export var LockType;
|
|
11
11
|
(function (LockType) {
|
|
12
12
|
LockType["CRUD"] = "crud";
|
|
@@ -56,27 +56,18 @@ export const DEFAULT_STREAM_CONNECTION_OPTIONS = {
|
|
|
56
56
|
serializedSchema: undefined,
|
|
57
57
|
includeDefaultStreams: true
|
|
58
58
|
};
|
|
59
|
-
// The priority we assume when we receive checkpoint lines where no priority is set.
|
|
60
|
-
// This is the default priority used by the sync service, but can be set to an arbitrary
|
|
61
|
-
// value since sync services without priorities also won't send partial sync completion
|
|
62
|
-
// messages.
|
|
63
|
-
const FALLBACK_PRIORITY = 3;
|
|
64
59
|
export class AbstractStreamingSyncImplementation extends BaseObserver {
|
|
65
60
|
options;
|
|
66
61
|
abortController;
|
|
67
|
-
// In rare cases, mostly for tests, uploads can be triggered without being properly connected.
|
|
68
|
-
// This allows ensuring that all upload processes can be aborted.
|
|
69
|
-
uploadAbortController;
|
|
70
62
|
crudUpdateListener;
|
|
71
63
|
streamingSyncPromise;
|
|
72
64
|
logger;
|
|
73
65
|
activeStreams;
|
|
74
66
|
connectionMayHaveChanged = false;
|
|
75
|
-
|
|
67
|
+
crudUploadNotifier = asyncNotifier();
|
|
76
68
|
notifyCompletedUploads;
|
|
77
69
|
handleActiveStreamsChange;
|
|
78
70
|
syncStatus;
|
|
79
|
-
triggerCrudUpload;
|
|
80
71
|
constructor(options) {
|
|
81
72
|
super();
|
|
82
73
|
this.options = options;
|
|
@@ -92,16 +83,9 @@ export class AbstractStreamingSyncImplementation extends BaseObserver {
|
|
|
92
83
|
}
|
|
93
84
|
});
|
|
94
85
|
this.abortController = null;
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
99
|
-
this.isUploadingCrud = true;
|
|
100
|
-
this._uploadAllCrud().finally(() => {
|
|
101
|
-
this.notifyCompletedUploads?.();
|
|
102
|
-
this.isUploadingCrud = false;
|
|
103
|
-
});
|
|
104
|
-
}, this.options.crudUploadThrottleMs);
|
|
86
|
+
}
|
|
87
|
+
triggerCrudUpload() {
|
|
88
|
+
this.crudUploadNotifier.notify();
|
|
105
89
|
}
|
|
106
90
|
async waitForReady() { }
|
|
107
91
|
waitForStatus(status) {
|
|
@@ -149,7 +133,6 @@ export class AbstractStreamingSyncImplementation extends BaseObserver {
|
|
|
149
133
|
super.dispose();
|
|
150
134
|
this.crudUpdateListener?.();
|
|
151
135
|
this.crudUpdateListener = undefined;
|
|
152
|
-
this.uploadAbortController?.abort();
|
|
153
136
|
}
|
|
154
137
|
async getWriteCheckpoint() {
|
|
155
138
|
const clientId = await this.options.adapter.getClientId();
|
|
@@ -159,7 +142,17 @@ export class AbstractStreamingSyncImplementation extends BaseObserver {
|
|
|
159
142
|
this.logger.debug(`Created write checkpoint: ${checkpoint}`);
|
|
160
143
|
return checkpoint;
|
|
161
144
|
}
|
|
162
|
-
async
|
|
145
|
+
async crudUploadLoop(signal) {
|
|
146
|
+
while (!signal.aborted) {
|
|
147
|
+
await Promise.all([
|
|
148
|
+
// Start the initial CRUD upload on connect. Then, keep polling until we're done.
|
|
149
|
+
this._uploadAllCrud(signal),
|
|
150
|
+
this.delayRetry(signal, this.options.crudUploadThrottleMs)
|
|
151
|
+
]);
|
|
152
|
+
await this.crudUploadNotifier.waitForNotification(signal);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
async _uploadAllCrud(signal) {
|
|
163
156
|
return this.obtainLock({
|
|
164
157
|
type: LockType.CRUD,
|
|
165
158
|
callback: async () => {
|
|
@@ -167,12 +160,7 @@ export class AbstractStreamingSyncImplementation extends BaseObserver {
|
|
|
167
160
|
* Keep track of the first item in the CRUD queue for the last `uploadCrud` iteration.
|
|
168
161
|
*/
|
|
169
162
|
let checkedCrudItem;
|
|
170
|
-
|
|
171
|
-
this.uploadAbortController = controller;
|
|
172
|
-
this.abortController?.signal.addEventListener('abort', () => {
|
|
173
|
-
controller.abort();
|
|
174
|
-
}, { once: true });
|
|
175
|
-
while (!controller.signal.aborted) {
|
|
163
|
+
while (!signal.aborted) {
|
|
176
164
|
try {
|
|
177
165
|
/**
|
|
178
166
|
* This is the first item in the FIFO CRUD queue.
|
|
@@ -202,7 +190,10 @@ The next upload iteration will be delayed.`);
|
|
|
202
190
|
else {
|
|
203
191
|
// Uploading is completed
|
|
204
192
|
const neededUpdate = await this.options.adapter.updateLocalTarget(() => this.getWriteCheckpoint());
|
|
205
|
-
if (neededUpdate
|
|
193
|
+
if (neededUpdate) {
|
|
194
|
+
this.notifyCompletedUploads?.();
|
|
195
|
+
}
|
|
196
|
+
else if (checkedCrudItem != null) {
|
|
206
197
|
// Only log this if there was something to upload
|
|
207
198
|
this.logger.debug('Upload complete, no write checkpoint needed.');
|
|
208
199
|
}
|
|
@@ -217,7 +208,7 @@ The next upload iteration will be delayed.`);
|
|
|
217
208
|
uploadError: ex
|
|
218
209
|
}
|
|
219
210
|
});
|
|
220
|
-
await this.delayRetry(
|
|
211
|
+
await this.delayRetry(signal);
|
|
221
212
|
if (!this.isConnected) {
|
|
222
213
|
// Exit the upload loop if the sync stream is no longer connected
|
|
223
214
|
break;
|
|
@@ -232,7 +223,6 @@ The next upload iteration will be delayed.`);
|
|
|
232
223
|
});
|
|
233
224
|
}
|
|
234
225
|
}
|
|
235
|
-
this.uploadAbortController = undefined;
|
|
236
226
|
}
|
|
237
227
|
});
|
|
238
228
|
}
|
|
@@ -242,7 +232,10 @@ The next upload iteration will be delayed.`);
|
|
|
242
232
|
}
|
|
243
233
|
const controller = new AbortController();
|
|
244
234
|
this.abortController = controller;
|
|
245
|
-
this.streamingSyncPromise =
|
|
235
|
+
this.streamingSyncPromise = Promise.all([
|
|
236
|
+
this.crudUploadLoop(controller.signal).catch((ex) => this.logger.error('Error in crud upload loop', ex)),
|
|
237
|
+
this.streamingSync(controller.signal, options)
|
|
238
|
+
]);
|
|
246
239
|
// Return a promise that resolves when the connection status is updated to indicate that we're connected.
|
|
247
240
|
return new Promise((resolve) => {
|
|
248
241
|
const disposer = this.registerListener({
|
|
@@ -280,14 +273,7 @@ The next upload iteration will be delayed.`);
|
|
|
280
273
|
this.abortController = null;
|
|
281
274
|
this.updateSyncStatus({ connected: false, connecting: false });
|
|
282
275
|
}
|
|
283
|
-
/**
|
|
284
|
-
* @deprecated use [connect instead]
|
|
285
|
-
*/
|
|
286
276
|
async streamingSync(signal, options) {
|
|
287
|
-
if (!signal) {
|
|
288
|
-
this.abortController = new AbortController();
|
|
289
|
-
signal = this.abortController.signal;
|
|
290
|
-
}
|
|
291
277
|
/**
|
|
292
278
|
* Listen for CRUD updates and trigger upstream uploads
|
|
293
279
|
*/
|
|
@@ -663,14 +649,13 @@ The next upload iteration will be delayed.`);
|
|
|
663
649
|
// trigger this for all updates
|
|
664
650
|
this.iterateListeners((cb) => cb.statusUpdated?.(options));
|
|
665
651
|
}
|
|
666
|
-
async delayRetry(signal) {
|
|
652
|
+
async delayRetry(signal, delay = this.options.retryDelayMs) {
|
|
667
653
|
return new Promise((resolve) => {
|
|
668
654
|
if (signal?.aborted) {
|
|
669
655
|
// If the signal is already aborted, resolve immediately
|
|
670
656
|
resolve();
|
|
671
657
|
return;
|
|
672
658
|
}
|
|
673
|
-
const { retryDelayMs } = this.options;
|
|
674
659
|
let timeoutId;
|
|
675
660
|
const endDelay = () => {
|
|
676
661
|
resolve();
|
|
@@ -681,7 +666,7 @@ The next upload iteration will be delayed.`);
|
|
|
681
666
|
signal?.removeEventListener('abort', endDelay);
|
|
682
667
|
};
|
|
683
668
|
signal?.addEventListener('abort', endDelay, { once: true });
|
|
684
|
-
timeoutId = setTimeout(endDelay,
|
|
669
|
+
timeoutId = setTimeout(endDelay, delay);
|
|
685
670
|
});
|
|
686
671
|
}
|
|
687
672
|
updateSubscriptions(subscriptions) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractStreamingSyncImplementation.js","sourceRoot":"","sources":["../../../../src/client/sync/stream/AbstractStreamingSyncImplementation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AbstractStreamingSyncImplementation.js","sourceRoot":"","sources":["../../../../src/client/sync/stream/AbstractStreamingSyncImplementation.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/async.d.ts
CHANGED
|
@@ -5,10 +5,16 @@
|
|
|
5
5
|
* Roughly equivalent to lodash/throttle with {leading: false, trailing: true}
|
|
6
6
|
*/
|
|
7
7
|
export declare function throttleTrailing(func: () => void, wait: number): () => void;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
export interface AsyncNotifier {
|
|
9
|
+
/**
|
|
10
|
+
* @param signal Also resolve the promise once this signal completes.
|
|
11
|
+
* @returns A promise that resolves once {@link notify} is called after this promise was last resolved.
|
|
12
|
+
*/
|
|
13
|
+
waitForNotification(signal: AbortSignal): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Notifies a pending listener, or makes the next {@link waitForNotification} complete immediately if no listener
|
|
16
|
+
* is currently active.
|
|
17
|
+
*/
|
|
18
|
+
notify(): void;
|
|
19
|
+
}
|
|
20
|
+
export declare function asyncNotifier(): AsyncNotifier;
|
package/lib/utils/async.js
CHANGED
|
@@ -16,30 +16,44 @@ export function throttleTrailing(func, wait) {
|
|
|
16
16
|
}
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
19
|
+
export function asyncNotifier() {
|
|
20
|
+
let waitingConsumer = null;
|
|
21
|
+
let hasPendingNotification = false;
|
|
22
|
+
return {
|
|
23
|
+
notify() {
|
|
24
|
+
if (waitingConsumer != null) {
|
|
25
|
+
waitingConsumer();
|
|
26
|
+
waitingConsumer = null;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
hasPendingNotification = true;
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
waitForNotification(signal) {
|
|
33
|
+
return new Promise((resolve) => {
|
|
34
|
+
if (waitingConsumer != null) {
|
|
35
|
+
throw new Error('Illegal call to waitForNotification, already has a waiter.');
|
|
36
|
+
}
|
|
37
|
+
if (signal.aborted) {
|
|
38
|
+
resolve();
|
|
39
|
+
}
|
|
40
|
+
else if (hasPendingNotification) {
|
|
41
|
+
resolve();
|
|
42
|
+
hasPendingNotification = false;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
function complete() {
|
|
46
|
+
signal.removeEventListener('abort', onAbort);
|
|
47
|
+
resolve();
|
|
48
|
+
}
|
|
49
|
+
function onAbort() {
|
|
50
|
+
waitingConsumer = null;
|
|
51
|
+
resolve();
|
|
52
|
+
}
|
|
53
|
+
waitingConsumer = complete;
|
|
54
|
+
signal.addEventListener('abort', onAbort);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
43
57
|
}
|
|
44
58
|
};
|
|
45
59
|
}
|
package/lib/utils/async.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async.js","sourceRoot":"","sources":["../../src/utils/async.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAgB,EAAE,IAAY;IAC7D,IAAI,SAAS,GAAyC,IAAI,CAAC;IAE3D,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,EAAE,CAAC;QACP,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC,CAAC;IAEF,OAAO;QACL,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,SAAS,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"async.js","sourceRoot":"","sources":["../../src/utils/async.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAgB,EAAE,IAAY;IAC7D,IAAI,SAAS,GAAyC,IAAI,CAAC;IAE3D,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,EAAE,CAAC;QACP,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC,CAAC;IAEF,OAAO;QACL,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,SAAS,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAgBD,MAAM,UAAU,aAAa;IAC3B,IAAI,eAAe,GAAwB,IAAI,CAAC;IAChD,IAAI,sBAAsB,GAAG,KAAK,CAAC;IAEnC,OAAO;QACL,MAAM;YACJ,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;gBAC5B,eAAe,EAAE,CAAC;gBAClB,eAAe,GAAG,IAAI,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,sBAAsB,GAAG,IAAI,CAAC;YAChC,CAAC;QACH,CAAC;QACD,mBAAmB,CAAC,MAAmB;YACrC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;gBAChF,CAAC;gBAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,IAAI,sBAAsB,EAAE,CAAC;oBAClC,OAAO,EAAE,CAAC;oBACV,sBAAsB,GAAG,KAAK,CAAC;gBACjC,CAAC;qBAAM,CAAC;oBACN,SAAS,QAAQ;wBACf,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;wBAC7C,OAAO,EAAE,CAAC;oBACZ,CAAC;oBAED,SAAS,OAAO;wBACd,eAAe,GAAG,IAAI,CAAC;wBACvB,OAAO,EAAE,CAAC;oBACZ,CAAC;oBAED,eAAe,GAAG,QAAQ,CAAC;oBAC3B,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|