@fluidframework/id-compressor 3.1.0 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/api-report/id-compressor.legacy.beta.api.md +0 -49
- package/dist/idCompressor.d.ts +69 -19
- package/dist/idCompressor.d.ts.map +1 -1
- package/dist/idCompressor.js +365 -57
- package/dist/idCompressor.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/legacy.d.ts +1 -12
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/test/idCompressor.perf.spec.js.map +1 -1
- package/dist/test/idCompressor.spec.js.map +1 -1
- package/dist/test/idCompressorTestUtilities.d.ts.map +1 -1
- package/dist/test/idCompressorTestUtilities.js +8 -3
- package/dist/test/idCompressorTestUtilities.js.map +1 -1
- package/dist/test/sharding.fuzz.spec.d.ts +6 -0
- package/dist/test/sharding.fuzz.spec.d.ts.map +1 -0
- package/dist/test/sharding.fuzz.spec.js.map +1 -0
- package/dist/test/sharding.spec.d.ts +6 -0
- package/dist/test/sharding.spec.d.ts.map +1 -0
- package/dist/test/sharding.spec.js.map +1 -0
- package/dist/test/snapshots/summary.spec.js.map +1 -1
- package/dist/test/types/validateIdCompressorPrevious.generated.js.map +1 -1
- package/dist/types/idCompressor.d.ts +108 -2
- package/dist/types/idCompressor.d.ts.map +1 -1
- package/dist/types/idCompressor.js +15 -0
- package/dist/types/idCompressor.js.map +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/persisted-types/0.0.1.d.ts +4 -4
- package/dist/types/persisted-types/0.0.1.js.map +1 -1
- package/dist/utilities.d.ts +1 -1
- package/dist/utilities.js +1 -1
- package/dist/utilities.js.map +1 -1
- package/lib/idCompressor.d.ts +69 -19
- package/lib/idCompressor.d.ts.map +1 -1
- package/lib/idCompressor.js +365 -57
- package/lib/idCompressor.js.map +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/legacy.d.ts +1 -12
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/test/idCompressor.perf.spec.js.map +1 -1
- package/lib/test/idCompressor.spec.js.map +1 -1
- package/lib/test/idCompressorTestUtilities.d.ts.map +1 -1
- package/lib/test/idCompressorTestUtilities.js +8 -3
- package/lib/test/idCompressorTestUtilities.js.map +1 -1
- package/lib/test/sharding.fuzz.spec.d.ts +6 -0
- package/lib/test/sharding.fuzz.spec.d.ts.map +1 -0
- package/lib/test/sharding.fuzz.spec.js.map +1 -0
- package/lib/test/sharding.spec.d.ts +6 -0
- package/lib/test/sharding.spec.d.ts.map +1 -0
- package/lib/test/sharding.spec.js.map +1 -0
- package/lib/test/snapshots/summary.spec.js.map +1 -1
- package/lib/test/types/validateIdCompressorPrevious.generated.js.map +1 -1
- package/lib/types/idCompressor.d.ts +108 -2
- package/lib/types/idCompressor.d.ts.map +1 -1
- package/lib/types/idCompressor.js +14 -1
- package/lib/types/idCompressor.js.map +1 -1
- package/lib/types/index.d.ts +2 -1
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js +1 -1
- package/lib/types/index.js.map +1 -1
- package/lib/types/persisted-types/0.0.1.d.ts +4 -4
- package/lib/types/persisted-types/0.0.1.js.map +1 -1
- package/lib/utilities.d.ts +1 -1
- package/lib/utilities.js +1 -1
- package/lib/utilities.js.map +1 -1
- package/package.json +42 -9
- package/src/idCompressor.ts +497 -73
- package/src/index.ts +3 -0
- package/src/packageVersion.ts +1 -1
- package/src/test/idCompressorTestUtilities.ts +16 -3
- package/src/test/snapshots/v2/compressor-with-finalized-range-from-one-client +1 -0
- package/src/test/snapshots/v2/compressor-with-finalized-range-from-one-client-client2 +1 -0
- package/src/test/snapshots/v2/compressors-with-finalized-ranges-from-two-clients +1 -0
- package/src/test/snapshots/v2/compressors-with-finalized-ranges-from-two-clients-client2 +1 -0
- package/src/test/snapshots/v2/empty-compressor-summary +1 -0
- package/src/test/snapshots/v2/expansion-semantics +1 -0
- package/src/test/snapshots/v2/expansion-semantics-client2 +1 -0
- package/src/test/snapshots/v3/compressor-with-finalized-range-from-one-client +1 -0
- package/src/test/snapshots/v3/compressor-with-finalized-range-from-one-client-client2 +1 -0
- package/src/test/snapshots/v3/compressors-with-finalized-ranges-from-two-clients +1 -0
- package/src/test/snapshots/v3/compressors-with-finalized-ranges-from-two-clients-client2 +1 -0
- package/src/test/snapshots/v3/empty-compressor-summary +1 -0
- package/src/test/snapshots/v3/expansion-semantics +1 -0
- package/src/test/snapshots/v3/expansion-semantics-client2 +1 -0
- package/src/test/types/validateIdCompressorPrevious.generated.ts +13 -1
- package/src/types/idCompressor.ts +119 -2
- package/src/types/index.ts +10 -1
- package/src/types/persisted-types/0.0.1.ts +4 -4
- package/src/utilities.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @fluidframework/id-compressor
|
|
2
2
|
|
|
3
|
+
## 3.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Remove legacy direct ID compressor lifecycle APIs ([#27559](https://github.com/microsoft/FluidFramework/pull/27559)) [bee7b1ad621](https://github.com/microsoft/FluidFramework/commit/bee7b1ad621413db8ce9bcb7424dec1ebbfb199f)
|
|
8
|
+
|
|
9
|
+
The legacy-beta entrypoint no longer exports `createIdCompressor`, `deserializeIdCompressor`,
|
|
10
|
+
`serializeIdCompressor`, `createSessionId`, `IdCreationRange`, or the
|
|
11
|
+
`SerializedIdCompressor*` types. These APIs expose Fluid runtime implementation and persistence
|
|
12
|
+
details and are now internal. `IIdCompressor` and its compressed ID types remain available.
|
|
13
|
+
|
|
14
|
+
## 3.2.0
|
|
15
|
+
|
|
16
|
+
Dependency updates only.
|
|
17
|
+
|
|
3
18
|
## 3.1.0
|
|
4
19
|
|
|
5
20
|
Dependency updates only.
|
|
@@ -4,34 +4,6 @@
|
|
|
4
4
|
|
|
5
5
|
```ts
|
|
6
6
|
|
|
7
|
-
// @beta @legacy
|
|
8
|
-
export function createIdCompressor(logger?: ITelemetryBaseLogger): IIdCompressor;
|
|
9
|
-
|
|
10
|
-
// @beta @legacy
|
|
11
|
-
export function createIdCompressor(sessionId: SessionId, logger?: ITelemetryBaseLogger): IIdCompressor;
|
|
12
|
-
|
|
13
|
-
// @beta @legacy
|
|
14
|
-
export function createSessionId(): SessionId;
|
|
15
|
-
|
|
16
|
-
// @beta @legacy
|
|
17
|
-
export function deserializeIdCompressor(serialized: SerializedIdCompressorWithOngoingSession, logger?: ITelemetryLoggerExt): IIdCompressor;
|
|
18
|
-
|
|
19
|
-
// @beta @legacy
|
|
20
|
-
export function deserializeIdCompressor(serialized: SerializedIdCompressorWithNoSession, newSessionId: SessionId, logger?: ITelemetryLoggerExt): IIdCompressor;
|
|
21
|
-
|
|
22
|
-
// @beta @legacy
|
|
23
|
-
export interface IdCreationRange {
|
|
24
|
-
// (undocumented)
|
|
25
|
-
readonly ids?: {
|
|
26
|
-
readonly firstGenCount: number;
|
|
27
|
-
readonly count: number;
|
|
28
|
-
readonly requestedClusterSize: number;
|
|
29
|
-
readonly localIdRanges: [genCount: number, count: number][];
|
|
30
|
-
};
|
|
31
|
-
// (undocumented)
|
|
32
|
-
readonly sessionId: SessionId;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
7
|
// @public @sealed
|
|
36
8
|
export interface IIdCompressor {
|
|
37
9
|
decompress(id: SessionSpaceCompressedId): StableId;
|
|
@@ -50,27 +22,6 @@ export type OpSpaceCompressedId = number & {
|
|
|
50
22
|
readonly OpNormalized: "9209432d-a959-4df7-b2ad-767ead4dbcae";
|
|
51
23
|
};
|
|
52
24
|
|
|
53
|
-
// @beta @legacy
|
|
54
|
-
export type SerializedIdCompressor = string & {
|
|
55
|
-
readonly _serializedIdCompressor: "8c73c57c-1cf4-4278-8915-6444cb4f6af5";
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
// @beta @legacy
|
|
59
|
-
export type SerializedIdCompressorWithNoSession = SerializedIdCompressor & {
|
|
60
|
-
readonly _noLocalState: "3aa2e1e8-cc28-4ea7-bc1a-a11dc3f26dfb";
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
// @beta @legacy
|
|
64
|
-
export type SerializedIdCompressorWithOngoingSession = SerializedIdCompressor & {
|
|
65
|
-
readonly _hasLocalState: "1281acae-6d14-47e7-bc92-71c8ee0819cb";
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
// @beta @legacy
|
|
69
|
-
export function serializeIdCompressor(compressor: IIdCompressor, withSession: true): SerializedIdCompressorWithOngoingSession;
|
|
70
|
-
|
|
71
|
-
// @beta @legacy
|
|
72
|
-
export function serializeIdCompressor(compressor: IIdCompressor, withSession: false): SerializedIdCompressorWithNoSession;
|
|
73
|
-
|
|
74
25
|
// @public
|
|
75
26
|
export type SessionId = StableId & {
|
|
76
27
|
readonly SessionId: "4498f850-e14e-4be9-8db0-89ec00997e58";
|
package/dist/idCompressor.d.ts
CHANGED
|
@@ -5,14 +5,20 @@
|
|
|
5
5
|
import type { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
6
6
|
import type { TelemetryLoggerExt } from "@fluidframework/telemetry-utils/internal";
|
|
7
7
|
import type { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils/legacy";
|
|
8
|
-
import { type Index } from "./persistanceUtilities.js";
|
|
9
8
|
import { Sessions } from "./sessions.js";
|
|
10
|
-
import type { IIdCompressor, IIdCompressorCore, IdCreationRange, OpSpaceCompressedId, SerializedIdCompressorWithNoSession, SerializedIdCompressorWithOngoingSession, SessionId, SessionSpaceCompressedId, StableId } from "./types/index.js";
|
|
9
|
+
import type { IIdCompressor, IIdCompressorCore, IdCreationRange, OpSpaceCompressedId, SerializedIdCompressorWithNoSession, SerializedIdCompressorWithOngoingSession, SessionId, SessionSpaceCompressedId, StableId, ShardSynchronizationToken } from "./types/index.js";
|
|
10
|
+
import { SerializationVersion } from "./types/index.js";
|
|
11
11
|
/**
|
|
12
12
|
* See {@link IIdCompressor} and {@link IIdCompressorCore}
|
|
13
13
|
*/
|
|
14
14
|
export declare class IdCompressor implements IIdCompressor, IIdCompressorCore {
|
|
15
15
|
private readonly logger;
|
|
16
|
+
/**
|
|
17
|
+
* The version this compressor will write out.
|
|
18
|
+
* This applies to both `serialize` and creation range functions.
|
|
19
|
+
* This number also determines what features are available (e.g. sharding support starts at V3).
|
|
20
|
+
*/
|
|
21
|
+
private readonly writeVersion;
|
|
16
22
|
/**
|
|
17
23
|
* Max allowed initial cluster size.
|
|
18
24
|
*/
|
|
@@ -21,9 +27,17 @@ export declare class IdCompressor implements IIdCompressor, IIdCompressorCore {
|
|
|
21
27
|
private readonly localSession;
|
|
22
28
|
private readonly normalizer;
|
|
23
29
|
private localGenCount;
|
|
30
|
+
/**
|
|
31
|
+
* The sharding state of this compressor, if it has been sharded or is a shard itself.
|
|
32
|
+
* When defined, this compressor operates in "sharding mode" where:
|
|
33
|
+
* - IDs are generated using stride-based allocation (no eager finals)
|
|
34
|
+
* - The normalizer backfills all IDs in each stride cycle
|
|
35
|
+
* - Normal operation resumes when all children are disposed
|
|
36
|
+
*/
|
|
37
|
+
private shardingState?;
|
|
24
38
|
/**
|
|
25
39
|
* The gen count to be annotated on the range returned by the next call to `takeNextCreationRange`.
|
|
26
|
-
* This is advanced to `
|
|
40
|
+
* This is advanced to `localGenCount` + 1 each time it is called.
|
|
27
41
|
* On the other hand, when `resetUnfinalizedCreationRange` is called,
|
|
28
42
|
* this is moved back to the start of the unfinalized range, to ensure those IDs are included in the next range.
|
|
29
43
|
*/
|
|
@@ -40,7 +54,13 @@ export declare class IdCompressor implements IIdCompressor, IIdCompressorCore {
|
|
|
40
54
|
private telemetryLocalIdCount;
|
|
41
55
|
private telemetryEagerFinalIdCount;
|
|
42
56
|
private ongoingGhostSession?;
|
|
43
|
-
constructor(localSessionIdOrDeserialized: SessionId | Sessions, logger: TelemetryLoggerExt | undefined
|
|
57
|
+
constructor(localSessionIdOrDeserialized: SessionId | Sessions, logger: TelemetryLoggerExt | undefined,
|
|
58
|
+
/**
|
|
59
|
+
* The version this compressor will write out.
|
|
60
|
+
* This applies to both `serialize` and creation range functions.
|
|
61
|
+
* This number also determines what features are available (e.g. sharding support starts at V3).
|
|
62
|
+
*/
|
|
63
|
+
writeVersion: SerializationVersion);
|
|
44
64
|
generateCompressedId(): SessionSpaceCompressedId;
|
|
45
65
|
generateDocumentUniqueId(): (SessionSpaceCompressedId & OpSpaceCompressedId) | StableId;
|
|
46
66
|
/**
|
|
@@ -52,6 +72,28 @@ export declare class IdCompressor implements IIdCompressor, IIdCompressorCore {
|
|
|
52
72
|
* {@inheritdoc IIdCompressorCore.beginGhostSession}
|
|
53
73
|
*/
|
|
54
74
|
beginGhostSession(ghostSessionId: SessionId, ghostSessionCallback: () => void): void;
|
|
75
|
+
/**
|
|
76
|
+
* {@inheritdoc IIdCompressorCore.shard}
|
|
77
|
+
*/
|
|
78
|
+
shard(newShardCount: number): SerializedIdCompressorWithOngoingSession[];
|
|
79
|
+
/**
|
|
80
|
+
* {@inheritdoc IIdCompressorCore.synchronizeWithShard}
|
|
81
|
+
*/
|
|
82
|
+
synchronizeWithShard(syncToken: ShardSynchronizationToken): void;
|
|
83
|
+
private synchronizeChild;
|
|
84
|
+
/**
|
|
85
|
+
* {@inheritdoc IIdCompressorCore.dispose}
|
|
86
|
+
*/
|
|
87
|
+
disposeShard(): ShardSynchronizationToken | undefined;
|
|
88
|
+
/**
|
|
89
|
+
* {@inheritdoc IIdCompressorCore.getShardSyncToken}
|
|
90
|
+
*/
|
|
91
|
+
getShardSyncToken(): ShardSynchronizationToken | undefined;
|
|
92
|
+
/**
|
|
93
|
+
* Builds a token describing this shard's current progress.
|
|
94
|
+
* @param disposed - Whether the token also signals disposal (reclamation of this shard's ID space).
|
|
95
|
+
*/
|
|
96
|
+
private makeShardToken;
|
|
55
97
|
private generateNextLocalId;
|
|
56
98
|
takeNextCreationRange(): IdCreationRange;
|
|
57
99
|
takeUnfinalizedCreationRange(): IdCreationRange;
|
|
@@ -70,47 +112,55 @@ export declare class IdCompressor implements IIdCompressor, IIdCompressorCore {
|
|
|
70
112
|
serialize(withSession: false): SerializedIdCompressorWithNoSession;
|
|
71
113
|
static deserialize(params: {
|
|
72
114
|
serialized: SerializedIdCompressorWithOngoingSession;
|
|
115
|
+
requestedWriteVersion: SerializationVersion;
|
|
73
116
|
logger?: TelemetryLoggerExt | undefined;
|
|
74
117
|
newSessionId?: never;
|
|
75
118
|
} | {
|
|
76
119
|
serialized: SerializedIdCompressorWithNoSession;
|
|
77
120
|
newSessionId: SessionId;
|
|
121
|
+
requestedWriteVersion: SerializationVersion;
|
|
78
122
|
logger?: TelemetryLoggerExt | undefined;
|
|
79
123
|
}): IdCompressor;
|
|
80
|
-
static deserialize2_0(index: Index, sessionId: SessionId | undefined, logger: TelemetryLoggerExt | undefined): IdCompressor;
|
|
81
124
|
equals(other: IdCompressor, includeLocalState: boolean): boolean;
|
|
82
125
|
}
|
|
83
126
|
/**
|
|
84
127
|
* Create a new {@link IIdCompressor}.
|
|
85
|
-
*
|
|
86
|
-
* @
|
|
128
|
+
* @param writeVersion - The version the compressor will write when serializing. Use SerializationVersion.V2 for base format, or SerializationVersion.V3 for sharding support.
|
|
129
|
+
* @param logger - Optional telemetry logger.
|
|
130
|
+
* @internal
|
|
87
131
|
*/
|
|
88
|
-
export declare function createIdCompressor(logger?: ITelemetryBaseLogger): IIdCompressor;
|
|
132
|
+
export declare function createIdCompressor(writeVersion: SerializationVersion, logger?: ITelemetryBaseLogger): IIdCompressor & IIdCompressorCore;
|
|
89
133
|
/**
|
|
90
134
|
* Create a new {@link IIdCompressor}.
|
|
91
135
|
* @param sessionId - The seed ID for the compressor.
|
|
92
|
-
*
|
|
93
|
-
* @
|
|
136
|
+
* @param writeVersion - The version the compressor will write when serializing. Use SerializationVersion.V2 for base format, or SerializationVersion.V3 for sharding support.
|
|
137
|
+
* @param logger - Optional telemetry logger.
|
|
138
|
+
* @internal
|
|
94
139
|
*/
|
|
95
|
-
export declare function createIdCompressor(sessionId: SessionId, logger?: ITelemetryBaseLogger): IIdCompressor;
|
|
140
|
+
export declare function createIdCompressor(sessionId: SessionId, writeVersion: SerializationVersion, logger?: ITelemetryBaseLogger): IIdCompressor & IIdCompressorCore;
|
|
96
141
|
/**
|
|
97
142
|
* Deserializes the supplied state into an ID compressor.
|
|
98
|
-
*
|
|
99
|
-
* @
|
|
143
|
+
* @param serialized - The serialized compressor state with an ongoing session.
|
|
144
|
+
* @param writeVersion - The version the compressor will write when serializing. This determines what features are available (e.g., V3 enables sharding support).
|
|
145
|
+
* @param logger - Optional telemetry logger.
|
|
146
|
+
* @internal
|
|
100
147
|
*/
|
|
101
|
-
export declare function deserializeIdCompressor(serialized: SerializedIdCompressorWithOngoingSession, logger?: ITelemetryLoggerExt): IIdCompressor;
|
|
148
|
+
export declare function deserializeIdCompressor(serialized: SerializedIdCompressorWithOngoingSession, writeVersion: SerializationVersion, logger?: ITelemetryLoggerExt): IIdCompressor & IIdCompressorCore;
|
|
102
149
|
/**
|
|
103
150
|
* Deserializes the supplied state into an ID compressor.
|
|
104
|
-
*
|
|
105
|
-
* @
|
|
151
|
+
* @param serialized - The serialized compressor state without a session.
|
|
152
|
+
* @param newSessionId - The session ID to use for the deserialized compressor.
|
|
153
|
+
* @param writeVersion - The version the compressor will write when serializing. This determines what features are available (e.g., V3 enables sharding support).
|
|
154
|
+
* @param logger - Optional telemetry logger.
|
|
155
|
+
* @internal
|
|
106
156
|
*/
|
|
107
|
-
export declare function deserializeIdCompressor(serialized: SerializedIdCompressorWithNoSession, newSessionId: SessionId, logger?: ITelemetryLoggerExt): IIdCompressor;
|
|
157
|
+
export declare function deserializeIdCompressor(serialized: SerializedIdCompressorWithNoSession, newSessionId: SessionId, writeVersion: SerializationVersion, logger?: ITelemetryLoggerExt): IIdCompressor & IIdCompressorCore;
|
|
108
158
|
/**
|
|
109
159
|
* Serializes an ID compressor.
|
|
110
160
|
* @param compressor - The compressor to serialize.
|
|
111
161
|
* @param withSession - If true, the serialized state will include local session
|
|
112
162
|
* state (for stashing). If false, only finalized state is included (for summaries).
|
|
113
|
-
* @
|
|
163
|
+
* @internal
|
|
114
164
|
*/
|
|
115
165
|
export declare function serializeIdCompressor(compressor: IIdCompressor, withSession: true): SerializedIdCompressorWithOngoingSession;
|
|
116
166
|
/**
|
|
@@ -118,7 +168,7 @@ export declare function serializeIdCompressor(compressor: IIdCompressor, withSes
|
|
|
118
168
|
* @param compressor - The compressor to serialize.
|
|
119
169
|
* @param withSession - If true, the serialized state will include local session
|
|
120
170
|
* state (for stashing). If false, only finalized state is included (for summaries).
|
|
121
|
-
* @
|
|
171
|
+
* @internal
|
|
122
172
|
*/
|
|
123
173
|
export declare function serializeIdCompressor(compressor: IIdCompressor, withSession: false): SerializedIdCompressorWithNoSession;
|
|
124
174
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idCompressor.d.ts","sourceRoot":"","sources":["../src/idCompressor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAE5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAOnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"idCompressor.d.ts","sourceRoot":"","sources":["../src/idCompressor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAE5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAOnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAmBlF,OAAO,EAGN,QAAQ,EAKR,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAEX,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EAEnB,mCAAmC,EACnC,wCAAwC,EACxC,SAAS,EACT,wBAAwB,EACxB,QAAQ,EACR,yBAAyB,EACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAoBxD;;GAEG;AACH,qBAAa,YAAa,YAAW,aAAa,EAAE,iBAAiB;IAyFnE,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY;IA9F9B;;OAEG;IACH,gBAAuB,cAAc,SAAW;IAIhD,SAAgB,cAAc,EAAE,SAAS,CAAC;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgC;IAE3D,OAAO,CAAC,aAAa,CAAK;IAE1B;;;;;;OAMG;IACH,OAAO,CAAC,aAAa,CAAC,CA6BT;IAMb;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAM/C;;;;;OAKG;IAEH,OAAO,CAAC,wBAAwB,CAAe;IAE/C,OAAO,CAAC,qBAAqB,CAAK;IAElC,OAAO,CAAC,0BAA0B,CAAK;IAEvC,OAAO,CAAC,mBAAmB,CAAC,CAAiE;gBAK5F,4BAA4B,EAAE,SAAS,GAAG,QAAQ,EACjC,MAAM,EAAE,kBAAkB,GAAG,SAAS;IACvD;;;;OAIG;IACc,YAAY,EAAE,oBAAoB;IAmB7C,oBAAoB,IAAI,wBAAwB;IAqDhD,wBAAwB,IAC5B,CAAC,wBAAwB,GAAG,mBAAmB,CAAC,GAChD,QAAQ;IAKX;;;OAGG;IACI,iBAAiB,CAAC,cAAc,EAAE,SAAS,GAAG,IAAI;IAKzD;;OAEG;IACI,iBAAiB,CAAC,cAAc,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,IAAI,GAAG,IAAI;IAY3F;;OAEG;IACI,KAAK,CAAC,aAAa,EAAE,MAAM,GAAG,wCAAwC,EAAE;IAwE/E;;OAEG;IACI,oBAAoB,CAAC,SAAS,EAAE,yBAAyB,GAAG,IAAI;IAYvE,OAAO,CAAC,gBAAgB;IAkDxB;;OAEG;IACI,YAAY,IAAI,yBAAyB,GAAG,SAAS;IAmB5D;;OAEG;IACI,iBAAiB,IAAI,yBAAyB,GAAG,SAAS;IAQjE;;;OAGG;IACH,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,mBAAmB;IAMpB,qBAAqB,IAAI,eAAe;IAkCxC,4BAA4B,IAAI,eAAe;IAK/C,6BAA6B,IAAI,IAAI;IAe5C,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAcxB,qBAAqB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IA0F1D,OAAO,CAAC,eAAe;IAkBhB,kBAAkB,CAAC,EAAE,EAAE,wBAAwB,GAAG,mBAAmB;IAerE,wCAAwC,CAC9C,EAAE,EAAE,mBAAmB,GACrB,wBAAwB,GAAG,SAAS;IA+BhC,uBAAuB,CAC7B,EAAE,EAAE,mBAAmB,EACvB,eAAe,EAAE,SAAS,GACxB,wBAAwB;IA4BpB,UAAU,CAAC,EAAE,EAAE,wBAAwB,GAAG,QAAQ;IAmClD,UAAU,CAAC,YAAY,EAAE,QAAQ,GAAG,wBAAwB;IAQ5D,aAAa,CAAC,YAAY,EAAE,QAAQ,GAAG,wBAAwB,GAAG,SAAS;IAwC3E,SAAS,CAAC,WAAW,EAAE,IAAI,GAAG,wCAAwC;IACtE,SAAS,CAAC,WAAW,EAAE,KAAK,GAAG,mCAAmC;WAsH3D,WAAW,CACxB,MAAM,EACH;QACA,UAAU,EAAE,wCAAwC,CAAC;QACrD,qBAAqB,EAAE,oBAAoB,CAAC;QAC5C,MAAM,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;QACxC,YAAY,CAAC,EAAE,KAAK,CAAC;KACpB,GACD;QACA,UAAU,EAAE,mCAAmC,CAAC;QAChD,YAAY,EAAE,SAAS,CAAC;QACxB,qBAAqB,EAAE,oBAAoB,CAAC;QAC5C,MAAM,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;KACvC,GACF,YAAY;IA0HR,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,OAAO,GAAG,OAAO;CA4CvE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CACjC,YAAY,EAAE,oBAAoB,EAClC,MAAM,CAAC,EAAE,oBAAoB,GAC3B,aAAa,GAAG,iBAAiB,CAAC;AACrC;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CACjC,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,oBAAoB,EAClC,MAAM,CAAC,EAAE,oBAAoB,GAC3B,aAAa,GAAG,iBAAiB,CAAC;AA8BrC;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACtC,UAAU,EAAE,wCAAwC,EACpD,YAAY,EAAE,oBAAoB,EAClC,MAAM,CAAC,EAAE,mBAAmB,GAC1B,aAAa,GAAG,iBAAiB,CAAC;AACrC;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACtC,UAAU,EAAE,mCAAmC,EAC/C,YAAY,EAAE,SAAS,EACvB,YAAY,EAAE,oBAAoB,EAClC,MAAM,CAAC,EAAE,mBAAmB,GAC1B,aAAa,GAAG,iBAAiB,CAAC;AA8DrC;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACpC,UAAU,EAAE,aAAa,EACzB,WAAW,EAAE,IAAI,GACf,wCAAwC,CAAC;AAC5C;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACpC,UAAU,EAAE,aAAa,EACzB,WAAW,EAAE,KAAK,GAChB,mCAAmC,CAAC;AASvC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CACrC,UAAU,EAAE,aAAa,GACvB,aAAa,GAAG,iBAAiB,CAMnC"}
|