/* Base styles */
:root {
    /* Базовые */
    --color-1: #fff;
    --color-2: #000;

    /* Фирменные */
    --color-3: #E65901;
    --color-4: #E24E2A;
    --color-5: #EEC479;
    --color-6: #D4D2D2;
    --color-7: #151515;
    --color-8: #EBEBEB;

    /* Служебные: ошибки, статусы, подписи */
    --color-error: #f44336;
    --color-error-bg: rgba(244, 67, 54, 0.05);
    --color-success: #4CAF50;
    --color-placeholder: #6C6B6B;
    --color-muted: #666;
    --color-border: #888;
    --gradient-1: linear-gradient(to bottom, hsl(0, 0%, 100%), hsla(0, 0%, 100%, 0));
    --gradient-2: linear-gradient(to bottom, hsl(0, 0%, 0%), hsla(0, 0%, 0%, 0));
    --gradient-3: linear-gradient(to left, #F1ECE4, #DAD8D7);
}

:root {
    /* Семейство шрифтов TT Norms Pro (вариативный) */
    --font-1: "TT Norms Pro", sans-serif;
    --font-1-extended: "TT Norms Pro Expanded", "TT Norms Pro", sans-serif;
}

:root {
    --header-fixed-height: 11.2rem;
}

@media (min-width: 1200px) {

:root {
        --header-fixed-height: 12rem;
}
    }

:root {
    --transition-1: 0.25s all ease-out;
    --transition-2: 0.5s all ease-out;
    --transition-3: 1s all ease-out;
}

:root {
    --z-index-1: 1000;
    --z-index-2: 990;
    --z-index-3: 980;
    --z-index-4: 970;
    --z-index-5: 960;
    --z-index-6: 950;
    --z-index-7: 940;
    --z-index-8: 930;
    --z-index-9: 920;
    --z-index-10: 910;
}
/* TT Norms Pro Expanded */
@font-face {
  font-family: 'TT Norms Pro Expanded';
  src: url('../../fonts/tt-norms-pro-expanded/TTNormsProExpanded-Light.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TT Norms Pro Expanded';
  src: url('../../fonts/tt-norms-pro-expanded/TTNormsProExpanded-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TT Norms Pro Expanded';
  src: url('../../fonts/tt-norms-pro-expanded/TTNormsProExpanded-Medium.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TT Norms Pro Expanded';
  src: url('../../fonts/tt-norms-pro-expanded/TTNormsProExpanded-DemiBold.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TT Norms Pro Expanded';
  src: url('../../fonts/tt-norms-pro-expanded/TTNormsProExpanded-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* TT Norms Pro Basic */
@font-face {
  font-family: 'TT Norms Pro';
  src: url('../../fonts/tt-norms-pro-basic/TTNormsPro-Thin.woff2') format('woff2');
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TT Norms Pro';
  src: url('../../fonts/tt-norms-pro-basic/TTNormsPro-ExtraLight.woff2') format('woff2');
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TT Norms Pro';
  src: url('../../fonts/tt-norms-pro-basic/TTNormsPro-Light.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TT Norms Pro';
  src: url('../../fonts/tt-norms-pro-basic/TTNormsPro-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TT Norms Pro';
  src: url('../../fonts/tt-norms-pro-basic/TTNormsPro-Medium.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TT Norms Pro';
  src: url('../../fonts/tt-norms-pro-basic/TTNormsPro-DemiBold.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TT Norms Pro';
  src: url('../../fonts/tt-norms-pro-basic/TTNormsPro-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TT Norms Pro';
  src: url('../../fonts/tt-norms-pro-basic/TTNormsPro-ExtraBold.woff2') format('woff2');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TT Norms Pro';
  src: url('../../fonts/tt-norms-pro-basic/TTNormsPro-Black.woff2') format('woff2');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  height: 100%;

  /* Якорные переходы с отступом под липкую шапку */
  scroll-padding-top: calc(11.2rem + 1rem);
  scroll-padding-top: calc(var(--header-fixed-height) + 1rem);
}

body {
  position: relative;

  /* Без height: 100% скролл-контейнером остаётся документ. С ним контейнером
     становился body: scroll-padding на html игнорировался, window.scrollTo не
     работал, а на iOS после якорного перехода прокрутка «залипала». */
  min-height: 100vh;
  margin: 0;
  padding: 0;
  color: #000;
  color: var(--color-2);
  background-color: #fff;
  background-color: var(--color-1);
}

/* clip, а не hidden: hidden по одной оси делает элемент скролл-контейнером по
   другой — именно из-за этого ломался sticky и под него добавляли height: 100%. */
body,
html {
  overflow-x: clip;
}

[dir="ltr"] {
  direction: ltr;
  text-align: left;
}

[dir="rtl"] {
  direction: rtl;
  text-align: right;
}

span,
a,
strong,
em,
b,
i,
u,
mark,
small,
code,
label,
button,
input,
select,
textarea,
img,
sub,
sup,
abbr,
cite,
q,
time,
kbd,
var,
samp,
dfn,
bdo,
br,
wbr,
data,
meter,
progress,
ruby,
rt,
rp,
del,
ins,
s,
h1,
h2,
h3,
h4,
h5,
h6 {
  display: inline-block;
  margin: 0;
  padding: 0;
  vertical-align: top;
}

img {
  display: block;
  line-height: 1;
}

*::-webkit-scrollbar {
  width: .2rem;
  height: .2rem;
}



*::-webkit-scrollbar-thumb {
  background: hsla(0, 0%, 0%, 0.3);
  border-radius: 2rem;
}

*::-webkit-scrollbar-track {
  background: hsla(0, 0%, 0%, 0.1);
}
html {
  font-size: 10px;
}

* {
  font-size: 1em;
}

body,
input,
select,
textarea {
    font-size: 1.4rem;
    font-family: "TT Norms Pro", sans-serif;
    font-family: var(--font-1);
    font-weight: 300;
    line-height: 1.2;
}

@media (min-width: 1200px) {

body,
input,
select,
textarea {
        font-size: 1.6rem;
}
    }

h1,
h2,
h3,
h4,
h5,
h6 {
  margin-top: 0;
  margin-bottom: 0;
  font-weight: 600;
  line-height: 1.1;
}

.h1 {
  font-size: 1.8em;
}

@media (min-width: 1200px) {

.h1 {
    font-size: 3.2em;
}
  }

.h2 {
  font-size: 1.6em;
}

@media (min-width: 1200px) {

.h2 {
    font-size: 2.8em;
}
  }

.h3 {
  font-size: 1.4em;
}

@media (min-width: 1200px) {

.h3 {
    font-size: 2.4em;
}
  }

.h4 {
  font-size: 1.2em;
}

@media (min-width: 1200px) {

.h4 {
    font-size: 2.0em;
}
  }

.h5 {
  font-size: 1em;
}

@media (min-width: 1200px) {

.h5 {
    font-size: 1.6em;
}
  }

.h6 {
  font-size: 0.9em;
}

@media (min-width: 1200px) {

.h6 {
    font-size: 1.2em;
}
  }

b,
strong {
  font-weight: 700;
}

.weight-100 {
  font-weight: 100;
}

.weight-200 {
  font-weight: 200;
}

.weight-300 {
  font-weight: 300;
}

.weight-400 {
  font-weight: 400;
}

.weight-500 {
  font-weight: 500;
}

.weight-600 {
  font-weight: 600;
}

.weight-700 {
  font-weight: 700;
}

.weight-800 {
  font-weight: 800;
}

.weight-900 {
  font-weight: 900;
}

.font-1 {
  font-family: "TT Norms Pro", sans-serif;
  font-family: var(--font-1);
}

.text-lg {
  font-size: 1.8em;
  line-height: 1.1em;
}

@media (min-width: 1200px) {

.text-lg {
    font-size: 2.4em;
}
  }

.text-md {
  font-size: 1.4em;
  line-height: 1.1em;
}

.desc {
  font-size: 1em;
}

@media (min-width: 1200px) {

.desc {
    font-size: 0.9em;
}
  }

.longread {
  font-size: 0.8em;
}
.container {
  position: relative;
  width: 100%;
  padding-left: 2rem;
  padding-right: 2rem;
}
@media (min-width: 1200px) {
.container {
    max-width: 1700px;
    margin-left: auto;
    margin-right: auto;
}
  }

.container-sm {
  position: relative;
  width: 100%;
  padding-left: 2rem;
  padding-right: 2rem;
}

@media (min-width: 1200px) {

.container-sm {
    max-width: 80rem;
    margin-left: calc((100vw - 80rem)/2);
    margin-right: calc((100vw - 80rem)/2);
}
  }

@media (min-width: 1441px) {

.container-sm {
    max-width: 80rem;
    margin-left: calc((100vw - 80rem)/2);
    margin-right: calc((100vw - 80rem)/2);
}
  }

.container-md {
  position: relative;
  width: 100%;
  padding-left: 2rem;
  padding-right: 2rem;
}

@media (min-width: 1200px) {

.container-md {
    max-width: 99.2rem;
    margin-left: calc((100vw - 99.2rem)/2);
    margin-right: calc((100vw - 99.2rem)/2);
}
  }

.container-left {
  width: 100%;
  padding-left: 1rem;
}

@media (min-width: 1200px) {

.container-left {
    width: calc(100vw - ((100vw - 1700px) / 2));
    margin-left: calc((100vw - 1700px) / 2);
}
  }

@media (min-width: 1441px) {

.container-left {
    width: calc(100vw - ((100vw - 1700px) / 2));
    margin-left: calc((100vw - 1700px) / 2);
    margin-right: calc((100vw - 1700px) / 2);
}
  }

.container-left.offset {
  padding-left: 2rem;
}

@media (min-width: 1200px) {

.container-left.offset {
    width: 100%;
    margin-left: 0;
    padding-left: max(2rem, calc((100vw - 1700px) / 2 + 2rem));
}
  }

@media (min-width: 1441px) {

.container-left.offset {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    padding-left: max(2rem, calc((100vw - 1700px) / 2 + 2rem));
}
  }

.section {
  padding-top: 2rem;
  padding-bottom: 2rem;
}

@media (min-width: 1200px) {

.section {
    padding-top: 6rem;
    padding-bottom: 6rem;
}
  }

.container-full {
  width: 100%;
}
/* ============================================
   Link — base
   ============================================ */

.link {
  position: relative;
  color: inherit;
  -webkit-text-decoration: none;
  text-decoration: none;
  cursor: pointer;
  transition: opacity 0.3s ease-out;
  -webkit-tap-highlight-color: transparent;
}

.link:focus {
  outline: none;
}

.link:focus-visible {
  outline: 2px solid currentcolor;
  outline-offset: 2px;
}

.link:hover {
  opacity: 0.85;
}

.link:active {
  opacity: 0.7;
}

/* Override для button.link — без конфликта с hover кнопки */
.button.link,
.button.link:hover,
.button.link:active {
  opacity: 1;
  transition: background 0.25s all ease-out, border-color 0.25s all ease-out, color 0.25s all ease-out;
  transition: background var(--transition-1), border-color var(--transition-1), color var(--transition-1);
}

/* ============================================
   Link — modifiers
   ============================================ */

.link.inline {
  display: inline;
}

.link.underline::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 1px;
  background-color: currentcolor;
  transition: width 0.3s ease;
}

.link.underline:hover::after {
  width: 100%;
}

.link.disabled {
  opacity: 0.5;
  pointer-events: none;
}
/* ============================================
   Button — base
   ============================================ */

.button {
    position: relative;
    width: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    background: transparent;
    font-size: inherit;
    font-family: inherit;
    color: inherit;
    -webkit-text-decoration: none;
    text-decoration: none;
    border-width: .1rem;
    border-style: solid;
    border-color: transparent;
    cursor: pointer;
    transition: background 0.25s ease-out, background-color 0.25s ease-out, border-color 0.25s ease-out, color 0.25s ease-out;
    overflow: hidden;
    border-radius: 1rem;
    gap: 0.5rem;
}

/* ============================================
   Button — elements (component__element)
   ============================================ */

.button__icon {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
}

.button__item.content-wrap {
    position: relative;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 1rem;
    flex-shrink: 0;
    text-wrap: nowrap;
    transition: 0.5s all ease-out;
    transition: var(--transition-2);
}

.button__item.content-wrap::before {
    content: attr(data-text);
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    justify-content: flex-start;
    align-items: center;
}

.button__item.content-hidden {
    display: none;
}

.button__subitem.icon-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    transition: 0.25s all ease-out;
    transition: var(--transition-1);
    overflow: hidden;
}

/* ============================================
   Button — sizes
   ============================================ */

.button-sm {
    height: 4rem;
    gap: 1rem;
    padding: 0.75rem 2rem;
    font-size: 0.9em;
}

@media (min-width: 1200px) {

.button-sm {
        font-size: 1em;
}
    }

.button-md {
    height: 5rem;
    gap: 1rem;
    padding: 1rem 2rem;
}

.button-md .button__item.content-wrap::before {
    left: calc(-1 * (100% - 3rem));
}

.button-md .button__subitem.icon-wrap {
    height: 3rem;
    width: 3rem;
}

.button-md .button__icon {
    height: 1.4rem;
}

.button-md.button-circle {
    width: 5rem;
    justify-content: center;
    padding: 1rem;
}

.button-md.button-circle .button__subitem.icon-absolute {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    left: calc(-1 * (100% + 1rem));
}

.button-lg {
    height: 6rem;
    gap: 1rem;
    padding: 1rem;
    padding-right: 2rem;
    font-size: 1.1em;
}

.button-lg .button__item.content-wrap::before {
    left: calc(-1 * (100% - 4rem));
}

.button-lg .button__subitem.icon-wrap {
    height: 4rem;
    width: 4rem;
}

.button-lg .button__icon {
    width: 1.6rem;
}

/* ============================================
   Button — shapes
   ============================================ */

.button-circle {
    height: 4.6rem;
    width: 4.6rem;
    background: transparent;
    border: .1rem solid #fff;
    border: .1rem solid var(--color-1);
    border-radius: 50%;
}

.button.button-rounded {
    border-radius: 99rem;
}

/* ============================================
   Button — colors (background)
   ============================================ */

.button.bg-color-1 {
    background: #fff;
    background: var(--color-1);
    color: #000;
    color: var(--color-2);
}

.button.bg-color-1:hover {
    background: rgb(230, 230, 230);
}

@supports (color: color-mix(in lch, red, blue)) {
.button.bg-color-1:hover {
    background: color-mix(in srgb, var(--color-1), black 10%);
}
}

.button.bg-color-1:active,
.button.bg-color-1.active {
    background: rgb(204, 204, 204);
}

@supports (color: color-mix(in lch, red, blue)) {
.button.bg-color-1:active,
.button.bg-color-1.active {
    background: color-mix(in srgb, var(--color-1), black 20%);
}
}

.button.bg-color-2 {
    background: #000;
    background: var(--color-2);
    color: #fff;
    color: var(--color-1);
}

.button.bg-color-2:hover {
    background: rgb(38, 38, 38);
}

@supports (color: color-mix(in lch, red, blue)) {
.button.bg-color-2:hover {
    background: color-mix(in srgb, var(--color-2), white 15%);
}
}

.button.bg-color-2:active,
.button.bg-color-2.active {
    background: rgb(77, 77, 77);
}

@supports (color: color-mix(in lch, red, blue)) {
.button.bg-color-2:active,
.button.bg-color-2.active {
    background: color-mix(in srgb, var(--color-2), white 30%);
}
}

.button.bg-color-3 {
    /* затемнённый оттенок бренд-оранжевого (--color-3) под белый текст: контраст 4.79:1 (WCAG AA) */
    background: #c44c01;
    color: #fff;
    color: var(--color-1);
}

.button.bg-color-3:hover {
    background: rgb(202, 94, 26);
}

.button.bg-color-3:active,
.button.bg-color-3.active {
    background: rgb(157, 61, 1);
}

.button.bg-color-6 {
    background: #D4D2D2;
    background: var(--color-6);
    color: #000;
    color: var(--color-2);
}

.button.bg-color-6:hover {
    background: rgb(42, 42, 42);
    color: #fff;
    color: var(--color-1);
}

@supports (color: color-mix(in lch, red, blue)) {
.button.bg-color-6:hover {
    background: color-mix(in srgb, var(--color-6), black 80%);
}
}

.button.bg-color-6:active,
.button.bg-color-6.active {
    background: #000;
    background: var(--color-2);
    color: #fff;
    color: var(--color-1);
}

.button.bg-color-8 {
    background: #EBEBEB;
    background: var(--color-8);
    color: #000;
    color: var(--color-2);
}

.button.bg-color-8:hover {
    background: rgb(47, 47, 47);
    color: #fff;
    color: var(--color-1);
}

@supports (color: color-mix(in lch, red, blue)) {
.button.bg-color-8:hover {
    background: color-mix(in srgb, var(--color-8), black 80%);
}
}

.button.bg-color-8:active,
.button.bg-color-8.active {
    background: #000;
    background: var(--color-2);
    color: #fff;
    color: var(--color-1);
}

/* ============================================
   Button — colors (outline)
   ============================================ */

.button.outline-color-1 {
    border-color: #fff;
    border-color: var(--color-1);
}

.button.outline-color-1:hover {
    border-color: #D4D2D2;
    border-color: var(--color-6);
}

.button.outline-color-1:hover .button__subitem.icon-wrap {
    background: #D4D2D2;
    background: var(--color-6);
}

.button.outline-color-2 {
    border-color: #000;
    border-color: var(--color-2);
}

.button.outline-color-2:hover {
    background: #000;
    background: var(--color-2);
    border-color: #000;
    border-color: var(--color-2);
    color: #fff;
    color: var(--color-1);
}

.button.outline-color-2:hover .button__subitem.icon-wrap {
    background: #D4D2D2;
    background: var(--color-6);
}

/* Иконка-картинка совпадала бы с фоном при ховере (оба color-2) — инвертируем в белый */
.button.outline-color-2:hover .button__icon {
    filter: invert(1);
}

.button.outline-color-3 {
    border-color: #E65901;
    border-color: var(--color-3);
}

.button.outline-color-3:hover .button__subitem.icon-wrap {
    background: #D4D2D2;
    background: var(--color-6);
}

.button.outline-color-6 {
    border-color: #D4D2D2;
    border-color: var(--color-6);
}

.button.outline-color-6:hover {
    border-color: #fff;
    border-color: var(--color-1);
}

.button.outline-color-6:hover .button__subitem.icon-wrap {
    background: #D4D2D2;
    background: var(--color-6);
}

/* ============================================
   Button — animations
   ============================================ */

/* Стрелка через mask + currentColor — совпадает с color (важно для футера: белый текст на тёмном фоне) */
.button-animated.animation-shift:not(.loading)::after {
    content: "";
    display: block;
    flex-shrink: 0;
    right: 0;
    top: 0;
    width: 1.25rem;
    height: 1.25rem;
    background-color: currentcolor;
    -webkit-mask-image: url("/data/img/ui/icons/icon-arrow-right-sm-color-2.svg");
            mask-image: url("/data/img/ui/icons/icon-arrow-right-sm-color-2.svg");
    -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
    -webkit-mask-position: center;
            mask-position: center;
    -webkit-mask-size: contain;
            mask-size: contain;
    transition: transform 0.25s ease-out;
}

.button-animated.animation-shift:not(.loading):hover::after {
    transform: translateX(0.5rem);
}

.button-md.button-animated:hover .button__item.animation-shift {
    transform: translateX(calc(100% - 2rem));
}

.button-md.button-circle.button-animated:hover .button__item.animation-shift {
    transform: translateX(calc(100% + 1rem));
}

.button-md.button-circle.button-animated .button__subitem.icon-wrap.animation-rotate-90 {
    transition: 0.5s all ease-out;
    transition: var(--transition-2);
}

.button-md.button-circle.button-animated:hover .button__subitem.icon-wrap.animation-rotate-90 {
    transform: rotate(90deg);
}

.button-animated:hover .button__subitem.icon-wrap.animation-rotate-45 {
    transform: rotate(-45deg);
}

.button-animated:hover .button__subitem.icon-wrap.animation-fly .button__icon {
    animation: fly 0.5s ease-out forwards;
}

.button-animated:hover .button__subitem.icon-wrap.animation-top-to-down .button__icon {
    animation: top-to-down 0.5s ease-out forwards;
}

.button-animated:hover .button__subitem.icon-wrap.animation-scale .button__icon {
    animation: scale 0.5s ease-out forwards;
}

.button-animated:hover .button__subitem.icon-wrap.animation-icon-up .button__icon {
    animation: top-to-down 0.5s ease-out forwards;
}
.color-1 {
  color: #fff;
  color: var(--color-1);
}

.color-2 {
  color: #000;
  color: var(--color-2);
}

.color-3 {
  color: #E65901;
  color: var(--color-3);
}

.color-4 {
  color: #E24E2A;
  color: var(--color-4);
}

.color-5 {
  color: #EEC479;
  color: var(--color-5);
}

.color-6 {
  color: #D4D2D2;
  color: var(--color-6);
}

.color-8 {
  color: #EBEBEB;
  color: var(--color-8);
}

.bg-color-1 {
  background: #fff;
  background: var(--color-1);
}

.bg-color-2 {
  background: #000;
  background: var(--color-2);
}

.bg-color-3 {
  background: #E65901;
  background: var(--color-3);
}

.bg-color-4 {
  background: #E24E2A;
  background: var(--color-4);
}

.bg-color-5 {
  background: #EEC479;
  background: var(--color-5);
}

.bg-color-6 {
  background: #D4D2D2;
  background: var(--color-6);
}

.bg-color-7 {
  background: #151515;
  background: var(--color-7);
}

.bg-color-8 {
  background: #EBEBEB;
  background: var(--color-8);
}

.opacity-08 {
  opacity: 0.08;
}

.opacity-10 {
  opacity: 0.1;
}

.opacity-12 {
  opacity: 0.12;
}

.opacity-20 {
  opacity: 0.2;
}

.opacity-30 {
  opacity: 0.3;
}

.opacity-40 {
  opacity: 0.4;
}

.opacity-50 {
  opacity: 0.5;
}

.opacity-60 {
  opacity: 0.6;
}

.opacity-70 {
  opacity: 0.7;
}

.opacity-80 {
  opacity: 0.8;
}

.opacity-90 {
  opacity: 0.9;
}

.height-1 {
  height: 1px;
}

.height-2 {
  height: 2px;
}

.height-3 {
  height: 3px;
}

.height-4 {
  height: 4px;
}

.height-20 {
  height: 20px;
}

.height-46 {
  height: 46px;
}

.width-1 {
  width: 1px;
}

.width-100 {
  width: 100%;
}

.img-responsive {
  max-width: 100%;
  height: auto;
}

.nowrap {
  white-space: nowrap;
}

/* Утилита принудительного скрытия; !important — чтобы перебить контекстные display */
.hidden {
  display: none !important;
}

.flex-grow-1 {
  flex-grow: 1;
}

.custom-checkbox {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
}

.custom-checkbox__input {
  display: none;
}

.custom-checkbox__box {
  width: 2rem;
  height: 2rem;
  border: 0.1rem solid #fff;
  border: 0.1rem solid var(--color-1);
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 8px;
  transition: border-color 0.3s ease;
  position: relative;
}

.custom-checkbox__box:hover {
  border-color: #888;
  border-color: var(--color-border);
}

.custom-checkbox__icon {
  width: 1.5rem;
  height: 1.5rem;
  fill: none;
  stroke: #fff;
  stroke: var(--color-1);
  stroke-width: 0.2rem;
  visibility: hidden;
}

.custom-checkbox__input:checked+.custom-checkbox__box {
  background-color: #E24E2A;
  background-color: var(--color-4);
  border-color: #E24E2A;
  border-color: var(--color-4);
}

.custom-checkbox__input:checked+.custom-checkbox__box .custom-checkbox__icon {
  visibility: visible;
  transform: scale(1);
}

.text-center {
  text-align: center;
}

.text-left {
  text-align: left;
}

.text-right {
  text-align: right;
}

.uppercase {
  text-transform: uppercase;
}

.icon-sm-wrap {
  width: 3.6rem;
  height: 3.6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  flex-shrink: 0;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
}

@media (min-width: 1200px) {

.icon-sm-wrap {
    width: 4.5rem;
    height: 4.5rem;
}
  }

.icon-sm-wrap:hover {
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}

.icon-sm {
  width: auto;
  height: 3rem;
}

.animation-bw-color {
    filter: grayscale(100%);
    transition: filter 0.2s ease;
}

.animation-bw-color:hover {
    filter: grayscale(0%);
}

/* Затемнение: чёрный оверлей на hover, текст и иконки не закрывает */
.animation-darken {
    position: relative;
}

.animation-darken::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: #000;
    opacity: 0;
    transition: opacity 0.25s ease-out;
    pointer-events: none;
}

.animation-darken:hover::after {
    opacity: 1;
}

/* Зум фона: помечает элемент. Реализация — рядом с конкретным компонентом
   (например, .card-gradient.animation-zoom:hover .card-gradient__cover) */
.animation-zoom {
    position: relative;
    overflow: hidden;
}

a.link.animation-zoom:hover {
    opacity: 1;
}

/* Сдвиг фона вниз на hover (реализация — рядом с конкретным компонентом) */
.animation-shift-down {
    position: relative;
    overflow: hidden;
}

a.link.animation-shift-down:hover {
    opacity: 1;
}

.no-zoom img {
  transform: scale(1);
}

/* Skip-link: скрыт до фокуса (доступность, WCAG) */
.skip-link {
  position: absolute;
  left: -9999px;
  z-index: 9999;
  padding: 0.5rem 1rem;
  background: #fff;
  background: var(--color-1, #000);
  color: #fff;
  -webkit-text-decoration: none;
  text-decoration: none;
}

.skip-link:focus {
  left: 0.5rem;
  top: 0.5rem;
}
/* ============================================
   Keyframes — visibility
   ============================================ */

@keyframes fadein {
    from {
        opacity: 0;
        visibility: visible;
    }

    to {
        opacity: 1;
        visibility: visible;
    }
}

@keyframes fadeout {
    from {
        opacity: 1;
        visibility: visible;
    }

    to {
        opacity: 0;
        visibility: hidden;
    }
}

/* ============================================
   Keyframes — directional movement
   ============================================ */

@keyframes fly {
    0% {
        transform: translate(0%, 0%);
        opacity: 1;
    }

    50% {
        transform: translate(150%, -150%);
        opacity: 1;
    }

    51% {
        transform: translate(-150%, 150%);
        opacity: 1;
    }

    100% {
        transform: translate(0%, 0%);
        opacity: 1;
    }
}

@keyframes left-to-right {
    0% {
        transform: translate(0%, 0%);
        opacity: 1;
    }

    50% {
        transform: translate(150%, 0);
        opacity: 1;
    }

    51% {
        transform: translate(-150%, 0);
        opacity: 1;
    }

    100% {
        transform: translate(0%, 0%);
        opacity: 1;
    }
}

@keyframes top-to-down {
    0% {
        transform: translate(0%, 0%);
        opacity: 1;
    }

    50% {
        transform: translate(0%, 150%);
        opacity: 1;
    }

    51% {
        transform: translate(0, -150%);
        opacity: 1;
    }

    100% {
        transform: translate(0%, 0%);
        opacity: 1;
    }
}

@keyframes down-to-top {
    0% {
        transform: translate(0%, 0%);
        opacity: 1;
    }

    50% {
        transform: translate(0%, -150%);
        opacity: 1;
    }

    51% {
        transform: translate(0, 150%);
        opacity: 1;
    }

    100% {
        transform: translate(0%, 0%);
        opacity: 1;
    }
}

/* ============================================
   Keyframes — transform
   ============================================ */

@keyframes scale {
    0% {
        transform: scale(1);
        opacity: 1;
    }

    50% {
        transform: scale(1.5);
        opacity: 1;
    }

    51% {
        transform: scale(1.5);
        opacity: 1;
    }

    100% {
        transform: scale(1);
        opacity: 1;
    }
}

/* ============================================
   Keyframes — loading / spinner
   ============================================ */

@keyframes spinner {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Sections */
.header {
  position: relative;
  padding-top: 1.2rem;
  padding-bottom: 1.2rem;
  z-index: 970;
  z-index: var(--z-index-4);
  background: linear-gradient(to bottom, hsl(0, 0%, 0%), hsla(0, 0%, 0%, 0));
  background: var(--gradient-2);
  box-shadow: 0 2px 5px transparent;
  transition: background 0.25s ease-out, box-shadow 0.25s ease-out;
}
@media (min-width: 1200px) {
.header {
    padding-top: 1.6rem;
    padding-bottom: 1.6rem;
}
  }

.header.fixed {
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
  background: #000;
  background: var(--color-2);
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

.header .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}

.header .section__item.logo-wrap {
  flex-shrink: 0;
  z-index: 970;
  z-index: var(--z-index-4);
  opacity: 0;
  transition: opacity 0.25s ease-out;
}

.header.header-logo-visible {
  background: #000;
  background: var(--color-2);
}

.header.fixed .section__item.logo-wrap,
.header.header-logo-visible .section__item.logo-wrap {
  opacity: 1;
}

.header:has(.burger-icon.active) {
  background: #000;
  background: var(--color-2);
}

.header:has(.burger-icon.active) .section__item.logo-wrap {
  opacity: 1;
}

.header .section__item.logo-wrap a {
  display: flex;
  width: 9.4rem;
  height: auto;
  transition: all 0.5s ease-out;
}

@media (min-width: 1200px) {

.header .section__item.logo-wrap a {
    width: 14rem;
}
  }

.header .section__item.actions-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  flex-shrink: 0;
  gap: 0.8rem;
  margin-left: auto;
}

.header .section__item.actions-wrap .section__subitem.actions-wrap__row {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.header .section__item.actions-wrap .button {
  font-size: 0.85em;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
}

.header .section__item.actions-wrap .bottom-row {
  display: flex;
}

.header .section__item.actions-wrap .section__inner.text-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  font-size: 0.85em;
  line-height: 1.15;
  color: #fff;
  color: var(--color-1);
  text-align: right;
}


/* Перетекание логотипа между интро и шапкой (включает logo-flow.twig).
   Пока скрипт не отработал, шапка ведёт себя как прежде. */
.logo-flow-on .header .section__item.logo-wrap {
  opacity: 1;
}

.logo-flow-on .header__logo {
  transform: translate3d(0, 0, 0) scale(1);
  transform: translate3d(var(--logo-flow-x, 0), var(--logo-flow-y, 0), 0) scale(var(--logo-flow-scale, 1));
  transform-origin: center center;
  will-change: transform;
}

/* Знак в интро гасим: на экране остаётся один логотип — тот, что переезжает */
.logo-flow-on .intro__logo {
  opacity: 0;
}

/* Пока логотип «в интро», он не должен перекрываться шапкой и ловить клики мимо */
.logo-flow-on .header .section__item.logo-wrap {
  pointer-events: none;
}

.logo-flow-on.logo-flow-docked .header .section__item.logo-wrap {
  pointer-events: auto;
}

/* Круг перетекающего знака повторяет состояние интро */
.logo-flow-on .header__logo .logo-mark,
.logo-flow-on .header__logo .logo-figure {
  /* Паузу перед перекраской держит скрипт: он ставит класс, когда знак уже замер. */
  transition: fill 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.logo-flow-on:not(.logo-flow-docked) .header__logo .logo-mark {
  fill: #fff;
}

.logo-flow-on:not(.logo-flow-docked) .header__logo .logo-figure {
  fill: #151515;
  fill: var(--color-7);
}

.logo-flow-on:not(.logo-flow-docked) .intro:hover ~ * .header__logo .logo-mark {
  fill: #c72229;
}

@media (prefers-reduced-motion: reduce) {
  .logo-flow-on .header__logo {
    transform: none;
  }

  .logo-flow-on .intro__logo {
    opacity: 1;
  }
}
.footer.section {
  position: relative;
  padding-top: 3rem;
  padding-bottom: 1rem;
  border-radius: 1rem 1rem 0 0;
  background-color: #000;
  background-color: var(--color-2);
  color: #fff;
  color: var(--color-1);
  z-index: 940;
  z-index: var(--z-index-7);
}
@media (min-width: 1200px) {
.footer.section {
    padding-top: 4rem;
    padding-bottom: 2rem;
}
  }

.footer .section__item.background-wrap {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 80%;
  height: 100%;
  z-index: -1;
}

@media (min-width: 1200px) {

.footer .section__item.background-wrap {
    bottom: -2rem;
    width: 40%;
}
  }

.footer .background {
  width: 100%;
  height: 100%;
  background-image: var(--bg-image);
  background-size: contain;
  background-position: bottom right;
  background-repeat: no-repeat;
}

.footer .container {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-areas:
    "form"
    "links"
    "bottom";
  grid-row-gap: 3rem;
  row-gap: 3rem;
}

@media (min-width: 992px) {

.footer .container {
    grid-template-columns: 30% 30%;
    justify-content: space-between;
    grid-template-areas:
      "form links"
      "bottom bottom";
    gap: 4rem 2rem;
}
  }

.footer .section__item.form-wrap {
  grid-area: form;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.footer .section__subitem.form-inner-wrap {
  width: 100%;
}

@media (min-width: 1200px) {

.footer .section__subitem.form-inner-wrap {
    width: 70%;
}
  }

.footer .section__subitem.heading-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.footer__heading {
  font-size: 1.2em;
  font-weight: 600;
}

.footer .section__item.links-wrap {
  grid-area: links;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.footer .section__subitem.nav-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

@media (min-width: 992px) {

.footer .section__subitem.nav-wrap {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(5, auto);
    justify-content: start;
    grid-gap: 0.5rem 2.5rem;
    gap: 0.5rem 2.5rem;
}
  }

.footer__link {
  font-size: 1em;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem; /* тап-зона ≥24px (a11y target-size) */
}

.footer .section__subitem.social-wrap {
  display: flex;
  gap: 1.5rem;
  align-items: center;
}

.footer .social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  background-color: #fff;
  background-color: var(--color-1);
  border: 0.1rem solid #fff;
  border: 0.1rem solid var(--color-1);
  border-radius: 50%;
  transition: background-color 0.25s all ease-out, border-color 0.25s all ease-out;
  transition: background-color var(--transition-1), border-color var(--transition-1);
}

.footer .social-link:hover {
  background-color: transparent;
}

.footer .social-link .icon-sm {
  width: auto;
  height: 1.6rem;
  max-width: 2.6rem;
  filter: invert(1);
  transition: filter 0.25s all ease-out;
  transition: filter var(--transition-1);
}

.footer .social-link:hover .icon-sm {
  filter: none;
}

.footer .social-link .icon-sm[src*="icon-vk"] {
  height: 1.3rem;
}

.footer__social-channel {
  border-radius: 1rem;
}

.footer .section__item.bottom-wrap {
  grid-area: bottom;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

@media (min-width: 992px) {

.footer .section__item.bottom-wrap {
    display: grid;
    grid-template-columns: 1fr 30%;
    grid-template-areas:
      "disclaimer copyright"
      "owner copyright";
    align-items: center;
    grid-gap: 0.5rem 2rem;
    gap: 0.5rem 2rem;
}
  }

.footer .section__subitem.disclaimer-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

@media (min-width: 992px) {

.footer .section__subitem.disclaimer-wrap {
    grid-area: disclaimer;
    flex-direction: row;
    gap: 2rem;
}
  }

@media (min-width: 992px) {
  .footer .section__subitem.owner-wrap {
    grid-area: owner;
  }

  .footer .section__subitem.copyright-wrap {
    grid-area: copyright;
  }
}

.footer__disclaimer-link {
  font-size: 0.8em;
  padding-top: 0.7rem;
  padding-bottom: 0.7rem; /* тап-зона ≥24px (a11y target-size) */
}

.footer__owner {
  font-size: 0.8em;
  line-height: 1.3;
  margin-bottom: 0.6rem;
  opacity: 0.8;
}

.footer__copyright {
  font-size: 0.8em;
  line-height: 1.2;
}

.footer .form-callback__label {
  color: #fff;
  color: var(--color-1);
}

.footer .form-callback__required {
  color: #EEC479;
  color: var(--color-5);
}

.footer .form-callback__caption {
  color: #D4D2D2;
  color: var(--color-6);
}

.footer .form-callback .form-callback__input {
  color: #fff;
  color: var(--color-1);
  caret-color: #fff;
  caret-color: var(--color-1);
  border-bottom-color: #fff;
  border-bottom-color: var(--color-1);
}

.footer .form-callback .form-callback__input::-moz-placeholder {
  color: #6C6B6B;
  color: var(--color-placeholder);
  opacity: 1;
}

.footer .form-callback .form-callback__input::placeholder {
  color: #6C6B6B;
  color: var(--color-placeholder);
  opacity: 1;
}

.footer .form-callback .form-callback__input:focus {
  border-bottom-color: #fff;
  border-bottom-color: var(--color-1);
}

.footer .form-callback .form-callback__select {
  background-image: url("/data/img/ui/icons/icon-triangle-down-color-1.svg");
}

.footer .form-callback .form-callback__select:invalid {
  color: #6C6B6B;
  color: var(--color-placeholder);
}

.footer .form-callback .form-callback__select option {
  color: #000;
  color: var(--color-2);
  background: #fff;
  background: var(--color-1);
}

.footer .form-callback__custom-checkbox {
  border-bottom-color: #fff;
  border-bottom-color: var(--color-1);
}

.footer .form-callback__custom-checkbox .form-callback__checkmark {
  border-color: #fff;
  border-color: var(--color-1);
}

.footer .form-callback__checkmark::after {
  background: #fff;
  background: var(--color-1);
}

.footer .form-callback__placeholder {
  color: #D4D2D2;
  color: var(--color-6);
}

.footer .form-callback__rules {
  color: #D4D2D2;
  color: var(--color-6);
}
.burger-menu {
  /* Стили для burger-menu */
}

.burger-menu .container {
  /* Стили для контейнера в burger-menu */
}
.contacts {
  background-color: #fff;
  background-color: var(--color-1);
}
/* Справочник контактов: типографская сетка вместо карточек — это список для поиска
   нужной строки глазами, а не витрина. */

.contacts-hub {
  background-color: #fff;
  background-color: var(--color-1);
  color: #000;
  color: var(--color-2);
  padding-top: 0;
  padding-bottom: 8rem;
}

.contacts-hub .section__item + .section__item {
  margin-top: 7.2rem;
}

.contacts-hub__head {
  padding-top: calc(11.2rem + 2.4rem);
  padding-top: calc(var(--header-fixed-height) + 2.4rem);
  border-bottom: 1px solid #e2e0de;
  padding-bottom: 4rem;
}

.contacts-hub__h1 {
  font-family: "TT Norms Pro Expanded", "TT Norms Pro", sans-serif;
  font-family: var(--font-1-extended);
  font-weight: 300;
  font-size: max(4rem, min(9vw, 8rem));
  line-height: 0.95;
  letter-spacing: -0.03em;
  text-wrap: balance;
}

.contacts-hub__lead-copy {
  margin-top: 2.4rem;
  max-width: 58ch;
  font-size: max(1.6rem, min(2vw, 1.9rem));
  line-height: 1.5;
  color: #4a4a4a;
  text-wrap: pretty;
}

.contacts-hub__title,
.contacts-hub__subtitle {
  font-family: "TT Norms Pro Expanded", "TT Norms Pro", sans-serif;
  font-family: var(--font-1-extended);
  font-weight: 300;
  letter-spacing: -0.01em;
  line-height: 1.05;
  text-wrap: balance;
}

.contacts-hub__title {
  font-size: max(2.8rem, min(5vw, 4.4rem));
}

.contacts-hub__subtitle {
  font-size: max(2rem, min(3.4vw, 2.8rem));
  margin-bottom: 3.2rem;
}

/* --- Связь --- */

.contacts-hub__lead {
  display: grid;
  grid-gap: 3.2rem;
  gap: 3.2rem;
}

.contacts-hub__note {
  margin-top: 1.6rem;
  max-width: 52ch;
  font-size: 1.6rem;
  line-height: 1.6;
  color: #4a4a4a;
  text-wrap: pretty;
}

.contacts-hub__email {
  display: inline-block;
  font-family: "TT Norms Pro Expanded", "TT Norms Pro", sans-serif;
  font-family: var(--font-1-extended);
  font-size: max(2rem, min(4vw, 3.2rem));
  font-weight: 400;
  letter-spacing: -0.02em;
  color: #000;
  color: var(--color-2);
  -webkit-text-decoration: none;
  text-decoration: none;
  border-bottom: 1px solid rgba(230, 89, 1, 0.4);
  padding-bottom: 0.4rem;
  transition: color 0.25s all ease-out;
  transition: color var(--transition-1);
}

@supports (color: color-mix(in lch, red, blue)) {
.contacts-hub__email {
  border-bottom: 1px solid color-mix(in srgb, var(--color-3) 40%, transparent);
}
}

.contacts-hub__email:hover,
.contacts-hub__email:focus-visible {
  border-bottom-color: #E65901;
  border-bottom-color: var(--color-3);
}

.contacts-hub__socials {
  display: flex;
  flex-wrap: wrap;
  gap: 2.4rem;
  margin-top: 2.4rem;
}

.contacts-hub__social {
  font-size: 1.5rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #4a4a4a;
  -webkit-text-decoration: none;
  text-decoration: none;
  transition: color 0.25s all ease-out;
  transition: color var(--transition-1);
}

.contacts-hub__social:hover,
.contacts-hub__social:focus-visible {
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-decoration-color: #E65901;
  text-decoration-color: var(--color-3);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.25em;
}

/* --- Направления --- */

.contacts-hub__lines {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid #e2e0de;
}

.contacts-hub__line {
  display: grid;
  grid-template-columns: minmax(18rem, 24rem) 1fr;
  grid-gap: 0.8rem 3.2rem;
  gap: 0.8rem 3.2rem;
  align-items: baseline;
  padding-top: 2rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid #e2e0de;
}

.contacts-hub__line-name {
  font-size: 1.8rem;
  font-weight: 500;
  color: #000;
  color: var(--color-2);
  -webkit-text-decoration: none;
  text-decoration: none;
  transition: color 0.25s all ease-out;
  transition: color var(--transition-1);
}

a.contacts-hub__line-name:hover,
a.contacts-hub__line-name:focus-visible {
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-decoration-color: #E65901;
  text-decoration-color: var(--color-3);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.25em;
}

.contacts-hub__line-desc {
  font-size: 1.5rem;
  line-height: 1.55;
  color: #4a4a4a;
  text-wrap: pretty;
}

/* --- Точки --- */

.contacts-hub__city + .contacts-hub__city {
  margin-top: 4.8rem;
}

.contacts-hub__city-name {
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #E65901;
  color: var(--color-3);
  margin-bottom: 1.6rem;
}

.contacts-hub__points {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid #e2e0de;
}

.contacts-hub__point {
  display: grid;
  grid-template-columns: minmax(16rem, 1.1fr) minmax(18rem, 1.4fr) minmax(14rem, 0.8fr) auto;
  grid-gap: 0.6rem 2.4rem;
  gap: 0.6rem 2.4rem;
  align-items: baseline;
  padding-top: 1.8rem;
  padding-bottom: 1.8rem;
  border-bottom: 1px solid #e2e0de;
}

.contacts-hub__point-name {
  font-size: 1.7rem;
  font-weight: 500;
  color: #000;
  color: var(--color-2);
  -webkit-text-decoration: none;
  text-decoration: none;
  transition: color 0.25s all ease-out;
  transition: color var(--transition-1);
}

.contacts-hub__point-name:hover,
.contacts-hub__point-name:focus-visible {
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-decoration-color: #E65901;
  text-decoration-color: var(--color-3);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.25em;
}

.contacts-hub__point-address {
  font-size: 1.5rem;
  color: #4a4a4a;
}

.contacts-hub__point-phone {
  font-size: 1.5rem;
  color: #000;
  color: var(--color-2);
  -webkit-text-decoration: none;
  text-decoration: none;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  transition: color 0.25s all ease-out;
  transition: color var(--transition-1);
}

a.contacts-hub__point-phone:hover,
a.contacts-hub__point-phone:focus-visible {
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-decoration-color: #E65901;
  text-decoration-color: var(--color-3);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.25em;
}

.contacts-hub__point-map {
  font-size: 1.3rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #4a4a4a;
  -webkit-text-decoration: none;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.25s all ease-out;
  transition: color var(--transition-1);
}

.contacts-hub__point-map:hover,
.contacts-hub__point-map:focus-visible {
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-decoration-color: #E65901;
  text-decoration-color: var(--color-3);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.25em;
}

/* --- Реквизиты --- */

.contacts-hub__legal {
  font-size: 1.3rem;
  line-height: 1.6;
  color: #6a6a6a;
  max-width: 70ch;
}

.contacts-hub__legal p + p {
  margin-top: 0.8rem;
}

/* --- Адаптив --- */

@media (min-width: 768px) {
  .contacts-hub__lead {
    grid-template-columns: 1fr auto;
    align-items: end;
    gap: 4.8rem;
  }
}

@media (max-width: 900px) {
  .contacts-hub__point {
    grid-template-columns: 1fr auto;
    row-gap: 0.4rem;
  }

  .contacts-hub__point-name {
    grid-column: 1 / -1;
  }

  .contacts-hub__point-map {
    justify-self: end;
  }
}

@media (max-width: 600px) {
  .contacts-hub {
    padding-top: 4.8rem;
    padding-bottom: 6.4rem;
  }

  .contacts-hub .section__item + .section__item {
    margin-top: 5.6rem;
  }

  .contacts-hub__line {
    grid-template-columns: 1fr;
    gap: 0.6rem;
  }

  .contacts-hub__point {
    grid-template-columns: 1fr;
  }

  .contacts-hub__point-map {
    justify-self: start;
  }
}
.content {
  background-color: #fff;
  background-color: var(--color-1);
}

.content .container {
  /* Стили для контейнера в content */
}
.cookie-panel {
  position: fixed;
  bottom: 1rem;
  left: 0;
  right: 0;
  z-index: 980;
  z-index: var(--z-index-3);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.cookie-panel.hidden {
  display: none;
}

.cookie-panel.opening {
  opacity: 0;
  transform: translateY(100%);
}

.cookie-panel .section__item {
  padding: 2rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 1rem;
  background-color: #fff;
  background-color: var(--color-1);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
  border-radius: 2rem;
  margin: 0 1rem;
}

@media (min-width: 992px) {

.cookie-panel .section__item {
    padding: 3rem;
    flex-direction: row;
    align-items: center;
    margin: 0 2rem;
}
  }

.cookie-panel .desc-wrap {
  flex: 1;
}

.cookie-panel .desc {
  font-size: 1.4rem;
  line-height: 1.5;
  color: #000;
  color: var(--color-2);
}

.cookie-panel .button-wrap {
  flex-shrink: 0;
}

/* Тот же размер текста, что у кнопок шапки (.header .actions-wrap .button) —
   без override кнопка получала базовый 1em и выглядела крупнее остальных */
.cookie-panel .button {
  font-size: 0.85em;
}

/* Адаптация для мобильных устройств */
@media (max-width: 768px) {
  .cookie-panel {
    bottom: 0;
    left: 0;
    right: 0;
  }
  
  .cookie-panel .section__item {
    margin: 0;
    border-radius: 0;
    border-top-left-radius: 2rem;
    border-top-right-radius: 2rem;
  }
}
.intro {
  margin-top: -11.2rem;
}
@media (min-width: 1200px) {
.intro {
    margin-top: -12rem;
}
  }

.intro .swiper-container {
  width: 100%;
  height: 68.4rem;
  padding-bottom: 0;
  color: #fff;
  color: var(--color-1);
}

@media (min-width: 1200px) {

.intro .swiper-container {
    height: 83rem;
}
  }

.intro .section__item.slide-wrap.swiper-slide {
  position: relative;
  width: 100%;
  height: 100%;
  transition-property: opacity;
}

.intro .section__subitem.cover-wrap {
  position: relative;
  width: 100%;
  height: 100%;
}

.intro .section__subitem.cover-wrap::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: hsla(0, 0%, 0%, 0.2);
  z-index: 1;
}

.intro .cover {
  width: 100%;
  height: 100%;
  background-color: transparent;
  background-color: var(--bg-color, transparent);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.intro .section__item.logo-heading-wrap {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.intro .logo-heading-wrap .container {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  height: 100%;
  text-align: left;
  pointer-events: auto;
}

@media (min-width: 1200px) {

.intro .logo-heading-wrap .container {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    gap: 4rem;
}
  }

.intro .section__subitem.logo-wrap {
  width: 25rem;
  flex-shrink: 0;
}

@media (min-width: 1200px) {

.intro .section__subitem.logo-wrap {
    width: 42.5rem;
}
  }

@media (min-width: 1200px) {

.intro .section__subitem.empty-wrap {
    display: none;
}
  }

.intro .section__subitem.heading-wrap {
  padding-bottom: 4rem;
}

@media (min-width: 1200px) {

.intro .section__subitem.heading-wrap {
    padding-bottom: 0;
}
  }

.intro .section__subitem.logo-wrap img {
}

.intro .heading {
  font-size: 1.1em;

  /* На телефонах — текучий размер (vw), чтобы длинный заголовок интро ложился
     в 2 полные строки на ЛЮБОЙ ширине мобильного (ёмкость строки ~постоянна). */
}

@media (max-width: 539px) {

.intro .heading {
    font-size: max(1.05rem, min(3.4vw, 1.8rem));
}
  }

@media (min-width: 1200px) {

.intro .heading {
    font-size: 1.3em;
}
  }

.intro .swiper-pagination {
  z-index: 3;
  bottom: 2rem;
}

.intro .swiper-button-next,
.intro .swiper-button-prev {
  z-index: 3;

  --swiper-navigation-color: var(--color-1);

  opacity: 0;
  transition: opacity 0.25s ease-out;
}

.intro:hover .swiper-button-next,
.intro:hover .swiper-button-prev {
  opacity: 0.5;
}

.intro:hover .swiper-button-next:hover,
.intro:hover .swiper-button-prev:hover {
  opacity: 1;
}

/* Переопределение цвета буллетов Swiper под фон секции */
.intro .swiper-pagination-bullet {
  background: #fff !important;
  background: var(--color-1) !important;
}

/* Логотип в интро — цветная версия из шапки: круг и фигурка отдельными элементами,
   поэтому при наведении их можно перекрасить, а не показывать сквозь вырез фон. */
.intro__logo {
  display: block;
  width: 100%;
  height: auto;
}

.intro__logo .logo-mark,
.intro__logo .logo-figure {
  transition: fill 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Покой: белый круг, тёмная фигурка */
.intro__logo .logo-mark {
  fill: #fff;
}

.intro__logo .logo-figure {
  fill: #151515;
  fill: var(--color-7);
}

/* Наведение: как в шапке — фирменный красный с белой фигуркой */
.intro:hover .intro__logo .logo-mark,
.intro:focus-within .intro__logo .logo-mark {
  fill: #c72229;
}

.intro:hover .intro__logo .logo-figure,
.intro:focus-within .intro__logo .logo-figure {
  fill: #fff;
}

@media (prefers-reduced-motion: reduce) {
  .intro__logo .logo-mark,
  .intro__logo .logo-figure {
    transition-duration: 0.01ms;
  }
}
.headline {
  padding-top: 4rem;
  padding-bottom: 4rem;
  background-color: #fff;
  background-color: var(--color-1);
}
@media (min-width: 1200px) {
.headline {
    padding-top: 6rem;
    padding-bottom: 6rem;
}
  }

.headline .section__item.heading-wrap {
  --mouse-x: -100px;
  --mouse-y: -100px;
  --spotlight-radius: 6rem;

  background: radial-gradient(
    circle 6rem at -100px -100px,
    #E24E2A 0%,
    #E24E2A 40%,
    #000 100%
  );

  background: radial-gradient(
    circle var(--spotlight-radius) at var(--mouse-x) var(--mouse-y),
    var(--color-4) 0%,
    var(--color-4) 40%,
    var(--color-2) 100%
  );
  -webkit-background-clip: text;
          background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  cursor: default;
}

@media (min-width: 1200px) {

.headline .section__item.heading-wrap {
    --spotlight-radius: 9rem;
}
  }

.headline .title {
  font-size: 1.4em;
  line-height: 1.2;
}

@media (min-width: 1200px) {

.headline .title {
    font-size: 2.5em;
}
  }
.owners {
  position: relative;
  z-index: 1;
  color: #fff;
  color: var(--color-1);
}

.owners .section__item.block-wrap {
  padding: 2rem 1rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  gap: 2rem;
  background: #000;
  background: var(--color-2);
  border-radius: 2rem;
}

@media (min-width: 1200px) {

.owners .section__item.block-wrap {
    padding: 4rem;
    flex-direction: row;
    align-items: center;
    gap: 4rem;
}
  }

@media (min-width: 1200px) {

.owners .section__subitem.heading-wrap {
    flex: 0 0 40%;
    max-width: 40%;
    text-align: center;
}
  }

.owners .heading {
  font-size: 1.4em;
}

@media (min-width: 1200px) {

.owners .heading {
    font-size: 2.5em;
}
  }

.owners .section__subitem.cards-owner-wrap {
  width: 100%;
  display: flex;
  justify-content: space-around;
  align-items: flex-start;
  flex-wrap: nowrap;
}

@media (min-width: 1200px) {

.owners .section__subitem.cards-owner-wrap {
    flex: 1;
    justify-content: space-around;
}
  }

.owners .section__inner.card-owner-wrap {
  width: 50%;
}

@media (min-width: 1200px) {

.owners .section__inner.card-owner-wrap {
    width: auto;
}
  }

.owners .section__inner.card-owner-wrap {
}
.us {
  position: relative;
  overflow-x: clip;
  display: flex;
  flex-direction: column;
  gap: 6rem;
  background-color: #fff;
  background-color: var(--color-1);
}
@media (min-width: 1200px) {
.us {
    gap: 20rem;
}
  }

.us .section__item.bg-wrap {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  pointer-events: none;
  z-index: 0;
  overflow: visible;
}

.us .section__subitem.bg-top,
.us .section__subitem.bg-bottom {
  position: absolute;
  will-change: transform;
  transition: transform 0.1s linear;
}

.us .section__subitem.bg-top {
  z-index: 2;
  width: 65rem;
  height: 65rem;
  top: -13rem;
  right: -5rem;
}

@media (min-width: 1200px) {

.us .section__subitem.bg-top {
    width: 126rem;
    height: 126rem;
    top: -45rem;
    right: -10rem;
}
  }

.us .section__subitem.bg-bottom {
  z-index: 1;
  width: 55rem;
  height: 55rem;
  top: 20rem;
  left: -18rem;
}

@media (min-width: 1200px) {

.us .section__subitem.bg-bottom {
    width: 151rem;
    height: 151rem;
    bottom: -51rem;
    left: 3rem;
}
  }

.us .section__subitem.bg-top img,
.us .section__subitem.bg-bottom img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.us .container {
  position: relative;
  z-index: 1;
}

.us .section__item.visual-wrap {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
}

@media (min-width: 1200px) {

.us .section__item.visual-wrap {
    display: block;
    height: 65rem;
}
  }

.us .section__subitem.cover-wrap {
  width: 100%;
  aspect-ratio: 1;
  border-radius: 50%;
  overflow: hidden;
}

@media (min-width: 1200px) {

.us .section__subitem.cover-wrap {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 65rem;
    height: 65rem;
    aspect-ratio: auto;
    transition: transform 0.35s ease-out;
    will-change: transform;
}
  }

.us .section__subitem.cover-wrap img,
.us .section__subitem.cover-wrap video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.us .section__subitem.card-text-wrap {
  background-color: #000;
  background-color: var(--color-2);
  color: #fff;
  color: var(--color-1);
  padding: 2rem;
  border-radius: 1.5rem;
  text-align: center;
}

@media (min-width: 1200px) {

.us .section__subitem.card-text-wrap {
    position: absolute;
    width: 40rem;
    padding: 2.5rem 3rem;
    border-radius: 2rem;
    z-index: 1;
    transition: transform 0.35s ease-out;
    will-change: transform;
}
  }

@media (min-width: 1200px) {

.us .section__subitem.card-text-1 {
    top: 5rem;
    left: 0;
}
  }

@media (min-width: 1200px) {

.us .section__subitem.card-text-2 {
    bottom: 5rem;
    right: 0;
}
  }

.us .card-text {
  font-size: 1.1em;
  font-weight: 300;
  line-height: 1.3;
}

@media (min-width: 1200px) {

.us .card-text {
    font-size: 1.4em;
}
  }

.us .section__item.cards-number-wrap {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 5rem;
}

@media (min-width: 1200px) {

.us .section__item.cards-number-wrap {
    flex-direction: row;
    justify-content: space-between;
}
  }
.navigation {
  background-color: #fff;
  background-color: var(--color-1);
}

.navigation .section__item.items-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 1.6rem;
}

@media (min-width: 1200px) {

.navigation .section__item.items-wrap {
    gap: 2rem;
}
  }

.navigation .section__subitem.item-wrap.size-half {
  width: 100%;
}

@media (min-width: 1200px) {

.navigation .section__subitem.item-wrap.size-half {
    width: calc(50% - 1rem);
}
  }

.navigation .section__subitem.item-wrap.size-third {
  width: 100%;
}

@media (min-width: 1200px) {

.navigation .section__subitem.item-wrap.size-third {
    width: calc(33.333% - 1.334rem);
}
  }

.navigation .section__subitem.item-wrap.size-full {
  width: 100%;
}

.navigation .section__subitem.item-wrap.size-half .card-nav {
  height: 15rem;
}

@media (min-width: 1200px) {

.navigation .section__subitem.item-wrap.size-half .card-nav {
    height: 26rem;
}
  }

.navigation .section__subitem.item-wrap.size-third .card-nav {
  height: 15rem;
}

@media (min-width: 1200px) {

.navigation .section__subitem.item-wrap.size-third .card-nav {
    height: 22rem;
}
  }

.navigation .section__subitem.item-wrap.size-full .card-nav {
  height: 15rem;
}

@media (min-width: 1200px) {

.navigation .section__subitem.item-wrap.size-full .card-nav {
    height: 46rem;
}
  }

.navigation .section__subitem.item-wrap .card-gradient {
  height: 15rem;
}

.navigation .section__subitem.item-wrap:has(.card-slider) {
  margin-top: 1.6rem;
}

@media (min-width: 1200px) {

.navigation .section__subitem.item-wrap:has(.card-slider) {
    margin-top: 0;
}
  }

.navigation .card-slider {
  width: 100%;
  height: 24rem;
  border-radius: 2rem;
  overflow: hidden;
}

@media (min-width: 768px) {

.navigation .card-slider {
    height: 50rem;
}
  }

@media (min-width: 1200px) {

.navigation .card-slider {
    height: 50rem;
    border-radius: 4rem;
}
  }

/* lottery.png (4080×1380): пропорции как у картинки; без padding-bottom слайдера — иначе cover режет низ */
.navigation [id="lotterySlider"].card-slider {
  padding-bottom: 0;
}
@media (min-width: 768px) {
.navigation [id="lotterySlider"].card-slider {
    height: auto;
    aspect-ratio: 4080 / 1380;
}
  }

/* Компенсация из components/slider.css (margin-top -2rem) рассчитана на padding-bottom — не нужна */
.navigation [id="lotterySlider"].card-slider .swiper-button-next,
.navigation [id="lotterySlider"].card-slider .swiper-button-prev {
  margin-top: 0 !important;
}

/* Цепочка высоты под Swiper (локальный slider.css не задаёт slide height) */
.navigation [id="lotterySlider"] .swiper-wrapper,
.navigation [id="lotterySlider"] .swiper-slide {
  height: 100%;
}

.navigation .card-slider .swiper-slide {
  width: 100%;
  height: 100%;
}

.navigation .card-slider__link {
  display: block;
  width: 100%;
  height: 100%;
}

.navigation .card-slider__cover {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* lotterySlider: заполнение как у остальных карточек (cover), без обрезки за счёт aspect-ratio */
.navigation [id="lotterySlider"] .card-slider__cover {
  background-size: cover;
  background-position: center;
}

.navigation .card-slider .swiper-pagination {
  z-index: 3;
  bottom: 1rem;
}

.navigation .card-slider .swiper-pagination-bullet {
  background: #fff !important;
  background: var(--color-1) !important;
}

.navigation .card-slider .swiper-button-next,
.navigation .card-slider .swiper-button-prev {
  z-index: 3;

  --swiper-navigation-color: var(--color-1);

  opacity: 0;
  transition: opacity 0.25s ease-out;
}

.navigation .card-slider:hover .swiper-button-next,
.navigation .card-slider:hover .swiper-button-prev {
  opacity: 0.5;
}

.navigation .card-slider:hover .swiper-button-next:hover,
.navigation .card-slider:hover .swiper-button-prev:hover {
  opacity: 1;
}

/* 4.8rem только до и после ряда кнопок: к row-gap/column-gap сетки добавляем недостающее */
.navigation .section__subitem.item-wrap:has(.buttons-wrap) {
  margin-top: calc(4.8rem - 1.6rem);
  margin-bottom: calc(4.8rem - 1.6rem);
}
@media (min-width: 1200px) {
.navigation .section__subitem.item-wrap:has(.buttons-wrap) {
    margin-top: calc(4.8rem - 2rem);
    margin-bottom: calc(4.8rem - 2rem);
}
  }

.navigation .buttons-wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 0.8rem;
}

@media (min-width: 1200px) {

.navigation .buttons-wrap {
    gap: 2rem;
}
  }

.navigation .buttons-wrap .button-section {
  width: calc(50% - 0.4rem);
}

@media (min-width: 1200px) {

.navigation .buttons-wrap .button-section {
    width: calc(33.333% - 1.334rem);
}
  }

/* Плавное затемнение карточек при нажатии */
.navigation .card-nav {
  transition: filter 0.6s ease-out;
}

.navigation .card-gradient {
  transition: all 0.25s ease-out, filter 0.6s ease-out;
}

.navigation .card-nav:active,
.navigation .card-gradient:active {
  filter: brightness(0.9);
}
.restaurants {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 2rem;
  background-color: #fff;
  background-color: var(--color-1);
}
@media (min-width: 1200px) {
.restaurants {
    gap: 6rem;
}
  }

.restaurants .section__item.heading-wrap {
}

.restaurants .heading {
  font-size: 2em;
}

@media (min-width: 1200px) {

.restaurants .heading {
    font-size: 3.2em;
}
  }

.restaurants .section__item.tags-wrap {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 1rem;
  overflow-x: scroll;
}

@media (min-width: 1200px) {

.restaurants .section__item.tags-wrap {
    margin-top: -4rem;
    overflow-x: visible;
    overflow-x: initial;
}
  }

.restaurants .section__item.cards-restaurant-wrap {
  display: grid;
  grid-template-columns: 1fr;
  grid-row-gap: 4rem;
  row-gap: 4rem;
}

@media (min-width: 768px) {

.restaurants .section__item.cards-restaurant-wrap {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
}
  }

@media (min-width: 1200px) {

.restaurants .section__item.cards-restaurant-wrap {
    grid-template-columns: repeat(3, 1fr);
    gap: 4rem 2rem;
}
  }

.restaurants .section__subitem.card-restaurant-wrap {
  min-width: 0;
}

.restaurants .section__subitem.card-restaurant-wrap .card-restaurant {
  min-width: 0;
  height: 26rem;
}

@media (min-width: 1200px) {

.restaurants .section__subitem.card-restaurant-wrap .card-restaurant {
    height: 30rem;
}
  }
/* Соседи по городу на карточке ресторана: список-навигация, не витрина —
   гость уже внутри бренда, ему нужен быстрый переход, а не второй ряд обложек. */

.restaurant-nearby {
  /* Карточка ресторана — тёмная страница: цвет задаём явно, иначе текст наследует чёрный */
  color: #fff;
  color: var(--color-1);
  padding-top: 6.4rem;
  padding-bottom: 6.4rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.restaurant-nearby__heading {
  font-family: "TT Norms Pro Expanded", "TT Norms Pro", sans-serif;
  font-family: var(--font-1-extended);
  font-weight: 300;
  font-size: max(1.8rem, min(3vw, 2.6rem));
  letter-spacing: -0.01em;
  margin-bottom: 3.2rem;
}

.restaurant-nearby__list {
  list-style: none;
  margin: 0 0 3.2rem;
  padding: 0;
  display: grid;
  grid-gap: 0;
  gap: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.restaurant-nearby__item {
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.restaurant-nearby__link {
  display: grid;
  grid-template-columns: minmax(16rem, 22rem) 1fr;
  grid-gap: 0.4rem 3.2rem;
  gap: 0.4rem 3.2rem;
  align-items: baseline;
  padding-top: 1.8rem;
  padding-bottom: 1.8rem;
  -webkit-text-decoration: none;
  text-decoration: none;
  color: inherit;
  transition: text-decoration-color 0.25s all ease-out;
  transition: text-decoration-color var(--transition-1);
}

/* Подчёркиваем только название: строка целиком, вместе с описанием, читается как помарка. */
.restaurant-nearby__link:hover .restaurant-nearby__name,
.restaurant-nearby__link:focus-visible .restaurant-nearby__name {
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-decoration-color: #E65901;
  text-decoration-color: var(--color-3);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.25em;
}

.restaurant-nearby__name {
  font-size: 1.7rem;
  font-weight: 500;
}

.restaurant-nearby__desc {
  font-size: 1.5rem;
  line-height: 1.5;
  opacity: 0.7;
  text-wrap: pretty;
}

.restaurant-nearby__all {
  display: inline-block;
  font-size: 1.3rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  -webkit-text-decoration: none;
  text-decoration: none;
  color: inherit;
  border-bottom: 1px solid rgba(230, 89, 1, 0.4);
  padding-bottom: 0.4rem;
  transition: color 0.25s all ease-out;
  transition: color var(--transition-1);
}

@supports (color: color-mix(in lch, red, blue)) {
.restaurant-nearby__all {
  border-bottom: 1px solid color-mix(in srgb, var(--color-3) 40%, transparent);
}
}

.restaurant-nearby__all:hover,
.restaurant-nearby__all:focus-visible {
  border-bottom-color: #E65901;
  border-bottom-color: var(--color-3);
}

@media (max-width: 600px) {
  .restaurant-nearby {
    padding-top: 4.8rem;
    padding-bottom: 4.8rem;
  }

  .restaurant-nearby__link {
    grid-template-columns: 1fr;
  }
}
/* Рассказ о ресторане и вопросы гостей стоят рядом, поэтому оформлены по-разному:
   рассказ — разворотом с подзаголовком на полях, вопросы — плотным списком в колонку.
   Раньше оба выглядели как «заголовок и абзац» и сливались в одну простыню. */

.restaurant-story {
  color: #fff;
  color: var(--color-1);
}

.restaurant-story__block + .restaurant-story__block {
  margin-top: 3.2rem;
}

@media (min-width: 992px) {

.restaurant-story__block {
    display: grid;
    grid-template-columns: minmax(18rem, 24%) 1fr;
    grid-gap: 0 4rem;
    gap: 0 4rem;
    align-items: start;
}
  }

.restaurant-story__heading {
  font-family: "TT Norms Pro Expanded", "TT Norms Pro", sans-serif;
  font-family: var(--font-1-extended);
  font-weight: 300;
  font-size: max(1.9rem, min(2.6vw, 2.2rem));
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin-bottom: 1.2rem;

  /* Фирменный цвет подзаголовка — то, чем рассказ отличается от вопросов на любом экране. */
  color: #E65901;
  color: var(--color-3);
  text-wrap: balance;
}

@media (min-width: 992px) {

.restaurant-story__heading {
    position: sticky;
    top: 12rem;
    margin-bottom: 0;
}
  }

.restaurant-story__text {
  max-width: 68ch;
  font-size: 1.7rem;
  line-height: 1.7;
  text-wrap: pretty;
}

.restaurant-story__text + .restaurant-story__text {
  margin-top: 1.4rem;
}

/* --- Вопросы: сухой список, а не продолжение рассказа --- */

.restaurant-faq {
  color: #fff;
  color: var(--color-1);
  max-width: 68ch;
}

.restaurant-faq__heading {
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.55;
  margin-bottom: 1.6rem;
}

.restaurant-faq__list {
  margin: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.restaurant-faq__item {
  padding-top: 1.6rem;
  padding-bottom: 1.6rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.restaurant-faq__q {
  font-size: 1.5rem;
  font-weight: 500;
  margin-bottom: 0.6rem;
}

.restaurant-faq__a {
  margin: 0;
  font-size: 1.45rem;
  line-height: 1.55;
  opacity: 0.7;
  text-wrap: pretty;
}
/* Рассказ о группе на главной. Две колонки на широком экране: текст читается блоками,
   а не одной простынёй во всю ширину. */

.group-story {
  /* Фон задаём явно: секция стоит между светлыми блоками главной,
     без него белый текст ложится на белое. */
  background-color: #151515;
  background-color: var(--color-7);
  color: #fff;
  color: var(--color-1);
  padding-top: 8rem;
  padding-bottom: 8rem;
}

.group-story__title {
  font-family: "TT Norms Pro Expanded", "TT Norms Pro", sans-serif;
  font-family: var(--font-1-extended);
  font-weight: 300;
  font-size: max(2.4rem, min(4.5vw, 4rem));
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin-bottom: 4.8rem;
  max-width: 24ch;
  text-wrap: balance;
}

.group-story__grid {
  display: grid;
  grid-gap: 4rem 6.4rem;
  gap: 4rem 6.4rem;
}

.group-story__heading {
  font-size: max(1.7rem, min(2.2vw, 2rem));
  font-weight: 500;
  line-height: 1.2;
  margin-bottom: 1.4rem;
  text-wrap: balance;
}

.group-story__text {
  font-size: 1.6rem;
  line-height: 1.65;
  opacity: 0.82;
  max-width: 62ch;
  text-wrap: pretty;
}

.group-story__text + .group-story__text {
  margin-top: 1.2rem;
}

/* Ссылки внутри текста: наследуют цвет, а не уходят в браузерный синий на тёмном фоне */
.group-story__text a {
  color: inherit;
  -webkit-text-decoration: none;
  text-decoration: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.35);
  transition: color 0.25s all ease-out, border-color 0.25s all ease-out;
  transition: color var(--transition-1), border-color var(--transition-1);
}

.group-story__text a:hover,
.group-story__text a:focus-visible {
  border-bottom-color: #E65901;
  border-bottom-color: var(--color-3);
}

.group-story__links {
  display: flex;
  flex-wrap: wrap;
  gap: 2.4rem 3.2rem;
  margin-top: 4.8rem;
  padding-top: 3.2rem;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.group-story__link {
  font-size: 1.4rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: inherit;
  -webkit-text-decoration: none;
  text-decoration: none;
  padding-bottom: 0.4rem;
  border-bottom: 1px solid transparent;
  transition: color 0.25s all ease-out, border-color 0.25s all ease-out;
  transition: color var(--transition-1), border-color var(--transition-1);
}

.group-story__link:hover,
.group-story__link:focus-visible {
  border-bottom-color: #E65901;
  border-bottom-color: var(--color-3);
}

@media (min-width: 900px) {
  .group-story__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .group-story {
    padding-top: 5.6rem;
    padding-bottom: 5.6rem;
  }

  .group-story__title {
    margin-bottom: 3.2rem;
  }
}
/* Блок вопросов и ответов. Две темы: тёмная по умолчанию и светлая для страниц на белом. */

.faq-block {
  background-color: #151515;
  background-color: var(--color-7);
  color: #fff;
  color: var(--color-1);
  padding-top: 7.2rem;
  padding-bottom: 7.2rem;
}

.faq-block--light {
  background-color: #fff;
  background-color: var(--color-1);
  color: #000;
  color: var(--color-2);
}

.faq-block__title {
  font-family: "TT Norms Pro Expanded", "TT Norms Pro", sans-serif;
  font-family: var(--font-1-extended);
  font-weight: 300;
  font-size: max(2.2rem, min(4vw, 3.2rem));
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin-bottom: 3.6rem;
}

.faq-block__list {
  margin: 0;
  max-width: 78ch;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.faq-block--light .faq-block__list {
  border-top-color: #e2e0de;
}

.faq-block__item {
  padding-top: 2.2rem;
  padding-bottom: 2.2rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

.faq-block--light .faq-block__item {
  border-bottom-color: #e2e0de;
}

.faq-block__q {
  font-size: 1.7rem;
  font-weight: 500;
  line-height: 1.3;
  margin-bottom: 0.9rem;
  text-wrap: balance;
}

.faq-block__a {
  margin: 0;
  font-size: 1.55rem;
  line-height: 1.65;
  opacity: 0.82;
  text-wrap: pretty;
}

.faq-block--light .faq-block__a {
  opacity: 1;
  color: #4a4a4a;
}

@media (max-width: 600px) {
  .faq-block {
    padding-top: 5.6rem;
    padding-bottom: 5.6rem;
  }
}
/* ============================================
   Section: events (афиша)
   ============================================ */

.events {
  background: #000;
  background: var(--color-2);
  color: #fff;
  color: var(--color-1);
}

.events .heading-wrap {
  text-align: center;
}

.events .heading {
  font-size: 2em;
}

@media (min-width: 1200px) {

.events .heading {
    font-size: 3.2em;
}
  }

/* Страница афиши тёмная целиком — без белых уголков за скруглением футера */
#page-content:has(.events) {
  background: #000;
  background: var(--color-2);
}

.events__lead-wrap {
  max-width: 68rem;
  margin: 1.6rem auto 0;
  text-align: center;
}

.events__lead {
  font-size: 1.7rem;
  line-height: 1.6;
  color: #D4D2D2;
  color: var(--color-6);
}

.events__grid {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 2.4rem;
  gap: 2.4rem;
  margin-top: 4rem;
}

@media (min-width: 540px) {

.events__grid {
    grid-template-columns: repeat(2, 1fr);
}
  }

@media (min-width: 992px) {

.events__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 3rem;
}
  }

.events__cell {
  display: flex;
}

.events__empty {
  margin-top: 3rem;
  text-align: center;
  font-size: 1.7rem;
  color: #D4D2D2;
  color: var(--color-6);
}

/* Components */
.analytics {
  /* Стили для analytics */
}

.analytics .container {
  /* Стили для контейнера в analytics */
}
blockquote {
  width: 100%;
  margin-top: 0;
  margin-bottom: 0;
  margin-left: 0;
  margin-right: 0;
}

.blockquote-border {
  padding: 2rem 0;
  border-top: 1px solid #D4D2D2;
  border-top: 1px solid var(--color-6);
  border-bottom: 1px solid #D4D2D2;
  border-bottom: 1px solid var(--color-6);
}

.blockquote-sm {
  font-size: 1.2em;
  line-height: 1.3;
}

.blockquote-md {
  font-size: 1.8em;
  line-height: 1.3;
}

.blockquote-lg {
  font-size: 2.4em;
  line-height: 1.3;
}
.burger-icon {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  flex-shrink: 0;
  z-index: 970;
  z-index: var(--z-index-4);
  border: none;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  background: none;
}

.burger-icon__container {
  position: relative;
  flex-shrink: 0;
  width: 2.4rem;
  height: 1.6rem;
}

.burger-icon__item {
  position: absolute;
  left: 0;
  width: 100%;
  height: 0.2rem;
  background-color: #fff;
  background-color: var(--color-1);
  transition: 0.2s ease-out;
  transition-property: top, transform, opacity;
}

.burger-icon__item:nth-child(1) {
  top: 0;
}

.burger-icon__item:nth-child(2) {
  top: 50%;
  transform: translateY(-50%);
}

.burger-icon__item:nth-child(3) {
  top: 100%;
  transform: translateY(-100%);
}

.burger-icon.active .burger-icon__item:nth-child(1) {
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
}

.burger-icon.active .burger-icon__item:nth-child(2) {
  opacity: 0;
}

.burger-icon.active .burger-icon__item:nth-child(3) {
  top: 50%;
  transform: translateY(-50%) rotate(-45deg);
}
.burger-menu {
  display: none;
  position: fixed;
  top: 0;
  right: 0;
  width: 100%;
  height: 100dvh;
  overflow-y: auto;
  background-color: #000;
  background-color: var(--color-2);
  color: #fff;
  color: var(--color-1);
  z-index: 960;
  z-index: var(--z-index-5);
}
@media (min-width: 768px) {
.burger-menu {
    width: 39rem;
}
  }

.burger-menu.active {
  display: block;
}

.burger-menu .container {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 2.13rem;
  padding: 9.5rem 2.6rem 3rem;
  background-color: transparent;
}

@media (min-width: 1200px) {

.burger-menu .container {
    padding-top: 12.8rem;
}
  }

.burger-menu__item {
  width: 100%;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  padding: 0;
  font-size: 2.33rem;
  font-weight: 400;
  line-height: 1;
  color: #fff;
  color: var(--color-1);
  border: 0;
}

.burger-menu__title {
  color: #fff;
  color: var(--color-1);
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}

.burger-menu__item:hover .burger-menu__title,
.burger-menu__item:focus-visible .burger-menu__title {
  opacity: 0.7;
}
.button {
  /* Стили для button */
}

.button .container {
  /* Стили для контейнера в button */
}
.cover {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 1;
}

.cover__image {
  width: 100%;
  max-width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
  transition: all 0.3s ease;
}

.cover:hover img {
  transform: scale(1.025);
}

.cover__icon-wrap {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 6rem;
  height: 6rem;
  padding: 1.75rem;
  transform: translate(-50%, -50%);
  border: 0.1rem solid #fff;
  border: 0.1rem solid var(--color-1);
  border-radius: 50%;
  z-index: 2;
  transition: all 0.3s ease;
}

.cover:hover .cover__icon-wrap {
  opacity: 0.9;
}
.custom-checkbox {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
}

.custom-checkbox__input {
  display: none;
}

.custom-checkbox__box {
  width: 2rem;
  height: 2rem;
  border: 0.1rem solid #fff;
  border: 0.1rem solid var(--color-1);
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 8px;
  transition: border-color 0.3s ease;
  position: relative;
}

.custom-checkbox__box:hover {
  border-color: #888;
  border-color: var(--color-border);
}

.custom-checkbox__icon {
  width: 1.5rem;
  height: 1.5rem;
  fill: none;
  stroke: #fff;
  stroke: var(--color-1);
  stroke-width: 0.2rem;
  visibility: hidden;
}

.custom-checkbox__input:checked+.custom-checkbox__box {
  background-color: #E24E2A;
  background-color: var(--color-4);
  border-color: #E24E2A;
  border-color: var(--color-4);
}

.custom-checkbox__input:checked+.custom-checkbox__box .custom-checkbox__icon {
  visibility: visible;
  transform: scale(1);
}
.custom-list {}

.custom-list {
  margin: 0;
  margin-left: 1.5rem;
  padding: 0;
  font-size: 1em;
}

@media (min-width: 1200px) {

.custom-list {
    font-size: 0.9em;
}
  }

.custom-list__item {
  padding-top: 0.5rem;
}
.features-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.features-list__item {
  padding: 1rem 0;
  font-size: 0.8em;
  color: #EEC479;
  color: var(--color-5);
  border-bottom: 1px solid #EEC479;
  border-bottom: 1px solid var(--color-5);
}

@media (min-width: 1200px) {

.features-list__item {
    padding: 1.25rem 0;
}
  }
/* ==========================================================================
   form-callback — современная форма обратной связи
   Floating labels, анимации, единообразные поля, drag-and-drop зона файлов
   Базовый размер: 1rem = 10px
   ========================================================================== */

.form-callback__trap {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.form-callback {
  --fc-radius: 0.4rem;
  --fc-border: 1px solid rgba(0, 0, 0, 0.06);
  --fc-border-error: 1px solid var(--color-error);
  --fc-bg: rgba(0, 0, 0, 0.02);
  --fc-bg-hover: rgba(0, 0, 0, 0.04);
  --fc-font: var(--font-1);
  --fc-text: var(--color-2);
  --fc-label: var(--color-5);
  /* Состояния вынесены в переменные: площадка с тёмной темой не может переопределить
     жёстко прописанный цвет, и у неё метка светилась жёлтым, а галочка терялась. */
  --fc-label-active: var(--color-5);
  --fc-border-hover: rgba(0, 0, 0, 0.15);
  --fc-checked-bg: var(--color-6);
  --fc-checked-border: var(--color-6);
  --fc-checked-mark: var(--color-1);
  --fc-accent: var(--color-5);
  --fc-muted: var(--color-6);
  --fc-focus-ring: var(--color-5);
  --fc-speed: 0.2s;
  --fc-ease: cubic-bezier(0.4, 0, 0.2, 1);
  --fc-height: 5.6rem;
  --fc-gap: 2rem;
  --fc-font-size: 1.6rem;
  --fc-font-size-sm: 1.3rem;
  --fc-font-size-xs: 1.2rem;
  --fc-success: #2e7d32;
  --fc-success-bg: #e8f5e9;

  width: 100%;
  position: relative;
}

/* ==========================================================================
   Grid
   ========================================================================== */

.form-callback__grid {
  display: grid;
  grid-gap: var(--fc-gap);
  gap: var(--fc-gap);
  grid-template-columns: 1fr;
  transition: opacity 0.4s var(--fc-ease), filter 0.4s var(--fc-ease);
}

@media (min-width: 768px) {

.form-callback__grid {
    grid-template-columns: repeat(2, 1fr);
}
  }

/* Grid dimmed during loading */
.form-callback.is-loading .form-callback__grid {
  opacity: 0.5;
  filter: grayscale(0.3);
  pointer-events: none;
}

/* ==========================================================================
   Success overlay — появляется поверх формы после отправки
   ========================================================================== */

.form-callback__success {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2rem;
  border-radius: var(--fc-radius);
  opacity: 0;
  visibility: hidden;
  transform: scale(0.95);
  transition:
    opacity 0.5s var(--fc-ease), visibility 0.5s var(--fc-ease), transform 0.5s var(--fc-ease);
  z-index: 10;
}

.form-callback.is-success .form-callback__success {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
}

.form-callback.is-success .form-callback__grid {
  opacity: 0;
  pointer-events: none;
}

.form-callback__success-icon {
  width: 6.4rem;
  height: 6.4rem;
  border-radius: 50%;
  background: var(--fc-success-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  animation: fcSuccessPop 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

.form-callback__success-icon svg {
  width: 3.2rem;
  height: 3.2rem;
  color: var(--fc-success);
}

.form-callback__success-icon svg path {
  stroke-dasharray: 30;
  stroke-dashoffset: 30;
  animation: fcCheckDraw 0.5s 0.3s var(--fc-ease) forwards;
}

.form-callback__success-title {
  font-family: var(--fc-font);
  font-size: 2rem;
  font-weight: 600;
  color: var(--fc-text);
  opacity: 0;
  transform: translateY(1rem);
  animation: fcFadeUp 0.4s 0.4s var(--fc-ease) forwards;
}

.form-callback__success-text {
  font-family: var(--fc-font);
  font-size: 1.5rem;
  color: var(--fc-label);
  opacity: 0;
  transform: translateY(1rem);
  animation: fcFadeUp 0.4s 0.55s var(--fc-ease) forwards;
}

@keyframes fcSuccessPop {
  0% {
    transform: scale(0);
    opacity: 0;
  }

  60% {
    transform: scale(1.15);
    opacity: 1;
  }

  100% {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes fcCheckDraw {
  to {
    stroke-dashoffset: 0;
  }
}

@keyframes fcFadeUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.form-callback__field.field-full,
.form-callback__field.field-submit,
.form-callback__field.field-rules,
.form-callback__field.field-checkbox {
  grid-column: 1 / -1;
}

/* ==========================================================================
   Input wrapper — содержит control + floating label
   ========================================================================== */

.form-callback__input-wrap {
  position: relative;
}

/* ==========================================================================
   Контролы: input, select, textarea — ЕДИНЫЙ РАЗМЕР
   ========================================================================== */

.form-callback__control {
  display: block;
  width: 100%;
  height: var(--fc-height);
  padding: 2rem 1.6rem 0.8rem;
  font-family: var(--fc-font);
  font-size: var(--fc-font-size);
  font-weight: 400;
  line-height: 1.4;
  color: var(--fc-text);
  background: var(--fc-bg);
  border: var(--fc-border);
  border-radius: var(--fc-radius);
  outline: none;
  transition:
    border-color var(--fc-speed) var(--fc-ease), background-color var(--fc-speed) var(--fc-ease), box-shadow var(--fc-speed) var(--fc-ease);
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

.form-callback__control:hover {
  background: var(--fc-bg-hover);
}

/* Фокус меняет цвет самой границы. Кольцо box-shadow поверх неё читается как вторая рамка —
   поле выглядит обведённым дважды, особенно на select со стрелкой. */
.form-callback__control:focus {
  border-color: rgba(0, 0, 0, 0.15);
}

/* ==========================================================================
   Floating label
   ========================================================================== */

.form-callback__label {
  position: absolute;
  top: 50%;
  left: 1.6rem;
  transform: translateY(-50%);
  font-size: var(--fc-font-size);
  font-weight: 400;
  color: var(--fc-label);
  pointer-events: none;
  transition:
    top var(--fc-speed) var(--fc-ease), font-size var(--fc-speed) var(--fc-ease), color var(--fc-speed) var(--fc-ease), transform var(--fc-speed) var(--fc-ease);
  transform-origin: left center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: calc(100% - 3.2rem);
}

/* Label активный: при фокусе или заполненности */
.form-callback__control:not(:-moz-placeholder) ~ .form-callback__label {
  top: 1rem;
  transform: translateY(0);
  font-size: var(--fc-font-size-xs);
  color: var(--fc-label-active);
}
.form-callback__control:focus ~ .form-callback__label,
.form-callback__control:not(:placeholder-shown) ~ .form-callback__label {
  top: 1rem;
  transform: translateY(0);
  font-size: var(--fc-font-size-xs);
  color: var(--fc-label-active);
}

/* Label для select — всегда поднят */
.form-callback__control.control-select ~ .form-callback__label {
  top: 1rem;
  transform: translateY(0);
  font-size: var(--fc-font-size-xs);
}

/* Для textarea label позиционирование */
.form-callback__control.control-textarea ~ .form-callback__label {
  top: 1.6rem;
  transform: translateY(0);
}

.form-callback__control.control-textarea:not(:-moz-placeholder) ~ .form-callback__label {
  top: 0.8rem;
  transform: translateY(0);
  font-size: var(--fc-font-size-xs);
}

.form-callback__control.control-textarea:focus ~ .form-callback__label,
.form-callback__control.control-textarea:not(:placeholder-shown) ~ .form-callback__label {
  top: 0.8rem;
  transform: translateY(0);
  font-size: var(--fc-font-size-xs);
}

.form-callback__asterisk {
  color: #f44336;
  color: var(--color-error);
  margin-left: 0.2rem;
}

/* ==========================================================================
   Select
   ========================================================================== */

.form-callback__control.control-select {
  cursor: pointer;
  padding-right: 4rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236e6e6e' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1.6rem center;
  background-size: 1.2rem;
}

.form-callback__control.control-select:focus {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236e6e6e' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* ==========================================================================
   Textarea
   ========================================================================== */

.form-callback__control.control-textarea {
  height: auto;
  min-height: 12rem;
  padding-top: 2.4rem;
  resize: vertical;
}

/* ==========================================================================
   File upload — drag & drop зона
   ========================================================================== */

.form-callback__file-zone {
  display: flex;
  align-items: center;
  gap: 1.6rem;
  padding: 2rem 2.4rem;
  border: 1px dashed rgba(0, 0, 0, 0.1);
  border-radius: var(--fc-radius);
  background: var(--fc-bg);
  cursor: pointer;
  transition:
    border-color var(--fc-speed) var(--fc-ease), background-color var(--fc-speed) var(--fc-ease), transform var(--fc-speed) var(--fc-ease);
}

.form-callback__file-zone:hover {
  border-color: rgba(0, 0, 0, 0.2);
  background: var(--fc-bg-hover);
}

.form-callback__file-zone:active {
  transform: scale(0.99);
}

.form-callback__file-zone.dragover {
  border-color: var(--fc-accent);
  background: rgba(0, 0, 0, 0.03);
}

.form-callback__file-input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  overflow: hidden;
  clip-path: inset(50%);
}

.form-callback__file-icon {
  flex-shrink: 0;
  width: 4.8rem;
  height: 4.8rem;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--fc-accent);
  background: rgba(0, 0, 0, 0.04);
  border-radius: 0.8rem;
  transition: color var(--fc-speed) var(--fc-ease), background-color var(--fc-speed) var(--fc-ease);
}

.form-callback__file-icon svg {
  width: 2.4rem;
  height: 2.4rem;
}

.form-callback__file-zone:hover .form-callback__file-icon {
  color: var(--fc-muted);
  background: rgba(0, 0, 0, 0.08);
}

.form-callback__file-text {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.form-callback__file-title {
  font-size: 1.5rem;
  font-weight: 500;
  color: var(--fc-text);
}

.form-callback__file-hint {
  font-size: var(--fc-font-size-sm);
  color: var(--fc-label);
}

.form-callback__file-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-top: 0.4rem;
  font-size: var(--fc-font-size-sm);
  color: var(--fc-accent);
}

.form-callback__file-list:empty {
  display: none;
}

.form-callback__file-item {
  display: inline-flex;
  align-items: center;
  padding: 0.4rem 1rem;
  background: rgba(0, 0, 0, 0.05);
  border-radius: 0.4rem;
  font-size: var(--fc-font-size-sm);
  color: var(--fc-text);
  line-height: 1.4;
}

/* ==========================================================================
   Checkbox
   ========================================================================== */

.form-callback__checkbox-wrap {
  display: flex;
  align-items: flex-start;
  gap: 1.2rem;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  padding: 0.4rem 0;
}

.form-callback__checkbox-input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  overflow: hidden;
}

.form-callback__checkbox-box {
  flex-shrink: 0;
  width: 2.2rem;
  height: 2.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: var(--fc-border);
  border-radius: 0.6rem;
  background: var(--fc-bg);
  color: transparent;
  transition:
    background-color var(--fc-speed) var(--fc-ease), border-color var(--fc-speed) var(--fc-ease), color var(--fc-speed) var(--fc-ease), transform var(--fc-speed) var(--fc-ease);
}

.form-callback__checkbox-icon {
  width: 1.2rem;
  height: 1.2rem;
}

.form-callback__checkbox-input:checked + .form-callback__checkbox-box {
  background: var(--fc-checked-bg);
  border-color: var(--fc-checked-border);
  color: var(--fc-checked-mark);
  animation: checkPop 0.3s var(--fc-ease);
}

.form-callback__checkbox-input:focus-visible + .form-callback__checkbox-box {
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
}

.form-callback__checkbox-wrap:hover .form-callback__checkbox-box {
  border-color: var(--fc-border-hover);
}

.form-callback__checkbox-text {
  font-size: 1.4rem;
  color: var(--fc-muted);
  line-height: 1.5;
  padding-top: 0.2rem;
}

.form-callback__checkbox-text a {
  color: var(--fc-accent);
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-underline-offset: 0.2rem;
  transition: color var(--fc-speed) var(--fc-ease);
}

.form-callback__checkbox-text a:hover {
  color: var(--fc-accent-hover, var(--fc-accent));
}

@keyframes checkPop {
  0% {
    transform: scale(1);
  }

  40% {
    transform: scale(1.15);
  }

  100% {
    transform: scale(1);
  }
}

/* ==========================================================================
   Radio
   ========================================================================== */

.form-callback__legend {
  font-size: 1.4rem;
  font-weight: 500;
  color: var(--fc-text);
  margin-bottom: 1.2rem;
}

.form-callback__radio-group {
  display: flex;
  flex-wrap: wrap;
  gap: 1.6rem;
}

.form-callback__radio-item {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  cursor: pointer;
}

.form-callback__radio-input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.form-callback__radio-dot {
  position: relative;
  width: 2rem;
  height: 2rem;
  border: var(--fc-border);
  border-radius: 50%;
  flex-shrink: 0;
  transition: border-color var(--fc-speed) var(--fc-ease);
}

.form-callback__radio-dot::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  background: var(--fc-muted);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: width var(--fc-speed) var(--fc-ease), height var(--fc-speed) var(--fc-ease);
}

.form-callback__radio-input:checked + .form-callback__radio-dot {
  border-color: var(--fc-muted);
}

.form-callback__radio-input:checked + .form-callback__radio-dot::after {
  width: 1rem;
  height: 1rem;
}

.form-callback__radio-input:focus-visible + .form-callback__radio-dot {
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.12);
}

.form-callback__radio-text {
  font-size: 1.5rem;
  color: var(--fc-text);
}

/* ==========================================================================
   Submit button
   ========================================================================== */

.form-callback__submit {
  height: var(--fc-height);
  padding: 0 3.2rem;
  font-family: var(--fc-font);
  font-size: 1.5rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-radius: var(--fc-radius);
  transition:
    background-color var(--fc-speed) var(--fc-ease), box-shadow var(--fc-speed) var(--fc-ease);
}

.form-callback__submit:hover {
  box-shadow: inset 0 0 0 100rem rgba(0, 0, 0, 0.08);
}

.form-callback__submit:active {
  box-shadow: inset 0 0 0 100rem rgba(0, 0, 0, 0.16);
}

.form-callback__submit-icon {
  display: flex;
  transition: transform var(--fc-speed) var(--fc-ease);
}

.form-callback__submit-icon svg {
  width: 2rem;
  height: 2rem;
}

.form-callback__submit:hover .form-callback__submit-icon {
  transform: translateX(4px);
}

/* Loading & submit inner transitions */
.form-callback__submit-text,
.form-callback__submit-icon {
  transition: opacity 0.3s var(--fc-ease), transform 0.3s var(--fc-ease);
}

.form-callback__submit-spinner {
  position: absolute;
  width: 2rem;
  height: 2rem;
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-top-color: #fff;
  border-top-color: var(--color-1);
  border-radius: 50%;
  opacity: 0;
  transform: scale(0.5);
  transition: opacity 0.3s var(--fc-ease), transform 0.3s var(--fc-ease);
  pointer-events: none;
}

.form-callback__submit.loading {
  pointer-events: none;
}

.form-callback__submit.loading .form-callback__submit-text {
  opacity: 0;
  transform: translateY(-0.8rem);
}

.form-callback__submit.loading .form-callback__submit-icon {
  opacity: 0;
  transform: translateX(1rem);
}

.form-callback__submit.loading .form-callback__submit-spinner {
  opacity: 1;
  transform: scale(1);
  animation: fcSpin 0.7s linear infinite;
}

@keyframes fcSpin {
  to {
    transform: rotate(360deg);
  }
}

/* ==========================================================================
   Rules text
   ========================================================================== */

.form-callback__field.field-rules {
  padding-top: 0.4rem;
}

.form-callback__rules-text {
  display: block;
  font-size: var(--fc-font-size-sm);
  line-height: 1.5;
  color: var(--fc-accent);
}

.form-callback__rules-text a {
  color: var(--fc-muted);
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-underline-offset: 0.2rem;
  transition: color var(--fc-speed) var(--fc-ease);
}

.form-callback__rules-text a:hover {
  color: #E65901;
  color: var(--color-3);
}

/* ==========================================================================
   Error states
   ========================================================================== */

/* Per-field error message */
.form-callback__error-msg {
  display: block;
  min-height: 0;
  overflow: hidden;
  font-size: var(--fc-font-size-xs);
  color: #f44336;
  color: var(--color-error);
  padding-top: 0.4rem;
  transition: min-height var(--fc-speed) var(--fc-ease), margin var(--fc-speed) var(--fc-ease);
}

.form-callback__error-msg:empty {
  display: none;
}

/* Error state on field wrapper */
.form-callback__field.error .form-callback__control {
  border-color: #f44336;
  border-color: var(--color-error);
  background-color: rgba(244, 67, 54, 0.05);
  background-color: var(--color-error-bg);
  animation: fcShake 0.4s var(--fc-ease);
}

/* У поля с ошибкой граница и так красная — кольцо поверх неё давало вторую рамку. */
.form-callback__field.error .form-callback__control:focus {
  border-color: #f44336;
  border-color: var(--color-error);
}

.form-callback__field.error .form-callback__label {
  color: #f44336;
  color: var(--color-error);
}

.form-callback__field.error .form-callback__checkbox-box {
  border-color: #f44336;
  border-color: var(--color-error);
  animation: fcShake 0.4s var(--fc-ease);
}

.form-callback__field.error .form-callback__checkbox-text {
  color: #f44336;
  color: var(--color-error);
}

.form-callback__field.error .form-callback__file-zone {
  border-color: #f44336;
  border-color: var(--color-error);
  background-color: rgba(244, 67, 54, 0.05);
  background-color: var(--color-error-bg);
  animation: fcShake 0.4s var(--fc-ease);
}

.form-callback__field.error .form-callback__radio-dot {
  border-color: #f44336;
  border-color: var(--color-error);
}

/* Error banner */
.form-callback__error-banner {
  padding: 1.2rem 1.6rem;
  background: rgba(244, 67, 54, 0.05);
  background: var(--color-error-bg);
  border: 1px solid rgba(244, 67, 54, 0.2);
  border-radius: var(--fc-radius);
  transition: opacity 0.3s var(--fc-ease), transform 0.3s var(--fc-ease);
}

.form-callback__error-banner.hidden {
  opacity: 0;
  transform: translateY(-0.8rem);
}

.form-callback__error-banner:not(.hidden) {
  animation: fcSlideDown 0.35s var(--fc-ease);
}

@keyframes fcSlideDown {
  from {
    opacity: 0;
    transform: translateY(-1.2rem);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.form-callback__error-text {
  font-size: 1.4rem;
  color: #f44336;
  color: var(--color-error);
}

@keyframes fcShake {
  0%,
  100% {
    transform: translateX(0);
  }

  20% {
    transform: translateX(-4px);
  }

  40% {
    transform: translateX(4px);
  }

  60% {
    transform: translateX(-2px);
  }

  80% {
    transform: translateX(2px);
  }
}

/* ==========================================================================
   Focus-visible
   ========================================================================== */

/* Фокус у поля показывает его собственная граница. Отдельный outline с отступом ложился
   поверх неё второй рамкой — на мобильных особенно заметно. У кнопки outline остаётся:
   границы у неё нет, и без него фокус с клавиатуры не виден. */
.form-callback__control:focus-visible {
  border-color: var(--fc-accent);
}

.form-callback__submit:focus-visible {
  outline: 1px solid var(--fc-accent);
  outline-offset: 2px;
}

/* ==========================================================================
   Accessibility: prefers-reduced-motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
  .form-callback *,
  .form-callback *::before,
  .form-callback *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ==========================================================================
   Подсказка вместо плавающей метки
   Часть площадок так задумана дизайном: подпись стоит внутри поля и исчезает,
   когда человек начинает писать. Разметка та же, меняется только оформление.
   ========================================================================== */

.form-callback--hint .form-callback__label {
  top: 50%;
  transform: translateY(-50%);
  font-size: var(--fc-font-size);
  color: var(--fc-label);
}

.form-callback--hint .form-callback__control:not(:-moz-placeholder) ~ .form-callback__label {
  top: 50%;
  transform: translateY(-50%);
  font-size: var(--fc-font-size);
  opacity: 0;
}

.form-callback--hint .form-callback__control:focus ~ .form-callback__label,
.form-callback--hint .form-callback__control:not(:placeholder-shown) ~ .form-callback__label {
  top: 50%;
  transform: translateY(-50%);
  font-size: var(--fc-font-size);
  opacity: 0;
}

/* Поле в этом режиме не оставляет места под поднятую подпись. */
.form-callback--hint .form-callback__control {
  padding-top: 0;
  padding-bottom: 0;
}

/* Обязательность в таком оформлении не показывают звёздочкой: подпись исчезает при вводе. */
.form-callback--hint .form-callback__asterisk {
  display: none;
}

/* Порядок «кнопка, затем согласие» — так свёрстаны площадки, где подпись стоит подсказкой:
   действие ближе к полям, юридический текст уходит вниз. */
.form-callback--hint .form-callback__grid {
  display: flex;
  flex-direction: column;
}

.form-callback--hint .form-callback__field.field-submit {
  order: 1;
}

.form-callback--hint .form-callback__field.field-checkbox,
.form-callback--hint .form-callback__field.field-rules {
  order: 2;
}

/* Палитра площадки. Посадка тёмная, акцент — оранжевый как у кнопок, скругление тоже их.
   Правила приходят из ядра, здесь только цвета и геометрия. */
.form-callback {
  --fc-bg: transparent;
  --fc-bg-hover: rgba(255, 255, 255, 0.06);
  --fc-border: 1px solid rgba(255, 255, 255, 0.25);
  --fc-border-hover: rgba(255, 255, 255, 0.55);
  --fc-text: var(--color-1);
  --fc-label: rgba(255, 255, 255, 0.6);
  --fc-label-active: rgba(255, 255, 255, 0.75);
  --fc-accent: var(--color-3);
  --fc-muted: rgba(255, 255, 255, 0.7);
  --fc-focus-ring: var(--color-3);
  --fc-checked-bg: var(--color-3);
  --fc-checked-border: var(--color-3);
  --fc-checked-mark: var(--color-1);
  --fc-radius: 0;
  --fc-height: 5.2rem;
}

.form-callback__grid {
  grid-template-columns: 1fr;
}
/* Стили для GLightbox. !important — переопределение стилей библиотеки. */

/* Блокировка скролла при открытом лайтбоксе */
body.glightbox-open {
  overflow: hidden !important;
  height: 100vh;
  width: 100%;
  position: fixed;
  left: 0;
  top: 0;
  right: 0;
}

/* Дополнительные стили для GLightbox */
.glightbox-container {
  z-index: 9999;
}

.glightbox-clean .gclose {
  background-color: #000 !important;
  background-color: var(--color-2) !important;
  opacity: 0.6;
  backdrop-filter: blur(5px);
}

/* Анимации для плавного появления/исчезновения */
.glightbox-closing .glightbox-container,
.glightbox-closing .glightbox-container .goverlay {
  animation: fadeOut 0.5s ease;
}

@keyframes fadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

/* Улучшенные стили навигации */
.glightbox-clean .gnext,
.glightbox-clean .gprev {
  background-color: #000 !important;
  background-color: var(--color-2) !important;
  opacity: 0.6;
  backdrop-filter: blur(5px);
  border-radius: 5px;
}

.glightbox-clean .gnext:hover,
.glightbox-clean .gprev:hover {
  background-color: #000 !important;
  background-color: var(--color-2) !important;
  opacity: 0.85;
}

.goverlay {
  background-color: rgba(0, 0, 0, 0.92) !important;
}

/* Фон модального окна */
.glightbox-clean {
  background-color: transparent !important;
}

/* Скрываем описание в модальном окне */
.glightbox-clean .gslide-description,
.glightbox-clean .description-bottom {
  display: none !important;
}

/* Фон для контента модального окна */
.ginlined-content {
  background-color: transparent !important;
}

.glightbox-clean .gprev svg path,
.glightbox-clean .gnext svg path,
.glightbox-clean .gclose svg path {
  fill: #fff !important;
  fill: var(--color-1) !important;
}

.glightbox-clean .gslide-media {
  box-shadow: none !important;
}

/* Стили для VK видео контейнера */
.vk-video-container {
  max-width: 90vw;
  max-height: 90vh;
  margin: 0 auto;
}

.vk-video-container iframe {
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

/* Адаптивность для мобильных устройств */
@media (max-width: 768px) {
  .vk-video-container {
    max-width: 95vw;
    max-height: 80vh;
  }
  
  .vk-video-container iframe {
    border-radius: 4px;
  }
}

/* Обеспечиваем корректное отображение контента в GLightbox */
.glightbox-clean .gslide-inner-content {
  display: flex;
  align-items: center;
  justify-content: center;
}
.heading {
  /* Стили для heading */
}

.heading-flex {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
}
.numbered-list {
  margin: 0;
  margin-left: 1.5rem;
  padding: 0;
  font-size: 1em;
  list-style: decimal;
}
@media (min-width: 1200px) {
.numbered-list {
    font-size: 0.9em;
}
  }

.numbered-list__item {
  padding-top: 0.5rem;
}
.slider {
  width: 100%;
  height: 100%;
}

.slider .swiper-container {
  width: 100%;
  height: 100%;
}

/**
 * Базовые стили для слайдеров Swiper.
 * !important — только для переопределения стилей библиотеки (инлайн/высокая специфичность).
 */

/* Контейнер слайдера */
.swiper-container {
  position: relative;
  width: 100%;
  height: auto;
  overflow: hidden;
  padding-bottom: 3rem;
}

/* Обертка слайдера */
.swiper-wrapper {
  display: flex;
  width: 100%;
  transition-property: transform;
}

/* Стили слайда */
.swiper-slide {
  display: flex;
  justify-content: center;
  position: relative;
  flex-shrink: 0;
  width: 100%;
}

/* Стили для навигационных кнопок */
.swiper-button-next,
.swiper-button-prev {
  --swiper-navigation-top-offset: 50%;
  --swiper-navigation-sides-offset: 0;
  --swiper-navigation-size: 3rem;

  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 3rem !important;
  height: 3rem !important;
  color: var(--swiper-navigation-color);
  opacity: 0;
  transition: opacity 0.25s ease-out;
  z-index: 10;
  cursor: pointer;
  display: none !important;
  align-items: center;
  justify-content: center;
}
@media (min-width: 1200px) {
.swiper-button-next,
.swiper-button-prev {
    display: flex !important;
}
  }

.swiper-button-next {
  right: 0 !important;
  left: auto !important;
}

.swiper-button-prev {
  left: 0 !important;
  right: auto !important;
}

.swiper-container:hover .swiper-button-next,
.swiper-container:hover .swiper-button-prev {
  opacity: 0.5;
}

.swiper-container:hover .swiper-button-next:hover,
.swiper-container:hover .swiper-button-prev:hover {
  opacity: 1 !important;
}

.swiper-button-next::after,
.swiper-button-prev::after {
  font-size: var(--swiper-navigation-size) !important;
  font-weight: bold;
  margin: 0 !important;
}

/* Стили для пагинации */
.swiper-pagination {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.75rem;
}

.swiper-pagination-bullet {
  width: 2rem !important;
  height: 0.1rem !important;
  background: var(--swiper-pagination-color) !important;
  opacity: 0.3 !important;
  border-radius: 0 !important;
  margin: 0 !important;
  transition: opacity 0.25s ease-out !important;
}

.swiper-pagination-bullet-active {
  opacity: 1 !important;
}

/* Стили для отключенных кнопок */
.swiper-button-disabled {
  opacity: 0.35 !important;
  cursor: default !important;
  pointer-events: none !important;
}

/* Компенсация отступа для всех слайдеров с padding-bottom */
.swiper-container .swiper-button-next,
.swiper-container .swiper-button-prev {
  margin-top: calc(-2rem) !important;
}

/* Убираем padding, когда пагинация отключена */
.swiper-container[data-settings*="\"pagination\":{\"enabled\":false}"],
.swiper-container.no-pagination {
  padding-bottom: 0;
}

/* Скрываем пагинацию полностью, когда она отключена */
.swiper-container[data-settings*="\"pagination\":{\"enabled\":false}"] .swiper-pagination,
.swiper-container.no-pagination .swiper-pagination {
  display: none;
}

/* Сбрасываем отступ для кнопок, когда пагинация отключена */
.swiper-container[data-settings*="\"pagination\":{\"enabled\":false}"] .swiper-button-next,
.swiper-container[data-settings*="\"pagination\":{\"enabled\":false}"] .swiper-button-prev,
.swiper-container.no-pagination .swiper-button-next,
.swiper-container.no-pagination .swiper-button-prev {
  margin-top: 0 !important;
}
.spoiler {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 1rem;
  font-size: 1em;
  border-bottom: 0.1rem solid #D4D2D2;
  border-bottom: 0.1rem solid var(--color-6);
}
@media (min-width: 1200px) {
.spoiler {
    font-size: 0.9em;
}
  }

.spoiler__item {
  width: 100%;
}

.spoiler__item.title-wrap {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding-bottom: 0.25rem;
  cursor: pointer;
}

.spoiler__item.title-wrap .spoiler__item-icon-wrap {
  width: 0.75rem;
  height: auto;
  transition: all 0.3s ease-in-out;
  flex-shrink: 0;
}

.spoiler__item.title-wrap.active .spoiler__item-icon-wrap{
  transform: rotate(180deg);
}

.spoiler__item.desc-wrap {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 0.25rem;
  padding-bottom: 0.5rem;
  transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  overflow: hidden;

  /* Предотвращаем наезжание текста */
  position: relative;
  z-index: 1;

  /* Дополнительная защита от наезжания */
  transform: translateZ(0);
  backface-visibility: hidden;
}

/* Убираем ограничение max-height для активных спойлеров */
.spoiler.active .spoiler__item.desc-wrap {
  max-height: none;
  overflow: visible;
  opacity: 1;
}

/* Стили для неактивных спойлеров */
.spoiler:not(.active) .spoiler__item.desc-wrap {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
}

/* Стили для описания внутри спойлера */
.spoiler__desc {
  width: 100%;
  line-height: 1.5;

  /* Предотвращаем наезжание */
  margin-bottom: 0.25rem;

  /* Дополнительная защита */
  transform: translateZ(0);
  backface-visibility: hidden;
}

/* Дополнительная защита от наезжания */
.spoiler__desc:last-child {
  margin-bottom: 0;
}

/* Предотвращаем наезжание во время анимации */
.spoiler__item.desc-wrap[style*="max-height"] {
  will-change: max-height;
}

/* Улучшенная анимация для плавного сворачивания */
.spoiler__item.desc-wrap {
  transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.card-owner {
  width: 100%;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 1rem;
}
@media (min-width: 1200px) {
.card-owner {
    gap: 3rem;
}
  }

.card-owner .card__item.cover-wrap {
  width: 7rem;
  border-radius: 50%;
  overflow: hidden;
  transition: transform 0.4s ease-out;
}

@media (min-width: 1200px) {

.card-owner .card__item.cover-wrap {
    width: 17rem;
}
  }

.card-owner .card__item.cover-wrap img {
}

.card-owner .card__item.title-wrap {
  transition: transform 0.4s ease-out;
}

.card-owner:hover .card__item.cover-wrap {
  transform: translateX(-0.5rem);
}

.card-owner:hover .card__item.title-wrap {
  transform: translateX(0.5rem);
}

.card-owner .title {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  font-size: 1.1em;
  line-height: 1.1;
}

@media (min-width: 1200px) {

.card-owner .title {
    font-size: 1.4em;
}
  }
.card-nav {
  position: relative;
  width: 100%;
  height: 100%;
  padding: 2rem;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  border-radius: 2rem;
  -webkit-text-decoration: none;
  text-decoration: none;
  overflow: hidden;
  container-type: inline-size;
  container-name: card-nav;
}
@container card-nav (min-width: 75rem) {
.card-nav {
    padding: 4rem;
    border-radius: 4rem;
}
  }

.card-nav .card__item.cover-wrap {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.card-nav .card__item.cover-wrap::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: hsla(0, 0%, 0%, 0.2);
  z-index: 1;
}

.card-nav .card__cover {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: right center;
  background-repeat: no-repeat;
  transition: transform 3s ease-out;
}

.card-nav.animation-zoom:hover .card__cover {
  transform: scale(1.05);
}
  
.card-nav .card__item.title-wrap {
  position: relative;
  width: 100%;
  z-index: 1;
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.9em;
  text-align: center;
}

.card-nav .card__separator {
  width: 0.1rem;
  height: 4rem;
  background-color: currentcolor;
  font-size: 0;
  align-self: center;
}

@container card-nav (min-width: 75rem) {

.card-nav .card__separator {
    height: 5.33rem;
}
  }

@media not (min-width: 768px) {
  .card-nav .card__item.title-wrap {
    flex-direction: column;
    align-items: center;
    gap: 0.75em;
  }

  .card-nav .card__separator {
    width: 8rem;
    height: 0.1rem;
  }
}

@container card-nav (min-width: 75rem) {

.card-nav.text-center .card__item.title-wrap {
    text-align: center;
}
  }

.card-nav .card__item.title-wrap .card__title {
  font-size: 2em;
}

@container card-nav (min-width: 75rem) {

.card-nav .card__item.title-wrap .card__title {
    font-size: 2.5em;
}
  }
.button-section {
  position: relative;
  width: 100%;
  height: 5rem;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.2rem 2rem;
  border-radius: 2rem;
  background: linear-gradient(to left, #000, #000);
  color: #fff;
  color: var(--color-1);
  overflow: hidden;
  transition: color 0.4s ease-out;
}
@media (min-width: 1200px) {
.button-section {
    height: 11rem;
    padding: 1.4rem 3rem;
    border-radius: 4rem;
    background: linear-gradient(to left, #F1ECE4, #DAD8D7);
    background: var(--gradient-3);
    color: #000;
    color: var(--color-2);
}
  }

.button-section::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: #000;
  opacity: 0;
  border-radius: inherit;
  transition: opacity 0.4s ease-out;
  pointer-events: none;
  z-index: 0;
}

@media (hover: hover) and (pointer: fine) {
  .button-section:hover::before {
    opacity: 1;
  }

  .button-section:hover {
    color: #fff;
    color: var(--color-1);
    opacity: 1;
  }
}

.button-section__item {
  position: relative;
  z-index: 1;
}

.button-section__item.title-wrap {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.button-section__title {
  font-size: 1em;
  font-weight: 400;
}

@media (min-width: 1200px) {

.button-section__title {
    font-size: 1.8em;
}
  }

.button-section__item.icon-wrap {
  width: 2.4rem;
  height: 2.4rem;
  padding: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  flex-shrink: 0;
  background: #000;
  background: var(--color-2);
  overflow: hidden;
  transition: background 0.15s ease-out;
}

@media (min-width: 1200px) {

.button-section__item.icon-wrap {
    width: 4rem;
    height: 4rem;
    padding: 1rem;
}
  }

.button-section__item.icon-wrap img {
  width: 100%;
  height: 100%;
}

.button-section__item.icon-wrap.green {
  background: #3A9550;
}

@media (min-width: 1200px) {

.button-section__item.icon-wrap.green {
    background: #000;
    background: var(--color-2);
}
  }

.button-section__item.icon-wrap.blue {
  background: #008ACF;
}

@media (min-width: 1200px) {

.button-section__item.icon-wrap.blue {
    background: #000;
    background: var(--color-2);
}
  }

.button-section__item.icon-wrap.red {
  background: #C72229;
}

@media (min-width: 1200px) {

.button-section__item.icon-wrap.red {
    background: #000;
    background: var(--color-2);
}
  }

@media (hover: hover) and (pointer: fine) {
  .button-section:hover .button-section__item.icon-wrap.green {
    background: #3A9550;
  }

  .button-section:hover .button-section__item.icon-wrap.blue {
    background: #008ACF;
  }

  .button-section:hover .button-section__item.icon-wrap.red {
    background: #C72229;
  }
}
.card-gradient {
  position: relative;
  width: 100%;
  height: 100%;
  padding: 2rem;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  border-radius: 2rem;
  background: linear-gradient(to left, #F1ECE4, #DAD8D7);
  background: var(--gradient-3);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  -webkit-text-decoration: none;
  text-decoration: none;
  color: #fff;
  color: var(--color-1);
  overflow: hidden;
  transition: all 0.25s ease-out;
  container-type: inline-size;
  container-name: card-gradient;
}
@container card-gradient (min-width: 75rem) {
.card-gradient {
    padding: 4rem;
    gap: 1.25rem;
    border-radius: 4rem;
}
  }

.card-gradient__cover {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  pointer-events: none;
  transition: transform 0.6s ease-out;
}

/* CSS-радиальные градиенты как замена PNG */
.card-gradient__cover.gradient-red {
  background:
    radial-gradient(ellipse 70% 130% at 100% 110%,
      #e21100 0%,
      #8a0700 18%,
      #2a0300 45%,
      #000 80%);
}

.card-gradient__cover.gradient-sunset {
  background:
    radial-gradient(circle 330px at 50% 100%,
      #000 0%, #2a0900 25%, #7a1f02 55%, transparent 90%),
    radial-gradient(circle 240px at 22% 0%,
      #000 0%, #2a0900 25%, #7a1f02 55%, transparent 90%),
    radial-gradient(circle 240px at 78% 0%,
      #000 0%, #2a0900 25%, #7a1f02 55%, transparent 90%),
    #ff561e;
}

.card-gradient.animation-zoom .card-gradient__cover {
  transform-origin: 100% 100%;
}

.card-gradient.animation-zoom:hover .card-gradient__cover {
  transform: scale(1.6);
}

.card-gradient.animation-shift-down .card-gradient__cover {
  top: -25%;
  right: 0;
  bottom: -25%;
  left: 0;
  transition: transform 0.3s ease-out;
}

.card-gradient.animation-shift-down:hover .card-gradient__cover {
  transform: translateY(10%);
}

/* Параллакс фона за курсором (логика — в js/components/card-gradient-parallax.js) */
.card-gradient.animation-parallax .card-gradient__cover {
  top: -8%;
  right: -4%;
  bottom: -8%;
  left: -4%;
  transition: transform 0.25s ease-out;
}

.card-gradient.animation-parallax.link:hover,
.card-gradient.animation-parallax.link:active {
  opacity: 1;
}

.card-gradient .card__item.title-wrap {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.9em;
  text-align: center;
}

.card-gradient .card__item.title-wrap .card__title {
  font-size: 2em;
}

@container card-gradient (min-width: 75rem) {

.card-gradient .card__item.title-wrap .card__title {
    font-size: 2.5em;
}
  }

.card-gradient .card__separator {
  width: 0.1rem;
  height: 4rem;
  background-color: currentcolor;
  font-size: 0;
  align-self: center;
}

@container card-gradient (min-width: 75rem) {

.card-gradient .card__separator {
    height: 5.33rem;
}
  }

/* Мобильная версия: заголовки в колонку, разделитель — горизонтальная линия */
@media not (min-width: 768px) {
  .card-gradient .card__item.title-wrap {
    flex-direction: column;
    align-items: center;
    gap: 0.75em;
  }

  .card-gradient .card__separator {
    width: 8rem;
    height: 0.1rem;
  }

  .card-gradient .card__item.icon-wrap img {
    width: 6rem;
    height: 6rem;
  }
}

.card-gradient .card__item.icon-wrap {
  flex-shrink: 0;
  z-index: 1;
}

.card-gradient .card__item.icon-wrap img {
  width: 2rem;
  height: 2rem;
}

@container card-gradient (min-width: 75rem) {

.card-gradient .card__item.icon-wrap img {
    width: 3.2rem;
    height: 3.2rem;
}
  }
.card-number {
  display: flex;
  flex-direction: column;
  color: #000;
  color: var(--color-2);
}
@media (min-width: 1200px) {
.card-number {
}
  }

.card-number__item.title-wrap {
  display: flex;
  align-items: baseline;
}

.card-number__title {
  display: inline-block;
  font-family: "TT Norms Pro Expanded", "TT Norms Pro", sans-serif;
  font-family: var(--font-1-extended);
  font-weight: 500;
  font-size: 6em;
  line-height: 0.9;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
}

@media (min-width: 1200px) {

.card-number__title {
    font-size: 8em;
}
  }

.card-number__title::before {
  content: attr(data-final);
  display: block;
  height: 0;
  visibility: hidden;
}

.card-number__plus {
  opacity: 0;
  transition: opacity 0.4s ease-out;
}

.card-number__plus.visible {
  opacity: 1;
}

.card-number__item.label-wrap {
  display: flex;
  opacity: 0;
  transition: opacity 0.4s ease-out;
}

.card-number__item.label-wrap.visible {
  opacity: 1;
}

.card-number__label {
  font-size: 2.4em;
  font-weight: 200;
}
.card-restaurant {
  position: relative;
  width: 100%;
  border-radius: 2rem;
  background: #151515;
  background: var(--color-7);
  overflow: hidden;
  transition: 0.25s all ease-out;
  transition: var(--transition-1);
}

.card-restaurant .card__item.bg-wrap {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

@media (min-width: 1200px) {

.card-restaurant .card__item.bg-wrap {
    height: 30rem;
}
  }

.card-restaurant .card-restaurant-slider {
  width: 100%;
  height: 100%;
  padding-bottom: 0;
}

.card-restaurant .card-restaurant-slider .swiper-wrapper {
  width: 100%;
  height: 100%;
}

.card-restaurant .card-restaurant-slider .swiper-slide {
  width: 100%;
  height: 100%;
}

.card-restaurant .card-restaurant-slide {
  position: relative;
  background: #000;
  background: var(--color-2);
  overflow: hidden;
}

.card-restaurant .card-restaurant-slide--cover .card__bg {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.card-restaurant .card-restaurant-slide--cover .card__icon {
  position: absolute;
  bottom: 2rem;
  right: 2rem;
  width: 18rem;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
  z-index: 1;
}

@media (min-width: 1200px) {

.card-restaurant .card-restaurant-slide--cover .card__icon {
    bottom: 3rem;
    right: 3rem;
}
  }

.card-restaurant .card__badge {
  position: absolute;
  bottom: 2rem;
  left: 2rem;
  width: 8.6rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75em;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-radius: 8.25rem;
  background: #fff;
  background: var(--color-1);
  color: #000;
  color: var(--color-2);
  z-index: 1;
}

@media (min-width: 1200px) {

.card-restaurant .card__badge {
    bottom: 3rem;
    left: 3rem;
}
  }

.card-restaurant .card-restaurant-slide .card__logo {
  position: absolute;
  top: 2rem;
  left: 2rem;
  width: auto;
  max-width: calc(100% - 4rem);
  height: 7rem;
  height: var(--logo-height, 7rem);
  -o-object-fit: contain;
     object-fit: contain;
  z-index: 1;
}

@media (min-width: 1200px) {

.card-restaurant .card-restaurant-slide .card__logo {
    top: 3rem;
    left: 3rem;
    max-width: calc(100% - 6rem);
}
  }

.card-restaurant .card-restaurant-slide--desc,
.card-restaurant .card-restaurant-slide--info {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1.5rem;
  padding-top: calc(1.5rem + 7rem + 1rem);
  padding-top: calc(1.5rem + var(--logo-height, 7rem) + 1rem);
  color: #fff;
  color: var(--color-1);
}

@media (min-width: 1200px) {

.card-restaurant .card-restaurant-slide--desc,
.card-restaurant .card-restaurant-slide--info {
    padding: 3rem;
    padding-top: calc(3rem + 7rem + 1rem);
    padding-top: calc(3rem + var(--logo-height, 7rem) + 1rem);
}
  }

/* Кламп длинных описаний: текст длиннее ~6 строк (Joli СПб, Salone — 500+ симв.)
   при justify-content: flex-end переполнял слайд вверх — накрывал лого и обрезался
   краем карточки. 6 строк влезают на всех брейкпоинтах при самом высоком лого (7.4rem);
   полный текст остаётся на странице ресторана (кнопка «Подробнее»). */
.card-restaurant .card-restaurant-slide__desc {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 6;
  min-height: 0;
  overflow: hidden;
}

.card-restaurant .card-restaurant-slide__text {
  margin: 0;
  font-size: 0.95em;
  line-height: 1.45;
  color: #fff;
  color: var(--color-1);
}

.card-restaurant .card-restaurant-slide__text + .card-restaurant-slide__text {
  margin-top: 0.8rem;
}

.card-restaurant .card-restaurant-slide__info {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.card-restaurant .card-restaurant-slide__line {
  margin: 0;
  font-size: 0.95em;
  line-height: 1.4;
  color: #fff;
  color: var(--color-1);
}

.card-restaurant .card-restaurant-slide--photo .card-restaurant-slide__photo {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

.card-restaurant .card-restaurant-slider .swiper-button-prev,
.card-restaurant .card-restaurant-slider .swiper-button-next {
  background: transparent;
  color: #fff;
  color: var(--color-1);
}

.card-restaurant .card-restaurant-slider .swiper-button-prev::after,
.card-restaurant .card-restaurant-slider .swiper-button-next::after {
  font-size: 2rem !important;
  font-weight: 700;
}

.card-restaurant .card-restaurant-slider .swiper-button-disabled {
  opacity: 0 !important;
}

.card-restaurant:hover .card-restaurant-slider .swiper-button-disabled {
  opacity: 0 !important;
}

.card-restaurant .card-restaurant-slider .swiper-button-disabled {
  opacity: 0.35;
  pointer-events: none;
}

.card-restaurant-wrap {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.card-restaurant-wrap .card__item.title-wrap {
  text-align: left;
}

.card-restaurant-wrap .card__title {
  font-size: 1.4em;
}

@media (min-width: 1200px) {

.card-restaurant-wrap .card__title {
    font-size: 1.5em;
}
  }

.card-restaurant-wrap .card__item.desc-wrap {
  flex: 1;
  text-align: left;
}

.card-restaurant-wrap .card__desc {
  font-size: 1em;
}

.card-restaurant-wrap .card__item.buttons-wrap {
  display: flex;
  gap: 1rem;
  margin-top: auto;
}
/* ============================================
   Component: card-event (карточка события)
   ============================================ */

.card-event {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #151515;
  background: var(--color-7);
  border-radius: 1.6rem;
  overflow: hidden;
  color: #fff;
  color: var(--color-1);
  -webkit-text-decoration: none;
  text-decoration: none;
  transition: 0.25s all ease-out;
  transition: var(--transition-1);
}

.card-event:hover,
.card-event:focus-visible {
  background: rgb(35, 35, 35);
}

@supports (color: color-mix(in lch, red, blue)) {
.card-event:hover,
.card-event:focus-visible {
  background: color-mix(in srgb, var(--color-7), white 6%);
}
}

.card-event:focus-visible {
  outline: 2px solid #fff;
  outline: 2px solid var(--color-1);
  outline-offset: 2px;
}

.card-event__media {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #151515;
  background: var(--color-7);
}

.card-event__img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: 0.5s all ease-out;
  transition: var(--transition-2);
}

.card-event:hover .card-event__img {
  transform: scale(1.05);
}

.card-event__date {
  position: absolute;
  top: 1.4rem;
  left: 1.4rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 5.6rem;
  padding: 0.8rem 1rem;
  background: #fff;
  background: var(--color-1);
  border-radius: 1rem;
  line-height: 1;
}

.card-event__date-day {
  font-family: "TT Norms Pro", sans-serif;
  font-family: var(--font-1);
  font-weight: 600;
  font-size: 2.6rem;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  color: #000;
  color: var(--color-2);
}

.card-event__date-month {
  margin-top: 0.3rem;
  font-size: 1.2rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #666;
  color: var(--color-muted);
}

.card-event__tag {
  position: absolute;
  bottom: 1.4rem;
  left: 1.4rem;
  padding: 0.5rem 1.2rem;
  font-size: 1.2rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #fff;
  color: var(--color-1);
  background: rgba(21, 21, 21, 0.55);
  backdrop-filter: blur(6px);
  border-radius: 10rem;
}

.card-event__badge {
  position: absolute;
  top: 1.4rem;
  right: 1.4rem;
  padding: 0.5rem 1.1rem;
  font-size: 1.2rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #000;
  color: var(--color-2);
  background: #fff;
  background: var(--color-1);
  border-radius: 10rem;
}

.card-event__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 2rem 2.2rem 2.2rem;
}

.card-event__place {
  font-size: 1.3rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #D4D2D2;
  color: var(--color-6);
}

.card-event__title {
  margin-top: 0.8rem;
  font-size: 2rem;
  line-height: 1.2;
  letter-spacing: 0.01em;
  color: #fff;
  color: var(--color-1);
}

.card-event__meta {
  margin-top: 1rem;
  font-size: 1.4rem;
  color: #D4D2D2;
  color: var(--color-6);
}

.card-event__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.2rem;
  margin-top: auto;
  padding-top: 1.8rem;
}

.card-event__price {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  line-height: 1.1;
}

.card-event__price-label {
  font-size: 1.4rem;
  color: #D4D2D2;
  color: var(--color-6);
}

.card-event__price-value {
  font-weight: 600;
  font-size: 1.9rem;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  color: #fff;
  color: var(--color-1);
}

.card-event__price-value--tba {
  font-size: 1.5rem;
  font-weight: 500;
  color: #D4D2D2;
  color: var(--color-6);
}

.card-event__cta {
  flex-shrink: 0; /* кнопка внутри <a.card-event> — клик и так уходит по карточке-ссылке */
}

/* ховер кнопки срабатывает и при наведении на всю карточку */
.card-event:hover .card-event__cta.bg-color-1 {
  background: rgb(230, 230, 230);
}

@supports (color: color-mix(in lch, red, blue)) {
.card-event:hover .card-event__cta.bg-color-1 {
  background: color-mix(in srgb, var(--color-1), black 10%);
}
}

.card-event:hover .card-event__cta.bg-color-6 {
  background: rgb(42, 42, 42);
  color: #fff;
  color: var(--color-1);
}

@supports (color: color-mix(in lch, red, blue)) {
.card-event:hover .card-event__cta.bg-color-6 {
  background: color-mix(in srgb, var(--color-6), black 80%);
}
}

.card-event--sold {
  opacity: 0.85;
}

.card-event--sold .card-event__img {
  filter: grayscale(0.35);
}

/* Pages */
.page-404 {
  /* Стили для 404 */
}

.page-404 .container {
  /* Стили для контейнера в 404 */
}
.contacts {
  /* Стили для contacts */
}

.contacts .container {
  /* Стили для контейнера в contacts */
}
.index {
  /* Стили для index */
}

.index .container {
  /* Стили для контейнера в index */
}
.logoline {
  overflow: hidden;
  background-color: #fff;
  background-color: var(--color-1);
}
@media (min-width: 1200px) {
.logoline {
    padding-top: 10rem;
    padding-bottom: 2rem;
}
  }

.logoline .swiper-container {
  overflow: hidden;
}

.logoline .is-marquee {
  contain: layout paint;
  cursor: grab;
  touch-action: pan-y;
}

.logoline .is-marquee.is-dragging {
  cursor: grabbing;
}

.logoline .is-marquee .swiper-wrapper {
  display: flex;
  width: -moz-max-content;
  width: max-content;
  will-change: transform;
  transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.logoline .swiper-slide {
  width: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  height: auto;
  flex-shrink: 0;
  margin-right: 40px;
}

@media (min-width: 1200px) {

.logoline .swiper-slide {
    margin-right: 80px;
}
  }

.logoline__item {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.25rem 0.5rem;
  -webkit-user-drag: none;
}

@media (min-width: 1200px) {

.logoline__item {
    padding: 0.5rem 1rem;
}
  }

.logoline__logo {
  display: block;
  width: auto;
  height: calc(8.4rem * 0.7);
  height: calc(var(--logo-height, 8.4rem) * 0.7);
  opacity: 0.5;
  transition: 0.25s all ease-out;
  transition: var(--transition-1);
  pointer-events: none;
  -webkit-user-drag: none;
}

@media (min-width: 1200px) {

.logoline__logo {
    height: 7.5rem;
    height: var(--logo-height, 7.5rem);
}
  }

.logoline .swiper-slide:hover .logoline__logo {
  opacity: 1;
}
.promo.section {
  background-color: #000;
  background-color: var(--color-2);
  color: #fff;
  color: var(--color-1);
  padding-top: 8rem;
  padding-bottom: 6rem;
  min-height: 60vh;
  display: flex;
  align-items: center;
}
@media (min-width: 1200px) {
.promo.section {
    padding-top: 12rem;
    padding-bottom: 8rem;
    min-height: 70vh;
}
  }

.promo__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  text-align: center;
  max-width: 60rem;
  margin: 0 auto;
}

.promo__code {
  font-size: 12rem;
  line-height: 1;
  letter-spacing: -0.02em;
}

@media (min-width: 1200px) {

.promo__code {
    font-size: 18rem;
}
  }

.promo__heading-wrap {
  width: 100%;
}

.promo__heading-wrap .heading {
  font-size: 1.6em;
}

@media (min-width: 1200px) {

.promo__heading-wrap .heading {
    font-size: 2em;
}
  }

.promo__text {
  font-size: 1em;
  line-height: 1.5;
  opacity: 0.7;
  margin: 0;
}

.promo__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
  margin-top: 1rem;
}
.restaurants {
  /* Стили для restaurants */
}

.restaurants .container {
  /* Стили для контейнера в restaurants */
}
/* ============================================
   Page: restaurant detail
   ============================================ */

body:has(.restaurant-detail) {
  background: #000;
  background: var(--color-2);
}

.restaurant-detail {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 0;
  background: #000;
  background: var(--color-2);
}

/* ---- Slider ---- */

.restaurant-detail__item.slider-wrap {
  position: relative;
}

.restaurant-detail__item.slider-wrap .swiper-container {
  width: 100%;
  height: 54rem;
  padding-bottom: 0;
}

@media (min-width: 1200px) {

.restaurant-detail__item.slider-wrap .swiper-container {
    height: 90rem;
}
  }

.restaurant-detail__item.slider-wrap .swiper-slide {
  width: 100%;
  height: 100%;
}

.restaurant-detail__item.slider-wrap .swiper-slide img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.restaurant-detail__item.slider-wrap .swiper-pagination {
  bottom: 2rem;
}

/* override: swiper inline nav color + cancel padding offset */
.restaurant-detail__item.slider-wrap .swiper-pagination-bullet {
  background: #fff !important;
  background: var(--color-1) !important;
}

.restaurant-detail__item.slider-wrap .swiper-button-next,
.restaurant-detail__item.slider-wrap .swiper-button-prev {
  --swiper-navigation-color: var(--color-1);

  margin-top: 0 !important;
}

/* Тёмный оверлей для читаемости */
.restaurant-intro .swiper-container::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: linear-gradient(to right, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0.25) 50%, rgba(0, 0, 0, 0.1) 100%);
  z-index: 1;
  pointer-events: none;
}

/* ---- Restaurant intro overlay ---- */

.restaurant-intro__overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  pointer-events: none;
  color: #fff;
  color: var(--color-1);
}

.restaurant-intro__overlay .container {
  pointer-events: auto;
}

.restaurant-intro__content {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
  max-width: 70rem;
}

@media (min-width: 1200px) {

.restaurant-intro__content {
    gap: 3.6rem;
}
  }

.restaurant-intro__title {
  font-size: 3em;
  line-height: 1.05;
  margin: 0;
}

@media (min-width: 1200px) {

.restaurant-intro__title {
    font-size: 4.5em;
}
  }

.restaurant-intro__contacts {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  font-size: 1.4rem;
}

@media (min-width: 1200px) {

.restaurant-intro__contacts {
    font-size: 1.6rem;
}
  }

.restaurant-intro__line {
  margin: 0;
  color: #fff;
  color: var(--color-1);
}

.restaurant-intro__hours {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  font-size: 1.4rem;
}

@media (min-width: 1200px) {

.restaurant-intro__hours {
    font-size: 1.6rem;
}
  }

.restaurant-intro__hours-note {
  margin: 0;
  max-width: 52rem;
  font-size: 1.3rem;
  line-height: 1.4;
  opacity: 0.85;
}

@media (min-width: 1200px) {

.restaurant-intro__hours-note {
    font-size: 1.5rem;
}
  }

.restaurant-intro__hours-row + .restaurant-intro__hours-note {
  margin-top: 0.4rem;
}

.restaurant-intro__hours-title {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin-bottom: 0.4rem;
}

.restaurant-intro__hours-icon {
  position: relative;
  display: inline-block;
  width: 2.4rem;
  height: 2.4rem;
  border: 0.1rem solid #fff;
  border: 0.1rem solid var(--color-1);
  border-radius: 50%;
  flex-shrink: 0;
}

/* Часовая стрелка (вверх к 12) */
.restaurant-intro__hours-icon::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0.1rem;
  height: 0.7rem;
  background: #fff;
  background: var(--color-1);
  transform-origin: bottom center;
  transform: translate(-50%, -100%);
}

/* Минутная стрелка (вправо к 3) */
.restaurant-intro__hours-icon::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0.9rem;
  height: 0.1rem;
  background: #fff;
  background: var(--color-1);
  transform-origin: left center;
  transform: translate(0, -50%);
}

.restaurant-intro__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 0.8rem;
}

@media (min-width: 1200px) {

.restaurant-intro__actions {
    gap: 1.6rem;
}
  }

.restaurant-intro__actions .button.bg-color-1:hover {
  color: #000;
  color: var(--color-2);
}

/* ---- Breadcrumb ---- */

.restaurant-detail__item.breadcrumb-wrap {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.85em;
  color: #666;
  color: var(--color-muted);
}

.restaurant-detail__item.breadcrumb-wrap a {
  color: #666;
  color: var(--color-muted);
  -webkit-text-decoration: none;
  text-decoration: none;
  transition: color 0.2s;
}

.restaurant-detail__item.breadcrumb-wrap a:hover {
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-decoration-color: #E65901;
  text-decoration-color: var(--color-3);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.25em;
}

.restaurant-detail__item.breadcrumb-wrap .breadcrumb-sep {
  color: #D4D2D2;
  color: var(--color-6);
}

/* ---- About ---- */

.restaurant-detail__item.about-wrap {
  background: #000;
  background: var(--color-2);
  color: #fff;
  color: var(--color-1);
  padding-top: 5rem;
  padding-bottom: 5rem;
}

@media (min-width: 1200px) {

.restaurant-detail__item.about-wrap {
    padding-top: 10rem;
    padding-bottom: 10rem;
}
  }

.restaurant-detail .about-wrap .container-md {
  display: flex;
  flex-direction: column;
  gap: 4rem;
}

.restaurant-detail .about-wrap .section__item.heading-wrap {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}

@media (min-width: 1200px) {

.restaurant-detail .about-wrap .section__item.heading-wrap {
    gap: 2rem;
}
  }

.restaurant-detail .about-wrap .section__item.heading-wrap .heading {
  font-size: 2em;
  line-height: 1.1;
  margin: 0;
}

@media (min-width: 1200px) {

.restaurant-detail .about-wrap .section__item.heading-wrap .heading {
    font-size: 3.2em;
}
  }

.restaurant-about__sub {
  margin: 0;
  max-width: 90rem;
  font-size: 1.4em;
  line-height: 1.3;
  color: #D4D2D2;
  color: var(--color-6);
}

@media (min-width: 1200px) {

.restaurant-about__sub {
    font-size: 1.8em;
}
  }

.restaurant-detail .about-wrap .section__item.desc-wrap {
  font-size: 1em;
  line-height: 1.5;
  color: #fff;
  color: var(--color-1);
  max-width: 80rem;
}

.restaurant-detail .about-wrap .restaurant-about__col {
  margin: 0;
}

.restaurant-about__logo {
  display: flex;
  justify-content: flex-start;
}

.restaurant-about__logo img {
  display: block;
  width: auto;
  max-width: 100%;
  filter: brightness(0) invert(1);
}

.restaurant-about__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

@media (min-width: 1200px) {

.restaurant-about__actions {
    gap: 1.6rem;
}
  }

.restaurant-about__staff {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.restaurant-staff__heading {
  font-size: 1em;
  font-weight: 500;
  margin: 0;
}

.restaurant-staff__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-gap: 0.5rem 2.5rem;
  gap: 0.5rem 2.5rem;
  grid-template-columns: 1fr;
}

@media (min-width: 992px) {

.restaurant-staff__list {
    grid-template-columns: 1fr 1fr;
}
  }

.restaurant-staff__item {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem;
}

.restaurant-staff__role {
  color: #fff;
  color: var(--color-1);
  opacity: 0.7;
}

.restaurant-staff__name {
  color: #fff;
  color: var(--color-1);
}

/* Галерея. Телефон: лента одинаковых кадров с листанием вбок — два десятка снимков
   в столбик отжимают вниз и вопросы гостей, и соседние рестораны. Планшет и десктоп:
   ряды разной крупности — целый кадр, половины, трети, четверти. Ширины расставляет
   шаблон, ряды по построению закрываются целиком. */
.restaurant-about__gallery-block {
  --gallery-gap: 0.8rem;
}
@media (min-width: 768px) {
.restaurant-about__gallery-block {
    --gallery-gap: 1.6rem;
}
  }
@media (min-width: 1200px) {
.restaurant-about__gallery-block {
    --gallery-gap: 2rem;
}
  }

.restaurant-about__gallery {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 76%;
  grid-gap: var(--gallery-gap);
  gap: var(--gallery-gap);
  padding-bottom: 0.4rem;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.restaurant-about__gallery::-webkit-scrollbar {
  display: none;
}

.restaurant-about__gallery .restaurant-about__photo {
  scroll-snap-align: center;
}

.restaurant-about__photo {
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  border-radius: 1.6rem;
}

@media (min-width: 1200px) {

.restaurant-about__photo {
    border-radius: 2.4rem;
}
  }

.restaurant-about__photo img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.restaurant-about__photo > a {
  display: block;
  width: 100%;
  height: 100%;
}

/* Переключатель «показать ещё» — чекбокс, без единой строчки JS. */
.restaurant-about__gallery-toggle {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}

.restaurant-about__gallery-more {
  display: none;
}

@media (min-width: 768px) {
  .restaurant-about__gallery {
    grid-auto-flow: row;
    grid-auto-columns: auto;
    grid-template-columns: repeat(12, 1fr);
    padding-bottom: 0;
    overflow-x: visible;
    scroll-snap-type: none;
  }

  /* Ширина кадра приходит из данных, пропорция закреплена за ней: кадры одного размера
     в ряду всегда одной высоты, без подгонки. */
  .restaurant-about__photo--w12 {
    grid-column: span 12;
    aspect-ratio: 16 / 9;
  }

  .restaurant-about__photo--w6 {
    grid-column: span 6;
    aspect-ratio: 3 / 2;
  }

  .restaurant-about__photo--w4 {
    grid-column: span 4;
    aspect-ratio: 4 / 3;
  }

  /* На планшете четверти встают по две в ряд: вчетвером на такой ширине кадры
     превращаются в почтовые марки. */
  .restaurant-about__photo--w3 {
    grid-column: span 6;
    aspect-ratio: 3 / 2;
  }

  /* Свёрнутая галерея показывает первые три ряда целиком: где обрыв придётся на середину
     ряда, последний кадр повис бы один. Кадры за обрезом помечены в шаблоне. */
  .restaurant-about__gallery--collapsible .restaurant-about__photo--extra {
    display: none;
  }

  .restaurant-about__gallery-block:has(.restaurant-about__gallery-toggle:checked) .restaurant-about__photo--extra {
    display: block;
  }

  .restaurant-about__gallery-more {
    display: inline-flex;
    width: -moz-fit-content;
    width: fit-content;

    /* Отступ до кнопки равен зазору между кадрами — кнопка читается как часть сетки. */
    margin-top: var(--gallery-gap);
  }

  .restaurant-about__gallery-more-close {
    display: none;
  }

  .restaurant-about__gallery-block:has(.restaurant-about__gallery-toggle:checked) .restaurant-about__gallery-more-open {
    display: none;
  }

  .restaurant-about__gallery-block:has(.restaurant-about__gallery-toggle:checked) .restaurant-about__gallery-more-close {
    display: inline;
  }
}

@media (min-width: 1200px) {
  .restaurant-about__photo--w3 {
    grid-column: span 3;
    aspect-ratio: 1 / 1;
  }
}
/* ============================================
   Page: event detail (страница события)
   ============================================ */

.event-detail {
  display: flex;
  flex-direction: column;
  background: #000;
  background: var(--color-2);
  color: #fff;
  color: var(--color-1);
}

/* ---------- HERO ---------- */

.event-hero {
  position: relative;
  min-height: 46rem;
  display: flex;
  align-items: flex-end;
}

@media (min-width: 992px) {

.event-hero {
    min-height: 64rem;
}
  }

.event-hero__media {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  overflow: hidden;
  background: #151515;
  background: var(--color-7);
}

.event-hero__img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.event-hero__scrim {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background:
    linear-gradient(to top, rgba(0, 0, 0, 0.92) 0%, rgba(0, 0, 0, 0.4) 40%, rgba(0, 0, 0, 0.1) 100%);
}

.event-hero__overlay {
  position: relative;
  width: 100%;
  padding: 4rem 0 4.4rem;
}

@media (min-width: 992px) {

.event-hero__overlay {
    padding: 6rem 0 6.4rem;
}
  }

.event-hero__content {
  max-width: 82rem;
  color: #fff;
  color: var(--color-1);
}

.event-hero__eyebrow {
  display: inline-block;
  padding: 0.6rem 1.4rem;
  margin-bottom: 1.8rem;
  font-size: 1.3rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #000;
  color: var(--color-2);
  background: #fff;
  background: var(--color-1);
  border-radius: 10rem;
}

.event-hero__title {
  font-size: 3.6rem;
  line-height: 1.05;
  letter-spacing: 0.01em;
}

@media (min-width: 768px) {

.event-hero__title {
    font-size: 5.2rem;
}
  }

@media (min-width: 1200px) {

.event-hero__title {
    font-size: 6.4rem;
}
  }

.event-hero__facts {
  display: flex;
  flex-wrap: wrap;
  gap: 1.2rem 2.8rem;
  margin-top: 2.4rem;
  font-size: 1.6rem;
}

@media (min-width: 768px) {

.event-hero__facts {
    font-size: 1.8rem;
}
  }

.event-hero__fact {
  display: inline-flex;
  align-items: center;
  gap: 0.9rem;
  color: rgba(255, 255, 255, 0.92);
}

.event-hero__fact-icon {
  display: inline-flex;
  color: inherit;
  opacity: 0.7;
}

/* ---------- BODY + STICKY TICKET ---------- */

.event-body {
  background: #000;
  background: var(--color-2);
}

.event-body__grid {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 4rem;
  gap: 4rem;
}

@media (min-width: 992px) {

.event-body__grid {
    grid-template-columns: minmax(0, 1fr) 36rem;
    gap: 5rem;
    align-items: start;
}
  }

/* Ритм левой колонки — через gap на родителе (конвенция платформы), без своих margin у блоков.
   У <p> нет глобального reset — браузерные margin ломают ритм, обнуляем в пределах колонки */
.event-body__main {
  display: flex;
  flex-direction: column;
  gap: 6rem;
}

.event-body__main p {
  margin: 0;
}

.event-body__intro {
  display: grid;
  grid-gap: 1.4rem;
  gap: 1.4rem;
}

.event-body__place {
  font-size: 1.4rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #D4D2D2;
  color: var(--color-6);
}

.event-body__lead {
  font-size: 2rem;
  line-height: 1.5;
  font-weight: 500;
  color: #fff;
  color: var(--color-1);
}

@media (min-width: 768px) {

.event-body__lead {
    font-size: 2.4rem;
}
  }

.event-body__text {
  font-size: 1.7rem;
  line-height: 1.7;
  color: #D4D2D2;
  color: var(--color-6);
}

.event-body__text p + p {
  margin-top: 1.4rem;
}

/* ---- Content blocks ---- */

.event-block {
  margin-top: 0; /* ритм задаёт gap родителя .event-body__main */
}

.event-block__heading {
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #D4D2D2;
  color: var(--color-6);
  padding-bottom: 1.4rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  margin-bottom: 2rem;
}

/* Программа */

.event-program {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.event-program__item {
  display: flex;
  gap: 2rem;
  padding: 1.4rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  font-size: 1.7rem;
}

.event-program__item:last-child {
  border-bottom: 0;
}

.event-program__time {
  flex-shrink: 0;
  min-width: 6rem;
  font-weight: 600;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  color: #fff;
  color: var(--color-1);
}

.event-program__title {
  color: #D4D2D2;
  color: var(--color-6);
}

/* В стоимость входит — список с тематическими иконками */

.event-includes {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 1.4rem 3rem;
}

.event-includes__item {
  display: inline-flex;
  align-items: center;
  gap: 1.2rem;
  font-size: 1.5rem;
  line-height: 1.3;
  color: #fff;
  color: var(--color-1);
}

.event-includes__mark {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  color: #000;
  color: var(--color-2);
  background: #fff;
  background: var(--color-1);
}

/* Крупные заголовки разделов и акцентные абзацы (референс vechervosobnyake-italy.ru) */

.event-body__section {
  display: grid;
  grid-gap: 1.6rem;
  gap: 1.6rem;
}

.event-h2 {
  display: block; /* глобальный reset делает h1-h6 inline-block — бокс сжимается и text-align:center не центрирует по колонке */
  width: 100%;
  font-family: "TT Norms Pro Expanded", "TT Norms Pro", sans-serif;
  font-family: var(--font-1-extended);
  font-size: 2em;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-align: center;
  margin: 0;
}

@media (min-width: 768px) {

.event-h2 {
    font-size: 2.57em;
}
  }


.event-accent {
  margin: 0;
  text-align: center;
  font-size: 1.43em;
  line-height: 1.65;
}


@media (min-width: 768px) {


.event-accent {
    font-size: 1.57em;
}
  }

.event-accent p {
  max-width: 66ch;
  margin: 0 auto;
}

.event-accent::before,
.event-accent::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  margin: 0 auto;
  background: #888;
  background: var(--color-border);
}

.event-accent::before { margin-bottom: 2.4rem; }
.event-accent::after { margin-top: 2.4rem; }

/* Меню вечера — по референсу лендинга vechervosobnyake-italy.ru:
   тёмный фон страницы, светлый текст, центрированные заголовки с золотыми линиями */

.event-menu {
  display: grid;
  grid-gap: 1.6rem;
  gap: 1.6rem;
}

.event-menu__intro {
  font-size: 1.21em;
  line-height: 1.7;
  color: #D4D2D2;
  color: var(--color-6);
}

.event-menu__groups {
  display: grid;
  grid-gap: 3.6rem;
  gap: 3.6rem;
}

.event-menu__group {
  text-align: center;
}

.event-menu__group-title {
  display: flex;
  align-items: center;
  gap: 1.6rem;
  margin: 0 0 1.8rem;
  font-family: "TT Norms Pro Expanded", "TT Norms Pro", sans-serif;
  font-family: var(--font-1-extended);
  font-size: 1.5em;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: #fff;
  color: var(--color-1);
  white-space: nowrap;
}

.event-menu__group-title::before,
.event-menu__group-title::after {
  content: "";
  flex: 1 1 0;
  height: 1px;
  background: #c44c01;
}

.event-menu__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-gap: 1.1rem;
  gap: 1.1rem;
  justify-items: center;
}

.event-menu__item {
  max-width: 46ch;
  line-height: 1.5;
  color: #fff;
  color: var(--color-1);
}

.event-menu__more {
  display: contents; /* группы наследуют сетку .event-menu__groups */
}

.event-menu__more[hidden] {
  display: none;
}

.event-menu__toggle {
  justify-self: center;
  padding: 1.2rem 2.8rem;
  background: none;
  border: 1px solid #c44c01;
  border-radius: 2.4rem;
  color: #fff;
  color: var(--color-1);
  font: inherit;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
  transition: 0.25s all ease-out;
  transition: var(--transition-1);
}

.event-menu__toggle:hover {
  border-color: #E65901;
  border-color: var(--color-3);
  background: rgba(230, 89, 1, 0.1);
}

.event-menu__full {
  display: inline-block;
  color: #fff;
  color: var(--color-1);
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-underline-offset: 0.3em;
}

/* Галерея */

.event-gallery {
  /* асимметричная сетка: узкая (портрет) + широкая (ландшафт), затем слайд во всю ширину */
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 1.2rem;
  gap: 1.2rem;
}

@media (min-width: 768px) {

.event-gallery {
    grid-template-columns: 2fr 3fr;
    gap: 1.6rem;
}
  }

.event-gallery__figure {
  margin: 0;
  overflow: hidden;
  border-radius: 1.2rem;
  height: 32rem;
}

@media (min-width: 768px) {

.event-gallery__figure {
    height: 52rem;
}
  }

.event-gallery__figure img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: 0.5s all ease-out;
  transition: var(--transition-2);
}

.event-gallery__figure:hover img {
  transform: scale(1.05);
}

/* каждый третий слайд (карта прохода) — самостоятельный центрированный блок
   с естественными пропорциями изображения, как на референсе */
.event-gallery__figure:nth-child(3n) {
  grid-column: 1 / -1;
  height: auto;
  aspect-ratio: auto;
  max-width: 72rem;
  width: 100%;
  margin: 0 auto;
}

.event-gallery__figure:nth-child(3n) img {
  height: auto;
  -o-object-fit: initial;
     object-fit: initial;
}

.event-gallery__figure .glightbox {
  /* инлайновая ссылка не даёт высоту img — растягиваем на весь figure */
  display: block;
  width: 100%;
  height: 100%;
}

.event-gallery__figure img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: 0.5s all ease-out;
  transition: var(--transition-2);
}

.event-gallery__figure:hover img {
  transform: scale(1.05);
}

/* ---- Sticky ticket card ---- */

/* На мобиле карточка дублирует форму брони (сводка+CTA) — показываем только на десктопе */
.event-ticket {
  display: none;
}
@media (min-width: 992px) {
.event-ticket {
    /* липкая шапка 12rem высотой + воздух */
    display: block;
    position: sticky;
    top: 14.4rem;
}
  }

.event-ticket__card {
  padding: 2.6rem 2.4rem;
  background: #151515;
  background: var(--color-7);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 1.8rem;
}

.event-ticket__date {
  display: flex;
  align-items: center;
  gap: 1.4rem;
  padding-bottom: 2rem;
  margin-bottom: 2rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.event-ticket__date-day {
  font-family: "TT Norms Pro", sans-serif;
  font-family: var(--font-1);
  font-weight: 600;
  font-size: 4.4rem;
  line-height: 1;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  color: #fff;
  color: var(--color-1);
}

.event-ticket__date-rest {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.event-ticket__date-month {
  font-size: 1.8rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #fff;
  color: var(--color-1);
}

.event-ticket__date-weekday {
  font-size: 1.4rem;
  color: #D4D2D2;
  color: var(--color-6);
}

.event-ticket__facts {
  list-style: none;
  margin: 0 0 2rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}

.event-ticket__facts li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1.6rem;
  font-size: 1.5rem;
}

.event-ticket__facts span {
  color: #D4D2D2;
  color: var(--color-6);
}

.event-ticket__facts b {
  font-weight: 500;
  text-align: right;
  color: #fff;
  color: var(--color-1);
}

.event-ticket__seats {
  font-weight: 600;
}

.event-ticket__price {
  display: flex;
  align-items: baseline;
  gap: 0.8rem;
  padding: 1.8rem 0;
  margin-bottom: 1.8rem;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.event-ticket__price-label {
  font-size: 1.4rem;
  color: #D4D2D2;
  color: var(--color-6);
}

.event-ticket__price-value {
  font-weight: 600;
  font-size: 2.8rem;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  color: #fff;
  color: var(--color-1);
}

.event-ticket__price-value--tba {
  font-size: 1.7rem;
  font-weight: 500;
  color: #D4D2D2;
  color: var(--color-6);
}

.event-ticket__cta {
  display: flex;
  width: 100%;
  justify-content: center;
}

/* Длинный текст («В лист ожидания» и т.п.) не ломает кнопку фикс-высоты */
.event-ticket__cta.button {
  height: auto;
  min-height: 5rem;
  padding-top: 1.2rem;
  padding-bottom: 1.2rem;
  text-align: center;
}

.event-ticket__share {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  width: 100%;
  margin-top: 1.2rem;
  padding: 1rem;
  font-size: 1.4rem;
  color: #D4D2D2;
  color: var(--color-6);
  background: transparent;
  border: 0;
  cursor: pointer;
  transition: 0.25s all ease-out;
  transition: var(--transition-1);
}

.event-ticket__share:hover {
  color: #fff;
  color: var(--color-1);
}

/* ---------- Оформление ---------- */

.event-buy {
  background: #000;
  background: var(--color-2);
  color: #fff;
  color: var(--color-1);
  padding-top: 0; /* .section даёт 6rem сверху, а event-body уже даёт 6rem снизу — двойной зазор */
}

/* заголовок, подводка и форма — по центру ЛЕВОЙ колонки двухколоночного блока выше
   (контент сужается на ширину aside 36rem + gap 5rem) */
.event-buy .container {
  display: grid;
  grid-gap: 3.2rem;
  gap: 3.2rem;
}

.event-buy .heading-wrap {
  text-align: center;
  display: grid;
  grid-gap: 1.4rem;
  gap: 1.4rem;
}

@media (min-width: 992px) {
  .event-buy .section__item {
    width: calc(100% - 41rem);
  }

  /* карточку формы центрируем по той же левой колонке:
     max-width+margin:auto центрировали её по всему контейнеру */
  .event-buy .event-buy__form {
    margin-left: max(0rem, calc((100% - 41rem - 76rem) / 2));
    margin-right: 0;
    margin-top: 0;
  }
}

.event-buy__heading {
  font-family: "TT Norms Pro Expanded", "TT Norms Pro", sans-serif;
  font-family: var(--font-1-extended);
  font-size: 2em;
  font-weight: 500;
  letter-spacing: 0.04em;
}

@media (min-width: 768px) {

.event-buy__heading {
    font-size: 2.57em;
}
  }

.event-buy__sub {
  max-width: 72ch;
  margin: 0 auto;
  font-size: 1.14em;
  line-height: 1.6;
  color: #D4D2D2;
  color: var(--color-6);
}

/* Панель формы — как карточка билета в aside */

.event-buy__form {
  max-width: 76rem;
  margin: 0 auto;
  padding: 2.4rem 2rem;
  background: #151515;
  background: var(--color-7);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 1.8rem;
}

@media (min-width: 768px) {

.event-buy__form {
    padding: 3.2rem 3.6rem;
}
  }

/* Тёмная форма: поля-боксы с видимыми лейблами */

.event-buy .form-callback .form-callback__input {
  padding: 1.3rem 1.6rem;
  color: #fff;
  color: var(--color-1);
  caret-color: #fff;
  caret-color: var(--color-1);
  background-color: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 1rem;
  transition: 0.25s all ease-out;
  transition: var(--transition-1);
}

.event-buy .form-callback .form-callback__input::-moz-placeholder {
  color: rgba(255, 255, 255, 0.55);
  opacity: 1;
}

.event-buy .form-callback .form-callback__input::placeholder {
  color: rgba(255, 255, 255, 0.55);
  opacity: 1;
}

.event-buy .form-callback .form-callback__input:focus {
  background-color: rgba(255, 255, 255, 0.09);
  border-color: rgba(255, 255, 255, 0.6);
}

.event-buy .form-callback__item.error .form-callback__input {
  border-color: #f44336;
  border-color: var(--color-error);
}

.form-ticket__label {
  display: block;
  margin-bottom: 0.7rem;
  font-size: 1.3rem;
  letter-spacing: 0.04em;
  color: #D4D2D2;
  color: var(--color-6);
}

/* Сводка: что бронируем */

.form-ticket__summary {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1.6rem 2.4rem;
  flex-wrap: wrap;
  padding-bottom: 1.8rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.form-ticket__summary-title {
  display: block;
  font-size: 1.8rem;
  font-weight: 600;
}

.form-ticket__summary-meta {
  display: block;
  margin-top: 0.4rem;
  font-size: 1.4rem;
  color: #D4D2D2;
  color: var(--color-6);
}

.form-ticket__summary-price {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  line-height: 1.2;
}

.form-ticket__summary-price span {
  font-size: 1.2rem;
  color: #D4D2D2;
  color: var(--color-6);
}

.form-ticket__summary-price b {
  font-weight: 600;
  font-size: 1.8rem;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
}

/* Итого — лейбл и цена по базовой линии */

.form-ticket__total {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 0.7rem;
  font-size: 1.5rem;
  color: #D4D2D2;
  color: var(--color-6);
}

.form-ticket__total b {
  vertical-align: baseline;
  font-weight: 600;
  font-size: 2rem;
  color: #fff;
  color: var(--color-1);
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
}

/* Кнопка — денежное действие на всю ширину */

.event-buy .form-ticket__submit {
  width: 100%;
  justify-content: center;
}

/* Сообщение об успехе на тёмном */

.event-buy .form-callback__success-title {
  color: #fff;
  color: var(--color-1);
}

.event-buy .form-callback__success-text {
  color: #D4D2D2;
  color: var(--color-6);
}

.event-buy .form-callback .form-callback__select {
  background-image: url("/data/img/ui/icons/icon-triangle-down-color-1.svg");
  background-repeat: no-repeat;
  background-position: right 1.4rem center;
  background-size: 1rem 1rem;
  padding-right: 3.8rem;
}

.event-buy .form-callback .form-callback__select:invalid {
  color: rgba(255, 255, 255, 0.55);
}

.event-buy .form-callback .form-callback__select option {
  color: #000;
  color: var(--color-2);
  background: #fff;
  background: var(--color-1);
}

.event-buy .form-callback__custom-checkbox .form-callback__checkmark {
  border-color: #fff;
  border-color: var(--color-1);
}

.event-buy .form-callback__checkmark::after {
  background: #fff;
  background: var(--color-1);
}

.event-buy .form-callback__placeholder {
  color: #D4D2D2;
  color: var(--color-6);
}

.event-buy .form-callback__rules {
  color: #D4D2D2;
  color: var(--color-6);
}

.event-buy .form-callback__input:focus-visible,
.event-buy .form-callback .form-callback__checkbox:focus-visible + .form-callback__checkmark,
.event-buy .form-callback button:focus-visible {
  outline-color: #fff;
  outline-color: var(--color-1);
}

/* Форма заказа билета: свои grid-области поверх базовой формы */

.form-ticket__container {
  gap: 1.8rem;
  grid-template-areas:
    "summary"
    "name"
    "phone"
    "email"
    "tickets"
    "total"
    "button"
    "policy"
    "rules"
    "error";
}

@media (min-width: 768px) {

.form-ticket__container {
    grid-template-columns: 1fr 1fr;
    -moz-column-gap: 2.4rem;
         column-gap: 2.4rem;
    grid-template-areas:
      "summary summary"
      "name phone"
      "email tickets"
      "total total"
      "button button"
      "policy policy"
      "rules rules"
      "error error";
}
  }

.form-callback__item.form-ticket-item-summary {
  grid-area: summary;
}

.form-callback__item.form-ticket-item-total {
  grid-area: total;
}

.form-callback__item.form-ticket-item-name {
  grid-area: name;
}

.form-callback__item.form-ticket-item-phone {
  grid-area: phone;
}

.form-callback__item.form-ticket-item-email {
  grid-area: email;
}

.form-callback__item.form-ticket-item-tickets {
  grid-area: tickets;
}

/* Приписка про оплату: во всю ширину формы, крупнее */
.form-callback__item.form-ticket-pay-note {
  grid-column: 1 / -1;
}

.form-ticket-pay-note .form-callback__rules {
  font-size: 0.93em;
  line-height: 1.5;
}

/* Количество мест: степпер −/+ */

.form-ticket__qty {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.5rem 0.6rem;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 1rem;
}

.form-ticket__qty-btn {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.4rem;
  height: 3.4rem;
  font-size: 1.9rem;
  line-height: 1;
  color: #fff;
  color: var(--color-1);
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 50%;
  cursor: pointer;
  transition: 0.25s all ease-out;
  transition: var(--transition-1);
}

@media (hover: hover) and (pointer: fine) {
  .form-ticket__qty-btn:hover {
    background: #fff;
    background: var(--color-1);
    color: #000;
    color: var(--color-2);
  }
}

.form-ticket__qty-btn:disabled {
  opacity: 0.35;
  pointer-events: none;
}

.event-buy .form-callback .form-ticket__qty-input {
  width: 6rem;
  padding: 0.4rem 0;
  text-align: center;
  font-size: 1.8rem;
  font-weight: 600;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  background: transparent;
  border: 0;
  border-radius: 0;
  -webkit-appearance: textfield;
     -moz-appearance: textfield;
          appearance: textfield;
}

.form-ticket__qty-input::-webkit-outer-spin-button,
.form-ticket__qty-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
          appearance: none;
  margin: 0;
}

#page-content:has(.event-detail) {
  background: #000;
  background: var(--color-2);
}

/* ---------- Mobile sticky bar ---------- */

.event-stickybar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 980;
  z-index: var(--z-index-3);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.6rem;
  padding: 1.2rem 1.6rem calc(1.2rem + env(safe-area-inset-bottom));
  background: #151515;
  background: var(--color-7);
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  transform: translateY(0);
  transition: 0.25s all ease-out;
  transition: var(--transition-1);
}

@media (min-width: 992px) {

.event-stickybar {
    display: none;
}
  }

.event-stickybar.is-hidden {
  transform: translateY(120%);
}

.event-stickybar__price {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
}

.event-stickybar__label {
  font-size: 1.2rem;
  color: #D4D2D2;
  color: var(--color-6);
}

.event-stickybar__value {
  font-weight: 600;
  font-size: 1.9rem;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  color: #fff;
  color: var(--color-1);
}

.event-stickybar__cta {
  flex-shrink: 0;
}

@media (prefers-reduced-motion: reduce) {
  .card-event,
  .card-event__img,
  .event-gallery__figure img,
  .event-stickybar {
    transition: none;
  }
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL21haW4uY3NzIiwiLi4vYmFzZS92YXJpYWJsZXMuY3NzIiwiLi4vYmFzZS9mb250cy5jc3MiLCIuLi9iYXNlL2dlbmVyYWwuY3NzIiwiLi4vYmFzZS90eXBvZ3JhcGh5LmNzcyIsIi4uL2Jhc2UvZ3JpZC5jc3MiLCIuLi9iYXNlL2xpbmtzLmNzcyIsIi4uL2Jhc2UvYnV0dG9ucy5jc3MiLCIuLi9iYXNlL2hlbHBlcnMuY3NzIiwiLi4vYmFzZS9hbmltYXRpb25zLmNzcyIsIi4uL3NlY3Rpb25zL2hlYWRlci5jc3MiLCIuLi9zZWN0aW9ucy9mb290ZXIuY3NzIiwiLi4vc2VjdGlvbnMvYnVyZ2VyLW1lbnUuY3NzIiwiLi4vc2VjdGlvbnMvY29udGFjdHMuY3NzIiwiLi4vc2VjdGlvbnMvY29udGFjdHMtaHViLmNzcyIsIi4uL3NlY3Rpb25zL2NvbnRlbnQuY3NzIiwiLi4vc2VjdGlvbnMvY29va2llLXBhbmVsLmNzcyIsIi4uL3NlY3Rpb25zL2ludHJvLmNzcyIsIi4uL3NlY3Rpb25zL2hlYWRsaW5lLmNzcyIsIi4uL3NlY3Rpb25zL293bmVycy5jc3MiLCIuLi9zZWN0aW9ucy91cy5jc3MiLCIuLi9zZWN0aW9ucy9uYXZpZ2F0aW9uLmNzcyIsIi4uL3NlY3Rpb25zL3Jlc3RhdXJhbnRzLmNzcyIsIi4uL3NlY3Rpb25zL3Jlc3RhdXJhbnQtbmVhcmJ5LmNzcyIsIi4uL3NlY3Rpb25zL3Jlc3RhdXJhbnQtc3RvcnkuY3NzIiwiLi4vc2VjdGlvbnMvZ3JvdXAtc3RvcnkuY3NzIiwiLi4vc2VjdGlvbnMvZmFxLWJsb2NrLmNzcyIsIi4uL3NlY3Rpb25zL2V2ZW50cy5jc3MiLCIuLi9jb21wb25lbnRzL2FuYWx5dGljcy5jc3MiLCIuLi9jb21wb25lbnRzL2Jsb2NrcXVvdGUuY3NzIiwiLi4vY29tcG9uZW50cy9idXJnZXItaWNvbi5jc3MiLCIuLi9jb21wb25lbnRzL2J1cmdlci1tZW51LmNzcyIsIi4uL2NvbXBvbmVudHMvYnV0dG9uLmNzcyIsIi4uL2NvbXBvbmVudHMvY292ZXIuY3NzIiwiLi4vY29tcG9uZW50cy9jdXN0b20tY2hlY2tib3guY3NzIiwiLi4vY29tcG9uZW50cy9jdXN0b20tbGlzdC5jc3MiLCIuLi9jb21wb25lbnRzL2ZlYXR1cmVzLWxpc3QuY3NzIiwiLi4vY29tcG9uZW50cy9mb3JtLWNhbGxiYWNrLmNzcyIsIi4uL2NvbXBvbmVudHMvZ2xpZ2h0Ym94LWN1c3RvbS5jc3MiLCIuLi9jb21wb25lbnRzL2hlYWRpbmcuY3NzIiwiLi4vY29tcG9uZW50cy9udW1iZXJlZC1saXN0LmNzcyIsIi4uL2NvbXBvbmVudHMvc2xpZGVyLmNzcyIsIi4uL2NvbXBvbmVudHMvc3BvaWxlci5jc3MiLCIuLi9jb21wb25lbnRzL2NhcmQtb3duZXIuY3NzIiwiLi4vY29tcG9uZW50cy9jYXJkLW5hdi5jc3MiLCIuLi9jb21wb25lbnRzL2J1dHRvbi1zZWN0aW9uLmNzcyIsIi4uL2NvbXBvbmVudHMvY2FyZC1ncmFkaWVudC5jc3MiLCIuLi9jb21wb25lbnRzL2NhcmQtbnVtYmVyLmNzcyIsIi4uL2NvbXBvbmVudHMvY2FyZC1yZXN0YXVyYW50LmNzcyIsIi4uL2NvbXBvbmVudHMvY2FyZC1ldmVudC5jc3MiLCIuLi9wYWdlcy80MDQuY3NzIiwiLi4vcGFnZXMvY29udGFjdHMuY3NzIiwiLi4vcGFnZXMvaW5kZXguY3NzIiwiLi4vc2VjdGlvbnMvbG9nb2xpbmUuY3NzIiwiLi4vc2VjdGlvbnMvcHJvbW8uY3NzIiwiLi4vcGFnZXMvcmVzdGF1cmFudHMuY3NzIiwiLi4vcGFnZXMvcmVzdGF1cmFudC5jc3MiLCIuLi9wYWdlcy9ldmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDQWhCO0lBQ0ksWUFBWTtJQUNaLGVBQWU7SUFDZixlQUFlOztJQUVmLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQixrQkFBa0I7SUFDbEIsa0JBQWtCO0lBQ2xCLGtCQUFrQjs7SUFFbEIsd0NBQXdD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c0JBQXNCO0VBQ3RCLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixjQUFxQjtFQUFyQixxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsaUJBQWlCO0VBQ2pCLDZCQUFrQztFQUFsQyxrQ0FBa0M7RUFDbEMsV0FBcUI7RUFBckIscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTtFQUNFOzs7O0lBSUUsZ0JBQWdCO0VBQ2xCO0FBQ0YiLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBCYXNlIHN0eWxlcyAqL1xuQGltcG9ydCBcImJhc2UvdmFyaWFibGVzLmNzc1wiO1xuQGltcG9ydCBcImJhc2UvZm9udHMuY3NzXCI7XG5AaW1wb3J0IFwiYmFzZS9nZW5lcmFsLmNzc1wiO1xuQGltcG9ydCBcImJhc2UvdHlwb2dyYXBoeS5jc3NcIjtcbkBpbXBvcnQgXCJiYXNlL2dyaWQuY3NzXCI7XG5AaW1wb3J0IFwiYmFzZS9saW5rcy5jc3NcIjtcbkBpbXBvcnQgXCJiYXNlL2J1dHRvbnMuY3NzXCI7XG5AaW1wb3J0IFwiYmFzZS9oZWxwZXJzLmNzc1wiO1xuQGltcG9ydCBcImJhc2UvYW5pbWF0aW9ucy5jc3NcIjtcbkBpbXBvcnQgXCJiYXNlL21xLmNzc1wiO1xuXG4vKiBTZWN0aW9ucyAqL1xuQGltcG9ydCBcInNlY3Rpb25zL2hlYWRlci5jc3NcIjtcbkBpbXBvcnQgXCJzZWN0aW9ucy9mb290ZXIuY3NzXCI7XG5AaW1wb3J0IFwic2VjdGlvbnMvYnVyZ2VyLW1lbnUuY3NzXCI7XG5AaW1wb3J0IFwic2VjdGlvbnMvY29udGFjdHMuY3NzXCI7XG5AaW1wb3J0IFwic2VjdGlvbnMvY29udGFjdHMtaHViLmNzc1wiO1xuQGltcG9ydCBcInNlY3Rpb25zL2NvbnRlbnQuY3NzXCI7XG5AaW1wb3J0IFwic2VjdGlvbnMvY29va2llLXBhbmVsLmNzc1wiO1xuQGltcG9ydCBcInNlY3Rpb25zL2ludHJvLmNzc1wiO1xuQGltcG9ydCBcInNlY3Rpb25zL2hlYWRsaW5lLmNzc1wiO1xuQGltcG9ydCBcInNlY3Rpb25zL293bmVycy5jc3NcIjtcbkBpbXBvcnQgXCJzZWN0aW9ucy91cy5jc3NcIjtcbkBpbXBvcnQgXCJzZWN0aW9ucy9uYXZpZ2F0aW9uLmNzc1wiO1xuQGltcG9ydCBcInNlY3Rpb25zL3Jlc3RhdXJhbnRzLmNzc1wiO1xuQGltcG9ydCBcInNlY3Rpb25zL3Jlc3RhdXJhbnQtbmVhcmJ5LmNzc1wiO1xuQGltcG9ydCBcInNlY3Rpb25zL3Jlc3RhdXJhbnQtc3RvcnkuY3NzXCI7XG5AaW1wb3J0IFwic2VjdGlvbnMvZ3JvdXAtc3RvcnkuY3NzXCI7XG5AaW1wb3J0IFwic2VjdGlvbnMvZmFxLWJsb2NrLmNzc1wiO1xuQGltcG9ydCBcInNlY3Rpb25zL2V2ZW50cy5jc3NcIjtcblxuLyogQ29tcG9uZW50cyAqL1xuQGltcG9ydCBcImNvbXBvbmVudHMvYW5hbHl0aWNzLmNzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvYmxvY2txdW90ZS5jc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2J1cmdlci1pY29uLmNzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvYnVyZ2VyLW1lbnUuY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9idXR0b24uY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9jb3Zlci5jc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2N1c3RvbS1jaGVja2JveC5jc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2N1c3RvbS1saXN0LmNzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvZmVhdHVyZXMtbGlzdC5jc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2Zvcm0tY2FsbGJhY2suY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9nbGlnaHRib3gtY3VzdG9tLmNzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvaGVhZGluZy5jc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL251bWJlcmVkLWxpc3QuY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9zbGlkZXIuY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9zcG9pbGVyLmNzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvY2FyZC1vd25lci5jc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2NhcmQtbmF2LmNzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvYnV0dG9uLXNlY3Rpb24uY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9jYXJkLWdyYWRpZW50LmNzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvY2FyZC1udW1iZXIuY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9jYXJkLXJlc3RhdXJhbnQuY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9jYXJkLWV2ZW50LmNzc1wiO1xuXG4vKiBQYWdlcyAqL1xuQGltcG9ydCBcInBhZ2VzLzQwNC5jc3NcIjtcbkBpbXBvcnQgXCJwYWdlcy9jb250YWN0cy5jc3NcIjtcbkBpbXBvcnQgXCJwYWdlcy9pbmRleC5jc3NcIjtcbkBpbXBvcnQgXCJzZWN0aW9ucy9sb2dvbGluZS5jc3NcIjtcbkBpbXBvcnQgXCJzZWN0aW9ucy9wcm9tby5jc3NcIjtcbkBpbXBvcnQgXCJwYWdlcy9yZXN0YXVyYW50cy5jc3NcIjtcbkBpbXBvcnQgXCJwYWdlcy9yZXN0YXVyYW50LmNzc1wiO1xuQGltcG9ydCBcInBhZ2VzL2V2ZW50LmNzc1wiO1xuIiwiOnJvb3Qge1xuICAgIC8qINCR0LDQt9C+0LLRi9C1ICovXG4gICAgLS1jb2xvci0xOiAjZmZmO1xuICAgIC0tY29sb3ItMjogIzAwMDtcblxuICAgIC8qINCk0LjRgNC80LXQvdC90YvQtSAqL1xuICAgIC0tY29sb3ItMzogI0U2NTkwMTtcbiAgICAtLWNvbG9yLTQ6ICNFMjRFMkE7XG4gICAgLS1jb2xvci01OiAjRUVDNDc5O1xuICAgIC0tY29sb3ItNjogI0Q0RDJEMjtcbiAgICAtLWNvbG9yLTc6ICMxNTE1MTU7XG4gICAgLS1jb2xvci04OiAjRUJFQkVCO1xuXG4gICAgLyog0KHQu9GD0LbQtdCx0L3Ri9C1OiDQvtGI0LjQsdC60LgsINGB0YLQsNGC0YPRgdGLLCDQv9C+0LTQv9C40YHQuCAqL1xuICAgIC0tY29sb3ItZXJyb3I6ICNmNDQzMzY7XG4gICAgLS1jb2xvci1lcnJvci1iZzogcmdiKDI0NCA2NyA1NCAvIDUlKTtcbiAgICAtLWNvbG9yLXN1Y2Nlc3M6ICM0Q0FGNTA7XG4gICAgLS1jb2xvci1wbGFjZWhvbGRlcjogIzZDNkI2QjtcbiAgICAtLWNvbG9yLW11dGVkOiAjNjY2O1xuICAgIC0tY29sb3ItYm9yZGVyOiAjODg4O1xuICAgIC0tZ3JhZGllbnQtMTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgaHNsKDBkZWcgMCUgMTAwJSAvIDEwMCUpLCBoc2woMGRlZyAwJSAxMDAlIC8gMCUpKTtcbiAgICAtLWdyYWRpZW50LTI6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIGhzbCgwZGVnIDAlIDAlIC8gMTAwJSksIGhzbCgwZGVnIDAlIDAlIC8gMCUpKTtcbiAgICAtLWdyYWRpZW50LTM6IGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCAjRjFFQ0U0LCAjREFEOEQ3KTtcbn1cblxuOnJvb3Qge1xuICAgIC8qINCh0LXQvNC10LnRgdGC0LLQviDRiNGA0LjRhNGC0L7QsiBUVCBOb3JtcyBQcm8gKNCy0LDRgNC40LDRgtC40LLQvdGL0LkpICovXG4gICAgLS1mb250LTE6IFwiVFQgTm9ybXMgUHJvXCIsIHNhbnMtc2VyaWY7XG4gICAgLS1mb250LTEtZXh0ZW5kZWQ6IFwiVFQgTm9ybXMgUHJvIEV4cGFuZGVkXCIsIFwiVFQgTm9ybXMgUHJvXCIsIHNhbnMtc2VyaWY7XG59XG5cbjpyb290IHtcbiAgICAtLWhlYWRlci1maXhlZC1oZWlnaHQ6IDExLjJyZW07XG5cbiAgICBAbWVkaWEgKC0tbGcpIHtcbiAgICAgICAgLS1oZWFkZXItZml4ZWQtaGVpZ2h0OiAxMnJlbTtcbiAgICB9XG59XG5cbjpyb290IHtcbiAgICAtLXRyYW5zaXRpb24tMTogMC4yNXMgYWxsIGVhc2Utb3V0O1xuICAgIC0tdHJhbnNpdGlvbi0yOiAwLjVzIGFsbCBlYXNlLW91dDtcbiAgICAtLXRyYW5zaXRpb24tMzogMXMgYWxsIGVhc2Utb3V0O1xufVxuXG46cm9vdCB7XG4gICAgLS16LWluZGV4LTE6IDEwMDA7XG4gICAgLS16LWluZGV4LTI6IDk5MDtcbiAgICAtLXotaW5kZXgtMzogOTgwO1xuICAgIC0tei1pbmRleC00OiA5NzA7XG4gICAgLS16LWluZGV4LTU6IDk2MDtcbiAgICAtLXotaW5kZXgtNjogOTUwO1xuICAgIC0tei1pbmRleC03OiA5NDA7XG4gICAgLS16LWluZGV4LTg6IDkzMDtcbiAgICAtLXotaW5kZXgtOTogOTIwO1xuICAgIC0tei1pbmRleC0xMDogOTEwO1xufVxuIiwiLyogVFQgTm9ybXMgUHJvIEV4cGFuZGVkICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdUVCBOb3JtcyBQcm8gRXhwYW5kZWQnO1xuICBzcmM6IHVybCgnLi4vLi4vZm9udHMvdHQtbm9ybXMtcHJvLWV4cGFuZGVkL1RUTm9ybXNQcm9FeHBhbmRlZC1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1RUIE5vcm1zIFBybyBFeHBhbmRlZCc7XG4gIHNyYzogdXJsKCcuLi8uLi9mb250cy90dC1ub3Jtcy1wcm8tZXhwYW5kZWQvVFROb3Jtc1Byb0V4cGFuZGVkLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdUVCBOb3JtcyBQcm8gRXhwYW5kZWQnO1xuICBzcmM6IHVybCgnLi4vLi4vZm9udHMvdHQtbm9ybXMtcHJvLWV4cGFuZGVkL1RUTm9ybXNQcm9FeHBhbmRlZC1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdUVCBOb3JtcyBQcm8gRXhwYW5kZWQnO1xuICBzcmM6IHVybCgnLi4vLi4vZm9udHMvdHQtbm9ybXMtcHJvLWV4cGFuZGVkL1RUTm9ybXNQcm9FeHBhbmRlZC1EZW1pQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1RUIE5vcm1zIFBybyBFeHBhbmRlZCc7XG4gIHNyYzogdXJsKCcuLi8uLi9mb250cy90dC1ub3Jtcy1wcm8tZXhwYW5kZWQvVFROb3Jtc1Byb0V4cGFuZGVkLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG4vKiBUVCBOb3JtcyBQcm8gQmFzaWMgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1RUIE5vcm1zIFBybyc7XG4gIHNyYzogdXJsKCcuLi8uLi9mb250cy90dC1ub3Jtcy1wcm8tYmFzaWMvVFROb3Jtc1Byby1UaGluLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xuICBmb250LXdlaWdodDogMTAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnVFQgTm9ybXMgUHJvJztcbiAgc3JjOiB1cmwoJy4uLy4uL2ZvbnRzL3R0LW5vcm1zLXByby1iYXNpYy9UVE5vcm1zUHJvLUV4dHJhTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG4gIGZvbnQtd2VpZ2h0OiAyMDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdUVCBOb3JtcyBQcm8nO1xuICBzcmM6IHVybCgnLi4vLi4vZm9udHMvdHQtbm9ybXMtcHJvLWJhc2ljL1RUTm9ybXNQcm8tTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdUVCBOb3JtcyBQcm8nO1xuICBzcmM6IHVybCgnLi4vLi4vZm9udHMvdHQtbm9ybXMtcHJvLWJhc2ljL1RUTm9ybXNQcm8tUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1RUIE5vcm1zIFBybyc7XG4gIHNyYzogdXJsKCcuLi8uLi9mb250cy90dC1ub3Jtcy1wcm8tYmFzaWMvVFROb3Jtc1Byby1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdUVCBOb3JtcyBQcm8nO1xuICBzcmM6IHVybCgnLi4vLi4vZm9udHMvdHQtbm9ybXMtcHJvLWJhc2ljL1RUTm9ybXNQcm8tRGVtaUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdUVCBOb3JtcyBQcm8nO1xuICBzcmM6IHVybCgnLi4vLi4vZm9udHMvdHQtbm9ybXMtcHJvLWJhc2ljL1RUTm9ybXNQcm8tQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1RUIE5vcm1zIFBybyc7XG4gIHNyYzogdXJsKCcuLi8uLi9mb250cy90dC1ub3Jtcy1wcm8tYmFzaWMvVFROb3Jtc1Byby1FeHRyYUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdUVCBOb3JtcyBQcm8nO1xuICBzcmM6IHVybCgnLi4vLi4vZm9udHMvdHQtbm9ybXMtcHJvLWJhc2ljL1RUTm9ybXNQcm8tQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuIiwiKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuaHRtbCB7XG4gIGhlaWdodDogMTAwJTtcblxuICAvKiDQr9C60L7RgNC90YvQtSDQv9C10YDQtdGF0L7QtNGLINGBINC+0YLRgdGC0YPQv9C+0Lwg0L/QvtC0INC70LjQv9C60YPRjiDRiNCw0L/QutGDICovXG4gIHNjcm9sbC1wYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1oZWFkZXItZml4ZWQtaGVpZ2h0KSArIDFyZW0pO1xufVxuXG5ib2R5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8qINCR0LXQtyBoZWlnaHQ6IDEwMCUg0YHQutGA0L7Qu9C7LdC60L7QvdGC0LXQudC90LXRgNC+0Lwg0L7RgdGC0LDRkdGC0YHRjyDQtNC+0LrRg9C80LXQvdGCLiDQoSDQvdC40Lwg0LrQvtC90YLQtdC50L3QtdGA0L7QvFxuICAgICDRgdGC0LDQvdC+0LLQuNC70YHRjyBib2R5OiBzY3JvbGwtcGFkZGluZyDQvdCwIGh0bWwg0LjQs9C90L7RgNC40YDQvtCy0LDQu9GB0Y8sIHdpbmRvdy5zY3JvbGxUbyDQvdC1XG4gICAgINGA0LDQsdC+0YLQsNC7LCDQsCDQvdCwIGlPUyDQv9C+0YHQu9C1INGP0LrQvtGA0L3QvtCz0L4g0L/QtdGA0LXRhdC+0LTQsCDQv9GA0L7QutGA0YPRgtC60LAgwqvQt9Cw0LvQuNC/0LDQu9CwwrsuICovXG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi8qIGNsaXAsINCwINC90LUgaGlkZGVuOiBoaWRkZW4g0L/QviDQvtC00L3QvtC5INC+0YHQuCDQtNC10LvQsNC10YIg0Y3Qu9C10LzQtdC90YIg0YHQutGA0L7Qu9C7LdC60L7QvdGC0LXQudC90LXRgNC+0Lwg0L/QvlxuICAg0LTRgNGD0LPQvtC5IOKAlCDQuNC80LXQvdC90L4g0LjQty3Qt9CwINGN0YLQvtCz0L4g0LvQvtC80LDQu9GB0Y8gc3RpY2t5INC4INC/0L7QtCDQvdC10LPQviDQtNC+0LHQsNCy0LvRj9C70LggaGVpZ2h0OiAxMDAlLiAqL1xuYm9keSxcbmh0bWwge1xuICBvdmVyZmxvdy14OiBjbGlwO1xufVxuXG5bZGlyPVwibHRyXCJdIHtcbiAgZGlyZWN0aW9uOiBsdHI7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbltkaXI9XCJydGxcIl0ge1xuICBkaXJlY3Rpb246IHJ0bDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbnNwYW4sXG5hLFxuc3Ryb25nLFxuZW0sXG5iLFxuaSxcbnUsXG5tYXJrLFxuc21hbGwsXG5jb2RlLFxubGFiZWwsXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhLFxuaW1nLFxuc3ViLFxuc3VwLFxuYWJicixcbmNpdGUsXG5xLFxudGltZSxcbmtiZCxcbnZhcixcbnNhbXAsXG5kZm4sXG5iZG8sXG5icixcbndicixcbmRhdGEsXG5tZXRlcixcbnByb2dyZXNzLFxucnVieSxcbnJ0LFxucnAsXG5kZWwsXG5pbnMsXG5zLFxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbmltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuKjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogLjJyZW07XG4gIGhlaWdodDogLjJyZW07XG59XG5cblxuXG4qOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQ6IGhzbCgwZGVnIDAlIDAlIC8gMzAlKTtcbiAgYm9yZGVyLXJhZGl1czogMnJlbTtcbn1cblxuKjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kOiBoc2woMGRlZyAwJSAwJSAvIDEwJSk7XG59XG4iLCJodG1sIHtcbiAgZm9udC1zaXplOiAxMHB4O1xufVxuXG4qIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbmJvZHksXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC0xKTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG5cbiAgICBAbWVkaWEgKC0tbGcpIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgfVxufVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBtYXJnaW4tYmxvY2s6IDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG59XG5cbi5oMSB7XG4gIGZvbnQtc2l6ZTogMS44ZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZm9udC1zaXplOiAzLjJlbTtcbiAgfVxufVxuXG4uaDIge1xuICBmb250LXNpemU6IDEuNmVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZvbnQtc2l6ZTogMi44ZW07XG4gIH1cbn1cblxuLmgzIHtcbiAgZm9udC1zaXplOiAxLjRlbTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBmb250LXNpemU6IDIuNGVtO1xuICB9XG59XG5cbi5oNCB7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZm9udC1zaXplOiAyLjBlbTtcbiAgfVxufVxuXG4uaDUge1xuICBmb250LXNpemU6IDFlbTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBmb250LXNpemU6IDEuNmVtO1xuICB9XG59XG5cbi5oNiB7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZm9udC1zaXplOiAxLjJlbTtcbiAgfVxufVxuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLndlaWdodC0xMDAge1xuICBmb250LXdlaWdodDogMTAwO1xufVxuXG4ud2VpZ2h0LTIwMCB7XG4gIGZvbnQtd2VpZ2h0OiAyMDA7XG59XG5cbi53ZWlnaHQtMzAwIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cblxuLndlaWdodC00MDAge1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4ud2VpZ2h0LTUwMCB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi53ZWlnaHQtNjAwIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLndlaWdodC03MDAge1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4ud2VpZ2h0LTgwMCB7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG59XG5cbi53ZWlnaHQtOTAwIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbn1cblxuLmZvbnQtMSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LTEpO1xufVxuXG4udGV4dC1sZyB7XG4gIGZvbnQtc2l6ZTogMS44ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjFlbTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBmb250LXNpemU6IDIuNGVtO1xuICB9XG59XG5cbi50ZXh0LW1kIHtcbiAgZm9udC1zaXplOiAxLjRlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMWVtO1xufVxuXG4uZGVzYyB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gIH1cbn1cblxuLmxvbmdyZWFkIHtcbiAgZm9udC1zaXplOiAwLjhlbTtcbn1cbiIsIi5jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDJyZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgbWF4LXdpZHRoOiAxNzAwcHg7XG4gICAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgfVxufVxuXG4uY29udGFpbmVyLXNtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1sZWZ0OiAycmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAycmVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIG1heC13aWR0aDogODByZW07XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoKDEwMHZ3IC0gODByZW0pLzIpO1xuICAgIG1hcmdpbi1yaWdodDogY2FsYygoMTAwdncgLSA4MHJlbSkvMik7XG4gIH1cblxuICBAbWVkaWEgKC0teGwpIHtcbiAgICBtYXgtd2lkdGg6IDgwcmVtO1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKCgxMDB2dyAtIDgwcmVtKS8yKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoKDEwMHZ3IC0gODByZW0pLzIpO1xuICB9XG59XG5cbi5jb250YWluZXItbWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDJyZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgbWF4LXdpZHRoOiA5OS4ycmVtO1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKCgxMDB2dyAtIDk5LjJyZW0pLzIpO1xuICAgIG1hcmdpbi1yaWdodDogY2FsYygoMTAwdncgLSA5OS4ycmVtKS8yKTtcbiAgfVxufVxuXG4uY29udGFpbmVyLWxlZnQge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gKCgxMDB2dyAtIDE3MDBweCkgLyAyKSk7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoKDEwMHZ3IC0gMTcwMHB4KSAvIDIpO1xuICB9XG5cbiAgQG1lZGlhICgtLXhsKSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwdncgLSAoKDEwMHZ3IC0gMTcwMHB4KSAvIDIpKTtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygoMTAwdncgLSAxNzAwcHgpIC8gMik7XG4gICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCgxMDB2dyAtIDE3MDBweCkgLyAyKTtcbiAgfVxufVxuXG4uY29udGFpbmVyLWxlZnQub2Zmc2V0IHtcbiAgcGFkZGluZy1sZWZ0OiAycmVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogbWF4KDJyZW0sIGNhbGMoKDEwMHZ3IC0gMTcwMHB4KSAvIDIgKyAycmVtKSk7XG4gIH1cblxuICBAbWVkaWEgKC0teGwpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiBtYXgoMnJlbSwgY2FsYygoMTAwdncgLSAxNzAwcHgpIC8gMiArIDJyZW0pKTtcbiAgfVxufVxuXG4uc2VjdGlvbiB7XG4gIHBhZGRpbmctdG9wOiAycmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBwYWRkaW5nLXRvcDogNnJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogNnJlbTtcbiAgfVxufVxuXG4uY29udGFpbmVyLWZ1bGwge1xuICB3aWR0aDogMTAwJTtcbn0iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTGluayDigJQgYmFzZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmxpbmsge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2Utb3V0O1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ubGluazpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5saW5rOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAycHggc29saWQgY3VycmVudGNvbG9yO1xuICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG4ubGluazpob3ZlciB7XG4gIG9wYWNpdHk6IDAuODU7XG59XG5cbi5saW5rOmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLyogT3ZlcnJpZGUg0LTQu9GPIGJ1dHRvbi5saW5rIOKAlCDQsdC10Lcg0LrQvtC90YTQu9C40LrRgtCwINGBIGhvdmVyINC60L3QvtC/0LrQuCAqL1xuLmJ1dHRvbi5saW5rLFxuLmJ1dHRvbi5saW5rOmhvdmVyLFxuLmJ1dHRvbi5saW5rOmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi0xKSwgYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tMSksIGNvbG9yIHZhcigtLXRyYW5zaXRpb24tMSk7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBMaW5rIOKAlCBtb2RpZmllcnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5saW5rLmlubGluZSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuLmxpbmsudW5kZXJsaW5lOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogLTJweDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Y29sb3I7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuM3MgZWFzZTtcbn1cblxuLmxpbmsudW5kZXJsaW5lOmhvdmVyOjphZnRlciB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubGluay5kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQnV0dG9uIOKAlCBiYXNlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyLXdpZHRoOiAuMXJlbTtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yNXMgZWFzZS1vdXQsIGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgIGdhcDogMC41cmVtO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQnV0dG9uIOKAlCBlbGVtZW50cyAoY29tcG9uZW50X19lbGVtZW50KVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmJ1dHRvbl9faWNvbiB7XG4gICAgd2lkdGg6IDFyZW07XG4gICAgaGVpZ2h0OiAxcmVtO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uYnV0dG9uX19pdGVtLmNvbnRlbnQtd3JhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxcmVtO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHRleHQtd3JhcDogbm93cmFwO1xuICAgIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tMik7XG59XG5cbi5idXR0b25fX2l0ZW0uY29udGVudC13cmFwOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS10ZXh0KTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmJ1dHRvbl9faXRlbS5jb250ZW50LWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmJ1dHRvbl9fc3ViaXRlbS5pY29uLXdyYXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi0xKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQnV0dG9uIOKAlCBzaXplc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmJ1dHRvbi1zbSB7XG4gICAgaGVpZ2h0OiA0cmVtO1xuICAgIGdhcDogMXJlbTtcbiAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgZm9udC1zaXplOiAwLjllbTtcblxuICAgIEBtZWRpYSAoLS1sZykge1xuICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICB9XG59XG5cbi5idXR0b24tbWQge1xuICAgIGhlaWdodDogNXJlbTtcbiAgICBnYXA6IDFyZW07XG4gICAgcGFkZGluZzogMXJlbSAycmVtO1xufVxuXG4uYnV0dG9uLW1kIC5idXR0b25fX2l0ZW0uY29udGVudC13cmFwOjpiZWZvcmUge1xuICAgIGxlZnQ6IGNhbGMoLTEgKiAoMTAwJSAtIDNyZW0pKTtcbn1cblxuLmJ1dHRvbi1tZCAuYnV0dG9uX19zdWJpdGVtLmljb24td3JhcCB7XG4gICAgaGVpZ2h0OiAzcmVtO1xuICAgIHdpZHRoOiAzcmVtO1xufVxuXG4uYnV0dG9uLW1kIC5idXR0b25fX2ljb24ge1xuICAgIGhlaWdodDogMS40cmVtO1xufVxuXG4uYnV0dG9uLW1kLmJ1dHRvbi1jaXJjbGUge1xuICAgIHdpZHRoOiA1cmVtO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDFyZW07XG59XG5cbi5idXR0b24tbWQuYnV0dG9uLWNpcmNsZSAuYnV0dG9uX19zdWJpdGVtLmljb24tYWJzb2x1dGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBsZWZ0OiBjYWxjKC0xICogKDEwMCUgKyAxcmVtKSk7XG59XG5cbi5idXR0b24tbGcge1xuICAgIGhlaWdodDogNnJlbTtcbiAgICBnYXA6IDFyZW07XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAycmVtO1xuICAgIGZvbnQtc2l6ZTogMS4xZW07XG59XG5cbi5idXR0b24tbGcgLmJ1dHRvbl9faXRlbS5jb250ZW50LXdyYXA6OmJlZm9yZSB7XG4gICAgbGVmdDogY2FsYygtMSAqICgxMDAlIC0gNHJlbSkpO1xufVxuXG4uYnV0dG9uLWxnIC5idXR0b25fX3N1Yml0ZW0uaWNvbi13cmFwIHtcbiAgICBoZWlnaHQ6IDRyZW07XG4gICAgd2lkdGg6IDRyZW07XG59XG5cbi5idXR0b24tbGcgLmJ1dHRvbl9faWNvbiB7XG4gICAgd2lkdGg6IDEuNnJlbTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEJ1dHRvbiDigJQgc2hhcGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uYnV0dG9uLWNpcmNsZSB7XG4gICAgaGVpZ2h0OiA0LjZyZW07XG4gICAgd2lkdGg6IDQuNnJlbTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IC4xcmVtIHNvbGlkIHZhcigtLWNvbG9yLTEpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuLmJ1dHRvbi5idXR0b24tcm91bmRlZCB7XG4gICAgYm9yZGVyLXJhZGl1czogOTlyZW07XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCdXR0b24g4oCUIGNvbG9ycyAoYmFja2dyb3VuZClcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5idXR0b24uYmctY29sb3ItMSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMSk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLTIpO1xufVxuXG4uYnV0dG9uLmJnLWNvbG9yLTE6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jb2xvci0xKSwgYmxhY2sgMTAlKTtcbn1cblxuLmJ1dHRvbi5iZy1jb2xvci0xOmFjdGl2ZSxcbi5idXR0b24uYmctY29sb3ItMS5hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jb2xvci0xKSwgYmxhY2sgMjAlKTtcbn1cblxuLmJ1dHRvbi5iZy1jb2xvci0yIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0yKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5idXR0b24uYmctY29sb3ItMjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNvbG9yLTIpLCB3aGl0ZSAxNSUpO1xufVxuXG4uYnV0dG9uLmJnLWNvbG9yLTI6YWN0aXZlLFxuLmJ1dHRvbi5iZy1jb2xvci0yLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNvbG9yLTIpLCB3aGl0ZSAzMCUpO1xufVxuXG4uYnV0dG9uLmJnLWNvbG9yLTMge1xuICAgIC8qINC30LDRgtC10LzQvdGR0L3QvdGL0Lkg0L7RgtGC0LXQvdC+0Log0LHRgNC10L3QtC3QvtGA0LDQvdC20LXQstC+0LPQviAoLS1jb2xvci0zKSDQv9C+0LQg0LHQtdC70YvQuSDRgtC10LrRgdGCOiDQutC+0L3RgtGA0LDRgdGCIDQuNzk6MSAoV0NBRyBBQSkgKi9cbiAgICBiYWNrZ3JvdW5kOiAjYzQ0YzAxO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLmJ1dHRvbi5iZy1jb2xvci0zOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgI2M0NGMwMSwgd2hpdGUgMTAlKTtcbn1cblxuLmJ1dHRvbi5iZy1jb2xvci0zOmFjdGl2ZSxcbi5idXR0b24uYmctY29sb3ItMy5hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCAjYzQ0YzAxLCBibGFjayAyMCUpO1xufVxuXG4uYnV0dG9uLmJnLWNvbG9yLTYge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTYpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci0yKTtcbn1cblxuLmJ1dHRvbi5iZy1jb2xvci02OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY29sb3ItNiksIGJsYWNrIDgwJSk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4uYnV0dG9uLmJnLWNvbG9yLTY6YWN0aXZlLFxuLmJ1dHRvbi5iZy1jb2xvci02LmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMik7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4uYnV0dG9uLmJnLWNvbG9yLTgge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTgpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci0yKTtcbn1cblxuLmJ1dHRvbi5iZy1jb2xvci04OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY29sb3ItOCksIGJsYWNrIDgwJSk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4uYnV0dG9uLmJnLWNvbG9yLTg6YWN0aXZlLFxuLmJ1dHRvbi5iZy1jb2xvci04LmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMik7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQnV0dG9uIOKAlCBjb2xvcnMgKG91dGxpbmUpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uYnV0dG9uLm91dGxpbmUtY29sb3ItMSB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLmJ1dHRvbi5vdXRsaW5lLWNvbG9yLTE6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItNik7XG59XG5cbi5idXR0b24ub3V0bGluZS1jb2xvci0xOmhvdmVyIC5idXR0b25fX3N1Yml0ZW0uaWNvbi13cmFwIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci02KTtcbn1cblxuLmJ1dHRvbi5vdXRsaW5lLWNvbG9yLTIge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItMik7XG59XG5cbi5idXR0b24ub3V0bGluZS1jb2xvci0yOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0yKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLTIpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLmJ1dHRvbi5vdXRsaW5lLWNvbG9yLTI6aG92ZXIgLmJ1dHRvbl9fc3ViaXRlbS5pY29uLXdyYXAge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTYpO1xufVxuXG4vKiDQmNC60L7QvdC60LAt0LrQsNGA0YLQuNC90LrQsCDRgdC+0LLQv9Cw0LTQsNC70LAg0LHRiyDRgSDRhNC+0L3QvtC8INC/0YDQuCDRhdC+0LLQtdGA0LUgKNC+0LHQsCBjb2xvci0yKSDigJQg0LjQvdCy0LXRgNGC0LjRgNGD0LXQvCDQsiDQsdC10LvRi9C5ICovXG4uYnV0dG9uLm91dGxpbmUtY29sb3ItMjpob3ZlciAuYnV0dG9uX19pY29uIHtcbiAgICBmaWx0ZXI6IGludmVydCgxKTtcbn1cblxuLmJ1dHRvbi5vdXRsaW5lLWNvbG9yLTMge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItMyk7XG59XG5cbi5idXR0b24ub3V0bGluZS1jb2xvci0zOmhvdmVyIC5idXR0b25fX3N1Yml0ZW0uaWNvbi13cmFwIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci02KTtcbn1cblxuLmJ1dHRvbi5vdXRsaW5lLWNvbG9yLTYge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItNik7XG59XG5cbi5idXR0b24ub3V0bGluZS1jb2xvci02OmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4uYnV0dG9uLm91dGxpbmUtY29sb3ItNjpob3ZlciAuYnV0dG9uX19zdWJpdGVtLmljb24td3JhcCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItNik7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCdXR0b24g4oCUIGFuaW1hdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qINCh0YLRgNC10LvQutCwINGH0LXRgNC10LcgbWFzayArIGN1cnJlbnRDb2xvciDigJQg0YHQvtCy0L/QsNC00LDQtdGCINGBIGNvbG9yICjQstCw0LbQvdC+INC00LvRjyDRhNGD0YLQtdGA0LA6INCx0LXQu9GL0Lkg0YLQtdC60YHRgiDQvdCwINGC0ZHQvNC90L7QvCDRhNC+0L3QtSkgKi9cbi5idXR0b24tYW5pbWF0ZWQuYW5pbWF0aW9uLXNoaWZ0Om5vdCgubG9hZGluZyk6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMS4yNXJlbTtcbiAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudGNvbG9yO1xuICAgIG1hc2staW1hZ2U6IHVybChcIi9kYXRhL2ltZy91aS9pY29ucy9pY29uLWFycm93LXJpZ2h0LXNtLWNvbG9yLTIuc3ZnXCIpO1xuICAgIG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgbWFzay1wb3NpdGlvbjogY2VudGVyO1xuICAgIG1hc2stc2l6ZTogY29udGFpbjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMgZWFzZS1vdXQ7XG59XG5cbi5idXR0b24tYW5pbWF0ZWQuYW5pbWF0aW9uLXNoaWZ0Om5vdCgubG9hZGluZyk6aG92ZXI6OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMC41cmVtKTtcbn1cblxuLmJ1dHRvbi1tZC5idXR0b24tYW5pbWF0ZWQ6aG92ZXIgLmJ1dHRvbl9faXRlbS5hbmltYXRpb24tc2hpZnQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDEwMCUgLSAycmVtKSk7XG59XG5cbi5idXR0b24tbWQuYnV0dG9uLWNpcmNsZS5idXR0b24tYW5pbWF0ZWQ6aG92ZXIgLmJ1dHRvbl9faXRlbS5hbmltYXRpb24tc2hpZnQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDEwMCUgKyAxcmVtKSk7XG59XG5cbi5idXR0b24tbWQuYnV0dG9uLWNpcmNsZS5idXR0b24tYW5pbWF0ZWQgLmJ1dHRvbl9fc3ViaXRlbS5pY29uLXdyYXAuYW5pbWF0aW9uLXJvdGF0ZS05MCB7XG4gICAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi0yKTtcbn1cblxuLmJ1dHRvbi1tZC5idXR0b24tY2lyY2xlLmJ1dHRvbi1hbmltYXRlZDpob3ZlciAuYnV0dG9uX19zdWJpdGVtLmljb24td3JhcC5hbmltYXRpb24tcm90YXRlLTkwIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG59XG5cbi5idXR0b24tYW5pbWF0ZWQ6aG92ZXIgLmJ1dHRvbl9fc3ViaXRlbS5pY29uLXdyYXAuYW5pbWF0aW9uLXJvdGF0ZS00NSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbn1cblxuLmJ1dHRvbi1hbmltYXRlZDpob3ZlciAuYnV0dG9uX19zdWJpdGVtLmljb24td3JhcC5hbmltYXRpb24tZmx5IC5idXR0b25fX2ljb24ge1xuICAgIGFuaW1hdGlvbjogZmx5IDAuNXMgZWFzZS1vdXQgZm9yd2FyZHM7XG59XG5cbi5idXR0b24tYW5pbWF0ZWQ6aG92ZXIgLmJ1dHRvbl9fc3ViaXRlbS5pY29uLXdyYXAuYW5pbWF0aW9uLXRvcC10by1kb3duIC5idXR0b25fX2ljb24ge1xuICAgIGFuaW1hdGlvbjogdG9wLXRvLWRvd24gMC41cyBlYXNlLW91dCBmb3J3YXJkcztcbn1cblxuLmJ1dHRvbi1hbmltYXRlZDpob3ZlciAuYnV0dG9uX19zdWJpdGVtLmljb24td3JhcC5hbmltYXRpb24tc2NhbGUgLmJ1dHRvbl9faWNvbiB7XG4gICAgYW5pbWF0aW9uOiBzY2FsZSAwLjVzIGVhc2Utb3V0IGZvcndhcmRzO1xufVxuXG4uYnV0dG9uLWFuaW1hdGVkOmhvdmVyIC5idXR0b25fX3N1Yml0ZW0uaWNvbi13cmFwLmFuaW1hdGlvbi1pY29uLXVwIC5idXR0b25fX2ljb24ge1xuICAgIGFuaW1hdGlvbjogdG9wLXRvLWRvd24gMC41cyBlYXNlLW91dCBmb3J3YXJkcztcbn1cbiIsIi5jb2xvci0xIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4uY29sb3ItMiB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0yKTtcbn1cblxuLmNvbG9yLTMge1xuICBjb2xvcjogdmFyKC0tY29sb3ItMyk7XG59XG5cbi5jb2xvci00IHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTQpO1xufVxuXG4uY29sb3ItNSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci01KTtcbn1cblxuLmNvbG9yLTYge1xuICBjb2xvcjogdmFyKC0tY29sb3ItNik7XG59XG5cbi5jb2xvci04IHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTgpO1xufVxuXG4uYmctY29sb3ItMSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4uYmctY29sb3ItMiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTIpO1xufVxuXG4uYmctY29sb3ItMyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTMpO1xufVxuXG4uYmctY29sb3ItNCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTQpO1xufVxuXG4uYmctY29sb3ItNSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTUpO1xufVxuXG4uYmctY29sb3ItNiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTYpO1xufVxuXG4uYmctY29sb3ItNyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTcpO1xufVxuXG4uYmctY29sb3ItOCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTgpO1xufVxuXG4ub3BhY2l0eS0wOCB7XG4gIG9wYWNpdHk6IDAuMDg7XG59XG5cbi5vcGFjaXR5LTEwIHtcbiAgb3BhY2l0eTogMC4xO1xufVxuXG4ub3BhY2l0eS0xMiB7XG4gIG9wYWNpdHk6IDAuMTI7XG59XG5cbi5vcGFjaXR5LTIwIHtcbiAgb3BhY2l0eTogMC4yO1xufVxuXG4ub3BhY2l0eS0zMCB7XG4gIG9wYWNpdHk6IDAuMztcbn1cblxuLm9wYWNpdHktNDAge1xuICBvcGFjaXR5OiAwLjQ7XG59XG5cbi5vcGFjaXR5LTUwIHtcbiAgb3BhY2l0eTogMC41O1xufVxuXG4ub3BhY2l0eS02MCB7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLm9wYWNpdHktNzAge1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbi5vcGFjaXR5LTgwIHtcbiAgb3BhY2l0eTogMC44O1xufVxuXG4ub3BhY2l0eS05MCB7XG4gIG9wYWNpdHk6IDAuOTtcbn1cblxuLmhlaWdodC0xIHtcbiAgaGVpZ2h0OiAxcHg7XG59XG5cbi5oZWlnaHQtMiB7XG4gIGhlaWdodDogMnB4O1xufVxuXG4uaGVpZ2h0LTMge1xuICBoZWlnaHQ6IDNweDtcbn1cblxuLmhlaWdodC00IHtcbiAgaGVpZ2h0OiA0cHg7XG59XG5cbi5oZWlnaHQtMjAge1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5oZWlnaHQtNDYge1xuICBoZWlnaHQ6IDQ2cHg7XG59XG5cbi53aWR0aC0xIHtcbiAgd2lkdGg6IDFweDtcbn1cblxuLndpZHRoLTEwMCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uaW1nLXJlc3BvbnNpdmUge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLm5vd3JhcCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8qINCj0YLQuNC70LjRgtCwINC/0YDQuNC90YPQtNC40YLQtdC70YzQvdC+0LPQviDRgdC60YDRi9GC0LjRjzsgIWltcG9ydGFudCDigJQg0YfRgtC+0LHRiyDQv9C10YDQtdCx0LjRgtGMINC60L7QvdGC0LXQutGB0YLQvdGL0LUgZGlzcGxheSAqL1xuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmZsZXgtZ3Jvdy0xIHtcbiAgZmxleC1ncm93OiAxO1xufVxuXG4uY3VzdG9tLWNoZWNrYm94IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmN1c3RvbS1jaGVja2JveF9faW5wdXQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uY3VzdG9tLWNoZWNrYm94X19ib3gge1xuICB3aWR0aDogMnJlbTtcbiAgaGVpZ2h0OiAycmVtO1xuICBib3JkZXI6IDAuMXJlbSBzb2xpZCB2YXIoLS1jb2xvci0xKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4zcyBlYXNlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jdXN0b20tY2hlY2tib3hfX2JveDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYm9yZGVyKTtcbn1cblxuLmN1c3RvbS1jaGVja2JveF9faWNvbiB7XG4gIHdpZHRoOiAxLjVyZW07XG4gIGhlaWdodDogMS41cmVtO1xuICBmaWxsOiBub25lO1xuICBzdHJva2U6IHZhcigtLWNvbG9yLTEpO1xuICBzdHJva2Utd2lkdGg6IDAuMnJlbTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uY3VzdG9tLWNoZWNrYm94X19pbnB1dDpjaGVja2VkKy5jdXN0b20tY2hlY2tib3hfX2JveCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLTQpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLTQpO1xufVxuXG4uY3VzdG9tLWNoZWNrYm94X19pbnB1dDpjaGVja2VkKy5jdXN0b20tY2hlY2tib3hfX2JveCAuY3VzdG9tLWNoZWNrYm94X19pY29uIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbn1cblxuLnRleHQtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4udGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnRleHQtcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLnVwcGVyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5pY29uLXNtLXdyYXAge1xuICB3aWR0aDogMy42cmVtO1xuICBoZWlnaHQ6IDMuNnJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDVweCByZ2IoMCAwIDAgLyAxMCUpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIHdpZHRoOiA0LjVyZW07XG4gICAgaGVpZ2h0OiA0LjVyZW07XG4gIH1cbn1cblxuLmljb24tc20td3JhcDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDVweCByZ2IoMCAwIDAgLyAyMCUpO1xufVxuXG4uaWNvbi1zbSB7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IDNyZW07XG59XG5cbi5hbmltYXRpb24tYnctY29sb3Ige1xuICAgIGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xuICAgIHRyYW5zaXRpb246IGZpbHRlciAwLjJzIGVhc2U7XG59XG5cbi5hbmltYXRpb24tYnctY29sb3I6aG92ZXIge1xuICAgIGZpbHRlcjogZ3JheXNjYWxlKDAlKTtcbn1cblxuLyog0JfQsNGC0LXQvNC90LXQvdC40LU6INGH0ZHRgNC90YvQuSDQvtCy0LXRgNC70LXQuSDQvdCwIGhvdmVyLCDRgtC10LrRgdGCINC4INC40LrQvtC90LrQuCDQvdC1INC30LDQutGA0YvQstCw0LXRgiAqL1xuLmFuaW1hdGlvbi1kYXJrZW4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmFuaW1hdGlvbi1kYXJrZW46OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlLW91dDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmFuaW1hdGlvbi1kYXJrZW46aG92ZXI6OmFmdGVyIHtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4vKiDQl9GD0Lwg0YTQvtC90LA6INC/0L7QvNC10YfQsNC10YIg0Y3Qu9C10LzQtdC90YIuINCg0LXQsNC70LjQt9Cw0YbQuNGPIOKAlCDRgNGP0LTQvtC8INGBINC60L7QvdC60YDQtdGC0L3Ri9C8INC60L7QvNC/0L7QvdC10L3RgtC+0LxcbiAgICjQvdCw0L/RgNC40LzQtdGALCAuY2FyZC1ncmFkaWVudC5hbmltYXRpb24tem9vbTpob3ZlciAuY2FyZC1ncmFkaWVudF9fY292ZXIpICovXG4uYW5pbWF0aW9uLXpvb20ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5hLmxpbmsuYW5pbWF0aW9uLXpvb206aG92ZXIge1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi8qINCh0LTQstC40LMg0YTQvtC90LAg0LLQvdC40Lcg0L3QsCBob3ZlciAo0YDQtdCw0LvQuNC30LDRhtC40Y8g4oCUINGA0Y/QtNC+0Lwg0YEg0LrQvtC90LrRgNC10YLQvdGL0Lwg0LrQvtC80L/QvtC90LXQvdGC0L7QvCkgKi9cbi5hbmltYXRpb24tc2hpZnQtZG93biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbmEubGluay5hbmltYXRpb24tc2hpZnQtZG93bjpob3ZlciB7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLm5vLXpvb20gaW1nIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbn1cblxuLyogU2tpcC1saW5rOiDRgdC60YDRi9GCINC00L4g0YTQvtC60YPRgdCwICjQtNC+0YHRgtGD0L/QvdC+0YHRgtGMLCBXQ0FHKSAqL1xuLnNraXAtbGluayB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTk5OTlweDtcbiAgei1pbmRleDogOTk5OTtcbiAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTEsICMwMDApO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uc2tpcC1saW5rOmZvY3VzIHtcbiAgbGVmdDogMC41cmVtO1xuICB0b3A6IDAuNXJlbTtcbn0iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgS2V5ZnJhbWVzIOKAlCB2aXNpYmlsaXR5XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5Aa2V5ZnJhbWVzIGZhZGVpbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlb3V0IHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBLZXlmcmFtZXMg4oCUIGRpcmVjdGlvbmFsIG1vdmVtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5Aa2V5ZnJhbWVzIGZseSB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwJSwgMCUpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIDUwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1MCUsIC0xNTAlKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICA1MSUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTUwJSwgMTUwJSk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAlLCAwJSk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIGxlZnQtdG8tcmlnaHQge1xuICAgIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCUsIDAlKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICA1MCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNTAlLCAwKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICA1MSUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTUwJSwgMCk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAlLCAwJSk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHRvcC10by1kb3duIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAlLCAwJSk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCUsIDE1MCUpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIDUxJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xNTAlKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCUsIDAlKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgZG93bi10by10b3Age1xuICAgIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCUsIDAlKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICA1MCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwJSwgLTE1MCUpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIDUxJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE1MCUpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwJSwgMCUpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEtleWZyYW1lcyDigJQgdHJhbnNmb3JtXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5Aa2V5ZnJhbWVzIHNjYWxlIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIDUxJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBLZXlmcmFtZXMg4oCUIGxvYWRpbmcgLyBzcGlubmVyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5Aa2V5ZnJhbWVzIHNwaW5uZXIge1xuICAgIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxufVxuIiwiLmhlYWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1ibG9jazogMS4ycmVtO1xuICB6LWluZGV4OiB2YXIoLS16LWluZGV4LTQpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkaWVudC0yKTtcbiAgYm94LXNoYWRvdzogMCAycHggNXB4IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMjVzIGVhc2Utb3V0LCBib3gtc2hhZG93IDAuMjVzIGVhc2Utb3V0O1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIHBhZGRpbmctYmxvY2s6IDEuNnJlbTtcbiAgfVxufVxuXG4uaGVhZGVyLmZpeGVkIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMik7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDVweCByZ2IoMCAwIDAgLyAxMCUpO1xufVxuXG4uaGVhZGVyIC5jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMXJlbTtcbn1cblxuLmhlYWRlciAuc2VjdGlvbl9faXRlbS5sb2dvLXdyYXAge1xuICBmbGV4LXNocmluazogMDtcbiAgei1pbmRleDogdmFyKC0tei1pbmRleC00KTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlLW91dDtcbn1cblxuLmhlYWRlci5oZWFkZXItbG9nby12aXNpYmxlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMik7XG59XG5cbi5oZWFkZXIuZml4ZWQgLnNlY3Rpb25fX2l0ZW0ubG9nby13cmFwLFxuLmhlYWRlci5oZWFkZXItbG9nby12aXNpYmxlIC5zZWN0aW9uX19pdGVtLmxvZ28td3JhcCB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5oZWFkZXI6aGFzKC5idXJnZXItaWNvbi5hY3RpdmUpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMik7XG59XG5cbi5oZWFkZXI6aGFzKC5idXJnZXItaWNvbi5hY3RpdmUpIC5zZWN0aW9uX19pdGVtLmxvZ28td3JhcCB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5oZWFkZXIgLnNlY3Rpb25fX2l0ZW0ubG9nby13cmFwIGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogOS40cmVtO1xuICBoZWlnaHQ6IGF1dG87XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2Utb3V0O1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIHdpZHRoOiAxNHJlbTtcbiAgfVxufVxuXG4uaGVhZGVyIC5zZWN0aW9uX19pdGVtLmFjdGlvbnMtd3JhcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGdhcDogMC44cmVtO1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvO1xufVxuXG4uaGVhZGVyIC5zZWN0aW9uX19pdGVtLmFjdGlvbnMtd3JhcCAuc2VjdGlvbl9fc3ViaXRlbS5hY3Rpb25zLXdyYXBfX3JvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMXJlbTtcbn1cblxuLmhlYWRlciAuc2VjdGlvbl9faXRlbS5hY3Rpb25zLXdyYXAgLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMC44NWVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG59XG5cbi5oZWFkZXIgLnNlY3Rpb25fX2l0ZW0uYWN0aW9ucy13cmFwIC5ib3R0b20tcm93IHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLmhlYWRlciAuc2VjdGlvbl9faXRlbS5hY3Rpb25zLXdyYXAgLnNlY3Rpb25fX2lubmVyLnRleHQtd3JhcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgZm9udC1zaXplOiAwLjg1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG5cbi8qINCf0LXRgNC10YLQtdC60LDQvdC40LUg0LvQvtCz0L7RgtC40L/QsCDQvNC10LbQtNGDINC40L3RgtGA0L4g0Lgg0YjQsNC/0LrQvtC5ICjQstC60LvRjtGH0LDQtdGCIGxvZ28tZmxvdy50d2lnKS5cbiAgINCf0L7QutCwINGB0LrRgNC40L/RgiDQvdC1INC+0YLRgNCw0LHQvtGC0LDQuywg0YjQsNC/0LrQsCDQstC10LTRkdGCINGB0LXQsdGPINC60LDQuiDQv9GA0LXQttC00LUuICovXG4ubG9nby1mbG93LW9uIC5oZWFkZXIgLnNlY3Rpb25fX2l0ZW0ubG9nby13cmFwIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmxvZ28tZmxvdy1vbiAuaGVhZGVyX19sb2dvIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCh2YXIoLS1sb2dvLWZsb3cteCwgMCksIHZhcigtLWxvZ28tZmxvdy15LCAwKSwgMCkgc2NhbGUodmFyKC0tbG9nby1mbG93LXNjYWxlLCAxKSk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG59XG5cbi8qINCX0L3QsNC6INCyINC40L3RgtGA0L4g0LPQsNGB0LjQvDog0L3QsCDRjdC60YDQsNC90LUg0L7RgdGC0LDRkdGC0YHRjyDQvtC00LjQvSDQu9C+0LPQvtGC0LjQvyDigJQg0YLQvtGCLCDRh9GC0L4g0L/QtdGA0LXQtdC30LbQsNC10YIgKi9cbi5sb2dvLWZsb3ctb24gLmludHJvX19sb2dvIHtcbiAgb3BhY2l0eTogMDtcbn1cblxuLyog0J/QvtC60LAg0LvQvtCz0L7RgtC40L8gwqvQsiDQuNC90YLRgNC+wrssINC+0L0g0L3QtSDQtNC+0LvQttC10L0g0L/QtdGA0LXQutGA0YvQstCw0YLRjNGB0Y8g0YjQsNC/0LrQvtC5INC4INC70L7QstC40YLRjCDQutC70LjQutC4INC80LjQvNC+ICovXG4ubG9nby1mbG93LW9uIC5oZWFkZXIgLnNlY3Rpb25fX2l0ZW0ubG9nby13cmFwIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5sb2dvLWZsb3ctb24ubG9nby1mbG93LWRvY2tlZCAuaGVhZGVyIC5zZWN0aW9uX19pdGVtLmxvZ28td3JhcCB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4vKiDQmtGA0YPQsyDQv9C10YDQtdGC0LXQutCw0Y7RidC10LPQviDQt9C90LDQutCwINC/0L7QstGC0L7RgNGP0LXRgiDRgdC+0YHRgtC+0Y/QvdC40LUg0LjQvdGC0YDQviAqL1xuLmxvZ28tZmxvdy1vbiAuaGVhZGVyX19sb2dvIC5sb2dvLW1hcmssXG4ubG9nby1mbG93LW9uIC5oZWFkZXJfX2xvZ28gLmxvZ28tZmlndXJlIHtcbiAgLyog0J/QsNGD0LfRgyDQv9C10YDQtdC0INC/0LXRgNC10LrRgNCw0YHQutC+0Lkg0LTQtdGA0LbQuNGCINGB0LrRgNC40L/Rgjog0L7QvSDRgdGC0LDQstC40YIg0LrQu9Cw0YHRgSwg0LrQvtCz0LTQsCDQt9C90LDQuiDRg9C20LUg0LfQsNC80LXRgC4gKi9cbiAgdHJhbnNpdGlvbjogZmlsbCAwLjRzIGN1YmljLWJlemllcigwLjIyLCAxLCAwLjM2LCAxKTtcbn1cblxuLmxvZ28tZmxvdy1vbjpub3QoLmxvZ28tZmxvdy1kb2NrZWQpIC5oZWFkZXJfX2xvZ28gLmxvZ28tbWFyayB7XG4gIGZpbGw6ICNmZmY7XG59XG5cbi5sb2dvLWZsb3ctb246bm90KC5sb2dvLWZsb3ctZG9ja2VkKSAuaGVhZGVyX19sb2dvIC5sb2dvLWZpZ3VyZSB7XG4gIGZpbGw6IHZhcigtLWNvbG9yLTcpO1xufVxuXG4ubG9nby1mbG93LW9uOm5vdCgubG9nby1mbG93LWRvY2tlZCkgLmludHJvOmhvdmVyIH4gKiAuaGVhZGVyX19sb2dvIC5sb2dvLW1hcmsge1xuICBmaWxsOiAjYzcyMjI5O1xufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAubG9nby1mbG93LW9uIC5oZWFkZXJfX2xvZ28ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC5sb2dvLWZsb3ctb24gLmludHJvX19sb2dvIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG4iLCIuZm9vdGVyLnNlY3Rpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiAzcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMXJlbSAxcmVtIDAgMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItMik7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbiAgei1pbmRleDogdmFyKC0tei1pbmRleC03KTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBwYWRkaW5nLXRvcDogNHJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgfVxufVxuXG4uZm9vdGVyIC5zZWN0aW9uX19pdGVtLmJhY2tncm91bmQtd3JhcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDgwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAtMTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBib3R0b206IC0ycmVtO1xuICAgIHdpZHRoOiA0MCU7XG4gIH1cbn1cblxuLmZvb3RlciAuYmFja2dyb3VuZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWJnLWltYWdlKTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gcmlnaHQ7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi5mb290ZXIgLmNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICBncmlkLXRlbXBsYXRlLWFyZWFzOlxuICAgIFwiZm9ybVwiXG4gICAgXCJsaW5rc1wiXG4gICAgXCJib3R0b21cIjtcbiAgcm93LWdhcDogM3JlbTtcblxuICBAbWVkaWEgKC0tbWQpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDMwJSAzMCU7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgICBcImZvcm0gbGlua3NcIlxuICAgICAgXCJib3R0b20gYm90dG9tXCI7XG4gICAgZ2FwOiA0cmVtIDJyZW07XG4gIH1cbn1cblxuLmZvb3RlciAuc2VjdGlvbl9faXRlbS5mb3JtLXdyYXAge1xuICBncmlkLWFyZWE6IGZvcm07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMS41cmVtO1xufVxuXG4uZm9vdGVyIC5zZWN0aW9uX19zdWJpdGVtLmZvcm0taW5uZXItd3JhcCB7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIHdpZHRoOiA3MCU7XG4gIH1cbn1cblxuLmZvb3RlciAuc2VjdGlvbl9fc3ViaXRlbS5oZWFkaW5nLXdyYXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNXJlbTtcbn1cblxuLmZvb3Rlcl9faGVhZGluZyB7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5mb290ZXIgLnNlY3Rpb25fX2l0ZW0ubGlua3Mtd3JhcCB7XG4gIGdyaWQtYXJlYTogbGlua3M7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMnJlbTtcbn1cblxuLmZvb3RlciAuc2VjdGlvbl9fc3ViaXRlbS5uYXYtd3JhcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC41cmVtO1xuXG4gIEBtZWRpYSAoLS1tZCkge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IHJlcGVhdCg1LCBhdXRvKTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xuICAgIGdhcDogMC41cmVtIDIuNXJlbTtcbiAgfVxufVxuXG4uZm9vdGVyX19saW5rIHtcbiAgZm9udC1zaXplOiAxZW07XG4gIHBhZGRpbmctYmxvY2s6IDAuNXJlbTsgLyog0YLQsNC/LdC30L7QvdCwIOKJpTI0cHggKGExMXkgdGFyZ2V0LXNpemUpICovXG59XG5cbi5mb290ZXIgLnNlY3Rpb25fX3N1Yml0ZW0uc29jaWFsLXdyYXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEuNXJlbTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmZvb3RlciAuc29jaWFsLWxpbmsge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDRyZW07XG4gIGhlaWdodDogNHJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItMSk7XG4gIGJvcmRlcjogMC4xcmVtIHNvbGlkIHZhcigtLWNvbG9yLTEpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi0xKSwgYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tMSk7XG59XG5cbi5mb290ZXIgLnNvY2lhbC1saW5rOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5mb290ZXIgLnNvY2lhbC1saW5rIC5pY29uLXNtIHtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogMS42cmVtO1xuICBtYXgtd2lkdGg6IDIuNnJlbTtcbiAgZmlsdGVyOiBpbnZlcnQoMSk7XG4gIHRyYW5zaXRpb246IGZpbHRlciB2YXIoLS10cmFuc2l0aW9uLTEpO1xufVxuXG4uZm9vdGVyIC5zb2NpYWwtbGluazpob3ZlciAuaWNvbi1zbSB7XG4gIGZpbHRlcjogbm9uZTtcbn1cblxuLmZvb3RlciAuc29jaWFsLWxpbmsgLmljb24tc21bc3JjKj1cImljb24tdmtcIl0ge1xuICBoZWlnaHQ6IDEuM3JlbTtcbn1cblxuLmZvb3Rlcl9fc29jaWFsLWNoYW5uZWwge1xuICBib3JkZXItcmFkaXVzOiAxcmVtO1xufVxuXG4uZm9vdGVyIC5zZWN0aW9uX19pdGVtLmJvdHRvbS13cmFwIHtcbiAgZ3JpZC1hcmVhOiBib3R0b207XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC41cmVtO1xuXG4gIEBtZWRpYSAoLS1tZCkge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMzAlO1xuICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgICBcImRpc2NsYWltZXIgY29weXJpZ2h0XCJcbiAgICAgIFwib3duZXIgY29weXJpZ2h0XCI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDAuNXJlbSAycmVtO1xuICB9XG59XG5cbi5mb290ZXIgLnNlY3Rpb25fX3N1Yml0ZW0uZGlzY2xhaW1lci13cmFwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjI1cmVtO1xuXG4gIEBtZWRpYSAoLS1tZCkge1xuICAgIGdyaWQtYXJlYTogZGlzY2xhaW1lcjtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGdhcDogMnJlbTtcbiAgfVxufVxuXG5AbWVkaWEgKC0tbWQpIHtcbiAgLmZvb3RlciAuc2VjdGlvbl9fc3ViaXRlbS5vd25lci13cmFwIHtcbiAgICBncmlkLWFyZWE6IG93bmVyO1xuICB9XG5cbiAgLmZvb3RlciAuc2VjdGlvbl9fc3ViaXRlbS5jb3B5cmlnaHQtd3JhcCB7XG4gICAgZ3JpZC1hcmVhOiBjb3B5cmlnaHQ7XG4gIH1cbn1cblxuLmZvb3Rlcl9fZGlzY2xhaW1lci1saW5rIHtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgcGFkZGluZy1ibG9jazogMC43cmVtOyAvKiDRgtCw0L8t0LfQvtC90LAg4omlMjRweCAoYTExeSB0YXJnZXQtc2l6ZSkgKi9cbn1cblxuLmZvb3Rlcl9fb3duZXIge1xuICBmb250LXNpemU6IDAuOGVtO1xuICBsaW5lLWhlaWdodDogMS4zO1xuICBtYXJnaW4tYm90dG9tOiAwLjZyZW07XG4gIG9wYWNpdHk6IDAuODtcbn1cblxuLmZvb3Rlcl9fY29weXJpZ2h0IHtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuLmZvb3RlciAuZm9ybS1jYWxsYmFja19fbGFiZWwge1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5mb290ZXIgLmZvcm0tY2FsbGJhY2tfX3JlcXVpcmVkIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTUpO1xufVxuXG4uZm9vdGVyIC5mb3JtLWNhbGxiYWNrX19jYXB0aW9uIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTYpO1xufVxuXG4uZm9vdGVyIC5mb3JtLWNhbGxiYWNrIC5mb3JtLWNhbGxiYWNrX19pbnB1dCB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbiAgY2FyZXQtY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLmZvb3RlciAuZm9ybS1jYWxsYmFjayAuZm9ybS1jYWxsYmFja19faW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXBsYWNlaG9sZGVyKTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmZvb3RlciAuZm9ybS1jYWxsYmFjayAuZm9ybS1jYWxsYmFja19faW5wdXQ6Zm9jdXMge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLmZvb3RlciAuZm9ybS1jYWxsYmFjayAuZm9ybS1jYWxsYmFja19fc2VsZWN0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2RhdGEvaW1nL3VpL2ljb25zL2ljb24tdHJpYW5nbGUtZG93bi1jb2xvci0xLnN2Z1wiKTtcbn1cblxuLmZvb3RlciAuZm9ybS1jYWxsYmFjayAuZm9ybS1jYWxsYmFja19fc2VsZWN0OmludmFsaWQge1xuICBjb2xvcjogdmFyKC0tY29sb3ItcGxhY2Vob2xkZXIpO1xufVxuXG4uZm9vdGVyIC5mb3JtLWNhbGxiYWNrIC5mb3JtLWNhbGxiYWNrX19zZWxlY3Qgb3B0aW9uIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLmZvb3RlciAuZm9ybS1jYWxsYmFja19fY3VzdG9tLWNoZWNrYm94IHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5mb290ZXIgLmZvcm0tY2FsbGJhY2tfX2N1c3RvbS1jaGVja2JveCAuZm9ybS1jYWxsYmFja19fY2hlY2ttYXJrIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLmZvb3RlciAuZm9ybS1jYWxsYmFja19fY2hlY2ttYXJrOjphZnRlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4uZm9vdGVyIC5mb3JtLWNhbGxiYWNrX19wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci02KTtcbn1cblxuLmZvb3RlciAuZm9ybS1jYWxsYmFja19fcnVsZXMge1xuICBjb2xvcjogdmFyKC0tY29sb3ItNik7XG59XG4iLCIuYnVyZ2VyLW1lbnUge1xuICAvKiDQodGC0LjQu9C4INC00LvRjyBidXJnZXItbWVudSAqL1xufVxuXG4uYnVyZ2VyLW1lbnUgLmNvbnRhaW5lciB7XG4gIC8qINCh0YLQuNC70Lgg0LTQu9GPINC60L7QvdGC0LXQudC90LXRgNCwINCyIGJ1cmdlci1tZW51ICovXG59XG4iLCIuY29udGFjdHMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cbiIsIi8qINCh0L/RgNCw0LLQvtGH0L3QuNC6INC60L7QvdGC0LDQutGC0L7Qsjog0YLQuNC/0L7Qs9GA0LDRhNGB0LrQsNGPINGB0LXRgtC60LAg0LLQvNC10YHRgtC+INC60LDRgNGC0L7Rh9C10Log4oCUINGN0YLQviDRgdC/0LjRgdC+0Log0LTQu9GPINC/0L7QuNGB0LrQsFxuICAg0L3Rg9C20L3QvtC5INGB0YLRgNC+0LrQuCDQs9C70LDQt9Cw0LzQuCwg0LAg0L3QtSDQstC40YLRgNC40L3QsC4gKi9cblxuLmNvbnRhY3RzLWh1YiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMik7XG4gIHBhZGRpbmctYmxvY2s6IDAgOHJlbTtcbn1cblxuLmNvbnRhY3RzLWh1YiAuc2VjdGlvbl9faXRlbSArIC5zZWN0aW9uX19pdGVtIHtcbiAgbWFyZ2luLXRvcDogNy4ycmVtO1xufVxuXG4uY29udGFjdHMtaHViX19oZWFkIHtcbiAgcGFkZGluZy10b3A6IGNhbGModmFyKC0taGVhZGVyLWZpeGVkLWhlaWdodCkgKyAyLjRyZW0pO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UyZTBkZTtcbiAgcGFkZGluZy1ib3R0b206IDRyZW07XG59XG5cbi5jb250YWN0cy1odWJfX2gxIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtMS1leHRlbmRlZCk7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogY2xhbXAoNHJlbSwgOXZ3LCA4cmVtKTtcbiAgbGluZS1oZWlnaHQ6IDAuOTU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wM2VtO1xuICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG59XG5cbi5jb250YWN0cy1odWJfX2xlYWQtY29weSB7XG4gIG1hcmdpbi10b3A6IDIuNHJlbTtcbiAgbWF4LXdpZHRoOiA1OGNoO1xuICBmb250LXNpemU6IGNsYW1wKDEuNnJlbSwgMnZ3LCAxLjlyZW0pO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzRhNGE0YTtcbiAgdGV4dC13cmFwOiBwcmV0dHk7XG59XG5cbi5jb250YWN0cy1odWJfX3RpdGxlLFxuLmNvbnRhY3RzLWh1Yl9fc3VidGl0bGUge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC0xLWV4dGVuZGVkKTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjA1O1xuICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG59XG5cbi5jb250YWN0cy1odWJfX3RpdGxlIHtcbiAgZm9udC1zaXplOiBjbGFtcCgyLjhyZW0sIDV2dywgNC40cmVtKTtcbn1cblxuLmNvbnRhY3RzLWh1Yl9fc3VidGl0bGUge1xuICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDMuNHZ3LCAyLjhyZW0pO1xuICBtYXJnaW4tYm90dG9tOiAzLjJyZW07XG59XG5cbi8qIC0tLSDQodCy0Y/Qt9GMIC0tLSAqL1xuXG4uY29udGFjdHMtaHViX19sZWFkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAzLjJyZW07XG59XG5cbi5jb250YWN0cy1odWJfX25vdGUge1xuICBtYXJnaW4tdG9wOiAxLjZyZW07XG4gIG1heC13aWR0aDogNTJjaDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGNvbG9yOiAjNGE0YTRhO1xuICB0ZXh0LXdyYXA6IHByZXR0eTtcbn1cblxuLmNvbnRhY3RzLWh1Yl9fZW1haWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LTEtZXh0ZW5kZWQpO1xuICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDR2dywgMy4ycmVtKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0yKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNvbG9yLTMpIDQwJSwgdHJhbnNwYXJlbnQpO1xuICBwYWRkaW5nLWJvdHRvbTogMC40cmVtO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLTEpO1xufVxuXG4uY29udGFjdHMtaHViX19lbWFpbDpob3Zlcixcbi5jb250YWN0cy1odWJfX2VtYWlsOmZvY3VzLXZpc2libGUge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jb2xvci0zKTtcbn1cblxuLmNvbnRhY3RzLWh1Yl9fc29jaWFscyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiAyLjRyZW07XG4gIG1hcmdpbi10b3A6IDIuNHJlbTtcbn1cblxuLmNvbnRhY3RzLWh1Yl9fc29jaWFsIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAjNGE0YTRhO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tMSk7XG59XG5cbi5jb250YWN0cy1odWJfX3NvY2lhbDpob3Zlcixcbi5jb250YWN0cy1odWJfX3NvY2lhbDpmb2N1cy12aXNpYmxlIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogdmFyKC0tY29sb3ItMyk7XG4gIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDFweDtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjI1ZW07XG59XG5cbi8qIC0tLSDQndCw0L/RgNCw0LLQu9C10L3QuNGPIC0tLSAqL1xuXG4uY29udGFjdHMtaHViX19saW5lcyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMmUwZGU7XG59XG5cbi5jb250YWN0cy1odWJfX2xpbmUge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgxOHJlbSwgMjRyZW0pIDFmcjtcbiAgZ2FwOiAwLjhyZW0gMy4ycmVtO1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIHBhZGRpbmctYmxvY2s6IDJyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTJlMGRlO1xufVxuXG4uY29udGFjdHMtaHViX19saW5lLW5hbWUge1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTIpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tMSk7XG59XG5cbmEuY29udGFjdHMtaHViX19saW5lLW5hbWU6aG92ZXIsXG5hLmNvbnRhY3RzLWh1Yl9fbGluZS1uYW1lOmZvY3VzLXZpc2libGUge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB2YXIoLS1jb2xvci0zKTtcbiAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMXB4O1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDAuMjVlbTtcbn1cblxuLmNvbnRhY3RzLWh1Yl9fbGluZS1kZXNjIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU1O1xuICBjb2xvcjogIzRhNGE0YTtcbiAgdGV4dC13cmFwOiBwcmV0dHk7XG59XG5cbi8qIC0tLSDQotC+0YfQutC4IC0tLSAqL1xuXG4uY29udGFjdHMtaHViX19jaXR5ICsgLmNvbnRhY3RzLWh1Yl9fY2l0eSB7XG4gIG1hcmdpbi10b3A6IDQuOHJlbTtcbn1cblxuLmNvbnRhY3RzLWh1Yl9fY2l0eS1uYW1lIHtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjEyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0zKTtcbiAgbWFyZ2luLWJvdHRvbTogMS42cmVtO1xufVxuXG4uY29udGFjdHMtaHViX19wb2ludHMge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTJlMGRlO1xufVxuXG4uY29udGFjdHMtaHViX19wb2ludCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDE2cmVtLCAxLjFmcikgbWlubWF4KDE4cmVtLCAxLjRmcikgbWlubWF4KDE0cmVtLCAwLjhmcikgYXV0bztcbiAgZ2FwOiAwLjZyZW0gMi40cmVtO1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIHBhZGRpbmctYmxvY2s6IDEuOHJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMmUwZGU7XG59XG5cbi5jb250YWN0cy1odWJfX3BvaW50LW5hbWUge1xuICBmb250LXNpemU6IDEuN3JlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTIpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tMSk7XG59XG5cbi5jb250YWN0cy1odWJfX3BvaW50LW5hbWU6aG92ZXIsXG4uY29udGFjdHMtaHViX19wb2ludC1uYW1lOmZvY3VzLXZpc2libGUge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB2YXIoLS1jb2xvci0zKTtcbiAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMXB4O1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDAuMjVlbTtcbn1cblxuLmNvbnRhY3RzLWh1Yl9fcG9pbnQtYWRkcmVzcyB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBjb2xvcjogIzRhNGE0YTtcbn1cblxuLmNvbnRhY3RzLWh1Yl9fcG9pbnQtcGhvbmUge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTIpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tMSk7XG59XG5cbmEuY29udGFjdHMtaHViX19wb2ludC1waG9uZTpob3ZlcixcbmEuY29udGFjdHMtaHViX19wb2ludC1waG9uZTpmb2N1cy12aXNpYmxlIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogdmFyKC0tY29sb3ItMyk7XG4gIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDFweDtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjI1ZW07XG59XG5cbi5jb250YWN0cy1odWJfX3BvaW50LW1hcCB7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogIzRhNGE0YTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLTEpO1xufVxuXG4uY29udGFjdHMtaHViX19wb2ludC1tYXA6aG92ZXIsXG4uY29udGFjdHMtaHViX19wb2ludC1tYXA6Zm9jdXMtdmlzaWJsZSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHZhcigtLWNvbG9yLTMpO1xuICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAxcHg7XG4gIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMC4yNWVtO1xufVxuXG4vKiAtLS0g0KDQtdC60LLQuNC30LjRgtGLIC0tLSAqL1xuXG4uY29udGFjdHMtaHViX19sZWdhbCB7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBjb2xvcjogIzZhNmE2YTtcbiAgbWF4LXdpZHRoOiA3MGNoO1xufVxuXG4uY29udGFjdHMtaHViX19sZWdhbCBwICsgcCB7XG4gIG1hcmdpbi10b3A6IDAuOHJlbTtcbn1cblxuLyogLS0tINCQ0LTQsNC/0YLQuNCyIC0tLSAqL1xuXG5AbWVkaWEgKHdpZHRoID49IDc2OHB4KSB7XG4gIC5jb250YWN0cy1odWJfX2xlYWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG87XG4gICAgYWxpZ24taXRlbXM6IGVuZDtcbiAgICBnYXA6IDQuOHJlbTtcbiAgfVxufVxuXG5AbWVkaWEgKHdpZHRoIDw9IDkwMHB4KSB7XG4gIC5jb250YWN0cy1odWJfX3BvaW50IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBhdXRvO1xuICAgIHJvdy1nYXA6IDAuNHJlbTtcbiAgfVxuXG4gIC5jb250YWN0cy1odWJfX3BvaW50LW5hbWUge1xuICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gIH1cblxuICAuY29udGFjdHMtaHViX19wb2ludC1tYXAge1xuICAgIGp1c3RpZnktc2VsZjogZW5kO1xuICB9XG59XG5cbkBtZWRpYSAod2lkdGggPD0gNjAwcHgpIHtcbiAgLmNvbnRhY3RzLWh1YiB7XG4gICAgcGFkZGluZy1ibG9jazogNC44cmVtIDYuNHJlbTtcbiAgfVxuXG4gIC5jb250YWN0cy1odWIgLnNlY3Rpb25fX2l0ZW0gKyAuc2VjdGlvbl9faXRlbSB7XG4gICAgbWFyZ2luLXRvcDogNS42cmVtO1xuICB9XG5cbiAgLmNvbnRhY3RzLWh1Yl9fbGluZSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ2FwOiAwLjZyZW07XG4gIH1cblxuICAuY29udGFjdHMtaHViX19wb2ludCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cblxuICAuY29udGFjdHMtaHViX19wb2ludC1tYXAge1xuICAgIGp1c3RpZnktc2VsZjogc3RhcnQ7XG4gIH1cbn1cbiIsIi5jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5jb250ZW50IC5jb250YWluZXIge1xuICAvKiDQodGC0LjQu9C4INC00LvRjyDQutC+0L3RgtC10LnQvdC10YDQsCDQsiBjb250ZW50ICovXG59XG4iLCIuY29va2llLXBhbmVsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDFyZW07XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiB2YXIoLS16LWluZGV4LTMpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgdHJhbnNmb3JtIDAuM3MgZWFzZTtcbn1cblxuLmNvb2tpZS1wYW5lbC5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uY29va2llLXBhbmVsLm9wZW5pbmcge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG59XG5cbi5jb29raWUtcGFuZWwgLnNlY3Rpb25fX2l0ZW0ge1xuICBwYWRkaW5nOiAycmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDFyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICBib3gtc2hhZG93OiAwIDJweCAxMHB4IHJnYigwIDAgMCAvIDE1JSk7XG4gIGJvcmRlci1yYWRpdXM6IDJyZW07XG4gIG1hcmdpbjogMCAxcmVtO1xuXG4gIEBtZWRpYSAoLS1tZCkge1xuICAgIHBhZGRpbmc6IDNyZW07XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbjogMCAycmVtO1xuICB9XG59XG5cbi5jb29raWUtcGFuZWwgLmRlc2Mtd3JhcCB7XG4gIGZsZXg6IDE7XG59XG5cbi5jb29raWUtcGFuZWwgLmRlc2Mge1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTIpO1xufVxuXG4uY29va2llLXBhbmVsIC5idXR0b24td3JhcCB7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vKiDQotC+0YIg0LbQtSDRgNCw0LfQvNC10YAg0YLQtdC60YHRgtCwLCDRh9GC0L4g0YMg0LrQvdC+0L/QvtC6INGI0LDQv9C60LggKC5oZWFkZXIgLmFjdGlvbnMtd3JhcCAuYnV0dG9uKSDigJRcbiAgINCx0LXQtyBvdmVycmlkZSDQutC90L7Qv9C60LAg0L/QvtC70YPRh9Cw0LvQsCDQsdCw0LfQvtCy0YvQuSAxZW0g0Lgg0LLRi9Cz0LvRj9C00LXQu9CwINC60YDRg9C/0L3QtdC1INC+0YHRgtCw0LvRjNC90YvRhSAqL1xuLmNvb2tpZS1wYW5lbCAuYnV0dG9uIHtcbiAgZm9udC1zaXplOiAwLjg1ZW07XG59XG5cbi8qINCQ0LTQsNC/0YLQsNGG0LjRjyDQtNC70Y8g0LzQvtCx0LjQu9GM0L3Ri9GFINGD0YHRgtGA0L7QudGB0YLQsiAqL1xuQG1lZGlhICh3aWR0aCA8PSA3NjhweCkge1xuICAuY29va2llLXBhbmVsIHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgfVxuICBcbiAgLmNvb2tpZS1wYW5lbCAuc2VjdGlvbl9faXRlbSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMnJlbTtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMnJlbTtcbiAgfVxufVxuIiwiLmludHJvIHtcbiAgbWFyZ2luLXRvcDogLTExLjJyZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgbWFyZ2luLXRvcDogLTEycmVtO1xuICB9XG59XG5cbi5pbnRybyAuc3dpcGVyLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDY4LjRyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgaGVpZ2h0OiA4M3JlbTtcbiAgfVxufVxuXG4uaW50cm8gLnNlY3Rpb25fX2l0ZW0uc2xpZGUtd3JhcC5zd2lwZXItc2xpZGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG59XG5cbi5pbnRybyAuc2VjdGlvbl9fc3ViaXRlbS5jb3Zlci13cmFwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uaW50cm8gLnNlY3Rpb25fX3N1Yml0ZW0uY292ZXItd3JhcDo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IGhzbCgwZGVnIDAlIDAlIC8gMjAlKTtcbiAgei1pbmRleDogMTtcbn1cblxuLmludHJvIC5jb3ZlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWNvbG9yLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cblxuLmludHJvIC5zZWN0aW9uX19pdGVtLmxvZ28taGVhZGluZy13cmFwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmludHJvIC5sb2dvLWhlYWRpbmctd3JhcCAuY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHJlbTtcbiAgfVxufVxuXG4uaW50cm8gLnNlY3Rpb25fX3N1Yml0ZW0ubG9nby13cmFwIHtcbiAgd2lkdGg6IDI1cmVtO1xuICBmbGV4LXNocmluazogMDtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICB3aWR0aDogNDIuNXJlbTtcbiAgfVxufVxuXG4uaW50cm8gLnNlY3Rpb25fX3N1Yml0ZW0uZW1wdHktd3JhcCB7XG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmludHJvIC5zZWN0aW9uX19zdWJpdGVtLmhlYWRpbmctd3JhcCB7XG4gIHBhZGRpbmctYm90dG9tOiA0cmVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG59XG5cbi5pbnRybyAuc2VjdGlvbl9fc3ViaXRlbS5sb2dvLXdyYXAgaW1nIHtcbn1cblxuLmludHJvIC5oZWFkaW5nIHtcbiAgZm9udC1zaXplOiAxLjFlbTtcblxuICAvKiDQndCwINGC0LXQu9C10YTQvtC90LDRhSDigJQg0YLQtdC60YPRh9C40Lkg0YDQsNC30LzQtdGAICh2dyksINGH0YLQvtCx0Ysg0LTQu9C40L3QvdGL0Lkg0LfQsNCz0L7Qu9C+0LLQvtC6INC40L3RgtGA0L4g0LvQvtC20LjQu9GB0Y9cbiAgICAg0LIgMiDQv9C+0LvQvdGL0LUg0YHRgtGA0L7QutC4INC90LAg0JvQrtCR0J7QmSDRiNC40YDQuNC90LUg0LzQvtCx0LjQu9GM0L3QvtCz0L4gKNGR0LzQutC+0YHRgtGMINGB0YLRgNC+0LrQuCB+0L/QvtGB0YLQvtGP0L3QvdCwKS4gKi9cbiAgQG1lZGlhICgtLXhzKSB7XG4gICAgZm9udC1zaXplOiBjbGFtcCgxLjA1cmVtLCAzLjR2dywgMS44cmVtKTtcbiAgfVxuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZvbnQtc2l6ZTogMS4zZW07XG4gIH1cbn1cblxuLmludHJvIC5zd2lwZXItcGFnaW5hdGlvbiB7XG4gIHotaW5kZXg6IDM7XG4gIGJvdHRvbTogMnJlbTtcbn1cblxuLmludHJvIC5zd2lwZXItYnV0dG9uLW5leHQsXG4uaW50cm8gLnN3aXBlci1idXR0b24tcHJldiB7XG4gIHotaW5kZXg6IDM7XG5cbiAgLS1zd2lwZXItbmF2aWdhdGlvbi1jb2xvcjogdmFyKC0tY29sb3ItMSk7XG5cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlLW91dDtcbn1cblxuLmludHJvOmhvdmVyIC5zd2lwZXItYnV0dG9uLW5leHQsXG4uaW50cm86aG92ZXIgLnN3aXBlci1idXR0b24tcHJldiB7XG4gIG9wYWNpdHk6IDAuNTtcbn1cblxuLmludHJvOmhvdmVyIC5zd2lwZXItYnV0dG9uLW5leHQ6aG92ZXIsXG4uaW50cm86aG92ZXIgLnN3aXBlci1idXR0b24tcHJldjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8qINCf0LXRgNC10L7Qv9GA0LXQtNC10LvQtdC90LjQtSDRhtCy0LXRgtCwINCx0YPQu9C70LXRgtC+0LIgU3dpcGVyINC/0L7QtCDRhNC+0L0g0YHQtdC60YbQuNC4ICovXG4uaW50cm8gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTEpICFpbXBvcnRhbnQ7XG59XG5cbi8qINCb0L7Qs9C+0YLQuNC/INCyINC40L3RgtGA0L4g4oCUINGG0LLQtdGC0L3QsNGPINCy0LXRgNGB0LjRjyDQuNC3INGI0LDQv9C60Lg6INC60YDRg9CzINC4INGE0LjQs9GD0YDQutCwINC+0YLQtNC10LvRjNC90YvQvNC4INGN0LvQtdC80LXQvdGC0LDQvNC4LFxuICAg0L/QvtGN0YLQvtC80YMg0L/RgNC4INC90LDQstC10LTQtdC90LjQuCDQuNGFINC80L7QttC90L4g0L/QtdGA0LXQutGA0LDRgdC40YLRjCwg0LAg0L3QtSDQv9C+0LrQsNC30YvQstCw0YLRjCDRgdC60LLQvtC30Ywg0LLRi9GA0LXQtyDRhNC+0L0uICovXG4uaW50cm9fX2xvZ28ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLmludHJvX19sb2dvIC5sb2dvLW1hcmssXG4uaW50cm9fX2xvZ28gLmxvZ28tZmlndXJlIHtcbiAgdHJhbnNpdGlvbjogZmlsbCAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSk7XG59XG5cbi8qINCf0L7QutC+0Lk6INCx0LXQu9GL0Lkg0LrRgNGD0LMsINGC0ZHQvNC90LDRjyDRhNC40LPRg9GA0LrQsCAqL1xuLmludHJvX19sb2dvIC5sb2dvLW1hcmsge1xuICBmaWxsOiAjZmZmO1xufVxuXG4uaW50cm9fX2xvZ28gLmxvZ28tZmlndXJlIHtcbiAgZmlsbDogdmFyKC0tY29sb3ItNyk7XG59XG5cbi8qINCd0LDQstC10LTQtdC90LjQtTog0LrQsNC6INCyINGI0LDQv9C60LUg4oCUINGE0LjRgNC80LXQvdC90YvQuSDQutGA0LDRgdC90YvQuSDRgSDQsdC10LvQvtC5INGE0LjQs9GD0YDQutC+0LkgKi9cbi5pbnRybzpob3ZlciAuaW50cm9fX2xvZ28gLmxvZ28tbWFyayxcbi5pbnRybzpmb2N1cy13aXRoaW4gLmludHJvX19sb2dvIC5sb2dvLW1hcmsge1xuICBmaWxsOiAjYzcyMjI5O1xufVxuXG4uaW50cm86aG92ZXIgLmludHJvX19sb2dvIC5sb2dvLWZpZ3VyZSxcbi5pbnRybzpmb2N1cy13aXRoaW4gLmludHJvX19sb2dvIC5sb2dvLWZpZ3VyZSB7XG4gIGZpbGw6ICNmZmY7XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5pbnRyb19fbG9nbyAubG9nby1tYXJrLFxuICAuaW50cm9fX2xvZ28gLmxvZ28tZmlndXJlIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjAxbXM7XG4gIH1cbn1cbiIsIi5oZWFkbGluZSB7XG4gIHBhZGRpbmctdG9wOiA0cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogNHJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItMSk7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgcGFkZGluZy10b3A6IDZyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDZyZW07XG4gIH1cbn1cblxuLmhlYWRsaW5lIC5zZWN0aW9uX19pdGVtLmhlYWRpbmctd3JhcCB7XG4gIC0tbW91c2UteDogLTEwMHB4O1xuICAtLW1vdXNlLXk6IC0xMDBweDtcbiAgLS1zcG90bGlnaHQtcmFkaXVzOiA2cmVtO1xuXG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChcbiAgICBjaXJjbGUgdmFyKC0tc3BvdGxpZ2h0LXJhZGl1cykgYXQgdmFyKC0tbW91c2UteCkgdmFyKC0tbW91c2UteSksXG4gICAgdmFyKC0tY29sb3ItNCkgMCUsXG4gICAgdmFyKC0tY29sb3ItNCkgNDAlLFxuICAgIHZhcigtLWNvbG9yLTIpIDEwMCVcbiAgKTtcbiAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIC0tc3BvdGxpZ2h0LXJhZGl1czogOXJlbTtcbiAgfVxufVxuXG4uaGVhZGxpbmUgLnRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjRlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBmb250LXNpemU6IDIuNWVtO1xuICB9XG59XG4iLCIub3duZXJzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5vd25lcnMgLnNlY3Rpb25fX2l0ZW0uYmxvY2std3JhcCB7XG4gIHBhZGRpbmc6IDJyZW0gMXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDJyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTIpO1xuICBib3JkZXItcmFkaXVzOiAycmVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIHBhZGRpbmc6IDRyZW07XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHJlbTtcbiAgfVxufVxuXG4ub3duZXJzIC5zZWN0aW9uX19zdWJpdGVtLmhlYWRpbmctd3JhcCB7XG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZsZXg6IDAgMCA0MCU7XG4gICAgbWF4LXdpZHRoOiA0MCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cbi5vd25lcnMgLmhlYWRpbmcge1xuICBmb250LXNpemU6IDEuNGVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZvbnQtc2l6ZTogMi41ZW07XG4gIH1cbn1cblxuLm93bmVycyAuc2VjdGlvbl9fc3ViaXRlbS5jYXJkcy1vd25lci13cmFwIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZmxleDogMTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgfVxufVxuXG4ub3duZXJzIC5zZWN0aW9uX19pbm5lci5jYXJkLW93bmVyLXdyYXAge1xuICB3aWR0aDogNTAlO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG5cbi5vd25lcnMgLnNlY3Rpb25fX2lubmVyLmNhcmQtb3duZXItd3JhcCB7XG59XG4iLCIudXMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93LXg6IGNsaXA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNnJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItMSk7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZ2FwOiAyMHJlbTtcbiAgfVxufVxuXG4udXMgLnNlY3Rpb25fX2l0ZW0uYmctd3JhcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAwO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLnVzIC5zZWN0aW9uX19zdWJpdGVtLmJnLXRvcCxcbi51cyAuc2VjdGlvbl9fc3ViaXRlbS5iZy1ib3R0b20ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjFzIGxpbmVhcjtcbn1cblxuLnVzIC5zZWN0aW9uX19zdWJpdGVtLmJnLXRvcCB7XG4gIHotaW5kZXg6IDI7XG4gIHdpZHRoOiA2NXJlbTtcbiAgaGVpZ2h0OiA2NXJlbTtcbiAgdG9wOiAtMTNyZW07XG4gIHJpZ2h0OiAtNXJlbTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICB3aWR0aDogMTI2cmVtO1xuICAgIGhlaWdodDogMTI2cmVtO1xuICAgIHRvcDogLTQ1cmVtO1xuICAgIHJpZ2h0OiAtMTByZW07XG4gIH1cbn1cblxuLnVzIC5zZWN0aW9uX19zdWJpdGVtLmJnLWJvdHRvbSB7XG4gIHotaW5kZXg6IDE7XG4gIHdpZHRoOiA1NXJlbTtcbiAgaGVpZ2h0OiA1NXJlbTtcbiAgdG9wOiAyMHJlbTtcbiAgbGVmdDogLTE4cmVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIHdpZHRoOiAxNTFyZW07XG4gICAgaGVpZ2h0OiAxNTFyZW07XG4gICAgYm90dG9tOiAtNTFyZW07XG4gICAgbGVmdDogM3JlbTtcbiAgfVxufVxuXG4udXMgLnNlY3Rpb25fX3N1Yml0ZW0uYmctdG9wIGltZyxcbi51cyAuc2VjdGlvbl9fc3ViaXRlbS5iZy1ib3R0b20gaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuLnVzIC5jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG59XG5cbi51cyAuc2VjdGlvbl9faXRlbS52aXN1YWwtd3JhcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxLjVyZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiA2NXJlbTtcbiAgfVxufVxuXG4udXMgLnNlY3Rpb25fX3N1Yml0ZW0uY292ZXItd3JhcCB7XG4gIHdpZHRoOiAxMDAlO1xuICBhc3BlY3QtcmF0aW86IDE7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIHdpZHRoOiA2NXJlbTtcbiAgICBoZWlnaHQ6IDY1cmVtO1xuICAgIGFzcGVjdC1yYXRpbzogYXV0bztcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zNXMgZWFzZS1vdXQ7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgfVxufVxuXG4udXMgLnNlY3Rpb25fX3N1Yml0ZW0uY292ZXItd3JhcCBpbWcsXG4udXMgLnNlY3Rpb25fX3N1Yml0ZW0uY292ZXItd3JhcCB2aWRlbyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG4udXMgLnNlY3Rpb25fX3N1Yml0ZW0uY2FyZC10ZXh0LXdyYXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci0yKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICBwYWRkaW5nOiAycmVtO1xuICBib3JkZXItcmFkaXVzOiAxLjVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDQwcmVtO1xuICAgIHBhZGRpbmc6IDIuNXJlbSAzcmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDJyZW07XG4gICAgei1pbmRleDogMTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zNXMgZWFzZS1vdXQ7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgfVxufVxuXG4udXMgLnNlY3Rpb25fX3N1Yml0ZW0uY2FyZC10ZXh0LTEge1xuICBAbWVkaWEgKC0tbGcpIHtcbiAgICB0b3A6IDVyZW07XG4gICAgbGVmdDogMDtcbiAgfVxufVxuXG4udXMgLnNlY3Rpb25fX3N1Yml0ZW0uY2FyZC10ZXh0LTIge1xuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBib3R0b206IDVyZW07XG4gICAgcmlnaHQ6IDA7XG4gIH1cbn1cblxuLnVzIC5jYXJkLXRleHQge1xuICBmb250LXNpemU6IDEuMWVtO1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogMS4zO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZvbnQtc2l6ZTogMS40ZW07XG4gIH1cbn1cblxuLnVzIC5zZWN0aW9uX19pdGVtLmNhcmRzLW51bWJlci13cmFwIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogNXJlbTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgfVxufVxuXG4iLCIubmF2aWdhdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4ubmF2aWdhdGlvbiAuc2VjdGlvbl9faXRlbS5pdGVtcy13cmFwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDEuNnJlbTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBnYXA6IDJyZW07XG4gIH1cbn1cblxuLm5hdmlnYXRpb24gLnNlY3Rpb25fX3N1Yml0ZW0uaXRlbS13cmFwLnNpemUtaGFsZiB7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDFyZW0pO1xuICB9XG59XG5cbi5uYXZpZ2F0aW9uIC5zZWN0aW9uX19zdWJpdGVtLml0ZW0td3JhcC5zaXplLXRoaXJkIHtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMzJSAtIDEuMzM0cmVtKTtcbiAgfVxufVxuXG4ubmF2aWdhdGlvbiAuc2VjdGlvbl9fc3ViaXRlbS5pdGVtLXdyYXAuc2l6ZS1mdWxsIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5uYXZpZ2F0aW9uIC5zZWN0aW9uX19zdWJpdGVtLml0ZW0td3JhcC5zaXplLWhhbGYgLmNhcmQtbmF2IHtcbiAgaGVpZ2h0OiAxNXJlbTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBoZWlnaHQ6IDI2cmVtO1xuICB9XG59XG5cbi5uYXZpZ2F0aW9uIC5zZWN0aW9uX19zdWJpdGVtLml0ZW0td3JhcC5zaXplLXRoaXJkIC5jYXJkLW5hdiB7XG4gIGhlaWdodDogMTVyZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgaGVpZ2h0OiAyMnJlbTtcbiAgfVxufVxuXG4ubmF2aWdhdGlvbiAuc2VjdGlvbl9fc3ViaXRlbS5pdGVtLXdyYXAuc2l6ZS1mdWxsIC5jYXJkLW5hdiB7XG4gIGhlaWdodDogMTVyZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgaGVpZ2h0OiA0NnJlbTtcbiAgfVxufVxuXG4ubmF2aWdhdGlvbiAuc2VjdGlvbl9fc3ViaXRlbS5pdGVtLXdyYXAgLmNhcmQtZ3JhZGllbnQge1xuICBoZWlnaHQ6IDE1cmVtO1xufVxuXG4ubmF2aWdhdGlvbiAuc2VjdGlvbl9fc3ViaXRlbS5pdGVtLXdyYXA6aGFzKC5jYXJkLXNsaWRlcikge1xuICBtYXJnaW4tdG9wOiAxLjZyZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuXG4ubmF2aWdhdGlvbiAuY2FyZC1zbGlkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyNHJlbTtcbiAgYm9yZGVyLXJhZGl1czogMnJlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBAbWVkaWEgKC0tc20pIHtcbiAgICBoZWlnaHQ6IDUwcmVtO1xuICB9XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgaGVpZ2h0OiA1MHJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA0cmVtO1xuICB9XG59XG5cbi8qIGxvdHRlcnkucG5nICg0MDgww5cxMzgwKTog0L/RgNC+0L/QvtGA0YbQuNC4INC60LDQuiDRgyDQutCw0YDRgtC40L3QutC4OyDQsdC10LcgcGFkZGluZy1ib3R0b20g0YHQu9Cw0LnQtNC10YDQsCDigJQg0LjQvdCw0YfQtSBjb3ZlciDRgNC10LbQtdGCINC90LjQtyAqL1xuLm5hdmlnYXRpb24gW2lkPVwibG90dGVyeVNsaWRlclwiXS5jYXJkLXNsaWRlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuXG4gIEBtZWRpYSAoLS1zbSkge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBhc3BlY3QtcmF0aW86IDQwODAgLyAxMzgwO1xuICB9XG59XG5cbi8qINCa0L7QvNC/0LXQvdGB0LDRhtC40Y8g0LjQtyBjb21wb25lbnRzL3NsaWRlci5jc3MgKG1hcmdpbi10b3AgLTJyZW0pINGA0LDRgdGB0YfQuNGC0LDQvdCwINC90LAgcGFkZGluZy1ib3R0b20g4oCUINC90LUg0L3Rg9C20L3QsCAqL1xuLm5hdmlnYXRpb24gW2lkPVwibG90dGVyeVNsaWRlclwiXS5jYXJkLXNsaWRlciAuc3dpcGVyLWJ1dHRvbi1uZXh0LFxuLm5hdmlnYXRpb24gW2lkPVwibG90dGVyeVNsaWRlclwiXS5jYXJkLXNsaWRlciAuc3dpcGVyLWJ1dHRvbi1wcmV2IHtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xufVxuXG4vKiDQptC10L/QvtGH0LrQsCDQstGL0YHQvtGC0Ysg0L/QvtC0IFN3aXBlciAo0LvQvtC60LDQu9GM0L3Ri9C5IHNsaWRlci5jc3Mg0L3QtSDQt9Cw0LTQsNGR0YIgc2xpZGUgaGVpZ2h0KSAqL1xuLm5hdmlnYXRpb24gW2lkPVwibG90dGVyeVNsaWRlclwiXSAuc3dpcGVyLXdyYXBwZXIsXG4ubmF2aWdhdGlvbiBbaWQ9XCJsb3R0ZXJ5U2xpZGVyXCJdIC5zd2lwZXItc2xpZGUge1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5uYXZpZ2F0aW9uIC5jYXJkLXNsaWRlciAuc3dpcGVyLXNsaWRlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLm5hdmlnYXRpb24gLmNhcmQtc2xpZGVyX19saW5rIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5uYXZpZ2F0aW9uIC5jYXJkLXNsaWRlcl9fY292ZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi8qIGxvdHRlcnlTbGlkZXI6INC30LDQv9C+0LvQvdC10L3QuNC1INC60LDQuiDRgyDQvtGB0YLQsNC70YzQvdGL0YUg0LrQsNGA0YLQvtGH0LXQuiAoY292ZXIpLCDQsdC10Lcg0L7QsdGA0LXQt9C60Lgg0LfQsCDRgdGH0ZHRgiBhc3BlY3QtcmF0aW8gKi9cbi5uYXZpZ2F0aW9uIFtpZD1cImxvdHRlcnlTbGlkZXJcIl0gLmNhcmQtc2xpZGVyX19jb3ZlciB7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbn1cblxuLm5hdmlnYXRpb24gLmNhcmQtc2xpZGVyIC5zd2lwZXItcGFnaW5hdGlvbiB7XG4gIHotaW5kZXg6IDM7XG4gIGJvdHRvbTogMXJlbTtcbn1cblxuLm5hdmlnYXRpb24gLmNhcmQtc2xpZGVyIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0xKSAhaW1wb3J0YW50O1xufVxuXG4ubmF2aWdhdGlvbiAuY2FyZC1zbGlkZXIgLnN3aXBlci1idXR0b24tbmV4dCxcbi5uYXZpZ2F0aW9uIC5jYXJkLXNsaWRlciAuc3dpcGVyLWJ1dHRvbi1wcmV2IHtcbiAgei1pbmRleDogMztcblxuICAtLXN3aXBlci1uYXZpZ2F0aW9uLWNvbG9yOiB2YXIoLS1jb2xvci0xKTtcblxuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2Utb3V0O1xufVxuXG4ubmF2aWdhdGlvbiAuY2FyZC1zbGlkZXI6aG92ZXIgLnN3aXBlci1idXR0b24tbmV4dCxcbi5uYXZpZ2F0aW9uIC5jYXJkLXNsaWRlcjpob3ZlciAuc3dpcGVyLWJ1dHRvbi1wcmV2IHtcbiAgb3BhY2l0eTogMC41O1xufVxuXG4ubmF2aWdhdGlvbiAuY2FyZC1zbGlkZXI6aG92ZXIgLnN3aXBlci1idXR0b24tbmV4dDpob3Zlcixcbi5uYXZpZ2F0aW9uIC5jYXJkLXNsaWRlcjpob3ZlciAuc3dpcGVyLWJ1dHRvbi1wcmV2OmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLyogNC44cmVtINGC0L7Qu9GM0LrQviDQtNC+INC4INC/0L7RgdC70LUg0YDRj9C00LAg0LrQvdC+0L/QvtC6OiDQuiByb3ctZ2FwL2NvbHVtbi1nYXAg0YHQtdGC0LrQuCDQtNC+0LHQsNCy0LvRj9C10Lwg0L3QtdC00L7RgdGC0LDRjtGJ0LXQtSAqL1xuLm5hdmlnYXRpb24gLnNlY3Rpb25fX3N1Yml0ZW0uaXRlbS13cmFwOmhhcyguYnV0dG9ucy13cmFwKSB7XG4gIG1hcmdpbi1ibG9jazogY2FsYyg0LjhyZW0gLSAxLjZyZW0pO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIG1hcmdpbi1ibG9jazogY2FsYyg0LjhyZW0gLSAycmVtKTtcbiAgfVxufVxuXG4ubmF2aWdhdGlvbiAuYnV0dG9ucy13cmFwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMC44cmVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGdhcDogMnJlbTtcbiAgfVxufVxuXG4ubmF2aWdhdGlvbiAuYnV0dG9ucy13cmFwIC5idXR0b24tc2VjdGlvbiB7XG4gIHdpZHRoOiBjYWxjKDUwJSAtIDAuNHJlbSk7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMzJSAtIDEuMzM0cmVtKTtcbiAgfVxufVxuXG4vKiDQn9C70LDQstC90L7QtSDQt9Cw0YLQtdC80L3QtdC90LjQtSDQutCw0YDRgtC+0YfQtdC6INC/0YDQuCDQvdCw0LbQsNGC0LjQuCAqL1xuLm5hdmlnYXRpb24gLmNhcmQtbmF2IHtcbiAgdHJhbnNpdGlvbjogZmlsdGVyIDAuNnMgZWFzZS1vdXQ7XG59XG5cbi5uYXZpZ2F0aW9uIC5jYXJkLWdyYWRpZW50IHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0LCBmaWx0ZXIgMC42cyBlYXNlLW91dDtcbn1cblxuLm5hdmlnYXRpb24gLmNhcmQtbmF2OmFjdGl2ZSxcbi5uYXZpZ2F0aW9uIC5jYXJkLWdyYWRpZW50OmFjdGl2ZSB7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygwLjkpO1xufVxuIiwiLnJlc3RhdXJhbnRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiAycmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci0xKTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBnYXA6IDZyZW07XG4gIH1cbn1cblxuLnJlc3RhdXJhbnRzIC5zZWN0aW9uX19pdGVtLmhlYWRpbmctd3JhcCB7XG59XG5cbi5yZXN0YXVyYW50cyAuaGVhZGluZyB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZvbnQtc2l6ZTogMy4yZW07XG4gIH1cbn1cblxuLnJlc3RhdXJhbnRzIC5zZWN0aW9uX19pdGVtLnRhZ3Mtd3JhcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMXJlbTtcbiAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIG1hcmdpbi10b3A6IC00cmVtO1xuICAgIG92ZXJmbG93LXg6IHVuc2V0O1xuICB9XG59XG5cbi5yZXN0YXVyYW50cyAuc2VjdGlvbl9faXRlbS5jYXJkcy1yZXN0YXVyYW50LXdyYXAge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgcm93LWdhcDogNHJlbTtcblxuICBAbWVkaWEgKC0tc20pIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgIGdhcDogMS41cmVtO1xuICB9XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgICBnYXA6IDRyZW0gMnJlbTtcbiAgfVxufVxuXG4ucmVzdGF1cmFudHMgLnNlY3Rpb25fX3N1Yml0ZW0uY2FyZC1yZXN0YXVyYW50LXdyYXAge1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5yZXN0YXVyYW50cyAuc2VjdGlvbl9fc3ViaXRlbS5jYXJkLXJlc3RhdXJhbnQtd3JhcCAuY2FyZC1yZXN0YXVyYW50IHtcbiAgbWluLXdpZHRoOiAwO1xuICBoZWlnaHQ6IDI2cmVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGhlaWdodDogMzByZW07XG4gIH1cbn1cbiIsIi8qINCh0L7RgdC10LTQuCDQv9C+INCz0L7RgNC+0LTRgyDQvdCwINC60LDRgNGC0L7Rh9C60LUg0YDQtdGB0YLQvtGA0LDQvdCwOiDRgdC/0LjRgdC+0Lot0L3QsNCy0LjQs9Cw0YbQuNGPLCDQvdC1INCy0LjRgtGA0LjQvdCwIOKAlFxuICAg0LPQvtGB0YLRjCDRg9C20LUg0LLQvdGD0YLRgNC4INCx0YDQtdC90LTQsCwg0LXQvNGDINC90YPQttC10L0g0LHRi9GB0YLRgNGL0Lkg0L/QtdGA0LXRhdC+0LQsINCwINC90LUg0LLRgtC+0YDQvtC5INGA0Y/QtCDQvtCx0LvQvtC20LXQui4gKi9cblxuLnJlc3RhdXJhbnQtbmVhcmJ5IHtcbiAgLyog0JrQsNGA0YLQvtGH0LrQsCDRgNC10YHRgtC+0YDQsNC90LAg4oCUINGC0ZHQvNC90LDRjyDRgdGC0YDQsNC90LjRhtCwOiDRhtCy0LXRgiDQt9Cw0LTQsNGR0Lwg0Y/QstC90L4sINC40L3QsNGH0LUg0YLQtdC60YHRgiDQvdCw0YHQu9C10LTRg9C10YIg0YfRkdGA0L3Ri9C5ICovXG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbiAgcGFkZGluZy1ibG9jazogNi40cmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiKDI1NSAyNTUgMjU1IC8gMTIlKTtcbn1cblxuLnJlc3RhdXJhbnQtbmVhcmJ5X19oZWFkaW5nIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtMS1leHRlbmRlZCk7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMS44cmVtLCAzdncsIDIuNnJlbSk7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtO1xuICBtYXJnaW4tYm90dG9tOiAzLjJyZW07XG59XG5cbi5yZXN0YXVyYW50LW5lYXJieV9fbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMCAwIDMuMnJlbTtcbiAgcGFkZGluZzogMDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiKDI1NSAyNTUgMjU1IC8gMTIlKTtcbn1cblxuLnJlc3RhdXJhbnQtbmVhcmJ5X19pdGVtIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYigyNTUgMjU1IDI1NSAvIDEyJSk7XG59XG5cbi5yZXN0YXVyYW50LW5lYXJieV9fbGluayB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDE2cmVtLCAyMnJlbSkgMWZyO1xuICBnYXA6IDAuNHJlbSAzLjJyZW07XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgcGFkZGluZy1ibG9jazogMS44cmVtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0cmFuc2l0aW9uOiB0ZXh0LWRlY29yYXRpb24tY29sb3IgdmFyKC0tdHJhbnNpdGlvbi0xKTtcbn1cblxuLyog0J/QvtC00YfRkdGA0LrQuNCy0LDQtdC8INGC0L7Qu9GM0LrQviDQvdCw0LfQstCw0L3QuNC1OiDRgdGC0YDQvtC60LAg0YbQtdC70LjQutC+0LwsINCy0LzQtdGB0YLQtSDRgSDQvtC/0LjRgdCw0L3QuNC10LwsINGH0LjRgtCw0LXRgtGB0Y8g0LrQsNC6INC/0L7QvNCw0YDQutCwLiAqL1xuLnJlc3RhdXJhbnQtbmVhcmJ5X19saW5rOmhvdmVyIC5yZXN0YXVyYW50LW5lYXJieV9fbmFtZSxcbi5yZXN0YXVyYW50LW5lYXJieV9fbGluazpmb2N1cy12aXNpYmxlIC5yZXN0YXVyYW50LW5lYXJieV9fbmFtZSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHZhcigtLWNvbG9yLTMpO1xuICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAxcHg7XG4gIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMC4yNWVtO1xufVxuXG4ucmVzdGF1cmFudC1uZWFyYnlfX25hbWUge1xuICBmb250LXNpemU6IDEuN3JlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLnJlc3RhdXJhbnQtbmVhcmJ5X19kZXNjIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIG9wYWNpdHk6IDAuNztcbiAgdGV4dC13cmFwOiBwcmV0dHk7XG59XG5cbi5yZXN0YXVyYW50LW5lYXJieV9fYWxsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jb2xvci0zKSA0MCUsIHRyYW5zcGFyZW50KTtcbiAgcGFkZGluZy1ib3R0b206IDAuNHJlbTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi0xKTtcbn1cblxuLnJlc3RhdXJhbnQtbmVhcmJ5X19hbGw6aG92ZXIsXG4ucmVzdGF1cmFudC1uZWFyYnlfX2FsbDpmb2N1cy12aXNpYmxlIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tY29sb3ItMyk7XG59XG5cbkBtZWRpYSAod2lkdGggPD0gNjAwcHgpIHtcbiAgLnJlc3RhdXJhbnQtbmVhcmJ5IHtcbiAgICBwYWRkaW5nLWJsb2NrOiA0LjhyZW07XG4gIH1cblxuICAucmVzdGF1cmFudC1uZWFyYnlfX2xpbmsge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG59XG4iLCIvKiDQoNCw0YHRgdC60LDQtyDQviDRgNC10YHRgtC+0YDQsNC90LUg0Lgg0LLQvtC/0YDQvtGB0Ysg0LPQvtGB0YLQtdC5INGB0YLQvtGP0YIg0YDRj9C00L7QvCwg0L/QvtGN0YLQvtC80YMg0L7RhNC+0YDQvNC70LXQvdGLINC/0L4t0YDQsNC30L3QvtC80YM6XG4gICDRgNCw0YHRgdC60LDQtyDigJQg0YDQsNC30LLQvtGA0L7RgtC+0Lwg0YEg0L/QvtC00LfQsNCz0L7Qu9C+0LLQutC+0Lwg0L3QsCDQv9C+0LvRj9GFLCDQstC+0L/RgNC+0YHRiyDigJQg0L/Qu9C+0YLQvdGL0Lwg0YHQv9C40YHQutC+0Lwg0LIg0LrQvtC70L7QvdC60YMuXG4gICDQoNCw0L3RjNGI0LUg0L7QsdCwINCy0YvQs9C70Y/QtNC10LvQuCDQutCw0LogwqvQt9Cw0LPQvtC70L7QstC+0Log0Lgg0LDQsdC30LDRhsK7INC4INGB0LvQuNCy0LDQu9C40YHRjCDQsiDQvtC00L3RgyDQv9GA0L7RgdGC0YvQvdGOLiAqL1xuXG4ucmVzdGF1cmFudC1zdG9yeSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLnJlc3RhdXJhbnQtc3RvcnlfX2Jsb2NrICsgLnJlc3RhdXJhbnQtc3RvcnlfX2Jsb2NrIHtcbiAgbWFyZ2luLXRvcDogMy4ycmVtO1xufVxuXG4ucmVzdGF1cmFudC1zdG9yeV9fYmxvY2sge1xuICBAbWVkaWEgKC0tbWQpIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDE4cmVtLCAyNCUpIDFmcjtcbiAgICBnYXA6IDAgNHJlbTtcbiAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gIH1cbn1cblxuLnJlc3RhdXJhbnQtc3RvcnlfX2hlYWRpbmcge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC0xLWV4dGVuZGVkKTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiBjbGFtcCgxLjlyZW0sIDIuNnZ3LCAyLjJyZW0pO1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07XG4gIG1hcmdpbi1ib3R0b206IDEuMnJlbTtcblxuICAvKiDQpNC40YDQvNC10L3QvdGL0Lkg0YbQstC10YIg0L/QvtC00LfQsNCz0L7Qu9C+0LLQutCwIOKAlCDRgtC+LCDRh9C10Lwg0YDQsNGB0YHQutCw0Lcg0L7RgtC70LjRh9Cw0LXRgtGB0Y8g0L7RgiDQstC+0L/RgNC+0YHQvtCyINC90LAg0LvRjtCx0L7QvCDRjdC60YDQsNC90LUuICovXG4gIGNvbG9yOiB2YXIoLS1jb2xvci0zKTtcbiAgdGV4dC13cmFwOiBiYWxhbmNlO1xuXG4gIEBtZWRpYSAoLS1tZCkge1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgdG9wOiAxMnJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi5yZXN0YXVyYW50LXN0b3J5X190ZXh0IHtcbiAgbWF4LXdpZHRoOiA2OGNoO1xuICBmb250LXNpemU6IDEuN3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNztcbiAgdGV4dC13cmFwOiBwcmV0dHk7XG59XG5cbi5yZXN0YXVyYW50LXN0b3J5X190ZXh0ICsgLnJlc3RhdXJhbnQtc3RvcnlfX3RleHQge1xuICBtYXJnaW4tdG9wOiAxLjRyZW07XG59XG5cbi8qIC0tLSDQktC+0L/RgNC+0YHRizog0YHRg9GF0L7QuSDRgdC/0LjRgdC+0LosINCwINC90LUg0L/RgNC+0LTQvtC70LbQtdC90LjQtSDRgNCw0YHRgdC60LDQt9CwIC0tLSAqL1xuXG4ucmVzdGF1cmFudC1mYXEge1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG4gIG1heC13aWR0aDogNjhjaDtcbn1cblxuLnJlc3RhdXJhbnQtZmFxX19oZWFkaW5nIHtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjE0ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIG9wYWNpdHk6IDAuNTU7XG4gIG1hcmdpbi1ib3R0b206IDEuNnJlbTtcbn1cblxuLnJlc3RhdXJhbnQtZmFxX19saXN0IHtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiKDI1NSAyNTUgMjU1IC8gMTIlKTtcbn1cblxuLnJlc3RhdXJhbnQtZmFxX19pdGVtIHtcbiAgcGFkZGluZy1ibG9jazogMS42cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDI1NSAyNTUgMjU1IC8gMTIlKTtcbn1cblxuLnJlc3RhdXJhbnQtZmFxX19xIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNnJlbTtcbn1cblxuLnJlc3RhdXJhbnQtZmFxX19hIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDEuNDVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU1O1xuICBvcGFjaXR5OiAwLjc7XG4gIHRleHQtd3JhcDogcHJldHR5O1xufVxuIiwiLyog0KDQsNGB0YHQutCw0Lcg0L4g0LPRgNGD0L/Qv9C1INC90LAg0LPQu9Cw0LLQvdC+0LkuINCU0LLQtSDQutC+0LvQvtC90LrQuCDQvdCwINGI0LjRgNC+0LrQvtC8INGN0LrRgNCw0L3QtTog0YLQtdC60YHRgiDRh9C40YLQsNC10YLRgdGPINCx0LvQvtC60LDQvNC4LFxuICAg0LAg0L3QtSDQvtC00L3QvtC5INC/0YDQvtGB0YLRi9C90ZHQuSDQstC+INCy0YHRjiDRiNC40YDQuNC90YMuICovXG5cbi5ncm91cC1zdG9yeSB7XG4gIC8qINCk0L7QvSDQt9Cw0LTQsNGR0Lwg0Y/QstC90L46INGB0LXQutGG0LjRjyDRgdGC0L7QuNGCINC80LXQttC00YMg0YHQstC10YLQu9GL0LzQuCDQsdC70L7QutCw0LzQuCDQs9C70LDQstC90L7QuSxcbiAgICAg0LHQtdC3INC90LXQs9C+INCx0LXQu9GL0Lkg0YLQtdC60YHRgiDQu9C+0LbQuNGC0YHRjyDQvdCwINCx0LXQu9C+0LUuICovXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLTcpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG4gIHBhZGRpbmctYmxvY2s6IDhyZW07XG59XG5cbi5ncm91cC1zdG9yeV9fdGl0bGUge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC0xLWV4dGVuZGVkKTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiBjbGFtcCgyLjRyZW0sIDQuNXZ3LCA0cmVtKTtcbiAgbGluZS1oZWlnaHQ6IDEuMDU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICBtYXJnaW4tYm90dG9tOiA0LjhyZW07XG4gIG1heC13aWR0aDogMjRjaDtcbiAgdGV4dC13cmFwOiBiYWxhbmNlO1xufVxuXG4uZ3JvdXAtc3RvcnlfX2dyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDRyZW0gNi40cmVtO1xufVxuXG4uZ3JvdXAtc3RvcnlfX2hlYWRpbmcge1xuICBmb250LXNpemU6IGNsYW1wKDEuN3JlbSwgMi4ydncsIDJyZW0pO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBtYXJnaW4tYm90dG9tOiAxLjRyZW07XG4gIHRleHQtd3JhcDogYmFsYW5jZTtcbn1cblxuLmdyb3VwLXN0b3J5X190ZXh0IHtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY1O1xuICBvcGFjaXR5OiAwLjgyO1xuICBtYXgtd2lkdGg6IDYyY2g7XG4gIHRleHQtd3JhcDogcHJldHR5O1xufVxuXG4uZ3JvdXAtc3RvcnlfX3RleHQgKyAuZ3JvdXAtc3RvcnlfX3RleHQge1xuICBtYXJnaW4tdG9wOiAxLjJyZW07XG59XG5cbi8qINCh0YHRi9C70LrQuCDQstC90YPRgtGA0Lgg0YLQtdC60YHRgtCwOiDQvdCw0YHQu9C10LTRg9GO0YIg0YbQstC10YIsINCwINC90LUg0YPRhdC+0LTRj9GCINCyINCx0YDQsNGD0LfQtdGA0L3Ri9C5INGB0LjQvdC40Lkg0L3QsCDRgtGR0LzQvdC+0Lwg0YTQvtC90LUgKi9cbi5ncm91cC1zdG9yeV9fdGV4dCBhIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYigyNTUgMjU1IDI1NSAvIDM1JSk7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tMSksIGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLTEpO1xufVxuXG4uZ3JvdXAtc3RvcnlfX3RleHQgYTpob3Zlcixcbi5ncm91cC1zdG9yeV9fdGV4dCBhOmZvY3VzLXZpc2libGUge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jb2xvci0zKTtcbn1cblxuLmdyb3VwLXN0b3J5X19saW5rcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiAyLjRyZW0gMy4ycmVtO1xuICBtYXJnaW4tdG9wOiA0LjhyZW07XG4gIHBhZGRpbmctdG9wOiAzLjJyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2IoMjU1IDI1NSAyNTUgLyAxNCUpO1xufVxuXG4uZ3JvdXAtc3RvcnlfX2xpbmsge1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgcGFkZGluZy1ib3R0b206IDAuNHJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLTEpLCBib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi0xKTtcbn1cblxuLmdyb3VwLXN0b3J5X19saW5rOmhvdmVyLFxuLmdyb3VwLXN0b3J5X19saW5rOmZvY3VzLXZpc2libGUge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jb2xvci0zKTtcbn1cblxuQG1lZGlhICh3aWR0aCA+PSA5MDBweCkge1xuICAuZ3JvdXAtc3RvcnlfX2dyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcbiAgfVxufVxuXG5AbWVkaWEgKHdpZHRoIDw9IDYwMHB4KSB7XG4gIC5ncm91cC1zdG9yeSB7XG4gICAgcGFkZGluZy1ibG9jazogNS42cmVtO1xuICB9XG5cbiAgLmdyb3VwLXN0b3J5X190aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMy4ycmVtO1xuICB9XG59XG4iLCIvKiDQkdC70L7QuiDQstC+0L/RgNC+0YHQvtCyINC4INC+0YLQstC10YLQvtCyLiDQlNCy0LUg0YLQtdC80Ys6INGC0ZHQvNC90LDRjyDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQuCDRgdCy0LXRgtC70LDRjyDQtNC70Y8g0YHRgtGA0LDQvdC40YYg0L3QsCDQsdC10LvQvtC8LiAqL1xuXG4uZmFxLWJsb2NrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItNyk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbiAgcGFkZGluZy1ibG9jazogNy4ycmVtO1xufVxuXG4uZmFxLWJsb2NrLS1saWdodCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMik7XG59XG5cbi5mYXEtYmxvY2tfX3RpdGxlIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtMS1leHRlbmRlZCk7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMi4ycmVtLCA0dncsIDMuMnJlbSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjA1O1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMy42cmVtO1xufVxuXG4uZmFxLWJsb2NrX19saXN0IHtcbiAgbWFyZ2luOiAwO1xuICBtYXgtd2lkdGg6IDc4Y2g7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2IoMjU1IDI1NSAyNTUgLyAxNCUpO1xufVxuXG4uZmFxLWJsb2NrLS1saWdodCAuZmFxLWJsb2NrX19saXN0IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2UyZTBkZTtcbn1cblxuLmZhcS1ibG9ja19faXRlbSB7XG4gIHBhZGRpbmctYmxvY2s6IDIuMnJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYigyNTUgMjU1IDI1NSAvIDE0JSk7XG59XG5cbi5mYXEtYmxvY2stLWxpZ2h0IC5mYXEtYmxvY2tfX2l0ZW0ge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjZTJlMGRlO1xufVxuXG4uZmFxLWJsb2NrX19xIHtcbiAgZm9udC1zaXplOiAxLjdyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIG1hcmdpbi1ib3R0b206IDAuOXJlbTtcbiAgdGV4dC13cmFwOiBiYWxhbmNlO1xufVxuXG4uZmFxLWJsb2NrX19hIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDEuNTVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY1O1xuICBvcGFjaXR5OiAwLjgyO1xuICB0ZXh0LXdyYXA6IHByZXR0eTtcbn1cblxuLmZhcS1ibG9jay0tbGlnaHQgLmZhcS1ibG9ja19fYSB7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiAjNGE0YTRhO1xufVxuXG5AbWVkaWEgKHdpZHRoIDw9IDYwMHB4KSB7XG4gIC5mYXEtYmxvY2sge1xuICAgIHBhZGRpbmctYmxvY2s6IDUuNnJlbTtcbiAgfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFNlY3Rpb246IGV2ZW50cyAo0LDRhNC40YjQsClcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5ldmVudHMge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0yKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4uZXZlbnRzIC5oZWFkaW5nLXdyYXAge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5ldmVudHMgLmhlYWRpbmcge1xuICBmb250LXNpemU6IDJlbTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBmb250LXNpemU6IDMuMmVtO1xuICB9XG59XG5cbi8qINCh0YLRgNCw0L3QuNGG0LAg0LDRhNC40YjQuCDRgtGR0LzQvdCw0Y8g0YbQtdC70LjQutC+0Lwg4oCUINCx0LXQtyDQsdC10LvRi9GFINGD0LPQvtC70LrQvtCyINC30LAg0YHQutGA0YPQs9C70LXQvdC40LXQvCDRhNGD0YLQtdGA0LAgKi9cbiNwYWdlLWNvbnRlbnQ6aGFzKC5ldmVudHMpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMik7XG59XG5cbi5ldmVudHNfX2xlYWQtd3JhcCB7XG4gIG1heC13aWR0aDogNjhyZW07XG4gIG1hcmdpbjogMS42cmVtIGF1dG8gMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZXZlbnRzX19sZWFkIHtcbiAgZm9udC1zaXplOiAxLjdyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci02KTtcbn1cblxuLmV2ZW50c19fZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICBnYXA6IDIuNHJlbTtcbiAgbWFyZ2luLXRvcDogNHJlbTtcblxuICBAbWVkaWEgKC0teG0pIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICB9XG5cbiAgQG1lZGlhICgtLW1kKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgICBnYXA6IDNyZW07XG4gIH1cbn1cblxuLmV2ZW50c19fY2VsbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5ldmVudHNfX2VtcHR5IHtcbiAgbWFyZ2luLXRvcDogM3JlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEuN3JlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTYpO1xufVxuIiwiLmFuYWx5dGljcyB7XG4gIC8qINCh0YLQuNC70Lgg0LTQu9GPIGFuYWx5dGljcyAqL1xufVxuXG4uYW5hbHl0aWNzIC5jb250YWluZXIge1xuICAvKiDQodGC0LjQu9C4INC00LvRjyDQutC+0L3RgtC10LnQvdC10YDQsCDQsiBhbmFseXRpY3MgKi9cbn1cbiIsImJsb2NrcXVvdGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJsb2NrOiAwO1xuICBtYXJnaW4taW5saW5lOiAwO1xufVxuXG4uYmxvY2txdW90ZS1ib3JkZXIge1xuICBwYWRkaW5nOiAycmVtIDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci02KTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLTYpO1xufVxuXG4uYmxvY2txdW90ZS1zbSB7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG5cbi5ibG9ja3F1b3RlLW1kIHtcbiAgZm9udC1zaXplOiAxLjhlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cblxuLmJsb2NrcXVvdGUtbGcge1xuICBmb250LXNpemU6IDIuNGVtO1xuICBsaW5lLWhlaWdodDogMS4zO1xufSIsIi5idXJnZXItaWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHotaW5kZXg6IHZhcigtLXotaW5kZXgtNCk7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBmb250OiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbn1cblxuLmJ1cmdlci1pY29uX19jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aWR0aDogMi40cmVtO1xuICBoZWlnaHQ6IDEuNnJlbTtcbn1cblxuLmJ1cmdlci1pY29uX19pdGVtIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAwLjJyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICB0cmFuc2l0aW9uOiAwLjJzIGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0b3AsIHRyYW5zZm9ybSwgb3BhY2l0eTtcbn1cblxuLmJ1cmdlci1pY29uX19pdGVtOm50aC1jaGlsZCgxKSB7XG4gIHRvcDogMDtcbn1cblxuLmJ1cmdlci1pY29uX19pdGVtOm50aC1jaGlsZCgyKSB7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi5idXJnZXItaWNvbl9faXRlbTpudGgtY2hpbGQoMykge1xuICB0b3A6IDEwMCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG59XG5cbi5idXJnZXItaWNvbi5hY3RpdmUgLmJ1cmdlci1pY29uX19pdGVtOm50aC1jaGlsZCgxKSB7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbn1cblxuLmJ1cmdlci1pY29uLmFjdGl2ZSAuYnVyZ2VyLWljb25fX2l0ZW06bnRoLWNoaWxkKDIpIHtcbiAgb3BhY2l0eTogMDtcbn1cblxuLmJ1cmdlci1pY29uLmFjdGl2ZSAuYnVyZ2VyLWljb25fX2l0ZW06bnRoLWNoaWxkKDMpIHtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbn1cbiIsIi5idXJnZXItbWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwZHZoO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci0yKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICB6LWluZGV4OiB2YXIoLS16LWluZGV4LTUpO1xuXG4gIEBtZWRpYSAoLS1zbSkge1xuICAgIHdpZHRoOiAzOXJlbTtcbiAgfVxufVxuXG4uYnVyZ2VyLW1lbnUuYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5idXJnZXItbWVudSAuY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgZ2FwOiAyLjEzcmVtO1xuICBwYWRkaW5nOiA5LjVyZW0gMi42cmVtIDNyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIHBhZGRpbmctdG9wOiAxMi44cmVtO1xuICB9XG59XG5cbi5idXJnZXItbWVudV9faXRlbSB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQtc2l6ZTogMi4zM3JlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbiAgYm9yZGVyOiAwO1xufVxuXG4uYnVyZ2VyLW1lbnVfX3RpdGxlIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuLmJ1cmdlci1tZW51X19pdGVtOmhvdmVyIC5idXJnZXItbWVudV9fdGl0bGUsXG4uYnVyZ2VyLW1lbnVfX2l0ZW06Zm9jdXMtdmlzaWJsZSAuYnVyZ2VyLW1lbnVfX3RpdGxlIHtcbiAgb3BhY2l0eTogMC43O1xufVxuIiwiLmJ1dHRvbiB7XG4gIC8qINCh0YLQuNC70Lgg0LTQu9GPIGJ1dHRvbiAqL1xufVxuXG4uYnV0dG9uIC5jb250YWluZXIge1xuICAvKiDQodGC0LjQu9C4INC00LvRjyDQutC+0L3RgtC10LnQvdC10YDQsCDQsiBidXR0b24gKi9cbn1cbiIsIi5jb3ZlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgei1pbmRleDogMTtcbn1cblxuLmNvdmVyX19pbWFnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5cbi5jb3Zlcjpob3ZlciBpbWcge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDI1KTtcbn1cblxuLmNvdmVyX19pY29uLXdyYXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiA2cmVtO1xuICBoZWlnaHQ6IDZyZW07XG4gIHBhZGRpbmc6IDEuNzVyZW07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICBib3JkZXI6IDAuMXJlbSBzb2xpZCB2YXIoLS1jb2xvci0xKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB6LWluZGV4OiAyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuXG4uY292ZXI6aG92ZXIgLmNvdmVyX19pY29uLXdyYXAge1xuICBvcGFjaXR5OiAwLjk7XG59IiwiLmN1c3RvbS1jaGVja2JveCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jdXN0b20tY2hlY2tib3hfX2lucHV0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmN1c3RvbS1jaGVja2JveF9fYm94IHtcbiAgd2lkdGg6IDJyZW07XG4gIGhlaWdodDogMnJlbTtcbiAgYm9yZGVyOiAwLjFyZW0gc29saWQgdmFyKC0tY29sb3ItMSk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuM3MgZWFzZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY3VzdG9tLWNoZWNrYm94X19ib3g6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWJvcmRlcik7XG59XG5cbi5jdXN0b20tY2hlY2tib3hfX2ljb24ge1xuICB3aWR0aDogMS41cmVtO1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgZmlsbDogbm9uZTtcbiAgc3Ryb2tlOiB2YXIoLS1jb2xvci0xKTtcbiAgc3Ryb2tlLXdpZHRoOiAwLjJyZW07XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLmN1c3RvbS1jaGVja2JveF9faW5wdXQ6Y2hlY2tlZCsuY3VzdG9tLWNoZWNrYm94X19ib3gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci00KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci00KTtcbn1cblxuLmN1c3RvbS1jaGVja2JveF9faW5wdXQ6Y2hlY2tlZCsuY3VzdG9tLWNoZWNrYm94X19ib3ggLmN1c3RvbS1jaGVja2JveF9faWNvbiB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG59XG4iLCIuY3VzdG9tLWxpc3Qge31cblxuLmN1c3RvbS1saXN0IHtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tbGVmdDogMS41cmVtO1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IDFlbTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICB9XG59XG5cbi5jdXN0b20tbGlzdF9faXRlbSB7XG4gIHBhZGRpbmctdG9wOiAwLjVyZW07XG59IiwiLmZlYXR1cmVzLWxpc3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG59XG5cbi5mZWF0dXJlcy1saXN0X19pdGVtIHtcbiAgcGFkZGluZzogMXJlbSAwO1xuICBmb250LXNpemU6IDAuOGVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItNSk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci01KTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBwYWRkaW5nOiAxLjI1cmVtIDA7XG4gIH1cbn0iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgZm9ybS1jYWxsYmFjayDigJQg0YHQvtCy0YDQtdC80LXQvdC90LDRjyDRhNC+0YDQvNCwINC+0LHRgNCw0YLQvdC+0Lkg0YHQstGP0LfQuFxuICAgRmxvYXRpbmcgbGFiZWxzLCDQsNC90LjQvNCw0YbQuNC4LCDQtdC00LjQvdC+0L7QsdGA0LDQt9C90YvQtSDQv9C+0LvRjywgZHJhZy1hbmQtZHJvcCDQt9C+0L3QsCDRhNCw0LnQu9C+0LJcbiAgINCR0LDQt9C+0LLRi9C5INGA0LDQt9C80LXRgDogMXJlbSA9IDEwcHhcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5mb3JtLWNhbGxiYWNrX190cmFwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtOTk5OXB4O1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmZvcm0tY2FsbGJhY2sge1xuICAtLWZjLXJhZGl1czogMC40cmVtO1xuICAtLWZjLWJvcmRlcjogMXB4IHNvbGlkIHJnYigwIDAgMCAvIDYlKTtcbiAgLS1mYy1ib3JkZXItZXJyb3I6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1lcnJvcik7XG4gIC0tZmMtYmc6IHJnYigwIDAgMCAvIDIlKTtcbiAgLS1mYy1iZy1ob3ZlcjogcmdiKDAgMCAwIC8gNCUpO1xuICAtLWZjLWZvbnQ6IHZhcigtLWZvbnQtMSk7XG4gIC0tZmMtdGV4dDogdmFyKC0tY29sb3ItMik7XG4gIC0tZmMtbGFiZWw6IHZhcigtLWNvbG9yLTUpO1xuICAvKiDQodC+0YHRgtC+0Y/QvdC40Y8g0LLRi9C90LXRgdC10L3RiyDQsiDQv9C10YDQtdC80LXQvdC90YvQtTog0L/Qu9C+0YnQsNC00LrQsCDRgSDRgtGR0LzQvdC+0Lkg0YLQtdC80L7QuSDQvdC1INC80L7QttC10YIg0L/QtdGA0LXQvtC/0YDQtdC00LXQu9C40YLRjFxuICAgICDQttGR0YHRgtC60L4g0L/RgNC+0L/QuNGB0LDQvdC90YvQuSDRhtCy0LXRgiwg0Lgg0YMg0L3QtdGRINC80LXRgtC60LAg0YHQstC10YLQuNC70LDRgdGMINC20ZHQu9GC0YvQvCwg0LAg0LPQsNC70L7Rh9C60LAg0YLQtdGA0Y/Qu9Cw0YHRjC4gKi9cbiAgLS1mYy1sYWJlbC1hY3RpdmU6IHZhcigtLWNvbG9yLTUpO1xuICAtLWZjLWJvcmRlci1ob3ZlcjogcmdiKDAgMCAwIC8gMTUlKTtcbiAgLS1mYy1jaGVja2VkLWJnOiB2YXIoLS1jb2xvci02KTtcbiAgLS1mYy1jaGVja2VkLWJvcmRlcjogdmFyKC0tY29sb3ItNik7XG4gIC0tZmMtY2hlY2tlZC1tYXJrOiB2YXIoLS1jb2xvci0xKTtcbiAgLS1mYy1hY2NlbnQ6IHZhcigtLWNvbG9yLTUpO1xuICAtLWZjLW11dGVkOiB2YXIoLS1jb2xvci02KTtcbiAgLS1mYy1mb2N1cy1yaW5nOiB2YXIoLS1jb2xvci01KTtcbiAgLS1mYy1zcGVlZDogMC4ycztcbiAgLS1mYy1lYXNlOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAtLWZjLWhlaWdodDogNS42cmVtO1xuICAtLWZjLWdhcDogMnJlbTtcbiAgLS1mYy1mb250LXNpemU6IDEuNnJlbTtcbiAgLS1mYy1mb250LXNpemUtc206IDEuM3JlbTtcbiAgLS1mYy1mb250LXNpemUteHM6IDEuMnJlbTtcbiAgLS1mYy1zdWNjZXNzOiAjMmU3ZDMyO1xuICAtLWZjLXN1Y2Nlc3MtYmc6ICNlOGY1ZTk7XG5cbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEdyaWRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5mb3JtLWNhbGxiYWNrX19ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiB2YXIoLS1mYy1nYXApO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzIHZhcigtLWZjLWVhc2UpLCBmaWx0ZXIgMC40cyB2YXIoLS1mYy1lYXNlKTtcblxuICBAbWVkaWEgKC0tc20pIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICB9XG59XG5cbi8qIEdyaWQgZGltbWVkIGR1cmluZyBsb2FkaW5nICovXG4uZm9ybS1jYWxsYmFjay5pcy1sb2FkaW5nIC5mb3JtLWNhbGxiYWNrX19ncmlkIHtcbiAgb3BhY2l0eTogMC41O1xuICBmaWx0ZXI6IGdyYXlzY2FsZSgwLjMpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFN1Y2Nlc3Mgb3ZlcmxheSDigJQg0L/QvtGP0LLQu9GP0LXRgtGB0Y8g0L/QvtCy0LXRgNGFINGE0L7RgNC80Ysg0L/QvtGB0LvQtSDQvtGC0L/RgNCw0LLQutC4XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uZm9ybS1jYWxsYmFja19fc3VjY2VzcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDJyZW07XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZjLXJhZGl1cyk7XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcbiAgdHJhbnNpdGlvbjpcbiAgICBvcGFjaXR5IDAuNXMgdmFyKC0tZmMtZWFzZSksXG4gICAgdmlzaWJpbGl0eSAwLjVzIHZhcigtLWZjLWVhc2UpLFxuICAgIHRyYW5zZm9ybSAwLjVzIHZhcigtLWZjLWVhc2UpO1xuICB6LWluZGV4OiAxMDtcbn1cblxuLmZvcm0tY2FsbGJhY2suaXMtc3VjY2VzcyAuZm9ybS1jYWxsYmFja19fc3VjY2VzcyB7XG4gIG9wYWNpdHk6IDE7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG59XG5cbi5mb3JtLWNhbGxiYWNrLmlzLXN1Y2Nlc3MgLmZvcm0tY2FsbGJhY2tfX2dyaWQge1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX3N1Y2Nlc3MtaWNvbiB7XG4gIHdpZHRoOiA2LjRyZW07XG4gIGhlaWdodDogNi40cmVtO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWZjLXN1Y2Nlc3MtYmcpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYW5pbWF0aW9uOiBmY1N1Y2Nlc3NQb3AgMC42cyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSkgYm90aDtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX3N1Y2Nlc3MtaWNvbiBzdmcge1xuICB3aWR0aDogMy4ycmVtO1xuICBoZWlnaHQ6IDMuMnJlbTtcbiAgY29sb3I6IHZhcigtLWZjLXN1Y2Nlc3MpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fc3VjY2Vzcy1pY29uIHN2ZyBwYXRoIHtcbiAgc3Ryb2tlLWRhc2hhcnJheTogMzA7XG4gIHN0cm9rZS1kYXNob2Zmc2V0OiAzMDtcbiAgYW5pbWF0aW9uOiBmY0NoZWNrRHJhdyAwLjVzIDAuM3MgdmFyKC0tZmMtZWFzZSkgZm9yd2FyZHM7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19zdWNjZXNzLXRpdGxlIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZjLWZvbnQpO1xuICBmb250LXNpemU6IDJyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1mYy10ZXh0KTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFyZW0pO1xuICBhbmltYXRpb246IGZjRmFkZVVwIDAuNHMgMC40cyB2YXIoLS1mYy1lYXNlKSBmb3J3YXJkcztcbn1cblxuLmZvcm0tY2FsbGJhY2tfX3N1Y2Nlc3MtdGV4dCB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mYy1mb250KTtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGNvbG9yOiB2YXIoLS1mYy1sYWJlbCk7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcmVtKTtcbiAgYW5pbWF0aW9uOiBmY0ZhZGVVcCAwLjRzIDAuNTVzIHZhcigtLWZjLWVhc2UpIGZvcndhcmRzO1xufVxuXG5Aa2V5ZnJhbWVzIGZjU3VjY2Vzc1BvcCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xNSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZjQ2hlY2tEcmF3IHtcbiAgdG8ge1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmNGYWRlVXAge1xuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cblxuLmZvcm0tY2FsbGJhY2tfX2ZpZWxkLmZpZWxkLWZ1bGwsXG4uZm9ybS1jYWxsYmFja19fZmllbGQuZmllbGQtc3VibWl0LFxuLmZvcm0tY2FsbGJhY2tfX2ZpZWxkLmZpZWxkLXJ1bGVzLFxuLmZvcm0tY2FsbGJhY2tfX2ZpZWxkLmZpZWxkLWNoZWNrYm94IHtcbiAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIElucHV0IHdyYXBwZXIg4oCUINGB0L7QtNC10YDQttC40YIgY29udHJvbCArIGZsb2F0aW5nIGxhYmVsXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uZm9ybS1jYWxsYmFja19faW5wdXQtd3JhcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgINCa0L7QvdGC0YDQvtC70Ys6IGlucHV0LCBzZWxlY3QsIHRleHRhcmVhIOKAlCDQldCU0JjQndCr0Jkg0KDQkNCX0JzQldCgXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uZm9ybS1jYWxsYmFja19fY29udHJvbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiB2YXIoLS1mYy1oZWlnaHQpO1xuICBwYWRkaW5nOiAycmVtIDEuNnJlbSAwLjhyZW07XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mYy1mb250KTtcbiAgZm9udC1zaXplOiB2YXIoLS1mYy1mb250LXNpemUpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBjb2xvcjogdmFyKC0tZmMtdGV4dCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWZjLWJnKTtcbiAgYm9yZGVyOiB2YXIoLS1mYy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1mYy1yYWRpdXMpO1xuICBvdXRsaW5lOiBub25lO1xuICB0cmFuc2l0aW9uOlxuICAgIGJvcmRlci1jb2xvciB2YXIoLS1mYy1zcGVlZCkgdmFyKC0tZmMtZWFzZSksXG4gICAgYmFja2dyb3VuZC1jb2xvciB2YXIoLS1mYy1zcGVlZCkgdmFyKC0tZmMtZWFzZSksXG4gICAgYm94LXNoYWRvdyB2YXIoLS1mYy1zcGVlZCkgdmFyKC0tZmMtZWFzZSk7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19jb250cm9sOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tZmMtYmctaG92ZXIpO1xufVxuXG4vKiDQpNC+0LrRg9GBINC80LXQvdGP0LXRgiDRhtCy0LXRgiDRgdCw0LzQvtC5INCz0YDQsNC90LjRhtGLLiDQmtC+0LvRjNGG0L4gYm94LXNoYWRvdyDQv9C+0LLQtdGA0YUg0L3QtdGRINGH0LjRgtCw0LXRgtGB0Y8g0LrQsNC6INCy0YLQvtGA0LDRjyDRgNCw0LzQutCwIOKAlFxuICAg0L/QvtC70LUg0LLRi9Cz0LvRj9C00LjRgiDQvtCx0LLQtdC00ZHQvdC90YvQvCDQtNCy0LDQttC00YssINC+0YHQvtCx0LXQvdC90L4g0L3QsCBzZWxlY3Qg0YHQviDRgdGC0YDQtdC70LrQvtC5LiAqL1xuLmZvcm0tY2FsbGJhY2tfX2NvbnRyb2w6Zm9jdXMge1xuICBib3JkZXItY29sb3I6IHJnYigwIDAgMCAvIDE1JSk7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBGbG9hdGluZyBsYWJlbFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmZvcm0tY2FsbGJhY2tfX2xhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogMS42cmVtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZmMtZm9udC1zaXplKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6IHZhcigtLWZjLWxhYmVsKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246XG4gICAgdG9wIHZhcigtLWZjLXNwZWVkKSB2YXIoLS1mYy1lYXNlKSxcbiAgICBmb250LXNpemUgdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpLFxuICAgIGNvbG9yIHZhcigtLWZjLXNwZWVkKSB2YXIoLS1mYy1lYXNlKSxcbiAgICB0cmFuc2Zvcm0gdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIG1heC13aWR0aDogY2FsYygxMDAlIC0gMy4ycmVtKTtcbn1cblxuLyogTGFiZWwg0LDQutGC0LjQstC90YvQuTog0L/RgNC4INGE0L7QutGD0YHQtSDQuNC70Lgg0LfQsNC/0L7Qu9C90LXQvdC90L7RgdGC0LggKi9cbi5mb3JtLWNhbGxiYWNrX19jb250cm9sOmZvY3VzIH4gLmZvcm0tY2FsbGJhY2tfX2xhYmVsLFxuLmZvcm0tY2FsbGJhY2tfX2NvbnRyb2w6bm90KDpwbGFjZWhvbGRlci1zaG93bikgfiAuZm9ybS1jYWxsYmFja19fbGFiZWwge1xuICB0b3A6IDFyZW07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mYy1mb250LXNpemUteHMpO1xuICBjb2xvcjogdmFyKC0tZmMtbGFiZWwtYWN0aXZlKTtcbn1cblxuLyogTGFiZWwg0LTQu9GPIHNlbGVjdCDigJQg0LLRgdC10LPQtNCwINC/0L7QtNC90Y/RgiAqL1xuLmZvcm0tY2FsbGJhY2tfX2NvbnRyb2wuY29udHJvbC1zZWxlY3QgfiAuZm9ybS1jYWxsYmFja19fbGFiZWwge1xuICB0b3A6IDFyZW07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mYy1mb250LXNpemUteHMpO1xufVxuXG4vKiDQlNC70Y8gdGV4dGFyZWEgbGFiZWwg0L/QvtC30LjRhtC40L7QvdC40YDQvtCy0LDQvdC40LUgKi9cbi5mb3JtLWNhbGxiYWNrX19jb250cm9sLmNvbnRyb2wtdGV4dGFyZWEgfiAuZm9ybS1jYWxsYmFja19fbGFiZWwge1xuICB0b3A6IDEuNnJlbTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG4uZm9ybS1jYWxsYmFja19fY29udHJvbC5jb250cm9sLXRleHRhcmVhOmZvY3VzIH4gLmZvcm0tY2FsbGJhY2tfX2xhYmVsLFxuLmZvcm0tY2FsbGJhY2tfX2NvbnRyb2wuY29udHJvbC10ZXh0YXJlYTpub3QoOnBsYWNlaG9sZGVyLXNob3duKSB+IC5mb3JtLWNhbGxiYWNrX19sYWJlbCB7XG4gIHRvcDogMC44cmVtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZmMtZm9udC1zaXplLXhzKTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2FzdGVyaXNrIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWVycm9yKTtcbiAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFNlbGVjdFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmZvcm0tY2FsbGJhY2tfX2NvbnRyb2wuY29udHJvbC1zZWxlY3Qge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmctcmlnaHQ6IDRyZW07XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTInIGhlaWdodD0nNycgZmlsbD0nbm9uZSclM0UlM0NwYXRoIGQ9J00xIDFsNSA1IDUtNScgc3Ryb2tlPSclMjM2ZTZlNmUnIHN0cm9rZS13aWR0aD0nMS41JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnLyUzRSUzQy9zdmclM0VcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDEuNnJlbSBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogMS4ycmVtO1xufVxuXG4uZm9ybS1jYWxsYmFja19fY29udHJvbC5jb250cm9sLXNlbGVjdDpmb2N1cyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTInIGhlaWdodD0nNycgZmlsbD0nbm9uZSclM0UlM0NwYXRoIGQ9J00xIDFsNSA1IDUtNScgc3Ryb2tlPSclMjM2ZTZlNmUnIHN0cm9rZS13aWR0aD0nMS41JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnLyUzRSUzQy9zdmclM0VcIik7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBUZXh0YXJlYVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmZvcm0tY2FsbGJhY2tfX2NvbnRyb2wuY29udHJvbC10ZXh0YXJlYSB7XG4gIGhlaWdodDogYXV0bztcbiAgbWluLWhlaWdodDogMTJyZW07XG4gIHBhZGRpbmctdG9wOiAyLjRyZW07XG4gIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBGaWxlIHVwbG9hZCDigJQgZHJhZyAmIGRyb3Ag0LfQvtC90LBcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5mb3JtLWNhbGxiYWNrX19maWxlLXpvbmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEuNnJlbTtcbiAgcGFkZGluZzogMnJlbSAyLjRyZW07XG4gIGJvcmRlcjogMXB4IGRhc2hlZCByZ2IoMCAwIDAgLyAxMCUpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1mYy1yYWRpdXMpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1mYy1iZyk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjpcbiAgICBib3JkZXItY29sb3IgdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpLFxuICAgIGJhY2tncm91bmQtY29sb3IgdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpLFxuICAgIHRyYW5zZm9ybSB2YXIoLS1mYy1zcGVlZCkgdmFyKC0tZmMtZWFzZSk7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19maWxlLXpvbmU6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHJnYigwIDAgMCAvIDIwJSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWZjLWJnLWhvdmVyKTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2ZpbGUtem9uZTphY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTkpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fZmlsZS16b25lLmRyYWdvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mYy1hY2NlbnQpO1xuICBiYWNrZ3JvdW5kOiByZ2IoMCAwIDAgLyAzJSk7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19maWxlLWlucHV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgb3BhY2l0eTogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fZmlsZS1pY29uIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHdpZHRoOiA0LjhyZW07XG4gIGhlaWdodDogNC44cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLWZjLWFjY2VudCk7XG4gIGJhY2tncm91bmQ6IHJnYigwIDAgMCAvIDQlKTtcbiAgYm9yZGVyLXJhZGl1czogMC44cmVtO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS1mYy1zcGVlZCkgdmFyKC0tZmMtZWFzZSksIGJhY2tncm91bmQtY29sb3IgdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fZmlsZS1pY29uIHN2ZyB7XG4gIHdpZHRoOiAyLjRyZW07XG4gIGhlaWdodDogMi40cmVtO1xufVxuXG4uZm9ybS1jYWxsYmFja19fZmlsZS16b25lOmhvdmVyIC5mb3JtLWNhbGxiYWNrX19maWxlLWljb24ge1xuICBjb2xvcjogdmFyKC0tZmMtbXV0ZWQpO1xuICBiYWNrZ3JvdW5kOiByZ2IoMCAwIDAgLyA4JSk7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19maWxlLXRleHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNHJlbTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2ZpbGUtdGl0bGUge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLWZjLXRleHQpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fZmlsZS1oaW50IHtcbiAgZm9udC1zaXplOiB2YXIoLS1mYy1mb250LXNpemUtc20pO1xuICBjb2xvcjogdmFyKC0tZmMtbGFiZWwpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fZmlsZS1saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDAuOHJlbTtcbiAgbWFyZ2luLXRvcDogMC40cmVtO1xuICBmb250LXNpemU6IHZhcigtLWZjLWZvbnQtc2l6ZS1zbSk7XG4gIGNvbG9yOiB2YXIoLS1mYy1hY2NlbnQpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fZmlsZS1saXN0OmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2ZpbGUtaXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwLjRyZW0gMXJlbTtcbiAgYmFja2dyb3VuZDogcmdiKDAgMCAwIC8gNSUpO1xuICBib3JkZXItcmFkaXVzOiAwLjRyZW07XG4gIGZvbnQtc2l6ZTogdmFyKC0tZmMtZm9udC1zaXplLXNtKTtcbiAgY29sb3I6IHZhcigtLWZjLXRleHQpO1xuICBsaW5lLWhlaWdodDogMS40O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ2hlY2tib3hcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5mb3JtLWNhbGxiYWNrX19jaGVja2JveC13cmFwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMS4ycmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBwYWRkaW5nOiAwLjRyZW0gMDtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2NoZWNrYm94LWlucHV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgb3BhY2l0eTogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2NoZWNrYm94LWJveCB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aWR0aDogMi4ycmVtO1xuICBoZWlnaHQ6IDIuMnJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlcjogdmFyKC0tZmMtYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogMC42cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1mYy1iZyk7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjpcbiAgICBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLWZjLXNwZWVkKSB2YXIoLS1mYy1lYXNlKSxcbiAgICBib3JkZXItY29sb3IgdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpLFxuICAgIGNvbG9yIHZhcigtLWZjLXNwZWVkKSB2YXIoLS1mYy1lYXNlKSxcbiAgICB0cmFuc2Zvcm0gdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fY2hlY2tib3gtaWNvbiB7XG4gIHdpZHRoOiAxLjJyZW07XG4gIGhlaWdodDogMS4ycmVtO1xufVxuXG4uZm9ybS1jYWxsYmFja19fY2hlY2tib3gtaW5wdXQ6Y2hlY2tlZCArIC5mb3JtLWNhbGxiYWNrX19jaGVja2JveC1ib3gge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1mYy1jaGVja2VkLWJnKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mYy1jaGVja2VkLWJvcmRlcik7XG4gIGNvbG9yOiB2YXIoLS1mYy1jaGVja2VkLW1hcmspO1xuICBhbmltYXRpb246IGNoZWNrUG9wIDAuM3MgdmFyKC0tZmMtZWFzZSk7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19jaGVja2JveC1pbnB1dDpmb2N1cy12aXNpYmxlICsgLmZvcm0tY2FsbGJhY2tfX2NoZWNrYm94LWJveCB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2IoMCAwIDAgLyAxMCUpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fY2hlY2tib3gtd3JhcDpob3ZlciAuZm9ybS1jYWxsYmFja19fY2hlY2tib3gtYm94IHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mYy1ib3JkZXItaG92ZXIpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fY2hlY2tib3gtdGV4dCB7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBjb2xvcjogdmFyKC0tZmMtbXV0ZWQpO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBwYWRkaW5nLXRvcDogMC4ycmVtO1xufVxuXG4uZm9ybS1jYWxsYmFja19fY2hlY2tib3gtdGV4dCBhIHtcbiAgY29sb3I6IHZhcigtLWZjLWFjY2VudCk7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDAuMnJlbTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fY2hlY2tib3gtdGV4dCBhOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWZjLWFjY2VudC1ob3ZlciwgdmFyKC0tZmMtYWNjZW50KSk7XG59XG5cbkBrZXlmcmFtZXMgY2hlY2tQb3Age1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuXG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjE1KTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFJhZGlvXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uZm9ybS1jYWxsYmFja19fbGVnZW5kIHtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS1mYy10ZXh0KTtcbiAgbWFyZ2luLWJvdHRvbTogMS4ycmVtO1xufVxuXG4uZm9ybS1jYWxsYmFja19fcmFkaW8tZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogMS42cmVtO1xufVxuXG4uZm9ybS1jYWxsYmFja19fcmFkaW8taXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC44cmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19yYWRpby1pbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX3JhZGlvLWRvdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDJyZW07XG4gIGhlaWdodDogMnJlbTtcbiAgYm9yZGVyOiB2YXIoLS1mYy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fcmFkaW8tZG90OjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tZmMtbXV0ZWQpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB0cmFuc2l0aW9uOiB3aWR0aCB2YXIoLS1mYy1zcGVlZCkgdmFyKC0tZmMtZWFzZSksIGhlaWdodCB2YXIoLS1mYy1zcGVlZCkgdmFyKC0tZmMtZWFzZSk7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19yYWRpby1pbnB1dDpjaGVja2VkICsgLmZvcm0tY2FsbGJhY2tfX3JhZGlvLWRvdCB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZmMtbXV0ZWQpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fcmFkaW8taW5wdXQ6Y2hlY2tlZCArIC5mb3JtLWNhbGxiYWNrX19yYWRpby1kb3Q6OmFmdGVyIHtcbiAgd2lkdGg6IDFyZW07XG4gIGhlaWdodDogMXJlbTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX3JhZGlvLWlucHV0OmZvY3VzLXZpc2libGUgKyAuZm9ybS1jYWxsYmFja19fcmFkaW8tZG90IHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYigwIDAgMCAvIDEyJSk7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19yYWRpby10ZXh0IHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGNvbG9yOiB2YXIoLS1mYy10ZXh0KTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFN1Ym1pdCBidXR0b25cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5mb3JtLWNhbGxiYWNrX19zdWJtaXQge1xuICBoZWlnaHQ6IHZhcigtLWZjLWhlaWdodCk7XG4gIHBhZGRpbmc6IDAgMy4ycmVtO1xuICBmb250LWZhbWlseTogdmFyKC0tZmMtZm9udCk7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1mYy1yYWRpdXMpO1xuICB0cmFuc2l0aW9uOlxuICAgIGJhY2tncm91bmQtY29sb3IgdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpLFxuICAgIGJveC1zaGFkb3cgdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fc3VibWl0OmhvdmVyIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMTAwcmVtIHJnYigwIDAgMCAvIDglKTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX3N1Ym1pdDphY3RpdmUge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxMDByZW0gcmdiKDAgMCAwIC8gMTYlKTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX3N1Ym1pdC1pY29uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLWZjLXNwZWVkKSB2YXIoLS1mYy1lYXNlKTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX3N1Ym1pdC1pY29uIHN2ZyB7XG4gIHdpZHRoOiAycmVtO1xuICBoZWlnaHQ6IDJyZW07XG59XG5cbi5mb3JtLWNhbGxiYWNrX19zdWJtaXQ6aG92ZXIgLmZvcm0tY2FsbGJhY2tfX3N1Ym1pdC1pY29uIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDRweCk7XG59XG5cbi8qIExvYWRpbmcgJiBzdWJtaXQgaW5uZXIgdHJhbnNpdGlvbnMgKi9cbi5mb3JtLWNhbGxiYWNrX19zdWJtaXQtdGV4dCxcbi5mb3JtLWNhbGxiYWNrX19zdWJtaXQtaWNvbiB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyB2YXIoLS1mYy1lYXNlKSwgdHJhbnNmb3JtIDAuM3MgdmFyKC0tZmMtZWFzZSk7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19zdWJtaXQtc3Bpbm5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDJyZW07XG4gIGhlaWdodDogMnJlbTtcbiAgYm9yZGVyOiAycHggc29saWQgcmdiKDI1NSAyNTUgMjU1IC8gMzAlKTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tY29sb3ItMSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgdmFyKC0tZmMtZWFzZSksIHRyYW5zZm9ybSAwLjNzIHZhcigtLWZjLWVhc2UpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX3N1Ym1pdC5sb2FkaW5nIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19zdWJtaXQubG9hZGluZyAuZm9ybS1jYWxsYmFja19fc3VibWl0LXRleHQge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuOHJlbSk7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19zdWJtaXQubG9hZGluZyAuZm9ybS1jYWxsYmFja19fc3VibWl0LWljb24ge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMXJlbSk7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19zdWJtaXQubG9hZGluZyAuZm9ybS1jYWxsYmFja19fc3VibWl0LXNwaW5uZXIge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICBhbmltYXRpb246IGZjU3BpbiAwLjdzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBmY1NwaW4ge1xuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUnVsZXMgdGV4dFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmZvcm0tY2FsbGJhY2tfX2ZpZWxkLmZpZWxkLXJ1bGVzIHtcbiAgcGFkZGluZy10b3A6IDAuNHJlbTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX3J1bGVzLXRleHQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiB2YXIoLS1mYy1mb250LXNpemUtc20pO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogdmFyKC0tZmMtYWNjZW50KTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX3J1bGVzLXRleHQgYSB7XG4gIGNvbG9yOiB2YXIoLS1mYy1tdXRlZCk7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDAuMnJlbTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fcnVsZXMtdGV4dCBhOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTMpO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRXJyb3Igc3RhdGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiBQZXItZmllbGQgZXJyb3IgbWVzc2FnZSAqL1xuLmZvcm0tY2FsbGJhY2tfX2Vycm9yLW1zZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtaW4taGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6IHZhcigtLWZjLWZvbnQtc2l6ZS14cyk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7XG4gIHBhZGRpbmctdG9wOiAwLjRyZW07XG4gIHRyYW5zaXRpb246IG1pbi1oZWlnaHQgdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpLCBtYXJnaW4gdmFyKC0tZmMtc3BlZWQpIHZhcigtLWZjLWVhc2UpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fZXJyb3ItbXNnOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogRXJyb3Igc3RhdGUgb24gZmllbGQgd3JhcHBlciAqL1xuLmZvcm0tY2FsbGJhY2tfX2ZpZWxkLmVycm9yIC5mb3JtLWNhbGxiYWNrX19jb250cm9sIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWVycm9yLWJnKTtcbiAgYW5pbWF0aW9uOiBmY1NoYWtlIDAuNHMgdmFyKC0tZmMtZWFzZSk7XG59XG5cbi8qINCjINC/0L7Qu9GPINGBINC+0YjQuNCx0LrQvtC5INCz0YDQsNC90LjRhtCwINC4INGC0LDQuiDQutGA0LDRgdC90LDRjyDigJQg0LrQvtC70YzRhtC+INC/0L7QstC10YDRhSDQvdC10ZEg0LTQsNCy0LDQu9C+INCy0YLQvtGA0YPRjiDRgNCw0LzQutGDLiAqL1xuLmZvcm0tY2FsbGJhY2tfX2ZpZWxkLmVycm9yIC5mb3JtLWNhbGxiYWNrX19jb250cm9sOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19maWVsZC5lcnJvciAuZm9ybS1jYWxsYmFja19fbGFiZWwge1xuICBjb2xvcjogdmFyKC0tY29sb3ItZXJyb3IpO1xufVxuXG4uZm9ybS1jYWxsYmFja19fZmllbGQuZXJyb3IgLmZvcm0tY2FsbGJhY2tfX2NoZWNrYm94LWJveCB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItZXJyb3IpO1xuICBhbmltYXRpb246IGZjU2hha2UgMC40cyB2YXIoLS1mYy1lYXNlKTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2ZpZWxkLmVycm9yIC5mb3JtLWNhbGxiYWNrX19jaGVja2JveC10ZXh0IHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWVycm9yKTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2ZpZWxkLmVycm9yIC5mb3JtLWNhbGxiYWNrX19maWxlLXpvbmUge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWVycm9yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZXJyb3ItYmcpO1xuICBhbmltYXRpb246IGZjU2hha2UgMC40cyB2YXIoLS1mYy1lYXNlKTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2ZpZWxkLmVycm9yIC5mb3JtLWNhbGxiYWNrX19yYWRpby1kb3Qge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWVycm9yKTtcbn1cblxuLyogRXJyb3IgYmFubmVyICovXG4uZm9ybS1jYWxsYmFja19fZXJyb3ItYmFubmVyIHtcbiAgcGFkZGluZzogMS4ycmVtIDEuNnJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZXJyb3ItYmcpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2IoMjQ0IDY3IDU0IC8gMjAlKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZmMtcmFkaXVzKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIHZhcigtLWZjLWVhc2UpLCB0cmFuc2Zvcm0gMC4zcyB2YXIoLS1mYy1lYXNlKTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2Vycm9yLWJhbm5lci5oaWRkZW4ge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuOHJlbSk7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19lcnJvci1iYW5uZXI6bm90KC5oaWRkZW4pIHtcbiAgYW5pbWF0aW9uOiBmY1NsaWRlRG93biAwLjM1cyB2YXIoLS1mYy1lYXNlKTtcbn1cblxuQGtleWZyYW1lcyBmY1NsaWRlRG93biB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjJyZW0pO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG5cbi5mb3JtLWNhbGxiYWNrX19lcnJvci10ZXh0IHtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7XG59XG5cbkBrZXlmcmFtZXMgZmNTaGFrZSB7XG4gIDAlLFxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cblxuICAyMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNHB4KTtcbiAgfVxuXG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDRweCk7XG4gIH1cblxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMnB4KTtcbiAgfVxuXG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCk7XG4gIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEZvY3VzLXZpc2libGVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qINCk0L7QutGD0YEg0YMg0L/QvtC70Y8g0L/QvtC60LDQt9GL0LLQsNC10YIg0LXQs9C+INGB0L7QsdGB0YLQstC10L3QvdCw0Y8g0LPRgNCw0L3QuNGG0LAuINCe0YLQtNC10LvRjNC90YvQuSBvdXRsaW5lINGBINC+0YLRgdGC0YPQv9C+0Lwg0LvQvtC20LjQu9GB0Y9cbiAgINC/0L7QstC10YDRhSDQvdC10ZEg0LLRgtC+0YDQvtC5INGA0LDQvNC60L7QuSDigJQg0L3QsCDQvNC+0LHQuNC70YzQvdGL0YUg0L7RgdC+0LHQtdC90L3QviDQt9Cw0LzQtdGC0L3Qvi4g0KMg0LrQvdC+0L/QutC4IG91dGxpbmUg0L7RgdGC0LDRkdGC0YHRjzpcbiAgINCz0YDQsNC90LjRhtGLINGDINC90LXRkSDQvdC10YIsINC4INCx0LXQtyDQvdC10LPQviDRhNC+0LrRg9GBINGBINC60LvQsNCy0LjQsNGC0YPRgNGLINC90LUg0LLQuNC00LXQvS4gKi9cbi5mb3JtLWNhbGxiYWNrX19jb250cm9sOmZvY3VzLXZpc2libGUge1xuICBib3JkZXItY29sb3I6IHZhcigtLWZjLWFjY2VudCk7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19zdWJtaXQ6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1mYy1hY2NlbnQpO1xuICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQWNjZXNzaWJpbGl0eTogcHJlZmVycy1yZWR1Y2VkLW1vdGlvblxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmZvcm0tY2FsbGJhY2sgKixcbiAgLmZvcm0tY2FsbGJhY2sgKjo6YmVmb3JlLFxuICAuZm9ybS1jYWxsYmFjayAqOjphZnRlciB7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjAxbXMgIWltcG9ydGFudDtcbiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4wMW1zICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgINCf0L7QtNGB0LrQsNC30LrQsCDQstC80LXRgdGC0L4g0L/Qu9Cw0LLQsNGO0YnQtdC5INC80LXRgtC60LhcbiAgINCn0LDRgdGC0Ywg0L/Qu9C+0YnQsNC00L7QuiDRgtCw0Log0LfQsNC00YPQvNCw0L3QsCDQtNC40LfQsNC50L3QvtC8OiDQv9C+0LTQv9C40YHRjCDRgdGC0L7QuNGCINCy0L3Rg9GC0YDQuCDQv9C+0LvRjyDQuCDQuNGB0YfQtdC30LDQtdGCLFxuICAg0LrQvtCz0LTQsCDRh9C10LvQvtCy0LXQuiDQvdCw0YfQuNC90LDQtdGCINC/0LjRgdCw0YLRjC4g0KDQsNC30LzQtdGC0LrQsCDRgtCwINC20LUsINC80LXQvdGP0LXRgtGB0Y8g0YLQvtC70YzQutC+INC+0YTQvtGA0LzQu9C10L3QuNC1LlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmZvcm0tY2FsbGJhY2stLWhpbnQgLmZvcm0tY2FsbGJhY2tfX2xhYmVsIHtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mYy1mb250LXNpemUpO1xuICBjb2xvcjogdmFyKC0tZmMtbGFiZWwpO1xufVxuXG4uZm9ybS1jYWxsYmFjay0taGludCAuZm9ybS1jYWxsYmFja19fY29udHJvbDpmb2N1cyB+IC5mb3JtLWNhbGxiYWNrX19sYWJlbCxcbi5mb3JtLWNhbGxiYWNrLS1oaW50IC5mb3JtLWNhbGxiYWNrX19jb250cm9sOm5vdCg6cGxhY2Vob2xkZXItc2hvd24pIH4gLmZvcm0tY2FsbGJhY2tfX2xhYmVsIHtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mYy1mb250LXNpemUpO1xuICBvcGFjaXR5OiAwO1xufVxuXG4vKiDQn9C+0LvQtSDQsiDRjdGC0L7QvCDRgNC10LbQuNC80LUg0L3QtSDQvtGB0YLQsNCy0LvRj9C10YIg0LzQtdGB0YLQsCDQv9C+0LQg0L/QvtC00L3Rj9GC0YPRjiDQv9C+0LTQv9C40YHRjC4gKi9cbi5mb3JtLWNhbGxiYWNrLS1oaW50IC5mb3JtLWNhbGxiYWNrX19jb250cm9sIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4vKiDQntCx0Y/Qt9Cw0YLQtdC70YzQvdC+0YHRgtGMINCyINGC0LDQutC+0Lwg0L7RhNC+0YDQvNC70LXQvdC40Lgg0L3QtSDQv9C+0LrQsNC30YvQstCw0Y7RgiDQt9Cy0ZHQt9C00L7Rh9C60L7QuTog0L/QvtC00L/QuNGB0Ywg0LjRgdGH0LXQt9Cw0LXRgiDQv9GA0Lgg0LLQstC+0LTQtS4gKi9cbi5mb3JtLWNhbGxiYWNrLS1oaW50IC5mb3JtLWNhbGxiYWNrX19hc3RlcmlzayB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qINCf0L7RgNGP0LTQvtC6IMKr0LrQvdC+0L/QutCwLCDQt9Cw0YLQtdC8INGB0L7Qs9C70LDRgdC40LXCuyDigJQg0YLQsNC6INGB0LLRkdGA0YHRgtCw0L3RiyDQv9C70L7RidCw0LTQutC4LCDQs9C00LUg0L/QvtC00L/QuNGB0Ywg0YHRgtC+0LjRgiDQv9C+0LTRgdC60LDQt9C60L7QuTpcbiAgINC00LXQudGB0YLQstC40LUg0LHQu9C40LbQtSDQuiDQv9C+0LvRj9C8LCDRjtGA0LjQtNC40YfQtdGB0LrQuNC5INGC0LXQutGB0YIg0YPRhdC+0LTQuNGCINCy0L3QuNC3LiAqL1xuLmZvcm0tY2FsbGJhY2stLWhpbnQgLmZvcm0tY2FsbGJhY2tfX2dyaWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uZm9ybS1jYWxsYmFjay0taGludCAuZm9ybS1jYWxsYmFja19fZmllbGQuZmllbGQtc3VibWl0IHtcbiAgb3JkZXI6IDE7XG59XG5cbi5mb3JtLWNhbGxiYWNrLS1oaW50IC5mb3JtLWNhbGxiYWNrX19maWVsZC5maWVsZC1jaGVja2JveCxcbi5mb3JtLWNhbGxiYWNrLS1oaW50IC5mb3JtLWNhbGxiYWNrX19maWVsZC5maWVsZC1ydWxlcyB7XG4gIG9yZGVyOiAyO1xufVxuXG4vKiDQn9Cw0LvQuNGC0YDQsCDQv9C70L7RidCw0LTQutC4LiDQn9C+0YHQsNC00LrQsCDRgtGR0LzQvdCw0Y8sINCw0LrRhtC10L3RgiDigJQg0L7RgNCw0L3QttC10LLRi9C5INC60LDQuiDRgyDQutC90L7Qv9C+0LosINGB0LrRgNGD0LPQu9C10L3QuNC1INGC0L7QttC1INC40YUuXG4gICDQn9GA0LDQstC40LvQsCDQv9GA0LjRhdC+0LTRj9GCINC40Lcg0Y/QtNGA0LAsINC30LTQtdGB0Ywg0YLQvtC70YzQutC+INGG0LLQtdGC0LAg0Lgg0LPQtdC+0LzQtdGC0YDQuNGPLiAqL1xuLmZvcm0tY2FsbGJhY2sge1xuICAtLWZjLWJnOiB0cmFuc3BhcmVudDtcbiAgLS1mYy1iZy1ob3ZlcjogcmdiKDI1NSAyNTUgMjU1IC8gNiUpO1xuICAtLWZjLWJvcmRlcjogMXB4IHNvbGlkIHJnYigyNTUgMjU1IDI1NSAvIDI1JSk7XG4gIC0tZmMtYm9yZGVyLWhvdmVyOiByZ2IoMjU1IDI1NSAyNTUgLyA1NSUpO1xuICAtLWZjLXRleHQ6IHZhcigtLWNvbG9yLTEpO1xuICAtLWZjLWxhYmVsOiByZ2IoMjU1IDI1NSAyNTUgLyA2MCUpO1xuICAtLWZjLWxhYmVsLWFjdGl2ZTogcmdiKDI1NSAyNTUgMjU1IC8gNzUlKTtcbiAgLS1mYy1hY2NlbnQ6IHZhcigtLWNvbG9yLTMpO1xuICAtLWZjLW11dGVkOiByZ2IoMjU1IDI1NSAyNTUgLyA3MCUpO1xuICAtLWZjLWZvY3VzLXJpbmc6IHZhcigtLWNvbG9yLTMpO1xuICAtLWZjLWNoZWNrZWQtYmc6IHZhcigtLWNvbG9yLTMpO1xuICAtLWZjLWNoZWNrZWQtYm9yZGVyOiB2YXIoLS1jb2xvci0zKTtcbiAgLS1mYy1jaGVja2VkLW1hcms6IHZhcigtLWNvbG9yLTEpO1xuICAtLWZjLXJhZGl1czogMDtcbiAgLS1mYy1oZWlnaHQ6IDUuMnJlbTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2dyaWQge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbn1cbiIsIi8qINCh0YLQuNC70Lgg0LTQu9GPIEdMaWdodGJveC4gIWltcG9ydGFudCDigJQg0L/QtdGA0LXQvtC/0YDQtdC00LXQu9C10L3QuNC1INGB0YLQuNC70LXQuSDQsdC40LHQu9C40L7RgtC10LrQuC4gKi9cblxuLyog0JHQu9C+0LrQuNGA0L7QstC60LAg0YHQutGA0L7Qu9C70LAg0L/RgNC4INC+0YLQutGA0YvRgtC+0Lwg0LvQsNC50YLQsdC+0LrRgdC1ICovXG5ib2R5LmdsaWdodGJveC1vcGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDEwMHZoO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xufVxuXG4vKiDQlNC+0L/QvtC70L3QuNGC0LXQu9GM0L3Ri9C1INGB0YLQuNC70Lgg0LTQu9GPIEdMaWdodGJveCAqL1xuLmdsaWdodGJveC1jb250YWluZXIge1xuICB6LWluZGV4OiA5OTk5O1xufVxuXG4uZ2xpZ2h0Ym94LWNsZWFuIC5nY2xvc2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci0yKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjY7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig1cHgpO1xufVxuXG4vKiDQkNC90LjQvNCw0YbQuNC4INC00LvRjyDQv9C70LDQstC90L7Qs9C+INC/0L7Rj9Cy0LvQtdC90LjRjy/QuNGB0YfQtdC30L3QvtCy0LXQvdC40Y8gKi9cbi5nbGlnaHRib3gtY2xvc2luZyAuZ2xpZ2h0Ym94LWNvbnRhaW5lcixcbi5nbGlnaHRib3gtY2xvc2luZyAuZ2xpZ2h0Ym94LWNvbnRhaW5lciAuZ292ZXJsYXkge1xuICBhbmltYXRpb246IGZhZGVPdXQgMC41cyBlYXNlO1xufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLyog0KPQu9GD0YfRiNC10L3QvdGL0LUg0YHRgtC40LvQuCDQvdCw0LLQuNCz0LDRhtC40LggKi9cbi5nbGlnaHRib3gtY2xlYW4gLmduZXh0LFxuLmdsaWdodGJveC1jbGVhbiAuZ3ByZXYge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci0yKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjY7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig1cHgpO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi5nbGlnaHRib3gtY2xlYW4gLmduZXh0OmhvdmVyLFxuLmdsaWdodGJveC1jbGVhbiAuZ3ByZXY6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci0yKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjg1O1xufVxuXG4uZ292ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCAwIDAgLyA5MiUpICFpbXBvcnRhbnQ7XG59XG5cbi8qINCk0L7QvSDQvNC+0LTQsNC70YzQvdC+0LPQviDQvtC60L3QsCAqL1xuLmdsaWdodGJveC1jbGVhbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG5cbi8qINCh0LrRgNGL0LLQsNC10Lwg0L7Qv9C40YHQsNC90LjQtSDQsiDQvNC+0LTQsNC70YzQvdC+0Lwg0L7QutC90LUgKi9cbi5nbGlnaHRib3gtY2xlYW4gLmdzbGlkZS1kZXNjcmlwdGlvbixcbi5nbGlnaHRib3gtY2xlYW4gLmRlc2NyaXB0aW9uLWJvdHRvbSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyog0KTQvtC9INC00LvRjyDQutC+0L3RgtC10L3RgtCwINC80L7QtNCw0LvRjNC90L7Qs9C+INC+0LrQvdCwICovXG4uZ2lubGluZWQtY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG5cbi5nbGlnaHRib3gtY2xlYW4gLmdwcmV2IHN2ZyBwYXRoLFxuLmdsaWdodGJveC1jbGVhbiAuZ25leHQgc3ZnIHBhdGgsXG4uZ2xpZ2h0Ym94LWNsZWFuIC5nY2xvc2Ugc3ZnIHBhdGgge1xuICBmaWxsOiB2YXIoLS1jb2xvci0xKSAhaW1wb3J0YW50O1xufVxuXG4uZ2xpZ2h0Ym94LWNsZWFuIC5nc2xpZGUtbWVkaWEge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qINCh0YLQuNC70Lgg0LTQu9GPIFZLINCy0LjQtNC10L4g0LrQvtC90YLQtdC50L3QtdGA0LAgKi9cbi52ay12aWRlby1jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDkwdnc7XG4gIG1heC1oZWlnaHQ6IDkwdmg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4udmstdmlkZW8tY29udGFpbmVyIGlmcmFtZSB7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm94LXNoYWRvdzogMCA0cHggMjBweCByZ2IoMCAwIDAgLyAzMCUpO1xufVxuXG4vKiDQkNC00LDQv9GC0LjQstC90L7RgdGC0Ywg0LTQu9GPINC80L7QsdC40LvRjNC90YvRhSDRg9GB0YLRgNC+0LnRgdGC0LIgKi9cbkBtZWRpYSAod2lkdGggPD0gNzY4cHgpIHtcbiAgLnZrLXZpZGVvLWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA5NXZ3O1xuICAgIG1heC1oZWlnaHQ6IDgwdmg7XG4gIH1cbiAgXG4gIC52ay12aWRlby1jb250YWluZXIgaWZyYW1lIHtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIH1cbn1cblxuLyog0J7QsdC10YHQv9C10YfQuNCy0LDQtdC8INC60L7RgNGA0LXQutGC0L3QvtC1INC+0YLQvtCx0YDQsNC20LXQvdC40LUg0LrQvtC90YLQtdC90YLQsCDQsiBHTGlnaHRib3ggKi9cbi5nbGlnaHRib3gtY2xlYW4gLmdzbGlkZS1pbm5lci1jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59IiwiLmhlYWRpbmcge1xuICAvKiDQodGC0LjQu9C4INC00LvRjyBoZWFkaW5nICovXG59XG5cbi5oZWFkaW5nLWZsZXgge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufSAiLCIubnVtYmVyZWQtbGlzdCB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWxlZnQ6IDEuNXJlbTtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAxZW07XG4gIGxpc3Qtc3R5bGU6IGRlY2ltYWw7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbiAgfVxufVxuXG4ubnVtYmVyZWQtbGlzdF9faXRlbSB7XG4gIHBhZGRpbmctdG9wOiAwLjVyZW07XG59XG4iLCIuc2xpZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLnNsaWRlciAuc3dpcGVyLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi8qKlxuICog0JHQsNC30L7QstGL0LUg0YHRgtC40LvQuCDQtNC70Y8g0YHQu9Cw0LnQtNC10YDQvtCyIFN3aXBlci5cbiAqICFpbXBvcnRhbnQg4oCUINGC0L7Qu9GM0LrQviDQtNC70Y8g0L/QtdGA0LXQvtC/0YDQtdC00LXQu9C10L3QuNGPINGB0YLQuNC70LXQuSDQsdC40LHQu9C40L7RgtC10LrQuCAo0LjQvdC70LDQudC9L9Cy0YvRgdC+0LrQsNGPINGB0L/QtdGG0LjRhNC40YfQvdC+0YHRgtGMKS5cbiAqL1xuXG4vKiDQmtC+0L3RgtC10LnQvdC10YAg0YHQu9Cw0LnQtNC10YDQsCAqL1xuLnN3aXBlci1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmctYm90dG9tOiAzcmVtO1xufVxuXG4vKiDQntCx0LXRgNGC0LrQsCDRgdC70LDQudC00LXRgNCwICovXG4uc3dpcGVyLXdyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xufVxuXG4vKiDQodGC0LjQu9C4INGB0LvQsNC50LTQsCAqL1xuLnN3aXBlci1zbGlkZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLyog0KHRgtC40LvQuCDQtNC70Y8g0L3QsNCy0LjQs9Cw0YbQuNC+0L3QvdGL0YUg0LrQvdC+0L/QvtC6ICovXG4uc3dpcGVyLWJ1dHRvbi1uZXh0LFxuLnN3aXBlci1idXR0b24tcHJldiB7XG4gIC0tc3dpcGVyLW5hdmlnYXRpb24tdG9wLW9mZnNldDogNTAlO1xuICAtLXN3aXBlci1uYXZpZ2F0aW9uLXNpZGVzLW9mZnNldDogMDtcbiAgLS1zd2lwZXItbmF2aWdhdGlvbi1zaXplOiAzcmVtO1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB0b3A6IDUwJSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgd2lkdGg6IDNyZW0gIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1zd2lwZXItbmF2aWdhdGlvbi1jb2xvcik7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZS1vdXQ7XG4gIHotaW5kZXg6IDEwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5zd2lwZXItYnV0dG9uLW5leHQge1xuICByaWdodDogMCAhaW1wb3J0YW50O1xuICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi5zd2lwZXItYnV0dG9uLXByZXYge1xuICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi5zd2lwZXItY29udGFpbmVyOmhvdmVyIC5zd2lwZXItYnV0dG9uLW5leHQsXG4uc3dpcGVyLWNvbnRhaW5lcjpob3ZlciAuc3dpcGVyLWJ1dHRvbi1wcmV2IHtcbiAgb3BhY2l0eTogMC41O1xufVxuXG4uc3dpcGVyLWNvbnRhaW5lcjpob3ZlciAuc3dpcGVyLWJ1dHRvbi1uZXh0OmhvdmVyLFxuLnN3aXBlci1jb250YWluZXI6aG92ZXIgLnN3aXBlci1idXR0b24tcHJldjpob3ZlciB7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cblxuLnN3aXBlci1idXR0b24tbmV4dDo6YWZ0ZXIsXG4uc3dpcGVyLWJ1dHRvbi1wcmV2OjphZnRlciB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc3dpcGVyLW5hdmlnYXRpb24tc2l6ZSkgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuXG4vKiDQodGC0LjQu9C4INC00LvRjyDQv9Cw0LPQuNC90LDRhtC40LggKi9cbi5zd2lwZXItcGFnaW5hdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC43NXJlbTtcbn1cblxuLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCB7XG4gIHdpZHRoOiAycmVtICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMC4xcmVtICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHZhcigtLXN3aXBlci1wYWdpbmF0aW9uLWNvbG9yKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjMgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlLW91dCAhaW1wb3J0YW50O1xufVxuXG4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cblxuLyog0KHRgtC40LvQuCDQtNC70Y8g0L7RgtC60LvRjtGH0LXQvdC90YvRhSDQutC90L7Qv9C+0LogKi9cbi5zd2lwZXItYnV0dG9uLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC4zNSAhaW1wb3J0YW50O1xuICBjdXJzb3I6IGRlZmF1bHQgIWltcG9ydGFudDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyog0JrQvtC80L/QtdC90YHQsNGG0LjRjyDQvtGC0YHRgtGD0L/QsCDQtNC70Y8g0LLRgdC10YUg0YHQu9Cw0LnQtNC10YDQvtCyINGBIHBhZGRpbmctYm90dG9tICovXG4uc3dpcGVyLWNvbnRhaW5lciAuc3dpcGVyLWJ1dHRvbi1uZXh0LFxuLnN3aXBlci1jb250YWluZXIgLnN3aXBlci1idXR0b24tcHJldiB7XG4gIG1hcmdpbi10b3A6IGNhbGMoLTJyZW0pICFpbXBvcnRhbnQ7XG59XG5cbi8qINCj0LHQuNGA0LDQtdC8IHBhZGRpbmcsINC60L7Qs9C00LAg0L/QsNCz0LjQvdCw0YbQuNGPINC+0YLQutC70Y7Rh9C10L3QsCAqL1xuLnN3aXBlci1jb250YWluZXJbZGF0YS1zZXR0aW5ncyo9XCJcXFwicGFnaW5hdGlvblxcXCI6e1xcXCJlbmFibGVkXFxcIjpmYWxzZX1cIl0sXG4uc3dpcGVyLWNvbnRhaW5lci5uby1wYWdpbmF0aW9uIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi8qINCh0LrRgNGL0LLQsNC10Lwg0L/QsNCz0LjQvdCw0YbQuNGOINC/0L7Qu9C90L7RgdGC0YzRjiwg0LrQvtCz0LTQsCDQvtC90LAg0L7RgtC60LvRjtGH0LXQvdCwICovXG4uc3dpcGVyLWNvbnRhaW5lcltkYXRhLXNldHRpbmdzKj1cIlxcXCJwYWdpbmF0aW9uXFxcIjp7XFxcImVuYWJsZWRcXFwiOmZhbHNlfVwiXSAuc3dpcGVyLXBhZ2luYXRpb24sXG4uc3dpcGVyLWNvbnRhaW5lci5uby1wYWdpbmF0aW9uIC5zd2lwZXItcGFnaW5hdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qINCh0LHRgNCw0YHRi9Cy0LDQtdC8INC+0YLRgdGC0YPQvyDQtNC70Y8g0LrQvdC+0L/QvtC6LCDQutC+0LPQtNCwINC/0LDQs9C40L3QsNGG0LjRjyDQvtGC0LrQu9GO0YfQtdC90LAgKi9cbi5zd2lwZXItY29udGFpbmVyW2RhdGEtc2V0dGluZ3MqPVwiXFxcInBhZ2luYXRpb25cXFwiOntcXFwiZW5hYmxlZFxcXCI6ZmFsc2V9XCJdIC5zd2lwZXItYnV0dG9uLW5leHQsXG4uc3dpcGVyLWNvbnRhaW5lcltkYXRhLXNldHRpbmdzKj1cIlxcXCJwYWdpbmF0aW9uXFxcIjp7XFxcImVuYWJsZWRcXFwiOmZhbHNlfVwiXSAuc3dpcGVyLWJ1dHRvbi1wcmV2LFxuLnN3aXBlci1jb250YWluZXIubm8tcGFnaW5hdGlvbiAuc3dpcGVyLWJ1dHRvbi1uZXh0LFxuLnN3aXBlci1jb250YWluZXIubm8tcGFnaW5hdGlvbiAuc3dpcGVyLWJ1dHRvbi1wcmV2IHtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xufVxuIiwiLnNwb2lsZXIge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiAxcmVtO1xuICBmb250LXNpemU6IDFlbTtcbiAgYm9yZGVyLWJvdHRvbTogMC4xcmVtIHNvbGlkIHZhcigtLWNvbG9yLTYpO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gIH1cbn1cblxuLnNwb2lsZXJfX2l0ZW0ge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnNwb2lsZXJfX2l0ZW0udGl0bGUtd3JhcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uc3BvaWxlcl9faXRlbS50aXRsZS13cmFwIC5zcG9pbGVyX19pdGVtLWljb24td3JhcCB7XG4gIHdpZHRoOiAwLjc1cmVtO1xuICBoZWlnaHQ6IGF1dG87XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnNwb2lsZXJfX2l0ZW0udGl0bGUtd3JhcC5hY3RpdmUgLnNwb2lsZXJfX2l0ZW0taWNvbi13cmFwe1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuXG4uc3BvaWxlcl9faXRlbS5kZXNjLXdyYXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDAuMjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIC8qINCf0YDQtdC00L7RgtCy0YDQsNGJ0LDQtdC8INC90LDQtdC30LbQsNC90LjQtSDRgtC10LrRgdGC0LAgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuXG4gIC8qINCU0L7Qv9C+0LvQvdC40YLQtdC70YzQvdCw0Y8g0LfQsNGJ0LjRgtCwINC+0YIg0L3QsNC10LfQttCw0L3QuNGPICovXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vKiDQo9Cx0LjRgNCw0LXQvCDQvtCz0YDQsNC90LjRh9C10L3QuNC1IG1heC1oZWlnaHQg0LTQu9GPINCw0LrRgtC40LLQvdGL0YUg0YHQv9C+0LnQu9C10YDQvtCyICovXG4uc3BvaWxlci5hY3RpdmUgLnNwb2lsZXJfX2l0ZW0uZGVzYy13cmFwIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8qINCh0YLQuNC70Lgg0LTQu9GPINC90LXQsNC60YLQuNCy0L3Ri9GFINGB0L/QvtC50LvQtdGA0L7QsiAqL1xuLnNwb2lsZXI6bm90KC5hY3RpdmUpIC5zcG9pbGVyX19pdGVtLmRlc2Mtd3JhcCB7XG4gIG1heC1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG9wYWNpdHk6IDA7XG59XG5cbi8qINCh0YLQuNC70Lgg0LTQu9GPINC+0L/QuNGB0LDQvdC40Y8g0LLQvdGD0YLRgNC4INGB0L/QvtC50LvQtdGA0LAgKi9cbi5zcG9pbGVyX19kZXNjIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG5cbiAgLyog0J/RgNC10LTQvtGC0LLRgNCw0YnQsNC10Lwg0L3QsNC10LfQttCw0L3QuNC1ICovXG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgLyog0JTQvtC/0L7Qu9C90LjRgtC10LvRjNC90LDRjyDQt9Cw0YnQuNGC0LAgKi9cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi8qINCU0L7Qv9C+0LvQvdC40YLQtdC70YzQvdCw0Y8g0LfQsNGJ0LjRgtCwINC+0YIg0L3QsNC10LfQttCw0L3QuNGPICovXG4uc3BvaWxlcl9fZGVzYzpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLyog0J/RgNC10LTQvtGC0LLRgNCw0YnQsNC10Lwg0L3QsNC10LfQttCw0L3QuNC1INCy0L4g0LLRgNC10LzRjyDQsNC90LjQvNCw0YbQuNC4ICovXG4uc3BvaWxlcl9faXRlbS5kZXNjLXdyYXBbc3R5bGUqPVwibWF4LWhlaWdodFwiXSB7XG4gIHdpbGwtY2hhbmdlOiBtYXgtaGVpZ2h0O1xufVxuXG4vKiDQo9C70YPRh9GI0LXQvdC90LDRjyDQsNC90LjQvNCw0YbQuNGPINC00LvRjyDQv9C70LDQstC90L7Qs9C+INGB0LLQvtGA0LDRh9C40LLQsNC90LjRjyAqL1xuLnNwb2lsZXJfX2l0ZW0uZGVzYy13cmFwIHtcbiAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG4iLCIuY2FyZC1vd25lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMXJlbTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBnYXA6IDNyZW07XG4gIH1cbn1cblxuLmNhcmQtb3duZXIgLmNhcmRfX2l0ZW0uY292ZXItd3JhcCB7XG4gIHdpZHRoOiA3cmVtO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGVhc2Utb3V0O1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIHdpZHRoOiAxN3JlbTtcbiAgfVxufVxuXG4uY2FyZC1vd25lciAuY2FyZF9faXRlbS5jb3Zlci13cmFwIGltZyB7XG59XG5cbi5jYXJkLW93bmVyIC5jYXJkX19pdGVtLnRpdGxlLXdyYXAge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cyBlYXNlLW91dDtcbn1cblxuLmNhcmQtb3duZXI6aG92ZXIgLmNhcmRfX2l0ZW0uY292ZXItd3JhcCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMC41cmVtKTtcbn1cblxuLmNhcmQtb3duZXI6aG92ZXIgLmNhcmRfX2l0ZW0udGl0bGUtd3JhcCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwLjVyZW0pO1xufVxuXG4uY2FyZC1vd25lciAudGl0bGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGZvbnQtc2l6ZTogMS4xZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZm9udC1zaXplOiAxLjRlbTtcbiAgfVxufSIsIi5jYXJkLW5hdiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogMnJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiAycmVtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNvbnRhaW5lci10eXBlOiBpbmxpbmUtc2l6ZTtcbiAgY29udGFpbmVyLW5hbWU6IGNhcmQtbmF2O1xuXG4gIEBjb250YWluZXIgY2FyZC1uYXYgKG1pbi13aWR0aDogNzVyZW0pIHtcbiAgICBwYWRkaW5nOiA0cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDRyZW07XG4gIH1cbn1cblxuLmNhcmQtbmF2IC5jYXJkX19pdGVtLmNvdmVyLXdyYXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uY2FyZC1uYXYgLmNhcmRfX2l0ZW0uY292ZXItd3JhcDo6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IGhzbCgwZGVnIDAlIDAlIC8gMjAlKTtcbiAgei1pbmRleDogMTtcbn1cblxuLmNhcmQtbmF2IC5jYXJkX19jb3ZlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDNzIGVhc2Utb3V0O1xufVxuXG4uY2FyZC1uYXYuYW5pbWF0aW9uLXpvb206aG92ZXIgLmNhcmRfX2NvdmVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbn1cbiAgXG4uY2FyZC1uYXYgLmNhcmRfX2l0ZW0udGl0bGUtd3JhcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogMC45ZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmNhcmQtbmF2IC5jYXJkX19zZXBhcmF0b3Ige1xuICB3aWR0aDogMC4xcmVtO1xuICBoZWlnaHQ6IDRyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRjb2xvcjtcbiAgZm9udC1zaXplOiAwO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG5cbiAgQGNvbnRhaW5lciBjYXJkLW5hdiAobWluLXdpZHRoOiA3NXJlbSkge1xuICAgIGhlaWdodDogNS4zM3JlbTtcbiAgfVxufVxuXG5AbWVkaWEgbm90ICgtLXNtKSB7XG4gIC5jYXJkLW5hdiAuY2FyZF9faXRlbS50aXRsZS13cmFwIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAwLjc1ZW07XG4gIH1cblxuICAuY2FyZC1uYXYgLmNhcmRfX3NlcGFyYXRvciB7XG4gICAgd2lkdGg6IDhyZW07XG4gICAgaGVpZ2h0OiAwLjFyZW07XG4gIH1cbn1cblxuLmNhcmQtbmF2LnRleHQtY2VudGVyIC5jYXJkX19pdGVtLnRpdGxlLXdyYXAge1xuICBAY29udGFpbmVyIGNhcmQtbmF2IChtaW4td2lkdGg6IDc1cmVtKSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cbi5jYXJkLW5hdiAuY2FyZF9faXRlbS50aXRsZS13cmFwIC5jYXJkX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuXG4gIEBjb250YWluZXIgY2FyZC1uYXYgKG1pbi13aWR0aDogNzVyZW0pIHtcbiAgICBmb250LXNpemU6IDIuNWVtO1xuICB9XG59XG4iLCIuYnV0dG9uLXNlY3Rpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDVyZW07XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMXJlbTtcbiAgcGFkZGluZzogMS4ycmVtIDJyZW07XG4gIGJvcmRlci1yYWRpdXM6IDJyZW07XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCAjMDAwLCAjMDAwKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjRzIGVhc2Utb3V0O1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGhlaWdodDogMTFyZW07XG4gICAgcGFkZGluZzogMS40cmVtIDNyZW07XG4gICAgYm9yZGVyLXJhZGl1czogNHJlbTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkaWVudC0zKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItMik7XG4gIH1cbn1cblxuLmJ1dHRvbi1zZWN0aW9uOjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgb3BhY2l0eTogMDtcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzIGVhc2Utb3V0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogMDtcbn1cblxuQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkge1xuICAuYnV0dG9uLXNlY3Rpb246aG92ZXI6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIC5idXR0b24tc2VjdGlvbjpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLmJ1dHRvbi1zZWN0aW9uX19pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xufVxuXG4uYnV0dG9uLXNlY3Rpb25fX2l0ZW0udGl0bGUtd3JhcCB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uYnV0dG9uLXNlY3Rpb25fX3RpdGxlIHtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZm9udC1zaXplOiAxLjhlbTtcbiAgfVxufVxuXG4uYnV0dG9uLXNlY3Rpb25fX2l0ZW0uaWNvbi13cmFwIHtcbiAgd2lkdGg6IDIuNHJlbTtcbiAgaGVpZ2h0OiAyLjRyZW07XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTIpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2Utb3V0O1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIHdpZHRoOiA0cmVtO1xuICAgIGhlaWdodDogNHJlbTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG59XG5cbi5idXR0b24tc2VjdGlvbl9faXRlbS5pY29uLXdyYXAgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmJ1dHRvbi1zZWN0aW9uX19pdGVtLmljb24td3JhcC5ncmVlbiB7XG4gIGJhY2tncm91bmQ6ICMzQTk1NTA7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMik7XG4gIH1cbn1cblxuLmJ1dHRvbi1zZWN0aW9uX19pdGVtLmljb24td3JhcC5ibHVlIHtcbiAgYmFja2dyb3VuZDogIzAwOEFDRjtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0yKTtcbiAgfVxufVxuXG4uYnV0dG9uLXNlY3Rpb25fX2l0ZW0uaWNvbi13cmFwLnJlZCB7XG4gIGJhY2tncm91bmQ6ICNDNzIyMjk7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMik7XG4gIH1cbn1cblxuQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkge1xuICAuYnV0dG9uLXNlY3Rpb246aG92ZXIgLmJ1dHRvbi1zZWN0aW9uX19pdGVtLmljb24td3JhcC5ncmVlbiB7XG4gICAgYmFja2dyb3VuZDogIzNBOTU1MDtcbiAgfVxuXG4gIC5idXR0b24tc2VjdGlvbjpob3ZlciAuYnV0dG9uLXNlY3Rpb25fX2l0ZW0uaWNvbi13cmFwLmJsdWUge1xuICAgIGJhY2tncm91bmQ6ICMwMDhBQ0Y7XG4gIH1cblxuICAuYnV0dG9uLXNlY3Rpb246aG92ZXIgLmJ1dHRvbi1zZWN0aW9uX19pdGVtLmljb24td3JhcC5yZWQge1xuICAgIGJhY2tncm91bmQ6ICNDNzIyMjk7XG4gIH1cbn1cbiIsIi5jYXJkLWdyYWRpZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAycmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxcmVtO1xuICBib3JkZXItcmFkaXVzOiAycmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkaWVudC0zKTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0O1xuICBjb250YWluZXItdHlwZTogaW5saW5lLXNpemU7XG4gIGNvbnRhaW5lci1uYW1lOiBjYXJkLWdyYWRpZW50O1xuXG4gIEBjb250YWluZXIgY2FyZC1ncmFkaWVudCAobWluLXdpZHRoOiA3NXJlbSkge1xuICAgIHBhZGRpbmc6IDRyZW07XG4gICAgZ2FwOiAxLjI1cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDRyZW07XG4gIH1cbn1cblxuLmNhcmQtZ3JhZGllbnRfX2NvdmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgei1pbmRleDogMDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNnMgZWFzZS1vdXQ7XG59XG5cbi8qIENTUy3RgNCw0LTQuNCw0LvRjNC90YvQtSDQs9GA0LDQtNC40LXQvdGC0Ysg0LrQsNC6INC30LDQvNC10L3QsCBQTkcgKi9cbi5jYXJkLWdyYWRpZW50X19jb3Zlci5ncmFkaWVudC1yZWQge1xuICBiYWNrZ3JvdW5kOlxuICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDcwJSAxMzAlIGF0IDEwMCUgMTEwJSxcbiAgICAgICNlMjExMDAgMCUsXG4gICAgICAjOGEwNzAwIDE4JSxcbiAgICAgICMyYTAzMDAgNDUlLFxuICAgICAgIzAwMCA4MCUpO1xufVxuXG4uY2FyZC1ncmFkaWVudF9fY292ZXIuZ3JhZGllbnQtc3Vuc2V0IHtcbiAgYmFja2dyb3VuZDpcbiAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIDMzMHB4IGF0IDUwJSAxMDAlLFxuICAgICAgIzAwMCAwJSwgIzJhMDkwMCAyNSUsICM3YTFmMDIgNTUlLCB0cmFuc3BhcmVudCA5MCUpLFxuICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgMjQwcHggYXQgMjIlIDAlLFxuICAgICAgIzAwMCAwJSwgIzJhMDkwMCAyNSUsICM3YTFmMDIgNTUlLCB0cmFuc3BhcmVudCA5MCUpLFxuICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgMjQwcHggYXQgNzglIDAlLFxuICAgICAgIzAwMCAwJSwgIzJhMDkwMCAyNSUsICM3YTFmMDIgNTUlLCB0cmFuc3BhcmVudCA5MCUpLFxuICAgICNmZjU2MWU7XG59XG5cbi5jYXJkLWdyYWRpZW50LmFuaW1hdGlvbi16b29tIC5jYXJkLWdyYWRpZW50X19jb3ZlciB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbn1cblxuLmNhcmQtZ3JhZGllbnQuYW5pbWF0aW9uLXpvb206aG92ZXIgLmNhcmQtZ3JhZGllbnRfX2NvdmVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjYpO1xufVxuXG4uY2FyZC1ncmFkaWVudC5hbmltYXRpb24tc2hpZnQtZG93biAuY2FyZC1ncmFkaWVudF9fY292ZXIge1xuICBpbnNldDogLTI1JSAwO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLW91dDtcbn1cblxuLmNhcmQtZ3JhZGllbnQuYW5pbWF0aW9uLXNoaWZ0LWRvd246aG92ZXIgLmNhcmQtZ3JhZGllbnRfX2NvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwJSk7XG59XG5cbi8qINCf0LDRgNCw0LvQu9Cw0LrRgSDRhNC+0L3QsCDQt9CwINC60YPRgNGB0L7RgNC+0LwgKNC70L7Qs9C40LrQsCDigJQg0LIganMvY29tcG9uZW50cy9jYXJkLWdyYWRpZW50LXBhcmFsbGF4LmpzKSAqL1xuLmNhcmQtZ3JhZGllbnQuYW5pbWF0aW9uLXBhcmFsbGF4IC5jYXJkLWdyYWRpZW50X19jb3ZlciB7XG4gIGluc2V0OiAtOCUgLTQlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMgZWFzZS1vdXQ7XG59XG5cbi5jYXJkLWdyYWRpZW50LmFuaW1hdGlvbi1wYXJhbGxheC5saW5rOmhvdmVyLFxuLmNhcmQtZ3JhZGllbnQuYW5pbWF0aW9uLXBhcmFsbGF4Lmxpbms6YWN0aXZlIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmNhcmQtZ3JhZGllbnQgLmNhcmRfX2l0ZW0udGl0bGUtd3JhcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogMC45ZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmNhcmQtZ3JhZGllbnQgLmNhcmRfX2l0ZW0udGl0bGUtd3JhcCAuY2FyZF9fdGl0bGUge1xuICBmb250LXNpemU6IDJlbTtcblxuICBAY29udGFpbmVyIGNhcmQtZ3JhZGllbnQgKG1pbi13aWR0aDogNzVyZW0pIHtcbiAgICBmb250LXNpemU6IDIuNWVtO1xuICB9XG59XG5cbi5jYXJkLWdyYWRpZW50IC5jYXJkX19zZXBhcmF0b3Ige1xuICB3aWR0aDogMC4xcmVtO1xuICBoZWlnaHQ6IDRyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRjb2xvcjtcbiAgZm9udC1zaXplOiAwO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG5cbiAgQGNvbnRhaW5lciBjYXJkLWdyYWRpZW50IChtaW4td2lkdGg6IDc1cmVtKSB7XG4gICAgaGVpZ2h0OiA1LjMzcmVtO1xuICB9XG59XG5cbi8qINCc0L7QsdC40LvRjNC90LDRjyDQstC10YDRgdC40Y86INC30LDQs9C+0LvQvtCy0LrQuCDQsiDQutC+0LvQvtC90LrRgywg0YDQsNC30LTQtdC70LjRgtC10LvRjCDigJQg0LPQvtGA0LjQt9C+0L3RgtCw0LvRjNC90LDRjyDQu9C40L3QuNGPICovXG5AbWVkaWEgbm90ICgtLXNtKSB7XG4gIC5jYXJkLWdyYWRpZW50IC5jYXJkX19pdGVtLnRpdGxlLXdyYXAge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDAuNzVlbTtcbiAgfVxuXG4gIC5jYXJkLWdyYWRpZW50IC5jYXJkX19zZXBhcmF0b3Ige1xuICAgIHdpZHRoOiA4cmVtO1xuICAgIGhlaWdodDogMC4xcmVtO1xuICB9XG5cbiAgLmNhcmQtZ3JhZGllbnQgLmNhcmRfX2l0ZW0uaWNvbi13cmFwIGltZyB7XG4gICAgd2lkdGg6IDZyZW07XG4gICAgaGVpZ2h0OiA2cmVtO1xuICB9XG59XG5cbi5jYXJkLWdyYWRpZW50IC5jYXJkX19pdGVtLmljb24td3JhcCB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB6LWluZGV4OiAxO1xufVxuXG4uY2FyZC1ncmFkaWVudCAuY2FyZF9faXRlbS5pY29uLXdyYXAgaW1nIHtcbiAgd2lkdGg6IDJyZW07XG4gIGhlaWdodDogMnJlbTtcblxuICBAY29udGFpbmVyIGNhcmQtZ3JhZGllbnQgKG1pbi13aWR0aDogNzVyZW0pIHtcbiAgICB3aWR0aDogMy4ycmVtO1xuICAgIGhlaWdodDogMy4ycmVtO1xuICB9XG59XG4iLCIuY2FyZC1udW1iZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMik7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gIH1cbn1cblxuLmNhcmQtbnVtYmVyX19pdGVtLnRpdGxlLXdyYXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG59XG5cbi5jYXJkLW51bWJlcl9fdGl0bGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LTEtZXh0ZW5kZWQpO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDZlbTtcbiAgbGluZS1oZWlnaHQ6IDAuOTtcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBmb250LXNpemU6IDhlbTtcbiAgfVxufVxuXG4uY2FyZC1udW1iZXJfX3RpdGxlOjpiZWZvcmUge1xuICBjb250ZW50OiBhdHRyKGRhdGEtZmluYWwpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5jYXJkLW51bWJlcl9fcGx1cyB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLW91dDtcbn1cblxuLmNhcmQtbnVtYmVyX19wbHVzLnZpc2libGUge1xuICBvcGFjaXR5OiAxO1xufVxuXG4uY2FyZC1udW1iZXJfX2l0ZW0ubGFiZWwtd3JhcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLW91dDtcbn1cblxuLmNhcmQtbnVtYmVyX19pdGVtLmxhYmVsLXdyYXAudmlzaWJsZSB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5jYXJkLW51bWJlcl9fbGFiZWwge1xuICBmb250LXNpemU6IDIuNGVtO1xuICBmb250LXdlaWdodDogMjAwO1xufVxuIiwiLmNhcmQtcmVzdGF1cmFudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDJyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTcpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLTEpO1xufVxuXG4uY2FyZC1yZXN0YXVyYW50IC5jYXJkX19pdGVtLmJnLXdyYXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgaGVpZ2h0OiAzMHJlbTtcbiAgfVxufVxuXG4uY2FyZC1yZXN0YXVyYW50IC5jYXJkLXJlc3RhdXJhbnQtc2xpZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5jYXJkLXJlc3RhdXJhbnQgLmNhcmQtcmVzdGF1cmFudC1zbGlkZXIgLnN3aXBlci13cmFwcGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmNhcmQtcmVzdGF1cmFudCAuY2FyZC1yZXN0YXVyYW50LXNsaWRlciAuc3dpcGVyLXNsaWRlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmNhcmQtcmVzdGF1cmFudCAuY2FyZC1yZXN0YXVyYW50LXNsaWRlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0yKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmNhcmQtcmVzdGF1cmFudCAuY2FyZC1yZXN0YXVyYW50LXNsaWRlLS1jb3ZlciAuY2FyZF9fYmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cblxuLmNhcmQtcmVzdGF1cmFudCAuY2FyZC1yZXN0YXVyYW50LXNsaWRlLS1jb3ZlciAuY2FyZF9faWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAycmVtO1xuICByaWdodDogMnJlbTtcbiAgd2lkdGg6IDE4cmVtO1xuICBoZWlnaHQ6IGF1dG87XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIHotaW5kZXg6IDE7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgYm90dG9tOiAzcmVtO1xuICAgIHJpZ2h0OiAzcmVtO1xuICB9XG59XG5cbi5jYXJkLXJlc3RhdXJhbnQgLmNhcmRfX2JhZGdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDJyZW07XG4gIGxlZnQ6IDJyZW07XG4gIHdpZHRoOiA4LjZyZW07XG4gIGhlaWdodDogMi41cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwLjc1ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gIGJvcmRlci1yYWRpdXM6IDguMjVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTEpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMik7XG4gIHotaW5kZXg6IDE7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgYm90dG9tOiAzcmVtO1xuICAgIGxlZnQ6IDNyZW07XG4gIH1cbn1cblxuLmNhcmQtcmVzdGF1cmFudCAuY2FyZC1yZXN0YXVyYW50LXNsaWRlIC5jYXJkX19sb2dvIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDJyZW07XG4gIGxlZnQ6IDJyZW07XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDRyZW0pO1xuICBoZWlnaHQ6IHZhcigtLWxvZ28taGVpZ2h0LCA3cmVtKTtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgei1pbmRleDogMTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICB0b3A6IDNyZW07XG4gICAgbGVmdDogM3JlbTtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDZyZW0pO1xuICB9XG59XG5cbi5jYXJkLXJlc3RhdXJhbnQgLmNhcmQtcmVzdGF1cmFudC1zbGlkZS0tZGVzYyxcbi5jYXJkLXJlc3RhdXJhbnQgLmNhcmQtcmVzdGF1cmFudC1zbGlkZS0taW5mbyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgcGFkZGluZy10b3A6IGNhbGMoMS41cmVtICsgdmFyKC0tbG9nby1oZWlnaHQsIDdyZW0pICsgMXJlbSk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBwYWRkaW5nOiAzcmVtO1xuICAgIHBhZGRpbmctdG9wOiBjYWxjKDNyZW0gKyB2YXIoLS1sb2dvLWhlaWdodCwgN3JlbSkgKyAxcmVtKTtcbiAgfVxufVxuXG4vKiDQmtC70LDQvNC/INC00LvQuNC90L3Ri9GFINC+0L/QuNGB0LDQvdC40Lk6INGC0LXQutGB0YIg0LTQu9C40L3QvdC10LUgfjYg0YHRgtGA0L7QuiAoSm9saSDQodCf0LEsIFNhbG9uZSDigJQgNTAwKyDRgdC40LzQsi4pXG4gICDQv9GA0LgganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZCDQv9C10YDQtdC/0L7Qu9C90Y/QuyDRgdC70LDQudC0INCy0LLQtdGA0YUg4oCUINC90LDQutGA0YvQstCw0Lsg0LvQvtCz0L4g0Lgg0L7QsdGA0LXQt9Cw0LvRgdGPXG4gICDQutGA0LDQtdC8INC60LDRgNGC0L7Rh9C60LguIDYg0YHRgtGA0L7QuiDQstC70LXQt9Cw0Y7RgiDQvdCwINCy0YHQtdGFINCx0YDQtdC50LrQv9C+0LjQvdGC0LDRhSDQv9GA0Lgg0YHQsNC80L7QvCDQstGL0YHQvtC60L7QvCDQu9C+0LPQviAoNy40cmVtKTtcbiAgINC/0L7Qu9C90YvQuSDRgtC10LrRgdGCINC+0YHRgtCw0ZHRgtGB0Y8g0L3QsCDRgdGC0YDQsNC90LjRhtC1INGA0LXRgdGC0L7RgNCw0L3QsCAo0LrQvdC+0L/QutCwIMKr0J/QvtC00YDQvtCx0L3QtdC1wrspLiAqL1xuLmNhcmQtcmVzdGF1cmFudCAuY2FyZC1yZXN0YXVyYW50LXNsaWRlX19kZXNjIHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogNjtcbiAgbWluLWhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmNhcmQtcmVzdGF1cmFudCAuY2FyZC1yZXN0YXVyYW50LXNsaWRlX190ZXh0IHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuOTVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDU7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLmNhcmQtcmVzdGF1cmFudCAuY2FyZC1yZXN0YXVyYW50LXNsaWRlX190ZXh0ICsgLmNhcmQtcmVzdGF1cmFudC1zbGlkZV9fdGV4dCB7XG4gIG1hcmdpbi10b3A6IDAuOHJlbTtcbn1cblxuLmNhcmQtcmVzdGF1cmFudCAuY2FyZC1yZXN0YXVyYW50LXNsaWRlX19pbmZvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjRyZW07XG59XG5cbi5jYXJkLXJlc3RhdXJhbnQgLmNhcmQtcmVzdGF1cmFudC1zbGlkZV9fbGluZSB7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAwLjk1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLmNhcmQtcmVzdGF1cmFudCAuY2FyZC1yZXN0YXVyYW50LXNsaWRlLS1waG90byAuY2FyZC1yZXN0YXVyYW50LXNsaWRlX19waG90byB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmNhcmQtcmVzdGF1cmFudCAuY2FyZC1yZXN0YXVyYW50LXNsaWRlciAuc3dpcGVyLWJ1dHRvbi1wcmV2LFxuLmNhcmQtcmVzdGF1cmFudCAuY2FyZC1yZXN0YXVyYW50LXNsaWRlciAuc3dpcGVyLWJ1dHRvbi1uZXh0IHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLmNhcmQtcmVzdGF1cmFudCAuY2FyZC1yZXN0YXVyYW50LXNsaWRlciAuc3dpcGVyLWJ1dHRvbi1wcmV2OjphZnRlcixcbi5jYXJkLXJlc3RhdXJhbnQgLmNhcmQtcmVzdGF1cmFudC1zbGlkZXIgLnN3aXBlci1idXR0b24tbmV4dDo6YWZ0ZXIge1xuICBmb250LXNpemU6IDJyZW0gIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLmNhcmQtcmVzdGF1cmFudCAuY2FyZC1yZXN0YXVyYW50LXNsaWRlciAuc3dpcGVyLWJ1dHRvbi1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAgIWltcG9ydGFudDtcbn1cblxuLmNhcmQtcmVzdGF1cmFudDpob3ZlciAuY2FyZC1yZXN0YXVyYW50LXNsaWRlciAuc3dpcGVyLWJ1dHRvbi1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAgIWltcG9ydGFudDtcbn1cblxuLmNhcmQtcmVzdGF1cmFudCAuY2FyZC1yZXN0YXVyYW50LXNsaWRlciAuc3dpcGVyLWJ1dHRvbi1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuMzU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uY2FyZC1yZXN0YXVyYW50LXdyYXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEuNXJlbTtcbn1cblxuLmNhcmQtcmVzdGF1cmFudC13cmFwIC5jYXJkX19pdGVtLnRpdGxlLXdyYXAge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uY2FyZC1yZXN0YXVyYW50LXdyYXAgLmNhcmRfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAxLjRlbTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBmb250LXNpemU6IDEuNWVtO1xuICB9XG59XG5cbi5jYXJkLXJlc3RhdXJhbnQtd3JhcCAuY2FyZF9faXRlbS5kZXNjLXdyYXAge1xuICBmbGV4OiAxO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uY2FyZC1yZXN0YXVyYW50LXdyYXAgLmNhcmRfX2Rlc2Mge1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLmNhcmQtcmVzdGF1cmFudC13cmFwIC5jYXJkX19pdGVtLmJ1dHRvbnMtd3JhcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMXJlbTtcbiAgbWFyZ2luLXRvcDogYXV0bztcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IGNhcmQtZXZlbnQgKNC60LDRgNGC0L7Rh9C60LAg0YHQvtCx0YvRgtC40Y8pXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uY2FyZC1ldmVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItNyk7XG4gIGJvcmRlci1yYWRpdXM6IDEuNnJlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tMSk7XG59XG5cbi5jYXJkLWV2ZW50OmhvdmVyLFxuLmNhcmQtZXZlbnQ6Zm9jdXMtdmlzaWJsZSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jb2xvci03KSwgd2hpdGUgNiUpO1xufVxuXG4uY2FyZC1ldmVudDpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWNvbG9yLTEpO1xuICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG4uY2FyZC1ldmVudF9fbWVkaWEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFzcGVjdC1yYXRpbzogNCAvIDM7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTcpO1xufVxuXG4uY2FyZC1ldmVudF9faW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tMik7XG59XG5cbi5jYXJkLWV2ZW50OmhvdmVyIC5jYXJkLWV2ZW50X19pbWcge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xufVxuXG4uY2FyZC1ldmVudF9fZGF0ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxLjRyZW07XG4gIGxlZnQ6IDEuNHJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWluLXdpZHRoOiA1LjZyZW07XG4gIHBhZGRpbmc6IDAuOHJlbSAxcmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0xKTtcbiAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5jYXJkLWV2ZW50X19kYXRlLWRheSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LTEpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDIuNnJlbTtcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgY29sb3I6IHZhcigtLWNvbG9yLTIpO1xufVxuXG4uY2FyZC1ldmVudF9fZGF0ZS1tb250aCB7XG4gIG1hcmdpbi10b3A6IDAuM3JlbTtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1tdXRlZCk7XG59XG5cbi5jYXJkLWV2ZW50X190YWcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMS40cmVtO1xuICBsZWZ0OiAxLjRyZW07XG4gIHBhZGRpbmc6IDAuNXJlbSAxLjJyZW07XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG4gIGJhY2tncm91bmQ6IHJnYigyMSAyMSAyMSAvIDU1JSk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig2cHgpO1xuICBib3JkZXItcmFkaXVzOiAxMHJlbTtcbn1cblxuLmNhcmQtZXZlbnRfX2JhZGdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEuNHJlbTtcbiAgcmlnaHQ6IDEuNHJlbTtcbiAgcGFkZGluZzogMC41cmVtIDEuMXJlbTtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0yKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMSk7XG4gIGJvcmRlci1yYWRpdXM6IDEwcmVtO1xufVxuXG4uY2FyZC1ldmVudF9fYm9keSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXg6IDE7XG4gIHBhZGRpbmc6IDJyZW0gMi4ycmVtIDIuMnJlbTtcbn1cblxuLmNhcmQtZXZlbnRfX3BsYWNlIHtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci02KTtcbn1cblxuLmNhcmQtZXZlbnRfX3RpdGxlIHtcbiAgbWFyZ2luLXRvcDogMC44cmVtO1xuICBmb250LXNpemU6IDJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAxZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLmNhcmQtZXZlbnRfX21ldGEge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTYpO1xufVxuXG4uY2FyZC1ldmVudF9fZm9vdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAxLjJyZW07XG4gIG1hcmdpbi10b3A6IGF1dG87XG4gIHBhZGRpbmctdG9wOiAxLjhyZW07XG59XG5cbi5jYXJkLWV2ZW50X19wcmljZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgZ2FwOiAwLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG59XG5cbi5jYXJkLWV2ZW50X19wcmljZS1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItNik7XG59XG5cbi5jYXJkLWV2ZW50X19wcmljZS12YWx1ZSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMS45cmVtO1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5jYXJkLWV2ZW50X19wcmljZS12YWx1ZS0tdGJhIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci02KTtcbn1cblxuLmNhcmQtZXZlbnRfX2N0YSB7XG4gIGZsZXgtc2hyaW5rOiAwOyAvKiDQutC90L7Qv9C60LAg0LLQvdGD0YLRgNC4IDxhLmNhcmQtZXZlbnQ+IOKAlCDQutC70LjQuiDQuCDRgtCw0Log0YPRhdC+0LTQuNGCINC/0L4g0LrQsNGA0YLQvtGH0LrQtS3RgdGB0YvQu9C60LUgKi9cbn1cblxuLyog0YXQvtCy0LXRgCDQutC90L7Qv9C60Lgg0YHRgNCw0LHQsNGC0YvQstCw0LXRgiDQuCDQv9GA0Lgg0L3QsNCy0LXQtNC10L3QuNC4INC90LAg0LLRgdGOINC60LDRgNGC0L7Rh9C60YMgKi9cbi5jYXJkLWV2ZW50OmhvdmVyIC5jYXJkLWV2ZW50X19jdGEuYmctY29sb3ItMSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jb2xvci0xKSwgYmxhY2sgMTAlKTtcbn1cblxuLmNhcmQtZXZlbnQ6aG92ZXIgLmNhcmQtZXZlbnRfX2N0YS5iZy1jb2xvci02IHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNvbG9yLTYpLCBibGFjayA4MCUpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5jYXJkLWV2ZW50LS1zb2xkIHtcbiAgb3BhY2l0eTogMC44NTtcbn1cblxuLmNhcmQtZXZlbnQtLXNvbGQgLmNhcmQtZXZlbnRfX2ltZyB7XG4gIGZpbHRlcjogZ3JheXNjYWxlKDAuMzUpO1xufVxuIiwiLnBhZ2UtNDA0IHtcbiAgLyog0KHRgtC40LvQuCDQtNC70Y8gNDA0ICovXG59XG5cbi5wYWdlLTQwNCAuY29udGFpbmVyIHtcbiAgLyog0KHRgtC40LvQuCDQtNC70Y8g0LrQvtC90YLQtdC50L3QtdGA0LAg0LIgNDA0ICovXG59XG4iLCIuY29udGFjdHMge1xuICAvKiDQodGC0LjQu9C4INC00LvRjyBjb250YWN0cyAqL1xufVxuXG4uY29udGFjdHMgLmNvbnRhaW5lciB7XG4gIC8qINCh0YLQuNC70Lgg0LTQu9GPINC60L7QvdGC0LXQudC90LXRgNCwINCyIGNvbnRhY3RzICovXG59XG4iLCIuaW5kZXgge1xuICAvKiDQodGC0LjQu9C4INC00LvRjyBpbmRleCAqL1xufVxuXG4uaW5kZXggLmNvbnRhaW5lciB7XG4gIC8qINCh0YLQuNC70Lgg0LTQu9GPINC60L7QvdGC0LXQudC90LXRgNCwINCyIGluZGV4ICovXG59XG4iLCIubG9nb2xpbmUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci0xKTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBwYWRkaW5nLXRvcDogMTByZW07XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gIH1cbn1cblxuLmxvZ29saW5lIC5zd2lwZXItY29udGFpbmVyIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmxvZ29saW5lIC5pcy1tYXJxdWVlIHtcbiAgY29udGFpbjogbGF5b3V0IHBhaW50O1xuICBjdXJzb3I6IGdyYWI7XG4gIHRvdWNoLWFjdGlvbjogcGFuLXk7XG59XG5cbi5sb2dvbGluZSAuaXMtbWFycXVlZS5pcy1kcmFnZ2luZyB7XG4gIGN1cnNvcjogZ3JhYmJpbmc7XG59XG5cbi5sb2dvbGluZSAuaXMtbWFycXVlZSAuc3dpcGVyLXdyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5sb2dvbGluZSAuc3dpcGVyLXNsaWRlIHtcbiAgd2lkdGg6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBoZWlnaHQ6IGF1dG87XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBtYXJnaW4tcmlnaHQ6IDQwcHg7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiA4MHB4O1xuICB9XG59XG5cbi5sb2dvbGluZV9faXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gIH1cbn1cblxuLmxvZ29saW5lX19sb2dvIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGNhbGModmFyKC0tbG9nby1oZWlnaHQsIDguNHJlbSkgKiAwLjcpO1xuICBvcGFjaXR5OiAwLjU7XG4gIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tMSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBoZWlnaHQ6IHZhcigtLWxvZ28taGVpZ2h0LCA3LjVyZW0pO1xuICB9XG59XG5cbi5sb2dvbGluZSAuc3dpcGVyLXNsaWRlOmhvdmVyIC5sb2dvbGluZV9fbG9nbyB7XG4gIG9wYWNpdHk6IDE7XG59XG4iLCIucHJvbW8uc2VjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLTIpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG4gIHBhZGRpbmctYmxvY2s6IDhyZW0gNnJlbTtcbiAgbWluLWhlaWdodDogNjB2aDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBwYWRkaW5nLWJsb2NrOiAxMnJlbSA4cmVtO1xuICAgIG1pbi1oZWlnaHQ6IDcwdmg7XG4gIH1cbn1cblxuLnByb21vX19jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAycmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1heC13aWR0aDogNjByZW07XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4ucHJvbW9fX2NvZGUge1xuICBmb250LXNpemU6IDEycmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZm9udC1zaXplOiAxOHJlbTtcbiAgfVxufVxuXG4ucHJvbW9fX2hlYWRpbmctd3JhcCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ucHJvbW9fX2hlYWRpbmctd3JhcCAuaGVhZGluZyB7XG4gIGZvbnQtc2l6ZTogMS42ZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZm9udC1zaXplOiAyZW07XG4gIH1cbn1cblxuLnByb21vX190ZXh0IHtcbiAgZm9udC1zaXplOiAxZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIG9wYWNpdHk6IDAuNztcbiAgbWFyZ2luOiAwO1xufVxuXG4ucHJvbW9fX2FjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogMXJlbTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDFyZW07XG59XG4iLCIucmVzdGF1cmFudHMge1xuICAvKiDQodGC0LjQu9C4INC00LvRjyByZXN0YXVyYW50cyAqL1xufVxuXG4ucmVzdGF1cmFudHMgLmNvbnRhaW5lciB7XG4gIC8qINCh0YLQuNC70Lgg0LTQu9GPINC60L7QvdGC0LXQudC90LXRgNCwINCyIHJlc3RhdXJhbnRzICovXG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUGFnZTogcmVzdGF1cmFudCBkZXRhaWxcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbmJvZHk6aGFzKC5yZXN0YXVyYW50LWRldGFpbCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0yKTtcbn1cblxuLnJlc3RhdXJhbnQtZGV0YWlsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwO1xuICBtYXJnaW4tdG9wOiAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0yKTtcbn1cblxuLyogLS0tLSBTbGlkZXIgLS0tLSAqL1xuXG4ucmVzdGF1cmFudC1kZXRhaWxfX2l0ZW0uc2xpZGVyLXdyYXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5yZXN0YXVyYW50LWRldGFpbF9faXRlbS5zbGlkZXItd3JhcCAuc3dpcGVyLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDU0cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBoZWlnaHQ6IDkwcmVtO1xuICB9XG59XG5cbi5yZXN0YXVyYW50LWRldGFpbF9faXRlbS5zbGlkZXItd3JhcCAuc3dpcGVyLXNsaWRlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLnJlc3RhdXJhbnQtZGV0YWlsX19pdGVtLnNsaWRlci13cmFwIC5zd2lwZXItc2xpZGUgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi5yZXN0YXVyYW50LWRldGFpbF9faXRlbS5zbGlkZXItd3JhcCAuc3dpcGVyLXBhZ2luYXRpb24ge1xuICBib3R0b206IDJyZW07XG59XG5cbi8qIG92ZXJyaWRlOiBzd2lwZXIgaW5saW5lIG5hdiBjb2xvciArIGNhbmNlbCBwYWRkaW5nIG9mZnNldCAqL1xuLnJlc3RhdXJhbnQtZGV0YWlsX19pdGVtLnNsaWRlci13cmFwIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0xKSAhaW1wb3J0YW50O1xufVxuXG4ucmVzdGF1cmFudC1kZXRhaWxfX2l0ZW0uc2xpZGVyLXdyYXAgLnN3aXBlci1idXR0b24tbmV4dCxcbi5yZXN0YXVyYW50LWRldGFpbF9faXRlbS5zbGlkZXItd3JhcCAuc3dpcGVyLWJ1dHRvbi1wcmV2IHtcbiAgLS1zd2lwZXItbmF2aWdhdGlvbi1jb2xvcjogdmFyKC0tY29sb3ItMSk7XG5cbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xufVxuXG4vKiDQotGR0LzQvdGL0Lkg0L7QstC10YDQu9C10Lkg0LTQu9GPINGH0LjRgtCw0LXQvNC+0YHRgtC4ICovXG4ucmVzdGF1cmFudC1pbnRybyAuc3dpcGVyLWNvbnRhaW5lcjo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2IoMCAwIDAgLyA1NSUpIDAlLCByZ2IoMCAwIDAgLyAyNSUpIDUwJSwgcmdiKDAgMCAwIC8gMTAlKSAxMDAlKTtcbiAgei1pbmRleDogMTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qIC0tLS0gUmVzdGF1cmFudCBpbnRybyBvdmVybGF5IC0tLS0gKi9cblxuLnJlc3RhdXJhbnQtaW50cm9fX292ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiAyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4ucmVzdGF1cmFudC1pbnRyb19fb3ZlcmxheSAuY29udGFpbmVyIHtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbi5yZXN0YXVyYW50LWludHJvX19jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAyLjRyZW07XG4gIG1heC13aWR0aDogNzByZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZ2FwOiAzLjZyZW07XG4gIH1cbn1cblxuLnJlc3RhdXJhbnQtaW50cm9fX3RpdGxlIHtcbiAgZm9udC1zaXplOiAzZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjA1O1xuICBtYXJnaW46IDA7XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZm9udC1zaXplOiA0LjVlbTtcbiAgfVxufVxuXG4ucmVzdGF1cmFudC1pbnRyb19fY29udGFjdHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNHJlbTtcbiAgZm9udC1zaXplOiAxLjRyZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gIH1cbn1cblxuLnJlc3RhdXJhbnQtaW50cm9fX2xpbmUge1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLnJlc3RhdXJhbnQtaW50cm9fX2hvdXJzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjRyZW07XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICB9XG59XG5cbi5yZXN0YXVyYW50LWludHJvX19ob3Vycy1ub3RlIHtcbiAgbWFyZ2luOiAwO1xuICBtYXgtd2lkdGg6IDUycmVtO1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgb3BhY2l0eTogMC44NTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxufVxuXG4ucmVzdGF1cmFudC1pbnRyb19faG91cnMtcm93ICsgLnJlc3RhdXJhbnQtaW50cm9fX2hvdXJzLW5vdGUge1xuICBtYXJnaW4tdG9wOiAwLjRyZW07XG59XG5cbi5yZXN0YXVyYW50LWludHJvX19ob3Vycy10aXRsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC44cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjRyZW07XG59XG5cbi5yZXN0YXVyYW50LWludHJvX19ob3Vycy1pY29uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAyLjRyZW07XG4gIGhlaWdodDogMi40cmVtO1xuICBib3JkZXI6IDAuMXJlbSBzb2xpZCB2YXIoLS1jb2xvci0xKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLyog0KfQsNGB0L7QstCw0Y8g0YHRgtGA0LXQu9C60LAgKNCy0LLQtdGA0YUg0LogMTIpICovXG4ucmVzdGF1cmFudC1pbnRyb19faG91cnMtaWNvbjo6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDAuMXJlbTtcbiAgaGVpZ2h0OiAwLjdyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTEpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gY2VudGVyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtMTAwJSk7XG59XG5cbi8qINCc0LjQvdGD0YLQvdCw0Y8g0YHRgtGA0LXQu9C60LAgKNCy0L/RgNCw0LLQviDQuiAzKSAqL1xuLnJlc3RhdXJhbnQtaW50cm9fX2hvdXJzLWljb246OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDAuOXJlbTtcbiAgaGVpZ2h0OiAwLjFyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTEpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG59XG5cbi5yZXN0YXVyYW50LWludHJvX19hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDFyZW07XG4gIG1hcmdpbi10b3A6IDAuOHJlbTtcblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBnYXA6IDEuNnJlbTtcbiAgfVxufVxuXG4ucmVzdGF1cmFudC1pbnRyb19fYWN0aW9ucyAuYnV0dG9uLmJnLWNvbG9yLTE6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tY29sb3ItMik7XG59XG5cbi8qIC0tLS0gQnJlYWRjcnVtYiAtLS0tICovXG5cbi5yZXN0YXVyYW50LWRldGFpbF9faXRlbS5icmVhZGNydW1iLXdyYXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbiAgZm9udC1zaXplOiAwLjg1ZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1tdXRlZCk7XG59XG5cbi5yZXN0YXVyYW50LWRldGFpbF9faXRlbS5icmVhZGNydW1iLXdyYXAgYSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1tdXRlZCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4ycztcbn1cblxuLnJlc3RhdXJhbnQtZGV0YWlsX19pdGVtLmJyZWFkY3J1bWItd3JhcCBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogdmFyKC0tY29sb3ItMyk7XG4gIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDFweDtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjI1ZW07XG59XG5cbi5yZXN0YXVyYW50LWRldGFpbF9faXRlbS5icmVhZGNydW1iLXdyYXAgLmJyZWFkY3J1bWItc2VwIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTYpO1xufVxuXG4vKiAtLS0tIEFib3V0IC0tLS0gKi9cblxuLnJlc3RhdXJhbnQtZGV0YWlsX19pdGVtLmFib3V0LXdyYXAge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0yKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICBwYWRkaW5nLWJsb2NrOiA1cmVtO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIHBhZGRpbmctYmxvY2s6IDEwcmVtO1xuICB9XG59XG5cbi5yZXN0YXVyYW50LWRldGFpbCAuYWJvdXQtd3JhcCAuY29udGFpbmVyLW1kIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA0cmVtO1xufVxuXG4ucmVzdGF1cmFudC1kZXRhaWwgLmFib3V0LXdyYXAgLnNlY3Rpb25fX2l0ZW0uaGVhZGluZy13cmFwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxLjZyZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZ2FwOiAycmVtO1xuICB9XG59XG5cbi5yZXN0YXVyYW50LWRldGFpbCAuYWJvdXQtd3JhcCAuc2VjdGlvbl9faXRlbS5oZWFkaW5nLXdyYXAgLmhlYWRpbmcge1xuICBmb250LXNpemU6IDJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgbWFyZ2luOiAwO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZvbnQtc2l6ZTogMy4yZW07XG4gIH1cbn1cblxuLnJlc3RhdXJhbnQtYWJvdXRfX3N1YiB7XG4gIG1hcmdpbjogMDtcbiAgbWF4LXdpZHRoOiA5MHJlbTtcbiAgZm9udC1zaXplOiAxLjRlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgY29sb3I6IHZhcigtLWNvbG9yLTYpO1xuXG4gIEBtZWRpYSAoLS1sZykge1xuICAgIGZvbnQtc2l6ZTogMS44ZW07XG4gIH1cbn1cblxuLnJlc3RhdXJhbnQtZGV0YWlsIC5hYm91dC13cmFwIC5zZWN0aW9uX19pdGVtLmRlc2Mtd3JhcCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG4gIG1heC13aWR0aDogODByZW07XG59XG5cbi5yZXN0YXVyYW50LWRldGFpbCAuYWJvdXQtd3JhcCAucmVzdGF1cmFudC1hYm91dF9fY29sIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4ucmVzdGF1cmFudC1hYm91dF9fbG9nbyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuLnJlc3RhdXJhbnQtYWJvdXRfX2xvZ28gaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygwKSBpbnZlcnQoMSk7XG59XG5cbi5yZXN0YXVyYW50LWFib3V0X19hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDFyZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgZ2FwOiAxLjZyZW07XG4gIH1cbn1cblxuLnJlc3RhdXJhbnQtYWJvdXRfX3N0YWZmIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxcmVtO1xufVxuXG4ucmVzdGF1cmFudC1zdGFmZl9faGVhZGluZyB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBtYXJnaW46IDA7XG59XG5cbi5yZXN0YXVyYW50LXN0YWZmX19saXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDAuNXJlbSAyLjVyZW07XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuXG4gIEBtZWRpYSAoLS1tZCkge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgfVxufVxuXG4ucmVzdGF1cmFudC1zdGFmZl9faXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBnYXA6IDAuNXJlbTtcbn1cblxuLnJlc3RhdXJhbnQtc3RhZmZfX3JvbGUge1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLnJlc3RhdXJhbnQtc3RhZmZfX25hbWUge1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi8qINCT0LDQu9C10YDQtdGPLiDQotC10LvQtdGE0L7QvTog0LvQtdC90YLQsCDQvtC00LjQvdCw0LrQvtCy0YvRhSDQutCw0LTRgNC+0LIg0YEg0LvQuNGB0YLQsNC90LjQtdC8INCy0LHQvtC6IOKAlCDQtNCy0LAg0LTQtdGB0Y/RgtC60LAg0YHQvdC40LzQutC+0LJcbiAgINCyINGB0YLQvtC70LHQuNC6INC+0YLQttC40LzQsNGO0YIg0LLQvdC40Lcg0Lgg0LLQvtC/0YDQvtGB0Ysg0LPQvtGB0YLQtdC5LCDQuCDRgdC+0YHQtdC00L3QuNC1INGA0LXRgdGC0L7RgNCw0L3Riy4g0J/Qu9Cw0L3RiNC10YIg0Lgg0LTQtdGB0LrRgtC+0L86XG4gICDRgNGP0LTRiyDRgNCw0LfQvdC+0Lkg0LrRgNGD0L/QvdC+0YHRgtC4IOKAlCDRhtC10LvRi9C5INC60LDQtNGALCDQv9C+0LvQvtCy0LjQvdGLLCDRgtGA0LXRgtC4LCDRh9C10YLQstC10YDRgtC4LiDQqNC40YDQuNC90Ysg0YDQsNGB0YHRgtCw0LLQu9GP0LXRglxuICAg0YjQsNCx0LvQvtC9LCDRgNGP0LTRiyDQv9C+INC/0L7RgdGC0YDQvtC10L3QuNGOINC30LDQutGA0YvQstCw0Y7RgtGB0Y8g0YbQtdC70LjQutC+0LwuICovXG4ucmVzdGF1cmFudC1hYm91dF9fZ2FsbGVyeS1ibG9jayB7XG4gIC0tZ2FsbGVyeS1nYXA6IDAuOHJlbTtcblxuICBAbWVkaWEgKC0tc20pIHtcbiAgICAtLWdhbGxlcnktZ2FwOiAxLjZyZW07XG4gIH1cblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICAtLWdhbGxlcnktZ2FwOiAycmVtO1xuICB9XG59XG5cbi5yZXN0YXVyYW50LWFib3V0X19nYWxsZXJ5IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgZ3JpZC1hdXRvLWNvbHVtbnM6IDc2JTtcbiAgZ2FwOiB2YXIoLS1nYWxsZXJ5LWdhcCk7XG4gIHBhZGRpbmctYm90dG9tOiAwLjRyZW07XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3IteDogY29udGFpbjtcbiAgc2Nyb2xsLXNuYXAtdHlwZTogeCBtYW5kYXRvcnk7XG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbn1cblxuLnJlc3RhdXJhbnQtYWJvdXRfX2dhbGxlcnk6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnJlc3RhdXJhbnQtYWJvdXRfX2dhbGxlcnkgLnJlc3RhdXJhbnQtYWJvdXRfX3Bob3RvIHtcbiAgc2Nyb2xsLXNuYXAtYWxpZ246IGNlbnRlcjtcbn1cblxuLnJlc3RhdXJhbnQtYWJvdXRfX3Bob3RvIHtcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBhc3BlY3QtcmF0aW86IDQgLyAzO1xuICBib3JkZXItcmFkaXVzOiAxLjZyZW07XG5cbiAgQG1lZGlhICgtLWxnKSB7XG4gICAgYm9yZGVyLXJhZGl1czogMi40cmVtO1xuICB9XG59XG5cbi5yZXN0YXVyYW50LWFib3V0X19waG90byBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi5yZXN0YXVyYW50LWFib3V0X19waG90byA+IGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLyog0J/QtdGA0LXQutC70Y7Rh9Cw0YLQtdC70YwgwqvQv9C+0LrQsNC30LDRgtGMINC10YnRkcK7IOKAlCDRh9C10LrQsdC+0LrRgSwg0LHQtdC3INC10LTQuNC90L7QuSDRgdGC0YDQvtGH0LrQuCBKUy4gKi9cbi5yZXN0YXVyYW50LWFib3V0X19nYWxsZXJ5LXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbn1cblxuLnJlc3RhdXJhbnQtYWJvdXRfX2dhbGxlcnktbW9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBtZWRpYSAoLS1zbSkge1xuICAucmVzdGF1cmFudC1hYm91dF9fZ2FsbGVyeSB7XG4gICAgZ3JpZC1hdXRvLWZsb3c6IHJvdztcbiAgICBncmlkLWF1dG8tY29sdW1uczogYXV0bztcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxMiwgMWZyKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBvdmVyZmxvdy14OiB2aXNpYmxlO1xuICAgIHNjcm9sbC1zbmFwLXR5cGU6IG5vbmU7XG4gIH1cblxuICAvKiDQqNC40YDQuNC90LAg0LrQsNC00YDQsCDQv9GA0LjRhdC+0LTQuNGCINC40Lcg0LTQsNC90L3Ri9GFLCDQv9GA0L7Qv9C+0YDRhtC40Y8g0LfQsNC60YDQtdC/0LvQtdC90LAg0LfQsCDQvdC10Lk6INC60LDQtNGA0Ysg0L7QtNC90L7Qs9C+INGA0LDQt9C80LXRgNCwXG4gICAgINCyINGA0Y/QtNGDINCy0YHQtdCz0LTQsCDQvtC00L3QvtC5INCy0YvRgdC+0YLRiywg0LHQtdC3INC/0L7QtNCz0L7QvdC60LguICovXG4gIC5yZXN0YXVyYW50LWFib3V0X19waG90by0tdzEyIHtcbiAgICBncmlkLWNvbHVtbjogc3BhbiAxMjtcbiAgICBhc3BlY3QtcmF0aW86IDE2IC8gOTtcbiAgfVxuXG4gIC5yZXN0YXVyYW50LWFib3V0X19waG90by0tdzYge1xuICAgIGdyaWQtY29sdW1uOiBzcGFuIDY7XG4gICAgYXNwZWN0LXJhdGlvOiAzIC8gMjtcbiAgfVxuXG4gIC5yZXN0YXVyYW50LWFib3V0X19waG90by0tdzQge1xuICAgIGdyaWQtY29sdW1uOiBzcGFuIDQ7XG4gICAgYXNwZWN0LXJhdGlvOiA0IC8gMztcbiAgfVxuXG4gIC8qINCd0LAg0L/Qu9Cw0L3RiNC10YLQtSDRh9C10YLQstC10YDRgtC4INCy0YHRgtCw0Y7RgiDQv9C+INC00LLQtSDQsiDRgNGP0LQ6INCy0YfQtdGC0LLQtdGA0L7QvCDQvdCwINGC0LDQutC+0Lkg0YjQuNGA0LjQvdC1INC60LDQtNGA0YtcbiAgICAg0L/RgNC10LLRgNCw0YnQsNGO0YLRgdGPINCyINC/0L7Rh9GC0L7QstGL0LUg0LzQsNGA0LrQuC4gKi9cbiAgLnJlc3RhdXJhbnQtYWJvdXRfX3Bob3RvLS13MyB7XG4gICAgZ3JpZC1jb2x1bW46IHNwYW4gNjtcbiAgICBhc3BlY3QtcmF0aW86IDMgLyAyO1xuICB9XG5cbiAgLyog0KHQstGR0YDQvdGD0YLQsNGPINCz0LDQu9C10YDQtdGPINC/0L7QutCw0LfRi9Cy0LDQtdGCINC/0LXRgNCy0YvQtSDRgtGA0Lgg0YDRj9C00LAg0YbQtdC70LjQutC+0Lw6INCz0LTQtSDQvtCx0YDRi9CyINC/0YDQuNC00ZHRgtGB0Y8g0L3QsCDRgdC10YDQtdC00LjQvdGDXG4gICAgINGA0Y/QtNCwLCDQv9C+0YHQu9C10LTQvdC40Lkg0LrQsNC00YAg0L/QvtCy0LjRgSDQsdGLINC+0LTQuNC9LiDQmtCw0LTRgNGLINC30LAg0L7QsdGA0LXQt9C+0Lwg0L/QvtC80LXRh9C10L3RiyDQsiDRiNCw0LHQu9C+0L3QtS4gKi9cbiAgLnJlc3RhdXJhbnQtYWJvdXRfX2dhbGxlcnktLWNvbGxhcHNpYmxlIC5yZXN0YXVyYW50LWFib3V0X19waG90by0tZXh0cmEge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAucmVzdGF1cmFudC1hYm91dF9fZ2FsbGVyeS1ibG9jazpoYXMoLnJlc3RhdXJhbnQtYWJvdXRfX2dhbGxlcnktdG9nZ2xlOmNoZWNrZWQpIC5yZXN0YXVyYW50LWFib3V0X19waG90by0tZXh0cmEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLnJlc3RhdXJhbnQtYWJvdXRfX2dhbGxlcnktbW9yZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuXG4gICAgLyog0J7RgtGB0YLRg9C/INC00L4g0LrQvdC+0L/QutC4INGA0LDQstC10L0g0LfQsNC30L7RgNGDINC80LXQttC00YMg0LrQsNC00YDQsNC80Lgg4oCUINC60L3QvtC/0LrQsCDRh9C40YLQsNC10YLRgdGPINC60LDQuiDRh9Cw0YHRgtGMINGB0LXRgtC60LguICovXG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZ2FsbGVyeS1nYXApO1xuICB9XG5cbiAgLnJlc3RhdXJhbnQtYWJvdXRfX2dhbGxlcnktbW9yZS1jbG9zZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5yZXN0YXVyYW50LWFib3V0X19nYWxsZXJ5LWJsb2NrOmhhcygucmVzdGF1cmFudC1hYm91dF9fZ2FsbGVyeS10b2dnbGU6Y2hlY2tlZCkgLnJlc3RhdXJhbnQtYWJvdXRfX2dhbGxlcnktbW9yZS1vcGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnJlc3RhdXJhbnQtYWJvdXRfX2dhbGxlcnktYmxvY2s6aGFzKC5yZXN0YXVyYW50LWFib3V0X19nYWxsZXJ5LXRvZ2dsZTpjaGVja2VkKSAucmVzdGF1cmFudC1hYm91dF9fZ2FsbGVyeS1tb3JlLWNsb3NlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gIH1cbn1cblxuQG1lZGlhICgtLWxnKSB7XG4gIC5yZXN0YXVyYW50LWFib3V0X19waG90by0tdzMge1xuICAgIGdyaWQtY29sdW1uOiBzcGFuIDM7XG4gICAgYXNwZWN0LXJhdGlvOiAxIC8gMTtcbiAgfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFBhZ2U6IGV2ZW50IGRldGFpbCAo0YHRgtGA0LDQvdC40YbQsCDRgdC+0LHRi9GC0LjRjylcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5ldmVudC1kZXRhaWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0yKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4vKiAtLS0tLS0tLS0tIEhFUk8gLS0tLS0tLS0tLSAqL1xuXG4uZXZlbnQtaGVybyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogNDZyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcblxuICBAbWVkaWEgKC0tbWQpIHtcbiAgICBtaW4taGVpZ2h0OiA2NHJlbTtcbiAgfVxufVxuXG4uZXZlbnQtaGVyb19fbWVkaWEge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci03KTtcbn1cblxuLmV2ZW50LWhlcm9fX2ltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG4uZXZlbnQtaGVyb19fc2NyaW0ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kOlxuICAgIGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYigwIDAgMCAvIDkyJSkgMCUsIHJnYigwIDAgMCAvIDQwJSkgNDAlLCByZ2IoMCAwIDAgLyAxMCUpIDEwMCUpO1xufVxuXG4uZXZlbnQtaGVyb19fb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDRyZW0gMCA0LjRyZW07XG5cbiAgQG1lZGlhICgtLW1kKSB7XG4gICAgcGFkZGluZzogNnJlbSAwIDYuNHJlbTtcbiAgfVxufVxuXG4uZXZlbnQtaGVyb19fY29udGVudCB7XG4gIG1heC13aWR0aDogODJyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLmV2ZW50LWhlcm9fX2V5ZWJyb3cge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuNnJlbSAxLjRyZW07XG4gIG1hcmdpbi1ib3R0b206IDEuOHJlbTtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjEyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0yKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMSk7XG4gIGJvcmRlci1yYWRpdXM6IDEwcmVtO1xufVxuXG4uZXZlbnQtaGVyb19fdGl0bGUge1xuICBmb250LXNpemU6IDMuNnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMDU7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAxZW07XG5cbiAgQG1lZGlhICgtLXNtKSB7XG4gICAgZm9udC1zaXplOiA1LjJyZW07XG4gIH1cblxuICBAbWVkaWEgKC0tbGcpIHtcbiAgICBmb250LXNpemU6IDYuNHJlbTtcbiAgfVxufVxuXG4uZXZlbnQtaGVyb19fZmFjdHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogMS4ycmVtIDIuOHJlbTtcbiAgbWFyZ2luLXRvcDogMi40cmVtO1xuICBmb250LXNpemU6IDEuNnJlbTtcblxuICBAbWVkaWEgKC0tc20pIHtcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgfVxufVxuXG4uZXZlbnQtaGVyb19fZmFjdCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuOXJlbTtcbiAgY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDkyJSk7XG59XG5cbi5ldmVudC1oZXJvX19mYWN0LWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLyogLS0tLS0tLS0tLSBCT0RZICsgU1RJQ0tZIFRJQ0tFVCAtLS0tLS0tLS0tICovXG5cbi5ldmVudC1ib2R5IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMik7XG59XG5cbi5ldmVudC1ib2R5X19ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIGdhcDogNHJlbTtcblxuICBAbWVkaWEgKC0tbWQpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIDM2cmVtO1xuICAgIGdhcDogNXJlbTtcbiAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gIH1cbn1cblxuLyog0KDQuNGC0Lwg0LvQtdCy0L7QuSDQutC+0LvQvtC90LrQuCDigJQg0YfQtdGA0LXQtyBnYXAg0L3QsCDRgNC+0LTQuNGC0LXQu9C1ICjQutC+0L3QstC10L3RhtC40Y8g0L/Qu9Cw0YLRhNC+0YDQvNGLKSwg0LHQtdC3INGB0LLQvtC40YUgbWFyZ2luINGDINCx0LvQvtC60L7Qsi5cbiAgINCjIDxwPiDQvdC10YIg0LPQu9C+0LHQsNC70YzQvdC+0LPQviByZXNldCDigJQg0LHRgNCw0YPQt9C10YDQvdGL0LUgbWFyZ2luINC70L7QvNCw0Y7RgiDRgNC40YLQvCwg0L7QsdC90YPQu9GP0LXQvCDQsiDQv9GA0LXQtNC10LvQsNGFINC60L7Qu9C+0L3QutC4ICovXG4uZXZlbnQtYm9keV9fbWFpbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNnJlbTtcbn1cblxuLmV2ZW50LWJvZHlfX21haW4gcCB7XG4gIG1hcmdpbjogMDtcbn1cblxuLmV2ZW50LWJvZHlfX2ludHJvIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAxLjRyZW07XG59XG5cbi5ldmVudC1ib2R5X19wbGFjZSB7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItNik7XG59XG5cbi5ldmVudC1ib2R5X19sZWFkIHtcbiAgZm9udC1zaXplOiAycmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG5cbiAgQG1lZGlhICgtLXNtKSB7XG4gICAgZm9udC1zaXplOiAyLjRyZW07XG4gIH1cbn1cblxuLmV2ZW50LWJvZHlfX3RleHQge1xuICBmb250LXNpemU6IDEuN3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNztcbiAgY29sb3I6IHZhcigtLWNvbG9yLTYpO1xufVxuXG4uZXZlbnQtYm9keV9fdGV4dCBwICsgcCB7XG4gIG1hcmdpbi10b3A6IDEuNHJlbTtcbn1cblxuLyogLS0tLSBDb250ZW50IGJsb2NrcyAtLS0tICovXG5cbi5ldmVudC1ibG9jayB7XG4gIG1hcmdpbi10b3A6IDA7IC8qINGA0LjRgtC8INC30LDQtNCw0ZHRgiBnYXAg0YDQvtC00LjRgtC10LvRjyAuZXZlbnQtYm9keV9fbWFpbiAqL1xufVxuXG4uZXZlbnQtYmxvY2tfX2hlYWRpbmcge1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItNik7XG4gIHBhZGRpbmctYm90dG9tOiAxLjRyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2IoMjU1IDI1NSAyNTUgLyAxNiUpO1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuXG4vKiDQn9GA0L7Qs9GA0LDQvNC80LAgKi9cblxuLmV2ZW50LXByb2dyYW0ge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMDtcbn1cblxuLmV2ZW50LXByb2dyYW1fX2l0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDJyZW07XG4gIHBhZGRpbmc6IDEuNHJlbSAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDI1NSAyNTUgMjU1IC8gMTYlKTtcbiAgZm9udC1zaXplOiAxLjdyZW07XG59XG5cbi5ldmVudC1wcm9ncmFtX19pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiAwO1xufVxuXG4uZXZlbnQtcHJvZ3JhbV9fdGltZSB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBtaW4td2lkdGg6IDZyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLmV2ZW50LXByb2dyYW1fX3RpdGxlIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTYpO1xufVxuXG4vKiDQkiDRgdGC0L7QuNC80L7RgdGC0Ywg0LLRhdC+0LTQuNGCIOKAlCDRgdC/0LjRgdC+0Log0YEg0YLQtdC80LDRgtC40YfQtdGB0LrQuNC80Lgg0LjQutC+0L3QutCw0LzQuCAqL1xuXG4uZXZlbnQtaW5jbHVkZXMge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiAxLjRyZW0gM3JlbTtcbn1cblxuLmV2ZW50LWluY2x1ZGVzX19pdGVtIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMS4ycmVtO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4uZXZlbnQtaW5jbHVkZXNfX21hcmsge1xuICBmbGV4LXNocmluazogMDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogM3JlbTtcbiAgaGVpZ2h0OiAzcmVtO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0yKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItMSk7XG59XG5cbi8qINCa0YDRg9C/0L3Ri9C1INC30LDQs9C+0LvQvtCy0LrQuCDRgNCw0LfQtNC10LvQvtCyINC4INCw0LrRhtC10L3RgtC90YvQtSDQsNCx0LfQsNGG0YsgKNGA0LXRhNC10YDQtdC90YEgdmVjaGVydm9zb2JueWFrZS1pdGFseS5ydSkgKi9cblxuLmV2ZW50LWJvZHlfX3NlY3Rpb24ge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDEuNnJlbTtcbn1cblxuLmV2ZW50LWgyIHtcbiAgZGlzcGxheTogYmxvY2s7IC8qINCz0LvQvtCx0LDQu9GM0L3Ri9C5IHJlc2V0INC00LXQu9Cw0LXRgiBoMS1oNiBpbmxpbmUtYmxvY2sg4oCUINCx0L7QutGBINGB0LbQuNC80LDQtdGC0YHRjyDQuCB0ZXh0LWFsaWduOmNlbnRlciDQvdC1INGG0LXQvdGC0YDQuNGA0YPQtdGCINC/0L4g0LrQvtC70L7QvdC60LUgKi9cbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LTEtZXh0ZW5kZWQpO1xuICBmb250LXNpemU6IDJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDA7XG5cbiAgQG1lZGlhICgtLXNtKSB7XG4gICAgZm9udC1zaXplOiAyLjU3ZW07XG4gIH1cbn1cblxuXG4uZXZlbnQtYWNjZW50IHtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMS40M2VtO1xuICBsaW5lLWhlaWdodDogMS42NTtcblxuICBAbWVkaWEgKC0tc20pIHtcbiAgICBmb250LXNpemU6IDEuNTdlbTtcbiAgfVxufVxuXG4uZXZlbnQtYWNjZW50IHAge1xuICBtYXgtd2lkdGg6IDY2Y2g7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4uZXZlbnQtYWNjZW50OjpiZWZvcmUsXG4uZXZlbnQtYWNjZW50OjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ib3JkZXIpO1xufVxuXG4uZXZlbnQtYWNjZW50OjpiZWZvcmUgeyBtYXJnaW4tYm90dG9tOiAyLjRyZW07IH1cbi5ldmVudC1hY2NlbnQ6OmFmdGVyIHsgbWFyZ2luLXRvcDogMi40cmVtOyB9XG5cbi8qINCc0LXQvdGOINCy0LXRh9C10YDQsCDigJQg0L/QviDRgNC10YTQtdGA0LXQvdGB0YMg0LvQtdC90LTQuNC90LPQsCB2ZWNoZXJ2b3NvYm55YWtlLWl0YWx5LnJ1OlxuICAg0YLRkdC80L3Ri9C5INGE0L7QvSDRgdGC0YDQsNC90LjRhtGLLCDRgdCy0LXRgtC70YvQuSDRgtC10LrRgdGCLCDRhtC10L3RgtGA0LjRgNC+0LLQsNC90L3Ri9C1INC30LDQs9C+0LvQvtCy0LrQuCDRgSDQt9C+0LvQvtGC0YvQvNC4INC70LjQvdC40Y/QvNC4ICovXG5cbi5ldmVudC1tZW51IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAxLjZyZW07XG59XG5cbi5ldmVudC1tZW51X19pbnRybyB7XG4gIGZvbnQtc2l6ZTogMS4yMWVtO1xuICBsaW5lLWhlaWdodDogMS43O1xuICBjb2xvcjogdmFyKC0tY29sb3ItNik7XG59XG5cbi5ldmVudC1tZW51X19ncm91cHMge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDMuNnJlbTtcbn1cblxuLmV2ZW50LW1lbnVfX2dyb3VwIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZXZlbnQtbWVudV9fZ3JvdXAtdGl0bGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEuNnJlbTtcbiAgbWFyZ2luOiAwIDAgMS44cmVtO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC0xLWV4dGVuZGVkKTtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uZXZlbnQtbWVudV9fZ3JvdXAtdGl0bGU6OmJlZm9yZSxcbi5ldmVudC1tZW51X19ncm91cC10aXRsZTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBmbGV4OiAxIDEgMDtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJhY2tncm91bmQ6ICNjNDRjMDE7XG59XG5cbi5ldmVudC1tZW51X19saXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDEuMXJlbTtcbiAganVzdGlmeS1pdGVtczogY2VudGVyO1xufVxuXG4uZXZlbnQtbWVudV9faXRlbSB7XG4gIG1heC13aWR0aDogNDZjaDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4uZXZlbnQtbWVudV9fbW9yZSB7XG4gIGRpc3BsYXk6IGNvbnRlbnRzOyAvKiDQs9GA0YPQv9C/0Ysg0L3QsNGB0LvQtdC00YPRjtGCINGB0LXRgtC60YMgLmV2ZW50LW1lbnVfX2dyb3VwcyAqL1xufVxuXG4uZXZlbnQtbWVudV9fbW9yZVtoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmV2ZW50LW1lbnVfX3RvZ2dsZSB7XG4gIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICBwYWRkaW5nOiAxLjJyZW0gMi44cmVtO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzQ0YzAxO1xuICBib3JkZXItcmFkaXVzOiAyLjRyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbiAgZm9udDogaW5oZXJpdDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLTEpO1xufVxuXG4uZXZlbnQtbWVudV9fdG9nZ2xlOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci0zKTtcbiAgYmFja2dyb3VuZDogcmdiKDIzMCA4OSAxIC8gMTAlKTtcbn1cblxuLmV2ZW50LW1lbnVfX2Z1bGwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMC4zZW07XG59XG5cbi8qINCT0LDQu9C10YDQtdGPICovXG5cbi5ldmVudC1nYWxsZXJ5IHtcbiAgLyog0LDRgdC40LzQvNC10YLRgNC40YfQvdCw0Y8g0YHQtdGC0LrQsDog0YPQt9C60LDRjyAo0L/QvtGA0YLRgNC10YIpICsg0YjQuNGA0L7QutCw0Y8gKNC70LDQvdC00YjQsNGE0YIpLCDQt9Cw0YLQtdC8INGB0LvQsNC50LQg0LLQviDQstGB0Y4g0YjQuNGA0LjQvdGDICovXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICBnYXA6IDEuMnJlbTtcblxuICBAbWVkaWEgKC0tc20pIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDJmciAzZnI7XG4gICAgZ2FwOiAxLjZyZW07XG4gIH1cbn1cblxuLmV2ZW50LWdhbGxlcnlfX2ZpZ3VyZSB7XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLXJhZGl1czogMS4ycmVtO1xuICBoZWlnaHQ6IDMycmVtO1xuXG4gIEBtZWRpYSAoLS1zbSkge1xuICAgIGhlaWdodDogNTJyZW07XG4gIH1cbn1cblxuLmV2ZW50LWdhbGxlcnlfX2ZpZ3VyZSBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tMik7XG59XG5cbi5ldmVudC1nYWxsZXJ5X19maWd1cmU6aG92ZXIgaW1nIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbn1cblxuLyog0LrQsNC20LTRi9C5INGC0YDQtdGC0LjQuSDRgdC70LDQudC0ICjQutCw0YDRgtCwINC/0YDQvtGF0L7QtNCwKSDigJQg0YHQsNC80L7RgdGC0L7Rj9GC0LXQu9GM0L3Ri9C5INGG0LXQvdGC0YDQuNGA0L7QstCw0L3QvdGL0Lkg0LHQu9C+0LpcbiAgINGBINC10YHRgtC10YHRgtCy0LXQvdC90YvQvNC4INC/0YDQvtC/0L7RgNGG0LjRj9C80Lgg0LjQt9C+0LHRgNCw0LbQtdC90LjRjywg0LrQsNC6INC90LAg0YDQtdGE0LXRgNC10L3RgdC1ICovXG4uZXZlbnQtZ2FsbGVyeV9fZmlndXJlOm50aC1jaGlsZCgzbikge1xuICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICBoZWlnaHQ6IGF1dG87XG4gIGFzcGVjdC1yYXRpbzogYXV0bztcbiAgbWF4LXdpZHRoOiA3MnJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4uZXZlbnQtZ2FsbGVyeV9fZmlndXJlOm50aC1jaGlsZCgzbikgaW1nIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBvYmplY3QtZml0OiB1bnNldDtcbn1cblxuLmV2ZW50LWdhbGxlcnlfX2ZpZ3VyZSAuZ2xpZ2h0Ym94IHtcbiAgLyog0LjQvdC70LDQudC90L7QstCw0Y8g0YHRgdGL0LvQutCwINC90LUg0LTQsNGR0YIg0LLRi9GB0L7RgtGDIGltZyDigJQg0YDQsNGB0YLRj9Cz0LjQstCw0LXQvCDQvdCwINCy0LXRgdGMIGZpZ3VyZSAqL1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmV2ZW50LWdhbGxlcnlfX2ZpZ3VyZSBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tMik7XG59XG5cbi5ldmVudC1nYWxsZXJ5X19maWd1cmU6aG92ZXIgaW1nIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbn1cblxuLyogLS0tLSBTdGlja3kgdGlja2V0IGNhcmQgLS0tLSAqL1xuXG4vKiDQndCwINC80L7QsdC40LvQtSDQutCw0YDRgtC+0YfQutCwINC00YPQsdC70LjRgNGD0LXRgiDRhNC+0YDQvNGDINCx0YDQvtC90LggKNGB0LLQvtC00LrQsCtDVEEpIOKAlCDQv9C+0LrQsNC30YvQstCw0LXQvCDRgtC+0LvRjNC60L4g0L3QsCDQtNC10YHQutGC0L7Qv9C1ICovXG4uZXZlbnQtdGlja2V0IHtcbiAgZGlzcGxheTogbm9uZTtcblxuICBAbWVkaWEgKC0tbWQpIHtcbiAgICAvKiDQu9C40L/QutCw0Y8g0YjQsNC/0LrQsCAxMnJlbSDQstGL0YHQvtGC0L7QuSArINCy0L7Qt9C00YPRhSAqL1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgdG9wOiAxNC40cmVtO1xuICB9XG59XG5cbi5ldmVudC10aWNrZXRfX2NhcmQge1xuICBwYWRkaW5nOiAyLjZyZW0gMi40cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci03KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiKDI1NSAyNTUgMjU1IC8gMTIlKTtcbiAgYm9yZGVyLXJhZGl1czogMS44cmVtO1xufVxuXG4uZXZlbnQtdGlja2V0X19kYXRlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxLjRyZW07XG4gIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDI1NSAyNTUgMjU1IC8gMTYlKTtcbn1cblxuLmV2ZW50LXRpY2tldF9fZGF0ZS1kYXkge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC0xKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiA0LjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5ldmVudC10aWNrZXRfX2RhdGUtcmVzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC40cmVtO1xufVxuXG4uZXZlbnQtdGlja2V0X19kYXRlLW1vbnRoIHtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLmV2ZW50LXRpY2tldF9fZGF0ZS13ZWVrZGF5IHtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci02KTtcbn1cblxuLmV2ZW50LXRpY2tldF9fZmFjdHMge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDAgMCAycmVtO1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEuMXJlbTtcbn1cblxuLmV2ZW50LXRpY2tldF9fZmFjdHMgbGkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAxLjZyZW07XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xufVxuXG4uZXZlbnQtdGlja2V0X19mYWN0cyBzcGFuIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTYpO1xufVxuXG4uZXZlbnQtdGlja2V0X19mYWN0cyBiIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLmV2ZW50LXRpY2tldF9fc2VhdHMge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uZXZlbnQtdGlja2V0X19wcmljZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgZ2FwOiAwLjhyZW07XG4gIHBhZGRpbmc6IDEuOHJlbSAwO1xuICBtYXJnaW4tYm90dG9tOiAxLjhyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2IoMjU1IDI1NSAyNTUgLyAxNiUpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDI1NSAyNTUgMjU1IC8gMTYlKTtcbn1cblxuLmV2ZW50LXRpY2tldF9fcHJpY2UtbGFiZWwge1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTYpO1xufVxuXG4uZXZlbnQtdGlja2V0X19wcmljZS12YWx1ZSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMi44cmVtO1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5ldmVudC10aWNrZXRfX3ByaWNlLXZhbHVlLS10YmEge1xuICBmb250LXNpemU6IDEuN3JlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTYpO1xufVxuXG4uZXZlbnQtdGlja2V0X19jdGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qINCU0LvQuNC90L3Ri9C5INGC0LXQutGB0YIgKMKr0JIg0LvQuNGB0YIg0L7QttC40LTQsNC90LjRj8K7INC4INGCLtC/Likg0L3QtSDQu9C+0LzQsNC10YIg0LrQvdC+0L/QutGDINGE0LjQutGBLdCy0YvRgdC+0YLRiyAqL1xuLmV2ZW50LXRpY2tldF9fY3RhLmJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbiAgbWluLWhlaWdodDogNXJlbTtcbiAgcGFkZGluZy1ibG9jazogMS4ycmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5ldmVudC10aWNrZXRfX3NoYXJlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogMC44cmVtO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLXRvcDogMS4ycmVtO1xuICBwYWRkaW5nOiAxcmVtO1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTYpO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tMSk7XG59XG5cbi5ldmVudC10aWNrZXRfX3NoYXJlOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4vKiAtLS0tLS0tLS0tINCe0YTQvtGA0LzQu9C10L3QuNC1IC0tLS0tLS0tLS0gKi9cblxuLmV2ZW50LWJ1eSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTIpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG4gIHBhZGRpbmctdG9wOiAwOyAvKiAuc2VjdGlvbiDQtNCw0ZHRgiA2cmVtINGB0LLQtdGA0YXRgywg0LAgZXZlbnQtYm9keSDRg9C20LUg0LTQsNGR0YIgNnJlbSDRgdC90LjQt9GDIOKAlCDQtNCy0L7QudC90L7QuSDQt9Cw0LfQvtGAICovXG59XG5cbi8qINC30LDQs9C+0LvQvtCy0L7Quiwg0L/QvtC00LLQvtC00LrQsCDQuCDRhNC+0YDQvNCwIOKAlCDQv9C+INGG0LXQvdGC0YDRgyDQm9CV0JLQntCZINC60L7Qu9C+0L3QutC4INC00LLRg9GF0LrQvtC70L7QvdC+0YfQvdC+0LPQviDQsdC70L7QutCwINCy0YvRiNC1XG4gICAo0LrQvtC90YLQtdC90YIg0YHRg9C20LDQtdGC0YHRjyDQvdCwINGI0LjRgNC40L3RgyBhc2lkZSAzNnJlbSArIGdhcCA1cmVtKSAqL1xuLmV2ZW50LWJ1eSAuY29udGFpbmVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAzLjJyZW07XG59XG5cbi5ldmVudC1idXkgLmhlYWRpbmctd3JhcCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAxLjRyZW07XG59XG5cbkBtZWRpYSAoLS1tZCkge1xuICAuZXZlbnQtYnV5IC5zZWN0aW9uX19pdGVtIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gNDFyZW0pO1xuICB9XG5cbiAgLyog0LrQsNGA0YLQvtGH0LrRgyDRhNC+0YDQvNGLINGG0LXQvdGC0YDQuNGA0YPQtdC8INC/0L4g0YLQvtC5INC20LUg0LvQtdCy0L7QuSDQutC+0LvQvtC90LrQtTpcbiAgICAgbWF4LXdpZHRoK21hcmdpbjphdXRvINGG0LXQvdGC0YDQuNGA0L7QstCw0LvQuCDQtdGRINC/0L4g0LLRgdC10LzRgyDQutC+0L3RgtC10LnQvdC10YDRgyAqL1xuICAuZXZlbnQtYnV5IC5ldmVudC1idXlfX2Zvcm0ge1xuICAgIG1hcmdpbi1sZWZ0OiBtYXgoMHJlbSwgY2FsYygoMTAwJSAtIDQxcmVtIC0gNzZyZW0pIC8gMikpO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG59XG5cbi5ldmVudC1idXlfX2hlYWRpbmcge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC0xLWV4dGVuZGVkKTtcbiAgZm9udC1zaXplOiAyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG5cbiAgQG1lZGlhICgtLXNtKSB7XG4gICAgZm9udC1zaXplOiAyLjU3ZW07XG4gIH1cbn1cblxuLmV2ZW50LWJ1eV9fc3ViIHtcbiAgbWF4LXdpZHRoOiA3MmNoO1xuICBtYXJnaW46IDAgYXV0bztcbiAgZm9udC1zaXplOiAxLjE0ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci02KTtcbn1cblxuLyog0J/QsNC90LXQu9GMINGE0L7RgNC80Ysg4oCUINC60LDQuiDQutCw0YDRgtC+0YfQutCwINCx0LjQu9C10YLQsCDQsiBhc2lkZSAqL1xuXG4uZXZlbnQtYnV5X19mb3JtIHtcbiAgbWF4LXdpZHRoOiA3NnJlbTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDIuNHJlbSAycmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci03KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiKDI1NSAyNTUgMjU1IC8gMTIlKTtcbiAgYm9yZGVyLXJhZGl1czogMS44cmVtO1xuXG4gIEBtZWRpYSAoLS1zbSkge1xuICAgIHBhZGRpbmc6IDMuMnJlbSAzLjZyZW07XG4gIH1cbn1cblxuLyog0KLRkdC80L3QsNGPINGE0L7RgNC80LA6INC/0L7Qu9GPLdCx0L7QutGB0Ysg0YEg0LLQuNC00LjQvNGL0LzQuCDQu9C10LnQsdC70LDQvNC4ICovXG5cbi5ldmVudC1idXkgLmZvcm0tY2FsbGJhY2sgLmZvcm0tY2FsbGJhY2tfX2lucHV0IHtcbiAgcGFkZGluZzogMS4zcmVtIDEuNnJlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xuICBjYXJldC1jb2xvcjogdmFyKC0tY29sb3ItMSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDYlKTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiKDI1NSAyNTUgMjU1IC8gMTYlKTtcbiAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi0xKTtcbn1cblxuLmV2ZW50LWJ1eSAuZm9ybS1jYWxsYmFjayAuZm9ybS1jYWxsYmFja19faW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDU1JSk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5ldmVudC1idXkgLmZvcm0tY2FsbGJhY2sgLmZvcm0tY2FsbGJhY2tfX2lucHV0OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gOSUpO1xuICBib3JkZXItY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDYwJSk7XG59XG5cbi5ldmVudC1idXkgLmZvcm0tY2FsbGJhY2tfX2l0ZW0uZXJyb3IgLmZvcm0tY2FsbGJhY2tfX2lucHV0IHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7XG59XG5cbi5mb3JtLXRpY2tldF9fbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMC43cmVtO1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTYpO1xufVxuXG4vKiDQodCy0L7QtNC60LA6INGH0YLQviDQsdGA0L7QvdC40YDRg9C10LwgKi9cblxuLmZvcm0tdGlja2V0X19zdW1tYXJ5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMS42cmVtIDIuNHJlbTtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBwYWRkaW5nLWJvdHRvbTogMS44cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDI1NSAyNTUgMjU1IC8gMTYlKTtcbn1cblxuLmZvcm0tdGlja2V0X19zdW1tYXJ5LXRpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uZm9ybS10aWNrZXRfX3N1bW1hcnktbWV0YSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAwLjRyZW07XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItNik7XG59XG5cbi5mb3JtLXRpY2tldF9fc3VtbWFyeS1wcmljZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuLmZvcm0tdGlja2V0X19zdW1tYXJ5LXByaWNlIHNwYW4ge1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTYpO1xufVxuXG4uZm9ybS10aWNrZXRfX3N1bW1hcnktcHJpY2UgYiB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xufVxuXG4vKiDQmNGC0L7Qs9C+IOKAlCDQu9C10LnQsdC7INC4INGG0LXQvdCwINC/0L4g0LHQsNC30L7QstC+0Lkg0LvQuNC90LjQuCAqL1xuXG4uZm9ybS10aWNrZXRfX3RvdGFsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBnYXA6IDAuN3JlbTtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci02KTtcbn1cblxuLmZvcm0tdGlja2V0X190b3RhbCBiIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDJyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci0xKTtcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbn1cblxuLyog0JrQvdC+0L/QutCwIOKAlCDQtNC10L3QtdC20L3QvtC1INC00LXQudGB0YLQstC40LUg0L3QsCDQstGB0Y4g0YjQuNGA0LjQvdGDICovXG5cbi5ldmVudC1idXkgLmZvcm0tdGlja2V0X19zdWJtaXQge1xuICB3aWR0aDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qINCh0L7QvtCx0YnQtdC90LjQtSDQvtCxINGD0YHQv9C10YXQtSDQvdCwINGC0ZHQvNC90L7QvCAqL1xuXG4uZXZlbnQtYnV5IC5mb3JtLWNhbGxiYWNrX19zdWNjZXNzLXRpdGxlIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4uZXZlbnQtYnV5IC5mb3JtLWNhbGxiYWNrX19zdWNjZXNzLXRleHQge1xuICBjb2xvcjogdmFyKC0tY29sb3ItNik7XG59XG5cbi5ldmVudC1idXkgLmZvcm0tY2FsbGJhY2sgLmZvcm0tY2FsbGJhY2tfX3NlbGVjdCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9kYXRhL2ltZy91aS9pY29ucy9pY29uLXRyaWFuZ2xlLWRvd24tY29sb3ItMS5zdmdcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDEuNHJlbSBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogMXJlbSAxcmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAzLjhyZW07XG59XG5cbi5ldmVudC1idXkgLmZvcm0tY2FsbGJhY2sgLmZvcm0tY2FsbGJhY2tfX3NlbGVjdDppbnZhbGlkIHtcbiAgY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIDU1JSk7XG59XG5cbi5ldmVudC1idXkgLmZvcm0tY2FsbGJhY2sgLmZvcm0tY2FsbGJhY2tfX3NlbGVjdCBvcHRpb24ge1xuICBjb2xvcjogdmFyKC0tY29sb3ItMik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTEpO1xufVxuXG4uZXZlbnQtYnV5IC5mb3JtLWNhbGxiYWNrX19jdXN0b20tY2hlY2tib3ggLmZvcm0tY2FsbGJhY2tfX2NoZWNrbWFyayB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5ldmVudC1idXkgLmZvcm0tY2FsbGJhY2tfX2NoZWNrbWFyazo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci0xKTtcbn1cblxuLmV2ZW50LWJ1eSAuZm9ybS1jYWxsYmFja19fcGxhY2Vob2xkZXIge1xuICBjb2xvcjogdmFyKC0tY29sb3ItNik7XG59XG5cbi5ldmVudC1idXkgLmZvcm0tY2FsbGJhY2tfX3J1bGVzIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTYpO1xufVxuXG4uZXZlbnQtYnV5IC5mb3JtLWNhbGxiYWNrX19pbnB1dDpmb2N1cy12aXNpYmxlLFxuLmV2ZW50LWJ1eSAuZm9ybS1jYWxsYmFjayAuZm9ybS1jYWxsYmFja19fY2hlY2tib3g6Zm9jdXMtdmlzaWJsZSArIC5mb3JtLWNhbGxiYWNrX19jaGVja21hcmssXG4uZXZlbnQtYnV5IC5mb3JtLWNhbGxiYWNrIGJ1dHRvbjpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi8qINCk0L7RgNC80LAg0LfQsNC60LDQt9CwINCx0LjQu9C10YLQsDog0YHQstC+0LggZ3JpZC3QvtCx0LvQsNGB0YLQuCDQv9C+0LLQtdGA0YUg0LHQsNC30L7QstC+0Lkg0YTQvtGA0LzRiyAqL1xuXG4uZm9ybS10aWNrZXRfX2NvbnRhaW5lciB7XG4gIGdhcDogMS44cmVtO1xuICBncmlkLXRlbXBsYXRlLWFyZWFzOlxuICAgIFwic3VtbWFyeVwiXG4gICAgXCJuYW1lXCJcbiAgICBcInBob25lXCJcbiAgICBcImVtYWlsXCJcbiAgICBcInRpY2tldHNcIlxuICAgIFwidG90YWxcIlxuICAgIFwiYnV0dG9uXCJcbiAgICBcInBvbGljeVwiXG4gICAgXCJydWxlc1wiXG4gICAgXCJlcnJvclwiO1xuXG4gIEBtZWRpYSAoLS1zbSkge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICBjb2x1bW4tZ2FwOiAyLjRyZW07XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICAgIFwic3VtbWFyeSBzdW1tYXJ5XCJcbiAgICAgIFwibmFtZSBwaG9uZVwiXG4gICAgICBcImVtYWlsIHRpY2tldHNcIlxuICAgICAgXCJ0b3RhbCB0b3RhbFwiXG4gICAgICBcImJ1dHRvbiBidXR0b25cIlxuICAgICAgXCJwb2xpY3kgcG9saWN5XCJcbiAgICAgIFwicnVsZXMgcnVsZXNcIlxuICAgICAgXCJlcnJvciBlcnJvclwiO1xuICB9XG59XG5cbi5mb3JtLWNhbGxiYWNrX19pdGVtLmZvcm0tdGlja2V0LWl0ZW0tc3VtbWFyeSB7XG4gIGdyaWQtYXJlYTogc3VtbWFyeTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2l0ZW0uZm9ybS10aWNrZXQtaXRlbS10b3RhbCB7XG4gIGdyaWQtYXJlYTogdG90YWw7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19pdGVtLmZvcm0tdGlja2V0LWl0ZW0tbmFtZSB7XG4gIGdyaWQtYXJlYTogbmFtZTtcbn1cblxuLmZvcm0tY2FsbGJhY2tfX2l0ZW0uZm9ybS10aWNrZXQtaXRlbS1waG9uZSB7XG4gIGdyaWQtYXJlYTogcGhvbmU7XG59XG5cbi5mb3JtLWNhbGxiYWNrX19pdGVtLmZvcm0tdGlja2V0LWl0ZW0tZW1haWwge1xuICBncmlkLWFyZWE6IGVtYWlsO1xufVxuXG4uZm9ybS1jYWxsYmFja19faXRlbS5mb3JtLXRpY2tldC1pdGVtLXRpY2tldHMge1xuICBncmlkLWFyZWE6IHRpY2tldHM7XG59XG5cbi8qINCf0YDQuNC/0LjRgdC60LAg0L/RgNC+INC+0L/Qu9Cw0YLRgzog0LLQviDQstGB0Y4g0YjQuNGA0LjQvdGDINGE0L7RgNC80YssINC60YDRg9C/0L3QtdC1ICovXG4uZm9ybS1jYWxsYmFja19faXRlbS5mb3JtLXRpY2tldC1wYXktbm90ZSB7XG4gIGdyaWQtY29sdW1uOiAxIC8gLTE7XG59XG5cbi5mb3JtLXRpY2tldC1wYXktbm90ZSAuZm9ybS1jYWxsYmFja19fcnVsZXMge1xuICBmb250LXNpemU6IDAuOTNlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLyog0JrQvtC70LjRh9C10YHRgtCy0L4g0LzQtdGB0YI6INGB0YLQtdC/0L/QtdGAIOKIki8rICovXG5cbi5mb3JtLXRpY2tldF9fcXR5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDFyZW07XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjZyZW07XG4gIGJhY2tncm91bmQ6IHJnYigyNTUgMjU1IDI1NSAvIDYlKTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiKDI1NSAyNTUgMjU1IC8gMTYlKTtcbiAgYm9yZGVyLXJhZGl1czogMXJlbTtcbn1cblxuLmZvcm0tdGlja2V0X19xdHktYnRuIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMy40cmVtO1xuICBoZWlnaHQ6IDMuNHJlbTtcbiAgZm9udC1zaXplOiAxLjlyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2IoMjU1IDI1NSAyNTUgLyAyNSUpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi0xKTtcbn1cblxuQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkge1xuICAuZm9ybS10aWNrZXRfX3F0eS1idG46aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTEpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci0yKTtcbiAgfVxufVxuXG4uZm9ybS10aWNrZXRfX3F0eS1idG46ZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjM1O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmV2ZW50LWJ1eSAuZm9ybS1jYWxsYmFjayAuZm9ybS10aWNrZXRfX3F0eS1pbnB1dCB7XG4gIHdpZHRoOiA2cmVtO1xuICBwYWRkaW5nOiAwLjRyZW0gMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xufVxuXG4uZm9ybS10aWNrZXRfX3F0eS1pbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcbi5mb3JtLXRpY2tldF9fcXR5LWlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xufVxuXG4jcGFnZS1jb250ZW50OmhhcyguZXZlbnQtZGV0YWlsKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTIpO1xufVxuXG4vKiAtLS0tLS0tLS0tIE1vYmlsZSBzdGlja3kgYmFyIC0tLS0tLS0tLS0gKi9cblxuLmV2ZW50LXN0aWNreWJhciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogdmFyKC0tei1pbmRleC0zKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDEuNnJlbTtcbiAgcGFkZGluZzogMS4ycmVtIDEuNnJlbSBjYWxjKDEuMnJlbSArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLTcpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiKDI1NSAyNTUgMjU1IC8gMTQlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLTEpO1xuXG4gIEBtZWRpYSAoLS1tZCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmV2ZW50LXN0aWNreWJhci5pcy1oaWRkZW4ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTIwJSk7XG59XG5cbi5ldmVudC1zdGlja3liYXJfX3ByaWNlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbn1cblxuLmV2ZW50LXN0aWNreWJhcl9fbGFiZWwge1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLTYpO1xufVxuXG4uZXZlbnQtc3RpY2t5YmFyX192YWx1ZSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMS45cmVtO1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICBjb2xvcjogdmFyKC0tY29sb3ItMSk7XG59XG5cbi5ldmVudC1zdGlja3liYXJfX2N0YSB7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuY2FyZC1ldmVudCxcbiAgLmNhcmQtZXZlbnRfX2ltZyxcbiAgLmV2ZW50LWdhbGxlcnlfX2ZpZ3VyZSBpbWcsXG4gIC5ldmVudC1zdGlja3liYXIge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbn1cbiJdfQ== */