@antseed/node 0.2.160 → 0.2.162
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/discovery/metadata/define-version.d.ts +10 -3
- package/dist/discovery/metadata/define-version.d.ts.map +1 -1
- package/dist/discovery/metadata/define-version.js +6 -3
- package/dist/discovery/metadata/define-version.js.map +1 -1
- package/dist/discovery/metadata/fields/service-capabilities.d.ts +1 -1
- package/dist/discovery/metadata/fields/service-capabilities.d.ts.map +1 -1
- package/dist/discovery/metadata/fields/service-capabilities.js +59 -3
- package/dist/discovery/metadata/fields/service-capabilities.js.map +1 -1
- package/dist/discovery/metadata/index.d.ts +7 -0
- package/dist/discovery/metadata/index.d.ts.map +1 -1
- package/dist/discovery/metadata/index.js +10 -1
- package/dist/discovery/metadata/index.js.map +1 -1
- package/dist/discovery/metadata/versions/prune-service-maps.d.ts +7 -0
- package/dist/discovery/metadata/versions/prune-service-maps.d.ts.map +1 -0
- package/dist/discovery/metadata/versions/prune-service-maps.js +17 -0
- package/dist/discovery/metadata/versions/prune-service-maps.js.map +1 -0
- package/dist/discovery/metadata/versions/v10.d.ts.map +1 -1
- package/dist/discovery/metadata/versions/v10.js +3 -1
- package/dist/discovery/metadata/versions/v10.js.map +1 -1
- package/dist/discovery/metadata/versions/v11.d.ts.map +1 -1
- package/dist/discovery/metadata/versions/v11.js +2 -1
- package/dist/discovery/metadata/versions/v11.js.map +1 -1
- package/dist/discovery/metadata/versions/v12.d.ts.map +1 -1
- package/dist/discovery/metadata/versions/v12.js +4 -10
- package/dist/discovery/metadata/versions/v12.js.map +1 -1
- package/dist/discovery/metadata/versions/v13.d.ts.map +1 -1
- package/dist/discovery/metadata/versions/v13.js +2 -1
- package/dist/discovery/metadata/versions/v13.js.map +1 -1
- package/dist/discovery/metadata/versions/v14.d.ts.map +1 -1
- package/dist/discovery/metadata/versions/v14.js +2 -1
- package/dist/discovery/metadata/versions/v14.js.map +1 -1
- package/dist/discovery/metadata/versions/v15.d.ts +9 -0
- package/dist/discovery/metadata/versions/v15.d.ts.map +1 -0
- package/dist/discovery/metadata/versions/v15.js +24 -0
- package/dist/discovery/metadata/versions/v15.js.map +1 -0
- package/dist/discovery/metadata/vocabulary.d.ts +35 -0
- package/dist/discovery/metadata/vocabulary.d.ts.map +1 -0
- package/dist/discovery/metadata/vocabulary.js +112 -0
- package/dist/discovery/metadata/vocabulary.js.map +1 -0
- package/dist/discovery/metadata-codec.d.ts +1 -1
- package/dist/discovery/metadata-codec.d.ts.map +1 -1
- package/dist/discovery/metadata-codec.js +1 -1
- package/dist/discovery/metadata-codec.js.map +1 -1
- package/dist/discovery/metadata-validator.d.ts.map +1 -1
- package/dist/discovery/metadata-validator.js +40 -1
- package/dist/discovery/metadata-validator.js.map +1 -1
- package/dist/discovery/peer-metadata.d.ts +1 -1
- package/dist/discovery/peer-metadata.d.ts.map +1 -1
- package/dist/discovery/peer-metadata.js +1 -1
- package/dist/discovery/peer-metadata.js.map +1 -1
- package/dist/discovery/service-catalog.d.ts +16 -5
- package/dist/discovery/service-catalog.d.ts.map +1 -1
- package/dist/discovery/service-catalog.js +45 -12
- package/dist/discovery/service-catalog.js.map +1 -1
- package/dist/health/model-health-checker.d.ts.map +1 -1
- package/dist/health/model-health-checker.js +3 -2
- package/dist/health/model-health-checker.js.map +1 -1
- package/dist/index.d.ts +6 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/interfaces/seller-provider.d.ts +15 -0
- package/dist/interfaces/seller-provider.d.ts.map +1 -1
- package/dist/node.d.ts +30 -0
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +122 -0
- package/dist/node.js.map +1 -1
- package/dist/payments/channel-store.d.ts +1 -0
- package/dist/payments/channel-store.d.ts.map +1 -1
- package/dist/payments/channel-store.js +14 -3
- package/dist/payments/channel-store.js.map +1 -1
- package/dist/payments/evm/multicall.d.ts +7 -0
- package/dist/payments/evm/multicall.d.ts.map +1 -1
- package/dist/payments/evm/multicall.js +28 -0
- package/dist/payments/evm/multicall.js.map +1 -1
- package/dist/payments/evm/trust-signals-client.d.ts +2 -4
- package/dist/payments/evm/trust-signals-client.d.ts.map +1 -1
- package/dist/payments/evm/trust-signals-client.js +4 -21
- package/dist/payments/evm/trust-signals-client.js.map +1 -1
- package/dist/payments/evm/verification-signals-client.d.ts +40 -0
- package/dist/payments/evm/verification-signals-client.d.ts.map +1 -0
- package/dist/payments/evm/verification-signals-client.js +93 -0
- package/dist/payments/evm/verification-signals-client.js.map +1 -0
- package/dist/payments/evm/verifier-client.d.ts +29 -3
- package/dist/payments/evm/verifier-client.d.ts.map +1 -1
- package/dist/payments/evm/verifier-client.js +52 -4
- package/dist/payments/evm/verifier-client.js.map +1 -1
- package/dist/payments/generated-contract-addresses.d.ts +2 -2
- package/dist/payments/generated-contract-addresses.js +2 -2
- package/dist/payments/index.d.ts +2 -2
- package/dist/payments/index.d.ts.map +1 -1
- package/dist/payments/index.js +1 -1
- package/dist/payments/index.js.map +1 -1
- package/dist/payments/seller-payment-manager.d.ts +15 -0
- package/dist/payments/seller-payment-manager.d.ts.map +1 -1
- package/dist/payments/seller-payment-manager.js +61 -4
- package/dist/payments/seller-payment-manager.js.map +1 -1
- package/dist/reputation/index.d.ts +1 -1
- package/dist/reputation/index.d.ts.map +1 -1
- package/dist/reputation/index.js +1 -1
- package/dist/reputation/index.js.map +1 -1
- package/dist/reputation/model-reputation.d.ts +34 -3
- package/dist/reputation/model-reputation.d.ts.map +1 -1
- package/dist/reputation/model-reputation.js +50 -8
- package/dist/reputation/model-reputation.js.map +1 -1
- package/dist/requested-service.d.ts +15 -0
- package/dist/requested-service.d.ts.map +1 -0
- package/dist/requested-service.js +23 -0
- package/dist/requested-service.js.map +1 -0
- package/dist/routing/model-route-ranking.d.ts +2 -0
- package/dist/routing/model-route-ranking.d.ts.map +1 -1
- package/dist/routing/model-route-ranking.js +4 -0
- package/dist/routing/model-route-ranking.js.map +1 -1
- package/dist/seller-request-handler.d.ts.map +1 -1
- package/dist/seller-request-handler.js +27 -7
- package/dist/seller-request-handler.js.map +1 -1
- package/dist/storage/migrations/channels/007_add_input_characters.d.ts +4 -0
- package/dist/storage/migrations/channels/007_add_input_characters.d.ts.map +1 -0
- package/dist/storage/migrations/channels/007_add_input_characters.js +12 -0
- package/dist/storage/migrations/channels/007_add_input_characters.js.map +1 -0
- package/dist/storage/migrations/channels/index.d.ts.map +1 -1
- package/dist/storage/migrations/channels/index.js +2 -1
- package/dist/storage/migrations/channels/index.js.map +1 -1
- package/dist/types/peer.d.ts +8 -0
- package/dist/types/peer.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { PeerMetadata, ServiceCapabilities } from "../peer-metadata.js";
|
|
2
|
+
/**
|
|
3
|
+
* The names a metadata version's documents may use. Buyers reject a whole
|
|
4
|
+
* peer whose metadata names a protocol, billing unit or capability option
|
|
5
|
+
* their version does not know, so a seller serving an older version leaves
|
|
6
|
+
* out every service that needs one (see {@link withinVocabulary}).
|
|
7
|
+
*/
|
|
8
|
+
export interface MetadataVocabulary {
|
|
9
|
+
/** Service API protocols (`serviceApiProtocols`, unit billing model keys). */
|
|
10
|
+
readonly protocols: ReadonlySet<string>;
|
|
11
|
+
/** Unit billing units (`serviceUnitBillingModels` components). */
|
|
12
|
+
readonly units: ReadonlySet<string>;
|
|
13
|
+
/** Service capability options (`serviceCapabilities.<service>.<option>`). */
|
|
14
|
+
readonly capabilityOptions: ReadonlySet<keyof ServiceCapabilities>;
|
|
15
|
+
}
|
|
16
|
+
export interface MetadataVocabularyAdditions {
|
|
17
|
+
protocols?: readonly string[];
|
|
18
|
+
units?: readonly string[];
|
|
19
|
+
capabilityOptions?: readonly (keyof ServiceCapabilities)[];
|
|
20
|
+
}
|
|
21
|
+
/** What v10-v14 know: everything defined before speech. */
|
|
22
|
+
export declare const BASE_METADATA_VOCABULARY: MetadataVocabulary;
|
|
23
|
+
/** `base` plus the names a newer version adds. */
|
|
24
|
+
export declare function extendVocabulary(base: MetadataVocabulary, added: MetadataVocabularyAdditions): MetadataVocabulary;
|
|
25
|
+
/**
|
|
26
|
+
* `latest` restricted to what `vocabulary` can say. A service whose protocol
|
|
27
|
+
* or billing unit the version does not know is left out, with every
|
|
28
|
+
* per-service entry for it, and capability options the version does not know
|
|
29
|
+
* are dropped; the rest of the seller stays visible. A provider whose listed
|
|
30
|
+
* services are all left out is dropped, because an empty service list means
|
|
31
|
+
* "any service"; a wildcard provider (`services: []`) keeps its wildcard and
|
|
32
|
+
* loses only those entries.
|
|
33
|
+
*/
|
|
34
|
+
export declare function withinVocabulary(latest: PeerMetadata, vocabulary: MetadataVocabulary): PeerMetadata;
|
|
35
|
+
//# sourceMappingURL=vocabulary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vocabulary.d.ts","sourceRoot":"","sources":["../../../src/discovery/metadata/vocabulary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAwB,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAGnG;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,6EAA6E;IAC7E,QAAQ,CAAC,iBAAiB,EAAE,WAAW,CAAC,MAAM,mBAAmB,CAAC,CAAC;CACpE;AAED,MAAM,WAAW,2BAA2B;IAC1C,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,iBAAiB,CAAC,EAAE,SAAS,CAAC,MAAM,mBAAmB,CAAC,EAAE,CAAC;CAC5D;AAED,2DAA2D;AAC3D,eAAO,MAAM,wBAAwB,EAAE,kBAwBtC,CAAC;AAEF,kDAAkD;AAClD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,2BAA2B,GAAG,kBAAkB,CAMjH;AA8CD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,kBAAkB,GAAG,YAAY,CAuBnG"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { pruneServiceMaps } from "./versions/prune-service-maps.js";
|
|
2
|
+
/** What v10-v14 know: everything defined before speech. */
|
|
3
|
+
export const BASE_METADATA_VOCABULARY = {
|
|
4
|
+
protocols: new Set([
|
|
5
|
+
"anthropic-messages",
|
|
6
|
+
"openai-chat-completions",
|
|
7
|
+
"openai-completions",
|
|
8
|
+
"openai-responses",
|
|
9
|
+
"openai-images",
|
|
10
|
+
"typesafe-systemone",
|
|
11
|
+
"venice-video",
|
|
12
|
+
"fal-video",
|
|
13
|
+
"irp-suggest",
|
|
14
|
+
]),
|
|
15
|
+
units: new Set(["output_images", "completed_requests", "video_generations", "video_seconds"]),
|
|
16
|
+
capabilityOptions: new Set([
|
|
17
|
+
"video",
|
|
18
|
+
"contextWindow",
|
|
19
|
+
"maxOutputTokens",
|
|
20
|
+
"inputs",
|
|
21
|
+
"outputs",
|
|
22
|
+
"reasoning",
|
|
23
|
+
"toolUse",
|
|
24
|
+
"structuredOutput",
|
|
25
|
+
"supportedParameters",
|
|
26
|
+
]),
|
|
27
|
+
};
|
|
28
|
+
/** `base` plus the names a newer version adds. */
|
|
29
|
+
export function extendVocabulary(base, added) {
|
|
30
|
+
return {
|
|
31
|
+
protocols: new Set([...base.protocols, ...(added.protocols ?? [])]),
|
|
32
|
+
units: new Set([...base.units, ...(added.units ?? [])]),
|
|
33
|
+
capabilityOptions: new Set([...base.capabilityOptions, ...(added.capabilityOptions ?? [])]),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/** Per-service maps that must not mention a service the document leaves out. */
|
|
37
|
+
const PER_SERVICE_KEYS = [
|
|
38
|
+
"servicePricing",
|
|
39
|
+
"serviceCategories",
|
|
40
|
+
"serviceApiProtocols",
|
|
41
|
+
"serviceUnitBillingModels",
|
|
42
|
+
"serviceCapabilities",
|
|
43
|
+
"serviceHealth",
|
|
44
|
+
"servicePerformance",
|
|
45
|
+
];
|
|
46
|
+
/** Whether `service` needs a protocol or billing unit outside `vocabulary`. */
|
|
47
|
+
function needsUnknownName(provider, service, vocabulary) {
|
|
48
|
+
if (provider.serviceApiProtocols?.[service]?.some((protocol) => !vocabulary.protocols.has(protocol)))
|
|
49
|
+
return true;
|
|
50
|
+
for (const [protocol, model] of Object.entries(provider.serviceUnitBillingModels?.[service] ?? {})) {
|
|
51
|
+
if (!vocabulary.protocols.has(protocol))
|
|
52
|
+
return true;
|
|
53
|
+
if (model?.components.some((component) => !vocabulary.units.has(component.unit)))
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
/** Services a provider describes in any per-service map. */
|
|
59
|
+
function describedServices(provider) {
|
|
60
|
+
const services = new Set();
|
|
61
|
+
for (const key of PER_SERVICE_KEYS) {
|
|
62
|
+
for (const service of Object.keys(provider[key] ?? {}))
|
|
63
|
+
services.add(service);
|
|
64
|
+
}
|
|
65
|
+
return [...services];
|
|
66
|
+
}
|
|
67
|
+
function withinCapabilityOptions(capabilities, vocabulary) {
|
|
68
|
+
const out = {};
|
|
69
|
+
for (const [service, caps] of Object.entries(capabilities)) {
|
|
70
|
+
const kept = Object.fromEntries(Object.entries(caps).filter(([option]) => vocabulary.capabilityOptions.has(option)));
|
|
71
|
+
if (Object.keys(kept).length > 0)
|
|
72
|
+
out[service] = kept;
|
|
73
|
+
}
|
|
74
|
+
return out;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* `latest` restricted to what `vocabulary` can say. A service whose protocol
|
|
78
|
+
* or billing unit the version does not know is left out, with every
|
|
79
|
+
* per-service entry for it, and capability options the version does not know
|
|
80
|
+
* are dropped; the rest of the seller stays visible. A provider whose listed
|
|
81
|
+
* services are all left out is dropped, because an empty service list means
|
|
82
|
+
* "any service"; a wildcard provider (`services: []`) keeps its wildcard and
|
|
83
|
+
* loses only those entries.
|
|
84
|
+
*/
|
|
85
|
+
export function withinVocabulary(latest, vocabulary) {
|
|
86
|
+
const providers = [];
|
|
87
|
+
for (const provider of latest.providers) {
|
|
88
|
+
const wildcard = provider.services.length === 0;
|
|
89
|
+
const candidates = wildcard ? describedServices(provider) : provider.services;
|
|
90
|
+
const unknown = new Set(candidates.filter((service) => needsUnknownName(provider, service, vocabulary)));
|
|
91
|
+
const next = { ...provider };
|
|
92
|
+
if (unknown.size > 0) {
|
|
93
|
+
if (!wildcard) {
|
|
94
|
+
const services = provider.services.filter((service) => !unknown.has(service));
|
|
95
|
+
if (services.length === 0)
|
|
96
|
+
continue;
|
|
97
|
+
next.services = services;
|
|
98
|
+
}
|
|
99
|
+
pruneServiceMaps(next, provider, unknown, PER_SERVICE_KEYS);
|
|
100
|
+
}
|
|
101
|
+
if (next.serviceCapabilities) {
|
|
102
|
+
const capabilities = withinCapabilityOptions(next.serviceCapabilities, vocabulary);
|
|
103
|
+
if (Object.keys(capabilities).length > 0)
|
|
104
|
+
next.serviceCapabilities = capabilities;
|
|
105
|
+
else
|
|
106
|
+
delete next.serviceCapabilities;
|
|
107
|
+
}
|
|
108
|
+
providers.push(next);
|
|
109
|
+
}
|
|
110
|
+
return { ...latest, providers };
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=vocabulary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vocabulary.js","sourceRoot":"","sources":["../../../src/discovery/metadata/vocabulary.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { decodeMetadata, encodeMetadata, encodeMetadataForSigning, getMetadataCodec, negotiateMetadataVersion, SERVED_METADATA_VERSIONS, type MetadataVersionCodec, } from "./metadata/index.js";
|
|
1
|
+
export { decodeMetadata, encodeMetadata, encodeMetadataForSigning, getMetadataCodec, metadataVersionIntroducing, negotiateMetadataVersion, SERVED_METADATA_VERSIONS, type MetadataVersionCodec, type MetadataVocabulary, } from "./metadata/index.js";
|
|
2
2
|
//# sourceMappingURL=metadata-codec.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-codec.d.ts","sourceRoot":"","sources":["../../src/discovery/metadata-codec.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EACd,cAAc,EACd,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,wBAAwB,EACxB,KAAK,oBAAoB,
|
|
1
|
+
{"version":3,"file":"metadata-codec.d.ts","sourceRoot":"","sources":["../../src/discovery/metadata-codec.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EACd,cAAc,EACd,wBAAwB,EACxB,gBAAgB,EAChB,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACxB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// The codec is split into shared field modules and one file per version
|
|
2
2
|
// under ./metadata/; this module keeps the old import path working.
|
|
3
|
-
export { decodeMetadata, encodeMetadata, encodeMetadataForSigning, getMetadataCodec, negotiateMetadataVersion, SERVED_METADATA_VERSIONS, } from "./metadata/index.js";
|
|
3
|
+
export { decodeMetadata, encodeMetadata, encodeMetadataForSigning, getMetadataCodec, metadataVersionIntroducing, negotiateMetadataVersion, SERVED_METADATA_VERSIONS, } from "./metadata/index.js";
|
|
4
4
|
//# sourceMappingURL=metadata-codec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-codec.js","sourceRoot":"","sources":["../../src/discovery/metadata-codec.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,oEAAoE;AACpE,OAAO,EACL,cAAc,EACd,cAAc,EACd,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,wBAAwB,
|
|
1
|
+
{"version":3,"file":"metadata-codec.js","sourceRoot":"","sources":["../../src/discovery/metadata-codec.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,oEAAoE;AACpE,OAAO,EACL,cAAc,EACd,cAAc,EACd,wBAAwB,EACxB,gBAAgB,EAChB,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,GAGzB,MAAM,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-validator.d.ts","sourceRoot":"","sources":["../../src/discovery/metadata-validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA4B,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAQjF,eAAO,MAAM,iBAAiB,QAAa,CAAC;AAC5C,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAChD,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAChD,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAChD,eAAO,MAAM,kCAAkC,KAAK,CAAC;AACrD,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAC9C,eAAO,MAAM,qCAAqC,IAAI,CAAC;AACvD,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAClD,eAAO,MAAM,uCAAuC,IAAI,CAAC;AACzD,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAChD,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AA+DhE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;
|
|
1
|
+
{"version":3,"file":"metadata-validator.d.ts","sourceRoot":"","sources":["../../src/discovery/metadata-validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA4B,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAQjF,eAAO,MAAM,iBAAiB,QAAa,CAAC;AAC5C,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAChD,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAChD,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAChD,eAAO,MAAM,kCAAkC,KAAK,CAAC;AACrD,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAC9C,eAAO,MAAM,qCAAqC,IAAI,CAAC;AACvD,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAClD,eAAO,MAAM,uCAAuC,IAAI,CAAC;AACzD,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAChD,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AA+DhE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAwBD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,eAAe,EAAE,CAmsB1E"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isServiceHealthTime, MAX_SERVICE_HEALTH_TIME_MS, METADATA_VERSION, MIN_SUPPORTED_METADATA_VERSION, SERVICE_CAPABILITIES_METADATA_VERSION, SERVICE_HEALTH_METADATA_VERSION, SERVICE_HEALTH_REASONS, SERVICE_HEALTH_SOURCES, SERVICE_HEALTH_STATUSES, SERVICE_PERFORMANCE_METADATA_VERSION, SERVICE_UNIT_BILLING_METADATA_VERSION, WELL_KNOWN_SERVICE_API_PROTOCOLS, validateServiceCapabilityFields, parseServicePerformance } from "./peer-metadata.js";
|
|
2
|
-
import { encodeMetadata } from "./metadata-codec.js";
|
|
2
|
+
import { encodeMetadata, getMetadataCodec, metadataVersionIntroducing } from "./metadata-codec.js";
|
|
3
3
|
import { MAX_PUBLIC_ADDRESS_LENGTH, parsePublicAddress } from "./public-address.js";
|
|
4
4
|
import { isUnitBilledProtocol, validateUnitBillingModelForProtocolV1, validateUnitBillingModelV1 } from "../billing/unit.js";
|
|
5
5
|
// Metadata is fetched from an untrusted HTTP endpoint. Keep the signed binary
|
|
@@ -85,8 +85,27 @@ function isValidGithubRepository(value) {
|
|
|
85
85
|
&& value !== ".."
|
|
86
86
|
&& GITHUB_REPOSITORY_PATTERN.test(value);
|
|
87
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* The version that introduced `name` when `vocabulary` (the document's own
|
|
90
|
+
* version's) does not know it yet; undefined when it does, or when no version
|
|
91
|
+
* knows it (other checks report unknown names).
|
|
92
|
+
*/
|
|
93
|
+
function beyondVocabulary(vocabulary, kind, name) {
|
|
94
|
+
if (!vocabulary || vocabulary[kind].has(name))
|
|
95
|
+
return undefined;
|
|
96
|
+
return metadataVersionIntroducing(kind, name);
|
|
97
|
+
}
|
|
98
|
+
function vocabularyOf(version) {
|
|
99
|
+
try {
|
|
100
|
+
return getMetadataCodec(version).vocabulary;
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
88
106
|
export function validateMetadata(metadata) {
|
|
89
107
|
const errors = [];
|
|
108
|
+
const vocabulary = vocabularyOf(metadata.version);
|
|
90
109
|
// version
|
|
91
110
|
if (metadata.version < MIN_SUPPORTED_METADATA_VERSION || metadata.version > METADATA_VERSION) {
|
|
92
111
|
errors.push({
|
|
@@ -517,6 +536,13 @@ export function validateMetadata(metadata) {
|
|
|
517
536
|
message: "Service API protocol values must be unique per service",
|
|
518
537
|
});
|
|
519
538
|
}
|
|
539
|
+
const protocolTooNew = beyondVocabulary(vocabulary, "protocols", normalized);
|
|
540
|
+
if (protocolTooNew) {
|
|
541
|
+
errors.push({
|
|
542
|
+
field: `providers[${i}].serviceApiProtocols.${serviceName}[${j}]`,
|
|
543
|
+
message: `Service API protocol "${normalized}" requires metadata version ${protocolTooNew}`,
|
|
544
|
+
});
|
|
545
|
+
}
|
|
520
546
|
deduped.add(normalized);
|
|
521
547
|
}
|
|
522
548
|
}
|
|
@@ -586,6 +612,13 @@ export function validateMetadata(metadata) {
|
|
|
586
612
|
});
|
|
587
613
|
}
|
|
588
614
|
model.components.forEach((component, componentIndex) => {
|
|
615
|
+
const unitTooNew = beyondVocabulary(vocabulary, "units", component.unit);
|
|
616
|
+
if (unitTooNew) {
|
|
617
|
+
errors.push({
|
|
618
|
+
field: `providers[${i}].serviceUnitBillingModels.${serviceName}.${protocol}.components[${componentIndex}].unit`,
|
|
619
|
+
message: `Billing unit "${component.unit}" requires metadata version ${unitTooNew}`,
|
|
620
|
+
});
|
|
621
|
+
}
|
|
589
622
|
const matchEntries = Object.entries(component.match ?? {});
|
|
590
623
|
if (matchEntries.length > MAX_BILLING_MATCH_ENTRIES_PER_COMPONENT) {
|
|
591
624
|
errors.push({
|
|
@@ -647,6 +680,12 @@ export function validateMetadata(metadata) {
|
|
|
647
680
|
for (const message of validateServiceCapabilityFields(caps)) {
|
|
648
681
|
errors.push({ field, message });
|
|
649
682
|
}
|
|
683
|
+
for (const option of Object.keys(caps)) {
|
|
684
|
+
const optionTooNew = beyondVocabulary(vocabulary, "capabilityOptions", option);
|
|
685
|
+
if (optionTooNew) {
|
|
686
|
+
errors.push({ field, message: `Service capability "${option}" requires metadata version ${optionTooNew}` });
|
|
687
|
+
}
|
|
688
|
+
}
|
|
650
689
|
}
|
|
651
690
|
}
|
|
652
691
|
if (p.serviceHealth !== undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-validator.js","sourceRoot":"","sources":["../../src/discovery/metadata-validator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"metadata-validator.js","sourceRoot":"","sources":["../../src/discovery/metadata-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,8BAA8B,EAAE,qCAAqC,EAAE,+BAA+B,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,oCAAoC,EAAE,qCAAqC,EAAE,gCAAgC,EAAE,+BAA+B,EAAE,uBAAuB,EAAsB,MAAM,oBAAoB,CAAC;AACrd,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,0BAA0B,EAA2B,MAAM,qBAAqB,CAAC;AAC5H,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAAE,qCAAqC,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAE7H,8EAA8E;AAC9E,6DAA6D;AAC7D,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,GAAG,IAAI,CAAC;AAC5C,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAC7C,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAC1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAC1C,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AACrC,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAC7C,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,CAAC;AAChD,MAAM,CAAC,MAAM,kCAAkC,GAAG,EAAE,CAAC;AACrD,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAC9C,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,uCAAuC,GAAG,CAAC,CAAC;AACzD,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAChD,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACxC,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AACxD,MAAM,oBAAoB,GAAG,wCAAwC,CAAC;AACtE,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAA2B,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC;AACvG,MAAM,uBAAuB,GAAG,mCAAmC,CAAC;AACpE,MAAM,yBAAyB,GAAG,gBAAgB,CAAC;AACnD,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC/D,MAAM,uBAAuB,GAAG,uBAAuB,CAAC;AACxD,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAS,gCAAgC,CAAC,CAAC;AACnF,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAS,uBAAuB,CAAC,CAAC;AAC3E,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAS,sBAAsB,CAAC,CAAC;AAC1E,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAS,sBAAsB,CAAC,CAAC;AAC1E,MAAM,+BAA+B,GAAG,MAAM,CAAC;AAE/C,SAAS,2BAA2B,CAAC,MAAqB;IACxD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,sCAAsC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/H,KAAK,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,CAAU,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YACvD,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,8CAA8C,0BAA0B,EAAE,CAAC,CAAC;QAChG,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACjF,MAAM,CAAC,IAAI,CAAC,sCAAsC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACjF,MAAM,CAAC,IAAI,CAAC,sCAAsC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,mBAAmB,CAAC;IAC5C,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,+BAA+B,CAAC,EAAE,CAAC;QAC1J,MAAM,CAAC,IAAI,CAAC,6CAA6C,+BAA+B,EAAE,CAAC,CAAC;IAC9F,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACrC,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,GAAG,IAAI,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC;QAC1I,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,iBAAiB;QAAE,OAAO,KAAK,CAAC;IACzE,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa;IAC1C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC;WAClB,KAAK,CAAC,MAAM,IAAI,0BAA0B;WAC1C,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;WACrB,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAa;IAC5C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC;WAClB,KAAK,CAAC,MAAM,IAAI,4BAA4B;WAC5C,KAAK,KAAK,GAAG;WACb,KAAK,KAAK,IAAI;WACd,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC;AAOD;;;;GAIG;AACH,SAAS,gBAAgB,CACvB,UAA0C,EAC1C,IAA8B,EAC9B,IAAY;IAEZ,IAAI,CAAC,UAAU,IAAK,UAAU,CAAC,IAAI,CAAyB,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACzF,OAAO,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,IAAI,CAAC;QACH,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAsB;IACrD,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAElD,UAAU;IACV,IAAI,QAAQ,CAAC,OAAO,GAAG,8BAA8B,IAAI,QAAQ,CAAC,OAAO,GAAG,gBAAgB,EAAE,CAAC;QAC7F,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,oBAAoB,8BAA8B,KAAK,gBAAgB,SAAS,QAAQ,CAAC,OAAO,EAAE;SAC5G,CAAC,CAAC;IACL,CAAC;IAED,uDAAuD;IACvD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,oDAAoD;SAC9D,CAAC,CAAC;IACL,CAAC;IAED,SAAS;IACT,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,0BAA0B;SACpC,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,iBAAiB,QAAQ,CAAC,MAAM,CAAC,MAAM,gBAAgB,iBAAiB,EAAE;SACpF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACvC,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,aAAa;gBACpB,OAAO,EAAE,8CAA8C;aACxD,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,aAAa;gBACpB,OAAO,EAAE,uBAAuB,QAAQ,CAAC,WAAW,CAAC,MAAM,gBAAgB,uBAAuB,EAAE;aACrG,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,eAAe;gBACtB,OAAO,EAAE,gDAAgD;aAC1D,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,GAAG,yBAAyB,EAAE,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,eAAe;gBACtB,OAAO,EAAE,yBAAyB,KAAK,CAAC,MAAM,gBAAgB,yBAAyB,EAAE;aAC1F,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,kBAAkB,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,eAAe;gBACtB,OAAO,EAAE,kEAAkE;aAC5E,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAC1C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,OAAO,QAAQ,CAAC,aAAa,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACnH,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC,CAAC;QACtF,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;YACpD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;oBACjC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC,CAAC;gBAC7F,CAAC;qBAAM,CAAC;oBACN,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC,CAAC;oBAC9F,CAAC;oBACD,IAAI,YAAY,CAAC,MAAM,GAAG,8BAA8B,EAAE,CAAC;wBACzD,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,uBAAuB;4BAC9B,OAAO,EAAE,mCAAmC,YAAY,CAAC,MAAM,gBAAgB,8BAA8B,EAAE;yBAChH,CAAC,CAAC;oBACL,CAAC;oBACD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;oBAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;wBAChD,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;wBAC9B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;4BAChE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,GAAG,EAAE,OAAO,EAAE,6CAA6C,EAAE,CAAC,CAAC;4BAC9G,SAAS;wBACX,CAAC;wBACD,MAAM,MAAM,GAAG,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzF,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;4BAC/B,MAAM,CAAC,IAAI,CAAC;gCACV,KAAK,EAAE,yBAAyB,CAAC,UAAU;gCAC3C,OAAO,EAAE,+DAA+D;6BACzE,CAAC,CAAC;wBACL,CAAC;6BAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;4BAC/B,MAAM,CAAC,IAAI,CAAC;gCACV,KAAK,EAAE,yBAAyB,CAAC,UAAU;gCAC3C,OAAO,EAAE,2CAA2C;6BACrD,CAAC,CAAC;wBACL,CAAC;wBACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBAEpB,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;4BAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gCAChE,MAAM,CAAC,IAAI,CAAC;oCACV,KAAK,EAAE,yBAAyB,CAAC,WAAW;oCAC5C,OAAO,EAAE,wDAAwD;iCAClE,CAAC,CAAC;4BACL,CAAC;iCAAM,CAAC;gCACN,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;gCAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oCACjD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oCAChC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,MAAkC,CAAC,EAAE,CAAC;wCACvG,MAAM,CAAC,IAAI,CAAC;4CACV,KAAK,EAAE,yBAAyB,CAAC,aAAa,CAAC,GAAG;4CAClD,OAAO,EAAE,wCAAwC;yCAClD,CAAC,CAAC;wCACH,SAAS;oCACX,CAAC;oCACD,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;wCACxB,MAAM,CAAC,IAAI,CAAC;4CACV,KAAK,EAAE,yBAAyB,CAAC,aAAa,CAAC,GAAG;4CAClD,OAAO,EAAE,sDAAsD;yCAChE,CAAC,CAAC;oCACL,CAAC;oCACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gCACtB,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;YACnD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;oBACjC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC,CAAC;gBAC5F,CAAC;qBAAM,CAAC;oBACN,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC,CAAC;oBAC7F,CAAC;oBACD,IAAI,YAAY,CAAC,MAAM,GAAG,8BAA8B,EAAE,CAAC;wBACzD,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,sBAAsB;4BAC7B,OAAO,EAAE,mCAAmC,YAAY,CAAC,MAAM,gBAAgB,8BAA8B,EAAE;yBAChH,CAAC,CAAC;oBACL,CAAC;oBACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;oBAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;wBAChD,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;wBAC9B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;4BAChE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,wBAAwB,CAAC,GAAG,EAAE,OAAO,EAAE,6CAA6C,EAAE,CAAC,CAAC;4BAC7G,SAAS;wBACX,CAAC;wBACD,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC/F,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACrC,MAAM,CAAC,IAAI,CAAC;gCACV,KAAK,EAAE,wBAAwB,CAAC,YAAY;gCAC5C,OAAO,EAAE,qDAAqD;6BAC/D,CAAC,CAAC;wBACL,CAAC;wBACD,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;4BACnC,MAAM,UAAU,GAAG,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BACrG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,CAAC;gCACzC,MAAM,CAAC,IAAI,CAAC;oCACV,KAAK,EAAE,wBAAwB,CAAC,cAAc;oCAC9C,OAAO,EAAE,8DAA8D;iCACxE,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;wBACD,MAAM,GAAG,GAAG,GAAG,QAAQ,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;wBAC/G,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;4BAClB,MAAM,CAAC,IAAI,CAAC;gCACV,KAAK,EAAE,wBAAwB,CAAC,GAAG;gCACnC,OAAO,EAAE,2CAA2C;6BACrD,CAAC,CAAC;wBACL,CAAC;wBACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAChB,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3G,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,iBAAiB,GAAG,EAAE;oBAC7B,OAAO,EAAE,oCAAoC;iBAC9C,CAAC,CAAC;YACL,CAAC;YACD,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzF,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,eAAe;oBACtB,OAAO,EAAE,gEAAgE;iBAC1E,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC,CAAC;QACzF,CAAC;aAAM,CAAC;YACN,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;gBACzD,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,cAAc;oBACrB,OAAO,EAAE,oBAAoB,QAAQ,CAAC,YAAY,CAAC,MAAM,gBAAgB,qBAAqB,EAAE;iBACjG,CAAC,CAAC;YACL,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;YAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtD,MAAM,UAAU,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC5C,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACrE,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,gBAAgB,CAAC,GAAG;wBAC3B,OAAO,EAAE,uCAAuC;qBACjD,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBACD,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBACnD,IAAI,UAAU,CAAC,MAAM,GAAG,0BAA0B,EAAE,CAAC;oBACnD,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,gBAAgB,CAAC,GAAG;wBAC3B,OAAO,EAAE,qBAAqB,UAAU,CAAC,MAAM,gBAAgB,0BAA0B,EAAE;qBAC5F,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC9C,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,gBAAgB,CAAC,GAAG;wBAC3B,OAAO,EAAE,+DAA+D;qBACzE,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC5B,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,gBAAgB,CAAC,GAAG;wBAC3B,OAAO,EAAE,kCAAkC;qBAC5C,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED,YAAY;IACZ,IAAI,QAAQ,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpE,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,4CAA4C;SACtD,CAAC,CAAC;IACL,CAAC;IAED,yEAAyE;IACzE,4EAA4E;IAC5E,oEAAoE;IACpE,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,kBAAkB,QAAQ,CAAC,SAAS,CAAC,MAAM,gBAAgB,aAAa,EAAE;SACpF,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnD,MAAM,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC;QACjC,MAAM,mBAAmB,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;QAEpD,iBAAiB;QACjB,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,yBAAyB,EAAE,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,aAAa,CAAC,YAAY;gBACjC,OAAO,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,MAAM,gBAAgB,yBAAyB,EAAE;aACvF,CAAC,CAAC;QACL,CAAC;QAED,sBAAsB;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG;oBACvC,OAAO,EAAE,uBAAuB,OAAO,CAAC,MAAM,gBAAgB,uBAAuB,EAAE;iBACxF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,kBAAkB;QAClB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,kBAAkB,GAAG,CAAC,EAAE,CAAC;YACtG,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,aAAa,CAAC,qCAAqC;gBAC1D,OAAO,EAAE,0DAA0D;aACpE,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,mBAAmB,GAAG,CAAC,EAAE,CAAC;YACxG,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,aAAa,CAAC,sCAAsC;gBAC3D,OAAO,EAAE,2DAA2D;aACrE,CAAC,CAAC;QACL,CAAC;QAED,6BAA6B;QAC7B,IAAI,CAAC,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACnC,KAAK,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC7E,IAAI,WAAW,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;oBACjD,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa,CAAC,oBAAoB,WAAW,EAAE;wBACtD,OAAO,EAAE,uBAAuB,WAAW,CAAC,MAAM,gBAAgB,uBAAuB,EAAE;qBAC5F,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,cAAc,CAAC,kBAAkB,GAAG,CAAC,EAAE,CAAC;oBACpH,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa,CAAC,oBAAoB,WAAW,qBAAqB;wBACzE,OAAO,EAAE,0DAA0D;qBACpE,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAAC,IAAI,cAAc,CAAC,mBAAmB,GAAG,CAAC,EAAE,CAAC;oBACtH,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa,CAAC,oBAAoB,WAAW,sBAAsB;wBAC1E,OAAO,EAAE,2DAA2D;qBACrE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACtC,KAAK,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBAC5E,IAAI,WAAW,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;oBACjD,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa,CAAC,uBAAuB,WAAW,EAAE;wBACzD,OAAO,EAAE,uBAAuB,WAAW,CAAC,MAAM,gBAAgB,uBAAuB,EAAE;qBAC5F,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC9D,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa,CAAC,uBAAuB,WAAW,EAAE;wBACzD,OAAO,EAAE,4EAA4E;qBACtF,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC1D,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa,CAAC,uBAAuB,WAAW,EAAE;wBACzD,OAAO,EAAE,qDAAqD;qBAC/D,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBACD,IAAI,UAAU,CAAC,MAAM,GAAG,kCAAkC,EAAE,CAAC;oBAC3D,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa,CAAC,uBAAuB,WAAW,EAAE;wBACzD,OAAO,EAAE,0BAA0B,UAAU,CAAC,MAAM,gBAAgB,kCAAkC,EAAE;qBACzG,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;gBAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3C,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;oBAC/B,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACjE,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,aAAa,CAAC,uBAAuB,WAAW,IAAI,CAAC,GAAG;4BAC/D,OAAO,EAAE,6CAA6C;yBACvD,CAAC,CAAC;wBACH,SAAS;oBACX,CAAC;oBACD,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;oBACjD,IAAI,UAAU,CAAC,MAAM,GAAG,2BAA2B,EAAE,CAAC;wBACpD,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,aAAa,CAAC,uBAAuB,WAAW,IAAI,CAAC,GAAG;4BAC/D,OAAO,EAAE,2BAA2B,UAAU,CAAC,MAAM,gBAAgB,2BAA2B,EAAE;yBACnG,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC/C,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,aAAa,CAAC,uBAAuB,WAAW,IAAI,CAAC,GAAG;4BAC/D,OAAO,EAAE,gEAAgE;yBAC1E,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC5B,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,aAAa,CAAC,uBAAuB,WAAW,IAAI,CAAC,GAAG;4BAC/D,OAAO,EAAE,oDAAoD;yBAC9D,CAAC,CAAC;oBACL,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACxC,KAAK,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAC7E,IAAI,WAAW,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;oBACjD,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa,CAAC,yBAAyB,WAAW,EAAE;wBAC3D,OAAO,EAAE,uBAAuB,WAAW,CAAC,MAAM,gBAAgB,uBAAuB,EAAE;qBAC5F,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC9D,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa,CAAC,yBAAyB,WAAW,EAAE;wBAC3D,OAAO,EAAE,+EAA+E;qBACzF,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxD,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa,CAAC,yBAAyB,WAAW,EAAE;wBAC3D,OAAO,EAAE,wDAAwD;qBAClE,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBACD,IAAI,SAAS,CAAC,MAAM,GAAG,qCAAqC,EAAE,CAAC;oBAC7D,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa,CAAC,yBAAyB,WAAW,EAAE;wBAC3D,OAAO,EAAE,8BAA8B,SAAS,CAAC,MAAM,gBAAgB,qCAAqC,EAAE;qBAC/G,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;gBAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC1C,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC9B,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACjE,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,aAAa,CAAC,yBAAyB,WAAW,IAAI,CAAC,GAAG;4BACjE,OAAO,EAAE,iDAAiD;yBAC3D,CAAC,CAAC;wBACH,SAAS;oBACX,CAAC;oBACD,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;oBACjD,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC9C,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,aAAa,CAAC,yBAAyB,WAAW,IAAI,CAAC,GAAG;4BACjE,OAAO,EAAE,qCAAqC,UAAU,GAAG;yBAC5D,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC5B,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,aAAa,CAAC,yBAAyB,WAAW,IAAI,CAAC,GAAG;4BACjE,OAAO,EAAE,wDAAwD;yBAClE,CAAC,CAAC;oBACL,CAAC;oBACD,MAAM,cAAc,GAAG,gBAAgB,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;oBAC7E,IAAI,cAAc,EAAE,CAAC;wBACnB,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,aAAa,CAAC,yBAAyB,WAAW,IAAI,CAAC,GAAG;4BACjE,OAAO,EAAE,yBAAyB,UAAU,+BAA+B,cAAc,EAAE;yBAC5F,CAAC,CAAC;oBACL,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,CAAC,wBAAwB,KAAK,SAAS,EAAE,CAAC;YAC7C,IAAI,QAAQ,CAAC,OAAO,GAAG,qCAAqC,EAAE,CAAC;gBAC7D,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,aAAa,CAAC,4BAA4B;oBACjD,OAAO,EAAE,wDAAwD,qCAAqC,EAAE;iBACzG,CAAC,CAAC;YACL,CAAC;YACD,IAAI,yBAAyB,GAAG,CAAC,CAAC;YAClC,KAAK,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,EAAE,CAAC;gBACvF,IAAI,WAAW,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;oBACjD,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa,CAAC,8BAA8B,WAAW,EAAE;wBAChE,OAAO,EAAE,uBAAuB,WAAW,CAAC,MAAM,gBAAgB,uBAAuB,EAAE;qBAC5F,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC9D,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa,CAAC,8BAA8B,WAAW,EAAE;wBAChE,OAAO,EAAE,qFAAqF;qBAC/F,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,cAAc,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC3F,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,aAAa,CAAC,8BAA8B,WAAW,EAAE;wBAChE,OAAO,EAAE,kFAAkF;qBAC5F,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBACD,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC/D,yBAAyB,IAAI,CAAC,CAAC;oBAC/B,MAAM,gBAAgB,GAAG,CAAC,CAAC,mBAAmB,EAAE,CAAC,WAAW,CAAC,CAAC;oBAC9D,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC5C,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,aAAa,CAAC,8BAA8B,WAAW,IAAI,QAAQ,EAAE;4BAC5E,OAAO,EAAE,qCAAqC,QAAQ,GAAG;yBAC1D,CAAC,CAAC;oBACL,CAAC;yBAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC3C,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,aAAa,CAAC,8BAA8B,WAAW,IAAI,QAAQ,EAAE;4BAC5E,OAAO,EAAE,qCAAqC,QAAQ,EAAE;yBACzD,CAAC,CAAC;oBACL,CAAC;yBAAM,IAAI,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAA2C,CAAC,EAAE,CAAC;wBACvG,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,aAAa,CAAC,8BAA8B,WAAW,IAAI,QAAQ,EAAE;4BAC5E,OAAO,EAAE,0DAA0D;yBACpE,CAAC,CAAC;oBACL,CAAC;oBACD,MAAM,WAAW,GAAG,oBAAoB,CAAC,QAAQ,CAAC;wBAChD,CAAC,CAAC,qCAAqC,CAAC,QAAQ,EAAE,KAAK,CAAC;wBACxD,CAAC,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;oBACtC,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;wBAClC,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,aAAa,CAAC,8BAA8B,WAAW,IAAI,QAAQ,EAAE;4BAC5E,OAAO;yBACR,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,gCAAgC,EAAE,CAAC;wBAC/D,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,aAAa,CAAC,8BAA8B,WAAW,IAAI,QAAQ,aAAa;4BACvF,OAAO,EAAE,2BAA2B,KAAK,CAAC,UAAU,CAAC,MAAM,gBAAgB,gCAAgC,EAAE;yBAC9G,CAAC,CAAC;oBACL,CAAC;oBACD,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,cAAc,EAAE,EAAE;wBACrD,MAAM,UAAU,GAAG,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;wBACzE,IAAI,UAAU,EAAE,CAAC;4BACf,MAAM,CAAC,IAAI,CAAC;gCACV,KAAK,EAAE,aAAa,CAAC,8BAA8B,WAAW,IAAI,QAAQ,eAAe,cAAc,QAAQ;gCAC/G,OAAO,EAAE,iBAAiB,SAAS,CAAC,IAAI,+BAA+B,UAAU,EAAE;6BACpF,CAAC,CAAC;wBACL,CAAC;wBACD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;wBAC3D,IAAI,YAAY,CAAC,MAAM,GAAG,uCAAuC,EAAE,CAAC;4BAClE,MAAM,CAAC,IAAI,CAAC;gCACV,KAAK,EAAE,aAAa,CAAC,8BAA8B,WAAW,IAAI,QAAQ,eAAe,cAAc,SAAS;gCAChH,OAAO,EAAE,6BAA6B,YAAY,CAAC,MAAM,gBAAgB,uCAAuC,EAAE;6BACnH,CAAC,CAAC;wBACL,CAAC;wBACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;4BACxC,MAAM,UAAU,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;4BAC1D,IAAI,UAAU,GAAG,6BAA6B,EAAE,CAAC;gCAC/C,MAAM,CAAC,IAAI,CAAC;oCACV,KAAK,EAAE,aAAa,CAAC,8BAA8B,WAAW,IAAI,QAAQ,eAAe,cAAc,WAAW,GAAG,EAAE;oCACvH,OAAO,EAAE,8BAA8B,UAAU,gBAAgB,6BAA6B,QAAQ;iCACvG,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,IAAI,yBAAyB,GAAG,yBAAyB,EAAE,CAAC;gBAC1D,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,aAAa,CAAC,4BAA4B;oBACjD,OAAO,EAAE,gCAAgC,yBAAyB,gBAAgB,yBAAyB,EAAE;iBAC9G,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,CAAC,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACxC,IAAI,QAAQ,CAAC,OAAO,GAAG,qCAAqC,EAAE,CAAC;gBAC7D,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,aAAa,CAAC,uBAAuB;oBAC5C,OAAO,EAAE,iDAAiD,qCAAqC,EAAE;iBAClG,CAAC,CAAC;YACL,CAAC;YACD,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;YAChE,IAAI,iBAAiB,CAAC,MAAM,GAAG,yBAAyB,EAAE,CAAC;gBACzD,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,aAAa,CAAC,uBAAuB;oBAC5C,OAAO,EAAE,kCAAkC,iBAAiB,CAAC,MAAM,gBAAgB,yBAAyB,EAAE;iBAC/G,CAAC,CAAC;YACL,CAAC;YACD,KAAK,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,iBAAiB,EAAE,CAAC;gBACpD,MAAM,KAAK,GAAG,aAAa,CAAC,yBAAyB,WAAW,EAAE,CAAC;gBACnE,IAAI,WAAW,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;oBACjD,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK;wBACL,OAAO,EAAE,uBAAuB,WAAW,CAAC,MAAM,gBAAgB,uBAAuB,EAAE;qBAC5F,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC9D,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK;wBACL,OAAO,EAAE,8EAA8E;qBACxF,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC7D,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAC,CAAC;oBAC9E,SAAS;gBACX,CAAC;gBACD,KAAK,MAAM,OAAO,IAAI,+BAA+B,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5D,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBAClC,CAAC;gBACD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvC,MAAM,YAAY,GAAG,gBAAgB,CAAC,UAAU,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;oBAC/E,IAAI,YAAY,EAAE,CAAC;wBACjB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,uBAAuB,MAAM,+BAA+B,YAAY,EAAE,EAAE,CAAC,CAAC;oBAC9G,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,QAAQ,CAAC,OAAO,GAAG,+BAA+B,EAAE,CAAC;gBACvD,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,aAAa,CAAC,iBAAiB;oBACtC,OAAO,EAAE,4CAA4C,+BAA+B,EAAE;iBACvF,CAAC,CAAC;YACL,CAAC;YACD,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YACtD,IAAI,aAAa,CAAC,MAAM,GAAG,yBAAyB,EAAE,CAAC;gBACrD,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,aAAa,CAAC,iBAAiB;oBACtC,OAAO,EAAE,8BAA8B,aAAa,CAAC,MAAM,gBAAgB,yBAAyB,EAAE;iBACvG,CAAC,CAAC;YACL,CAAC;YACD,KAAK,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;gBAClD,MAAM,KAAK,GAAG,aAAa,CAAC,mBAAmB,WAAW,EAAE,CAAC;gBAC7D,IAAI,WAAW,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;oBACjD,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,uBAAuB,WAAW,CAAC,MAAM,gBAAgB,uBAAuB,EAAE,EAAE,CAAC,CAAC;gBACtH,CAAC;gBACD,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC9D,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,wEAAwE,EAAE,CAAC,CAAC;gBAC5G,CAAC;gBACD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC,CAAC;oBAC1E,SAAS;gBACX,CAAC;gBACD,KAAK,MAAM,OAAO,IAAI,2BAA2B,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC1D,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACvC,IAAI,QAAQ,CAAC,OAAO,GAAG,oCAAoC,EAAE,CAAC;gBAC5D,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,aAAa,CAAC,sBAAsB;oBAC3C,OAAO,EAAE,iDAAiD,oCAAoC,EAAE;iBACjG,CAAC,CAAC;YACL,CAAC;YACD,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;YAChE,IAAI,kBAAkB,CAAC,MAAM,GAAG,yBAAyB,EAAE,CAAC;gBAC1D,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,aAAa,CAAC,sBAAsB;oBAC3C,OAAO,EAAE,mCAAmC,kBAAkB,CAAC,MAAM,gBAAgB,yBAAyB,EAAE;iBACjH,CAAC,CAAC;YACL,CAAC;YACD,KAAK,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI,kBAAkB,EAAE,CAAC;gBAC5D,MAAM,KAAK,GAAG,aAAa,CAAC,wBAAwB,WAAW,EAAE,CAAC;gBAClE,IAAI,WAAW,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;oBACjD,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,uBAAuB,WAAW,CAAC,MAAM,gBAAgB,uBAAuB,EAAE,EAAE,CAAC,CAAC;gBACtH,CAAC;gBACD,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC9D,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,6EAA6E,EAAE,CAAC,CAAC;gBACjH,CAAC;gBACD,MAAM,MAAM,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;gBACpD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;oBACpF,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,8IAA8I,EAAE,CAAC,CAAC;gBAClL,CAAC;YACH,CAAC;QACH,CAAC;QAED,cAAc;QACd,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,aAAa,CAAC,kBAAkB;gBACvC,OAAO,EAAE,oCAAoC;aAC9C,CAAC,CAAC;QACL,CAAC;QAED,cAAc;QACd,IAAI,CAAC,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,aAAa,CAAC,eAAe;gBACpC,OAAO,EAAE,mCAAmC;aAC7C,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,aAAa,CAAC,eAAe;gBACpC,OAAO,EAAE,8CAA8C;aACxD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,mEAAmE;SAC7E,CAAC,CAAC;IACL,CAAC;IAED,wEAAwE;IACxE,2EAA2E;IAC3E,iEAAiE;IACjE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,OAAO,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,SAAS;oBAChB,OAAO,EAAE,gBAAgB,OAAO,CAAC,MAAM,gBAAgB,iBAAiB,EAAE;iBAC3E,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,SAAS;gBAChB,OAAO,EAAE,6CAA6C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;aACzG,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from '@antseed/protocol/peer-metadata';
|
|
2
|
-
export { WELL_KNOWN_SERVICE_API_PROTOCOLS, NATIVE_VIDEO_PROTOCOLS, isNativeVideoProtocol, type ServiceApiProtocol, type NativeVideoProtocol } from '@antseed/protocol/service-api';
|
|
2
|
+
export { WELL_KNOWN_SERVICE_API_PROTOCOLS, NATIVE_VIDEO_PROTOCOLS, isNativeVideoProtocol, AUDIO_SPEECH_PROTOCOLS, isAudioSpeechProtocol, type ServiceApiProtocol, type NativeVideoProtocol, type AudioSpeechProtocol } from '@antseed/protocol/service-api';
|
|
3
3
|
//# sourceMappingURL=peer-metadata.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer-metadata.d.ts","sourceRoot":"","sources":["../../src/discovery/peer-metadata.ts"],"names":[],"mappings":"AACA,cAAc,iCAAiC,CAAC;AAChD,OAAO,EAAE,gCAAgC,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"peer-metadata.d.ts","sourceRoot":"","sources":["../../src/discovery/peer-metadata.ts"],"names":[],"mappings":"AACA,cAAc,iCAAiC,CAAC;AAChD,OAAO,EAAE,gCAAgC,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// Moved to @antseed/protocol; re-exported for compatibility.
|
|
2
2
|
export * from '@antseed/protocol/peer-metadata';
|
|
3
|
-
export { WELL_KNOWN_SERVICE_API_PROTOCOLS, NATIVE_VIDEO_PROTOCOLS, isNativeVideoProtocol } from '@antseed/protocol/service-api';
|
|
3
|
+
export { WELL_KNOWN_SERVICE_API_PROTOCOLS, NATIVE_VIDEO_PROTOCOLS, isNativeVideoProtocol, AUDIO_SPEECH_PROTOCOLS, isAudioSpeechProtocol } from '@antseed/protocol/service-api';
|
|
4
4
|
//# sourceMappingURL=peer-metadata.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer-metadata.js","sourceRoot":"","sources":["../../src/discovery/peer-metadata.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,cAAc,iCAAiC,CAAC;AAChD,OAAO,EAAE,gCAAgC,EAAE,sBAAsB,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"peer-metadata.js","sourceRoot":"","sources":["../../src/discovery/peer-metadata.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,cAAc,iCAAiC,CAAC;AAChD,OAAO,EAAE,gCAAgC,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,qBAAqB,EAA+E,MAAM,+BAA+B,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { type NativeVideoProtocol } from '@antseed/protocol/service-api';
|
|
2
|
-
import { type ServiceHealth, type ServicePerformance, type VideoOptions } from '@antseed/protocol/peer-metadata';
|
|
1
|
+
import { type AudioSpeechProtocol, type NativeVideoProtocol } from '@antseed/protocol/service-api';
|
|
2
|
+
import { type ServiceHealth, type ServicePerformance, type SpeechOptions, type VideoOptions } from '@antseed/protocol/peer-metadata';
|
|
3
3
|
import type { ProviderServiceHealthMatrixEntry, ProviderServicePerformanceMatrixEntry } from '@antseed/protocol/peer-pricing';
|
|
4
|
-
export type CatalogServiceProtocol = 'anthropic-messages' | 'openai-chat-completions' | 'openai-responses' | 'openai-images' | 'typesafe-systemone' | NativeVideoProtocol;
|
|
4
|
+
export type CatalogServiceProtocol = 'anthropic-messages' | 'openai-chat-completions' | 'openai-responses' | 'openai-images' | 'typesafe-systemone' | NativeVideoProtocol | AudioSpeechProtocol;
|
|
5
5
|
export type CatalogServiceCapabilities = {
|
|
6
6
|
contextWindow?: number;
|
|
7
7
|
maxOutputTokens?: number;
|
|
@@ -12,6 +12,7 @@ export type CatalogServiceCapabilities = {
|
|
|
12
12
|
structuredOutput?: boolean;
|
|
13
13
|
supportedParameters?: string[];
|
|
14
14
|
video?: VideoOptions;
|
|
15
|
+
speech?: SpeechOptions;
|
|
15
16
|
};
|
|
16
17
|
export type NetworkServiceCatalogPeer = {
|
|
17
18
|
peerId: string;
|
|
@@ -62,8 +63,11 @@ export type NetworkServiceCatalogPeer = {
|
|
|
62
63
|
defaultOutputUsdPerMillion?: number;
|
|
63
64
|
defaultCachedInputUsdPerMillion?: number;
|
|
64
65
|
};
|
|
65
|
-
/**
|
|
66
|
-
|
|
66
|
+
/**
|
|
67
|
+
* `decision`: System One models return typed answers, not text or images.
|
|
68
|
+
* `speech`: text-to-speech models return an audio file.
|
|
69
|
+
*/
|
|
70
|
+
export type NetworkServiceOfferType = 'text' | 'image' | 'decision' | 'video' | 'speech';
|
|
67
71
|
export type NetworkServiceOffer = {
|
|
68
72
|
unitBillingModels?: NonNullable<NetworkServiceCatalogPeer['providerServiceUnitBillingModels']>[string]['services'][string];
|
|
69
73
|
advertisedVerifierIds?: string[];
|
|
@@ -97,6 +101,13 @@ export type BuildNetworkServiceOffersOptions = {
|
|
|
97
101
|
export declare function inferServiceProtocol(provider: string): Exclude<CatalogServiceProtocol, 'openai-images'> | null;
|
|
98
102
|
export declare function resolveServiceProtocol(protocols: string[], provider: string): CatalogServiceProtocol | null;
|
|
99
103
|
export declare function buildNetworkServiceOffers(peers: NetworkServiceCatalogPeer[], options?: BuildNetworkServiceOffersOptions): NetworkServiceOffer[];
|
|
104
|
+
/**
|
|
105
|
+
* USD per input character a speech offer bills: speech billing matches
|
|
106
|
+
* components against `{ model: <service> }` and charges every one that
|
|
107
|
+
* applies, so their prices add up. 0 for a billing model with no components
|
|
108
|
+
* (free); null when the offer is not speech or publishes no character price.
|
|
109
|
+
*/
|
|
110
|
+
export declare function speechOfferUsdPerCharacter(offer: NetworkServiceOffer): number | null;
|
|
100
111
|
export declare function compareNetworkServiceOfferPrice(a: NetworkServiceOffer, b: NetworkServiceOffer): number;
|
|
101
112
|
export declare function selectLowestPricedNetworkServiceOffer(offers: NetworkServiceOffer[]): NetworkServiceOffer | null;
|
|
102
113
|
/** One cheapest advertised route per peer and canonical model, across providers and aliases. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-catalog.d.ts","sourceRoot":"","sources":["../../src/discovery/service-catalog.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"service-catalog.d.ts","sourceRoot":"","sources":["../../src/discovery/service-catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { CODING_ONLY_SUFFIX_RE, canonicalModelKey } from '../model-identity.js';
|
|
2
2
|
import { parseVerifierCapabilities } from './verifier-capabilities.js';
|
|
3
|
-
import { NATIVE_VIDEO_PROTOCOLS, isNativeVideoProtocol, isRoutingProtocol } from '@antseed/protocol/service-api';
|
|
3
|
+
import { AUDIO_SPEECH_PROTOCOLS, NATIVE_VIDEO_PROTOCOLS, isAudioSpeechProtocol, isNativeVideoProtocol, isRoutingProtocol } from '@antseed/protocol/service-api';
|
|
4
4
|
import { isServiceHealthFailing, providerServiceHealthFor, providerServicePerformanceFor } from '@antseed/protocol/peer-metadata';
|
|
5
|
+
import { componentMatchesAttributes } from '@antseed/protocol/billing';
|
|
5
6
|
const VALID_PROTOCOLS = new Set([
|
|
6
7
|
'anthropic-messages',
|
|
7
8
|
'openai-chat-completions',
|
|
@@ -9,6 +10,7 @@ const VALID_PROTOCOLS = new Set([
|
|
|
9
10
|
'openai-images',
|
|
10
11
|
'typesafe-systemone',
|
|
11
12
|
...NATIVE_VIDEO_PROTOCOLS,
|
|
13
|
+
...AUDIO_SPEECH_PROTOCOLS,
|
|
12
14
|
]);
|
|
13
15
|
export function inferServiceProtocol(provider) {
|
|
14
16
|
if (provider === 'openai-responses')
|
|
@@ -90,6 +92,18 @@ function resolveImagePriceRange(peer, provider, serviceId) {
|
|
|
90
92
|
? { minImageUsdPerImage: Math.min(...prices), maxImageUsdPerImage: Math.max(...prices) }
|
|
91
93
|
: {};
|
|
92
94
|
}
|
|
95
|
+
/** What an offer is, by its protocol first and then, for image models served elsewhere, its outputs. */
|
|
96
|
+
function serviceOfferType(protocol, capabilities) {
|
|
97
|
+
if (isNativeVideoProtocol(protocol))
|
|
98
|
+
return 'video';
|
|
99
|
+
if (isAudioSpeechProtocol(protocol))
|
|
100
|
+
return 'speech';
|
|
101
|
+
if (protocol === 'typesafe-systemone')
|
|
102
|
+
return 'decision';
|
|
103
|
+
if (protocol === 'openai-images' || capabilities?.outputs?.includes('image'))
|
|
104
|
+
return 'image';
|
|
105
|
+
return 'text';
|
|
106
|
+
}
|
|
93
107
|
export function buildNetworkServiceOffers(peers, options = {}) {
|
|
94
108
|
const offers = [];
|
|
95
109
|
for (const peer of peers) {
|
|
@@ -106,14 +120,9 @@ export function buildNetworkServiceOffers(peers, options = {}) {
|
|
|
106
120
|
const capabilities = peer.providerServiceCapabilities?.[provider]?.services?.[serviceId];
|
|
107
121
|
const categories = peer.providerServiceCategories?.[provider]?.services?.[serviceId];
|
|
108
122
|
const protocol = resolveServiceProtocol(protocols, provider);
|
|
109
|
-
const type =
|
|
110
|
-
? 'video'
|
|
111
|
-
: protocol === 'typesafe-systemone'
|
|
112
|
-
? 'decision'
|
|
113
|
-
: protocol === 'openai-images' || capabilities?.outputs?.includes('image')
|
|
114
|
-
? 'image'
|
|
115
|
-
: 'text';
|
|
123
|
+
const type = serviceOfferType(protocol, capabilities);
|
|
116
124
|
const pricing = resolvePricing(peer, provider, serviceId);
|
|
125
|
+
const unitPriced = type === 'video' || type === 'speech';
|
|
117
126
|
offers.push({
|
|
118
127
|
advertisedVerifierIds: parseVerifierCapabilities(peer.capabilities).supported,
|
|
119
128
|
serviceId,
|
|
@@ -126,10 +135,10 @@ export function buildNetworkServiceOffers(peers, options = {}) {
|
|
|
126
135
|
peerId: peer.peerId,
|
|
127
136
|
...(peer.displayName ? { displayName: peer.displayName } : {}),
|
|
128
137
|
...(peer.reputationScore !== undefined ? { reputationScore: peer.reputationScore } : {}),
|
|
129
|
-
...(
|
|
130
|
-
...(
|
|
131
|
-
...(
|
|
132
|
-
...(
|
|
138
|
+
...(!unitPriced && pricing.inputUsdPerMillion !== undefined ? { inputUsdPerMillion: pricing.inputUsdPerMillion } : {}),
|
|
139
|
+
...(!unitPriced && pricing.outputUsdPerMillion !== undefined ? { outputUsdPerMillion: pricing.outputUsdPerMillion } : {}),
|
|
140
|
+
...(!unitPriced && pricing.cachedInputUsdPerMillion !== undefined ? { cachedInputUsdPerMillion: pricing.cachedInputUsdPerMillion } : {}),
|
|
141
|
+
...(unitPriced ? { unitBillingModels: peer.providerServiceUnitBillingModels?.[provider]?.services[serviceId] } : {}),
|
|
133
142
|
...resolveImagePriceRange(peer, provider, serviceId),
|
|
134
143
|
...(health ? { health } : {}),
|
|
135
144
|
...(performance ? { performance } : {}),
|
|
@@ -139,9 +148,33 @@ export function buildNetworkServiceOffers(peers, options = {}) {
|
|
|
139
148
|
}
|
|
140
149
|
return offers;
|
|
141
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* USD per input character a speech offer bills: speech billing matches
|
|
153
|
+
* components against `{ model: <service> }` and charges every one that
|
|
154
|
+
* applies, so their prices add up. 0 for a billing model with no components
|
|
155
|
+
* (free); null when the offer is not speech or publishes no character price.
|
|
156
|
+
*/
|
|
157
|
+
export function speechOfferUsdPerCharacter(offer) {
|
|
158
|
+
if (offer.type !== 'speech')
|
|
159
|
+
return null;
|
|
160
|
+
const model = offer.protocol ? offer.unitBillingModels?.[offer.protocol] : undefined;
|
|
161
|
+
// A billing model with no components charges nothing: the offer is free.
|
|
162
|
+
if (model && model.components.length === 0)
|
|
163
|
+
return 0;
|
|
164
|
+
const attributes = { model: offer.serviceId };
|
|
165
|
+
const applicable = (model?.components ?? []).filter((component) => component.unit === 'input_characters'
|
|
166
|
+
&& componentMatchesAttributes(component, attributes)
|
|
167
|
+
&& Number.isFinite(component.priceUsd)
|
|
168
|
+
&& component.priceUsd >= 0);
|
|
169
|
+
return applicable.length > 0
|
|
170
|
+
? applicable.reduce((sum, component) => sum + component.priceUsd, 0)
|
|
171
|
+
: null;
|
|
172
|
+
}
|
|
142
173
|
function comparableOfferPrice(offer) {
|
|
143
174
|
if (offer.type === 'image')
|
|
144
175
|
return offer.minImageUsdPerImage ?? Number.POSITIVE_INFINITY;
|
|
176
|
+
if (offer.type === 'speech')
|
|
177
|
+
return speechOfferUsdPerCharacter(offer) ?? Number.POSITIVE_INFINITY;
|
|
145
178
|
if (offer.inputUsdPerMillion === undefined || offer.outputUsdPerMillion === undefined) {
|
|
146
179
|
return Number.POSITIVE_INFINITY;
|
|
147
180
|
}
|