@charset "UTF-8";
@font-face {
  font-family: "Avenir Next Cyr";
  src: url("../fonts/AvenirNextCyr-Medium.eot");
  src: local("Avenir Next Cyr Medium"), local("AvenirNextCyr-Medium"), url("../fonts/AvenirNextCyr-Medium.eot?#iefix") format("embedded-opentype"), url("../fonts/AvenirNextCyr-Medium.woff") format("woff"), url("../fonts/AvenirNextCyr-Medium.ttf") format("truetype");
  font-weight: 500;
  font-style: normal;
}
@font-face {
  font-family: "Avenir Next Cyr";
  src: url("../fonts/AvenirNextCyr-Regular.eot");
  src: local("Avenir Next Cyr Regular"), local("AvenirNextCyr-Regular"), url("../fonts/AvenirNextCyr-Regular.eot?#iefix") format("embedded-opentype"), url("../fonts/AvenirNextCyr-Regular.woff") format("woff"), url("../fonts/AvenirNextCyr-Regular.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}
* {
  margin: 0;
  padding: 0;
  outline: none;
}

html, body, div, span, h1, h2, h3, h4, h5, h6, p, em, img, strong, sub, sup, b, u, i, dl, dt, dd, ol, ul, li, fieldset, form, label, table, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  font-size: 100%;
}

header, nav, section, article, aside, footer {
  display: block;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: normal;
}

html {
  height: 100%;
}

body {
  position: relative;
  height: 100%;
  font-family: "Avenir Next Cyr", sans-serif;
  color: #1F1E1E;
  font-weight: normal;
  font-style: normal;
  background: #FFFFFF;
}

body *,
body *:before,
body *:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

img {
  border: none;
  max-width: 100%;
  vertical-align: bottom;
}

ul {
  list-style: none;
}

a {
  color: inherit;
  text-decoration: none;
  margin: 0;
  padding: 0;
}

.clear {
  clear: both;
  height: 0;
  overflow: hidden;
  font-size: 0;
}

.clearfix:after {
  content: "";
  display: table;
  clear: both;
}

.container {
  width: 100%;
  max-width: 1440px;
  padding: 0 80px;
  margin-left: auto;
  margin-right: auto;
  position: relative;
}
@media screen and (max-width: 1439.98px) {
  .container {
    max-width: 1200px;
  }
}
@media screen and (max-width: 1219.98px) {
  .container {
    max-width: 960px;
  }
}
@media screen and (max-width: 1023.98px) {
  .container {
    max-width: 710px;
    padding: 0;
  }
}
@media screen and (max-width: 767.98px) {
  .container {
    max-width: 100%;
    padding: 0 15px;
  }
}
.wrapper {
  min-height: 100%;
  width: 100%;
  position: relative;
  z-index: 0;
  display: flex;
  flex-direction: column;
}

.content__wrapper {
  flex: 1 0 auto;
}

.pd__header {
  padding-top: 100px;
}

@media (max-width: 1699.98px) {
  .hide-desktop-lg {
    display: none !important;
  }
}

@media (max-width: 1439.98px) {
  .hide-desktop-md {
    display: none !important;
  }
}

@media (max-width: 1219.98px) {
  .hide-desktop {
    display: none !important;
  }
}

@media (max-width: 1023.98px) {
  .hide-tablet {
    display: none !important;
  }
}

@media (max-width: 767.98px) {
  .hide-tablet-sm {
    display: none !important;
  }
}

@media (max-width: 609.98px) {
  .hide-mobile-lg {
    display: none !important;
  }
}

@media (min-width: 1220px) {
  .show-desktop {
    display: none !important;
  }
}

@media (min-width: 1024px) {
  .show-tablet {
    display: none !important;
  }
}

@media (min-width: 768px) {
  .show-tablet-sm {
    display: none !important;
  }
}

@media (min-width: 610px) {
  .show-mobile-lg {
    display: none !important;
  }
}

.noscroll {
  overflow: hidden;
}

.nowrap {
  white-space: nowrap;
}

.jGrowl {
  display: none !important;
}

.content__text {
  font-size: 18px;
  line-height: 1.5555555556;
}
.content__text > * {
  margin-bottom: 35px;
}
.content__text a {
  text-decoration: underline;
}
.content__text a:hover {
  text-decoration: none;
}
.content__text h1, .content__text h2, .content__text h3, .content__text h4, .content__text h5 {
  color: #1F1E1E;
  line-height: 1.1;
  font-weight: 700;
}
.content__text h1 {
  font-size: 36px;
  margin: 45px 0;
}
.content__text h2 {
  font-size: 32px;
  margin: 45px 0;
}
.content__text h3 {
  font-size: 24px;
  margin: 30px 0;
}
.content__text h4 {
  font-size: 20px;
  margin: 30px 0;
}
.content__text h5 {
  font-size: 18px;
  margin: 30px 0;
}
.content__text ul,
.content__text ol {
  padding-left: 26px;
}
.content__text ol {
  list-style-type: none;
  counter-reset: num;
}
.content__text li {
  position: relative;
}
.content__text ul li:before {
  position: absolute;
  top: 0px;
  right: 100%;
  margin-right: 11px;
  color: #1F1E1E;
  font-size: 16px;
  content: "•";
}
.content__text ol li:before {
  content: counter(num) ".";
  counter-increment: num;
  display: inline-block;
  position: absolute;
  top: 0px;
  right: 100%;
  margin-right: 8px;
  text-align: right;
}
.content__text img {
  border-radius: 20px;
}
@media (max-width: 767.98px) {
  .content__text {
    font-size: 16px;
  }
  .content__text > * {
    margin-bottom: 40px;
  }
  .content__text h1 {
    font-size: 28px;
    margin: 40px 0;
  }
  .content__text h2 {
    font-size: 24px;
    margin: 40px 0;
  }
  .content__text h3 {
    font-size: 24px;
    margin: 25px 0;
  }
  .content__text h4 {
    font-size: 18px;
    margin: 25px 0;
  }
  .content__text h5 {
    font-size: 16px;
    margin: 25px 0;
  }
}

.section__head {
  margin-bottom: 68px;
}
.section__head.hcols {
  display: flex;
  justify-content: space-between;
  gap: 40px;
}
.section__title {
  font-size: 50px;
}
.section__intro {
  font-size: 26px;
  margin-top: 10px;
}
.text--center .section__intro {
  margin-left: auto;
  margin-right: auto;
}
.section__buttons {
  margin-top: 68px;
  text-align: center;
}
.section__mg {
  margin: 80px 0;
}
.section__first {
  margin-top: 60px;
}
.section__tab {
  display: none;
}
.section__tab.show {
  display: block;
}
@media (max-width: 1023.98px) {
  .section__head.hcols {
    flex-direction: column;
    gap: 20px;
  }
  .section__title {
    font-size: 36px;
  }
  .section__intro {
    font-size: 22px;
  }
  .section__first {
    margin-top: 0px !important;
  }
}
@media (max-width: 767.98px) {
  .section__title {
    font-size: 22px;
  }
  .section__intro {
    font-size: 16px;
  }
}
.text--center {
  text-align: center;
}

.text--white {
  color: white;
}

.icon {
  stroke: currentColor;
  fill: none;
  color: inherit;
  font-size: inherit;
  transition: all 0.3s ease-in-out;
  flex: 0 0 auto;
}
.icon--fill {
  fill: currentColor;
  stroke: initial;
}
.icon path {
  stroke: currentColor;
  color: inherit;
  font-size: inherit;
  transition: all 0.3s ease-in-out;
}

.link {
  font-size: 20px;
  line-height: 1.35;
  font-weight: 700;
  transition: all 0.3s ease-in-out;
  display: inline-flex;
  align-items: center;
}
.link .icon {
  width: 20px;
  height: 20px;
  margin-left: 8px;
}
.link__more .close_t {
  display: none;
}
.link__more.opened .open_t {
  display: none;
}
.link__more.opened .close_t {
  display: block;
}
@media (max-width: 1219.98px) {
  .link {
    font-size: 16px;
  }
}

/**************************************************************
swiper
**************************************************************/
.swiper-slide {
  height: auto;
}

.swiper-pagination {
  display: flex;
}
.swiper-pagination-bullet {
  margin: 0 6px !important;
  width: 8px;
  height: 8px;
  border: none;
  background: rgba(193, 193, 193, 0.5);
  transition: all 0.3s ease-in-out;
  opacity: 1;
}
.swiper-pagination-bullet-active {
  background: #C1C1C1;
}
.swiper-pagination-clickable .swiper-pagination-bullet {
  cursor: pointer;
}
@media (max-width: 1023.98px) {
  .swiper-pagination {
    width: 6px;
    height: 6px;
  }
}

.swiper-button {
  width: 70px;
  height: 70px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 100%;
  border: 1px solid #C1C1C1;
  background: none;
  margin: 0;
  position: static;
  color: black;
}
.swiper-button:after {
  display: none;
}
.swiper-button .icon, .swiper-button img {
  transition: all 0.3s ease-in-out;
  width: 50%;
}
.swiper-button-next:hover img {
  transform: translateX(100%);
}
.swiper-button-prev:hover img {
  transform: translateX(-100%);
}
@media (max-width: 1219.98px) {
  .swiper-button {
    width: 50px;
    height: 50px;
  }
}

.swiper-nav {
  position: relative;
  display: flex;
  align-items: center;
  gap: 20px;
}
.swiper-nav .swiper-button {
  position: static;
}

.swiper-scrollbar {
  background: none;
}

/**************************************************************
forms
**************************************************************/
.input::-webkit-input-placeholder {
  color: rgb(193, 193, 193);
  opacity: 1;
}

.input::-o-input-placeholder {
  color: rgb(193, 193, 193);
  opacity: 1;
}

.input::-moz-input-placeholder {
  color: rgb(193, 193, 193);
  opacity: 1;
}

.input:-moz-input-placeholder {
  color: rgb(193, 193, 193);
  opacity: 1;
}

.input::-ms-input-placeholder {
  color: rgb(193, 193, 193);
  opacity: 1;
}

.input input-placeholder {
  color: rgb(193, 193, 193);
  opacity: 1;
}

.input::placeholder {
  color: rgb(193, 193, 193);
  opacity: 1;
}

.input:placeholder-shown {
  color: rgb(193, 193, 193);
  opacity: 1;
}

.input:focus::-webkit-input-placeholder {
  color: transparent;
  opacity: 0;
}

.input:focus::-o-input-placeholder {
  color: transparent;
  opacity: 0;
}

.input:focus::-moz-input-placeholder {
  color: transparent;
  opacity: 0;
}

.input:focus:-moz-input-placeholder {
  color: transparent;
  opacity: 0;
}

.input:focus::-ms-input-placeholder {
  color: transparent;
  opacity: 0;
}

.input:focus:input-placeholder {
  color: transparent;
  opacity: 0;
}

input[placeholder] {
  text-overflow: ellipsis;
}

input::-moz-placeholder {
  text-overflow: ellipsis;
}

input:-moz-placeholder {
  text-overflow: ellipsis;
}

input:-ms-input-placeholder {
  text-overflow: ellipsis;
}

input, button {
  -webkit-appearance: none;
}

.form__input {
  margin-bottom: 30px;
}
.input {
  width: 100%;
  height: 40px;
  padding: 0 14px;
  font-family: "Avenir Next Cyr", sans-serif;
  font-size: 14px;
  letter-spacing: 0.03em;
  color: #1F1E1E;
  background: #fff;
  border: 1px solid #C1C1C1;
  border-radius: 10px;
  outline: none;
}
.input--line {
  border: none;
  border-bottom: 1px solid #C1C1C1;
  border-radius: 0;
  height: 30px;
  padding: 0 0 10px;
}
.input.error {
  border-color: #b40202 !important;
  color: #b40202;
}
.input.error::-webkit-input-placeholder {
  color: #b40202;
  opacity: 0.6;
}
.input.error::-o-input-placeholder {
  color: #b40202;
  opacity: 0.6;
}
.input.error::-moz-input-placeholder {
  color: #b40202;
  opacity: 0.6;
}
.input.error:-moz-input-placeholder {
  color: #b40202;
  opacity: 0.6;
}
.input.error::-ms-input-placeholder {
  color: #b40202;
  opacity: 0.6;
}
.input.error input-placeholder {
  color: #b40202;
  opacity: 0.6;
}
.input.error::placeholder {
  color: #b40202;
  opacity: 0.6;
}
.input.error:placeholder-shown {
  color: #b40202;
  opacity: 0.6;
}

textarea.input {
  line-height: normal;
  padding: 15px 10px;
  border: 1px solid #C1C1C1;
  border-radius: 10px;
  resize: none;
  height: 120px;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  background: none;
  border-radius: 10px;
  border: 1px solid #C1C1C1;
  padding: 0 30px;
  min-width: 220px;
  font-family: "Avenir Next Cyr", sans-serif;
  letter-spacing: 0.03em;
  font-size: 14px;
  color: #C1C1C1;
  text-transform: uppercase;
  transition: all 0.3s ease-in-out;
  cursor: pointer;
  outline: none;
  position: relative;
}
.btn--wall {
  width: 100%;
}
.btn:hover {
  background: #1F1E1E;
  border-color: #1F1E1E;
  color: #fff;
}
.btn--black {
  background: #1F1E1E;
  color: #fff;
}
.btn--black:hover {
  background: #fff;
  color: #1F1E1E;
}
/**************************************************************
popup
**************************************************************/
.popup {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  display: none;
  z-index: 9999;
}
.popup__content {
  width: 100%;
  min-height: 100%;
  overflow: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 15px 15px;
  position: relative;
  z-index: 1;
}
.popup__bg {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(45px);
}
.popup__container {
  position: relative;
  width: 100%;
  max-width: 1030px;
  padding: 100px 30px 100px;
  background: #FFFFFF;
  border: 1px solid #C1C1C1;
  border-radius: 10px;
  overflow: hidden;
  text-align: center;
}
.popup__close {
  position: absolute;
  right: 40px;
  top: 40px;
  width: 32px;
  height: 32px;
  cursor: pointer;
  z-index: 99;
  color: #C1C1C1;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease-in-out;
}
.popup__close:hover {
  transform: scale(1.15);
  color: #1F1E1E;
}
.popup__close .icon {
  width: 100%;
  height: 100%;
}
.popup__body {
  width: 100%;
  max-width: 540px;
  margin: 0 auto;
}
.popup__head {
  margin-bottom: 50px;
}
.popup__title {
  font-size: 20px;
  letter-spacing: 0.03em;
  line-height: 1.3;
  font-weight: 800;
}
.popup__intro {
  margin-top: 15px;
  font-size: 16px;
  letter-spacing: 0.03em;
}
.popup__form {
  max-width: 466px;
  margin: 0 auto;
}
.popup__iconthank {
  margin-bottom: 50px;
}
.popup-thank .popup__title {
  margin-bottom: 0;
}
@media (max-width: 1219.98px) {
  .popup__body {
    max-width: 600px;
    margin: 0 auto;
  }
  .popup__head {
    margin-bottom: 40px;
  }
  .popup__title {
    font-size: 30px;
  }
  .popup__intro {
    margin-top: 10px;
    font-size: 16px;
  }
}
@media (max-width: 767.98px) {
  .popup__content {
    align-items: flex-start;
    padding-top: 34px;
  }
  .popup__container {
    padding: 100px 20px 50px;
  }
  .popup__body {
    max-width: 500px;
  }
  .popup__close {
    right: 50%;
    margin-right: -10px;
    width: 20px;
    height: 20px;
  }
  .popup__title {
    font-size: 14px;
  }
  .popup__intro br {
    display: none;
  }
}
/**************************************************************
header
**************************************************************/
.header {
  position: sticky;
  top: 0;
  z-index: 999;
  padding: 10px 0;
}
.header .container {
  position: static;
}
.header__nav {
  transform: rotate(90deg);
  transform-origin: left;
  position: absolute;
  left: 100%;
  top: 50px;
  margin-left: -35px;
}
.header__nav ul {
  display: flex;
  align-items: center;
  gap: 55px;
}
.header__nav li:first-child {
  margin-right: 40px;
}
.header__nav li a {
  font-size: 12px;
  color: #1F1E1E;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: all 0.3s ease-in-out;
}
.header__nav li.current a, .header__nav li.active a, .header__nav li a:hover {
  color: #C1C1C1;
}
.header__lang {
  position: absolute;
  top: 100%;
  left: 80px;
  margin-top: 15px;
  display: none;
}
.header__lang ul {
  display: inline-flex;
  gap: 6px;
  font-size: 12px;
  border: 1px solid #C1C1C1;
  border-radius: 4px;
}
.header__lang li {
  position: relative;
}
.header__lang li:not(:last-child):after {
  width: 1px;
  height: calc(100% - 8px);
  background: #C1C1C1;
  position: absolute;
  right: -3px;
  top: 50%;
  transform: translateY(-50%);
  content: "";
}
.header__lang li a {
  font-size: 10px;
  color: #C1C1C1;
  font-weight: 500;
  transition: all 0.3s ease-in-out;
  display: flex;
  padding: 5px 6px;
  text-decoration: none;
  opacity: 0.5;
}
.header__lang li a.active {
  opacity: 1;
  pointer-events: none;
}
.header__lang li a:hover {
  opacity: 1;
}
@media (min-width: 1024px) and (max-height: 700px) {
  .header__nav {
    top: 30px;
  }
  .header__nav ul {
    gap: 40px;
  }
  .header__nav li:first-child {
    margin-right: 20px;
  }
}
@media (max-width: 1023.98px) {
  .header {
    padding: 20px 0;
    position: relative;
  }
  .header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
  }
  .header__nav {
    position: relative;
    top: 0;
    left: 0;
    margin: 0;
    transform: initial;
  }
  .header__nav li:first-child {
    margin-right: auto;
  }
  .header__lang {
    position: static;
    transform: initial;
    order: 2;
    margin: 0;
  }
}
@media (max-width: 609.98px) {
  .header__nav {
    flex: 1 0 0;
  }
  .header__nav ul {
    gap: 10px;
    justify-content: space-between;
  }
  .header__nav li:first-child {
    margin: 0;
  }
  .header__nav li a {
    font-size: 10px;
  }
}

/**************************************************************
footer
**************************************************************/
.footer {
  position: relative;
  padding-bottom: 50px;
}
.about .footer {
  display: none;
}
.footer__img {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  max-width: 225px;
  margin-top: 25px;
}
.footer__top {
  padding: 60px 0;
  border-top: 1px solid rgba(193, 193, 193, 0.5);
  display: flex;
  justify-content: space-between;
  gap: 30px;
}
.footer__t {
  max-width: 400px;
  font-size: 14px;
  color: #1F1E1E;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.footer__contacts {
  display: flex;
  align-items: center;
  gap: 90px;
}
.footer__contacts-val {
  font-size: 16px;
  color: #1F1E1E;
  letter-spacing: 0.05em;
}
.footer__contacts-val a {
  color: inherit;
  text-decoration: underline;
}
.footer__contacts-val a:hover {
  text-decoration: none;
}
.footer__policy {
  font-size: 14px;
  letter-spacing: 0.03em;
  text-decoration: underline;
}
.footer__policy:hover {
  text-decoration: none;
}
@media (max-width: 1219.98px) {
  .about .footer {
    display: block;
  }
  .footer__top {
    flex-direction: column;
    align-items: flex-start;
  }
  .footer__img {
    left: auto;
    right: 60px;
    transform: translateY(-50%);
  }
}
@media (max-width: 1023.98px) {
  .footer__t {
    font-size: 18px;
  }
  .footer__img {
    right: 0;
  }
}
@media (max-width: 609.98px) {
  .footer__top {
    padding-top: 24px;
  }
  .footer__t {
    font-size: 14px;
  }
  .footer__contacts {
    gap: 55px;
  }
  .footer__contacts-val {
    font-size: 14px;
  }
  .footer__policy {
    font-size: 10px;
  }
}

/**************************************************************

**************************************************************/
.portfolio__items {
  position: relative;
  margin: 0 -60px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 100px 30px;
}
.portfolio__item {
  width: 50%;
  width: 100%;
  transform: translateY(-50px);
  padding: 0 60px;
  justify-content: flex-end;
}
.portfolio__item[style*="left: 0px"], .portfolio__item:nth-child(2n-1) {
  transform: initial;
}
.portfolio__item-wrap {
  position: relative;
  overflow: hidden;
  border-radius: 2px;
}
.portfolio__item-photo {
  position: relative;
  padding-bottom: 120%;
}
.portfolio__item-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
}
.portfolio__item-info {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  z-index: 2;
  background: #FFF;
  border: 1px solid #E1DEDE;
  border-radius: 18px 18px 0 0;
  padding: 24px 30px;
  transition: all 0.3s ease-in-out;
  transform: translateY(100%);
  font-size: 12px;
  letter-spacing: 0.05em;
  line-height: 1.5;
}
@media (any-hover: hover) {
  .portfolio__item-wrap:hover .portfolio__item-info {
    transform: translateY(0);
  }
}
.portfolio__item-open {
  display: none;
}
@media (max-width: 1219.98px) {
  .portfolio__items {
    margin: 0 -20px;
    grid-gap: 80px 0;
  }
  .portfolio__item {
    padding: 0 20px;
  }
}
@media (max-width: 1023.98px) {
  .portfolio__items {
    grid-gap: 40px 0;
  }
  .portfolio__item {
    margin-top: 0;
    transform: initial !important;
  }
  .portfolio__item-wrap {
    border-bottom: 1px solid #E1DEDE;
  }
  .portfolio__item-info {
    transform: translateY(calc(100% - 30px));
    border-bottom: none;
  }
  .portfolio__item.opened .portfolio__item-info {
    transform: translateY(0);
  }
  .portfolio__item-open {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 30px;
    z-index: 2;
    position: absolute;
    left: 0;
    top: 0;
    background: none;
    border: none;
    outline: none;
  }
  .portfolio__item-open::before {
    border-bottom: 8px solid #E1DEDE;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    content: "";
    transition: all 0.3s ease-in-out;
  }
  .portfolio__item.opened .portfolio__item-open::before {
    transform: scale(1, -1);
  }
}
@media (max-width: 609.98px) {
  .portfolio__items {
    margin: 0;
    grid-gap: 50px;
    grid-template-columns: 1fr;
  }
  .portfolio__item {
    padding: 0;
    width: 100%;
  }
  .portfolio__item:last-child {
    margin-bottom: 0;
  }
  .portfolio__item-info {
    font-size: 10px;
    padding: 30px 22px 20px;
  }
}

/**************************************************************

**************************************************************/
.works__item {
  display: flex;
  align-items: center;
  gap: 110px;
}
.works__item + .works__item {
  margin-top: 140px;
}
.works__item-photos {
  width: 42%;
  flex: 0 0 auto;
}
.works__item-slider {
  position: relative;
}
.works__item-slider .swiper-nav {
  position: absolute;
  left: 100%;
  bottom: 38px;
  margin-left: 30px;
}
.works__item-slider .swiper-pagination {
  position: static;
  justify-content: center;
  margin-top: 30px;
}
.works__item-photo {
  padding-bottom: 132%;
  position: relative;
}
.works__item-photo img {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  max-height: 100%;
  border-radius: 2px;
}
.works__item-info {
  padding-bottom: 90px;
}
.works__item-desc {
  font-size: 14px;
  line-height: 1.5;
  text-transform: uppercase;
  max-width: 500px;
}
.works__item-desc > * {
  margin-bottom: 20px;
}
.works__item-desc > *:last-child {
  margin-bottom: 0;
}
@media (max-width: 1219.98px) {
  .works__item {
    gap: 30px;
  }
  .works__item + .works__item {
    margin-top: 80px;
  }
  .works__item-info {
    padding-bottom: 60px;
  }
}
@media (max-width: 1023.98px) {
  .works__item-slider .swiper-nav {
    display: none;
  }
  .works__item-slider .swiper-pagination {
    margin-top: 16px;
  }
  .works__item-info {
    padding-bottom: 20px;
  }
  .works__item-desc {
    font-size: 12px;
  }
}
@media (max-width: 767.98px) {
  .works__item {
    flex-direction: column;
    align-items: flex-start;
  }
  .works__item-photos {
    width: 100%;
    max-width: 500px;
  }
  .works__item-photo {
    padding: 0;
  }
  .works__item-photo img {
    width: 100%;
    position: static;
    transform: initial;
  }
  .works__item-info {
    padding: 0;
  }
}

/**************************************************************

**************************************************************/
.about__cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 30px;
  margin-top: -40px;
}
.about__info {
  padding-top: 80px;
  padding-right: 120px;
}
.about__desc {
  font-size: 14px;
  line-height: 1.5;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.about__desc > * {
  margin-bottom: 20px;
}
.about__desc > *:last-child {
  margin-bottom: 0;
}
.about__props {
  margin-top: 60px;
  display: flex;
  justify-content: space-between;
  gap: 30px;
}
.about__props-col {
  max-width: 45%;
}
.about__prop {
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 1.5;
  text-transform: uppercase;
  font-weight: 500;
}
.about__prop > * + * {
  margin-top: 20px;
}
.about__prop li {
  font-size: 10px;
  font-weight: normal;
}
.about__prop li + li {
  margin-top: 15px;
}
.about__footer {
  margin-top: 100px;
}
.about__footer-t {
  max-width: 400px;
  font-size: 14px;
  color: #1F1E1E;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin-bottom: 30px;
}
.about__contacts {
  display: flex;
  align-items: center;
  gap: 50px;
  margin-bottom: 60px;
}
.about__contacts-val {
  font-size: 14px;
  color: #1F1E1E;
  letter-spacing: 0.05em;
}
.about__contacts-val a {
  color: inherit;
  text-decoration: underline;
}
.about__contacts-val a:hover {
  text-decoration: none;
}
.about__policy {
  font-size: 10px;
  letter-spacing: 0.03em;
  text-decoration: underline;
}
.about__policy:hover {
  text-decoration: none;
}
.about__photo img {
  border-radius: 2px;
}
@media (max-width: 1219.98px) {
  .about__info {
    padding-top: 40px;
    padding-right: 0;
  }
  .about__footer {
    display: none;
  }
}
@media (max-width: 1023.98px) {
  .about__cols {
    margin: 0;
    display: flex;
    flex-direction: column-reverse;
  }
  .about__photo {
    max-width: 400px;
  }
  .about__props {
    max-width: 500px;
  }
}
@media (max-width: 609.98px) {
  .about__props {
    flex-direction: column;
    margin-top: 30px;
    max-width: 240px;
  }
  .about__props-col {
    width: 100%;
    max-width: 100%;
  }
}

/**************************************************************
.error404
**************************************************************/
.error404 {
  display: flex;
  height: 100%;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.error404__numb {
  font-size: 96px;
  font-weight: 500;
  line-height: 1;
  text-transform: uppercase;
}
.error404__title {
  font-size: 36px;
  text-transform: uppercase;
}
.error404__buttons {
  padding-top: 60px;
}
@media (max-width: 1023.98px) {
  .error404__numb {
    font-size: 76px;
  }
  .error404__title {
    font-size: 32px;
  }
  .error404__buttons {
    padding-top: 30px;
  }
}
@media (max-width: 609.98px) {
  .error404__numb {
    font-size: 64px;
  }
  .error404__title {
    font-size: 26px;
  }
  .error404__buttons {
    padding-top: 30px;
  }
}

/**************************************************************

**************************************************************/
/**************************************************************

**************************************************************/
/**************************************************************

**************************************************************/
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9mb250cy5zY3NzIiwiX3Jlc2V0LnNjc3MiLCJpbmMvX3ZhcnMuc2NzcyIsIl9jb21tb24uc2NzcyIsImNvbW1vbi9fY29udGVudC5zY3NzIiwiY29tbW9uL19zZWN0aW9uLnNjc3MiLCJjb21tb24vX2VsZW1lbnRzLnNjc3MiLCJfbGlicy5zY3NzIiwiX2Zvcm1zLnNjc3MiLCJpbmMvX21peGlucy5zY3NzIiwiX3BvcHVwLnNjc3MiLCJfaGVhZGVyLnNjc3MiLCJfZm9vdGVyLnNjc3MiLCJzdHlsZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7RUFDQztFQUNBO0VBQ0E7RUFJQTtFQUNBOztBQUVEO0VBQ0M7RUFDQTtFQUNBO0VBSUE7RUFDQTs7QUNsQkQ7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQSxhQzFCRztFRDJCSCxPQ3ZCUztFRHdCVDtFQUNBO0VBQ0EsWUM1Qk07OztBRDhCVjtBQUFBO0FBQUE7RUFHSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNFOzs7QUFHRjtFQUNJO0VBQ0E7RUFDQTtFQUFXOzs7QUVwRGY7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQSxXRExjO0VDTWQ7RUFDQTtFQUFtQjtFQUNuQjs7QUFJQTtFQVRKO0lBVVE7OztBQUVKO0VBWko7SUFhUzs7O0FBRUw7RUFmSjtJQWdCUTtJQUNBOzs7QUFFSjtFQW5CSjtJQW9CUTtJQUNBOzs7QUFTUjtFQUNJO0VBQWtCO0VBQ2xCO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJLGFEL0JPOzs7QUNxQ1A7RUFESjtJQUVROzs7O0FBSUo7RUFESjtJQUVROzs7O0FBSUo7RUFESjtJQUVROzs7O0FBSUo7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QUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7QUFJSjtFQUtJO0lBQ0k7SUFDQTs7RUFHSjtJQUNJOztFQUdKO0lBQ0k7O0VBR0o7SUFDSTtJQUNBOzs7QUFJUjtFQUtJO0lBQ0k7SUFDQTs7RUFFSjtJQUNJOztFQUVKO0lBQ0k7O0VBRUo7SUFDSTtJQUNBO0lBQ0E7SUFBYTs7RUFFakI7SUFDSTs7RUFJQTtJQUNJOzs7QUNsS2hCO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQVk7RUFDWjs7QUFDQTtFQUNJO0VBQ0E7RUFDQTs7QUFHQTtFQUNJOztBQUVKO0VBQ0k7RUFDQSxPVDFCRjtFUzJCRTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJLE9UaENIOztBU29DVDtFQUNJO0VBQ0E7RUFBVztFQUNYO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQWE7RUFDYjtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7O0FBRUo7RUFFSTs7QUFTaEI7RUFHSTtJQUNJOztFQUNBO0lBQ0k7O0VBRUo7SUFDSTs7O0FBS1o7RUFwR0o7SUFxR1E7SUFDQTs7RUFDQTtJQUNJO0lBQ0E7SUFDQTtJQUNBOztFQUVKO0lBQ0k7SUFDQTtJQUFRO0lBQ1I7SUFDQTs7RUFDQTtJQUNJOztFQUdSO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7OztBQUdSO0VBQ0k7SUFDSTs7RUFDQTtJQUNJO0lBQ0E7O0VBRUo7SUFDSTs7RUFFSjtJQUNJOzs7O0FDMUloQjtBQUFBO0FBQUE7QUFHQTtFQUNJO0VBQ0E7O0FBQ0E7RUFDSTs7QUFF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RUFDQTtJQUNJO0lBQ0E7Ozs7QUFNaEI7QUFBQTtBQUFBO0FBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUVBOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOztBQUVKO0VBQ0k7O0FBR0o7RUFDSTtJQUNJOztFQUVKO0lBQ0k7O0VBRUo7SUFDSTs7O0FBSVI7RUFDSTtJQUNJOztFQUVKO0lBQ0k7O0VBRUo7SUFDSTs7OztBQU9aOztBQUFBO0FBUUE7O0FBQUE7QUFRQTs7QUFBQSIsImZpbGUiOiJzdHlsZXMubWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBmb250LWZhY2Uge1xyXG5cdGZvbnQtZmFtaWx5OiAnQXZlbmlyIE5leHQgQ3lyJztcclxuXHRzcmM6IHVybCgnLi4vZm9udHMvQXZlbmlyTmV4dEN5ci1NZWRpdW0uZW90Jyk7XHJcblx0c3JjOiBsb2NhbCgnQXZlbmlyIE5leHQgQ3lyIE1lZGl1bScpLCBsb2NhbCgnQXZlbmlyTmV4dEN5ci1NZWRpdW0nKSxcclxuXHRcdHVybCgnLi4vZm9udHMvQXZlbmlyTmV4dEN5ci1NZWRpdW0uZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcclxuXHRcdHVybCgnLi4vZm9udHMvQXZlbmlyTmV4dEN5ci1NZWRpdW0ud29mZicpIGZvcm1hdCgnd29mZicpLFxyXG5cdFx0dXJsKCcuLi9mb250cy9BdmVuaXJOZXh0Q3lyLU1lZGl1bS50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7XHJcblx0Zm9udC13ZWlnaHQ6IDUwMDtcclxuXHRmb250LXN0eWxlOiBub3JtYWw7XHJcbn1cclxuQGZvbnQtZmFjZSB7XHJcblx0Zm9udC1mYW1pbHk6ICdBdmVuaXIgTmV4dCBDeXInO1xyXG5cdHNyYzogdXJsKCcuLi9mb250cy9BdmVuaXJOZXh0Q3lyLVJlZ3VsYXIuZW90Jyk7XHJcblx0c3JjOiBsb2NhbCgnQXZlbmlyIE5leHQgQ3lyIFJlZ3VsYXInKSwgbG9jYWwoJ0F2ZW5pck5leHRDeXItUmVndWxhcicpLFxyXG5cdFx0dXJsKCcuLi9mb250cy9BdmVuaXJOZXh0Q3lyLVJlZ3VsYXIuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcclxuXHRcdHVybCgnLi4vZm9udHMvQXZlbmlyTmV4dEN5ci1SZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcclxuXHRcdHVybCgnLi4vZm9udHMvQXZlbmlyTmV4dEN5ci1SZWd1bGFyLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcclxuXHRmb250LXdlaWdodDogbm9ybWFsO1xyXG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcclxufSIsIioge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG5odG1sLCBib2R5LCBkaXYsIHNwYW4sIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGVtLCBpbWcsIHN0cm9uZywgc3ViLCBzdXAsIGIsIHUsIGksICBkbCwgZHQsIGRkLCBvbCwgdWwsIGxpLCBmaWVsZHNldCwgZm9ybSwgbGFiZWwsIHRhYmxlLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLCBhcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBmaWdjYXB0aW9uLCBmaWd1cmUsIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgc2VjdGlvbiwgc3VtbWFyeSwgdGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgb3V0bGluZTogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBmb250LXNpemU6IDEwMCU7XG59XG5oZWFkZXIsIG5hdiwgc2VjdGlvbiwgYXJ0aWNsZSwgYXNpZGUsIGZvb3RlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG5odG1sIHsgIFxuICAgIGhlaWdodDoxMDAlOyBcbn1cbmJvZHkgeyAgXG4gICAgcG9zaXRpb246cmVsYXRpdmU7IFxuICAgIGhlaWdodDoxMDAlOyBcbiAgICBmb250LWZhbWlseTogJGZvbnQ7IFxuICAgIGNvbG9yOiAkY29sb3ItYm9keTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBiYWNrZ3JvdW5kOiAkYmctYm9keTtcbn1cbmJvZHkgKixcbmJvZHkgKjpiZWZvcmUsXG5ib2R5ICo6YWZ0ZXIge1xuICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgXG59XG5cbmltZyB7IFxuICAgIGJvcmRlcjogbm9uZTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cblxudWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG5hIHsgXG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBcbiAgICBtYXJnaW46IDA7IHBhZGRpbmc6IDA7XG59XG4iLCIkZm9udDogJ0F2ZW5pciBOZXh0IEN5cicsIHNhbnMtc2VyaWY7XHJcblxyXG4kYmctYm9keTogI0ZGRkZGRjtcclxuXHJcbiRjb2xvci1ib2R5OiAjMUYxRTFFO1xyXG4kY29sb3ItdGl0bGU6ICMxRjFFMUU7XHJcbiRjb2xvci1ncmF5OiAjQzFDMUMxO1xyXG5cclxuXHJcbiR3aWR0aC1jb250YWluZXI6IDE0NDBweDtcclxuJHBkLWNvbnRhaW5lci1sZzogODBweDtcclxuJHBkLWNvbnRhaW5lcjogMTVweDtcclxuJHBkLWNvbnRhaW5lci1zbXg6IDE1cHg7XHJcblxyXG4kbWQtZGVza3RvcC1sZzogMTY5OS45OHB4O1xyXG4kbWQtZGVza3RvcC1tZDogMTQzOS45OHB4O1xyXG4kbWQtZGVza3RvcDogMTIxOS45OHB4O1xyXG4kbWQtdGFibGV0OiAxMDIzLjk4cHg7XHJcbiRtZC10YWJsZXQtc206IDc2Ny45OHB4O1xyXG4kbWQtbW9iaWxlLWxnOiA2MDkuOThweDtcclxuJG1kLW1vYmlsZTogNDc4Ljk4cHg7XHJcbiRtZC1tb2JpbGUtc206IDM5OS45OHB4O1xyXG4kbWQtbW9iaWxlLXNteDogMzYwcHg7XHJcblxyXG4kaGVhZGVyLWg6IDEwMHB4O1xyXG4kaGVhZGVyLWgtdDogODBweDtcclxuJGhlYWRlci1oLW06IDcwcHg7IiwiXG4uY2xlYXIgeyBcbiAgICBjbGVhcjogYm90aDsgXG4gICAgaGVpZ2h0OiAwOyBcbiAgICBvdmVyZmxvdzogaGlkZGVuOyBcbiAgICBmb250LXNpemU6IDA7XG59XG4uY2xlYXJmaXg6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7XG59XG4uY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6ICR3aWR0aC1jb250YWluZXI7IFxuICAgIHBhZGRpbmc6IDAgJHBkLWNvbnRhaW5lci1sZztcbiAgICBtYXJnaW4tbGVmdDogYXV0bzsgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbWQtZGVza3RvcC1sZykge1xuICAgICAgICAvLyBtYXgtd2lkdGg6IDEzNzBweDtcbiAgICB9XHRcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbWQtZGVza3RvcC1tZCkge1xuICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgICB9XHRcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbWQtZGVza3RvcCkge1xuICAgICAgICAgbWF4LXdpZHRoOiA5NjBweDtcbiAgICB9XHRcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbWQtdGFibGV0KSB7XG4gICAgICAgIG1heC13aWR0aDogNzEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVx0XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1kLXRhYmxldC1zbSkge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDAgJHBkLWNvbnRhaW5lcjtcbiAgICB9XHRcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbWQtbW9iaWxlLWxnKSB7XG4gICAgICAgIFxuICAgIH1cbn1cblxuXG5cbi53cmFwcGVyIHtcbiAgICBtaW4taGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgIFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgXG4gICAgei1pbmRleDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5jb250ZW50X193cmFwcGVyIHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbn1cblxuLnBkX19oZWFkZXIge1xuICAgIHBhZGRpbmctdG9wOiAkaGVhZGVyLWg7XG59XG5cblxuXG4uaGlkZS1kZXNrdG9wLWxnIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1kLWRlc2t0b3AtbGcpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cbi5oaWRlLWRlc2t0b3AtbWQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWQtZGVza3RvcC1tZCkge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuLmhpZGUtZGVza3RvcCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZC1kZXNrdG9wKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG4uaGlkZS10YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWQtdGFibGV0KSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG4uaGlkZS10YWJsZXQtc20ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWQtdGFibGV0LXNtKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG4uaGlkZS1tb2JpbGUtbGcge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWQtbW9iaWxlLWxnKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG4uc2hvdy1kZXNrdG9wIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1kLWRlc2t0b3ArIDAuMDJweCkge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuLnNob3ctdGFibGV0IHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1kLXRhYmxldCsgMC4wMnB4KSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG4uc2hvdy10YWJsZXQtc20ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWQtdGFibGV0LXNtKyAwLjAycHgpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cbi5zaG93LW1vYmlsZS1sZyB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtZC1tb2JpbGUtbGcrIDAuMDJweCkge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4ubm9zY3JvbGwge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5ub3dyYXAge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5qR3Jvd2wge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuXG5AaW1wb3J0IFwiY29tbW9uL2NvbnRlbnRcIjtcbkBpbXBvcnQgXCJjb21tb24vc2VjdGlvblwiO1xuQGltcG9ydCBcImNvbW1vbi9lbGVtZW50c1wiOyIsIlxyXG4uY29udGVudF9fdGV4dCB7XHJcbiAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICBsaW5lLWhlaWdodDogbGgoMjgsIDE4KTtcclxuICAgID4gKiB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzVweDtcclxuICAgIH1cclxuICAgIGEge1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgaDEsIGgyLCBoMywgaDQsIGg1IHtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLWJvZHk7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcclxuICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgfVxyXG4gICAgaDEge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMzZweDtcclxuICAgICAgICBtYXJnaW46IDQ1cHggMDtcclxuICAgIH1cclxuICAgIGgyIHtcclxuICAgICAgICBmb250LXNpemU6IDMycHg7XHJcbiAgICAgICAgbWFyZ2luOiA0NXB4IDA7XHJcbiAgICB9XHJcbiAgICBoMyB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICAgIG1hcmdpbjogMzBweCAwO1xyXG4gICAgfVxyXG4gICAgaDQge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgICAgICBtYXJnaW46IDMwcHggMDtcclxuICAgIH1cclxuICAgIGg1IHtcclxuICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgICAgbWFyZ2luOiAzMHB4IDA7XHJcbiAgICB9XHJcbiAgICB1bCxcclxuICAgIG9sIHtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAyNnB4O1xyXG4gICAgfVxyXG4gICAgb2wge1xyXG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgXHJcbiAgICAgICAgY291bnRlci1yZXNldDogbnVtO1xyXG4gICAgfVxyXG4gICAgbGkge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIH1cclxuICAgIHVsIGxpOmJlZm9yZSB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAwcHg7XHJcbiAgICAgIHJpZ2h0OiAxMDAlO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDExcHg7IFxyXG4gICAgICBjb2xvcjogJGNvbG9yLWJvZHk7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgY29udGVudDogJ+KAoic7XHJcbiAgICB9XHJcbiAgICBvbCBsaTpiZWZvcmUge1xyXG4gICAgICBjb250ZW50OiBjb3VudGVyKG51bSkgJy4nOyBcclxuICAgICAgY291bnRlci1pbmNyZW1lbnQ6IG51bTtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1x0XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAwcHg7XHJcbiAgICAgIHJpZ2h0OiAxMDAlO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDhweDsgXHJcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgfVxyXG4gICAgaW1nIHtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWQtdGFibGV0LXNtKSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgID4gKiB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGgxIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAyOHB4O1xyXG4gICAgICAgICAgICBtYXJnaW46IDQwcHggMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaDIge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDI0cHg7XHJcbiAgICAgICAgICAgIG1hcmdpbjogNDBweCAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBoMyB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgICAgICAgICAgbWFyZ2luOiAyNXB4IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGg0IHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgICAgICBtYXJnaW46IDI1cHggMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaDUge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMjVweCAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIgXHJcbi5zZWN0aW9uIHtcclxuICAgICZfX2hlYWQge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDY4cHg7XHJcbiAgICAgICAgJi5oY29scyB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICAgICAgZ2FwOiA0MHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICZfX3RpdGxlIHtcclxuICAgICAgICBmb250LXNpemU6IDUwcHg7XHJcbiAgICAgICAgJi5mcy0tc20ge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmX19pbnRybyB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyNnB4O1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgICAgICAgLnRleHQtLWNlbnRlciAmIHtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmX19idXR0b25zIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiA2OHB4O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuICAgICZfX21nIHtcclxuICAgICAgICBtYXJnaW46IDgwcHggMDtcclxuICAgIH1cclxuICAgICZfX2ZpcnN0IHtcclxuICAgICAgICBtYXJnaW4tdG9wOiA2MHB4O1xyXG4gICAgfVxyXG4gICAgJl9fdGFiIHtcclxuICAgICAgICBkaXNwbGF5Om5vbmU7XHJcbiAgICAgICAgJi5zaG93IHtcclxuICAgICAgICAgICAgZGlzcGxheTpibG9jaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuXHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1kLXRhYmxldCkge1xyXG4gICAgICAgXHJcbiAgICAgICAgJl9faGVhZCB7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAmLmhjb2xzIHtcclxuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgICAgICAgICBnYXA6IDIwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJl9fdGl0bGUge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDM2cHg7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgICAgICAmX19pbnRybyB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJl9fYnV0dG9ucyB7XHJcbiAgICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICAgICZfX2ZpcnN0IHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZC10YWJsZXQtc20pIHtcclxuICAgICBcclxuICAgICAgICAmX19oZWFkIHtcclxuICAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgICAgJl9fdGl0bGUge1xyXG4gICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgICAgJl9faW50cm8ge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICZfX2J1dHRvbnMge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1kLW1vYmlsZSkge1xyXG4gICAgICAgICAgXHJcbiAgICB9XHJcbn1cclxuXHJcbi50aXRsZSB7XHJcbiAgICBcclxufVxyXG4udGV4dCB7XHJcbiAgIFxyXG59XHJcblxyXG4udGV4dC0tY2VudGVyIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG4udGV4dC0td2hpdGUge1xyXG4gICAgY29sb3I6ICNmZmZmO1xyXG59IiwiLmljb24ge1xuICAgIHN0cm9rZTogY3VycmVudENvbG9yO1xuICAgIGZpbGw6IG5vbmU7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICYtLWZpbGwge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHN0cm9rZTogaW5pdGlhbDtcbiAgICB9XG4gICAgcGF0aCB7XG4gICAgICAgIHN0cm9rZTogY3VycmVudENvbG9yO1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICB9XG59XG5cbi8vIC5zb2NpYWwge1xuLy8gICAgICZfX2l0ZW1zIHtcbi8vICAgICAgICAgZGlzcGxheTogZmxleDtcbi8vICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbi8vICAgICAgICAgZ2FwOiAxNnB4O1xuLy8gICAgIH1cbi8vICAgICBhIHtcbi8vICAgICAgICAgd2lkdGg6IDU1cHg7IGhlaWdodDogNTVweDtcbi8vICAgICAgICAgZGlzcGxheTogZmxleDtcbi8vICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbi8vICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4vLyAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNGMEZGRTk7XG4vLyAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuLy8gICAgICAgICBjb2xvcjogI0YwRkZFOTtcbi8vICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4vLyAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgXG4vLyAgICAgICAgIH1cbi8vICAgICB9XG4vLyAgICAgLmljb24ge1xuLy8gICAgICAgICB3aWR0aDogMTlweDsgaGVpZ2h0OiAxOXB4O1xuLy8gICAgIH1cbi8vIH0gICBcblxuXG5cblxuXG5cbi8vIC5yYXRpbmcge1xuLy8gXHRtYXJnaW46IDAgYXV0bztcbi8vIFx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG4vLyAgICAgZmxleC13cmFwOiB3cmFwO1xuLy8gICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbi8vICAgICBtYXJnaW46IDAgLTJweDtcbi8vICAgICBzcGFuIHtcbi8vICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuLy8gICAgICAgICB0b3A6IC0xcHg7XG4vLyAgICAgICAgIHdpZHRoOiAxOXB4OyBoZWlnaHQ6IDE4cHg7XG4vLyAgICAgICAgIG1hcmdpbjogMCAycHg7XG4vLyAgICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaWNvbnMvc3Rhci5zdmcpIG5vLXJlcGVhdDtcbi8vICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlciAhaW1wb3J0YW50O1xuLy8gICAgICAgICAmLmFjdGl2ZSB7XG4vLyAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb25zL3N0YXItYWN0aXZlLnN2Zykgbm8tcmVwZWF0O1xuLy8gICAgICAgICB9XG4vLyAgICAgfVxuLy8gfVxuXG5cblxuXG4ubGluayB7XG5cbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgbGluZS1oZWlnaHQ6IGxoKDI3LCAyMCk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIC5pY29uIHtcbiAgICAgICAgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICAgXG4gICAgfVxuICAgICZfX21vcmUge1xuICAgICAgICAuY2xvc2VfdCB7XG4gICAgICAgICAgICBkaXNwbGF5Om5vbmVcbiAgICAgICAgfVxuICAgICAgICAmLm9wZW5lZCAub3Blbl90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6bm9uZVxuICAgICAgICB9XG4gICAgICAgICYub3BlbmVkIC5jbG9zZV90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6YmxvY2tcbiAgICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1kLWRlc2t0b3ApIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4XG4gICAgfVxufVxuXG4vLyAuY29udGVudF9fdG9nZ2xlIHtcbi8vICAgICA+ICoge1xuLy8gICAgICAgICBkaXNwbGF5OiBub25lO1xuLy8gICAgIH1cbi8vICAgICAmID4gOm50aC1jaGlsZCgxKSxcbi8vICAgICAmID4gOm50aC1jaGlsZCgyKSB7XG4vLyAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8gICAgIH1cbi8vICAgICAmLm9wZW5lZCA+ICoge1xuLy8gICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuLy8gICAgIH1cbi8vICAgICAmLS1tb2JpbGUge1xuLy8gICAgICAgICA+ICoge1xuLy8gICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4vLyAgICAgICAgIH1cbi8vICAgICB9XG4vLyAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZC10YWJsZXQtc20pIHtcbi8vICAgICAgICAgPiAqIHtcbi8vICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbi8vICAgICAgICAgfVxuLy8gICAgICAgICAmID4gOm50aC1jaGlsZCgxKSB7XG4vLyAgICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuLy8gICAgICAgICB9XG4vLyAgICAgfVxuLy8gfVxuXG5cblxuQG1lZGlhIChtYXgtd2lkdGg6ICRtZC1kZXNrdG9wKSB7XG5cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAkbWQtdGFibGV0KSB7XG5cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAkbWQtdGFibGV0LXNtKSB7XG5cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAkbWQtbW9iaWxlLWxnKSB7XG5cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAkbWQtbW9iaWxlKSB7XG5cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAkbWQtbW9iaWxlLXNtKSB7XG5cbn0iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbnN3aXBlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4uc3dpcGVyIHtcblxufVxuLnN3aXBlci1zbGlkZSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgJi1idWxsZXQge1xuICAgIG1hcmdpbjogMCA2cHggIWltcG9ydGFudDtcbiAgICB3aWR0aDogOHB4OyBoZWlnaHQ6IDhweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxOTMsIDE5MywgMTkzLCAwLjUwKTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICBvcGFjaXR5OiAxO1xuICAgICYtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ncmF5O1xuICAgIH1cbiAgfVxuICAmLWNsaWNrYWJsZSAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZC10YWJsZXQpIHtcbiAgICB3aWR0aDogNnB4OyBoZWlnaHQ6IDZweDtcbiAgfVxufVxuLnN3aXBlci1idXR0b24ge1xuICAgIHdpZHRoOiA3MHB4OyBoZWlnaHQ6IDcwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWdyYXk7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgJjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5pY29uLCBpbWcge1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgICB3aWR0aDogNTAlO1xuICAgIH1cbiAgICAmLW5leHQ6aG92ZXIgaW1nIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICB9XG4gICAgJi1wcmV2OmhvdmVyIGltZyB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICAgIH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1kLWRlc2t0b3ApIHtcbiAgICAgIHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7XG4gICAgfVxufVxuLnN3aXBlci1uYXYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAyMHB4O1xuICAgIC5zd2lwZXItYnV0dG9uIHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgfVxufVxuXG4uc3dpcGVyLXNjcm9sbGJhciB7XG4gIGJhY2tncm91bmQ6IG5vbmUgO1xufVxuXG5cblxuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5mb3Jtc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AaW5jbHVkZSBpbnB1dC1wbGFjZWhvbGRlcignLmlucHV0JywgcmdiYSgxOTMsIDE5MywgMTkzLCAxKSwgMSk7XG5cbi5pbnB1dDpmb2N1czo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7Y29sb3I6IHRyYW5zcGFyZW50OyBvcGFjaXR5OiAwO31cbi5pbnB1dDpmb2N1czo6LW8taW5wdXQtcGxhY2Vob2xkZXIgeyAgY29sb3I6IHRyYW5zcGFyZW50OyBvcGFjaXR5OiAwO31cbi5pbnB1dDpmb2N1czo6LW1vei1pbnB1dC1wbGFjZWhvbGRlciB7ICBjb2xvcjogdHJhbnNwYXJlbnQ7IG9wYWNpdHk6IDA7fVxuLmlucHV0OmZvY3VzOi1tb3otaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjogdHJhbnNwYXJlbnQ7IG9wYWNpdHk6IDA7fVxuLmlucHV0OmZvY3VzOjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjogdHJhbnNwYXJlbnQ7IG9wYWNpdHk6IDA7fVxuLmlucHV0OmZvY3VzOmlucHV0LXBsYWNlaG9sZGVyIHtjb2xvcjogdHJhbnNwYXJlbnQ7IG9wYWNpdHk6IDA7fVxuXG5pbnB1dFtwbGFjZWhvbGRlcl0gICAgICAgICAge3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7fVxuaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIgICAgIHt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO30gXG5pbnB1dDotbW96LXBsYWNlaG9sZGVyICAgICAge3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7fSBcbmlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt9XG5cblxuXG5pbnB1dCwgYnV0dG9uIHsgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO31cblxuXG5cbi5mb3JtIHtcbiAgICAmX19pbnB1dCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgfVxuICAgICZfX3N1Ym1pdCB7XG4gICAgICAgIFxuICAgIH1cbn1cblxuLmlucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgcGFkZGluZzogMCAxNHB4O1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udDtcbiAgICBmb250LXNpemU6IDE0cHg7IFxuICAgIGxldHRlci1zcGFjaW5nOiAwLjAzZW07XG4gICAgY29sb3I6ICRjb2xvci1ib2R5O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWdyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgICYtLWxpbmUge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3ItZ3JheTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICBwYWRkaW5nOiAwIDAgMTBweDtcbiAgICB9XG4gICAgJi5lcnJvciB7XG4gICAgICAgIC8vIGJhY2tncm91bmQ6ICNmZmVkZWQgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjYjQwMjAyICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAjYjQwMjAyO1xuICAgIH1cbiAgICBAaW5jbHVkZSBpbnB1dC1wbGFjZWhvbGRlcignJi5lcnJvcicsICNiNDAyMDIpO1xufVxudGV4dGFyZWEuaW5wdXQge1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgcGFkZGluZzogMTVweCAxMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgcmVzaXplOiBub25lO1xuICAgIGhlaWdodDogMTIwcHg7XG59XG5cblxuLmJ0biB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAvLyBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjVweCk7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItZ3JheTtcbiAgICBwYWRkaW5nOiAwIDMwcHg7XG4gICAgbWluLXdpZHRoOiAyMjBweDtcbiAgICBmb250LWZhbWlseTogJGZvbnQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICRjb2xvci1ncmF5O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICYtLXdhbGwge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci10aXRsZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItdGl0bGU7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbiAgICAmLS1ibGFjayB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ib2R5O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvci10aXRsZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1kLW1vYmlsZS1zbSkge1xuICAgICAgICAvLyBtaW4td2lkdGg6IDI1MHB4O1xuICAgIH1cbn0iLCJAdXNlIFwic2FzczptYXRoXCI7XHJcblxyXG5AbWl4aW4gaW5wdXQtcGxhY2Vob2xkZXIoJGNsYXNzLCAkY29sb3IsICRvcGFjaXR5OjAuNikge1xyXG4gICAgI3skY2xhc3N9Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtjb2xvcjogJGNvbG9yO29wYWNpdHk6ICRvcGFjaXR5O31cclxuICAgICN7JGNsYXNzfTo6LW8taW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6ICRjb2xvcjtvcGFjaXR5OiAkb3BhY2l0eTt9XHJcbiAgICAjeyRjbGFzc306Oi1tb3otaW5wdXQtcGxhY2Vob2xkZXJ7IGNvbG9yOiAkY29sb3I7b3BhY2l0eTogJG9wYWNpdHk7fVxyXG4gICAgI3skY2xhc3N9Oi1tb3otaW5wdXQtcGxhY2Vob2xkZXJ7ICBjb2xvcjogJGNvbG9yO29wYWNpdHk6ICRvcGFjaXR5O31cclxuICAgICN7JGNsYXNzfTo6LW1zLWlucHV0LXBsYWNlaG9sZGVyeyAgY29sb3I6ICRjb2xvcjtvcGFjaXR5OiAkb3BhY2l0eTt9XHJcbiAgICAjeyRjbGFzc30gaW5wdXQtcGxhY2Vob2xkZXIgeyAgY29sb3I6ICRjb2xvcjtvcGFjaXR5OiAkb3BhY2l0eTt9XHJcbiAgICAjeyRjbGFzc306OnBsYWNlaG9sZGVyIHtjb2xvcjogJGNvbG9yO29wYWNpdHk6ICRvcGFjaXR5O31cclxuICAgICN7JGNsYXNzfTpwbGFjZWhvbGRlci1zaG93biB7Y29sb3I6ICRjb2xvcjtvcGFjaXR5OiAkb3BhY2l0eTt9XHJcbn1cclxuXHJcblxyXG5AbWl4aW4gYWJzLWFsbCB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiAwOyB0b3A6IDA7XHJcbiAgICB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlO1xyXG59XHJcbkBtaXhpbiBhYnMtY2VudGVyIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6IDUwJTsgdG9wOiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKVxyXG59XHJcblxyXG5AbWl4aW4gcGhvdG8tY292ZXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBsaCgkbGgsICRmcykge1xyXG4gICAgQHJldHVybiAje21hdGguZGl2KCRsaCwgJGZzKX07XHJcbn0iLCJcclxuXHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbnBvcHVwXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4ucG9wdXAge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgei1pbmRleDogOTk5OTtcclxuXHJcbiAgICAmX19jb250ZW50IHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBtaW4taGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICBwYWRkaW5nOiAxNXB4IDE1cHg7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHotaW5kZXg6IDE7XHJcbiAgICB9XHJcblxyXG4gICAgJl9fYmcge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB6LWluZGV4OiAtMTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUwKTtcclxuICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNDVweCk7XHJcbiAgICB9XHJcblxyXG4gICAgJl9fY29udGFpbmVyIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMDMwcHg7XHJcbiAgICAgICAgcGFkZGluZzogMTAwcHggMzBweCAxMDBweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ncmF5O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgLy8gZGlzcGxheTogZmxleDtcclxuICAgICAgICAvLyBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgICZfX2Nsb3NlIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgcmlnaHQ6IDQwcHg7XHJcbiAgICAgICAgdG9wOiA0MHB4O1xyXG4gICAgICAgIHdpZHRoOiAzMnB4O1xyXG4gICAgICAgIGhlaWdodDogMzJweDtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgei1pbmRleDogOTk7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci1ncmF5O1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xNSk7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItYm9keTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmX19ib2R5IHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBtYXgtd2lkdGg6IDU0MHB4O1xyXG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgICZfX2hlYWQge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgJl9fdGl0bGUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wM2VtO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcclxuICAgIH1cclxuICAgICZfX2ludHJvIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wM2VtO1xyXG4gICAgfVxyXG4gICAgJl9fZm9ybSB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiA0NjZweDtcclxuICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIH1cclxuXHJcbiAgICAmX19pY29udGhhbmsge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgJi10aGFuayAmX190aXRsZSB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIH1cclxuXHJcbiAgICBcclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWQtZGVza3RvcCkge1xyXG4gICAgICAgICZfX2NvbnRhaW5lciB7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJl9fYm9keSB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogNjAwcHg7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJl9faGVhZCB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmX190aXRsZSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMzBweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICZfX2ludHJvIHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1kLXRhYmxldC1zbSkge1xyXG4gICAgICAgIC8vICZfX2JnIHtcclxuICAgICAgICAvLyAgICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICAgICAgLy8gICAgIGJhY2tkcm9wLWZpbHRlcjogaW5pdGlhbDtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgJl9fY29udGVudCB7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMzRweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJl9fY29udGFpbmVyIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMTAwcHggMjBweCA1MHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAmX19ib2R5IHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiA1MDBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJl9fY2xvc2Uge1xyXG4gICAgICAgICAgICByaWdodDogNTAlO1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xyXG4gICAgICAgICAgICB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAmX190aXRsZSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICZfX2ludHJvIHtcclxuICAgICAgICAgICAgYnIge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1kLW1vYmlsZS1sZykge1xyXG4gICAgICAgIFxyXG4gICAgfVxyXG5cclxufVxyXG5cclxuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbmhlYWRlclxyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLmhlYWRlciB7XHJcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gICAgdG9wOiAwO1xyXG4gICAgei1pbmRleDogOTk5O1xyXG4gICAgcGFkZGluZzogMTBweCAwO1xyXG4gICAgLmNvbnRhaW5lciB7XHJcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcclxuICAgIH1cclxuICAgICZfX2lubmVyIHtcclxuICAgICAgICBcclxuICAgIH1cclxuICAgICZfX25hdiB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xyXG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGxlZnQ6IDEwMCU7IHRvcDogNTBweDtcclxuICAgICAgICBtYXJnaW4tbGVmdDogLTM1cHg7XHJcbiAgICAgICAgdWwge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICBnYXA6IDU1cHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxpIHtcclxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDQwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yLXRpdGxlO1xyXG4gICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTtcclxuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi5jdXJyZW50IGEsICYuYWN0aXZlIGEsIGE6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvci1ncmF5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJl9fbGFuZyB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogMTAwJTsgbGVmdDogODBweDsgXHJcbiAgICAgICAgbWFyZ2luLXRvcDogMTVweDtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIHVsIHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICAgICAgICAgIGdhcDogNnB4O1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNDMUMxQzE7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMXB4O1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA4cHgpO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI0MxQzFDMTtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIHJpZ2h0OiAtM3B4OyB0b3A6IDUwJTtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICNDMUMxQzE7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogNXB4IDZweDtcclxuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcclxuICAgICAgICAgICAgICAgICYuYWN0aXZlIHtcclxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgICAgICB9ICBcclxuICAgICAgICAgICAgICAgICY6bm90KC5hY3RpdmUpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtZC10YWJsZXQrMC4wMnB4KSBhbmQgKG1heC1oZWlnaHQ6IDcwMHB4KSB7XHJcbiAgICAgICAgJl9faW5uZXIge1xyXG4gICAgICAgIH1cclxuICAgICAgICAmX19uYXYge1xyXG4gICAgICAgICAgICB0b3A6IDMwcHg7XHJcbiAgICAgICAgICAgIHVsIHtcclxuICAgICAgICAgICAgICAgIGdhcDogNDBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsaTpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZC10YWJsZXQpIHtcclxuICAgICAgICBwYWRkaW5nOiAyMHB4IDA7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICZfX2lubmVyIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgICAgICBnYXA6IDI1cHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICZfX25hdiB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgdG9wOiAwOyBsZWZ0OiAwO1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogaW5pdGlhbDtcclxuICAgICAgICAgICAgbGk6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICZfX2xhbmcge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IGluaXRpYWw7XHJcbiAgICAgICAgICAgIG9yZGVyOiAyO1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1kLW1vYmlsZS1sZykge1xyXG4gICAgICAgICZfX25hdiB7XHJcbiAgICAgICAgICAgIGZsZXg6IDEgMCAwO1xyXG4gICAgICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgICAgICBnYXA6IDEwcHg7XHJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGk6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxpIGEge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICZfX2xhbmcge1xyXG4gICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgIC8vIGZvbnQtc2l6ZTogMTBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCJcclxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbmZvb3RlclxyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLmZvb3RlciB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogNTBweDtcclxuICAgIC5hYm91dCAmIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gICAgJl9faW1nIHtcclxuICAgICAgICBAaW5jbHVkZSBhYnMtY2VudGVyO1xyXG4gICAgICAgIG1heC13aWR0aDogMjI1cHg7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMjVweDtcclxuICAgIH1cclxuXHQmX190b3Age1xyXG4gICAgICAgIHBhZGRpbmc6IDYwcHggMDtcclxuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgxOTMsIDE5MywgMTkzLCAwLjUwKTtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICBnYXA6IDMwcHg7XHJcbiAgICB9XHJcbiAgICAmX190IHtcclxuICAgICAgICBtYXgtd2lkdGg6IDQwMHB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLXRpdGxlO1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIH1cclxuICAgICZfX2NvbnRhY3RzIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgZ2FwOiA5MHB4O1xyXG4gICAgICAgICYtdmFsIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLXRpdGxlO1xyXG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xyXG4gICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0OyAgICBcclxuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmX19wb2xpY3kge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wM2VtO1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIFxyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWQtZGVza3RvcCkge1xyXG4gICAgICAgIC5hYm91dCAmIHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICZfX3RvcCB7XHJcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgICAgIH1cclxuICAgICAgICAmX19pbWcge1xyXG4gICAgICAgICAgICBsZWZ0OiBhdXRvOyByaWdodDogNjBweDtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWQtdGFibGV0KSB7XHJcbiAgICAgICAgJl9fdCB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJl9faW1nIHtcclxuICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZC1tb2JpbGUtbGcpIHtcclxuICAgICAgICAmX190b3Age1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMjRweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJl9fdCB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJl9fY29udGFjdHMge1xyXG4gICAgICAgICAgICBnYXA6IDU1cHg7XHJcbiAgICAgICAgICAgICYtdmFsIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmX19wb2xpY3kge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIkBpbXBvcnQgXCJpbmMvY29yZVwiO1xyXG5cclxuQGltcG9ydCBcImZvbnRzXCI7XHJcbkBpbXBvcnQgXCJyZXNldFwiO1xyXG5AaW1wb3J0IFwiY29tbW9uXCI7XHJcbkBpbXBvcnQgXCJsaWJzXCI7XHJcbkBpbXBvcnQgXCJmb3Jtc1wiO1xyXG5AaW1wb3J0IFwicG9wdXBcIjtcclxuQGltcG9ydCBcImhlYWRlclwiO1xyXG5AaW1wb3J0IFwiZm9vdGVyXCI7XHJcblxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi5wb3J0Zm9saW8ge1xyXG4gICAgJl9faXRlbXMge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBtYXJnaW46IDAgLTYwcHg7XHJcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XHJcbiAgICAgICAgZ3JpZC1nYXA6IDEwMHB4IDMwcHg7XHJcbiAgICAgICAgLy8gZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvO1xyXG4gICAgICAgIC8vIGdyaWQtYXV0by1mbG93OiBkZW5zZTtcclxuICAgICAgIFxyXG4gICAgfSBcclxuICAgICZfX2l0ZW0ge1xyXG4gICAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgLy8gbWFyZ2luLWJvdHRvbTogMTAwcHg7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MHB4KTtcclxuICAgICAgICBwYWRkaW5nOiAwIDYwcHg7XHJcbiAgICAgICAgLy8gZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gICAgICAgICZbc3R5bGUqPVwibGVmdDogMHB4XCJdLCAmOm50aC1jaGlsZCgybi0xKSB7XHJcbiAgICAgICAgICAgIC8vIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICAgICAgICAgICAgLy8gbWFyZ2luLXRvcDogMHB4O1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IGluaXRpYWw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYtd3JhcCB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAmLXBob3RvIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTIwJTtcclxuICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHBob3RvLWNvdmVyO1xyXG4gICAgICAgICAgICAgICAgLy93aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIC8vIG1heC13aWR0aDogNTc2cHg7XHJcbiAgICAgICAgICAgICAgICAvLyBtYXgtaGVpZ2h0OiA3MjBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmLWluZm8ge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIGxlZnQ6IDA7IGJvdHRvbTogMDtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNGRkY7XHJcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNFMURFREU7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE4cHggMThweCAwIDA7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDI0cHggMzBweDtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xyXG4gICAgICAgIH1cclxuICAgICAgICBAbWVkaWEgKGFueS1ob3Zlcjpob3Zlcikge1xyXG4gICAgICAgICAgICAmLXdyYXA6aG92ZXIgJi1pbmZvIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmLW9wZW4ge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH0gXHJcbiAgICBcclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWQtZGVza3RvcCkge1xyXG4gICAgICAgICZfX2l0ZW1zIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwIC0yMHB4O1xyXG4gICAgICAgICAgICBncmlkLWdhcDogODBweCAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmX19pdGVtIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMCAyMHB4O1xyXG4gICAgICAgICAgICAvLyBtYXJnaW4tYm90dG9tOiA5MHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWQtdGFibGV0KSB7XHJcbiAgICAgICAgJl9faXRlbXMge1xyXG4gICAgICAgICAgICBncmlkLWdhcDogNDBweCAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmX19pdGVtIHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgICAgICAgLy8gbWFyZ2luLWJvdHRvbTogNDBweDtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiBpbml0aWFsICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICYtd3JhcCB7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRTFERURFO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYtaW5mbyB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygxMDAlIC0gMzBweCkpO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLm9wZW5lZCAmLWluZm8ge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYtb3BlbiB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7IGhlaWdodDogMzBweDtcclxuICAgICAgICAgICAgICAgIHotaW5kZXg6IDI7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAwOyB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogOHB4IHNvbGlkICNFMURFREU7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi5vcGVuZWQgJi1vcGVuOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1kLW1vYmlsZS1sZykge1xyXG4gICAgICAgICZfX2l0ZW1zIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICBncmlkLWdhcDogNTBweDtcclxuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICZfX2l0ZW0ge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgLy8gbWFyZ2luLWJvdHRvbTogNzBweDtcclxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi1pbmZvIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDMwcHggMjJweCAyMHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4ud29ya3Mge1xyXG4gICAgJl9faXRlbSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGdhcDogMTEwcHg7XHJcbiAgICAgICAgJiArICYge1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxNDBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJi1waG90b3Mge1xyXG4gICAgICAgICAgICB3aWR0aDogNDIlO1xyXG4gICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgICAgICB9XHJcbiAgICAgICAgJi1zbGlkZXIge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIC5zd2lwZXItbmF2IHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDEwMCU7IGJvdHRvbTogMzhweDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5zd2lwZXItcGFnaW5hdGlvbiB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYtcGhvdG8ge1xyXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTMyJTtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYWJzLWNlbnRlcjtcclxuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJi1pbmZvIHtcclxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDkwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYtZGVzYyB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiA1MDBweDtcclxuICAgICAgICAgICAgPiAqIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1kLWRlc2t0b3ApIHtcclxuICAgICAgICAmX19pdGVtIHtcclxuICAgICAgICAgICAgZ2FwOiAzMHB4O1xyXG4gICAgICAgICAgICAmICsgJiB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA4MHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYtaW5mbyB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNjBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWQtdGFibGV0KSB7XHJcbiAgICAgICAgJl9faXRlbSB7XHJcbiAgICAgICAgICAgICYtc2xpZGVyIHtcclxuICAgICAgICAgICAgICAgIC5zd2lwZXItbmF2IHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLnN3aXBlci1wYWdpbmF0aW9uIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYtaW5mbyB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLWRlc2Mge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZC10YWJsZXQtc20pIHtcclxuICAgICAgICAmX19pdGVtIHtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAgICAgICYtcGhvdG9zIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA1MDBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLXBob3RvIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBpbml0aWFsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYtaW5mbyB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4uYWJvdXQge1xyXG4gICAgJl9fY29scyB7XHJcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XHJcbiAgICAgICAgZ3JpZC1nYXA6IDMwcHg7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogLTQwcHg7XHJcbiAgICB9XHJcbiAgICAmX19pbmZvIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogODBweDtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMjBweDtcclxuICAgIH1cclxuICAgICZfX2Rlc2Mge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS41O1xyXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcclxuICAgICAgICA+ICoge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICZfX3Byb3BzIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiA2MHB4O1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgIGdhcDogMzBweDtcclxuICAgICAgICAmLWNvbCB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogNDUlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICZfX3Byb3Age1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICAgID4gKiArICoge1xyXG4gICAgICAgICAgbWFyZ2luLXRvcDogMjBweDsgIFxyXG4gICAgICAgIH1cclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICAgICAgJiArIGxpIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmX19mb290ZXIge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDEwMHB4O1xyXG4gICAgICAgICYtdCB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogNDAwcHg7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICAgICAgY29sb3I6ICRjb2xvci10aXRsZTtcclxuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcclxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmX19jb250YWN0cyB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGdhcDogNTBweDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4O1xyXG4gICAgICAgICYtdmFsIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLXRpdGxlO1xyXG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xyXG4gICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0OyAgICBcclxuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmX19wb2xpY3kge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wM2VtO1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIFxyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJl9fcGhvdG8gaW1nIHtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZC1kZXNrdG9wKSB7XHJcbiAgICAgICAgJl9faW5mbyB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA0MHB4O1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmX19mb290ZXIge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWQtdGFibGV0KSB7XHJcbiAgICAgICAgJl9fY29scyB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmX19waG90byB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogNDAwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICZfX3Byb3BzIHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiA1MDBweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1kLW1vYmlsZS1sZykge1xyXG4gICAgICAgICZfX3Byb3BzIHtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMzBweDtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiAyNDBweDtcclxuICAgICAgICAgICAgJi1jb2wge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4uZXJyb3I0MDRcclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi5lcnJvcjQwNCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgXHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAmX19udW1iIHtcclxuICAgICAgICBmb250LXNpemU6IDk2cHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMTtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgfVxyXG4gICAgJl9fdGl0bGUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMzZweDtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgfVxyXG4gICAgJl9fYnV0dG9ucyB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDYwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZC10YWJsZXQpIHtcclxuICAgICAgICAmX19udW1iIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiA3NnB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAmX190aXRsZSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJl9fYnV0dG9ucyB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAzMHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1kLW1vYmlsZS1sZykge1xyXG4gICAgICAgICZfX251bWIge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDY0cHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICZfX3RpdGxlIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAyNnB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAmX19idXR0b25zIHtcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDMwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cclxuXHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblxyXG5cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHJcbiJdfQ== */
