@charset "UTF-8";
/* ────────────────────────────────
    reset
──────────────────────────────── */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
*::after, *::before {
    box-sizing: border-box;
}

html {
    height: 100%;
    font-family: var(--font-base);
    font-size: var(--font-size);
    color: var(--color-text);
    background-color: var(--color-background);
}

body {
    height: 100%;
    font-size: var(--font-base-size);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    background-color: var(--color-background);
    overflow-x: hidden;
}

ol,
ul {
    list-style: none;
}
ol::after,
ul::after {
    content: "";
    display: block;
    clear: both;
}

button {
    all: unset;
    cursor: pointer;
    box-sizing: border-box;
}

img,
svg,
picture,
video,
canvas,
iframe,
textarea {
    display: block;
    max-width: 100%;
}

img {
    vertical-align: top;
}

input,
button,
textarea,
select {
    font: inherit;
}

input {
    appearance: none;
    border-radius: none;
    outline: none;
    border-radius: 0;
    border: none;
}
input::-ms-clear {
    display: none;
}

input {
    color: var(--color-text);
    background-color: var(--color-background);
}
input::-webkit-search-decoration, input::-webkit-search-cancel-button, input::-webkit-search-results-button, input::-webkit-search-results-decoration {
    display: none;
}

input[type=text],
input[type=password],
input[type=submit],
input[type=search],
input[type=tel],
input[type=email],
html input[type=button],
input[type=reset] {
    appearance: none;
    -moz-appearance: none;
    -webkit-appearance: none;
    border-radius: 0;
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    outline: 0;
}

input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

input[type=number] {
    -moz-appearance: textfield;
}

select {
    appearance: none;
    outline: none;
    border-radius: 0;
    color: var(--color-text);
    background-color: var(--color-background);
}
select::-ms-expand {
    display: none;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
    overflow-wrap: break-word;
}

a {
    color: inherit;
    text-decoration: none;
    display: inline-block;
}

[onclick] {
    cursor: pointer;
}

span {
    display: inline-block;
}

/* ────────────────────────────────
    variable
──────────────────────────────── */
/* ────────────────────────────────
    mixins
──────────────────────────────── */
/* ────────────────────────────────
    root
──────────────────────────────── */
:root {
    --font-size: 62.5%;
    --font-base: "Pretendard";
    --font-base-size: 1.5rem;
    --color-border: #d9d9d9;
    --color-border-light: #e9e9e9;
    --color-border-gray: #c9c9c9;
    --color-background: #ffffff;
    --color-background-contrast: 0, 0, 0;
    --color-background-light: #f9f9f9;
    --color-background-light-active: #f6f6f6;
    --color-text: #283646;
    --color-text-dark: #404040;
    --color-text-light: #909090;
    --color-icon: #606060;
    --color-icon-light: #909090;
    --color-primary: #1b7df2;
    --color-primary-rgb: 54, 119, 241;
    --color-primary-hover: #276cee;
    --color-primary-active: #2363da;
    --color-primary-light: #f4f7ff;
    --color-primary-light-active: #ebf1ff;
    --color-primary-contrast: #ffffff;
    --color-primary-text: #4c546e;
    --color-white: #ffffff;
    --color-gray: #f9f9f9;
    --color-label: #808080;
    --color-link: #3182f6;
    --color-excel: #1d6f42;
    --color-excel-background: #f0fff6;
    --color-excel-active-background: #e4ffef;
    --color-delete: #fe2323;
    --color-delete-background: #fff6f6;
    --color-delete-active-background: #fdecec;
    --color-danger: #fe2323;
    --color-danger-background: #fff6f6;
    --color-danger-active-background: #fdecec;
    --color-info: #1e66c8;
    --color-info-background: #e6f0fb;
    --color-success: #267337;
    --color-success-background: #e4f6ea;
    --color-warning: #b78103;
    --color-warning-background: #fff4d6;
    --color-error: #bd2c0f;
    --color-error-background: #fdecea;
    --color-total: #276cee;
    --color-cancel: #ee4343;
    --badge-green: #198754;
    --badge-green-background: #d1f7d6;
    --badge-green-border: #b2e9b9;
    --badge-red: #c82333;
    --badge-red-background: #fcebea;
    --badge-red-border: #e9d0cf;
    --badge-blue: #0d6efd;
    --badge-blue-background: #e7f1fc;
    --badge-blue-border: #d0dff0;
    --badge-yellow: #856404;
    --badge-yellow-background: #fff3cd;
    --badge-darkred: #721c24;
    --badge-darkred-background: #f8d7da;
    --badge-purple: #6f42c1;
    --badge-purple-background: #f2e8fb;
    --badge-cyan: #0dcaf0;
    --badge-cyan-background: #e0f7fb;
    --badge-teal: #20c997;
    --badge-teal-background: #e0f9f3;
    --badge-orange: #fd7e14;
    --badge-orange-background: #fff0e5;
    --badge-brown: #795548;
    --badge-brown-background: #f1e7e3;
    --badge-indigo: #6610f2;
    --badge-indigo-background: #ede7fb;
    --badge-pink: #d63384;
    --badge-pink-background: #fde7f1;
    --badge-positive: #065f46;
    --badge-positive-background: #d1fae5;
    --badge-negative: #991b1b;
    --badge-negative-background: #fee2e2;
    --badge-warning: #92400e;
    --badge-warning-background: #fef3c7;
    --badge-info: #1e40af;
    --badge-info-background: #dbeafe;
    --badge-neutral: #374151;
    --badge-neutral-background: #e5e7eb;
    --radius: 0.6rem;
    --radius-snb: 0.6rem;
    --radius-card: 0.4rem;
    --radius-form: 0.6rem;
    --size-icon: 2.4rem;
    --size-icon-small: 2rem;
    --size-icon-xsmall: 1.6rem;
    --size-snb-icon: 2rem;
    --size-snb-width: 28rem;
    --size-snb-collapsed-width: 8rem;
    --size-logo-height: 4.8rem;
    --size-header-height: 8rem;
    --size-container-width: 120rem;
    --size-panel: 36rem;
    --gap-layout: 2rem;
    --gap-component: 1rem;
    --gap-main-container: 3rem;
    --gap-section: 4rem;
    --color-text-snb: #5c667b;
    --color-icon-snb: #5c667b;
    --color-border-snb: #e9e9e9;
    --size-form: 4.8rem;
    --size-table-form: 4rem;
    --padding-form: 1.2rem;
    --color-background-form: #ffffff;
    --color-background-form-readonly: #f6f6f6;
    --transition-duration: 0.15s;
    --z-index-loading: 102;
    --z-index-popover: 101;
    --z-index-modal: 100;
    --z-index-snb: 99;
    --z-index-header: 98;
    --z-index-panel: 97;
}
@media screen and (max-width: 767px) {
    :root {
        --font-size: 50%;
    }
}

/* ────────────────────────────────
    fonts
──────────────────────────────── */
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-Thin.woff2") format("woff2");
    font-weight: 100;
    font-display: swap;
}
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-ExtraLight.woff2") format("woff2");
    font-weight: 200;
    font-display: swap;
}
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-Light.woff2") format("woff2");
    font-weight: 300;
    font-display: swap;
}
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-Regular.woff2") format("woff2");
    font-weight: 400;
    font-display: swap;
}
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-Medium.woff2") format("woff2");
    font-weight: 500;
    font-display: swap;
}
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-SemiBold.woff2") format("woff2");
    font-weight: 600;
    font-display: swap;
}
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-Bold.woff2") format("woff2");
    font-weight: 700;
    font-display: swap;
}
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-ExtraBold.woff2") format("woff2");
    font-weight: 800;
    font-display: swap;
}
@font-face {
    font-family: "Pretendard";
    src: url("../fonts/Pretendard/Pretendard-Black.woff2") format("woff2");
    font-weight: 900;
    font-display: swap;
}
/* ────────────────────────────────
    color
──────────────────────────────── */
/* ────────────────────────────────
    icon
──────────────────────────────── */
/* ────────────────────────────────
    common
──────────────────────────────── */
body.modal-open {
    overflow-y: hidden;
}

.logo {
    width: fit-content;
    display: block;
    font-size: 1.8rem;
    font-weight: 700;
}

.key-value-box {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-form);
    padding: var(--gap-layout);
}
.key-value-box .key-value-item ~ .key-value-item {
    margin-top: 0.6rem;
}

.key-value-item {
    display: flex;
    justify-content: space-between;
    gap: 0 var(--gap-layout);
    white-space: nowrap;
}
.key-value-item .key {
    color: var(--color-text-dark);
}
.key-value-item .accent {
    font-size: 1.6rem;
    font-weight: 600;
}
.key-value-item .separator {
    color: var(--color-text-dark);
}

.line-clamp {
    display: -webkit-box !important;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-all;
    text-align: left;
}
.line-clamp.show {
    max-width: none !important;
}
.line-clamp.line-2 {
    -webkit-line-clamp: 2;
}

.ratio-img {
    overflow: hidden;
    position: relative;
}
.ratio-img::after {
    content: "";
    display: block;
    padding-bottom: 100%;
}
.ratio-img.ratio-3-4::after {
    padding-bottom: 133.33%;
}
.ratio-img img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.info-box {
    color: var(--color-primary);
    border: 1px solid var(--color-primary);
    background-color: var(--color-primary-light);
    border-radius: 0.4rem;
    padding: 2rem;
    margin-top: 1rem;
}

.file-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.file-list input[type=file] {
    display: none;
}
.file-list label {
    width: fit-content;
    cursor: pointer;
}
.file-list ul li ~ li {
    margin-top: 1rem;
}
.file-list a {
    width: fit-content;
    display: flex;
    gap: 1rem;
    color: var(--color-link);
}
.file-list a::before {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    color: var(--color-link);
}
.file-list a:hover, .file-list a:focus {
    text-decoration: underline;
}

.terms-list li {
    border: 1px solid var(--color-border);
    border-radius: 0.4rem;
    padding: 2rem;
}
.terms-list li ~ li {
    margin-top: 1.2rem;
}

.terms-content {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
}
.terms-content .terms-button {
    width: 2.4rem;
    height: 2.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
}
.terms-content .terms-button::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon-light);
    display: inline-block;
}

code {
    font-size: 1.4rem;
    font-family: var(--font-base);
    background-color: var(--color-primary-light);
    color: var(--color-primary);
    border-radius: 0.4rem;
    padding: 0.25rem 0.5rem;
    transition: var(--transition-duration);
}

.text-container {
    color: var(--color-text-dark);
}

.text-link {
    color: var(--color-link);
}
.text-link:hover, .text-link:focus {
    text-decoration: underline;
}

.theme-change-button .icon {
    width: var(--size-icon);
    height: var(--size-icon);
    background-repeat: no-repeat;
    background-size: var(--size-icon);
    background-position: center;
    transition: var(--transition-duration);
    position: relative;
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='%23606060' stroke-linejoin='round' stroke-width='2' d='M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z'/%3E%3Cpath stroke='%23606060' stroke-linecap='round' stroke-width='2' d='M20 12h1M3 12h1m8 8v1m0-18v1m5.657 13.657.707.707M5.636 5.636l.707.707m0 11.314-.707.707M18.364 5.636l-.707.707'/%3E%3C/svg%3E");
}
.theme-change-button:hover .icon, .theme-change-button:focus .icon {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='%233677f1' stroke-linejoin='round' stroke-width='2' d='M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z'/%3E%3Cpath stroke='%233677f1' stroke-linecap='round' stroke-width='2' d='M20 12h1M3 12h1m8 8v1m0-18v1m5.657 13.657.707.707M5.636 5.636l.707.707m0 11.314-.707.707M18.364 5.636l-.707.707'/%3E%3C/svg%3E");
}

.text-total {
    color: var(--color-total);
    font-weight: 700;
}

.text-cancel {
    color: var(--color-cancel);
}

.animated-number {
    min-width: 10rem;
    min-height: 2.6rem;
    text-align: right;
    white-space: nowrap;
}

.menu-search-list {
    display: flex;
    flex-direction: column;
}
.menu-search-list a,
.menu-search-list button {
    width: 100%;
    border-radius: var(--radius);
    display: flex;
    align-items: center;
    gap: var(--gap-component);
    padding: var(--gap-component);
    transition: var(--transition-duration);
}
.menu-search-list a .icon,
.menu-search-list button .icon {
    font-size: 1.8rem;
}
.menu-search-list a:hover, .menu-search-list a:focus,
.menu-search-list button:hover,
.menu-search-list button:focus {
    color: var(--color-primary);
    border-color: var(--color-primary);
    background-color: var(--color-primary-light);
    outline: none;
}
.menu-search-list a:hover::before, .menu-search-list a:focus::before,
.menu-search-list button:hover::before,
.menu-search-list button:focus::before {
    color: var(--color-primary) !important;
}
.menu-search-list > li ~ li {
    margin-top: var(--gap-component);
}
.menu-search-list > li > a {
    border: 1px solid var(--color-border);
}
.menu-search-list > li .menu-depth2 {
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    transition: var(--transition-duration);
}
.menu-search-list > li .menu-depth2:hover, .menu-search-list > li .menu-depth2:focus {
    border-color: var(--color-primary);
    outline: none;
}
.menu-search-list > li .menu-depth2 > button::after {
    content: "";
    display: block;
    width: var(--size-snb-icon);
    min-width: var(--size-snb-icon);
    height: var(--size-snb-icon);
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath fill='%23909090' d='m12 10.8-3.9 3.9a.948.948 0 0 1-.7.275.948.948 0 0 1-.7-.275.948.948 0 0 1-.275-.7c0-.283.092-.517.275-.7l4.6-4.6c.2-.2.433-.3.7-.3.267 0 .5.1.7.3l4.6 4.6a.948.948 0 0 1 .275.7.948.948 0 0 1-.275.7.948.948 0 0 1-.7.275.948.948 0 0 1-.7-.275L12 10.8Z'/%3E%3C/svg%3E");
    background-size: var(--size-snb-icon);
    background-repeat: no-repeat;
    background-position: center;
    color: var(--color-icon-snb);
    margin-left: auto;
}
.menu-search-list > li .menu-depth2 > button ~ ul {
    display: none;
}
.menu-search-list > li .menu-depth2 > button.is-open::after {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='%23909090' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
}
.menu-search-list > li .menu-depth2 > button.is-open ~ ul {
    display: block;
}
.menu-search-list > li .menu-depth2 > ul {
    padding-left: calc(var(--gap-component) + var(--size-icon));
    padding-right: var(--gap-component);
    padding-bottom: var(--gap-component);
}
.menu-search-list > li .menu-depth2 > ul > li > button::before {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    color: var(--color-icon-light);
    transition: var(--transition-duration);
}
.menu-search-list > li .menu-depth2 > ul > li > button::after {
    content: "";
    display: block;
    width: var(--size-snb-icon);
    min-width: var(--size-snb-icon);
    height: var(--size-snb-icon);
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath fill='%23909090' d='m12 10.8-3.9 3.9a.948.948 0 0 1-.7.275.948.948 0 0 1-.7-.275.948.948 0 0 1-.275-.7c0-.283.092-.517.275-.7l4.6-4.6c.2-.2.433-.3.7-.3.267 0 .5.1.7.3l4.6 4.6a.948.948 0 0 1 .275.7.948.948 0 0 1-.275.7.948.948 0 0 1-.7.275.948.948 0 0 1-.7-.275L12 10.8Z'/%3E%3C/svg%3E");
    background-size: var(--size-snb-icon);
    background-repeat: no-repeat;
    background-position: center;
    color: var(--color-icon-snb);
    margin-left: auto;
}
.menu-search-list > li .menu-depth2 > ul > li > button ~ ul {
    display: none;
}
.menu-search-list > li .menu-depth2 > ul > li > button.is-open::after {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='%23909090' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
}
.menu-search-list > li .menu-depth2 > ul > li > button.is-open ~ ul {
    display: block;
}
.menu-search-list > li .menu-depth2 > ul > li > a::before {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    color: var(--color-icon-light);
    transition: var(--transition-duration);
}
.menu-search-list > li .menu-depth2 > ul > li > ul {
    padding-left: var(--gap-layout);
}
.menu-search-list > li .menu-depth2 > ul > li > ul a::before {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    color: var(--color-icon-light);
    transition: var(--transition-duration);
}
.menu-search-list .nodata {
    padding: var(--gap-component);
    color: var(--color-text-light);
}

.img-preview-container {
    width: 100%;
    height: auto;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}
.img-preview-container img {
    margin: auto;
}

/* ────────────────────────────────
    common/theme/dark
──────────────────────────────── */
:root.theme-dark .theme-change-button .icon {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='%23b0bed1' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12 21a9 9 0 0 0 8.997-9.252 7 7 0 0 1-10.371-8.643A9 9 0 0 0 12 21Z'/%3E%3C/svg%3E");
}
:root.theme-dark .theme-change-button:hover .icon, :root.theme-dark .theme-change-button:focus .icon {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='%234d84f1' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12 21a9 9 0 0 0 8.997-9.252 7 7 0 0 1-10.371-8.643A9 9 0 0 0 12 21Z'/%3E%3C/svg%3E");
}

/* ────────────────────────────────
    animation
──────────────────────────────── */
@keyframes spin {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}
/* ────────────────────────────────
    section
──────────────────────────────── */
.section {
    position: relative;
}
.section ~ .section {
    margin-top: 8rem;
}

.section-head {
    display: flex;
    justify-content: space-between;
    gap: var(--gap-layout);
}
@media screen and (max-width: 767px) {
    .section-head {
        flex-direction: column;
    }
    .section-head .button-group {
        flex-wrap: wrap !important;
    }
    .section-head .button-group .button {
        flex: 1;
    }
}

.section-title {
    font-size: 2.4rem;
    font-weight: 700;
}
.section-title ~ .section-sub-title, .section-title ~ .text-container {
    margin-top: var(--gap-component);
}

.section-sub-title {
    font-size: 1.6rem;
    color: var(--color-text-dark);
}

.section-tab {
    width: 100%;
    height: auto;
    position: relative;
    overflow: auto;
    display: flex;
    margin-top: var(--gap-layout);
    border-bottom: 1px solid var(--color-border-light);
}
.section-tab::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
.section-tab::-webkit-scrollbar-track {
    border-radius: var(--radius);
    background-color: #78788030;
}
.section-tab::-webkit-scrollbar-thumb {
    border-radius: var(--radius);
    background: #78788030;
}
.section-tab::-webkit-scrollbar-thumb:hover {
    background: #78788050;
}
.section-tab::-webkit-scrollbar-thumb:active {
    background: #78788070;
}
.section-tab::-webkit-scrollbar-button {
    display: none;
}
.section-tab a,
.section-tab button {
    padding: 0 var(--gap-layout) var(--gap-component) var(--gap-layout);
    font-size: 1.8rem;
    color: var(--color-text-light);
    text-align: center;
    position: relative;
    transition: var(--transition-duration);
}
.section-tab a::after,
.section-tab button::after {
    content: "";
    display: block;
    width: 0;
    height: 2px;
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    background-color: var(--color-primary);
    opacity: 0;
    transition: var(--transition-duration);
}
.section-tab a:hover,
.section-tab button:hover {
    color: var(--color-primary);
}
.section-tab a.active,
.section-tab button.active {
    color: var(--color-primary);
    font-weight: 600;
}
.section-tab a.active::after,
.section-tab button.active::after {
    width: 100%;
    opacity: 1;
}

.section-content {
    display: flex;
    flex-direction: column;
    margin-top: var(--gap-section);
}

/* ────────────────────────────────
    grid
──────────────────────────────── */
.grid-container {
    display: grid;
    gap: var(--gap-layout);
    grid-template-columns: repeat(12, minmax(0, 1fr));
}
.grid-container .grid-item.grid-item-row-1 {
    grid-row: span 1;
}
.grid-container .grid-item.grid-item-row-2 {
    grid-row: span 2;
}
.grid-container .grid-item.grid-item-row-3 {
    grid-row: span 3;
}
.grid-container .grid-item.grid-item-row-4 {
    grid-row: span 4;
}
.grid-container .grid-item.grid-item-row-5 {
    grid-row: span 5;
}
.grid-container .grid-item.grid-item-row-6 {
    grid-row: span 6;
}
.grid-container .grid-item.grid-item-row-7 {
    grid-row: span 7;
}
.grid-container .grid-item.grid-item-row-8 {
    grid-row: span 8;
}
.grid-container .grid-item.grid-item-row-9 {
    grid-row: span 9;
}
.grid-container .grid-item.grid-item-row-10 {
    grid-row: span 10;
}
.grid-container .grid-item.grid-item-row-11 {
    grid-row: span 11;
}
.grid-container .grid-item.grid-item-row-12 {
    grid-row: span 12;
}
.grid-container .grid-item.grid-item-column-1 {
    grid-column: span 1;
}
.grid-container .grid-item.grid-item-column-2 {
    grid-column: span 2;
}
.grid-container .grid-item.grid-item-column-3 {
    grid-column: span 3;
}
.grid-container .grid-item.grid-item-column-4 {
    grid-column: span 4;
}
.grid-container .grid-item.grid-item-column-5 {
    grid-column: span 5;
}
.grid-container .grid-item.grid-item-column-6 {
    grid-column: span 6;
}
.grid-container .grid-item.grid-item-column-7 {
    grid-column: span 7;
}
.grid-container .grid-item.grid-item-column-8 {
    grid-column: span 8;
}
.grid-container .grid-item.grid-item-column-9 {
    grid-column: span 9;
}
.grid-container .grid-item.grid-item-column-10 {
    grid-column: span 10;
}
.grid-container .grid-item.grid-item-column-11 {
    grid-column: span 11;
}
.grid-container .grid-item.grid-item-column-12 {
    grid-column: span 12;
}
.grid-container .grid-item .card {
    height: 100%;
}
@media screen and (max-width: 767px) {
    .grid-container .grid-item.grid-item-column-1, .grid-container .grid-item.grid-item-column-2, .grid-container .grid-item.grid-item-column-3, .grid-container .grid-item.grid-item-column-4, .grid-container .grid-item.grid-item-column-5 {
        grid-column: span 6;
    }
    .grid-container .grid-item.grid-item-column-6, .grid-container .grid-item.grid-item-column-7, .grid-container .grid-item.grid-item-column-8, .grid-container .grid-item.grid-item-column-9, .grid-container .grid-item.grid-item-column-10, .grid-container .grid-item.grid-item-column-11, .grid-container .grid-item.grid-item-column-12 {
        grid-column: span 12;
    }
    .grid-container .grid-item.grid-item-column-mobile-1 {
        grid-column: span 1;
    }
    .grid-container .grid-item.grid-item-column-mobile-2 {
        grid-column: span 2;
    }
    .grid-container .grid-item.grid-item-column-mobile-3 {
        grid-column: span 3;
    }
    .grid-container .grid-item.grid-item-column-mobile-4 {
        grid-column: span 4;
    }
    .grid-container .grid-item.grid-item-column-mobile-5 {
        grid-column: span 5;
    }
    .grid-container .grid-item.grid-item-column-mobile-6 {
        grid-column: span 6;
    }
    .grid-container .grid-item.grid-item-column-mobile-7 {
        grid-column: span 7;
    }
    .grid-container .grid-item.grid-item-column-mobile-8 {
        grid-column: span 8;
    }
    .grid-container .grid-item.grid-item-column-mobile-9 {
        grid-column: span 9;
    }
    .grid-container .grid-item.grid-item-column-mobile-10 {
        grid-column: span 10;
    }
    .grid-container .grid-item.grid-item-column-mobile-11 {
        grid-column: span 11;
    }
    .grid-container .grid-item.grid-item-column-mobile-12 {
        grid-column: span 12;
    }
}

/* ────────────────────────────────
    header
──────────────────────────────── */
.header {
    width: 100%;
    height: var(--size-header-height);
    position: fixed;
    left: 0;
    top: 0;
    z-index: var(--z-index-header);
    background-color: var(--color-background);
    border-bottom: 1px solid #f2f2f2;
}
@media screen and (max-width: 1239px) {
    .header {
        padding: 0 2rem;
    }
}

.header-container {
    width: 100%;
    max-width: var(--size-container-width);
    height: 100%;
    position: relative;
    display: flex;
    align-items: center;
    margin: 0 auto;
}

/* ────────────────────────────────
    snb
──────────────────────────────── */
.snb {
    width: var(--size-snb-width);
    height: 100%;
    position: fixed;
    left: 0;
    top: 0;
    z-index: var(--z-index-snb);
    background-color: var(--color-background);
    border-right: 1px solid var(--color-border-snb);
    white-space: nowrap;
    transition: var(--transition-duration);
    pointer-events: none;
}
@media screen and (max-width: 1239px) {
    .snb {
        left: auto;
        right: calc(var(--size-snb-width) * -1);
        border-right: none;
        border-left: 1px solid var(--color-border-snb);
    }
    .snb.active {
        right: 0;
    }
    .snb.active .snb-layer {
        opacity: 1;
        pointer-events: auto;
    }
}

.snb-layer {
    width: 100%;
    height: 100%;
    position: fixed;
    left: 0;
    top: 0;
    background-color: rgba(var(--color-background-contrast), 0.2);
    opacity: 0;
    pointer-events: none;
    z-index: -1;
    transition: var(--transition-duration);
}
@media screen and (min-width: 1240px) {
    .snb-layer {
        display: none !important;
    }
}

.snb-head {
    height: var(--size-header-height);
    display: flex;
    align-items: center;
    padding: var(--gap-layout) calc(var(--gap-layout) + (var(--gap-layout) / 2));
    border-bottom: 1px solid var(--color-border-snb);
    background-color: var(--color-background);
    transition: var(--transition-duration);
}
.snb-head .symbol {
    width: var(--size-icon);
    min-width: var(--size-icon);
    height: var(--size-icon);
    min-height: var(--size-icon);
    display: flex;
    align-items: center;
    justify-content: center;
    display: none;
}
.snb-head .snb-util {
    margin-left: auto;
}
@media screen and (min-width: 1240px) {
    .snb-head .snb-util {
        display: none !important;
    }
}
@media screen and (max-width: 1239px) {
    .snb-head {
        padding: var(--gap-layout);
    }
    .snb-head .logo,
.snb-head .symbol {
        display: none;
    }
}

.snb-body {
    position: relative;
    height: calc(100% - var(--size-header-height));
    background-color: var(--color-background);
    padding: var(--gap-layout);
    overflow: auto;
    overflow-x: hidden;
    transition: var(--transition-duration);
    display: flex;
    flex-direction: column;
}
.snb-body::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
.snb-body::-webkit-scrollbar-track {
    border-radius: var(--radius);
    background-color: #78788030;
}
.snb-body::-webkit-scrollbar-thumb {
    border-radius: var(--radius);
    background: #78788030;
}
.snb-body::-webkit-scrollbar-thumb:hover {
    background: #78788050;
}
.snb-body::-webkit-scrollbar-thumb:active {
    background: #78788070;
}
.snb-body::-webkit-scrollbar-button {
    display: none;
}
.snb-body .snb-util {
    width: calc(100% + var(--gap-layout) * 2);
    position: sticky;
    left: 0;
    bottom: 0;
    background-color: var(--color-background);
    border-top: 1px solid var(--color-border-snb);
    padding: var(--gap-layout);
    padding-bottom: 0;
    margin-left: calc(var(--gap-layout) * -1);
}
.snb-body .snb-util::after {
    content: "";
    width: 100%;
    height: var(--gap-layout);
    background-color: var(--color-background);
    position: absolute;
    left: 0;
    bottom: calc(var(--gap-layout) * -1);
}
@media screen and (max-width: 1239px) {
    .snb-body {
        height: calc(100% - var(--size-header-height) - var(--size-header-height));
    }
}

.snb-bottom {
    height: var(--size-header-height);
    background-color: var(--color-background);
    border-top: 1px solid var(--color-border-snb);
    display: flex;
    align-items: center;
    padding: var(--gap-layout);
    transition: var(--transition-duration);
}
.snb-bottom .snb-util {
    width: 100%;
}
.snb-bottom .snb-util .button-group {
    gap: 0.1rem;
    flex-direction: row;
}
.snb-bottom .snb-util .button-group .button {
    width: auto;
    flex: 0;
}
.snb-bottom .snb-util .button-group .logout-button {
    margin-left: auto;
}
@media screen and (min-width: 1240px) {
    .snb-bottom {
        display: none !important;
    }
}

.snb-menu {
    flex: 1;
}
.snb-menu .snb-menu-item button::after {
    content: "";
    display: block;
    width: var(--size-snb-icon);
    min-width: var(--size-snb-icon);
    height: var(--size-snb-icon);
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='%23909090' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
    background-size: var(--size-snb-icon);
    background-repeat: no-repeat;
    background-position: center;
    color: var(--color-icon-snb);
    margin-left: auto;
}
.snb-menu .snb-menu-item button.is-current::after, .snb-menu .snb-menu-item button.is-open::after {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='%233677f1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
}
.snb-menu .snb-menu-item .snb-menu-button {
    width: 100%;
    height: 4.2rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 1.5rem;
    color: var(--color-text-snb);
    border-radius: var(--radius-snb);
    transition: var(--transition-duration);
    padding: 0 calc(var(--gap-layout) / 2);
}
.snb-menu .snb-menu-item .snb-menu-button .text {
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
}
.snb-menu .snb-menu-item .snb-menu-button:hover, .snb-menu .snb-menu-item .snb-menu-button:focus {
    background-color: var(--color-primary-light);
}
.snb-menu .snb-menu-item .snb-menu-button:active {
    background-color: var(--color-primary-light-active);
}
.snb-menu .snb-menu-item .snb-menu-button.is-open::after {
    transform: rotate(180deg);
}
.snb-menu .snb-menu-item .snb-menu-button.is-open, .snb-menu .snb-menu-item .snb-menu-button.is-current {
    font-weight: 500;
    color: var(--color-primary);
}
.snb-menu .snb-menu-item .snb-menu-button.is-open .icon, .snb-menu .snb-menu-item .snb-menu-button.is-current .icon {
    color: var(--color-primary);
}
.snb-menu .snb-menu-item .snb-menu-button.active {
    font-weight: 500;
    color: var(--color-primary);
    background-color: var(--color-primary-light);
}
.snb-menu .snb-menu-item .snb-menu-button.active .icon {
    color: var(--color-primary);
}
.snb-menu .snb-menu-item .snb-menu-button .icon {
    width: var(--size-snb-icon);
    min-width: var(--size-snb-icon);
    height: var(--size-snb-icon);
    min-height: var(--size-snb-icon);
    color: var(--color-icon-snb);
    font-size: 1.8rem;
    display: flex;
    align-items: center;
    justify-content: center;
}
.snb-menu .snb-menu-item ~ .snb-menu-item {
    margin-top: 0.8rem;
}

.snb-menu-depth2 {
    margin-top: 0.6rem;
    display: none;
}
.snb-menu-depth2.is-current {
    display: block;
}
.snb-menu-depth2 .snb-menu-depth2-item .snb-menu-depth2-button {
    width: 100%;
    height: 4.2rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 1.5rem;
    color: var(--color-text-snb);
    border-radius: var(--radius-snb);
    transition: var(--transition-duration);
    padding-left: calc(var(--size-snb-icon) + (var(--gap-layout) / 2) + 1rem);
    padding-right: calc(var(--gap-layout) / 2);
}
.snb-menu-depth2 .snb-menu-depth2-item .snb-menu-depth2-button .text {
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
}
.snb-menu-depth2 .snb-menu-depth2-item .snb-menu-depth2-button:hover, .snb-menu-depth2 .snb-menu-depth2-item .snb-menu-depth2-button:focus {
    background-color: var(--color-primary-light);
}
.snb-menu-depth2 .snb-menu-depth2-item .snb-menu-depth2-button:active {
    background-color: var(--color-primary-light-active);
}
.snb-menu-depth2 .snb-menu-depth2-item .snb-menu-depth2-button.is-open::after {
    transform: rotate(180deg);
}
.snb-menu-depth2 .snb-menu-depth2-item .snb-menu-depth2-button.is-open, .snb-menu-depth2 .snb-menu-depth2-item .snb-menu-depth2-button.is-current {
    font-weight: 500;
    color: var(--color-primary);
}
.snb-menu-depth2 .snb-menu-depth2-item .snb-menu-depth2-button.is-open .icon, .snb-menu-depth2 .snb-menu-depth2-item .snb-menu-depth2-button.is-current .icon {
    color: var(--color-primary);
}
.snb-menu-depth2 .snb-menu-depth2-item .snb-menu-depth2-button.active {
    font-weight: 500;
    color: var(--color-primary);
    background-color: var(--color-primary-light);
}
.snb-menu-depth2 .snb-menu-depth2-item .snb-menu-depth2-button.active .icon {
    color: var(--color-primary);
}
.snb-menu-depth2 .snb-menu-depth2-item ~ .snb-menu-depth2-item {
    margin-top: 0.6rem;
}

.snb-menu-depth3 {
    margin-top: 0.4rem;
    display: none;
}
.snb-menu-depth3.is-current {
    display: block;
}
.snb-menu-depth3 .snb-menu-depth3-item .snb-menu-depth3-button {
    width: 100%;
    height: 4.2rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 1.5rem;
    color: var(--color-text-snb);
    border-radius: var(--radius-snb);
    transition: var(--transition-duration);
    padding-left: calc(var(--size-snb-icon) + (var(--gap-layout) / 2) + 1rem + 1rem + 1rem);
    padding-right: var(--gap-component);
}
.snb-menu-depth3 .snb-menu-depth3-item .snb-menu-depth3-button .text {
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
}
.snb-menu-depth3 .snb-menu-depth3-item .snb-menu-depth3-button:hover, .snb-menu-depth3 .snb-menu-depth3-item .snb-menu-depth3-button:focus {
    background-color: var(--color-primary-light);
}
.snb-menu-depth3 .snb-menu-depth3-item .snb-menu-depth3-button:active {
    background-color: var(--color-primary-light-active);
}
.snb-menu-depth3 .snb-menu-depth3-item .snb-menu-depth3-button.is-open::after {
    transform: rotate(180deg);
}
.snb-menu-depth3 .snb-menu-depth3-item .snb-menu-depth3-button.is-open, .snb-menu-depth3 .snb-menu-depth3-item .snb-menu-depth3-button.is-current {
    font-weight: 500;
    color: var(--color-primary);
}
.snb-menu-depth3 .snb-menu-depth3-item .snb-menu-depth3-button.is-open .icon, .snb-menu-depth3 .snb-menu-depth3-item .snb-menu-depth3-button.is-current .icon {
    color: var(--color-primary);
}
.snb-menu-depth3 .snb-menu-depth3-item .snb-menu-depth3-button.active {
    font-weight: 500;
    color: var(--color-primary);
    background-color: var(--color-primary-light);
}
.snb-menu-depth3 .snb-menu-depth3-item .snb-menu-depth3-button.active .icon {
    color: var(--color-primary);
}
.snb-menu-depth3 .snb-menu-depth3-item ~ .snb-menu-depth3-item {
    margin-top: 0.4rem;
}

/* ────────────────────────────────
    snb/snb/collapsed
──────────────────────────────── */
@media screen and (min-width: 1240px) {
    body.snb-collapsed .snb {
        width: var(--size-snb-collapsed-width);
    }
    body.snb-collapsed .snb ul li {
        position: relative;
    }
    body.snb-collapsed .snb-head {
        justify-content: center;
        padding: 0 calc(var(--gap-layout) + var(--gap-component));
    }
    body.snb-collapsed .snb-head .symbol {
        display: flex;
    }
    body.snb-collapsed .snb-head .logo {
        display: none;
    }
    body.snb-collapsed .snb-body {
        padding: var(--gap-layout) 0;
    }
    body.snb-collapsed .snb-menu .snb-menu-item .snb-menu-button {
        width: 4.2rem;
        margin: 0 auto;
    }
    body.snb-collapsed .snb-menu .snb-menu-item .snb-menu-button::after {
        display: none;
    }
    body.snb-collapsed .snb-menu .snb-menu-item .snb-menu-button .text {
        display: none;
    }
    body.snb-collapsed .snb-menu .snb-menu-item .snb-menu-button:hover ~ .snb-menu-depth2 {
        display: block !important;
    }
    body.snb-collapsed .snb-menu-depth2 {
        position: fixed;
        top: auto;
        left: calc(var(--size-snb-collapsed-width) + var(--gap-component));
        transform: translateY(-4.2rem);
        background-color: var(--color-background);
        border: 1px solid var(--color-border);
        border-color: var(--color-border-snb);
        box-shadow: 0 0 10px rgba(var(--color-background-contrast), 0.1);
        border-radius: var(--radius-form);
        padding: var(--gap-component);
    }
    body.snb-collapsed .snb-menu-depth2::before {
        content: "";
        display: block;
        width: calc(var(--size-snb-collapsed-width) - var(--gap-layout) - var(--gap-layout));
        height: 100%;
        position: absolute;
        left: calc(-1 * (var(--size-snb-collapsed-width) - var(--gap-layout) - var(--gap-layout)));
        top: 0;
        background-color: transparent;
    }
    body.snb-collapsed .snb-menu-depth2 .snb-menu-depth2-item .snb-menu-depth2-button {
        padding: var(--gap-component);
    }
    body.snb-collapsed .snb-menu-depth2.is-current, body.snb-collapsed .snb-menu-depth2.is-open {
        display: none !important;
    }
    body.snb-collapsed .snb-menu-depth2:hover {
        display: block !important;
    }
    body.snb-collapsed .snb-menu-depth3 .snb-menu-depth3-item .snb-menu-depth3-button {
        padding: var(--gap-component);
        padding-left: calc(var(--gap-component) + var(--size-snb-icon));
    }
}

/* ────────────────────────────────
    datepicker/theme/dark
──────────────────────────────── */
:root.theme-dark .snb-menu .snb-menu-item button::after {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='%238896ad' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
}
:root.theme-dark .snb-menu .snb-menu-item button.is-current::after, :root.theme-dark .snb-menu .snb-menu-item button.is-open::after {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='%234d84f1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
}

/* ────────────────────────────────
    main
──────────────────────────────── */
.main {
    width: 100%;
    height: auto;
    position: relative;
    background-color: var(--color-background);
    padding-top: var(--size-header-height);
}

.layout-container {
    width: 100%;
    max-width: var(--size-container-width);
    margin: 0 auto;
}

@media screen and (max-width: 1239px) {
    .main-section {
        padding: 0 2rem;
    }
}

.main-visual {
    padding-top: 12rem;
}

.visual-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
@media screen and (max-width: 1023px) {
    .visual-container {
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 6rem;
    }
}

.visual-title {
    word-break: keep-all;
}
.visual-title h2 {
    font-size: 4.8rem;
    font-weight: 800;
}
.visual-title h2 span {
    color: var(--color-primary);
}
.visual-title p {
    font-size: 2.4rem;
    margin-top: 2rem;
}
@media screen and (max-width: 1023px) {
    .visual-title {
        text-align: center;
    }
}

@media screen and (max-width: 1023px) {
    .visual-img {
        margin-left: -4rem;
        max-width: calc(100% - 4rem);
    }
}

.main-info {
    background-color: #f8fafd;
    padding: 12rem 0;
}
@media screen and (max-width: 1239px) {
    .main-info {
        padding: 12rem 2rem;
    }
}

.info-container {
    display: flex;
    flex-wrap: wrap;
    gap: 4rem;
}

.info-card {
    flex: 1 1 40%;
    background-color: var(--color-background);
    box-shadow: 0 0 10px rgba(var(--color-background-contrast), 0.1);
    border-radius: 1rem;
    padding: 4rem;
    display: flex;
    flex-direction: column;
    gap: 2rem;
}
.info-card img {
    width: 7.2rem;
}
.info-card h3 {
    font-size: 3rem;
    font-weight: 700;
}
.info-card p {
    font-size: 2rem;
    color: var(--color-text-dark);
    word-break: keep-all;
}
@media screen and (max-width: 1023px) {
    .info-card {
        flex: auto;
        width: 100%;
    }
}

/* ────────────────────────────────
    footer
──────────────────────────────── */
.footer {
    width: 100%;
    background-color: var(--color-background);
    padding: 8rem 0;
}
@media screen and (max-width: 1239px) {
    .footer {
        padding: 8rem 2rem;
    }
}

.footer-container {
    width: 100%;
    max-width: var(--size-container-width);
    margin: 0 auto;
}

.footer-info {
    margin: 2rem 0;
}
.footer-info p {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.footer-info span {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.footer-info span::before {
    content: "";
    display: inline-block;
    width: 1px;
    height: 10px;
    background-color: var(--color-border);
}
.footer-info span:first-child::before {
    display: none;
}

.copyright {
    color: var(--color-text-light);
}

/* ────────────────────────────────
    popup
──────────────────────────────── */
.popup-container {
    width: 100%;
    height: auto;
    position: relative;
    min-height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--gap-layout);
}
@media screen and (max-width: 767px) {
    .popup-container {
        align-items: flex-start;
    }
}

.popup-content {
    width: 100%;
    height: auto;
    position: relative;
    max-width: var(--size-container-width);
    background-color: var(--color-background);
    box-shadow: 0 0 10px rgba(var(--color-background-contrast), 0.1);
    border-radius: var(--radius-form);
    padding: var(--gap-section);
}
@media screen and (max-width: 767px) {
    .popup-content {
        box-shadow: none;
        padding: 0;
    }
}

/* ────────────────────────────────
    error
──────────────────────────────── */
.error-container {
    width: 100%;
    height: auto;
    position: relative;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--gap-section);
    padding: var(--gap-layout);
    text-align: center;
}
.error-container .error-code {
    width: 20rem;
    height: 20rem;
    border-radius: 50%;
    background-color: var(--color-background-light);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 6rem;
    font-weight: 900;
    color: var(--color-text-light);
}
.error-container .error-title {
    font-size: 2.4rem;
    font-weight: 700;
}
.error-container .error-text {
    font-size: 1.8rem;
}

/* ────────────────────────────────
    icon
──────────────────────────────── */
.icon {
    width: var(--size-icon);
    min-width: var(--size-icon);
    height: var(--size-icon);
    min-height: var(--size-icon);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--color-icon);
    font-size: 1.6rem;
}
.icon .fa-thumbtack {
    transform: rotate(45deg);
}
.icon.icon-small {
    width: var(--size-icon-small);
    min-width: var(--size-icon-small);
    height: var(--size-icon-small);
    min-height: var(--size-icon-small);
}
.icon.icon-xsmall {
    width: var(--size-icon-xsmall);
    min-width: var(--size-icon-xsmall);
    height: var(--size-icon-xsmall);
    min-height: var(--size-icon-xsmall);
}
.icon.icon-close {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cg clip-path='url(%23a)'%3E%3Cpath fill='%23606060' fill-rule='evenodd' d='m12.01 13.142 4.61 4.61a.815.815 0 0 0 1.151-1.153l-4.609-4.609 4.61-4.61a.815.815 0 0 0-1.153-1.151l-4.609 4.609-4.61-4.61a.815.815 0 0 0-1.15 1.153l4.608 4.609-4.61 4.61a.814.814 0 1 0 1.153 1.151l4.609-4.609Z' clip-rule='evenodd'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='a'%3E%3Cpath fill='%23fff' d='M0 0h24v24H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
}
.icon.icon-check {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath fill='%23606060' d='m9.55 15.15 8.475-8.475c.2-.2.433-.3.7-.3.267 0 .5.1.7.3.2.2.3.438.3.713a.97.97 0 0 1-.3.712l-9.175 9.2c-.2.2-.433.3-.7.3a.96.96 0 0 1-.7-.3L4.55 13a.932.932 0 0 1-.288-.712c.008-.275.112-.512.313-.713.2-.2.438-.3.713-.3.275 0 .512.1.712.3l3.55 3.575Z'/%3E%3C/svg%3E");
}
.icon.icon-date {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cg clip-path='url(%23a)'%3E%3Cpath fill='%23606060' d='M6.808 0a.84.84 0 0 1 .84.84v1.57h9.02V.85a.84.84 0 0 1 1.68 0v1.56H21.6a2.4 2.4 0 0 1 2.4 2.4V21.6A2.4 2.4 0 0 1 21.6 24H2.4A2.4 2.4 0 0 1 0 21.601V4.81a2.4 2.4 0 0 1 2.4-2.4h3.568V.84A.84.84 0 0 1 6.808 0ZM1.68 9.29v12.311a.72.72 0 0 0 .72.72h19.2a.72.72 0 0 0 .72-.72V9.307L1.68 9.29ZM8 17.543v1.999H6v-2h2Zm5 0v1.999h-2v-2h2Zm5 0v1.999h-2v-2h2ZM8 12.77v2H6v-2h2Zm5 0v2h-2v-2h2Zm5 0v2h-2v-2h2ZM5.968 4.09H2.4a.72.72 0 0 0-.72.72v2.802l20.64.016V4.81a.72.72 0 0 0-.72-.72h-3.252v1.114a.84.84 0 0 1-1.68 0V4.09h-9.02v1.104a.84.84 0 0 1-1.68 0V4.09Z'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='a'%3E%3Cpath fill='%23fff' d='M0 0h24v24H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
}
.icon.icon-chevron-up {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath fill='%23606060' d='m12 10.8-3.9 3.9a.948.948 0 0 1-.7.275.948.948 0 0 1-.7-.275.948.948 0 0 1-.275-.7c0-.283.092-.517.275-.7l4.6-4.6c.2-.2.433-.3.7-.3.267 0 .5.1.7.3l4.6 4.6a.948.948 0 0 1 .275.7.948.948 0 0 1-.275.7.948.948 0 0 1-.7.275.948.948 0 0 1-.7-.275L12 10.8Z'/%3E%3C/svg%3E");
}
.icon.icon-chevron-down {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='%23606060' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
}
.icon.icon-chevron-left {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath fill='%23606060' d='M14.71 15.88 10.83 12l3.88-3.88a.997.997 0 1 0-1.41-1.41L8.71 11.3a.996.996 0 0 0 0 1.41l4.59 4.59c.39.39 1.02.39 1.41 0 .38-.39.39-1.03 0-1.42Z'/%3E%3C/svg%3E");
}
.icon.icon-chevron-right {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath fill='%23606060' d='M9.29 15.88 13.17 12 9.29 8.12a.997.997 0 0 1 1.41-1.41l4.59 4.59c.39.39.39 1.02 0 1.41L10.7 17.3a.994.994 0 0 1-1.41 0c-.38-.39-.39-1.03 0-1.42Z'/%3E%3C/svg%3E");
}
.icon.icon-arrow-up {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='%23606060' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 20V4m0 0 6 6m-6-6-6 6'/%3E%3C/svg%3E");
}
.icon.icon-mode-light {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='%23606060' stroke-linejoin='round' stroke-width='2' d='M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z'/%3E%3Cpath stroke='%23606060' stroke-linecap='round' stroke-width='2' d='M20 12h1M3 12h1m8 8v1m0-18v1m5.657 13.657.707.707M5.636 5.636l.707.707m0 11.314-.707.707M18.364 5.636l-.707.707'/%3E%3C/svg%3E");
}
.icon.icon-mode-dark {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='%23606060' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12 21a9 9 0 0 0 8.997-9.252 7 7 0 0 1-10.371-8.643A9 9 0 0 0 12 21Z'/%3E%3C/svg%3E");
}

/* ────────────────────────────────
    loading
──────────────────────────────── */
.loading-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(var(--color-background-contrast), 0.2);
    z-index: var(--z-index-loading);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--gap-layout);
    opacity: 0;
    pointer-events: none;
    transition: var(--transition-duration);
}
.loading-container.active {
    opacity: 1;
    pointer-events: auto;
}
.loading-container.hidden-title .loading-title {
    display: none;
}
.loading-container.hidden-sub-title .loading-sub-title {
    display: none;
}

.loading-spinner {
    width: 4rem;
    height: 4rem;
    border: 0.4rem solid var(--color-background-light);
    border-top-color: var(--color-primary);
    border-radius: 50%;
    animation: spin 0.8s ease-in-out infinite;
}

@keyframes spin {
    0% {
        transform: rotate(0);
    }
    100% {
        transform: rotate(360deg);
    }
}
.loading-title-container {
    text-align: center;
    color: var(--color-primary-contrast);
}

.loading-title {
    font-size: 1.8rem;
    font-weight: 500;
}

.loading-sub-title {
    white-space: pre-line;
}

/* ────────────────────────────────
    button
──────────────────────────────── */
.button-group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--gap-component);
    /*
    @include mq-custom(max, '519px') {
        flex-direction: column;

        .button-group {
            width: 100%;
        }

        .left,
        .right {
            flex: 1;
            margin: 0;
        }

        .button {
            width: 100%;
            flex: 1;
        }
    }
    */
}
.button-group.gap-half {
    gap: calc(var(--gap-component) / 2);
}
.button-group.left {
    justify-content: flex-start;
}
.button-group.center {
    justify-content: center;
}
.button-group.right {
    justify-content: flex-end;
}
.button-group.between {
    justify-content: space-between;
}
.button-group.nowrap {
    flex-wrap: nowrap;
}
.button-group.full .button {
    flex: 1;
}

.button {
    min-height: var(--size-form);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    text-align: center;
    white-space: nowrap;
    padding: 1rem 2rem;
    border-radius: var(--radius-form);
    border: 1px solid var(--color-border);
    transition: var(--transition-duration);
}
.button:disabled {
    pointer-events: none;
}
.button i,
.button .icon {
    width: var(--size-icon-small);
    min-width: var(--size-icon-small);
    height: var(--size-icon-small);
    min-height: var(--size-icon-small);
    color: var(--color-icon);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.button:hover, .button:focus {
    color: var(--color-primary);
    border-color: var(--color-primary);
    background-color: var(--color-primary-light);
    outline: none;
}
.button:hover i,
.button:hover .icon, .button:focus i,
.button:focus .icon {
    color: var(--color-primary);
}
.button:active {
    background-color: var(--color-primary-light-active);
}
.button.button-small {
    min-height: auto;
    padding: 0.6rem 1.2rem;
    font-size: 1.4rem;
}
.button.button-small i,
.button.button-small .icon {
    width: var(--size-icon-xsmall);
    min-width: var(--size-icon-xsmall);
    height: var(--size-icon-xsmall);
    min-height: var(--size-icon-xsmall);
    font-size: 1.4rem;
}
.button.button-xsmall {
    min-height: auto;
    padding: 0.4rem 0.8rem;
    font-size: 1.2rem;
}
.button.button-loading {
    pointer-events: none;
}
.button.button-loading .text,
.button.button-loading .icon {
    opacity: 0;
}
.button.button-loading::after {
    content: "";
    display: block;
    position: absolute;
    width: 1.6rem;
    height: 1.6rem;
    border: 2px solid var(--color-border);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}
.button.button-util {
    min-width: var(--size-form);
    padding: 0;
}
.button.button-primary {
    color: var(--color-primary-contrast);
    background-color: var(--color-primary);
    border-color: transparent;
}
.button.button-primary i,
.button.button-primary .icon {
    color: var(--color-primary-contrast);
}
.button.button-primary.button-loading::after {
    display: block;
    position: absolute;
    width: 1.6rem;
    height: 1.6rem;
    border: 2px solid var(--color-primary-contrast);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}
.button.button-primary:hover, .button.button-primary:focus {
    background-color: var(--color-primary-hover);
}
.button.button-primary:active {
    background-color: var(--color-primary-active);
}
.button.button-primary-border {
    color: var(--color-primary);
    border-color: var(--color-primary);
}
.button.button-primary-border i,
.button.button-primary-border .icon {
    color: var(--color-primary);
}
.button.button-primary-border.button-loading::after {
    display: block;
    position: absolute;
    width: 1.6rem;
    height: 1.6rem;
    border: 2px solid var(--color-primary);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}
.button.button-primary-light {
    color: var(--color-primary);
    border-color: transparent;
    background-color: var(--color-primary-light);
}
.button.button-primary-light i,
.button.button-primary-light .icon {
    color: var(--color-primary);
}
.button.button-primary-light.button-loading::after {
    display: block;
    position: absolute;
    width: 1.6rem;
    height: 1.6rem;
    border: 2px solid var(--color-primary);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}
.button.button-primary-light:hover, .button.button-primary-light:focus {
    border-color: var(--color-primary);
}
.button.button-primary-light:active {
    background-color: var(--color-primary-light-active);
}
.button.button-primary-light-border {
    color: var(--color-primary);
    border-color: var(--color-primary);
    background-color: var(--color-primary-light);
}
.button.button-primary-light-border i,
.button.button-primary-light-border .icon {
    color: var(--color-primary);
}
.button.button-primary-light-border.button-loading::after {
    display: block;
    position: absolute;
    width: 1.6rem;
    height: 1.6rem;
    border: 2px solid var(--color-primary);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}
.button.button-primary-light-border:active {
    background-color: var(--color-primary-light-active);
}
.button.button-text {
    min-height: auto;
    color: var(--color-text);
    border-color: transparent;
    background-color: var(--color-background);
    padding: 1rem;
}
.button.button-text i,
.button.button-text .icon,
.button.button-text .icon::after {
    color: var(--color-icon);
}
.button.button-text:hover, .button.button-text:focus {
    color: var(--color-primary);
    border-color: var(--color-primary);
    background-color: var(--color-primary-light);
    outline: none;
    border-color: transparent;
}
.button.button-text:hover i,
.button.button-text:hover .icon,
.button.button-text:hover .icon::after, .button.button-text:focus i,
.button.button-text:focus .icon,
.button.button-text:focus .icon::after {
    color: var(--color-primary) !important;
}
.button.button-text:active {
    background-color: var(--color-primary-light-active);
}
.button.button-list {
    color: var(--color-text-dark);
    border-color: var(--color-border);
    background-color: var(--color-background);
}
.button.button-list i,
.button.button-list .icon {
    color: var(--color-text-dark);
}
.button.button-list:hover, .button.button-list:focus {
    background-color: var(--color-background-light);
}
.button.button-list:active {
    background-color: var(--color-background-light-active);
}
.button.button-cancel {
    color: var(--color-text-dark);
    border-color: var(--color-border-gray);
    background-color: var(--color-background);
}
.button.button-cancel i,
.button.button-cancel .icon {
    color: var(--color-text-dark);
}
.button.button-cancel:hover, .button.button-cancel:focus {
    background-color: var(--color-background-light);
}
.button.button-cancel:active {
    background-color: var(--color-background-light-active);
}
.button.button-delete {
    color: var(--color-delete);
    border-color: var(--color-delete);
}
.button.button-delete i,
.button.button-delete .icon {
    color: var(--color-delete);
}
.button.button-delete.button-loading::after {
    display: block;
    position: absolute;
    width: 1.6rem;
    height: 1.6rem;
    border: 2px solid var(--color-delete);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}
.button.button-delete:hover, .button.button-delete:focus {
    background-color: var(--color-delete-background);
}
.button.button-delete:active {
    background-color: var(--color-delete-active-background);
}
.button.button-danger {
    color: var(--color-danger);
    border-color: var(--color-danger);
}
.button.button-danger i,
.button.button-danger .icon {
    color: var(--color-danger);
}
.button.button-danger.button-loading::after {
    display: block;
    position: absolute;
    width: 1.6rem;
    height: 1.6rem;
    border: 2px solid var(--color-danger);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}
.button.button-danger:hover, .button.button-danger:focus {
    background-color: var(--color-danger-background);
}
.button.button-danger:active {
    background-color: var(--color-danger-active-background);
}
.button.button-excel {
    color: var(--color-excel);
    border-color: var(--color-excel);
}
.button.button-excel i,
.button.button-excel .icon {
    color: var(--color-excel);
}
.button.button-excel.button-loading::after {
    display: block;
    position: absolute;
    width: 1.6rem;
    height: 1.6rem;
    border: 2px solid var(--color-excel);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}
.button.button-excel:hover, .button.button-excel:focus {
    background-color: var(--color-excel-background);
}
.button.button-excel:active {
    background-color: var(--color-excel-active-background);
}
.button.button-hover-excel.button-loading::after {
    display: block;
    position: absolute;
    width: 1.6rem;
    height: 1.6rem;
    border: 2px solid var(--color-excel);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}
.button.button-hover-excel:hover, .button.button-hover-excel:focus {
    color: var(--color-excel);
    border-color: var(--color-excel);
    background-color: var(--color-excel-background);
}
.button.button-hover-excel:hover i,
.button.button-hover-excel:hover .icon, .button.button-hover-excel:focus i,
.button.button-hover-excel:focus .icon {
    color: var(--color-excel);
}
.button.button-hover-excel:active {
    background-color: var(--color-excel-active-background);
}
.button.button-copy {
    padding: 0 !important;
    border: none !important;
    background-color: transparent !important;
    text-decoration: underline;
}
.button.button-copy::before {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    transition: var(--transition-duration);
    font-size: inherit;
}
.button.button-copy:hover, .button.button-copy:focus {
    color: var(--color-link);
}
.button.button-copy:hover::before, .button.button-copy:focus::before {
    color: var(--color-link);
}
.button.button-view {
    padding: 0 !important;
    border: none !important;
    background-color: transparent !important;
    margin-left: 0.6rem;
}
.button.button-view::before {
    content: "자세히보기";
    transition: var(--transition-duration);
    font-size: inherit;
}
.button.button-view:hover, .button.button-view:focus {
    color: var(--color-link);
}
.button.button-view:hover::before, .button.button-view:focus::before {
    color: var(--color-link);
}
.button.button-view.show::before {
    content: "간략히보기";
}
.button.hidden {
    display: none;
}

/* ────────────────────────────────
    badge
──────────────────────────────── */
.badge {
    font-size: 1.2rem;
    font-weight: 500;
    color: var(--color-text-dark);
    background-color: var(--color-background-light);
    padding: 0.5rem 1rem;
    border-radius: var(--radius-form);
    white-space: nowrap;
    transition: var(--transition-duration);
}
.badge.badge-border {
    border: 1px solid var(--color-border);
}
.badge.badge-primary {
    color: var(--color-primary-contrast);
    background-color: var(--color-primary);
}
.badge.badge-primary-border {
    color: var(--color-primary);
    border: 1px solid var(--color-border);
    border-color: var(--color-primary);
    background-color: var(--color-background);
}
.badge.badge-primary-light {
    color: var(--color-primary);
    background-color: var(--color-primary-light);
}
.badge.badge-primary-light-border {
    color: var(--color-primary);
    border: 1px solid var(--color-border);
    border-color: var(--color-primary);
    background-color: var(--color-primary-light);
}
.badge.badge-green {
    color: var(--badge-green);
    background-color: var(--badge-green-background);
}
.badge.badge-green.border {
    border: 1px solid var(--color-border);
    border-color: var(--badge-green-border);
}
.badge.badge-red {
    color: var(--badge-red);
    background-color: var(--badge-red-background);
}
.badge.badge-red.border {
    border: 1px solid var(--color-border);
    border-color: var(--badge-red-border);
}
.badge.badge-blue {
    color: var(--badge-blue);
    background-color: var(--badge-blue-background);
}
.badge.badge-blue.border {
    border: 1px solid var(--color-border);
    border-color: var(--badge-blue-border);
}
.badge.badge-yellow {
    color: var(--badge-yellow);
    background-color: var(--badge-yellow-background);
}
.badge.badge-darkred {
    color: var(--badge-darkred);
    background-color: var(--badge-darkred-background);
}
.badge.badge-purple {
    color: var(--badge-purple);
    background-color: var(--badge-purple-background);
}
.badge.badge-cyan {
    color: var(--badge-cyan);
    background-color: var(--badge-cyan-background);
}
.badge.badge-teal {
    color: var(--badge-teal);
    background-color: var(--badge-teal-background);
}
.badge.badge-orange {
    color: var(--badge-orange);
    background-color: var(--badge-orange-background);
}
.badge.badge-brown {
    color: var(--badge-brown);
    background-color: var(--badge-brown-background);
}
.badge.badge-indigo {
    color: var(--badge-indigo);
    background-color: var(--badge-indigo-background);
}
.badge.badge-pink {
    color: var(--badge-pink);
    background-color: var(--badge-pink-background);
}
.badge.badge-positive {
    color: var(--badge-positive);
    background-color: var(--badge-positive-background);
}
.badge.badge-negative {
    color: var(--badge-negative);
    background-color: var(--badge-negative-background);
}
.badge.badge-warning {
    color: var(--badge-warning);
    background-color: var(--badge-warning-background);
}
.badge.badge-info {
    color: var(--badge-info);
    background-color: var(--badge-info-background);
}
.badge.badge-neutral {
    color: var(--badge-neutral);
    background-color: var(--badge-neutral-background);
}
.badge.badge-approved {
    color: var(--badge-green);
    background-color: var(--badge-green-background);
}
.badge.badge-canceled {
    color: var(--badge-red);
    background-color: var(--badge-red-background);
}
.badge.badge-total {
    color: var(--badge-blue);
    background-color: var(--badge-blue-background);
}
.badge.badge-pending {
    color: var(--badge-yellow);
    background-color: var(--badge-yellow-background);
}
.badge.badge-timeout {
    color: var(--badge-darkred);
    background-color: var(--badge-darkred-background);
}

/* ────────────────────────────────
    popover
──────────────────────────────── */
.popover-wrapper {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}
@media screen and (max-width: 767px) {
    .popover-wrapper {
        position: relative;
    }
}

.popover-container {
    position: relative;
    margin-top: -0.4rem;
}
@media screen and (max-width: 767px) {
    .popover-container {
        position: static;
    }
}

.popover-button::before {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--size-icon-xsmall);
    height: var(--size-icon-xsmall);
    font-size: 0.8rem;
    border: 1px solid var(--color-border);
    border-color: var(--color-primary);
    border-radius: 50%;
    color: var(--color-primary);
}

.popover {
    width: max-content;
    min-width: 24rem;
    max-width: 36rem;
    position: absolute;
    left: calc(100% - 2.4rem - 1.6rem);
    bottom: 100%;
    background-color: var(--color-background);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-form);
    padding: 2rem;
    margin-bottom: 1rem;
    display: none;
    box-shadow: 0 0 10px rgba(var(--color-background-contrast), 0.1);
    z-index: var(--z-index-popover);
}
.popover::before {
    content: "";
    width: var(--size-icon-xsmall);
    height: var(--size-icon-xsmall);
    display: block;
    position: absolute;
    transform: rotate(45deg);
    border: 0.1rem solid var(--color-border);
    border-top-color: transparent;
    border-left-color: transparent;
    background-color: var(--color-background);
    position: absolute;
    bottom: -0.8rem;
    left: 2.4rem;
}
.popover.active {
    display: block;
}
.popover .popover-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}
.popover .popover-head .popover-title {
    font-size: 1.7rem;
    font-weight: 700;
}
.popover .popover-head .popover-close {
    width: var(--size-icon);
    height: var(--size-icon);
    background-repeat: no-repeat;
    background-size: var(--size-icon);
    background-position: center;
    background-image: url(../images/icon/close.svg);
}
.popover .popover-head ~ .popover-content {
    margin-top: 1rem;
}
.popover .popover-content {
    font-size: 1.5rem;
}
.popover.popover-left {
    left: auto;
    right: calc(100% - 2.4rem - 1.6rem);
}
.popover.popover-left::before {
    left: auto;
    right: 2.4rem;
}
.popover.popover-center {
    left: 50%;
    transform: translateX(-50%);
}
.popover.popover-center::before {
    left: calc(50% - .8rem);
}
@media screen and (max-width: 767px) {
    .popover {
        width: calc(100vw - 6rem);
        min-width: auto;
        max-width: none;
        left: 0 !important;
        transform: none !important;
    }
    .popover::before {
        display: none;
    }
}

/* ────────────────────────────────
    input
──────────────────────────────── */
.input[type=text], .input[type=password] {
    font-size: var(--font-base-size);
    color: var(--color-text);
    height: var(--size-form);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-form);
    background-color: var(--color-background-form);
    padding: 0 var(--padding-form);
    transition: var(--transition-duration);
}
.input[type=text]::placeholder, .input[type=password]::placeholder {
    color: var(--color-text-light);
}
.input[type=text]:focus, .input[type=password]:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 1px var(--color-primary);
}
.input[type=text]:read-only, .input[type=password]:read-only {
    color: var(--color-text-light);
    background-color: var(--color-background-form-readonly);
}

/* ────────────────────────────────
    input/range
──────────────────────────────── */
input[type=range] {
    width: 100%;
    -webkit-appearance: none;
}
input[type=range]:focus {
    outline: none;
}
input[type=range]:active::-webkit-slider-runnable-track {
    background-color: var(--color-border);
}
input[type=range]::-webkit-slider-runnable-track {
    width: 100%;
    height: 4px;
    cursor: pointer;
    background-color: var(--color-border-light);
    transition: var(--transition-duration);
    border-radius: 4px;
}
input[type=range]::-webkit-slider-thumb {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    cursor: pointer;
    -webkit-appearance: none;
    background-color: var(--color-primary);
    margin-top: -5px;
}
input[type=range]::-webkit-slider-thumb:hover, input[type=range]::-webkit-slider-thumb:focus {
    background-color: var(--color-primary-active);
}

/* ────────────────────────────────
    select
──────────────────────────────── */
.select {
    font-size: var(--font-base-size);
    color: var(--color-text);
    height: var(--size-form);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-form);
    background-color: var(--color-background-form);
    padding: 0 calc(var(--padding-form) + (var(--padding-form) / 2) + var(--size-icon)) 0 var(--padding-form);
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='%23909090' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
    background-position: center right var(--padding-form);
    background-repeat: no-repeat;
    background-size: var(--size-icon-small);
    transition: var(--transition-duration);
}
.select:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 1px var(--color-primary);
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath fill='%23909090' d='m12 10.8-3.9 3.9a.948.948 0 0 1-.7.275.948.948 0 0 1-.7-.275.948.948 0 0 1-.275-.7c0-.283.092-.517.275-.7l4.6-4.6c.2-.2.433-.3.7-.3.267 0 .5.1.7.3l4.6 4.6a.948.948 0 0 1 .275.7.948.948 0 0 1-.275.7.948.948 0 0 1-.7.275.948.948 0 0 1-.7-.275L12 10.8Z'/%3E%3C/svg%3E");
}

/* ────────────────────────────────
    select/theme/dark
──────────────────────────────── */
:root.theme-dark .select {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='%238896ad' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
}
:root.theme-dark .select:focus {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath fill='%238896ad' d='m12 10.8-3.9 3.9a.948.948 0 0 1-.7.275.948.948 0 0 1-.7-.275.948.948 0 0 1-.275-.7c0-.283.092-.517.275-.7l4.6-4.6c.2-.2.433-.3.7-.3.267 0 .5.1.7.3l4.6 4.6a.948.948 0 0 1 .275.7.948.948 0 0 1-.275.7.948.948 0 0 1-.7.275.948.948 0 0 1-.7-.275L12 10.8Z'/%3E%3C/svg%3E");
}

/* ────────────────────────────────
    select2
──────────────────────────────── */
.select2 {
    width: 100% !important;
    height: var(--size-form);
    text-align: left;
}
.select2 .selection {
    width: 100% !important;
}
.select2 .selection .select2-selection {
    height: var(--size-form);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-form);
    position: relative;
    outline: none;
    background-color: var(--color-background-form);
    transition: var(--transition-duration);
}
.select2 .selection .select2-selection .select2-selection__rendered {
    color: var(--color-text);
    line-height: var(--size-form);
    padding: 0 var(--padding-form);
}
.select2 .selection .select2-selection .select2-selection__arrow {
    width: var(--size-icon-small);
    height: var(--size-icon-small);
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='%23909090' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: var(--size-icon-small);
    right: var(--padding-form);
    top: 50%;
    transform: translateY(-50%);
}
.select2 .selection .select2-selection .select2-selection__arrow b {
    display: none;
}
.select2.select2-container--focus .selection .select2-selection {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 1px var(--color-primary);
}
.select2.select2-container--open .selection .select2-selection .select2-selection__arrow {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath fill='%23909090' d='m12 10.8-3.9 3.9a.948.948 0 0 1-.7.275.948.948 0 0 1-.7-.275.948.948 0 0 1-.275-.7c0-.283.092-.517.275-.7l4.6-4.6c.2-.2.433-.3.7-.3.267 0 .5.1.7.3l4.6 4.6a.948.948 0 0 1 .275.7.948.948 0 0 1-.275.7.948.948 0 0 1-.7.275.948.948 0 0 1-.7-.275L12 10.8Z'/%3E%3C/svg%3E");
}

.select2-dropdown {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-form);
    box-shadow: 0 0 10px rgba(var(--color-background-contrast), 0.1);
    background-color: var(--color-background-form);
}
.select2-dropdown .select2-search {
    padding: 0;
}
.select2-dropdown .select2-search .select2-search__field {
    height: var(--size-form);
    border: none;
    border-bottom: 1px solid var(--color-border);
    padding: 0 var(--padding-form);
    background-color: transparent;
}
.select2-dropdown .select2-results__option {
    padding: var(--padding-form);
}
.select2-dropdown .select2-results__message {
    background-color: var(--color-background-form-readonly);
    border-radius: 0 0 var(--radius-form) var(--radius-form);
}
.select2-dropdown .select2-results__options {
    overflow: auto;
    border-radius: 0 0 var(--radius-form) var(--radius-form);
}
.select2-dropdown .select2-results__options::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
.select2-dropdown .select2-results__options::-webkit-scrollbar-track {
    border-radius: var(--radius);
    background-color: #78788030;
}
.select2-dropdown .select2-results__options::-webkit-scrollbar-thumb {
    border-radius: var(--radius);
    background: #78788030;
}
.select2-dropdown .select2-results__options::-webkit-scrollbar-thumb:hover {
    background: #78788050;
}
.select2-dropdown .select2-results__options::-webkit-scrollbar-thumb:active {
    background: #78788070;
}
.select2-dropdown .select2-results__options::-webkit-scrollbar-button {
    display: none;
}
.select2-dropdown .select2-results__options .select2-results__option--selected {
    background-color: var(--color-background-form-readonly);
}
.select2-dropdown .select2-results__options .select2-results__option--highlighted {
    background-color: var(--color-primary);
}

/* ────────────────────────────────
    select2/theme/dark
──────────────────────────────── */
:root.theme-dark .select2 .selection .select2-selection .select2-selection__arrow {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='%238896ad' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
}
:root.theme-dark .select2.select2-container--open .selection .select2-selection .select2-selection__arrow {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath fill='%238896ad' d='m12 10.8-3.9 3.9a.948.948 0 0 1-.7.275.948.948 0 0 1-.7-.275.948.948 0 0 1-.275-.7c0-.283.092-.517.275-.7l4.6-4.6c.2-.2.433-.3.7-.3.267 0 .5.1.7.3l4.6 4.6a.948.948 0 0 1 .275.7.948.948 0 0 1-.275.7.948.948 0 0 1-.7.275.948.948 0 0 1-.7-.275L12 10.8Z'/%3E%3C/svg%3E");
}

/* ────────────────────────────────
    checkbox
──────────────────────────────── */
.checkbox {
    width: fit-content;
    cursor: pointer;
    background-color: var(--color-background);
    position: relative;
    /*
    &.ui-sortable-handle {
        &::after {
            @include fontAwesome5("\f142");
            position: absolute;
            right: var(--gap-component);
            top: 50%;
            transform: translateY(-50%);
        }
    }
    */
}
.checkbox input[type=checkbox] {
    display: none;
}
.checkbox input[type=checkbox]:checked ~ label {
    color: var(--color-text);
}
.checkbox input[type=checkbox]:checked ~ label::before {
    border-color: transparent;
    background-color: var(--color-primary);
}
.checkbox input[type=checkbox]:checked ~ label::after {
    opacity: 1;
    transform: scale(1);
}
.checkbox label {
    position: relative;
    font-size: var(--font-base-size);
    display: flex;
    align-items: center;
    gap: calc(var(--gap-component) / 2);
    transition: var(--transition-duration);
    cursor: pointer;
    color: var(--color-text-light);
}
.checkbox label::before, .checkbox label::after {
    content: "";
    display: flex;
    width: var(--size-icon-small);
    height: var(--size-icon-small);
    text-align: center;
    align-items: center;
    justify-content: center;
    transition: var(--transition-duration);
}
.checkbox label::before {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-form);
}
.checkbox label::after {
    position: absolute;
    left: 0;
    top: 0;
    opacity: 0;
    color: var(--color-primary-contrast);
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath fill='%23FFFFFF' d='m9.55 15.15 8.475-8.475c.2-.2.433-.3.7-.3.267 0 .5.1.7.3.2.2.3.438.3.713a.97.97 0 0 1-.3.712l-9.175 9.2c-.2.2-.433.3-.7.3a.96.96 0 0 1-.7-.3L4.55 13a.932.932 0 0 1-.288-.712c.008-.275.112-.512.313-.713.2-.2.438-.3.713-.3.275 0 .512.1.712.3l3.55 3.575Z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: var(--size-icon-xsmall);
    background-position: center calc(50% + 0.1rem);
}
.checkbox label:hover::before, .checkbox label:focus::before {
    background-color: var(--color-primary-light);
}
.checkbox label:active::before {
    background-color: var(--color-primary-light-active);
}
.checkbox label .required {
    color: var(--color-primary);
    margin-right: -0.6rem;
}
.checkbox .drag-handle {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    padding: 0 calc(var(--gap-component) * 1.5);
}
.checkbox .drag-handle::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
}

.checkbox-group {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap-component);
    overflow-x: hidden;
}
.checkbox-group.column {
    flex-direction: column;
}
.checkbox-group.border .checkbox {
    width: 100%;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-form);
    transition: background color var(--transition-duration);
}
.checkbox-group.border .checkbox:hover {
    background-color: var(--color-background-light);
}
.checkbox-group.border .checkbox label {
    padding: var(--gap-component);
}
.checkbox-group.border .checkbox label::after {
    top: var(--gap-component);
    left: var(--gap-component);
}

/* ────────────────────────────────
    switch
──────────────────────────────── */
.switch {
    width: fit-content;
    position: relative;
}
.switch input[type=checkbox] {
    display: none;
}
.switch input[type=checkbox]:checked ~ label {
    background-color: var(--color-primary);
}
.switch input[type=checkbox]:checked ~ label::before {
    left: 3.8rem;
}
.switch label {
    width: 6.4rem;
    height: 3.2rem;
    display: flex;
    align-items: center;
    border-radius: 2.4rem;
    background-color: var(--color-border-light);
    cursor: pointer;
    transition: var(--transition-duration);
}
.switch label::before {
    content: "";
    display: block;
    width: 2rem;
    height: 2rem;
    background-color: var(--color-primary-contrast);
    border-radius: 50%;
    position: absolute;
    left: 0.6rem;
    box-shadow: 0 0 10px rgba(var(--color-background-contrast), 0.1);
    transition: var(--transition-duration);
}
.switch.switch-small input[type=checkbox]:checked ~ label::before {
    left: 2.7rem;
}
.switch.switch-small label {
    width: 4.8rem;
    height: 2.4rem;
}
.switch.switch-small label::before {
    width: 1.5rem;
    height: 1.5rem;
}

/* ────────────────────────────────
    radio
──────────────────────────────── */
.radio {
    width: fit-content;
}
.radio * {
    cursor: pointer;
}
.radio input[type=radio] {
    display: none;
}
.radio input[type=radio]:checked ~ label {
    color: var(--color-text);
}
.radio input[type=radio]:checked ~ label::before {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 1px var(--color-primary);
}
.radio input[type=radio]:checked ~ label::after {
    opacity: 1;
}
.radio label {
    font-size: var(--font-base-size);
    display: flex;
    align-items: center;
    gap: calc(var(--gap-component) / 2);
    position: relative;
    transition: var(--transition-duration);
    color: var(--color-label);
}
.radio label::before {
    content: "";
    display: flex;
    width: var(--size-icon-small);
    height: var(--size-icon-small);
    text-align: center;
    align-items: center;
    justify-content: center;
    transition: var(--transition-duration);
    border: 1px solid var(--color-border);
    border-radius: 50%;
}
.radio label:hover::before, .radio label:focus::before {
    background-color: var(--color-primary-light);
}
.radio label:active::before {
    background-color: var(--color-primary-light-active);
}

.radio-group {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap-component);
}
.radio-group.ui-tab {
    width: fit-content;
    max-width: 100%;
    flex-wrap: nowrap;
    gap: 0;
    border-radius: var(--radius-form);
    overflow: hidden;
}
.radio-group.ui-tab input[type=radio]:checked ~ label {
    font-weight: 600;
    color: var(--color-primary-contrast);
    background-color: var(--color-primary);
    border-color: transparent;
}
.radio-group.ui-tab .radio label {
    min-height: var(--size-form);
    padding: 0 var(--gap-layout);
    border: 1px solid var(--color-border);
    margin-left: -1px;
}
.radio-group.ui-tab .radio label::before {
    display: none;
}
.radio-group.ui-tab .radio:first-child label {
    margin-left: 0;
    border-radius: var(--radius-form) 0 0 var(--radius-form);
}
.radio-group.ui-tab .radio:last-child label {
    border-radius: 0 var(--radius-form) var(--radius-form) 0;
}
.radio-group.ui-tab-shadow {
    width: fit-content;
    max-width: 100%;
    flex-wrap: nowrap;
    gap: 0;
    border-radius: var(--radius-form);
    background-color: var(--color-primary-light);
}
.radio-group.ui-tab-shadow input[type=radio]:checked ~ label {
    font-weight: 600;
    color: var(--color-primary);
    background-color: var(--color-primary-contrast);
    border-color: transparent;
    box-shadow: 0 0 10px rgba(var(--color-background-contrast), 0.1);
    border-radius: var(--radius-form);
}
.radio-group.ui-tab-shadow .radio label {
    min-height: var(--size-form);
    padding: 0 var(--gap-layout);
}
.radio-group.ui-tab-shadow .radio label::before {
    display: none;
}
.radio-group.ui-tab-shadow .radio:first-child label {
    margin-left: 0;
}

/* ────────────────────────────────
    textarea
──────────────────────────────── */
.textarea {
    width: 100%;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-form);
    padding: var(--padding-form);
    font-size: var(--font-base-size);
    resize: none;
    outline: none;
    overflow: auto;
    background-color: var(--background-color-form);
    color: var(--color-text);
}
.textarea::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
.textarea::-webkit-scrollbar-track {
    border-radius: var(--radius);
    background-color: #78788030;
}
.textarea::-webkit-scrollbar-thumb {
    border-radius: var(--radius);
    background: #78788030;
}
.textarea::-webkit-scrollbar-thumb:hover {
    background: #78788050;
}
.textarea::-webkit-scrollbar-thumb:active {
    background: #78788070;
}
.textarea::-webkit-scrollbar-button {
    display: none;
}
.textarea::placeholder {
    color: var(--color-text-light);
}
.textarea:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 1px var(--color-primary);
}
.textarea:read-only {
    color: var(--color-text-light);
    background-color: var(--color-background-form-readonly);
}

/* ────────────────────────────────
    modal
──────────────────────────────── */
.modal {
    width: 100%;
    max-width: 100%;
    height: 100%;
    max-height: 100%;
    position: fixed;
    left: 0;
    top: 0;
    z-index: var(--z-index-modal);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--gap-layout);
    opacity: 0;
    pointer-events: none;
    transition: var(--transition-duration);
}
.modal .form-title {
    font-size: 1.8rem;
}
.modal.active {
    opacity: 1;
    pointer-events: auto;
}
.modal.full {
    padding: 0;
}
.modal.full .modal-inner {
    border-radius: 0;
    max-width: none;
}
.modal.modal-small .modal-container {
    max-width: 40rem;
}
.modal.modal-medium .modal-container {
    max-width: 56rem;
}
.modal.modal-large .modal-container {
    max-width: 72rem;
}
.modal.modal-xlarge .modal-container {
    max-width: 88rem;
}
.modal.modal-confirm .modal-container .modal-content {
    margin-top: var(--gap-component);
}

.modal-layer {
    width: 100%;
    height: 100%;
    position: fixed;
    left: 0;
    top: 0;
    display: block;
    background-color: rgba(var(--color-background-contrast), 0.2);
}

.modal-container {
    width: 100%;
    height: auto;
    position: relative;
    overflow: auto;
    overflow-x: hidden;
    overscroll-behavior: none;
    max-height: 100%;
    max-width: 56rem;
    background-color: var(--color-background);
    border-radius: var(--radius-form);
    box-shadow: 0 0 10px rgba(var(--color-background-contrast), 0.1);
}
.modal-container::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
.modal-container::-webkit-scrollbar-track {
    border-radius: var(--radius);
    background-color: #78788030;
}
.modal-container::-webkit-scrollbar-thumb {
    border-radius: var(--radius);
    background: #78788030;
}
.modal-container::-webkit-scrollbar-thumb:hover {
    background: #78788050;
}
.modal-container::-webkit-scrollbar-thumb:active {
    background: #78788070;
}
.modal-container::-webkit-scrollbar-button {
    display: none;
}

.modal-head {
    width: 100%;
    position: sticky;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--gap-layout);
    padding: var(--gap-layout);
    border-bottom: 1px solid var(--color-border-light);
    background-color: var(--color-background);
    z-index: 1;
    border-radius: var(--radius-form) var(--radius-form) 0 0;
}
.modal-head.no-border {
    border: none;
}

.modal-title {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 1.8rem;
    font-weight: 700;
}

.modal-close-button {
    width: var(--size-icon);
    height: var(--size-icon);
    background-repeat: no-repeat;
    background-size: var(--size-icon);
    background-position: center;
    transition: var(--transition-duration);
    position: relative;
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cg clip-path='url(%23a)'%3E%3Cpath fill='%23606060' fill-rule='evenodd' d='m12.01 13.142 4.61 4.61a.815.815 0 0 0 1.151-1.153l-4.609-4.609 4.61-4.61a.815.815 0 0 0-1.153-1.151l-4.609 4.609-4.61-4.61a.815.815 0 0 0-1.15 1.153l4.608 4.609-4.61 4.61a.814.814 0 1 0 1.153 1.151l4.609-4.609Z' clip-rule='evenodd'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='a'%3E%3Cpath fill='%23fff' d='M0 0h24v24H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
}
.modal-close-button::after {
    content: "";
    display: block;
    width: calc(100% + var(--padding-form));
    height: calc(100% + var(--padding-form));
    background-color: var(--color-primary-light);
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    border-radius: var(--radius-form);
    z-index: -1;
    opacity: 0;
    transition: var(--transition-duration);
}
.modal-close-button:hover, .modal-close-button:focus {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cg clip-path='url(%23a)'%3E%3Cpath fill='%233677f1' fill-rule='evenodd' d='m12.01 13.142 4.61 4.61a.815.815 0 0 0 1.151-1.153l-4.609-4.609 4.61-4.61a.815.815 0 0 0-1.153-1.151l-4.609 4.609-4.61-4.61a.815.815 0 0 0-1.15 1.153l4.608 4.609-4.61 4.61a.814.814 0 1 0 1.153 1.151l4.609-4.609Z' clip-rule='evenodd'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='a'%3E%3Cpath fill='%23fff' d='M0 0h24v24H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
}
.modal-close-button:hover::after, .modal-close-button:focus::after {
    opacity: 1;
}
.modal-close-button:active::after {
    background-color: var(--color-primary-light-active);
}

.modal-content {
    width: 100%;
    height: auto;
    position: relative;
    padding: 2rem;
}

.modal-bottom {
    width: 100%;
    position: sticky;
    left: 0;
    bottom: 0;
    display: flex;
    justify-content: flex-end;
    background-color: var(--color-background);
    z-index: 1;
    padding: 2rem;
    gap: 1rem;
}
.modal-bottom.between {
    justify-content: space-between;
}

/* ────────────────────────────────
    modal/theme/dark
──────────────────────────────── */
:root.theme-dark .modal-close-button {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cg clip-path='url(%23a)'%3E%3Cpath fill='%23b0bed1' fill-rule='evenodd' d='m12.01 13.142 4.61 4.61a.815.815 0 0 0 1.151-1.153l-4.609-4.609 4.61-4.61a.815.815 0 0 0-1.153-1.151l-4.609 4.609-4.61-4.61a.815.815 0 0 0-1.15 1.153l4.608 4.609-4.61 4.61a.814.814 0 1 0 1.153 1.151l4.609-4.609Z' clip-rule='evenodd'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='a'%3E%3Cpath fill='%23fff' d='M0 0h24v24H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
}
:root.theme-dark .modal-close-button:hover, :root.theme-dark .modal-close-button:focus {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cg clip-path='url(%23a)'%3E%3Cpath fill='%234d84f1' fill-rule='evenodd' d='m12.01 13.142 4.61 4.61a.815.815 0 0 0 1.151-1.153l-4.609-4.609 4.61-4.61a.815.815 0 0 0-1.153-1.151l-4.609 4.609-4.61-4.61a.815.815 0 0 0-1.15 1.153l4.608 4.609-4.61 4.61a.814.814 0 1 0 1.153 1.151l4.609-4.609Z' clip-rule='evenodd'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='a'%3E%3Cpath fill='%23fff' d='M0 0h24v24H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
}

/* ────────────────────────────────
    table
──────────────────────────────── */
.table-container {
    width: 100%;
    height: auto;
    position: relative;
}

.table {
    width: 100%;
    height: auto;
    position: relative;
    border-collapse: collapse;
    text-align: left;
    font-size: 1.4rem;
}
.table thead th[data-sort] {
    position: relative;
    padding-right: calc(var(--padding-form) + var(--gap-component) + 0.75rem);
    cursor: pointer;
}
.table thead th[data-sort]::before {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    margin-top: -0.1rem;
}
.table thead th[data-sort]::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    margin-top: 0.1rem;
}
.table thead th[data-sort]::before, .table thead th[data-sort]::after {
    position: absolute;
    right: var(--padding-form);
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.2rem;
    color: var(--color-icon);
    opacity: 0.4;
}
.table thead th[data-direction=asc]::before {
    opacity: 1;
}
.table thead th[data-direction=desc]::after {
    opacity: 1;
}
.table tr {
    border-top: 1px solid var(--color-border-light);
    border-bottom: 1px solid var(--color-border-light);
    transition: var(--transition-duration);
}
.table tr:hover, .table tr:focus {
    background-color: var(--color-background-light);
}
.table th,
.table td {
    padding: var(--padding-form);
    transition: var(--transition-duration);
}
.table th {
    white-space: nowrap;
    font-weight: 500;
    color: var(--color-label);
    background-color: var(--color-background-light);
}
.table .button-group {
    flex-wrap: nowrap;
    flex-direction: row;
}
.table .button-group .button {
    flex: 0;
}
.table .button {
    min-height: auto;
    font-size: 1.3rem;
    padding: 0.5rem 1rem;
}
.table .nodata {
    color: var(--color-text-light);
    text-align: center;
}
.table .checkbox label::before, .table .checkbox label::after {
    width: var(--size-icon-small);
    height: var(--size-icon-small);
}
.table .checkbox label::after {
    background-size: var(--size-icon-xsmall);
}
.table .input[type=text], .table .input[type=password] {
    width: 100%;
    min-width: 12rem;
    height: var(--size-table-form);
}
.table .select {
    width: 100%;
    min-width: 12rem;
    height: var(--size-table-form);
    font-size: 1.4rem;
}
.table .select2 {
    min-width: 12rem;
    height: var(--size-table-form);
    font-size: 1.4rem;
}
.table .select2 .selection {
    width: 100% !important;
}
.table .select2 .selection .select2-selection {
    height: var(--size-table-form);
}
.table .select2 .selection .select2-selection .select2-selection__rendered {
    line-height: var(--size-table-form);
}
.table .select2-dropdown .select2-search .select2-search__field {
    height: var(--size-table-form);
}
.table.table-align-left {
    text-align: left;
}
.table.table-align-left .button-group {
    justify-content: flex-start;
}
.table.table-align-center {
    text-align: center;
}
.table.table-align-center .button-group {
    justify-content: center;
}
.table.table-nowrap * {
    white-space: nowrap;
}
.table.table-border th,
.table.table-border td {
    border: 1px solid var(--color-border);
}
.table ~ .table-bottom .table-button-group {
    margin: 0 auto;
}
.table.table-card thead {
    display: none;
}
.table.table-card tbody {
    display: flex;
    flex-direction: column;
    gap: var(--gap-component);
}
.table.table-card tr {
    display: flex;
    flex-direction: column;
    gap: var(--gap-component);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-form);
    padding: var(--gap-layout);
}
.table.table-card td {
    padding: 0;
}
.table.table-card td[data-label]::before {
    content: attr(data-label);
    display: inline-block;
    margin-right: var(--gap-component);
    font-weight: 500;
    color: var(--color-label);
}
.table.table-card .button-group {
    justify-content: flex-end;
}
@media screen and (max-width: 767px) {
    .table.table-card-mobile thead {
        display: none;
    }
    .table.table-card-mobile tbody {
        display: flex;
        flex-direction: column;
        gap: var(--gap-component);
    }
    .table.table-card-mobile tr {
        display: flex;
        flex-direction: column;
        gap: var(--gap-component);
        border: 1px solid var(--color-border);
        border-radius: var(--radius-form);
        padding: var(--gap-layout);
    }
    .table.table-card-mobile td {
        padding: 0;
    }
    .table.table-card-mobile td[data-label]::before {
        content: attr(data-label);
        display: inline-block;
        margin-right: var(--gap-component);
        font-weight: 500;
        color: var(--color-label);
    }
    .table.table-card-mobile .button-group {
        justify-content: flex-end;
    }
}

.table-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--gap-layout);
    margin-bottom: var(--gap-layout);
}
.table-head .table-title-container .table-title {
    font-size: 1.6rem;
    font-weight: 500;
    white-space: nowrap;
}
.table-head .table-title-container .table-title .table-count {
    color: var(--color-primary);
    font-weight: 700;
}
@media screen and (max-width: 767px) {
    .table-head {
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
    }
}

.table-search {
    margin-bottom: var(--gap-layout);
}

.table-filter {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: var(--gap-component);
    margin-left: auto;
}
@media screen and (max-width: 767px) {
    .table-filter {
        width: 100%;
        flex-direction: column;
        margin: 0;
    }
    .table-filter .button {
        justify-content: space-between;
        padding: 0 var(--padding-form);
    }
    .table-filter .button .icon {
        order: 1;
    }
}

.table-total {
    margin-bottom: var(--gap-layout);
    display: flex;
    gap: var(--gap-layout);
    overflow: auto;
}
.table-total::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
.table-total::-webkit-scrollbar-track {
    border-radius: var(--radius);
    background-color: #78788030;
}
.table-total::-webkit-scrollbar-thumb {
    border-radius: var(--radius);
    background: #78788030;
}
.table-total::-webkit-scrollbar-thumb:hover {
    background: #78788050;
}
.table-total::-webkit-scrollbar-thumb:active {
    background: #78788070;
}
.table-total::-webkit-scrollbar-button {
    display: none;
}
.table-total .card {
    flex: 1;
}

.table-body {
    overflow: auto;
    position: relative;
}
.table-body::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
.table-body::-webkit-scrollbar-track {
    border-radius: var(--radius);
    background-color: #78788030;
}
.table-body::-webkit-scrollbar-thumb {
    border-radius: var(--radius);
    background: #78788030;
}
.table-body::-webkit-scrollbar-thumb:hover {
    background: #78788050;
}
.table-body::-webkit-scrollbar-thumb:active {
    background: #78788070;
}
.table-body::-webkit-scrollbar-button {
    display: none;
}
.table-body.thead-sticky {
    max-height: 63rem;
}
.table-body.thead-sticky .table thead {
    position: sticky;
    top: 0;
    left: 0;
    z-index: 1;
}
.table-body.thead-sticky .table thead::before, .table-body.thead-sticky .table thead::after {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background-color: var(--color-border-light);
    position: absolute;
    left: 0;
    transition: var(--transition-duration);
}
.table-body.thead-sticky .table thead::before {
    top: 0;
}
.table-body.thead-sticky .table thead::after {
    bottom: 0;
}
.table-body.thead-sticky .table tbody tr:first-child {
    border-top: none;
}

.table-bottom {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--gap-layout);
    margin-top: var(--gap-section);
}
.table-bottom .button-group {
    flex: 1;
}
@media screen and (max-width: 767px) {
    .table-bottom .button-group .button {
        flex: 1;
    }
}

/* ────────────────────────────────
    pagination
──────────────────────────────── */
.pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: calc(var(--gap-component) / 2);
}
.pagination .button-group {
    gap: calc(var(--gap-component) / 2);
    flex-direction: row;
    justify-content: center;
}
.pagination button {
    min-width: 4rem;
    min-height: 4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: var(--color-text-dark);
    border-radius: var(--radius-form);
    transition: var(--transition-duration);
}
.pagination button.active {
    color: var(--color-primary);
    background-color: var(--color-primary-light);
    font-weight: 700;
}
.pagination button:hover, .pagination button:focus {
    background-color: var(--color-primary-light);
}
.pagination button:active {
    color: var(--color-primary);
    background-color: var(--color-primary-light-active);
}
.pagination .prev::before {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
}
.pagination .next::before {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
}
.pagination .prev,
.pagination .next {
    display: flex;
    align-items: center;
    justify-content: center;
}
.pagination .prev::before,
.pagination .next::before {
    color: var(--color-icon-light);
}
.pagination .prev:hover, .pagination .prev:focus,
.pagination .next:hover,
.pagination .next:focus {
    background-color: var(--color-primary-light);
}
.pagination .prev:active,
.pagination .next:active {
    color: var(--color-primary);
    background-color: var(--color-primary-light-active);
}
.pagination .prev:active::before,
.pagination .next:active::before {
    color: var(--color-primary);
}

/* ────────────────────────────────
    form
──────────────────────────────── */
.form-container.border {
    border: 1px solid var(--color-border);
    padding: var(--gap-section);
}
.form-container.border-top {
    border-top: 1px solid var(--color-border);
    padding-top: var(--gap-section);
}
.form-container.border-radius {
    border: 1px solid var(--color-border);
    padding: var(--gap-section);
    border-radius: var(--radius-form);
}
.form-container ~ .form-container {
    margin-top: var(--gap-section);
}
.form-container.sticky {
    position: sticky;
    bottom: 0;
    background-color: var(--color-background);
    padding-bottom: var(--gap-layout);
    margin-bottom: calc(var(--gap-layout) * -1);
}
.form-container.sticky::before {
    content: "";
    display: block;
    width: 100%;
    height: var(--gap-section);
    background-color: var(--blur-background);
    box-shadow: 0 0 40px rgba(var(--blur-shadow)) inset;
    position: absolute;
    left: 0;
    top: calc(var(--gap-section) * -1);
}

.form-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--gap-component);
}
.form-head .button {
    min-height: auto;
    font-size: 1.4rem;
    padding: 0.6rem 1.2rem;
}
.form-head ~ .form-content {
    margin-top: var(--gap-layout);
}

.form-title {
    font-size: 2rem;
    font-weight: 700;
}
.form-title ~ .form-sub-title {
    margin-top: 1rem;
}

.form-sub-title {
    font-size: 1.6rem;
    color: var(--color-text-dark);
}

.form-content {
    display: flex;
    flex-direction: column;
    gap: var(--gap-layout);
}

.form-row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap-layout);
}
.form-row .form-col {
    flex: 1;
    min-width: 20rem;
}

.form-col {
    display: flex;
    flex-direction: column;
    gap: var(--gap-component);
}

.form-group {
    display: flex;
    align-items: center;
    gap: var(--gap-component);
}
.form-group.between {
    justify-content: space-between;
}
.form-group .input,
.form-group .select {
    flex: 1;
    width: 100%;
}

.form-label {
    font-size: 1.4rem;
    color: var(--color-label);
}
.form-label.required::before {
    content: "";
    display: inline-block;
    vertical-align: middle;
    width: 0.6rem;
    height: 0.6rem;
    border-radius: 50%;
    background-color: var(--color-primary);
    margin-right: 0.4rem;
}

.form-msg {
    font-size: 1.3rem;
    color: var(--color-text-light);
    position: relative;
    padding-left: var(--size-icon);
}
.form-msg::before {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: var(--size-icon-xsmall);
    height: var(--size-icon-xsmall);
    position: absolute;
    left: 0;
    top: 0.15rem;
    font-size: 0.8rem !important;
    border: 1px solid var(--color-border);
    border-radius: 50%;
    color: var(--color-text-light);
}
.form-msg.info {
    color: var(--color-info);
}
.form-msg.info::before {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    border-color: transparent;
    background-color: var(--color-info);
    color: var(--color-white);
}
.form-msg.success {
    color: var(--color-success);
}
.form-msg.success::before {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    border-color: transparent;
    background-color: var(--color-success);
    color: var(--color-white);
}
.form-msg.warning {
    color: var(--color-warning);
}
.form-msg.warning::before {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    border-color: transparent;
    background-color: var(--color-warning);
    color: var(--color-white);
}
.form-msg.error {
    color: var(--color-error);
}
.form-msg.error::before {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    border-color: transparent;
    background-color: var(--color-error);
    color: var(--color-white);
}

.form-count {
    display: flex;
    font-size: 1.4rem;
    color: var(--color-text-light);
    margin-left: auto;
}
.form-count .current {
    color: var(--color-info);
}

.form-box {
    width: 100%;
    color: var(--color-text-dark);
    border: 1px solid var(--color-border);
    background-color: var(--color-background-light);
    border-radius: var(--radius-form);
    padding: var(--padding-form);
    font-size: 1.3rem;
}
.form-box .form-box-title {
    font-size: 1.4rem;
    font-weight: 700;
    margin-bottom: var(--gap-component);
}
.form-box.info {
    color: var(--color-info);
    border-color: var(--color-info);
    background-color: var(--color-info-background);
}
.form-box.success {
    color: var(--color-success);
    border-color: var(--color-success);
    background-color: var(--color-success-background);
}
.form-box.warning {
    color: var(--color-warning);
    border-color: var(--color-warning);
    background-color: var(--color-warning-background);
}
.form-box.error {
    color: var(--color-error);
    border-color: var(--color-error);
    background-color: var(--color-error-background);
}

.form-pair {
    height: var(--size-form);
    display: flex;
    align-items: center;
    border-radius: var(--radius-form);
}
.form-pair .pair-label {
    height: 100%;
    background-color: var(--color-background-light);
    border-radius: var(--radius-form) 0 0 var(--radius-form);
    padding: var(--padding-form);
    white-space: nowrap;
    border: 1px solid var(--color-border);
    border-right-width: 0;
    color: var(--color-label);
    transition: var(--transition-duration);
}
.form-pair .pair-label.select {
    padding: 0 calc(var(--padding-form) + (var(--padding-form) / 2) + var(--size-icon)) 0 var(--padding-form);
}
.form-pair .pair-label:focus {
    border-right-width: 1px;
    border-radius: var(--radius-form);
    border-color: var(--color-primary);
    z-index: 1;
    color: var(--color-text);
}
.form-pair .pair-label:focus ~ .pair-item:first-child {
    border-left: none;
}
.form-pair .pair-text {
    height: var(--size-form);
    border: 1px solid var(--color-border);
    padding: 0 var(--padding-form);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}
.form-pair .pair-item {
    border-radius: 0;
    border-right-width: 0;
}
.form-pair .pair-item:last-child {
    border-right-width: 1px;
    border-radius: 0 var(--radius-form) var(--radius-form) 0;
}
.form-pair .pair-item:focus {
    border-right-width: 1px;
    border-radius: var(--radius-form);
    z-index: 1;
}
.form-pair .input {
    max-width: 18rem;
}
@media screen and (max-width: 767px) {
    .form-pair {
        height: auto;
    }
    .form-pair .pair-label {
        height: var(--size-form);
        min-width: 12rem;
    }
    .form-pair .pair-item {
        flex: 1;
    }
    .form-pair .input {
        max-width: 100%;
    }
    .form-pair.datepicker-group {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .form-pair.datepicker-group .select {
        grid-column: span 2;
    }
    .form-pair.datepicker-group .select.pair-label {
        border-width: 1px;
        border-radius: var(--radius-form) var(--radius-form) 0 0;
    }
    .form-pair.datepicker-group .select.pair-item {
        margin-top: -1px;
        border-radius: 0 0 var(--radius-form) var(--radius-form);
    }
    .form-pair.datepicker-group .input {
        margin-top: -1px;
    }
    .form-pair.datepicker-group .input:nth-of-type(2) {
        border-right-width: 1px;
    }
}

.form-separator {
    color: var(--color-text-light);
}

.file-upload {
    border-radius: var(--radius-form);
    background-color: var(--color-background-light);
    padding: var(--gap-section);
    border: 1px solid var(--color-border);
    border-color: var(--color-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--gap-layout);
    text-align: center;
    transition: var(--transition-duration);
}
.file-upload input[type=file] {
    display: none;
}
.file-upload .button {
    width: fit-content;
    cursor: pointer;
}
.file-upload .file-upload-text {
    color: var(--color-text-dark);
    transition: var(--transition-duration);
    word-break: keep-all;
}
.file-upload.drag-over {
    background-color: var(--color-primary-light);
    border-color: var(--color-primary);
    border-style: dashed;
}
.file-upload.drag-over .file-upload-text {
    color: var(--color-primary);
}

.file-list .file-list-head .file-list-count {
    font-weight: 500;
}
.file-list .file-list-head .file-list-count .current {
    font-weight: 700;
    color: var(--color-primary);
}
.file-list .file-list-content ul li {
    border: 1px solid var(--color-border);
    padding: var(--gap-layout);
    border-radius: var(--radius-form);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--gap-layout);
}
.file-list .file-list-content ul li .file-info {
    display: -webkit-box !important;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-all;
}

.form-toggle-button {
    display: inline-flex;
}
.form-toggle-button .icon::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
}

/* ────────────────────────────────
    card
──────────────────────────────── */
.card {
    padding: var(--gap-layout);
    border-radius: var(--radius-card);
    border: 1px solid var(--color-border);
    display: flex;
    flex-direction: column;
    gap: var(--gap-layout);
    position: relative;
    transition: var(--transition-duration);
}
.card > * {
    transition: var(--transition-duration);
}
.card.loading {
    align-items: center;
    justify-content: center;
}
.card.loading > * {
    opacity: 0;
    pointer-events: none;
}
.card.loading::after {
    content: "";
    display: block;
    position: absolute;
    width: 1.6rem;
    height: 1.6rem;
    border: 2px solid var(--color-border);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

.card-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--gap-component);
}

.card-title {
    font-size: 1.8rem;
    font-weight: 600;
}
.card-title ~ .card-sub-title {
    margin-top: var(--gap-component);
}

.card-sub-title {
    color: var(--color-text-dark);
}

.card-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--gap-component);
}

/* ────────────────────────────────
    breadcrumb
──────────────────────────────── */
.breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
    margin-bottom: var(--gap-layout);
}
.breadcrumb li {
    font-size: 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.8rem;
}
.breadcrumb li::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    font-size: 1.3rem;
    color: var(--color-text-light);
}
.breadcrumb li:last-child::after {
    display: none;
}
.breadcrumb li a {
    text-decoration: underline;
}
.breadcrumb li a:hover, .breadcrumb li a:focus {
    color: var(--color-primary);
}
.breadcrumb li span {
    color: var(--color-text-dark);
}
.breadcrumb li .icon {
    color: var(--color-text-dark);
    margin-right: -0.4rem;
}

.datepicker {
    cursor: pointer;
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cg clip-path='url(%23a)'%3E%3Cpath fill='%23606060' d='M6.808 0a.84.84 0 0 1 .84.84v1.57h9.02V.85a.84.84 0 0 1 1.68 0v1.56H21.6a2.4 2.4 0 0 1 2.4 2.4V21.6A2.4 2.4 0 0 1 21.6 24H2.4A2.4 2.4 0 0 1 0 21.601V4.81a2.4 2.4 0 0 1 2.4-2.4h3.568V.84A.84.84 0 0 1 6.808 0ZM1.68 9.29v12.311a.72.72 0 0 0 .72.72h19.2a.72.72 0 0 0 .72-.72V9.307L1.68 9.29ZM8 17.543v1.999H6v-2h2Zm5 0v1.999h-2v-2h2Zm5 0v1.999h-2v-2h2ZM8 12.77v2H6v-2h2Zm5 0v2h-2v-2h2Zm5 0v2h-2v-2h2ZM5.968 4.09H2.4a.72.72 0 0 0-.72.72v2.802l20.64.016V4.81a.72.72 0 0 0-.72-.72h-3.252v1.114a.84.84 0 0 1-1.68 0V4.09h-9.02v1.104a.84.84 0 0 1-1.68 0V4.09Z'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='a'%3E%3Cpath fill='%23fff' d='M0 0h24v24H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
    background-size: var(--size-icon-xsmall);
    background-position: center right 1.2rem;
    background-repeat: no-repeat;
    padding-right: 4rem !important;
}

.ui-datepicker {
    width: 100%;
    height: auto;
    position: relative;
    max-width: 28rem;
    background-color: var(--color-background);
    box-shadow: 0 0 10px rgba(var(--color-background-contrast), 0.1);
    border-radius: var(--radius-form);
    padding: var(--gap-component);
    display: none;
}
.ui-datepicker .ui-datepicker-header {
    height: 4.8rem;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.ui-datepicker .ui-datepicker-header .ui-datepicker-title {
    width: 100%;
    text-align: center;
    order: 2;
    font-size: 1.5rem;
    font-weight: 500;
}
.ui-datepicker .ui-datepicker-header .ui-datepicker-prev,
.ui-datepicker .ui-datepicker-header .ui-datepicker-next {
    width: var(--size-icon) !important;
    height: var(--size-icon) !important;
    min-width: var(--size-icon) !important;
    min-height: var(--size-icon) !important;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    overflow: hidden;
    border-radius: var(--radius-form);
    transition: var(--transition-duration);
    cursor: pointer;
}
.ui-datepicker .ui-datepicker-header .ui-datepicker-prev span,
.ui-datepicker .ui-datepicker-header .ui-datepicker-next span {
    display: none;
}
.ui-datepicker .ui-datepicker-header .ui-datepicker-prev::after,
.ui-datepicker .ui-datepicker-header .ui-datepicker-next::after {
    content: "" !important;
    display: block;
    width: var(--size-icon);
    height: var(--size-icon);
    background-repeat: no-repeat;
    background-size: var(--size-icon-small);
    background-position: center;
}
.ui-datepicker .ui-datepicker-header .ui-datepicker-prev:hover, .ui-datepicker .ui-datepicker-header .ui-datepicker-prev:focus,
.ui-datepicker .ui-datepicker-header .ui-datepicker-next:hover,
.ui-datepicker .ui-datepicker-header .ui-datepicker-next:focus {
    background-color: var(--color-background-light);
}
.ui-datepicker .ui-datepicker-header .ui-datepicker-prev:active,
.ui-datepicker .ui-datepicker-header .ui-datepicker-next:active {
    background-color: var(--color-background-light-active);
}
.ui-datepicker .ui-datepicker-header .ui-datepicker-prev {
    order: 1;
}
.ui-datepicker .ui-datepicker-header .ui-datepicker-prev::after {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath fill='%23606060' d='M14.71 15.88 10.83 12l3.88-3.88a.997.997 0 1 0-1.41-1.41L8.71 11.3a.996.996 0 0 0 0 1.41l4.59 4.59c.39.39 1.02.39 1.41 0 .38-.39.39-1.03 0-1.42Z'/%3E%3C/svg%3E");
}
.ui-datepicker .ui-datepicker-header .ui-datepicker-next {
    order: 3;
}
.ui-datepicker .ui-datepicker-header .ui-datepicker-next::after {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath fill='%23606060' d='M9.29 15.88 13.17 12 9.29 8.12a.997.997 0 0 1 1.41-1.41l4.59 4.59c.39.39.39 1.02 0 1.41L10.7 17.3a.994.994 0 0 1-1.41 0c-.38-.39-.39-1.03 0-1.42Z'/%3E%3C/svg%3E");
}

.ui-datepicker-calendar {
    width: 100%;
    position: relative;
}
.ui-datepicker-calendar tr {
    display: flex;
}
.ui-datepicker-calendar td {
    cursor: pointer;
    transition: var(--transition-duration);
}
.ui-datepicker-calendar td:hover, .ui-datepicker-calendar td:focus {
    background-color: var(--color-background-light);
}
.ui-datepicker-calendar td:active {
    background-color: var(--color-background-light-active);
}
.ui-datepicker-calendar th,
.ui-datepicker-calendar td {
    width: calc(100% / 7) !important;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 1.5rem;
    font-weight: 400;
    border-radius: var(--radius-form);
}
.ui-datepicker-calendar th::after,
.ui-datepicker-calendar td::after {
    content: "";
    display: block;
    padding-bottom: 100%;
}
.ui-datepicker-calendar .ui-datepicker-other-month {
    pointer-events: none;
}

/* 일요일 */
.ui-datepicker-calendar > thead > tr > th:first-child,
.ui-datepicker-calendar > tbody > tr > td:first-child a {
    color: #e42d15 !important;
}

/* 토요일 */
.ui-datepicker-calendar > thead > tr > th:last-child,
.ui-datepicker-calendar > tbody > tr > td:last-child a {
    color: #0091ff !important;
}

/* ────────────────────────────────
    datepicker/theme/dark
──────────────────────────────── */
:root.theme-dark .datepicker {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cg clip-path='url(%23a)'%3E%3Cpath fill='%23b0bed1' d='M6.808 0a.84.84 0 0 1 .84.84v1.57h9.02V.85a.84.84 0 0 1 1.68 0v1.56H21.6a2.4 2.4 0 0 1 2.4 2.4V21.6A2.4 2.4 0 0 1 21.6 24H2.4A2.4 2.4 0 0 1 0 21.601V4.81a2.4 2.4 0 0 1 2.4-2.4h3.568V.84A.84.84 0 0 1 6.808 0ZM1.68 9.29v12.311a.72.72 0 0 0 .72.72h19.2a.72.72 0 0 0 .72-.72V9.307L1.68 9.29ZM8 17.543v1.999H6v-2h2Zm5 0v1.999h-2v-2h2Zm5 0v1.999h-2v-2h2ZM8 12.77v2H6v-2h2Zm5 0v2h-2v-2h2Zm5 0v2h-2v-2h2ZM5.968 4.09H2.4a.72.72 0 0 0-.72.72v2.802l20.64.016V4.81a.72.72 0 0 0-.72-.72h-3.252v1.114a.84.84 0 0 1-1.68 0V4.09h-9.02v1.104a.84.84 0 0 1-1.68 0V4.09Z'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='a'%3E%3Cpath fill='%23fff' d='M0 0h24v24H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
}

.flatpickr {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cg clip-path='url(%23a)'%3E%3Cpath fill='%23606060' d='M6.808 0a.84.84 0 0 1 .84.84v1.57h9.02V.85a.84.84 0 0 1 1.68 0v1.56H21.6a2.4 2.4 0 0 1 2.4 2.4V21.6A2.4 2.4 0 0 1 21.6 24H2.4A2.4 2.4 0 0 1 0 21.601V4.81a2.4 2.4 0 0 1 2.4-2.4h3.568V.84A.84.84 0 0 1 6.808 0ZM1.68 9.29v12.311a.72.72 0 0 0 .72.72h19.2a.72.72 0 0 0 .72-.72V9.307L1.68 9.29ZM8 17.543v1.999H6v-2h2Zm5 0v1.999h-2v-2h2Zm5 0v1.999h-2v-2h2ZM8 12.77v2H6v-2h2Zm5 0v2h-2v-2h2Zm5 0v2h-2v-2h2ZM5.968 4.09H2.4a.72.72 0 0 0-.72.72v2.802l20.64.016V4.81a.72.72 0 0 0-.72-.72h-3.252v1.114a.84.84 0 0 1-1.68 0V4.09h-9.02v1.104a.84.84 0 0 1-1.68 0V4.09Z'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='a'%3E%3Cpath fill='%23fff' d='M0 0h24v24H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
    background-size: var(--size-icon-xsmall);
    background-position: center right 1.2rem;
    background-repeat: no-repeat;
    padding-right: 4rem !important;
}

.flatpickr-calendar {
    color: var(--color-text);
    background-color: var(--color-background);
    font-size: 1.4rem;
    line-height: 2.4rem;
    -webkit-box-shadow: 1px 0 0 var(--color-border), -1px 0 0 var(--color-border), 0 1px 0 var(--color-border), 0 -1px 0 var(--color-border), 0 3px 13px rgba(0, 0, 0, 0.08);
    box-shadow: 1px 0 0 var(--color-border), -1px 0 0 var(--color-border), 0 1px 0 var(--color-border), 0 -1px 0 var(--color-border), 0 3px 13px rgba(0, 0, 0, 0.08);
    max-width: calc(100% - var(--gap-layout) * 2);
    margin-top: 0.4rem;
}

span.flatpickr-weekday {
    color: var(--color-text);
}

.flatpickr-months {
    align-items: center;
}

.flatpickr-months .flatpickr-month {
    color: var(--color-text);
    align-items: center;
    display: flex;
    height: 6rem;
}

.flatpickr-day {
    color: var(--color-text);
}

.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
    top: auto;
}

.flatpickr-months .flatpickr-prev-month svg,
.flatpickr-months .flatpickr-next-month svg {
    width: 1.4rem;
    height: 1.4rem;
}

.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover,
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay,
.flatpickr-day.notAllowed,
.flatpickr-day.notAllowed.prevMonthDay,
.flatpickr-day.notAllowed.nextMonthDay {
    color: var(--color-text-light);
}

.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
    color: var(--color-text);
    fill: var(--color-text);
}

.flatpickr-months .flatpickr-prev-month:hover svg,
.flatpickr-months .flatpickr-next-month:hover svg {
    fill: var(--color-primary);
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected.inRange,
.flatpickr-day.startRange.inRange,
.flatpickr-day.endRange.inRange,
.flatpickr-day.selected:focus,
.flatpickr-day.startRange:focus,
.flatpickr-day.endRange:focus,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange:hover,
.flatpickr-day.endRange:hover,
.flatpickr-day.selected.prevMonthDay,
.flatpickr-day.startRange.prevMonthDay,
.flatpickr-day.endRange.prevMonthDay,
.flatpickr-day.selected.nextMonthDay,
.flatpickr-day.startRange.nextMonthDay,
.flatpickr-day.endRange.nextMonthDay {
    color: var(--color-primary-contrast);
    background-color: var(--color-primary);
}

.flatpickr-current-month {
    font-size: 1.6rem;
    height: auto;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.6rem;
}

.numInputWrapper span.arrowUp {
    top: 50%;
    transform: translateY(-50%);
}

.numInputWrapper span.arrowDown {
    top: 50%;
    transform: translateY(-50%);
}

.flatpickr-current-month .numInputWrapper span.arrowUp:after {
    border-bottom-color: var(--color-icon);
    top: -0.15rem;
}

.flatpickr-current-month .numInputWrapper span.arrowDown:after {
    border-top-color: var(--color-icon);
    top: auto;
    bottom: -0.125rem;
}

.flatpickr-monthDropdown-months {
    background-color: var(--color-background) !important;
}

.flatpickr-day.inRange,
.flatpickr-day.prevMonthDay.inRange,
.flatpickr-day.nextMonthDay.inRange,
.flatpickr-day.today.inRange,
.flatpickr-day.prevMonthDay.today.inRange,
.flatpickr-day.nextMonthDay.today.inRange,
.flatpickr-day:hover,
.flatpickr-day.prevMonthDay:hover,
.flatpickr-day.nextMonthDay:hover,
.flatpickr-day:focus,
.flatpickr-day.prevMonthDay:focus,
.flatpickr-day.nextMonthDay:focus {
    background: var(--color-background-light-active);
    border-color: var(--color-background-light-active);
}

.flatpickr-day.today {
    border-color: var(--color-primary);
}

.flatpickr-day.today:hover,
.flatpickr-day.today:focus {
    border-color: var(--color-primary);
    background: var(--color-primary);
}

.flatpickr-rContainer,
.flatpickr-days,
.dayContainer {
    width: 100%;
    min-width: auto;
    background-color: var(--color-background);
}

.flatpickr-calendar.arrowTop:before {
    border-bottom-color: var(--color-border);
}

.flatpickr-calendar.arrowTop:after {
    border-bottom-color: var(--color-background);
}

.flatpickr-current-month .flatpickr-monthDropdown-months {
    font-weight: 400;
    appearance: none;
    outline: none;
    border-radius: 0;
    color: var(--color-text);
    background-color: var(--color-background);
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='%23606060' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m7 10 5 5 5-5'/%3E%3C/svg%3E") !important;
    background-position: center right !important;
    background-repeat: no-repeat !important;
    background-size: var(--size-icon-small) !important;
    padding-right: 2rem;
}
.flatpickr-current-month .flatpickr-monthDropdown-months::-ms-expand {
    display: none;
}

.flatpickr-current-month .numInputWrapper {
    width: 6rem;
    display: flex;
    align-items: center;
    order: -1;
    background-color: var(--color-background) !important;
}
.flatpickr-current-month .numInputWrapper::after {
    content: "년";
    display: inline-block;
    position: absolute;
    left: 4rem;
}

.flatpickr-current-month input.cur-year {
    width: 4rem;
    background-color: var(--color-background);
    padding: 0;
    font-weight: 400;
}

.numInputWrapper span {
    border: none;
    opacity: 1;
    padding: 0;
    width: auto;
}

.numInputWrapper span:hover {
    background-color: transparent;
}

.flatpickr-day.inRange {
    box-shadow: -5px 0 0 var(--color-background-light-active), 5px 0 0 var(--color-background-light-active);
}

.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),
.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),
.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
    box-shadow: -10px 0 0 var(--color-primary);
}

/* ────────────────────────────────
    flatpickr/theme/dark
──────────────────────────────── */
:root.theme-dark .flatpickr {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cg clip-path='url(%23a)'%3E%3Cpath fill='%23b0bed1' d='M6.808 0a.84.84 0 0 1 .84.84v1.57h9.02V.85a.84.84 0 0 1 1.68 0v1.56H21.6a2.4 2.4 0 0 1 2.4 2.4V21.6A2.4 2.4 0 0 1 21.6 24H2.4A2.4 2.4 0 0 1 0 21.601V4.81a2.4 2.4 0 0 1 2.4-2.4h3.568V.84A.84.84 0 0 1 6.808 0ZM1.68 9.29v12.311a.72.72 0 0 0 .72.72h19.2a.72.72 0 0 0 .72-.72V9.307L1.68 9.29ZM8 17.543v1.999H6v-2h2Zm5 0v1.999h-2v-2h2Zm5 0v1.999h-2v-2h2ZM8 12.77v2H6v-2h2Zm5 0v2h-2v-2h2Zm5 0v2h-2v-2h2ZM5.968 4.09H2.4a.72.72 0 0 0-.72.72v2.802l20.64.016V4.81a.72.72 0 0 0-.72-.72h-3.252v1.114a.84.84 0 0 1-1.68 0V4.09h-9.02v1.104a.84.84 0 0 1-1.68 0V4.09Z'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='a'%3E%3Cpath fill='%23fff' d='M0 0h24v24H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E") !important;
}
:root.theme-dark .flatpickr-current-month .flatpickr-monthDropdown-months {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='%23b0bed1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m7 10 5 5 5-5'/%3E%3C/svg%3E") !important;
}

/* ────────────────────────────────
    chart
──────────────────────────────── */
.chart-container {
    width: 100%;
    height: auto;
    position: relative;
    height: 100%;
    overflow: auto;
}
.chart-container::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
.chart-container::-webkit-scrollbar-track {
    border-radius: var(--radius);
    background-color: #78788030;
}
.chart-container::-webkit-scrollbar-thumb {
    border-radius: var(--radius);
    background: #78788030;
}
.chart-container::-webkit-scrollbar-thumb:hover {
    background: #78788050;
}
.chart-container::-webkit-scrollbar-thumb:active {
    background: #78788070;
}
.chart-container::-webkit-scrollbar-button {
    display: none;
}

.chart-canvas {
    width: 100%;
    height: 100%;
    position: relative;
}
.chart-canvas.doughnut {
    width: 100% !important;
    max-height: none;
    height: auto;
}
.chart-canvas.doughnut::after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    padding-bottom: 100%;
}
.chart-canvas.doughnut .chart {
    position: absolute;
    left: 0;
    top: 0;
}
@media screen and (max-width: 767px) {
    .chart-canvas {
        width: 701px !important;
    }
}
@media screen and (max-width: 519px) {
    .chart-canvas {
        width: 453px !important;
    }
}

.chart {
    width: 100% !important;
    height: 100% !important;
}

/* ────────────────────────────────
    toast
──────────────────────────────── */
.toast-container {
    position: fixed;
    top: 0;
    right: 0;
    z-index: var(--z-index-loading);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--gap-component);
}
.toast-container .toast {
    width: 32rem;
    min-height: calc(var(--size-icon) + var(--gap-layout) + var(--gap-layout));
    background-color: var(--color-background);
    transition: var(--transition-duration);
    box-shadow: 0 0 10px rgba(var(--color-background-contrast), 0.1);
    padding: var(--gap-layout);
    border-radius: var(--radius);
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: var(--transition-duration);
    transform: translateX(32rem);
    margin-right: var(--gap-layout);
}
.toast-container .toast:first-child {
    margin-top: var(--gap-layout);
}
.toast-container .toast .toast-icon {
    width: calc(var(--size-icon));
    height: calc(var(--size-icon));
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    position: absolute;
    left: var(--gap-layout);
    background-color: var(--color-background-light);
}
.toast-container .toast .toast-icon::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
    font-size: 1rem;
}
.toast-container .toast .toast-title {
    font-size: 1.5rem;
    font-weight: 700;
    padding-left: calc(var(--size-icon) + var(--gap-layout));
}
.toast-container .toast .toast-sub-title {
    font-size: 1.4rem;
    padding-left: calc(var(--size-icon) + var(--gap-layout));
}
.toast-container .toast.info .toast-icon {
    background-color: var(--color-info);
}
.toast-container .toast.info .toast-icon::after {
    content: "";
    color: var(--color-white);
}
.toast-container .toast.success .toast-icon {
    background-color: var(--color-success);
}
.toast-container .toast.success .toast-icon::after {
    content: "";
    color: var(--color-white);
}
.toast-container .toast.warning .toast-icon {
    background-color: var(--color-warning);
}
.toast-container .toast.warning .toast-icon::after {
    content: "";
    color: var(--color-white);
}
.toast-container .toast.error .toast-icon {
    background-color: var(--color-error);
}
.toast-container .toast.error .toast-icon::after {
    content: "";
    color: var(--color-white);
}
.toast-container .toast.active {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0);
}
.toast-container .toast.hidden {
    opacity: 0;
    pointer-events: none;
    transform: translateX(32rem);
}

/* ────────────────────────────────
    panel
──────────────────────────────── */
.panel {
    width: 100%;
    max-width: var(--size-panel);
    height: 100%;
    position: fixed;
    right: calc(var(--size-panel) * -1);
    top: 0;
    background-color: var(--color-background);
    border-left: 1px solid var(--color-border-snb);
    padding-top: var(--size-header-height);
    opacity: 0;
    pointer-events: none;
    transition: var(--transition-duration);
    z-index: var(--z-index-panel);
}
.panel .panel-layer {
    width: 100%;
    height: 100%;
    position: fixed;
    left: 0;
    top: 0;
    display: block;
    background-color: rgba(var(--color-background-contrast), 0.2);
    opacity: 0;
    pointer-events: none;
    transition: var(--transition-duration);
}
.panel .panel-container {
    height: 100%;
    display: flex;
    flex-direction: column;
    overflow: auto;
}
.panel .panel-container::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
.panel .panel-container::-webkit-scrollbar-track {
    border-radius: var(--radius);
    background-color: #78788030;
}
.panel .panel-container::-webkit-scrollbar-thumb {
    border-radius: var(--radius);
    background: #78788030;
}
.panel .panel-container::-webkit-scrollbar-thumb:hover {
    background: #78788050;
}
.panel .panel-container::-webkit-scrollbar-thumb:active {
    background: #78788070;
}
.panel .panel-container::-webkit-scrollbar-button {
    display: none;
}
.panel .panel-container::-webkit-scrollbar {
    width: 0;
    height: 0;
}
.panel .panel-head {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--gap-layout);
    position: sticky;
    left: 0;
    top: 0;
    background-color: var(--color-background);
    padding: var(--gap-component) var(--gap-layout);
    border-bottom: 1px solid var(--color-border-light);
    transition: var(--transition-duration);
}
.panel .panel-head .button-group {
    gap: 0.1rem;
}
.panel .panel-head .panel-view-change-button .icon::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
}
.panel .panel-head .panel-close-button .icon::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
}
.panel .panel-title {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 1.6rem;
    font-weight: 700;
}
.panel .panel-body {
    flex: 1;
    padding: var(--gap-layout);
    background-color: var(--color-background);
}
.panel .panel-footer {
    position: sticky;
    left: 0;
    bottom: 0;
    background-color: var(--color-background);
    padding: var(--gap-layout);
    display: flex;
    flex-direction: column;
    gap: var(--gap-component);
    border-top: 1px solid var(--color-border-light);
    transition: var(--transition-duration);
}

/* ────────────────────────────────
    body/panel-open/panel
──────────────────────────────── */
body.panel-open .panel {
    right: 0;
    opacity: 1;
    pointer-events: auto;
}
body.panel-overlay .panel {
    max-width: 100%;
    right: 50%;
    transform: translateX(50%);
    z-index: var(--z-index-modal);
    padding: var(--gap-layout);
    background-color: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 1;
    pointer-events: auto;
    transition: none;
}
body.panel-overlay .panel .panel-container {
    width: 100%;
    height: auto;
    position: relative;
    overflow: auto;
    overflow-x: hidden;
    overscroll-behavior: none;
    max-height: 100%;
    max-width: 56rem;
    background-color: var(--color-background);
    border-radius: var(--radius-form);
    box-shadow: 0 0 10px rgba(var(--color-background-contrast), 0.1);
}
body.panel-overlay .panel .panel-container::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
body.panel-overlay .panel .panel-container::-webkit-scrollbar-track {
    border-radius: var(--radius);
    background-color: #78788030;
}
body.panel-overlay .panel .panel-container::-webkit-scrollbar-thumb {
    border-radius: var(--radius);
    background: #78788030;
}
body.panel-overlay .panel .panel-container::-webkit-scrollbar-thumb:hover {
    background: #78788050;
}
body.panel-overlay .panel .panel-container::-webkit-scrollbar-thumb:active {
    background: #78788070;
}
body.panel-overlay .panel .panel-container::-webkit-scrollbar-button {
    display: none;
}
body.panel-overlay .panel .panel-head .panel-view-change-button .icon::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
}
body.panel-overlay .panel .panel-head .panel-close-button .icon::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon);
    display: inline-block;
}
body.panel-overlay .panel .panel-layer {
    opacity: 1;
    pointer-events: auto;
}
body.panel-overlay .panel .panel-footer .button-group {
    justify-content: flex-end;
}
body.panel-overlay .panel .panel-footer .button-group .button {
    flex: 0;
}
body.panel-overlay .panel .panel-control {
    display: none;
}

/* ────────────────────────────────
    body/mq-laptop(min)/panel
──────────────────────────────── */
@media screen and (min-width: 1240px) {
    body.panel-open .main {
        padding-right: calc(var(--size-panel) + var(--gap-component));
    }
}

/* ────────────────────────────────
    calendar
──────────────────────────────── */
.card-calendar {
    padding-bottom: 0;
}
.card-calendar .card-head {
    align-items: center;
}

.calendar {
    width: calc(100% + calc(var(--gap-layout) * 2));
    margin-left: calc(-1 * var(--gap-layout));
    font-size: 1.3rem;
    margin-top: 1rem;
}

.calendar-head,
.calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
}

.calendar-head {
    border-top: 1px solid var(--color-border);
}
.calendar-head .day {
    text-align: center;
    border-left: 1px solid var(--color-border);
    padding: calc(var(--gap-component) / 2);
    font-weight: 500;
    color: var(--color-text-dark);
}
.calendar-head .day:first-child {
    border-left-width: 0;
}
@media screen and (max-width: 767px) {
    .calendar-head {
        border-top-width: 0;
    }
    .calendar-head .day {
        border: none;
    }
}

.calendar-grid .day {
    width: 100%;
    position: relative;
    border: 1px solid var(--color-border);
    border-bottom-width: 0;
    border-right-width: 0;
    cursor: pointer;
}
.calendar-grid .day:nth-of-type(7n + 1) {
    border-left-width: 0;
}
.calendar-grid .day::after {
    content: "";
    display: block;
    padding-bottom: 100%;
}
.calendar-grid .day .day-content {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    overflow: auto;
    overflow-y: auto;
    padding: calc(var(--gap-component) / 2);
}
.calendar-grid .day .day-content::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
.calendar-grid .day .day-content::-webkit-scrollbar-track {
    border-radius: var(--radius);
    background-color: #78788030;
}
.calendar-grid .day .day-content::-webkit-scrollbar-thumb {
    border-radius: var(--radius);
    background: #78788030;
}
.calendar-grid .day .day-content::-webkit-scrollbar-thumb:hover {
    background: #78788050;
}
.calendar-grid .day .day-content::-webkit-scrollbar-thumb:active {
    background: #78788070;
}
.calendar-grid .day .day-content::-webkit-scrollbar-button {
    display: none;
}
.calendar-grid .day .day-content::-webkit-scrollbar {
    display: none;
}
.calendar-grid .day .day-content .date {
    position: sticky;
    left: 0;
    top: 0;
    background-color: var(--color-background);
    margin-bottom: calc(var(--gap-component) / 2);
    font-weight: 500;
    color: var(--color-text-dark);
}
.calendar-grid .day .day-content .date::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background-color: var(--color-background);
    position: absolute;
    left: 0;
    top: -100%;
    z-index: -1;
}
.calendar-grid .day .day-content .date.today span {
    width: 2.4rem;
    text-align: center;
    color: var(--color-background);
    z-index: 1;
}
.calendar-grid .day .day-content .date.today span::after {
    content: "";
    display: block;
    width: 2.4rem;
    height: 2.4rem;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    background-color: var(--color-text);
    border-radius: 50%;
    z-index: -1;
}
.calendar-grid .day .day-content .event {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-component) / 2);
}
.calendar-grid .day .day-content .event .badge {
    white-space: normal;
    word-break: break-all;
}
.calendar-grid .day:hover {
    background-color: var(--color-background-light);
}
.calendar-grid .day:hover .day-content .date {
    background-color: var(--color-background-light);
}
.calendar-grid .day:hover .day-content .date::before {
    background-color: var(--color-background-light);
}
.calendar-grid .day.day-other {
    background-color: var(--color-background-light);
}
.calendar-grid .day.day-other .day-content .date {
    opacity: 0.5;
    background-color: var(--color-background-light);
}
.calendar-grid .day.day-other .day-content .date::before {
    background-color: var(--color-background-light);
}
@media screen and (max-width: 767px) {
    .calendar-grid .day {
        border-color: var(--color-border-light);
        border-left-width: 0;
    }
    .calendar-grid .day .day-content {
        padding-top: var(--gap-component);
        padding-bottom: 0;
    }
    .calendar-grid .day .day-content .date {
        text-align: center;
    }
    .calendar-grid .day .day-content .date.today span::after {
        left: 50%;
        transform: translate(-50%, -50%);
    }
    .calendar-grid .day .day-content .event {
        flex-direction: row;
        align-items: center;
        justify-content: center;
        gap: 0.3rem;
    }
    .calendar-grid .day .day-content .event .badge {
        width: 1rem;
        height: 1rem;
        padding: 0;
        font-size: 0;
    }
    .calendar-grid .day.day-other {
        background-color: var(--color-background);
    }
    .calendar-grid .day.day-other .day-content .date {
        background-color: var(--color-background);
    }
    .calendar-grid .day.day-other .day-content .date::before {
        display: none;
    }
}

.calendar-button-group .prev::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon-light) !important;
    display: inline-block;
}
.calendar-button-group .next::after {
    content: "";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: var(--font-base-size);
    color: var(--color-icon-light) !important;
    display: inline-block;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbW1vbi9fcmVzZXQuc2NzcyIsImNvbW1vbi9fdmFyaWFibGUuc2NzcyIsImNvbW1vbi9fbWl4aW4uc2NzcyIsImNvbW1vbi9fcm9vdC5zY3NzIiwiY29tbW9uL19mb250cy5zY3NzIiwiY29tbW9uL19jb2xvci5zY3NzIiwiY29tbW9uL19pY29uLnNjc3MiLCJjb21tb24vX2NvbW1vbi5zY3NzIiwiY29tbW9uL19hbmltYXRpb24uc2NzcyIsImNvbW1vbi9fc2VjdGlvbi5zY3NzIiwibGF5b3V0L19ncmlkLnNjc3MiLCJsYXlvdXQvX2hlYWRlci5zY3NzIiwibGF5b3V0L19zbmIuc2NzcyIsImxheW91dC9fbWFpbi5zY3NzIiwibGF5b3V0L19mb290ZXIuc2NzcyIsImxheW91dC9fcG9wdXAuc2NzcyIsImxheW91dC9fZXJyb3Iuc2NzcyIsImNvbXBvbmVudHMvX2ljb24uc2NzcyIsImNvbXBvbmVudHMvX2xvYWRpbmcuc2NzcyIsImNvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwiY29tcG9uZW50cy9fYmFkZ2Uuc2NzcyIsImNvbXBvbmVudHMvX3BvcG92ZXIuc2NzcyIsImNvbXBvbmVudHMvX2lucHV0LnNjc3MiLCJjb21wb25lbnRzL19zZWxlY3Quc2NzcyIsImNvbXBvbmVudHMvX2NoZWNrYm94LnNjc3MiLCJjb21wb25lbnRzL19zd2l0Y2guc2NzcyIsImNvbXBvbmVudHMvX3JhZGlvLnNjc3MiLCJjb21wb25lbnRzL190ZXh0YXJlYS5zY3NzIiwiY29tcG9uZW50cy9fbW9kYWwuc2NzcyIsImNvbXBvbmVudHMvX3RhYmxlLnNjc3MiLCJjb21wb25lbnRzL19wYWdpbmF0aW9uLnNjc3MiLCJjb21wb25lbnRzL19mb3JtLnNjc3MiLCJjb21wb25lbnRzL19jYXJkLnNjc3MiLCJjb21wb25lbnRzL19icmVhZGNydW1iLnNjc3MiLCJjb21wb25lbnRzL2RhdGVwaWNrZXIuc2NzcyIsImNvbXBvbmVudHMvZmxhdHBpY2tyLnNjc3MiLCJjb21wb25lbnRzL19jaGFydC5zY3NzIiwiY29tcG9uZW50cy9fdG9hc3Quc2NzcyIsImNvbXBvbmVudHMvX3BhbmVsLnNjc3MiLCJjb21wb25lbnRzL19jYWxlbmRhci5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7QUFHQTtJQUNJO0lBQ0E7SUFDQTs7QUFHQTtJQUVJOzs7QUFJUjtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7OztBQUdKO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOzs7QUFHSjtBQUFBO0lBRUk7O0FBRUE7QUFBQTtJQUNJO0lBQ0E7SUFDQTs7O0FBSVI7SUFDSTtJQUNBO0lBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0lBT0k7SUFDQTs7O0FBR0o7SUFDSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7SUFJSTs7O0FBR0o7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztBQUVBO0lBQ0k7OztBQUlSO0lBQ0k7SUFDQTs7QUFFQTtJQUlJOzs7QUFJUjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0lBUUk7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7OztBQUdKO0FBQUE7SUFFSTtJQUNBO0lBQ0E7OztBQUdKO0lBQ0k7OztBQUdKO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7QUFFQTtJQUNJOzs7QUFJUjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQU9JOzs7QUFHSjtJQUNJO0lBQ0E7SUFDQTs7O0FBR0o7SUFDSTs7O0FBR0o7SUFDSTs7O0FDNUpKO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQUdBO0lBRUk7SUFDQTtJQUNBO0lBR0E7SUFDQTtJQUNBO0lBRUE7SUFDQTtJQUNBO0lBQ0E7SUFFQTtJQUNBO0lBQ0E7SUFFQTtJQUNBO0lBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBR0E7SUFDQTtJQUVBO0lBQ0E7SUFFQTtJQUNBO0lBRUE7SUFDQTtJQUVBO0lBQ0E7SUFHQTtJQUNBO0lBQ0E7SUFFQTtJQUNBO0lBQ0E7SUFFQTtJQUNBO0lBQ0E7SUFFQTtJQUNBO0lBRUE7SUFDQTtJQUVBO0lBQ0E7SUFFQTtJQUNBO0lBRUE7SUFDQTtJQUVBO0lBQ0E7SUFFQTtJQUNBO0lBRUE7SUFDQTtJQUVBO0lBQ0E7SUFFQTtJQUNBO0lBRUE7SUFDQTtJQUVBO0lBQ0E7SUFFQTtJQUNBO0lBRUE7SUFDQTtJQUdBO0lBQ0E7SUFDQTtJQUNBO0lBR0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFHQTtJQUNBO0lBQ0E7SUFDQTtJQUdBO0lBQ0E7SUFDQTtJQUdBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFHQTtJQUdBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7QUQ3Q0k7SUNySFI7UUFxS1E7Ozs7QUN4S1I7QUFBQTtBQUFBO0FBS0E7SUFDSTtJQUNBO0lBQ0E7SUFDQTs7QUFHSjtJQUNJO0lBQ0E7SUFDQTtJQUNBOztBQUdKO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7O0FBR0o7SUFDSTtJQUNBO0lBQ0E7SUFDQTs7QUFHSjtJQUNJO0lBQ0E7SUFDQTtJQUNBOztBQUdKO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7O0FBR0o7SUFDSTtJQUNBO0lBQ0E7SUFDQTs7QUFHSjtJQUNJO0lBQ0E7SUFDQTtJQUNBOztBQUdKO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7O0FDakVKO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQ0FBO0FBQUE7QUFBQTtBQUlJO0lBQ0k7OztBQUlSO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7OztBQU1KO0lMOEhJO0lLNUhBO0lBQ0E7O0FBR0k7SUFDSTs7O0FBS1o7SUFDSTtJQUNBO0lBQ0E7SUFDQTs7QUFFQTtJQUNJOztBQU1KO0lBQ0k7SUFDQTs7QUFHSjtJQUNJOzs7QUFJUjtJTDVD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QjBJQTtJQUNBO0lBQ0E7SUFDQTs7QWlCeklJO0FBQUE7QUFBQTtJQUVJOztBQUlSO0lqQndJQTs7QWlCcElBO0lBQ0k7SUFDQTtJQUNBOztBQUVBO0FBQUE7SUFFSTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztBQUlSO0lBQ0k7SUFDQTtJQUNBOztBQUdKO0lBQ0k7O0FBRUE7QUFBQTtJQUVJOztBQUdKO0lBQ0k7SWpCNkRSO0lBQ0E7SUFDQSxPaUI5RHlCO0lqQitEekIsUWlCL0R5QjtJakJnRXpCO0lBQ0E7SUFDQTtJQUNBOztBaUIvREE7SUFDSTtJQUNBOztBQUdKO0lBQ0k7SUFDQTtJQUNBOztBQUVBO0FBQUE7SUFFSTs7QUFJQTtJakJ3Q1I7SUFDQTtJQUNBLE9pQnpDNkI7SWpCMEM3QixRaUIxQzZCO0lqQjJDN0I7SUFDQTtJQUNBO0lBQ0E7O0FpQjFDSTtJQUVJOztBQUdKO0lBQ0k7O0FBSVI7SUFDSTtJQUNBOztBQUVBO0FBQUE7SUFFSTs7QUFJQTtJakJlUjtJQUNBO0lBQ0EsT2lCaEI2QjtJakJpQjdCLFFpQmpCNkI7SWpCa0I3QjtJQUNBO0lBQ0E7SUFDQTs7QWlCaEJBO0lBQ0k7SUFDQTtJQUNBOztBQUVBO0FBQUE7SUFFSTs7QUFJQTtJakJGUjtJQUNBO0lBQ0EsT2lCQzZCO0lqQkE3QjtJQUNBO0lBQ0E7SUFDQTtJQUNBOztBaUJBSTtJQUVJOztBQUdKO0lBQ0k7O0FBSVI7SUFDSTtJQUNBO0lBQ0E7O0FBRUE7QUFBQTtJQUVJOztBQUlBO0lqQjVCUjtJQUNBO0lBQ0EsT2lCMkI2QjtJakIxQjdCLFFpQjBCNkI7SWpCekI3QjtJQUNBO0lBQ0E7SUFDQTs7QWlCMEJJO0lBQ0k7O0FBSVI7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztBQUVBO0FBQUE7QUFBQTtJQUdJOztBQUdKO0lqQmxCSjtJQUNBO0lBQ0E7SUFDQTtJaUJrQlE7O0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQUdJOztBQUlSO0lqQnRCSjs7QWlCMkJBO0lBQ0k7SUFDQTtJQUNBOztBQUVBO0FBQUE7SUFFSTs7QUFH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QUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7QUFHSjtBQUFBO0FBQUE7SUFFSTs7QUFHSjtBQUFBO0lBQ0k7O0FBSVI7SUFDSTs7QUFFQTtJQUNJOztBQUlSO0lBQ0k7O0FBRUE7SUFDSTs7O0FBTWhCO0lBQ0k7SUFDQTs7QUFFQTtJQUNJOztBQUdKO0lBQ0k7SWhDOElKOztBZ0MzSUk7SUFFSTs7QUFHSjtJQUNJOztBQUlSO0FBQUE7SUFFSTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztBQUVBO0FBQUE7SUFDSTtJQUNBO0lBQ0E7O0FBSVI7SUFDSTs7O0FBSVI7QUFDQTtBQUFBO0lBRUk7OztBQUdKO0FBQ0E7QUFBQTtJQUVJOzs7QUFHSjtBQUFBO0FBQUE7QUFLUTtJQUNJOzs7QUN6Slo7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBOzs7QUFHSjtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFFQTtJQUVBO0lBQ0E7OztBQUdKO0lBQ0k7OztBQUdKO0lBQ0k7OztBQUdKO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7OztBQUdKO0lBQ0k7OztBQUdKO0FBQUE7SUFFSTs7O0FBR0o7QUFBQTtJQUVJO0lBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0lBT0k7OztBQUdKO0FBQUE7SUFFSTtJQUNBOzs7QUFHSjtBQUFBO0lBRUk7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQWtCSTtJQUNBOzs7QUFHSjtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOzs7QUFHSjtJQUNJO0lBQ0E7OztBQUdKO0lBQ0k7SUFDQTs7O0FBR0o7SUFDSTtJQUNBOzs7QUFHSjtJQUNJO0lBQ0E7SUFDQTs7O0FBR0o7SUFDSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0lBWUk7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QUlBO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7O0FBRUE7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztBQU1oQjtJQUNJO0lBQ0E7SUFDQTs7QUFFQTtJQUNJO0lBQ0E7O0FBS1o7SUFDSTs7QUFHSTtJQUNJOztBQUVBO0lBQ0k7O0FBTWhCO0lBQ0k7O0FBR0k7SUFDSTtJQUNBOztBQUVBO0lBQ0k7O0FyQ3pDaEI7SXFDaURBO1FBQ0k7UUFDQTs7SUFFQTtRQUNJO1FBQ0E7O0lBRUE7UUFDSTs7SUFJUTtRQUNJO1FBQ0E7O0lBTWhCO1FBQ0k7UUFDQTtRQUNBO1FBQ0E7O0lBRUE7UUFDSTtRQUNBO1FBQ0E7UUFDQTs7SUFRWjtRQUNJOztJQUdJO1FBQ0k7O0lBRUE7UUFDSTs7OztBQVdwQjtJckN0SkosU3FDdUo4QjtJckN0SjlCO0lBQ0E7SUFDQTtJQUNBLE9xQ21KdUM7SXJDbEp2Qzs7QXFDdUpJO0lyQzVKSixTcUM2SjhCO0lyQzVKOUI7SUFDQTtJQUNBO0lBQ0EsT3FDeUp1QztJckN4SnZDIiwiZmlsZSI6ImluZGV4LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgcmVzZXRcclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbioge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblxyXG5cclxuICAgICY6OmFmdGVyLFxyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgfVxyXG59XHJcblxyXG5odG1sIHtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJhc2UpO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUpO1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbn1cclxuXHJcbmJvZHkge1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LWJhc2Utc2l6ZSk7XHJcbiAgICBsaW5lLWhlaWdodDogMS42O1xyXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxufVxyXG5cclxub2wsXHJcbnVsIHtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcblxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgfVxyXG59XHJcblxyXG5idXR0b24ge1xyXG4gICAgYWxsOiB1bnNldDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbn1cclxuXHJcbmltZyxcclxuc3ZnLFxyXG5waWN0dXJlLFxyXG52aWRlbyxcclxuY2FudmFzLFxyXG5pZnJhbWUsXHJcbnRleHRhcmVhIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG5pbWcge1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxufVxyXG5cclxuaW5wdXQsXHJcbmJ1dHRvbixcclxudGV4dGFyZWEsXHJcbnNlbGVjdCB7XHJcbiAgICBmb250OiBpbmhlcml0O1xyXG59XHJcblxyXG5pbnB1dCB7XHJcbiAgICBhcHBlYXJhbmNlOiBub25lO1xyXG4gICAgYm9yZGVyLXJhZGl1czogbm9uZTtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG5cclxuICAgICY6Oi1tcy1jbGVhciB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxufVxyXG5cclxuaW5wdXQge1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcblxyXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbixcclxuICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXHJcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbixcclxuICAgICY6Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxufVxyXG5cclxuaW5wdXRbdHlwZT1cInRleHRcIl0sXHJcbmlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcclxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxcclxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcclxuaW5wdXRbdHlwZT1cInRlbFwiXSxcclxuaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxyXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXHJcbmlucHV0W3R5cGU9XCJyZXNldFwiXSB7XHJcbiAgICBhcHBlYXJhbmNlOiBub25lO1xyXG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDtcclxuICAgIC1tb3otYm9yZGVyLXJhZGl1czogMDtcclxuICAgIG91dGxpbmU6IDA7XHJcbn1cclxuXHJcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXHJcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcclxufVxyXG5cclxuaW5wdXRbdHlwZT1udW1iZXJdIHtcclxuICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xyXG59XHJcblxyXG5zZWxlY3Qge1xyXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcblxyXG4gICAgJjo6LW1zLWV4cGFuZCB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxufVxyXG5cclxucCxcclxuaDEsXHJcbmgyLFxyXG5oMyxcclxuaDQsXHJcbmg1LFxyXG5oNiB7XHJcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xyXG59XHJcblxyXG5hIHtcclxuICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG59XHJcblxyXG5bb25jbGlja10ge1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG5zcGFuIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufSIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgdmFyaWFibGVcclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBtaXhpbnNcclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbkBtaXhpbiBwYXJlbnQoJHdpZHRoOiAxMDAlLCAkaGVpZ2h0OiBhdXRvLCAkcG9zaXRpb246IHJlbGF0aXZlKSB7XHJcbiAgICB3aWR0aDogJHdpZHRoO1xyXG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xyXG4gICAgcG9zaXRpb246ICRwb3NpdGlvbjtcclxufVxyXG5cclxuQG1peGluIGxpbmUtY2xhbXAoJGxpbmU6IDEpIHtcclxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94ICFpbXBvcnRhbnQ7XHJcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6ICRsaW5lO1xyXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxufVxyXG5cclxuQG1peGluIGZsZXgoJGRpcmVjdGlvbjogcm93LCAkanVzdGlmeTogY2VudGVyLCAkYWxpZ246IGNlbnRlciwgJHdyYXA6IG5vd3JhcCwgJGdhcDogMCkge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uO1xyXG4gICAganVzdGlmeS1jb250ZW50OiAkanVzdGlmeTtcclxuICAgIGFsaWduLWl0ZW1zOiAkYWxpZ247XHJcbiAgICBmbGV4LXdyYXA6ICR3cmFwO1xyXG4gICAgZ2FwOiAkZ2FwO1xyXG59XHJcblxyXG5AbWl4aW4gZ3JpZCgkY29sdW1uOiAxMiwgJG1pbjogMCwgJG1heDogMWZyLCAkZ2FwOiB2YXIoLS1nYXAtbGF5b3V0KSkge1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdhcDogJGdhcDtcclxuXHJcbiAgICBAaWYgJGNvbHVtbiA9PWF1dG8ge1xyXG4gICAgICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XHJcbiAgICAgICAgZ3JpZC1hdXRvLWNvbHVtbnM6IG1pbm1heCgkbWluLCAkbWF4KTtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KCRjb2x1bW4sIG1pbm1heCgkbWluLCAkbWF4KSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtaXhpbiBzY3JvbGxib3gge1xyXG4gICAgb3ZlcmZsb3c6IGF1dG87XHJcblxyXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xyXG4gICAgICAgIC8vIOyKpO2BrOuhpCDrsJRcclxuICAgICAgICB3aWR0aDogOHB4O1xyXG4gICAgICAgIGhlaWdodDogOHB4O1xyXG4gICAgfVxyXG5cclxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcclxuICAgICAgICAvLyDsiqTtgazroaQg67CUIOuwkeydmCDrsLDqsr1cclxuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ODc4ODAzMDtcclxuICAgIH1cclxuXHJcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICAgICAgLy8g7Iuk7KeI7KCBIOyKpO2BrOuhpCDrsJRcclxuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICM3ODc4ODAzMDtcclxuICAgIH1cclxuXHJcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XHJcbiAgICAgICAgLy8g7Iuk7KeI7KCBIOyKpO2BrOuhpCDrsJQg7JyE7JeQIOuniOyasOyKpOulvCDsmKzroKTri6Qg65GYIOuVjFxyXG4gICAgICAgIGJhY2tncm91bmQ6ICM3ODc4ODA1MDtcclxuICAgIH1cclxuXHJcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjphY3RpdmUge1xyXG4gICAgICAgIC8vIOyLpOyniOyggSDsiqTtgazroaQg67CU66W8IO2BtOumre2VoCDrlYxcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjNzg3ODgwNzA7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uIHtcclxuICAgICAgICAvLyDsiqTtgazroaQg67CUIOyDgSDtlZjri6gg67KE7Yq8XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIGZvbnRBd2Vzb21lNSgkaWNvbjogXCJcXGYxMDVcIiwgJGNvbG9yOiB2YXIoLS1jb2xvci1pY29uKSkge1xyXG4gICAgY29udGVudDogJGljb247XHJcbiAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBGcmVlXCI7XHJcbiAgICBmb250LXdlaWdodDogOTAwO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LWJhc2Utc2l6ZSk7XHJcbiAgICBjb2xvcjogJGNvbG9yO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG59XHJcblxyXG5AbWl4aW4gYm9yZGVyLXRvcCgkY29sb3I6IHZhcigtLWNvbG9yLWJvcmRlcikpIHtcclxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY29sb3I7XHJcbn1cclxuXHJcbkBtaXhpbiBib3JkZXItYm90dG9tKCRjb2xvcjogdmFyKC0tY29sb3ItYm9yZGVyKSkge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcjtcclxufVxyXG5cclxuLy8g66+465SU7Ja07L+866asXHJcbkBtaXhpbiBtcS1sYXB0b3AoJHR5cGU6IG1heCkge1xyXG4gICAgQGlmICR0eXBlID09bWF4IHtcclxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjM5cHgpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfSBAZWxzZSBpZiAkdHlwZSA9PW1pbiB7XHJcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTI0MHB4KSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIG1xLXRhYmxldCgkdHlwZTogbWF4KSB7XHJcbiAgICBAaWYgJHR5cGUgPT1tYXgge1xyXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9IEBlbHNlIGlmICR0eXBlID09bWluIHtcclxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gbXEtbW9iaWxlKCR0eXBlOiBtYXgpIHtcclxuICAgIEBpZiAkdHlwZSA9PW1heCB7XHJcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfSBAZWxzZSBpZiAkdHlwZSA9PW1pbiB7XHJcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vLyDsoJXtlbTsp4Qg66+465SU7Ja0IOy/vOumrCDsnbTsmbjsl5Ag7IKs7Jqp7ZWY6rOgIOyLtuydgCDqsr3smrBcclxuQG1peGluIG1xLWN1c3RvbSgkdHlwZSwgJHdpZHRoKSB7XHJcbiAgICBAaWYgJHR5cGUgPT1tYXgge1xyXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR3aWR0aCkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9IEBlbHNlIGlmICR0eXBlID09bWluIHtcclxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkd2lkdGgpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vLyDrs7TrjZRcclxuQG1peGluIGJvcmRlcigpIHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7XHJcbn1cclxuXHJcbi8vIOuwleyKpCDshIDrj4TsmrBcclxuQG1peGluIGJveC1zaGFkb3coKSB7XHJcbiAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKHZhcigtLWNvbG9yLWJhY2tncm91bmQtY29udHJhc3QpLCAwLjEpO1xyXG59XHJcblxyXG4vLyDsubTrk5ztmJXtg5wg7YWM7J2067iUXHJcbkBtaXhpbiB0YWJsZS1jYXJkKCkge1xyXG4gICAgdGhlYWQge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgdGJvZHkge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICBnYXA6IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIHRyIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgZ2FwOiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuICAgICAgICBAaW5jbHVkZSBib3JkZXIoKTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZm9ybSk7XHJcbiAgICAgICAgcGFkZGluZzogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGQge1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcblxyXG4gICAgICAgICZbZGF0YS1sYWJlbF0ge1xyXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWxhYmVsKTtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tZ2FwLWNvbXBvbmVudCk7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWxhYmVsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYnV0dG9uLWdyb3VwIHtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyDsiqTtlLzrhIhcclxuQG1peGluIHNwaW5uZXIoJHNpemU6IDEuNnJlbSwgJGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KSkge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB3aWR0aDogJHNpemU7XHJcbiAgICBoZWlnaHQ6ICRzaXplO1xyXG4gICAgYm9yZGVyOiAycHggc29saWQgJGNvbG9yO1xyXG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlO1xyXG59XHJcblxyXG4vLyBjbG9zZSBpY29uIGJ1dHRvblxyXG5AbWl4aW4gYnV0dG9uLWNsb3NlKCkge1xyXG4gICAgd2lkdGg6IHZhcigtLXNpemUtaWNvbik7XHJcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtaWNvbik7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiB2YXIoLS1zaXplLWljb24pO1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9pY29uL2Nsb3NlLnN2Zyk7XHJcbn1cclxuXHJcbi8vIGJhY2tncm91bmQtaWNvblxyXG5AbWl4aW4gYmFja2dyb3VuZC1pY29uKCRzaXplOiB2YXIoLS1zaXplLWljb24pKSB7XHJcbiAgICB3aWR0aDogJHNpemU7XHJcbiAgICBoZWlnaHQ6ICRzaXplO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogJHNpemU7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi8vIGJ1dHRvbiBob3ZlclxyXG5AbWl4aW4gYnV0dG9uLWhvdmVyKCkge1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQpO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxufVxyXG5cclxuLy8gYnV0dG9uIGFjdGl2ZVxyXG5AbWl4aW4gYnV0dG9uLWFjdGl2ZSgpIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQtYWN0aXZlKTtcclxufVxyXG5cclxuLy8gdHJhbnNpdGlvbi1kdXJhdGlvblxyXG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbigpIHtcclxuICAgIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgcm9vdFxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuOnJvb3Qge1xyXG4gICAgLy8gZm9udFxyXG4gICAgLS1mb250LXNpemU6IDYyLjUlO1xyXG4gICAgLS1mb250LWJhc2U6IFwiUHJldGVuZGFyZFwiO1xyXG4gICAgLS1mb250LWJhc2Utc2l6ZTogMS41cmVtO1xyXG5cclxuICAgIC8vIGNvbG9yXHJcbiAgICAtLWNvbG9yLWJvcmRlcjogI2Q5ZDlkOTtcclxuICAgIC0tY29sb3ItYm9yZGVyLWxpZ2h0OiAjZTllOWU5O1xyXG4gICAgLS1jb2xvci1ib3JkZXItZ3JheTogI2M5YzljOTtcclxuXHJcbiAgICAtLWNvbG9yLWJhY2tncm91bmQ6ICNmZmZmZmY7XHJcbiAgICAtLWNvbG9yLWJhY2tncm91bmQtY29udHJhc3Q6IDAsIDAsIDA7XHJcbiAgICAtLWNvbG9yLWJhY2tncm91bmQtbGlnaHQ6ICNmOWY5Zjk7XHJcbiAgICAtLWNvbG9yLWJhY2tncm91bmQtbGlnaHQtYWN0aXZlOiAjZjZmNmY2O1xyXG5cclxuICAgIC0tY29sb3ItdGV4dDogIzI4MzY0NjtcclxuICAgIC0tY29sb3ItdGV4dC1kYXJrOiAjNDA0MDQwO1xyXG4gICAgLS1jb2xvci10ZXh0LWxpZ2h0OiAjOTA5MDkwO1xyXG5cclxuICAgIC0tY29sb3ItaWNvbjogIzYwNjA2MDtcclxuICAgIC0tY29sb3ItaWNvbi1saWdodDogIzkwOTA5MDtcclxuXHJcbiAgICAtLWNvbG9yLXByaW1hcnk6ICMxYjdkZjI7XHJcbiAgICAtLWNvbG9yLXByaW1hcnktcmdiOiA1NCwgMTE5LCAyNDE7XHJcbiAgICAtLWNvbG9yLXByaW1hcnktaG92ZXI6ICMyNzZjZWU7XHJcbiAgICAtLWNvbG9yLXByaW1hcnktYWN0aXZlOiAjMjM2M2RhO1xyXG4gICAgLS1jb2xvci1wcmltYXJ5LWxpZ2h0OiAjZjRmN2ZmO1xyXG4gICAgLS1jb2xvci1wcmltYXJ5LWxpZ2h0LWFjdGl2ZTogI2ViZjFmZjtcclxuICAgIC0tY29sb3ItcHJpbWFyeS1jb250cmFzdDogI2ZmZmZmZjtcclxuICAgIC0tY29sb3ItcHJpbWFyeS10ZXh0OiAjNGM1NDZlO1xyXG5cclxuICAgIC0tY29sb3Itd2hpdGU6ICNmZmZmZmY7XHJcbiAgICAtLWNvbG9yLWdyYXk6ICNmOWY5Zjk7XHJcbiAgICAtLWNvbG9yLWxhYmVsOiAjODA4MDgwO1xyXG4gICAgLS1jb2xvci1saW5rOiAjMzE4MmY2O1xyXG4gICAgLS1jb2xvci1leGNlbDogIzFkNmY0MjtcclxuICAgIC0tY29sb3ItZXhjZWwtYmFja2dyb3VuZDogI2YwZmZmNjtcclxuICAgIC0tY29sb3ItZXhjZWwtYWN0aXZlLWJhY2tncm91bmQ6ICNlNGZmZWY7XHJcbiAgICAtLWNvbG9yLWRlbGV0ZTogI2ZlMjMyMztcclxuICAgIC0tY29sb3ItZGVsZXRlLWJhY2tncm91bmQ6ICNmZmY2ZjY7XHJcbiAgICAtLWNvbG9yLWRlbGV0ZS1hY3RpdmUtYmFja2dyb3VuZDogI2ZkZWNlYztcclxuICAgIC0tY29sb3ItZGFuZ2VyOiAjZmUyMzIzO1xyXG4gICAgLS1jb2xvci1kYW5nZXItYmFja2dyb3VuZDogI2ZmZjZmNjtcclxuICAgIC0tY29sb3ItZGFuZ2VyLWFjdGl2ZS1iYWNrZ3JvdW5kOiAjZmRlY2VjO1xyXG5cclxuICAgIC8vIOyDge2DnFxyXG4gICAgLS1jb2xvci1pbmZvOiAjMWU2NmM4O1xyXG4gICAgLS1jb2xvci1pbmZvLWJhY2tncm91bmQ6ICNlNmYwZmI7XHJcblxyXG4gICAgLS1jb2xvci1zdWNjZXNzOiAjMjY3MzM3O1xyXG4gICAgLS1jb2xvci1zdWNjZXNzLWJhY2tncm91bmQ6ICNlNGY2ZWE7XHJcblxyXG4gICAgLS1jb2xvci13YXJuaW5nOiAjYjc4MTAzO1xyXG4gICAgLS1jb2xvci13YXJuaW5nLWJhY2tncm91bmQ6ICNmZmY0ZDY7XHJcblxyXG4gICAgLS1jb2xvci1lcnJvcjogI2JkMmMwZjtcclxuICAgIC0tY29sb3ItZXJyb3ItYmFja2dyb3VuZDogI2ZkZWNlYTtcclxuXHJcbiAgICAtLWNvbG9yLXRvdGFsOiAjMjc2Y2VlO1xyXG4gICAgLS1jb2xvci1jYW5jZWw6ICNlZTQzNDM7XHJcblxyXG4gICAgLy8g67GD7KeAXHJcbiAgICAtLWJhZGdlLWdyZWVuOiAjMTk4NzU0O1xyXG4gICAgLS1iYWRnZS1ncmVlbi1iYWNrZ3JvdW5kOiAjZDFmN2Q2O1xyXG4gICAgLS1iYWRnZS1ncmVlbi1ib3JkZXI6ICNiMmU5Yjk7XHJcblxyXG4gICAgLS1iYWRnZS1yZWQ6ICNjODIzMzM7XHJcbiAgICAtLWJhZGdlLXJlZC1iYWNrZ3JvdW5kOiAjZmNlYmVhO1xyXG4gICAgLS1iYWRnZS1yZWQtYm9yZGVyOiAjZTlkMGNmO1xyXG5cclxuICAgIC0tYmFkZ2UtYmx1ZTogIzBkNmVmZDtcclxuICAgIC0tYmFkZ2UtYmx1ZS1iYWNrZ3JvdW5kOiAjZTdmMWZjO1xyXG4gICAgLS1iYWRnZS1ibHVlLWJvcmRlcjogI2QwZGZmMDtcclxuXHJcbiAgICAtLWJhZGdlLXllbGxvdzogIzg1NjQwNDtcclxuICAgIC0tYmFkZ2UteWVsbG93LWJhY2tncm91bmQ6ICNmZmYzY2Q7XHJcblxyXG4gICAgLS1iYWRnZS1kYXJrcmVkOiAjNzIxYzI0O1xyXG4gICAgLS1iYWRnZS1kYXJrcmVkLWJhY2tncm91bmQ6ICNmOGQ3ZGE7XHJcblxyXG4gICAgLS1iYWRnZS1wdXJwbGU6ICM2ZjQyYzE7XHJcbiAgICAtLWJhZGdlLXB1cnBsZS1iYWNrZ3JvdW5kOiAjZjJlOGZiO1xyXG5cclxuICAgIC0tYmFkZ2UtY3lhbjogIzBkY2FmMDtcclxuICAgIC0tYmFkZ2UtY3lhbi1iYWNrZ3JvdW5kOiAjZTBmN2ZiO1xyXG5cclxuICAgIC0tYmFkZ2UtdGVhbDogIzIwYzk5NztcclxuICAgIC0tYmFkZ2UtdGVhbC1iYWNrZ3JvdW5kOiAjZTBmOWYzO1xyXG5cclxuICAgIC0tYmFkZ2Utb3JhbmdlOiAjZmQ3ZTE0O1xyXG4gICAgLS1iYWRnZS1vcmFuZ2UtYmFja2dyb3VuZDogI2ZmZjBlNTtcclxuXHJcbiAgICAtLWJhZGdlLWJyb3duOiAjNzk1NTQ4O1xyXG4gICAgLS1iYWRnZS1icm93bi1iYWNrZ3JvdW5kOiAjZjFlN2UzO1xyXG5cclxuICAgIC0tYmFkZ2UtaW5kaWdvOiAjNjYxMGYyO1xyXG4gICAgLS1iYWRnZS1pbmRpZ28tYmFja2dyb3VuZDogI2VkZTdmYjtcclxuXHJcbiAgICAtLWJhZGdlLXBpbms6ICNkNjMzODQ7XHJcbiAgICAtLWJhZGdlLXBpbmstYmFja2dyb3VuZDogI2ZkZTdmMTtcclxuXHJcbiAgICAtLWJhZGdlLXBvc2l0aXZlOiAjMDY1ZjQ2O1xyXG4gICAgLS1iYWRnZS1wb3NpdGl2ZS1iYWNrZ3JvdW5kOiAjZDFmYWU1O1xyXG5cclxuICAgIC0tYmFkZ2UtbmVnYXRpdmU6ICM5OTFiMWI7XHJcbiAgICAtLWJhZGdlLW5lZ2F0aXZlLWJhY2tncm91bmQ6ICNmZWUyZTI7XHJcblxyXG4gICAgLS1iYWRnZS13YXJuaW5nOiAjOTI0MDBlO1xyXG4gICAgLS1iYWRnZS13YXJuaW5nLWJhY2tncm91bmQ6ICNmZWYzYzc7XHJcblxyXG4gICAgLS1iYWRnZS1pbmZvOiAjMWU0MGFmO1xyXG4gICAgLS1iYWRnZS1pbmZvLWJhY2tncm91bmQ6ICNkYmVhZmU7XHJcblxyXG4gICAgLS1iYWRnZS1uZXV0cmFsOiAjMzc0MTUxO1xyXG4gICAgLS1iYWRnZS1uZXV0cmFsLWJhY2tncm91bmQ6ICNlNWU3ZWI7XHJcblxyXG4gICAgLy8gcmFkaXVzXHJcbiAgICAtLXJhZGl1czogMC42cmVtO1xyXG4gICAgLS1yYWRpdXMtc25iOiAwLjZyZW07XHJcbiAgICAtLXJhZGl1cy1jYXJkOiAwLjRyZW07XHJcbiAgICAtLXJhZGl1cy1mb3JtOiAwLjZyZW07XHJcblxyXG4gICAgLy8gc2l6ZVxyXG4gICAgLS1zaXplLWljb246IDIuNHJlbTtcclxuICAgIC0tc2l6ZS1pY29uLXNtYWxsOiAycmVtO1xyXG4gICAgLS1zaXplLWljb24teHNtYWxsOiAxLjZyZW07XHJcbiAgICAtLXNpemUtc25iLWljb246IDJyZW07XHJcbiAgICAtLXNpemUtc25iLXdpZHRoOiAyOHJlbTtcclxuICAgIC0tc2l6ZS1zbmItY29sbGFwc2VkLXdpZHRoOiA4cmVtO1xyXG4gICAgLS1zaXplLWxvZ28taGVpZ2h0OiA0LjhyZW07XHJcbiAgICAtLXNpemUtaGVhZGVyLWhlaWdodDogOHJlbTtcclxuICAgIC0tc2l6ZS1jb250YWluZXItd2lkdGg6IDEyMHJlbTtcclxuICAgIC0tc2l6ZS1wYW5lbDogMzZyZW07XHJcblxyXG4gICAgLy8gZ2FwXHJcbiAgICAtLWdhcC1sYXlvdXQ6IDJyZW07XHJcbiAgICAtLWdhcC1jb21wb25lbnQ6IDFyZW07XHJcbiAgICAtLWdhcC1tYWluLWNvbnRhaW5lcjogM3JlbTtcclxuICAgIC0tZ2FwLXNlY3Rpb246IDRyZW07XHJcblxyXG4gICAgLy8gc25iXHJcbiAgICAtLWNvbG9yLXRleHQtc25iOiAjNWM2NjdiO1xyXG4gICAgLS1jb2xvci1pY29uLXNuYjogIzVjNjY3YjtcclxuICAgIC0tY29sb3ItYm9yZGVyLXNuYjogI2U5ZTllOTtcclxuXHJcbiAgICAvLyBmb3JtXHJcbiAgICAtLXNpemUtZm9ybTogNC44cmVtO1xyXG4gICAgLS1zaXplLXRhYmxlLWZvcm06IDRyZW07XHJcbiAgICAtLXBhZGRpbmctZm9ybTogMS4ycmVtO1xyXG4gICAgLS1jb2xvci1iYWNrZ3JvdW5kLWZvcm06ICNmZmZmZmY7XHJcbiAgICAtLWNvbG9yLWJhY2tncm91bmQtZm9ybS1yZWFkb25seTogI2Y2ZjZmNjtcclxuXHJcbiAgICAvL1xyXG4gICAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1cztcclxuXHJcbiAgICAvLyB6LWluZGV4XHJcbiAgICAtLXotaW5kZXgtbG9hZGluZzogMTAyO1xyXG4gICAgLS16LWluZGV4LXBvcG92ZXI6IDEwMTtcclxuICAgIC0tei1pbmRleC1tb2RhbDogMTAwO1xyXG4gICAgLS16LWluZGV4LXNuYjogOTk7XHJcbiAgICAtLXotaW5kZXgtaGVhZGVyOiA5ODtcclxuICAgIC0tei1pbmRleC1wYW5lbDogOTc7XHJcblxyXG4gICAgQGluY2x1ZGUgbXEtbW9iaWxlKCkge1xyXG4gICAgICAgIC0tZm9udC1zaXplOiA1MCU7XHJcbiAgICB9XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBmb250c1xyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuXHJcbi8vIFByZXRlbmRhcmRcclxuQGZvbnQtZmFjZSB7XHJcbiAgICBmb250LWZhbWlseTogJ1ByZXRlbmRhcmQnO1xyXG4gICAgc3JjOiB1cmwoJy4uL2ZvbnRzL1ByZXRlbmRhcmQvUHJldGVuZGFyZC1UaGluLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDEwMDtcclxuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgICBmb250LWZhbWlseTogJ1ByZXRlbmRhcmQnO1xyXG4gICAgc3JjOiB1cmwoJy4uL2ZvbnRzL1ByZXRlbmRhcmQvUHJldGVuZGFyZC1FeHRyYUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDIwMDtcclxuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgICBmb250LWZhbWlseTogJ1ByZXRlbmRhcmQnO1xyXG4gICAgc3JjOiB1cmwoJy4uL2ZvbnRzL1ByZXRlbmRhcmQvUHJldGVuZGFyZC1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcclxuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gICAgZm9udC1mYW1pbHk6ICdQcmV0ZW5kYXJkJztcclxuICAgIHNyYzogdXJsKCcuLi9mb250cy9QcmV0ZW5kYXJkL1ByZXRlbmRhcmQtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gICAgZm9udC1mYW1pbHk6ICdQcmV0ZW5kYXJkJztcclxuICAgIHNyYzogdXJsKCcuLi9mb250cy9QcmV0ZW5kYXJkL1ByZXRlbmRhcmQtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgICBmb250LWZhbWlseTogJ1ByZXRlbmRhcmQnO1xyXG4gICAgc3JjOiB1cmwoJy4uL2ZvbnRzL1ByZXRlbmRhcmQvUHJldGVuZGFyZC1TZW1pQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gICAgZm9udC1mYW1pbHk6ICdQcmV0ZW5kYXJkJztcclxuICAgIHNyYzogdXJsKCcuLi9mb250cy9QcmV0ZW5kYXJkL1ByZXRlbmRhcmQtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gICAgZm9udC1mYW1pbHk6ICdQcmV0ZW5kYXJkJztcclxuICAgIHNyYzogdXJsKCcuLi9mb250cy9QcmV0ZW5kYXJkL1ByZXRlbmRhcmQtRXh0cmFCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcclxuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgICBmb250LWZhbWlseTogJ1ByZXRlbmRhcmQnO1xyXG4gICAgc3JjOiB1cmwoJy4uL2ZvbnRzL1ByZXRlbmRhcmQvUHJldGVuZGFyZC1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcclxuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XHJcbn0iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIGNvbG9yXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqLyIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgaWNvblxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuXHJcbi8vIGh0dHBzOi8vamFrZWFyY2hpYmFsZC5naXRodWIuaW8vc3Znb21nXHJcbi8vIGh0dHBzOi8veW9rc2VsLmdpdGh1Yi5pby91cmwtZW5jb2RlclxyXG4vLyBodHRwczovL2NvZGVwZW4uaW8vc29zdWtlL3Blbi9Qam9xcXBcclxuXHJcbiRjb2xvci1pY29uOiA2MDYwNjA7XHJcbiRjb2xvci1pY29uLWxpZ2h0OiA5MDkwOTA7XHJcbiRjb2xvci1wcmltYXJ5OiAzNjc3ZjE7XHJcbiRjb2xvci1wcmltYXJ5LWNvbnRyYXN0OiBGRkZGRkY7XHJcblxyXG4kZGFyay1tb2RlLWNvbG9yLWljb246IGIwYmVkMTtcclxuJGRhcmstbW9kZS1jb2xvci1pY29uLWxpZ2h0OiA4ODk2YWQ7XHJcbiRkYXJrLW1vZGUtY29sb3ItcHJpbWFyeTogNGQ4NGYxO1xyXG4kZGFyay1tb2RlLWNvbG9yLXByaW1hcnktY29udHJhc3Q6IEZGRkZGRjtcclxuXHJcbkBmdW5jdGlvbiBpY29uKCRpY29uTmFtZSwgJGljb25Db2xvcjogJGNvbG9yLWljb24pIHtcclxuICAgICRpY29uTGlzdDogKFxyXG4gICAgICAgIGNsb3NlOiBcIiUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgZmlsbD0nbm9uZSclM0UlM0NnIGNsaXAtcGF0aD0ndXJsKCUyM2EpJyUzRSUzQ3BhdGggZmlsbD0nJTIzI3skaWNvbkNvbG9yfScgZmlsbC1ydWxlPSdldmVub2RkJyBkPSdtMTIuMDEgMTMuMTQyIDQuNjEgNC42MWEuODE1LjgxNSAwIDAgMCAxLjE1MS0xLjE1M2wtNC42MDktNC42MDkgNC42MS00LjYxYS44MTUuODE1IDAgMCAwLTEuMTUzLTEuMTUxbC00LjYwOSA0LjYwOS00LjYxLTQuNjFhLjgxNS44MTUgMCAwIDAtMS4xNSAxLjE1M2w0LjYwOCA0LjYwOS00LjYxIDQuNjFhLjgxNC44MTQgMCAxIDAgMS4xNTMgMS4xNTFsNC42MDktNC42MDlaJyBjbGlwLXJ1bGU9J2V2ZW5vZGQnLyUzRSUzQy9nJTNFJTNDZGVmcyUzRSUzQ2NsaXBQYXRoIGlkPSdhJyUzRSUzQ3BhdGggZmlsbD0nJTIzZmZmJyBkPSdNMCAwaDI0djI0SDB6Jy8lM0UlM0MvY2xpcFBhdGglM0UlM0MvZGVmcyUzRSUzQy9zdmclM0VcIixcclxuICAgICAgICBjaGVjazogXCIlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIGZpbGw9J25vbmUnJTNFJTNDcGF0aCBmaWxsPSclMjMjeyRpY29uQ29sb3J9JyBkPSdtOS41NSAxNS4xNSA4LjQ3NS04LjQ3NWMuMi0uMi40MzMtLjMuNy0uMy4yNjcgMCAuNS4xLjcuMy4yLjIuMy40MzguMy43MTNhLjk3Ljk3IDAgMCAxLS4zLjcxMmwtOS4xNzUgOS4yYy0uMi4yLS40MzMuMy0uNy4zYS45Ni45NiAwIDAgMS0uNy0uM0w0LjU1IDEzYS45MzIuOTMyIDAgMCAxLS4yODgtLjcxMmMuMDA4LS4yNzUuMTEyLS41MTIuMzEzLS43MTMuMi0uMi40MzgtLjMuNzEzLS4zLjI3NSAwIC41MTIuMS43MTIuM2wzLjU1IDMuNTc1WicvJTNFJTNDL3N2ZyUzRVwiLFxyXG4gICAgICAgIGRhdGU6IFwiJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyBmaWxsPSdub25lJyUzRSUzQ2cgY2xpcC1wYXRoPSd1cmwoJTIzYSknJTNFJTNDcGF0aCBmaWxsPSclMjMjeyRpY29uQ29sb3J9JyBkPSdNNi44MDggMGEuODQuODQgMCAwIDEgLjg0Ljg0djEuNTdoOS4wMlYuODVhLjg0Ljg0IDAgMCAxIDEuNjggMHYxLjU2SDIxLjZhMi40IDIuNCAwIDAgMSAyLjQgMi40VjIxLjZBMi40IDIuNCAwIDAgMSAyMS42IDI0SDIuNEEyLjQgMi40IDAgMCAxIDAgMjEuNjAxVjQuODFhMi40IDIuNCAwIDAgMSAyLjQtMi40aDMuNTY4Vi44NEEuODQuODQgMCAwIDEgNi44MDggMFpNMS42OCA5LjI5djEyLjMxMWEuNzIuNzIgMCAwIDAgLjcyLjcyaDE5LjJhLjcyLjcyIDAgMCAwIC43Mi0uNzJWOS4zMDdMMS42OCA5LjI5Wk04IDE3LjU0M3YxLjk5OUg2di0yaDJabTUgMHYxLjk5OWgtMnYtMmgyWm01IDB2MS45OTloLTJ2LTJoMlpNOCAxMi43N3YySDZ2LTJoMlptNSAwdjJoLTJ2LTJoMlptNSAwdjJoLTJ2LTJoMlpNNS45NjggNC4wOUgyLjRhLjcyLjcyIDAgMCAwLS43Mi43MnYyLjgwMmwyMC42NC4wMTZWNC44MWEuNzIuNzIgMCAwIDAtLjcyLS43MmgtMy4yNTJ2MS4xMTRhLjg0Ljg0IDAgMCAxLTEuNjggMFY0LjA5aC05LjAydjEuMTA0YS44NC44NCAwIDAgMS0xLjY4IDBWNC4wOVonLyUzRSUzQy9nJTNFJTNDZGVmcyUzRSUzQ2NsaXBQYXRoIGlkPSdhJyUzRSUzQ3BhdGggZmlsbD0nJTIzZmZmJyBkPSdNMCAwaDI0djI0SDB6Jy8lM0UlM0MvY2xpcFBhdGglM0UlM0MvZGVmcyUzRSUzQy9zdmclM0VcIixcclxuICAgICAgICBjaGV2cm9uLXVwOiBcIiUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgZmlsbD0nbm9uZSclM0UlM0NwYXRoIGZpbGw9JyUyMyN7JGljb25Db2xvcn0nIGQ9J20xMiAxMC44LTMuOSAzLjlhLjk0OC45NDggMCAwIDEtLjcuMjc1Ljk0OC45NDggMCAwIDEtLjctLjI3NS45NDguOTQ4IDAgMCAxLS4yNzUtLjdjMC0uMjgzLjA5Mi0uNTE3LjI3NS0uN2w0LjYtNC42Yy4yLS4yLjQzMy0uMy43LS4zLjI2NyAwIC41LjEuNy4zbDQuNiA0LjZhLjk0OC45NDggMCAwIDEgLjI3NS43Ljk0OC45NDggMCAwIDEtLjI3NS43Ljk0OC45NDggMCAwIDEtLjcuMjc1Ljk0OC45NDggMCAwIDEtLjctLjI3NUwxMiAxMC44WicvJTNFJTNDL3N2ZyUzRVwiLFxyXG4gICAgICAgIGNoZXZyb24tZG93bjogXCIlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIGZpbGw9J25vbmUnJTNFJTNDcGF0aCBzdHJva2U9JyUyMyN7JGljb25Db2xvcn0nIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgc3Ryb2tlLXdpZHRoPScyJyBkPSdtNyAxMCA1IDUgNS01Jy8lM0UlM0Mvc3ZnJTNFXCIsXHJcbiAgICAgICAgY2hldnJvbi1sZWZ0OiBcIiUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgZmlsbD0nbm9uZSclM0UlM0NwYXRoIGZpbGw9JyUyMzYwNjA2MCcgZD0nTTE0LjcxIDE1Ljg4IDEwLjgzIDEybDMuODgtMy44OGEuOTk3Ljk5NyAwIDEgMC0xLjQxLTEuNDFMOC43MSAxMS4zYS45OTYuOTk2IDAgMCAwIDAgMS40MWw0LjU5IDQuNTljLjM5LjM5IDEuMDIuMzkgMS40MSAwIC4zOC0uMzkuMzktMS4wMyAwLTEuNDJaJy8lM0UlM0Mvc3ZnJTNFXCIsXHJcbiAgICAgICAgY2hldnJvbi1yaWdodDogXCIlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIGZpbGw9J25vbmUnJTNFJTNDcGF0aCBmaWxsPSclMjM2MDYwNjAnIGQ9J005LjI5IDE1Ljg4IDEzLjE3IDEyIDkuMjkgOC4xMmEuOTk3Ljk5NyAwIDAgMSAxLjQxLTEuNDFsNC41OSA0LjU5Yy4zOS4zOS4zOSAxLjAyIDAgMS40MUwxMC43IDE3LjNhLjk5NC45OTQgMCAwIDEtMS40MSAwYy0uMzgtLjM5LS4zOS0xLjAzIDAtMS40MlonLyUzRSUzQy9zdmclM0VcIixcclxuICAgICAgICBhcnJvdy11cDogXCIlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIGZpbGw9J25vbmUnJTNFJTNDcGF0aCBzdHJva2U9JyUyMyN7JGljb25Db2xvcn0nIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgc3Ryb2tlLXdpZHRoPScyJyBkPSdNMTIgMjBWNG0wIDAgNiA2bS02LTYtNiA2Jy8lM0UlM0Mvc3ZnJTNFXCIsXHJcbiAgICAgICAgbW9kZS1saWdodDogXCIlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIGZpbGw9J25vbmUnJTNFJTNDcGF0aCBzdHJva2U9JyUyMyN7JGljb25Db2xvcn0nIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS13aWR0aD0nMicgZD0nTTEyIDE2YTQgNCAwIDEgMCAwLTggNCA0IDAgMCAwIDAgOFonLyUzRSUzQ3BhdGggc3Ryb2tlPSclMjMjeyRpY29uQ29sb3J9JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS13aWR0aD0nMicgZD0nTTIwIDEyaDFNMyAxMmgxbTggOHYxbTAtMTh2MW01LjY1NyAxMy42NTcuNzA3LjcwN001LjYzNiA1LjYzNmwuNzA3LjcwN20wIDExLjMxNC0uNzA3LjcwN00xOC4zNjQgNS42MzZsLS43MDcuNzA3Jy8lM0UlM0Mvc3ZnJTNFXCIsXHJcbiAgICAgICAgbW9kZS1kYXJrOiBcIiUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgZmlsbD0nbm9uZSclM0UlM0NwYXRoIHN0cm9rZT0nJTIzI3skaWNvbkNvbG9yfScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzEuNScgZD0nTTEyIDIxYTkgOSAwIDAgMCA4Ljk5Ny05LjI1MiA3IDcgMCAwIDEtMTAuMzcxLTguNjQzQTkgOSAwIDAgMCAxMiAyMVonLyUzRSUzQy9zdmclM0VcIixcclxuICAgICk7XHJcblxyXG4kaWNvbjogbWFwLWdldCgkaWNvbkxpc3QsICRpY29uTmFtZSk7XHJcblxyXG5AcmV0dXJuIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsI3skaWNvbn1cIik7XHJcbn0iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIGNvbW1vblxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuYm9keSB7XHJcbiAgICAmLm1vZGFsLW9wZW4ge1xyXG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcclxuICAgIH1cclxufVxyXG5cclxuLmxvZ28ge1xyXG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBmb250LXNpemU6IDEuOHJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbn1cclxuXHJcbi50ZXh0LWxpc3Qge1xyXG59XHJcblxyXG4ua2V5LXZhbHVlLWJveCB7XHJcbiAgICBAaW5jbHVkZSBib3JkZXIoKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mb3JtKTtcclxuICAgIHBhZGRpbmc6IHZhcigtLWdhcC1sYXlvdXQpO1xyXG5cclxuICAgIC5rZXktdmFsdWUtaXRlbSB7XHJcbiAgICAgICAgJiB+IC5rZXktdmFsdWUtaXRlbSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNnJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5rZXktdmFsdWUtaXRlbSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgZ2FwOiAwIHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuXHJcbiAgICAua2V5IHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1kYXJrKTtcclxuICAgIH1cclxuXHJcbiAgICAudmFsdWUge1xyXG4gICAgfVxyXG5cclxuICAgIC5hY2NlbnQge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICB9XHJcblxyXG4gICAgLnNlcGFyYXRvciB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtZGFyayk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5saW5lLWNsYW1wIHtcclxuICAgIEBpbmNsdWRlIGxpbmUtY2xhbXAoKTtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcblxyXG4gICAgJi5zaG93IHtcclxuICAgICAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAmLmxpbmUtMiB7XHJcbiAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xyXG4gICAgfVxyXG59XHJcblxyXG4ucmF0aW8taW1nIHtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgJi5yYXRpby0zLTQge1xyXG4gICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEzMy4zMyU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGltZyB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuICAgIH1cclxufVxyXG5cclxuLmluZm8tYm94IHtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodCk7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwLjRyZW07XHJcbiAgICBwYWRkaW5nOiAycmVtO1xyXG4gICAgbWFyZ2luLXRvcDogMXJlbTtcclxufVxyXG5cclxuLmZpbGUtbGlzdCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGdhcDogMXJlbTtcclxuXHJcbiAgICBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICBsYWJlbCB7XHJcbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICB1bCB7XHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAmIH4gbGkge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhIHtcclxuICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBnYXA6IDFyZW07XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWxpbmspO1xyXG5cclxuICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBmb250QXdlc29tZTUoXCJcXGYwMTlcIik7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1saW5rKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLnRlcm1zLWxpc3Qge1xyXG4gICAgbGkge1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xyXG4gICAgICAgIHBhZGRpbmc6IDJyZW07XHJcblxyXG4gICAgICAgICYgfiBsaSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEuMnJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi50ZXJtcy1jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBnYXA6IDJyZW07XHJcblxyXG4gICAgLnRlcm1zLWJ1dHRvbiB7XHJcbiAgICAgICAgd2lkdGg6IDIuNHJlbTtcclxuICAgICAgICBoZWlnaHQ6IDIuNHJlbTtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblxyXG4gICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgZm9udEF3ZXNvbWU1KFwiXFxmMTA1XCIsIHZhcigtLWNvbG9yLWljb24tbGlnaHQpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmNvZGUge1xyXG4gICAgZm9udC1zaXplOiAxLjRyZW07XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1iYXNlKTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQpO1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xyXG4gICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcbn1cclxuXHJcbi50ZXh0LWNvbnRhaW5lciB7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1kYXJrKTtcclxufVxyXG5cclxuLnRleHQtbGluayB7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItbGluayk7XHJcblxyXG4gICAgJjpob3ZlcixcclxuICAgICY6Zm9jdXMge1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgfVxyXG59XHJcblxyXG4udGhlbWUtY2hhbmdlLWJ1dHRvbiB7XHJcbiAgICAuaWNvbiB7XHJcbiAgICAgICAgQGluY2x1ZGUgYmFja2dyb3VuZC1pY29uKCk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbihtb2RlLWxpZ2h0KTtcclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29uKG1vZGUtbGlnaHQsICRjb2xvci1wcmltYXJ5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi50ZXh0LXRvdGFsIHtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10b3RhbCk7XHJcbiAgICBmb250LXdlaWdodDogNzAwO1xyXG59XHJcblxyXG4udGV4dC1jYW5jZWwge1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWNhbmNlbCk7XHJcbn1cclxuXHJcbi5hbmltYXRlZC1udW1iZXIge1xyXG4gICAgbWluLXdpZHRoOiAxMHJlbTtcclxuICAgIG1pbi1oZWlnaHQ6IDIuNnJlbTtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxufVxyXG5cclxuLm1lbnUtc2VhcmNoLWNvbnRhaW5lciB7XHJcbn1cclxuXHJcbi5tZW51LXNlYXJjaC1saXN0IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cclxuICAgIGEsXHJcbiAgICBidXR0b24ge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGdhcDogdmFyKC0tZ2FwLWNvbXBvbmVudCk7XHJcbiAgICAgICAgcGFkZGluZzogdmFyKC0tZ2FwLWNvbXBvbmVudCk7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG5cclxuICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0KTtcclxuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcclxuXHJcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSkgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICA+IGxpIHtcclxuICAgICAgICAmIH4gbGkge1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgID4gYSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlcigpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1lbnUtZGVwdGgyIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuXHJcbiAgICAgICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgID4gYnV0dG9uIHtcclxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1zaXplLXNuYi1pY29uKTtcclxuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IHZhcigtLXNpemUtc25iLWljb24pO1xyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS1zbmItaWNvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbihjaGV2cm9uLXVwLCAkY29sb3ItaWNvbi1saWdodCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiB2YXIoLS1zaXplLXNuYi1pY29uKTtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItaWNvbi1zbmIpO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICYgfiB1bCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAmLmlzLW9wZW4ge1xyXG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbihjaGV2cm9uLWRvd24sICRjb2xvci1pY29uLWxpZ2h0KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICYgfiB1bCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgPiB1bCB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tZ2FwLWNvbXBvbmVudCkgKyB2YXIoLS1zaXplLWljb24pKTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG5cclxuICAgICAgICAgICAgICAgID4gbGkge1xyXG4gICAgICAgICAgICAgICAgICAgID4gYnV0dG9uIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnRBd2Vzb21lNShcIlxcZjA3YlwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1pY29uLWxpZ2h0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUtc25iLWljb24pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiB2YXIoLS1zaXplLXNuYi1pY29uKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS1zbmItaWNvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29uKGNoZXZyb24tdXAsICRjb2xvci1pY29uLWxpZ2h0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogdmFyKC0tc2l6ZS1zbmItaWNvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWljb24tc25iKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmIH4gdWwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgJi5pcy1vcGVuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29uKGNoZXZyb24tZG93biwgJGNvbG9yLWljb24tbGlnaHQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICYgfiB1bCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgID4gYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250QXdlc29tZTUoXCJcXGYxNWJcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItaWNvbi1saWdodCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgID4gdWwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWdhcC1sYXlvdXQpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnRBd2Vzb21lNShcIlxcZjE1YlwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItaWNvbi1saWdodCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5ub2RhdGEge1xyXG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWxpZ2h0KTtcclxuICAgIH1cclxufVxyXG5cclxuLmltZy1wcmV2aWV3LWNvbnRhaW5lciB7XHJcbiAgICBAaW5jbHVkZSBwYXJlbnQoKTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgICBtYXJnaW46IGF1dG87XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgY29tbW9uL3RoZW1lL2Rhcmtcclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbjpyb290IHtcclxuICAgICYudGhlbWUtZGFyayB7XHJcbiAgICAgICAgLnRoZW1lLWNoYW5nZS1idXR0b24ge1xyXG4gICAgICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29uKG1vZGUtZGFyaywgJGRhcmstbW9kZS1jb2xvci1pY29uKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbihtb2RlLWRhcmssICRkYXJrLW1vZGUtY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBhbmltYXRpb25cclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbkBrZXlmcmFtZXMgc3BpbiB7XHJcbiAgICAwJSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcbiAgICB9XHJcblxyXG4gICAgMTAwJSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcclxuICAgIH1cclxufSIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgc2VjdGlvblxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuYm9keSB7XHJcbn1cclxuXHJcbi5zZWN0aW9uIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAmIH4gLnNlY3Rpb24ge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDhyZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zZWN0aW9uLWhlYWQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGdhcDogdmFyKC0tZ2FwLWxheW91dCk7XHJcblxyXG4gICAgQGluY2x1ZGUgbXEtbW9iaWxlKCkge1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblxyXG4gICAgICAgIC5idXR0b24tZ3JvdXAge1xyXG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDtcclxuXHJcbiAgICAgICAgICAgIC5idXR0b24ge1xyXG4gICAgICAgICAgICAgICAgZmxleDogMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLnNlY3Rpb24tdGl0bGUtY29udGFpbmVyIHtcclxufVxyXG5cclxuLnNlY3Rpb24tdGl0bGUge1xyXG4gICAgZm9udC1zaXplOiAyLjRyZW07XHJcbiAgICBmb250LXdlaWdodDogNzAwO1xyXG5cclxuICAgICYgfiAuc2VjdGlvbi1zdWItdGl0bGUsXHJcbiAgICAmIH4gLnRleHQtY29udGFpbmVyIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuICAgIH1cclxufVxyXG5cclxuLnNlY3Rpb24tc3ViLXRpdGxlIHtcclxuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtZGFyayk7XHJcbn1cclxuXHJcbi5zZWN0aW9uLXRhYiB7XHJcbiAgICBAaW5jbHVkZSBwYXJlbnQoKTtcclxuICAgIEBpbmNsdWRlIHNjcm9sbGJveCgpO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlci1saWdodCk7XHJcblxyXG4gICAgYSxcclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgcGFkZGluZzogMCB2YXIoLS1nYXAtbGF5b3V0KSB2YXIoLS1nYXAtY29tcG9uZW50KSB2YXIoLS1nYXAtbGF5b3V0KTtcclxuICAgICAgICBmb250LXNpemU6IDEuOHJlbTtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1saWdodCk7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcblxyXG4gICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIHdpZHRoOiAwO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDJweDtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICBsZWZ0OiA1MCU7XHJcbiAgICAgICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuYWN0aXZlIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG5cclxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uc2VjdGlvbi1jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLXNlY3Rpb24pO1xyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgZ3JpZFxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLmdyaWQtY29udGFpbmVyIHtcclxuICAgIEBpbmNsdWRlIGdyaWQoKTtcclxuXHJcbiAgICAuZ3JpZC1pdGVtIHtcclxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDEyIHtcclxuICAgICAgICAgICAgJi5ncmlkLWl0ZW0tcm93LSN7JGl9IHtcclxuICAgICAgICAgICAgICAgIGdyaWQtcm93OiBzcGFuICN7JGl9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDEyIHtcclxuICAgICAgICAgICAgJi5ncmlkLWl0ZW0tY29sdW1uLSN7JGl9IHtcclxuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiBzcGFuICN7JGl9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuY2FyZCB7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbXEtbW9iaWxlKCkge1xyXG4gICAgICAgIC5ncmlkLWl0ZW0ge1xyXG4gICAgICAgICAgICAmLmdyaWQtaXRlbS1jb2x1bW4tMSxcclxuICAgICAgICAgICAgJi5ncmlkLWl0ZW0tY29sdW1uLTIsXHJcbiAgICAgICAgICAgICYuZ3JpZC1pdGVtLWNvbHVtbi0zLFxyXG4gICAgICAgICAgICAmLmdyaWQtaXRlbS1jb2x1bW4tNCxcclxuICAgICAgICAgICAgJi5ncmlkLWl0ZW0tY29sdW1uLTUge1xyXG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gNjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5ncmlkLWl0ZW0tY29sdW1uLTYsXHJcbiAgICAgICAgICAgICYuZ3JpZC1pdGVtLWNvbHVtbi03LFxyXG4gICAgICAgICAgICAmLmdyaWQtaXRlbS1jb2x1bW4tOCxcclxuICAgICAgICAgICAgJi5ncmlkLWl0ZW0tY29sdW1uLTksXHJcbiAgICAgICAgICAgICYuZ3JpZC1pdGVtLWNvbHVtbi0xMCxcclxuICAgICAgICAgICAgJi5ncmlkLWl0ZW0tY29sdW1uLTExLFxyXG4gICAgICAgICAgICAmLmdyaWQtaXRlbS1jb2x1bW4tMTIge1xyXG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMTI7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMTIge1xyXG4gICAgICAgICAgICAgICAgJi5ncmlkLWl0ZW0tY29sdW1uLW1vYmlsZS0jeyRpfSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gI3skaX07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBoZWFkZXJcclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi5oZWFkZXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtaGVhZGVyLWhlaWdodCk7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgei1pbmRleDogdmFyKC0tei1pbmRleC1oZWFkZXIpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YyZjJmMjtcclxuXHJcbiAgICBAaW5jbHVkZSBtcS1sYXB0b3AoKSB7XHJcbiAgICAgICAgcGFkZGluZzogMCAycmVtO1xyXG4gICAgfVxyXG59XHJcblxyXG4uaGVhZGVyLWNvbnRhaW5lciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogdmFyKC0tc2l6ZS1jb250YWluZXItd2lkdGgpO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIHNuYlxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLnNuYiB7XHJcbiAgICB3aWR0aDogdmFyKC0tc2l6ZS1zbmItd2lkdGgpO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRvcDogMDtcclxuICAgIHotaW5kZXg6IHZhcigtLXotaW5kZXgtc25iKTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLXNuYik7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblxyXG4gICAgQGluY2x1ZGUgbXEtbGFwdG9wKCkge1xyXG4gICAgICAgIGxlZnQ6IGF1dG87XHJcbiAgICAgICAgcmlnaHQ6IGNhbGModmFyKC0tc2l6ZS1zbmItd2lkdGgpICogLTEpO1xyXG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcclxuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlci1zbmIpO1xyXG5cclxuICAgICAgICAmLmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG5cclxuICAgICAgICAgICAgLnNuYi1sYXllciB7XHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zbmItbGF5ZXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLWNvbnRyYXN0KSwgJGFscGhhOiAwLjIpO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgei1pbmRleDogLTE7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcblxyXG4gICAgQGluY2x1ZGUgbXEtbGFwdG9wKG1pbikge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICAgIH1cclxufVxyXG5cclxuLnNuYi1oZWFkIHtcclxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS1oZWFkZXItaGVpZ2h0KTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLWxheW91dCkgY2FsYyh2YXIoLS1nYXAtbGF5b3V0KSArICh2YXIoLS1nYXAtbGF5b3V0KSAvIDIpKTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXItc25iKTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG5cclxuICAgIC5zeW1ib2wge1xyXG4gICAgICAgIHdpZHRoOiB2YXIoLS1zaXplLWljb24pO1xyXG4gICAgICAgIG1pbi13aWR0aDogdmFyKC0tc2l6ZS1pY29uKTtcclxuICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtaWNvbik7XHJcbiAgICAgICAgbWluLWhlaWdodDogdmFyKC0tc2l6ZS1pY29uKTtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAuc25iLXV0aWwge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1xLWxhcHRvcChtaW4pIHtcclxuICAgICAgICAuc25iLXV0aWwge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1xLWxhcHRvcCgpIHtcclxuICAgICAgICBwYWRkaW5nOiB2YXIoLS1nYXAtbGF5b3V0KTtcclxuXHJcbiAgICAgICAgLmxvZ28sXHJcbiAgICAgICAgLnN5bWJvbCB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uc25iLWJvZHkge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSB2YXIoLS1zaXplLWhlYWRlci1oZWlnaHQpKTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICBAaW5jbHVkZSBzY3JvbGxib3goKTtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cclxuICAgIC5zbmItdXRpbCB7XHJcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIHZhcigtLWdhcC1sYXlvdXQpICogMik7XHJcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcclxuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLXNuYik7XHJcbiAgICAgICAgcGFkZGluZzogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tZ2FwLWxheW91dCkgKiAtMSk7XHJcblxyXG4gICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgIGJvdHRvbTogY2FsYyh2YXIoLS1nYXAtbGF5b3V0KSAqIC0xKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbXEtbGFwdG9wKCkge1xyXG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gdmFyKC0tc2l6ZS1oZWFkZXItaGVpZ2h0KSAtIHZhcigtLXNpemUtaGVhZGVyLWhlaWdodCkpO1xyXG4gICAgfVxyXG59XHJcblxyXG4uc25iLWJvdHRvbSB7XHJcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtaGVhZGVyLWhlaWdodCk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcclxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXItc25iKTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcblxyXG4gICAgLnNuYi11dGlsIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgICAgLmJ1dHRvbi1ncm91cCB7XHJcbiAgICAgICAgICAgIGdhcDogMC4xcmVtO1xyXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cclxuICAgICAgICAgICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICAgICAgICAgIGZsZXg6IDA7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5sb2dvdXQtYnV0dG9uIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1xLWxhcHRvcChtaW4pIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtaXhpbiBzbmItaXRlbSgpIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiA0LjJyZW07XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGdhcDogMXJlbTtcclxuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtc25iKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1zbmIpO1xyXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG5cclxuICAgIC50ZXh0IHtcclxuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlcixcclxuICAgICY6Zm9jdXMge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQpO1xyXG4gICAgfVxyXG5cclxuICAgICY6YWN0aXZlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0LWFjdGl2ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5pcy1vcGVuIHtcclxuICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuaXMtb3BlbixcclxuICAgICYuaXMtY3VycmVudCB7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcblxyXG4gICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmFjdGl2ZSB7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodCk7XHJcblxyXG4gICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIHNuYi1kZXB0aCgpIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcblxyXG4gICAgJi5pcy1vcGVuIHtcclxuICAgIH1cclxuXHJcbiAgICAmLmlzLWN1cnJlbnQge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG59XHJcblxyXG4uc25iLW1lbnUge1xyXG4gICAgZmxleDogMTtcclxuXHJcbiAgICAuc25iLW1lbnUtaXRlbSB7XHJcbiAgICAgICAgYnV0dG9uIHtcclxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUtc25iLWljb24pO1xyXG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiB2YXIoLS1zaXplLXNuYi1pY29uKTtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS1zbmItaWNvbik7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29uKGNoZXZyb24tZG93biwgJGNvbG9yLWljb24tbGlnaHQpO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiB2YXIoLS1zaXplLXNuYi1pY29uKTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItaWNvbi1zbmIpO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICYuaXMtY3VycmVudCxcclxuICAgICAgICAgICAgJi5pcy1vcGVuIHtcclxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29uKGNoZXZyb24tZG93biwgJGNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc25iLW1lbnUtYnV0dG9uIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgc25iLWl0ZW0oKTtcclxuICAgICAgICAgICAgcGFkZGluZzogMCBjYWxjKHZhcigtLWdhcC1sYXlvdXQpIC8gMik7XHJcblxyXG4gICAgICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogdmFyKC0tc2l6ZS1zbmItaWNvbik7XHJcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IHZhcigtLXNpemUtc25iLWljb24pO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLXNuYi1pY29uKTtcclxuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLXNpemUtc25iLWljb24pO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWljb24tc25iKTtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJiB+IC5zbmItbWVudS1pdGVtIHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC44cmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLnNuYi1tZW51LWRlcHRoMiB7XHJcbiAgICBtYXJnaW4tdG9wOiAwLjZyZW07XHJcbiAgICBAaW5jbHVkZSBzbmItZGVwdGgoKTtcclxuXHJcbiAgICAuc25iLW1lbnUtZGVwdGgyLWl0ZW0ge1xyXG4gICAgICAgIC5zbmItbWVudS1kZXB0aDItYnV0dG9uIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgc25iLWl0ZW0oKTtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLXNpemUtc25iLWljb24pICsgKHZhcigtLWdhcC1sYXlvdXQpIC8gMikgKyAxcmVtKTtcclxuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYyh2YXIoLS1nYXAtbGF5b3V0KSAvIDIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJiB+IC5zbmItbWVudS1kZXB0aDItaXRlbSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNnJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zbmItbWVudS1kZXB0aDMge1xyXG4gICAgbWFyZ2luLXRvcDogMC40cmVtO1xyXG4gICAgQGluY2x1ZGUgc25iLWRlcHRoKCk7XHJcblxyXG4gICAgLnNuYi1tZW51LWRlcHRoMy1pdGVtIHtcclxuICAgICAgICAuc25iLW1lbnUtZGVwdGgzLWJ1dHRvbiB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHNuYi1pdGVtKCk7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1zaXplLXNuYi1pY29uKSArICh2YXIoLS1nYXAtbGF5b3V0KSAvIDIpICsgMXJlbSArIDFyZW0gKyAxcmVtKTtcclxuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogdmFyKC0tZ2FwLWNvbXBvbmVudCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmIH4gLnNuYi1tZW51LWRlcHRoMy1pdGVtIHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC40cmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBzbmIvc25iL2NvbGxhcHNlZFxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuYm9keSB7XHJcbiAgICBAaW5jbHVkZSBtcS1sYXB0b3AobWluKSB7XHJcbiAgICAgICAgJi5zbmItY29sbGFwc2VkIHtcclxuICAgICAgICAgICAgLnNuYiB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogdmFyKC0tc2l6ZS1zbmItY29sbGFwc2VkLXdpZHRoKTtcclxuXHJcbiAgICAgICAgICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuc25iLWhlYWQge1xyXG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIGNhbGModmFyKC0tZ2FwLWxheW91dCkgKyB2YXIoLS1nYXAtY29tcG9uZW50KSk7XHJcblxyXG4gICAgICAgICAgICAgICAgLnN5bWJvbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAubG9nbyB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLnNuYi1ib2R5IHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWdhcC1sYXlvdXQpIDA7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5zbmItbWVudSB7XHJcbiAgICAgICAgICAgICAgICAuc25iLW1lbnUtaXRlbSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLnNuYi1tZW51LWJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0LjJyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgLnRleHQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmIH4gLnNuYi1tZW51LWRlcHRoMiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLnNuYi1tZW51LWRlcHRoMiB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgICAgICAgICAgICB0b3A6IGF1dG87XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKHZhcigtLXNpemUtc25iLWNvbGxhcHNlZC13aWR0aCkgKyB2YXIoLS1nYXAtY29tcG9uZW50KSk7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQuMnJlbSk7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlcigpO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1ib3JkZXItc25iKTtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJveC1zaGFkb3coKTtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mb3JtKTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG5cclxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYyh2YXIoLS1zaXplLXNuYi1jb2xsYXBzZWQtd2lkdGgpIC0gdmFyKC0tZ2FwLWxheW91dCkgLSB2YXIoLS1nYXAtbGF5b3V0KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKC0xICogKHZhcigtLXNpemUtc25iLWNvbGxhcHNlZC13aWR0aCkgLSB2YXIoLS1nYXAtbGF5b3V0KSAtIHZhcigtLWdhcC1sYXlvdXQpKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC5zbmItbWVudS1kZXB0aDItaXRlbSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLnNuYi1tZW51LWRlcHRoMi1idXR0b24ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJi5pcy1jdXJyZW50LFxyXG4gICAgICAgICAgICAgICAgJi5pcy1vcGVuIHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLnNuYi1tZW51LWRlcHRoMyB7XHJcbiAgICAgICAgICAgICAgICAuc25iLW1lbnUtZGVwdGgzLWl0ZW0ge1xyXG4gICAgICAgICAgICAgICAgICAgIC5zbmItbWVudS1kZXB0aDMtYnV0dG9uIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tZ2FwLWNvbXBvbmVudCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1nYXAtY29tcG9uZW50KSArIHZhcigtLXNpemUtc25iLWljb24pKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgZGF0ZXBpY2tlci90aGVtZS9kYXJrXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG46cm9vdCB7XHJcbiAgICAmLnRoZW1lLWRhcmsge1xyXG4gICAgICAgIC5zbmItbWVudSB7XHJcbiAgICAgICAgICAgIC5zbmItbWVudS1pdGVtIHtcclxuICAgICAgICAgICAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29uKGNoZXZyb24tZG93biwgJGRhcmstbW9kZS1jb2xvci1pY29uLWxpZ2h0KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICYuaXMtY3VycmVudCxcclxuICAgICAgICAgICAgICAgICAgICAmLmlzLW9wZW4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29uKGNoZXZyb24tZG93biwgJGRhcmstbW9kZS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIG1haW5cclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi5tYWluIHtcclxuICAgIEBpbmNsdWRlIHBhcmVudCgpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tc2l6ZS1oZWFkZXItaGVpZ2h0KTtcclxufVxyXG5cclxuLmxheW91dC1jb250YWluZXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IHZhcigtLXNpemUtY29udGFpbmVyLXdpZHRoKTtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG59XHJcblxyXG4ubWFpbi1zZWN0aW9uIHtcclxuICAgIEBpbmNsdWRlIG1xLWxhcHRvcCgpIHtcclxuICAgICAgICBwYWRkaW5nOiAwIDJyZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbi5tYWluLXZpc3VhbCB7XHJcbiAgICBwYWRkaW5nLXRvcDogMTJyZW07XHJcbn1cclxuXHJcbi52aXN1YWwtY29udGFpbmVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cclxuICAgIEBpbmNsdWRlIG1xLXRhYmxldCgpIHtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgZ2FwOiA2cmVtO1xyXG4gICAgfVxyXG59XHJcblxyXG4udmlzdWFsLXRpdGxlIHtcclxuICAgIHdvcmQtYnJlYWs6IGtlZXAtYWxsO1xyXG5cclxuICAgIGgyIHtcclxuICAgICAgICBmb250LXNpemU6IDQuOHJlbTtcclxuICAgICAgICBmb250LXdlaWdodDogODAwO1xyXG5cclxuICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwIHtcclxuICAgICAgICBmb250LXNpemU6IDIuNHJlbTtcclxuICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1xLXRhYmxldCgpIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcbn1cclxuXHJcbi52aXN1YWwtaW1nIHtcclxuICAgIEBpbmNsdWRlIG1xLXRhYmxldCgpIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogLTRyZW07XHJcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSA0cmVtKTtcclxuICAgIH1cclxufVxyXG5cclxuLm1haW4taW5mbyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmYWZkO1xyXG4gICAgcGFkZGluZzogMTJyZW0gMDtcclxuXHJcbiAgICBAaW5jbHVkZSBtcS1sYXB0b3AoKSB7XHJcbiAgICAgICAgcGFkZGluZzogMTJyZW0gMnJlbTtcclxuICAgIH1cclxufVxyXG5cclxuLmluZm8tY29udGFpbmVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBnYXA6IDRyZW07XHJcbn1cclxuXHJcbi5pbmZvLWNhcmQge1xyXG4gICAgZmxleDogMSAxIDQwJTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMXJlbTtcclxuICAgIHBhZGRpbmc6IDRyZW07XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGdhcDogMnJlbTtcclxuXHJcbiAgICBpbWcge1xyXG4gICAgICAgIHdpZHRoOiA3LjJyZW07XHJcbiAgICB9XHJcblxyXG4gICAgaDMge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogM3JlbTtcclxuICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgfVxyXG5cclxuICAgIHAge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1kYXJrKTtcclxuICAgICAgICB3b3JkLWJyZWFrOiBrZWVwLWFsbDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtcS10YWJsZXQoKSB7XHJcbiAgICAgICAgZmxleDogYXV0bztcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIGZvb3RlclxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLmZvb3RlciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgcGFkZGluZzogOHJlbSAwO1xyXG5cclxuICAgIEBpbmNsdWRlIG1xLWxhcHRvcCgpIHtcclxuICAgICAgICBwYWRkaW5nOiA4cmVtIDJyZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbi5mb290ZXItY29udGFpbmVyIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiB2YXIoLS1zaXplLWNvbnRhaW5lci13aWR0aCk7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxufVxyXG5cclxuLmZvb3Rlci1pbmZvIHtcclxuICAgIG1hcmdpbjogMnJlbSAwO1xyXG5cclxuICAgIHAge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgIGdhcDogMC41cmVtO1xyXG4gICAgfVxyXG5cclxuICAgIHNwYW4ge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgZ2FwOiAwLjVyZW07XHJcblxyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgd2lkdGg6IDFweDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMHB4O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ib3JkZXIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uY29weXJpZ2h0IHtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWxpZ2h0KTtcclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIHBvcHVwXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4ucG9wdXAtY29udGFpbmVyIHtcclxuICAgIEBpbmNsdWRlIHBhcmVudCgpO1xyXG4gICAgbWluLWhlaWdodDogMTAwJTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtbGF5b3V0KTtcclxuXHJcbiAgICBAaW5jbHVkZSBtcS1tb2JpbGUoKSB7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5wb3B1cC1jb250ZW50IHtcclxuICAgIEBpbmNsdWRlIHBhcmVudCgpO1xyXG4gICAgbWF4LXdpZHRoOiB2YXIoLS1zaXplLWNvbnRhaW5lci13aWR0aCk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcclxuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mb3JtKTtcclxuICAgIHBhZGRpbmc6IHZhcigtLWdhcC1zZWN0aW9uKTtcclxuXHJcbiAgICBAaW5jbHVkZSBtcS1tb2JpbGUoKSB7XHJcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG59IiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBlcnJvclxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLmVycm9yLWNvbnRhaW5lciB7XHJcbiAgICBAaW5jbHVkZSBwYXJlbnQoKTtcclxuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGdhcDogdmFyKC0tZ2FwLXNlY3Rpb24pO1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgLmVycm9yLWNvZGUge1xyXG4gICAgICAgIHdpZHRoOiAyMHJlbTtcclxuICAgICAgICBoZWlnaHQ6IDIwcmVtO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLWxpZ2h0KTtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgZm9udC1zaXplOiA2cmVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtbGlnaHQpO1xyXG4gICAgfVxyXG5cclxuICAgIC5lcnJvci10aXRsZSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyLjRyZW07XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIH1cclxuXHJcbiAgICAuZXJyb3ItdGV4dCB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgICB9XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBpY29uXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4uaWNvbiB7XHJcbiAgICB3aWR0aDogdmFyKC0tc2l6ZS1pY29uKTtcclxuICAgIG1pbi13aWR0aDogdmFyKC0tc2l6ZS1pY29uKTtcclxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS1pY29uKTtcclxuICAgIG1pbi1oZWlnaHQ6IHZhcigtLXNpemUtaWNvbik7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1pY29uKTtcclxuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG5cclxuICAgIC5mYS10aHVtYnRhY2sge1xyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICAgIH1cclxuXHJcbiAgICAmLmljb24tc21hbGwge1xyXG4gICAgICAgIHdpZHRoOiB2YXIoLS1zaXplLWljb24tc21hbGwpO1xyXG4gICAgICAgIG1pbi13aWR0aDogdmFyKC0tc2l6ZS1pY29uLXNtYWxsKTtcclxuICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtaWNvbi1zbWFsbCk7XHJcbiAgICAgICAgbWluLWhlaWdodDogdmFyKC0tc2l6ZS1pY29uLXNtYWxsKTtcclxuICAgIH1cclxuXHJcbiAgICAmLmljb24teHNtYWxsIHtcclxuICAgICAgICB3aWR0aDogdmFyKC0tc2l6ZS1pY29uLXhzbWFsbCk7XHJcbiAgICAgICAgbWluLXdpZHRoOiB2YXIoLS1zaXplLWljb24teHNtYWxsKTtcclxuICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtaWNvbi14c21hbGwpO1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLXNpemUtaWNvbi14c21hbGwpO1xyXG4gICAgfVxyXG5cclxuICAgICYuaWNvbi1jbG9zZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbihjbG9zZSk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5pY29uLWNoZWNrIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29uKGNoZWNrKTtcclxuICAgIH1cclxuXHJcbiAgICAmLmljb24tZGF0ZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbihkYXRlKTtcclxuICAgIH1cclxuXHJcbiAgICAmLmljb24tY2hldnJvbi11cCB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbihjaGV2cm9uLXVwKTtcclxuICAgIH1cclxuXHJcbiAgICAmLmljb24tY2hldnJvbi1kb3duIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29uKGNoZXZyb24tZG93bik7XHJcbiAgICB9XHJcblxyXG4gICAgJi5pY29uLWNoZXZyb24tbGVmdCB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbihjaGV2cm9uLWxlZnQpO1xyXG4gICAgfVxyXG5cclxuICAgICYuaWNvbi1jaGV2cm9uLXJpZ2h0IHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29uKGNoZXZyb24tcmlnaHQpO1xyXG4gICAgfVxyXG5cclxuICAgICYuaWNvbi1hcnJvdy11cCB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbihhcnJvdy11cCk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5pY29uLW1vZGUtbGlnaHQge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGljb24obW9kZS1saWdodCk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5pY29uLW1vZGUtZGFyayB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbihtb2RlLWRhcmspO1xyXG4gICAgfVxyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgbG9hZGluZ1xyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLmxvYWRpbmctY29udGFpbmVyIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0tY29sb3ItYmFja2dyb3VuZC1jb250cmFzdCksICRhbHBoYTogMC4yKTtcclxuICAgIHotaW5kZXg6IHZhcigtLXotaW5kZXgtbG9hZGluZyk7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGdhcDogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcblxyXG4gICAgJi5hY3RpdmUge1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XHJcbiAgICB9XHJcblxyXG4gICAgJi5oaWRkZW4tdGl0bGUge1xyXG4gICAgICAgIC5sb2FkaW5nLXRpdGxlIHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5oaWRkZW4tc3ViLXRpdGxlIHtcclxuICAgICAgICAubG9hZGluZy1zdWItdGl0bGUge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmxvYWRpbmctc3Bpbm5lciB7XHJcbiAgICB3aWR0aDogNHJlbTtcclxuICAgIGhlaWdodDogNHJlbTtcclxuICAgIGJvcmRlcjogMC40cmVtIHNvbGlkIHZhcigtLWNvbG9yLWJhY2tncm91bmQtbGlnaHQpO1xyXG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBhbmltYXRpb246IHNwaW4gMC44cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcclxufVxyXG5cclxuQGtleWZyYW1lcyBzcGluIHtcclxuICAgIDAlIHtcclxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcclxuICAgIH1cclxuICAgIDEwMCUge1xyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5sb2FkaW5nLXRpdGxlLWNvbnRhaW5lciB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1jb250cmFzdCk7XHJcbn1cclxuXHJcbi5sb2FkaW5nLXRpdGxlIHtcclxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxufVxyXG5cclxuLmxvYWRpbmctc3ViLXRpdGxlIHtcclxuICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIGJ1dHRvblxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLmJ1dHRvbi1ncm91cCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGdhcDogdmFyKC0tZ2FwLWNvbXBvbmVudCk7XHJcblxyXG4gICAgJi5nYXAtaGFsZiB7XHJcbiAgICAgICAgZ2FwOiBjYWxjKHZhcigtLWdhcC1jb21wb25lbnQpIC8gMik7XHJcbiAgICB9XHJcblxyXG4gICAgJi5sZWZ0IHtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJi5jZW50ZXIge1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgICYucmlnaHQge1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgICB9XHJcblxyXG4gICAgJi5iZXR3ZWVuIHtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICB9XHJcblxyXG4gICAgJi5ub3dyYXAge1xyXG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gICAgfVxyXG5cclxuICAgICYuZnVsbCB7XHJcbiAgICAgICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgICAgIGZsZXg6IDE7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qXHJcbiAgICBAaW5jbHVkZSBtcS1jdXN0b20obWF4LCAnNTE5cHgnKSB7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcbiAgICAgICAgLmJ1dHRvbi1ncm91cCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmxlZnQsXHJcbiAgICAgICAgLnJpZ2h0IHtcclxuICAgICAgICAgICAgZmxleDogMTtcclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBmbGV4OiAxO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICovXHJcbn1cclxuXHJcbi5idXR0b24ge1xyXG4gICAgbWluLWhlaWdodDogdmFyKC0tc2l6ZS1mb3JtKTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgZ2FwOiAwLjZyZW07XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgcGFkZGluZzogMXJlbSAycmVtO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZvcm0pO1xyXG4gICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcblxyXG4gICAgJjpkaXNhYmxlZCB7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgaSxcclxuICAgIC5pY29uIHtcclxuICAgICAgICB3aWR0aDogdmFyKC0tc2l6ZS1pY29uLXNtYWxsKTtcclxuICAgICAgICBtaW4td2lkdGg6IHZhcigtLXNpemUtaWNvbi1zbWFsbCk7XHJcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLWljb24tc21hbGwpO1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLXNpemUtaWNvbi1zbWFsbCk7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWljb24pO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlcixcclxuICAgICY6Zm9jdXMge1xyXG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob3ZlcigpO1xyXG5cclxuICAgICAgICBpLFxyXG4gICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWFjdGl2ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgICYuYnV0dG9uLXNtYWxsIHtcclxuICAgICAgICBtaW4taGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgIHBhZGRpbmc6IDAuNnJlbSAxLjJyZW07XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XHJcblxyXG4gICAgICAgIGksXHJcbiAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tc2l6ZS1pY29uLXhzbWFsbCk7XHJcbiAgICAgICAgICAgIG1pbi13aWR0aDogdmFyKC0tc2l6ZS1pY29uLXhzbWFsbCk7XHJcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS1pY29uLXhzbWFsbCk7XHJcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLXNpemUtaWNvbi14c21hbGwpO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5idXR0b24teHNtYWxsIHtcclxuICAgICAgICBtaW4taGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgIHBhZGRpbmc6IDAuNHJlbSAwLjhyZW07XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XHJcbiAgICB9XHJcblxyXG4gICAgJi5idXR0b24tbG9hZGluZyB7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblxyXG4gICAgICAgIC50ZXh0LFxyXG4gICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgQGluY2x1ZGUgc3Bpbm5lcigxLjZyZW0sIHZhcigtLWNvbG9yLWJvcmRlcikpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmJ1dHRvbi11dGlsIHtcclxuICAgICAgICBtaW4td2lkdGg6IHZhcigtLXNpemUtZm9ybSk7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxuXHJcbiAgICAmLmJ1dHRvbi1wcmltYXJ5IHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1jb250cmFzdCk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHJcbiAgICAgICAgaSxcclxuICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWNvbnRyYXN0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuYnV0dG9uLWxvYWRpbmcge1xyXG4gICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzcGlubmVyKDEuNnJlbSwgdmFyKC0tY29sb3ItcHJpbWFyeS1jb250cmFzdCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmhvdmVyLFxyXG4gICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWhvdmVyKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6YWN0aXZlIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1hY3RpdmUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmJ1dHRvbi1wcmltYXJ5LWJvcmRlciB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcblxyXG4gICAgICAgIGksXHJcbiAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmJ1dHRvbi1sb2FkaW5nIHtcclxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc3Bpbm5lcigxLjZyZW0sIHZhcigtLWNvbG9yLXByaW1hcnkpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmJ1dHRvbi1wcmltYXJ5LWxpZ2h0IHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0KTtcclxuXHJcbiAgICAgICAgaSxcclxuICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuYnV0dG9uLWxvYWRpbmcge1xyXG4gICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzcGlubmVyKDEuNnJlbSwgdmFyKC0tY29sb3ItcHJpbWFyeSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmhvdmVyLFxyXG4gICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjphY3RpdmUge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0LWFjdGl2ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuYnV0dG9uLXByaW1hcnktbGlnaHQtYm9yZGVyIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0KTtcclxuXHJcbiAgICAgICAgaSxcclxuICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuYnV0dG9uLWxvYWRpbmcge1xyXG4gICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzcGlubmVyKDEuNnJlbSwgdmFyKC0tY29sb3ItcHJpbWFyeSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQtYWN0aXZlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5idXR0b24tdGV4dCB7XHJcbiAgICAgICAgbWluLWhlaWdodDogYXV0bztcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcclxuICAgICAgICBwYWRkaW5nOiAxcmVtO1xyXG5cclxuICAgICAgICBpLFxyXG4gICAgICAgIC5pY29uLFxyXG4gICAgICAgIC5pY29uOjphZnRlciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1pY29uKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob3ZlcigpO1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cclxuICAgICAgICAgICAgaSxcclxuICAgICAgICAgICAgLmljb24sXHJcbiAgICAgICAgICAgIC5pY29uOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSkgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjphY3RpdmUge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tYWN0aXZlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuYnV0dG9uLWxpc3Qge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWRhcmspO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYm9yZGVyKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcclxuXHJcbiAgICAgICAgaSxcclxuICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWRhcmspO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC1saWdodCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtbGlnaHQtYWN0aXZlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5idXR0b24tY2FuY2VsIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1kYXJrKTtcclxuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWJvcmRlci1ncmF5KTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcclxuXHJcbiAgICAgICAgaSxcclxuICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWRhcmspO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC1saWdodCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtbGlnaHQtYWN0aXZlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5idXR0b24tZGVsZXRlIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItZGVsZXRlKTtcclxuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWRlbGV0ZSk7XHJcbiAgICAgICAgLy8gYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZGVsZXRlLWJnKTtcclxuXHJcbiAgICAgICAgaSxcclxuICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1kZWxldGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5idXR0b24tbG9hZGluZyB7XHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNwaW5uZXIoMS42cmVtLCB2YXIoLS1jb2xvci1kZWxldGUpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZGVsZXRlLWJhY2tncm91bmQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjphY3RpdmUge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1kZWxldGUtYWN0aXZlLWJhY2tncm91bmQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmJ1dHRvbi1kYW5nZXIge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1kYW5nZXIpO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItZGFuZ2VyKTtcclxuICAgICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1kYW5nZXItYmcpO1xyXG5cclxuICAgICAgICBpLFxyXG4gICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWRhbmdlcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmJ1dHRvbi1sb2FkaW5nIHtcclxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc3Bpbm5lcigxLjZyZW0sIHZhcigtLWNvbG9yLWRhbmdlcikpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmhvdmVyLFxyXG4gICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1kYW5nZXItYmFja2dyb3VuZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWRhbmdlci1hY3RpdmUtYmFja2dyb3VuZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuYnV0dG9uLWV4Y2VsIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItZXhjZWwpO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItZXhjZWwpO1xyXG5cclxuICAgICAgICBpLFxyXG4gICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWV4Y2VsKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuYnV0dG9uLWxvYWRpbmcge1xyXG4gICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzcGlubmVyKDEuNnJlbSwgdmFyKC0tY29sb3ItZXhjZWwpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZXhjZWwtYmFja2dyb3VuZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWV4Y2VsLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5idXR0b24taG92ZXItZXhjZWwge1xyXG4gICAgICAgICYuYnV0dG9uLWxvYWRpbmcge1xyXG4gICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzcGlubmVyKDEuNnJlbSwgdmFyKC0tY29sb3ItZXhjZWwpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWV4Y2VsKTtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1leGNlbCk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWV4Y2VsLWJhY2tncm91bmQpO1xyXG5cclxuICAgICAgICAgICAgaSxcclxuICAgICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWV4Y2VsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjphY3RpdmUge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1leGNlbC1hY3RpdmUtYmFja2dyb3VuZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuYnV0dG9uLWNvcHkge1xyXG4gICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcclxuICAgICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG5cclxuICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBmb250QXdlc29tZTUoXCJcXGYwYzVcIik7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWxpbmspO1xyXG5cclxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1saW5rKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmJ1dHRvbi12aWV3IHtcclxuICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMC42cmVtO1xyXG5cclxuICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICBjb250ZW50OiBcIuyekOyEuO2eiOuztOq4sFwiO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1saW5rKTtcclxuXHJcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItbGluayk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuc2hvdyB7XHJcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIuqwhOuete2eiOuztOq4sFwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuaGlkZGVuIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgYmFkZ2Vcclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi5iYWRnZSB7XHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1kYXJrKTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtbGlnaHQpO1xyXG4gICAgcGFkZGluZzogMC41cmVtIDFyZW07XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZm9ybSk7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG5cclxuICAgICYuYmFkZ2UtYm9yZGVyIHtcclxuICAgICAgICBAaW5jbHVkZSBib3JkZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICAmLmJhZGdlLXByaW1hcnkge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWNvbnRyYXN0KTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgIH1cclxuXHJcbiAgICAmLmJhZGdlLXByaW1hcnktYm9yZGVyIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcclxuICAgIH1cclxuXHJcbiAgICAmLmJhZGdlLXByaW1hcnktbGlnaHQge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0KTtcclxuICAgIH1cclxuXHJcbiAgICAmLmJhZGdlLXByaW1hcnktbGlnaHQtYm9yZGVyIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyDsg4nsg4Hrs4RcclxuICAgICYuYmFkZ2UtZ3JlZW4ge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1iYWRnZS1ncmVlbik7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFkZ2UtZ3JlZW4tYmFja2dyb3VuZCk7XHJcblxyXG4gICAgICAgICYuYm9yZGVyIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYmFkZ2UtZ3JlZW4tYm9yZGVyKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5iYWRnZS1yZWQge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1iYWRnZS1yZWQpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhZGdlLXJlZC1iYWNrZ3JvdW5kKTtcclxuXHJcbiAgICAgICAgJi5ib3JkZXIge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXIoKTtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1iYWRnZS1yZWQtYm9yZGVyKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5iYWRnZS1ibHVlIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tYmFkZ2UtYmx1ZSk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFkZ2UtYmx1ZS1iYWNrZ3JvdW5kKTtcclxuXHJcbiAgICAgICAgJi5ib3JkZXIge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXIoKTtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1iYWRnZS1ibHVlLWJvcmRlcik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuYmFkZ2UteWVsbG93IHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tYmFkZ2UteWVsbG93KTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWRnZS15ZWxsb3ctYmFja2dyb3VuZCk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5iYWRnZS1kYXJrcmVkIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tYmFkZ2UtZGFya3JlZCk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFkZ2UtZGFya3JlZC1iYWNrZ3JvdW5kKTtcclxuICAgIH1cclxuXHJcbiAgICAmLmJhZGdlLXB1cnBsZSB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLXB1cnBsZSk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFkZ2UtcHVycGxlLWJhY2tncm91bmQpO1xyXG4gICAgfVxyXG5cclxuICAgICYuYmFkZ2UtY3lhbiB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLWN5YW4pO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhZGdlLWN5YW4tYmFja2dyb3VuZCk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5iYWRnZS10ZWFsIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tYmFkZ2UtdGVhbCk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFkZ2UtdGVhbC1iYWNrZ3JvdW5kKTtcclxuICAgIH1cclxuXHJcbiAgICAmLmJhZGdlLW9yYW5nZSB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLW9yYW5nZSk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFkZ2Utb3JhbmdlLWJhY2tncm91bmQpO1xyXG4gICAgfVxyXG5cclxuICAgICYuYmFkZ2UtYnJvd24ge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1iYWRnZS1icm93bik7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFkZ2UtYnJvd24tYmFja2dyb3VuZCk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5iYWRnZS1pbmRpZ28ge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1iYWRnZS1pbmRpZ28pO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhZGdlLWluZGlnby1iYWNrZ3JvdW5kKTtcclxuICAgIH1cclxuXHJcbiAgICAmLmJhZGdlLXBpbmsge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1iYWRnZS1waW5rKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWRnZS1waW5rLWJhY2tncm91bmQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOq4jeyglSjshLHqs7UsIOygleyDgSwg7Iq57J24KVxyXG4gICAgJi5iYWRnZS1wb3NpdGl2ZSB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLXBvc2l0aXZlKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWRnZS1wb3NpdGl2ZS1iYWNrZ3JvdW5kKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyDrtoDsoJUo7Jik66WYLCDsi6TtjKgsIOqxsOu2gClcclxuICAgICYuYmFkZ2UtbmVnYXRpdmUge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1iYWRnZS1uZWdhdGl2ZSk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFkZ2UtbmVnYXRpdmUtYmFja2dyb3VuZCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8g6rK96rOgKOychO2XmCwg7ZmV7J247ZWE7JqUKVxyXG4gICAgJi5iYWRnZS13YXJuaW5nIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tYmFkZ2Utd2FybmluZyk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFkZ2Utd2FybmluZy1iYWNrZ3JvdW5kKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyDsoJXrs7Qo7LC46rOg7IKs7ZWtLCDslYjrgrQpXHJcbiAgICAmLmJhZGdlLWluZm8ge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1iYWRnZS1pbmZvKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWRnZS1pbmZvLWJhY2tncm91bmQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOykkeumvSjsspjrpqzspJEsIOuMgOq4sClcclxuICAgICYuYmFkZ2UtbmV1dHJhbCB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLW5ldXRyYWwpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhZGdlLW5ldXRyYWwtYmFja2dyb3VuZCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8g7Iq57J24XHJcbiAgICAmLmJhZGdlLWFwcHJvdmVkIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tYmFkZ2UtZ3JlZW4pO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhZGdlLWdyZWVuLWJhY2tncm91bmQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOy3qOyGjFxyXG4gICAgJi5iYWRnZS1jYW5jZWxlZCB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLXJlZCk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFkZ2UtcmVkLWJhY2tncm91bmQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIO2GoO2DiFxyXG4gICAgJi5iYWRnZS10b3RhbCB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLWJsdWUpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhZGdlLWJsdWUtYmFja2dyb3VuZCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8g6rKw7KCc64yA6riwXHJcbiAgICAmLmJhZGdlLXBlbmRpbmcge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1iYWRnZS15ZWxsb3cpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhZGdlLXllbGxvdy1iYWNrZ3JvdW5kKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyDso7zrrLjtg4DsnoTslYTsm4NcclxuICAgICYuYmFkZ2UtdGltZW91dCB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLWRhcmtyZWQpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhZGdlLWRhcmtyZWQtYmFja2dyb3VuZCk7XHJcbiAgICB9XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBwb3BvdmVyXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4ucG9wb3Zlci13cmFwcGVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZ2FwOiAuNHJlbTtcclxuXHJcbiAgICBAaW5jbHVkZSBtcS1tb2JpbGUoKSB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgfVxyXG59XHJcblxyXG4ucG9wb3Zlci1jb250YWluZXIge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWFyZ2luLXRvcDogLS40cmVtO1xyXG5cclxuICAgIEBpbmNsdWRlIG1xLW1vYmlsZSgpIHtcclxuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4gICAgfVxyXG59XHJcblxyXG4ucG9wb3Zlci1idXR0b24ge1xyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgICBAaW5jbHVkZSBmb250QXdlc29tZTUoJ1xcZjEyOCcpO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICB3aWR0aDogdmFyKC0tc2l6ZS1pY29uLXhzbWFsbCk7XHJcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLWljb24teHNtYWxsKTtcclxuICAgICAgICBmb250LXNpemU6IC44cmVtO1xyXG4gICAgICAgIEBpbmNsdWRlIGJvcmRlcigpO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgIH1cclxufVxyXG5cclxuLnBvcG92ZXIge1xyXG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xyXG4gICAgbWluLXdpZHRoOiAyNHJlbTtcclxuICAgIG1heC13aWR0aDogMzZyZW07XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiBjYWxjKDEwMCUgLSAyLjRyZW0gLSAxLjZyZW0pO1xyXG4gICAgYm90dG9tOiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbiAgICBAaW5jbHVkZSBib3JkZXIoKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mb3JtKTtcclxuICAgIHBhZGRpbmc6IDJyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coKTtcclxuICAgIHotaW5kZXg6IHZhcigtLXotaW5kZXgtcG9wb3Zlcik7XHJcblxyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgIHdpZHRoOiB2YXIoLS1zaXplLWljb24teHNtYWxsKTtcclxuICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtaWNvbi14c21hbGwpO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgICAgICAgYm9yZGVyOiAwLjFyZW0gc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcclxuICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGJvdHRvbTogLS44cmVtO1xyXG4gICAgICAgIGxlZnQ6IDIuNHJlbTtcclxuICAgIH1cclxuXHJcbiAgICAmLmFjdGl2ZSB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcblxyXG4gICAgLnBvcG92ZXItaGVhZCB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICBnYXA6IDJyZW07XHJcblxyXG4gICAgICAgIC5wb3BvdmVyLXRpdGxlIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjdyZW07XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAucG9wb3Zlci1jbG9zZSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1jbG9zZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJn4ucG9wb3Zlci1jb250ZW50IHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnBvcG92ZXItY29udGVudCB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICB9XHJcblxyXG4gICAgJi5wb3BvdmVyLWxlZnQge1xyXG4gICAgICAgIGxlZnQ6IGF1dG87XHJcbiAgICAgICAgcmlnaHQ6IGNhbGMoMTAwJSAtIDIuNHJlbSAtIDEuNnJlbSk7XHJcblxyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XHJcbiAgICAgICAgICAgIHJpZ2h0OiAyLjRyZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYucG9wb3Zlci1jZW50ZXIge1xyXG4gICAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcblxyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gLjhyZW0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtcS1tb2JpbGUoKSB7XHJcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSA2cmVtKTtcclxuICAgICAgICBtaW4td2lkdGg6IGF1dG87XHJcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xyXG4gICAgICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcclxuICAgICAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcclxuXHJcbiAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIGlucHV0XHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4uaW5wdXQge1xyXG4gICAgJlt0eXBlPVwidGV4dFwiXSxcclxuICAgICZbdHlwZT1cInBhc3N3b3JkXCJdIHtcclxuICAgICAgICBmb250LXNpemU6IHZhcigtLWZvbnQtYmFzZS1zaXplKTtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XHJcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLWZvcm0pO1xyXG4gICAgICAgIEBpbmNsdWRlIGJvcmRlcigpO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mb3JtKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLWZvcm0pO1xyXG4gICAgICAgIHBhZGRpbmc6IDAgdmFyKC0tcGFkZGluZy1mb3JtKTtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcblxyXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtbGlnaHQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6cmVhZC1vbmx5IHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtbGlnaHQpO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLWZvcm0tcmVhZG9ubHkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBpbnB1dC9yYW5nZVxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuaW5wdXRbdHlwZT1cInJhbmdlXCJdIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG5cclxuICAgICY6Zm9jdXMge1xyXG4gICAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgJjphY3RpdmUge1xyXG4gICAgICAgICY6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYm9yZGVyKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogNHB4O1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ib3JkZXItbGlnaHQpO1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xyXG4gICAgICAgIHdpZHRoOiAxNHB4O1xyXG4gICAgICAgIGhlaWdodDogMTRweDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICBtYXJnaW4tdG9wOiAtNXB4O1xyXG5cclxuICAgICAgICAmOmhvdmVyLFxyXG4gICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWFjdGl2ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgc2VsZWN0XHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4uc2VsZWN0IHtcclxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1iYXNlLXNpemUpO1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xyXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLWZvcm0pO1xyXG4gICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZm9ybSk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLWZvcm0pO1xyXG4gICAgcGFkZGluZzogMCBjYWxjKHZhcigtLXBhZGRpbmctZm9ybSkgKyAodmFyKC0tcGFkZGluZy1mb3JtKSAvIDIpICsgdmFyKC0tc2l6ZS1pY29uKSkgMCB2YXIoLS1wYWRkaW5nLWZvcm0pO1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbihjaGV2cm9uLWRvd24sICRjb2xvci1pY29uLWxpZ2h0KTtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciByaWdodCB2YXIoLS1wYWRkaW5nLWZvcm0pO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogdmFyKC0tc2l6ZS1pY29uLXNtYWxsKTtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29uKGNoZXZyb24tdXAsICRjb2xvci1pY29uLWxpZ2h0KTtcclxuICAgIH1cclxufVxyXG5cclxuLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBzZWxlY3QvdGhlbWUvZGFya1xyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuOnJvb3Qge1xyXG4gICAgJi50aGVtZS1kYXJrIHtcclxuICAgICAgICAuc2VsZWN0IHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbihjaGV2cm9uLWRvd24sICRkYXJrLW1vZGUtY29sb3ItaWNvbi1saWdodCk7XHJcblxyXG4gICAgICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGljb24oY2hldnJvbi11cCwgJGRhcmstbW9kZS1jb2xvci1pY29uLWxpZ2h0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBzZWxlY3QyXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4uc2VsZWN0MiB7XHJcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLWZvcm0pO1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICAuc2VsZWN0aW9uIHtcclxuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG5cclxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24ge1xyXG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtZm9ybSk7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlcigpO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZm9ybSk7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC1mb3JtKTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG5cclxuICAgICAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XHJcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS1mb3JtKTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgdmFyKC0tcGFkZGluZy1mb3JtKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogdmFyKC0tc2l6ZS1pY29uLXNtYWxsKTtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS1pY29uLXNtYWxsKTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGljb24oY2hldnJvbi1kb3duLCAkY29sb3ItaWNvbi1saWdodCk7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiB2YXIoLS1zaXplLWljb24tc21hbGwpO1xyXG4gICAgICAgICAgICAgICAgcmlnaHQ6IHZhcigtLXBhZGRpbmctZm9ybSk7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuXHJcbiAgICAgICAgICAgICAgICBiIHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuc2VsZWN0Mi1jb250YWluZXItLWZvY3VzIHtcclxuICAgICAgICAuc2VsZWN0aW9uIHtcclxuICAgICAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uIHtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5zZWxlY3QyLWNvbnRhaW5lci0tb3BlbiB7XHJcbiAgICAgICAgLnNlbGVjdGlvbiB7XHJcbiAgICAgICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbiB7XHJcbiAgICAgICAgICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Fycm93IHtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29uKGNoZXZyb24tdXAsICRjb2xvci1pY29uLWxpZ2h0KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLnNlbGVjdDItZHJvcGRvd24ge1xyXG4gICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZm9ybSk7XHJcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KCk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLWZvcm0pO1xyXG5cclxuICAgIC5zZWxlY3QyLXNlYXJjaCB7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuXHJcbiAgICAgICAgLnNlbGVjdDItc2VhcmNoX19maWVsZCB7XHJcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS1mb3JtKTtcclxuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcclxuICAgICAgICAgICAgcGFkZGluZzogMCB2YXIoLS1wYWRkaW5nLWZvcm0pO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uIHtcclxuICAgICAgICBwYWRkaW5nOiB2YXIoLS1wYWRkaW5nLWZvcm0pO1xyXG4gICAgfVxyXG5cclxuICAgIC5zZWxlY3QyLXJlc3VsdHNfX21lc3NhZ2Uge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtZm9ybS1yZWFkb25seSk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIHZhcigtLXJhZGl1cy1mb3JtKSB2YXIoLS1yYWRpdXMtZm9ybSk7XHJcbiAgICB9XHJcblxyXG4gICAgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9ucyB7XHJcbiAgICAgICAgQGluY2x1ZGUgc2Nyb2xsYm94KCk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIHZhcigtLXJhZGl1cy1mb3JtKSB2YXIoLS1yYWRpdXMtZm9ybSk7XHJcblxyXG4gICAgICAgIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbi0tc2VsZWN0ZWQge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLWZvcm0tcmVhZG9ubHkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uLS1oaWdobGlnaHRlZCB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBzZWxlY3QyL3RoZW1lL2Rhcmtcclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbjpyb290IHtcclxuICAgICYudGhlbWUtZGFyayB7XHJcbiAgICAgICAgLnNlbGVjdDIge1xyXG4gICAgICAgICAgICAuc2VsZWN0aW9uIHtcclxuICAgICAgICAgICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGljb24oY2hldnJvbi1kb3duLCAkZGFyay1tb2RlLWNvbG9yLWljb24tbGlnaHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5zZWxlY3QyLWNvbnRhaW5lci0tb3BlbiB7XHJcbiAgICAgICAgICAgICAgICAuc2VsZWN0aW9uIHtcclxuICAgICAgICAgICAgICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Fycm93IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGljb24oY2hldnJvbi11cCwgJGRhcmstbW9kZS1jb2xvci1pY29uLWxpZ2h0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIGNoZWNrYm94XHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4uY2hlY2tib3gge1xyXG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG5cclxuICAgICAgICAmOmNoZWNrZWQge1xyXG4gICAgICAgICAgICAmIH4gbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xyXG5cclxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGxhYmVsIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250LWJhc2Utc2l6ZSk7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGdhcDogY2FsYyh2YXIoLS1nYXAtY29tcG9uZW50KSAvIDIpO1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtbGlnaHQpO1xyXG5cclxuICAgICAgICAmOjpiZWZvcmUsXHJcbiAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tc2l6ZS1pY29uLXNtYWxsKTtcclxuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLWljb24tc21hbGwpO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXIoKTtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZvcm0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktY29udHJhc3QpO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29uKGNoZWNrLCAkY29sb3ItcHJpbWFyeS1jb250cmFzdCk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogdmFyKC0tc2l6ZS1pY29uLXhzbWFsbCk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjYWxjKDUwJSArIDAuMXJlbSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmhvdmVyLFxyXG4gICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6YWN0aXZlIHtcclxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQtYWN0aXZlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnJlcXVpcmVkIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0wLjZyZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qXHJcbiAgICAmLnVpLXNvcnRhYmxlLWhhbmRsZSB7XHJcbiAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBmb250QXdlc29tZTUoXCJcXGYxNDJcIik7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgcmlnaHQ6IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG4gICAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICovXHJcblxyXG4gICAgLmRyYWctaGFuZGxlIHtcclxuICAgICAgICAvLyB3aWR0aDogdmFyKC0tc2l6ZS1pY29uLXNtYWxsKTtcclxuICAgICAgICAvLyBoZWlnaHQ6IHZhcigtLXNpemUtaWNvbi1zbWFsbCk7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgICAgICBwYWRkaW5nOiAwIGNhbGModmFyKC0tZ2FwLWNvbXBvbmVudCkgKiAxLjUpO1xyXG5cclxuICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnRBd2Vzb21lNShcIlxcZjBjOVwiKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5jaGVja2JveC1ncm91cCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgZ2FwOiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuXHJcbiAgICAmLmNvbHVtbiB7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIH1cclxuXHJcbiAgICAmLmJvcmRlciB7XHJcbiAgICAgICAgLmNoZWNrYm94IHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlcigpO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZm9ybSk7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbik7XHJcblxyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtbGlnaHQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuXHJcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIHN3aXRjaFxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLnN3aXRjaCB7XHJcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG5cclxuICAgICAgICAmOmNoZWNrZWQge1xyXG4gICAgICAgICAgICAmIH4gbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcblxyXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAzLjhyZW07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbGFiZWwge1xyXG4gICAgICAgIHdpZHRoOiA2LjRyZW07XHJcbiAgICAgICAgaGVpZ2h0OiAzLjJyZW07XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIuNHJlbTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ib3JkZXItbGlnaHQpO1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcblxyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcclxuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWNvbnRyYXN0KTtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIGxlZnQ6IDAuNnJlbTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYm94LXNoYWRvdygpO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIDI1JSDqsJDshoxcclxuICAgICYuc3dpdGNoLXNtYWxsIHtcclxuICAgICAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xyXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xyXG4gICAgICAgICAgICAgICAgJiB+IGxhYmVsIHtcclxuICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAyLjdyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiA0LjhyZW07XHJcbiAgICAgICAgICAgIGhlaWdodDogMi40cmVtO1xyXG5cclxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxLjVyZW07XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEuNXJlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIHJhZGlvXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4ucmFkaW8ge1xyXG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xyXG5cclxuICAgICoge1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcblxyXG4gICAgICAgICY6Y2hlY2tlZCB7XHJcbiAgICAgICAgICAgICYgfiBsYWJlbCB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XHJcblxyXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBsYWJlbCB7XHJcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250LWJhc2Utc2l6ZSk7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGdhcDogY2FsYyh2YXIoLS1nYXAtY29tcG9uZW50KSAvIDIpO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWxhYmVsKTtcclxuXHJcbiAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUtaWNvbi1zbWFsbCk7XHJcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS1pY29uLXNtYWxsKTtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXIoKTtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0LWFjdGl2ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5yYWRpby1ncm91cCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgZ2FwOiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuXHJcbiAgICAmLnVpLXRhYiB7XHJcbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICAgICAgICBnYXA6IDA7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZvcm0pO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XHJcbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XHJcbiAgICAgICAgICAgICAgICAmIH4gbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktY29udHJhc3QpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5yYWRpbyB7XHJcbiAgICAgICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLXNpemUtZm9ybSk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTFweDtcclxuXHJcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mb3JtKSAwIDAgdmFyKC0tcmFkaXVzLWZvcm0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgdmFyKC0tcmFkaXVzLWZvcm0pIHZhcigtLXJhZGl1cy1mb3JtKSAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYudWktdGFiLXNoYWRvdyB7XHJcbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICAgICAgICBnYXA6IDA7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZvcm0pO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQpO1xyXG5cclxuICAgICAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xyXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xyXG4gICAgICAgICAgICAgICAgJiB+IGxhYmVsIHtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWNvbnRyYXN0KTtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJveC1zaGFkb3coKTtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZm9ybSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5yYWRpbyB7XHJcbiAgICAgICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLXNpemUtZm9ybSk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIHZhcigtLWdhcC1sYXlvdXQpO1xyXG5cclxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICB0ZXh0YXJlYVxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLnRleHRhcmVhIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZm9ybSk7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS1wYWRkaW5nLWZvcm0pO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LWJhc2Utc2l6ZSk7XHJcbiAgICByZXNpemU6IG5vbmU7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgQGluY2x1ZGUgc2Nyb2xsYm94KCk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yLWZvcm0pO1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xyXG5cclxuICAgICY6OnBsYWNlaG9sZGVyIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1saWdodCk7XHJcbiAgICB9XHJcblxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICB9XHJcblxyXG4gICAgJjpyZWFkLW9ubHkge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWxpZ2h0KTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLWZvcm0tcmVhZG9ubHkpO1xyXG4gICAgfVxyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgbW9kYWxcclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi5tb2RhbCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgei1pbmRleDogdmFyKC0tei1pbmRleC1tb2RhbCk7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcblxyXG4gICAgLmZvcm0tdGl0bGUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgfVxyXG5cclxuICAgICYuYWN0aXZlIHtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgICYuZnVsbCB7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuXHJcbiAgICAgICAgLm1vZGFsLWlubmVyIHtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLm1vZGFsLXNtYWxsIHtcclxuICAgICAgICAubW9kYWwtY29udGFpbmVyIHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiA0MHJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5tb2RhbC1tZWRpdW0ge1xyXG4gICAgICAgIC5tb2RhbC1jb250YWluZXIge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDU2cmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLm1vZGFsLWxhcmdlIHtcclxuICAgICAgICAubW9kYWwtY29udGFpbmVyIHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiA3MnJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5tb2RhbC14bGFyZ2Uge1xyXG4gICAgICAgIC5tb2RhbC1jb250YWluZXIge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDg4cmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLm1vZGFsLWNvbmZpcm0ge1xyXG4gICAgICAgIC5tb2RhbC1jb250YWluZXIge1xyXG4gICAgICAgICAgICAubW9kYWwtY29udGVudCB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLm1vZGFsLWxheWVyIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRvcDogMDtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgLy8gYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkY29sb3I6ICMwMDAwMDAsICRhbHBoYTogLjIpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLWNvbnRyYXN0KSwgJGFscGhhOiAwLjIpO1xyXG59XHJcblxyXG4ubW9kYWwtY29udGFpbmVyIHtcclxuICAgIEBpbmNsdWRlIHBhcmVudCgpO1xyXG4gICAgQGluY2x1ZGUgc2Nyb2xsYm94KCk7XHJcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBub25lO1xyXG4gICAgbWF4LWhlaWdodDogMTAwJTtcclxuICAgIG1heC13aWR0aDogNTZyZW07XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mb3JtKTtcclxuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coKTtcclxufVxyXG5cclxuLm1vZGFsLWhlYWQge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgZ2FwOiB2YXIoLS1nYXAtbGF5b3V0KTtcclxuICAgIHBhZGRpbmc6IHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlci1saWdodCk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcclxuICAgIHotaW5kZXg6IDE7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZm9ybSkgdmFyKC0tcmFkaXVzLWZvcm0pIDAgMDtcclxuXHJcbiAgICAmLm5vLWJvcmRlciB7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgfVxyXG59XHJcblxyXG4ubW9kYWwtdGl0bGUge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBnYXA6IDAuNnJlbTtcclxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxufVxyXG5cclxuLm1vZGFsLWNsb3NlLWJ1dHRvbiB7XHJcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWljb24oKTtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGljb24oY2xvc2UpO1xyXG5cclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1wYWRkaW5nLWZvcm0pKTtcclxuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIHZhcigtLXBhZGRpbmctZm9ybSkpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQpO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBsZWZ0OiA1MCU7XHJcbiAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZvcm0pO1xyXG4gICAgICAgIHotaW5kZXg6IC0xO1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIsXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29uKGNsb3NlLCAkY29sb3ItcHJpbWFyeSk7XHJcblxyXG4gICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjphY3RpdmUge1xyXG4gICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodC1hY3RpdmUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLm1vZGFsLWNvbnRlbnQge1xyXG4gICAgQGluY2x1ZGUgcGFyZW50KCk7XHJcbiAgICBwYWRkaW5nOiAycmVtO1xyXG59XHJcblxyXG4ubW9kYWwtYm90dG9tIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcG9zaXRpb246IHN0aWNreTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgei1pbmRleDogMTtcclxuICAgIHBhZGRpbmc6IDJyZW07XHJcbiAgICBnYXA6IDFyZW07XHJcblxyXG4gICAgJi5iZXR3ZWVuIHtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgbW9kYWwvdGhlbWUvZGFya1xyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuOnJvb3Qge1xyXG4gICAgJi50aGVtZS1kYXJrIHtcclxuICAgICAgICAubW9kYWwtY2xvc2UtYnV0dG9uIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbihjbG9zZSwgJGRhcmstbW9kZS1jb2xvci1pY29uKTtcclxuXHJcbiAgICAgICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbihjbG9zZSwgJGRhcmstbW9kZS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIHRhYmxlXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4udGFibGUtY29udGFpbmVyIHtcclxuICAgIEBpbmNsdWRlIHBhcmVudCgpO1xyXG59XHJcblxyXG4udGFibGUge1xyXG4gICAgQGluY2x1ZGUgcGFyZW50KCk7XHJcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgLy8gb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgICB0aGVhZCB7XHJcbiAgICAgICAgdGgge1xyXG4gICAgICAgICAgICAmW2RhdGEtc29ydF0ge1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYyh2YXIoLS1wYWRkaW5nLWZvcm0pICsgdmFyKC0tZ2FwLWNvbXBvbmVudCkgKyAwLjc1cmVtKTtcclxuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnRBd2Vzb21lNShcIlxcZjBkZVwiKTtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtMC4xcmVtO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250QXdlc29tZTUoXCJcXGYwZGRcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xcmVtO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcclxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IHZhcigtLXBhZGRpbmctZm9ybSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1pY29uKTtcclxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICZbZGF0YS1kaXJlY3Rpb249XCJhc2NcIl0ge1xyXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmW2RhdGEtZGlyZWN0aW9uPVwiZGVzY1wiXSB7XHJcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0ciB7XHJcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXRvcCh2YXIoLS1jb2xvci1ib3JkZXItbGlnaHQpKTtcclxuICAgICAgICBAaW5jbHVkZSBib3JkZXItYm90dG9tKHZhcigtLWNvbG9yLWJvcmRlci1saWdodCkpO1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuXHJcbiAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC1saWdodCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoLFxyXG4gICAgdGQge1xyXG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXBhZGRpbmctZm9ybSk7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoIHtcclxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWxhYmVsKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLWxpZ2h0KTtcclxuICAgIH1cclxuXHJcbiAgICAuYnV0dG9uLWdyb3VwIHtcclxuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cclxuICAgICAgICAuYnV0dG9uIHtcclxuICAgICAgICAgICAgZmxleDogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgbWluLWhlaWdodDogYXV0bztcclxuICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcclxuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcclxuICAgIH1cclxuXHJcbiAgICAubm9kYXRhIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1saWdodCk7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC5jaGVja2JveCB7XHJcbiAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICAmOjpiZWZvcmUsXHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1zaXplLWljb24tc21hbGwpO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLWljb24tc21hbGwpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IHZhcigtLXNpemUtaWNvbi14c21hbGwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5pbnB1dCB7XHJcbiAgICAgICAgJlt0eXBlPVwidGV4dFwiXSxcclxuICAgICAgICAmW3R5cGU9XCJwYXNzd29yZFwiXSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBtaW4td2lkdGg6IDEycmVtO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtdGFibGUtZm9ybSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zZWxlY3Qge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIG1pbi13aWR0aDogMTJyZW07XHJcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLXRhYmxlLWZvcm0pO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5zZWxlY3QyIHtcclxuICAgICAgICBtaW4td2lkdGg6IDEycmVtO1xyXG4gICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS10YWJsZS1mb3JtKTtcclxuICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcclxuXHJcbiAgICAgICAgLnNlbGVjdGlvbiB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24ge1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLXRhYmxlLWZvcm0pO1xyXG5cclxuICAgICAgICAgICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQge1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLXRhYmxlLWZvcm0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zZWxlY3QyLWRyb3Bkb3duIHtcclxuICAgICAgICAuc2VsZWN0Mi1zZWFyY2gge1xyXG4gICAgICAgICAgICAuc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkIHtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS10YWJsZS1mb3JtKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLnRhYmxlLWFsaWduLWxlZnQge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcblxyXG4gICAgICAgIC5idXR0b24tZ3JvdXAge1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYudGFibGUtYWxpZ24tY2VudGVyIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgICAgIC5idXR0b24tZ3JvdXAge1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi50YWJsZS1ub3dyYXAge1xyXG4gICAgICAgICoge1xyXG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLnRhYmxlLWJvcmRlciB7XHJcbiAgICAgICAgdGgsXHJcbiAgICAgICAgdGQge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXIoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJiB+IC50YWJsZS1ib3R0b20ge1xyXG4gICAgICAgIC50YWJsZS1idXR0b24tZ3JvdXAge1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi50YWJsZS1jYXJkIHtcclxuICAgICAgICBAaW5jbHVkZSB0YWJsZS1jYXJkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbXEtdGFibGV0KCkge1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1xLW1vYmlsZSgpIHtcclxuICAgICAgICAmLnRhYmxlLWNhcmQtbW9iaWxlIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdGFibGUtY2FyZCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLnRhYmxlLWhlYWQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBnYXA6IHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwLWxheW91dCk7XHJcblxyXG4gICAgLnRhYmxlLXRpdGxlLWNvbnRhaW5lciB7XHJcbiAgICAgICAgLnRhYmxlLXRpdGxlIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblxyXG4gICAgICAgICAgICAudGFibGUtY291bnQge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtcS1tb2JpbGUoKSB7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbi50YWJsZS1zZWFyY2gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwLWxheW91dCk7XHJcbn1cclxuXHJcbi50YWJsZS1maWx0ZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgICBnYXA6IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcblxyXG4gICAgQGluY2x1ZGUgbXEtbW9iaWxlKCkge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG5cclxuICAgICAgICAuYnV0dG9uIHtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwIHZhcigtLXBhZGRpbmctZm9ybSk7XHJcblxyXG4gICAgICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgICAgICBvcmRlcjogMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLnRhYmxlLXRvdGFsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGdhcDogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICBAaW5jbHVkZSBzY3JvbGxib3goKTtcclxuXHJcbiAgICAuY2FyZCB7XHJcbiAgICAgICAgZmxleDogMTtcclxuICAgIH1cclxufVxyXG5cclxuLnRhYmxlLWJvZHkge1xyXG4gICAgQGluY2x1ZGUgc2Nyb2xsYm94KCk7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgJi50aGVhZC1zdGlja3kge1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IDYzcmVtO1xyXG5cclxuICAgICAgICAudGFibGUge1xyXG4gICAgICAgICAgICB0aGVhZCB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gICAgICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XHJcblxyXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxyXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYm9yZGVyLWxpZ2h0KTtcclxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGJvZHkge1xyXG4gICAgICAgICAgICAgICAgdHIge1xyXG4gICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLnRhYmxlLWJvdHRvbSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBnYXA6IHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLXNlY3Rpb24pO1xyXG5cclxuICAgIC5idXR0b24tZ3JvdXAge1xyXG4gICAgICAgIGZsZXg6IDE7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbXEtbW9iaWxlKCkge1xyXG4gICAgICAgIC5idXR0b24tZ3JvdXAge1xyXG4gICAgICAgICAgICAuYnV0dG9uIHtcclxuICAgICAgICAgICAgICAgIGZsZXg6IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBwYWdpbmF0aW9uXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4ucGFnaW5hdGlvbiB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgZ2FwOiBjYWxjKHZhcigtLWdhcC1jb21wb25lbnQpIC8gMik7XHJcblxyXG4gICAgLmJ1dHRvbi1ncm91cCB7XHJcbiAgICAgICAgZ2FwOiBjYWxjKHZhcigtLWdhcC1jb21wb25lbnQpIC8gMik7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICBidXR0b24ge1xyXG4gICAgICAgIG1pbi13aWR0aDogNHJlbTtcclxuICAgICAgICBtaW4taGVpZ2h0OiA0cmVtO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtZGFyayk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZvcm0pO1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuXHJcbiAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQpO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodC1hY3RpdmUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAucHJldiB7XHJcbiAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgZm9udEF3ZXNvbWU1KFwiXFxmMTA0XCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubmV4dCB7XHJcbiAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgZm9udEF3ZXNvbWU1KFwiXFxmMTA1XCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAucHJldixcclxuICAgIC5uZXh0IHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblxyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1pY29uLWxpZ2h0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjphY3RpdmUge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQtYWN0aXZlKTtcclxuXHJcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBmb3JtXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4uZm9ybS1jb250YWluZXIge1xyXG4gICAgJi5ib3JkZXIge1xyXG4gICAgICAgIEBpbmNsdWRlIGJvcmRlcigpO1xyXG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWdhcC1zZWN0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICAmLmJvcmRlci10b3Age1xyXG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpO1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1nYXAtc2VjdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgJi5ib3JkZXItcmFkaXVzIHtcclxuICAgICAgICBAaW5jbHVkZSBib3JkZXIoKTtcclxuICAgICAgICBwYWRkaW5nOiB2YXIoLS1nYXAtc2VjdGlvbik7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZvcm0pO1xyXG4gICAgfVxyXG5cclxuICAgICYgfiAuZm9ybS1jb250YWluZXIge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC1zZWN0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICAmLnN0aWNreSB7XHJcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcclxuICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tZ2FwLWxheW91dCkgKiAtMSk7XHJcblxyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1nYXAtc2VjdGlvbik7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJsdXItYmFja2dyb3VuZCk7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCA0MHB4IHJnYmEodmFyKC0tYmx1ci1zaGFkb3cpKSBpbnNldDtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICB0b3A6IGNhbGModmFyKC0tZ2FwLXNlY3Rpb24pICogLTEpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmZvcm0taGVhZCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBnYXA6IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG5cclxuICAgIC5idXR0b24ge1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XHJcbiAgICAgICAgcGFkZGluZzogMC42cmVtIDEuMnJlbTtcclxuICAgIH1cclxuXHJcbiAgICAmIH4gLmZvcm0tY29udGVudCB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5mb3JtLXRpdGxlLWNvbnRhaW5lciB7XHJcbn1cclxuXHJcbi5mb3JtLXRpdGxlIHtcclxuICAgIGZvbnQtc2l6ZTogMnJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcblxyXG4gICAgJiB+IC5mb3JtLXN1Yi10aXRsZSB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcclxuICAgIH1cclxufVxyXG5cclxuLmZvcm0tc3ViLXRpdGxlIHtcclxuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtZGFyayk7XHJcbn1cclxuXHJcbi5mb3JtLWNvbnRlbnQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBnYXA6IHZhcigtLWdhcC1sYXlvdXQpO1xyXG59XHJcblxyXG4uZm9ybS1yb3cge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIGdhcDogdmFyKC0tZ2FwLWxheW91dCk7XHJcblxyXG4gICAgLmZvcm0tY29sIHtcclxuICAgICAgICBmbGV4OiAxO1xyXG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbi5mb3JtLWNvbCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGdhcDogdmFyKC0tZ2FwLWNvbXBvbmVudCk7XHJcbn1cclxuXHJcbi5mb3JtLWdyb3VwIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZ2FwOiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuXHJcbiAgICAmLmJldHdlZW4ge1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIH1cclxuXHJcbiAgICAuaW5wdXQsXHJcbiAgICAuc2VsZWN0IHtcclxuICAgICAgICBmbGV4OiAxO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG59XHJcblxyXG4uZm9ybS1sYWJlbCB7XHJcbiAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1sYWJlbCk7XHJcblxyXG4gICAgJi5yZXF1aXJlZCB7XHJcbiAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgICAgICB3aWR0aDogMC42cmVtO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDAuNnJlbTtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjRyZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uZm9ybS1tc2cge1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1saWdodCk7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNpemUtaWNvbik7XHJcblxyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgICBAaW5jbHVkZSBmb250QXdlc29tZTUoXCJcXGYxMjlcIik7XHJcbiAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgd2lkdGg6IHZhcigtLXNpemUtaWNvbi14c21hbGwpO1xyXG4gICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS1pY29uLXhzbWFsbCk7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgdG9wOiAwLjE1cmVtO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWxpZ2h0KTtcclxuICAgIH1cclxuXHJcbiAgICAmLmluZm8ge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1pbmZvKTtcclxuXHJcbiAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgZm9udEF3ZXNvbWU1KFwiXFxmMTI5XCIpO1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1pbmZvKTtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5zdWNjZXNzIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3Itc3VjY2Vzcyk7XHJcblxyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnRBd2Vzb21lNShcIlxcZjAwY1wiKTtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itc3VjY2Vzcyk7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYud2FybmluZyB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXdhcm5pbmcpO1xyXG5cclxuICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBmb250QXdlc29tZTUoXCJcXGYxMmFcIik7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXdhcm5pbmcpO1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmVycm9yIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItZXJyb3IpO1xyXG5cclxuICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBmb250QXdlc29tZTUoXCJcXGYwMGRcIik7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWVycm9yKTtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5mb3JtLWNvdW50IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWxpZ2h0KTtcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG5cclxuICAgIC5jdXJyZW50IHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItaW5mbyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5mb3JtLWJveCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWRhcmspO1xyXG4gICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLWxpZ2h0KTtcclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mb3JtKTtcclxuICAgIHBhZGRpbmc6IHZhcigtLXBhZGRpbmctZm9ybSk7XHJcbiAgICBmb250LXNpemU6IDEuM3JlbTtcclxuXHJcbiAgICAuZm9ybS1ib3gtdGl0bGUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwLWNvbXBvbmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5pbmZvIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItaW5mbyk7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1pbmZvKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1pbmZvLWJhY2tncm91bmQpO1xyXG4gICAgfVxyXG5cclxuICAgICYuc3VjY2VzcyB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXN1Y2Nlc3MpO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3Itc3VjY2Vzcyk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itc3VjY2Vzcy1iYWNrZ3JvdW5kKTtcclxuICAgIH1cclxuXHJcbiAgICAmLndhcm5pbmcge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13YXJuaW5nKTtcclxuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXdhcm5pbmcpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXdhcm5pbmctYmFja2dyb3VuZCk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5lcnJvciB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWVycm9yKTtcclxuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWVycm9yKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1lcnJvci1iYWNrZ3JvdW5kKTtcclxuICAgIH1cclxufVxyXG5cclxuLmZvcm0tcGFpciB7XHJcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtZm9ybSk7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mb3JtKTtcclxuXHJcbiAgICAucGFpci1sYWJlbCB7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtbGlnaHQpO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mb3JtKSAwIDAgdmFyKC0tcmFkaXVzLWZvcm0pO1xyXG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXBhZGRpbmctZm9ybSk7XHJcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICBAaW5jbHVkZSBib3JkZXIoKTtcclxuICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWxhYmVsKTtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcblxyXG4gICAgICAgICYuc2VsZWN0IHtcclxuICAgICAgICAgICAgcGFkZGluZzogMCBjYWxjKHZhcigtLXBhZGRpbmctZm9ybSkgKyAodmFyKC0tcGFkZGluZy1mb3JtKSAvIDIpICsgdmFyKC0tc2l6ZS1pY29uKSkgMCB2YXIoLS1wYWRkaW5nLWZvcm0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZm9ybSk7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcclxuXHJcbiAgICAgICAgICAgICYgfiAucGFpci1pdGVtIHtcclxuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5wYWlyLXRleHQge1xyXG4gICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS1mb3JtKTtcclxuICAgICAgICBAaW5jbHVkZSBib3JkZXIoKTtcclxuICAgICAgICBwYWRkaW5nOiAwIHZhcigtLXBhZGRpbmctZm9ybSk7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAucGFpci1pdGVtIHtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcclxuXHJcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgdmFyKC0tcmFkaXVzLWZvcm0pIHZhcigtLXJhZGl1cy1mb3JtKSAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZm9ybSk7XHJcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5pbnB1dCB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxOHJlbTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtcS1tb2JpbGUoKSB7XHJcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG5cclxuICAgICAgICAucGFpci1sYWJlbCB7XHJcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS1mb3JtKTtcclxuICAgICAgICAgICAgbWluLXdpZHRoOiAxMnJlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5wYWlyLWl0ZW0ge1xyXG4gICAgICAgICAgICBmbGV4OiAxO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmlucHV0IHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5kYXRlcGlja2VyLWdyb3VwIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xyXG5cclxuICAgICAgICAgICAgLnNlbGVjdCB7XHJcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogc3BhbiAyO1xyXG5cclxuICAgICAgICAgICAgICAgICYucGFpci1sYWJlbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZvcm0pIHZhcigtLXJhZGl1cy1mb3JtKSAwIDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJi5wYWlyLWl0ZW0ge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0xcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIHZhcigtLXJhZGl1cy1mb3JtKSB2YXIoLS1yYWRpdXMtZm9ybSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5pbnB1dCB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtMXB4O1xyXG5cclxuICAgICAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoMikge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uZm9ybS1zZXBhcmF0b3Ige1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtbGlnaHQpO1xyXG59XHJcblxyXG4uZmlsZS11cGxvYWQge1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZvcm0pO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC1saWdodCk7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS1nYXAtc2VjdGlvbik7XHJcbiAgICBAaW5jbHVkZSBib3JkZXIoKTtcclxuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYm9yZGVyKTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgZ2FwOiB2YXIoLS1nYXAtbGF5b3V0KTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuXHJcbiAgICBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAuYnV0dG9uIHtcclxuICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC5maWxlLXVwbG9hZC10ZXh0IHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1kYXJrKTtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcbiAgICAgICAgd29yZC1icmVhazoga2VlcC1hbGw7XHJcbiAgICB9XHJcblxyXG4gICAgJi5kcmFnLW92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQpO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XHJcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBkYXNoZWQ7XHJcblxyXG4gICAgICAgIC5maWxlLXVwbG9hZC10ZXh0IHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmZpbGUtbGlzdCB7XHJcbiAgICAuZmlsZS1saXN0LWhlYWQge1xyXG4gICAgICAgIC5maWxlLWxpc3QtY291bnQge1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG5cclxuICAgICAgICAgICAgLmN1cnJlbnQge1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZmlsZS1saXN0LWNvbnRlbnQge1xyXG4gICAgICAgIHVsIHtcclxuICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1nYXAtbGF5b3V0KTtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mb3JtKTtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgICAgICAgICAgZ2FwOiB2YXIoLS1nYXAtbGF5b3V0KTtcclxuXHJcbiAgICAgICAgICAgICAgICAuZmlsZS1pbmZvIHtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBsaW5lLWNsYW1wKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5mb3JtLXRvZ2dsZS1idXR0b24ge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcblxyXG4gICAgLmljb24ge1xyXG4gICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgZm9udEF3ZXNvbWU1KFwiXFxmMTA3XCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIGNhcmRcclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi5jYXJkIHtcclxuICAgIHBhZGRpbmc6IHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWNhcmQpO1xyXG4gICAgQGluY2x1ZGUgYm9yZGVyKCk7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGdhcDogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcblxyXG4gICAgPiAqIHtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5sb2FkaW5nIHtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cclxuICAgICAgICA+ICoge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgQGluY2x1ZGUgc3Bpbm5lcigxLjZyZW0sIHZhcigtLWNvbG9yLWJvcmRlcikpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmNhcmQtaGVhZCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICBnYXA6IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG59XHJcblxyXG4uY2FyZC10aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDEuOHJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcblxyXG4gICAgJiB+IC5jYXJkLXN1Yi10aXRsZSB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwLWNvbXBvbmVudCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5jYXJkLXN1Yi10aXRsZSB7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1kYXJrKTtcclxufVxyXG5cclxuLmNhcmQtYm9keSB7XHJcbiAgICBmbGV4OiAxO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBnYXA6IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgYnJlYWRjcnVtYlxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLmJyZWFkY3J1bWIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIGdhcDogMC44cmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwLWxheW91dCk7XHJcblxyXG4gICAgbGkge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBnYXA6IDAuOHJlbTtcclxuXHJcbiAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBmb250QXdlc29tZTUoKTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWxpZ2h0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuXHJcbiAgICAgICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtZGFyayk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWRhcmspO1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0wLjRyZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIi5kYXRlcGlja2VyIHtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGljb24oZGF0ZSk7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IHZhcigtLXNpemUtaWNvbi14c21hbGwpO1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHJpZ2h0IDEuMnJlbTtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA0cmVtICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi51aS1kYXRlcGlja2VyIHtcclxuICAgIEBpbmNsdWRlIHBhcmVudCgpO1xyXG4gICAgbWF4LXdpZHRoOiAyOHJlbTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZvcm0pO1xyXG4gICAgcGFkZGluZzogdmFyKC0tZ2FwLWNvbXBvbmVudCk7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG5cclxuICAgIC51aS1kYXRlcGlja2VyLWhlYWRlciB7XHJcbiAgICAgICAgaGVpZ2h0OiA0LjhyZW07XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblxyXG4gICAgICAgIC51aS1kYXRlcGlja2VyLXRpdGxlIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgb3JkZXI6IDI7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnVpLWRhdGVwaWNrZXItcHJldixcclxuICAgICAgICAudWktZGF0ZXBpY2tlci1uZXh0IHtcclxuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUtaWNvbikgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLWljb24pICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIG1pbi13aWR0aDogdmFyKC0tc2l6ZS1pY29uKSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiB2YXIoLS1zaXplLWljb24pICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mb3JtKTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICAgICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCIgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUtaWNvbik7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtaWNvbik7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiB2YXIoLS1zaXplLWljb24tc21hbGwpO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmOmhvdmVyLFxyXG4gICAgICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtbGlnaHQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLWxpZ2h0LWFjdGl2ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC51aS1kYXRlcGlja2VyLXByZXYge1xyXG4gICAgICAgICAgICBvcmRlcjogMTtcclxuXHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGljb24oY2hldnJvbi1sZWZ0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnVpLWRhdGVwaWNrZXItbmV4dCB7XHJcbiAgICAgICAgICAgIG9yZGVyOiAzO1xyXG5cclxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbihjaGV2cm9uLXJpZ2h0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgdHIge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICB9XHJcblxyXG4gICAgdGQge1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcblxyXG4gICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtbGlnaHQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjphY3RpdmUge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLWxpZ2h0LWFjdGl2ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoLFxyXG4gICAgdGQge1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyA3KSAhaW1wb3J0YW50O1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZm9ybSk7XHJcblxyXG4gICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAudWktZGF0ZXBpY2tlci1vdGhlci1tb250aCB7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qIOydvOyalOydvCAqL1xyXG4udWktZGF0ZXBpY2tlci1jYWxlbmRhciA+IHRoZWFkID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcclxuLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIgPiB0Ym9keSA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQgYSB7XHJcbiAgICBjb2xvcjogI2U0MmQxNSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4vKiDthqDsmpTsnbwgKi9cclxuLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIgPiB0aGVhZCA+IHRyID4gdGg6bGFzdC1jaGlsZCxcclxuLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIgPiB0Ym9keSA+IHRyID4gdGQ6bGFzdC1jaGlsZCBhIHtcclxuICAgIGNvbG9yOiAjMDA5MWZmICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgZGF0ZXBpY2tlci90aGVtZS9kYXJrXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG46cm9vdCB7XHJcbiAgICAmLnRoZW1lLWRhcmsge1xyXG4gICAgICAgIC5kYXRlcGlja2VyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbihkYXRlLCAkZGFyay1tb2RlLWNvbG9yLWljb24pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIuZmxhdHBpY2tyIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGljb24oZGF0ZSk7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IHZhcigtLXNpemUtaWNvbi14c21hbGwpO1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHJpZ2h0IDEuMnJlbTtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA0cmVtICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5mbGF0cGlja3ItY2FsZW5kYXIge1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbiAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAyLjRyZW07XHJcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDFweCAwIDAgdmFyKC0tY29sb3ItYm9yZGVyKSwgLTFweCAwIDAgdmFyKC0tY29sb3ItYm9yZGVyKSwgMCAxcHggMCB2YXIoLS1jb2xvci1ib3JkZXIpLFxyXG4gICAgICAgIDAgLTFweCAwIHZhcigtLWNvbG9yLWJvcmRlciksIDAgM3B4IDEzcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcclxuICAgIGJveC1zaGFkb3c6IDFweCAwIDAgdmFyKC0tY29sb3ItYm9yZGVyKSwgLTFweCAwIDAgdmFyKC0tY29sb3ItYm9yZGVyKSwgMCAxcHggMCB2YXIoLS1jb2xvci1ib3JkZXIpLFxyXG4gICAgICAgIDAgLTFweCAwIHZhcigtLWNvbG9yLWJvcmRlciksIDAgM3B4IDEzcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcclxuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tZ2FwLWxheW91dCkgKiAyKTtcclxuICAgIG1hcmdpbi10b3A6IDAuNHJlbTtcclxufVxyXG5cclxuc3Bhbi5mbGF0cGlja3Itd2Vla2RheSB7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XHJcbn1cclxuXHJcbi5mbGF0cGlja3ItbW9udGhzIHtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbW9udGgge1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBoZWlnaHQ6IDZyZW07XHJcbn1cclxuXHJcbi5mbGF0cGlja3ItZGF5IHtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcclxufVxyXG5cclxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoLFxyXG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGgge1xyXG4gICAgdG9wOiBhdXRvO1xyXG59XHJcblxyXG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGggc3ZnLFxyXG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGggc3ZnIHtcclxuICAgIHdpZHRoOiAxLjRyZW07XHJcbiAgICBoZWlnaHQ6IDEuNHJlbTtcclxufVxyXG5cclxuLmZsYXRwaWNrci1kYXkuZmxhdHBpY2tyLWRpc2FibGVkLFxyXG4uZmxhdHBpY2tyLWRheS5mbGF0cGlja3ItZGlzYWJsZWQ6aG92ZXIsXHJcbi5mbGF0cGlja3ItZGF5LnByZXZNb250aERheSxcclxuLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5LFxyXG4uZmxhdHBpY2tyLWRheS5ub3RBbGxvd2VkLFxyXG4uZmxhdHBpY2tyLWRheS5ub3RBbGxvd2VkLnByZXZNb250aERheSxcclxuLmZsYXRwaWNrci1kYXkubm90QWxsb3dlZC5uZXh0TW9udGhEYXkge1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtbGlnaHQpO1xyXG59XHJcblxyXG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGgsXHJcbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aCB7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XHJcbiAgICBmaWxsOiB2YXIoLS1jb2xvci10ZXh0KTtcclxufVxyXG5cclxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoOmhvdmVyIHN2ZyxcclxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoOmhvdmVyIHN2ZyB7XHJcbiAgICBmaWxsOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxufVxyXG5cclxuLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQsXHJcbi5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2UsXHJcbi5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLFxyXG4uZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5pblJhbmdlLFxyXG4uZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLmluUmFuZ2UsXHJcbi5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLmluUmFuZ2UsXHJcbi5mbGF0cGlja3ItZGF5LnNlbGVjdGVkOmZvY3VzLFxyXG4uZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlOmZvY3VzLFxyXG4uZmxhdHBpY2tyLWRheS5lbmRSYW5nZTpmb2N1cyxcclxuLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQ6aG92ZXIsXHJcbi5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2U6aG92ZXIsXHJcbi5mbGF0cGlja3ItZGF5LmVuZFJhbmdlOmhvdmVyLFxyXG4uZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5wcmV2TW9udGhEYXksXHJcbi5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2UucHJldk1vbnRoRGF5LFxyXG4uZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5wcmV2TW9udGhEYXksXHJcbi5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLm5leHRNb250aERheSxcclxuLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5uZXh0TW9udGhEYXksXHJcbi5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLm5leHRNb250aERheSB7XHJcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1jb250cmFzdCk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxufVxyXG5cclxuLmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIHtcclxuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBnYXA6IDEuNnJlbTtcclxufVxyXG5cclxuLm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93VXAge1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbn1cclxuXHJcbi5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd0Rvd24ge1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbn1cclxuXHJcbi5mbGF0cGlja3ItY3VycmVudC1tb250aCAubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dVcDphZnRlciB7XHJcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jb2xvci1pY29uKTtcclxuICAgIHRvcDogLTAuMTVyZW07XHJcbn1cclxuXHJcbi5mbGF0cGlja3ItY3VycmVudC1tb250aCAubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dEb3duOmFmdGVyIHtcclxuICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWNvbG9yLWljb24pO1xyXG4gICAgdG9wOiBhdXRvO1xyXG4gICAgYm90dG9tOiAtMC4xMjVyZW07XHJcbn1cclxuXHJcbi5mbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHMge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCkgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmZsYXRwaWNrci1kYXkuaW5SYW5nZSxcclxuLmZsYXRwaWNrci1kYXkucHJldk1vbnRoRGF5LmluUmFuZ2UsXHJcbi5mbGF0cGlja3ItZGF5Lm5leHRNb250aERheS5pblJhbmdlLFxyXG4uZmxhdHBpY2tyLWRheS50b2RheS5pblJhbmdlLFxyXG4uZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXkudG9kYXkuaW5SYW5nZSxcclxuLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5LnRvZGF5LmluUmFuZ2UsXHJcbi5mbGF0cGlja3ItZGF5OmhvdmVyLFxyXG4uZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXk6aG92ZXIsXHJcbi5mbGF0cGlja3ItZGF5Lm5leHRNb250aERheTpob3ZlcixcclxuLmZsYXRwaWNrci1kYXk6Zm9jdXMsXHJcbi5mbGF0cGlja3ItZGF5LnByZXZNb250aERheTpmb2N1cyxcclxuLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5OmZvY3VzIHtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtbGlnaHQtYWN0aXZlKTtcclxuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC1saWdodC1hY3RpdmUpO1xyXG59XHJcblxyXG4uZmxhdHBpY2tyLWRheS50b2RheSB7XHJcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG59XHJcblxyXG4uZmxhdHBpY2tyLWRheS50b2RheTpob3ZlcixcclxuLmZsYXRwaWNrci1kYXkudG9kYXk6Zm9jdXMge1xyXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xyXG59XHJcblxyXG4uZmxhdHBpY2tyLXJDb250YWluZXIsXHJcbi5mbGF0cGlja3ItZGF5cyxcclxuLmRheUNvbnRhaW5lciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1pbi13aWR0aDogYXV0bztcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG59XHJcblxyXG4uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93VG9wOmJlZm9yZSB7XHJcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jb2xvci1ib3JkZXIpO1xyXG59XHJcblxyXG4uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93VG9wOmFmdGVyIHtcclxuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG59XHJcblxyXG4uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRocyB7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBpY29uKGNoZXZyb24tZG93biwgJGNvbG9yLWljb24pICFpbXBvcnRhbnQ7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgcmlnaHQgIWltcG9ydGFudDtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgIWltcG9ydGFudDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogdmFyKC0tc2l6ZS1pY29uLXNtYWxsKSAhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZy1yaWdodDogMnJlbTtcclxuXHJcbiAgICAmOjotbXMtZXhwYW5kIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG59XHJcblxyXG4uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLm51bUlucHV0V3JhcHBlciB7XHJcbiAgICB3aWR0aDogNnJlbTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgb3JkZXI6IC0xO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCkgIWltcG9ydGFudDtcclxuXHJcbiAgICAmOjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogXCLrhYRcIjtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGxlZnQ6IDRyZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbi5mbGF0cGlja3ItY3VycmVudC1tb250aCBpbnB1dC5jdXIteWVhciB7XHJcbiAgICB3aWR0aDogNHJlbTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbn1cclxuXHJcbi5udW1JbnB1dFdyYXBwZXIgc3BhbiB7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG59XHJcblxyXG4ubnVtSW5wdXRXcmFwcGVyIHNwYW46aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi5mbGF0cGlja3ItZGF5LmluUmFuZ2Uge1xyXG4gICAgYm94LXNoYWRvdzogLTVweCAwIDAgdmFyKC0tY29sb3ItYmFja2dyb3VuZC1saWdodC1hY3RpdmUpLCA1cHggMCAwIHZhcigtLWNvbG9yLWJhY2tncm91bmQtbGlnaHQtYWN0aXZlKTtcclxufVxyXG5cclxuLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQuc3RhcnRSYW5nZSArIC5lbmRSYW5nZTpub3QoOm50aC1jaGlsZCg3biArIDEpKSxcclxuLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5zdGFydFJhbmdlICsgLmVuZFJhbmdlOm5vdCg6bnRoLWNoaWxkKDduICsgMSkpLFxyXG4uZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5zdGFydFJhbmdlICsgLmVuZFJhbmdlOm5vdCg6bnRoLWNoaWxkKDduICsgMSkpIHtcclxuICAgIGJveC1zaGFkb3c6IC0xMHB4IDAgMCB2YXIoLS1jb2xvci1wcmltYXJ5KTtcclxufVxyXG5cclxuLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBmbGF0cGlja3IvdGhlbWUvZGFya1xyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuOnJvb3Qge1xyXG4gICAgJi50aGVtZS1kYXJrIHtcclxuICAgICAgICAuZmxhdHBpY2tyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaWNvbihkYXRlLCAkZGFyay1tb2RlLWNvbG9yLWljb24pICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRocyB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGljb24oY2hldnJvbi1kb3duLCAkZGFyay1tb2RlLWNvbG9yLWljb24pICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgY2hhcnRcclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi5jaGFydC1jb250YWluZXIge1xyXG4gICAgQGluY2x1ZGUgcGFyZW50KCk7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBAaW5jbHVkZSBzY3JvbGxib3goKTtcclxufVxyXG5cclxuLmNoYXJ0LWNhbnZhcyB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIC8vIG1heC1oZWlnaHQ6IDQwcmVtOyAvLyBtYXgtaGVpZ2h07J2AIGlubGluZeycvOuhnCDsg4Htmansl5DrlLDrnbwg6rCB6rCBIOyngOyglSDtlYTsmpTtlaAg65OvXHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgJi5kb3VnaG51dCB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuICAgICAgICBtYXgtaGVpZ2h0OiBub25lO1xyXG4gICAgICAgIGhlaWdodDogYXV0bztcclxuXHJcbiAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEwMCU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuY2hhcnQge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbXEtbW9iaWxlKCkge1xyXG4gICAgICAgIHdpZHRoOiA3MDFweCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1xLWN1c3RvbShtYXgsIFwiNTE5cHhcIikge1xyXG4gICAgICAgIHdpZHRoOiA0NTNweCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG59XHJcblxyXG4uY2hhcnQge1xyXG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xyXG59XHJcbiIsIi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgdG9hc3Rcclxu4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi50b2FzdC1jb250YWluZXIge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICB6LWluZGV4OiB2YXIoLS16LWluZGV4LWxvYWRpbmcpO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBnYXA6IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG5cclxuICAgIC50b2FzdCB7XHJcbiAgICAgICAgd2lkdGg6IDMycmVtO1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IGNhbGModmFyKC0tc2l6ZS1pY29uKSArIHZhcigtLWdhcC1sYXlvdXQpICsgdmFyKC0tZ2FwLWxheW91dCkpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuICAgICAgICBAaW5jbHVkZSBib3gtc2hhZG93KCk7XHJcbiAgICAgICAgcGFkZGluZzogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMnJlbSk7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1nYXAtbGF5b3V0KTtcclxuXHJcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnRvYXN0LWljb24ge1xyXG4gICAgICAgICAgICB3aWR0aDogY2FsYyh2YXIoLS1zaXplLWljb24pKTtcclxuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLXNpemUtaWNvbikpO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIGxlZnQ6IHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLWxpZ2h0KTtcclxuXHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnRBd2Vzb21lNShcIlxcZjE0MVwiKTtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnRvYXN0LXRpdGxlIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1zaXplLWljb24pICsgdmFyKC0tZ2FwLWxheW91dCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnRvYXN0LXN1Yi10aXRsZSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tc2l6ZS1pY29uKSArIHZhcigtLWdhcC1sYXlvdXQpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuaW5mbyB7XHJcbiAgICAgICAgICAgIC50b2FzdC1pY29uIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWluZm8pO1xyXG5cclxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcZjEyOVwiO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuc3VjY2VzcyB7XHJcbiAgICAgICAgICAgIC50b2FzdC1pY29uIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXN1Y2Nlc3MpO1xyXG5cclxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcZjAwY1wiO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYud2FybmluZyB7XHJcbiAgICAgICAgICAgIC50b2FzdC1pY29uIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXdhcm5pbmcpO1xyXG5cclxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcZjEyYVwiO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuZXJyb3Ige1xyXG4gICAgICAgICAgICAudG9hc3QtaWNvbiB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7XHJcblxyXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxmMDBkXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5oaWRkZW4ge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDMycmVtKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgICBwYW5lbFxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLnBhbmVsIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiB2YXIoLS1zaXplLXBhbmVsKTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHJpZ2h0OiBjYWxjKHZhcigtLXNpemUtcGFuZWwpICogLTEpO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlci1zbmIpO1xyXG4gICAgcGFkZGluZy10b3A6IHZhcigtLXNpemUtaGVhZGVyLWhlaWdodCk7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcbiAgICB6LWluZGV4OiB2YXIoLS16LWluZGV4LXBhbmVsKTtcclxuXHJcbiAgICAucGFuZWwtbGF5ZXIge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLWNvbnRyYXN0KSwgJGFscGhhOiAwLjIpO1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigpO1xyXG4gICAgfVxyXG5cclxuICAgIC5wYW5lbC1jb250YWluZXIge1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgQGluY2x1ZGUgc2Nyb2xsYm94KCk7XHJcblxyXG4gICAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcclxuICAgICAgICAgICAgd2lkdGg6IDA7XHJcbiAgICAgICAgICAgIGhlaWdodDogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnBhbmVsLWhlYWQge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgZ2FwOiB2YXIoLS1nYXAtbGF5b3V0KTtcclxuICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWdhcC1jb21wb25lbnQpIHZhcigtLWdhcC1sYXlvdXQpO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXItbGlnaHQpO1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oKTtcclxuXHJcbiAgICAgICAgLmJ1dHRvbi1ncm91cCB7XHJcbiAgICAgICAgICAgIGdhcDogMC4xcmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnBhbmVsLXZpZXctY2hhbmdlLWJ1dHRvbiB7XHJcbiAgICAgICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250QXdlc29tZTUoXCJcXGYwNjVcIik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5wYW5lbC1jbG9zZS1idXR0b24ge1xyXG4gICAgICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udEF3ZXNvbWU1KFwiXFxmMDYxXCIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5wYW5lbC10aXRsZSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGdhcDogMC42cmVtO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICB9XHJcblxyXG4gICAgLnBhbmVsLWJvZHkge1xyXG4gICAgICAgIGZsZXg6IDE7XHJcbiAgICAgICAgcGFkZGluZzogdmFyKC0tZ2FwLWxheW91dCk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XHJcbiAgICB9XHJcblxyXG4gICAgLnBhbmVsLWZvb3RlciB7XHJcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcclxuICAgICAgICBwYWRkaW5nOiB2YXIoLS1nYXAtbGF5b3V0KTtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgZ2FwOiB2YXIoLS1nYXAtY29tcG9uZW50KTtcclxuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLWxpZ2h0KTtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgYm9keS9wYW5lbC1vcGVuL3BhbmVsXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG5ib2R5IHtcclxuICAgICYucGFuZWwtb3BlbiB7XHJcbiAgICAgICAgLnBhbmVsIHtcclxuICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLnBhbmVsLW92ZXJsYXkge1xyXG4gICAgICAgIC5wYW5lbCB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgcmlnaHQ6IDUwJTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwJSk7XHJcbiAgICAgICAgICAgIHotaW5kZXg6IHZhcigtLXotaW5kZXgtbW9kYWwpO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1nYXAtbGF5b3V0KTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcclxuXHJcbiAgICAgICAgICAgIC5wYW5lbC1jb250YWluZXIge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcGFyZW50KCk7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzY3JvbGxib3goKTtcclxuICAgICAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICAgICAgICAgICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA1NnJlbTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZvcm0pO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYm94LXNoYWRvdygpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAucGFuZWwtaGVhZCB7XHJcbiAgICAgICAgICAgICAgICAucGFuZWwtdmlldy1jaGFuZ2UtYnV0dG9uIHtcclxuICAgICAgICAgICAgICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnRBd2Vzb21lNShcIlxcZjA2NlwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAucGFuZWwtY2xvc2UtYnV0dG9uIHtcclxuICAgICAgICAgICAgICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnRBd2Vzb21lNShcIlxcZjAwZFwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLnBhbmVsLWxheWVyIHtcclxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLnBhbmVsLWZvb3RlciB7XHJcbiAgICAgICAgICAgICAgICAuYnV0dG9uLWdyb3VwIHtcclxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAuYnV0dG9uIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmxleDogMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5wYW5lbC1jb250cm9sIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gICAgYm9keS9tcS1sYXB0b3AobWluKS9wYW5lbFxyXG7ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuYm9keSB7XHJcbiAgICBAaW5jbHVkZSBtcS1sYXB0b3AobWluKSB7XHJcbiAgICAgICAgJi5wYW5lbC1vcGVuIHtcclxuICAgICAgICAgICAgLm1haW4ge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYyh2YXIoLS1zaXplLXBhbmVsKSArIHZhcigtLWdhcC1jb21wb25lbnQpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIvKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgIGNhbGVuZGFyXHJcbuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4uY2FyZC1jYWxlbmRhciB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuXHJcbiAgICAuY2FyZC1oZWFkIHtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgfVxyXG59XHJcblxyXG4uY2FsZW5kYXIge1xyXG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIGNhbGModmFyKC0tZ2FwLWxheW91dCkgKiAyKSk7XHJcbiAgICBtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLWdhcC1sYXlvdXQpKTtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgbWFyZ2luLXRvcDogMXJlbTtcclxufVxyXG5cclxuLmNhbGVuZGFyLWhlYWQsXHJcbi5jYWxlbmRhci1ncmlkIHtcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg3LCAxZnIpO1xyXG59XHJcblxyXG4uY2FsZW5kYXItaGVhZCB7XHJcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcclxuXHJcbiAgICAuZGF5IHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpO1xyXG4gICAgICAgIHBhZGRpbmc6IGNhbGModmFyKC0tZ2FwLWNvbXBvbmVudCkgLyAyKTtcclxuICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWRhcmspO1xyXG5cclxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1xLW1vYmlsZSgpIHtcclxuICAgICAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xyXG5cclxuICAgICAgICAuZGF5IHtcclxuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmNhbGVuZGFyLWdyaWQge1xyXG4gICAgLmRheSB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIEBpbmNsdWRlIGJvcmRlcigpO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XHJcbiAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgICAgICAgJjpudGgtb2YtdHlwZSg3biArIDEpIHtcclxuICAgICAgICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5kYXktY29udGVudCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBzY3JvbGxib3goKTtcclxuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcclxuICAgICAgICAgICAgcGFkZGluZzogY2FsYyh2YXIoLS1nYXAtY29tcG9uZW50KSAvIDIpO1xyXG5cclxuICAgICAgICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLmRhdGUge1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tZ2FwLWNvbXBvbmVudCkgLyAyKTtcclxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1kYXJrKTtcclxuXHJcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRvcDogLTEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogLTE7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJi50b2RheSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyLjRyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIuNHJlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMi40cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAtMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLmV2ZW50IHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICAgICAgZ2FwOiBjYWxjKHZhcigtLWdhcC1jb21wb25lbnQpIC8gMik7XHJcblxyXG4gICAgICAgICAgICAgICAgLmJhZGdlIHtcclxuICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG4gICAgICAgICAgICAgICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtbGlnaHQpO1xyXG5cclxuICAgICAgICAgICAgLmRheS1jb250ZW50IHtcclxuICAgICAgICAgICAgICAgIC5kYXRlIHtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLWxpZ2h0KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC1saWdodCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmRheS1vdGhlciB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtbGlnaHQpO1xyXG5cclxuICAgICAgICAgICAgLmRheS1jb250ZW50IHtcclxuICAgICAgICAgICAgICAgIC5kYXRlIHtcclxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC1saWdodCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtbGlnaHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtcS1tb2JpbGUoKSB7XHJcbiAgICAgICAgLmRheSB7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYm9yZGVyLWxpZ2h0KTtcclxuICAgICAgICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XHJcblxyXG4gICAgICAgICAgICAuZGF5LWNvbnRlbnQge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLWdhcC1jb21wb25lbnQpO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcblxyXG4gICAgICAgICAgICAgICAgLmRhdGUge1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJi50b2RheSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAuZXZlbnQge1xyXG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICBnYXA6IDAuM3JlbTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLmJhZGdlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDFyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMXJlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICYuZGF5LW90aGVyIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xyXG5cclxuICAgICAgICAgICAgICAgIC5kYXktY29udGVudCB7XHJcbiAgICAgICAgICAgICAgICAgICAgLmRhdGUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uY2FsZW5kYXItYnV0dG9uLWdyb3VwIHtcclxuICAgIC5wcmV2IHtcclxuICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnRBd2Vzb21lNShcIlxcZjEwNFwiLCB2YXIoLS1jb2xvci1pY29uLWxpZ2h0KSAhaW1wb3J0YW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm5leHQge1xyXG4gICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgZm9udEF3ZXNvbWU1KFwiXFxmMTA1XCIsIHZhcigtLWNvbG9yLWljb24tbGlnaHQpICFpbXBvcnRhbnQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0= */
