.gform_wrapper div.ginput_container.ginput_complex label:not(:has(input[type=checkbox])), .gform_wrapper div.gfield .gform-field-label, .gform_wrapper label:not(.woocommerce-form__label-for-checkbox):not(.gform-field-label):not(:has(input[type=checkbox])) {
	padding: 0 0.5rem;
	position: absolute;
	z-index: 1;
	top: -0.5625rem;
	left: 0.5rem;
	color: #000;
	text-transform: uppercase;
	background-color: #fff;
	font-size: 0.6875rem;
	line-height: 1.5454545455;
	letter-spacing: 0.025rem;
}
.gform_wrapper .ginput_container_checkbox label, .gform_wrapper label:has(input[type=checkbox]) {
	font-size: 0.75rem;
	line-height: 1.5;
	letter-spacing: 0.0075rem;
}
.gform_wrapper .ginput_container_checkbox label input, .gform_wrapper label:has(input[type=checkbox]) input {
	width: 1rem;
	height: 1rem;
	position: relative;
	z-index: 2;
	cursor: pointer;
	opacity: 0;
}
.gform_wrapper .ginput_container_checkbox label .wpcf7-list-item-label, .gform_wrapper label:has(input[type=checkbox]) .wpcf7-list-item-label {
	display: block;
}
.gform_wrapper .ginput_container_checkbox label::after, .gform_wrapper label:has(input[type=checkbox])::after {
	content: "";
	display: block;
	width: 1rem;
	height: 1rem;
	position: absolute;
	top: 0;
	left: 0;
	border: 1px solid var(--wp--preset--color--secondary-90);
	border-radius: 0.125rem;
}
.gform_wrapper .ginput_container_checkbox label::before, .gform_wrapper label:has(input[type=checkbox])::before {
	content: "";
	display: block;
	width: 0.5rem;
	height: 0.5rem;
	position: absolute;
	top: 0.25rem;
	left: 0.25rem;
	border-radius: 0.0625rem;
	background: var(--wp--preset--color--secondary-90);
	opacity: 0;
}
.gform_wrapper .ginput_container_checkbox label:has(input:checked)::before, .gform_wrapper label:has(input:checked):has(input[type=checkbox])::before {
	opacity: 1;
}
.gform_wrapper .form__row {
	position: relative;
}
.gform_wrapper .form__row .asterisk {
	color: #b30c00;
}
.gform_wrapper input:not([type=checkbox]),
.gform_wrapper textarea:not([type=checkbox]) {
	width: 100%;
	max-width: 100%;
	padding: 0.6875rem 1rem 0.6875rem;
	margin: 0;
	border: 1px solid var(--wp--preset--color--neutral-90);
	border-radius: 0.375rem;
}
.gform_wrapper input:not([type=checkbox])::placeholder,
.gform_wrapper textarea:not([type=checkbox])::placeholder {
	color: var(--wp--preset--color--neutral-20);
}
.gform_wrapper textarea {
	height: 6.25rem;
	width: 100% !important;
}
.gform_wrapper label:has(input[type=checkbox]) {
	display: grid;
	align-items: flex-start;
	grid-template-columns: 1rem 1fr;
	gap: 0.5rem;
}
.gform_wrapper div.ginput_container.ginput_complex {
	display: flex;
	flex-direction: column;
	gap: 1.125rem;
}
@media (min-width: 768px) {
	.gform_wrapper div.ginput_container.ginput_complex {
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: space-between;
		gap: 1.4375rem;
	}
}
.gform_wrapper div.ginput_container.ginput_complex input, .gform_wrapper div.ginput_container.ginput_complex select, .gform_wrapper div.ginput_container.ginput_complex textarea {
	width: 100%;
	max-width: 100%;
}
.gform_wrapper div.ginput_container.ginput_complex > span {
	position: relative;
	display: inline-block;
	max-width: 100%;
	width: 100%;
}
@media (min-width: 768px) {
	.gform_wrapper div.ginput_container.ginput_complex > span {
		max-width: calc(50% - 13px);
	}
}
.gform_wrapper input,
.gform_wrapper select,
.gform_wrapper textarea {
	font-size: 0.875rem;
	line-height: 1.3125rem;
}
@media (min-width: 577px) {
	.gform_wrapper input,
	.gform_wrapper select,
	.gform_wrapper textarea {
		background-position-x: calc(100% - 0.625rem);
	}
}
.gform_wrapper .ginput_container_checkbox input {
	position: relative;
	z-index: 2;
	cursor: pointer;
	opacity: 0;
}
.gform_wrapper .ginput_container_checkbox label {
	display: block;
	padding: 0;
	position: relative;
	top: unset;
	left: unset;
	text-transform: unset;
}
.gform_wrapper .ginput_container_checkbox label::after {
	left: -1.5rem;
}
.gform_wrapper .ginput_container_checkbox label::before {
	left: -1.25rem;
}
.gform_wrapper .gchoice {
	display: grid;
	grid-template-columns: 1rem 1fr;
	max-width: 20.625rem;
	gap: 0.5rem;
}
@media (min-width: 400px) {
	.gform_wrapper .gchoice {
		max-width: 100%;
	}
}
.gform_wrapper .gchoice:has(input:checked) label::before {
	opacity: 1;
}
.gform_wrapper .gform_required_legend {
	display: none;
}
.gform_wrapper .gform_fields {
	display: flex;
	flex-direction: column;
	gap: 1.125rem;
}
@media (min-width: 768px) {
	.gform_wrapper .gform_fields {
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: space-between;
		gap: 1.4375rem;
	}
}
.gform_wrapper .gsection {
	padding-block-end: 0 !important;
	border-block-end: none !important;
}
@media (max-width: 767px) {
	.gform_wrapper .gsection {
		border-top: 1px solid var(--wp--preset--color--secondary-95) !important;
		padding-top: 1rem !important;
		margin-bottom: 0.3125rem !important;
	}
}
@media (min-width: 768px) {
	.gform_wrapper .gsection:not(:first-child) {
		margin-top: 0.875rem;
	}
}
.gform_wrapper .gsection--border-top {
	border-top: 1px solid var(--wp--preset--color--secondary-95) !important;
	padding-top: 1rem !important;
}
@media (min-width: 768px) {
	.gform_wrapper .gsection--border-top {
		padding-top: 2rem !important;
		margin-top: 1rem !important;
	}
}
.gform_wrapper .gsection_title {
	font-size: 1rem;
	line-height: 1.375;
	letter-spacing: 0.00375rem;
	font-weight: 500;
}
@media (min-width: 768px) {
	.gform_wrapper .gsection_title {
		font-size: 1.375rem;
		line-height: 1.4090909091;
		letter-spacing: 0.00375rem;
	}
}
.gform_wrapper .gfield {
	padding: 0;
	position: relative;
	margin: 0;
	border: none;
	order: 31;
}
@media (min-width: 768px) {
	.gform_wrapper .gfield {
		flex: 0 0 100%;
		order: unset;
		max-width: 100%;
	}
}
.gform_wrapper .gfield legend {
	display: none;
}
.gform_wrapper .gfield.gfield--input-type-checkbox legend, .gform_wrapper .gfield.gfield--input-type-radio legend {
	display: block;
	margin-bottom: 0.3125rem;
}
.gform_wrapper .gfield .gfield_description {
	color: var(--wp--preset--color--neutral-0);
	font-size: 0.75rem;
	line-height: 1.5;
	letter-spacing: 0.0075rem;
	margin-top: 0.5rem;
}
.gform_wrapper .gfield .gfield_description.validation_message {
	color: #e41d1d;
}
.gform_wrapper .gfield--type-consent .ginput_container_consent {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
}
.gform_wrapper .gfield--type-consent:has(input:checked) label::after {
	opacity: 1;
}
.gform_wrapper .gfield--type-consent input {
	width: 1rem;
	height: 1rem;
	z-index: 1;
	margin: 0;
	cursor: pointer;
	opacity: 0;
}
.gform_wrapper .gfield--type-consent label {
	font-size: 0.75rem;
	line-height: 1.5;
	letter-spacing: 0.0075rem;
	padding-left: 0.25rem;
	color: #000;
}
.gform_wrapper .gfield--type-consent label::before {
	content: "";
	width: 1rem;
	height: 1rem;
	position: absolute;
	top: 0.1875rem;
	left: 0;
	border: 1px solid var(--wp--preset--color--neutral-90);
	border-radius: 0.125rem;
	background-color: #fff;
}
.gform_wrapper .gfield--type-consent label::after {
	content: "";
	width: 1rem;
	height: 1rem;
	position: absolute;
	top: 0.1875rem;
	left: 0;
	border-radius: 0.125rem;
	background-color: var(--wp--preset--color--primary);
	background-image: url("data:image/svg+xml;utf8,<svg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><rect width='16' height='16' rx='2' fill='%23006631'/><g clip-path='url(%23a)'><path d='M13.72 3.96a.95.95 0 0 0-1.34 0l-6.06 6.06-2.7-2.7a.95.95 0 1 0-1.34 1.35l3.36 3.37a.95.95 0 0 0 1.35 0l6.73-6.73a.95.95 0 0 0 0-1.35' fill='%23fff'/></g><defs><clipPath id='a'><path fill='%23fff' d='M2 2h12v12H2z'/></clipPath></defs></svg>");
	opacity: 0;
}
@media (min-width: 768px) {
	.gform_wrapper .gfield--width-half {
		max-width: calc(50% - 0.75rem);
	}
}
.gform_wrapper .gfield:has(.gfield_description) {
	display: flex;
	flex-direction: column;
}
.gform_wrapper .gfield:has(.gfield_description) .gfield_description {
	order: 5;
}
.gform_wrapper select {
	padding: 0.6875rem 1rem 0.6875rem;
	width: 100%;
	color: var(--wp--preset--color--neutral-0);
	position: relative;
	border: 1px solid var(--wp--preset--color--secondary-95);
	border-radius: 0.25rem;
	background-color: var(--wp--preset--color--light);
	background-image: url("../../../../images/svg/arrow-down.svg");
	background-repeat: no-repeat;
	background-position-x: calc(100% - 0.4375rem);
	background-position-y: 50%;
	-moz-appearance: none;
	-webkit-appearance: none;
	appearance: none;
}
@media (min-width: 577px) {
	.gform_wrapper select {
		background-position-x: calc(100% - 1.0625rem);
	}
}
.gform_wrapper select::after {
	content: "";
	pointer-events: none;
	position: absolute;
	top: 50%;
	right: 1rem;
	transform: translateY(-50%);
}
.gform_wrapper select option {
	color: var(--wp--preset--color--neutral-0);
}
.gform_wrapper .input_mobile_order_1 {
	order: 1;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_1 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_2 {
	order: 2;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_2 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_3 {
	order: 3;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_3 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_4 {
	order: 4;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_4 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_5 {
	order: 5;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_5 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_6 {
	order: 6;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_6 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_7 {
	order: 7;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_7 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_8 {
	order: 8;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_8 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_9 {
	order: 9;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_9 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_10 {
	order: 10;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_10 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_11 {
	order: 11;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_11 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_12 {
	order: 12;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_12 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_13 {
	order: 13;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_13 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_14 {
	order: 14;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_14 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_15 {
	order: 15;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_15 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_16 {
	order: 16;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_16 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_17 {
	order: 17;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_17 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_18 {
	order: 18;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_18 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_19 {
	order: 19;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_19 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_20 {
	order: 20;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_20 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_21 {
	order: 21;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_21 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_22 {
	order: 22;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_22 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_23 {
	order: 23;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_23 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_24 {
	order: 24;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_24 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_25 {
	order: 25;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_25 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_26 {
	order: 26;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_26 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_27 {
	order: 27;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_27 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_28 {
	order: 28;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_28 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_29 {
	order: 29;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_29 {
		order: unset;
	}
}
.gform_wrapper .input_mobile_order_30 {
	order: 30;
}
@media (min-width: 768px) {
	.gform_wrapper .input_mobile_order_30 {
		order: unset;
	}
}
.gform_wrapper .gfield_required {
	color: #b30c00;
	margin-left: 0.125rem;
}
.gform_wrapper .gfield_error input,
.gform_wrapper .gfield_error textarea {
	border-color: #e41d1d;
}
.gform_wrapper .gfield_error .ginput_container_checkbox label::after {
	border-color: #e41d1d;
}
.gform_wrapper .wpcf7-list-item {
	margin: 0;
}
.gform_wrapper body:not(.using-mouse) label:has(input[type=checkbox]:focus)::after {
	outline: 4px solid var(--wp--preset--color--primary);
}
.gform_wrapper .gform_validation_container {
	display: none !important;
}
.gform_wrapper .gform_button {
	margin-top: 1rem !important;
	background-color: var(--wp--preset--color--primary);
	color: white;
	font-size: 1rem;
	line-height: 1.5;
	letter-spacing: 0.03125rem;
	padding: 0.75rem 3.5625rem !important;
	display: inline-block;
	width: 100%;
	transition: opacity 0.3s ease;
}
@media (min-width: 768px) {
	.gform_wrapper .gform_button {
		margin-top: 2rem !important;
		width: auto !important;
	}
}
.gform_wrapper .gform_button:hover {
	opacity: 0.8;
}
.gform_wrapper .ginput_preview {
	display: flex;
	flex-flow: row wrap;
	align-items: center;
	gap: 0.5rem;
}
.gform_wrapper .gform_delete_file {
	background-color: transparent;
	border: none;
	padding: 0;
	width: 1.5rem;
	height: 1.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
}

.gform_validation_errors {
	padding: 0.75rem 1rem;
	margin-top: 0.75rem;
	margin-bottom: 2rem;
	color: #fff;
	border-radius: 0.375rem;
	background-color: #d84e4e;
}
.gform_validation_errors:focus, .gform_validation_errors:focus-visible, .gform_validation_errors:active {
	outline: none !important;
}
.gform_validation_errors h2,
.gform_validation_errors ul,
.gform_validation_errors ol,
.gform_validation_errors p {
	font-weight: 400;
	font-size: 0.75rem;
	line-height: 1.5;
	letter-spacing: 0.0075rem;
}
.gform_validation_errors a {
	color: #fff;
}
.gform_validation_errors ul,
.gform_validation_errors ol {
	padding: 0 0 0 1rem;
}

body:not(.using-mouse) .ginput_container_checkbox input:focus + label::after {
	outline: 2px solid var(--wp--preset--color--primary);
}
body:not(.using-mouse) .ginput_container_consent input:focus + label::before {
	outline: 2px solid var(--wp--preset--color--primary);
}

div.ui-datepicker table.ui-datepicker-calendar td:first-child .ui-state-active, div.ui-datepicker table.ui-datepicker-calendar td:last-child .ui-state-active {
	width: 100%;
}
div.ui-datepicker table.ui-datepicker-calendar .ui-state-active {
	margin-left: 0;
	margin-right: 0;
}

.gfield_consent_description {
	max-height: 18.75rem;
	overflow: auto;
	background-color: rgba(230, 230, 230, 0.3);
	padding: 1rem;
	border-radius: 0.5rem;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2FwcC90aGVtZXMvYWdyb3BvbHNrYS9hc3NldHMvY3NzL3NoYXJlZC9ncmF2aXR5Zm9ybXMvYnVpbGQvc3R5bGUubWluLmNzcyIsIm1hcHBpbmdzIjoiQUFFQTtDQUNDO0NBRUE7Q0FDQTtDQUNBO0NBQ0E7Q0FFQTtDQUNBO0NBRUE7Q0M4R0M7Q0FwQ0M7Q0FRQTtBQ25GSDtBRk1BO0NDeUdFO0NBcENDO0NBUUE7QUM5RUg7QUZZQztDQUNDO0NBQ0E7Q0FFQTtDQUNBO0NBRUE7Q0FDQTtBRVpGO0FGZUM7Q0FDQztBRWJGO0FGZ0JDO0NBQ0M7Q0FFQTtDQUVBO0NBQ0E7Q0FFQTtDQUNBO0NBQ0E7Q0FFQTtDQUNBO0FFbEJGO0FGcUJDO0NBQ0M7Q0FFQTtDQUVBO0NBQ0E7Q0FFQTtDQUNBO0NBQ0E7Q0FFQTtDQUNBLGtER0pvQjtDSEtwQjtBRXZCRjtBRjJCRTtDQUNDO0FFekJIO0FGOEJBO0NBQ0M7QUU1QkQ7QUY4QkM7Q0FDQztBRTVCRjtBRmtDQzs7Q0FDQztDQUNBO0NBQ0E7Q0FFQTtDQUVBO0NBQ0E7QUVqQ0Y7QUZtQ0U7O0NBQ0MsMkNHaENpQjtBREFwQjtBRnFDQTtDQUNDO0NBQ0E7QUVuQ0Q7QUYrQ0M7Q0FDQztDQUNBO0NBRUE7Q0FFQTtBRS9DRjtBRjJEQTtDQUNDO0NBQ0E7Q0FFQTtBRTFERDtBRXdlRTtDSmxiRjtFQU9FO0VBQ0E7RUFDQTtFQUNBO0NFekREO0FBQ0Q7QUYyREM7Q0FDQztDQUNBO0FFekRGO0FGMkRDO0NBQ0M7Q0FDQTtDQUNBO0NBQ0E7QUV6REY7QUVzZEU7Q0pqYUQ7RUFPRTtDRXhERjtBQUNEO0FGd0VBOzs7Q0FHQztDQUNBO0FFdEVEO0FFMmNFO0NKellGOzs7RUFNRTtDRWxFRDtBQUNEO0FGc0VDO0NBQ0M7Q0FDQTtDQUVBO0NBQ0E7QUVyRUY7QUZ3RUM7Q0FDQztDQUVBO0NBRUE7Q0FDQTtDQUNBO0NBRUE7QUV6RUY7QUY2RUU7Q0FDQztBRTNFSDtBRjhFRTtDQUNDO0FFNUVIO0FGaUZBO0NBQ0M7Q0FFQTtDQUVBO0NBRUE7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QTtDQXBDQztDQVFBO0NDb0xEO0NBQ0E7Q0FDQTtDQUNBO0FBeVVGO0FFL0JFO0NGbFREO0VBV0U7RUFDQTtDQTBVRjtBQUNEO0FBeFVFO0NBQ0M7QUEwVUg7QUF0VUM7Q0FDQztDQUNBO0NBQ0E7Q0FDQTtBQXdVRjtBQXJVQztDQUNDO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7QUF1VUY7O0FBblVBO0NBQ0M7Q0FFQTtDQUNBO0NBRUE7Q0FFQTtDQUNBO0FBbVVEO0FBalVDO0NBR0M7QUFpVUY7QUE5VEM7Ozs7Q0FJQztDRC9NQTtDQXBDQztDQVFBO0FDOGlCSDtBQXZUQztDQUNDO0FBeVRGO0FBdFRDOztDQUVDO0FBd1RGOztBQWhUSTtDQUNDO0FBbVRMO0FBMVNJO0NBQ0M7QUE0U0w7O0FBaFNHO0NBQ0M7QUFtU0o7QUE5UkM7Q0FDQztDQUNBO0FBZ1NGOztBQTNSQTtDQUNDO0NBQ0c7Q0FDQTtDQUNBO0NBQ0E7QUE4UkosQyIsInNvdXJjZXMiOlsid2VicGFjazovL2FtYmkvLi93ZWIvYXBwL3RoZW1lcy9hZ3JvcG9sc2thL2Fzc2V0cy9jc3Mvc2hhcmVkL2Zvcm0taW5wdXQvc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9hbWJpLy4vd2ViL2FwcC90aGVtZXMvYWdyb3BvbHNrYS9hc3NldHMvY3NzL19fc2V0dGluZ3MvX21peGlucy5zY3NzIiwid2VicGFjazovL2FtYmkvLi93ZWIvYXBwL3RoZW1lcy9hZ3JvcG9sc2thL2Fzc2V0cy9jc3Mvc2hhcmVkL2dyYXZpdHlmb3Jtcy9zdHlsZS5zY3NzIiwid2VicGFjazovL2FtYmkvLi93ZWIvYXBwL3RoZW1lcy9hZ3JvcG9sc2thL2Fzc2V0cy9jc3MvX19zZXR0aW5ncy9fdmFyaWFibGVzLnNjc3MiLCJ3ZWJwYWNrOi8vYW1iaS8uL3dlYi9hcHAvdGhlbWVzL2Fncm9wb2xza2EvYXNzZXRzL2Nzcy9fX3NldHRpbmdzL19pbmNsdWRlLW1lZGlhLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCBcIi4uLy4uLy4uLy4uL2Fzc2V0cy9jc3MvX19zZXR0aW5ncy9pbml0XCI7XHJcblxyXG4lZGVmYXVsdC1sYWJlbCB7XHJcblx0cGFkZGluZzogMCBzY3NzcmVtKDgpO1xyXG5cclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0ei1pbmRleDogMTtcclxuXHR0b3A6IHNjc3NyZW0oLTkpO1xyXG5cdGxlZnQ6IHNjc3NyZW0oOCk7XHJcblxyXG5cdGNvbG9yOiAjMDAwO1xyXG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblxyXG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblxyXG5cdEBpbmNsdWRlIGZvbnQoMTEsIDE3LCAwLjQpO1xyXG59XHJcblxyXG4lY2hlY2tib3gtaW5wdXQge1xyXG5cdEBpbmNsdWRlIGZvbnQtc2NhbGUoXHJcblx0XHRib2R5LFxyXG5cdFx0c21hbGwsXHJcblx0XHQoXHJcblx0XHRcdGxpbmU6IDE4LFxyXG5cdFx0XHRsczogMC4xMixcclxuXHRcdFx0d2VpZ2h0OiA0MDAsXHJcblx0XHQpXHJcblx0KTtcclxuXHJcblx0aW5wdXQge1xyXG5cdFx0d2lkdGg6IHNjc3NyZW0oMTYpO1xyXG5cdFx0aGVpZ2h0OiBzY3NzcmVtKDE2KTtcclxuXHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHR6LWluZGV4OiAyO1xyXG5cclxuXHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdG9wYWNpdHk6IDA7XHJcblx0fVxyXG5cclxuXHQud3BjZjctbGlzdC1pdGVtLWxhYmVsIHtcclxuXHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdH1cclxuXHJcblx0Jjo6YWZ0ZXIge1xyXG5cdFx0Y29udGVudDogXCJcIjtcclxuXHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHJcblx0XHR3aWR0aDogc2Nzc3JlbSgxNik7XHJcblx0XHRoZWlnaHQ6IHNjc3NyZW0oMTYpO1xyXG5cclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHRvcDogMDtcclxuXHRcdGxlZnQ6IDA7XHJcblxyXG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJGNvbG9yLS1zZWNvbmRhcnktOTA7XHJcblx0XHRib3JkZXItcmFkaXVzOiBzY3NzcmVtKDIpO1xyXG5cdH1cclxuXHJcblx0Jjo6YmVmb3JlIHtcclxuXHRcdGNvbnRlbnQ6IFwiXCI7XHJcblxyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblxyXG5cdFx0d2lkdGg6IHNjc3NyZW0oOCk7XHJcblx0XHRoZWlnaHQ6IHNjc3NyZW0oOCk7XHJcblxyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0dG9wOiBzY3NzcmVtKDQpO1xyXG5cdFx0bGVmdDogc2Nzc3JlbSg0KTtcclxuXHJcblx0XHRib3JkZXItcmFkaXVzOiBzY3NzcmVtKDEpO1xyXG5cdFx0YmFja2dyb3VuZDogJGNvbG9yLS1zZWNvbmRhcnktOTA7XHJcblx0XHRvcGFjaXR5OiAwO1xyXG5cdH1cclxuXHJcblx0JjpoYXMoaW5wdXQ6Y2hlY2tlZCkge1xyXG5cdFx0Jjo6YmVmb3JlIHtcclxuXHRcdFx0b3BhY2l0eTogMTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5mb3JtX19yb3cge1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcblx0LmFzdGVyaXNrIHtcclxuXHRcdGNvbG9yOiAjYjMwYzAwO1xyXG5cdH1cclxufVxyXG5cclxuaW5wdXQsXHJcbnRleHRhcmVhIHtcclxuXHQmOm5vdChbdHlwZT1cImNoZWNrYm94XCJdKSB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdG1heC13aWR0aDogMTAwJTtcclxuXHRcdHBhZGRpbmc6IHNjc3NyZW0oMTEpIHNjc3NyZW0oMTYpIHNjc3NyZW0oMTEpO1xyXG5cclxuXHRcdG1hcmdpbjogMDtcclxuXHJcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItLW5ldXRyYWwtOTA7XHJcblx0XHRib3JkZXItcmFkaXVzOiBzY3NzcmVtKDYpO1xyXG5cclxuXHRcdCY6OnBsYWNlaG9sZGVyIHtcclxuXHRcdFx0Y29sb3I6ICRjb2xvci0tbmV1dHJhbC0yMDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbnRleHRhcmVhIHtcclxuXHRoZWlnaHQ6IHNjc3NyZW0oMTAwKTtcclxuXHR3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5sYWJlbCB7XHJcblx0Jjpub3QoLndvb2NvbW1lcmNlLWZvcm1fX2xhYmVsLWZvci1jaGVja2JveCk6bm90KC5nZm9ybS1maWVsZC1sYWJlbCk6bm90KFxyXG5cdFx0XHQ6aGFzKGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSlcclxuXHRcdCkge1xyXG5cdFx0QGV4dGVuZCAlZGVmYXVsdC1sYWJlbDtcclxuXHR9XHJcbn1cclxuXHJcbmxhYmVsIHtcclxuXHQmOmhhcyhpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0pIHtcclxuXHRcdGRpc3BsYXk6IGdyaWQ7XHJcblx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuXHJcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHNjc3NyZW0oMTYpIDFmcjtcclxuXHJcblx0XHRnYXA6IHNjc3NyZW0oOCk7XHJcblxyXG5cdFx0QGV4dGVuZCAlY2hlY2tib3gtaW5wdXQ7XHJcblx0fVxyXG59XHJcblxyXG5kaXYuZ2ZpZWxkIHtcclxuXHQuZ2Zvcm0tZmllbGQtbGFiZWwge1xyXG5cdFx0QGV4dGVuZCAlZGVmYXVsdC1sYWJlbDtcclxuXHR9XHJcbn1cclxuXHJcbmRpdi5naW5wdXRfY29udGFpbmVyLmdpbnB1dF9jb21wbGV4e1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcblx0Z2FwOiBzY3NzcmVtKDE4KTtcclxuXHJcblx0QGluY2x1ZGUgbWVkaWEoXCI+PW1kXCIpIHtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0XHRmbGV4LXdyYXA6IHdyYXA7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0XHRnYXA6IHNjc3NyZW0oMjMpO1xyXG5cdH1cclxuXHJcblx0aW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRtYXgtd2lkdGg6IDEwMCU7XHJcblx0fVxyXG5cdD4gc3BhbntcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdG1heC13aWR0aDogMTAwJTtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cclxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPj1tZFwiKSB7XHJcblx0XHRcdG1heC13aWR0aDogY2FsYyg1MCUgLSAxM3B4KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGxhYmVsIHtcclxuXHRcdCY6bm90KDpoYXMoaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdKSkge1xyXG5cdFx0XHRAZXh0ZW5kICVkZWZhdWx0LWxhYmVsO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLy8gZGl2LmdpbnB1dF9jb250YWluZXIuZ2lucHV0X2NvbnRhaW5lcl90ZXh0YXJlYXtcclxuLy8gXHR0ZXh0YXJlYXtcclxuLy8gXHRcdG1heC13aWR0aDogMTAwJTtcclxuLy8gXHR9XHJcbi8vIH1cclxuXHJcbmlucHV0LFxyXG5zZWxlY3QsXHJcbnRleHRhcmVhIHtcclxuXHRmb250LXNpemU6IHNjc3NyZW0oMTQpO1xyXG5cdGxpbmUtaGVpZ2h0OiBzY3NzcmVtKDIxKTtcclxuXHRAaW5jbHVkZSBtZWRpYShcIj5zbVwiKSB7XHJcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IGNhbGMoMTAwJSAtIHNjc3NyZW0oMTApKTtcclxuXHR9XHJcbn1cclxuXHJcbi5naW5wdXRfY29udGFpbmVyX2NoZWNrYm94IHtcclxuXHRpbnB1dCB7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHR6LWluZGV4OiAyO1xyXG5cclxuXHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdG9wYWNpdHk6IDA7XHJcblx0fVxyXG5cclxuXHRsYWJlbCB7XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHJcblx0XHRwYWRkaW5nOiAwO1xyXG5cclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdHRvcDogdW5zZXQ7XHJcblx0XHRsZWZ0OiB1bnNldDtcclxuXHJcblx0XHR0ZXh0LXRyYW5zZm9ybTogdW5zZXQ7XHJcblxyXG5cdFx0QGV4dGVuZCAlY2hlY2tib3gtaW5wdXQ7XHJcblxyXG5cdFx0Jjo6YWZ0ZXIge1xyXG5cdFx0XHRsZWZ0OiBzY3NzcmVtKC0yNCk7XHJcblx0XHR9XHJcblxyXG5cdFx0Jjo6YmVmb3JlIHtcclxuXHRcdFx0bGVmdDogc2Nzc3JlbSgtMjApO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmdjaG9pY2Uge1xyXG5cdGRpc3BsYXk6IGdyaWQ7XHJcblxyXG5cdGdyaWQtdGVtcGxhdGUtY29sdW1uczogc2Nzc3JlbSgxNikgMWZyO1xyXG5cclxuXHRtYXgtd2lkdGg6IHNjc3NyZW0oMzMwKTtcclxuXHJcblx0Z2FwOiBzY3NzcmVtKDgpO1xyXG5cclxuXHRAaW5jbHVkZSBtZWRpYShcIj49NDAwcHhcIikge1xyXG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xyXG5cdH1cclxuXHJcblx0JjpoYXMoaW5wdXQ6Y2hlY2tlZCkge1xyXG5cdFx0bGFiZWwge1xyXG5cdFx0XHQmOjpiZWZvcmUge1xyXG5cdFx0XHRcdG9wYWNpdHk6IDE7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLy9cclxuLy8gTUlYSU5TXHJcbi8vXHJcbkB1c2UgXCJzYXNzOm1hdGhcIjtcclxuQHVzZSBcInNhc3M6bWFwXCI7XHJcblxyXG5AbWl4aW4gY2Yge1xyXG5cclxuXHQmOjpiZWZvcmUsXHJcblx0Jjo6YWZ0ZXIge1xyXG5cdFx0Y29udGVudDogXCJcIjtcclxuXHJcblx0XHRkaXNwbGF5OiB0YWJsZTtcclxuXHR9XHJcblxyXG5cdCY6OmFmdGVyIHtcclxuXHRcdGNsZWFyOiBib3RoO1xyXG5cdH1cclxufVxyXG5cclxuQGZ1bmN0aW9uIHZ3LXNpemUoJHMsICR3OiAxNDQwKSB7XHJcblx0QHJldHVybiAoJHMgLyAkdykgKiAxMDArdnc7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBzY3NzcmVtKCRzaXplVmFsdWU6IDE2KSB7XHJcblx0QHJldHVybiBjYWxjKCRzaXplVmFsdWUgLyAxNikrcmVtO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gcmVsKCRzaXplLCAkcmVsKSB7XHJcblx0QHJldHVybiBjYWxjKCRzaXplIC8gJHJlbCk7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBlbSgkc2l6ZSwgJHJlbCkge1xyXG5cdEByZXR1cm4gcmVsKCRzaXplLCAkcmVsKSAqIDFlbTtcclxufVxyXG5cclxuQG1peGluIG9iamVjdC1maXQtY292ZXIoKSB7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiAxMDAlO1xyXG5cclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0dG9wOiAwO1xyXG5cdGxlZnQ6IDA7XHJcblxyXG5cdG9iamVjdC1maXQ6IGNvdmVyO1xyXG59XHJcblxyXG5AbWl4aW4gcmVzZXQtcG9zaXRpb24oKSB7XHJcblx0d2lkdGg6IGF1dG87XHJcblx0aGVpZ2h0OiBhdXRvO1xyXG5cclxuXHRwb3NpdGlvbjogc3RhdGljO1xyXG59XHJcblxyXG5AbWl4aW4gYXNwZWN0LXJhdGlvKCR3aWR0aCwgJGhlaWdodDogbnVsbCkge1xyXG5cdEBpZiAkd2lkdGggPT1cImtpbGxcIiB7XHJcblx0XHRwYWRkaW5nLXRvcDogMDtcclxuXHJcblx0XHRAaW5jbHVkZSByZXNldC1wb3NpdGlvbigpO1xyXG5cclxuXHRcdGltZyB7XHJcblx0XHRcdEBpbmNsdWRlIHJlc2V0LXBvc2l0aW9uKCk7XHJcblx0XHRcdG9iamVjdC1maXQ6IG5vbmU7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRAZWxzZSB7XHJcblx0XHQkcGFkZGluZy10b3A6IGlmKCRoZWlnaHQgIT1udWxsLCBtYXRoLmRpdigkaGVpZ2h0LCAkd2lkdGgpICogMTAwJSwgMTAwJSk7XHJcblxyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRwYWRkaW5nLXRvcDogJHBhZGRpbmctdG9wO1xyXG5cclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcblx0XHRpbWcge1xyXG5cdFx0XHRAaW5jbHVkZSBvYmplY3QtZml0LWNvdmVyKCk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gbGluZS1oZWlnaHQoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0OiAwKSB7XHJcblx0QGlmICRsaW5lLWhlaWdodCAhPTAge1xyXG5cdFx0QGlmICRsaW5lLWhlaWdodCA8IDEwIHtcclxuXHRcdFx0bGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcclxuXHRcdH1cclxuXHJcblx0XHRAZWxzZSB7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OiBjYWxjKCRsaW5lLWhlaWdodCAvICRmb250LXNpemUpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGxldHRlci1zcGFjaW5nKCRmb250LXNpemUsICRsZXR0ZXItc3BhY2luZzogMCkge1xyXG5cdEBpZiAkbGV0dGVyLXNwYWNpbmcgIT0wIHtcclxuXHRcdEBpZiAkbGV0dGVyLXNwYWNpbmcgPCAxMCB7XHJcblx0XHRcdGxldHRlci1zcGFjaW5nOiBzY3NzcmVtKCRsZXR0ZXItc3BhY2luZyk7XHJcblx0XHR9XHJcblxyXG5cdFx0QGVsc2Uge1xyXG5cdFx0XHRsZXR0ZXItc3BhY2luZzogc2Nzc3JlbSgoJGZvbnQtc2l6ZSAqICRsZXR0ZXItc3BhY2luZykgLyAxMDAwKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBmb250KCRmb250LXNpemUtbWFwLCAkbGluZS1oZWlnaHQ6IDAsICRsZXR0ZXItc3BhY2luZzogMCkge1xyXG5cdEBpZiB0eXBlLW9mKCRmb250LXNpemUtbWFwKT09XCJtYXBcIiB7XHJcblx0XHRAZWFjaCAkYnJlYWtwb2ludCwgJGZvbnQtc2l6ZSBpbiAkZm9udC1zaXplLW1hcCB7XHJcblx0XHRcdEBpZiAkYnJlYWtwb2ludCA9PW51bGwge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogc2Nzc3JlbSgkZm9udC1zaXplKTtcclxuXHJcblx0XHRcdFx0QGluY2x1ZGUgbGluZS1oZWlnaHQobWFwLWdldCgkZm9udC1zaXplLW1hcCwgbnRoKG1hcC1rZXlzKCRmb250LXNpemUtbWFwKSwgLTEpKSwgJGxpbmUtaGVpZ2h0KTtcclxuXHRcdFx0XHRAaW5jbHVkZSBsZXR0ZXItc3BhY2luZyhtYXAtZ2V0KCRmb250LXNpemUtbWFwLCBudGgobWFwLWtleXMoJGZvbnQtc2l6ZS1tYXApLCAtMSkpLCAkbGV0dGVyLXNwYWNpbmcpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRAZWxzZSB7XHJcblx0XHRcdFx0QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRicmVha3BvaW50KSkge1xyXG5cdFx0XHRcdFx0Zm9udC1zaXplOiBzY3NzcmVtKCRmb250LXNpemUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QGVsc2Uge1xyXG5cdFx0Zm9udC1zaXplOiBzY3NzcmVtKCRmb250LXNpemUtbWFwKTtcclxuXHJcblx0XHRAaW5jbHVkZSBsaW5lLWhlaWdodCgkZm9udC1zaXplLW1hcCwgJGxpbmUtaGVpZ2h0KTtcclxuXHRcdEBpbmNsdWRlIGxldHRlci1zcGFjaW5nKCRmb250LXNpemUtbWFwLCAkbGV0dGVyLXNwYWNpbmcpO1xyXG5cdH1cclxufVxyXG5cclxuJGZvbnQtc2NhbGVzOiAoXHJcblx0Ym9keTogKHNtYWxsOiAoc2l6ZTogMTIsIGxpbmU6IDE2LCBsczogMC40LCB3ZWlnaHQ6IDQwMCksXHJcblx0XHRtZWRpdW06IChzaXplOiAxNCwgbGluZTogMjAsIGxzOiAwLjI1LCB3ZWlnaHQ6IDQwMCksXHJcblx0XHRsYXJnZTogKHNpemU6IDE2LCBsaW5lOiAyNCwgbHM6IDAuNSwgd2VpZ2h0OiA0MDApKSxcclxuXHRsYWJlbDogKHNtYWxsOiAoc2l6ZTogMTEsIGxpbmU6IDE2LCBsczogMC41LCB3ZWlnaHQ6IDUwMCksXHJcblx0XHRtZWRpdW06IChzaXplOiAxMiwgbGluZTogMTYsIGxzOiAwLjUsIHdlaWdodDogNTAwKSxcclxuXHRcdGxhcmdlOiAoc2l6ZTogMTQsIGxpbmU6IDIwLCBsczogMC4xLCB3ZWlnaHQ6IDUwMCkpLFxyXG5cdHRpdGxlOiAoc21hbGw6IChzaXplOiAxNCwgbGluZTogMjAsIGxzOiAwLjEsIHdlaWdodDogNTAwKSxcclxuXHRcdG1lZGl1bTogKHNpemU6IDE2LCBsaW5lOiAyNCwgbHM6IDAuMTUsIHdlaWdodDogNTAwKSxcclxuXHRcdGxhcmdlOiAoc2l6ZTogMjIsIGxpbmU6IDI4LCBsczogMC4xNSwgd2VpZ2h0OiA1MDApKSxcclxuXHRoZWFkbGluZTogKHNtYWxsOiAoc2l6ZTogMjQsIGxpbmU6IDMyLCBsczogMC4xNSwgd2VpZ2h0OiA0MDApLFxyXG5cdFx0bWVkaXVtOiAoc2l6ZTogMjgsIGxpbmU6IDM2LCBsczogMC4xNSwgd2VpZ2h0OiA0MDApLFxyXG5cdFx0bGFyZ2U6IChzaXplOiAzMiwgbGluZTogNDAsIGxzOiAwLjE1LCB3ZWlnaHQ6IDQwMCkpLFxyXG5cdGRpc3BsYXk6IChzbWFsbDogKHNpemU6IDM2LCBsaW5lOiA0NCwgbHM6IC0wLjI1LCB3ZWlnaHQ6IDQwMCksXHJcblx0XHRtZWRpdW06IChzaXplOiA0NSwgbGluZTogNTIsIGxzOiAtMC4yNSwgd2VpZ2h0OiA0MDApLFxyXG5cdFx0bGFyZ2U6IChzaXplOiA1NywgbGluZTogNjQsIGxzOiAtMC4yNSwgd2VpZ2h0OiA0MDApKVxyXG4pO1xyXG5cclxuQGZ1bmN0aW9uIGZvbnQtdG9rZW4oJGNhdCwgJHN0ZXAsICRrZXkpIHtcclxuXHRAcmV0dXJuIG1hcC1nZXQobWFwLWdldChtYXAtZ2V0KCRmb250LXNjYWxlcywgJGNhdCksICRzdGVwKSwgJGtleSk7XHJcbn1cclxuXHJcbkBtaXhpbiBmb250LXNjYWxlKCRjYXQsICRzdGVwLCAkb3ZlcnJpZGVzOiAoKSkge1xyXG5cdCRiYXNlOiBtYXAtZ2V0KG1hcC1nZXQoJGZvbnQtc2NhbGVzLCAkY2F0KSwgJHN0ZXApO1xyXG5cdCRjZmc6IG1hcC1tZXJnZSgkYmFzZSwgJG92ZXJyaWRlcyk7XHJcblxyXG5cdEBpbmNsdWRlIGZvbnQobWFwLWdldCgkY2ZnLCBzaXplKSxcclxuXHRcdG1hcC1nZXQoJGNmZywgbGluZSksXHJcblx0XHRtYXAtZ2V0KCRjZmcsIGxzKSk7XHJcblxyXG5cdEBpZiBtYXAtZ2V0KCRjZmcsIHdlaWdodCkgIT00MDAge1xyXG5cdFx0Zm9udC13ZWlnaHQ6IG1hcC1nZXQoJGNmZywgd2VpZ2h0KTtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBjdXN0b20tc2VsZWN0IHtcclxuXHR3aWR0aDogc2Nzc3JlbSgxMzUpO1xyXG5cdG1heC13aWR0aDogMTAwJTtcclxuXHRtaW4taGVpZ2h0OiBzY3NzcmVtKDQ4KTtcclxuXHRwYWRkaW5nOiBzY3NzcmVtKDEyKSBzY3NzcmVtKDE2KTtcclxuXHJcblx0Zm9udC13ZWlnaHQ6IDUwMDtcclxuXHR0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cdGNvbG9yOiAjMDAwO1xyXG5cclxuXHRib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItLW5ldXRyYWwtOTA7XHJcblx0Ym9yZGVyLXJhZGl1czogc2Nzc3JlbSg2KTtcclxuXHRjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG5cdEBpbmNsdWRlIGZvbnQoMTYsIDI0LCAwLjA2KTtcclxuXHRhcHBlYXJhbmNlOiBub25lO1xyXG5cdC1tb3otYXBwZWFyYW5jZTogbm9uZTtcclxuXHJcblx0QGluY2x1ZGUgbWVkaWEoXCI+PWxnXCIpIHtcclxuXHRcdHdpZHRoOiBzY3NzcmVtKDcwKTtcclxuXHR9XHJcblxyXG5cdCY6ZGlzYWJsZWQge1xyXG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblxyXG5cdFx0Y3Vyc29yOiBkZWZhdWx0O1xyXG5cdFx0b3BhY2l0eTogMC41O1xyXG5cclxuXHRcdCY6OnNlbGVjdGlvbiB7XHJcblx0XHRcdGNvbG9yOiAjMDAwO1xyXG5cclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gY29udGFpbmVyIHtcclxuXHRtYXgtd2lkdGg6IGNhbGMoMTE3MHB4ICsgODBweCk7XHJcblx0cGFkZGluZzogMCAxcmVtO1xyXG5cclxuXHRtYXJnaW46IGF1dG87XHJcblxyXG5cdEBpbmNsdWRlIG1lZGlhKFwiPj1zbVwiKSB7XHJcblx0XHRwYWRkaW5nOiAwIDIwcHg7XHJcblx0fVxyXG5cclxuXHRAaW5jbHVkZSBtZWRpYShcIj49bWRcIikge1xyXG5cdFx0cGFkZGluZzogMCA0MHB4O1xyXG5cdH1cclxuXHJcblx0LmNvbnRhaW5lciB7XHJcblx0XHRwYWRkaW5nOiAwO1xyXG5cclxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPj1zbVwiKSB7XHJcblx0XHRcdHBhZGRpbmc6IDA7XHJcblx0XHR9XHJcblxyXG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI+PW1kXCIpIHtcclxuXHRcdFx0cGFkZGluZzogMDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBmb2N1cy1hbHQoJHR5cGU6IFwiaW5zaWRlXCIsICRjb2xvcjogXCJwcmltYXJ5XCIpIHtcclxuXHQkc2VsZWN0ZWQtY29sb3I6IGlmKCRjb2xvciA9PVwic2Vjb25kYXJ5XCIsICRjb2xvci0tc2Vjb25kYXJ5LCAkY29sb3ItLXByaW1hcnkpO1xyXG5cclxuXHRvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XHJcblxyXG5cdEBpZiAkdHlwZSA9PVwib3V0c2lkZVwiIHtcclxuXHRcdGJveC1zaGFkb3c6IDAgMCAwIHNjc3NyZW0oNCkgJHNlbGVjdGVkLWNvbG9yO1xyXG5cdH1cclxuXHJcblx0QGVsc2Uge1xyXG5cdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAwIDAgc2Nzc3JlbSg0KSAkc2VsZWN0ZWQtY29sb3I7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gaW5wdXQtbW9iaWxlLW9yZGVycygkbWF4OiAzMCkge1xyXG5cdEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJG1heCB7XHJcblx0XHQuaW5wdXRfbW9iaWxlX29yZGVyXyN7JGl9IHtcclxuXHRcdFx0b3JkZXI6ICRpO1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI+PW1kXCIpIHtcclxuXHRcdFx0XHRvcmRlcjogdW5zZXQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn0iLCJAaW1wb3J0IFwiLi4vLi4vLi4vLi4vYXNzZXRzL2Nzcy9fX3NldHRpbmdzL2luaXRcIjtcclxuXHJcbi5nZm9ybV93cmFwcGVyIHtcclxuXHJcblx0QGltcG9ydCBcIi4uL2Zvcm0taW5wdXQvc3R5bGVcIjtcclxuXHJcblx0Lmdmb3JtX3JlcXVpcmVkX2xlZ2VuZCB7XHJcblx0XHRkaXNwbGF5OiBub25lO1xyXG5cdH1cclxuXHJcblx0Lmdmb3JtX2ZpZWxkcyB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcblx0XHRnYXA6IHNjc3NyZW0oMTgpO1xyXG5cclxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPj1tZFwiKSB7XHJcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcclxuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cdFx0XHRnYXA6IHNjc3NyZW0oMjMpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmdzZWN0aW9uIHtcclxuXHRcdHBhZGRpbmctYmxvY2stZW5kOiAwICFpbXBvcnRhbnQ7XHJcblx0XHRib3JkZXItYmxvY2stZW5kOiBub25lICFpbXBvcnRhbnQ7XHJcblxyXG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI8bWRcIikge1xyXG5cdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgJGNvbG9yLS1zZWNvbmRhcnktOTUgIWltcG9ydGFudDtcclxuXHRcdFx0cGFkZGluZy10b3A6IHNjc3NyZW0oMTYpICFpbXBvcnRhbnQ7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IHNjc3NyZW0oNSkgIWltcG9ydGFudDtcclxuXHRcdH1cclxuXHJcblx0XHQmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI+PW1kXCIpIHtcclxuXHRcdFx0XHRtYXJnaW4tdG9wOiBzY3NzcmVtKDE0KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdCYtLWJvcmRlci10b3Age1xyXG5cdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgJGNvbG9yLS1zZWNvbmRhcnktOTUgIWltcG9ydGFudDtcclxuXHRcdFx0cGFkZGluZy10b3A6IHNjc3NyZW0oMTYpICFpbXBvcnRhbnQ7XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIj49bWRcIikge1xyXG5cdFx0XHRcdHBhZGRpbmctdG9wOiBzY3NzcmVtKDMyKSAhaW1wb3J0YW50O1xyXG5cdFx0XHRcdG1hcmdpbi10b3A6IHNjc3NyZW0oMTYpICFpbXBvcnRhbnQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5nc2VjdGlvbl90aXRsZSB7XHJcblx0XHRAaW5jbHVkZSBmb250KDE2LCAyMiwgMC4wNik7XHJcblx0XHRmb250LXdlaWdodDogNTAwO1xyXG5cclxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPj1tZFwiKSB7XHJcblx0XHRcdEBpbmNsdWRlIGZvbnQoMjIsIDMxLCAwLjA2KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5nZmllbGQge1xyXG5cdFx0cGFkZGluZzogMDtcclxuXHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRtYXJnaW46IDA7XHJcblxyXG5cdFx0Ym9yZGVyOiBub25lO1xyXG5cclxuXHRcdG9yZGVyOiAzMTtcclxuXHJcblx0XHRAaW5jbHVkZSBtZWRpYShcIj49bWRcIikge1xyXG5cdFx0XHRmbGV4OiAwIDAgMTAwJTtcclxuXHRcdFx0b3JkZXI6IHVuc2V0O1xyXG5cclxuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGxlZ2VuZCB7XHJcblx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0XHR9XHJcblxyXG5cdFx0Ji5nZmllbGQtLWlucHV0LXR5cGUtY2hlY2tib3gsIFxyXG5cdFx0Ji5nZmllbGQtLWlucHV0LXR5cGUtcmFkaW8ge1xyXG5cdFx0XHRsZWdlbmR7XHJcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogc2Nzc3JlbSg1KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC5nZmllbGRfZGVzY3JpcHRpb24ge1xyXG5cdFx0XHRjb2xvcjogJGNvbG9yLS1uZXV0cmFsLTA7XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBmb250LXNjYWxlKFxyXG5cdFx0XHRcdGJvZHksXHJcblx0XHRcdFx0c21hbGwsXHJcblx0XHRcdFx0KFxyXG5cdFx0XHRcdFx0bGluZTogMTgsXHJcblx0XHRcdFx0XHRsczogMC4xMixcclxuXHRcdFx0XHQpXHJcblx0XHRcdCk7XHJcblxyXG5cdFx0XHRtYXJnaW4tdG9wOiBzY3NzcmVtKDgpO1xyXG5cclxuXHRcdFx0Ji52YWxpZGF0aW9uX21lc3NhZ2Uge1xyXG5cdFx0XHRcdGNvbG9yOiAjZTQxZDFkO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ji0tdHlwZS1jb25zZW50IHtcclxuXHRcdFx0LmdpbnB1dF9jb250YWluZXJfY29uc2VudCB7XHJcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcblx0XHRcdFx0Z2FwOiBzY3NzcmVtKDgpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmOmhhcyhpbnB1dDpjaGVja2VkKSB7XHJcblx0XHRcdFx0bGFiZWwge1xyXG5cdFx0XHRcdFx0Jjo6YWZ0ZXIge1xyXG5cdFx0XHRcdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aW5wdXQge1xyXG5cdFx0XHRcdHdpZHRoOiBzY3NzcmVtKDE2KTtcclxuXHRcdFx0XHRoZWlnaHQ6IHNjc3NyZW0oMTYpO1xyXG5cclxuXHRcdFx0XHR6LWluZGV4OiAxO1xyXG5cdFx0XHRcdG1hcmdpbjogMDtcclxuXHJcblx0XHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdFx0XHRcdG9wYWNpdHk6IDA7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGxhYmVsIHtcclxuXHRcdFx0XHRAaW5jbHVkZSBmb250LXNjYWxlKFxyXG5cdFx0XHRcdFx0Ym9keSxcclxuXHRcdFx0XHRcdHNtYWxsLFxyXG5cdFx0XHRcdFx0KFxyXG5cdFx0XHRcdFx0XHRsaW5lOiAxOCxcclxuXHRcdFx0XHRcdFx0bHM6IDAuMTIsXHJcblx0XHRcdFx0XHRcdHdlaWdodDogNDAwLFxyXG5cdFx0XHRcdFx0KVxyXG5cdFx0XHRcdCk7XHJcblxyXG5cdFx0XHRcdHBhZGRpbmctbGVmdDogc2Nzc3JlbSg0KTtcclxuXHJcblx0XHRcdFx0Y29sb3I6ICMwMDA7XHJcblxyXG5cdFx0XHRcdCY6OmJlZm9yZSB7XHJcblx0XHRcdFx0XHRjb250ZW50OiBcIlwiO1xyXG5cclxuXHRcdFx0XHRcdHdpZHRoOiBzY3NzcmVtKDE2KTtcclxuXHRcdFx0XHRcdGhlaWdodDogc2Nzc3JlbSgxNik7XHJcblxyXG5cdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRcdFx0dG9wOiBzY3NzcmVtKDMpO1xyXG5cdFx0XHRcdFx0bGVmdDogMDtcclxuXHJcblx0XHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItLW5ldXRyYWwtOTA7XHJcblx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiBzY3NzcmVtKDIpO1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdCY6OmFmdGVyIHtcclxuXHRcdFx0XHRcdGNvbnRlbnQ6IFwiXCI7XHJcblxyXG5cdFx0XHRcdFx0d2lkdGg6IHNjc3NyZW0oMTYpO1xyXG5cdFx0XHRcdFx0aGVpZ2h0OiBzY3NzcmVtKDE2KTtcclxuXHJcblx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdFx0XHR0b3A6IHNjc3NyZW0oMyk7XHJcblx0XHRcdFx0XHRsZWZ0OiAwO1xyXG5cclxuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IHNjc3NyZW0oMik7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItLXByaW1hcnk7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2Jz48cmVjdCB3aWR0aD0nMTYnIGhlaWdodD0nMTYnIHJ4PScyJyBmaWxsPSclMjMwMDY2MzEnLz48ZyBjbGlwLXBhdGg9J3VybCglMjNhKSc+PHBhdGggZD0nTTEzLjcyIDMuOTZhLjk1Ljk1IDAgMCAwLTEuMzQgMGwtNi4wNiA2LjA2LTIuNy0yLjdhLjk1Ljk1IDAgMSAwLTEuMzQgMS4zNWwzLjM2IDMuMzdhLjk1Ljk1IDAgMCAwIDEuMzUgMGw2LjczLTYuNzNhLjk1Ljk1IDAgMCAwIDAtMS4zNScgZmlsbD0nJTIzZmZmJy8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0nYSc+PHBhdGggZmlsbD0nJTIzZmZmJyBkPSdNMiAyaDEydjEySDJ6Jy8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+XCIpO1xyXG5cdFx0XHRcdFx0b3BhY2l0eTogMDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmLS13aWR0aC1oYWxmIHtcclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI+PW1kXCIpIHtcclxuXHRcdFx0XHRtYXgtd2lkdGg6IGNhbGMoNTAlIC0gc2Nzc3JlbSgxMikpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0JjpoYXMoLmdmaWVsZF9kZXNjcmlwdGlvbil7XHJcblx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblxyXG5cdFx0XHQuZ2ZpZWxkX2Rlc2NyaXB0aW9ue1xyXG5cdFx0XHRcdG9yZGVyOiA1O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRzZWxlY3Qge1xyXG5cdFx0cGFkZGluZzogc2Nzc3JlbSgxMSkgc2Nzc3JlbSgxNikgc2Nzc3JlbSgxMSk7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHJcblx0XHRjb2xvcjogJGNvbG9yLS1uZXV0cmFsLTA7XHJcblxyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci0tc2Vjb25kYXJ5LTk1O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogc2Nzc3JlbSg0KTtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjb2xvci0tdGV4dC1saWdodDtcclxuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uLy4uLy4uL2ltYWdlcy9zdmcvYXJyb3ctZG93bi5zdmdcIik7XHJcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbi14OiBjYWxjKDEwMCUgLSBzY3NzcmVtKDcpKTtcclxuXHRcdGJhY2tncm91bmQtcG9zaXRpb24teTogNTAlO1xyXG5cclxuXHRcdC1tb3otYXBwZWFyYW5jZTogbm9uZTtcclxuXHRcdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuXHRcdGFwcGVhcmFuY2U6IG5vbmU7XHJcblxyXG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI+c21cIikge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IGNhbGMoMTAwJSAtIHNjc3NyZW0oMTcpKTtcclxuXHRcdH1cclxuXHJcblx0XHQmOjphZnRlciB7XHJcblx0XHRcdGNvbnRlbnQ6IFwiXCI7XHJcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cclxuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHR0b3A6IDUwJTtcclxuXHRcdFx0cmlnaHQ6IHNjc3NyZW0oMTYpO1xyXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcblx0XHR9XHJcblxyXG5cdFx0b3B0aW9uIHtcclxuXHRcdFx0Y29sb3I6ICRjb2xvci0tbmV1dHJhbC0wO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QGluY2x1ZGUgaW5wdXQtbW9iaWxlLW9yZGVycygpO1xyXG5cclxuXHQuZ2ZpZWxkX3JlcXVpcmVkIHtcclxuXHRcdGNvbG9yOiAjYjMwYzAwO1xyXG5cdFx0bWFyZ2luLWxlZnQ6IHNjc3NyZW0oMik7XHJcblx0fVxyXG5cclxuXHQuZ2ZpZWxkX2Vycm9yIHtcclxuXHRcdGlucHV0LFxyXG5cdFx0dGV4dGFyZWEge1xyXG5cdFx0XHRib3JkZXItY29sb3I6ICNlNDFkMWQ7XHJcblx0XHR9XHJcblxyXG5cdFx0LmdpbnB1dF9jb250YWluZXJfY2hlY2tib3ggbGFiZWw6OmFmdGVyIHtcclxuXHRcdFx0Ym9yZGVyLWNvbG9yOiAjZTQxZDFkO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LndwY2Y3LWxpc3QtaXRlbSB7XHJcblx0XHRtYXJnaW46IDA7XHJcblx0fVxyXG5cclxuXHRib2R5Om5vdCgudXNpbmctbW91c2UpIHtcclxuXHRcdGxhYmVsOmhhcyhpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Zm9jdXMpOjphZnRlciB7XHJcblx0XHRcdG91dGxpbmU6IDRweCBzb2xpZCAkY29sb3ItLXByaW1hcnk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuZ2Zvcm1fdmFsaWRhdGlvbl9jb250YWluZXIge1xyXG5cdFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG5cdH1cclxuXHJcblx0Lmdmb3JtX2J1dHRvbiB7XHJcblx0XHRtYXJnaW4tdG9wOiBzY3NzcmVtKDE2KSAhaW1wb3J0YW50O1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLS1wcmltYXJ5O1xyXG5cdFx0Y29sb3I6IHdoaXRlO1xyXG5cdFx0QGluY2x1ZGUgZm9udC1zY2FsZShib2R5LCBsYXJnZSk7XHJcblx0XHRwYWRkaW5nOiBzY3NzcmVtKDEyKSBzY3NzcmVtKDU3KSAhaW1wb3J0YW50O1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcclxuXHJcblx0XHRAaW5jbHVkZSBtZWRpYShcIj49bWRcIikge1xyXG5cdFx0XHRtYXJnaW4tdG9wOiBzY3NzcmVtKDMyKSAhaW1wb3J0YW50O1xyXG5cdFx0XHR3aWR0aDogYXV0byAhaW1wb3J0YW50O1xyXG5cdFx0fVxyXG5cclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHRvcGFjaXR5OiAwLjg7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuZ2lucHV0X3ByZXZpZXcge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZmxvdzogcm93IHdyYXA7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0Z2FwOiBzY3NzcmVtKDgpO1xyXG5cdH1cclxuXHJcblx0Lmdmb3JtX2RlbGV0ZV9maWxlIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cdFx0Ym9yZGVyOiBub25lO1xyXG5cdFx0cGFkZGluZzogMDtcclxuXHRcdHdpZHRoOiBzY3NzcmVtKDI0KTtcclxuXHRcdGhlaWdodDogc2Nzc3JlbSgyNCk7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdH1cclxufVxyXG5cclxuLmdmb3JtX3ZhbGlkYXRpb25fZXJyb3JzIHtcclxuXHRwYWRkaW5nOiBzY3NzcmVtKDEyKSBzY3NzcmVtKDE2KTtcclxuXHJcblx0bWFyZ2luLXRvcDogc2Nzc3JlbSgxMik7XHJcblx0bWFyZ2luLWJvdHRvbTogc2Nzc3JlbSgzMik7XHJcblxyXG5cdGNvbG9yOiAjZmZmO1xyXG5cclxuXHRib3JkZXItcmFkaXVzOiBzY3NzcmVtKDYpO1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICNkODRlNGU7XHJcblxyXG5cdCY6Zm9jdXMsXHJcblx0Jjpmb2N1cy12aXNpYmxlLFxyXG5cdCY6YWN0aXZlIHtcclxuXHRcdG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcclxuXHR9XHJcblxyXG5cdGgyLFxyXG5cdHVsLFxyXG5cdG9sLFxyXG5cdHAge1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDQwMDtcclxuXHJcblx0XHRAaW5jbHVkZSBmb250LXNjYWxlKFxyXG5cdFx0XHRib2R5LFxyXG5cdFx0XHRzbWFsbCxcclxuXHRcdFx0KFxyXG5cdFx0XHRcdGxpbmU6IDE4LFxyXG5cdFx0XHRcdGxzOiAwLjEyLFxyXG5cdFx0XHQpXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0YSB7XHJcblx0XHRjb2xvcjogI2ZmZjtcclxuXHR9XHJcblxyXG5cdHVsLFxyXG5cdG9sIHtcclxuXHRcdHBhZGRpbmc6IDAgMCAwIHNjc3NyZW0oMTYpO1xyXG5cdH1cclxufVxyXG5cclxuYm9keTpub3QoLnVzaW5nLW1vdXNlKSB7XHJcblx0LmdpbnB1dF9jb250YWluZXJfY2hlY2tib3gge1xyXG5cdFx0aW5wdXQge1xyXG5cdFx0XHQmOmZvY3VzIHtcclxuXHRcdFx0XHQrIGxhYmVsOjphZnRlciB7XHJcblx0XHRcdFx0XHRvdXRsaW5lOiAycHggc29saWQgJGNvbG9yLS1wcmltYXJ5O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmdpbnB1dF9jb250YWluZXJfY29uc2VudCB7XHJcblx0XHRpbnB1dCB7XHJcblx0XHRcdCY6Zm9jdXMge1xyXG5cdFx0XHRcdCsgbGFiZWw6OmJlZm9yZSB7XHJcblx0XHRcdFx0XHRvdXRsaW5lOiAycHggc29saWQgJGNvbG9yLS1wcmltYXJ5O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLy8gRklYOiBEYXRlcGlja2VyIGFjdGl2ZSBkYXkgd2lkdGhcclxuZGl2LnVpLWRhdGVwaWNrZXIgdGFibGUudWktZGF0ZXBpY2tlci1jYWxlbmRhciB7XHJcblx0dGQge1xyXG5cdFx0JjpmaXJzdC1jaGlsZCxcclxuXHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdC51aS1zdGF0ZS1hY3RpdmUge1xyXG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQudWktc3RhdGUtYWN0aXZlIHtcclxuXHRcdG1hcmdpbi1sZWZ0OiAwO1xyXG5cdFx0bWFyZ2luLXJpZ2h0OiAwO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi5nZmllbGRfY29uc2VudF9kZXNjcmlwdGlvbiB7XHJcblx0bWF4LWhlaWdodDogc2Nzc3JlbSgzMDApO1xyXG4gICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzMCwgMjMwLCAyMzAsIDAuMyk7XHJcbiAgICBwYWRkaW5nOiBzY3NzcmVtKDE2KTtcclxuICAgIGJvcmRlci1yYWRpdXM6IHNjc3NyZW0oOCk7XHJcblxyXG59XHJcbiIsIi8vKiBCUkVBS1BPSU5UUyAqLy9cclxuJGJyZWFrcG9pbnRzOiAoXHJcblx0eHM6IDM3NXB4LFxyXG5cdHNtOiA1NzZweCxcclxuXHRtZDogNzY4cHgsXHJcblx0bGc6IDk5MnB4LFxyXG5cdHhsOiAxMjAwcHgsXHJcblx0eHhsOiAxNDQwcHgsXHJcblx0bWF4OiAxOTIwcHgsXHJcbik7XHJcblxyXG4vLyogQ09OVEFJTkVSIHdpZHRoIHZhcmlhYmxlcyAqLy9cclxuJGNvbnRhaW5lci1tb2JpbGU6IDcyMHB4O1xyXG4kY29udGFpbmVyLWxnOiA5NjBweDtcclxuJGNvbnRhaW5lci14bDogMTA4MHB4O1xyXG4kY29udGFpbmVyLXh4bDogdmFyKC0td3AtLXN0eWxlLS1nbG9iYWwtLXdpZGUtc2l6ZSk7IC8vIHRoZW1lLmpzb24gc2V0dGluZ3MubGF5b3V0XHJcbiRjb250YWluZXItcGFkZGluZzogMTU7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmN1c3RvbS5iYXNlUGFkZGluZ1xyXG5cclxuLy8qIEZPTlRTICovL1xyXG4kZm9udC1iYXNlOiB2YXIoLS13cC0tcHJlc2V0LS1mb250LWZhbWlseS0tYmFzZS1mb250KTsgLy90aGVtZS5qc29uIHNldHRpbmcudHlwb2dyYXBoeS5mb250RmFtaWxpZXNcclxuXHJcbiRmb250LXNlY29uZGFyeTogdmFyKC0td3AtLXByZXNldC0tZm9udC1mYW1pbHktLXNlY29uZC1mb250KTsgLy90aGVtZS5qc29uIHNldHRpbmcudHlwb2dyYXBoeS5mb250RmFtaWxpZXNcclxuXHJcbiRmb250LXNpemUtZGVza3RvcDogdmFyKC0td3AtLXByZXNldC0tZm9udC1zaXplLS1tZWRpdW0pOyAvL3RoZW1lLmpzb24gc2V0dGluZy50eXBvZ3JhcGh5LmZvbnRTaXplc1xyXG4kbGluZS1oZWlnaHQtZGVza3RvcDogMS41O1xyXG5cclxuLy8gU2V0IE1vYmlsZSBmb250LXNpemUgLyBsaW5lLWhlaWdodCBzdHlsZXMgaW4gdGhlbWUuanNvbiBzdHlsZXMudHlwb2dyYXBoeVxyXG5cclxuLy8qIFNQQUNJTkdTICovL1xyXG4kc3BhY2luZy04OiB2YXIoLS13cC0tcHJlc2V0LS1zcGFjaW5nLS1zaXplLTgpO1xyXG4kc3BhY2luZy0xMjogdmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tc2l6ZS0xMik7XHJcbiRzcGFjaW5nLTE0OiB2YXIoLS13cC0tcHJlc2V0LS1zcGFjaW5nLS1zaXplLTE0KTtcclxuJHNwYWNpbmctMTY6IHZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLXNpemUtMTYpO1xyXG4kc3BhY2luZy0yMDogdmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tc2l6ZS0yMCk7XHJcbiRzcGFjaW5nLTI0OiB2YXIoLS13cC0tcHJlc2V0LS1zcGFjaW5nLS1zaXplLTI0KTtcclxuJHNwYWNpbmctMzI6IHZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLXNpemUtMzIpO1xyXG4kc3BhY2luZy00MDogdmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tc2l6ZS00MCk7XHJcbiRzcGFjaW5nLTQ4OiB2YXIoLS13cC0tcHJlc2V0LS1zcGFjaW5nLS1zaXplLTQ4KTtcclxuJHNwYWNpbmctNTY6IHZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLXNpemUtNTYpO1xyXG4kc3BhY2luZy02MDogdmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tc2l6ZS02MCk7XHJcbiRzcGFjaW5nLTY0OiB2YXIoLS13cC0tcHJlc2V0LS1zcGFjaW5nLS1zaXplLTY0KTtcclxuJHNwYWNpbmctODA6IHZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLXNpemUtODApO1xyXG5cclxuLy8gQmxvY2sgU3BhY2luZ3NcclxuJHNwYWNpbmctbW9iaWxlOiA0MDsgLy90aGVtZS5qc29uIHNldHRpbmcuc3BhY2luZy5zcGFjaW5nU2l6ZXNcclxuJHNwYWNpbmc6IHZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLW1lZGl1bSk7XHJcblxyXG4kbWFyZ2luLW1vYmlsZTogMzA7IC8vdGhlbWUuanNvbiBzZXR0aW5nLnNwYWNpbmcuc3BhY2luZ1NpemVzXHJcbiRtYXJnaW46IHZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLW1lZGl1bSk7XHJcblxyXG4vLyBNZWRpYSBTcGFjaW5nXHJcbiRtZWRpYS1tYXJnaW46IHZhcigtLXdwLS1jdXN0b20tLW1lZGlhLXNwYWNpbmcpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jdXN0b20ubWVkaWFTcGFjaW5nOyAvL3B4XHJcblxyXG4vLyogQ09MT1JTICovL1xyXG5cclxuLy8gQmFzZSBDb2xvcnNcclxuJGNvbG9yLS1kYXJrOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tZGFyayk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tbGlnaHQ6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1saWdodCk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcblxyXG4kY29sb3ItLXByaW1hcnk6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1wcmltYXJ5KTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1wcmltYXJ5LTQwOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tcHJpbWFyeS00MCk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tcHJpbWFyeS03MDogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLXByaW1hcnktNzApOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG5cclxuJGNvbG9yLS1zZWNvbmRhcnk6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1zZWNvbmRhcnkpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLXNlY29uZGFyeS0yMDogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLXNlY29uZGFyeS0yMCk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tc2Vjb25kYXJ5LTQwOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tc2Vjb25kYXJ5LTQwKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1zZWNvbmRhcnktNjA6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1zZWNvbmRhcnktNjApOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLXNlY29uZGFyeS01MDogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLXNlY29uZGFyeS01MCk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tc2Vjb25kYXJ5LTgwOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tc2Vjb25kYXJ5LTgwKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1zZWNvbmRhcnktOTA6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1zZWNvbmRhcnktOTApO1xyXG4kY29sb3ItLXNlY29uZGFyeS05NTogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLXNlY29uZGFyeS05NSk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcblxyXG4kY29sb3ItLW5ldXRyYWwtMTA6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1uZXV0cmFsLTEwKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1uZXV0cmFsLTIwOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tbmV1dHJhbC0yMCk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tbmV1dHJhbC01MDogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLW5ldXRyYWwtNTApOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLW5ldXRyYWwtNzA6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1uZXV0cmFsLTcwKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1uZXV0cmFsLTgwOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tbmV1dHJhbC04MCk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tbmV1dHJhbC05MDogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLW5ldXRyYWwtOTApOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLXRlcnRpYXJ5OiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tdGVydGlhcnkpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLW5ldXRyYWwtMDogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLW5ldXRyYWwtMCk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tbmV1dHJhbC0zMDogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLW5ldXRyYWwtMzApOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4vLyBNYWluIENvbG9yc1xyXG4kY29sb3ItLXByaW1hcnk6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1wcmltYXJ5KTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuXHJcbi8vIE90aGVyIENvbG9yc1xyXG4kY29sb3ItLTE6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1jb2xvci0xKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS0yOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItMik7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tMzogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWNvbG9yLTMpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLTQ6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1jb2xvci00KTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1kYXJrLXJlZDogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWRhcmstcmVkKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1lcnJvci00MDogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWVycm9yLTQwKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuXHJcbi8vIEVsZW1lbnRzIENvbG9yc1xyXG4kY29sb3ItLWJnLWdyZWVuOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tc2Vjb25kYXJ5LWJnKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1iZy1wdXJwbGU6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS10ZXJ0aWFyeS1iZyk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcblxyXG4kY29sb3ItLWJvZHk6ICRjb2xvci0tbGlnaHQ7XHJcbiRjb2xvci0tYm9yZGVyOiAkY29sb3ItLWRhcms7XHJcblxyXG4vLyBUaGVtZSBUZXh0IENvbG9yc1xyXG4kY29sb3ItLXRleHQ6ICRjb2xvci0tZGFyaztcclxuJGNvbG9yLS10ZXh0LWxpZ2h0OiAkY29sb3ItLWxpZ2h0O1xyXG4kY29sb3ItLWxpbms6ICRjb2xvci0tcHJpbWFyeTtcclxuJGNvbG9yLS1saW5rLWhvdmVyOiAkY29sb3ItLWRhcms7XHJcblxyXG4vLyogT1RIRVIgKi8vXHJcblxyXG4vLyBUcmFuc2l0aW9uc1xyXG4kdHJhbnMtc3BlZWQ6IHZhcigtLXRyYW5zaXRpb24tc3BlZWQpO1xyXG4kdHJhbnMtZnVuYzogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xyXG5cclxuLy8gT3V0bGluZVxyXG4kb3V0bGluZTogMnB4IHNvbGlkICMwMDAwZmY7XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xyXG4vLyAgICAoXykgICAgICAgICAgfCB8ICAgICAgICAgfCB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgKF8pXHJcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xyXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxyXG4vLyAgICB8IHwgfCB8IHwgKF9ffCB8IHxffCB8IChffCB8ICBfXy8gfCB8IHwgfCB8IHwgIF9fLyAoX3wgfCB8IChffCB8XHJcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XHJcbi8vXHJcbi8vICAgICAgU2ltcGxlLCBlbGVnYW50IGFuZCBtYWludGFpbmFibGUgbWVkaWEgcXVlcmllcyBpbiBTYXNzXHJcbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC45XHJcbi8vXHJcbi8vICAgICAgICAgICAgICAgIGh0dHA6Ly9pbmNsdWRlLW1lZGlhLmNvbVxyXG4vL1xyXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcclxuLy8gICAgICAgICAgICAgICAgICBIdWdvIEdpcmF1ZGVsIChAaHVnb2dpcmF1ZGVsKVxyXG4vL1xyXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXHJcblxyXG4vLy8vXHJcbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cclxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcclxuLy8vIEBhY2Nlc3MgcHVibGljXHJcbi8vLy9cclxuXHJcbi8vL1xyXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2YgZ2xvYmFsIGJyZWFrcG9pbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXHJcbi8vLyAgJGJyZWFrcG9pbnRzOiAoJ3Bob25lJzogMzIwcHgpO1xyXG4vLy9cclxuJGJyZWFrcG9pbnRzOiAoXHJcblx0J3Bob25lJzogMzIwcHgsXHJcblx0J3RhYmxldCc6IDc2OHB4LFxyXG5cdCdkZXNrdG9wJzogMTAyNHB4XHJcbikgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcclxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcclxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcclxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xyXG4vLy8gICk7XHJcbi8vL1xyXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcclxuXHQnc2NyZWVuJzogJ3NjcmVlbicsXHJcblx0J3ByaW50JzogJ3ByaW50JyxcclxuXHQnaGFuZGhlbGQnOiAnaGFuZGhlbGQnLFxyXG5cdCdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuXHQncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxyXG5cdCdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAobWluLXJlc29sdXRpb246IDJkcHB4KScsXHJcblx0J3JldGluYTN4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJ1xyXG4pICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2BcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxyXG4vLy9cclxuJHVuaXQtaW50ZXJ2YWxzOiAoXHJcblx0J3B4JzogMSxcclxuXHQnZW0nOiAwLjAxLFxyXG5cdCdyZW0nOiAwLjEsXHJcblx0Jyc6IDBcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8vL1xyXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXHJcbi8vLyBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgLmZvbyB7XHJcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gIH1cclxuLy8vXHJcbiRpbS1tZWRpYS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBTZWxlY3RzIHdoaWNoIGJyZWFrcG9pbnQgdG8gZW11bGF0ZSB3aGVuIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgZGlzYWJsZWQuIE1lZGlhIHF1ZXJpZXMgdGhhdCBzdGFydCBhdCBvclxyXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIC5mb28ge1xyXG4vLy8gICAgY29sb3I6IHRvbWF0bztcclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0JztcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBObyBvdXRwdXQgKi9cclxuLy8vXHJcbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcclxuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgIC5mb28ge1xyXG4vLy8gICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xyXG4vLy9cclxuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcclxuXHJcbi8vLy9cclxuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vL1xyXG5cclxuLy8vXHJcbi8vLyBMb2cgYSBtZXNzYWdlIGVpdGhlciB3aXRoIGBAZXJyb3JgIGlmIHN1cHBvcnRlZFxyXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcclxuLy8vIHRvIGRldGVjdCBzdXBwb3J0LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXHJcbi8vL1xyXG5cclxuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xyXG5cdEBpZiBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKSB7XHJcblx0XHRAZXJyb3IgJG1lc3NhZ2U7XHJcblx0fVxyXG5cclxuXHRAZWxzZSB7XHJcblx0XHRAd2FybiAkbWVzc2FnZTtcclxuXHRcdCRfOiBub29wKCk7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICRtZXNzYWdlO1xyXG59XHJcblxyXG4vLy9cclxuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcclxuLy8vIEFQSSB0aGFuIGBAaWYgaW0tbG9nKCcuLicpIHt9YCBvciBgJF86IGltLWxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxyXG4vLy8gd2l0aGluIGZ1bmN0aW9ucyBiZWNhdXNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW4gYSBmdW5jdGlvblxyXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xyXG4vLy9cclxuXHJcbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcclxuXHRAaWYgaW0tbG9nKCRtZXNzYWdlKSB7fVxyXG59XHJcblxyXG4vLy9cclxuLy8vIEZ1bmN0aW9uIHdpdGggbm8gYEByZXR1cm5gIGNhbGxlZCBuZXh0IHRvIGBAd2FybmAgaW4gU2FzcyAzLjNcclxuLy8vIHRvIHRyaWdnZXIgYSBjb21waWxpbmcgZXJyb3IgYW5kIHN0b3AgdGhlIHByb2Nlc3MuXHJcbi8vL1xyXG5cclxuQGZ1bmN0aW9uIG5vb3AoKSB7fVxyXG5cclxuLy8vXHJcbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxyXG4vLy9cclxuXHJcbkBmdW5jdGlvbiBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSB7XHJcblx0JG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XHJcblxyXG5cdEBpZiBub3QgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUge1xyXG5cdFx0QGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XHJcblx0fVxyXG5cclxuXHRAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcclxuXHRcdEBpZiBub3QgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XHJcblx0XHRcdCRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGNvbmRpdGlvbik7XHJcblx0XHRcdCRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xyXG5cdFx0XHQkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XHJcblxyXG5cdFx0XHRAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcclxuXHRcdFx0XHQoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcclxuXHRcdFx0XHRAcmV0dXJuIGZhbHNlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0QGVsc2UgaWYgbm90IGluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xyXG5cdFx0XHRAcmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QHJldHVybiB0cnVlO1xyXG59XHJcblxyXG4vLy8vXHJcbi8vLyBQYXJzaW5nIGVuZ2luZVxyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vL1xyXG5cclxuLy8vXHJcbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIEFueSBvZiBgPj1gLCBgPmAsIGA8PWAsIGA8YCwgYOKJpWAsIGDiiaRgXHJcbi8vL1xyXG5cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XHJcblx0QGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XHJcblx0XHRAaWYgc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcclxuXHRcdFx0QHJldHVybiAkb3BlcmF0b3I7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXHJcblx0Ly8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcclxuXHQvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cclxuXHQvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxyXG5cdC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cclxuXHQkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xyXG59XHJcblxyXG4vLy9cclxuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBkaW1lbnNpb24gZnJvbVxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgd2lkdGhgIG9yIGBoZWlnaHRgIChvciBwb3RlbnRpYWxseSBhbnl0aGluZyBlbHNlKVxyXG4vLy9cclxuXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG5cdCRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cdCRwYXJzZWQtZGltZW5zaW9uOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sIDAsICRvcGVyYXRvci1pbmRleCAtIDEpO1xyXG5cdCRkaW1lbnNpb246ICd3aWR0aCc7XHJcblxyXG5cdEBpZiBzdHItbGVuZ3RoKCRwYXJzZWQtZGltZW5zaW9uKSA+IDAge1xyXG5cdFx0JGRpbWVuc2lvbjogJHBhcnNlZC1kaW1lbnNpb247XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICRkaW1lbnNpb247XHJcbn1cclxuXHJcbi8vL1xyXG4vLy8gR2V0IGRpbWVuc2lvbiBwcmVmaXggYmFzZWQgb24gYW4gb3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcclxuLy8vXHJcblxyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcikge1xyXG5cdEByZXR1cm4gaWYoaW5kZXgoKCc8JywgJzw9JywgJ+KJpCcpLCAkb3BlcmF0b3IpLCAnbWF4JywgJ21pbicpO1xyXG59XHJcblxyXG4vLy9cclxuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXHJcbi8vL1xyXG5cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcclxuXHQkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHQkdmFsdWU6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yLWluZGV4ICsgc3RyLWxlbmd0aCgkb3BlcmF0b3IpKTtcclxuXHJcblx0QGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XHJcblx0XHQkdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkdmFsdWUpO1xyXG5cdH1cclxuXHJcblx0QGVsc2Uge1xyXG5cdFx0JHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcclxuXHR9XHJcblxyXG5cdCRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XHJcblxyXG5cdEBpZiBub3QgJGludGVydmFsIHtcclxuXHRcdC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cclxuXHRcdC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXHJcblx0XHQvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cclxuXHRcdC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXHJcblx0XHQvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXHJcblx0XHQkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuJyk7XHJcblx0fVxyXG5cclxuXHRAaWYgJG9wZXJhdG9yID09ICc+JyB7XHJcblx0XHQkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcclxuXHR9XHJcblxyXG5cdEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xyXG5cdFx0JHZhbHVlOiAkdmFsdWUgLSAkaW50ZXJ2YWw7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICR2YWx1ZTtcclxufVxyXG5cclxuLy8vXHJcbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIHBhcnNlXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XHJcbi8vL1xyXG5cclxuQGZ1bmN0aW9uIHBhcnNlLWV4cHJlc3Npb24oJGV4cHJlc3Npb24pIHtcclxuXHQvLyBJZiBpdCBpcyBwYXJ0IG9mICRtZWRpYS1leHByZXNzaW9ucywgaXQgaGFzIG5vIG9wZXJhdG9yXHJcblx0Ly8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcclxuXHJcblx0QGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcclxuXHRcdEByZXR1cm4gbWFwLWdldCgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKTtcclxuXHR9XHJcblxyXG5cdCRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pO1xyXG5cdCRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHQkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcclxuXHQkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cclxuXHRAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcclxufVxyXG5cclxuLy8vXHJcbi8vLyBTbGljZSBgJGxpc3RgIGJldHdlZW4gYCRzdGFydGAgYW5kIGAkZW5kYCBpbmRleGVzXHJcbi8vL1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2VcclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZW5kIFtsZW5ndGgoJGxpc3QpXSAtIEVuZCBpbmRleFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XHJcbi8vL1xyXG5cclxuQGZ1bmN0aW9uIHNsaWNlKCRsaXN0LCAkc3RhcnQ6IDEsICRlbmQ6IGxlbmd0aCgkbGlzdCkpIHtcclxuXHRAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XHJcblx0XHRAcmV0dXJuICgpO1xyXG5cdH1cclxuXHJcblx0JHJlc3VsdDogKCk7XHJcblxyXG5cdEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcclxuXHRcdCRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICRyZXN1bHQ7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG4vLy9cclxuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYmUgcGFyc2VkXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyfVxyXG4vLy9cclxuXHJcbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XHJcblx0QGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XHJcblx0XHRAcmV0dXJuICR2YWx1ZTtcclxuXHR9XHJcblxyXG5cdEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XHJcblx0XHQkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xyXG5cdH1cclxuXHJcblx0JGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XHJcblx0JHJlc3VsdDogMDtcclxuXHQkZGlnaXRzOiAwO1xyXG5cdCRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcclxuXHQkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XHJcblxyXG5cdC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxyXG5cclxuXHRAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJysnIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKSB7XHJcblx0XHQkdmFsdWU6IHN0ci1zbGljZSgkdmFsdWUsIDIpO1xyXG5cdH1cclxuXHJcblx0QGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xyXG5cdFx0JGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcclxuXHJcblx0XHRAaWYgbm90IChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XHJcblx0XHRcdEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHItc2xpY2UoJHZhbHVlLCAkaSkpO1xyXG5cdFx0fVxyXG5cclxuXHRcdEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XHJcblx0XHRcdCRkaWdpdHM6IDE7XHJcblx0XHR9XHJcblxyXG5cdFx0QGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcclxuXHRcdFx0JHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XHJcblx0XHR9XHJcblxyXG5cdFx0QGVsc2Uge1xyXG5cdFx0XHQkZGlnaXRzOiAkZGlnaXRzICogMTA7XHJcblx0XHRcdCRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xyXG59XHJcblxyXG4vLy9cclxuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHVuaXRcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcclxuLy8vXHJcblxyXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcclxuXHQkdW5pdHM6ICgncHgnOiAxcHgsICdjbSc6IDFjbSwgJ21tJzogMW1tLCAnJSc6IDElLCAnY2gnOiAxY2gsICdwYyc6IDFwYywgJ2luJzogMWluLCAnZW0nOiAxZW0sICdyZW0nOiAxcmVtLCAncHQnOiAxcHQsICdleCc6IDFleCwgJ3Z3JzogMXZ3LCAndmgnOiAxdmgsICd2bWluJzogMXZtaW4sICd2bWF4JzogMXZtYXgpO1xyXG5cclxuXHRAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XHJcblx0XHQkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcclxufVxyXG5cclxuLy8vXHJcbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2ZcclxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcclxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxyXG4vLy8gZm9yIGluc3RhbmNlLlxyXG4vLy9cclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWtwb2ludHMgWygpXSAtIE1hcCBvZiB0d2Vha3BvaW50cyB0byBiZSBtZXJnZWQgd2l0aCBgJGJyZWFrcG9pbnRzYFxyXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBicmVha3BvaW50cyB3aXRoIGEgdHdlYWtwb2ludFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9Y3VzdG9tJykge1xyXG4vLy8gICAgICAgLy8gLi4uXHJcbi8vLyAgICAgIH1cclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIG1lZGlhIGV4cHJlc3Npb25zIHdpdGggYSBjdXN0b20gb25lXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnKSB7XHJcbi8vLyAgICAgICAvLyAuLi5cclxuLy8vICAgICAgfVxyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIGJvdGggY29uZmlndXJhdGlvbiBtYXBzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScsICc8PWN1c3RvbScpIHtcclxuLy8vICAgICAgIC8vIC4uLlxyXG4vLy8gICAgICB9XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuXHJcbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcclxuXHQvLyBTYXZlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcblx0JGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xyXG5cdCRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcclxuXHJcblx0Ly8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcblx0JGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XHJcblx0JG1lZGlhLWV4cHJlc3Npb25zOiBtYXAtbWVyZ2UoJG1lZGlhLWV4cHJlc3Npb25zLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMpICFnbG9iYWw7XHJcblxyXG5cdC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuXHQkYnJlYWtwb2ludHM6ICRnbG9iYWwtYnJlYWtwb2ludHMgIWdsb2JhbDtcclxuXHQkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcclxuXHJcblx0QGNvbnRlbnQ7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXHJcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXHJcbi8vLyBAYWNjZXNzIHB1YmxpY1xyXG4vLy8vXHJcblxyXG4vLy9cclxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cclxuLy8vXHJcblxyXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcclxuXHRAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID09IDApIG9yXHJcblx0XHQobm90ICRpbS1tZWRpYS1zdXBwb3J0IGFuZCBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSkge1xyXG5cdFx0QGNvbnRlbnQ7XHJcblx0fVxyXG5cclxuXHRAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPiAwKSB7XHJcblx0XHRAbWVkaWEgI3t1bnF1b3RlKHBhcnNlLWV4cHJlc3Npb24obnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XHJcblx0XHRcdC8vIFJlY3Vyc2l2ZSBjYWxsXHJcblxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcclxuXHRcdFx0XHRAY29udGVudDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/