@fluidframework/merge-tree 0.59.3003 → 0.59.4000-71128
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/mergeTree.d.ts +4 -0
- package/dist/mergeTree.d.ts.map +1 -1
- package/dist/mergeTree.js +7 -5
- package/dist/mergeTree.js.map +1 -1
- package/dist/snapshotLoader.js +1 -1
- package/dist/snapshotLoader.js.map +1 -1
- package/lib/mergeTree.d.ts +4 -0
- package/lib/mergeTree.d.ts.map +1 -1
- package/lib/mergeTree.js +7 -5
- package/lib/mergeTree.js.map +1 -1
- package/lib/snapshotLoader.js +1 -1
- package/lib/snapshotLoader.js.map +1 -1
- package/package.json +16 -14
- package/src/mergeTree.ts +8 -7
- package/src/snapshotLoader.ts +1 -1
package/dist/snapshotLoader.js
CHANGED
|
@@ -76,7 +76,7 @@ class SnapshotLoader {
|
|
|
76
76
|
const blobs = await blobsP;
|
|
77
77
|
if (blobs.length === headerChunk.headerMetadata.orderedChunkMetadata.length + 1) {
|
|
78
78
|
headerChunk.headerMetadata.orderedChunkMetadata.forEach((md) => blobs.splice(blobs.indexOf(md.id), 1));
|
|
79
|
-
(0, common_utils_1.assert)(blobs.length === 1, 0x060 /*
|
|
79
|
+
(0, common_utils_1.assert)(blobs.length === 1, 0x060 /* There should be only one blob with catch up ops */);
|
|
80
80
|
// TODO: The 'Snapshot.catchupOps' tree entry is purely for backwards compatibility.
|
|
81
81
|
// (See https://github.com/microsoft/FluidFramework/issues/84)
|
|
82
82
|
return this.loadCatchupOps(services.readBlob(blobs[0]));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshotLoader.js","sourceRoot":"","sources":["../src/snapshotLoader.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n\nimport { assert, bufferToString } from \"@fluidframework/common-utils\";\nimport { IFluidSerializer } from \"@fluidframework/shared-object-base\";\nimport { ChildLogger } from \"@fluidframework/telemetry-utils\";\nimport { ISequencedDocumentMessage } from \"@fluidframework/protocol-definitions\";\nimport { IFluidDataStoreRuntime, IChannelStorageService } from \"@fluidframework/datastore-definitions\";\nimport { ITelemetryLogger } from \"@fluidframework/common-definitions\";\nimport { AttachState } from \"@fluidframework/container-definitions\";\nimport { Client } from \"./client\";\nimport { NonCollabClient, UniversalSequenceNumber } from \"./constants\";\nimport { ISegment, MergeTree } from \"./mergeTree\";\nimport { IJSONSegment } from \"./ops\";\nimport {\n IJSONSegmentWithMergeInfo,\n hasMergeInfo,\n MergeTreeChunkV1,\n} from \"./snapshotChunks\";\nimport { SnapshotV1 } from \"./snapshotV1\";\nimport { SnapshotLegacy } from \"./snapshotlegacy\";\n\nexport class SnapshotLoader {\n private readonly logger: ITelemetryLogger;\n\n constructor(\n private readonly runtime: IFluidDataStoreRuntime,\n private readonly client: Client,\n private readonly mergeTree: MergeTree,\n logger: ITelemetryLogger,\n private readonly serializer: IFluidSerializer) {\n this.logger = ChildLogger.create(logger, \"SnapshotLoader\");\n }\n\n public async initialize(\n services: IChannelStorageService,\n ): Promise<{ catchupOpsP: Promise<ISequencedDocumentMessage[]>; }> {\n const headerLoadedP =\n services.readBlob(SnapshotLegacy.header).then((header) => {\n assert(!!header, 0x05f /* \"Missing blob header on legacy snapshot!\" */);\n return this.loadHeader(bufferToString(header, \"utf8\"));\n });\n\n const catchupOpsP =\n this.loadBodyAndCatchupOps(headerLoadedP, services);\n\n catchupOpsP.catch(\n (err) => this.logger.sendErrorEvent({ eventName: \"CatchupOpsLoadFailure\" }, err));\n\n await headerLoadedP;\n\n return { catchupOpsP };\n }\n\n private async loadBodyAndCatchupOps(\n headerChunkP: Promise<MergeTreeChunkV1>,\n services: IChannelStorageService,\n ): Promise<ISequencedDocumentMessage[]> {\n const blobsP = services.list(\"\");\n const headerChunk = await headerChunkP;\n\n // TODO we shouldn't need to wait on the body being complete to finish initialization.\n // To fully support this we need to be able to process inbound ops for pending segments.\n await this.loadBody(headerChunk, services);\n\n const blobs = await blobsP;\n if (blobs.length === headerChunk.headerMetadata!.orderedChunkMetadata.length + 1) {\n headerChunk.headerMetadata!.orderedChunkMetadata.forEach(\n (md) => blobs.splice(blobs.indexOf(md.id), 1));\n assert(blobs.length === 1, 0x060 /* `There should be only one blob with catch up ops: ${blobs.length}` */);\n\n // TODO: The 'Snapshot.catchupOps' tree entry is purely for backwards compatibility.\n // (See https://github.com/microsoft/FluidFramework/issues/84)\n\n return this.loadCatchupOps(services.readBlob(blobs[0]));\n } else if (blobs.length !== headerChunk.headerMetadata!.orderedChunkMetadata.length) {\n throw new Error(\"Unexpected blobs in snapshot\");\n }\n return [];\n }\n\n private readonly specToSegment = (spec: IJSONSegment | IJSONSegmentWithMergeInfo) => {\n let seg: ISegment;\n\n if (hasMergeInfo(spec)) {\n seg = this.client.specToSegment(spec.json);\n\n // `specToSegment()` initializes `seg` with the LocalClientId. Overwrite this with\n // the `spec` client (if specified). Otherwise overwrite with `NonCollabClient`.\n seg.clientId = spec.client !== undefined\n ? this.client.getOrAddShortClientId(spec.client)\n : NonCollabClient;\n\n seg.seq = spec.seq !== undefined\n ? spec.seq\n : UniversalSequenceNumber;\n\n if (spec.removedSeq !== undefined) {\n seg.removedSeq = spec.removedSeq;\n }\n // this format had a bug where it didn't store all the overlap clients\n // this is for back compat, so we change the singular id to an array\n // this will only cause problems if there is an overlapping delete\n // spanning the snapshot, which should be rare\n if (spec.removedClient !== undefined) {\n seg.removedClientIds = [this.client.getOrAddShortClientId(spec.removedClient)];\n }\n if (spec.removedClientIds !== undefined) {\n seg.removedClientIds = spec.removedClientIds?.map(\n (sid) => this.client.getOrAddShortClientId(sid));\n }\n } else {\n seg = this.client.specToSegment(spec);\n seg.seq = UniversalSequenceNumber;\n\n // `specToSegment()` initializes `seg` with the LocalClientId. We must overwrite this with\n // `NonCollabClient`.\n seg.clientId = NonCollabClient;\n }\n\n return seg;\n };\n\n private loadHeader(header: string): MergeTreeChunkV1 {\n const chunk = SnapshotV1.processChunk(\n SnapshotLegacy.header,\n header,\n this.logger,\n this.mergeTree.options,\n this.serializer);\n const segs = chunk.segments.map(this.specToSegment);\n this.mergeTree.reloadFromSegments(segs);\n\n if (chunk.headerMetadata === undefined) {\n throw new Error(\"header metadata not available\");\n }\n // If we load a detached container from snapshot, then we don't supply a default clientId\n // because we don't want to start collaboration.\n if (this.runtime.attachState !== AttachState.Detached) {\n // specify a default client id, \"snapshot\" here as we\n // should enter collaboration/op sending mode if we load\n // a snapshot in any case (summary or attach message)\n // once we get a client id this will be called with that\n // clientId in the connected event\n this.client.startOrUpdateCollaboration(\n this.runtime.clientId ?? \"snapshot\",\n\n // TODO: Make 'minSeq' non-optional once the new snapshot format becomes the default?\n // (See https://github.com/microsoft/FluidFramework/issues/84)\n /* minSeq: */ chunk.headerMetadata.minSequenceNumber !== undefined\n ? chunk.headerMetadata.minSequenceNumber\n : chunk.headerMetadata.sequenceNumber,\n /* currentSeq: */ chunk.headerMetadata.sequenceNumber,\n );\n }\n\n return chunk;\n }\n\n private async loadBody(chunk1: MergeTreeChunkV1, services: IChannelStorageService): Promise<void> {\n assert(\n chunk1.length <= chunk1.headerMetadata!.totalLength,\n 0x061 /* \"Mismatch in totalLength\" */);\n\n assert(\n chunk1.segmentCount <= chunk1.headerMetadata!.totalSegmentCount,\n 0x062 /* \"Mismatch in totalSegmentCount\" */);\n\n if (chunk1.segmentCount === chunk1.headerMetadata!.totalSegmentCount) {\n return;\n }\n const segs: ISegment[] = [];\n let lengthSofar = chunk1.length;\n for (let chunkIndex = 1; chunkIndex < chunk1.headerMetadata!.orderedChunkMetadata.length; chunkIndex++) {\n const chunk = await SnapshotV1.loadChunk(\n services,\n chunk1.headerMetadata!.orderedChunkMetadata[chunkIndex].id,\n this.logger,\n this.mergeTree.options,\n this.serializer);\n lengthSofar += chunk.length;\n // Deserialize each chunk segment and append it to the end of the MergeTree.\n segs.push(...chunk.segments.map(this.specToSegment));\n }\n assert(\n lengthSofar === chunk1.headerMetadata!.totalLength,\n 0x063 /* \"Mismatch in totalLength\" */);\n\n assert(\n chunk1.segmentCount + segs.length === chunk1.headerMetadata!.totalSegmentCount,\n 0x064 /* \"Mismatch in totalSegmentCount\" */);\n\n // Helper to insert segments at the end of the MergeTree.\n const mergeTree = this.mergeTree;\n const append = (segments: ISegment[], cli: number, seq: number) => {\n mergeTree.insertSegments(\n mergeTree.root.cachedLength,\n segments,\n /* refSeq: */ UniversalSequenceNumber,\n cli,\n seq,\n undefined);\n };\n\n // Helpers to batch-insert segments that are below the min seq\n const batch: ISegment[] = [];\n const flushBatch = () => {\n if (batch.length > 0) { append(batch, NonCollabClient, UniversalSequenceNumber); }\n };\n\n for (const seg of segs) {\n const cli = seg.clientId;\n const seq = seg.seq;\n\n // If the segment can be batch inserted, add it to the 'batch' array. Otherwise, flush\n // any batched segments and then insert the current segment individually.\n if (cli === NonCollabClient && seq === UniversalSequenceNumber) {\n batch.push(seg);\n } else {\n flushBatch();\n append([seg], cli, seq!);\n }\n }\n\n flushBatch();\n }\n\n /**\n * If loading from a snapshot, get the catchup messages.\n * @param rawMessages - The messages in original encoding\n * @returns The decoded messages, but handles aren't parsed. Matches the format that will be passed in\n * SharedObject.processCore.\n */\n private async loadCatchupOps(rawMessages: Promise<ArrayBufferLike>): Promise<ISequencedDocumentMessage[]> {\n return JSON.parse(bufferToString(await rawMessages, \"utf8\")) as ISequencedDocumentMessage[];\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"snapshotLoader.js","sourceRoot":"","sources":["../src/snapshotLoader.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n\nimport { assert, bufferToString } from \"@fluidframework/common-utils\";\nimport { IFluidSerializer } from \"@fluidframework/shared-object-base\";\nimport { ChildLogger } from \"@fluidframework/telemetry-utils\";\nimport { ISequencedDocumentMessage } from \"@fluidframework/protocol-definitions\";\nimport { IFluidDataStoreRuntime, IChannelStorageService } from \"@fluidframework/datastore-definitions\";\nimport { ITelemetryLogger } from \"@fluidframework/common-definitions\";\nimport { AttachState } from \"@fluidframework/container-definitions\";\nimport { Client } from \"./client\";\nimport { NonCollabClient, UniversalSequenceNumber } from \"./constants\";\nimport { ISegment, MergeTree } from \"./mergeTree\";\nimport { IJSONSegment } from \"./ops\";\nimport {\n IJSONSegmentWithMergeInfo,\n hasMergeInfo,\n MergeTreeChunkV1,\n} from \"./snapshotChunks\";\nimport { SnapshotV1 } from \"./snapshotV1\";\nimport { SnapshotLegacy } from \"./snapshotlegacy\";\n\nexport class SnapshotLoader {\n private readonly logger: ITelemetryLogger;\n\n constructor(\n private readonly runtime: IFluidDataStoreRuntime,\n private readonly client: Client,\n private readonly mergeTree: MergeTree,\n logger: ITelemetryLogger,\n private readonly serializer: IFluidSerializer) {\n this.logger = ChildLogger.create(logger, \"SnapshotLoader\");\n }\n\n public async initialize(\n services: IChannelStorageService,\n ): Promise<{ catchupOpsP: Promise<ISequencedDocumentMessage[]>; }> {\n const headerLoadedP =\n services.readBlob(SnapshotLegacy.header).then((header) => {\n assert(!!header, 0x05f /* \"Missing blob header on legacy snapshot!\" */);\n return this.loadHeader(bufferToString(header, \"utf8\"));\n });\n\n const catchupOpsP =\n this.loadBodyAndCatchupOps(headerLoadedP, services);\n\n catchupOpsP.catch(\n (err) => this.logger.sendErrorEvent({ eventName: \"CatchupOpsLoadFailure\" }, err));\n\n await headerLoadedP;\n\n return { catchupOpsP };\n }\n\n private async loadBodyAndCatchupOps(\n headerChunkP: Promise<MergeTreeChunkV1>,\n services: IChannelStorageService,\n ): Promise<ISequencedDocumentMessage[]> {\n const blobsP = services.list(\"\");\n const headerChunk = await headerChunkP;\n\n // TODO we shouldn't need to wait on the body being complete to finish initialization.\n // To fully support this we need to be able to process inbound ops for pending segments.\n await this.loadBody(headerChunk, services);\n\n const blobs = await blobsP;\n if (blobs.length === headerChunk.headerMetadata!.orderedChunkMetadata.length + 1) {\n headerChunk.headerMetadata!.orderedChunkMetadata.forEach(\n (md) => blobs.splice(blobs.indexOf(md.id), 1));\n assert(blobs.length === 1, 0x060 /* There should be only one blob with catch up ops */);\n\n // TODO: The 'Snapshot.catchupOps' tree entry is purely for backwards compatibility.\n // (See https://github.com/microsoft/FluidFramework/issues/84)\n\n return this.loadCatchupOps(services.readBlob(blobs[0]));\n } else if (blobs.length !== headerChunk.headerMetadata!.orderedChunkMetadata.length) {\n throw new Error(\"Unexpected blobs in snapshot\");\n }\n return [];\n }\n\n private readonly specToSegment = (spec: IJSONSegment | IJSONSegmentWithMergeInfo) => {\n let seg: ISegment;\n\n if (hasMergeInfo(spec)) {\n seg = this.client.specToSegment(spec.json);\n\n // `specToSegment()` initializes `seg` with the LocalClientId. Overwrite this with\n // the `spec` client (if specified). Otherwise overwrite with `NonCollabClient`.\n seg.clientId = spec.client !== undefined\n ? this.client.getOrAddShortClientId(spec.client)\n : NonCollabClient;\n\n seg.seq = spec.seq !== undefined\n ? spec.seq\n : UniversalSequenceNumber;\n\n if (spec.removedSeq !== undefined) {\n seg.removedSeq = spec.removedSeq;\n }\n // this format had a bug where it didn't store all the overlap clients\n // this is for back compat, so we change the singular id to an array\n // this will only cause problems if there is an overlapping delete\n // spanning the snapshot, which should be rare\n if (spec.removedClient !== undefined) {\n seg.removedClientIds = [this.client.getOrAddShortClientId(spec.removedClient)];\n }\n if (spec.removedClientIds !== undefined) {\n seg.removedClientIds = spec.removedClientIds?.map(\n (sid) => this.client.getOrAddShortClientId(sid));\n }\n } else {\n seg = this.client.specToSegment(spec);\n seg.seq = UniversalSequenceNumber;\n\n // `specToSegment()` initializes `seg` with the LocalClientId. We must overwrite this with\n // `NonCollabClient`.\n seg.clientId = NonCollabClient;\n }\n\n return seg;\n };\n\n private loadHeader(header: string): MergeTreeChunkV1 {\n const chunk = SnapshotV1.processChunk(\n SnapshotLegacy.header,\n header,\n this.logger,\n this.mergeTree.options,\n this.serializer);\n const segs = chunk.segments.map(this.specToSegment);\n this.mergeTree.reloadFromSegments(segs);\n\n if (chunk.headerMetadata === undefined) {\n throw new Error(\"header metadata not available\");\n }\n // If we load a detached container from snapshot, then we don't supply a default clientId\n // because we don't want to start collaboration.\n if (this.runtime.attachState !== AttachState.Detached) {\n // specify a default client id, \"snapshot\" here as we\n // should enter collaboration/op sending mode if we load\n // a snapshot in any case (summary or attach message)\n // once we get a client id this will be called with that\n // clientId in the connected event\n this.client.startOrUpdateCollaboration(\n this.runtime.clientId ?? \"snapshot\",\n\n // TODO: Make 'minSeq' non-optional once the new snapshot format becomes the default?\n // (See https://github.com/microsoft/FluidFramework/issues/84)\n /* minSeq: */ chunk.headerMetadata.minSequenceNumber !== undefined\n ? chunk.headerMetadata.minSequenceNumber\n : chunk.headerMetadata.sequenceNumber,\n /* currentSeq: */ chunk.headerMetadata.sequenceNumber,\n );\n }\n\n return chunk;\n }\n\n private async loadBody(chunk1: MergeTreeChunkV1, services: IChannelStorageService): Promise<void> {\n assert(\n chunk1.length <= chunk1.headerMetadata!.totalLength,\n 0x061 /* \"Mismatch in totalLength\" */);\n\n assert(\n chunk1.segmentCount <= chunk1.headerMetadata!.totalSegmentCount,\n 0x062 /* \"Mismatch in totalSegmentCount\" */);\n\n if (chunk1.segmentCount === chunk1.headerMetadata!.totalSegmentCount) {\n return;\n }\n const segs: ISegment[] = [];\n let lengthSofar = chunk1.length;\n for (let chunkIndex = 1; chunkIndex < chunk1.headerMetadata!.orderedChunkMetadata.length; chunkIndex++) {\n const chunk = await SnapshotV1.loadChunk(\n services,\n chunk1.headerMetadata!.orderedChunkMetadata[chunkIndex].id,\n this.logger,\n this.mergeTree.options,\n this.serializer);\n lengthSofar += chunk.length;\n // Deserialize each chunk segment and append it to the end of the MergeTree.\n segs.push(...chunk.segments.map(this.specToSegment));\n }\n assert(\n lengthSofar === chunk1.headerMetadata!.totalLength,\n 0x063 /* \"Mismatch in totalLength\" */);\n\n assert(\n chunk1.segmentCount + segs.length === chunk1.headerMetadata!.totalSegmentCount,\n 0x064 /* \"Mismatch in totalSegmentCount\" */);\n\n // Helper to insert segments at the end of the MergeTree.\n const mergeTree = this.mergeTree;\n const append = (segments: ISegment[], cli: number, seq: number) => {\n mergeTree.insertSegments(\n mergeTree.root.cachedLength,\n segments,\n /* refSeq: */ UniversalSequenceNumber,\n cli,\n seq,\n undefined);\n };\n\n // Helpers to batch-insert segments that are below the min seq\n const batch: ISegment[] = [];\n const flushBatch = () => {\n if (batch.length > 0) { append(batch, NonCollabClient, UniversalSequenceNumber); }\n };\n\n for (const seg of segs) {\n const cli = seg.clientId;\n const seq = seg.seq;\n\n // If the segment can be batch inserted, add it to the 'batch' array. Otherwise, flush\n // any batched segments and then insert the current segment individually.\n if (cli === NonCollabClient && seq === UniversalSequenceNumber) {\n batch.push(seg);\n } else {\n flushBatch();\n append([seg], cli, seq!);\n }\n }\n\n flushBatch();\n }\n\n /**\n * If loading from a snapshot, get the catchup messages.\n * @param rawMessages - The messages in original encoding\n * @returns The decoded messages, but handles aren't parsed. Matches the format that will be passed in\n * SharedObject.processCore.\n */\n private async loadCatchupOps(rawMessages: Promise<ArrayBufferLike>): Promise<ISequencedDocumentMessage[]> {\n return JSON.parse(bufferToString(await rawMessages, \"utf8\")) as ISequencedDocumentMessage[];\n }\n}\n"]}
|
package/lib/mergeTree.d.ts
CHANGED
|
@@ -394,6 +394,10 @@ export declare class MergeTree {
|
|
|
394
394
|
private ensureIntervalBoundary;
|
|
395
395
|
private breakTie;
|
|
396
396
|
private leftExcursion;
|
|
397
|
+
/**
|
|
398
|
+
* Visit segments starting from node's right siblings, then up to node's parent.
|
|
399
|
+
* All segments past `node` are visited, regardless of their visibility.
|
|
400
|
+
*/
|
|
397
401
|
private rightExcursion;
|
|
398
402
|
private insertingWalk;
|
|
399
403
|
private split;
|
package/lib/mergeTree.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeTree.d.ts","sourceRoot":"","sources":["../src/mergeTree.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mergeTree.d.ts","sourceRoot":"","sources":["../src/mergeTree.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EACH,QAAQ,EAER,IAAI,EAEJ,KAAK,EACR,MAAM,eAAe,CAAC;AAQvB,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EACH,qBAAqB,EAErB,sBAAsB,EACtB,4BAA4B,EAE/B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EACH,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,iBAAiB,EAEjB,aAAa,EAChB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAKH,OAAO,EAEP,WAAW,EACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAEH,aAAa,EACb,iBAAiB,EAOnB,MAAM,sBAAsB,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,WAAW,gBAAgB;IAC7B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,IAAI,IAAI,IAAI,QAAQ,CAAC;CAC9B;AAED,oBAAY,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;AAGhD,MAAM,WAAW,WAAY,SAAQ,gBAAgB;IACjD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACxC,SAAS,IAAI,UAAU,GAAG,SAAS,CAAC;IACpC,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7E,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtD;AAED,MAAM,WAAW,UAAW,SAAQ,WAAW;IAC3C,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1C,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAChE,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC3C,aAAa,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC1C,WAAW,EAAE,aAAa,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC9B;AACD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAMhG;AAED;;GAEG;AACH,MAAM,WAAW,QAAS,SAAQ,gBAAgB,EAAE,OAAO,CAAC,YAAY,CAAC;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAC;IAC/C,QAAQ,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;IACrD,eAAe,CAAC,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,wBAAwB,CAAC;IACrC,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,aAAa,CACT,QAAQ,EAAE,WAAW,EACrB,EAAE,CAAC,EAAE,YAAY,EACjB,GAAG,CAAC,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,mBAAmB,GACnC,WAAW,GAAG,SAAS,CAAC;IAC3B,KAAK,IAAI,QAAQ,CAAC;IAClB,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC;IACtC,MAAM,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAC;IAChC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC3C,YAAY,IAAI,GAAG,CAAC;IACpB;;;;;;;;;;OAUG;IACH,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC;CACjG;AAED,MAAM,WAAW,qBAAqB;IAElC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc,CAAC,WAAW;IAEvC,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAC5E,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC;CACjD;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,cAAc,CAAC,EAAE,QAAQ,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW,CAAC,WAAW;IAEpC,CACI,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,KAAK,EAAE,WAAW,GACnB,OAAO,CAAC;CACd;AAED,MAAM,WAAW,UAAU,CAAC,WAAW;IAEnC,CACI,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,UAAU,EAAE,WAAW,GACxB,OAAO,CAAC;CACd;AAED,MAAM,WAAW,wBAAwB,CAAC,QAAQ;IAC9C,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,mBAAmB,CAAC,QAAQ,CAAC,OAAE;CAC7D;AAED,MAAM,WAAW,sBAAsB,CAAC,QAAQ;IAC5C,CAAC,KAAK,EAAE,mBAAmB,CAAC,QAAQ,CAAC,OAAE;CAC1C;AAED,MAAM,WAAW,kBAAkB;IAC/B,KAAK,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACtD;AAED,MAAM,WAAW,aAAa;IAC1B,gBAAgB,CAAC,EAAE,QAAQ,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,KAAK,eAAe,CAAC;IACzF,iBAAiB,CAAC,EAAE,CAAC,iBAAiB,EAAE,WAAW,KAAK,OAAO,CAAC;CACnE;AAED,MAAM,WAAW,cAAc,CAAC,WAAW;IACvC,IAAI,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IACnC,GAAG,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,yBAAyB,CAAC,QAAQ;IAC/C,IAAI,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACzC,GAAG,CAAC,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,SAAU,YAAW,gBAAgB;IAC9C,KAAK,EAAE,MAAM,CAAK;IAClB,OAAO,EAAE,MAAM,CAAM;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,YAAY,EAAE,MAAM,CAAK;IAEzB,MAAM;CAGT;AAoHD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,YAQzC;AAMD,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,qBAAa,UAAW,SAAQ,SAAU,YAAW,WAAW;IAElC,UAAU,EAAE,MAAM;IADrC,QAAQ,EAAE,UAAU,EAAE,CAAC;gBACJ,UAAU,EAAE,MAAM;IAKrC,SAAS,IAAI,cAAc,GAAG,SAAS;IAIvC,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM;IAyB3C,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,UAAO;CAQ5E;AAED,cAAM,cAAe,SAAQ,UAAW,YAAW,WAAW;IACnD,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC3C,aAAa,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC1C,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBAE1C,UAAU,EAAE,MAAM;IAOvB,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU;IAKxD,SAAS;IAIT,YAAY,CAAC,WAAW,EAAE,MAAM;CAc1C;AASD,8BAAsB,WAAY,SAAQ,SAAU,YAAW,QAAQ;IAC5D,QAAQ,EAAE,MAAM,CAAiB;IACjC,GAAG,EAAE,MAAM,CAA2B;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,SAAgB,aAAa,EAAE,sBAAsB,CAAoC;IACzF,SAAgB,kBAAkB,EAAE,uBAAuB,CAAqC;IACzF,eAAe,CAAC,EAAE,iBAAiB,CAAC;IACpC,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,SAAS,CAAC,EAAE,wBAAwB,CAAC;IAC5C,kBAAyB,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,mBAAmB;IAgBxG,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIjC,MAAM;IAIb,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ;IAUxB,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO;IAI5C,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,YAAY;aAM/B,YAAY,IAAI,GAAG;IAE5B,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO;IAgC7F,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IA4BjD,OAAO,CAAC,gBAAgB;aAaR,KAAK,IAAI,QAAQ;aACjB,MAAM,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAC/C,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;CAChF;AAED,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,eAAO,MAAM,2BAA2B,qBAAqB,CAAC;AAE9D,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACpD,MAAM,EAAE,UAAU,CAAC;CACtB;AAED,qBAAa,MAAO,SAAQ,WAAY,YAAW,iBAAiB;IAgB7C,OAAO,EAAE,aAAa;IAfzC,gBAAuB,IAAI,YAAY;WACzB,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,IAAI,MAAM;IAGtD,SAAgB,IAAI,YAAe;WAErB,IAAI,CACd,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,WAAW;gBAQ5B,OAAO,EAAE,aAAa;IAKzC,YAAY;IAMZ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG;IAS/B,KAAK;IAML,UAAU;IAIV,SAAS;IAIT,aAAa,CAAC,cAAc,EAAE,MAAM;IAKpC,aAAa;IAIb,KAAK,IAAI,MAAM,GAAG,SAAS;IAM3B;;OAEG;IACH,aAAa;IAGb;;OAEG;IACH,cAAc;IAGd;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAGpC;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAGrC;;OAEG;IACH,aAAa,IAAI,MAAM,EAAE,GAAG,SAAS;IAGrC;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE,GAAG,SAAS;IAItC,QAAQ;IAoER,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,MAAM;IAI1C,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO;IAIrC,MAAM;CACT;AAED,oBAAY,iBAAiB;IACzB,EAAE,IAAA;IACF,IAAI,IAAA;IACJ,KAAK,IAAA;CACR;AAED,qBAAa,mBAAmB,CAAC,QAAQ;IAG1B,KAAK,EAAE,WAAW;IAClB,OAAO,EAAE,yBAAyB,CAAC,QAAQ,CAAC;IAC5C,GAAG,EAAE,MAAM;IACX,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,QAAQ;IACjB,KAAK,EAAE,MAAM;IACb,GAAG,EAAE,MAAM;IACX,UAAU;IAVrB,EAAE,oBAAwB;gBAEf,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,yBAAyB,CAAC,QAAQ,CAAC,EAC5C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,UAAU,SAAI;CAG5B;AAED,qBAAa,mBAAmB;IAC5B,QAAQ,SAAiB;IACzB,aAAa,UAAS;IAEtB,MAAM,SAAK;IAGX,UAAU,SAAK;IAEf,QAAQ,SAAK;IAEb,QAAQ,CAAC,CAAC,EAAE,mBAAmB;CAMlC;AAED,eAAO,MAAM,cAAc,MAAO,MAAM,KAAK,MAAM,WAAU,CAAC;AAE9D,eAAO,MAAM,cAAc,MAAO,MAAM,KAAK,MAAM,WAAuB,CAAC;AAG3E,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,UAQvC;AAED,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,SAAS;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,SAAS,CAGjD,CAAC;AAEF,MAAM,WAAW,UAAU;IACvB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAClB;AAOD,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,EAAE,QAAQ,EAAE,CAAC;CACxB;AAmGD,MAAM,WAAW,WAAW;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAOD,oBAAY,oBAAoB,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,cAAc,CAAC;AAGlE,qBAAa,SAAS;IAyBQ,OAAO,CAAC;IAxBlC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAK;IACpD,gBAAuB,OAAO;;;;MAI5B;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAqB;IACnE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAmC;IAE5E,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwD;IAC3F,SAAgB,YAAY,sBAA6B;IAClD,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;IACvD,OAAO,CAAC,eAAe,CAA+B;IAItD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+B;IAC3D,OAAO,CAAC,eAAe,CAAgC;IAChD,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD,4BAA4B,CAAC,EAAE,4BAA4B,CAAC;gBAGzC,OAAO,CAAC,yBAAa;IAI/C,OAAO,CAAC,SAAS;IAMV,KAAK;IAML,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE;IAmB3D,OAAO,CAAC,YAAY;IAKb,cAAc,CAAC,OAAO,EAAE,QAAQ;IAUhC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ;IAInD,OAAO,CAAC,OAAO;IAOR,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE;IAiDvC,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAUnF,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,SAAS;IAyEjB,OAAO,CAAC,UAAU;IAkDlB,OAAO,CAAC,eAAe;IAwChB,eAAe;IAIf,QAAQ;IA8CR,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAIjD;;OAEG;IACH,IAAW,MAAM,WAAqC;IAE/C,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAmB7D,oBAAoB,CAAC,CAAC,SAAS,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;IAa7F,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,UAAU;IAmDX,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;IAQ/E,OAAO,CAAC,qBAAqB;IAUtB,SAAS,CAAC,MAAM,EAAE,MAAM;IAkBxB,gCAAgC,CACnC,MAAM,EAAE,iBAAiB,EACzB,MAAM,SAA+B,EACrC,QAAQ,SAA6B;IASlC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;IAazE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,UAAO;;;;IA4B7F,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,WAAW;IAuCnB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,mBAAmB;IAoC3B,OAAO,CAAC,UAAU;IAWlB;;;OAGG;IACI,iBAAiB,CAAC,MAAM,EAAE,qBAAqB;IAuCtD,OAAO,CAAC,gBAAgB;IAYjB,eAAe,CAAC,EAAE,EAAE,MAAM;IAIjC;;;;;;OAMG;IACI,kBAAkB,CACrB,WAAW,EAAE,iBAAiB,EAC9B,MAAM,SAA+B,EACrC,QAAQ,SAA6B;IAsBlC,cAAc,CACjB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,QAAQ,EAAE,EACpB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,qBAAqB,GAAG,SAAS;IAwBtC,yBAAyB,CAC5B,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,QAAQ,EACvB,MAAM,EAAE,qBAAqB,GAC9B,IAAI;IA8GP;;;;;;;;;;;;;OAaG;IACI,2BAA2B,CAC9B,oBAAoB,EAAE,MAAM,EAC5B,kBAAkB,EAAE,MAAM,EAC1B,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAuB/C,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,WAAW;IAqFnB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAe/B;IAEF,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,QAAQ;IAmBhB,OAAO,CAAC,aAAa;IA+BrB;;;OAGG;IACH,OAAO,CAAC,cAAc;IA8BtB,OAAO,CAAC,aAAa;IAsGrB,OAAO,CAAC,KAAK;IAeb,OAAO,CAAC,kBAAkB;IAU1B;;;;;;;;;;OAUG;IACI,aAAa,CAChB,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,EACrG,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB;IAwCzD,gBAAgB,CACnB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,SAAS,qBAAQ,EACjB,MAAM,EAAE,qBAAqB;IA2GjC,OAAO,CAAC,4BAA4B;IAO7B,4BAA4B,CAAC,IAAI,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,SAAS;IAWpF,4BAA4B,CAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,GAAG,SAAS,EAC9F,MAAM,EAAE,MAAM,GACf,iBAAiB;IAWpB;;OAEG;IACI,oBAAoB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc;IAUnE;;OAEG;IACI,iBAAiB,CAAC,IAAI,EAAE,cAAc;IAY7C,OAAO,CAAC,WAAW;IAqBnB,OAAO,CAAC,sBAAsB;IAiB9B,OAAO,CAAC,iBAAiB;IAmBlB,GAAG,CAAC,WAAW,EAClB,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,EACpC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,WAAW;IAMf,QAAQ,CAAC,WAAW,EACvB,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,EACpC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,WAAW,EAClB,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,EACZ,UAAU,GAAE,OAAe;IAaxB,mBAAmB,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IA8CrF,OAAO,CAAC,OAAO;IAuDR,eAAe,CAAC,WAAW,EAC9B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,WAAW,KAAK,OAAO,EAC3D,KAAK,CAAC,EAAE,WAAW,GACpB,OAAO;IAaV,OAAO,CAAC,cAAc;CAuBzB"}
|
package/lib/mergeTree.js
CHANGED
|
@@ -1481,7 +1481,7 @@ export class MergeTree {
|
|
|
1481
1481
|
}
|
|
1482
1482
|
blockInsert(pos, refSeq, clientId, seq, localSeq, newSegments) {
|
|
1483
1483
|
let segIsLocal = false;
|
|
1484
|
-
const checkSegmentIsLocal = (segment
|
|
1484
|
+
const checkSegmentIsLocal = (segment) => {
|
|
1485
1485
|
if (segment.seq === UnassignedSequenceNumber) {
|
|
1486
1486
|
segIsLocal = true;
|
|
1487
1487
|
}
|
|
@@ -1606,9 +1606,11 @@ export class MergeTree {
|
|
|
1606
1606
|
parent = parent.parent;
|
|
1607
1607
|
}
|
|
1608
1608
|
}
|
|
1609
|
-
|
|
1609
|
+
/**
|
|
1610
|
+
* Visit segments starting from node's right siblings, then up to node's parent.
|
|
1611
|
+
* All segments past `node` are visited, regardless of their visibility.
|
|
1612
|
+
*/
|
|
1610
1613
|
rightExcursion(node, leafAction) {
|
|
1611
|
-
const actions = { leaf: leafAction };
|
|
1612
1614
|
let go = true;
|
|
1613
1615
|
let startNode = node;
|
|
1614
1616
|
let parent = startNode.parent;
|
|
@@ -1622,10 +1624,10 @@ export class MergeTree {
|
|
|
1622
1624
|
if (matchedStart) {
|
|
1623
1625
|
if (!_node.isLeaf()) {
|
|
1624
1626
|
const childBlock = _node;
|
|
1625
|
-
go = this.
|
|
1627
|
+
go = this.walkAllSegments(childBlock, leafAction);
|
|
1626
1628
|
}
|
|
1627
1629
|
else {
|
|
1628
|
-
go = leafAction(_node
|
|
1630
|
+
go = leafAction(_node);
|
|
1629
1631
|
}
|
|
1630
1632
|
if (!go) {
|
|
1631
1633
|
return;
|