@mnemopay/sdk 0.9.2 → 1.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/adaptive.d.ts +46 -4
  2. package/dist/adaptive.d.ts.map +1 -1
  3. package/dist/adaptive.js +147 -27
  4. package/dist/adaptive.js.map +1 -1
  5. package/dist/anomaly.d.ts +240 -0
  6. package/dist/anomaly.d.ts.map +1 -0
  7. package/dist/anomaly.js +427 -0
  8. package/dist/anomaly.js.map +1 -0
  9. package/dist/behavioral.d.ts +253 -0
  10. package/dist/behavioral.d.ts.map +1 -0
  11. package/dist/behavioral.js +550 -0
  12. package/dist/behavioral.js.map +1 -0
  13. package/dist/commerce.d.ts.map +1 -1
  14. package/dist/commerce.js +6 -1
  15. package/dist/commerce.js.map +1 -1
  16. package/dist/fico.d.ts +136 -0
  17. package/dist/fico.d.ts.map +1 -0
  18. package/dist/fico.js +424 -0
  19. package/dist/fico.js.map +1 -0
  20. package/dist/fraud.d.ts.map +1 -1
  21. package/dist/fraud.js +14 -1
  22. package/dist/fraud.js.map +1 -1
  23. package/dist/index.d.ts +8 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +16 -3
  26. package/dist/index.js.map +1 -1
  27. package/dist/integrity.d.ts +165 -0
  28. package/dist/integrity.d.ts.map +1 -0
  29. package/dist/integrity.js +395 -0
  30. package/dist/integrity.js.map +1 -0
  31. package/dist/ledger.d.ts.map +1 -1
  32. package/dist/ledger.js +14 -3
  33. package/dist/ledger.js.map +1 -1
  34. package/dist/mcp/server.d.ts.map +1 -1
  35. package/dist/mcp/server.js +9 -4
  36. package/dist/mcp/server.js.map +1 -1
  37. package/dist/network.d.ts +2 -0
  38. package/dist/network.d.ts.map +1 -1
  39. package/dist/network.js +63 -50
  40. package/dist/network.js.map +1 -1
  41. package/dist/rails/index.d.ts.map +1 -1
  42. package/dist/rails/index.js +15 -0
  43. package/dist/rails/index.js.map +1 -1
  44. package/dist/rails/paystack.d.ts +5 -1
  45. package/dist/rails/paystack.d.ts.map +1 -1
  46. package/dist/rails/paystack.js +24 -3
  47. package/dist/rails/paystack.js.map +1 -1
  48. package/package.json +2 -2
@@ -31,12 +31,24 @@ export interface AdaptiveConfig {
31
31
  enabled: boolean;
32
32
  /** Minimum observations before adapting (default: 10) */
33
33
  minObservations: number;
34
- /** Maximum parameter change per cycle (0.2 = 20%) */
34
+ /** Maximum parameter change per cycle (0.2 = 20%) — used for AIMD increase */
35
35
  maxDeltaPercent: number;
36
+ /** Multiplicative decrease factor for tightening (0.5 = halve on anomaly) */
37
+ decreaseFactor: number;
38
+ /** Additive increase per healthy cycle (0.02 = +2%) */
39
+ increaseFactor: number;
36
40
  /** Minimum cycle interval in minutes (default: 60) */
37
41
  cycleIntervalMinutes: number;
38
42
  /** Lock specific parameters from adaptation */
39
43
  lockedParams: string[];
44
+ /** Minimum days of consistent behavior for trust tier upgrade */
45
+ minTrustDurationDays: number;
46
+ /** Consecutive worsening cycles before circuit breaker trips */
47
+ circuitBreakerThreshold: number;
48
+ /** PSI threshold for severe drift detection (halt adaptation) */
49
+ psiHaltThreshold: number;
50
+ /** PSI threshold for moderate drift (log warning) */
51
+ psiWarnThreshold: number;
40
52
  }
41
53
  export declare const DEFAULT_ADAPTIVE_CONFIG: AdaptiveConfig;
42
54
  export interface AgentInsight {
@@ -148,6 +160,16 @@ export declare class AdaptiveEngine {
148
160
  /** Manual overrides set by admin — these are never auto-changed */
149
161
  private adminOverrides;
150
162
  private eventCounter;
163
+ /** Circuit breaker: consecutive cycles where metrics worsened */
164
+ private consecutiveWorseningCycles;
165
+ /** Circuit breaker: is the engine halted? */
166
+ private circuitBreakerTripped;
167
+ /** Snapshot of key metrics from previous cycle (for regression detection) */
168
+ private previousCycleMetrics;
169
+ /** PSI: distribution snapshot from previous cycle for drift detection */
170
+ private previousDistribution;
171
+ /** Track first event timestamp per agent for trust duration calculation */
172
+ private agentFirstSeen;
151
173
  constructor(config?: Partial<AdaptiveConfig>);
152
174
  /**
153
175
  * Record an operational event. The engine learns from every operation.
@@ -163,12 +185,27 @@ export declare class AdaptiveEngine {
163
185
  */
164
186
  computeMetrics(): BusinessMetrics;
165
187
  /**
166
- * Run an adaptation cycle. Analyzes all data, proposes parameter changes,
167
- * validates against secure bounds, and returns what was (or would be) changed.
188
+ * Run an adaptation cycle. Uses asymmetric AIMD:
189
+ * - Additive Increase: slow, gradual loosening on sustained good metrics
190
+ * - Multiplicative Decrease: fast, aggressive tightening on anomalies
168
191
  *
169
- * Returns proposed adaptations. Call applyAdaptations() to commit them.
192
+ * Includes circuit breaker (halt after N consecutive worsening cycles)
193
+ * and PSI drift detection (halt if input distribution shifts too much).
170
194
  */
171
195
  runCycle(): AdaptationRecord[];
196
+ /** Reset the circuit breaker, allowing adaptation to resume. */
197
+ resetCircuitBreaker(): void;
198
+ /** Check if circuit breaker is currently tripped. */
199
+ get isCircuitBreakerTripped(): boolean;
200
+ /**
201
+ * Compute the event type distribution for drift detection.
202
+ */
203
+ private computeEventDistribution;
204
+ /**
205
+ * Compute Population Stability Index between two distributions.
206
+ * PSI > 0.1 = moderate drift, > 0.25 = severe drift.
207
+ */
208
+ private computePSI;
172
209
  /**
173
210
  * Lock a parameter from adaptive changes. Admin decisions override AI.
174
211
  */
@@ -193,12 +230,17 @@ export declare class AdaptiveEngine {
193
230
  getAdaptations(limit?: number): AdaptationRecord[];
194
231
  get totalEvents(): number;
195
232
  get secureBounds(): typeof SECURE_BOUNDS;
233
+ /** Backdate an agent's first-seen timestamp (for testing or data migration) */
234
+ setAgentFirstSeen(agentId: string, timestamp: number): void;
196
235
  serialize(): {
197
236
  config: AdaptiveConfig;
198
237
  insights: [string, AgentInsight][];
199
238
  adaptations: AdaptationRecord[];
200
239
  overrides: [string, number][];
201
240
  eventCount: number;
241
+ circuitBreakerTripped: boolean;
242
+ consecutiveWorsening: number;
243
+ agentFirstSeen: [string, number][];
202
244
  };
203
245
  static deserialize(data: ReturnType<AdaptiveEngine["serialize"]>): AdaptiveEngine;
204
246
  private isLocked;
@@ -1 +1 @@
1
- {"version":3,"file":"adaptive.d.ts","sourceRoot":"","sources":["../src/adaptive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adaptive.d.ts","sourceRoot":"","sources":["../src/adaptive.ts"],"names":[],"mappings":"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"}
package/dist/adaptive.js CHANGED
@@ -33,8 +33,14 @@ exports.DEFAULT_ADAPTIVE_CONFIG = {
33
33
  enabled: true,
34
34
  minObservations: 10,
35
35
  maxDeltaPercent: 0.2,
36
+ decreaseFactor: 0.5, // halve on anomaly (multiplicative decrease)
37
+ increaseFactor: 0.02, // +2% per healthy cycle (additive increase)
36
38
  cycleIntervalMinutes: 60,
37
39
  lockedParams: [],
40
+ minTrustDurationDays: 14,
41
+ circuitBreakerThreshold: 3,
42
+ psiHaltThreshold: 0.25,
43
+ psiWarnThreshold: 0.1,
38
44
  };
39
45
  // ─── Secure Bounds ──────────────────────────────────────────────────────────
40
46
  // These are HARD floors and ceilings. The adaptive engine cannot breach them.
@@ -63,6 +69,16 @@ class AdaptiveEngine {
63
69
  /** Manual overrides set by admin — these are never auto-changed */
64
70
  adminOverrides = new Map();
65
71
  eventCounter = 0;
72
+ /** Circuit breaker: consecutive cycles where metrics worsened */
73
+ consecutiveWorseningCycles = 0;
74
+ /** Circuit breaker: is the engine halted? */
75
+ circuitBreakerTripped = false;
76
+ /** Snapshot of key metrics from previous cycle (for regression detection) */
77
+ previousCycleMetrics = null;
78
+ /** PSI: distribution snapshot from previous cycle for drift detection */
79
+ previousDistribution = null;
80
+ /** Track first event timestamp per agent for trust duration calculation */
81
+ agentFirstSeen = new Map();
66
82
  constructor(config) {
67
83
  this.config = { ...exports.DEFAULT_ADAPTIVE_CONFIG, ...config };
68
84
  }
@@ -73,6 +89,10 @@ class AdaptiveEngine {
73
89
  observe(event) {
74
90
  this.events.push(event);
75
91
  this.eventCounter++;
92
+ // Track first-seen timestamp for trust duration calculation
93
+ if (!this.agentFirstSeen.has(event.agentId)) {
94
+ this.agentFirstSeen.set(event.agentId, event.timestamp);
95
+ }
76
96
  // Rolling window: keep last 50K events to bound memory usage
77
97
  if (this.events.length > 50_000) {
78
98
  this.events = this.events.slice(-25_000);
@@ -102,12 +122,17 @@ class AdaptiveEngine {
102
122
  const memoryEfficiency = memStores.length > 0
103
123
  ? Math.min(memRecalls.length / memStores.length, 1.0)
104
124
  : 0;
105
- // Risk tier determination
125
+ // Risk tier determination — velocity-aware trust
126
+ // Anti-gaming: require BOTH sufficient observations AND time duration.
127
+ // A burst of 10 clean settlements in 1 hour should NOT earn "trusted".
106
128
  let riskTier = "standard";
129
+ const firstSeen = this.agentFirstSeen.get(agentId) ?? Date.now();
130
+ const agentAgeDays = (Date.now() - firstSeen) / 86_400_000;
131
+ const meetsTimeDuration = agentAgeDays >= this.config.minTrustDurationDays;
107
132
  if (disputes.length > 0 || fraudBlocks.length > 2) {
108
133
  riskTier = disputes.length >= 3 ? "restricted" : "elevated";
109
134
  }
110
- else if (settlementRate > 0.9 && settles.length >= 10) {
135
+ else if (settlementRate > 0.9 && settles.length >= 10 && meetsTimeDuration) {
111
136
  riskTier = "trusted";
112
137
  }
113
138
  // Recommended fee rate: reward high-volume, high-settlement agents
@@ -207,14 +232,20 @@ class AdaptiveEngine {
207
232
  }
208
233
  // ── Adaptive Optimization ──────────────────────────────────────────────
209
234
  /**
210
- * Run an adaptation cycle. Analyzes all data, proposes parameter changes,
211
- * validates against secure bounds, and returns what was (or would be) changed.
235
+ * Run an adaptation cycle. Uses asymmetric AIMD:
236
+ * - Additive Increase: slow, gradual loosening on sustained good metrics
237
+ * - Multiplicative Decrease: fast, aggressive tightening on anomalies
212
238
  *
213
- * Returns proposed adaptations. Call applyAdaptations() to commit them.
239
+ * Includes circuit breaker (halt after N consecutive worsening cycles)
240
+ * and PSI drift detection (halt if input distribution shifts too much).
214
241
  */
215
242
  runCycle() {
216
243
  if (!this.config.enabled)
217
244
  return [];
245
+ // Circuit breaker: if tripped, refuse to adapt until manually reset
246
+ if (this.circuitBreakerTripped) {
247
+ return [this.createRecord("_circuit_breaker", 0, 0, `Circuit breaker tripped after ${this.config.circuitBreakerThreshold} consecutive worsening cycles. Call resetCircuitBreaker() to resume.`, { consecutiveWorsening: this.consecutiveWorseningCycles })];
248
+ }
218
249
  // Enforce minimum cycle interval
219
250
  const now = Date.now();
220
251
  if (now - this.lastCycleAt < this.config.cycleIntervalMinutes * 60_000) {
@@ -226,53 +257,128 @@ class AdaptiveEngine {
226
257
  }
227
258
  const metrics = this.computeMetrics();
228
259
  const proposals = [];
229
- // ── Adapt fee rate based on platform settlement rate ──────────────
260
+ // ── PSI Drift Detection ──────────────────────────────────────────
261
+ const currentDist = this.computeEventDistribution();
262
+ if (this.previousDistribution) {
263
+ const psi = this.computePSI(this.previousDistribution, currentDist);
264
+ if (psi > this.config.psiHaltThreshold) {
265
+ proposals.push(this.createRecord("_psi_drift", psi, this.config.psiHaltThreshold, `Severe distribution drift detected (PSI=${psi.toFixed(3)} > ${this.config.psiHaltThreshold}). Adaptation halted this cycle.`, { psi, threshold: this.config.psiHaltThreshold }));
266
+ this.previousDistribution = currentDist;
267
+ this.adaptations.push(...proposals);
268
+ return proposals;
269
+ }
270
+ if (psi > this.config.psiWarnThreshold) {
271
+ proposals.push(this.createRecord("_psi_warning", psi, this.config.psiWarnThreshold, `Moderate distribution drift (PSI=${psi.toFixed(3)}). Adapting with caution.`, { psi, threshold: this.config.psiWarnThreshold }));
272
+ }
273
+ }
274
+ this.previousDistribution = currentDist;
275
+ // ── Circuit Breaker: check if previous cycle's adaptations worsened metrics ──
276
+ if (this.previousCycleMetrics) {
277
+ const worsened = metrics.platformSettlementRate < this.previousCycleMetrics.settlementRate - 0.02 ||
278
+ metrics.systemHealth < this.previousCycleMetrics.systemHealth - 3;
279
+ if (worsened) {
280
+ this.consecutiveWorseningCycles++;
281
+ if (this.consecutiveWorseningCycles >= this.config.circuitBreakerThreshold) {
282
+ this.circuitBreakerTripped = true;
283
+ proposals.push(this.createRecord("_circuit_breaker", this.consecutiveWorseningCycles, this.config.circuitBreakerThreshold, `Circuit breaker TRIPPED: ${this.consecutiveWorseningCycles} consecutive cycles worsened metrics.`, { prevSettlement: this.previousCycleMetrics.settlementRate, currentSettlement: metrics.platformSettlementRate }));
284
+ this.previousCycleMetrics = { settlementRate: metrics.platformSettlementRate, systemHealth: metrics.systemHealth };
285
+ this.adaptations.push(...proposals);
286
+ return proposals;
287
+ }
288
+ }
289
+ else {
290
+ this.consecutiveWorseningCycles = 0; // Reset on healthy cycle
291
+ }
292
+ }
293
+ this.previousCycleMetrics = { settlementRate: metrics.platformSettlementRate, systemHealth: metrics.systemHealth };
294
+ // ── Asymmetric AIMD: Adapt fee rate ──────────────────────────────
230
295
  if (!this.isLocked("feeRate")) {
231
- const currentRate = 0.019; // default
296
+ const currentRate = this.getEffectiveValue("feeRate", 0.019);
232
297
  let targetRate = currentRate;
233
- // If settlement rate is high (> 90%), reward with lower fees
234
- if (metrics.platformSettlementRate > 0.9 && metrics.totalAgents >= 5) {
235
- targetRate = currentRate * 0.95; // 5% reduction
298
+ const disputeRatio = metrics.disputedAgents / Math.max(metrics.totalAgents, 1);
299
+ if (disputeRatio > 0.1) {
300
+ // MULTIPLICATIVE DECREASE: fast tighten (increase fees to cover risk)
301
+ targetRate = currentRate * (1 + this.config.decreaseFactor);
236
302
  }
237
- // If dispute rate is high, increase fees to cover risk
238
- if (metrics.disputedAgents / Math.max(metrics.totalAgents, 1) > 0.1) {
239
- targetRate = currentRate * 1.05; // 5% increase
303
+ else if (metrics.platformSettlementRate > 0.9 && metrics.totalAgents >= 5) {
304
+ // ADDITIVE INCREASE: slow loosen (decrease fees as reward)
305
+ targetRate = currentRate - (currentRate * this.config.increaseFactor);
240
306
  }
241
307
  targetRate = this.clamp(targetRate, SECURE_BOUNDS.feeRate.min, SECURE_BOUNDS.feeRate.max);
242
308
  targetRate = this.limitDelta(currentRate, targetRate);
243
309
  if (Math.abs(targetRate - currentRate) > 0.0001) {
244
- proposals.push(this.createRecord("feeRate", currentRate, targetRate, metrics.platformSettlementRate > 0.9
245
- ? "High platform settlement raterewarding ecosystem"
246
- : "Elevated dispute rateincreasing to cover risk", { settlementRate: metrics.platformSettlementRate, disputeRatio: metrics.disputedAgents / Math.max(metrics.totalAgents, 1) }));
310
+ proposals.push(this.createRecord("feeRate", currentRate, targetRate, disputeRatio > 0.1
311
+ ? "AIMD multiplicative decrease: elevated disputes increasing fees"
312
+ : "AIMD additive increase: healthy ecosystem rewarding with lower fees", { settlementRate: metrics.platformSettlementRate, disputeRatio }));
247
313
  }
248
314
  }
249
- // ── Adapt risk thresholds based on fraud patterns ─────────────────
315
+ // ── Asymmetric AIMD: Adapt risk thresholds ───────────────────────
250
316
  if (!this.isLocked("blockThreshold")) {
251
- const currentBlock = 0.75;
317
+ const currentBlock = this.getEffectiveValue("blockThreshold", 0.75);
252
318
  let targetBlock = currentBlock;
253
- // If fraud detection is catching too many (> 10% of charges), system may be too aggressive
254
319
  if (metrics.fraudDetectionRate > 0.10) {
255
- targetBlock = currentBlock * 1.03; // loosen slightly
320
+ // ADDITIVE INCREASE: slowly loosen (reduce false positives)
321
+ targetBlock = currentBlock + (currentBlock * this.config.increaseFactor);
256
322
  }
257
- // If zero fraud but many agents, may be too loose
258
- if (metrics.fraudDetectionRate < 0.001 && metrics.totalAgents > 20) {
259
- targetBlock = currentBlock * 0.98; // tighten slightly
323
+ else if (metrics.fraudDetectionRate < 0.001 && metrics.totalAgents > 20) {
324
+ // MULTIPLICATIVE DECREASE: fast tighten (more safety)
325
+ targetBlock = currentBlock * (1 - this.config.decreaseFactor * 0.1);
260
326
  }
261
327
  targetBlock = this.clamp(targetBlock, SECURE_BOUNDS.blockThreshold.min, SECURE_BOUNDS.blockThreshold.max);
262
328
  targetBlock = this.limitDelta(currentBlock, targetBlock);
263
329
  if (Math.abs(targetBlock - currentBlock) > 0.001) {
264
330
  proposals.push(this.createRecord("blockThreshold", currentBlock, targetBlock, metrics.fraudDetectionRate > 0.10
265
- ? "Fraud detection too aggressive — loosening to reduce false positives"
266
- : "Low fraud detection with many agents — tightening for safety", { fraudRate: metrics.fraudDetectionRate, totalAgents: metrics.totalAgents }));
331
+ ? "AIMD additive: loosening to reduce false positives"
332
+ : "AIMD multiplicative: tightening for safety", { fraudRate: metrics.fraudDetectionRate, totalAgents: metrics.totalAgents }));
267
333
  }
268
334
  }
269
335
  this.adaptations.push(...proposals);
270
- // Cap adaptation history at 1000 records
271
336
  if (this.adaptations.length > 1000) {
272
337
  this.adaptations = this.adaptations.slice(-500);
273
338
  }
274
339
  return proposals;
275
340
  }
341
+ // ── Circuit Breaker Controls ──────────────────────────────────────
342
+ /** Reset the circuit breaker, allowing adaptation to resume. */
343
+ resetCircuitBreaker() {
344
+ this.circuitBreakerTripped = false;
345
+ this.consecutiveWorseningCycles = 0;
346
+ }
347
+ /** Check if circuit breaker is currently tripped. */
348
+ get isCircuitBreakerTripped() {
349
+ return this.circuitBreakerTripped;
350
+ }
351
+ // ── PSI (Population Stability Index) ──────────────────────────────
352
+ /**
353
+ * Compute the event type distribution for drift detection.
354
+ */
355
+ computeEventDistribution() {
356
+ const dist = new Map();
357
+ const total = this.events.length || 1;
358
+ for (const e of this.events) {
359
+ dist.set(e.type, (dist.get(e.type) ?? 0) + 1);
360
+ }
361
+ // Normalize to proportions
362
+ for (const [key, val] of dist) {
363
+ dist.set(key, val / total);
364
+ }
365
+ return dist;
366
+ }
367
+ /**
368
+ * Compute Population Stability Index between two distributions.
369
+ * PSI > 0.1 = moderate drift, > 0.25 = severe drift.
370
+ */
371
+ computePSI(prev, current) {
372
+ const allKeys = new Set([...prev.keys(), ...current.keys()]);
373
+ let psi = 0;
374
+ const epsilon = 0.0001; // prevent log(0)
375
+ for (const key of allKeys) {
376
+ const p = Math.max(prev.get(key) ?? 0, epsilon);
377
+ const q = Math.max(current.get(key) ?? 0, epsilon);
378
+ psi += (q - p) * Math.log(q / p);
379
+ }
380
+ return Math.abs(psi);
381
+ }
276
382
  // ── Admin Controls ─────────────────────────────────────────────────────
277
383
  /**
278
384
  * Lock a parameter from adaptive changes. Admin decisions override AI.
@@ -325,14 +431,21 @@ class AdaptiveEngine {
325
431
  get secureBounds() {
326
432
  return SECURE_BOUNDS;
327
433
  }
434
+ /** Backdate an agent's first-seen timestamp (for testing or data migration) */
435
+ setAgentFirstSeen(agentId, timestamp) {
436
+ this.agentFirstSeen.set(agentId, timestamp);
437
+ }
328
438
  // ── Serialization ──────────────────────────────────────────────────────
329
439
  serialize() {
330
440
  return {
331
441
  config: this.config,
332
442
  insights: Array.from(this.insights.entries()),
333
- adaptations: this.adaptations.slice(-200), // Keep recent history
443
+ adaptations: this.adaptations.slice(-200),
334
444
  overrides: Array.from(this.adminOverrides.entries()),
335
445
  eventCount: this.eventCounter,
446
+ circuitBreakerTripped: this.circuitBreakerTripped,
447
+ consecutiveWorsening: this.consecutiveWorseningCycles,
448
+ agentFirstSeen: Array.from(this.agentFirstSeen.entries()),
336
449
  };
337
450
  }
338
451
  static deserialize(data) {
@@ -349,6 +462,13 @@ class AdaptiveEngine {
349
462
  engine.adminOverrides.set(key, val);
350
463
  }
351
464
  engine.eventCounter = data.eventCount ?? 0;
465
+ engine.circuitBreakerTripped = data.circuitBreakerTripped ?? false;
466
+ engine.consecutiveWorseningCycles = data.consecutiveWorsening ?? 0;
467
+ if (data.agentFirstSeen) {
468
+ for (const [id, ts] of data.agentFirstSeen) {
469
+ engine.agentFirstSeen.set(id, ts);
470
+ }
471
+ }
352
472
  return engine;
353
473
  }
354
474
  // ── Internal Utilities ─────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"adaptive.js","sourceRoot":"","sources":["../src/adaptive.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;;;AAiBU,QAAA,uBAAuB,GAAmB;IACrD,OAAO,EAAE,IAAI;IACb,eAAe,EAAE,EAAE;IACnB,eAAe,EAAE,GAAG;IACpB,oBAAoB,EAAE,EAAE;IACxB,YAAY,EAAE,EAAE;CACjB,CAAC;AAyFF,+EAA+E;AAC/E,8EAA8E;AAC9E,uEAAuE;AAEvE,MAAM,aAAa,GAAG;IACpB,2FAA2F;IAC3F,OAAO,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE;IAClC,2EAA2E;IAC3E,cAAc,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE;IACvC,iDAAiD;IACjD,aAAa,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;IACrC,uEAAuE;IACvE,mBAAmB,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;IAC3C,oFAAoF;IACpF,SAAS,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE;IACnC,sEAAsE;IACtE,qBAAqB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE;CACpC,CAAC;AAEX,+EAA+E;AAE/E,MAAa,cAAc;IACjB,MAAM,CAAiB;IACvB,MAAM,GAAoB,EAAE,CAAC;IAC7B,QAAQ,GAA8B,IAAI,GAAG,EAAE,CAAC;IAChD,WAAW,GAAuB,EAAE,CAAC;IACrC,WAAW,GAAW,CAAC,CAAC;IAChC,mEAAmE;IAC3D,cAAc,GAAwB,IAAI,GAAG,EAAE,CAAC;IAChD,YAAY,GAAG,CAAC,CAAC;IAEzB,YAAY,MAAgC;QAC1C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,+BAAuB,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1D,CAAC;IAED,0EAA0E;IAE1E;;OAEG;IACH,OAAO,CAAC,KAAoB;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,6DAA6D;QAC7D,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,0EAA0E;IAE1E;;;OAGG;IACH,YAAY,CAAC,OAAe;QAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;QAEnE,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;QACrE,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;QACvE,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QAEtE,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QACvD,MAAM,cAAc,GAAG,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;YAClC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM;YACvE,CAAC,CAAC,CAAC,CAAC;QACN,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;QAElF,qFAAqF;QACrF,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;YAC3C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC;YACrD,CAAC,CAAC,CAAC,CAAC;QAEN,0BAA0B;QAC1B,IAAI,QAAQ,GAA6B,UAAU,CAAC;QACpD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;QAC9D,CAAC;aAAM,IAAI,cAAc,GAAG,GAAG,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACxD,QAAQ,GAAG,SAAS,CAAC;QACvB,CAAC;QAED,mEAAmE;QACnE,IAAI,kBAAkB,GAAkB,IAAI,CAAC;QAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzE,IAAI,WAAW,IAAI,OAAO;YAAE,kBAAkB,GAAG,KAAK,CAAC;aAClD,IAAI,WAAW,IAAI,MAAM;YAAE,kBAAkB,GAAG,KAAK,CAAC;QAE3D,+DAA+D;QAC/D,IAAI,mBAAmB,GAAG,GAAG,CAAC;QAC9B,IAAI,QAAQ,KAAK,SAAS;YAAE,mBAAmB,GAAG,GAAG,CAAC;aACjD,IAAI,QAAQ,KAAK,UAAU;YAAE,mBAAmB,GAAG,GAAG,CAAC;aACvD,IAAI,QAAQ,KAAK,YAAY;YAAE,mBAAmB,GAAG,GAAG,CAAC;QAE9D,uBAAuB;QACvB,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,WAAW,IAAI,cAAc,GAAG,EAAE,CAAC,CAAC,4BAA4B;QAChE,WAAW,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,uBAAuB;QAC1E,WAAW,IAAI,gBAAgB,GAAG,EAAE,CAAC,CAAC,6BAA6B;QACnE,WAAW,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,iBAAiB;QACrD,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,sBAAsB;QAC9D,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;QAEtD,MAAM,OAAO,GAAiB;YAC5B,OAAO;YACP,cAAc;YACd,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,GAAG;YAClD,YAAY,EAAE,QAAQ,CAAC,MAAM;YAC7B,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,GAAG;YAClD,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,GAAG,CAAC,GAAG,GAAG;YAC1D,QAAQ;YACR,kBAAkB;YAClB,mBAAmB;YACnB,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YACpC,YAAY,EAAE,WAAW,CAAC,MAAM;YAChC,UAAU,EAAE,IAAI,IAAI,EAAE;SACvB,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACpC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,0EAA0E;IAE1E;;OAEG;IACH,cAAc;QACZ,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QACtE,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;QACrE,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;QAEvE,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;QAClF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QACvD,MAAM,sBAAsB,GAAG,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QAExF,sCAAsC;QACtC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,GAAG,MAAM,CAAC;QAC1E,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC;QACnE,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;QAEvF,qCAAqC;QACrC,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;QACzC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;gBAAE,YAAY,EAAE,CAAC;YACnD,IAAI,OAAO,CAAC,YAAY,GAAG,CAAC;gBAAE,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;YACrC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC;YACrD,CAAC,CAAC,CAAC,CAAC;QAEN,MAAM,kBAAkB,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;YAC3C,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;YACrC,CAAC,CAAC,CAAC,CAAC;QAEN,iCAAiC;QACjC,IAAI,YAAY,GAAG,EAAE,CAAC,CAAC,WAAW;QAClC,YAAY,IAAI,sBAAsB,GAAG,EAAE,CAAC;QAC5C,YAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACrE,YAAY,IAAI,UAAU,GAAG,CAAC,CAAC;QAC/B,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAEpE,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,GAAG;YAClD,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,GAAG;YAClD,WAAW,EAAE,QAAQ,CAAC,IAAI;YAC1B,aAAa,EAAE,YAAY;YAC3B,cAAc,EAAE,gBAAgB,CAAC,IAAI;YACrC,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC,sBAAsB,GAAG,GAAG,CAAC,GAAG,GAAG;YACtE,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,GAAG;YACxD,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,IAAI;YAChE,YAAY;YACZ,UAAU,EAAE,IAAI,IAAI,EAAE;SACvB,CAAC;IACJ,CAAC;IAED,0EAA0E;IAE1E;;;;;OAKG;IACH,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAEpC,iCAAiC;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,GAAG,MAAM,EAAE,CAAC;YACvE,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QAEvB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YACrD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,MAAM,SAAS,GAAuB,EAAE,CAAC;QAEzC,qEAAqE;QACrE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,UAAU;YACrC,IAAI,UAAU,GAAG,WAAW,CAAC;YAE7B,6DAA6D;YAC7D,IAAI,OAAO,CAAC,sBAAsB,GAAG,GAAG,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC;gBACrE,UAAU,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,eAAe;YAClD,CAAC;YACD,uDAAuD;YACvD,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;gBACpE,UAAU,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,cAAc;YACjD,CAAC;YAED,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC1F,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAEtD,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,MAAM,EAAE,CAAC;gBAChD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EACjE,OAAO,CAAC,sBAAsB,GAAG,GAAG;oBAClC,CAAC,CAAC,qDAAqD;oBACvD,CAAC,CAAC,kDAAkD,EACtD,EAAE,cAAc,EAAE,OAAO,CAAC,sBAAsB,EAAE,YAAY,EAAE,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAC5H,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,qEAAqE;QACrE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACrC,MAAM,YAAY,GAAG,IAAI,CAAC;YAC1B,IAAI,WAAW,GAAG,YAAY,CAAC;YAE/B,2FAA2F;YAC3F,IAAI,OAAO,CAAC,kBAAkB,GAAG,IAAI,EAAE,CAAC;gBACtC,WAAW,GAAG,YAAY,GAAG,IAAI,CAAC,CAAC,kBAAkB;YACvD,CAAC;YACD,kDAAkD;YAClD,IAAI,OAAO,CAAC,kBAAkB,GAAG,KAAK,IAAI,OAAO,CAAC,WAAW,GAAG,EAAE,EAAE,CAAC;gBACnE,WAAW,GAAG,YAAY,GAAG,IAAI,CAAC,CAAC,mBAAmB;YACxD,CAAC;YAED,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAC1G,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YAEzD,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,YAAY,CAAC,GAAG,KAAK,EAAE,CAAC;gBACjD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAC1E,OAAO,CAAC,kBAAkB,GAAG,IAAI;oBAC/B,CAAC,CAAC,sEAAsE;oBACxE,CAAC,CAAC,8DAA8D,EAClE,EAAE,SAAS,EAAE,OAAO,CAAC,kBAAkB,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAC5E,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;QACpC,yCAAyC;QACzC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,0EAA0E;IAE1E;;OAEG;IACH,SAAS,CAAC,KAAa;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,KAAa;QACvB,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;IAC/E,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,KAAa,EAAE,KAAa;QACtC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,KAAa;QAC1B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,KAAa,EAAE,YAAoB;QACnD,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;QAC3E,gCAAgC;QAChC,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;aACzC,OAAO,EAAE;aACT,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;QACjD,OAAO,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC;IACjE,CAAC;IAED,0EAA0E;IAE1E,UAAU,CAAC,OAAe;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,cAAc,CAAC,KAAK,GAAG,EAAE;QACvB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,0EAA0E;IAE1E,SAAS;QAOP,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC7C,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,sBAAsB;YACjE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YACpD,UAAU,EAAE,IAAI,CAAC,YAAY;SAC9B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAA6C;QAC9D,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1C,OAAO,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAClD,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9C,GAAG,CAAC;YACJ,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;SACjC,CAAC,CAAC,CAAC;QACJ,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,0EAA0E;IAElE,QAAQ,CAAC,KAAa;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpF,CAAC;IAEO,KAAK,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW;QACnD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACK,UAAU,CAAC,OAAe,EAAE,MAAc;QAChD,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;QAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,EAAE,CAAC;YAC/B,OAAO,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;QAC/C,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,YAAY,CAClB,SAAiB,EACjB,aAAqB,EACrB,QAAgB,EAChB,MAAc,EACd,QAAgC;QAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1C,OAAO;YACL,EAAE,EAAE,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YACnE,SAAS;YACT,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,GAAG,KAAK;YACxD,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,KAAK;YAC9C,MAAM;YACN,QAAQ;YACR,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,OAAO,EAAE,CAAC,QAAQ;YAClB,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,cAAc,SAAS,mCAAmC,CAAC,CAAC,CAAC,SAAS;SAC9F,CAAC;IACJ,CAAC;CACF;AA3YD,wCA2YC"}
1
+ {"version":3,"file":"adaptive.js","sourceRoot":"","sources":["../src/adaptive.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;;;AA6BU,QAAA,uBAAuB,GAAmB;IACrD,OAAO,EAAE,IAAI;IACb,eAAe,EAAE,EAAE;IACnB,eAAe,EAAE,GAAG;IACpB,cAAc,EAAE,GAAG,EAAK,6CAA6C;IACrE,cAAc,EAAE,IAAI,EAAI,4CAA4C;IACpE,oBAAoB,EAAE,EAAE;IACxB,YAAY,EAAE,EAAE;IAChB,oBAAoB,EAAE,EAAE;IACxB,uBAAuB,EAAE,CAAC;IAC1B,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,GAAG;CACtB,CAAC;AAyFF,+EAA+E;AAC/E,8EAA8E;AAC9E,uEAAuE;AAEvE,MAAM,aAAa,GAAG;IACpB,2FAA2F;IAC3F,OAAO,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE;IAClC,2EAA2E;IAC3E,cAAc,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE;IACvC,iDAAiD;IACjD,aAAa,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;IACrC,uEAAuE;IACvE,mBAAmB,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;IAC3C,oFAAoF;IACpF,SAAS,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE;IACnC,sEAAsE;IACtE,qBAAqB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE;CACpC,CAAC;AAEX,+EAA+E;AAE/E,MAAa,cAAc;IACjB,MAAM,CAAiB;IACvB,MAAM,GAAoB,EAAE,CAAC;IAC7B,QAAQ,GAA8B,IAAI,GAAG,EAAE,CAAC;IAChD,WAAW,GAAuB,EAAE,CAAC;IACrC,WAAW,GAAW,CAAC,CAAC;IAChC,mEAAmE;IAC3D,cAAc,GAAwB,IAAI,GAAG,EAAE,CAAC;IAChD,YAAY,GAAG,CAAC,CAAC;IACzB,iEAAiE;IACzD,0BAA0B,GAAG,CAAC,CAAC;IACvC,6CAA6C;IACrC,qBAAqB,GAAG,KAAK,CAAC;IACtC,6EAA6E;IACrE,oBAAoB,GAA4D,IAAI,CAAC;IAC7F,yEAAyE;IACjE,oBAAoB,GAA+B,IAAI,CAAC;IAChE,2EAA2E;IACnE,cAAc,GAAwB,IAAI,GAAG,EAAE,CAAC;IAExD,YAAY,MAAgC;QAC1C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,+BAAuB,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1D,CAAC;IAED,0EAA0E;IAE1E;;OAEG;IACH,OAAO,CAAC,KAAoB;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,4DAA4D;QAC5D,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1D,CAAC;QACD,6DAA6D;QAC7D,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,0EAA0E;IAE1E;;;OAGG;IACH,YAAY,CAAC,OAAe;QAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;QAEnE,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;QACrE,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;QACvE,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QAEtE,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QACvD,MAAM,cAAc,GAAG,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;YAClC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM;YACvE,CAAC,CAAC,CAAC,CAAC;QACN,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;QAElF,qFAAqF;QACrF,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;YAC3C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC;YACrD,CAAC,CAAC,CAAC,CAAC;QAEN,iDAAiD;QACjD,uEAAuE;QACvE,uEAAuE;QACvE,IAAI,QAAQ,GAA6B,UAAU,CAAC;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACjE,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,UAAU,CAAC;QAC3D,MAAM,iBAAiB,GAAG,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;QAE3E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;QAC9D,CAAC;aAAM,IAAI,cAAc,GAAG,GAAG,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,IAAI,iBAAiB,EAAE,CAAC;YAC7E,QAAQ,GAAG,SAAS,CAAC;QACvB,CAAC;QAED,mEAAmE;QACnE,IAAI,kBAAkB,GAAkB,IAAI,CAAC;QAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzE,IAAI,WAAW,IAAI,OAAO;YAAE,kBAAkB,GAAG,KAAK,CAAC;aAClD,IAAI,WAAW,IAAI,MAAM;YAAE,kBAAkB,GAAG,KAAK,CAAC;QAE3D,+DAA+D;QAC/D,IAAI,mBAAmB,GAAG,GAAG,CAAC;QAC9B,IAAI,QAAQ,KAAK,SAAS;YAAE,mBAAmB,GAAG,GAAG,CAAC;aACjD,IAAI,QAAQ,KAAK,UAAU;YAAE,mBAAmB,GAAG,GAAG,CAAC;aACvD,IAAI,QAAQ,KAAK,YAAY;YAAE,mBAAmB,GAAG,GAAG,CAAC;QAE9D,uBAAuB;QACvB,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,WAAW,IAAI,cAAc,GAAG,EAAE,CAAC,CAAC,4BAA4B;QAChE,WAAW,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,uBAAuB;QAC1E,WAAW,IAAI,gBAAgB,GAAG,EAAE,CAAC,CAAC,6BAA6B;QACnE,WAAW,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,iBAAiB;QACrD,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,sBAAsB;QAC9D,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;QAEtD,MAAM,OAAO,GAAiB;YAC5B,OAAO;YACP,cAAc;YACd,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,GAAG;YAClD,YAAY,EAAE,QAAQ,CAAC,MAAM;YAC7B,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,GAAG;YAClD,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,GAAG,CAAC,GAAG,GAAG;YAC1D,QAAQ;YACR,kBAAkB;YAClB,mBAAmB;YACnB,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YACpC,YAAY,EAAE,WAAW,CAAC,MAAM;YAChC,UAAU,EAAE,IAAI,IAAI,EAAE;SACvB,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACpC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,0EAA0E;IAE1E;;OAEG;IACH,cAAc;QACZ,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QACtE,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;QACrE,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;QAEvE,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;QAClF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QACvD,MAAM,sBAAsB,GAAG,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QAExF,sCAAsC;QACtC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,GAAG,MAAM,CAAC;QAC1E,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC;QACnE,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;QAEvF,qCAAqC;QACrC,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;QACzC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;gBAAE,YAAY,EAAE,CAAC;YACnD,IAAI,OAAO,CAAC,YAAY,GAAG,CAAC;gBAAE,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;YACrC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC;YACrD,CAAC,CAAC,CAAC,CAAC;QAEN,MAAM,kBAAkB,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;YAC3C,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;YACrC,CAAC,CAAC,CAAC,CAAC;QAEN,iCAAiC;QACjC,IAAI,YAAY,GAAG,EAAE,CAAC,CAAC,WAAW;QAClC,YAAY,IAAI,sBAAsB,GAAG,EAAE,CAAC;QAC5C,YAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACrE,YAAY,IAAI,UAAU,GAAG,CAAC,CAAC;QAC/B,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAEpE,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,GAAG;YAClD,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,GAAG;YAClD,WAAW,EAAE,QAAQ,CAAC,IAAI;YAC1B,aAAa,EAAE,YAAY;YAC3B,cAAc,EAAE,gBAAgB,CAAC,IAAI;YACrC,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC,sBAAsB,GAAG,GAAG,CAAC,GAAG,GAAG;YACtE,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,GAAG;YACxD,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,IAAI;YAChE,YAAY;YACZ,UAAU,EAAE,IAAI,IAAI,EAAE;SACvB,CAAC;IACJ,CAAC;IAED,0EAA0E;IAE1E;;;;;;;OAOG;IACH,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAEpC,oEAAoE;QACpE,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC,EAChD,iCAAiC,IAAI,CAAC,MAAM,CAAC,uBAAuB,sEAAsE,EAC1I,EAAE,oBAAoB,EAAE,IAAI,CAAC,0BAA0B,EAAE,CAC1D,CAAC,CAAC;QACL,CAAC;QAED,iCAAiC;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,GAAG,MAAM,EAAE,CAAC;YACvE,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QAEvB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YACrD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,MAAM,SAAS,GAAuB,EAAE,CAAC;QAEzC,oEAAoE;QACpE,MAAM,WAAW,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACpD,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;YACpE,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBACvC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC9E,2CAA2C,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,kCAAkC,EAC7H,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CACjD,CAAC,CAAC;gBACH,IAAI,CAAC,oBAAoB,GAAG,WAAW,CAAC;gBACxC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;gBACpC,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBACvC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAChF,oCAAoC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,EAC7E,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CACjD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,IAAI,CAAC,oBAAoB,GAAG,WAAW,CAAC;QAExC,gFAAgF;QAChF,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,MAAM,QAAQ,GACZ,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,GAAG,IAAI;gBAChF,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,GAAG,CAAC,CAAC;YACpE,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBAClC,IAAI,IAAI,CAAC,0BAA0B,IAAI,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE,CAAC;oBAC3E,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;oBAClC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,MAAM,CAAC,uBAAuB,EACvH,4BAA4B,IAAI,CAAC,0BAA0B,uCAAuC,EAClG,EAAE,cAAc,EAAE,IAAI,CAAC,oBAAoB,CAAC,cAAc,EAAE,iBAAiB,EAAE,OAAO,CAAC,sBAAsB,EAAE,CAChH,CAAC,CAAC;oBACH,IAAI,CAAC,oBAAoB,GAAG,EAAE,cAAc,EAAE,OAAO,CAAC,sBAAsB,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;oBACnH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;oBACpC,OAAO,SAAS,CAAC;gBACnB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,0BAA0B,GAAG,CAAC,CAAC,CAAC,yBAAyB;YAChE,CAAC;QACH,CAAC;QACD,IAAI,CAAC,oBAAoB,GAAG,EAAE,cAAc,EAAE,OAAO,CAAC,sBAAsB,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;QAEnH,oEAAoE;QACpE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC7D,IAAI,UAAU,GAAG,WAAW,CAAC;YAC7B,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAE/E,IAAI,YAAY,GAAG,GAAG,EAAE,CAAC;gBACvB,sEAAsE;gBACtE,UAAU,GAAG,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAC9D,CAAC;iBAAM,IAAI,OAAO,CAAC,sBAAsB,GAAG,GAAG,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC;gBAC5E,2DAA2D;gBAC3D,UAAU,GAAG,WAAW,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YACxE,CAAC;YAED,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC1F,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAEtD,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,MAAM,EAAE,CAAC;gBAChD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EACjE,YAAY,GAAG,GAAG;oBAChB,CAAC,CAAC,mEAAmE;oBACrE,CAAC,CAAC,uEAAuE,EAC3E,EAAE,cAAc,EAAE,OAAO,CAAC,sBAAsB,EAAE,YAAY,EAAE,CACjE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACrC,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;YACpE,IAAI,WAAW,GAAG,YAAY,CAAC;YAE/B,IAAI,OAAO,CAAC,kBAAkB,GAAG,IAAI,EAAE,CAAC;gBACtC,4DAA4D;gBAC5D,WAAW,GAAG,YAAY,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAC3E,CAAC;iBAAM,IAAI,OAAO,CAAC,kBAAkB,GAAG,KAAK,IAAI,OAAO,CAAC,WAAW,GAAG,EAAE,EAAE,CAAC;gBAC1E,sDAAsD;gBACtD,WAAW,GAAG,YAAY,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC;YACtE,CAAC;YAED,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAC1G,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YAEzD,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,YAAY,CAAC,GAAG,KAAK,EAAE,CAAC;gBACjD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAC1E,OAAO,CAAC,kBAAkB,GAAG,IAAI;oBAC/B,CAAC,CAAC,oDAAoD;oBACtD,CAAC,CAAC,4CAA4C,EAChD,EAAE,SAAS,EAAE,OAAO,CAAC,kBAAkB,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAC5E,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,qEAAqE;IAErE,gEAAgE;IAChE,mBAAmB;QACjB,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,0BAA0B,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,qDAAqD;IACrD,IAAI,uBAAuB;QACzB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED,qEAAqE;IAErE;;OAEG;IACK,wBAAwB;QAC9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;QACtC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,2BAA2B;QAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACK,UAAU,CAAC,IAAyB,EAAE,OAA4B;QACxE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7D,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,iBAAiB;QACzC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YACnD,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,0EAA0E;IAE1E;;OAEG;IACH,SAAS,CAAC,KAAa;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,KAAa;QACvB,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;IAC/E,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,KAAa,EAAE,KAAa;QACtC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,KAAa;QAC1B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,KAAa,EAAE,YAAoB;QACnD,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;QAC3E,gCAAgC;QAChC,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;aACzC,OAAO,EAAE;aACT,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;QACjD,OAAO,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC;IACjE,CAAC;IAED,0EAA0E;IAE1E,UAAU,CAAC,OAAe;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,cAAc,CAAC,KAAK,GAAG,EAAE;QACvB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,+EAA+E;IAC/E,iBAAiB,CAAC,OAAe,EAAE,SAAiB;QAClD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED,0EAA0E;IAE1E,SAAS;QAUP,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC7C,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;YACzC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YACpD,UAAU,EAAE,IAAI,CAAC,YAAY;YAC7B,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,oBAAoB,EAAE,IAAI,CAAC,0BAA0B;YACrD,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;SAC1D,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAA6C;QAC9D,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1C,OAAO,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAClD,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9C,GAAG,CAAC;YACJ,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;SACjC,CAAC,CAAC,CAAC;QACJ,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;QAC3C,MAAM,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,IAAI,KAAK,CAAC;QACnE,MAAM,CAAC,0BAA0B,GAAG,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;QACnE,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC3C,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,0EAA0E;IAElE,QAAQ,CAAC,KAAa;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpF,CAAC;IAEO,KAAK,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW;QACnD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACK,UAAU,CAAC,OAAe,EAAE,MAAc;QAChD,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;QAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,EAAE,CAAC;YAC/B,OAAO,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;QAC/C,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,YAAY,CAClB,SAAiB,EACjB,aAAqB,EACrB,QAAgB,EAChB,MAAc,EACd,QAAgC;QAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1C,OAAO;YACL,EAAE,EAAE,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YACnE,SAAS;YACT,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,GAAG,KAAK;YACxD,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,KAAK;YAC9C,MAAM;YACN,QAAQ;YACR,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,OAAO,EAAE,CAAC,QAAQ;YAClB,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,cAAc,SAAS,mCAAmC,CAAC,CAAC,CAAC,SAAS;SAC9F,CAAC;IACJ,CAAC;CACF;AArhBD,wCAqhBC"}