__vite_ssr_exportName__("PullRequestInvolvement", () => { try { return PullRequestInvolvement } catch {} });
__vite_ssr_exportName__("PullRequestState", () => { try { return PullRequestState } catch {} });
__vite_ssr_exportName__("PullRequestListState", () => { try { return PullRequestListState } catch {} });
__vite_ssr_exportName__("PullRequestReviewDecision", () => { try { return PullRequestReviewDecision } catch {} });
__vite_ssr_exportName__("PullRequestListFilters", () => { try { return PullRequestListFilters } catch {} });
__vite_ssr_exportName__("PullRequestChecksState", () => { try { return PullRequestChecksState } catch {} });
__vite_ssr_exportName__("PullRequestMergeability", () => { try { return PullRequestMergeability } catch {} });
__vite_ssr_exportName__("PullRequestMergeMethod", () => { try { return PullRequestMergeMethod } catch {} });
__vite_ssr_exportName__("PullRequestAction", () => { try { return PullRequestAction } catch {} });
__vite_ssr_exportName__("PullRequestUpdateMethod", () => { try { return PullRequestUpdateMethod } catch {} });
__vite_ssr_exportName__("PullRequestBaseComparison", () => { try { return PullRequestBaseComparison } catch {} });
__vite_ssr_exportName__("PullRequestActor", () => { try { return PullRequestActor } catch {} });
__vite_ssr_exportName__("PullRequestLabel", () => { try { return PullRequestLabel } catch {} });
__vite_ssr_exportName__("PullRequestCheckStatus", () => { try { return PullRequestCheckStatus } catch {} });
__vite_ssr_exportName__("PullRequestCheck", () => { try { return PullRequestCheck } catch {} });
__vite_ssr_exportName__("PullRequestReactionContent", () => { try { return PullRequestReactionContent } catch {} });
__vite_ssr_exportName__("PullRequestReaction", () => { try { return PullRequestReaction } catch {} });
__vite_ssr_exportName__("PullRequestCommentKind", () => { try { return PullRequestCommentKind } catch {} });
__vite_ssr_exportName__("PullRequestComment", () => { try { return PullRequestComment } catch {} });
__vite_ssr_exportName__("PullRequestDiffSide", () => { try { return PullRequestDiffSide } catch {} });
__vite_ssr_exportName__("PullRequestReviewVerdict", () => { try { return PullRequestReviewVerdict } catch {} });
__vite_ssr_exportName__("PullRequestThreadComment", () => { try { return PullRequestThreadComment } catch {} });
__vite_ssr_exportName__("PullRequestReviewThread", () => { try { return PullRequestReviewThread } catch {} });
__vite_ssr_exportName__("PullRequestReviewerKind", () => { try { return PullRequestReviewerKind } catch {} });
__vite_ssr_exportName__("PullRequestReviewerCandidate", () => { try { return PullRequestReviewerCandidate } catch {} });
__vite_ssr_exportName__("PullRequestReviewerCandidateList", () => { try { return PullRequestReviewerCandidateList } catch {} });
__vite_ssr_exportName__("PullRequestLabelCandidate", () => { try { return PullRequestLabelCandidate } catch {} });
__vite_ssr_exportName__("PullRequestLabelCandidateList", () => { try { return PullRequestLabelCandidateList } catch {} });
__vite_ssr_exportName__("PullRequestCommit", () => { try { return PullRequestCommit } catch {} });
__vite_ssr_exportName__("PullRequestReviewCapabilities", () => { try { return PullRequestReviewCapabilities } catch {} });
__vite_ssr_exportName__("PullRequestEditCapabilities", () => { try { return PullRequestEditCapabilities } catch {} });
__vite_ssr_exportName__("PullRequestReviewerCapabilities", () => { try { return PullRequestReviewerCapabilities } catch {} });
__vite_ssr_exportName__("PullRequestViewedFilesStore", () => { try { return PullRequestViewedFilesStore } catch {} });
__vite_ssr_exportName__("PullRequestCapabilities", () => { try { return PullRequestCapabilities } catch {} });
__vite_ssr_exportName__("PullRequestViewerPermissions", () => { try { return PullRequestViewerPermissions } catch {} });
__vite_ssr_exportName__("PullRequestMergeCapabilities", () => { try { return PullRequestMergeCapabilities } catch {} });
__vite_ssr_exportName__("PullRequestStackMembership", () => { try { return PullRequestStackMembership } catch {} });
__vite_ssr_exportName__("PullRequestListEntry", () => { try { return PullRequestListEntry } catch {} });
__vite_ssr_exportName__("PullRequestListCursors", () => { try { return PullRequestListCursors } catch {} });
__vite_ssr_exportName__("PullRequestListInput", () => { try { return PullRequestListInput } catch {} });
__vite_ssr_exportName__("PullRequestProviderSummary", () => { try { return PullRequestProviderSummary } catch {} });
__vite_ssr_exportName__("PullRequestListProjectError", () => { try { return PullRequestListProjectError } catch {} });
__vite_ssr_exportName__("PullRequestListResult", () => { try { return PullRequestListResult } catch {} });
__vite_ssr_exportName__("PullRequestRef", () => { try { return PullRequestRef } catch {} });
__vite_ssr_exportName__("PullRequestRoutingIdentityInput", () => { try { return PullRequestRoutingIdentityInput } catch {} });
__vite_ssr_exportName__("PullRequestRoutingIdentityResult", () => { try { return PullRequestRoutingIdentityResult } catch {} });
__vite_ssr_exportName__("PullRequestRoutingResult", () => { try { return PullRequestRoutingResult } catch {} });
__vite_ssr_exportName__("PullRequestLinkedThreadsResult", () => { try { return PullRequestLinkedThreadsResult } catch {} });
__vite_ssr_exportName__("PullRequestPreview", () => { try { return PullRequestPreview } catch {} });
__vite_ssr_exportName__("PullRequestSummary", () => { try { return PullRequestSummary } catch {} });
__vite_ssr_exportName__("PullRequestStack", () => { try { return PullRequestStack } catch {} });
__vite_ssr_exportName__("PullRequestDiffStat", () => { try { return PullRequestDiffStat } catch {} });
__vite_ssr_exportName__("PullRequestListStatsInput", () => { try { return PullRequestListStatsInput } catch {} });
__vite_ssr_exportName__("PullRequestListStatsResult", () => { try { return PullRequestListStatsResult } catch {} });
__vite_ssr_exportName__("PullRequestFilterOptionKind", () => { try { return PullRequestFilterOptionKind } catch {} });
__vite_ssr_exportName__("PullRequestFilterOptionsInput", () => { try { return PullRequestFilterOptionsInput } catch {} });
__vite_ssr_exportName__("PullRequestFilterOptions", () => { try { return PullRequestFilterOptions } catch {} });
__vite_ssr_exportName__("PullRequestInvalidateInput", () => { try { return PullRequestInvalidateInput } catch {} });
__vite_ssr_exportName__("PullRequestReportStateInput", () => { try { return PullRequestReportStateInput } catch {} });
__vite_ssr_exportName__("PullRequestDetail", () => { try { return PullRequestDetail } catch {} });
__vite_ssr_exportName__("PullRequestChecks", () => { try { return PullRequestChecks } catch {} });
__vite_ssr_exportName__("PullRequestActivity", () => { try { return PullRequestActivity } catch {} });
__vite_ssr_exportName__("PullRequestDetailView", () => { try { return PullRequestDetailView } catch {} });
__vite_ssr_exportName__("PullRequestDiffInput", () => { try { return PullRequestDiffInput } catch {} });
__vite_ssr_exportName__("PullRequestOmittedFileStat", () => { try { return PullRequestOmittedFileStat } catch {} });
__vite_ssr_exportName__("PullRequestDiffResult", () => { try { return PullRequestDiffResult } catch {} });
__vite_ssr_exportName__("PullRequestDiffFileContentsInput", () => { try { return PullRequestDiffFileContentsInput } catch {} });
__vite_ssr_exportName__("PullRequestDiffFileContentsResult", () => { try { return PullRequestDiffFileContentsResult } catch {} });
__vite_ssr_exportName__("PullRequestFileViewedState", () => { try { return PullRequestFileViewedState } catch {} });
__vite_ssr_exportName__("PullRequestFileViewed", () => { try { return PullRequestFileViewed } catch {} });
__vite_ssr_exportName__("PullRequestFilesViewedResult", () => { try { return PullRequestFilesViewedResult } catch {} });
__vite_ssr_exportName__("PullRequestChangeBreakdown", () => { try { return PullRequestChangeBreakdown } catch {} });
__vite_ssr_exportName__("PullRequestSetFilesViewedInput", () => { try { return PullRequestSetFilesViewedInput } catch {} });
__vite_ssr_exportName__("PullRequestStackHead", () => { try { return PullRequestStackHead } catch {} });
__vite_ssr_exportName__("PullRequestActionInput", () => { try { return PullRequestActionInput } catch {} });
__vite_ssr_exportName__("PullRequestCommentInput", () => { try { return PullRequestCommentInput } catch {} });
__vite_ssr_exportName__("PullRequestUpdateInput", () => { try { return PullRequestUpdateInput } catch {} });
__vite_ssr_exportName__("PullRequestCommentUpdateInput", () => { try { return PullRequestCommentUpdateInput } catch {} });
__vite_ssr_exportName__("PullRequestReviewPosition", () => { try { return PullRequestReviewPosition } catch {} });
__vite_ssr_exportName__("PullRequestReviewCommentDraft", () => { try { return PullRequestReviewCommentDraft } catch {} });
__vite_ssr_exportName__("PullRequestSubmitReviewInput", () => { try { return PullRequestSubmitReviewInput } catch {} });
__vite_ssr_exportName__("PullRequestThreadCommentsInput", () => { try { return PullRequestThreadCommentsInput } catch {} });
__vite_ssr_exportName__("PullRequestThreadCommentsResult", () => { try { return PullRequestThreadCommentsResult } catch {} });
__vite_ssr_exportName__("PullRequestThreadReplyInput", () => { try { return PullRequestThreadReplyInput } catch {} });
__vite_ssr_exportName__("PullRequestThreadResolutionInput", () => { try { return PullRequestThreadResolutionInput } catch {} });
__vite_ssr_exportName__("PullRequestReactionInput", () => { try { return PullRequestReactionInput } catch {} });
__vite_ssr_exportName__("PullRequestReviewerRequestInput", () => { try { return PullRequestReviewerRequestInput } catch {} });
__vite_ssr_exportName__("PullRequestLabelChangeInput", () => { try { return PullRequestLabelChangeInput } catch {} });
__vite_ssr_exportName__("PullRequestUnavailableReason", () => { try { return PullRequestUnavailableReason } catch {} });
__vite_ssr_exportName__("resolvePullRequestAuthorFilter", () => { try { return resolvePullRequestAuthorFilter } catch {} });
__vite_ssr_exportName__("PullRequestUnavailableError", () => { try { return PullRequestUnavailableError } catch {} });
__vite_ssr_exportName__("PullRequestOperationError", () => { try { return PullRequestOperationError } 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/Schema.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/Effect.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/http/HttpServerRespondable.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/http/HttpServerResponse.js");
const __vite_ssr_import_4__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/packages/contracts/src/baseSchemas.ts", {"importedNames":["ForwardCompatibleArray","IsoDateTime","NonNegativeInt","PositiveInt","ProjectId","ThreadId","TrimmedNonEmptyString"]});
const __vite_ssr_import_5__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/packages/contracts/src/sourceControl.ts", {"importedNames":["SourceControlProviderKind"]});






const PullRequestInvolvement = __vite_ssr_import_0__.Literals([
	"all",
	"reviewing",
	"authored"
]);
const PullRequestState = __vite_ssr_import_0__.Literals([
	"open",
	"closed",
	"merged"
]);
const PullRequestListState = __vite_ssr_import_0__.Literals([
	"all",
	"open",
	"closed",
	"merged"
]);
const PullRequestReviewDecision = __vite_ssr_import_0__.Literals([
	"approved",
	"changes-requested",
	"review-required"
]);
const PullRequestQualifierValue = __vite_ssr_import_4__.TrimmedNonEmptyString.check(__vite_ssr_import_0__.isMaxLength(200));
const PullRequestQualifierValues = __vite_ssr_import_0__.Array(PullRequestQualifierValue).check(__vite_ssr_import_0__.isMaxLength(10));
const PullRequestListFilters = __vite_ssr_import_0__.Struct({
	draft: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Literals(["only", "hide"])),
	review: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Literals([
		"approved",
		"changes-requested",
		"review-required",
		"none"
	])),
	checks: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Literals(["passing", "failing"])),
	/** GitHub label qualifiers: every group must match; any name within a group suffices. */
	labels: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Array(PullRequestQualifierValues).check(__vite_ssr_import_0__.isMaxLength(10))),
	excludedLabels: __vite_ssr_import_0__.optional(PullRequestQualifierValues),
	author: __vite_ssr_import_0__.optional(PullRequestQualifierValue)
});
const PullRequestChecksState = __vite_ssr_import_0__.Literals([
	"passing",
	"failing",
	"pending"
]);
const PullRequestMergeability = __vite_ssr_import_0__.Literals([
	"mergeable",
	"conflicting",
	"unknown"
]);
const PullRequestMergeMethod = __vite_ssr_import_0__.Literals([
	"merge",
	"squash",
	"rebase"
]);
const PullRequestAction = __vite_ssr_import_0__.Literals([
	"merge",
	"ready",
	"draft",
	"close",
	"reopen",
	"delete-branch",
	"update-branch",
	"enable-auto-merge",
	"disable-auto-merge",
	"revert",
	"approve-workflows"
]);
const PullRequestUpdateMethod = __vite_ssr_import_0__.Literals(["merge", "rebase"]);
const PullRequestBaseComparison = __vite_ssr_import_0__.Literals([
	"up-to-date",
	"behind",
	"unknown"
]);
const PullRequestActor = __vite_ssr_import_0__.Struct({
	isBot: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Boolean),
	login: __vite_ssr_import_4__.TrimmedNonEmptyString,
	name: __vite_ssr_import_0__.NullOr(__vite_ssr_import_0__.String),
	avatarUrl: __vite_ssr_import_0__.NullOr(__vite_ssr_import_0__.String)
});
const PullRequestLabel = __vite_ssr_import_0__.Struct({
	name: __vite_ssr_import_4__.TrimmedNonEmptyString,
	color: __vite_ssr_import_0__.NullOr(__vite_ssr_import_0__.String)
});
const PullRequestCheckStatus = __vite_ssr_import_0__.Literals([
	"pending",
	"action-required",
	"success",
	"failure",
	"skipped",
	"neutral",
	"cancelled"
]);
const PullRequestCheck = __vite_ssr_import_0__.Struct({
	name: __vite_ssr_import_4__.TrimmedNonEmptyString,
	status: PullRequestCheckStatus,
	description: __vite_ssr_import_0__.NullOr(__vite_ssr_import_0__.String),
	url: __vite_ssr_import_0__.NullOr(__vite_ssr_import_0__.String),
	required: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Boolean)
});
const PullRequestReactionContent = __vite_ssr_import_0__.Literals([
	"thumbs-up",
	"thumbs-down",
	"laugh",
	"hooray",
	"confused",
	"heart",
	"rocket",
	"eyes"
]);
const PullRequestReaction = __vite_ssr_import_0__.Struct({
	content: PullRequestReactionContent,
	count: __vite_ssr_import_4__.PositiveInt,
	/** Excludes the viewer's login when viewerHasReacted; count still includes them. */
	actors: __vite_ssr_import_0__.Array((0,__vite_ssr_import_4__.TrimmedNonEmptyString)),
	viewerHasReacted: __vite_ssr_import_0__.Boolean
});
const PullRequestCommentKind = __vite_ssr_import_0__.Literals([
	"issue-comment",
	"review-comment",
	"review"
]);
const PullRequestComment = __vite_ssr_import_0__.Struct({
	id: __vite_ssr_import_4__.TrimmedNonEmptyString,
	kind: PullRequestCommentKind,
	author: __vite_ssr_import_0__.NullOr(PullRequestActor),
	body: __vite_ssr_import_0__.String,
	createdAt: __vite_ssr_import_4__.IsoDateTime,
	editedAt: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.NullOr((0,__vite_ssr_import_4__.IsoDateTime))),
	url: __vite_ssr_import_0__.NullOr(__vite_ssr_import_0__.String),
	path: __vite_ssr_import_0__.NullOr(__vite_ssr_import_0__.String),
	reviewState: __vite_ssr_import_0__.NullOr(__vite_ssr_import_0__.String),
	reactions: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Array(PullRequestReaction)),
	canEdit: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Boolean)
});
const PullRequestDiffSide = __vite_ssr_import_0__.Literals(["left", "right"]);
const PullRequestReviewVerdict = __vite_ssr_import_0__.Literals([
	"comment",
	"approve",
	"request-changes"
]);
const PullRequestThreadComment = __vite_ssr_import_0__.Struct({
	id: __vite_ssr_import_4__.TrimmedNonEmptyString,
	author: __vite_ssr_import_0__.NullOr(PullRequestActor),
	body: __vite_ssr_import_0__.String,
	createdAt: __vite_ssr_import_4__.IsoDateTime,
	editedAt: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.NullOr((0,__vite_ssr_import_4__.IsoDateTime))),
	url: __vite_ssr_import_0__.NullOr(__vite_ssr_import_0__.String),
	reactions: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Array(PullRequestReaction)),
	canEdit: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Boolean)
});
const PullRequestReviewThread = __vite_ssr_import_0__.Struct({
	id: __vite_ssr_import_4__.TrimmedNonEmptyString,
	path: __vite_ssr_import_4__.TrimmedNonEmptyString,
	line: __vite_ssr_import_0__.NullOr((0,__vite_ssr_import_4__.PositiveInt)),
	side: PullRequestDiffSide,
	isResolved: __vite_ssr_import_0__.Boolean,
	isOutdated: __vite_ssr_import_0__.Boolean,
	comments: __vite_ssr_import_0__.Array(PullRequestThreadComment),
	commentCount: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.NonNegativeInt)),
	nextCommentsCursor: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.TrimmedNonEmptyString)),
	/** Can only narrow repository-wide resolve permission. Absent when unreported. */
	canResolve: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Boolean)
});
const PullRequestReviewerKind = __vite_ssr_import_0__.Literals(["user", "team"]);
const PullRequestReviewerCandidate = __vite_ssr_import_0__.Struct({
	...PullRequestActor.fields,
	id: __vite_ssr_import_4__.TrimmedNonEmptyString,
	kind: PullRequestReviewerKind,
	isRequested: __vite_ssr_import_0__.Boolean
});
const PullRequestReviewerCandidateList = __vite_ssr_import_0__.Struct({
	candidates: __vite_ssr_import_0__.Array(PullRequestReviewerCandidate),
	truncated: __vite_ssr_import_0__.Boolean
});
const PullRequestLabelCandidate = __vite_ssr_import_0__.Struct({
	...PullRequestLabel.fields,
	description: __vite_ssr_import_0__.NullOr(__vite_ssr_import_0__.String),
	isApplied: __vite_ssr_import_0__.Boolean
});
const PullRequestLabelCandidateList = __vite_ssr_import_0__.Struct({
	candidates: __vite_ssr_import_0__.Array(PullRequestLabelCandidate),
	truncated: __vite_ssr_import_0__.Boolean
});
const PullRequestCommit = __vite_ssr_import_0__.Struct({
	oid: __vite_ssr_import_4__.TrimmedNonEmptyString,
	messageHeadline: __vite_ssr_import_0__.String,
	committedDate: __vite_ssr_import_4__.IsoDateTime,
	additions: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.NonNegativeInt)),
	deletions: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.NonNegativeInt)),
	authors: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Array(PullRequestActor))
});
const PullRequestReviewCapabilities = __vite_ssr_import_0__.Struct({
	inlineComment: __vite_ssr_import_0__.Boolean,
	/**
	* An inline comment can cover a range of lines rather than its last one. Absent, as from a
	* server that predates it, means one line.
	*/
	rangeComment: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Boolean),
	reply: __vite_ssr_import_0__.Boolean,
	resolve: __vite_ssr_import_0__.Boolean,
	verdicts: (0,__vite_ssr_import_4__.ForwardCompatibleArray)(PullRequestReviewVerdict)
});
const PullRequestEditCapabilities = __vite_ssr_import_0__.Struct({
	changeRequest: __vite_ssr_import_0__.Boolean,
	comment: __vite_ssr_import_0__.Boolean
});
const PullRequestReviewerCapabilities = __vite_ssr_import_0__.Struct({
	request: __vite_ssr_import_0__.Boolean,
	listCandidates: __vite_ssr_import_0__.Boolean
});
const PullRequestViewedFilesStore = __vite_ssr_import_0__.Literals(["host", "environment"]);
const PullRequestCapabilities = __vite_ssr_import_0__.Struct({
	diff: __vite_ssr_import_0__.Boolean,
	comment: __vite_ssr_import_0__.Boolean,
	actions: (0,__vite_ssr_import_4__.ForwardCompatibleArray)(PullRequestAction),
	mergeMethods: (0,__vite_ssr_import_4__.ForwardCompatibleArray)(PullRequestMergeMethod),
	deleteBranch: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Boolean),
	/**
	* Absent where it cannot at all, which is every host that has not said otherwise — so a
	* provider that says nothing offers nothing.
	*/
	updateMethods: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.ForwardCompatibleArray)(PullRequestUpdateMethod)),
	search: __vite_ssr_import_0__.Boolean,
	reactions: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Boolean),
	viewedFiles: __vite_ssr_import_0__.optional(PullRequestViewedFilesStore),
	review: PullRequestReviewCapabilities,
	reviewers: PullRequestReviewerCapabilities,
	edit: __vite_ssr_import_0__.optional(PullRequestEditCapabilities),
	stacks: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Boolean),
	stackActions: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Boolean),
	labels: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Boolean),
	/**
	* Every head gets at least one check, so a head that has gone a while without any means none
	* reported rather than that the repository runs none. Absent means an empty list says nothing.
	*/
	checksAlwaysReport: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Boolean)
});
/** Unreported host permissions are granted. */
const PullRequestViewerPermissions = __vite_ssr_import_0__.Struct({
	stackRebase: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Boolean),
	actions: (0,__vite_ssr_import_4__.ForwardCompatibleArray)(PullRequestAction),
	comment: __vite_ssr_import_0__.Boolean,
	resolve: __vite_ssr_import_0__.Boolean,
	verdicts: (0,__vite_ssr_import_4__.ForwardCompatibleArray)(PullRequestReviewVerdict),
	requestReviewers: __vite_ssr_import_0__.Boolean,
	updateMethods: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.ForwardCompatibleArray)(PullRequestUpdateMethod)),
	labels: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Boolean),
	editChangeRequest: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Boolean)
});
const PullRequestMergeCapabilities = __vite_ssr_import_0__.Struct({
	merge: __vite_ssr_import_0__.Boolean,
	squash: __vite_ssr_import_0__.Boolean,
	rebase: __vite_ssr_import_0__.Boolean
});
const PullRequestStackMembership = __vite_ssr_import_0__.Struct({
	number: __vite_ssr_import_4__.PositiveInt,
	position: __vite_ssr_import_4__.PositiveInt,
	size: __vite_ssr_import_4__.PositiveInt,
	base: __vite_ssr_import_4__.TrimmedNonEmptyString
});
const PullRequestListEntry = __vite_ssr_import_0__.Struct({
	stack: __vite_ssr_import_0__.optional(PullRequestStackMembership),
	provider: __vite_ssr_import_5__.SourceControlProviderKind,
	host: __vite_ssr_import_4__.TrimmedNonEmptyString,
	projectId: __vite_ssr_import_4__.ProjectId,
	projectTitle: __vite_ssr_import_4__.TrimmedNonEmptyString,
	repository: __vite_ssr_import_4__.TrimmedNonEmptyString,
	number: __vite_ssr_import_4__.PositiveInt,
	title: __vite_ssr_import_4__.TrimmedNonEmptyString,
	url: __vite_ssr_import_4__.TrimmedNonEmptyString,
	author: __vite_ssr_import_0__.NullOr(PullRequestActor),
	headBranch: __vite_ssr_import_4__.TrimmedNonEmptyString,
	baseBranch: __vite_ssr_import_4__.TrimmedNonEmptyString,
	state: PullRequestState,
	isDraft: __vite_ssr_import_0__.Boolean,
	mergeability: PullRequestMergeability,
	/** Zero until fetched through `PullRequestListStatsInput`; GitHub listings omit counts. */
	additions: __vite_ssr_import_4__.NonNegativeInt,
	deletions: __vite_ssr_import_4__.NonNegativeInt,
	createdAt: __vite_ssr_import_4__.IsoDateTime,
	updatedAt: __vite_ssr_import_4__.IsoDateTime,
	observedAt: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Finite),
	viewerReviewRequested: __vite_ssr_import_0__.Boolean,
	labels: __vite_ssr_import_0__.Array(PullRequestLabel),
	reviewDecision: __vite_ssr_import_0__.optional(PullRequestReviewDecision),
	checksState: __vite_ssr_import_0__.optional(PullRequestChecksState)
});
const PullRequestListCursors = __vite_ssr_import_0__.Record((0,__vite_ssr_import_4__.TrimmedNonEmptyString), __vite_ssr_import_4__.TrimmedNonEmptyString.check(__vite_ssr_import_0__.isMaxLength(4096)));
const PullRequestListInput = __vite_ssr_import_0__.Struct({
	state: PullRequestListState,
	involvement: __vite_ssr_import_0__.optional(PullRequestInvolvement),
	filters: __vite_ssr_import_0__.optional(PullRequestListFilters),
	projectId: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.ProjectId)),
	projectIds: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Array((0,__vite_ssr_import_4__.ProjectId)).check(__vite_ssr_import_0__.isMaxLength(100))),
	host: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.TrimmedNonEmptyString)),
	limit: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Int.check(__vite_ssr_import_0__.isBetween({
		minimum: 1,
		maximum: 500
	}))),
	cursors: __vite_ssr_import_0__.optional(PullRequestListCursors),
	query: __vite_ssr_import_0__.optional(__vite_ssr_import_4__.TrimmedNonEmptyString.check(__vite_ssr_import_0__.isMaxLength(200)))
});
const PullRequestProviderSummary = __vite_ssr_import_0__.Struct({
	host: __vite_ssr_import_4__.TrimmedNonEmptyString,
	kind: __vite_ssr_import_5__.SourceControlProviderKind,
	searchesOnHost: __vite_ssr_import_0__.Boolean,
	actions: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.ForwardCompatibleArray)(PullRequestAction)),
	projectCount: __vite_ssr_import_4__.PositiveInt,
	configured: __vite_ssr_import_0__.Boolean,
	detail: __vite_ssr_import_0__.NullOr((0,__vite_ssr_import_4__.TrimmedNonEmptyString))
});
const PullRequestListProjectError = __vite_ssr_import_0__.Struct({
	projectId: __vite_ssr_import_4__.ProjectId,
	projectTitle: __vite_ssr_import_4__.TrimmedNonEmptyString,
	message: __vite_ssr_import_4__.TrimmedNonEmptyString
});
const PullRequestListResult = __vite_ssr_import_0__.Struct({
	/** Unreadable hosts are absent; JSON codecs reject optional record values. */
	viewers: __vite_ssr_import_0__.Record((0,__vite_ssr_import_4__.TrimmedNonEmptyString), (0,__vite_ssr_import_4__.TrimmedNonEmptyString)),
	providers: __vite_ssr_import_0__.Array(PullRequestProviderSummary),
	/** Re-sort after appending: one repository's older slice may outrank another's existing rows. */
	entries: __vite_ssr_import_0__.Array(PullRequestListEntry),
	errors: __vite_ssr_import_0__.Array(PullRequestListProjectError),
	truncated: __vite_ssr_import_0__.Boolean,
	nextCursors: PullRequestListCursors
});
const PullRequestRef = __vite_ssr_import_0__.Struct({
	projectId: __vite_ssr_import_4__.ProjectId,
	host: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.TrimmedNonEmptyString)),
	expectedAccountId: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.TrimmedNonEmptyString)),
	allowStale: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Boolean),
	repository: __vite_ssr_import_4__.TrimmedNonEmptyString,
	number: __vite_ssr_import_4__.PositiveInt
});
const PullRequestRoutingIdentityInput = __vite_ssr_import_0__.Struct({ host: __vite_ssr_import_4__.TrimmedNonEmptyString });
const PullRequestRoutingIdentityResult = __vite_ssr_import_0__.Struct({
	accountId: __vite_ssr_import_4__.TrimmedNonEmptyString,
	host: __vite_ssr_import_4__.TrimmedNonEmptyString,
	provider: __vite_ssr_import_5__.SourceControlProviderKind,
	viewer: __vite_ssr_import_4__.TrimmedNonEmptyString
});
const PullRequestRoutingResult = __vite_ssr_import_0__.Struct({
	accountId: __vite_ssr_import_4__.TrimmedNonEmptyString,
	host: __vite_ssr_import_4__.TrimmedNonEmptyString,
	provider: __vite_ssr_import_5__.SourceControlProviderKind,
	viewer: __vite_ssr_import_4__.TrimmedNonEmptyString,
	projectTitle: __vite_ssr_import_4__.TrimmedNonEmptyString,
	workspaceRoot: __vite_ssr_import_4__.TrimmedNonEmptyString
});
const PullRequestLinkedThreadsResult = __vite_ssr_import_0__.Struct({ threads: __vite_ssr_import_0__.Array(__vite_ssr_import_0__.Struct({
	id: __vite_ssr_import_4__.ThreadId,
	projectId: __vite_ssr_import_4__.ProjectId,
	title: __vite_ssr_import_0__.String,
	archivedAt: __vite_ssr_import_0__.NullOr((0,__vite_ssr_import_4__.IsoDateTime))
})) });
const PullRequestPreview = __vite_ssr_import_0__.Struct({
	projectId: __vite_ssr_import_4__.ProjectId,
	repository: __vite_ssr_import_4__.TrimmedNonEmptyString,
	number: __vite_ssr_import_4__.PositiveInt,
	title: __vite_ssr_import_4__.TrimmedNonEmptyString,
	url: __vite_ssr_import_4__.TrimmedNonEmptyString,
	author: __vite_ssr_import_0__.NullOr(PullRequestActor),
	state: PullRequestState,
	isDraft: __vite_ssr_import_0__.Boolean,
	createdAt: __vite_ssr_import_4__.IsoDateTime
});
const PullRequestSummary = __vite_ssr_import_0__.Struct({
	provider: __vite_ssr_import_5__.SourceControlProviderKind,
	projectId: __vite_ssr_import_4__.ProjectId,
	repository: __vite_ssr_import_4__.TrimmedNonEmptyString,
	number: __vite_ssr_import_4__.PositiveInt,
	title: __vite_ssr_import_4__.TrimmedNonEmptyString,
	url: __vite_ssr_import_4__.TrimmedNonEmptyString,
	state: PullRequestState,
	isDraft: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Boolean),
	headBranch: __vite_ssr_import_4__.TrimmedNonEmptyString,
	baseBranch: __vite_ssr_import_4__.TrimmedNonEmptyString,
	closedAt: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.NullOr(__vite_ssr_import_0__.String)),
	mergedAt: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.NullOr(__vite_ssr_import_0__.String)),
	updatedAt: __vite_ssr_import_4__.IsoDateTime,
	observedAt: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Finite),
	author: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.NullOr(PullRequestActor)),
	additions: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.NonNegativeInt)),
	deletions: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.NonNegativeInt)),
	changedFiles: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.NonNegativeInt)),
	reviewDecision: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.NullOr(PullRequestReviewDecision)),
	checksState: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.NullOr(PullRequestChecksState)),
	mergeability: __vite_ssr_import_0__.optional(PullRequestMergeability),
	/** Null when the host says the pull request is in no stack; absent when the read did not ask. */
	stack: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.NullOr(PullRequestStackMembership))
});
const PullRequestStack = __vite_ssr_import_0__.Struct({
	id: __vite_ssr_import_4__.TrimmedNonEmptyString,
	number: __vite_ssr_import_4__.PositiveInt,
	url: __vite_ssr_import_4__.TrimmedNonEmptyString,
	base: __vite_ssr_import_4__.TrimmedNonEmptyString,
	layers: __vite_ssr_import_0__.Array(__vite_ssr_import_0__.Struct({
		number: __vite_ssr_import_4__.PositiveInt,
		title: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.String),
		isDraft: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Boolean),
		headSha: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.TrimmedNonEmptyString)),
		headBranch: __vite_ssr_import_4__.TrimmedNonEmptyString,
		state: PullRequestState
	}))
});
const PullRequestDiffStat = __vite_ssr_import_0__.Struct({
	projectId: __vite_ssr_import_4__.ProjectId,
	repository: __vite_ssr_import_4__.TrimmedNonEmptyString,
	number: __vite_ssr_import_4__.PositiveInt,
	additions: __vite_ssr_import_4__.NonNegativeInt,
	deletions: __vite_ssr_import_4__.NonNegativeInt
});
const PullRequestListStatsInput = __vite_ssr_import_0__.Struct({ refs: __vite_ssr_import_0__.Array(PullRequestRef).check(__vite_ssr_import_0__.isMaxLength(500)) });
const PullRequestListStatsResult = __vite_ssr_import_0__.Struct({ stats: __vite_ssr_import_0__.Array(PullRequestDiffStat) });
const PullRequestFilterOptionKind = __vite_ssr_import_0__.Literals(["labels", "authors"]);
/** Scoped like `PullRequestListInput`, so the options come from the repositories it lists. */
const PullRequestFilterOptionsInput = __vite_ssr_import_0__.Struct({
	kind: PullRequestFilterOptionKind,
	projectId: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.ProjectId)),
	projectIds: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Array((0,__vite_ssr_import_4__.ProjectId)).check(__vite_ssr_import_0__.isMaxLength(100))),
	host: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.TrimmedNonEmptyString)),
	query: __vite_ssr_import_0__.optional(__vite_ssr_import_4__.TrimmedNonEmptyString.check(__vite_ssr_import_0__.isMaxLength(100)))
});
const PullRequestFilterOptions = __vite_ssr_import_0__.Struct({
	labels: __vite_ssr_import_0__.Array(PullRequestLabel),
	authors: __vite_ssr_import_0__.Array(PullRequestActor),
	truncated: __vite_ssr_import_0__.Boolean
});
/**
* A separate request rather than a flag on the reads, so an explicit "refresh" one person
* presses is the only thing that spends host requests — every ordinary read shares.
*/
const PullRequestInvalidateInput = __vite_ssr_import_0__.Struct({
	reference: __vite_ssr_import_0__.optional(PullRequestRef),
	filesViewedOnly: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Boolean)
});
const PullRequestReportStateInput = __vite_ssr_import_0__.Struct({
	reference: PullRequestRef,
	state: PullRequestState,
	isDraft: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Boolean)
});
const PullRequestDetail = __vite_ssr_import_0__.Struct({
	provider: __vite_ssr_import_5__.SourceControlProviderKind,
	capabilities: PullRequestCapabilities,
	viewerPermissions: PullRequestViewerPermissions,
	projectId: __vite_ssr_import_4__.ProjectId,
	projectTitle: __vite_ssr_import_4__.TrimmedNonEmptyString,
	workspaceRoot: __vite_ssr_import_4__.TrimmedNonEmptyString,
	repository: __vite_ssr_import_4__.TrimmedNonEmptyString,
	number: __vite_ssr_import_4__.PositiveInt,
	title: __vite_ssr_import_4__.TrimmedNonEmptyString,
	body: __vite_ssr_import_0__.String,
	url: __vite_ssr_import_4__.TrimmedNonEmptyString,
	author: __vite_ssr_import_0__.NullOr(PullRequestActor),
	state: PullRequestState,
	isDraft: __vite_ssr_import_0__.Boolean,
	mergeability: PullRequestMergeability,
	additions: __vite_ssr_import_4__.NonNegativeInt,
	deletions: __vite_ssr_import_4__.NonNegativeInt,
	changedFiles: __vite_ssr_import_4__.NonNegativeInt,
	headBranch: __vite_ssr_import_4__.TrimmedNonEmptyString,
	headRepositoryNameWithOwner: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.NullOr((0,__vite_ssr_import_4__.TrimmedNonEmptyString))),
	headSha: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.TrimmedNonEmptyString)),
	baseBranch: __vite_ssr_import_4__.TrimmedNonEmptyString,
	createdAt: __vite_ssr_import_4__.IsoDateTime,
	updatedAt: __vite_ssr_import_4__.IsoDateTime,
	observedAt: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Finite),
	mergedAt: __vite_ssr_import_0__.NullOr((0,__vite_ssr_import_4__.IsoDateTime)),
	closedAt: __vite_ssr_import_0__.NullOr((0,__vite_ssr_import_4__.IsoDateTime)),
	reviewers: __vite_ssr_import_0__.Array(PullRequestActor),
	labels: __vite_ssr_import_0__.Array(PullRequestLabel),
	checks: __vite_ssr_import_0__.Array(PullRequestCheck),
	mergeCapabilities: PullRequestMergeCapabilities,
	viewer: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.TrimmedNonEmptyString)),
	baseComparison: __vite_ssr_import_0__.optional(PullRequestBaseComparison),
	behindBy: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.NonNegativeInt)),
	/** Absent means the host does not report auto-merge state, not that it is off. */
	autoMergeEnabled: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Boolean),
	autoMergeMethod: __vite_ssr_import_0__.optional(PullRequestMergeMethod),
	workflowApprovalsRequired: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.NonNegativeInt))
});
const PullRequestChecks = __vite_ssr_import_0__.Struct({
	observedAt: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Finite),
	state: PullRequestState,
	checks: __vite_ssr_import_0__.Array(PullRequestCheck)
});
const PullRequestActivity = __vite_ssr_import_0__.Struct({
	author: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.NullOr(PullRequestActor)),
	reviewers: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Array(PullRequestActor)),
	comments: __vite_ssr_import_0__.Array(PullRequestComment),
	commentCount: __vite_ssr_import_4__.NonNegativeInt,
	commentsTruncated: __vite_ssr_import_0__.Boolean,
	reviewThreadsTruncated: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Boolean),
	reviewThreads: __vite_ssr_import_0__.Array(PullRequestReviewThread),
	commits: __vite_ssr_import_0__.Array(PullRequestCommit),
	reactions: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Array(PullRequestReaction))
});
const PullRequestDetailView = __vite_ssr_import_0__.Struct({
	...PullRequestDetail.fields,
	...PullRequestActivity.fields,
	author: __vite_ssr_import_0__.NullOr(PullRequestActor),
	reviewers: __vite_ssr_import_0__.Array(PullRequestActor)
});
/** GitHub refuses diffs past 300 files, so callers must page large changes. */
const PullRequestDiffInput = __vite_ssr_import_0__.Struct({
	...PullRequestRef.fields,
	cursor: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.TrimmedNonEmptyString)),
	commit: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.TrimmedNonEmptyString))
});
const PullRequestOmittedFileStat = __vite_ssr_import_0__.Struct({
	path: __vite_ssr_import_4__.TrimmedNonEmptyString,
	additions: __vite_ssr_import_0__.Number,
	deletions: __vite_ssr_import_0__.Number
});
const PullRequestDiffResult = __vite_ssr_import_0__.Struct({
	patch: __vite_ssr_import_0__.String,
	/** Content omitted within this slice; nextCursor separately indicates more slices. */
	truncated: __vite_ssr_import_0__.Boolean,
	nextCursor: __vite_ssr_import_0__.NullOr((0,__vite_ssr_import_4__.TrimmedNonEmptyString)),
	omittedFileStats: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Array(PullRequestOmittedFileStat))
});
const PullRequestDiffFileContentsInput = __vite_ssr_import_0__.Struct({
	...PullRequestRef.fields,
	commit: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.TrimmedNonEmptyString)),
	changeType: __vite_ssr_import_0__.Literals([
		"change",
		"rename-pure",
		"rename-changed",
		"new",
		"deleted"
	]),
	oldPath: __vite_ssr_import_4__.TrimmedNonEmptyString,
	newPath: __vite_ssr_import_4__.TrimmedNonEmptyString
});
const PullRequestDiffFileContentsResult = __vite_ssr_import_0__.Struct({
	oldContents: __vite_ssr_import_0__.String,
	newContents: __vite_ssr_import_0__.String
});
const MAX_FILE_PATH_LENGTH = 4096;
// Preserve filename whitespace so viewed marks match host paths.
const FilePath = __vite_ssr_import_0__.String.check(__vite_ssr_import_0__.isNonEmpty(), __vite_ssr_import_0__.isMaxLength(MAX_FILE_PATH_LENGTH));
const PullRequestFileViewedState = __vite_ssr_import_0__.Literals([
	"unviewed",
	"viewed",
	"dismissed"
]);
const PullRequestFileViewed = __vite_ssr_import_0__.Struct({
	path: FilePath,
	state: PullRequestFileViewedState
});
const PullRequestFilesViewedResult = __vite_ssr_import_0__.Struct({
	/** Only the files the host reported a state for. A file missing from this list is unviewed. */
	files: __vite_ssr_import_0__.Array(PullRequestFileViewed),
	truncated: __vite_ssr_import_0__.Boolean
});
const PullRequestLineCount = __vite_ssr_import_0__.Struct({
	additions: __vite_ssr_import_4__.NonNegativeInt,
	deletions: __vite_ssr_import_4__.NonNegativeInt
});
/**
* A change's line counts split by what the changed files are, judged from their paths. Null when
* the host gives no per-file counts, or has more files than one read covers: a split of part of
* the change would not add up to the totals shown beside it.
*/
const PullRequestChangeBreakdown = __vite_ssr_import_0__.NullOr(__vite_ssr_import_0__.Struct({
	code: PullRequestLineCount,
	tests: PullRequestLineCount,
	mocks: PullRequestLineCount,
	generated: PullRequestLineCount,
	// Servers from before the docs split send no key; their docs lines sit in `code`.
	docs: PullRequestLineCount.pipe(__vite_ssr_import_0__.withDecodingDefault(__vite_ssr_import_1__.succeed({
		additions: 0,
		deletions: 0
	})))
}));
const MAX_FILES_VIEWED_PRESSES = 500;
const PullRequestSetFilesViewedInput = __vite_ssr_import_0__.Struct({
	...PullRequestRef.fields,
	files: __vite_ssr_import_0__.Array(__vite_ssr_import_0__.Struct({
		path: FilePath,
		viewed: __vite_ssr_import_0__.Boolean
	})).check(__vite_ssr_import_0__.isMaxLength(MAX_FILES_VIEWED_PRESSES))
});
const PullRequestStackHead = __vite_ssr_import_0__.Struct({
	number: __vite_ssr_import_4__.PositiveInt,
	headSha: __vite_ssr_import_4__.TrimmedNonEmptyString
});
const PullRequestActionInput = __vite_ssr_import_0__.Struct({
	/** Native stack scope; only send to environments advertising pullRequestStackActions. */
	stackNumber: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.PositiveInt)),
	expectedStackHeads: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Array(PullRequestStackHead)),
	...PullRequestRef.fields,
	action: PullRequestAction,
	mergeMethod: __vite_ssr_import_0__.optional(PullRequestMergeMethod),
	updateMethod: __vite_ssr_import_0__.optional(PullRequestUpdateMethod)
});
// Preserve whitespace because it affects Markdown formatting.
const CommentBody = __vite_ssr_import_0__.String.check(__vite_ssr_import_0__.isNonEmpty()).check(__vite_ssr_import_0__.isMaxLength(65536));
const PullRequestCommentInput = __vite_ssr_import_0__.Struct({
	...PullRequestRef.fields,
	body: CommentBody
});
const PullRequestUpdateInput = __vite_ssr_import_0__.Struct({
	...PullRequestRef.fields,
	title: __vite_ssr_import_0__.optional(__vite_ssr_import_4__.TrimmedNonEmptyString.check(__vite_ssr_import_0__.isMaxLength(1024))),
	body: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.String.check(__vite_ssr_import_0__.isMaxLength(65536)))
});
/** Comment kind selects the endpoint; GitHub uses separate mutations for conversation and line comments. */
const PullRequestCommentUpdateInput = __vite_ssr_import_0__.Struct({
	...PullRequestRef.fields,
	commentId: __vite_ssr_import_4__.TrimmedNonEmptyString,
	kind: __vite_ssr_import_0__.Literals(["issue-comment", "review-comment"]),
	body: CommentBody
});
const PullRequestReviewPosition = __vite_ssr_import_0__.Union([
	__vite_ssr_import_0__.Struct({
		kind: __vite_ssr_import_0__.Literal("added"),
		newLine: __vite_ssr_import_4__.PositiveInt
	}),
	__vite_ssr_import_0__.Struct({
		kind: __vite_ssr_import_0__.Literal("deleted"),
		oldLine: __vite_ssr_import_4__.PositiveInt
	}),
	__vite_ssr_import_0__.Struct({
		kind: __vite_ssr_import_0__.Literal("context"),
		oldLine: __vite_ssr_import_4__.PositiveInt,
		newLine: __vite_ssr_import_4__.PositiveInt,
		side: PullRequestDiffSide
	})
]);
const PullRequestReviewCommentDraft = __vite_ssr_import_0__.Struct({
	path: __vite_ssr_import_4__.TrimmedNonEmptyString,
	/** GitLab needs both names for renamed-file comments; hosts using one path ignore this. */
	oldPath: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.TrimmedNonEmptyString)),
	position: PullRequestReviewPosition,
	/**
	* The first line of a comment on a range, which ends at `position`. Sent only to a host whose
	* capabilities include `review.rangeComment`.
	*/
	startPosition: __vite_ssr_import_0__.optional(PullRequestReviewPosition),
	body: CommentBody
});
const PullRequestSubmitReviewInput = __vite_ssr_import_0__.Struct({
	...PullRequestRef.fields,
	verdict: PullRequestReviewVerdict,
	body: __vite_ssr_import_0__.String.check(__vite_ssr_import_0__.isMaxLength(65536)),
	comments: __vite_ssr_import_0__.Array(PullRequestReviewCommentDraft)
});
const PullRequestThreadCommentsInput = __vite_ssr_import_0__.Struct({
	...PullRequestRef.fields,
	threadId: __vite_ssr_import_4__.TrimmedNonEmptyString,
	cursor: __vite_ssr_import_4__.TrimmedNonEmptyString
});
const PullRequestThreadCommentsResult = __vite_ssr_import_0__.Struct({
	comments: __vite_ssr_import_0__.Array(PullRequestThreadComment),
	nextCursor: __vite_ssr_import_0__.NullOr((0,__vite_ssr_import_4__.TrimmedNonEmptyString))
});
const PullRequestThreadReplyInput = __vite_ssr_import_0__.Struct({
	...PullRequestRef.fields,
	threadId: __vite_ssr_import_4__.TrimmedNonEmptyString,
	body: CommentBody
});
const PullRequestThreadResolutionInput = __vite_ssr_import_0__.Struct({
	...PullRequestRef.fields,
	threadId: __vite_ssr_import_4__.TrimmedNonEmptyString,
	resolved: __vite_ssr_import_0__.Boolean
});
const PullRequestReactionInput = __vite_ssr_import_0__.Struct({
	...PullRequestRef.fields,
	subjectId: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.TrimmedNonEmptyString)),
	content: PullRequestReactionContent,
	reacted: __vite_ssr_import_0__.Boolean
});
const PullRequestReviewerRequestInput = __vite_ssr_import_0__.Struct({
	...PullRequestRef.fields,
	reviewers: __vite_ssr_import_0__.Array(__vite_ssr_import_0__.Struct({
		id: __vite_ssr_import_4__.TrimmedNonEmptyString,
		kind: PullRequestReviewerKind
	})).check(__vite_ssr_import_0__.isMinLength(1), __vite_ssr_import_0__.isMaxLength(25)),
	requested: __vite_ssr_import_0__.Boolean
});
const PullRequestLabelChangeInput = __vite_ssr_import_0__.Struct({
	...PullRequestRef.fields,
	labels: __vite_ssr_import_0__.Array((0,__vite_ssr_import_4__.TrimmedNonEmptyString)).check(__vite_ssr_import_0__.isMinLength(1), __vite_ssr_import_0__.isMaxLength(25)),
	applied: __vite_ssr_import_0__.Boolean
});
/**
* The names keep their `cli-` prefix for wire compatibility; for a host read with a credential
* rather than a tool they mean "no credential" and "a refused credential".
*/
const PullRequestUnavailableReason = __vite_ssr_import_0__.Literals([
	"cli-missing",
	"cli-unauthenticated",
	"provider-unsupported"
]);
/**
* `author:me` names whoever is signed in to the host being read, GitHub's `@me` spelled either
* way. A host's own search would answer it, but the page and the server both re-check an author
* against the row's login, so the name is resolved before either comparison rather than being
* matched as the literal login "me".
*/
function resolvePullRequestAuthorFilter(author, viewer) {
	const trimmed = author.trim();
	if (!/^@?me$/i.test(trimmed)) return trimmed;
	return viewer === null || viewer === undefined || viewer.trim().length === 0 ? trimmed : viewer;
};
class PullRequestUnavailableError extends __vite_ssr_import_0__.TaggedError()("PullRequestUnavailableError", {
	reason: PullRequestUnavailableReason,
	provider: __vite_ssr_import_0__.optional((0,__vite_ssr_import_5__.SourceControlProviderKind)),
	/**
	* What the host needs on the server, in its own words. Absent from older servers, which
	* shipped no such field, and for a host that names nothing.
	*/
	requirement: __vite_ssr_import_0__.optional((0,__vite_ssr_import_4__.TrimmedNonEmptyString)),
	cause: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Defect())
}, { httpApiStatus: 503 }) {
	[__vite_ssr_import_2__.symbol]() {
		return __vite_ssr_import_3__.schemaJson(PullRequestUnavailableError)(this, { status: 503 });
	}
	get message() {
		switch (this.reason) {
			case "cli-missing": return this.requirement ?? "The tool this host is read through is not installed or set up.";
			case "cli-unauthenticated": return this.requirement ?? "This host has no working credentials.";
			case "provider-unsupported": return "Change requests cannot be browsed for this project's host yet.";
		}
	}
};
class PullRequestOperationError extends __vite_ssr_import_0__.TaggedError()("PullRequestOperationError", {
	operation: __vite_ssr_import_0__.String,
	detail: __vite_ssr_import_4__.TrimmedNonEmptyString,
	reason: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Literal("not-found")),
	cause: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Defect())
}, { httpApiStatus: 502 }) {
	[__vite_ssr_import_2__.symbol]() {
		return __vite_ssr_import_3__.schemaJson(PullRequestOperationError)(this, { status: 502 });
	}
	get message() {
		return `Pull request operation ${this.operation} failed: ${this.detail}`;
	}
}
//# sourceMappingSource=vite-generated
//# sourceMappingURL=data:application/json;base64,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QjtDQUNsRCxPQUFPLHNCQUFPLFNBQVMsc0JBQU8sT0FBTyxDQUFDO0FBQ3hDLEdBQ0EsRUFBRSxlQUFlLElBQUksQ0FDdkIsQ0FBQyxDQUFDO0NBQ0EsQ0FBQyxzQkFBc0IsVUFBVTtFQUMvQixPQUFPLHNCQUFtQixXQUFXLDJCQUEyQixDQUFDLENBQUMsTUFBTSxFQUFFLFFBQVEsSUFBSSxDQUFDO0NBQ3pGO0NBRUEsSUFBYSxVQUFrQjtFQUM3QixRQUFRLEtBQUssUUFBYjtHQUNFLEtBQUssZUFDSCxPQUFPLEtBQUssZUFBZTtHQUM3QixLQUFLLHVCQUNILE9BQU8sS0FBSyxlQUFlO0dBQzdCLEtBQUssd0JBQ0gsT0FBTztFQUNYO0NBQ0Y7QUFDRjtBQUVPLE1BQU0sa0NBQWtDLHNCQUFPLFlBQXVDLENBQUMsQ0FDNUYsNkJBQ0E7Q0FDRSxXQUFXLHNCQUFPO0NBQ2xCLFFBQVE7Q0FDUixRQUFRLHNCQUFPLFNBQVMsc0JBQU8sUUFBUSxXQUFXLENBQUM7Q0FDbkQsT0FBTyxzQkFBTyxTQUFTLHNCQUFPLE9BQU8sQ0FBQztBQUN4QyxHQUNBLEVBQUUsZUFBZSxJQUFJLENBQ3ZCLENBQUMsQ0FBQztDQUNBLENBQUMsc0JBQXNCLFVBQVU7RUFDL0IsT0FBTyxzQkFBbUIsV0FBVyx5QkFBeUIsQ0FBQyxDQUFDLE1BQU0sRUFBRSxRQUFRLElBQUksQ0FBQztDQUN2RjtDQUVBLElBQWEsVUFBa0I7RUFDN0IsT0FBTywwQkFBMEIsS0FBSyxVQUFVLFdBQVcsS0FBSztDQUNsRTtBQUNGIiwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlcyI6WyJwdWxsUmVxdWVzdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBTY2hlbWEgZnJvbSBcImVmZmVjdC9TY2hlbWFcIjtcbmltcG9ydCAqIGFzIEVmZmVjdCBmcm9tIFwiZWZmZWN0L0VmZmVjdFwiO1xuaW1wb3J0ICogYXMgSHR0cFNlcnZlclJlc3BvbmRhYmxlIGZyb20gXCJlZmZlY3QvaHR0cC9IdHRwU2VydmVyUmVzcG9uZGFibGVcIjtcbmltcG9ydCAqIGFzIEh0dHBTZXJ2ZXJSZXNwb25zZSBmcm9tIFwiZWZmZWN0L2h0dHAvSHR0cFNlcnZlclJlc3BvbnNlXCI7XG5cbmltcG9ydCB7XG4gIEZvcndhcmRDb21wYXRpYmxlQXJyYXksXG4gIElzb0RhdGVUaW1lLFxuICBOb25OZWdhdGl2ZUludCxcbiAgUG9zaXRpdmVJbnQsXG4gIFByb2plY3RJZCxcbiAgVGhyZWFkSWQsXG4gIFRyaW1tZWROb25FbXB0eVN0cmluZyxcbn0gZnJvbSBcIi4vYmFzZVNjaGVtYXMudHNcIjtcbmltcG9ydCB7IFNvdXJjZUNvbnRyb2xQcm92aWRlcktpbmQgfSBmcm9tIFwiLi9zb3VyY2VDb250cm9sLnRzXCI7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdEludm9sdmVtZW50ID0gU2NoZW1hLkxpdGVyYWxzKFtcImFsbFwiLCBcInJldmlld2luZ1wiLCBcImF1dGhvcmVkXCJdKTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0SW52b2x2ZW1lbnQgPSB0eXBlb2YgUHVsbFJlcXVlc3RJbnZvbHZlbWVudC5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RTdGF0ZSA9IFNjaGVtYS5MaXRlcmFscyhbXCJvcGVuXCIsIFwiY2xvc2VkXCIsIFwibWVyZ2VkXCJdKTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0U3RhdGUgPSB0eXBlb2YgUHVsbFJlcXVlc3RTdGF0ZS5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RMaXN0U3RhdGUgPSBTY2hlbWEuTGl0ZXJhbHMoW1wiYWxsXCIsIFwib3BlblwiLCBcImNsb3NlZFwiLCBcIm1lcmdlZFwiXSk7XG5leHBvcnQgdHlwZSBQdWxsUmVxdWVzdExpc3RTdGF0ZSA9IHR5cGVvZiBQdWxsUmVxdWVzdExpc3RTdGF0ZS5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RSZXZpZXdEZWNpc2lvbiA9IFNjaGVtYS5MaXRlcmFscyhbXG4gIFwiYXBwcm92ZWRcIixcbiAgXCJjaGFuZ2VzLXJlcXVlc3RlZFwiLFxuICBcInJldmlldy1yZXF1aXJlZFwiLFxuXSk7XG5leHBvcnQgdHlwZSBQdWxsUmVxdWVzdFJldmlld0RlY2lzaW9uID0gdHlwZW9mIFB1bGxSZXF1ZXN0UmV2aWV3RGVjaXNpb24uVHlwZTtcblxuY29uc3QgUHVsbFJlcXVlc3RRdWFsaWZpZXJWYWx1ZSA9IFRyaW1tZWROb25FbXB0eVN0cmluZy5jaGVjayhTY2hlbWEuaXNNYXhMZW5ndGgoMjAwKSk7XG5jb25zdCBQdWxsUmVxdWVzdFF1YWxpZmllclZhbHVlcyA9IFNjaGVtYS5BcnJheShQdWxsUmVxdWVzdFF1YWxpZmllclZhbHVlKS5jaGVjayhcbiAgU2NoZW1hLmlzTWF4TGVuZ3RoKDEwKSxcbik7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdExpc3RGaWx0ZXJzID0gU2NoZW1hLlN0cnVjdCh7XG4gIGRyYWZ0OiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLkxpdGVyYWxzKFtcIm9ubHlcIiwgXCJoaWRlXCJdKSksXG4gIHJldmlldzogU2NoZW1hLm9wdGlvbmFsKFxuICAgIFNjaGVtYS5MaXRlcmFscyhbXCJhcHByb3ZlZFwiLCBcImNoYW5nZXMtcmVxdWVzdGVkXCIsIFwicmV2aWV3LXJlcXVpcmVkXCIsIFwibm9uZVwiXSksXG4gICksXG4gIGNoZWNrczogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5MaXRlcmFscyhbXCJwYXNzaW5nXCIsIFwiZmFpbGluZ1wiXSkpLFxuICAvKiogR2l0SHViIGxhYmVsIHF1YWxpZmllcnM6IGV2ZXJ5IGdyb3VwIG11c3QgbWF0Y2g7IGFueSBuYW1lIHdpdGhpbiBhIGdyb3VwIHN1ZmZpY2VzLiAqL1xuICBsYWJlbHM6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuQXJyYXkoUHVsbFJlcXVlc3RRdWFsaWZpZXJWYWx1ZXMpLmNoZWNrKFNjaGVtYS5pc01heExlbmd0aCgxMCkpKSxcbiAgZXhjbHVkZWRMYWJlbHM6IFNjaGVtYS5vcHRpb25hbChQdWxsUmVxdWVzdFF1YWxpZmllclZhbHVlcyksXG4gIGF1dGhvcjogU2NoZW1hLm9wdGlvbmFsKFB1bGxSZXF1ZXN0UXVhbGlmaWVyVmFsdWUpLFxufSk7XG5leHBvcnQgdHlwZSBQdWxsUmVxdWVzdExpc3RGaWx0ZXJzID0gdHlwZW9mIFB1bGxSZXF1ZXN0TGlzdEZpbHRlcnMuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0Q2hlY2tzU3RhdGUgPSBTY2hlbWEuTGl0ZXJhbHMoW1wicGFzc2luZ1wiLCBcImZhaWxpbmdcIiwgXCJwZW5kaW5nXCJdKTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0Q2hlY2tzU3RhdGUgPSB0eXBlb2YgUHVsbFJlcXVlc3RDaGVja3NTdGF0ZS5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RNZXJnZWFiaWxpdHkgPSBTY2hlbWEuTGl0ZXJhbHMoW1wibWVyZ2VhYmxlXCIsIFwiY29uZmxpY3RpbmdcIiwgXCJ1bmtub3duXCJdKTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0TWVyZ2VhYmlsaXR5ID0gdHlwZW9mIFB1bGxSZXF1ZXN0TWVyZ2VhYmlsaXR5LlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdE1lcmdlTWV0aG9kID0gU2NoZW1hLkxpdGVyYWxzKFtcIm1lcmdlXCIsIFwic3F1YXNoXCIsIFwicmViYXNlXCJdKTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0TWVyZ2VNZXRob2QgPSB0eXBlb2YgUHVsbFJlcXVlc3RNZXJnZU1ldGhvZC5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RBY3Rpb24gPSBTY2hlbWEuTGl0ZXJhbHMoW1xuICBcIm1lcmdlXCIsXG4gIFwicmVhZHlcIixcbiAgXCJkcmFmdFwiLFxuICBcImNsb3NlXCIsXG4gIFwicmVvcGVuXCIsXG4gIFwiZGVsZXRlLWJyYW5jaFwiLFxuICBcInVwZGF0ZS1icmFuY2hcIixcbiAgXCJlbmFibGUtYXV0by1tZXJnZVwiLFxuICBcImRpc2FibGUtYXV0by1tZXJnZVwiLFxuICBcInJldmVydFwiLFxuICBcImFwcHJvdmUtd29ya2Zsb3dzXCIsXG5dKTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0QWN0aW9uID0gdHlwZW9mIFB1bGxSZXF1ZXN0QWN0aW9uLlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdFVwZGF0ZU1ldGhvZCA9IFNjaGVtYS5MaXRlcmFscyhbXCJtZXJnZVwiLCBcInJlYmFzZVwiXSk7XG5leHBvcnQgdHlwZSBQdWxsUmVxdWVzdFVwZGF0ZU1ldGhvZCA9IHR5cGVvZiBQdWxsUmVxdWVzdFVwZGF0ZU1ldGhvZC5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RCYXNlQ29tcGFyaXNvbiA9IFNjaGVtYS5MaXRlcmFscyhbXCJ1cC10by1kYXRlXCIsIFwiYmVoaW5kXCIsIFwidW5rbm93blwiXSk7XG5leHBvcnQgdHlwZSBQdWxsUmVxdWVzdEJhc2VDb21wYXJpc29uID0gdHlwZW9mIFB1bGxSZXF1ZXN0QmFzZUNvbXBhcmlzb24uVHlwZTtcblxuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0QWN0b3IgPSBTY2hlbWEuU3RydWN0KHtcbiAgaXNCb3Q6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuQm9vbGVhbiksXG4gIGxvZ2luOiBUcmltbWVkTm9uRW1wdHlTdHJpbmcsXG4gIG5hbWU6IFNjaGVtYS5OdWxsT3IoU2NoZW1hLlN0cmluZyksXG4gIGF2YXRhclVybDogU2NoZW1hLk51bGxPcihTY2hlbWEuU3RyaW5nKSxcbn0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RBY3RvciA9IHR5cGVvZiBQdWxsUmVxdWVzdEFjdG9yLlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdExhYmVsID0gU2NoZW1hLlN0cnVjdCh7XG4gIG5hbWU6IFRyaW1tZWROb25FbXB0eVN0cmluZyxcbiAgY29sb3I6IFNjaGVtYS5OdWxsT3IoU2NoZW1hLlN0cmluZyksXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0TGFiZWwgPSB0eXBlb2YgUHVsbFJlcXVlc3RMYWJlbC5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RDaGVja1N0YXR1cyA9IFNjaGVtYS5MaXRlcmFscyhbXG4gIFwicGVuZGluZ1wiLFxuICBcImFjdGlvbi1yZXF1aXJlZFwiLFxuICBcInN1Y2Nlc3NcIixcbiAgXCJmYWlsdXJlXCIsXG4gIFwic2tpcHBlZFwiLFxuICBcIm5ldXRyYWxcIixcbiAgXCJjYW5jZWxsZWRcIixcbl0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RDaGVja1N0YXR1cyA9IHR5cGVvZiBQdWxsUmVxdWVzdENoZWNrU3RhdHVzLlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdENoZWNrID0gU2NoZW1hLlN0cnVjdCh7XG4gIG5hbWU6IFRyaW1tZWROb25FbXB0eVN0cmluZyxcbiAgc3RhdHVzOiBQdWxsUmVxdWVzdENoZWNrU3RhdHVzLFxuICBkZXNjcmlwdGlvbjogU2NoZW1hLk51bGxPcihTY2hlbWEuU3RyaW5nKSxcbiAgdXJsOiBTY2hlbWEuTnVsbE9yKFNjaGVtYS5TdHJpbmcpLFxuICByZXF1aXJlZDogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5Cb29sZWFuKSxcbn0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RDaGVjayA9IHR5cGVvZiBQdWxsUmVxdWVzdENoZWNrLlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdFJlYWN0aW9uQ29udGVudCA9IFNjaGVtYS5MaXRlcmFscyhbXG4gIFwidGh1bWJzLXVwXCIsXG4gIFwidGh1bWJzLWRvd25cIixcbiAgXCJsYXVnaFwiLFxuICBcImhvb3JheVwiLFxuICBcImNvbmZ1c2VkXCIsXG4gIFwiaGVhcnRcIixcbiAgXCJyb2NrZXRcIixcbiAgXCJleWVzXCIsXG5dKTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0UmVhY3Rpb25Db250ZW50ID0gdHlwZW9mIFB1bGxSZXF1ZXN0UmVhY3Rpb25Db250ZW50LlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdFJlYWN0aW9uID0gU2NoZW1hLlN0cnVjdCh7XG4gIGNvbnRlbnQ6IFB1bGxSZXF1ZXN0UmVhY3Rpb25Db250ZW50LFxuICBjb3VudDogUG9zaXRpdmVJbnQsXG4gIC8qKiBFeGNsdWRlcyB0aGUgdmlld2VyJ3MgbG9naW4gd2hlbiB2aWV3ZXJIYXNSZWFjdGVkOyBjb3VudCBzdGlsbCBpbmNsdWRlcyB0aGVtLiAqL1xuICBhY3RvcnM6IFNjaGVtYS5BcnJheShUcmltbWVkTm9uRW1wdHlTdHJpbmcpLFxuICB2aWV3ZXJIYXNSZWFjdGVkOiBTY2hlbWEuQm9vbGVhbixcbn0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RSZWFjdGlvbiA9IHR5cGVvZiBQdWxsUmVxdWVzdFJlYWN0aW9uLlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdENvbW1lbnRLaW5kID0gU2NoZW1hLkxpdGVyYWxzKFtcbiAgXCJpc3N1ZS1jb21tZW50XCIsXG4gIFwicmV2aWV3LWNvbW1lbnRcIixcbiAgXCJyZXZpZXdcIixcbl0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RDb21tZW50S2luZCA9IHR5cGVvZiBQdWxsUmVxdWVzdENvbW1lbnRLaW5kLlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdENvbW1lbnQgPSBTY2hlbWEuU3RydWN0KHtcbiAgaWQ6IFRyaW1tZWROb25FbXB0eVN0cmluZyxcbiAga2luZDogUHVsbFJlcXVlc3RDb21tZW50S2luZCxcbiAgYXV0aG9yOiBTY2hlbWEuTnVsbE9yKFB1bGxSZXF1ZXN0QWN0b3IpLFxuICBib2R5OiBTY2hlbWEuU3RyaW5nLFxuICBjcmVhdGVkQXQ6IElzb0RhdGVUaW1lLFxuICBlZGl0ZWRBdDogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5OdWxsT3IoSXNvRGF0ZVRpbWUpKSxcbiAgdXJsOiBTY2hlbWEuTnVsbE9yKFNjaGVtYS5TdHJpbmcpLFxuICBwYXRoOiBTY2hlbWEuTnVsbE9yKFNjaGVtYS5TdHJpbmcpLFxuICByZXZpZXdTdGF0ZTogU2NoZW1hLk51bGxPcihTY2hlbWEuU3RyaW5nKSxcbiAgcmVhY3Rpb25zOiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLkFycmF5KFB1bGxSZXF1ZXN0UmVhY3Rpb24pKSxcbiAgY2FuRWRpdDogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5Cb29sZWFuKSxcbn0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RDb21tZW50ID0gdHlwZW9mIFB1bGxSZXF1ZXN0Q29tbWVudC5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3REaWZmU2lkZSA9IFNjaGVtYS5MaXRlcmFscyhbXCJsZWZ0XCIsIFwicmlnaHRcIl0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3REaWZmU2lkZSA9IHR5cGVvZiBQdWxsUmVxdWVzdERpZmZTaWRlLlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdFJldmlld1ZlcmRpY3QgPSBTY2hlbWEuTGl0ZXJhbHMoW1wiY29tbWVudFwiLCBcImFwcHJvdmVcIiwgXCJyZXF1ZXN0LWNoYW5nZXNcIl0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RSZXZpZXdWZXJkaWN0ID0gdHlwZW9mIFB1bGxSZXF1ZXN0UmV2aWV3VmVyZGljdC5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RUaHJlYWRDb21tZW50ID0gU2NoZW1hLlN0cnVjdCh7XG4gIGlkOiBUcmltbWVkTm9uRW1wdHlTdHJpbmcsXG4gIGF1dGhvcjogU2NoZW1hLk51bGxPcihQdWxsUmVxdWVzdEFjdG9yKSxcbiAgYm9keTogU2NoZW1hLlN0cmluZyxcbiAgY3JlYXRlZEF0OiBJc29EYXRlVGltZSxcbiAgZWRpdGVkQXQ6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuTnVsbE9yKElzb0RhdGVUaW1lKSksXG4gIHVybDogU2NoZW1hLk51bGxPcihTY2hlbWEuU3RyaW5nKSxcbiAgcmVhY3Rpb25zOiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLkFycmF5KFB1bGxSZXF1ZXN0UmVhY3Rpb24pKSxcbiAgY2FuRWRpdDogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5Cb29sZWFuKSxcbn0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RUaHJlYWRDb21tZW50ID0gdHlwZW9mIFB1bGxSZXF1ZXN0VGhyZWFkQ29tbWVudC5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RSZXZpZXdUaHJlYWQgPSBTY2hlbWEuU3RydWN0KHtcbiAgaWQ6IFRyaW1tZWROb25FbXB0eVN0cmluZyxcbiAgcGF0aDogVHJpbW1lZE5vbkVtcHR5U3RyaW5nLFxuICBsaW5lOiBTY2hlbWEuTnVsbE9yKFBvc2l0aXZlSW50KSxcbiAgc2lkZTogUHVsbFJlcXVlc3REaWZmU2lkZSxcbiAgaXNSZXNvbHZlZDogU2NoZW1hLkJvb2xlYW4sXG4gIGlzT3V0ZGF0ZWQ6IFNjaGVtYS5Cb29sZWFuLFxuICBjb21tZW50czogU2NoZW1hLkFycmF5KFB1bGxSZXF1ZXN0VGhyZWFkQ29tbWVudCksXG4gIGNvbW1lbnRDb3VudDogU2NoZW1hLm9wdGlvbmFsKE5vbk5lZ2F0aXZlSW50KSxcbiAgbmV4dENvbW1lbnRzQ3Vyc29yOiBTY2hlbWEub3B0aW9uYWwoVHJpbW1lZE5vbkVtcHR5U3RyaW5nKSxcbiAgLyoqIENhbiBvbmx5IG5hcnJvdyByZXBvc2l0b3J5LXdpZGUgcmVzb2x2ZSBwZXJtaXNzaW9uLiBBYnNlbnQgd2hlbiB1bnJlcG9ydGVkLiAqL1xuICBjYW5SZXNvbHZlOiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLkJvb2xlYW4pLFxufSk7XG5leHBvcnQgdHlwZSBQdWxsUmVxdWVzdFJldmlld1RocmVhZCA9IHR5cGVvZiBQdWxsUmVxdWVzdFJldmlld1RocmVhZC5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RSZXZpZXdlcktpbmQgPSBTY2hlbWEuTGl0ZXJhbHMoW1widXNlclwiLCBcInRlYW1cIl0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RSZXZpZXdlcktpbmQgPSB0eXBlb2YgUHVsbFJlcXVlc3RSZXZpZXdlcktpbmQuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0UmV2aWV3ZXJDYW5kaWRhdGUgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHVsbFJlcXVlc3RBY3Rvci5maWVsZHMsXG4gIGlkOiBUcmltbWVkTm9uRW1wdHlTdHJpbmcsXG4gIGtpbmQ6IFB1bGxSZXF1ZXN0UmV2aWV3ZXJLaW5kLFxuICBpc1JlcXVlc3RlZDogU2NoZW1hLkJvb2xlYW4sXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0UmV2aWV3ZXJDYW5kaWRhdGUgPSB0eXBlb2YgUHVsbFJlcXVlc3RSZXZpZXdlckNhbmRpZGF0ZS5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RSZXZpZXdlckNhbmRpZGF0ZUxpc3QgPSBTY2hlbWEuU3RydWN0KHtcbiAgY2FuZGlkYXRlczogU2NoZW1hLkFycmF5KFB1bGxSZXF1ZXN0UmV2aWV3ZXJDYW5kaWRhdGUpLFxuICB0cnVuY2F0ZWQ6IFNjaGVtYS5Cb29sZWFuLFxufSk7XG5leHBvcnQgdHlwZSBQdWxsUmVxdWVzdFJldmlld2VyQ2FuZGlkYXRlTGlzdCA9IHR5cGVvZiBQdWxsUmVxdWVzdFJldmlld2VyQ2FuZGlkYXRlTGlzdC5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RMYWJlbENhbmRpZGF0ZSA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICAuLi5QdWxsUmVxdWVzdExhYmVsLmZpZWxkcyxcbiAgZGVzY3JpcHRpb246IFNjaGVtYS5OdWxsT3IoU2NoZW1hLlN0cmluZyksXG4gIGlzQXBwbGllZDogU2NoZW1hLkJvb2xlYW4sXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0TGFiZWxDYW5kaWRhdGUgPSB0eXBlb2YgUHVsbFJlcXVlc3RMYWJlbENhbmRpZGF0ZS5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RMYWJlbENhbmRpZGF0ZUxpc3QgPSBTY2hlbWEuU3RydWN0KHtcbiAgY2FuZGlkYXRlczogU2NoZW1hLkFycmF5KFB1bGxSZXF1ZXN0TGFiZWxDYW5kaWRhdGUpLFxuICB0cnVuY2F0ZWQ6IFNjaGVtYS5Cb29sZWFuLFxufSk7XG5leHBvcnQgdHlwZSBQdWxsUmVxdWVzdExhYmVsQ2FuZGlkYXRlTGlzdCA9IHR5cGVvZiBQdWxsUmVxdWVzdExhYmVsQ2FuZGlkYXRlTGlzdC5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RDb21taXQgPSBTY2hlbWEuU3RydWN0KHtcbiAgb2lkOiBUcmltbWVkTm9uRW1wdHlTdHJpbmcsXG4gIG1lc3NhZ2VIZWFkbGluZTogU2NoZW1hLlN0cmluZyxcbiAgY29tbWl0dGVkRGF0ZTogSXNvRGF0ZVRpbWUsXG4gIGFkZGl0aW9uczogU2NoZW1hLm9wdGlvbmFsKE5vbk5lZ2F0aXZlSW50KSxcbiAgZGVsZXRpb25zOiBTY2hlbWEub3B0aW9uYWwoTm9uTmVnYXRpdmVJbnQpLFxuICBhdXRob3JzOiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLkFycmF5KFB1bGxSZXF1ZXN0QWN0b3IpKSxcbn0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RDb21taXQgPSB0eXBlb2YgUHVsbFJlcXVlc3RDb21taXQuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0UmV2aWV3Q2FwYWJpbGl0aWVzID0gU2NoZW1hLlN0cnVjdCh7XG4gIGlubGluZUNvbW1lbnQ6IFNjaGVtYS5Cb29sZWFuLFxuICAvKipcbiAgICogQW4gaW5saW5lIGNvbW1lbnQgY2FuIGNvdmVyIGEgcmFuZ2Ugb2YgbGluZXMgcmF0aGVyIHRoYW4gaXRzIGxhc3Qgb25lLiBBYnNlbnQsIGFzIGZyb20gYVxuICAgKiBzZXJ2ZXIgdGhhdCBwcmVkYXRlcyBpdCwgbWVhbnMgb25lIGxpbmUuXG4gICAqL1xuICByYW5nZUNvbW1lbnQ6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuQm9vbGVhbiksXG4gIHJlcGx5OiBTY2hlbWEuQm9vbGVhbixcbiAgcmVzb2x2ZTogU2NoZW1hLkJvb2xlYW4sXG4gIHZlcmRpY3RzOiBGb3J3YXJkQ29tcGF0aWJsZUFycmF5KFB1bGxSZXF1ZXN0UmV2aWV3VmVyZGljdCksXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0UmV2aWV3Q2FwYWJpbGl0aWVzID0gdHlwZW9mIFB1bGxSZXF1ZXN0UmV2aWV3Q2FwYWJpbGl0aWVzLlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdEVkaXRDYXBhYmlsaXRpZXMgPSBTY2hlbWEuU3RydWN0KHtcbiAgY2hhbmdlUmVxdWVzdDogU2NoZW1hLkJvb2xlYW4sXG4gIGNvbW1lbnQ6IFNjaGVtYS5Cb29sZWFuLFxufSk7XG5leHBvcnQgdHlwZSBQdWxsUmVxdWVzdEVkaXRDYXBhYmlsaXRpZXMgPSB0eXBlb2YgUHVsbFJlcXVlc3RFZGl0Q2FwYWJpbGl0aWVzLlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdFJldmlld2VyQ2FwYWJpbGl0aWVzID0gU2NoZW1hLlN0cnVjdCh7XG4gIHJlcXVlc3Q6IFNjaGVtYS5Cb29sZWFuLFxuICBsaXN0Q2FuZGlkYXRlczogU2NoZW1hLkJvb2xlYW4sXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0UmV2aWV3ZXJDYXBhYmlsaXRpZXMgPSB0eXBlb2YgUHVsbFJlcXVlc3RSZXZpZXdlckNhcGFiaWxpdGllcy5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RWaWV3ZWRGaWxlc1N0b3JlID0gU2NoZW1hLkxpdGVyYWxzKFtcImhvc3RcIiwgXCJlbnZpcm9ubWVudFwiXSk7XG5leHBvcnQgdHlwZSBQdWxsUmVxdWVzdFZpZXdlZEZpbGVzU3RvcmUgPSB0eXBlb2YgUHVsbFJlcXVlc3RWaWV3ZWRGaWxlc1N0b3JlLlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdENhcGFiaWxpdGllcyA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBkaWZmOiBTY2hlbWEuQm9vbGVhbixcbiAgY29tbWVudDogU2NoZW1hLkJvb2xlYW4sXG4gIGFjdGlvbnM6IEZvcndhcmRDb21wYXRpYmxlQXJyYXkoUHVsbFJlcXVlc3RBY3Rpb24pLFxuICBtZXJnZU1ldGhvZHM6IEZvcndhcmRDb21wYXRpYmxlQXJyYXkoUHVsbFJlcXVlc3RNZXJnZU1ldGhvZCksXG4gIGRlbGV0ZUJyYW5jaDogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5Cb29sZWFuKSxcbiAgLyoqXG4gICAqIEFic2VudCB3aGVyZSBpdCBjYW5ub3QgYXQgYWxsLCB3aGljaCBpcyBldmVyeSBob3N0IHRoYXQgaGFzIG5vdCBzYWlkIG90aGVyd2lzZSDigJQgc28gYVxuICAgKiBwcm92aWRlciB0aGF0IHNheXMgbm90aGluZyBvZmZlcnMgbm90aGluZy5cbiAgICovXG4gIHVwZGF0ZU1ldGhvZHM6IFNjaGVtYS5vcHRpb25hbChGb3J3YXJkQ29tcGF0aWJsZUFycmF5KFB1bGxSZXF1ZXN0VXBkYXRlTWV0aG9kKSksXG4gIHNlYXJjaDogU2NoZW1hLkJvb2xlYW4sXG4gIHJlYWN0aW9uczogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5Cb29sZWFuKSxcbiAgdmlld2VkRmlsZXM6IFNjaGVtYS5vcHRpb25hbChQdWxsUmVxdWVzdFZpZXdlZEZpbGVzU3RvcmUpLFxuICByZXZpZXc6IFB1bGxSZXF1ZXN0UmV2aWV3Q2FwYWJpbGl0aWVzLFxuICByZXZpZXdlcnM6IFB1bGxSZXF1ZXN0UmV2aWV3ZXJDYXBhYmlsaXRpZXMsXG4gIGVkaXQ6IFNjaGVtYS5vcHRpb25hbChQdWxsUmVxdWVzdEVkaXRDYXBhYmlsaXRpZXMpLFxuICBzdGFja3M6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuQm9vbGVhbiksXG4gIHN0YWNrQWN0aW9uczogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5Cb29sZWFuKSxcbiAgbGFiZWxzOiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLkJvb2xlYW4pLFxuICAvKipcbiAgICogRXZlcnkgaGVhZCBnZXRzIGF0IGxlYXN0IG9uZSBjaGVjaywgc28gYSBoZWFkIHRoYXQgaGFzIGdvbmUgYSB3aGlsZSB3aXRob3V0IGFueSBtZWFucyBub25lXG4gICAqIHJlcG9ydGVkIHJhdGhlciB0aGFuIHRoYXQgdGhlIHJlcG9zaXRvcnkgcnVucyBub25lLiBBYnNlbnQgbWVhbnMgYW4gZW1wdHkgbGlzdCBzYXlzIG5vdGhpbmcuXG4gICAqL1xuICBjaGVja3NBbHdheXNSZXBvcnQ6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuQm9vbGVhbiksXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0Q2FwYWJpbGl0aWVzID0gdHlwZW9mIFB1bGxSZXF1ZXN0Q2FwYWJpbGl0aWVzLlR5cGU7XG5cbi8qKiBVbnJlcG9ydGVkIGhvc3QgcGVybWlzc2lvbnMgYXJlIGdyYW50ZWQuICovXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RWaWV3ZXJQZXJtaXNzaW9ucyA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBzdGFja1JlYmFzZTogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5Cb29sZWFuKSxcbiAgYWN0aW9uczogRm9yd2FyZENvbXBhdGlibGVBcnJheShQdWxsUmVxdWVzdEFjdGlvbiksXG4gIGNvbW1lbnQ6IFNjaGVtYS5Cb29sZWFuLFxuICByZXNvbHZlOiBTY2hlbWEuQm9vbGVhbixcbiAgdmVyZGljdHM6IEZvcndhcmRDb21wYXRpYmxlQXJyYXkoUHVsbFJlcXVlc3RSZXZpZXdWZXJkaWN0KSxcbiAgcmVxdWVzdFJldmlld2VyczogU2NoZW1hLkJvb2xlYW4sXG4gIHVwZGF0ZU1ldGhvZHM6IFNjaGVtYS5vcHRpb25hbChGb3J3YXJkQ29tcGF0aWJsZUFycmF5KFB1bGxSZXF1ZXN0VXBkYXRlTWV0aG9kKSksXG4gIGxhYmVsczogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5Cb29sZWFuKSxcbiAgZWRpdENoYW5nZVJlcXVlc3Q6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuQm9vbGVhbiksXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0Vmlld2VyUGVybWlzc2lvbnMgPSB0eXBlb2YgUHVsbFJlcXVlc3RWaWV3ZXJQZXJtaXNzaW9ucy5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RNZXJnZUNhcGFiaWxpdGllcyA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBtZXJnZTogU2NoZW1hLkJvb2xlYW4sXG4gIHNxdWFzaDogU2NoZW1hLkJvb2xlYW4sXG4gIHJlYmFzZTogU2NoZW1hLkJvb2xlYW4sXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0TWVyZ2VDYXBhYmlsaXRpZXMgPSB0eXBlb2YgUHVsbFJlcXVlc3RNZXJnZUNhcGFiaWxpdGllcy5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RTdGFja01lbWJlcnNoaXAgPSBTY2hlbWEuU3RydWN0KHtcbiAgbnVtYmVyOiBQb3NpdGl2ZUludCxcbiAgcG9zaXRpb246IFBvc2l0aXZlSW50LFxuICBzaXplOiBQb3NpdGl2ZUludCxcbiAgYmFzZTogVHJpbW1lZE5vbkVtcHR5U3RyaW5nLFxufSk7XG5leHBvcnQgdHlwZSBQdWxsUmVxdWVzdFN0YWNrTWVtYmVyc2hpcCA9IHR5cGVvZiBQdWxsUmVxdWVzdFN0YWNrTWVtYmVyc2hpcC5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RMaXN0RW50cnkgPSBTY2hlbWEuU3RydWN0KHtcbiAgc3RhY2s6IFNjaGVtYS5vcHRpb25hbChQdWxsUmVxdWVzdFN0YWNrTWVtYmVyc2hpcCksXG4gIHByb3ZpZGVyOiBTb3VyY2VDb250cm9sUHJvdmlkZXJLaW5kLFxuICBob3N0OiBUcmltbWVkTm9uRW1wdHlTdHJpbmcsXG4gIHByb2plY3RJZDogUHJvamVjdElkLFxuICBwcm9qZWN0VGl0bGU6IFRyaW1tZWROb25FbXB0eVN0cmluZyxcbiAgcmVwb3NpdG9yeTogVHJpbW1lZE5vbkVtcHR5U3RyaW5nLFxuICBudW1iZXI6IFBvc2l0aXZlSW50LFxuICB0aXRsZTogVHJpbW1lZE5vbkVtcHR5U3RyaW5nLFxuICB1cmw6IFRyaW1tZWROb25FbXB0eVN0cmluZyxcbiAgYXV0aG9yOiBTY2hlbWEuTnVsbE9yKFB1bGxSZXF1ZXN0QWN0b3IpLFxuICBoZWFkQnJhbmNoOiBUcmltbWVkTm9uRW1wdHlTdHJpbmcsXG4gIGJhc2VCcmFuY2g6IFRyaW1tZWROb25FbXB0eVN0cmluZyxcbiAgc3RhdGU6IFB1bGxSZXF1ZXN0U3RhdGUsXG4gIGlzRHJhZnQ6IFNjaGVtYS5Cb29sZWFuLFxuICBtZXJnZWFiaWxpdHk6IFB1bGxSZXF1ZXN0TWVyZ2VhYmlsaXR5LFxuICAvKiogWmVybyB1bnRpbCBmZXRjaGVkIHRocm91Z2ggYFB1bGxSZXF1ZXN0TGlzdFN0YXRzSW5wdXRgOyBHaXRIdWIgbGlzdGluZ3Mgb21pdCBjb3VudHMuICovXG4gIGFkZGl0aW9uczogTm9uTmVnYXRpdmVJbnQsXG4gIGRlbGV0aW9uczogTm9uTmVnYXRpdmVJbnQsXG4gIGNyZWF0ZWRBdDogSXNvRGF0ZVRpbWUsXG4gIHVwZGF0ZWRBdDogSXNvRGF0ZVRpbWUsXG4gIG9ic2VydmVkQXQ6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuRmluaXRlKSxcbiAgdmlld2VyUmV2aWV3UmVxdWVzdGVkOiBTY2hlbWEuQm9vbGVhbixcbiAgbGFiZWxzOiBTY2hlbWEuQXJyYXkoUHVsbFJlcXVlc3RMYWJlbCksXG4gIHJldmlld0RlY2lzaW9uOiBTY2hlbWEub3B0aW9uYWwoUHVsbFJlcXVlc3RSZXZpZXdEZWNpc2lvbiksXG4gIGNoZWNrc1N0YXRlOiBTY2hlbWEub3B0aW9uYWwoUHVsbFJlcXVlc3RDaGVja3NTdGF0ZSksXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0TGlzdEVudHJ5ID0gdHlwZW9mIFB1bGxSZXF1ZXN0TGlzdEVudHJ5LlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdExpc3RDdXJzb3JzID0gU2NoZW1hLlJlY29yZChcbiAgVHJpbW1lZE5vbkVtcHR5U3RyaW5nLFxuICBUcmltbWVkTm9uRW1wdHlTdHJpbmcuY2hlY2soU2NoZW1hLmlzTWF4TGVuZ3RoKDQwOTYpKSxcbik7XG5leHBvcnQgdHlwZSBQdWxsUmVxdWVzdExpc3RDdXJzb3JzID0gdHlwZW9mIFB1bGxSZXF1ZXN0TGlzdEN1cnNvcnMuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0TGlzdElucHV0ID0gU2NoZW1hLlN0cnVjdCh7XG4gIHN0YXRlOiBQdWxsUmVxdWVzdExpc3RTdGF0ZSxcbiAgaW52b2x2ZW1lbnQ6IFNjaGVtYS5vcHRpb25hbChQdWxsUmVxdWVzdEludm9sdmVtZW50KSxcbiAgZmlsdGVyczogU2NoZW1hLm9wdGlvbmFsKFB1bGxSZXF1ZXN0TGlzdEZpbHRlcnMpLFxuICBwcm9qZWN0SWQ6IFNjaGVtYS5vcHRpb25hbChQcm9qZWN0SWQpLFxuICBwcm9qZWN0SWRzOiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLkFycmF5KFByb2plY3RJZCkuY2hlY2soU2NoZW1hLmlzTWF4TGVuZ3RoKDEwMCkpKSxcbiAgaG9zdDogU2NoZW1hLm9wdGlvbmFsKFRyaW1tZWROb25FbXB0eVN0cmluZyksXG4gIGxpbWl0OiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLkludC5jaGVjayhTY2hlbWEuaXNCZXR3ZWVuKHsgbWluaW11bTogMSwgbWF4aW11bTogNTAwIH0pKSksXG4gIGN1cnNvcnM6IFNjaGVtYS5vcHRpb25hbChQdWxsUmVxdWVzdExpc3RDdXJzb3JzKSxcbiAgcXVlcnk6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmcuY2hlY2soU2NoZW1hLmlzTWF4TGVuZ3RoKDIwMCkpKSxcbn0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RMaXN0SW5wdXQgPSB0eXBlb2YgUHVsbFJlcXVlc3RMaXN0SW5wdXQuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0UHJvdmlkZXJTdW1tYXJ5ID0gU2NoZW1hLlN0cnVjdCh7XG4gIGhvc3Q6IFRyaW1tZWROb25FbXB0eVN0cmluZyxcbiAga2luZDogU291cmNlQ29udHJvbFByb3ZpZGVyS2luZCxcbiAgc2VhcmNoZXNPbkhvc3Q6IFNjaGVtYS5Cb29sZWFuLFxuICBhY3Rpb25zOiBTY2hlbWEub3B0aW9uYWwoRm9yd2FyZENvbXBhdGlibGVBcnJheShQdWxsUmVxdWVzdEFjdGlvbikpLFxuICBwcm9qZWN0Q291bnQ6IFBvc2l0aXZlSW50LFxuICBjb25maWd1cmVkOiBTY2hlbWEuQm9vbGVhbixcbiAgZGV0YWlsOiBTY2hlbWEuTnVsbE9yKFRyaW1tZWROb25FbXB0eVN0cmluZyksXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0UHJvdmlkZXJTdW1tYXJ5ID0gdHlwZW9mIFB1bGxSZXF1ZXN0UHJvdmlkZXJTdW1tYXJ5LlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdExpc3RQcm9qZWN0RXJyb3IgPSBTY2hlbWEuU3RydWN0KHtcbiAgcHJvamVjdElkOiBQcm9qZWN0SWQsXG4gIHByb2plY3RUaXRsZTogVHJpbW1lZE5vbkVtcHR5U3RyaW5nLFxuICBtZXNzYWdlOiBUcmltbWVkTm9uRW1wdHlTdHJpbmcsXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0TGlzdFByb2plY3RFcnJvciA9IHR5cGVvZiBQdWxsUmVxdWVzdExpc3RQcm9qZWN0RXJyb3IuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0TGlzdFJlc3VsdCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICAvKiogVW5yZWFkYWJsZSBob3N0cyBhcmUgYWJzZW50OyBKU09OIGNvZGVjcyByZWplY3Qgb3B0aW9uYWwgcmVjb3JkIHZhbHVlcy4gKi9cbiAgdmlld2VyczogU2NoZW1hLlJlY29yZChUcmltbWVkTm9uRW1wdHlTdHJpbmcsIFRyaW1tZWROb25FbXB0eVN0cmluZyksXG4gIHByb3ZpZGVyczogU2NoZW1hLkFycmF5KFB1bGxSZXF1ZXN0UHJvdmlkZXJTdW1tYXJ5KSxcbiAgLyoqIFJlLXNvcnQgYWZ0ZXIgYXBwZW5kaW5nOiBvbmUgcmVwb3NpdG9yeSdzIG9sZGVyIHNsaWNlIG1heSBvdXRyYW5rIGFub3RoZXIncyBleGlzdGluZyByb3dzLiAqL1xuICBlbnRyaWVzOiBTY2hlbWEuQXJyYXkoUHVsbFJlcXVlc3RMaXN0RW50cnkpLFxuICBlcnJvcnM6IFNjaGVtYS5BcnJheShQdWxsUmVxdWVzdExpc3RQcm9qZWN0RXJyb3IpLFxuICB0cnVuY2F0ZWQ6IFNjaGVtYS5Cb29sZWFuLFxuICBuZXh0Q3Vyc29yczogUHVsbFJlcXVlc3RMaXN0Q3Vyc29ycyxcbn0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RMaXN0UmVzdWx0ID0gdHlwZW9mIFB1bGxSZXF1ZXN0TGlzdFJlc3VsdC5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RSZWYgPSBTY2hlbWEuU3RydWN0KHtcbiAgcHJvamVjdElkOiBQcm9qZWN0SWQsXG4gIGhvc3Q6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmcpLFxuICBleHBlY3RlZEFjY291bnRJZDogU2NoZW1hLm9wdGlvbmFsKFRyaW1tZWROb25FbXB0eVN0cmluZyksXG4gIGFsbG93U3RhbGU6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuQm9vbGVhbiksXG4gIHJlcG9zaXRvcnk6IFRyaW1tZWROb25FbXB0eVN0cmluZyxcbiAgbnVtYmVyOiBQb3NpdGl2ZUludCxcbn0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RSZWYgPSB0eXBlb2YgUHVsbFJlcXVlc3RSZWYuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0Um91dGluZ0lkZW50aXR5SW5wdXQgPSBTY2hlbWEuU3RydWN0KHtcbiAgaG9zdDogVHJpbW1lZE5vbkVtcHR5U3RyaW5nLFxufSk7XG5leHBvcnQgdHlwZSBQdWxsUmVxdWVzdFJvdXRpbmdJZGVudGl0eUlucHV0ID0gdHlwZW9mIFB1bGxSZXF1ZXN0Um91dGluZ0lkZW50aXR5SW5wdXQuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0Um91dGluZ0lkZW50aXR5UmVzdWx0ID0gU2NoZW1hLlN0cnVjdCh7XG4gIGFjY291bnRJZDogVHJpbW1lZE5vbkVtcHR5U3RyaW5nLFxuICBob3N0OiBUcmltbWVkTm9uRW1wdHlTdHJpbmcsXG4gIHByb3ZpZGVyOiBTb3VyY2VDb250cm9sUHJvdmlkZXJLaW5kLFxuICB2aWV3ZXI6IFRyaW1tZWROb25FbXB0eVN0cmluZyxcbn0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RSb3V0aW5nSWRlbnRpdHlSZXN1bHQgPSB0eXBlb2YgUHVsbFJlcXVlc3RSb3V0aW5nSWRlbnRpdHlSZXN1bHQuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0Um91dGluZ1Jlc3VsdCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBhY2NvdW50SWQ6IFRyaW1tZWROb25FbXB0eVN0cmluZyxcbiAgaG9zdDogVHJpbW1lZE5vbkVtcHR5U3RyaW5nLFxuICBwcm92aWRlcjogU291cmNlQ29udHJvbFByb3ZpZGVyS2luZCxcbiAgdmlld2VyOiBUcmltbWVkTm9uRW1wdHlTdHJpbmcsXG4gIHByb2plY3RUaXRsZTogVHJpbW1lZE5vbkVtcHR5U3RyaW5nLFxuICB3b3Jrc3BhY2VSb290OiBUcmltbWVkTm9uRW1wdHlTdHJpbmcsXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0Um91dGluZ1Jlc3VsdCA9IHR5cGVvZiBQdWxsUmVxdWVzdFJvdXRpbmdSZXN1bHQuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0TGlua2VkVGhyZWFkc1Jlc3VsdCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICB0aHJlYWRzOiBTY2hlbWEuQXJyYXkoXG4gICAgU2NoZW1hLlN0cnVjdCh7XG4gICAgICBpZDogVGhyZWFkSWQsXG4gICAgICBwcm9qZWN0SWQ6IFByb2plY3RJZCxcbiAgICAgIHRpdGxlOiBTY2hlbWEuU3RyaW5nLFxuICAgICAgYXJjaGl2ZWRBdDogU2NoZW1hLk51bGxPcihJc29EYXRlVGltZSksXG4gICAgfSksXG4gICksXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0TGlua2VkVGhyZWFkc1Jlc3VsdCA9IHR5cGVvZiBQdWxsUmVxdWVzdExpbmtlZFRocmVhZHNSZXN1bHQuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0UHJldmlldyA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBwcm9qZWN0SWQ6IFByb2plY3RJZCxcbiAgcmVwb3NpdG9yeTogVHJpbW1lZE5vbkVtcHR5U3RyaW5nLFxuICBudW1iZXI6IFBvc2l0aXZlSW50LFxuICB0aXRsZTogVHJpbW1lZE5vbkVtcHR5U3RyaW5nLFxuICB1cmw6IFRyaW1tZWROb25FbXB0eVN0cmluZyxcbiAgYXV0aG9yOiBTY2hlbWEuTnVsbE9yKFB1bGxSZXF1ZXN0QWN0b3IpLFxuICBzdGF0ZTogUHVsbFJlcXVlc3RTdGF0ZSxcbiAgaXNEcmFmdDogU2NoZW1hLkJvb2xlYW4sXG4gIGNyZWF0ZWRBdDogSXNvRGF0ZVRpbWUsXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0UHJldmlldyA9IHR5cGVvZiBQdWxsUmVxdWVzdFByZXZpZXcuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0U3VtbWFyeSA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBwcm92aWRlcjogU291cmNlQ29udHJvbFByb3ZpZGVyS2luZCxcbiAgcHJvamVjdElkOiBQcm9qZWN0SWQsXG4gIHJlcG9zaXRvcnk6IFRyaW1tZWROb25FbXB0eVN0cmluZyxcbiAgbnVtYmVyOiBQb3NpdGl2ZUludCxcbiAgdGl0bGU6IFRyaW1tZWROb25FbXB0eVN0cmluZyxcbiAgdXJsOiBUcmltbWVkTm9uRW1wdHlTdHJpbmcsXG4gIHN0YXRlOiBQdWxsUmVxdWVzdFN0YXRlLFxuICBpc0RyYWZ0OiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLkJvb2xlYW4pLFxuICBoZWFkQnJhbmNoOiBUcmltbWVkTm9uRW1wdHlTdHJpbmcsXG4gIGJhc2VCcmFuY2g6IFRyaW1tZWROb25FbXB0eVN0cmluZyxcbiAgY2xvc2VkQXQ6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuTnVsbE9yKFNjaGVtYS5TdHJpbmcpKSxcbiAgbWVyZ2VkQXQ6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuTnVsbE9yKFNjaGVtYS5TdHJpbmcpKSxcbiAgdXBkYXRlZEF0OiBJc29EYXRlVGltZSxcbiAgb2JzZXJ2ZWRBdDogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5GaW5pdGUpLFxuICBhdXRob3I6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuTnVsbE9yKFB1bGxSZXF1ZXN0QWN0b3IpKSxcbiAgYWRkaXRpb25zOiBTY2hlbWEub3B0aW9uYWwoTm9uTmVnYXRpdmVJbnQpLFxuICBkZWxldGlvbnM6IFNjaGVtYS5vcHRpb25hbChOb25OZWdhdGl2ZUludCksXG4gIGNoYW5nZWRGaWxlczogU2NoZW1hLm9wdGlvbmFsKE5vbk5lZ2F0aXZlSW50KSxcbiAgcmV2aWV3RGVjaXNpb246IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuTnVsbE9yKFB1bGxSZXF1ZXN0UmV2aWV3RGVjaXNpb24pKSxcbiAgY2hlY2tzU3RhdGU6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuTnVsbE9yKFB1bGxSZXF1ZXN0Q2hlY2tzU3RhdGUpKSxcbiAgbWVyZ2VhYmlsaXR5OiBTY2hlbWEub3B0aW9uYWwoUHVsbFJlcXVlc3RNZXJnZWFiaWxpdHkpLFxuICAvKiogTnVsbCB3aGVuIHRoZSBob3N0IHNheXMgdGhlIHB1bGwgcmVxdWVzdCBpcyBpbiBubyBzdGFjazsgYWJzZW50IHdoZW4gdGhlIHJlYWQgZGlkIG5vdCBhc2suICovXG4gIHN0YWNrOiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLk51bGxPcihQdWxsUmVxdWVzdFN0YWNrTWVtYmVyc2hpcCkpLFxufSk7XG5leHBvcnQgdHlwZSBQdWxsUmVxdWVzdFN1bW1hcnkgPSB0eXBlb2YgUHVsbFJlcXVlc3RTdW1tYXJ5LlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdFN0YWNrID0gU2NoZW1hLlN0cnVjdCh7XG4gIGlkOiBUcmltbWVkTm9uRW1wdHlTdHJpbmcsXG4gIG51bWJlcjogUG9zaXRpdmVJbnQsXG4gIHVybDogVHJpbW1lZE5vbkVtcHR5U3RyaW5nLFxuICBiYXNlOiBUcmltbWVkTm9uRW1wdHlTdHJpbmcsXG4gIGxheWVyczogU2NoZW1hLkFycmF5KFxuICAgIFNjaGVtYS5TdHJ1Y3Qoe1xuICAgICAgbnVtYmVyOiBQb3NpdGl2ZUludCxcbiAgICAgIHRpdGxlOiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLlN0cmluZyksXG4gICAgICBpc0RyYWZ0OiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLkJvb2xlYW4pLFxuICAgICAgaGVhZFNoYTogU2NoZW1hLm9wdGlvbmFsKFRyaW1tZWROb25FbXB0eVN0cmluZyksXG4gICAgICBoZWFkQnJhbmNoOiBUcmltbWVkTm9uRW1wdHlTdHJpbmcsXG4gICAgICBzdGF0ZTogUHVsbFJlcXVlc3RTdGF0ZSxcbiAgICB9KSxcbiAgKSxcbn0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RTdGFjayA9IHR5cGVvZiBQdWxsUmVxdWVzdFN0YWNrLlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdERpZmZTdGF0ID0gU2NoZW1hLlN0cnVjdCh7XG4gIHByb2plY3RJZDogUHJvamVjdElkLFxuICByZXBvc2l0b3J5OiBUcmltbWVkTm9uRW1wdHlTdHJpbmcsXG4gIG51bWJlcjogUG9zaXRpdmVJbnQsXG4gIGFkZGl0aW9uczogTm9uTmVnYXRpdmVJbnQsXG4gIGRlbGV0aW9uczogTm9uTmVnYXRpdmVJbnQsXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0RGlmZlN0YXQgPSB0eXBlb2YgUHVsbFJlcXVlc3REaWZmU3RhdC5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RMaXN0U3RhdHNJbnB1dCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICByZWZzOiBTY2hlbWEuQXJyYXkoUHVsbFJlcXVlc3RSZWYpLmNoZWNrKFNjaGVtYS5pc01heExlbmd0aCg1MDApKSxcbn0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RMaXN0U3RhdHNJbnB1dCA9IHR5cGVvZiBQdWxsUmVxdWVzdExpc3RTdGF0c0lucHV0LlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdExpc3RTdGF0c1Jlc3VsdCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBzdGF0czogU2NoZW1hLkFycmF5KFB1bGxSZXF1ZXN0RGlmZlN0YXQpLFxufSk7XG5leHBvcnQgdHlwZSBQdWxsUmVxdWVzdExpc3RTdGF0c1Jlc3VsdCA9IHR5cGVvZiBQdWxsUmVxdWVzdExpc3RTdGF0c1Jlc3VsdC5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RGaWx0ZXJPcHRpb25LaW5kID0gU2NoZW1hLkxpdGVyYWxzKFtcImxhYmVsc1wiLCBcImF1dGhvcnNcIl0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RGaWx0ZXJPcHRpb25LaW5kID0gdHlwZW9mIFB1bGxSZXF1ZXN0RmlsdGVyT3B0aW9uS2luZC5UeXBlO1xuXG4vKiogU2NvcGVkIGxpa2UgYFB1bGxSZXF1ZXN0TGlzdElucHV0YCwgc28gdGhlIG9wdGlvbnMgY29tZSBmcm9tIHRoZSByZXBvc2l0b3JpZXMgaXQgbGlzdHMuICovXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RGaWx0ZXJPcHRpb25zSW5wdXQgPSBTY2hlbWEuU3RydWN0KHtcbiAga2luZDogUHVsbFJlcXVlc3RGaWx0ZXJPcHRpb25LaW5kLFxuICBwcm9qZWN0SWQ6IFNjaGVtYS5vcHRpb25hbChQcm9qZWN0SWQpLFxuICBwcm9qZWN0SWRzOiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLkFycmF5KFByb2plY3RJZCkuY2hlY2soU2NoZW1hLmlzTWF4TGVuZ3RoKDEwMCkpKSxcbiAgaG9zdDogU2NoZW1hLm9wdGlvbmFsKFRyaW1tZWROb25FbXB0eVN0cmluZyksXG4gIHF1ZXJ5OiBTY2hlbWEub3B0aW9uYWwoVHJpbW1lZE5vbkVtcHR5U3RyaW5nLmNoZWNrKFNjaGVtYS5pc01heExlbmd0aCgxMDApKSksXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0RmlsdGVyT3B0aW9uc0lucHV0ID0gdHlwZW9mIFB1bGxSZXF1ZXN0RmlsdGVyT3B0aW9uc0lucHV0LlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdEZpbHRlck9wdGlvbnMgPSBTY2hlbWEuU3RydWN0KHtcbiAgbGFiZWxzOiBTY2hlbWEuQXJyYXkoUHVsbFJlcXVlc3RMYWJlbCksXG4gIGF1dGhvcnM6IFNjaGVtYS5BcnJheShQdWxsUmVxdWVzdEFjdG9yKSxcbiAgdHJ1bmNhdGVkOiBTY2hlbWEuQm9vbGVhbixcbn0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RGaWx0ZXJPcHRpb25zID0gdHlwZW9mIFB1bGxSZXF1ZXN0RmlsdGVyT3B0aW9ucy5UeXBlO1xuXG4vKipcbiAqIEEgc2VwYXJhdGUgcmVxdWVzdCByYXRoZXIgdGhhbiBhIGZsYWcgb24gdGhlIHJlYWRzLCBzbyBhbiBleHBsaWNpdCBcInJlZnJlc2hcIiBvbmUgcGVyc29uXG4gKiBwcmVzc2VzIGlzIHRoZSBvbmx5IHRoaW5nIHRoYXQgc3BlbmRzIGhvc3QgcmVxdWVzdHMg4oCUIGV2ZXJ5IG9yZGluYXJ5IHJlYWQgc2hhcmVzLlxuICovXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RJbnZhbGlkYXRlSW5wdXQgPSBTY2hlbWEuU3RydWN0KHtcbiAgcmVmZXJlbmNlOiBTY2hlbWEub3B0aW9uYWwoUHVsbFJlcXVlc3RSZWYpLFxuICBmaWxlc1ZpZXdlZE9ubHk6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuQm9vbGVhbiksXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0SW52YWxpZGF0ZUlucHV0ID0gdHlwZW9mIFB1bGxSZXF1ZXN0SW52YWxpZGF0ZUlucHV0LlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdFJlcG9ydFN0YXRlSW5wdXQgPSBTY2hlbWEuU3RydWN0KHtcbiAgcmVmZXJlbmNlOiBQdWxsUmVxdWVzdFJlZixcbiAgc3RhdGU6IFB1bGxSZXF1ZXN0U3RhdGUsXG4gIGlzRHJhZnQ6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuQm9vbGVhbiksXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0UmVwb3J0U3RhdGVJbnB1dCA9IHR5cGVvZiBQdWxsUmVxdWVzdFJlcG9ydFN0YXRlSW5wdXQuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0RGV0YWlsID0gU2NoZW1hLlN0cnVjdCh7XG4gIHByb3ZpZGVyOiBTb3VyY2VDb250cm9sUHJvdmlkZXJLaW5kLFxuICBjYXBhYmlsaXRpZXM6IFB1bGxSZXF1ZXN0Q2FwYWJpbGl0aWVzLFxuICB2aWV3ZXJQZXJtaXNzaW9uczogUHVsbFJlcXVlc3RWaWV3ZXJQZXJtaXNzaW9ucyxcbiAgcHJvamVjdElkOiBQcm9qZWN0SWQsXG4gIHByb2plY3RUaXRsZTogVHJpbW1lZE5vbkVtcHR5U3RyaW5nLFxuICB3b3Jrc3BhY2VSb290OiBUcmltbWVkTm9uRW1wdHlTdHJpbmcsXG4gIHJlcG9zaXRvcnk6IFRyaW1tZWROb25FbXB0eVN0cmluZyxcbiAgbnVtYmVyOiBQb3NpdGl2ZUludCxcbiAgdGl0bGU6IFRyaW1tZWROb25FbXB0eVN0cmluZyxcbiAgYm9keTogU2NoZW1hLlN0cmluZyxcbiAgdXJsOiBUcmltbWVkTm9uRW1wdHlTdHJpbmcsXG4gIGF1dGhvcjogU2NoZW1hLk51bGxPcihQdWxsUmVxdWVzdEFjdG9yKSxcbiAgc3RhdGU6IFB1bGxSZXF1ZXN0U3RhdGUsXG4gIGlzRHJhZnQ6IFNjaGVtYS5Cb29sZWFuLFxuICBtZXJnZWFiaWxpdHk6IFB1bGxSZXF1ZXN0TWVyZ2VhYmlsaXR5LFxuICBhZGRpdGlvbnM6IE5vbk5lZ2F0aXZlSW50LFxuICBkZWxldGlvbnM6IE5vbk5lZ2F0aXZlSW50LFxuICBjaGFuZ2VkRmlsZXM6IE5vbk5lZ2F0aXZlSW50LFxuICBoZWFkQnJhbmNoOiBUcmltbWVkTm9uRW1wdHlTdHJpbmcsXG4gIGhlYWRSZXBvc2l0b3J5TmFtZVdpdGhPd25lcjogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5OdWxsT3IoVHJpbW1lZE5vbkVtcHR5U3RyaW5nKSksXG4gIGhlYWRTaGE6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmcpLFxuICBiYXNlQnJhbmNoOiBUcmltbWVkTm9uRW1wdHlTdHJpbmcsXG4gIGNyZWF0ZWRBdDogSXNvRGF0ZVRpbWUsXG4gIHVwZGF0ZWRBdDogSXNvRGF0ZVRpbWUsXG4gIG9ic2VydmVkQXQ6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuRmluaXRlKSxcbiAgbWVyZ2VkQXQ6IFNjaGVtYS5OdWxsT3IoSXNvRGF0ZVRpbWUpLFxuICBjbG9zZWRBdDogU2NoZW1hLk51bGxPcihJc29EYXRlVGltZSksXG4gIHJldmlld2VyczogU2NoZW1hLkFycmF5KFB1bGxSZXF1ZXN0QWN0b3IpLFxuICBsYWJlbHM6IFNjaGVtYS5BcnJheShQdWxsUmVxdWVzdExhYmVsKSxcbiAgY2hlY2tzOiBTY2hlbWEuQXJyYXkoUHVsbFJlcXVlc3RDaGVjayksXG4gIG1lcmdlQ2FwYWJpbGl0aWVzOiBQdWxsUmVxdWVzdE1lcmdlQ2FwYWJpbGl0aWVzLFxuICB2aWV3ZXI6IFNjaGVtYS5vcHRpb25hbChUcmltbWVkTm9uRW1wdHlTdHJpbmcpLFxuICBiYXNlQ29tcGFyaXNvbjogU2NoZW1hLm9wdGlvbmFsKFB1bGxSZXF1ZXN0QmFzZUNvbXBhcmlzb24pLFxuICBiZWhpbmRCeTogU2NoZW1hLm9wdGlvbmFsKE5vbk5lZ2F0aXZlSW50KSxcbiAgLyoqIEFic2VudCBtZWFucyB0aGUgaG9zdCBkb2VzIG5vdCByZXBvcnQgYXV0by1tZXJnZSBzdGF0ZSwgbm90IHRoYXQgaXQgaXMgb2ZmLiAqL1xuICBhdXRvTWVyZ2VFbmFibGVkOiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLkJvb2xlYW4pLFxuICBhdXRvTWVyZ2VNZXRob2Q6IFNjaGVtYS5vcHRpb25hbChQdWxsUmVxdWVzdE1lcmdlTWV0aG9kKSxcbiAgd29ya2Zsb3dBcHByb3ZhbHNSZXF1aXJlZDogU2NoZW1hLm9wdGlvbmFsKE5vbk5lZ2F0aXZlSW50KSxcbn0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3REZXRhaWwgPSB0eXBlb2YgUHVsbFJlcXVlc3REZXRhaWwuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0Q2hlY2tzID0gU2NoZW1hLlN0cnVjdCh7XG4gIG9ic2VydmVkQXQ6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuRmluaXRlKSxcbiAgc3RhdGU6IFB1bGxSZXF1ZXN0U3RhdGUsXG4gIGNoZWNrczogU2NoZW1hLkFycmF5KFB1bGxSZXF1ZXN0Q2hlY2spLFxufSk7XG5leHBvcnQgdHlwZSBQdWxsUmVxdWVzdENoZWNrcyA9IHR5cGVvZiBQdWxsUmVxdWVzdENoZWNrcy5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RBY3Rpdml0eSA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBhdXRob3I6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuTnVsbE9yKFB1bGxSZXF1ZXN0QWN0b3IpKSxcbiAgcmV2aWV3ZXJzOiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLkFycmF5KFB1bGxSZXF1ZXN0QWN0b3IpKSxcbiAgY29tbWVudHM6IFNjaGVtYS5BcnJheShQdWxsUmVxdWVzdENvbW1lbnQpLFxuICBjb21tZW50Q291bnQ6IE5vbk5lZ2F0aXZlSW50LFxuICBjb21tZW50c1RydW5jYXRlZDogU2NoZW1hLkJvb2xlYW4sXG4gIHJldmlld1RocmVhZHNUcnVuY2F0ZWQ6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuQm9vbGVhbiksXG4gIHJldmlld1RocmVhZHM6IFNjaGVtYS5BcnJheShQdWxsUmVxdWVzdFJldmlld1RocmVhZCksXG4gIGNvbW1pdHM6IFNjaGVtYS5BcnJheShQdWxsUmVxdWVzdENvbW1pdCksXG4gIHJlYWN0aW9uczogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5BcnJheShQdWxsUmVxdWVzdFJlYWN0aW9uKSksXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0QWN0aXZpdHkgPSB0eXBlb2YgUHVsbFJlcXVlc3RBY3Rpdml0eS5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3REZXRhaWxWaWV3ID0gU2NoZW1hLlN0cnVjdCh7XG4gIC4uLlB1bGxSZXF1ZXN0RGV0YWlsLmZpZWxkcyxcbiAgLi4uUHVsbFJlcXVlc3RBY3Rpdml0eS5maWVsZHMsXG4gIGF1dGhvcjogU2NoZW1hLk51bGxPcihQdWxsUmVxdWVzdEFjdG9yKSxcbiAgcmV2aWV3ZXJzOiBTY2hlbWEuQXJyYXkoUHVsbFJlcXVlc3RBY3RvciksXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0RGV0YWlsVmlldyA9IHR5cGVvZiBQdWxsUmVxdWVzdERldGFpbFZpZXcuVHlwZTtcblxuLyoqIEdpdEh1YiByZWZ1c2VzIGRpZmZzIHBhc3QgMzAwIGZpbGVzLCBzbyBjYWxsZXJzIG11c3QgcGFnZSBsYXJnZSBjaGFuZ2VzLiAqL1xuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0RGlmZklucHV0ID0gU2NoZW1hLlN0cnVjdCh7XG4gIC4uLlB1bGxSZXF1ZXN0UmVmLmZpZWxkcyxcbiAgY3Vyc29yOiBTY2hlbWEub3B0aW9uYWwoVHJpbW1lZE5vbkVtcHR5U3RyaW5nKSxcbiAgY29tbWl0OiBTY2hlbWEub3B0aW9uYWwoVHJpbW1lZE5vbkVtcHR5U3RyaW5nKSxcbn0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3REaWZmSW5wdXQgPSB0eXBlb2YgUHVsbFJlcXVlc3REaWZmSW5wdXQuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0T21pdHRlZEZpbGVTdGF0ID0gU2NoZW1hLlN0cnVjdCh7XG4gIHBhdGg6IFRyaW1tZWROb25FbXB0eVN0cmluZyxcbiAgYWRkaXRpb25zOiBTY2hlbWEuTnVtYmVyLFxuICBkZWxldGlvbnM6IFNjaGVtYS5OdW1iZXIsXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0T21pdHRlZEZpbGVTdGF0ID0gdHlwZW9mIFB1bGxSZXF1ZXN0T21pdHRlZEZpbGVTdGF0LlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdERpZmZSZXN1bHQgPSBTY2hlbWEuU3RydWN0KHtcbiAgcGF0Y2g6IFNjaGVtYS5TdHJpbmcsXG4gIC8qKiBDb250ZW50IG9taXR0ZWQgd2l0aGluIHRoaXMgc2xpY2U7IG5leHRDdXJzb3Igc2VwYXJhdGVseSBpbmRpY2F0ZXMgbW9yZSBzbGljZXMuICovXG4gIHRydW5jYXRlZDogU2NoZW1hLkJvb2xlYW4sXG4gIG5leHRDdXJzb3I6IFNjaGVtYS5OdWxsT3IoVHJpbW1lZE5vbkVtcHR5U3RyaW5nKSxcbiAgb21pdHRlZEZpbGVTdGF0czogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5BcnJheShQdWxsUmVxdWVzdE9taXR0ZWRGaWxlU3RhdCkpLFxufSk7XG5leHBvcnQgdHlwZSBQdWxsUmVxdWVzdERpZmZSZXN1bHQgPSB0eXBlb2YgUHVsbFJlcXVlc3REaWZmUmVzdWx0LlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdERpZmZGaWxlQ29udGVudHNJbnB1dCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICAuLi5QdWxsUmVxdWVzdFJlZi5maWVsZHMsXG4gIGNvbW1pdDogU2NoZW1hLm9wdGlvbmFsKFRyaW1tZWROb25FbXB0eVN0cmluZyksXG4gIGNoYW5nZVR5cGU6IFNjaGVtYS5MaXRlcmFscyhbXCJjaGFuZ2VcIiwgXCJyZW5hbWUtcHVyZVwiLCBcInJlbmFtZS1jaGFuZ2VkXCIsIFwibmV3XCIsIFwiZGVsZXRlZFwiXSksXG4gIG9sZFBhdGg6IFRyaW1tZWROb25FbXB0eVN0cmluZyxcbiAgbmV3UGF0aDogVHJpbW1lZE5vbkVtcHR5U3RyaW5nLFxufSk7XG5leHBvcnQgdHlwZSBQdWxsUmVxdWVzdERpZmZGaWxlQ29udGVudHNJbnB1dCA9IHR5cGVvZiBQdWxsUmVxdWVzdERpZmZGaWxlQ29udGVudHNJbnB1dC5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3REaWZmRmlsZUNvbnRlbnRzUmVzdWx0ID0gU2NoZW1hLlN0cnVjdCh7XG4gIG9sZENvbnRlbnRzOiBTY2hlbWEuU3RyaW5nLFxuICBuZXdDb250ZW50czogU2NoZW1hLlN0cmluZyxcbn0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3REaWZmRmlsZUNvbnRlbnRzUmVzdWx0ID0gdHlwZW9mIFB1bGxSZXF1ZXN0RGlmZkZpbGVDb250ZW50c1Jlc3VsdC5UeXBlO1xuXG5jb25zdCBNQVhfRklMRV9QQVRIX0xFTkdUSCA9IDQwOTY7XG4vLyBQcmVzZXJ2ZSBmaWxlbmFtZSB3aGl0ZXNwYWNlIHNvIHZpZXdlZCBtYXJrcyBtYXRjaCBob3N0IHBhdGhzLlxuY29uc3QgRmlsZVBhdGggPSBTY2hlbWEuU3RyaW5nLmNoZWNrKFNjaGVtYS5pc05vbkVtcHR5KCksIFNjaGVtYS5pc01heExlbmd0aChNQVhfRklMRV9QQVRIX0xFTkdUSCkpO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RGaWxlVmlld2VkU3RhdGUgPSBTY2hlbWEuTGl0ZXJhbHMoW1widW52aWV3ZWRcIiwgXCJ2aWV3ZWRcIiwgXCJkaXNtaXNzZWRcIl0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RGaWxlVmlld2VkU3RhdGUgPSB0eXBlb2YgUHVsbFJlcXVlc3RGaWxlVmlld2VkU3RhdGUuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0RmlsZVZpZXdlZCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBwYXRoOiBGaWxlUGF0aCxcbiAgc3RhdGU6IFB1bGxSZXF1ZXN0RmlsZVZpZXdlZFN0YXRlLFxufSk7XG5leHBvcnQgdHlwZSBQdWxsUmVxdWVzdEZpbGVWaWV3ZWQgPSB0eXBlb2YgUHVsbFJlcXVlc3RGaWxlVmlld2VkLlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdEZpbGVzVmlld2VkUmVzdWx0ID0gU2NoZW1hLlN0cnVjdCh7XG4gIC8qKiBPbmx5IHRoZSBmaWxlcyB0aGUgaG9zdCByZXBvcnRlZCBhIHN0YXRlIGZvci4gQSBmaWxlIG1pc3NpbmcgZnJvbSB0aGlzIGxpc3QgaXMgdW52aWV3ZWQuICovXG4gIGZpbGVzOiBTY2hlbWEuQXJyYXkoUHVsbFJlcXVlc3RGaWxlVmlld2VkKSxcbiAgdHJ1bmNhdGVkOiBTY2hlbWEuQm9vbGVhbixcbn0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RGaWxlc1ZpZXdlZFJlc3VsdCA9IHR5cGVvZiBQdWxsUmVxdWVzdEZpbGVzVmlld2VkUmVzdWx0LlR5cGU7XG5cbmNvbnN0IFB1bGxSZXF1ZXN0TGluZUNvdW50ID0gU2NoZW1hLlN0cnVjdCh7XG4gIGFkZGl0aW9uczogTm9uTmVnYXRpdmVJbnQsXG4gIGRlbGV0aW9uczogTm9uTmVnYXRpdmVJbnQsXG59KTtcblxuLyoqXG4gKiBBIGNoYW5nZSdzIGxpbmUgY291bnRzIHNwbGl0IGJ5IHdoYXQgdGhlIGNoYW5nZWQgZmlsZXMgYXJlLCBqdWRnZWQgZnJvbSB0aGVpciBwYXRocy4gTnVsbCB3aGVuXG4gKiB0aGUgaG9zdCBnaXZlcyBubyBwZXItZmlsZSBjb3VudHMsIG9yIGhhcyBtb3JlIGZpbGVzIHRoYW4gb25lIHJlYWQgY292ZXJzOiBhIHNwbGl0IG9mIHBhcnQgb2ZcbiAqIHRoZSBjaGFuZ2Ugd291bGQgbm90IGFkZCB1cCB0byB0aGUgdG90YWxzIHNob3duIGJlc2lkZSBpdC5cbiAqL1xuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0Q2hhbmdlQnJlYWtkb3duID0gU2NoZW1hLk51bGxPcihcbiAgU2NoZW1hLlN0cnVjdCh7XG4gICAgY29kZTogUHVsbFJlcXVlc3RMaW5lQ291bnQsXG4gICAgdGVzdHM6IFB1bGxSZXF1ZXN0TGluZUNvdW50LFxuICAgIG1vY2tzOiBQdWxsUmVxdWVzdExpbmVDb3VudCxcbiAgICBnZW5lcmF0ZWQ6IFB1bGxSZXF1ZXN0TGluZUNvdW50LFxuICAgIC8vIFNlcnZlcnMgZnJvbSBiZWZvcmUgdGhlIGRvY3Mgc3BsaXQgc2VuZCBubyBrZXk7IHRoZWlyIGRvY3MgbGluZXMgc2l0IGluIGBjb2RlYC5cbiAgICBkb2NzOiBQdWxsUmVxdWVzdExpbmVDb3VudC5waXBlKFxuICAgICAgU2NoZW1hLndpdGhEZWNvZGluZ0RlZmF1bHQoRWZmZWN0LnN1Y2NlZWQoeyBhZGRpdGlvbnM6IDAsIGRlbGV0aW9uczogMCB9KSksXG4gICAgKSxcbiAgfSksXG4pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RDaGFuZ2VCcmVha2Rvd24gPSB0eXBlb2YgUHVsbFJlcXVlc3RDaGFuZ2VCcmVha2Rvd24uVHlwZTtcblxuY29uc3QgTUFYX0ZJTEVTX1ZJRVdFRF9QUkVTU0VTID0gNTAwO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RTZXRGaWxlc1ZpZXdlZElucHV0ID0gU2NoZW1hLlN0cnVjdCh7XG4gIC4uLlB1bGxSZXF1ZXN0UmVmLmZpZWxkcyxcbiAgZmlsZXM6IFNjaGVtYS5BcnJheShcbiAgICBTY2hlbWEuU3RydWN0KHtcbiAgICAgIHBhdGg6IEZpbGVQYXRoLFxuICAgICAgdmlld2VkOiBTY2hlbWEuQm9vbGVhbixcbiAgICB9KSxcbiAgKS5jaGVjayhTY2hlbWEuaXNNYXhMZW5ndGgoTUFYX0ZJTEVTX1ZJRVdFRF9QUkVTU0VTKSksXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0U2V0RmlsZXNWaWV3ZWRJbnB1dCA9IHR5cGVvZiBQdWxsUmVxdWVzdFNldEZpbGVzVmlld2VkSW5wdXQuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0U3RhY2tIZWFkID0gU2NoZW1hLlN0cnVjdCh7XG4gIG51bWJlcjogUG9zaXRpdmVJbnQsXG4gIGhlYWRTaGE6IFRyaW1tZWROb25FbXB0eVN0cmluZyxcbn0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RTdGFja0hlYWQgPSB0eXBlb2YgUHVsbFJlcXVlc3RTdGFja0hlYWQuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0QWN0aW9uSW5wdXQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLyoqIE5hdGl2ZSBzdGFjayBzY29wZTsgb25seSBzZW5kIHRvIGVudmlyb25tZW50cyBhZHZlcnRpc2luZyBwdWxsUmVxdWVzdFN0YWNrQWN0aW9ucy4gKi9cbiAgc3RhY2tOdW1iZXI6IFNjaGVtYS5vcHRpb25hbChQb3NpdGl2ZUludCksXG4gIGV4cGVjdGVkU3RhY2tIZWFkczogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5BcnJheShQdWxsUmVxdWVzdFN0YWNrSGVhZCkpLFxuICAuLi5QdWxsUmVxdWVzdFJlZi5maWVsZHMsXG4gIGFjdGlvbjogUHVsbFJlcXVlc3RBY3Rpb24sXG4gIG1lcmdlTWV0aG9kOiBTY2hlbWEub3B0aW9uYWwoUHVsbFJlcXVlc3RNZXJnZU1ldGhvZCksXG4gIHVwZGF0ZU1ldGhvZDogU2NoZW1hLm9wdGlvbmFsKFB1bGxSZXF1ZXN0VXBkYXRlTWV0aG9kKSxcbn0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RBY3Rpb25JbnB1dCA9IHR5cGVvZiBQdWxsUmVxdWVzdEFjdGlvbklucHV0LlR5cGU7XG5cbi8vIFByZXNlcnZlIHdoaXRlc3BhY2UgYmVjYXVzZSBpdCBhZmZlY3RzIE1hcmtkb3duIGZvcm1hdHRpbmcuXG5jb25zdCBDb21tZW50Qm9keSA9IFNjaGVtYS5TdHJpbmcuY2hlY2soU2NoZW1hLmlzTm9uRW1wdHkoKSkuY2hlY2soU2NoZW1hLmlzTWF4TGVuZ3RoKDY1XzUzNikpO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RDb21tZW50SW5wdXQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHVsbFJlcXVlc3RSZWYuZmllbGRzLFxuICBib2R5OiBDb21tZW50Qm9keSxcbn0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RDb21tZW50SW5wdXQgPSB0eXBlb2YgUHVsbFJlcXVlc3RDb21tZW50SW5wdXQuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0VXBkYXRlSW5wdXQgPSBTY2hlbWEuU3RydWN0KHtcbiAgLi4uUHVsbFJlcXVlc3RSZWYuZmllbGRzLFxuICB0aXRsZTogU2NoZW1hLm9wdGlvbmFsKFRyaW1tZWROb25FbXB0eVN0cmluZy5jaGVjayhTY2hlbWEuaXNNYXhMZW5ndGgoMTAyNCkpKSxcbiAgYm9keTogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5TdHJpbmcuY2hlY2soU2NoZW1hLmlzTWF4TGVuZ3RoKDY1XzUzNikpKSxcbn0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RVcGRhdGVJbnB1dCA9IHR5cGVvZiBQdWxsUmVxdWVzdFVwZGF0ZUlucHV0LlR5cGU7XG5cbi8qKiBDb21tZW50IGtpbmQgc2VsZWN0cyB0aGUgZW5kcG9pbnQ7IEdpdEh1YiB1c2VzIHNlcGFyYXRlIG11dGF0aW9ucyBmb3IgY29udmVyc2F0aW9uIGFuZCBsaW5lIGNvbW1lbnRzLiAqL1xuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0Q29tbWVudFVwZGF0ZUlucHV0ID0gU2NoZW1hLlN0cnVjdCh7XG4gIC4uLlB1bGxSZXF1ZXN0UmVmLmZpZWxkcyxcbiAgY29tbWVudElkOiBUcmltbWVkTm9uRW1wdHlTdHJpbmcsXG4gIGtpbmQ6IFNjaGVtYS5MaXRlcmFscyhbXCJpc3N1ZS1jb21tZW50XCIsIFwicmV2aWV3LWNvbW1lbnRcIl0pLFxuICBib2R5OiBDb21tZW50Qm9keSxcbn0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RDb21tZW50VXBkYXRlSW5wdXQgPSB0eXBlb2YgUHVsbFJlcXVlc3RDb21tZW50VXBkYXRlSW5wdXQuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0UmV2aWV3UG9zaXRpb24gPSBTY2hlbWEuVW5pb24oW1xuICBTY2hlbWEuU3RydWN0KHtcbiAgICBraW5kOiBTY2hlbWEuTGl0ZXJhbChcImFkZGVkXCIpLFxuICAgIG5ld0xpbmU6IFBvc2l0aXZlSW50LFxuICB9KSxcbiAgU2NoZW1hLlN0cnVjdCh7XG4gICAga2luZDogU2NoZW1hLkxpdGVyYWwoXCJkZWxldGVkXCIpLFxuICAgIG9sZExpbmU6IFBvc2l0aXZlSW50LFxuICB9KSxcbiAgU2NoZW1hLlN0cnVjdCh7XG4gICAga2luZDogU2NoZW1hLkxpdGVyYWwoXCJjb250ZXh0XCIpLFxuICAgIG9sZExpbmU6IFBvc2l0aXZlSW50LFxuICAgIG5ld0xpbmU6IFBvc2l0aXZlSW50LFxuICAgIHNpZGU6IFB1bGxSZXF1ZXN0RGlmZlNpZGUsXG4gIH0pLFxuXSk7XG5leHBvcnQgdHlwZSBQdWxsUmVxdWVzdFJldmlld1Bvc2l0aW9uID0gdHlwZW9mIFB1bGxSZXF1ZXN0UmV2aWV3UG9zaXRpb24uVHlwZTtcblxuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudERyYWZ0ID0gU2NoZW1hLlN0cnVjdCh7XG4gIHBhdGg6IFRyaW1tZWROb25FbXB0eVN0cmluZyxcbiAgLyoqIEdpdExhYiBuZWVkcyBib3RoIG5hbWVzIGZvciByZW5hbWVkLWZpbGUgY29tbWVudHM7IGhvc3RzIHVzaW5nIG9uZSBwYXRoIGlnbm9yZSB0aGlzLiAqL1xuICBvbGRQYXRoOiBTY2hlbWEub3B0aW9uYWwoVHJpbW1lZE5vbkVtcHR5U3RyaW5nKSxcbiAgcG9zaXRpb246IFB1bGxSZXF1ZXN0UmV2aWV3UG9zaXRpb24sXG4gIC8qKlxuICAgKiBUaGUgZmlyc3QgbGluZSBvZiBhIGNvbW1lbnQgb24gYSByYW5nZSwgd2hpY2ggZW5kcyBhdCBgcG9zaXRpb25gLiBTZW50IG9ubHkgdG8gYSBob3N0IHdob3NlXG4gICAqIGNhcGFiaWxpdGllcyBpbmNsdWRlIGByZXZpZXcucmFuZ2VDb21tZW50YC5cbiAgICovXG4gIHN0YXJ0UG9zaXRpb246IFNjaGVtYS5vcHRpb25hbChQdWxsUmVxdWVzdFJldmlld1Bvc2l0aW9uKSxcbiAgYm9keTogQ29tbWVudEJvZHksXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudERyYWZ0ID0gdHlwZW9mIFB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudERyYWZ0LlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdFN1Ym1pdFJldmlld0lucHV0ID0gU2NoZW1hLlN0cnVjdCh7XG4gIC4uLlB1bGxSZXF1ZXN0UmVmLmZpZWxkcyxcbiAgdmVyZGljdDogUHVsbFJlcXVlc3RSZXZpZXdWZXJkaWN0LFxuICBib2R5OiBTY2hlbWEuU3RyaW5nLmNoZWNrKFNjaGVtYS5pc01heExlbmd0aCg2NV81MzYpKSxcbiAgY29tbWVudHM6IFNjaGVtYS5BcnJheShQdWxsUmVxdWVzdFJldmlld0NvbW1lbnREcmFmdCksXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0U3VibWl0UmV2aWV3SW5wdXQgPSB0eXBlb2YgUHVsbFJlcXVlc3RTdWJtaXRSZXZpZXdJbnB1dC5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RUaHJlYWRDb21tZW50c0lucHV0ID0gU2NoZW1hLlN0cnVjdCh7XG4gIC4uLlB1bGxSZXF1ZXN0UmVmLmZpZWxkcyxcbiAgdGhyZWFkSWQ6IFRyaW1tZWROb25FbXB0eVN0cmluZyxcbiAgY3Vyc29yOiBUcmltbWVkTm9uRW1wdHlTdHJpbmcsXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0VGhyZWFkQ29tbWVudHNJbnB1dCA9IHR5cGVvZiBQdWxsUmVxdWVzdFRocmVhZENvbW1lbnRzSW5wdXQuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0VGhyZWFkQ29tbWVudHNSZXN1bHQgPSBTY2hlbWEuU3RydWN0KHtcbiAgY29tbWVudHM6IFNjaGVtYS5BcnJheShQdWxsUmVxdWVzdFRocmVhZENvbW1lbnQpLFxuICBuZXh0Q3Vyc29yOiBTY2hlbWEuTnVsbE9yKFRyaW1tZWROb25FbXB0eVN0cmluZyksXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0VGhyZWFkQ29tbWVudHNSZXN1bHQgPSB0eXBlb2YgUHVsbFJlcXVlc3RUaHJlYWRDb21tZW50c1Jlc3VsdC5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RUaHJlYWRSZXBseUlucHV0ID0gU2NoZW1hLlN0cnVjdCh7XG4gIC4uLlB1bGxSZXF1ZXN0UmVmLmZpZWxkcyxcbiAgdGhyZWFkSWQ6IFRyaW1tZWROb25FbXB0eVN0cmluZyxcbiAgYm9keTogQ29tbWVudEJvZHksXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0VGhyZWFkUmVwbHlJbnB1dCA9IHR5cGVvZiBQdWxsUmVxdWVzdFRocmVhZFJlcGx5SW5wdXQuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFB1bGxSZXF1ZXN0VGhyZWFkUmVzb2x1dGlvbklucHV0ID0gU2NoZW1hLlN0cnVjdCh7XG4gIC4uLlB1bGxSZXF1ZXN0UmVmLmZpZWxkcyxcbiAgdGhyZWFkSWQ6IFRyaW1tZWROb25FbXB0eVN0cmluZyxcbiAgcmVzb2x2ZWQ6IFNjaGVtYS5Cb29sZWFuLFxufSk7XG5leHBvcnQgdHlwZSBQdWxsUmVxdWVzdFRocmVhZFJlc29sdXRpb25JbnB1dCA9IHR5cGVvZiBQdWxsUmVxdWVzdFRocmVhZFJlc29sdXRpb25JbnB1dC5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RSZWFjdGlvbklucHV0ID0gU2NoZW1hLlN0cnVjdCh7XG4gIC4uLlB1bGxSZXF1ZXN0UmVmLmZpZWxkcyxcbiAgc3ViamVjdElkOiBTY2hlbWEub3B0aW9uYWwoVHJpbW1lZE5vbkVtcHR5U3RyaW5nKSxcbiAgY29udGVudDogUHVsbFJlcXVlc3RSZWFjdGlvbkNvbnRlbnQsXG4gIHJlYWN0ZWQ6IFNjaGVtYS5Cb29sZWFuLFxufSk7XG5leHBvcnQgdHlwZSBQdWxsUmVxdWVzdFJlYWN0aW9uSW5wdXQgPSB0eXBlb2YgUHVsbFJlcXVlc3RSZWFjdGlvbklucHV0LlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdFJldmlld2VyUmVxdWVzdElucHV0ID0gU2NoZW1hLlN0cnVjdCh7XG4gIC4uLlB1bGxSZXF1ZXN0UmVmLmZpZWxkcyxcbiAgcmV2aWV3ZXJzOiBTY2hlbWEuQXJyYXkoXG4gICAgU2NoZW1hLlN0cnVjdCh7IGlkOiBUcmltbWVkTm9uRW1wdHlTdHJpbmcsIGtpbmQ6IFB1bGxSZXF1ZXN0UmV2aWV3ZXJLaW5kIH0pLFxuICApLmNoZWNrKFNjaGVtYS5pc01pbkxlbmd0aCgxKSwgU2NoZW1hLmlzTWF4TGVuZ3RoKDI1KSksXG4gIHJlcXVlc3RlZDogU2NoZW1hLkJvb2xlYW4sXG59KTtcbmV4cG9ydCB0eXBlIFB1bGxSZXF1ZXN0UmV2aWV3ZXJSZXF1ZXN0SW5wdXQgPSB0eXBlb2YgUHVsbFJlcXVlc3RSZXZpZXdlclJlcXVlc3RJbnB1dC5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHVsbFJlcXVlc3RMYWJlbENoYW5nZUlucHV0ID0gU2NoZW1hLlN0cnVjdCh7XG4gIC4uLlB1bGxSZXF1ZXN0UmVmLmZpZWxkcyxcbiAgbGFiZWxzOiBTY2hlbWEuQXJyYXkoVHJpbW1lZE5vbkVtcHR5U3RyaW5nKS5jaGVjayhTY2hlbWEuaXNNaW5MZW5ndGgoMSksIFNjaGVtYS5pc01heExlbmd0aCgyNSkpLFxuICBhcHBsaWVkOiBTY2hlbWEuQm9vbGVhbixcbn0pO1xuZXhwb3J0IHR5cGUgUHVsbFJlcXVlc3RMYWJlbENoYW5nZUlucHV0ID0gdHlwZW9mIFB1bGxSZXF1ZXN0TGFiZWxDaGFuZ2VJbnB1dC5UeXBlO1xuXG4vKipcbiAqIFRoZSBuYW1lcyBrZWVwIHRoZWlyIGBjbGktYCBwcmVmaXggZm9yIHdpcmUgY29tcGF0aWJpbGl0eTsgZm9yIGEgaG9zdCByZWFkIHdpdGggYSBjcmVkZW50aWFsXG4gKiByYXRoZXIgdGhhbiBhIHRvb2wgdGhleSBtZWFuIFwibm8gY3JlZGVudGlhbFwiIGFuZCBcImEgcmVmdXNlZCBjcmVkZW50aWFsXCIuXG4gKi9cbmV4cG9ydCBjb25zdCBQdWxsUmVxdWVzdFVuYXZhaWxhYmxlUmVhc29uID0gU2NoZW1hLkxpdGVyYWxzKFtcbiAgXCJjbGktbWlzc2luZ1wiLFxuICBcImNsaS11bmF1dGhlbnRpY2F0ZWRcIixcbiAgXCJwcm92aWRlci11bnN1cHBvcnRlZFwiLFxuXSk7XG5leHBvcnQgdHlwZSBQdWxsUmVxdWVzdFVuYXZhaWxhYmxlUmVhc29uID0gdHlwZW9mIFB1bGxSZXF1ZXN0VW5hdmFpbGFibGVSZWFzb24uVHlwZTtcblxuLyoqXG4gKiBgYXV0aG9yOm1lYCBuYW1lcyB3aG9ldmVyIGlzIHNpZ25lZCBpbiB0byB0aGUgaG9zdCBiZWluZyByZWFkLCBHaXRIdWIncyBgQG1lYCBzcGVsbGVkIGVpdGhlclxuICogd2F5LiBBIGhvc3QncyBvd24gc2VhcmNoIHdvdWxkIGFuc3dlciBpdCwgYnV0IHRoZSBwYWdlIGFuZCB0aGUgc2VydmVyIGJvdGggcmUtY2hlY2sgYW4gYXV0aG9yXG4gKiBhZ2FpbnN0IHRoZSByb3cncyBsb2dpbiwgc28gdGhlIG5hbWUgaXMgcmVzb2x2ZWQgYmVmb3JlIGVpdGhlciBjb21wYXJpc29uIHJhdGhlciB0aGFuIGJlaW5nXG4gKiBtYXRjaGVkIGFzIHRoZSBsaXRlcmFsIGxvZ2luIFwibWVcIi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVQdWxsUmVxdWVzdEF1dGhvckZpbHRlcihcbiAgYXV0aG9yOiBzdHJpbmcsXG4gIHZpZXdlcjogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbik6IHN0cmluZyB7XG4gIGNvbnN0IHRyaW1tZWQgPSBhdXRob3IudHJpbSgpO1xuICBpZiAoIS9eQD9tZSQvaS50ZXN0KHRyaW1tZWQpKSByZXR1cm4gdHJpbW1lZDtcbiAgcmV0dXJuIHZpZXdlciA9PT0gbnVsbCB8fCB2aWV3ZXIgPT09IHVuZGVmaW5lZCB8fCB2aWV3ZXIudHJpbSgpLmxlbmd0aCA9PT0gMCA/IHRyaW1tZWQgOiB2aWV3ZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBQdWxsUmVxdWVzdFVuYXZhaWxhYmxlRXJyb3IgZXh0ZW5kcyBTY2hlbWEuVGFnZ2VkRXJyb3I8UHVsbFJlcXVlc3RVbmF2YWlsYWJsZUVycm9yPigpKFxuICBcIlB1bGxSZXF1ZXN0VW5hdmFpbGFibGVFcnJvclwiLFxuICB7XG4gICAgcmVhc29uOiBQdWxsUmVxdWVzdFVuYXZhaWxhYmxlUmVhc29uLFxuICAgIHByb3ZpZGVyOiBTY2hlbWEub3B0aW9uYWwoU291cmNlQ29udHJvbFByb3ZpZGVyS2luZCksXG4gICAgLyoqXG4gICAgICogV2hhdCB0aGUgaG9zdCBuZWVkcyBvbiB0aGUgc2VydmVyLCBpbiBpdHMgb3duIHdvcmRzLiBBYnNlbnQgZnJvbSBvbGRlciBzZXJ2ZXJzLCB3aGljaFxuICAgICAqIHNoaXBwZWQgbm8gc3VjaCBmaWVsZCwgYW5kIGZvciBhIGhvc3QgdGhhdCBuYW1lcyBub3RoaW5nLlxuICAgICAqL1xuICAgIHJlcXVpcmVtZW50OiBTY2hlbWEub3B0aW9uYWwoVHJpbW1lZE5vbkVtcHR5U3RyaW5nKSxcbiAgICBjYXVzZTogU2NoZW1hLm9wdGlvbmFsKFNjaGVtYS5EZWZlY3QoKSksXG4gIH0sXG4gIHsgaHR0cEFwaVN0YXR1czogNTAzIH0sXG4pIHtcbiAgW0h0dHBTZXJ2ZXJSZXNwb25kYWJsZS5zeW1ib2xdKCkge1xuICAgIHJldHVybiBIdHRwU2VydmVyUmVzcG9uc2Uuc2NoZW1hSnNvbihQdWxsUmVxdWVzdFVuYXZhaWxhYmxlRXJyb3IpKHRoaXMsIHsgc3RhdHVzOiA1MDMgfSk7XG4gIH1cblxuICBvdmVycmlkZSBnZXQgbWVzc2FnZSgpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodGhpcy5yZWFzb24pIHtcbiAgICAgIGNhc2UgXCJjbGktbWlzc2luZ1wiOlxuICAgICAgICByZXR1cm4gdGhpcy5yZXF1aXJlbWVudCA/PyBcIlRoZSB0b29sIHRoaXMgaG9zdCBpcyByZWFkIHRocm91Z2ggaXMgbm90IGluc3RhbGxlZCBvciBzZXQgdXAuXCI7XG4gICAgICBjYXNlIFwiY2xpLXVuYXV0aGVudGljYXRlZFwiOlxuICAgICAgICByZXR1cm4gdGhpcy5yZXF1aXJlbWVudCA/PyBcIlRoaXMgaG9zdCBoYXMgbm8gd29ya2luZyBjcmVkZW50aWFscy5cIjtcbiAgICAgIGNhc2UgXCJwcm92aWRlci11bnN1cHBvcnRlZFwiOlxuICAgICAgICByZXR1cm4gXCJDaGFuZ2UgcmVxdWVzdHMgY2Fubm90IGJlIGJyb3dzZWQgZm9yIHRoaXMgcHJvamVjdCdzIGhvc3QgeWV0LlwiO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUHVsbFJlcXVlc3RPcGVyYXRpb25FcnJvciBleHRlbmRzIFNjaGVtYS5UYWdnZWRFcnJvcjxQdWxsUmVxdWVzdE9wZXJhdGlvbkVycm9yPigpKFxuICBcIlB1bGxSZXF1ZXN0T3BlcmF0aW9uRXJyb3JcIixcbiAge1xuICAgIG9wZXJhdGlvbjogU2NoZW1hLlN0cmluZyxcbiAgICBkZXRhaWw6IFRyaW1tZWROb25FbXB0eVN0cmluZyxcbiAgICByZWFzb246IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuTGl0ZXJhbChcIm5vdC1mb3VuZFwiKSksXG4gICAgY2F1c2U6IFNjaGVtYS5vcHRpb25hbChTY2hlbWEuRGVmZWN0KCkpLFxuICB9LFxuICB7IGh0dHBBcGlTdGF0dXM6IDUwMiB9LFxuKSB7XG4gIFtIdHRwU2VydmVyUmVzcG9uZGFibGUuc3ltYm9sXSgpIHtcbiAgICByZXR1cm4gSHR0cFNlcnZlclJlc3BvbnNlLnNjaGVtYUpzb24oUHVsbFJlcXVlc3RPcGVyYXRpb25FcnJvcikodGhpcywgeyBzdGF0dXM6IDUwMiB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldCBtZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBQdWxsIHJlcXVlc3Qgb3BlcmF0aW9uICR7dGhpcy5vcGVyYXRpb259IGZhaWxlZDogJHt0aGlzLmRldGFpbH1gO1xuICB9XG59XG4iXSwiZmlsZSI6Ii9AZnMvaG9tZS91YnVudHUvd3QvcHItMjQyNjMvcGFja2FnZXMvY29udHJhY3RzL3NyYy9wdWxsUmVxdWVzdC50cyJ9

//# vitestCache=W3siZmlsZSI6IjEiLCJpZCI6IjEiLCJ1cmwiOiIyIiwiaW1wb3J0cyI6IjMiLCJtYXBwaW5ncyI6ZmFsc2UsImRlcHMiOiI0IiwiZHluYW1pY0RlcHMiOiI1Iiwic3RhdGljTW9ja3MiOm51bGx9LCIvaG9tZS91YnVudHUvd3QvcHItMjQyNjMvcGFja2FnZXMvY29udHJhY3RzL3NyYy9wdWxsUmVxdWVzdC50cyIsIi9AZnMvaG9tZS91YnVudHUvd3QvcHItMjQyNjMvcGFja2FnZXMvY29udHJhY3RzL3NyYy9wdWxsUmVxdWVzdC50cyIseyJ1cmxzIjoiNiIsImlkcyI6IjcifSxbIjgiLCI5IiwiMTAiLCIxMSIsIjEyIiwiMTMiXSxbXSxbIjgiLCI5IiwiMTAiLCIxMSIsIjEyIiwiMTMiXSx7fSwiL0Bmcy9ob21lL3VidW50dS93dC9wci0yNDI2My9ub2RlX21vZHVsZXMvLnBucG0vZWZmZWN0QDQuMC41L25vZGVfbW9kdWxlcy9lZmZlY3QvZGlzdC9TY2hlbWEuanMiLCIvQGZzL2hvbWUvdWJ1bnR1L3d0L3ByLTI0MjYzL25vZGVfbW9kdWxlcy8ucG5wbS9lZmZlY3RANC4wLjUvbm9kZV9tb2R1bGVzL2VmZmVjdC9kaXN0L0VmZmVjdC5qcyIsIi9AZnMvaG9tZS91YnVudHUvd3QvcHItMjQyNjMvbm9kZV9tb2R1bGVzLy5wbnBtL2VmZmVjdEA0LjAuNS9ub2RlX21vZHVsZXMvZWZmZWN0L2Rpc3QvaHR0cC9IdHRwU2VydmVyUmVzcG9uZGFibGUuanMiLCIvQGZzL2hvbWUvdWJ1bnR1L3d0L3ByLTI0MjYzL25vZGVfbW9kdWxlcy8ucG5wbS9lZmZlY3RANC4wLjUvbm9kZV9tb2R1bGVzL2VmZmVjdC9kaXN0L2h0dHAvSHR0cFNlcnZlclJlc3BvbnNlLmpzIiwiL0Bmcy9ob21lL3VidW50dS93dC9wci0yNDI2My9wYWNrYWdlcy9jb250cmFjdHMvc3JjL2Jhc2VTY2hlbWFzLnRzIiwiL0Bmcy9ob21lL3VidW50dS93dC9wci0yNDI2My9wYWNrYWdlcy9jb250cmFjdHMvc3JjL3NvdXJjZUNvbnRyb2wudHMiXQ==