@origintrail-official/dkg-core 10.0.11 → 10.0.13

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.
Files changed (63) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +29 -29
  3. package/dist/assertion-seal.js +46 -1
  4. package/dist/assertion-seal.js.map +1 -1
  5. package/dist/author-catalog-codec.d.ts +8 -20
  6. package/dist/author-catalog-codec.d.ts.map +1 -1
  7. package/dist/author-catalog-codec.js +33 -41
  8. package/dist/author-catalog-codec.js.map +1 -1
  9. package/dist/author-lane-scope-v1.d.ts +40 -0
  10. package/dist/author-lane-scope-v1.d.ts.map +1 -0
  11. package/dist/author-lane-scope-v1.js +168 -0
  12. package/dist/author-lane-scope-v1.js.map +1 -0
  13. package/dist/backpressure-observability.d.ts +273 -0
  14. package/dist/backpressure-observability.d.ts.map +1 -0
  15. package/dist/backpressure-observability.js +572 -0
  16. package/dist/backpressure-observability.js.map +1 -0
  17. package/dist/canonical-graph-scoped-author-seal.d.ts +2 -5
  18. package/dist/canonical-graph-scoped-author-seal.d.ts.map +1 -1
  19. package/dist/canonical-graph-scoped-author-seal.js +40 -32
  20. package/dist/canonical-graph-scoped-author-seal.js.map +1 -1
  21. package/dist/cg-shared-projection.d.ts.map +1 -1
  22. package/dist/cg-shared-projection.js +2 -10
  23. package/dist/cg-shared-projection.js.map +1 -1
  24. package/dist/genesis.js +15 -15
  25. package/dist/graph-knowledge-asset-metadata.js +106 -106
  26. package/dist/imported-artifact-metadata.js +31 -31
  27. package/dist/index.d.ts +5 -1
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +4 -0
  30. package/dist/index.js.map +1 -1
  31. package/dist/ka-bundle-v1.d.ts +2 -0
  32. package/dist/ka-bundle-v1.d.ts.map +1 -1
  33. package/dist/ka-bundle-v1.js +7 -2
  34. package/dist/ka-bundle-v1.js.map +1 -1
  35. package/dist/ka-content-scope.d.ts +27 -0
  36. package/dist/ka-content-scope.d.ts.map +1 -1
  37. package/dist/ka-content-scope.js +43 -1
  38. package/dist/ka-content-scope.js.map +1 -1
  39. package/dist/ka-ual-identity.d.ts +33 -0
  40. package/dist/ka-ual-identity.d.ts.map +1 -0
  41. package/dist/ka-ual-identity.js +89 -0
  42. package/dist/ka-ual-identity.js.map +1 -0
  43. package/dist/message-stream-pool.d.ts +15 -0
  44. package/dist/message-stream-pool.d.ts.map +1 -1
  45. package/dist/message-stream-pool.js +23 -0
  46. package/dist/message-stream-pool.js.map +1 -1
  47. package/dist/protocol-router.d.ts +18 -0
  48. package/dist/protocol-router.d.ts.map +1 -1
  49. package/dist/protocol-router.js +96 -1
  50. package/dist/protocol-router.js.map +1 -1
  51. package/dist/swm-author-inventory-v1.d.ts +83 -0
  52. package/dist/swm-author-inventory-v1.d.ts.map +1 -0
  53. package/dist/swm-author-inventory-v1.js +379 -0
  54. package/dist/swm-author-inventory-v1.js.map +1 -0
  55. package/dist/telemetry-api.d.ts +76 -0
  56. package/dist/telemetry-api.d.ts.map +1 -1
  57. package/dist/telemetry-api.js +101 -0
  58. package/dist/telemetry-api.js.map +1 -1
  59. package/dist/vm-update-convergence.d.ts +277 -0
  60. package/dist/vm-update-convergence.d.ts.map +1 -0
  61. package/dist/vm-update-convergence.js +715 -0
  62. package/dist/vm-update-convergence.js.map +1 -0
  63. package/package.json +2 -2
@@ -0,0 +1,273 @@
1
+ export type BackpressureState = 'healthy' | 'degraded' | 'saturated' | 'stalled';
2
+ export type SchedulerPressureOutcome = 'completed' | 'failed' | 'cancelled' | 'released';
3
+ /**
4
+ * How a scheduler's capacity is divided between its lanes.
5
+ *
6
+ * `partitioned` (the default): every lane owns a private allocation, declared
7
+ * in `lanes`, and fills independently of its neighbours —
8
+ * `StorePriorityScheduler`. Nothing validates the scheduler-level `queueLimit`
9
+ * against the lane allocations: a scheduler may publish their sum (the store
10
+ * scheduler does), or cap its total below what its lanes could hold between
11
+ * them, and `sumLaneLimits` falls back to the sum when no scheduler ceiling is
12
+ * published at all. So read a lane's own limit for lane pressure and the
13
+ * scheduler's for the rollup, and derive neither from the other.
14
+ *
15
+ * `shared`: every lane draws on ONE pool bounded by the scheduler-level
16
+ * `queueLimit`/`inflightLimit`. There is no private allocation to declare, so a
17
+ * lane's ceiling *is* the pool's ceiling, lane ceilings must never be summed,
18
+ * and the depth a lane's queued work is waiting behind is the pool's, not that
19
+ * lane's own share of it — `PriorityAdmissionQueue`.
20
+ */
21
+ export type SchedulerLaneCapacityModel = 'partitioned' | 'shared';
22
+ interface SchedulerPressureCapacityLimits {
23
+ queueLimit?: number | null;
24
+ inflightLimit?: number | null;
25
+ }
26
+ /**
27
+ * The two models are mutually exclusive at the type level rather than by
28
+ * convention: a shared pool has no private allocations, so it cannot carry
29
+ * `lanes`. Omitting `capacityModel` keeps the pre-existing `partitioned` shape,
30
+ * so every current caller is unaffected.
31
+ */
32
+ export type SchedulerPressureCapacity = (SchedulerPressureCapacityLimits & {
33
+ capacityModel?: 'partitioned';
34
+ /**
35
+ * Private per-lane allocations. Independent of the scheduler-level limits
36
+ * above — see {@link SchedulerLaneCapacityModel}; they are not summed and
37
+ * not validated against them.
38
+ */
39
+ lanes?: Record<string, {
40
+ queueLimit?: number | null;
41
+ inflightLimit?: number | null;
42
+ }>;
43
+ }) | (SchedulerPressureCapacityLimits & {
44
+ capacityModel: 'shared';
45
+ /** A shared pool has no private allocation to declare. */
46
+ lanes?: never;
47
+ });
48
+ export interface SchedulerPressureThresholds {
49
+ /** Queue age that turns otherwise-low utilization into degraded pressure. */
50
+ degradedQueueAgeMs?: number;
51
+ /** Active-work age that indicates an admitted operation may be stuck. */
52
+ stalledActiveAgeMs?: number;
53
+ /** Fraction of a bounded queue that marks a lane as degraded. */
54
+ degradedQueueUtilization?: number;
55
+ /** Keep a recent admission rejection visible as saturation for this long. */
56
+ rejectionStateWindowMs?: number;
57
+ }
58
+ export interface SchedulerPressureWork {
59
+ lane: string;
60
+ operation: string;
61
+ }
62
+ export interface SchedulerPressureTicket {
63
+ readonly id: number;
64
+ }
65
+ export interface BackpressureOperationSummary {
66
+ operation: string;
67
+ count: number;
68
+ oldestAgeMs: number;
69
+ }
70
+ export interface BackpressureLaneSnapshot {
71
+ lane: string;
72
+ state: BackpressureState;
73
+ /**
74
+ * How to read `queueLimit` on this row. Under `shared` it is the
75
+ * scheduler-wide pool this lane draws on rather than a private allocation —
76
+ * the same number on every lane, never to be summed.
77
+ *
78
+ * Optional so an existing hand-built `BackpressureSource` still satisfies
79
+ * this type; absent means `partitioned`. `SchedulerPressureTracker` always
80
+ * emits it.
81
+ */
82
+ capacityModel?: SchedulerLaneCapacityModel;
83
+ /** This lane's own backlog. The attribution signal: whose work is waiting. */
84
+ queued: number;
85
+ /**
86
+ * The depth `state` was actually classified against, and the numerator that
87
+ * goes with `queueLimit` — equal to `queued` for a private allocation, and
88
+ * the pool's whole depth for a shared one. Read this, not `queued`, to
89
+ * compute utilization, so a consumer never has to special-case the model.
90
+ *
91
+ * Optional for the same backward-compatibility reason as `capacityModel`;
92
+ * absent means `queued`.
93
+ */
94
+ pressureQueued?: number;
95
+ queueLimit: number | null;
96
+ /** This lane's own admitted work. The attribution signal, like `queued`. */
97
+ inflight: number;
98
+ /**
99
+ * The admitted count that goes with `inflightLimit`: this lane's own under a
100
+ * private allocation, and on a shared row **the pool's occupancy, always** —
101
+ * unlike `pressureQueued`, which falls back to the lane's own backlog where
102
+ * no depth was classified (an idle lane, or a pool with no ceiling). The
103
+ * asymmetry is deliberate: `pressureQueued` must equal the classifier's
104
+ * numerator or a row contradicts its own state, while no branch reads
105
+ * `inflight` or `inflightLimit` — this pair is reported, never judged — so on
106
+ * a shared row the ratio is a pool ratio by construction. Gating it on queued
107
+ * work would make the series step 0 -> N on an unrelated enqueue with no
108
+ * change in real concurrency. Absent means `inflight`.
109
+ */
110
+ pressureInflight?: number;
111
+ inflightLimit: number | null;
112
+ oldestQueuedAgeMs: number;
113
+ oldestActiveAgeMs: number;
114
+ queuedOperations: BackpressureOperationSummary[];
115
+ activeOperations: BackpressureOperationSummary[];
116
+ events: Record<string, number>;
117
+ rejectedTotal: number;
118
+ rejectedByReason: Record<string, number>;
119
+ /** Age of the latest rejection; safe for monotonic or epoch-based clocks. */
120
+ lastRejectedAgeMs: number | null;
121
+ }
122
+ export interface BackpressureSnapshot {
123
+ scheduler: string;
124
+ state: BackpressureState;
125
+ /**
126
+ * How this scheduler divides capacity between its lanes. It is a **scheduler**
127
+ * invariant — every lane of one scheduler shares it — so read it here; the
128
+ * copy on each lane row is derived, and exists so a single row still explains
129
+ * its own `queueLimit` when it travels alone (a log line, one metric series).
130
+ *
131
+ * Optional so a hand-built `BackpressureSource` still satisfies this type;
132
+ * absent means `partitioned`.
133
+ */
134
+ capacityModel?: SchedulerLaneCapacityModel;
135
+ totals: {
136
+ queued: number;
137
+ queueLimit: number | null;
138
+ inflight: number;
139
+ inflightLimit: number | null;
140
+ oldestQueuedAgeMs: number;
141
+ oldestActiveAgeMs: number;
142
+ rejectedTotal: number;
143
+ };
144
+ lanes: BackpressureLaneSnapshot[];
145
+ }
146
+ export interface BackpressureSource {
147
+ readonly backpressureId: string;
148
+ getBackpressureSnapshot(): BackpressureSnapshot;
149
+ }
150
+ export interface BackpressureRegistrySnapshot {
151
+ capturedAt: string;
152
+ state: BackpressureState;
153
+ schedulers: BackpressureSnapshot[];
154
+ failures: Array<{
155
+ scheduler: string;
156
+ error: string;
157
+ }>;
158
+ }
159
+ /**
160
+ * Keep metric/log dimensions bounded and strip payload-like punctuation.
161
+ * Callers should still pass static operation names rather than graph, peer, or
162
+ * job identifiers.
163
+ */
164
+ export declare function normalizeBackpressureLabel(value: string, fallback?: string): string;
165
+ export interface SchedulerPressureTrackerOptions {
166
+ scheduler: string;
167
+ capacity?: SchedulerPressureCapacity;
168
+ thresholds?: SchedulerPressureThresholds;
169
+ now?: () => number;
170
+ }
171
+ /**
172
+ * Scheduling-policy-neutral lifecycle tracker.
173
+ *
174
+ * Queue implementations call the five transition methods at their existing
175
+ * admission boundaries. The tracker owns timings, state classification,
176
+ * bounded metrics, and diagnostic snapshots, but never decides which work may
177
+ * run. All observability calls are fail-open so instrumentation cannot change
178
+ * scheduler behaviour.
179
+ */
180
+ export declare class SchedulerPressureTracker {
181
+ readonly scheduler: string;
182
+ private readonly queued;
183
+ private readonly active;
184
+ private readonly lanes;
185
+ private readonly now;
186
+ private readonly thresholds;
187
+ private capacity;
188
+ private nextTicketId;
189
+ constructor(options: SchedulerPressureTrackerOptions);
190
+ updateCapacity(capacity: SchedulerPressureCapacity): void;
191
+ enqueue(work: SchedulerPressureWork): SchedulerPressureTicket;
192
+ start(ticket: SchedulerPressureTicket): void;
193
+ reject(work: SchedulerPressureWork, reason: string): void;
194
+ rejectQueued(ticket: SchedulerPressureTicket, reason: string): void;
195
+ cancelQueued(ticket: SchedulerPressureTicket, reason?: string): void;
196
+ finish(ticket: SchedulerPressureTicket, outcome: SchedulerPressureOutcome): void;
197
+ snapshot(): BackpressureSnapshot;
198
+ private runtimeFor;
199
+ private recordEvent;
200
+ private recordRejection;
201
+ /**
202
+ * Everything the capacity model decides, in one place: which ceilings apply
203
+ * to a lane, what depth its state is measured against, and whether depth
204
+ * pressure applies at all. `laneSnapshot` stays a model-agnostic classifier,
205
+ * so adding a model means extending this descriptor rather than editing the
206
+ * classifier's branches.
207
+ */
208
+ private laneCapacityFor;
209
+ private laneSnapshot;
210
+ /**
211
+ * Reached only when the scheduler publishes no ceiling of its own — which is
212
+ * also the only case in which a `shared` lane has none either, since a shared
213
+ * lane's ceiling resolves from that same value. A pool ceiling can therefore
214
+ * never become a summand here, which it must not: summing it would report N×
215
+ * the real capacity and silence the rollup's own saturation branch.
216
+ */
217
+ private sumLaneLimits;
218
+ private safeMetric;
219
+ }
220
+ /**
221
+ * Base class for in-memory schedulers. Subclasses retain complete ownership of
222
+ * queue ordering, admission, coalescing, and release semantics and call these
223
+ * protected lifecycle methods at their existing boundaries.
224
+ */
225
+ export declare abstract class ObservableScheduler implements BackpressureSource {
226
+ protected readonly pressure: SchedulerPressureTracker;
227
+ protected constructor(options: SchedulerPressureTrackerOptions);
228
+ get backpressureId(): string;
229
+ getBackpressureSnapshot(): BackpressureSnapshot;
230
+ protected updatePressureCapacity(capacity: SchedulerPressureCapacity): void;
231
+ protected pressureEnqueue(work: SchedulerPressureWork): SchedulerPressureTicket;
232
+ protected pressureStart(ticket: SchedulerPressureTicket): void;
233
+ protected pressureReject(work: SchedulerPressureWork, reason: string): void;
234
+ protected pressureRejectQueued(ticket: SchedulerPressureTicket, reason: string): void;
235
+ protected pressureCancelQueued(ticket: SchedulerPressureTicket, reason?: string): void;
236
+ protected pressureFinish(ticket: SchedulerPressureTicket, outcome: SchedulerPressureOutcome): void;
237
+ }
238
+ export declare class BackpressureRegistry {
239
+ private readonly sources;
240
+ register(source: BackpressureSource): () => void;
241
+ capture(): BackpressureRegistrySnapshot;
242
+ }
243
+ export declare const backpressureRegistry: BackpressureRegistry;
244
+ export declare function recordBackpressureSnapshotMetrics(snapshot: BackpressureSnapshot): void;
245
+ export interface BackpressureMonitorOptions {
246
+ registry?: BackpressureRegistry;
247
+ intervalMs?: number;
248
+ summaryIntervalMs?: number;
249
+ now?: () => number;
250
+ emit: (level: 'info' | 'warn', message: string, snapshot: BackpressureSnapshot, lane: BackpressureLaneSnapshot | null) => void;
251
+ }
252
+ /**
253
+ * One process-wide sampler provides transition/recovery logging and periodic
254
+ * summaries. It logs state changes rather than individual queue operations.
255
+ */
256
+ export declare class BackpressureMonitor {
257
+ private readonly registry;
258
+ private readonly intervalMs;
259
+ private readonly summaryIntervalMs;
260
+ private readonly now;
261
+ private readonly emit;
262
+ private readonly logged;
263
+ private timer;
264
+ constructor(options: BackpressureMonitorOptions);
265
+ start(): void;
266
+ stop(): void;
267
+ sample(): void;
268
+ private observeSample;
269
+ private message;
270
+ private safeEmit;
271
+ }
272
+ export {};
273
+ //# sourceMappingURL=backpressure-observability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backpressure-observability.d.ts","sourceRoot":"","sources":["../src/backpressure-observability.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;AACjF,MAAM,MAAM,wBAAwB,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AAEzF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,0BAA0B,GAAG,aAAa,GAAG,QAAQ,CAAC;AAElE,UAAU,+BAA+B;IACvC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;GAKG;AACH,MAAM,MAAM,yBAAyB,GACjC,CAAC,+BAA+B,GAAG;IACnC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QACrB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC/B,CAAC,CAAC;CACJ,CAAC,GACA,CAAC,+BAA+B,GAAG;IACnC,aAAa,EAAE,QAAQ,CAAC;IACxB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC,CAAC;AAEL,MAAM,WAAW,2BAA2B;IAC1C,6EAA6E;IAC7E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iEAAiE;IACjE,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,6EAA6E;IAC7E,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,iBAAiB,CAAC;IACzB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,0BAA0B,CAAC;IAC3C,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;;OAWG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,4BAA4B,EAAE,CAAC;IACjD,gBAAgB,EAAE,4BAA4B,EAAE,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,6EAA6E;IAC7E,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,iBAAiB,CAAC;IACzB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,0BAA0B,CAAC;IAC3C,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,KAAK,EAAE,wBAAwB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,uBAAuB,IAAI,oBAAoB,CAAC;CACjD;AAED,MAAM,WAAW,4BAA4B;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,iBAAiB,CAAC;IACzB,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,QAAQ,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvD;AAqCD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAY,GAAG,MAAM,CAItF;AAgCD,MAAM,WAAW,+BAA+B;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,UAAU,CAAC,EAAE,2BAA2B,CAAC;IACzC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,qBAAa,wBAAwB;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAChE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAChE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkC;IACxD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwC;IACnE,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,YAAY,CAAK;gBAEb,OAAO,EAAE,+BAA+B;IAgBpD,cAAc,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAIzD,OAAO,CAAC,IAAI,EAAE,qBAAqB,GAAG,uBAAuB;IAY7D,KAAK,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI;IAa5C,MAAM,CAAC,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAKzD,YAAY,CAAC,MAAM,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAOnE,YAAY,CAAC,MAAM,EAAE,uBAAuB,EAAE,MAAM,SAAc,GAAG,IAAI;IAOzE,MAAM,CAAC,MAAM,EAAE,uBAAuB,EAAE,OAAO,EAAE,wBAAwB,GAAG,IAAI;IAgBhF,QAAQ,IAAI,oBAAoB;IAsDhC,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,eAAe;IAWvB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAwCvB,OAAO,CAAC,YAAY;IA8EpB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,UAAU;CAOnB;AAED;;;;GAIG;AACH,8BAAsB,mBAAoB,YAAW,kBAAkB;IACrE,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;IAEtD,SAAS,aAAa,OAAO,EAAE,+BAA+B;IAI9D,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,uBAAuB,IAAI,oBAAoB;IAI/C,SAAS,CAAC,sBAAsB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAI3E,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,qBAAqB,GAAG,uBAAuB;IAI/E,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI;IAI9D,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAI3E,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAIrF,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,uBAAuB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAItF,SAAS,CAAC,cAAc,CACtB,MAAM,EAAE,uBAAuB,EAC/B,OAAO,EAAE,wBAAwB,GAChC,IAAI;CAGR;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IAEjE,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,IAAI;IAYhD,OAAO,IAAI,4BAA4B;CAuBxC;AAED,eAAO,MAAM,oBAAoB,sBAA6B,CAAC;AAE/D,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CA8CtF;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,IAAI,EAAE,CACJ,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,oBAAoB,EAC9B,IAAI,EAAE,wBAAwB,GAAG,IAAI,KAClC,IAAI,CAAC;CACX;AAOD;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqC;IAC1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IACjE,OAAO,CAAC,KAAK,CAA+C;gBAEhD,OAAO,EAAE,0BAA0B;IAQ/C,KAAK,IAAI,IAAI;IAOb,IAAI,IAAI,IAAI;IAMZ,MAAM,IAAI,IAAI;IAgCd,OAAO,CAAC,aAAa;IAkCrB,OAAO,CAAC,OAAO;IAqDf,OAAO,CAAC,QAAQ;CAYjB"}