@spottoai/types-package 1.0.2-beta.352 → 1.0.2-beta.354

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 (53) hide show
  1. package/README.md +6 -0
  2. package/dist/aws/commitmentsPlanningValidation.d.ts.map +1 -1
  3. package/dist/aws/commitmentsPlanningValidation.js +2 -0
  4. package/dist/aws/commitmentsPlanningValidation.js.map +1 -1
  5. package/dist/aws/index.d.ts +2 -0
  6. package/dist/aws/index.d.ts.map +1 -1
  7. package/dist/aws/index.js +2 -0
  8. package/dist/aws/index.js.map +1 -1
  9. package/dist/aws/portalCommitmentsPlanningPublicArtifactValidation.d.ts +4 -0
  10. package/dist/aws/portalCommitmentsPlanningPublicArtifactValidation.d.ts.map +1 -0
  11. package/dist/aws/portalCommitmentsPlanningPublicArtifactValidation.js +513 -0
  12. package/dist/aws/portalCommitmentsPlanningPublicArtifactValidation.js.map +1 -0
  13. package/dist/aws/portalCommitmentsPlanningPublicArtifacts.d.ts +13 -0
  14. package/dist/aws/portalCommitmentsPlanningPublicArtifacts.d.ts.map +1 -0
  15. package/dist/aws/portalCommitmentsPlanningPublicArtifacts.js +5 -0
  16. package/dist/aws/portalCommitmentsPlanningPublicArtifacts.js.map +1 -0
  17. package/dist/aws/portalPublicArtifactHistoryTypes.d.ts +5 -0
  18. package/dist/aws/portalPublicArtifactHistoryTypes.d.ts.map +1 -1
  19. package/dist/aws/portalPublicArtifactHistoryTypes.js +6 -0
  20. package/dist/aws/portalPublicArtifactHistoryTypes.js.map +1 -1
  21. package/dist/aws/portalPublicArtifacts.d.ts +2 -1
  22. package/dist/aws/portalPublicArtifacts.d.ts.map +1 -1
  23. package/dist/aws/portalPublicArtifacts.js.map +1 -1
  24. package/dist/aws/publicArtifacts.d.ts +1 -1
  25. package/dist/aws/publicArtifacts.d.ts.map +1 -1
  26. package/dist/aws/publicArtifacts.js +1 -0
  27. package/dist/aws/publicArtifacts.js.map +1 -1
  28. package/dist/azure/commitmentsPlanning.d.ts +3 -1
  29. package/dist/azure/commitmentsPlanning.d.ts.map +1 -1
  30. package/dist/azure/common.d.ts +3 -0
  31. package/dist/azure/common.d.ts.map +1 -1
  32. package/dist/azure/costComposition.d.ts +74 -0
  33. package/dist/azure/costComposition.d.ts.map +1 -0
  34. package/dist/azure/costComposition.js +3 -0
  35. package/dist/azure/costComposition.js.map +1 -0
  36. package/dist/azure/prices.d.ts +3 -0
  37. package/dist/azure/prices.d.ts.map +1 -1
  38. package/dist/azure/recommendations.d.ts +3 -0
  39. package/dist/azure/recommendations.d.ts.map +1 -1
  40. package/dist/azure/recommendations.js.map +1 -1
  41. package/dist/azure/reports.d.ts +3 -0
  42. package/dist/azure/reports.d.ts.map +1 -1
  43. package/dist/azure/reports.js.map +1 -1
  44. package/dist/azure/subscriptions.d.ts +2 -0
  45. package/dist/azure/subscriptions.d.ts.map +1 -1
  46. package/dist/azure/views.d.ts +5 -0
  47. package/dist/azure/views.d.ts.map +1 -1
  48. package/dist/azure/views.js.map +1 -1
  49. package/dist/index.d.ts +1 -0
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +1 -0
  52. package/dist/index.js.map +1 -1
  53. package/package.json +17 -1
package/README.md CHANGED
@@ -56,6 +56,12 @@ branch, while the AWS branch requires a minimal account identity, `aws-native`
56
56
  source evidence, linked-account scope metadata, and provider-specific inventory
57
57
  shapes without introducing an AWS-only planning DTO.
58
58
 
59
+ The root and `/aws` entry points also own the immutable AWS Commitments Planning
60
+ Portal envelope, `commitments-planning.json.gz` logical name, artifact registry
61
+ relationship, and dependency-free allowlist validator. The validator binds the
62
+ envelope, provider scope, nested applied scopes, and account-bearing ARNs while
63
+ rejecting internal metadata, Azure-only fields, and undeclared public fields.
64
+
59
65
  The root and `/aws` entry points export the secret-free `AwsEstatesManifest`,
60
66
  AWS estate/account/billing-source command union, and company trust-setup
61
67
  contracts. The API-owned desired-state document is stored as
@@ -1 +1 @@
1
- {"version":3,"file":"commitmentsPlanningValidation.d.ts","sourceRoot":"","sources":["../../src/aws/commitmentsPlanningValidation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAqBlF;;;GAGG;AACH,wBAAgB,0CAA0C,CAAC,KAAK,EAAE,OAAO,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,0BAA0B,CAelJ"}
1
+ {"version":3,"file":"commitmentsPlanningValidation.d.ts","sourceRoot":"","sources":["../../src/aws/commitmentsPlanningValidation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAuBlF;;;GAGG;AACH,wBAAgB,0CAA0C,CAAC,KAAK,EAAE,OAAO,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,0BAA0B,CAelJ"}
@@ -5,6 +5,7 @@ const provider_js_1 = require("../common/provider.js");
5
5
  const pluginPublicArtifactValidationHelpers_js_1 = require("./pluginPublicArtifactValidationHelpers.js");
6
6
  const FORBIDDEN_AWS_COMMITMENTS_KEYS = new Set([
7
7
  'billingScopeId',
8
+ 'breakCostEstimate',
8
9
  'cloudAccountId',
9
10
  'companyId',
10
11
  'credentialHealth',
@@ -14,6 +15,7 @@ const FORBIDDEN_AWS_COMMITMENTS_KEYS = new Set([
14
15
  'quotePolicy',
15
16
  'resourceGroupId',
16
17
  'storageCapacity',
18
+ 'storageDimensions',
17
19
  'subscription',
18
20
  'subscriptionId',
19
21
  'tenantId',
@@ -1 +1 @@
1
- {"version":3,"file":"commitmentsPlanningValidation.js","sourceRoot":"","sources":["../../src/aws/commitmentsPlanningValidation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commitmentsPlanningValidation.js","sourceRoot":"","sources":["../../src/aws/commitmentsPlanningValidation.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ export * from './pluginPublicArtifacts';
5
5
  export * from './pluginPublicArtifactEvidence';
6
6
  export * from './pluginPublicArtifactValidation';
7
7
  export * from './portalPublicArtifacts';
8
+ export * from './portalCommitmentsPlanningPublicArtifacts';
9
+ export * from './portalCommitmentsPlanningPublicArtifactValidation';
8
10
  export * from './portalRelationshipPublicArtifacts';
9
11
  export * from './portalRelationshipResourceNodeTypes';
10
12
  export * from './portalRelationshipPublicArtifactValidation';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/aws/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,iCAAiC,CAAC;AAChD,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,yBAAyB,CAAC;AACxC,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,8CAA8C,CAAC;AAC7D,YAAY,EAAE,0BAA0B,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC3G,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kCAAkC,CAAC;AACjD,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/aws/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,iCAAiC,CAAC;AAChD,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,yBAAyB,CAAC;AACxC,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qDAAqD,CAAC;AACpE,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,8CAA8C,CAAC;AAC7D,YAAY,EAAE,0BAA0B,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC3G,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kCAAkC,CAAC;AACjD,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC"}
package/dist/aws/index.js CHANGED
@@ -21,6 +21,8 @@ __exportStar(require("./pluginPublicArtifacts"), exports);
21
21
  __exportStar(require("./pluginPublicArtifactEvidence"), exports);
22
22
  __exportStar(require("./pluginPublicArtifactValidation"), exports);
23
23
  __exportStar(require("./portalPublicArtifacts"), exports);
24
+ __exportStar(require("./portalCommitmentsPlanningPublicArtifacts"), exports);
25
+ __exportStar(require("./portalCommitmentsPlanningPublicArtifactValidation"), exports);
24
26
  __exportStar(require("./portalRelationshipPublicArtifacts"), exports);
25
27
  __exportStar(require("./portalRelationshipResourceNodeTypes"), exports);
26
28
  __exportStar(require("./portalRelationshipPublicArtifactValidation"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/aws/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,kEAAgD;AAChD,+CAA6B;AAC7B,0DAAwC;AACxC,iEAA+C;AAC/C,mEAAiD;AACjD,0DAAwC;AACxC,sEAAoD;AACpD,wEAAsD;AACtD,+EAA6D;AAE7D,qEAAmD;AACnD,uEAAqD;AACrD,iFAA+D;AAC/D,mEAAiD;AACjD,oDAAkC;AAClC,6CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/aws/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,kEAAgD;AAChD,+CAA6B;AAC7B,0DAAwC;AACxC,iEAA+C;AAC/C,mEAAiD;AACjD,0DAAwC;AACxC,6EAA2D;AAC3D,sFAAoE;AACpE,sEAAoD;AACpD,wEAAsD;AACtD,+EAA6D;AAE7D,qEAAmD;AACnD,uEAAqD;AACrD,iFAA+D;AAC/D,mEAAiD;AACjD,oDAAkC;AAClC,6CAA2B"}
@@ -0,0 +1,4 @@
1
+ import { type AwsPortalCommitmentsPlanningArtifact } from './portalCommitmentsPlanningPublicArtifacts.js';
2
+ /** Validates one untrusted immutable AWS Commitments Planning Portal artifact. */
3
+ export declare function validateAwsPortalCommitmentsPlanningArtifact(value: unknown): AwsPortalCommitmentsPlanningArtifact;
4
+ //# sourceMappingURL=portalCommitmentsPlanningPublicArtifactValidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portalCommitmentsPlanningPublicArtifactValidation.d.ts","sourceRoot":"","sources":["../../src/aws/portalCommitmentsPlanningPublicArtifactValidation.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,oCAAoC,EAC1C,MAAM,+CAA+C,CAAC;AAkCvD,kFAAkF;AAClF,wBAAgB,4CAA4C,CAAC,KAAK,EAAE,OAAO,GAAG,oCAAoC,CAQjH"}
@@ -0,0 +1,513 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateAwsPortalCommitmentsPlanningArtifact = validateAwsPortalCommitmentsPlanningArtifact;
4
+ const commitmentsPlanningValidation_js_1 = require("./commitmentsPlanningValidation.js");
5
+ const portalCommitmentsPlanningPublicArtifacts_js_1 = require("./portalCommitmentsPlanningPublicArtifacts.js");
6
+ const portalPublicArtifactValidationCommon_js_1 = require("./portalPublicArtifactValidationCommon.js");
7
+ const TOP_LEVEL_KEYS = [
8
+ 'schemaVersion',
9
+ 'portalSchemaVersion',
10
+ 'provider',
11
+ 'accountId',
12
+ 'artifactType',
13
+ 'artifactGeneration',
14
+ 'logicalName',
15
+ 'version',
16
+ 'generatedAt',
17
+ 'month',
18
+ 'providerScope',
19
+ 'utilizationSummary',
20
+ 'expirySummary',
21
+ 'inventory',
22
+ 'resourceCoverage',
23
+ 'obsoleteCandidates',
24
+ 'reallocationOpportunities',
25
+ 'pricingContext',
26
+ 'termStrategy',
27
+ 'freshness',
28
+ 'vendorRecommendations',
29
+ 'purchaseRecommendations',
30
+ 'diagnostics',
31
+ 'coverage',
32
+ 'renewals',
33
+ 'risk',
34
+ 'retirementImpact',
35
+ 'phasedOptions',
36
+ ];
37
+ /** Validates one untrusted immutable AWS Commitments Planning Portal artifact. */
38
+ function validateAwsPortalCommitmentsPlanningArtifact(value) {
39
+ const artifact = (0, portalPublicArtifactValidationCommon_js_1.asRecord)(value, 'artifact');
40
+ const { accountId } = (0, portalPublicArtifactValidationCommon_js_1.validatePortalEnvelope)(artifact, 'commitments-planning', TOP_LEVEL_KEYS);
41
+ (0, portalPublicArtifactValidationCommon_js_1.assertValue)(artifact.logicalName, portalCommitmentsPlanningPublicArtifacts_js_1.AWS_PORTAL_COMMITMENTS_PLANNING_LOGICAL_NAME, 'artifact.logicalName');
42
+ (0, commitmentsPlanningValidation_js_1.validateAwsCommitmentsPlanningViewIdentity)(artifact, accountId);
43
+ validateBody(artifact);
44
+ (0, portalPublicArtifactValidationCommon_js_1.assertPublicJson)(artifact, 'artifact');
45
+ return value;
46
+ }
47
+ function validateBody(artifact) {
48
+ exact(artifact.providerScope, ['providerName', 'providerScopeId'], 'artifact.providerScope');
49
+ validateUtilizationSummary(artifact.utilizationSummary, 'artifact.utilizationSummary');
50
+ exact(artifact.expirySummary, ['expired', 'expiring30d', 'expiring60d', 'expiring90d', 'expiring180d'], 'artifact.expirySummary');
51
+ records(artifact.inventory, 'artifact.inventory', validateInventory);
52
+ records(artifact.resourceCoverage, 'artifact.resourceCoverage', validateResourceCoverage);
53
+ records(artifact.obsoleteCandidates, 'artifact.obsoleteCandidates', validateObsoleteCandidate);
54
+ optionalRecords(artifact.reallocationOpportunities, 'artifact.reallocationOpportunities', validateReallocation);
55
+ validatePricingContext(artifact.pricingContext, 'artifact.pricingContext');
56
+ records(artifact.termStrategy, 'artifact.termStrategy', validateTermStrategy);
57
+ optionalRecord(artifact.freshness, 'artifact.freshness', validateFreshness);
58
+ optionalRecords(artifact.vendorRecommendations, 'artifact.vendorRecommendations', validateVendorRecommendation);
59
+ optionalRecords(artifact.purchaseRecommendations, 'artifact.purchaseRecommendations', validatePurchaseRecommendation);
60
+ optionalRecord(artifact.diagnostics, 'artifact.diagnostics', validateDiagnostics);
61
+ optionalRecords(artifact.coverage, 'artifact.coverage', validateCoverage);
62
+ optionalRecords(artifact.renewals, 'artifact.renewals', validateRenewal);
63
+ optionalRecord(artifact.risk, 'artifact.risk', validateRisk);
64
+ optionalRecords(artifact.retirementImpact, 'artifact.retirementImpact', validateRetirementImpact);
65
+ optionalRecords(artifact.phasedOptions, 'artifact.phasedOptions', validatePhasedOption);
66
+ }
67
+ function validateUtilizationSummary(value, field) {
68
+ const summary = exact(value, ['total', 'withData', 'sevenDayAverage', 'thirtyDayAverage', 'sevenDayAggregates', 'thirtyDayAggregates', 'byBenefitType'], field);
69
+ optionalRecords(summary.sevenDayAggregates, `${field}.sevenDayAggregates`, validateWeightedAggregate);
70
+ optionalRecords(summary.thirtyDayAggregates, `${field}.thirtyDayAggregates`, validateWeightedAggregate);
71
+ records(summary.byBenefitType, `${field}.byBenefitType`, (entry, itemField) => {
72
+ const item = exact(entry, ['benefitType', 'total', 'withData', 'sevenDayAverage', 'thirtyDayAverage', 'sevenDayAggregates', 'thirtyDayAggregates'], itemField);
73
+ optionalRecords(item.sevenDayAggregates, `${itemField}.sevenDayAggregates`, validateWeightedAggregate);
74
+ optionalRecords(item.thirtyDayAggregates, `${itemField}.thirtyDayAggregates`, validateWeightedAggregate);
75
+ });
76
+ }
77
+ function validateWeightedAggregate(value, field) {
78
+ exact(value, ['used', 'reserved', 'percentage', 'sampleCount', 'unit', 'currency'], field);
79
+ }
80
+ function validateInventory(value, field) {
81
+ const item = exact(value, [
82
+ 'id',
83
+ 'benefitType',
84
+ 'commitmentFamily',
85
+ 'sourceKind',
86
+ 'sourceId',
87
+ 'provider',
88
+ 'shape',
89
+ 'scope',
90
+ 'appliedScopeType',
91
+ 'appliedScopeProperties',
92
+ 'type',
93
+ 'displayName',
94
+ 'status',
95
+ 'purchaseDate',
96
+ 'expiryDate',
97
+ 'daysToExpiry',
98
+ 'reservedQuantity',
99
+ 'commitmentAmount',
100
+ 'commitmentCurrencyCode',
101
+ 'commitmentGrain',
102
+ 'commitmentUnit',
103
+ 'skuName',
104
+ 'skuDescription',
105
+ 'location',
106
+ 'term',
107
+ 'termMonths',
108
+ 'billingPlan',
109
+ 'appliedScopeDisplayName',
110
+ 'provisioningState',
111
+ 'renew',
112
+ 'purchasedQuantity',
113
+ 'usedQuantity',
114
+ 'remainingQuantity',
115
+ 'totalReservedQuantity',
116
+ 'reservedHours',
117
+ 'usedHours',
118
+ 'utilization',
119
+ 'coveragePercent',
120
+ 'annualCommittedCost',
121
+ 'optimizationImpact',
122
+ 'doNotRenewAnnualImpact',
123
+ 'riskLevel',
124
+ 'confidence',
125
+ 'linkedRecommendationIds',
126
+ 'renewalDecisionIds',
127
+ 'retirementImpactIds',
128
+ ], field);
129
+ optionalRecord(item.shape, `${field}.shape`, validateShape);
130
+ validateAppliedScope(item.appliedScopeProperties, `${field}.appliedScopeProperties`);
131
+ optionalRecord(item.utilization, `${field}.utilization`, (entry, itemField) => exact(entry, ['trend', 'oneDay', 'sevenDay', 'thirtyDay', 'source'], itemField));
132
+ optionalMoney(item.annualCommittedCost, `${field}.annualCommittedCost`);
133
+ optionalMoney(item.optimizationImpact, `${field}.optimizationImpact`);
134
+ optionalMoney(item.doNotRenewAnnualImpact, `${field}.doNotRenewAnnualImpact`);
135
+ }
136
+ function validateResourceCoverage(value, field) {
137
+ const item = exact(value, [
138
+ 'resourceId',
139
+ 'resourceName',
140
+ 'resourceType',
141
+ 'month',
142
+ 'windowStart',
143
+ 'windowEnd',
144
+ 'currency',
145
+ 'benefitIds',
146
+ 'benefitNames',
147
+ 'basis',
148
+ 'coveredQuantity',
149
+ 'eligibleQuantity',
150
+ 'coveredCost',
151
+ 'eligibleCost',
152
+ 'uncoveredCost',
153
+ 'coveragePercent',
154
+ 'recommendationIds',
155
+ 'recommendationType',
156
+ 'recommendedAction',
157
+ 'eligibility',
158
+ 'recommendationImpact',
159
+ 'source',
160
+ 'benefitBreakdown',
161
+ ], field);
162
+ optionalRecord(item.eligibility, `${field}.eligibility`, validateEligibility);
163
+ optionalRecord(item.recommendationImpact, `${field}.recommendationImpact`, (entry, itemField) => exact(entry, ['amount', 'currency', 'source'], itemField));
164
+ optionalRecord(item.source, `${field}.source`, validateSource);
165
+ optionalRecords(item.benefitBreakdown, `${field}.benefitBreakdown`, (entry, itemField) => exact(entry, ['benefitId', 'benefitName', 'coveredQuantity', 'coveredCost'], itemField));
166
+ }
167
+ function validateObsoleteCandidate(value, field) {
168
+ const item = exact(value, ['id', 'candidateType', 'reasonCodes', 'suggestedAction', 'confidence', 'impactEstimate', 'relatedBenefitIds'], field);
169
+ optionalRecord(item.impactEstimate, `${field}.impactEstimate`, (entry, itemField) => exact(entry, ['amount', 'currency', 'currencySymbol', 'source', 'notes', 'windowStart', 'windowEnd', 'flags'], itemField));
170
+ }
171
+ function validateReallocation(value, field) {
172
+ const item = exact(value, [
173
+ 'id',
174
+ 'fromResource',
175
+ 'toResource',
176
+ 'estimatedNetSavings',
177
+ 'currency',
178
+ 'source',
179
+ 'confidence',
180
+ 'assumptions',
181
+ 'benefitIds',
182
+ 'benefitNames',
183
+ 'recommendationIds',
184
+ 'obsoleteCandidateIds',
185
+ ], field);
186
+ validateReallocationResource(item.fromResource, `${field}.fromResource`);
187
+ validateReallocationResource(item.toResource, `${field}.toResource`);
188
+ }
189
+ function validateReallocationResource(value, field) {
190
+ exact(value, ['resourceId', 'resourceName', 'resourceType'], field);
191
+ }
192
+ function validatePurchaseRecommendation(value, field) {
193
+ const item = exact(value, [
194
+ 'id',
195
+ 'groupKey',
196
+ 'commitmentFamily',
197
+ 'action',
198
+ 'eligibility',
199
+ 'currentShape',
200
+ 'targetShape',
201
+ 'blockers',
202
+ 'unlockActions',
203
+ 'purchaseScope',
204
+ 'appliedScopeProperties',
205
+ 'source',
206
+ 'title',
207
+ 'description',
208
+ 'confidence',
209
+ 'riskLevel',
210
+ 'location',
211
+ 'skuName',
212
+ 'normalizedSkuName',
213
+ 'resourceType',
214
+ 'vmSizeFlexibilityGroup',
215
+ 'termMonths',
216
+ 'quantity',
217
+ 'coverageState',
218
+ 'estimatedAnnualSavings',
219
+ 'estimatedAnnualCost',
220
+ 'estimatedTermSavings',
221
+ 'estimatedTermCost',
222
+ 'termOptions',
223
+ 'impactedResources',
224
+ 'sourceRecommendationIds',
225
+ 'linkedCommitmentIds',
226
+ 'notes',
227
+ ], field);
228
+ optionalRecord(item.eligibility, `${field}.eligibility`, validateEligibility);
229
+ optionalRecord(item.currentShape, `${field}.currentShape`, validateShape);
230
+ validateShape(item.targetShape, `${field}.targetShape`);
231
+ optionalRecords(item.blockers, `${field}.blockers`, validateBlocker);
232
+ optionalRecords(item.unlockActions, `${field}.unlockActions`, validateUnlockAction);
233
+ validateAppliedScope(item.appliedScopeProperties, `${field}.appliedScopeProperties`);
234
+ validateSource(item.source, `${field}.source`);
235
+ optionalMoney(item.estimatedAnnualSavings, `${field}.estimatedAnnualSavings`);
236
+ optionalMoney(item.estimatedAnnualCost, `${field}.estimatedAnnualCost`);
237
+ optionalMoney(item.estimatedTermSavings, `${field}.estimatedTermSavings`);
238
+ optionalMoney(item.estimatedTermCost, `${field}.estimatedTermCost`);
239
+ optionalRecords(item.termOptions, `${field}.termOptions`, validateTermOption);
240
+ optionalRecords(item.impactedResources, `${field}.impactedResources`, validateResourceReference);
241
+ }
242
+ function validateEligibility(value, field) {
243
+ const eligibility = exact(value, [
244
+ 'status',
245
+ 'action',
246
+ 'currentShape',
247
+ 'targetShape',
248
+ 'targetSelectionStrategy',
249
+ 'targetSelectionReason',
250
+ 'blockers',
251
+ 'unlockActions',
252
+ 'source',
253
+ 'confidence',
254
+ ], field);
255
+ optionalRecord(eligibility.currentShape, `${field}.currentShape`, validateShape);
256
+ optionalRecord(eligibility.targetShape, `${field}.targetShape`, validateShape);
257
+ optionalRecords(eligibility.blockers, `${field}.blockers`, validateBlocker);
258
+ optionalRecords(eligibility.unlockActions, `${field}.unlockActions`, validateUnlockAction);
259
+ optionalRecord(eligibility.source, `${field}.source`, validateSource);
260
+ }
261
+ function validateShape(value, field) {
262
+ const shape = exact(value, [
263
+ 'provider',
264
+ 'resourceType',
265
+ 'commitmentFamily',
266
+ 'skuName',
267
+ 'normalizedSkuName',
268
+ 'location',
269
+ 'region',
270
+ 'availabilityZone',
271
+ 'platform',
272
+ 'reservationProductName',
273
+ 'reservedResourceType',
274
+ 'meterCategory',
275
+ 'meterSubCategory',
276
+ 'meterName',
277
+ 'unit',
278
+ 'attributes',
279
+ ], field);
280
+ if (shape.attributes !== undefined)
281
+ (0, portalPublicArtifactValidationCommon_js_1.asRecord)(shape.attributes, `${field}.attributes`);
282
+ }
283
+ function validateAppliedScope(value, field) {
284
+ exact(value, ['accountId', 'region', 'availabilityZone'], field);
285
+ }
286
+ function validateSource(value, field) {
287
+ exact(value, ['sourceKind', 'sourceId', 'sourceName', 'generatedAt', 'observedAt', 'notes'], field);
288
+ }
289
+ function validateBlocker(value, field) {
290
+ exact(value, ['code', 'message', 'source', 'sourceUrl', 'severity'], field);
291
+ }
292
+ function validateUnlockAction(value, field) {
293
+ exact(value, ['id', 'label', 'description', 'actionType', 'order', 'source'], field);
294
+ }
295
+ function validateTermOption(value, field) {
296
+ const option = exact(value, [
297
+ 'termMonths',
298
+ 'currentMonthly',
299
+ 'targetMonthly',
300
+ 'potentialMonthlySavings',
301
+ 'estimatedAnnualSavings',
302
+ 'estimatedAnnualCost',
303
+ 'estimatedTermSavings',
304
+ 'estimatedTermCost',
305
+ ], field);
306
+ optionalMoney(option.estimatedAnnualSavings, `${field}.estimatedAnnualSavings`);
307
+ optionalMoney(option.estimatedAnnualCost, `${field}.estimatedAnnualCost`);
308
+ optionalMoney(option.estimatedTermSavings, `${field}.estimatedTermSavings`);
309
+ optionalMoney(option.estimatedTermCost, `${field}.estimatedTermCost`);
310
+ }
311
+ function validateVendorRecommendation(value, field) {
312
+ const item = exact(value, [
313
+ 'id',
314
+ 'commitmentFamily',
315
+ 'source',
316
+ 'action',
317
+ 'title',
318
+ 'description',
319
+ 'confidence',
320
+ 'riskLevel',
321
+ 'estimatedAnnualSavings',
322
+ 'estimatedAnnualCost',
323
+ 'impactedResources',
324
+ 'linkedCommitmentIds',
325
+ ], field);
326
+ validateSource(item.source, `${field}.source`);
327
+ optionalMoney(item.estimatedAnnualSavings, `${field}.estimatedAnnualSavings`);
328
+ optionalMoney(item.estimatedAnnualCost, `${field}.estimatedAnnualCost`);
329
+ optionalRecords(item.impactedResources, `${field}.impactedResources`, validateResourceReference);
330
+ }
331
+ function validateDiagnostics(value, field) {
332
+ const diagnostics = exact(value, ['purchaseRecommendations'], field);
333
+ optionalRecord(diagnostics.purchaseRecommendations, `${field}.purchaseRecommendations`, (entry, itemField) => {
334
+ const recommendation = exact(entry, ['generatedAt', 'inputCounts', 'outputCounts', 'suppressedCounts', 'notes'], itemField);
335
+ optionalOpenRecord(recommendation.inputCounts, `${itemField}.inputCounts`);
336
+ optionalOpenRecord(recommendation.suppressedCounts, `${itemField}.suppressedCounts`);
337
+ optionalRecord(recommendation.outputCounts, `${itemField}.outputCounts`, (output, outputField) => {
338
+ const counts = exact(output, ['total', 'byAction', 'byStatus', 'bySourceKind', 'unattributed'], outputField);
339
+ optionalOpenRecord(counts.byAction, `${outputField}.byAction`);
340
+ optionalOpenRecord(counts.byStatus, `${outputField}.byStatus`);
341
+ optionalOpenRecord(counts.bySourceKind, `${outputField}.bySourceKind`);
342
+ });
343
+ });
344
+ }
345
+ function validateCoverage(value, field) {
346
+ const item = exact(value, [
347
+ 'commitmentFamily',
348
+ 'basis',
349
+ 'windowStart',
350
+ 'windowEnd',
351
+ 'eligibleCost',
352
+ 'coveredCost',
353
+ 'uncoveredCost',
354
+ 'coveragePercent',
355
+ 'impactedResources',
356
+ 'source',
357
+ ], field);
358
+ optionalMoney(item.eligibleCost, `${field}.eligibleCost`);
359
+ optionalMoney(item.coveredCost, `${field}.coveredCost`);
360
+ optionalMoney(item.uncoveredCost, `${field}.uncoveredCost`);
361
+ optionalRecords(item.impactedResources, `${field}.impactedResources`, validateResourceReference);
362
+ optionalRecord(item.source, `${field}.source`, validateSource);
363
+ }
364
+ function validateRenewal(value, field) {
365
+ const item = exact(value, [
366
+ 'id',
367
+ 'commitmentId',
368
+ 'commitmentFamily',
369
+ 'action',
370
+ 'title',
371
+ 'expiryDate',
372
+ 'daysToExpiry',
373
+ 'confidence',
374
+ 'riskLevel',
375
+ 'estimatedAnnualSavings',
376
+ 'estimatedAnnualCostDelta',
377
+ 'modernizationTarget',
378
+ 'impactedResources',
379
+ 'recommendationsToReview',
380
+ 'source',
381
+ ], field);
382
+ optionalMoney(item.estimatedAnnualSavings, `${field}.estimatedAnnualSavings`);
383
+ optionalMoney(item.estimatedAnnualCostDelta, `${field}.estimatedAnnualCostDelta`);
384
+ optionalRecord(item.modernizationTarget, `${field}.modernizationTarget`, (entry, itemField) => exact(entry, ['currentSku', 'targetSku', 'currentFamily', 'targetFamily', 'reasonCodes'], itemField));
385
+ optionalRecords(item.impactedResources, `${field}.impactedResources`, validateResourceReference);
386
+ optionalRecords(item.recommendationsToReview, `${field}.recommendationsToReview`, validateReviewSummary);
387
+ optionalRecord(item.source, `${field}.source`, validateSource);
388
+ }
389
+ function validateReviewSummary(value, field) {
390
+ const item = exact(value, [
391
+ 'id',
392
+ 'name',
393
+ 'category',
394
+ 'subCategory',
395
+ 'impact',
396
+ 'effort',
397
+ 'risk',
398
+ 'priorityTier',
399
+ 'headline',
400
+ 'plainSummary',
401
+ 'normalizedScore',
402
+ 'finalScore',
403
+ 'estimatedSavings',
404
+ 'resourceIds',
405
+ 'reasons',
406
+ ], field);
407
+ optionalMoney(item.estimatedSavings, `${field}.estimatedSavings`);
408
+ }
409
+ function validateRisk(value, field) {
410
+ exact(value, ['overallRisk', 'overcommitmentRisk', 'undercoverageRisk', 'staleDataRisk', 'currency', 'expectedWaste', 'expectedUncoveredCost', 'notes'], field);
411
+ }
412
+ function validateRetirementImpact(value, field) {
413
+ const item = exact(value, [
414
+ 'id',
415
+ 'commitmentId',
416
+ 'commitmentFamily',
417
+ 'scenario',
418
+ 'title',
419
+ 'effectiveDate',
420
+ 'incrementalMonthlyCost',
421
+ 'incrementalAnnualCost',
422
+ 'impactedResources',
423
+ 'linkedRetirementIds',
424
+ 'confidence',
425
+ 'riskLevel',
426
+ 'source',
427
+ ], field);
428
+ optionalMoney(item.incrementalMonthlyCost, `${field}.incrementalMonthlyCost`);
429
+ optionalMoney(item.incrementalAnnualCost, `${field}.incrementalAnnualCost`);
430
+ optionalRecords(item.impactedResources, `${field}.impactedResources`, validateResourceReference);
431
+ optionalRecord(item.source, `${field}.source`, validateSource);
432
+ }
433
+ function validatePhasedOption(value, field) {
434
+ const item = exact(value, [
435
+ 'id',
436
+ 'label',
437
+ 'commitmentFamily',
438
+ 'action',
439
+ 'termMonths',
440
+ 'quantity',
441
+ 'hourlyCommitmentAmount',
442
+ 'annualCommitmentCost',
443
+ 'estimatedAnnualSavings',
444
+ 'expectedCoveragePercent',
445
+ 'expectedWastePercent',
446
+ 'confidence',
447
+ 'riskLevel',
448
+ 'impactedResources',
449
+ 'source',
450
+ ], field);
451
+ optionalMoney(item.hourlyCommitmentAmount, `${field}.hourlyCommitmentAmount`);
452
+ optionalMoney(item.annualCommitmentCost, `${field}.annualCommitmentCost`);
453
+ optionalMoney(item.estimatedAnnualSavings, `${field}.estimatedAnnualSavings`);
454
+ optionalRecords(item.impactedResources, `${field}.impactedResources`, validateResourceReference);
455
+ optionalRecord(item.source, `${field}.source`, validateSource);
456
+ }
457
+ function validateFreshness(value, field) {
458
+ const freshness = exact(value, ['status', 'generatedAt', 'entries', 'warnings'], field);
459
+ records(freshness.entries, `${field}.entries`, (entry, itemField) => exact(entry, ['section', 'status', 'generatedAt', 'observedAt', 'lastSuccessfulSyncAt', 'reason', 'sourceKind'], itemField));
460
+ }
461
+ function validatePricingContext(value, field) {
462
+ exact(value, ['source', 'currency', 'assumptions', 'confidenceNotes', 'calculatorDeepLink'], field);
463
+ }
464
+ function validateTermStrategy(value, field) {
465
+ const scenario = exact(value, [
466
+ 'scenarioId',
467
+ 'termMonths',
468
+ 'breakMonth',
469
+ 'policyInputs',
470
+ 'projectedGrossSavings',
471
+ 'projectedBreakCost',
472
+ 'projectedNetSavings',
473
+ 'annualizedProjectedNetSavings',
474
+ 'breakEvenMonth',
475
+ 'recommended',
476
+ 'currency',
477
+ 'notes',
478
+ ], field);
479
+ exact(scenario.policyInputs, ['earlyTerminationFeePercent', 'rollingCancellationCap', 'exchangeAllowed', 'policyVersion'], `${field}.policyInputs`);
480
+ }
481
+ function validateMoney(value, field) {
482
+ exact(value, ['amount', 'currency', 'source', 'windowStart', 'windowEnd', 'flags'], field);
483
+ }
484
+ function validateResourceReference(value, field) {
485
+ exact(value, ['resourceId', 'resourceName', 'resourceType', 'location'], field);
486
+ }
487
+ function exact(value, allowed, field) {
488
+ const record = (0, portalPublicArtifactValidationCommon_js_1.asRecord)(value, field);
489
+ (0, portalPublicArtifactValidationCommon_js_1.assertExactKeys)(record, allowed, field);
490
+ return record;
491
+ }
492
+ function records(value, field, validate) {
493
+ if (!Array.isArray(value))
494
+ throw new Error(`${field} must be an array.`);
495
+ value.forEach((entry, index) => validate(entry, `${field}[${index}]`));
496
+ }
497
+ function optionalRecords(value, field, validate) {
498
+ if (value !== undefined)
499
+ records(value, field, validate);
500
+ }
501
+ function optionalRecord(value, field, validate) {
502
+ if (value !== undefined)
503
+ validate(value, field);
504
+ }
505
+ function optionalOpenRecord(value, field) {
506
+ if (value !== undefined)
507
+ (0, portalPublicArtifactValidationCommon_js_1.asRecord)(value, field);
508
+ }
509
+ function optionalMoney(value, field) {
510
+ if (value !== undefined)
511
+ validateMoney(value, field);
512
+ }
513
+ //# sourceMappingURL=portalCommitmentsPlanningPublicArtifactValidation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portalCommitmentsPlanningPublicArtifactValidation.js","sourceRoot":"","sources":["../../src/aws/portalCommitmentsPlanningPublicArtifactValidation.ts"],"names":[],"mappings":";;AAuCA,oGAQC;AA/CD,yFAAgG;AAChG,+GAGuD;AACvD,uGAA6I;AAE7I,MAAM,cAAc,GAAG;IACrB,eAAe;IACf,qBAAqB;IACrB,UAAU;IACV,WAAW;IACX,cAAc;IACd,oBAAoB;IACpB,aAAa;IACb,SAAS;IACT,aAAa;IACb,OAAO;IACP,eAAe;IACf,oBAAoB;IACpB,eAAe;IACf,WAAW;IACX,kBAAkB;IAClB,oBAAoB;IACpB,2BAA2B;IAC3B,gBAAgB;IAChB,cAAc;IACd,WAAW;IACX,uBAAuB;IACvB,yBAAyB;IACzB,aAAa;IACb,UAAU;IACV,UAAU;IACV,MAAM;IACN,kBAAkB;IAClB,eAAe;CACP,CAAC;AAEX,kFAAkF;AAClF,SAAgB,4CAA4C,CAAC,KAAc;IACzE,MAAM,QAAQ,GAAG,IAAA,kDAAQ,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC7C,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,gEAAsB,EAAC,QAAQ,EAAE,sBAAsB,EAAE,cAAc,CAAC,CAAC;IAC/F,IAAA,qDAAW,EAAC,QAAQ,CAAC,WAAW,EAAE,0FAA4C,EAAE,sBAAsB,CAAC,CAAC;IACxG,IAAA,6EAA0C,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAChE,YAAY,CAAC,QAAQ,CAAC,CAAC;IACvB,IAAA,0DAAgB,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACvC,OAAO,KAA6C,CAAC;AACvD,CAAC;AAED,SAAS,YAAY,CAAC,QAAiC;IACrD,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,cAAc,EAAE,iBAAiB,CAAC,EAAE,wBAAwB,CAAC,CAAC;IAC7F,0BAA0B,CAAC,QAAQ,CAAC,kBAAkB,EAAE,6BAA6B,CAAC,CAAC;IACvF,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,CAAC,EAAE,wBAAwB,CAAC,CAAC;IAClI,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,oBAAoB,EAAE,iBAAiB,CAAC,CAAC;IACrE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,EAAE,2BAA2B,EAAE,wBAAwB,CAAC,CAAC;IAC1F,OAAO,CAAC,QAAQ,CAAC,kBAAkB,EAAE,6BAA6B,EAAE,yBAAyB,CAAC,CAAC;IAC/F,eAAe,CAAC,QAAQ,CAAC,yBAAyB,EAAE,oCAAoC,EAAE,oBAAoB,CAAC,CAAC;IAChH,sBAAsB,CAAC,QAAQ,CAAC,cAAc,EAAE,yBAAyB,CAAC,CAAC;IAC3E,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,uBAAuB,EAAE,oBAAoB,CAAC,CAAC;IAC9E,cAAc,CAAC,QAAQ,CAAC,SAAS,EAAE,oBAAoB,EAAE,iBAAiB,CAAC,CAAC;IAC5E,eAAe,CAAC,QAAQ,CAAC,qBAAqB,EAAE,gCAAgC,EAAE,4BAA4B,CAAC,CAAC;IAChH,eAAe,CAAC,QAAQ,CAAC,uBAAuB,EAAE,kCAAkC,EAAE,8BAA8B,CAAC,CAAC;IACtH,cAAc,CAAC,QAAQ,CAAC,WAAW,EAAE,sBAAsB,EAAE,mBAAmB,CAAC,CAAC;IAClF,eAAe,CAAC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;IAC1E,eAAe,CAAC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,EAAE,eAAe,CAAC,CAAC;IACzE,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;IAC7D,eAAe,CAAC,QAAQ,CAAC,gBAAgB,EAAE,2BAA2B,EAAE,wBAAwB,CAAC,CAAC;IAClG,eAAe,CAAC,QAAQ,CAAC,aAAa,EAAE,wBAAwB,EAAE,oBAAoB,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAc,EAAE,KAAa;IAC/D,MAAM,OAAO,GAAG,KAAK,CACnB,KAAK,EACL,CAAC,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,eAAe,CAAC,EAC1H,KAAK,CACN,CAAC;IACF,eAAe,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,KAAK,qBAAqB,EAAE,yBAAyB,CAAC,CAAC;IACtG,eAAe,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,KAAK,sBAAsB,EAAE,yBAAyB,CAAC,CAAC;IACxG,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,KAAK,gBAAgB,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;QAC5E,MAAM,IAAI,GAAG,KAAK,CAChB,KAAK,EACL,CAAC,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,qBAAqB,CAAC,EACxH,SAAS,CACV,CAAC;QACF,eAAe,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,SAAS,qBAAqB,EAAE,yBAAyB,CAAC,CAAC;QACvG,eAAe,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,SAAS,sBAAsB,EAAE,yBAAyB,CAAC,CAAC;IAC3G,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAc,EAAE,KAAa;IAC9D,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc,EAAE,KAAa;IACtD,MAAM,IAAI,GAAG,KAAK,CAChB,KAAK,EACL;QACE,IAAI;QACJ,aAAa;QACb,kBAAkB;QAClB,YAAY;QACZ,UAAU;QACV,UAAU;QACV,OAAO;QACP,OAAO;QACP,kBAAkB;QAClB,wBAAwB;QACxB,MAAM;QACN,aAAa;QACb,QAAQ;QACR,cAAc;QACd,YAAY;QACZ,cAAc;QACd,kBAAkB;QAClB,kBAAkB;QAClB,wBAAwB;QACxB,iBAAiB;QACjB,gBAAgB;QAChB,SAAS;QACT,gBAAgB;QAChB,UAAU;QACV,MAAM;QACN,YAAY;QACZ,aAAa;QACb,yBAAyB;QACzB,mBAAmB;QACnB,OAAO;QACP,mBAAmB;QACnB,cAAc;QACd,mBAAmB;QACnB,uBAAuB;QACvB,eAAe;QACf,WAAW;QACX,aAAa;QACb,iBAAiB;QACjB,qBAAqB;QACrB,oBAAoB;QACpB,wBAAwB;QACxB,WAAW;QACX,YAAY;QACZ,yBAAyB;QACzB,oBAAoB;QACpB,qBAAqB;KACtB,EACD,KAAK,CACN,CAAC;IACF,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,KAAK,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC5D,oBAAoB,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,KAAK,yBAAyB,CAAC,CAAC;IACrF,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAC5E,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,CAChF,CAAC;IACF,aAAa,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,KAAK,sBAAsB,CAAC,CAAC;IACxE,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,KAAK,qBAAqB,CAAC,CAAC;IACtE,aAAa,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,KAAK,yBAAyB,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc,EAAE,KAAa;IAC7D,MAAM,IAAI,GAAG,KAAK,CAChB,KAAK,EACL;QACE,YAAY;QACZ,cAAc;QACd,cAAc;QACd,OAAO;QACP,aAAa;QACb,WAAW;QACX,UAAU;QACV,YAAY;QACZ,cAAc;QACd,OAAO;QACP,iBAAiB;QACjB,kBAAkB;QAClB,aAAa;QACb,cAAc;QACd,eAAe;QACf,iBAAiB;QACjB,mBAAmB;QACnB,oBAAoB;QACpB,mBAAmB;QACnB,aAAa;QACb,sBAAsB;QACtB,QAAQ;QACR,kBAAkB;KACnB,EACD,KAAK,CACN,CAAC;IACF,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,EAAE,mBAAmB,CAAC,CAAC;IAC9E,cAAc,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,KAAK,uBAAuB,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAC9F,KAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,CAC1D,CAAC;IACF,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,EAAE,cAAc,CAAC,CAAC;IAC/D,eAAe,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,KAAK,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CACvF,KAAK,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,CACxF,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAc,EAAE,KAAa;IAC9D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,KAAK,CAAC,CAAC;IACjJ,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,KAAK,iBAAiB,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAClF,KAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,CAC1H,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc,EAAE,KAAa;IACzD,MAAM,IAAI,GAAG,KAAK,CAChB,KAAK,EACL;QACE,IAAI;QACJ,cAAc;QACd,YAAY;QACZ,qBAAqB;QACrB,UAAU;QACV,QAAQ;QACR,YAAY;QACZ,aAAa;QACb,YAAY;QACZ,cAAc;QACd,mBAAmB;QACnB,sBAAsB;KACvB,EACD,KAAK,CACN,CAAC;IACF,4BAA4B,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,KAAK,eAAe,CAAC,CAAC;IACzE,4BAA4B,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,KAAK,aAAa,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,4BAA4B,CAAC,KAAc,EAAE,KAAa;IACjE,KAAK,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,8BAA8B,CAAC,KAAc,EAAE,KAAa;IACnE,MAAM,IAAI,GAAG,KAAK,CAChB,KAAK,EACL;QACE,IAAI;QACJ,UAAU;QACV,kBAAkB;QAClB,QAAQ;QACR,aAAa;QACb,cAAc;QACd,aAAa;QACb,UAAU;QACV,eAAe;QACf,eAAe;QACf,wBAAwB;QACxB,QAAQ;QACR,OAAO;QACP,aAAa;QACb,YAAY;QACZ,WAAW;QACX,UAAU;QACV,SAAS;QACT,mBAAmB;QACnB,cAAc;QACd,wBAAwB;QACxB,YAAY;QACZ,UAAU;QACV,eAAe;QACf,wBAAwB;QACxB,qBAAqB;QACrB,sBAAsB;QACtB,mBAAmB;QACnB,aAAa;QACb,mBAAmB;QACnB,yBAAyB;QACzB,qBAAqB;QACrB,OAAO;KACR,EACD,KAAK,CACN,CAAC;IACF,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,EAAE,mBAAmB,CAAC,CAAC;IAC9E,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,KAAK,eAAe,EAAE,aAAa,CAAC,CAAC;IAC1E,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,CAAC,CAAC;IACxD,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,KAAK,WAAW,EAAE,eAAe,CAAC,CAAC;IACrE,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,KAAK,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;IACpF,oBAAoB,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,KAAK,yBAAyB,CAAC,CAAC;IACrF,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC;IAC/C,aAAa,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,KAAK,yBAAyB,CAAC,CAAC;IAC9E,aAAa,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,KAAK,sBAAsB,CAAC,CAAC;IACxE,aAAa,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,KAAK,uBAAuB,CAAC,CAAC;IAC1E,aAAa,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,KAAK,oBAAoB,CAAC,CAAC;IACpE,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,EAAE,kBAAkB,CAAC,CAAC;IAC9E,eAAe,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,KAAK,oBAAoB,EAAE,yBAAyB,CAAC,CAAC;AACnG,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc,EAAE,KAAa;IACxD,MAAM,WAAW,GAAG,KAAK,CACvB,KAAK,EACL;QACE,QAAQ;QACR,QAAQ;QACR,cAAc;QACd,aAAa;QACb,yBAAyB;QACzB,uBAAuB;QACvB,UAAU;QACV,eAAe;QACf,QAAQ;QACR,YAAY;KACb,EACD,KAAK,CACN,CAAC;IACF,cAAc,CAAC,WAAW,CAAC,YAAY,EAAE,GAAG,KAAK,eAAe,EAAE,aAAa,CAAC,CAAC;IACjF,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,EAAE,aAAa,CAAC,CAAC;IAC/E,eAAe,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,KAAK,WAAW,EAAE,eAAe,CAAC,CAAC;IAC5E,eAAe,CAAC,WAAW,CAAC,aAAa,EAAE,GAAG,KAAK,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;IAC3F,cAAc,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,EAAE,cAAc,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,KAAa;IAClD,MAAM,KAAK,GAAG,KAAK,CACjB,KAAK,EACL;QACE,UAAU;QACV,cAAc;QACd,kBAAkB;QAClB,SAAS;QACT,mBAAmB;QACnB,UAAU;QACV,QAAQ;QACR,kBAAkB;QAClB,UAAU;QACV,wBAAwB;QACxB,sBAAsB;QACtB,eAAe;QACf,kBAAkB;QAClB,WAAW;QACX,MAAM;QACN,YAAY;KACb,EACD,KAAK,CACN,CAAC;IACF,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;QAAE,IAAA,kDAAQ,EAAC,KAAK,CAAC,UAAU,EAAE,GAAG,KAAK,aAAa,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc,EAAE,KAAa;IACzD,KAAK,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,kBAAkB,CAAC,EAAE,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,KAAa;IACnD,KAAK,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;AACtG,CAAC;AAED,SAAS,eAAe,CAAC,KAAc,EAAE,KAAa;IACpD,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc,EAAE,KAAa;IACzD,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc,EAAE,KAAa;IACvD,MAAM,MAAM,GAAG,KAAK,CAClB,KAAK,EACL;QACE,YAAY;QACZ,gBAAgB;QAChB,eAAe;QACf,yBAAyB;QACzB,wBAAwB;QACxB,qBAAqB;QACrB,sBAAsB;QACtB,mBAAmB;KACpB,EACD,KAAK,CACN,CAAC;IACF,aAAa,CAAC,MAAM,CAAC,sBAAsB,EAAE,GAAG,KAAK,yBAAyB,CAAC,CAAC;IAChF,aAAa,CAAC,MAAM,CAAC,mBAAmB,EAAE,GAAG,KAAK,sBAAsB,CAAC,CAAC;IAC1E,aAAa,CAAC,MAAM,CAAC,oBAAoB,EAAE,GAAG,KAAK,uBAAuB,CAAC,CAAC;IAC5E,aAAa,CAAC,MAAM,CAAC,iBAAiB,EAAE,GAAG,KAAK,oBAAoB,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,4BAA4B,CAAC,KAAc,EAAE,KAAa;IACjE,MAAM,IAAI,GAAG,KAAK,CAChB,KAAK,EACL;QACE,IAAI;QACJ,kBAAkB;QAClB,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,aAAa;QACb,YAAY;QACZ,WAAW;QACX,wBAAwB;QACxB,qBAAqB;QACrB,mBAAmB;QACnB,qBAAqB;KACtB,EACD,KAAK,CACN,CAAC;IACF,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC;IAC/C,aAAa,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,KAAK,yBAAyB,CAAC,CAAC;IAC9E,aAAa,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,KAAK,sBAAsB,CAAC,CAAC;IACxE,eAAe,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,KAAK,oBAAoB,EAAE,yBAAyB,CAAC,CAAC;AACnG,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc,EAAE,KAAa;IACxD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,yBAAyB,CAAC,EAAE,KAAK,CAAC,CAAC;IACrE,cAAc,CAAC,WAAW,CAAC,uBAAuB,EAAE,GAAG,KAAK,0BAA0B,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;QAC3G,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;QAC5H,kBAAkB,CAAC,cAAc,CAAC,WAAW,EAAE,GAAG,SAAS,cAAc,CAAC,CAAC;QAC3E,kBAAkB,CAAC,cAAc,CAAC,gBAAgB,EAAE,GAAG,SAAS,mBAAmB,CAAC,CAAC;QACrF,cAAc,CAAC,cAAc,CAAC,YAAY,EAAE,GAAG,SAAS,eAAe,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;YAC/F,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE,WAAW,CAAC,CAAC;YAC7G,kBAAkB,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,WAAW,WAAW,CAAC,CAAC;YAC/D,kBAAkB,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,WAAW,WAAW,CAAC,CAAC;YAC/D,kBAAkB,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,WAAW,eAAe,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc,EAAE,KAAa;IACrD,MAAM,IAAI,GAAG,KAAK,CAChB,KAAK,EACL;QACE,kBAAkB;QAClB,OAAO;QACP,aAAa;QACb,WAAW;QACX,cAAc;QACd,aAAa;QACb,eAAe;QACf,iBAAiB;QACjB,mBAAmB;QACnB,QAAQ;KACT,EACD,KAAK,CACN,CAAC;IACF,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,KAAK,eAAe,CAAC,CAAC;IAC1D,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,CAAC,CAAC;IACxD,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,KAAK,gBAAgB,CAAC,CAAC;IAC5D,eAAe,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,KAAK,oBAAoB,EAAE,yBAAyB,CAAC,CAAC;IACjG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,EAAE,cAAc,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,eAAe,CAAC,KAAc,EAAE,KAAa;IACpD,MAAM,IAAI,GAAG,KAAK,CAChB,KAAK,EACL;QACE,IAAI;QACJ,cAAc;QACd,kBAAkB;QAClB,QAAQ;QACR,OAAO;QACP,YAAY;QACZ,cAAc;QACd,YAAY;QACZ,WAAW;QACX,wBAAwB;QACxB,0BAA0B;QAC1B,qBAAqB;QACrB,mBAAmB;QACnB,yBAAyB;QACzB,QAAQ;KACT,EACD,KAAK,CACN,CAAC;IACF,aAAa,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,KAAK,yBAAyB,CAAC,CAAC;IAC9E,aAAa,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,KAAK,2BAA2B,CAAC,CAAC;IAClF,cAAc,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,KAAK,sBAAsB,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAC5F,KAAK,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,CACrG,CAAC;IACF,eAAe,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,KAAK,oBAAoB,EAAE,yBAAyB,CAAC,CAAC;IACjG,eAAe,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,KAAK,0BAA0B,EAAE,qBAAqB,CAAC,CAAC;IACzG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,EAAE,cAAc,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc,EAAE,KAAa;IAC1D,MAAM,IAAI,GAAG,KAAK,CAChB,KAAK,EACL;QACE,IAAI;QACJ,MAAM;QACN,UAAU;QACV,aAAa;QACb,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,cAAc;QACd,UAAU;QACV,cAAc;QACd,iBAAiB;QACjB,YAAY;QACZ,kBAAkB;QAClB,aAAa;QACb,SAAS;KACV,EACD,KAAK,CACN,CAAC;IACF,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,KAAK,mBAAmB,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,KAAa;IACjD,KAAK,CACH,KAAK,EACL,CAAC,aAAa,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,uBAAuB,EAAE,OAAO,CAAC,EAC1I,KAAK,CACN,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc,EAAE,KAAa;IAC7D,MAAM,IAAI,GAAG,KAAK,CAChB,KAAK,EACL;QACE,IAAI;QACJ,cAAc;QACd,kBAAkB;QAClB,UAAU;QACV,OAAO;QACP,eAAe;QACf,wBAAwB;QACxB,uBAAuB;QACvB,mBAAmB;QACnB,qBAAqB;QACrB,YAAY;QACZ,WAAW;QACX,QAAQ;KACT,EACD,KAAK,CACN,CAAC;IACF,aAAa,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,KAAK,yBAAyB,CAAC,CAAC;IAC9E,aAAa,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,KAAK,wBAAwB,CAAC,CAAC;IAC5E,eAAe,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,KAAK,oBAAoB,EAAE,yBAAyB,CAAC,CAAC;IACjG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,EAAE,cAAc,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc,EAAE,KAAa;IACzD,MAAM,IAAI,GAAG,KAAK,CAChB,KAAK,EACL;QACE,IAAI;QACJ,OAAO;QACP,kBAAkB;QAClB,QAAQ;QACR,YAAY;QACZ,UAAU;QACV,wBAAwB;QACxB,sBAAsB;QACtB,wBAAwB;QACxB,yBAAyB;QACzB,sBAAsB;QACtB,YAAY;QACZ,WAAW;QACX,mBAAmB;QACnB,QAAQ;KACT,EACD,KAAK,CACN,CAAC;IACF,aAAa,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,KAAK,yBAAyB,CAAC,CAAC;IAC9E,aAAa,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,KAAK,uBAAuB,CAAC,CAAC;IAC1E,aAAa,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,KAAK,yBAAyB,CAAC,CAAC;IAC9E,eAAe,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,KAAK,oBAAoB,EAAE,yBAAyB,CAAC,CAAC;IACjG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,EAAE,cAAc,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc,EAAE,KAAa;IACtD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;IACxF,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAClE,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,sBAAsB,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,SAAS,CAAC,CAC5H,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc,EAAE,KAAa;IAC3D,KAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAAE,oBAAoB,CAAC,EAAE,KAAK,CAAC,CAAC;AACtG,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc,EAAE,KAAa;IACzD,MAAM,QAAQ,GAAG,KAAK,CACpB,KAAK,EACL;QACE,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,cAAc;QACd,uBAAuB;QACvB,oBAAoB;QACpB,qBAAqB;QACrB,+BAA+B;QAC/B,gBAAgB;QAChB,aAAa;QACb,UAAU;QACV,OAAO;KACR,EACD,KAAK,CACN,CAAC;IACF,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,4BAA4B,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,eAAe,CAAC,EAAE,GAAG,KAAK,eAAe,CAAC,CAAC;AACtJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,KAAa;IAClD,KAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAc,EAAE,KAAa;IAC9D,KAAK,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;AAClF,CAAC;AAID,SAAS,KAAK,CAAC,KAAc,EAAE,OAA0B,EAAE,KAAa;IACtE,MAAM,MAAM,GAAG,IAAA,kDAAQ,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtC,IAAA,yDAAe,EAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,OAAO,CAAC,KAAc,EAAE,KAAa,EAAE,QAAyB;IACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,oBAAoB,CAAC,CAAC;IACzE,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,eAAe,CAAC,KAAc,EAAE,KAAa,EAAE,QAAyB;IAC/E,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,KAAa,EAAE,QAAyB;IAC9E,IAAI,KAAK,KAAK,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc,EAAE,KAAa;IACvD,IAAI,KAAK,KAAK,SAAS;QAAE,IAAA,kDAAQ,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,KAAa;IAClD,IAAI,KAAK,KAAK,SAAS;QAAE,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC"}