@duckcodeailabs/dql-agent 1.14.2 → 1.14.3-rc.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.
- package/dist/agent-run-engine.d.ts +63 -2
- package/dist/agent-run-engine.d.ts.map +1 -1
- package/dist/agent-run-engine.js +864 -29
- package/dist/agent-run-engine.js.map +1 -1
- package/dist/agent-run-planner.d.ts +6 -0
- package/dist/agent-run-planner.d.ts.map +1 -1
- package/dist/agent-run-planner.js +2 -0
- package/dist/agent-run-planner.js.map +1 -1
- package/dist/agent-run-store.d.ts.map +1 -1
- package/dist/agent-run-store.js +48 -3
- package/dist/agent-run-store.js.map +1 -1
- package/dist/agentic/analyst-loop.d.ts +7 -1
- package/dist/agentic/analyst-loop.d.ts.map +1 -1
- package/dist/agentic/analyst-loop.js +163 -0
- package/dist/agentic/analyst-loop.js.map +1 -1
- package/dist/agentic/assumptions.d.ts +1 -1
- package/dist/agentic/assumptions.d.ts.map +1 -1
- package/dist/agentic/assumptions.js.map +1 -1
- package/dist/agentic/research-agent.d.ts.map +1 -1
- package/dist/agentic/research-agent.js +10 -1
- package/dist/agentic/research-agent.js.map +1 -1
- package/dist/agentic/sql-authorization.d.ts +8 -0
- package/dist/agentic/sql-authorization.d.ts.map +1 -1
- package/dist/agentic/sql-authorization.js +3 -0
- package/dist/agentic/sql-authorization.js.map +1 -1
- package/dist/analytical-compatibility.d.ts.map +1 -1
- package/dist/analytical-compatibility.js +8 -1
- package/dist/analytical-compatibility.js.map +1 -1
- package/dist/analytical-failure-repair.d.ts.map +1 -1
- package/dist/analytical-failure-repair.js +6 -2
- package/dist/analytical-failure-repair.js.map +1 -1
- package/dist/analytical-frame.d.ts +23 -1
- package/dist/analytical-frame.d.ts.map +1 -1
- package/dist/analytical-frame.js +322 -16
- package/dist/analytical-frame.js.map +1 -1
- package/dist/analytical-orchestration.d.ts +314 -3
- package/dist/analytical-orchestration.d.ts.map +1 -1
- package/dist/analytical-orchestration.js +486 -43
- package/dist/analytical-orchestration.js.map +1 -1
- package/dist/answer-loop.d.ts +64 -8
- package/dist/answer-loop.d.ts.map +1 -1
- package/dist/answer-loop.js +528 -67
- package/dist/answer-loop.js.map +1 -1
- package/dist/ask-observability/index.d.ts +11 -0
- package/dist/ask-observability/index.d.ts.map +1 -0
- package/dist/ask-observability/index.js +7 -0
- package/dist/ask-observability/index.js.map +1 -0
- package/dist/ask-observability/instrumentation.d.ts +35 -0
- package/dist/ask-observability/instrumentation.d.ts.map +1 -0
- package/dist/ask-observability/instrumentation.js +472 -0
- package/dist/ask-observability/instrumentation.js.map +1 -0
- package/dist/ask-observability/observer.d.ts +62 -0
- package/dist/ask-observability/observer.d.ts.map +1 -0
- package/dist/ask-observability/observer.js +537 -0
- package/dist/ask-observability/observer.js.map +1 -0
- package/dist/ask-observability/portable.d.ts +98 -0
- package/dist/ask-observability/portable.d.ts.map +1 -0
- package/dist/ask-observability/portable.js +527 -0
- package/dist/ask-observability/portable.js.map +1 -0
- package/dist/ask-observability/store.d.ts +130 -0
- package/dist/ask-observability/store.d.ts.map +1 -0
- package/dist/ask-observability/store.js +1114 -0
- package/dist/ask-observability/store.js.map +1 -0
- package/dist/ask-observability/types.d.ts +357 -0
- package/dist/ask-observability/types.d.ts.map +1 -0
- package/dist/ask-observability/types.js +2 -0
- package/dist/ask-observability/types.js.map +1 -0
- package/dist/ask-observability/utils.d.ts +21 -0
- package/dist/ask-observability/utils.d.ts.map +1 -0
- package/dist/ask-observability/utils.js +102 -0
- package/dist/ask-observability/utils.js.map +1 -0
- package/dist/generated-analytical-proposal.d.ts +37 -1
- package/dist/generated-analytical-proposal.d.ts.map +1 -1
- package/dist/generated-analytical-proposal.js +211 -3
- package/dist/generated-analytical-proposal.js.map +1 -1
- package/dist/governed-relational-compiler.d.ts +15 -0
- package/dist/governed-relational-compiler.d.ts.map +1 -1
- package/dist/governed-relational-compiler.js +99 -1
- package/dist/governed-relational-compiler.js.map +1 -1
- package/dist/index.d.ts +9 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/intent-controller.d.ts +10 -0
- package/dist/intent-controller.d.ts.map +1 -1
- package/dist/intent-controller.js +1 -1
- package/dist/intent-controller.js.map +1 -1
- package/dist/meaning-resolution.d.ts +78 -6
- package/dist/meaning-resolution.d.ts.map +1 -1
- package/dist/meaning-resolution.js +331 -38
- package/dist/meaning-resolution.js.map +1 -1
- package/dist/metadata/analysis-planner.d.ts.map +1 -1
- package/dist/metadata/analysis-planner.js +21 -1
- package/dist/metadata/analysis-planner.js.map +1 -1
- package/dist/metadata/catalog.d.ts.map +1 -1
- package/dist/metadata/catalog.js +1 -1
- package/dist/metadata/catalog.js.map +1 -1
- package/dist/metadata/meaning-evidence.d.ts +9 -2
- package/dist/metadata/meaning-evidence.d.ts.map +1 -1
- package/dist/metadata/meaning-evidence.js +261 -11
- package/dist/metadata/meaning-evidence.js.map +1 -1
- package/dist/plan-execution-adapter.d.ts +9 -1
- package/dist/plan-execution-adapter.d.ts.map +1 -1
- package/dist/plan-execution-adapter.js +93 -13
- package/dist/plan-execution-adapter.js.map +1 -1
- package/dist/provider-egress.d.ts +24 -10
- package/dist/provider-egress.d.ts.map +1 -1
- package/dist/provider-egress.js +22 -17
- package/dist/provider-egress.js.map +1 -1
- package/dist/providers/claude.d.ts.map +1 -1
- package/dist/providers/claude.js +10 -9
- package/dist/providers/claude.js.map +1 -1
- package/dist/providers/dispatch.d.ts +27 -1
- package/dist/providers/dispatch.d.ts.map +1 -1
- package/dist/providers/dispatch.js +63 -1
- package/dist/providers/dispatch.js.map +1 -1
- package/dist/providers/gemini.js +10 -10
- package/dist/providers/gemini.js.map +1 -1
- package/dist/providers/index.d.ts +2 -2
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +1 -1
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/ollama.js +15 -15
- package/dist/providers/ollama.js.map +1 -1
- package/dist/providers/openai.js +22 -22
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/types.d.ts +52 -0
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js.map +1 -1
- package/dist/relationship-proof.d.ts +81 -0
- package/dist/relationship-proof.d.ts.map +1 -1
- package/dist/relationship-proof.js +228 -4
- package/dist/relationship-proof.js.map +1 -1
- package/dist/resolved-analytical-plan.d.ts +18 -4
- package/dist/resolved-analytical-plan.d.ts.map +1 -1
- package/dist/resolved-analytical-plan.js +764 -47
- package/dist/resolved-analytical-plan.js.map +1 -1
- package/dist/router.d.ts +10 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +1785 -213
- package/dist/router.js.map +1 -1
- package/dist/semantic-bridge/compose.d.ts.map +1 -1
- package/dist/semantic-bridge/compose.js +23 -4
- package/dist/semantic-bridge/compose.js.map +1 -1
- package/package.json +4 -4
package/dist/analytical-frame.js
CHANGED
|
@@ -35,9 +35,18 @@ export function projectResolvedAnalyticalFrame(input) {
|
|
|
35
35
|
? [binding.qualifiedId]
|
|
36
36
|
: []));
|
|
37
37
|
const rankingRequested = Boolean(sourceFrame.ranking || plan.query.order || plan.query.limit !== undefined);
|
|
38
|
+
const sourceRankEntityDimensionId = sourceFrame.ranking?.entityDimensionId;
|
|
38
39
|
const dimensions = groupedDimensionIds.flatMap((dimensionId, index) => [
|
|
39
40
|
{ dimensionId, role: 'group_by' },
|
|
40
|
-
|
|
41
|
+
// Preserve the source frame's rank entity. Reassigning rank ownership to
|
|
42
|
+
// the first grouped dimension silently changed "top customers by product
|
|
43
|
+
// category" into "top product categories", then the compatibility guard
|
|
44
|
+
// correctly rejected the category for lacking `rank_entity` support.
|
|
45
|
+
...(rankingRequested && (sourceRankEntityDimensionId
|
|
46
|
+
? dimensionId === sourceRankEntityDimensionId
|
|
47
|
+
: index === 0)
|
|
48
|
+
? [{ dimensionId, role: 'rank_entity' }]
|
|
49
|
+
: []),
|
|
41
50
|
]);
|
|
42
51
|
for (const filter of plan.query.filters) {
|
|
43
52
|
const dimensionId = filter.binding.status === 'resolved' ? filter.binding.qualifiedId : undefined;
|
|
@@ -48,11 +57,97 @@ export function projectResolvedAnalyticalFrame(input) {
|
|
|
48
57
|
if (sourceFrame.timeContext?.timeDimensionId) {
|
|
49
58
|
dimensions.push({ dimensionId: sourceFrame.timeContext.timeDimensionId, role: 'time_axis' });
|
|
50
59
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
60
|
+
// Keep an unresolved host-built ambiguity intact while projecting the RAP.
|
|
61
|
+
// Its candidate IDs came from the selected metric's native capability and
|
|
62
|
+
// are the only valid structured clarification choices. Reconstructing only
|
|
63
|
+
// from a failed lexical RAP rebind turns two viable `billing account` /
|
|
64
|
+
// `service account` meanings into an empty generic gap. If RAP resolved the
|
|
65
|
+
// corresponding binding, the authoritative plan supersedes the source
|
|
66
|
+
// ambiguity as usual.
|
|
67
|
+
// Ambiguity is lane-scoped. A physical/semantic ID may legitimately occur
|
|
68
|
+
// in more than one role, but a group-by binding must never consume a filter
|
|
69
|
+
// clarification (or vice versa). Keep the source-frame and frozen RAP proof
|
|
70
|
+
// sets separated by the meaning lane before intersecting them below.
|
|
71
|
+
const resolvedPlanBindingIds = {
|
|
72
|
+
metrics: new Set(plan.query.measures.flatMap((binding) => binding.status === 'resolved' && binding.qualifiedId ? [binding.qualifiedId] : [])),
|
|
73
|
+
dimensions: new Set(plan.query.dimensions.flatMap((binding) => binding.status === 'resolved' && binding.qualifiedId ? [binding.qualifiedId] : [])),
|
|
74
|
+
filters: new Set(plan.query.filters.flatMap((filter) => filter.binding.status === 'resolved' && filter.binding.qualifiedId ? [filter.binding.qualifiedId] : [])),
|
|
75
|
+
};
|
|
76
|
+
const sourceFrameBindingIds = {
|
|
77
|
+
metrics: new Set(sourceFrame.metricConceptIds),
|
|
78
|
+
dimensions: new Set(sourceFrame.dimensions
|
|
79
|
+
.filter((binding) => binding.role !== 'filter')
|
|
80
|
+
.map((binding) => binding.dimensionId)),
|
|
81
|
+
filters: new Set([
|
|
82
|
+
...sourceFrame.dimensions
|
|
83
|
+
.filter((binding) => binding.role === 'filter')
|
|
84
|
+
.map((binding) => binding.dimensionId),
|
|
85
|
+
...sourceFrame.memberBindings.map((binding) => binding.dimensionId),
|
|
86
|
+
]),
|
|
87
|
+
};
|
|
88
|
+
const resolvedSourceAmbiguityKeys = new Set();
|
|
89
|
+
const unresolvedSourceAmbiguity = sourceFrame.ambiguity.filter((entry) => {
|
|
90
|
+
const [lane, ...parts] = entry.field.split('.');
|
|
91
|
+
const requested = normalize(parts.join('.'));
|
|
92
|
+
if (!requested)
|
|
93
|
+
return true;
|
|
94
|
+
// A server-issued clarification selection is already represented as one
|
|
95
|
+
// exact capability binding in the host-built frame and the RAP. Do not
|
|
96
|
+
// retain the lexical ambiguity that prompted that selection merely because
|
|
97
|
+
// the original natural-language phrase (for example, "name") is still in
|
|
98
|
+
// the audit query list. This is intentionally identity-based rather than
|
|
99
|
+
// label-based and applies equally to metric, dimension, and filter lanes.
|
|
100
|
+
// The exact offered ID must be resolved in that same lane on both sides;
|
|
101
|
+
// a genuine ambiguity remains when zero or more than one offered candidate
|
|
102
|
+
// is resolved in the frozen tuple.
|
|
103
|
+
const laneBindingIds = lane === 'metrics' || lane === 'dimensions' || lane === 'filters'
|
|
104
|
+
? { source: sourceFrameBindingIds[lane], plan: resolvedPlanBindingIds[lane] }
|
|
105
|
+
: undefined;
|
|
106
|
+
const exactlyResolvedCandidateIds = laneBindingIds
|
|
107
|
+
? [...new Set(entry.candidateIds.filter((candidateId) => laneBindingIds.source.has(candidateId)
|
|
108
|
+
&& laneBindingIds.plan.has(candidateId)))]
|
|
109
|
+
: [];
|
|
110
|
+
if (exactlyResolvedCandidateIds.length === 1) {
|
|
111
|
+
resolvedSourceAmbiguityKeys.add(`${lane}.${requested}`);
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
// Candidate-bearing source ambiguity is an identity contract. A RAP
|
|
115
|
+
// binding with the same lexical request may be an unrelated third field;
|
|
116
|
+
// it cannot clear the offered A/B choice. Retain that ambiguity unless the
|
|
117
|
+
// exact candidate proof above resolved one and only one offered ID.
|
|
118
|
+
// Legacy source ambiguity without candidates has no such identity proof,
|
|
119
|
+
// so it retains the historical lexical fallback below.
|
|
120
|
+
if (entry.candidateIds.length > 0)
|
|
121
|
+
return true;
|
|
122
|
+
const binding = lane === 'dimensions'
|
|
123
|
+
? plan.query.dimensions.find((item) => normalize(item.requested) === requested)
|
|
124
|
+
: lane === 'metrics'
|
|
125
|
+
? plan.query.measures.find((item) => normalize(item.requested) === requested)
|
|
126
|
+
: lane === 'filters'
|
|
127
|
+
? plan.query.filters.find((item) => normalize(item.binding.requested) === requested)?.binding
|
|
128
|
+
: undefined;
|
|
129
|
+
return !binding || binding.status !== 'resolved';
|
|
130
|
+
});
|
|
131
|
+
const ambiguity = uniqueAmbiguity([
|
|
132
|
+
...unresolvedSourceAmbiguity,
|
|
133
|
+
// Preserve the original query for audit, but do not let its unresolved
|
|
134
|
+
// lexical binding recreate an ambiguity that was discharged by exactly one
|
|
135
|
+
// of the source-offered IDs. This applies to every binding lane: a metric
|
|
136
|
+
// ambiguity has the same identity contract as a display-dimension one.
|
|
137
|
+
...plan.query.measures.flatMap((binding) => resolvedSourceAmbiguityKeys.has(`metrics.${normalize(binding.requested)}`)
|
|
138
|
+
? []
|
|
139
|
+
: frameBindingAmbiguity('metrics', binding)),
|
|
140
|
+
// The query list retains the original lexical phrase for audit. Once an
|
|
141
|
+
// exact server-issued candidate resolved the corresponding source
|
|
142
|
+
// ambiguity, that audit binding must not re-create the same ambiguity in
|
|
143
|
+
// the projected frame.
|
|
144
|
+
...plan.query.dimensions.flatMap((binding) => resolvedSourceAmbiguityKeys.has(`dimensions.${normalize(binding.requested)}`)
|
|
145
|
+
? []
|
|
146
|
+
: frameBindingAmbiguity('dimensions', binding)),
|
|
147
|
+
...plan.query.filters.flatMap((filter) => resolvedSourceAmbiguityKeys.has(`filters.${normalize(filter.binding.requested)}`)
|
|
148
|
+
? []
|
|
149
|
+
: frameBindingAmbiguity('filters', filter.binding)),
|
|
150
|
+
]);
|
|
56
151
|
const dimensionOutputs = groupedDimensionIds.map((dimensionId) => ({
|
|
57
152
|
id: localId(dimensionId),
|
|
58
153
|
kind: 'dimension',
|
|
@@ -114,6 +209,11 @@ function frameBindingAmbiguity(lane, binding) {
|
|
|
114
209
|
: `${lane.slice(0, -1).toUpperCase()}_UNRESOLVED`,
|
|
115
210
|
}];
|
|
116
211
|
}
|
|
212
|
+
function uniqueAmbiguity(entries) {
|
|
213
|
+
return entries.filter((entry, index, all) => all.findIndex((candidate) => candidate.field === entry.field
|
|
214
|
+
&& candidate.reasonCode === entry.reasonCode
|
|
215
|
+
&& candidate.candidateIds.join('\u0000') === entry.candidateIds.join('\u0000')) === index);
|
|
216
|
+
}
|
|
117
217
|
function uniqueOutputs(outputs) {
|
|
118
218
|
return outputs.filter((output, index, all) => all.findIndex((candidate) => candidate.id === output.id) === index);
|
|
119
219
|
}
|
|
@@ -145,11 +245,26 @@ export function buildDeterministicAnalyticalFrame(input) {
|
|
|
145
245
|
...(input.evidence.parsedIntent?.order ? { order: input.evidence.parsedIntent.order } : {}),
|
|
146
246
|
...(input.evidence.parsedIntent?.limit !== undefined ? { limit: input.evidence.parsedIntent.limit } : {}),
|
|
147
247
|
};
|
|
248
|
+
const rankingRequested = meaningType === 'ranking' || queryIntent.limit !== undefined || /\b(top|bottom|highest|lowest|rank)\b/i.test(input.question);
|
|
249
|
+
const requestedEntityTerms = unique(input.entityTerms ?? []).map(normalize).filter(Boolean);
|
|
250
|
+
const requestedEntityDisplayTerms = unique(input.entityDisplayTerms ?? []).map(normalize).filter(Boolean);
|
|
148
251
|
const requestedDimensionTerms = new Set(queryIntent.dimensions.map(normalize).filter(Boolean));
|
|
252
|
+
// The immutable host seed has already separated the entity role from the
|
|
253
|
+
// categorical lane. Retain this defensive removal for older callers whose
|
|
254
|
+
// query intent still contains both forms; otherwise a generic `customer`
|
|
255
|
+
// candidate can manufacture a false ambiguity among Customer Name, Customer
|
|
256
|
+
// Type, and Customer Order Number.
|
|
257
|
+
for (const term of [...requestedEntityTerms, ...requestedEntityDisplayTerms]) {
|
|
258
|
+
requestedDimensionTerms.delete(term);
|
|
259
|
+
}
|
|
149
260
|
for (const filter of queryIntent.filters)
|
|
150
261
|
requestedDimensionTerms.add(normalize(filter.field));
|
|
151
262
|
for (const candidate of input.candidates) {
|
|
152
|
-
|
|
263
|
+
// Entity/member cards may be useful to the bounded meaning call, but they
|
|
264
|
+
// are not dimension identities. Letting a selected Customer entity card
|
|
265
|
+
// pass through this loop reintroduced its broad lexical name as a generic
|
|
266
|
+
// dimension request and made every customer-* capability child compete.
|
|
267
|
+
if (candidate.kind !== 'semantic_member' || candidate.semanticObjectType !== 'dimension')
|
|
153
268
|
continue;
|
|
154
269
|
const capabilityDimension = resolveCapabilityDimension(candidate.qualifiedId ?? candidate.id, capability);
|
|
155
270
|
if (!capabilityDimension)
|
|
@@ -161,6 +276,45 @@ export function buildDeterministicAnalyticalFrame(input) {
|
|
|
161
276
|
}
|
|
162
277
|
const ambiguity = [];
|
|
163
278
|
const resolvedDimensions = new Map();
|
|
279
|
+
// A ranking may group by more than one field, but only the explicitly
|
|
280
|
+
// resolved entity display key is the entity being ranked. Keep that role
|
|
281
|
+
// separate from generic rankable capability metadata: adapters sometimes
|
|
282
|
+
// advertise `rank_entity` for a categorical grouping such as product type,
|
|
283
|
+
// which permits ranking *by* that field but does not make it an answer to
|
|
284
|
+
// “top customers by product category”.
|
|
285
|
+
const entityDisplayDimensionIds = new Set();
|
|
286
|
+
// A structured dimension choice is already a qualified, server-bound
|
|
287
|
+
// meaning. Bind it only through the metric's authored capability contract;
|
|
288
|
+
// this is deliberately stronger than adding the option label back into the
|
|
289
|
+
// natural-language question and prevents a selected member from inventing a
|
|
290
|
+
// join or a display role it does not own.
|
|
291
|
+
for (const selectedId of unique(input.selectedDimensionIds ?? [])) {
|
|
292
|
+
// A model may select a supplied semantic entity card to identify the
|
|
293
|
+
// entity. It is not a qualified display dimension and must never resolve
|
|
294
|
+
// by lexical fallback to the first same-named capability child.
|
|
295
|
+
const dimension = resolveExactCapabilityDimension(selectedId, capability);
|
|
296
|
+
if (dimension)
|
|
297
|
+
resolvedDimensions.set(dimension.dimensionId, dimension);
|
|
298
|
+
}
|
|
299
|
+
for (const requested of requestedEntityDisplayTerms) {
|
|
300
|
+
const matches = resolveEntityDisplayTerm({
|
|
301
|
+
requested,
|
|
302
|
+
entityTerms: requestedEntityTerms,
|
|
303
|
+
capability,
|
|
304
|
+
rankingRequested,
|
|
305
|
+
});
|
|
306
|
+
if (matches.length === 1) {
|
|
307
|
+
resolvedDimensions.set(matches[0].dimensionId, matches[0]);
|
|
308
|
+
entityDisplayDimensionIds.add(matches[0].dimensionId);
|
|
309
|
+
}
|
|
310
|
+
else if (matches.length > 1) {
|
|
311
|
+
ambiguity.push({
|
|
312
|
+
field: `dimensions.${requested}`,
|
|
313
|
+
candidateIds: matches.map((dimension) => dimension.dimensionId).sort(),
|
|
314
|
+
reasonCode: 'DIMENSION_AMBIGUOUS',
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
}
|
|
164
318
|
for (const requested of requestedDimensionTerms) {
|
|
165
319
|
const matches = resolveDimensionTerm(requested, capability, input.candidates);
|
|
166
320
|
if (matches.length === 1)
|
|
@@ -189,7 +343,6 @@ export function buildDeterministicAnalyticalFrame(input) {
|
|
|
189
343
|
confidence: 'exact',
|
|
190
344
|
});
|
|
191
345
|
}
|
|
192
|
-
const rankingRequested = meaningType === 'ranking' || queryIntent.limit !== undefined || /\b(top|bottom|highest|lowest|rank)\b/i.test(input.question);
|
|
193
346
|
const groupRequested = rankingRequested || /\b(by|per|for each|breakdown)\b/i.test(input.question);
|
|
194
347
|
const dimensions = [];
|
|
195
348
|
for (const dimension of resolvedDimensions.values()) {
|
|
@@ -200,7 +353,10 @@ export function buildDeterministicAnalyticalFrame(input) {
|
|
|
200
353
|
}
|
|
201
354
|
if (dimension.supportedRoles.includes('group_by')) {
|
|
202
355
|
dimensions.push({ dimensionId: dimension.dimensionId, role: 'group_by' });
|
|
203
|
-
|
|
356
|
+
const isExplicitEntityDisplay = entityDisplayDimensionIds.has(dimension.dimensionId);
|
|
357
|
+
if (rankingRequested
|
|
358
|
+
&& dimension.supportedRoles.includes('rank_entity')
|
|
359
|
+
&& (entityDisplayDimensionIds.size === 0 || isExplicitEntityDisplay)) {
|
|
204
360
|
dimensions.push({
|
|
205
361
|
dimensionId: dimension.dimensionId,
|
|
206
362
|
role: 'rank_entity',
|
|
@@ -211,10 +367,20 @@ export function buildDeterministicAnalyticalFrame(input) {
|
|
|
211
367
|
dimensions.push({ dimensionId: dimension.dimensionId, role: 'filter' });
|
|
212
368
|
}
|
|
213
369
|
}
|
|
214
|
-
|
|
215
|
-
|
|
370
|
+
// `current` can be an intrinsic business qualifier ("current BCM run
|
|
371
|
+
// rate"), not a request for a date axis. Creating a timeContext for that
|
|
372
|
+
// bare modifier forces every metric through time-dimension compatibility and
|
|
373
|
+
// incorrectly blocks snapshot metrics that already encode their current/as-
|
|
374
|
+
// of semantics. Only require a declared time role for an actual time grain
|
|
375
|
+
// or temporal filter. The metric's own governed definition remains the
|
|
376
|
+
// authority for an unqualified current/latest snapshot value.
|
|
377
|
+
const requestedTimeGrain = explicitTimeGrain(queryIntent.timeGrain) ?? inferTimeGrain(input.question);
|
|
378
|
+
const timeRequested = Boolean(queryIntent.timeRange && !isSnapshotOnlyTimeRange(queryIntent.timeRange))
|
|
379
|
+
|| Boolean(requestedTimeGrain)
|
|
380
|
+
|| hasExplicitTemporalFilter(input.question);
|
|
216
381
|
const previousYearRequested = /\b(last year|previous year|year over year|yoy)\b/i.test(input.question);
|
|
217
|
-
const currentRequested = /\b(today|current
|
|
382
|
+
const currentRequested = /\b(?:today|yesterday)\b|\b(?:this|current)\s+(?:day|week|month|quarter|year)\b|\b(?:month|quarter|year)[ -]to[ -]date\b|\b(?:mtd|qtd|ytd)\b/i.test(input.question)
|
|
383
|
+
|| previousYearRequested;
|
|
218
384
|
const timeContext = timeRequested
|
|
219
385
|
? {
|
|
220
386
|
...(capability.timeDimensions.length === 1
|
|
@@ -223,7 +389,7 @@ export function buildDeterministicAnalyticalFrame(input) {
|
|
|
223
389
|
timeRole: capability.timeDimensions[0].role,
|
|
224
390
|
}
|
|
225
391
|
: {}),
|
|
226
|
-
grain:
|
|
392
|
+
...(requestedTimeGrain ? { grain: requestedTimeGrain } : {}),
|
|
227
393
|
...(capability.freshness?.defaultCompletenessPolicy
|
|
228
394
|
? {
|
|
229
395
|
completenessPolicy: capability.freshness.defaultCompletenessPolicy,
|
|
@@ -347,6 +513,16 @@ export function buildDeterministicAnalyticalFrame(input) {
|
|
|
347
513
|
ambiguity,
|
|
348
514
|
};
|
|
349
515
|
}
|
|
516
|
+
/**
|
|
517
|
+
* Resolve a selected semantic member through one metric's authored capability
|
|
518
|
+
* contract. Router validation uses this to compose a persisted metric frame
|
|
519
|
+
* with a selected display/grouping field without treating the field itself as
|
|
520
|
+
* a metric meaning.
|
|
521
|
+
*/
|
|
522
|
+
export function resolveMetricCapabilityDimension(metricCandidate, selectedDimensionId) {
|
|
523
|
+
const capability = normalizeMetricCapabilityContract(metricCandidate.analyticalCapability);
|
|
524
|
+
return capability ? resolveExactCapabilityDimension(selectedDimensionId, capability) : undefined;
|
|
525
|
+
}
|
|
350
526
|
function resolveDimensionTerm(requested, capability, candidates) {
|
|
351
527
|
const candidateIds = new Set();
|
|
352
528
|
for (const candidate of candidates) {
|
|
@@ -357,10 +533,113 @@ function resolveDimensionTerm(requested, capability, candidates) {
|
|
|
357
533
|
candidateIds.add(candidate.qualifiedId ?? candidate.id);
|
|
358
534
|
}
|
|
359
535
|
}
|
|
360
|
-
return capability.dimensions.filter((dimension) =>
|
|
536
|
+
return capability.dimensions.filter((dimension) => dimensionMatchesTerm(dimension, requested) || candidateIds.has(dimension.dimensionId));
|
|
361
537
|
}
|
|
362
538
|
function resolveCapabilityDimension(id, capability) {
|
|
363
|
-
|
|
539
|
+
// A server-issued clarification can render the capability child under the
|
|
540
|
+
// stable display namespace `semantic:uncategorized:dimension:` while the
|
|
541
|
+
// same snapshot's executable contract stores its canonical
|
|
542
|
+
// `semantic:dimension:` identity. This is an exact protocol alias, not a
|
|
543
|
+
// leaf-name fallback: normalize only that namespace and require equality
|
|
544
|
+
// with a dimension declared by the selected metric capability. It keeps a
|
|
545
|
+
// persisted display choice usable after reload without allowing a client to
|
|
546
|
+
// substitute a same-named field from another model.
|
|
547
|
+
const canonicalId = canonicalCapabilityDimensionId(id);
|
|
548
|
+
return capability.dimensions.find((dimension) => dimension.dimensionId === canonicalId
|
|
549
|
+
|| dimensionMatchesTerm(dimension, normalize(id)));
|
|
550
|
+
}
|
|
551
|
+
function resolveExactCapabilityDimension(id, capability) {
|
|
552
|
+
const exactId = id.trim();
|
|
553
|
+
const canonicalId = canonicalCapabilityDimensionId(exactId);
|
|
554
|
+
return capability.dimensions.find((dimension) => dimension.dimensionId === exactId
|
|
555
|
+
|| dimension.dimensionId === canonicalId
|
|
556
|
+
// The local manifest adapter may retain the display namespace on the
|
|
557
|
+
// capability itself while a persisted structured option carries the
|
|
558
|
+
// executable namespace (or vice versa). Both normalize to the same
|
|
559
|
+
// protocol identity; no leaf-name or cross-model fallback is allowed.
|
|
560
|
+
|| canonicalCapabilityDimensionId(dimension.dimensionId) === canonicalId);
|
|
561
|
+
}
|
|
562
|
+
/**
|
|
563
|
+
* Resolve a host-owned entity display requirement only through the selected
|
|
564
|
+
* metric's authored native capability. A bare entity card is not a display
|
|
565
|
+
* field, and an arbitrary categorical attribute such as `customer_type`
|
|
566
|
+
* cannot satisfy `top customers`. If two native display/rank fields match the
|
|
567
|
+
* exact display phrase, retain a genuine typed ambiguity instead of guessing.
|
|
568
|
+
*/
|
|
569
|
+
function resolveEntityDisplayTerm(input) {
|
|
570
|
+
// New semantic indexes expose `display` explicitly, while a compatible
|
|
571
|
+
// older MetricFlow capability may expose only `rank_entity`. Both describe
|
|
572
|
+
// a metric-native entity result role. Do not relax this to every group-by
|
|
573
|
+
// field: a customer type or owner grouping is still not an answer to
|
|
574
|
+
// “top customers”.
|
|
575
|
+
const nativeEntityDimensions = input.capability.dimensions.filter((dimension) => dimension.supportedRoles.includes('group_by')
|
|
576
|
+
&& (input.rankingRequested
|
|
577
|
+
? dimension.supportedRoles.includes('rank_entity')
|
|
578
|
+
: dimension.supportedRoles.includes('display'))
|
|
579
|
+
&& (input.entityTerms.length === 0 || input.entityTerms.some((entityTerm) => termsMatch(normalize(dimension.entityId), entityTerm))));
|
|
580
|
+
const exactDisplayMatches = nativeEntityDimensions.filter((dimension) => dimensionMatchesTerm(dimension, input.requested));
|
|
581
|
+
if (exactDisplayMatches.length > 0)
|
|
582
|
+
return exactDisplayMatches;
|
|
583
|
+
// `top customers` is host-normalized to the output requirement `customer
|
|
584
|
+
// name`. A legacy capability can still prove that requirement when it has a
|
|
585
|
+
// unique native entity field literally named `customer`. Do not let a
|
|
586
|
+
// broader lexical match turn `customer_type`, `customer_owner`, or
|
|
587
|
+
// `customer_order_number` into that label. If no exact native identity
|
|
588
|
+
// exists, preserve only non-attribute entity alternatives so two genuine
|
|
589
|
+
// authored account paths remain an identifier-bound ambiguity.
|
|
590
|
+
const entityNativeMatches = nativeEntityDimensions.filter((dimension) => input.entityTerms.some((entityTerm) => nativeEntityIdentity(dimension, entityTerm) === 'exact'));
|
|
591
|
+
if (entityNativeMatches.length > 0)
|
|
592
|
+
return entityNativeMatches;
|
|
593
|
+
return nativeEntityDimensions.filter((dimension) => input.entityTerms.some((entityTerm) => nativeEntityIdentity(dimension, entityTerm) === 'qualified'));
|
|
594
|
+
}
|
|
595
|
+
function nativeEntityIdentity(dimension, entityTerm) {
|
|
596
|
+
const normalizedEntity = normalize(entityTerm);
|
|
597
|
+
if (!normalizedEntity)
|
|
598
|
+
return undefined;
|
|
599
|
+
// Use the field's own label/qualified leaf for the entity-key fallback.
|
|
600
|
+
// Retrieval aliases are deliberately excluded here: an attribute card may
|
|
601
|
+
// carry the broad entity word as a discovery alias (`customer_type` ↔
|
|
602
|
+
// `customer`) but that does not make the attribute the entity display key.
|
|
603
|
+
const identities = [
|
|
604
|
+
dimension.label,
|
|
605
|
+
localId(dimension.dimensionId),
|
|
606
|
+
].map((value) => value ? normalize(value) : '').filter(Boolean);
|
|
607
|
+
if (identities.some((identity) => identity === normalizedEntity))
|
|
608
|
+
return 'exact';
|
|
609
|
+
// A field whose own identity begins with the generic entity name is an
|
|
610
|
+
// attribute of that entity, not its display/rank key. It must not satisfy a
|
|
611
|
+
// request for the entity itself merely because it is the only field left.
|
|
612
|
+
if (identities.some((identity) => identity.startsWith(`${normalizedEntity} `)))
|
|
613
|
+
return undefined;
|
|
614
|
+
// A qualified authored identity such as `billing account` or `service
|
|
615
|
+
// account` is a genuine alternative entity role. Return it only to create a
|
|
616
|
+
// typed ambiguity when there is no exact native entity key.
|
|
617
|
+
return identities.some((identity) => identity.endsWith(` ${normalizedEntity}`))
|
|
618
|
+
? 'qualified'
|
|
619
|
+
: undefined;
|
|
620
|
+
}
|
|
621
|
+
function canonicalCapabilityDimensionId(id) {
|
|
622
|
+
return id.trim().replace(/^semantic:uncategorized:dimension:/, 'semantic:dimension:');
|
|
623
|
+
}
|
|
624
|
+
/**
|
|
625
|
+
* Match a requested business dimension against the dimension's own authored
|
|
626
|
+
* label/leaf alias, not its model-qualified namespace. A metric model named
|
|
627
|
+
* `account_revenue` prefixes every one of its dimensions; treating that
|
|
628
|
+
* prefix as a match for "account" made fiscal period and customer name look
|
|
629
|
+
* like equally valid account display keys.
|
|
630
|
+
*/
|
|
631
|
+
function dimensionMatchesTerm(dimension, requested) {
|
|
632
|
+
const normalizedRequested = normalize(requested);
|
|
633
|
+
if (!normalizedRequested)
|
|
634
|
+
return false;
|
|
635
|
+
if (normalize(dimension.dimensionId) === normalizedRequested)
|
|
636
|
+
return true;
|
|
637
|
+
const identities = [
|
|
638
|
+
dimension.label,
|
|
639
|
+
localId(dimension.dimensionId),
|
|
640
|
+
...(dimension.aliases ?? []).map(localId),
|
|
641
|
+
].map((value) => value ? normalize(value) : '').filter(Boolean);
|
|
642
|
+
return identities.some((identity) => termsMatch(identity, normalizedRequested));
|
|
364
643
|
}
|
|
365
644
|
function phraseAppears(question, phrase) {
|
|
366
645
|
const questionTokens = new Set(normalize(question).split(' ').map(singularize));
|
|
@@ -405,13 +684,40 @@ function inferTimeGrain(question) {
|
|
|
405
684
|
if (/\b(week|weekly)\b/i.test(question))
|
|
406
685
|
return 'week';
|
|
407
686
|
if (/\b(month|monthly|mtd)\b/i.test(question))
|
|
408
|
-
return '
|
|
687
|
+
return 'month';
|
|
409
688
|
if (/\b(quarter|quarterly)\b/i.test(question))
|
|
410
689
|
return 'quarter';
|
|
411
690
|
if (/\b(year|yearly|annual|yoy)\b/i.test(question))
|
|
412
691
|
return 'year';
|
|
413
692
|
return undefined;
|
|
414
693
|
}
|
|
694
|
+
function explicitTimeGrain(value) {
|
|
695
|
+
const normalized = value?.trim().toLowerCase();
|
|
696
|
+
return normalized === 'day'
|
|
697
|
+
|| normalized === 'week'
|
|
698
|
+
|| normalized === 'month'
|
|
699
|
+
|| normalized === 'quarter'
|
|
700
|
+
|| normalized === 'year'
|
|
701
|
+
? normalized
|
|
702
|
+
: undefined;
|
|
703
|
+
}
|
|
704
|
+
/**
|
|
705
|
+
* The parser can represent an explicit time range without preserving every
|
|
706
|
+
* source token. Keep snapshot-only modifiers out of the physical date-role
|
|
707
|
+
* contract: a bare "current" / "latest" metric should be answered by its
|
|
708
|
+
* authored snapshot semantics, not fabricated into a time-axis request.
|
|
709
|
+
*/
|
|
710
|
+
function isSnapshotOnlyTimeRange(value) {
|
|
711
|
+
return /^(?:current|latest|snapshot|as[ -]?of[ -]?(?:latest|current))$/i.test(value.trim());
|
|
712
|
+
}
|
|
713
|
+
/**
|
|
714
|
+
* Detect temporal filters in the user's actual wording. `current` by itself
|
|
715
|
+
* deliberately does not match: `current BCM run rate` is a metric qualifier,
|
|
716
|
+
* whereas `current month` and `today` require a date role.
|
|
717
|
+
*/
|
|
718
|
+
function hasExplicitTemporalFilter(question) {
|
|
719
|
+
return /\b(?:today|yesterday)\b|\b(?:this|current|last|previous)\s+(?:day|week|month|quarter|year)\b|\b(?:month|quarter|year)[ -]to[ -]date\b|\b(?:mtd|qtd|ytd|last year|previous year|year over year|yoy)\b|\bfy\s?\d{2,4}\b|\bfiscal\s+year\s+\d{2,4}\b/i.test(question);
|
|
720
|
+
}
|
|
415
721
|
function extractLimit(question) {
|
|
416
722
|
const match = /\b(?:top|bottom)\s+(\d{1,4})\b/i.exec(question);
|
|
417
723
|
return match ? Math.max(1, Number(match[1])) : undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytical-frame.js","sourceRoot":"","sources":["../src/analytical-frame.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analytical-frame.js","sourceRoot":"","sources":["../src/analytical-frame.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,iCAAiC,EAAoG,MAAM,0BAA0B,CAAC;AAC/K,OAAO,EAAE,oBAAoB,EAA+G,MAAM,yBAAyB,CAAC;AAG5K;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAAC,KAG9C;IACC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IACpC,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACjE,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrF,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,EAAE,QAAQ;QACxD,CAAC,CAAC,MAAM,CAAC;YACL,IAAI,CAAC,kBAAkB,CAAC,QAAQ;YAChC,GAAG,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;SACnG,CAAC;QACJ,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC/B,MAAM,qBAAqB,GAAG,WAAW,CAAC,WAAW,EAAE,eAAe,CAAC;IACvE,MAAM,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CACnG,OAAO,CAAC,WAAW,KAAK,qBAAqB,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC;IACjF,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAC3E,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC,WAAW;QAClD,wEAAwE;QACxE,kEAAkE;QAClE,oEAAoE;QACpE,qEAAqE;WAClE,CAAC,OAAO,CAAC,WAAW,KAAK,qBAAqB,IAAI,mBAAmB,CAAC;QACzE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;QACvB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACX,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IAC5G,MAAM,2BAA2B,GAAG,WAAW,CAAC,OAAO,EAAE,iBAAiB,CAAC;IAC3E,MAAM,UAAU,GAAmC,mBAAmB,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC;QACrG,EAAE,WAAW,EAAE,IAAI,EAAE,UAAmB,EAAE;QAC1C,yEAAyE;QACzE,yEAAyE;QACzE,wEAAwE;QACxE,qEAAqE;QACrE,GAAG,CAAC,gBAAgB,IAAI,CAAC,2BAA2B;YAClD,CAAC,CAAC,WAAW,KAAK,2BAA2B;YAC7C,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;YACd,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,aAAsB,EAAE,CAAC;YACjD,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IACH,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QAClG,IAAI,WAAW,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;YACnH,UAAU,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IACD,IAAI,WAAW,CAAC,WAAW,EAAE,eAAe,EAAE,CAAC;QAC7C,UAAU,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,2EAA2E;IAC3E,0EAA0E;IAC1E,2EAA2E;IAC3E,wEAAwE;IACxE,4EAA4E;IAC5E,sEAAsE;IACtE,sBAAsB;IACtB,0EAA0E;IAC1E,4EAA4E;IAC5E,4EAA4E;IAC5E,qEAAqE;IACrE,MAAM,sBAAsB,GAAG;QAC7B,OAAO,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACvD,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrF,UAAU,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAC5D,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrF,OAAO,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CACrD,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KAC3G,CAAC;IACF,MAAM,qBAAqB,GAAG;QAC5B,OAAO,EAAE,IAAI,GAAG,CAAC,WAAW,CAAC,gBAAgB,CAAC;QAC9C,UAAU,EAAE,IAAI,GAAG,CAAC,WAAW,CAAC,UAAU;aACvC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC;aAC9C,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACzC,OAAO,EAAE,IAAI,GAAG,CAAC;YACf,GAAG,WAAW,CAAC,UAAU;iBACtB,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC;iBAC9C,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;YACxC,GAAG,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;SACpE,CAAC;KACH,CAAC;IACF,MAAM,2BAA2B,GAAG,IAAI,GAAG,EAAU,CAAC;IACtD,MAAM,yBAAyB,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QACvE,MAAM,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAC5B,wEAAwE;QACxE,uEAAuE;QACvE,2EAA2E;QAC3E,yEAAyE;QACzE,yEAAyE;QACzE,0EAA0E;QAC1E,yEAAyE;QACzE,2EAA2E;QAC3E,mCAAmC;QACnC,MAAM,cAAc,GAAG,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,SAAS;YACtF,CAAC,CAAC,EAAE,MAAM,EAAE,qBAAqB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,CAAC,IAAI,CAAC,EAAE;YAC7E,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,2BAA2B,GAAG,cAAc;YAChD,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CACpD,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC;uBACnC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC9C,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,2BAA2B,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7C,2BAA2B,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;YACxD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,oEAAoE;QACpE,yEAAyE;QACzE,2EAA2E;QAC3E,oEAAoE;QACpE,yEAAyE;QACzE,uDAAuD;QACvD,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,KAAK,YAAY;YACnC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC;YAC/E,CAAC,CAAC,IAAI,KAAK,SAAS;gBAClB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC;gBAC7E,CAAC,CAAC,IAAI,KAAK,SAAS;oBAClB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,EAAE,OAAO;oBAC7F,CAAC,CAAC,SAAS,CAAC;QAClB,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC;IACnD,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,eAAe,CAAC;QAChC,GAAG,yBAAyB;QAC5B,uEAAuE;QACvE,2EAA2E;QAC3E,0EAA0E;QAC1E,uEAAuE;QACvE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACzC,2BAA2B,CAAC,GAAG,CAAC,WAAW,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACxE,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChD,yEAAyE;QACzE,kEAAkE;QAClE,yEAAyE;QACzE,uBAAuB;QACvB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAC3C,2BAA2B,CAAC,GAAG,CAAC,cAAc,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3E,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,qBAAqB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACnD,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CACvC,2BAA2B,CAAC,GAAG,CAAC,WAAW,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/E,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;KACxD,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACjE,EAAE,EAAE,OAAO,CAAC,WAAW,CAAC;QACxB,IAAI,EAAE,WAAoB;KAC3B,CAAC,CAAC,CAAC;IACJ,MAAM,mBAAmB,GAAG,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACzE,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACzD,MAAM,aAAa,GAAkD,mBAAmB,CAAC,MAAM,GAAG,CAAC;QACjG,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACnC,GAAG,MAAM;YACT,GAAG,CAAC,UAAU,IAAI,MAAM,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrG,CAAC,CAAC;QACL,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAuB,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC7G,MAAM,mBAAmB,GAAG,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACpG,MAAM,gBAAgB,GAAG,aAAa,CAAC;QACrC,GAAG,gBAAgB;QACnB,GAAG,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW;eACzE,WAAW,CAAC,WAAW,EAAE,eAAe;eACxC,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QACpE,GAAG,aAAa;QAChB,GAAG,mBAAmB;KACvB,CAAC,CAAC;IACH,MAAM,qBAAqB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,WAAW,CAAC;IACxG,MAAM,OAAO,GAAG,gBAAgB,IAAI,qBAAqB,IAAI,gBAAgB,CAAC,CAAC,CAAC;QAC9E,CAAC,CAAC;YACE,iBAAiB,EAAE,qBAAqB;YACxC,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC;YAC/B,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1F,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,WAAW,CAAC,OAAO,EAAE,SAAS,IAAI,MAAM;YACvE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,WAAW,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;YAC3D,SAAS,EAAE,WAAW,CAAC,OAAO,EAAE,SAAS,IAAI,sBAA+B;SAC7E;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,SAAS,EAAE,GAAG,WAAW,CAAC;IAC9D,OAAO;QACL,GAAG,SAAS;QACZ,gBAAgB;QAChB,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc;QAClF,UAAU;QACV,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CACpD,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW;YAChE,CAAC,CAAC,CAAC;oBACC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW;oBACvC,eAAe,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;oBAC/B,MAAM,EAAE,UAAmB;oBAC3B,UAAU,EAAE,OAAgB;iBAC7B,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;QACT,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,gBAAgB;QAChB,SAAS;KACV,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAA0C,EAC1C,OAAkC;IAElC,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO,EAAE,CAAC;IAC7C,OAAO,CAAC;YACN,KAAK,EAAE,GAAG,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE;YACrC,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE;YAC9C,UAAU,EAAE,OAAO,CAAC,MAAM,KAAK,WAAW;gBACxC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,YAAY;gBAChD,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,aAAa;SACpD,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CACtB,OAA+C;IAE/C,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,CACvE,SAAS,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;WAC5B,SAAS,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU;WACzC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;AAC/F,CAAC;AAED,SAAS,aAAa,CACpB,OAAsD;IAEtD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC;AACpH,CAAC;AAED,SAAS,MAAM,CAAC,MAAgB;IAC9B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,KAuBjD;IACC,MAAM,UAAU,GAAG,iCAAiC,CAAC,KAAK,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;IACjG,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAClC,MAAM,kBAAkB,GAAG;QACzB,UAAU;QACV,GAAG,CAAC,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC;aAC9B,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;aAChE,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YACrB,MAAM,UAAU,GAAG,iCAAiC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YACrF,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;KACL,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CACjC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,CAAC;IAC7E,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,IAAI,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/E,IAAI,WAAW,KAAK,YAAY;QAAE,OAAO,SAAS,CAAC;IACnD,MAAM,WAAW,GAAuB;QACtC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,IAAI,EAAE;QACrD,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,IAAI,EAAE;QACzD,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,IAAI,EAAE;QACnD,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1G,CAAC;IACF,MAAM,gBAAgB,GAAG,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,IAAI,uCAAuC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtJ,MAAM,oBAAoB,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5F,MAAM,2BAA2B,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1G,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/F,yEAAyE;IACzE,0EAA0E;IAC1E,yEAAyE;IACzE,4EAA4E;IAC5E,mCAAmC;IACnC,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,oBAAoB,EAAE,GAAG,2BAA2B,CAAC,EAAE,CAAC;QAC7E,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,OAAO;QAAE,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/F,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACzC,0EAA0E;QAC1E,wEAAwE;QACxE,0EAA0E;QAC1E,wEAAwE;QACxE,IAAI,SAAS,CAAC,IAAI,KAAK,iBAAiB,IAAI,SAAS,CAAC,kBAAkB,KAAK,WAAW;YAAE,SAAS;QACnG,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAC1G,IAAI,CAAC,mBAAmB;YAAE,SAAS;QACnC,MAAM,KAAK,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5F,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YAC9D,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAA2C,EAAE,CAAC;IAC7D,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAA0D,CAAC;IAC7F,sEAAsE;IACtE,yEAAyE;IACzE,yEAAyE;IACzE,2EAA2E;IAC3E,0EAA0E;IAC1E,uCAAuC;IACvC,MAAM,yBAAyB,GAAG,IAAI,GAAG,EAAU,CAAC;IACpD,qEAAqE;IACrE,2EAA2E;IAC3E,2EAA2E;IAC3E,4EAA4E;IAC5E,0CAA0C;IAC1C,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,EAAE,CAAC,EAAE,CAAC;QAClE,qEAAqE;QACrE,yEAAyE;QACzE,gEAAgE;QAChE,MAAM,SAAS,GAAG,+BAA+B,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC1E,IAAI,SAAS;YAAE,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC1E,CAAC;IACD,KAAK,MAAM,SAAS,IAAI,2BAA2B,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,wBAAwB,CAAC;YACvC,SAAS;YACT,WAAW,EAAE,oBAAoB;YACjC,UAAU;YACV,gBAAgB;SACjB,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;YAC7D,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,WAAW,CAAC,CAAC;QACzD,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,SAAS,CAAC,IAAI,CAAC;gBACb,KAAK,EAAE,cAAc,SAAS,EAAE;gBAChC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE;gBACtE,UAAU,EAAE,qBAAqB;aAClC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,KAAK,MAAM,SAAS,IAAI,uBAAuB,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,oBAAoB,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAC9E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;aAClF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,SAAS,CAAC,IAAI,CAAC;gBACb,KAAK,EAAE,cAAc,SAAS,EAAE;gBAChC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE;gBACtE,UAAU,EAAE,qBAAqB;aAClC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC7C,MAAM,cAAc,GAAgD,EAAE,CAAC;IACvE,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAC5F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACnC,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;QAC9B,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC9C,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACzD,cAAc,CAAC,IAAI,CAAC;YAClB,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,eAAe,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;YAC/B,MAAM,EAAE,UAAU;YAClB,UAAU,EAAE,OAAO;SACpB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,cAAc,GAAG,gBAAgB,IAAI,kCAAkC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnG,MAAM,UAAU,GAAmC,EAAE,CAAC;IACtD,KAAK,MAAM,SAAS,IAAI,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC;QACpD,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC;QACpF,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxE,SAAS;QACX,CAAC;QACD,IAAI,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAClD,UAAU,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;YAC1E,MAAM,uBAAuB,GAAG,yBAAyB,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACrF,IAAI,gBAAgB;mBACf,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC;mBAChD,CAAC,yBAAyB,CAAC,IAAI,KAAK,CAAC,IAAI,uBAAuB,CAAC,EAAE,CAAC;gBACvE,UAAU,CAAC,IAAI,CAAC;oBACd,WAAW,EAAE,SAAS,CAAC,WAAW;oBAClC,IAAI,EAAE,aAAa;iBACpB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;YACzD,UAAU,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,0EAA0E;IAC1E,6EAA6E;IAC7E,4EAA4E;IAC5E,4EAA4E;IAC5E,wEAAwE;IACxE,8DAA8D;IAC9D,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtG,MAAM,aAAa,GACjB,OAAO,CAAC,WAAW,CAAC,SAAS,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;WAC9E,OAAO,CAAC,kBAAkB,CAAC;WAC3B,yBAAyB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,qBAAqB,GAAG,mDAAmD,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvG,MAAM,gBAAgB,GAAG,8IAA8I,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;WACvL,qBAAqB,CAAC;IAC3B,MAAM,WAAW,GAA6C,aAAa;QACzE,CAAC,CAAC;YACE,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC;gBACxC,CAAC,CAAC;oBACE,eAAe,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAE,CAAC,WAAW;oBAC1D,QAAQ,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAE,CAAC,IAAI;iBAC7C;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,yBAAyB;gBACjD,CAAC,CAAC;oBACE,kBAAkB,EAAE,UAAU,CAAC,SAAS,CAAC,yBAAyB;iBACnE;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,EAAE;gBACP,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1E,GAAG,CAAC,qBAAqB;oBACvB,CAAC,CAAC;wBACE;4BACE,EAAE,EAAE,eAAe;4BACnB,IAAI,EAAE,eAAwB;4BAC9B,eAAe,EAAE,SAAS;yBAC3B;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,CAAC,gBAAgB,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/G;SACF;QACH,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,kBAAkB,IAAI,EAAE,EAAE,CAAC;YAC7D,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,SAAS;YAC1F,WAAW,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC;YACzC,WAAW,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,CAAC;YAC7C,WAAW,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC;YACzC,WAAW,CAAC,kBAAkB,KAAK,MAAM,CAAC,kBAAkB,CAAC;QAC/D,CAAC;QACD,UAAU,CAAC,IAAI,CAAC;YACd,WAAW,EAAE,UAAU,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;YACpG,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;IACL,CAAC;IACD,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5F,MAAM,OAAO,GAAG,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CACpE,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CACvJ,CAAC;IACF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAE7I,MAAM,UAAU,GAAG,qBAAqB;QACtC,CAAC,CAAC;YACE,YAAY,EAAE,SAAS;YACvB,mBAAmB,EAAE,CAAC,eAAe,CAAC;YACtC,OAAO,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,eAAe,CAAwD;YAC5G,qBAAqB,EAAE,MAAe;SACvC;QACH,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;IAC/F,MAAM,OAAO,GACX,gBAAgB,IAAI,aAAa;QAC/B,CAAC,CAAC;YACE,iBAAiB,EAAE,aAAa,CAAC,WAAW;YAC5C,UAAU,EAAE,UAAU,CAAC,QAAQ;YAC/B,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,SAAS,EAAE,WAAW,CAAC,KAAK,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,KAAe,CAAC,CAAC,CAAE,MAAgB,CAAC;YACpH,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;YAC9D,SAAS,EAAE,sBAA+B;SAC3C;QACH,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,uBAAuB,GAAG,WAAW,KAAK,OAAO,IAAI,WAAW,EAAE,eAAe;QACrF,CAAC,CAAC,CAAC;gBACC,WAAW,EAAE,WAAW,CAAC,eAAe;gBACxC,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC;aAC/C,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,aAAa,GAAkD,kBAAkB,CAAC,OAAO,CAC7F,CAAC,gBAAgB,EAAiD,EAAE;QAClE,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,UAAU,EAAE,CAAC;YACf,OAAO;gBACL;oBACE,EAAE,EAAE,GAAG,WAAW,WAAW;oBAC7B,IAAI,EAAE,cAAc;oBACpB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;oBACnC,QAAQ,EAAE,SAAS;iBACpB;gBACD;oBACE,EAAE,EAAE,GAAG,WAAW,iBAAiB;oBACnC,IAAI,EAAE,cAAc;oBACpB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;oBACnC,QAAQ,EAAE,eAAe;iBAC1B;gBACD;oBACE,EAAE,EAAE,GAAG,WAAW,SAAS;oBAC3B,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;iBACpC;gBACD;oBACE,EAAE,EAAE,GAAG,WAAW,iBAAiB;oBACnC,IAAI,EAAE,eAAe;oBACrB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;iBACpC;aACF,CAAC;QACJ,CAAC;QACD,OAAO,CAAC;gBACN,EAAE,EAAE,WAAW;gBACf,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;gBACnC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChF,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IACF,MAAM,gBAAgB,GAAkD;QACtE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC7B,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC;YAClC,IAAI,EAAE,WAAoB;SAC3B,CAAC,CAAC;QACH,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC7C,EAAE,EAAE,SAAS,CAAC,QAAQ;YACtB,IAAI,EAAE,WAAoB;SAC3B,CAAC,CAAC;QACH,GAAG,aAAa;KACjB,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,CAAC;QACV,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC1C,YAAY,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW;QAC9D,gBAAgB,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC;QAC3E,cAAc;QACd,UAAU,EAAE,kBAAkB;QAC9B,cAAc;QACd,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,gBAAgB;QAChB,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gCAAgC,CAC9C,eAAuC,EACvC,mBAA2B;IAE3B,MAAM,UAAU,GAAG,iCAAiC,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;IAC3F,OAAO,UAAU,CAAC,CAAC,CAAC,+BAA+B,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACnG,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAiB,EAAE,UAAoC,EAAE,UAAoC;IACzH,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,SAAS,CAAC,IAAI,KAAK,iBAAiB;YAAE,SAAS;QACnD,MAAM,KAAK,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,WAAW,IAAI,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;YACtD,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,oBAAoB,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;AAC5I,CAAC;AAED,SAAS,0BAA0B,CAAC,EAAU,EAAE,UAAoC;IAClF,0EAA0E;IAC1E,yEAAyE;IACzE,2DAA2D;IAC3D,0EAA0E;IAC1E,yEAAyE;IACzE,2EAA2E;IAC3E,4EAA4E;IAC5E,oDAAoD;IACpD,MAAM,WAAW,GAAG,8BAA8B,CAAC,EAAE,CAAC,CAAC;IACvD,OAAO,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAC9C,SAAS,CAAC,WAAW,KAAK,WAAW;WAClC,oBAAoB,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,+BAA+B,CACtC,EAAU,EACV,UAAoC;IAEpC,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAC1B,MAAM,WAAW,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;IAC5D,OAAO,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAC9C,SAAS,CAAC,WAAW,KAAK,OAAO;WAC9B,SAAS,CAAC,WAAW,KAAK,WAAW;QACxC,qEAAqE;QACrE,oEAAoE;QACpE,mEAAmE;QACnE,sEAAsE;WACnE,8BAA8B,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,WAAW,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;GAMG;AACH,SAAS,wBAAwB,CAAC,KAKjC;IACC,uEAAuE;IACvE,2EAA2E;IAC3E,0EAA0E;IAC1E,qEAAqE;IACrE,mBAAmB;IACnB,MAAM,sBAAsB,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAC9E,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC;WAC1C,CAAC,KAAK,CAAC,gBAAgB;YACxB,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC;YAClD,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;WAC9C,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAC1E,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CACtE,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IACpD,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,mBAAmB,CAAC;IAE/D,yEAAyE;IACzE,4EAA4E;IAC5E,sEAAsE;IACtE,mEAAmE;IACnE,uEAAuE;IACvE,yEAAyE;IACzE,+DAA+D;IAC/D,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CACtE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CACpC,oBAAoB,CAAC,SAAS,EAAE,UAAU,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC;IAC9D,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,mBAAmB,CAAC;IAC/D,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CACjD,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CACpC,oBAAoB,CAAC,SAAS,EAAE,UAAU,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,oBAAoB,CAC3B,SAAyD,EACzD,UAAkB;IAElB,MAAM,gBAAgB,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,CAAC,gBAAgB;QAAE,OAAO,SAAS,CAAC;IACxC,wEAAwE;IACxE,0EAA0E;IAC1E,sEAAsE;IACtE,2EAA2E;IAC3E,MAAM,UAAU,GAAG;QACjB,SAAS,CAAC,KAAK;QACf,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC;KAC/B,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,gBAAgB,CAAC;QAAE,OAAO,OAAO,CAAC;IACjF,uEAAuE;IACvE,4EAA4E;IAC5E,0EAA0E;IAC1E,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,gBAAgB,GAAG,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACjG,sEAAsE;IACtE,4EAA4E;IAC5E,4DAA4D;IAC5D,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;QAC7E,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,8BAA8B,CAAC,EAAU;IAChD,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CACtB,oCAAoC,EACpC,qBAAqB,CACtB,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB,CAC3B,SAAyD,EACzD,SAAiB;IAEjB,MAAM,mBAAmB,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACjD,IAAI,CAAC,mBAAmB;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,mBAAmB;QAAE,OAAO,IAAI,CAAC;IAC1E,MAAM,UAAU,GAAG;QACjB,SAAS,CAAC,KAAK;QACf,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC;QAC9B,GAAG,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;KAC1C,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB,EAAE,MAAc;IACrD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IAChF,MAAM,WAAW,GAAG,MAAM;SACvB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,WAAW,CAAC;SAChB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAClF,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,KAAa;IAC7C,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAClC,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5F,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,KAAK;SACtB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,WAAW,CAAC;SAChB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IACxC,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK;SACT,WAAW,EAAE;SACb,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC;SACzB,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC9E,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,CACL,KAAK;SACF,KAAK,CAAC,UAAU,CAAC;SACjB,MAAM,CAAC,OAAO,CAAC;SACf,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CACnB,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACtC,IAAI,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1D,IAAI,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,MAAM,CAAC;IACvD,IAAI,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAC;IAC9D,IAAI,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IAChE,IAAI,+BAA+B,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,MAAM,CAAC;IAClE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAyB;IAClD,MAAM,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/C,OAAO,UAAU,KAAK,KAAK;WACtB,UAAU,KAAK,MAAM;WACrB,UAAU,KAAK,OAAO;WACtB,UAAU,KAAK,SAAS;WACxB,UAAU,KAAK,MAAM;QACxB,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAS,uBAAuB,CAAC,KAAa;IAC5C,OAAO,iEAAiE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9F,CAAC;AAED;;;;GAIG;AACH,SAAS,yBAAyB,CAAC,QAAgB;IACjD,OAAO,oPAAoP,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7Q,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB;IACpC,MAAM,KAAK,GAAG,iCAAiC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/D,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,CAAC"}
|