__vite_ssr_exportName__("TrimmedString", () => { try { return TrimmedString } catch {} });
__vite_ssr_exportName__("TrimmedNonEmptyString", () => { try { return TrimmedNonEmptyString } catch {} });
__vite_ssr_exportName__("NonNegativeInt", () => { try { return NonNegativeInt } catch {} });
__vite_ssr_exportName__("PositiveInt", () => { try { return PositiveInt } catch {} });
__vite_ssr_exportName__("PortSchema", () => { try { return PortSchema } catch {} });
__vite_ssr_exportName__("DpopFailureReason", () => { try { return DpopFailureReason } catch {} });
__vite_ssr_exportName__("IsoDateTime", () => { try { return IsoDateTime } catch {} });
__vite_ssr_exportName__("ForwardCompatibleOptional", () => { try { return ForwardCompatibleOptional } catch {} });
__vite_ssr_exportName__("ForwardCompatibleNullable", () => { try { return ForwardCompatibleNullable } catch {} });
__vite_ssr_exportName__("OmittedWhenNull", () => { try { return OmittedWhenNull } catch {} });
__vite_ssr_exportName__("ForwardCompatibleArray", () => { try { return ForwardCompatibleArray } catch {} });
__vite_ssr_exportName__("UnknownUnionMember", () => { try { return UnknownUnionMember } catch {} });
__vite_ssr_exportName__("ForwardCompatibleUnion", () => { try { return ForwardCompatibleUnion } catch {} });
__vite_ssr_exportName__("hasUnknownUnionTag", () => { try { return hasUnknownUnionTag } catch {} });
__vite_ssr_exportName__("isUnknownUnionMember", () => { try { return isUnknownUnionMember } catch {} });
__vite_ssr_exportName__("ForwardCompatibleUnionArray", () => { try { return ForwardCompatibleUnionArray } catch {} });
__vite_ssr_exportName__("ThreadId", () => { try { return ThreadId } catch {} });
__vite_ssr_exportName__("ProjectId", () => { try { return ProjectId } catch {} });
__vite_ssr_exportName__("EnvironmentId", () => { try { return EnvironmentId } catch {} });
__vite_ssr_exportName__("CommandId", () => { try { return CommandId } catch {} });
__vite_ssr_exportName__("EventId", () => { try { return EventId } catch {} });
__vite_ssr_exportName__("MessageId", () => { try { return MessageId } catch {} });
__vite_ssr_exportName__("TurnId", () => { try { return TurnId } catch {} });
__vite_ssr_exportName__("RunId", () => { try { return RunId } catch {} });
__vite_ssr_exportName__("RunAttemptId", () => { try { return RunAttemptId } catch {} });
__vite_ssr_exportName__("NodeId", () => { try { return NodeId } catch {} });
__vite_ssr_exportName__("GuestShareId", () => { try { return GuestShareId } catch {} });
__vite_ssr_exportName__("GuestMessageId", () => { try { return GuestMessageId } catch {} });
__vite_ssr_exportName__("AuthSessionId", () => { try { return AuthSessionId } catch {} });
__vite_ssr_exportName__("RpcClientId", () => { try { return RpcClientId } catch {} });
__vite_ssr_exportName__("ClientSurface", () => { try { return ClientSurface } catch {} });
__vite_ssr_exportName__("ClientOs", () => { try { return ClientOs } catch {} });
__vite_ssr_exportName__("ClientDeviceType", () => { try { return ClientDeviceType } catch {} });
__vite_ssr_exportName__("ClientWebDeployment", () => { try { return ClientWebDeployment } catch {} });
__vite_ssr_exportName__("ClientConnectionMethod", () => { try { return ClientConnectionMethod } catch {} });
__vite_ssr_exportName__("ProviderItemId", () => { try { return ProviderItemId } catch {} });
__vite_ssr_exportName__("ProviderSessionId", () => { try { return ProviderSessionId } catch {} });
__vite_ssr_exportName__("ProviderThreadId", () => { try { return ProviderThreadId } catch {} });
__vite_ssr_exportName__("ProviderTurnId", () => { try { return ProviderTurnId } catch {} });
__vite_ssr_exportName__("RuntimeSessionId", () => { try { return RuntimeSessionId } catch {} });
__vite_ssr_exportName__("RuntimeItemId", () => { try { return RuntimeItemId } catch {} });
__vite_ssr_exportName__("TurnItemId", () => { try { return TurnItemId } catch {} });
__vite_ssr_exportName__("RuntimeRequestId", () => { try { return RuntimeRequestId } catch {} });
__vite_ssr_exportName__("RuntimeTaskId", () => { try { return RuntimeTaskId } catch {} });
__vite_ssr_exportName__("ScheduledTaskId", () => { try { return ScheduledTaskId } catch {} });
__vite_ssr_exportName__("SecretRef", () => { try { return SecretRef } catch {} });
__vite_ssr_exportName__("ApprovalRequestId", () => { try { return ApprovalRequestId } catch {} });
__vite_ssr_exportName__("CheckpointRef", () => { try { return CheckpointRef } catch {} });
__vite_ssr_exportName__("CheckpointId", () => { try { return CheckpointId } catch {} });
__vite_ssr_exportName__("CheckpointScopeId", () => { try { return CheckpointScopeId } catch {} });
__vite_ssr_exportName__("ContextHandoffId", () => { try { return ContextHandoffId } catch {} });
__vite_ssr_exportName__("ContextTransferId", () => { try { return ContextTransferId } catch {} });
__vite_ssr_exportName__("RawEventId", () => { try { return RawEventId } catch {} });
__vite_ssr_exportName__("PlanId", () => { try { return PlanId } catch {} });
const __vite_ssr_import_0__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Effect.js");
const __vite_ssr_import_1__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Option.js");
const __vite_ssr_import_2__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Schema.js");
const __vite_ssr_import_3__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/SchemaGetter.js");
const __vite_ssr_import_4__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/SchemaTransformation.js");





const TrimmedString = __vite_ssr_import_2__.String.pipe(__vite_ssr_import_2__.decodeTo(__vite_ssr_import_2__.String, __vite_ssr_import_4__.transformEffect({
	decode: (value) => __vite_ssr_import_0__.succeed(value.trim()),
	encode: (value) => __vite_ssr_import_0__.succeed(value.trim())
})));
// `make` and encode see untrimmed values; `isNonEmpty` would accept whitespace that encodes to an invalid empty string.
const isNonBlank = __vite_ssr_import_2__.makeFilter((value) => value.trim().length > 0, {
	expected: "a non-blank string",
	toJsonSchema: () => [{ minLength: 1 }, true],
	arbitraryConstraint: { minLength: 1 }
});
const TrimmedNonEmptyString = TrimmedString.check(isNonBlank);
const NonNegativeInt = __vite_ssr_import_2__.Int.check(__vite_ssr_import_2__.isGreaterThanOrEqualTo(0));
const PositiveInt = __vite_ssr_import_2__.Int.check(__vite_ssr_import_2__.isGreaterThanOrEqualTo(1));
const PortSchema = __vite_ssr_import_2__.Int.check(__vite_ssr_import_2__.isBetween({
	minimum: 1,
	maximum: 65535
}));
const DpopFailureReason = __vite_ssr_import_2__.Literals([
	"time_window",
	"key_mismatch",
	"request_mismatch",
	"token_mismatch",
	"replay",
	"invalid_proof"
]);
const IsoDateTime = __vite_ssr_import_2__.String;
const ForwardCompatibleOptional = (value) => {
	const decodeValue = __vite_ssr_import_2__.decodeUnknownOption(value);
	return __vite_ssr_import_2__.optionalKey(__vite_ssr_import_2__.Unknown.pipe(__vite_ssr_import_2__.decodeTo(__vite_ssr_import_2__.UndefinedOr(value), __vite_ssr_import_4__.transform({
		decode: (raw) => __vite_ssr_import_1__.isSome(decodeValue(raw)) ? raw : undefined,
		encode: (raw) => raw
	}))));
};
const ForwardCompatibleNullable = (value) => {
	const decodeValue = __vite_ssr_import_2__.decodeUnknownOption(value);
	return __vite_ssr_import_2__.Unknown.pipe(__vite_ssr_import_2__.decodeTo(__vite_ssr_import_2__.NullOr(value), __vite_ssr_import_4__.transform({
		decode: (raw) => __vite_ssr_import_1__.isSome(decodeValue(raw)) ? raw : null,
		encode: (raw) => raw
	})));
};
/** Missing or unknown values decode to null; null encodes as absent for older clients requiring a literal. */
const OmittedWhenNull = (value) => {
	const decodeValue = __vite_ssr_import_2__.decodeUnknownOption(value);
	return __vite_ssr_import_2__.optionalKey(__vite_ssr_import_2__.Unknown).pipe(__vite_ssr_import_2__.decodeTo(__vite_ssr_import_2__.NullOr(value), __vite_ssr_import_4__.transformOptional({
		decode: (raw) => __vite_ssr_import_1__.some(__vite_ssr_import_1__.isSome(raw) && __vite_ssr_import_1__.isSome(decodeValue(raw.value)) ? raw.value : null),
		encode: (raw) => __vite_ssr_import_1__.isSome(raw) && raw.value !== null ? __vite_ssr_import_1__.some(raw.value) : __vite_ssr_import_1__.none()
	})));
};
/** Prefer {@link ForwardCompatibleUnion} for tagged unions so malformed known members still fail. */
const ForwardCompatibleArray = (element) => __vite_ssr_import_2__.Array(__vite_ssr_import_2__.UndefinedOr(element).pipe(__vite_ssr_import_2__.catchDecoding(() => __vite_ssr_import_0__.succeedSome(undefined)), __vite_ssr_import_2__.catchEncoding(() => __vite_ssr_import_0__.succeedSome(undefined)))).pipe(__vite_ssr_import_2__.decodeTo(__vite_ssr_import_2__.Array(__vite_ssr_import_2__.UndefinedOr(__vite_ssr_import_2__.toType(element)).pipe(__vite_ssr_import_2__.catchEncoding(() => __vite_ssr_import_0__.succeedSome(undefined)))).check(
	// Schema.is/make must reject holes; abort before later array checks.
	__vite_ssr_import_2__.makeFilter((values) => {
		// Every index, not `every`, which skips the holes of a sparse array.
		for (let index = 0; index < values.length; index++) {
			if (values[index] === undefined) return false;
		};
		return true;
	}, { expected: "an array without holes" }, true)
), __vite_ssr_import_4__.transform({
	decode: (values) => values.filter((value) => value !== undefined),
	encode: (values) => values.filter((value) => value !== undefined)
})));
/** Class identity prevents decoded payloads from impersonating unknown members. */
class UnknownUnionMember {
	tag;
	value;
	constructor(tag, value) {
		this.tag = tag;
		this.value = value;
	}
};
/** Unknown members are decode-only; encoding one fails. */
const ForwardCompatibleUnion = (members, tag) => {
	const known = knownTags(members, tag);
	const unknownMember = __vite_ssr_import_2__.Struct({ [tag]: __vite_ssr_import_2__.String.check(__vite_ssr_import_2__.makeFilter((value) => !known.has(value) || `A known ${tag} must decode in full.`)) }).pipe(__vite_ssr_import_2__.decodeTo(__vite_ssr_import_2__.instanceOf(UnknownUnionMember), {
		decode: __vite_ssr_import_3__.transform((raw) => new UnknownUnionMember(tag, raw[tag])),
		encode: __vite_ssr_import_3__.forbidden(() => `Unknown ${tag} values are never sent.`)
	}));
	return __vite_ssr_import_2__.Union([...members, unknownMember]);
};
const hasUnknownUnionTag = (members, tag) => {
	const known = knownTags(members, tag);
	return (value) => typeof value === "object" && value !== null && tag in value && !known.has(value[tag]);
};
const isUnknownUnionMember = (value) => value instanceof UnknownUnionMember;
const ForwardCompatibleUnionArray = (members, tag) => __vite_ssr_import_2__.Array(ForwardCompatibleUnion(members, tag)).pipe(__vite_ssr_import_2__.decodeTo(__vite_ssr_import_2__.Array(__vite_ssr_import_2__.toType(__vite_ssr_import_2__.Union(members))), __vite_ssr_import_4__.transform({
	decode: (values) => values.filter((value) => !isUnknownUnionMember(value)),
	encode: (values) => values
})));
const knownTags = (members, tag) => {
	const tags = new Set();
	for (const member of members) {
		const field = member.fields[tag];
		for (const literal of field?.literals ?? [field?.literal]) {
			if (typeof literal !== "string") {
				throw new Error(`Every ForwardCompatibleUnion member needs a string literal ${tag}.`);
			};
			tags.add(literal);
		}
	};
	return tags;
};
const makeEntityId = (brand) => {
	return TrimmedNonEmptyString.pipe(__vite_ssr_import_2__.brand(brand));
};
const ThreadId = makeEntityId("ThreadId");
const ProjectId = makeEntityId("ProjectId");
const EnvironmentId = makeEntityId("EnvironmentId");
const CommandId = makeEntityId("CommandId");
const EventId = makeEntityId("EventId");
const MessageId = makeEntityId("MessageId");
const TurnId = makeEntityId("TurnId");
const RunId = makeEntityId("RunId");
const RunAttemptId = makeEntityId("RunAttemptId");
const NodeId = makeEntityId("NodeId");
const GuestShareId = makeEntityId("GuestShareId");
const GuestMessageId = makeEntityId("GuestMessageId");
const AuthSessionId = makeEntityId("AuthSessionId");
const RpcClientId = NonNegativeInt.pipe(__vite_ssr_import_2__.brand("RpcClientId"));
const ClientSurface = __vite_ssr_import_2__.Literals([
	"web",
	"desktop",
	"mobile",
	"cli"
]);
const ClientOs = __vite_ssr_import_2__.Literals([
	"macOS",
	"Windows",
	"Linux",
	"iOS",
	"Android",
	"ChromeOS",
	"other",
	"unknown"
]);
const ClientDeviceType = __vite_ssr_import_2__.Literals([
	"desktop",
	"phone",
	"tablet",
	"unknown"
]);
const ClientWebDeployment = __vite_ssr_import_2__.Literals(["hosted", "server"]);
const ClientConnectionMethod = __vite_ssr_import_2__.Literals([
	"direct",
	"ssh",
	"relay",
	"unknown"
]);
const ProviderItemId = makeEntityId("ProviderItemId");
const ProviderSessionId = makeEntityId("ProviderSessionId");
const ProviderThreadId = makeEntityId("ProviderThreadId");
const ProviderTurnId = makeEntityId("ProviderTurnId");
const RuntimeSessionId = makeEntityId("RuntimeSessionId");
const RuntimeItemId = makeEntityId("RuntimeItemId");
const TurnItemId = makeEntityId("TurnItemId");
const RuntimeRequestId = makeEntityId("RuntimeRequestId");
const RuntimeTaskId = makeEntityId("RuntimeTaskId");
const ScheduledTaskId = makeEntityId("ScheduledTaskId");
/** A one-use handle to a secret the user entered for an agent; the agent never sees the value. */
const SecretRef = makeEntityId("SecretRef");
const ApprovalRequestId = makeEntityId("ApprovalRequestId");
const CheckpointRef = makeEntityId("CheckpointRef");
const CheckpointId = makeEntityId("CheckpointId");
const CheckpointScopeId = makeEntityId("CheckpointScopeId");
const ContextHandoffId = makeEntityId("ContextHandoffId");
const ContextTransferId = makeEntityId("ContextTransferId");
const RawEventId = makeEntityId("RawEventId");
const PlanId = makeEntityId("PlanId");
//# sourceMappingSource=vite-generated
//# sourceMappingURL=data:application/json;base64,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YSxlQUFlO0FBRWxELE1BQU0sZUFBZSxhQUFhLGNBQWM7QUFFaEQsTUFBTSxvQkFBb0IsYUFBYSxtQkFBbUI7QUFFMUQsTUFBTSxtQkFBbUIsYUFBYSxrQkFBa0I7QUFFeEQsTUFBTSxvQkFBb0IsYUFBYSxtQkFBbUI7QUFFMUQsTUFBTSxhQUFhLGFBQWEsWUFBWTtBQUU1QyxNQUFNLFNBQVMsYUFBYSxRQUFRIiwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlcyI6WyJiYXNlU2NoZW1hcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBFZmZlY3QgZnJvbSBcImVmZmVjdC9FZmZlY3RcIjtcbmltcG9ydCAqIGFzIE9wdGlvbiBmcm9tIFwiZWZmZWN0L09wdGlvblwiO1xuaW1wb3J0ICogYXMgU2NoZW1hIGZyb20gXCJlZmZlY3QvU2NoZW1hXCI7XG5pbXBvcnQgKiBhcyBTY2hlbWFHZXR0ZXIgZnJvbSBcImVmZmVjdC9TY2hlbWFHZXR0ZXJcIjtcbmltcG9ydCAqIGFzIFNjaGVtYVRyYW5zZm9ybWF0aW9uIGZyb20gXCJlZmZlY3QvU2NoZW1hVHJhbnNmb3JtYXRpb25cIjtcblxuZXhwb3J0IGNvbnN0IFRyaW1tZWRTdHJpbmcgPSBTY2hlbWEuU3RyaW5nLnBpcGUoXG4gIFNjaGVtYS5kZWNvZGVUbyhcbiAgICBTY2hlbWEuU3RyaW5nLFxuICAgIFNjaGVtYVRyYW5zZm9ybWF0aW9uLnRyYW5zZm9ybUVmZmVjdCh7XG4gICAgICBkZWNvZGU6ICh2YWx1ZSkgPT4gRWZmZWN0LnN1Y2NlZWQodmFsdWUudHJpbSgpKSxcbiAgICAgIGVuY29kZTogKHZhbHVlKSA9PiBFZmZlY3Quc3VjY2VlZCh2YWx1ZS50cmltKCkpLFxuICAgIH0pLFxuICApLFxuKTtcbi8vIGBtYWtlYCBhbmQgZW5jb2RlIHNlZSB1bnRyaW1tZWQgdmFsdWVzOyBgaXNOb25FbXB0eWAgd291bGQgYWNjZXB0IHdoaXRlc3BhY2UgdGhhdCBlbmNvZGVzIHRvIGFuIGludmFsaWQgZW1wdHkgc3RyaW5nLlxuY29uc3QgaXNOb25CbGFuayA9IFNjaGVtYS5tYWtlRmlsdGVyKCh2YWx1ZTogc3RyaW5nKSA9PiB2YWx1ZS50cmltKCkubGVuZ3RoID4gMCwge1xuICBleHBlY3RlZDogXCJhIG5vbi1ibGFuayBzdHJpbmdcIixcbiAgdG9Kc29uU2NoZW1hOiAoKSA9PiBbeyBtaW5MZW5ndGg6IDEgfSwgdHJ1ZV0sXG4gIGFyYml0cmFyeUNvbnN0cmFpbnQ6IHsgbWluTGVuZ3RoOiAxIH0sXG59KTtcbmV4cG9ydCBjb25zdCBUcmltbWVkTm9uRW1wdHlTdHJpbmcgPSBUcmltbWVkU3RyaW5nLmNoZWNrKGlzTm9uQmxhbmspO1xuXG5leHBvcnQgY29uc3QgTm9uTmVnYXRpdmVJbnQgPSBTY2hlbWEuSW50LmNoZWNrKFNjaGVtYS5pc0dyZWF0ZXJUaGFuT3JFcXVhbFRvKDApKTtcbmV4cG9ydCBjb25zdCBQb3NpdGl2ZUludCA9IFNjaGVtYS5JbnQuY2hlY2soU2NoZW1hLmlzR3JlYXRlclRoYW5PckVxdWFsVG8oMSkpO1xuZXhwb3J0IGNvbnN0IFBvcnRTY2hlbWEgPSBTY2hlbWEuSW50LmNoZWNrKFNjaGVtYS5pc0JldHdlZW4oeyBtaW5pbXVtOiAxLCBtYXhpbXVtOiA2NTUzNSB9KSk7XG5cbmV4cG9ydCBjb25zdCBEcG9wRmFpbHVyZVJlYXNvbiA9IFNjaGVtYS5MaXRlcmFscyhbXG4gIFwidGltZV93aW5kb3dcIixcbiAgXCJrZXlfbWlzbWF0Y2hcIixcbiAgXCJyZXF1ZXN0X21pc21hdGNoXCIsXG4gIFwidG9rZW5fbWlzbWF0Y2hcIixcbiAgXCJyZXBsYXlcIixcbiAgXCJpbnZhbGlkX3Byb29mXCIsXG5dKTtcbmV4cG9ydCB0eXBlIERwb3BGYWlsdXJlUmVhc29uID0gdHlwZW9mIERwb3BGYWlsdXJlUmVhc29uLlR5cGU7XG5cbmV4cG9ydCBjb25zdCBJc29EYXRlVGltZSA9IFNjaGVtYS5TdHJpbmc7XG5leHBvcnQgdHlwZSBJc29EYXRlVGltZSA9IHR5cGVvZiBJc29EYXRlVGltZS5UeXBlO1xuXG5leHBvcnQgY29uc3QgRm9yd2FyZENvbXBhdGlibGVPcHRpb25hbCA9IDxWYWx1ZSBleHRlbmRzIFNjaGVtYS5Ub3A+KHZhbHVlOiBWYWx1ZSkgPT4ge1xuICBjb25zdCBkZWNvZGVWYWx1ZSA9IFNjaGVtYS5kZWNvZGVVbmtub3duT3B0aW9uKHZhbHVlIGFzIG5ldmVyKTtcbiAgcmV0dXJuIFNjaGVtYS5vcHRpb25hbEtleShcbiAgICBTY2hlbWEuVW5rbm93bi5waXBlKFxuICAgICAgU2NoZW1hLmRlY29kZVRvKFxuICAgICAgICBTY2hlbWEuVW5kZWZpbmVkT3IodmFsdWUpLFxuICAgICAgICBTY2hlbWFUcmFuc2Zvcm1hdGlvbi50cmFuc2Zvcm08VmFsdWVbXCJFbmNvZGVkXCJdIHwgdW5kZWZpbmVkLCB1bmtub3duPih7XG4gICAgICAgICAgZGVjb2RlOiAocmF3KSA9PlxuICAgICAgICAgICAgT3B0aW9uLmlzU29tZShkZWNvZGVWYWx1ZShyYXcpKSA/IChyYXcgYXMgVmFsdWVbXCJFbmNvZGVkXCJdKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBlbmNvZGU6IChyYXcpID0+IHJhdyxcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgICksXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgRm9yd2FyZENvbXBhdGlibGVOdWxsYWJsZSA9IDxWYWx1ZSBleHRlbmRzIFNjaGVtYS5Ub3A+KHZhbHVlOiBWYWx1ZSkgPT4ge1xuICBjb25zdCBkZWNvZGVWYWx1ZSA9IFNjaGVtYS5kZWNvZGVVbmtub3duT3B0aW9uKHZhbHVlIGFzIG5ldmVyKTtcbiAgcmV0dXJuIFNjaGVtYS5Vbmtub3duLnBpcGUoXG4gICAgU2NoZW1hLmRlY29kZVRvKFxuICAgICAgU2NoZW1hLk51bGxPcih2YWx1ZSksXG4gICAgICBTY2hlbWFUcmFuc2Zvcm1hdGlvbi50cmFuc2Zvcm08VmFsdWVbXCJFbmNvZGVkXCJdIHwgbnVsbCwgdW5rbm93bj4oe1xuICAgICAgICBkZWNvZGU6IChyYXcpID0+IChPcHRpb24uaXNTb21lKGRlY29kZVZhbHVlKHJhdykpID8gKHJhdyBhcyBWYWx1ZVtcIkVuY29kZWRcIl0pIDogbnVsbCksXG4gICAgICAgIGVuY29kZTogKHJhdykgPT4gcmF3LFxuICAgICAgfSksXG4gICAgKSxcbiAgKTtcbn07XG5cbi8qKiBNaXNzaW5nIG9yIHVua25vd24gdmFsdWVzIGRlY29kZSB0byBudWxsOyBudWxsIGVuY29kZXMgYXMgYWJzZW50IGZvciBvbGRlciBjbGllbnRzIHJlcXVpcmluZyBhIGxpdGVyYWwuICovXG5leHBvcnQgY29uc3QgT21pdHRlZFdoZW5OdWxsID0gPFZhbHVlIGV4dGVuZHMgU2NoZW1hLlRvcD4odmFsdWU6IFZhbHVlKSA9PiB7XG4gIGNvbnN0IGRlY29kZVZhbHVlID0gU2NoZW1hLmRlY29kZVVua25vd25PcHRpb24odmFsdWUgYXMgbmV2ZXIpO1xuICByZXR1cm4gU2NoZW1hLm9wdGlvbmFsS2V5KFNjaGVtYS5Vbmtub3duKS5waXBlKFxuICAgIFNjaGVtYS5kZWNvZGVUbyhcbiAgICAgIFNjaGVtYS5OdWxsT3IodmFsdWUpLFxuICAgICAgU2NoZW1hVHJhbnNmb3JtYXRpb24udHJhbnNmb3JtT3B0aW9uYWw8VmFsdWVbXCJFbmNvZGVkXCJdIHwgbnVsbCwgdW5rbm93bj4oe1xuICAgICAgICBkZWNvZGU6IChyYXcpID0+XG4gICAgICAgICAgT3B0aW9uLnNvbWUoXG4gICAgICAgICAgICBPcHRpb24uaXNTb21lKHJhdykgJiYgT3B0aW9uLmlzU29tZShkZWNvZGVWYWx1ZShyYXcudmFsdWUpKVxuICAgICAgICAgICAgICA/IChyYXcudmFsdWUgYXMgVmFsdWVbXCJFbmNvZGVkXCJdKVxuICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgKSxcbiAgICAgICAgZW5jb2RlOiAocmF3KSA9PlxuICAgICAgICAgIE9wdGlvbi5pc1NvbWUocmF3KSAmJiByYXcudmFsdWUgIT09IG51bGwgPyBPcHRpb24uc29tZShyYXcudmFsdWUpIDogT3B0aW9uLm5vbmUoKSxcbiAgICAgIH0pLFxuICAgICksXG4gICk7XG59O1xuXG4vKiogUHJlZmVyIHtAbGluayBGb3J3YXJkQ29tcGF0aWJsZVVuaW9ufSBmb3IgdGFnZ2VkIHVuaW9ucyBzbyBtYWxmb3JtZWQga25vd24gbWVtYmVycyBzdGlsbCBmYWlsLiAqL1xuZXhwb3J0IGNvbnN0IEZvcndhcmRDb21wYXRpYmxlQXJyYXkgPSA8RWxlbWVudCBleHRlbmRzIFNjaGVtYS5Ub3A+KGVsZW1lbnQ6IEVsZW1lbnQpID0+XG4gIFNjaGVtYS5BcnJheShcbiAgICBTY2hlbWEuVW5kZWZpbmVkT3IoZWxlbWVudCkucGlwZShcbiAgICAgIFNjaGVtYS5jYXRjaERlY29kaW5nKCgpID0+IEVmZmVjdC5zdWNjZWVkU29tZSh1bmRlZmluZWQpKSxcbiAgICAgIFNjaGVtYS5jYXRjaEVuY29kaW5nKCgpID0+IEVmZmVjdC5zdWNjZWVkU29tZSh1bmRlZmluZWQpKSxcbiAgICApLFxuICApLnBpcGUoXG4gICAgU2NoZW1hLmRlY29kZVRvKFxuICAgICAgU2NoZW1hLkFycmF5KFxuICAgICAgICBTY2hlbWEuVW5kZWZpbmVkT3IoU2NoZW1hLnRvVHlwZShlbGVtZW50KSkucGlwZShcbiAgICAgICAgICBTY2hlbWEuY2F0Y2hFbmNvZGluZygoKSA9PiBFZmZlY3Quc3VjY2VlZFNvbWUodW5kZWZpbmVkKSksXG4gICAgICAgICksXG4gICAgICApLmNoZWNrKFxuICAgICAgICAvLyBTY2hlbWEuaXMvbWFrZSBtdXN0IHJlamVjdCBob2xlczsgYWJvcnQgYmVmb3JlIGxhdGVyIGFycmF5IGNoZWNrcy5cbiAgICAgICAgU2NoZW1hLm1ha2VGaWx0ZXIoXG4gICAgICAgICAgKHZhbHVlcykgPT4ge1xuICAgICAgICAgICAgLy8gRXZlcnkgaW5kZXgsIG5vdCBgZXZlcnlgLCB3aGljaCBza2lwcyB0aGUgaG9sZXMgb2YgYSBzcGFyc2UgYXJyYXkuXG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdmFsdWVzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgICBpZiAodmFsdWVzW2luZGV4XSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgZXhwZWN0ZWQ6IFwiYW4gYXJyYXkgd2l0aG91dCBob2xlc1wiIH0sXG4gICAgICAgICAgdHJ1ZSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgICBTY2hlbWFUcmFuc2Zvcm1hdGlvbi50cmFuc2Zvcm08XG4gICAgICAgIFJlYWRvbmx5QXJyYXk8RWxlbWVudFtcIlR5cGVcIl0+LFxuICAgICAgICBSZWFkb25seUFycmF5PEVsZW1lbnRbXCJUeXBlXCJdIHwgdW5kZWZpbmVkPlxuICAgICAgPih7XG4gICAgICAgIGRlY29kZTogKHZhbHVlcykgPT4gdmFsdWVzLmZpbHRlcigodmFsdWUpID0+IHZhbHVlICE9PSB1bmRlZmluZWQpLFxuICAgICAgICBlbmNvZGU6ICh2YWx1ZXMpID0+IHZhbHVlcy5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSxcbiAgICAgIH0pLFxuICAgICksXG4gICkgYXMgdW5rbm93biBhcyBGb3J3YXJkQ29tcGF0aWJsZUFycmF5PEVsZW1lbnQ+O1xuZXhwb3J0IHR5cGUgRm9yd2FyZENvbXBhdGlibGVBcnJheTxFbGVtZW50IGV4dGVuZHMgU2NoZW1hLlRvcD4gPSBTY2hlbWEuQ29kZWM8XG4gIFJlYWRvbmx5QXJyYXk8RWxlbWVudFtcIlR5cGVcIl0+LFxuICBSZWFkb25seUFycmF5PEVsZW1lbnRbXCJFbmNvZGVkXCJdPixcbiAgRWxlbWVudFtcIkRlY29kaW5nU2VydmljZXNcIl0sXG4gIEVsZW1lbnRbXCJFbmNvZGluZ1NlcnZpY2VzXCJdXG4+O1xuXG4vKiogQ2xhc3MgaWRlbnRpdHkgcHJldmVudHMgZGVjb2RlZCBwYXlsb2FkcyBmcm9tIGltcGVyc29uYXRpbmcgdW5rbm93biBtZW1iZXJzLiAqL1xuZXhwb3J0IGNsYXNzIFVua25vd25Vbmlvbk1lbWJlcjxUYWcgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+IHtcbiAgcmVhZG9ubHkgdGFnOiBUYWc7XG4gIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKHRhZzogVGFnLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy50YWcgPSB0YWc7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKiBVbmtub3duIG1lbWJlcnMgYXJlIGRlY29kZS1vbmx5OyBlbmNvZGluZyBvbmUgZmFpbHMuICovXG5leHBvcnQgY29uc3QgRm9yd2FyZENvbXBhdGlibGVVbmlvbiA9IDxcbiAgY29uc3QgTWVtYmVycyBleHRlbmRzIFJlYWRvbmx5QXJyYXk8U2NoZW1hLlRvcCAmIHsgcmVhZG9ubHkgZmllbGRzOiBvYmplY3QgfT4sXG4gIGNvbnN0IFRhZyBleHRlbmRzIHN0cmluZyxcbj4oXG4gIG1lbWJlcnM6IE1lbWJlcnMsXG4gIHRhZzogVGFnLFxuKSA9PiB7XG4gIGNvbnN0IGtub3duID0ga25vd25UYWdzKG1lbWJlcnMsIHRhZyk7XG4gIGNvbnN0IHVua25vd25NZW1iZXIgPSBTY2hlbWEuU3RydWN0KHtcbiAgICBbdGFnXTogU2NoZW1hLlN0cmluZy5jaGVjayhcbiAgICAgIFNjaGVtYS5tYWtlRmlsdGVyKFxuICAgICAgICAodmFsdWU6IHN0cmluZykgPT4gIWtub3duLmhhcyh2YWx1ZSkgfHwgYEEga25vd24gJHt0YWd9IG11c3QgZGVjb2RlIGluIGZ1bGwuYCxcbiAgICAgICksXG4gICAgKSxcbiAgfSBhcyBSZWNvcmQ8VGFnLCBTY2hlbWEuU3RyaW5nPikucGlwZShcbiAgICBTY2hlbWEuZGVjb2RlVG8oU2NoZW1hLmluc3RhbmNlT2YoVW5rbm93blVuaW9uTWVtYmVyPFRhZz4pLCB7XG4gICAgICBkZWNvZGU6IFNjaGVtYUdldHRlci50cmFuc2Zvcm0oXG4gICAgICAgIChyYXc6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pID0+IG5ldyBVbmtub3duVW5pb25NZW1iZXIodGFnLCByYXdbdGFnXSEpLFxuICAgICAgKSxcbiAgICAgIGVuY29kZTogU2NoZW1hR2V0dGVyLmZvcmJpZGRlbigoKSA9PiBgVW5rbm93biAke3RhZ30gdmFsdWVzIGFyZSBuZXZlciBzZW50LmApLFxuICAgIH0pLFxuICApO1xuICByZXR1cm4gU2NoZW1hLlVuaW9uKFsuLi5tZW1iZXJzLCB1bmtub3duTWVtYmVyXSkgYXMgdW5rbm93biBhcyBGb3J3YXJkQ29tcGF0aWJsZVVuaW9uPFxuICAgIE1lbWJlcnMsXG4gICAgVGFnXG4gID47XG59O1xuZXhwb3J0IHR5cGUgRm9yd2FyZENvbXBhdGlibGVVbmlvbjxcbiAgTWVtYmVycyBleHRlbmRzIFJlYWRvbmx5QXJyYXk8U2NoZW1hLlRvcD4sXG4gIFRhZyBleHRlbmRzIHN0cmluZyxcbj4gPSBTY2hlbWEuQ29kZWM8XG4gIE1lbWJlcnNbbnVtYmVyXVtcIlR5cGVcIl0gfCBVbmtub3duVW5pb25NZW1iZXI8VGFnPixcbiAgTWVtYmVyc1tudW1iZXJdW1wiRW5jb2RlZFwiXSxcbiAgTWVtYmVyc1tudW1iZXJdW1wiRGVjb2RpbmdTZXJ2aWNlc1wiXSxcbiAgTWVtYmVyc1tudW1iZXJdW1wiRW5jb2RpbmdTZXJ2aWNlc1wiXVxuPjtcblxuZXhwb3J0IGNvbnN0IGhhc1Vua25vd25VbmlvblRhZyA9IChcbiAgbWVtYmVyczogUmVhZG9ubHlBcnJheTxTY2hlbWEuVG9wICYgeyByZWFkb25seSBmaWVsZHM6IG9iamVjdCB9PixcbiAgdGFnOiBzdHJpbmcsXG4pOiAoKHZhbHVlOiB1bmtub3duKSA9PiBib29sZWFuKSA9PiB7XG4gIGNvbnN0IGtub3duID0ga25vd25UYWdzKG1lbWJlcnMsIHRhZyk7XG4gIHJldHVybiAodmFsdWUpID0+XG4gICAgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmXG4gICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICB0YWcgaW4gdmFsdWUgJiZcbiAgICAha25vd24uaGFzKCh2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbdGFnXSBhcyBzdHJpbmcpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVW5rbm93blVuaW9uTWVtYmVyID0gPEE+KFxuICB2YWx1ZTogQSxcbik6IHZhbHVlIGlzIEV4dHJhY3Q8QSwgVW5rbm93blVuaW9uTWVtYmVyPHN0cmluZz4+ID0+IHZhbHVlIGluc3RhbmNlb2YgVW5rbm93blVuaW9uTWVtYmVyO1xuXG5leHBvcnQgY29uc3QgRm9yd2FyZENvbXBhdGlibGVVbmlvbkFycmF5ID0gPFxuICBjb25zdCBNZW1iZXJzIGV4dGVuZHMgUmVhZG9ubHlBcnJheTxTY2hlbWEuVG9wICYgeyByZWFkb25seSBmaWVsZHM6IG9iamVjdCB9PixcbiAgY29uc3QgVGFnIGV4dGVuZHMgc3RyaW5nLFxuPihcbiAgbWVtYmVyczogTWVtYmVycyxcbiAgdGFnOiBUYWcsXG4pID0+XG4gIFNjaGVtYS5BcnJheShGb3J3YXJkQ29tcGF0aWJsZVVuaW9uKG1lbWJlcnMsIHRhZykpLnBpcGUoXG4gICAgU2NoZW1hLmRlY29kZVRvKFxuICAgICAgU2NoZW1hLkFycmF5KFNjaGVtYS50b1R5cGUoU2NoZW1hLlVuaW9uKG1lbWJlcnMpKSksXG4gICAgICBTY2hlbWFUcmFuc2Zvcm1hdGlvbi50cmFuc2Zvcm08XG4gICAgICAgIFJlYWRvbmx5QXJyYXk8TWVtYmVyc1tudW1iZXJdW1wiVHlwZVwiXT4sXG4gICAgICAgIFJlYWRvbmx5QXJyYXk8TWVtYmVyc1tudW1iZXJdW1wiVHlwZVwiXSB8IFVua25vd25Vbmlvbk1lbWJlcjxUYWc+PlxuICAgICAgPih7XG4gICAgICAgIGRlY29kZTogKHZhbHVlcykgPT5cbiAgICAgICAgICB2YWx1ZXMuZmlsdGVyKCh2YWx1ZSkgPT4gIWlzVW5rbm93blVuaW9uTWVtYmVyKHZhbHVlKSkgYXMgUmVhZG9ubHlBcnJheTxcbiAgICAgICAgICAgIE1lbWJlcnNbbnVtYmVyXVtcIlR5cGVcIl1cbiAgICAgICAgICA+LFxuICAgICAgICBlbmNvZGU6ICh2YWx1ZXMpID0+IHZhbHVlcyxcbiAgICAgIH0pLFxuICAgICksXG4gICk7XG5cbmNvbnN0IGtub3duVGFncyA9IChcbiAgbWVtYmVyczogUmVhZG9ubHlBcnJheTxTY2hlbWEuVG9wICYgeyByZWFkb25seSBmaWVsZHM6IG9iamVjdCB9PixcbiAgdGFnOiBzdHJpbmcsXG4pOiBSZWFkb25seVNldDxzdHJpbmc+ID0+IHtcbiAgY29uc3QgdGFncyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBmb3IgKGNvbnN0IG1lbWJlciBvZiBtZW1iZXJzKSB7XG4gICAgY29uc3QgZmllbGQgPSAobWVtYmVyLmZpZWxkcyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbdGFnXSBhc1xuICAgICAgfCB7IHJlYWRvbmx5IGxpdGVyYWw/OiB1bmtub3duOyByZWFkb25seSBsaXRlcmFscz86IFJlYWRvbmx5QXJyYXk8dW5rbm93bj4gfVxuICAgICAgfCB1bmRlZmluZWQ7XG4gICAgZm9yIChjb25zdCBsaXRlcmFsIG9mIGZpZWxkPy5saXRlcmFscyA/PyBbZmllbGQ/LmxpdGVyYWxdKSB7XG4gICAgICBpZiAodHlwZW9mIGxpdGVyYWwgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFdmVyeSBGb3J3YXJkQ29tcGF0aWJsZVVuaW9uIG1lbWJlciBuZWVkcyBhIHN0cmluZyBsaXRlcmFsICR7dGFnfS5gKTtcbiAgICAgIH1cbiAgICAgIHRhZ3MuYWRkKGxpdGVyYWwpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdGFncztcbn07XG5cbmNvbnN0IG1ha2VFbnRpdHlJZCA9IDxCcmFuZCBleHRlbmRzIHN0cmluZz4oYnJhbmQ6IFBhcmFtZXRlcnM8dHlwZW9mIFNjaGVtYS5icmFuZDxCcmFuZD4+WzBdKSA9PiB7XG4gIHJldHVybiBUcmltbWVkTm9uRW1wdHlTdHJpbmcucGlwZShTY2hlbWEuYnJhbmQ8QnJhbmQ+KGJyYW5kKSk7XG59O1xuXG5leHBvcnQgY29uc3QgVGhyZWFkSWQgPSBtYWtlRW50aXR5SWQoXCJUaHJlYWRJZFwiKTtcbmV4cG9ydCB0eXBlIFRocmVhZElkID0gdHlwZW9mIFRocmVhZElkLlR5cGU7XG5leHBvcnQgY29uc3QgUHJvamVjdElkID0gbWFrZUVudGl0eUlkKFwiUHJvamVjdElkXCIpO1xuZXhwb3J0IHR5cGUgUHJvamVjdElkID0gdHlwZW9mIFByb2plY3RJZC5UeXBlO1xuZXhwb3J0IGNvbnN0IEVudmlyb25tZW50SWQgPSBtYWtlRW50aXR5SWQoXCJFbnZpcm9ubWVudElkXCIpO1xuZXhwb3J0IHR5cGUgRW52aXJvbm1lbnRJZCA9IHR5cGVvZiBFbnZpcm9ubWVudElkLlR5cGU7XG5leHBvcnQgY29uc3QgQ29tbWFuZElkID0gbWFrZUVudGl0eUlkKFwiQ29tbWFuZElkXCIpO1xuZXhwb3J0IHR5cGUgQ29tbWFuZElkID0gdHlwZW9mIENvbW1hbmRJZC5UeXBlO1xuZXhwb3J0IGNvbnN0IEV2ZW50SWQgPSBtYWtlRW50aXR5SWQoXCJFdmVudElkXCIpO1xuZXhwb3J0IHR5cGUgRXZlbnRJZCA9IHR5cGVvZiBFdmVudElkLlR5cGU7XG5leHBvcnQgY29uc3QgTWVzc2FnZUlkID0gbWFrZUVudGl0eUlkKFwiTWVzc2FnZUlkXCIpO1xuZXhwb3J0IHR5cGUgTWVzc2FnZUlkID0gdHlwZW9mIE1lc3NhZ2VJZC5UeXBlO1xuZXhwb3J0IGNvbnN0IFR1cm5JZCA9IG1ha2VFbnRpdHlJZChcIlR1cm5JZFwiKTtcbmV4cG9ydCB0eXBlIFR1cm5JZCA9IHR5cGVvZiBUdXJuSWQuVHlwZTtcbmV4cG9ydCBjb25zdCBSdW5JZCA9IG1ha2VFbnRpdHlJZChcIlJ1bklkXCIpO1xuZXhwb3J0IHR5cGUgUnVuSWQgPSB0eXBlb2YgUnVuSWQuVHlwZTtcbmV4cG9ydCBjb25zdCBSdW5BdHRlbXB0SWQgPSBtYWtlRW50aXR5SWQoXCJSdW5BdHRlbXB0SWRcIik7XG5leHBvcnQgdHlwZSBSdW5BdHRlbXB0SWQgPSB0eXBlb2YgUnVuQXR0ZW1wdElkLlR5cGU7XG5leHBvcnQgY29uc3QgTm9kZUlkID0gbWFrZUVudGl0eUlkKFwiTm9kZUlkXCIpO1xuZXhwb3J0IHR5cGUgTm9kZUlkID0gdHlwZW9mIE5vZGVJZC5UeXBlO1xuZXhwb3J0IGNvbnN0IEd1ZXN0U2hhcmVJZCA9IG1ha2VFbnRpdHlJZChcIkd1ZXN0U2hhcmVJZFwiKTtcbmV4cG9ydCB0eXBlIEd1ZXN0U2hhcmVJZCA9IHR5cGVvZiBHdWVzdFNoYXJlSWQuVHlwZTtcbmV4cG9ydCBjb25zdCBHdWVzdE1lc3NhZ2VJZCA9IG1ha2VFbnRpdHlJZChcIkd1ZXN0TWVzc2FnZUlkXCIpO1xuZXhwb3J0IHR5cGUgR3Vlc3RNZXNzYWdlSWQgPSB0eXBlb2YgR3Vlc3RNZXNzYWdlSWQuVHlwZTtcbmV4cG9ydCBjb25zdCBBdXRoU2Vzc2lvbklkID0gbWFrZUVudGl0eUlkKFwiQXV0aFNlc3Npb25JZFwiKTtcbmV4cG9ydCB0eXBlIEF1dGhTZXNzaW9uSWQgPSB0eXBlb2YgQXV0aFNlc3Npb25JZC5UeXBlO1xuZXhwb3J0IGNvbnN0IFJwY0NsaWVudElkID0gTm9uTmVnYXRpdmVJbnQucGlwZShTY2hlbWEuYnJhbmQoXCJScGNDbGllbnRJZFwiKSk7XG5leHBvcnQgdHlwZSBScGNDbGllbnRJZCA9IHR5cGVvZiBScGNDbGllbnRJZC5UeXBlO1xuXG5leHBvcnQgY29uc3QgQ2xpZW50U3VyZmFjZSA9IFNjaGVtYS5MaXRlcmFscyhbXCJ3ZWJcIiwgXCJkZXNrdG9wXCIsIFwibW9iaWxlXCIsIFwiY2xpXCJdKTtcbmV4cG9ydCB0eXBlIENsaWVudFN1cmZhY2UgPSB0eXBlb2YgQ2xpZW50U3VyZmFjZS5UeXBlO1xuXG5leHBvcnQgY29uc3QgQ2xpZW50T3MgPSBTY2hlbWEuTGl0ZXJhbHMoW1xuICBcIm1hY09TXCIsXG4gIFwiV2luZG93c1wiLFxuICBcIkxpbnV4XCIsXG4gIFwiaU9TXCIsXG4gIFwiQW5kcm9pZFwiLFxuICBcIkNocm9tZU9TXCIsXG4gIFwib3RoZXJcIixcbiAgXCJ1bmtub3duXCIsXG5dKTtcbmV4cG9ydCB0eXBlIENsaWVudE9zID0gdHlwZW9mIENsaWVudE9zLlR5cGU7XG5cbmV4cG9ydCBjb25zdCBDbGllbnREZXZpY2VUeXBlID0gU2NoZW1hLkxpdGVyYWxzKFtcImRlc2t0b3BcIiwgXCJwaG9uZVwiLCBcInRhYmxldFwiLCBcInVua25vd25cIl0pO1xuZXhwb3J0IHR5cGUgQ2xpZW50RGV2aWNlVHlwZSA9IHR5cGVvZiBDbGllbnREZXZpY2VUeXBlLlR5cGU7XG5cbmV4cG9ydCBjb25zdCBDbGllbnRXZWJEZXBsb3ltZW50ID0gU2NoZW1hLkxpdGVyYWxzKFtcImhvc3RlZFwiLCBcInNlcnZlclwiXSk7XG5leHBvcnQgdHlwZSBDbGllbnRXZWJEZXBsb3ltZW50ID0gdHlwZW9mIENsaWVudFdlYkRlcGxveW1lbnQuVHlwZTtcblxuZXhwb3J0IGNvbnN0IENsaWVudENvbm5lY3Rpb25NZXRob2QgPSBTY2hlbWEuTGl0ZXJhbHMoW1wiZGlyZWN0XCIsIFwic3NoXCIsIFwicmVsYXlcIiwgXCJ1bmtub3duXCJdKTtcbmV4cG9ydCB0eXBlIENsaWVudENvbm5lY3Rpb25NZXRob2QgPSB0eXBlb2YgQ2xpZW50Q29ubmVjdGlvbk1ldGhvZC5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHJvdmlkZXJJdGVtSWQgPSBtYWtlRW50aXR5SWQoXCJQcm92aWRlckl0ZW1JZFwiKTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVySXRlbUlkID0gdHlwZW9mIFByb3ZpZGVySXRlbUlkLlR5cGU7XG5leHBvcnQgY29uc3QgUHJvdmlkZXJTZXNzaW9uSWQgPSBtYWtlRW50aXR5SWQoXCJQcm92aWRlclNlc3Npb25JZFwiKTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyU2Vzc2lvbklkID0gdHlwZW9mIFByb3ZpZGVyU2Vzc2lvbklkLlR5cGU7XG5leHBvcnQgY29uc3QgUHJvdmlkZXJUaHJlYWRJZCA9IG1ha2VFbnRpdHlJZChcIlByb3ZpZGVyVGhyZWFkSWRcIik7XG5leHBvcnQgdHlwZSBQcm92aWRlclRocmVhZElkID0gdHlwZW9mIFByb3ZpZGVyVGhyZWFkSWQuVHlwZTtcbmV4cG9ydCBjb25zdCBQcm92aWRlclR1cm5JZCA9IG1ha2VFbnRpdHlJZChcIlByb3ZpZGVyVHVybklkXCIpO1xuZXhwb3J0IHR5cGUgUHJvdmlkZXJUdXJuSWQgPSB0eXBlb2YgUHJvdmlkZXJUdXJuSWQuVHlwZTtcbmV4cG9ydCBjb25zdCBSdW50aW1lU2Vzc2lvbklkID0gbWFrZUVudGl0eUlkKFwiUnVudGltZVNlc3Npb25JZFwiKTtcbmV4cG9ydCB0eXBlIFJ1bnRpbWVTZXNzaW9uSWQgPSB0eXBlb2YgUnVudGltZVNlc3Npb25JZC5UeXBlO1xuZXhwb3J0IGNvbnN0IFJ1bnRpbWVJdGVtSWQgPSBtYWtlRW50aXR5SWQoXCJSdW50aW1lSXRlbUlkXCIpO1xuZXhwb3J0IHR5cGUgUnVudGltZUl0ZW1JZCA9IHR5cGVvZiBSdW50aW1lSXRlbUlkLlR5cGU7XG5leHBvcnQgY29uc3QgVHVybkl0ZW1JZCA9IG1ha2VFbnRpdHlJZChcIlR1cm5JdGVtSWRcIik7XG5leHBvcnQgdHlwZSBUdXJuSXRlbUlkID0gdHlwZW9mIFR1cm5JdGVtSWQuVHlwZTtcbmV4cG9ydCBjb25zdCBSdW50aW1lUmVxdWVzdElkID0gbWFrZUVudGl0eUlkKFwiUnVudGltZVJlcXVlc3RJZFwiKTtcbmV4cG9ydCB0eXBlIFJ1bnRpbWVSZXF1ZXN0SWQgPSB0eXBlb2YgUnVudGltZVJlcXVlc3RJZC5UeXBlO1xuZXhwb3J0IGNvbnN0IFJ1bnRpbWVUYXNrSWQgPSBtYWtlRW50aXR5SWQoXCJSdW50aW1lVGFza0lkXCIpO1xuZXhwb3J0IHR5cGUgUnVudGltZVRhc2tJZCA9IHR5cGVvZiBSdW50aW1lVGFza0lkLlR5cGU7XG5leHBvcnQgY29uc3QgU2NoZWR1bGVkVGFza0lkID0gbWFrZUVudGl0eUlkKFwiU2NoZWR1bGVkVGFza0lkXCIpO1xuLyoqIEEgb25lLXVzZSBoYW5kbGUgdG8gYSBzZWNyZXQgdGhlIHVzZXIgZW50ZXJlZCBmb3IgYW4gYWdlbnQ7IHRoZSBhZ2VudCBuZXZlciBzZWVzIHRoZSB2YWx1ZS4gKi9cbmV4cG9ydCBjb25zdCBTZWNyZXRSZWYgPSBtYWtlRW50aXR5SWQoXCJTZWNyZXRSZWZcIik7XG5leHBvcnQgdHlwZSBTZWNyZXRSZWYgPSB0eXBlb2YgU2VjcmV0UmVmLlR5cGU7XG5leHBvcnQgdHlwZSBTY2hlZHVsZWRUYXNrSWQgPSB0eXBlb2YgU2NoZWR1bGVkVGFza0lkLlR5cGU7XG5leHBvcnQgY29uc3QgQXBwcm92YWxSZXF1ZXN0SWQgPSBtYWtlRW50aXR5SWQoXCJBcHByb3ZhbFJlcXVlc3RJZFwiKTtcbmV4cG9ydCB0eXBlIEFwcHJvdmFsUmVxdWVzdElkID0gdHlwZW9mIEFwcHJvdmFsUmVxdWVzdElkLlR5cGU7XG5leHBvcnQgY29uc3QgQ2hlY2twb2ludFJlZiA9IG1ha2VFbnRpdHlJZChcIkNoZWNrcG9pbnRSZWZcIik7XG5leHBvcnQgdHlwZSBDaGVja3BvaW50UmVmID0gdHlwZW9mIENoZWNrcG9pbnRSZWYuVHlwZTtcbmV4cG9ydCBjb25zdCBDaGVja3BvaW50SWQgPSBtYWtlRW50aXR5SWQoXCJDaGVja3BvaW50SWRcIik7XG5leHBvcnQgdHlwZSBDaGVja3BvaW50SWQgPSB0eXBlb2YgQ2hlY2twb2ludElkLlR5cGU7XG5leHBvcnQgY29uc3QgQ2hlY2twb2ludFNjb3BlSWQgPSBtYWtlRW50aXR5SWQoXCJDaGVja3BvaW50U2NvcGVJZFwiKTtcbmV4cG9ydCB0eXBlIENoZWNrcG9pbnRTY29wZUlkID0gdHlwZW9mIENoZWNrcG9pbnRTY29wZUlkLlR5cGU7XG5leHBvcnQgY29uc3QgQ29udGV4dEhhbmRvZmZJZCA9IG1ha2VFbnRpdHlJZChcIkNvbnRleHRIYW5kb2ZmSWRcIik7XG5leHBvcnQgdHlwZSBDb250ZXh0SGFuZG9mZklkID0gdHlwZW9mIENvbnRleHRIYW5kb2ZmSWQuVHlwZTtcbmV4cG9ydCBjb25zdCBDb250ZXh0VHJhbnNmZXJJZCA9IG1ha2VFbnRpdHlJZChcIkNvbnRleHRUcmFuc2ZlcklkXCIpO1xuZXhwb3J0IHR5cGUgQ29udGV4dFRyYW5zZmVySWQgPSB0eXBlb2YgQ29udGV4dFRyYW5zZmVySWQuVHlwZTtcbmV4cG9ydCBjb25zdCBSYXdFdmVudElkID0gbWFrZUVudGl0eUlkKFwiUmF3RXZlbnRJZFwiKTtcbmV4cG9ydCB0eXBlIFJhd0V2ZW50SWQgPSB0eXBlb2YgUmF3RXZlbnRJZC5UeXBlO1xuZXhwb3J0IGNvbnN0IFBsYW5JZCA9IG1ha2VFbnRpdHlJZChcIlBsYW5JZFwiKTtcbmV4cG9ydCB0eXBlIFBsYW5JZCA9IHR5cGVvZiBQbGFuSWQuVHlwZTtcbiJdLCJmaWxlIjoiL0Bmcy9ob21lL3VidW50dS93dC9wci0yNDI2My9wYWNrYWdlcy9jb250cmFjdHMvc3JjL2Jhc2VTY2hlbWFzLnRzIn0=

//# vitestCache=W3siZmlsZSI6IjEiLCJpZCI6IjEiLCJ1cmwiOiIyIiwiaW1wb3J0cyI6IjMiLCJtYXBwaW5ncyI6ZmFsc2UsImRlcHMiOiI0IiwiZHluYW1pY0RlcHMiOiI1Iiwic3RhdGljTW9ja3MiOm51bGx9LCIvaG9tZS91YnVudHUvd3QvcHItMjQyNjMvcGFja2FnZXMvY29udHJhY3RzL3NyYy9iYXNlU2NoZW1hcy50cyIsIi9AZnMvaG9tZS91YnVudHUvd3QvcHItMjQyNjMvcGFja2FnZXMvY29udHJhY3RzL3NyYy9iYXNlU2NoZW1hcy50cyIseyJ1cmxzIjoiNiIsImlkcyI6IjcifSxbIjgiLCI5IiwiMTAiLCIxMSIsIjEyIl0sW10sWyI4IiwiOSIsIjEwIiwiMTEiLCIxMiJdLHt9LCIvQGZzL2hvbWUvdWJ1bnR1L3d0L3ByLTI0MjYzL25vZGVfbW9kdWxlcy8ucG5wbS9lZmZlY3RANC4wLjUvbm9kZV9tb2R1bGVzL2VmZmVjdC9kaXN0L0VmZmVjdC5qcyIsIi9AZnMvaG9tZS91YnVudHUvd3QvcHItMjQyNjMvbm9kZV9tb2R1bGVzLy5wbnBtL2VmZmVjdEA0LjAuNS9ub2RlX21vZHVsZXMvZWZmZWN0L2Rpc3QvT3B0aW9uLmpzIiwiL0Bmcy9ob21lL3VidW50dS93dC9wci0yNDI2My9ub2RlX21vZHVsZXMvLnBucG0vZWZmZWN0QDQuMC41L25vZGVfbW9kdWxlcy9lZmZlY3QvZGlzdC9TY2hlbWEuanMiLCIvQGZzL2hvbWUvdWJ1bnR1L3d0L3ByLTI0MjYzL25vZGVfbW9kdWxlcy8ucG5wbS9lZmZlY3RANC4wLjUvbm9kZV9tb2R1bGVzL2VmZmVjdC9kaXN0L1NjaGVtYUdldHRlci5qcyIsIi9AZnMvaG9tZS91YnVudHUvd3QvcHItMjQyNjMvbm9kZV9tb2R1bGVzLy5wbnBtL2VmZmVjdEA0LjAuNS9ub2RlX21vZHVsZXMvZWZmZWN0L2Rpc3QvU2NoZW1hVHJhbnNmb3JtYXRpb24uanMiXQ==