New:Socket for Asana Is Now Available.Learn more
Get Started

@0disoft/mcp-security-proxy-runtime

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@0disoft/mcp-security-proxy-runtime - npm Package Compare versions

Comparing version
0.2.0-alpha.1
to
0.2.0-alpha.2
+33
dist/audit-correlation.d.ts
import { type AuditCorrelation } from "@0disoft/mcp-security-proxy-contracts";
import type { JsonRpcId } from "@0disoft/mcp-security-proxy-mcp-adapter";
export type AuditDirection = AuditCorrelation["direction"];
export type JsonRpcIdType = AuditCorrelation["jsonRpcIdType"];
export interface PendingAuditCorrelation {
readonly transportEventId: string;
readonly jsonRpcIdHash?: string;
readonly jsonRpcIdType: JsonRpcIdType;
readonly method: string;
readonly receivedAt: number;
}
export declare class AuditCorrelator {
private readonly frames;
private readonly sessionId;
private readonly idHashKey;
private sequence;
private transportEventSequence;
private discoveryGeneration;
runFrame<T>(direction: AuditDirection, callback: () => T): T;
attachEnvelope(envelope: {
readonly id?: JsonRpcId;
readonly method?: string;
}): void;
setDirection(direction: AuditDirection): void;
snapshotPending(method: string): PendingAuditCorrelation;
matchPending(pending: PendingAuditCorrelation, direction?: AuditDirection): void;
markDiscoveryAccepted(): void;
setDuration(startedAt: number): void;
createCorrelation(method?: string): AuditCorrelation;
private nextTransportEventId;
private hashJsonRpcId;
}
//# sourceMappingURL=audit-correlation.d.ts.map
{"version":3,"file":"audit-correlation.d.ts","sourceRoot":"","sources":["../src/audit-correlation.ts"],"names":[],"mappings":"AAEA,OAAO,EAA6B,KAAK,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;AAa9D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAID,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;IACpE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,sBAAsB,CAAK;IACnC,OAAO,CAAC,mBAAmB,CAAK;IAEhC,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC;IAW5D,cAAc,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;QAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAerF,YAAY,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IAO7C,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,uBAAuB;IAWxD,YAAY,CAAC,OAAO,EAAE,uBAAuB,EAAE,SAAS,CAAC,EAAE,cAAc,GAAG,IAAI;IAiBhF,qBAAqB,IAAI,IAAI;IAI7B,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAOpC,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAoBpD,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,aAAa;CAGtB"}
import { AsyncLocalStorage } from "node:async_hooks";
import { createHmac, randomBytes, randomUUID } from "node:crypto";
import { AUDIT_CORRELATION_VERSION } from "@0disoft/mcp-security-proxy-contracts";
const maximumDurationMs = 2_147_483_647;
export class AuditCorrelator {
frames = new AsyncLocalStorage();
sessionId = randomUUID();
idHashKey = randomBytes(32);
sequence = 0;
transportEventSequence = 0;
discoveryGeneration = 0;
runFrame(direction, callback) {
return this.frames.run({
direction,
transportEventId: this.nextTransportEventId(),
jsonRpcIdType: "absent"
}, callback);
}
attachEnvelope(envelope) {
const frame = this.frames.getStore();
if (!frame) {
return;
}
const idType = jsonRpcIdType(envelope);
frame.jsonRpcIdType = idType;
if (idType !== "absent") {
frame.jsonRpcIdHash = this.hashJsonRpcId(envelope.id);
}
if (typeof envelope.method === "string" && envelope.method.length > 0) {
frame.method = envelope.method;
}
}
setDirection(direction) {
const frame = this.frames.getStore();
if (frame) {
frame.direction = direction;
}
}
snapshotPending(method) {
const frame = this.frames.getStore();
return {
transportEventId: frame?.transportEventId ?? this.nextTransportEventId(),
...(frame?.jsonRpcIdHash ? { jsonRpcIdHash: frame.jsonRpcIdHash } : {}),
jsonRpcIdType: frame?.jsonRpcIdType ?? "absent",
method,
receivedAt: Date.now()
};
}
matchPending(pending, direction) {
const frame = this.frames.getStore();
if (!frame) {
return;
}
frame.transportEventId = pending.transportEventId;
frame.jsonRpcIdType = pending.jsonRpcIdType;
if (pending.jsonRpcIdHash) {
frame.jsonRpcIdHash = pending.jsonRpcIdHash;
}
frame.matchedRequestMethod = pending.method;
frame.pendingAgeMs = boundedElapsed(pending.receivedAt);
if (direction) {
frame.direction = direction;
}
}
markDiscoveryAccepted() {
this.discoveryGeneration += 1;
}
setDuration(startedAt) {
const frame = this.frames.getStore();
if (frame) {
frame.durationMs = boundedElapsed(startedAt);
}
}
createCorrelation(method) {
const frame = this.frames.getStore();
const correlatedMethod = method ?? frame?.method;
return {
correlationVersion: AUDIT_CORRELATION_VERSION,
sessionId: this.sessionId,
sequence: ++this.sequence,
direction: frame?.direction ?? "runtime",
transport: "stdio",
transportEventId: frame?.transportEventId ?? this.nextTransportEventId(),
...(frame?.jsonRpcIdHash ? { jsonRpcIdHash: frame.jsonRpcIdHash } : {}),
jsonRpcIdType: frame?.jsonRpcIdType ?? "absent",
...(correlatedMethod ? { method: correlatedMethod } : {}),
...(frame?.matchedRequestMethod ? { matchedRequestMethod: frame.matchedRequestMethod } : {}),
discoveryGeneration: this.discoveryGeneration,
...(frame?.pendingAgeMs !== undefined ? { pendingAgeMs: frame.pendingAgeMs } : {}),
...(frame?.durationMs !== undefined ? { durationMs: frame.durationMs } : {})
};
}
nextTransportEventId() {
return `stdio-${++this.transportEventSequence}`;
}
hashJsonRpcId(id) {
return createHmac("sha256", this.idHashKey).update(canonicalJsonRpcId(id)).digest("hex");
}
}
function jsonRpcIdType(envelope) {
if (!("id" in envelope)) {
return "absent";
}
if (envelope.id === null) {
return "null";
}
return typeof envelope.id === "number" ? "number" : "string";
}
function canonicalJsonRpcId(id) {
if (id === null) {
return "null:null";
}
return `${typeof id}:${String(id)}`;
}
function boundedElapsed(startedAt) {
return Math.min(maximumDurationMs, Math.max(0, Date.now() - startedAt));
}
//# sourceMappingURL=audit-correlation.js.map
{"version":3,"file":"audit-correlation.js","sourceRoot":"","sources":["../src/audit-correlation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAyB,MAAM,uCAAuC,CAAC;AAyBzG,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAExC,MAAM,OAAO,eAAe;IACT,MAAM,GAAG,IAAI,iBAAiB,EAAoB,CAAC;IACnD,SAAS,GAAG,UAAU,EAAE,CAAC;IACzB,SAAS,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IACrC,QAAQ,GAAG,CAAC,CAAC;IACb,sBAAsB,GAAG,CAAC,CAAC;IAC3B,mBAAmB,GAAG,CAAC,CAAC;IAEhC,QAAQ,CAAI,SAAyB,EAAE,QAAiB;QACtD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CACpB;YACE,SAAS;YACT,gBAAgB,EAAE,IAAI,CAAC,oBAAoB,EAAE;YAC7C,aAAa,EAAE,QAAQ;SACxB,EACD,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,QAA+D;QAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACvC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;QAC7B,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtE,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QACjC,CAAC;IACH,CAAC;IAED,YAAY,CAAC,SAAyB;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrC,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,eAAe,CAAC,MAAc;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrC,OAAO;YACL,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,IAAI,IAAI,CAAC,oBAAoB,EAAE;YACxE,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,aAAa,EAAE,KAAK,EAAE,aAAa,IAAI,QAAQ;YAC/C,MAAM;YACN,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;SACvB,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,OAAgC,EAAE,SAA0B;QACvE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QACD,KAAK,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QAClD,KAAK,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC5C,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,KAAK,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC9C,CAAC;QACD,KAAK,CAAC,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;QAC5C,KAAK,CAAC,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,WAAW,CAAC,SAAiB;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrC,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,UAAU,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,iBAAiB,CAAC,MAAe;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,gBAAgB,GAAG,MAAM,IAAI,KAAK,EAAE,MAAM,CAAC;QACjD,OAAO;YACL,kBAAkB,EAAE,yBAAyB;YAC7C,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ;YACzB,SAAS,EAAE,KAAK,EAAE,SAAS,IAAI,SAAS;YACxC,SAAS,EAAE,OAAO;YAClB,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,IAAI,IAAI,CAAC,oBAAoB,EAAE;YACxE,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,aAAa,EAAE,KAAK,EAAE,aAAa,IAAI,QAAQ;YAC/C,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,GAAG,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5F,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7E,CAAC;IACJ,CAAC;IAEO,oBAAoB;QAC1B,OAAO,SAAS,EAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAClD,CAAC;IAEO,aAAa,CAAC,EAAyB;QAC7C,OAAO,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3F,CAAC;CACF;AAED,SAAS,aAAa,CAAC,QAAqC;IAC1D,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,QAAQ,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,OAAO,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC/D,CAAC;AAED,SAAS,kBAAkB,CAAC,EAAyB;IACnD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,OAAO,GAAG,OAAO,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,cAAc,CAAC,SAAiB;IACvC,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;AAC1E,CAAC"}
+1
-0
export * from "./startup-plan.js";
export * from "./audit-correlation.js";
export * from "./session.js";
export * from "./stdio-bridge.js";
//# sourceMappingURL=index.d.ts.map
+1
-1

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC"}
export * from "./startup-plan.js";
export * from "./audit-correlation.js";
export * from "./session.js";
export * from "./stdio-bridge.js";
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC"}
import { type AuditEvent, type NormalizedToolCall, type PolicyDecision, type PolicyDocument } from "@0disoft/mcp-security-proxy-contracts";
import { AuditCorrelator } from "./audit-correlation.js";
export interface ProxySessionOptions {

@@ -11,2 +12,3 @@ readonly policy: PolicyDocument;

readonly pendingRequestTtlMs?: number;
readonly auditCorrelator?: AuditCorrelator;
}

@@ -37,2 +39,3 @@ export interface ApprovalRequest {

private readonly approvalTimeoutMs;
private readonly auditCorrelator;
constructor(options: ProxySessionOptions);

@@ -46,5 +49,6 @@ handleClientLine(line: string): ProxyFrameResult;

handleServerLine(line: string): ProxyFrameResult;
private takePendingMethod;
private handleServerFrame;
private takePendingRequest;
private rememberPendingRequest;
private takePendingServerOriginMethod;
private takePendingServerOriginRequest;
private rememberPendingServerOriginRequest;

@@ -51,0 +55,0 @@ private denyDuplicatePendingRequest;

@@ -1,1 +0,1 @@

{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
import {} from "@0disoft/mcp-security-proxy-contracts";
import { classifyToolDescriptor, createAuditEvent, evaluateToolCall, redactText } from "@0disoft/mcp-security-proxy-core";
import { classifyToolDescriptor, createAuditEvent, evaluateToolCall, redactText, toolHasNonDenyPolicyCoverage } from "@0disoft/mcp-security-proxy-core";
import { evaluateEnvelopeMethod, isJsonRpcErrorResponse, isJsonRpcRequest, normalizeToolCallEnvelope } from "@0disoft/mcp-security-proxy-mcp-adapter";
import { AuditCorrelator } from "./audit-correlation.js";
const policyDeniedErrorCode = -32001;

@@ -14,2 +15,3 @@ const invalidRequestErrorCode = -32600;

const defaultPendingRequestTtlMs = 300_000;
const defaultApprovalTimeoutMs = 30_000;
const discoveryMetadataRedactionKeys = new Set(["default", "example", "examples", "$comment", "_meta"]);

@@ -29,2 +31,3 @@ const jsonRpcRequestEnvelopeKeys = new Set(["jsonrpc", "id", "method", "params"]);

approvalTimeoutMs;
auditCorrelator;
constructor(options) {

@@ -36,17 +39,22 @@ this.options = options;

this.pendingRequestTtlMs = resolvePositiveInteger(options.pendingRequestTtlMs, defaultPendingRequestTtlMs);
this.approvalTimeoutMs = resolveOptionalPositiveInteger(options.approvalTimeoutMs);
this.approvalTimeoutMs = resolvePositiveInteger(options.approvalTimeoutMs, defaultApprovalTimeoutMs);
this.auditCorrelator = options.auditCorrelator ?? new AuditCorrelator();
}
handleClientLine(line) {
const prepared = this.prepareClientLine(line);
if (prepared.kind === "result") {
return prepared.result;
}
return this.handlePreparedClientRequest(prepared.line, prepared.envelope, prepared.auditEvents);
return this.auditCorrelator.runFrame("client_to_upstream", () => {
const prepared = this.prepareClientLine(line);
if (prepared.kind === "result") {
return prepared.result;
}
return this.handlePreparedClientRequest(prepared.line, prepared.envelope, prepared.auditEvents);
});
}
async handleClientLineWithApproval(line, approvalHook) {
const prepared = this.prepareClientLine(line);
if (prepared.kind === "result") {
return prepared.result;
}
return this.handlePreparedClientRequestWithApproval(prepared.line, prepared.envelope, approvalHook, prepared.auditEvents);
return await this.auditCorrelator.runFrame("client_to_upstream", async () => {
const prepared = this.prepareClientLine(line);
if (prepared.kind === "result") {
return prepared.result;
}
return await this.handlePreparedClientRequestWithApproval(prepared.line, prepared.envelope, approvalHook, prepared.auditEvents);
});
}

@@ -66,5 +74,6 @@ prepareClientLine(line) {

const envelope = parsed.value;
this.auditCorrelator.attachEnvelope(envelope);
if (!isJsonRpcRequest(envelope)) {
const serverOriginMethod = this.takePendingServerOriginMethod(envelope);
if (!serverOriginMethod) {
const serverOriginPending = this.takePendingServerOriginRequest(envelope);
if (!serverOriginPending) {
return {

@@ -74,3 +83,5 @@ kind: "result",

auditEvents: [
this.createAudit("error", denyDecision("client JSON-RPC response did not match a pending upstream server request", { code: "jsonrpc.unmatched_response" }))
this.createAudit("error", denyDecision("client JSON-RPC response did not match a pending upstream server request", {
code: "jsonrpc.unmatched_response"
}))
]

@@ -80,3 +91,3 @@ }

}
if (serverOriginMethod === "ping" && !isEmptyPingResponse(envelope)) {
if (serverOriginPending.method === "ping" && !isEmptyPingResponse(envelope)) {
return {

@@ -88,3 +99,3 @@ kind: "result",

code: "jsonrpc.invalid",
method: serverOriginMethod
method: serverOriginPending.method
}))

@@ -177,3 +188,5 @@ ]

call: normalized,
...(this.options.approvalHookAvailable !== undefined ? { approvalHookAvailable: this.options.approvalHookAvailable } : {})
...(this.options.approvalHookAvailable !== undefined
? { approvalHookAvailable: this.options.approvalHookAvailable }
: {})
});

@@ -227,2 +240,3 @@ if (decision.action === "allow") {

let approval;
const approvalStartedAt = Date.now();
try {

@@ -232,2 +246,3 @@ approval = await this.callApprovalHook(approvalHook, normalized, decision);

catch (error) {
this.auditCorrelator.setDuration(approvalStartedAt);
const reason = error instanceof ApprovalHookTimeout ? "approval hook timed out" : "approval hook failed closed";

@@ -239,2 +254,3 @@ return this.withPrependedAuditEvents(preparedAuditEvents, this.denyEnvelope(envelope, denyDecision(reason, {

}
this.auditCorrelator.setDuration(approvalStartedAt);
if (approval.approved) {

@@ -246,5 +262,14 @@ const pendingDenied = this.denyPendingCapacityExceeded(envelope, this.pendingRequestMethods, "client");

this.rememberPendingRequest(envelope);
const finalDecision = {
schemaVersion: decision.schemaVersion,
action: "allow",
evidence: decision.evidence.map((evidence) => ({
...evidence,
code: "policy.approval_granted",
reason: "approval required call approved by approval hook"
}))
};
return {
forwardLine: line,
auditEvents: [...preparedAuditEvents, this.createAudit("call-decision", decision, normalized.toolName)]
auditEvents: [...preparedAuditEvents, this.createAudit("call-decision", finalDecision, normalized.toolName)]
};

@@ -259,8 +284,8 @@ }

const approval = approvalHook({ call, decision });
if (this.approvalTimeoutMs === undefined) {
return await approval;
}
return await withApprovalTimeout(approval, this.approvalTimeoutMs);
}
handleServerLine(line) {
return this.auditCorrelator.runFrame("upstream_to_client", () => this.handleServerFrame(line));
}
handleServerFrame(line) {
const parsed = parseJsonLine(line, this.maxFrameBytes, this.maxJsonDepth);

@@ -274,3 +299,5 @@ if (!parsed.ok) {

const envelope = parsed.value;
this.auditCorrelator.attachEnvelope(envelope);
if (isJsonRpcRequest(envelope)) {
this.auditCorrelator.setDirection("server_origin");
const methodDecision = evaluateServerOriginMethod(envelope, this.options.policy);

@@ -306,2 +333,4 @@ if (methodDecision.action !== "allow") {

};
const responseLine = sanitized.redactionApplied ? JSON.stringify(sanitized.envelope) : line;
const pendingRequest = this.takePendingRequest(sanitized.envelope);
const sanitizeAuditEvents = [

@@ -311,13 +340,13 @@ ...this.createUpstreamErrorRedactionAuditEvents(errorSanitized.redaction),

];
const responseLine = sanitized.redactionApplied ? JSON.stringify(sanitized.envelope) : line;
const requestMethod = this.takePendingMethod(sanitized.envelope);
if (!requestMethod) {
if (!pendingRequest) {
return {
auditEvents: [
...sanitizeAuditEvents,
this.createAudit("error", denyDecision("upstream JSON-RPC response did not match a pending client request", { code: "jsonrpc.unmatched_response" }))
this.createAudit("error", denyDecision("upstream JSON-RPC response did not match a pending client request", {
code: "jsonrpc.unmatched_response"
}))
]
};
}
if (requestMethod !== "tools/list") {
if (pendingRequest.method !== "tools/list") {
return {

@@ -329,3 +358,5 @@ forwardLine: responseLine,

if ("error" in sanitized.envelope) {
this.visibleTools.clear();
if (!pendingRequest.continuesDiscovery) {
this.visibleTools.clear();
}
return {

@@ -337,20 +368,28 @@ forwardLine: responseLine,

const result = filterToolListResult(sanitized.envelope, this.options.policy, this.options.profileId);
this.visibleTools.clear();
if (!pendingRequest.continuesDiscovery) {
this.visibleTools.clear();
}
for (const tool of result.visibleTools) {
this.visibleTools.set(tool.name, tool);
}
this.auditCorrelator.markDiscoveryAccepted();
return {
forwardLine: JSON.stringify(result.envelope),
auditEvents: [...sanitizeAuditEvents, ...this.createDiscoveryAuditEvents(result.filteredCount, result.sanitizedMalformedResult)]
auditEvents: [
...sanitizeAuditEvents,
...this.createDiscoveryAuditEvents(result.filteredCount, result.sanitizedMalformedResult)
]
};
}
takePendingMethod(envelope) {
takePendingRequest(envelope) {
if (envelope.id === undefined) {
return undefined;
}
this.evictExpiredPendingRequests(this.pendingRequestMethods);
const key = requestIdKey(envelope.id);
const method = this.pendingRequestMethods.get(key)?.method;
const pending = this.pendingRequestMethods.get(key);
this.pendingRequestMethods.delete(key);
return method;
if (pending) {
this.auditCorrelator.matchPending(pending.correlation);
}
return pending;
}

@@ -361,10 +400,18 @@ rememberPendingRequest(envelope) {

}
this.pendingRequestMethods.set(requestIdKey(envelope.id), this.createPendingRequestState(envelope.method));
this.pendingRequestMethods.set(requestIdKey(envelope.id), {
method: envelope.method,
expiresAt: Number.POSITIVE_INFINITY,
correlation: this.auditCorrelator.snapshotPending(envelope.method),
...(envelope.method === "tools/list" && hasDiscoveryCursor(envelope) ? { continuesDiscovery: true } : {})
});
}
takePendingServerOriginMethod(envelope) {
takePendingServerOriginRequest(envelope) {
this.evictExpiredPendingRequests(this.pendingServerOriginMethods);
const key = requestIdKey(envelope.id);
const method = this.pendingServerOriginMethods.get(key)?.method;
const pending = this.pendingServerOriginMethods.get(key);
this.pendingServerOriginMethods.delete(key);
return method;
if (pending) {
this.auditCorrelator.matchPending(pending.correlation, "server_origin");
}
return pending;
}

@@ -415,3 +462,4 @@ rememberPendingServerOriginRequest(envelope) {

method,
expiresAt: Date.now() + this.pendingRequestTtlMs
expiresAt: Date.now() + this.pendingRequestTtlMs,
correlation: this.auditCorrelator.snapshotPending(method)
};

@@ -438,3 +486,6 @@ }

if (envelope.method === "ping" && !hasJsonRpcRequestId(envelope)) {
return this.denyEnvelope(envelope, denyDecision("server-origin ping must include a JSON-RPC id", { code: "jsonrpc.invalid", method: envelope.method }), "MCP method denied by policy", "method-denied");
return this.denyEnvelope(envelope, denyDecision("server-origin ping must include a JSON-RPC id", {
code: "jsonrpc.invalid",
method: envelope.method
}), "MCP method denied by policy", "method-denied");
}

@@ -471,2 +522,3 @@ return undefined;

redaction,
correlation: this.auditCorrelator.createCorrelation(method),
...(toolName ? { toolName } : {}),

@@ -479,3 +531,5 @@ ...(method ? { method } : {})

if (sanitizedMalformedResult) {
events.push(this.createAudit("discovery-filtered", denyDecision("malformed tool discovery result sanitized to an empty tool list", { code: "discovery.filtered" })));
events.push(this.createAudit("discovery-filtered", denyDecision("malformed tool discovery result sanitized to an empty tool list", {
code: "discovery.filtered"
})));
}

@@ -530,6 +584,14 @@ if (filteredCount > 0) {

if (Buffer.byteLength(line, "utf8") > maxFrameBytes) {
return { ok: false, reason: `JSON-RPC frame exceeds maximum size of ${maxFrameBytes} bytes`, code: "jsonrpc.frame_too_large" };
return {
ok: false,
reason: `JSON-RPC frame exceeds maximum size of ${maxFrameBytes} bytes`,
code: "jsonrpc.frame_too_large"
};
}
if (line.includes("\n") || line.includes("\r")) {
return { ok: false, reason: "stdio MCP messages must be newline-delimited without embedded newlines", code: "jsonrpc.invalid" };
return {
ok: false,
reason: "stdio MCP messages must be newline-delimited without embedded newlines",
code: "jsonrpc.invalid"
};
}

@@ -539,3 +601,7 @@ try {

if (jsonDepthExceeds(parsed, maxJsonDepth)) {
return { ok: false, reason: `JSON-RPC message exceeds maximum depth of ${maxJsonDepth}`, code: "jsonrpc.too_deep" };
return {
ok: false,
reason: `JSON-RPC message exceeds maximum depth of ${maxJsonDepth}`,
code: "jsonrpc.too_deep"
};
}

@@ -546,3 +612,7 @@ if (!isRecord(parsed) || parsed["jsonrpc"] !== "2.0") {

if ("id" in parsed && !isJsonRpcId(parsed["id"])) {
return { ok: false, reason: "JSON-RPC id must be a string, safe integer number, null, or absent", code: "jsonrpc.invalid" };
return {
ok: false,
reason: "JSON-RPC id must be a string, safe integer number, null, or absent",
code: "jsonrpc.invalid"
};
}

@@ -556,3 +626,7 @@ if ("method" in parsed && typeof parsed["method"] !== "string") {

if (hasMethod && (hasResult || hasError)) {
return { ok: false, reason: "JSON-RPC request or notification must not include result or error", code: "jsonrpc.invalid" };
return {
ok: false,
reason: "JSON-RPC request or notification must not include result or error",
code: "jsonrpc.invalid"
};
}

@@ -564,6 +638,14 @@ if (!hasMethod) {

if (hasResult === hasError) {
return { ok: false, reason: "JSON-RPC response must include exactly one of result or error", code: "jsonrpc.invalid" };
return {
ok: false,
reason: "JSON-RPC response must include exactly one of result or error",
code: "jsonrpc.invalid"
};
}
if (hasError && !isJsonRpcErrorObject(parsed["error"])) {
return { ok: false, reason: "JSON-RPC error must include numeric code and string message", code: "jsonrpc.invalid" };
return {
ok: false,
reason: "JSON-RPC error must include numeric code and string message",
code: "jsonrpc.invalid"
};
}

@@ -849,2 +931,5 @@ }

}
function hasDiscoveryCursor(envelope) {
return isRecord(envelope.params) && typeof envelope.params["cursor"] === "string";
}
function filterToolListResult(envelope, policy, profileId) {

@@ -976,12 +1061,4 @@ const result = isRecord(envelope.result) ? envelope.result : undefined;

}
return profile.rules.some((rule) => {
if (rule.action === "deny") {
return false;
}
return ruleCoversTool(rule, tool);
});
return toolHasNonDenyPolicyCoverage(profile.rules, tool.name, tool.capabilities);
}
function ruleCoversTool(rule, tool) {
return Boolean(rule.tools?.includes(tool.name)) || tool.capabilities.some((capability) => rule.capabilities?.includes(capability));
}
function encodeJsonRpcError(id, code, message, decision) {

@@ -1058,8 +1135,2 @@ return JSON.stringify({

}
function resolveOptionalPositiveInteger(value) {
if (value === undefined || !Number.isSafeInteger(value) || value < 1) {
return undefined;
}
return value;
}
async function withApprovalTimeout(approval, timeoutMs) {

@@ -1066,0 +1137,0 @@ let timer;

@@ -1,1 +0,1 @@

{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,EASN,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,4BAA4B,EAC7B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,yBAAyB,EAO1B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,eAAe,EAAgC,MAAM,wBAAwB,CAAC;AAgDvF,MAAM,qBAAqB,GAAG,CAAC,KAAK,CAAC;AACrC,MAAM,uBAAuB,GAAG,CAAC,KAAK,CAAC;AACvC,MAAM,kCAAkC,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7D,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;AAC7F,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC;AACnE,MAAM,4BAA4B,GAAG,iCAAiC,CAAC;AACvE,MAAM,oBAAoB,GAAG,SAAS,CAAC;AACvC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,MAAM,yBAAyB,GAAG,KAAK,CAAC;AACxC,MAAM,0BAA0B,GAAG,OAAO,CAAC;AAC3C,MAAM,wBAAwB,GAAG,MAAM,CAAC;AACxC,MAAM,8BAA8B,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;AACxG,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAClF,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAClF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;AAEzD,MAAM,OAAO,YAAY;IAWM;IAVZ,qBAAqB,GAAG,IAAI,GAAG,EAA+B,CAAC;IAC/D,0BAA0B,GAAG,IAAI,GAAG,EAA+B,CAAC;IACpE,YAAY,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC/C,aAAa,CAAS;IACtB,YAAY,CAAS;IACrB,kBAAkB,CAAS;IAC3B,mBAAmB,CAAS;IAC5B,iBAAiB,CAAS;IAC1B,eAAe,CAAkB;IAElD,YAA6B,OAA4B;QAA5B,YAAO,GAAP,OAAO,CAAqB;QACvD,IAAI,CAAC,aAAa,GAAG,sBAAsB,CAAC,OAAO,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;QACzF,IAAI,CAAC,YAAY,GAAG,sBAAsB,CAAC,OAAO,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;QACtF,IAAI,CAAC,kBAAkB,GAAG,sBAAsB,CAAC,OAAO,CAAC,kBAAkB,EAAE,yBAAyB,CAAC,CAAC;QACxG,IAAI,CAAC,mBAAmB,GAAG,sBAAsB,CAAC,OAAO,CAAC,mBAAmB,EAAE,0BAA0B,CAAC,CAAC;QAC3G,IAAI,CAAC,iBAAiB,GAAG,sBAAsB,CAAC,OAAO,CAAC,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;QACrG,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,IAAI,eAAe,EAAE,CAAC;IAC1E,CAAC;IAED,gBAAgB,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,QAAQ,CAAC,MAAM,CAAC;YACzB,CAAC;YACD,OAAO,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;QAClG,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,4BAA4B,CAAC,IAAY,EAAE,YAA0B;QACzE,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;YAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,QAAQ,CAAC,MAAM,CAAC;YACzB,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,uCAAuC,CACvD,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,QAAQ,EACjB,YAAY,EACZ,QAAQ,CAAC,WAAW,CACrB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,IAAY;QAQpC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACpE,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE;oBACN,YAAY,EAAE,kBAAkB,CAAC,IAAI,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,QAAQ,CAAC;oBACzG,WAAW,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;iBACnD;aACF,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,MAAM,mBAAmB,GAAG,IAAI,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAC;YAC1E,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,OAAO;oBACL,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE;wBACN,WAAW,EAAE;4BACX,IAAI,CAAC,WAAW,CACd,OAAO,EACP,YAAY,CAAC,0EAA0E,EAAE;gCACvF,IAAI,EAAE,4BAA4B;6BACnC,CAAC,CACH;yBACF;qBACF;iBACF,CAAC;YACJ,CAAC;YACD,IAAI,mBAAmB,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5E,OAAO;oBACL,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE;wBACN,WAAW,EAAE;4BACX,IAAI,CAAC,WAAW,CACd,OAAO,EACP,YAAY,CAAC,+DAA+D,EAAE;gCAC5E,IAAI,EAAE,iBAAiB;gCACvB,MAAM,EAAE,mBAAmB,CAAC,MAAM;6BACnC,CAAC,CACH;yBACF;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,SAAS,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;YAC5D,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE;oBACN,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;oBACpF,WAAW,EAAE,IAAI,CAAC,0CAA0C,CAAC,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC;iBAC5F;aACF,CAAC;QACJ,CAAC;QAED,MAAM,gBAAgB,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,0BAA0B,GAAG,IAAI,CAAC,yCAAyC,CAC/E,QAAQ,EACR,gBAAgB,CAAC,SAAS,CAC3B,CAAC;QACF,MAAM,cAAc,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9F,IAAI,cAAc,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YACtC,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,IAAI,CAAC,wBAAwB,CACnC,0BAA0B,EAC1B,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,QAAQ,EAAE,cAAc,EAAE,6BAA6B,EAAE,eAAe,CAAC,CAC7G;aACF,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC3E,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,IAAI,CAAC,wBAAwB,CAAC,0BAA0B,EAAE,WAAW,CAAC;aAC/E,CAAC;QACJ,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,2BAA2B,CACvD,gBAAgB,CAAC,QAAQ,EACzB,IAAI,CAAC,qBAAqB,EAC1B,oEAAoE,CACrE,CAAC;QACF,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,IAAI,CAAC,wBAAwB,CAAC,0BAA0B,EAAE,gBAAgB,CAAC;aACpF,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1G,IAAI,gBAAgB,CAAC,QAAQ,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YACtD,MAAM,yBAAyB,GAAG,IAAI,CAAC,8BAA8B,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACjG,IAAI,yBAAyB,EAAE,CAAC;gBAC9B,OAAO;oBACL,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,IAAI,CAAC,wBAAwB,CAAC,0BAA0B,EAAE,yBAAyB,CAAC;iBAC7F,CAAC;YACJ,CAAC;YACD,MAAM,aAAa,GAAG,IAAI,CAAC,2BAA2B,CACpD,gBAAgB,CAAC,QAAQ,EACzB,IAAI,CAAC,qBAAqB,EAC1B,QAAQ,CACT,CAAC;YACF,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO;oBACL,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,IAAI,CAAC,wBAAwB,CAAC,0BAA0B,EAAE,aAAa,CAAC;iBACjF,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACvD,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE;oBACN,WAAW;oBACX,WAAW,EAAE,0BAA0B;iBACxC;aACF,CAAC;QACJ,CAAC;QAED,MAAM,uBAAuB,GAAG,+BAA+B,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC3F,IAAI,CAAC,uBAAuB,CAAC,EAAE,EAAE,CAAC;YAChC,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,IAAI,CAAC,wBAAwB,CACnC,0BAA0B,EAC1B,IAAI,CAAC,YAAY,CACf,gBAAgB,CAAC,QAAQ,EACzB,YAAY,CAAC,uBAAuB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAC/F,8CAA8C,EAC9C,OAAO,CACR,CACF;aACF,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,QAAQ,CAAC;YACtD,QAAQ,EAAE,uBAAuB,CAAC,QAAQ;YAC1C,WAAW,EAAE,0BAA0B;SACxC,CAAC;IACJ,CAAC;IAEO,2BAA2B,CACjC,IAAY,EACZ,QAAgC,EAChC,sBAA6C,EAAE;QAE/C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,wBAAwB,CAClC,mBAAmB,EACnB,IAAI,CAAC,YAAY,CACf,QAAQ,EACR,YAAY,CAAC,4CAA4C,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,EACxF,gCAAgC,EAChC,eAAe,EACf,QAAQ,IAAI,SAAS,CACtB,CACF,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,yBAAyB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,gBAAgB,CAAC;YAChC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,IAAI,EAAE,UAAU;YAChB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,KAAK,SAAS;gBAClD,CAAC,CAAC,EAAE,qBAAqB,EAAE,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE;gBAC/D,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAChC,MAAM,aAAa,GAAG,IAAI,CAAC,2BAA2B,CAAC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;YACvG,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;YACtC,OAAO;gBACL,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,CAAC,GAAG,mBAAmB,EAAE,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;aACxG,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,wBAAwB,CAClC,mBAAmB,EACnB,IAAI,CAAC,YAAY,CACf,QAAQ,EACR,YAAY,CAAC,0EAA0E,EAAE;gBACvF,IAAI,EAAE,8BAA8B;gBACpC,GAAG,gBAAgB,CAAC,QAAQ,CAAC;aAC9B,CAAC,EACF,gCAAgC,EAChC,eAAe,EACf,UAAU,CAAC,QAAQ,CACpB,CACF,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,wBAAwB,CAClC,mBAAmB,EACnB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,gCAAgC,EAAE,eAAe,EAAE,UAAU,CAAC,QAAQ,CAAC,CAC9G,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,uCAAuC,CACnD,IAAY,EACZ,QAAgC,EAChC,YAA0B,EAC1B,sBAA6C,EAAE;QAE/C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,wBAAwB,CAClC,mBAAmB,EACnB,IAAI,CAAC,YAAY,CACf,QAAQ,EACR,YAAY,CAAC,4CAA4C,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,EACxF,gCAAgC,EAChC,eAAe,EACf,QAAQ,IAAI,SAAS,CACtB,CACF,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,yBAAyB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,gBAAgB,CAAC;YAChC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,IAAI,EAAE,UAAU;YAChB,qBAAqB,EAAE,IAAI;SAC5B,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAChC,MAAM,aAAa,GAAG,IAAI,CAAC,2BAA2B,CAAC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;YACvG,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;YACtC,OAAO;gBACL,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,CAAC,GAAG,mBAAmB,EAAE,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;aACxG,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,wBAAwB,CAClC,mBAAmB,EACnB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,gCAAgC,EAAE,eAAe,EAAE,UAAU,CAAC,QAAQ,CAAC,CAC9G,CAAC;QACJ,CAAC;QAED,IAAI,QAAwB,CAAC;QAC7B,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,KAAK,YAAY,mBAAmB,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,6BAA6B,CAAC;YAChH,OAAO,IAAI,CAAC,wBAAwB,CAClC,mBAAmB,EACnB,IAAI,CAAC,YAAY,CACf,QAAQ,EACR,YAAY,CAAC,MAAM,EAAE;gBACnB,IAAI,EAAE,6BAA6B;gBACnC,GAAG,gBAAgB,CAAC,QAAQ,CAAC;aAC9B,CAAC,EACF,gCAAgC,EAChC,eAAe,EACf,UAAU,CAAC,QAAQ,CACpB,CACF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAEpD,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,aAAa,GAAG,IAAI,CAAC,2BAA2B,CAAC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;YACvG,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,aAAa,GAAmB;gBACpC,aAAa,EAAE,QAAQ,CAAC,aAAa;gBACrC,MAAM,EAAE,OAAO;gBACf,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBAC7C,GAAG,QAAQ;oBACX,IAAI,EAAE,yBAAyB;oBAC/B,MAAM,EAAE,kDAAkD;iBAC3D,CAAC,CAAC;aACJ,CAAC;YACF,OAAO;gBACL,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,CAAC,GAAG,mBAAmB,EAAE,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,aAAa,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;aAC7G,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,wBAAwB,CAClC,mBAAmB,EACnB,IAAI,CAAC,YAAY,CACf,QAAQ,EACR,YAAY,CAAC,kDAAkD,EAAE;YAC/D,IAAI,EAAE,wBAAwB;YAC9B,GAAG,gBAAgB,CAAC,QAAQ,CAAC;SAC9B,CAAC,EACF,gCAAgC,EAChC,eAAe,EACf,UAAU,CAAC,QAAQ,CACpB,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,YAA0B,EAC1B,IAAwB,EACxB,QAAwB;QAExB,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClD,OAAO,MAAM,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACrE,CAAC;IAED,gBAAgB,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IACjG,CAAC;IAEO,iBAAiB,CAAC,IAAY;QACpC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACpE,OAAO;gBACL,WAAW,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;aACnD,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YACnD,MAAM,cAAc,GAAG,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACjF,IAAI,cAAc,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBACtC,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,cAAc,EAAE,6BAA6B,EAAE,eAAe,CAAC,CAAC;YACrG,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,kCAAkC,CAAC,QAAQ,CAAC,CAAC;YACtE,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,WAAW,CAAC;YACrB,CAAC;YAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,2BAA2B,CACvD,QAAQ,EACR,IAAI,CAAC,0BAA0B,EAC/B,2EAA2E,CAC5E,CAAC;YACF,IAAI,gBAAgB,EAAE,CAAC;gBACrB,OAAO,gBAAgB,CAAC;YAC1B,CAAC;YAED,MAAM,gBAAgB,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAAC;YAClE,MAAM,0BAA0B,GAAG,IAAI,CAAC,yCAAyC,CAC/E,UAAU,EACV,gBAAgB,CAAC,SAAS,CAC3B,CAAC;YACF,MAAM,aAAa,GAAG,IAAI,CAAC,2BAA2B,CACpD,gBAAgB,CAAC,QAAQ,EACzB,IAAI,CAAC,0BAA0B,EAC/B,UAAU,CACX,CAAC;YACF,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,IAAI,CAAC,wBAAwB,CAAC,0BAA0B,EAAE,aAAa,CAAC,CAAC;YAClF,CAAC;YACD,IAAI,CAAC,kCAAkC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACnE,OAAO;gBACL,WAAW,EAAE,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;gBAClG,WAAW,EAAE,0BAA0B;aACxC,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACtF,MAAM,iBAAiB,GAAG,+BAA+B,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACnF,MAAM,SAAS,GAAG;YAChB,QAAQ,EAAE,iBAAiB,CAAC,QAAQ;YACpC,gBAAgB,EAAE,cAAc,CAAC,SAAS,CAAC,OAAO,IAAI,iBAAiB,CAAC,SAAS,CAAC,OAAO;SAC1F,CAAC;QACF,MAAM,YAAY,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE5F,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACnE,MAAM,mBAAmB,GAAG;YAC1B,GAAG,IAAI,CAAC,uCAAuC,CAAC,cAAc,CAAC,SAAS,CAAC;YACzE,GAAG,IAAI,CAAC,0CAA0C,CAAC,UAAU,EAAE,iBAAiB,CAAC,SAAS,CAAC;SAC5F,CAAC;QACF,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO;gBACL,WAAW,EAAE;oBACX,GAAG,mBAAmB;oBACtB,IAAI,CAAC,WAAW,CACd,OAAO,EACP,YAAY,CAAC,mEAAmE,EAAE;wBAChF,IAAI,EAAE,4BAA4B;qBACnC,CAAC,CACH;iBACF;aACF,CAAC;QACJ,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YAC3C,OAAO;gBACL,WAAW,EAAE,YAAY;gBACzB,WAAW,EAAE,mBAAmB;aACjC,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC;gBACvC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC5B,CAAC;YACD,OAAO;gBACL,WAAW,EAAE,YAAY;gBACzB,WAAW,EAAE,mBAAmB;aACjC,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrG,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC;YACvC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACvC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC;QAE7C,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC5C,WAAW,EAAE;gBACX,GAAG,mBAAmB;gBACtB,GAAG,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,wBAAwB,CAAC;aAC1F;SACF,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,QAAyB;QAClD,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,sBAAsB,CAAC,QAAgC;QAC7D,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;YACxD,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,SAAS,EAAE,MAAM,CAAC,iBAAiB;YACnC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC;YAClE,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,YAAY,IAAI,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1G,CAAC,CAAC;IACL,CAAC;IAEO,8BAA8B,CAAC,QAAyB;QAC9D,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzD,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,kCAAkC,CAAC,QAAgC;QACzE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAClH,CAAC;IAEO,2BAA2B,CACjC,QAAgC,EAChC,OAAyC,EACzC,MAAc;QAEd,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC9E,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CACtB,QAAQ,EACR,YAAY,CAAC,MAAM,EAAE;YACnB,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC,EACF,4CAA4C,EAC5C,OAAO,CACR,CAAC;IACJ,CAAC;IAEO,2BAA2B,CACjC,QAAgC,EAChC,OAAyC,EACzC,SAAgC;QAEhC,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7E,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CACtB,QAAQ,EACR,YAAY,CAAC,GAAG,SAAS,iCAAiC,EAAE;YAC1D,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC,EACF,4CAA4C,EAC5C,OAAO,CACR,CAAC;IACJ,CAAC;IAEO,8BAA8B,CAAC,QAAgC;QACrE,IAAI,QAAQ,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YACrC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC7D,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1D,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;gBACpC,OAAO,IAAI,CAAC,YAAY,CACtB,QAAQ,EACR,YAAY,CAAC,sEAAsE,EAAE;oBACnF,IAAI,EAAE,iBAAiB;oBACvB,MAAM,EAAE,YAAY;iBACrB,CAAC,EACF,4CAA4C,EAC5C,OAAO,CACR,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,yBAAyB,CAAC,MAAc;QAC9C,OAAO;YACL,MAAM;YACN,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB;YAChD,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC;SAC1D,CAAC;IACJ,CAAC;IAEO,2BAA2B,CAAC,OAAyC;QAC3E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAC7C,IAAI,KAAK,CAAC,SAAS,IAAI,GAAG,EAAE,CAAC;gBAC3B,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,sBAAsB,CAAC,QAAgC;QAC7D,IAAI,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpF,OAAO,IAAI,CAAC,wBAAwB,CAClC,QAAQ,EACR,+CAA+C,EAC/C,4CAA4C,CAC7C,CAAC;QACJ,CAAC;QACD,IAAI,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9E,OAAO,IAAI,CAAC,wBAAwB,CAClC,QAAQ,EACR,wDAAwD,EACxD,iDAAiD,CAClD,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,kCAAkC,CAAC,QAAgC;QACzE,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjE,OAAO,IAAI,CAAC,YAAY,CACtB,QAAQ,EACR,YAAY,CAAC,+CAA+C,EAAE;gBAC5D,IAAI,EAAE,iBAAiB;gBACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;aACxB,CAAC,EACF,6BAA6B,EAC7B,eAAe,CAChB,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,wBAAwB,CAC9B,QAAgC,EAChC,MAAc,EACd,OAAe;QAEf,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,EAAE;YACpC,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC,CAAC;QACH,OAAO;YACL,YAAY,EAAE,kBAAkB,CAC9B,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAClD,uBAAuB,EACvB,OAAO,EACP,QAAQ,CACT;YACD,WAAW,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;SAC/E,CAAC;IACJ,CAAC;IAEO,YAAY,CAClB,QAAgC,EAChC,QAAwB,EACxB,OAAe,EACf,IAAiD,EACjD,QAAiB;QAEjB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/E,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,OAAO;gBACL,WAAW,EAAE,CAAC,UAAU,CAAC;aAC1B,CAAC;QACJ,CAAC;QAED,OAAO;YACL,YAAY,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE,EAAE,qBAAqB,EAAE,OAAO,EAAE,QAAQ,CAAC;YACvF,WAAW,EAAE,CAAC,UAAU,CAAC;SAC1B,CAAC;IACJ,CAAC;IAEO,WAAW,CACjB,IAAwB,EACxB,QAAwB,EACxB,QAAiB,EACjB,MAAe,EACf,YAA8B,WAAW,EAAE;QAE3C,OAAO,gBAAgB,CAAC;YACtB,IAAI;YACJ,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,QAAQ;YACR,SAAS;YACT,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAC3D,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9B,CAAC,CAAC;IACL,CAAC;IAEO,0BAA0B,CAAC,aAAqB,EAAE,wBAAiC;QACzF,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,IAAI,wBAAwB,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,WAAW,CACd,oBAAoB,EACpB,YAAY,CAAC,iEAAiE,EAAE;gBAC9E,IAAI,EAAE,oBAAoB;aAC3B,CAAC,CACH,CACF,CAAC;QACJ,CAAC;QACD,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,WAAW,CACd,oBAAoB,EACpB,YAAY,CAAC,GAAG,aAAa,qCAAqC,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CACpG,CACF,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,uCAAuC,CAAC,SAA2B;QACzE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO;YACL,IAAI,CAAC,WAAW,CACd,OAAO,EACP,YAAY,CAAC,4BAA4B,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,0BAA0B,CAAC,SAAS,CAAC,EAAE,CAAC,EACtG,SAAS,EACT,SAAS,EACT,SAAS,CACV;SACF,CAAC;IACJ,CAAC;IAEO,0CAA0C,CAChD,SAAgC,EAChC,SAA2B;QAE3B,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO;YACL,IAAI,CAAC,WAAW,CACd,OAAO,EACP,YAAY,CAAC,GAAG,SAAS,2DAA2D,EAAE;gBACpF,IAAI,EAAE,wCAAwC;aAC/C,CAAC,EACF,SAAS,EACT,SAAS,EACT,SAAS,CACV;SACF,CAAC;IACJ,CAAC;IAEO,yCAAyC,CAC/C,SAAgC,EAChC,SAA2B;QAE3B,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO;YACL,IAAI,CAAC,WAAW,CACd,OAAO,EACP,YAAY,CAAC,GAAG,SAAS,0DAA0D,EAAE;gBACnF,IAAI,EAAE,uCAAuC;aAC9C,CAAC,EACF,SAAS,EACT,SAAS,EACT,SAAS,CACV;SACF,CAAC;IACJ,CAAC;IAEO,wBAAwB,CAAC,WAAkC,EAAE,MAAwB;QAC3F,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO;YACL,GAAG,MAAM;YACT,WAAW,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;SACrD,CAAC;IACJ,CAAC;CACF;AAED,MAAM,UAAU,kBAAkB,CAAC,OAA4B;IAC7D,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,aAAa,CACpB,IAAY,EACZ,aAAqB,EACrB,YAAoB;IAIpB,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,aAAa,EAAE,CAAC;QACpD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,0CAA0C,aAAa,QAAQ;YACvE,IAAI,EAAE,yBAAyB;SAChC,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,wEAAwE;YAChF,IAAI,EAAE,iBAAiB;SACxB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;QAC3C,IAAI,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC;YAC3C,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,6CAA6C,YAAY,EAAE;gBACnE,IAAI,EAAE,kBAAkB;aACzB,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,KAAK,EAAE,CAAC;YACrD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,sCAAsC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;QAChG,CAAC;QACD,IAAI,IAAI,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACjD,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,oEAAoE;gBAC5E,IAAI,EAAE,iBAAiB;aACxB,CAAC;QACJ,CAAC;QACD,IAAI,QAAQ,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC/D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,+CAA+C,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;QACzG,CAAC;QACD,MAAM,SAAS,GAAG,QAAQ,IAAI,MAAM,CAAC;QACrC,MAAM,SAAS,GAAG,QAAQ,IAAI,MAAM,CAAC;QACrC,MAAM,QAAQ,GAAG,OAAO,IAAI,MAAM,CAAC;QACnC,IAAI,SAAS,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,EAAE,CAAC;YACzC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,mEAAmE;gBAC3E,IAAI,EAAE,iBAAiB;aACxB,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC;gBACtB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,sCAAsC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;YAChG,CAAC;YACD,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC3B,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,+DAA+D;oBACvE,IAAI,EAAE,iBAAiB;iBACxB,CAAC;YACJ,CAAC;YACD,IAAI,QAAQ,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;gBACvD,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,6DAA6D;oBACrE,IAAI,EAAE,iBAAiB;iBACxB,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;IACrF,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAyC;IACrE,IAAI,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;QACxE,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YACnB,MAAM,OAAO,GAAmB;gBAC9B,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC/B,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;aACzB,CAAC;YACF,OAAO,eAAe,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC/G,CAAC;QACD,MAAM,YAAY,GAAwB;YACxC,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;SACzB,CAAC;QACF,OAAO,eAAe,CACpB,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EACjF,WAAW,CACZ,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;IACzE,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAoB;YAChC,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;SACzB,CAAC;QACF,OAAO,eAAe,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,QAAQ,GAAoB;QAChC,OAAO,EAAE,KAAK;QACd,EAAE,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/B,KAAK,EAAE,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KAC/C,CAAC;IACF,OAAO,eAAe,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,eAAe,CACtB,KAAwC,EACxC,WAAgC;IAEhC,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAA4B,QAAW,EAAE,WAA8C;IAC7G,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc,EAAE,QAAgB;IACxD,MAAM,KAAK,GAA0D,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3F,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,GAAG,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9D,SAAS;QACX,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChG,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AACnH,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgC;IAC3D,OAAO,IAAI,IAAI,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAAc;IAEd,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC;AACtG,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC5C,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC;IACrF,CAAC;IACD,OAAO;QACL,GAAG,KAAK;QACR,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;QACzB,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,QAAyB,EACzB,eAA4C;IAE5C,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,CAAC;IAChD,CAAC;IACD,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;IAErC,MAAM,KAAK,GAA4B;QACrC,IAAI,EAAE,aAAa,CAAC,IAAI;QACxB,OAAO,EAAE,aAAa,CAAC,OAAO;KAC/B,CAAC;IACF,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,IAAI,MAAM,IAAI,aAAa,EAAE,CAAC;QAC5B,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CACvD,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,MAAM,CAC/D,CAAC,MAAM,CAAC;IACT,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,4BAA4B,CAAC,GAAG,eAAe,CAAC;IACzD,CAAC;IAED,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC,CAAC;QAC/D,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC7B,KAAK,CAAC,SAAS,CAAC,GAAG,4BAA4B,CAAC;YAChD,MAAM,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,CAAC;IAChD,CAAC;IAED,OAAO;QACL,QAAQ,EAAE;YACR,GAAG,QAAQ;YACX,KAAK,EAAE;gBACL,IAAI,EAAE,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,uBAAuB;gBACjF,OAAO,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,yBAAyB;aAC7F;SACF;QACD,SAAS,EAAE;YACT,OAAO,EAAE,IAAI;YACb,MAAM;SACP;KACF,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CAAC,QAAgC;IAItE,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,0BAA0B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3G,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,CAAC;IAChD,CAAC;IAED,MAAM,SAAS,GAAG;QAChB,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,QAAQ,CAAC,MAAM;KACf,CAAC;IACX,IAAI,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,MAAM,OAAO,GAAmB;YAC9B,GAAG,SAAS;YACZ,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7D,CAAC;QACF,OAAO;YACL,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE;gBACT,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACN,4BAA4B,EAAE,eAAe;iBAC9C;aACF;SACF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,QAAQ,EAAE;YACR,GAAG,SAAS;YACZ,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7D;QACD,SAAS,EAAE;YACT,OAAO,EAAE,IAAI;YACb,MAAM,EAAE;gBACN,4BAA4B,EAAE,eAAe;aAC9C;SACF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,+BAA+B,CACtC,QAAgC;IAEhC,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,qCAAqC,EAAE,CAAC;IACtE,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IAChG,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,wDAAwD,EAAE,CAAC;IACzF,CAAC;IAED,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mDAAmD,EAAE,CAAC;IACpF,CAAC;IAED,MAAM,eAAe,GAA4B;QAC/C,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;KACrB,CAAC;IACF,IAAI,WAAW,IAAI,MAAM,EAAE,CAAC;QAC1B,eAAe,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;QACrB,OAAO;YACL,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE;gBACR,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,eAAe;aACxB;SACF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,EAAE,EAAE,IAAI;QACR,QAAQ,EAAE;YACR,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,eAAe;SACxB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,+BAA+B,CAAC,QAAyB;IAIhE,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,2BAA2B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5G,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,CAAC;IAChD,CAAC;IAED,OAAO;QACL,QAAQ,EACN,QAAQ,IAAI,QAAQ;YAClB,CAAC,CAAC;gBACE,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,MAAM,EAAE,QAAQ,CAAC,MAAM;aACxB;YACH,CAAC,CAAC;gBACE,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,KAAK,EAAE,QAAQ,CAAC,KAAK;aACtB;QACP,SAAS,EAAE;YACT,OAAO,EAAE,IAAI;YACb,MAAM,EAAE;gBACN,6BAA6B,EAAE,eAAe;aAC/C;SACF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,SAA2B;IAC/D,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,KAAK,SAAS,CAAC;IACzE,MAAM,kBAAkB,GAAG,SAAS,CAAC,MAAM,CAAC,4BAA4B,CAAC,KAAK,SAAS,CAAC;IACxF,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC,uBAAuB,CAAC,KAAK,SAAS,CAAC;IAChF,IAAI,WAAW,IAAI,kBAAkB,IAAI,eAAe,EAAE,CAAC;QACzD,OAAO,8FAA8F,CAAC;IACxG,CAAC;IACD,IAAI,WAAW,IAAI,eAAe,EAAE,CAAC;QACnC,OAAO,6EAA6E,CAAC;IACvF,CAAC;IACD,IAAI,kBAAkB,IAAI,eAAe,EAAE,CAAC;QAC1C,OAAO,qFAAqF,CAAC;IAC/F,CAAC;IACD,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,4DAA4D,CAAC;IACtE,CAAC;IACD,IAAI,WAAW,IAAI,kBAAkB,EAAE,CAAC;QACtC,OAAO,yEAAyE,CAAC;IACnF,CAAC;IACD,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,gEAAgE,CAAC;IAC1E,CAAC;IACD,OAAO,wDAAwD,CAAC;AAClE,CAAC;AAED,SAAS,0BAA0B,CAAC,SAA2B;IAC7D,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,KAAK,SAAS,CAAC;IACzE,MAAM,kBAAkB,GAAG,SAAS,CAAC,MAAM,CAAC,4BAA4B,CAAC,KAAK,SAAS,CAAC;IACxF,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC,uBAAuB,CAAC,KAAK,SAAS,CAAC;IAChF,IAAI,CAAC,WAAW,IAAI,kBAAkB,CAAC,IAAI,eAAe,EAAE,CAAC;QAC3D,OAAO,iCAAiC,CAAC;IAC3C,CAAC;IACD,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,iCAAiC,CAAC;IAC3C,CAAC;IACD,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,yCAAyC,CAAC;IACnD,CAAC;IACD,OAAO,sCAAsC,CAAC;AAChD,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAyB;IACjD,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,OAAO,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClE,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgC;IAC1D,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC;AACpF,CAAC;AAED,SAAS,oBAAoB,CAC3B,QAAyB,EACzB,MAAsB,EACtB,SAAiB;IAOjB,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO;YACL,QAAQ,EAAE;gBACR,GAAG,QAAQ;gBACX,MAAM,EAAE;oBACN,KAAK,EAAE,EAAE;iBACV;aACF;YACD,YAAY,EAAE,EAAE;YAChB,aAAa,EAAE,CAAC;YAChB,wBAAwB,EAAE,IAAI;SAC/B,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAmB,EAAE,CAAC;IACxC,MAAM,aAAa,GAAc,EAAE,CAAC;IACpC,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACzD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;YACxD,SAAS;QACX,CAAC;QACD,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACzC,SAAS;QACX,CAAC;QACD,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9F,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,MAAM,UAAU,GAAG,sBAAsB,CAAC;YACxC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;YAClB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxC,CAAC,CAAC,UAAU,CAAC;QACd,MAAM,QAAQ,GAAiB;YAC7B,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,YAAY,EAAE,UAAU,CAAC,YAAY;SACtC,CAAC;QAEF,IAAI,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;YACpD,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5B,aAAa,CAAC,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ,EAAE;YACR,GAAG,QAAQ;YACX,MAAM,EAAE,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;SACtD;QACD,YAAY;QACZ,aAAa,EAAE,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM;QAClD,wBAAwB,EAAE,KAAK;KAChC,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAyB;IACvD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;YACxD,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YAC3B,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,6BAA6B,CACpC,IAAuC,EACvC,QAAsB;IAEtB,MAAM,UAAU,GAA4B;QAC1C,IAAI,EAAE,QAAQ,CAAC,IAAI;KACpB,CAAC;IAEF,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;QACzB,UAAU,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC;IACnD,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACvC,CAAC;IAED,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IACjD,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IAClD,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IAEjD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,sBAAsB,CAC7B,MAAyC,EACzC,KAAyB;IAEzB,MAAM,SAAS,GAA4B;QACzC,KAAK;KACN,CAAC;IACF,IAAI,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC7C,SAAS,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CACtB,MAAyC,EACzC,MAA+B,EAC/B,KAAa;IAEb,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,CAAC,KAAK,CAAC,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAwC;IACzE,MAAM,SAAS,GAAG,8BAA8B,CAAC,KAAK,CAAC,CAAC;IACxD,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9C,CAAC;AAED,SAAS,8BAA8B,CAAC,KAAc;IACpD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GAA4B,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,IAAI,8BAA8B,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,SAAS;QACX,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,GAAG,8BAA8B,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAkB,EAAE,MAAsB,EAAE,SAAiB;IACvF,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;IACtE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,4BAA4B,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,kBAAkB,CACzB,EAA0B,EAC1B,IAAY,EACZ,OAAe,EACf,QAAwB;IAExB,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,OAAO,EAAE,KAAK;QACd,EAAE;QACF,KAAK,EAAE;YACL,IAAI;YACJ,OAAO;YACP,IAAI,EAAE;gBACJ,QAAQ;aACT;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,EAA0B;IAC9C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,OAAO,GAAG,OAAO,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,0BAA0B,CACjC,QAAuD,EACvD,MAAsB;IAEtB,MAAM,cAAc,GAAG,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChE,IAAI,cAAc,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QACtC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,CAAC,kCAAkC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7D,OAAO,YAAY,CAAC,gDAAgD,EAAE;YACpE,IAAI,EAAE,iCAAiC;YACvC,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,8BAA8B,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5E,OAAO,YAAY,CAAC,0CAA0C,EAAE;YAC9D,IAAI,EAAE,kCAAkC;YACxC,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAS,8BAA8B,CAAC,QAAyB;IAC/D,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAyB;IACpD,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC;AAChH,CAAC;AAED,SAAS,YAAY,CACnB,MAAc,EACd,QAAqG;IAErG,OAAO;QACL,aAAa,EAAE,iBAAiB;QAChC,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAwB;IAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO;QACL,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClD,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAyB,EAAE,QAAgB;IACzE,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACrE,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,QAAkD,EAClD,SAAiB;IAEjB,IAAI,KAAgD,CAAC;IACrD,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClD,eAAe,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC;YACxB,eAAe;YACf,IAAI,OAAO,CAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;gBAC/C,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,mBAAmB,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;YACzE,CAAC,CAAC;SACH,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,mBAAoB,SAAQ,KAAK;CAAG;AAE1C,SAAS,WAAW;IAClB,OAAO;QACL,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,EAAE;KACX,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}

@@ -13,3 +13,3 @@ import type { Readable, Writable } from "node:stream";

readonly exit: Promise<number>;
readonly kill: () => void;
readonly kill: (force?: boolean) => void | Promise<void>;
}

@@ -16,0 +16,0 @@ export interface StdioProxyOptions {

@@ -1,1 +0,1 @@

{"version":3,"file":"stdio-bridge.d.ts","sourceRoot":"","sources":["../src/stdio-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EAEd,kBAAkB,EACnB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,eAAe,CAAC;IACtE,QAAQ,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,eAAe,CAAC,EAAE,YAAY,CAAC;IACxC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAWD,wBAAsB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAuIzF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAE7E"}
{"version":3,"file":"stdio-bridge.d.ts","sourceRoot":"","sources":["../src/stdio-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EAEd,kBAAkB,EACnB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAGrE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,eAAe,CAAC;IACtE,QAAQ,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,eAAe,CAAC,EAAE,YAAY,CAAC;IACxC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAWD,wBAAsB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA2JzF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAE7E"}
import { StringDecoder } from "node:string_decoder";
import { createAuditEvent } from "@0disoft/mcp-security-proxy-core";
import { createProxySession } from "./session.js";
import { AuditCorrelator } from "./audit-correlation.js";
class AuditFailure extends Error {

@@ -22,2 +23,3 @@ }

const maxFrameBytes = resolvePositiveInteger(options.maxFrameBytes, defaultMaxFrameBytes);
const auditCorrelator = new AuditCorrelator();
const session = createProxySession({

@@ -29,2 +31,3 @@ policy: options.policy,

maxFrameBytes,
auditCorrelator,
...(options.maxJsonDepth !== undefined ? { maxJsonDepth: options.maxJsonDepth } : {})

@@ -41,3 +44,4 @@ });

protocolResponsesWritten: 0,
auditEventsWritten: 0
auditEventsWritten: 0,
auditWriteFailures: 0
};

@@ -51,2 +55,3 @@ const recordAudit = async (events) => {

catch {
metrics.auditWriteFailures += 1;
if (profile.audit.onFailure === "fail_closed") {

@@ -71,3 +76,3 @@ throw new AuditFailure("audit write failed");

await recordOps(createStartOpsEvent(options.profileId, maxFrameBytes, options.maxJsonDepth, metrics));
const stderrDone = observeUpstreamStderr(upstream.stderr, options.profileId, recordAudit, maxFrameBytes);
const stderrDone = observeUpstreamStderr(upstream.stderr, options.profileId, recordAudit, maxFrameBytes, auditCorrelator);
const clientDone = consumeFrames(options.clientInput, maxFrameBytes, async (line) => {

@@ -119,3 +124,3 @@ metrics.clientFrames += 1;

await stderrDone;
return await finish(await normalizeUpstreamExit(exitCode, options.profileId, recordAudit));
return await finish(await normalizeUpstreamExit(exitCode, options.profileId, recordAudit, auditCorrelator));
}

@@ -125,7 +130,7 @@ if (first === "upstream-output") {

await stderrDone;
return await finish(await normalizeUpstreamExit(exitCode, options.profileId, recordAudit));
return await finish(await normalizeUpstreamExit(exitCode, options.profileId, recordAudit, auditCorrelator));
}
await upstreamDone;
await stderrDone;
return await finish(await normalizeUpstreamExit(first, options.profileId, recordAudit));
return await finish(await normalizeUpstreamExit(first, options.profileId, recordAudit, auditCorrelator));
}

@@ -139,3 +144,3 @@ catch (error) {

}
upstream.kill();
await requestUpstreamTermination(upstream, true);
return await finish(fatalExitCode);

@@ -184,3 +189,4 @@ }

protocolResponsesWritten: metrics.protocolResponsesWritten,
auditEventsWritten: metrics.auditEventsWritten
auditEventsWritten: metrics.auditEventsWritten,
auditWriteFailures: metrics.auditWriteFailures
};

@@ -287,4 +293,14 @@ }

const timer = setTimeout(() => {
upstream.kill();
resolve(timeoutExitCode);
void requestUpstreamTermination(upstream, false);
const forceTimer = setTimeout(async () => {
await requestUpstreamTermination(upstream, true);
upstream.stdin.destroy();
upstream.stdout.destroy();
upstream.stderr?.destroy();
resolve(timeoutExitCode);
}, 250);
upstreamExit.finally(() => {
clearTimeout(forceTimer);
resolve(timeoutExitCode);
});
}, Math.max(0, shutdownGraceMs));

@@ -295,3 +311,22 @@ upstreamExit.finally(() => clearTimeout(timer));

}
async function normalizeUpstreamExit(exitCode, profileId, recordAudit) {
async function requestUpstreamTermination(upstream, force) {
const termination = Promise.resolve()
.then(() => upstream.kill(force))
.catch(() => undefined);
let timeout;
try {
await Promise.race([
termination,
new Promise((resolve) => {
timeout = setTimeout(resolve, 1_000);
})
]);
}
finally {
if (timeout) {
clearTimeout(timeout);
}
}
}
async function normalizeUpstreamExit(exitCode, profileId, recordAudit, auditCorrelator) {
if (exitCode === 0) {

@@ -323,3 +358,4 @@ return 0;

counts: {}
}
},
correlation: auditCorrelator.createCorrelation()
})

@@ -329,3 +365,3 @@ ]);

}
async function observeUpstreamStderr(stderr, profileId, recordAudit, maxFrameBytes) {
async function observeUpstreamStderr(stderr, profileId, recordAudit, maxFrameBytes, auditCorrelator) {
if (!stderr) {

@@ -360,3 +396,4 @@ return;

}
}
},
correlation: auditCorrelator.createCorrelation()
})

@@ -363,0 +400,0 @@ ]);

@@ -1,1 +0,1 @@

{"version":3,"file":"stdio-bridge.js","sourceRoot":"","sources":["../src/stdio-bridge.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"stdio-bridge.js","sourceRoot":"","sources":["../src/stdio-bridge.ts"],"names":[],"mappings":"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"}
{
"name": "@0disoft/mcp-security-proxy-runtime",
"description": "Stdio proxy session and subprocess runtime for MCP Security Proxy.",
"version": "0.2.0-alpha.1",
"version": "0.2.0-alpha.2",
"type": "module",

@@ -32,5 +32,5 @@ "license": "Apache-2.0",

"dependencies": {
"@0disoft/mcp-security-proxy-core": "0.2.0-alpha.1",
"@0disoft/mcp-security-proxy-contracts": "0.2.0-alpha.1",
"@0disoft/mcp-security-proxy-mcp-adapter": "0.2.0-alpha.1"
"@0disoft/mcp-security-proxy-contracts": "0.2.0-alpha.2",
"@0disoft/mcp-security-proxy-mcp-adapter": "0.2.0-alpha.2",
"@0disoft/mcp-security-proxy-core": "0.2.0-alpha.2"
},

@@ -37,0 +37,0 @@ "engines": {